/
ChangeLog
18232 lines (13437 loc) · 757 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2011-05-13 Adam Roben <aroben@apple.com>
Load plugins in the order they're found
Fixes <http://webkit.org/b/60788> <rdar://problem/9435787> REGRESSION (r69790): WebKit2
doesn't prefer plugins in the additional plugins directory
Reviewed by Anders Carlsson.
* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::addFromVector):
Changed to use a ListHashSet instead of a HashSet to store the plugin paths.
2011-05-13 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Prune #includes from FrameView.h (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=60748
- Update files that were depending on FrameView.h #including Frame.h or
Page.h.
* WebProcess/Plugins/PluginView.cpp:
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
* WebProcess/WebPage/WebContextMenu.cpp:
* WebProcess/WebPage/mac/AccessibilityWebPageObject.mm:
2011-05-13 Martin Robinson <mrobinson@igalia.com>
Reviewed by Eric Seidel.
[GTK] Share the GTK+ key binding code between WebKit1 and WebKit2
https://bugs.webkit.org/show_bug.cgi?id=59765
Use the new KeyBindingTranslator class from WebCore/platform/gtk. With this utility
class we can now share the code with WebKit2.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::PageClientImpl): No longer need to initialize keybinding code.
(WebKit::PageClientImpl::getEditorCommandsForKeyEvent): Use the new utility class.
* UIProcess/API/gtk/PageClientImpl.h: Remove unnecessary members. Add utility class member.
2011-05-12 Pratik Solanki <psolanki@apple.com>
Reviewed by Antti Koivisto.
Part of WebCore should use CFNetwork-based loader on Mac
https://bugs.webkit.org/show_bug.cgi?id=51836
Use CFRunLoop when using CFNetwork.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformInitialize):
2011-05-12 Sam Weinig <sam@webkit.org>
Reviewed by Gavin Barraclough.
WebProcess sandbox denies file:/// accesses after you navigate to a nonexistent file
<rdar://problem/9427752>
https://bugs.webkit.org/show_bug.cgi?id=60745
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::SandboxExtensionTracker::didStartProvisionalLoad):
Don't attempt to re-use a non-existent committed sandbox extension. This can
happen when the previous load was file: url, but did not require an extension,
such as an error page.
2011-05-12 Jia Pu <jpu@apple.com>
Reviewed by Darin Adler.
Regression caused by changeset 86281
https://bugs.webkit.org/show_bug.cgi?id=60712
<rdar://problem/9427970>
Removed the condition variable. [NSSpellChecker dismissCorrectionIndicatorForView:] is blocking.
So handleAcceptedReplacement() triggered by dismissInternal() will return before dismissInternal()
returns. So we don't need to use the condition to coordinate between these two function. In fact,
all callbacks are delivered on main thread. We don't really need any locking here.
Since now we don't have distinction between dismiss() and dismissSoon(). dismissSoon() has
been removed.
* UIProcess/API/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::dismissCorrectionPanelSoon):
* UIProcess/mac/CorrectionPanel.h:
* UIProcess/mac/CorrectionPanel.mm:
(WebKit::CorrectionPanel::CorrectionPanel):
(WebKit::CorrectionPanel::show):
(WebKit::CorrectionPanel::dismiss):
(WebKit::CorrectionPanel::dismissInternal):
(WebKit::CorrectionPanel::handleAcceptedReplacement):
2011-05-12 Brian Weinstein <bweinstein@apple.com>
Reviewed by Adam Roben.
WebKit2: Implement plugin quirk for Mozilla user agent for older Flash
https://bugs.webkit.org/show_bug.cgi?id=60726
<rdar://problem/8470824>
Implement the quirk for versions of Flash before v10 that only request windowless plugins
if we use a Mozilla user agent.
* Shared/Plugins/Netscape/win/NetscapePluginModuleWin.cpp:
(WebKit::NetscapePluginModule::determineQuirks): If we have a plugin that handles the
"application/x-shockwave-flash" MIME type with a version less than 10, tell it to use
the Mozilla user agent.
* Shared/Plugins/PluginQuirks.h:
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::userAgent): Add an early return if the plugin uses the Mozilla user
agent.
* win/WebKit2.vcproj: Add PluginQuirks.h.
2011-05-12 Anders Carlsson <andersca@apple.com>
Reviewed by Simon Fraser.
PluginView::invalidateRect doesn't work for transformed plug-ins
https://bugs.webkit.org/show_bug.cgi?id=60727
<rdar://problem/9331244>
Ask the RenderObject to repaint the plug-in instead of using invalidateContentsAndWindow.
This matches what we do in WebKit1.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::invalidateRect):
2011-05-12 Jessie Berlin <jberlin@apple.com>
Reviewed by Darin Adler.
[Windows WebKit2] Use cookies set in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=60274
Properly handle the case where there is no serialized default storage session by not trying
to encode or decode 0, while still making sure to decode any valid storage session.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
Only encode the storage session if there is one to encode.
(WebKit::WebProcessCreationParameters::decode):
Only decode the storage session there is one to decode.
* Shared/WebProcessCreationParameters.h:
2011-05-11 Brian Weinstein <bweinstein@apple.com>
Reviewed by Anders Carlsson.
After relaunching an unresponsive web process, web page stops responding to mouse movement
https://bugs.webkit.org/show_bug.cgi?id=60669
<rdar://problem/9409934>
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processDidCrash): Set m_processingMouseMoveEvent to false when the WebProcess
crashes.
2011-05-10 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Adler.
Perform some forward declarations suggested by include-what-you-use
https://bugs.webkit.org/show_bug.cgi?id=60545
* WebProcess/WebPage/mac/WebPageMac.mm:
2011-05-12 Carlos Garcia Campos <cgarcia@igalia.com>
Reviewed by Martin Robinson.
Fix the build with ENABLE_PLUGIN_PROCESS
https://bugs.webkit.org/show_bug.cgi?id=60628
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::initialize): Move the call to
pluginController->isAcceleratedCompositingEnabled() to a #ifdef block.
* WebProcess/Plugins/PluginProxy.h: Add include for <WebCore/IntRect.h>.
2011-05-11 Damian Kaleta <dkaleta@apple.com>
Reviewed by Brady Eidson.
Need a new API that will try to restore the scrollbars' position, when navigating in the back/forward history
https://bugs.webkit.org/show_bug.cgi?id=60674
* UIProcess/API/C/WKPage.cpp:
(WKPageTryRestoreScrollPosition):
* UIProcess/API/C/WKPage.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::tryRestoreScrollPosition):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::tryRestoreScrollPosition):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
2011-05-11 Sam Weinig <sam@webkit.org>
Reviewed by Gavin Barraclough.
WebKit2 doesn't build on Mac with strict PassOwnPtr
https://bugs.webkit.org/show_bug.cgi?id=60655
* Platform/CoreIPC/HandleMessage.h:
(CoreIPC::handleMessageDelayed):
Add explicit adoptPtr to indicate that the constructor is taking ownership.
2011-05-11 Jessie Berlin <jberlin@apple.com>
Reviewed by Steve Falkenburg.
[Windows WebKit2] Use cookies set in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=60274
Share the default storage session between the UI and Web Processes.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
Only encode the session parameter if it is valid.
(WebKit::WebProcessCreationParameters::decode):
Don't try to decode a null session data.
* Shared/WebProcessCreationParameters.h:
Add a parameter for a serialized default storage session, used only on Windows.
* Shared/win/WebCoreArgumentCodersWin.cpp:
(CoreIPC::decodeResourceRequest):
Make sure to set the current storage session on any requests used by the Web
Process before CFNetwork has to do anything with them, in order for CFNetwork to avoid
doing anything with the Web Process's default storage session.
* UIProcess/win/WebContextWin.cpp:
(WebKit::WebContext::platformInitializeWebProcess):
Serialize the default storage session in the UI Process and add it to the
WebProcessCreationParameters.
* WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::cachedResponseForURL):
Use the cache associated with the current storage session and make sure the request has the
current storage session set on it before doing anything with it.
* WebProcess/win/WebProcessWin.cpp:
(WebKit::WebProcess::platformSetCacheModel):
Use the default storage session.
(WebKit::WebProcess::platformClearResourceCaches):
Ditto.
(WebKit::WebProcess::platformInitializeWebProcess):
Deserialize the default storage session passed in by the UI Process and hand it to the
ResourceHandle.
2011-05-11 Jia Pu <jpu@apple.com>
Reviewed by Darin Adler.
CorrectionPanel sometimes hangs in dismissSoon().
https://bugs.webkit.org/show_bug.cgi?id=60599
<rdar://problem/9313628>
Make sure dismissSoon() won't wait indefinitely if handleAcceptedReplacement() sets m_resultForSynchronousDismissal
to nil. Added a designated variable m_isDismissing, instead of piggy-backing m_resultForSynchronousDismissal,
for condition checking.
* UIProcess/mac/CorrectionPanel.h:
* UIProcess/mac/CorrectionPanel.mm:
(WebKit::CorrectionPanel::CorrectionPanel):
(WebKit::CorrectionPanel::show):
(WebKit::CorrectionPanel::dismissSoon):
(WebKit::CorrectionPanel::dismissInternal):
(WebKit::CorrectionPanel::handleAcceptedReplacement):
2011-05-11 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r86255.
http://trac.webkit.org/changeset/86255
https://bugs.webkit.org/show_bug.cgi?id=60660
REGRESSION (r86255): Lots of tests crashing in
CFWriteStreamCreateWithAllocatedBuffers on Windows 7 Release
(WebKit2 Tests) (Requested by aroben on #webkit).
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* Shared/win/WebCoreArgumentCodersWin.cpp:
(CoreIPC::decodeResourceRequest):
* UIProcess/win/WebContextWin.cpp:
(WebKit::WebContext::platformInitializeWebProcess):
* WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::cachedResponseForURL):
* WebProcess/win/WebProcessWin.cpp:
(WebKit::WebProcess::platformSetCacheModel):
(WebKit::WebProcess::platformClearResourceCaches):
(WebKit::WebProcess::platformInitializeWebProcess):
2011-05-11 Adam Roben <aroben@apple.com>
Don't notify the plugin when a targeted javascript: URL request completes
This matches Mozilla and WebKit1.
Fixes <http://webkit.org/b/60568> <rdar://problem/8610657> REGRESSION (WebKit2): Flash
plugin doesn't appear on a hanes.com page
Test: plugins/get-targeted-javascript-url.html
Reviewed by Anders Carlsson.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performJavaScriptURLRequest): Don't call back to the plugin if the
request had a target.
2011-05-11 Jessie Berlin <jberlin@apple.com>
Reviewed by Steve Falkenburg.
[Windows WebKit2] Use cookies set in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=60274
Share the default storage session between the UI and Web Processes.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
Add a parameter for a serialized default storage session, used only on Windows.
* Shared/win/WebCoreArgumentCodersWin.cpp:
(CoreIPC::decodeResourceRequest):
Make sure to set the current storage session on any requests used by the Web
Process before CFNetwork has to do anything with them, in order for CFNetwork to avoid
doing anything with the Web Process's default storage session.
* UIProcess/win/WebContextWin.cpp:
(WebKit::WebContext::platformInitializeWebProcess):
Serialize the default storage session in the UI Process and add it to the
WebProcessCreationParameters.
* WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::cachedResponseForURL):
Use the cache associated with the current storage session and make sure the request has the
current storage session set on it before doing anything with it.
* WebProcess/win/WebProcessWin.cpp:
(WebKit::WebProcess::platformSetCacheModel):
Use the default storage session.
(WebKit::WebProcess::platformClearResourceCaches):
Ditto.
(WebKit::WebProcess::platformInitializeWebProcess):
Deserialize the default storage session passed in by the UI Process and hand it to the
ResourceHandle.
2011-05-11 Sam Weinig <sam@webkit.org>
Reviewed by Adam Roben.
WebKit2 should tell app that is unresponsive in more cases
<rdar://problem/9110151>
https://bugs.webkit.org/show_bug.cgi?id=60608
* UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState):
(WebKit::DrawingAreaProxyImpl::sendUpdateBackingStoreState):
Invoke the responsiveness time when forcing a backing store update
to catch the cases of activating tabs, resizing the window, etc.
2011-05-11 Martin Robinson <mrobinson@igalia.com>
Try to fix the WinCairo build.
* Shared/ShareableBitmap.h: Correctly include RefPtrCairo here and
guard it with USE(CAIRO) instead of PLATFORM(CAIRO).
2011-05-11 John Sullivan <sullivan@apple.com>
Reviewed by Darin Adler.
<https://bugs.webkit.org/show_bug.cgi?id=60631>
<rdar://problem/9420520>
WebKit2 doesn't clear the pendingAPIRequestURL on in-page anchor navigation [60631]
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
Call clearPendingAPIRequestURL().
2011-05-11 Adam Roben <aroben@apple.com>
Turn on strict PassOwnPtr on Windows
Fixes <http://webkit.org/b/60632> Windows should build with strict PassOwnPtr enabled
Reviewed by Adam Barth.
* WebProcess/FullScreen/win/WebFullScreenManagerWin.cpp:
(WebKit::WebFullScreenManagerWin::setRootFullScreenLayer): Use nullptr instead of 0.
2011-05-11 Jessie Berlin <jberlin@apple.com>
Reviewed by Darin Adler.
[WebKit2] exceededDatabaseQuota function on WKPageUIClient needs to provide information
about the usage for both the origin overall and the database in question.
https://bugs.webkit.org/show_bug.cgi?id=60573
Add the currentOriginUsage parameter.
* Platform/CoreIPC/HandleMessage.h:
(CoreIPC::callMemberFunction):
* UIProcess/API/C/WKPage.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::exceededDatabaseQuota):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebUIClient.cpp:
(WebKit::WebUIClient::exceededDatabaseQuota):
* UIProcess/WebUIClient.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::exceededDatabaseQuota):
2011-05-10 Oliver Hunt <oliver@apple.com>
Reviewed by Geoffrey Garen.
Assertion failure in JSC::Structure::typeInfo when reloading weather.com video page
https://bugs.webkit.org/show_bug.cgi?id=60580
The plugin object map was incorrect trying to implement a weak map itself using
destructors. Switch to a WeakGCMap and the problem is fixed.
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::~JSNPObject):
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::getOrCreateJSObject):
(WebKit::NPRuntimeObjectMap::invalidate):
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
2011-05-10 Sam Weinig <sam@webkit.org>
Reviewed by Dan Bernstein.
Yet more quarantine related sandbox denial when downloading files
<rdar://problem/9397494>
* WebProcess/com.apple.WebProcess.sb:
2011-05-10 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
WebKit2: Coalesced wheel events should be saved to hand back to the client on unhandled return
https://bugs.webkit.org/show_bug.cgi?id=60584
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleWheelEvent):
(WebKit::canCoalesce):
(WebKit::coalesce):
(WebKit::coalescedWheelEvent):
(WebKit::WebPageProxy::didReceiveEvent):
(WebKit::WebPageProxy::processDidCrash):
Reworks coalescing/merging code to happen on didReceiveEvent rather than in
handleWheelEvent. This means we now store the pending events in a queue, and
pull them out when we can.
* UIProcess/WebPageProxy.h:
Change single event containers to contain all pending/merged/coalesced events
and remove unused flag.
2011-05-09 Jeremy Noble <jer.noble@apple.com>
Reviewed by Darin Adler.
WebKit2: Cancelling full screen before animation completes leads to full screen window staying up.
https://bugs.webkit.org/show_bug.cgi?id=60531
Remove the (unused) _isAnimating ivar and replace it with two ivars: _isEnteringFullScreen and
_isExitingFullScreen. These will ensure each is only called once per full screen request, and
that if one exit/enter request interrupts another, that the required functions are called in
order.
* UIProcess/mac/WKFullScreenWindowController.h:
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]): Removed _isAnimating.
(-[WKFullScreenWindowController exitFullScreen]): Ditto.
(-[WKFullScreenWindowController beganEnterFullScreenAnimation]): Gate on _isEnteringFullScreen. Check _isExitingFullScreen
and call [self finishedExitFullScreenAnimation:] if necessary.
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Gate on _isEnteringFullScreen.
(-[WKFullScreenWindowController beganExitFullScreenAnimation]): Gate on _isExitingFullScreen. Check _isEnteringFullScreen
and call [self finishedEnterFullScreenAnimation:] if necessary.
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Gate on _isExitingFullScreen.
2011-05-10 Beth Dakin <bdakin@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=60582
Crash switching overlay/non-overlay scrollbar preference still possible
-and corresponding-
<rdar://problem/9323983>
* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
2011-05-10 Jeff Miller <jeffm@apple.com>
Reviewed by Anders Carlsson.
WebKit2: Windows clients need to know if the page overlay is installed
https://bugs.webkit.org/show_bug.cgi?id=60562
<rdar://problem/8940164>
Until we move all the UI for find on page into WebKit on Windows (specifically, drawing the find bouncy),
WebKit clients need to know whether WebKit is drawing the page overlay or not. Keep track of this in
the WebPageProxy in the UI process and provide a WebKit2 API to retrieve this information.
* UIProcess/API/C/win/WKView.cpp:
(WKViewIsPageOverlayInstalled): Added.
* UIProcess/API/C/win/WKView.h: Added WKViewIsPageOverlayInstalled().
* UIProcess/PageClient.h: Added didInstallOrUninstallPageOverlay().
* UIProcess/WebPageProxy.h: Added didInstallOrUninstallPageOverlay().
* UIProcess/WebPageProxy.messages.in: Added DidInstallOrUninstallPageOverlay.
* UIProcess/win/WebPageProxyWin.cpp:
(WebKit::WebPageProxy::didInstallOrUninstallPageOverlay): Added.
* UIProcess/win/WebView.cpp:
(WebKit::WebView::WebView): Initialize m_pageOverlayInstalled.
(WebKit::WebView::didInstallOrUninstallPageOverlay): Added.
* UIProcess/win/WebView.h: Added didInstallOrUninstallPageOverlay() and m_pageOverlayInstalled.
(WebKit::WebView::pageOverlayInstalled): Added.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::installPageOverlay): Send message to UI process to tell it the page overlay is installed.
(WebKit::WebPage::uninstallPageOverlay): Send message to UI process to tell it the page overlay is uninstalled.
2011-05-10 Anders Carlsson <andersca@apple.com>
Reviewed by Adam Roben.
Remove incorrect ASSERTs from CoreIPC::Connection::processIncomingSyncReply
https://bugs.webkit.org/show_bug.cgi?id=60567
<rdar://problem/9377845>
It is possible to receive an incoming sync reply that is for a request we don't know about.
This could happen if the sync message send timed out for example.
* Platform/CoreIPC/Connection.cpp:
(CoreIPC::Connection::processIncomingSyncReply):
2011-05-05 Brent Fulgham <bfulgham@webkit.org> and Martin Robinson <mrobinson@igalia.com>
Reviewed by Anders Carlsson.
[Cairo][WebKit2] Add an implementation of ShareableBitmap for Cairo
https://bugs.webkit.org/show_bug.cgi?id=60293
* GNUmakefile.am: Remove ShareableBitmapGtk in favor of ShareableBitmapCairo.
* Shared/ShareableBitmap.h: Added a couple Cairo-specific declarations.
* Shared/cairo/ShareableBitmapCairo.cpp:
(WebKit::ShareableBitmap::createGraphicsContext): Added.
(WebKit::ShareableBitmap::paint): Added.
(WebKit::ShareableBitmap::createCairoSurface): Added.
(WebKit::ShareableBitmap::releaseSurfaceData): Added.
2011-05-10 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Extra sign in required to view video on MobileMe Gallery album
https://bugs.webkit.org/show_bug.cgi?id=60560
Implement NPN_GetAuthenticationInfo.
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::getAuthenticationInfo):
Send a GetAuthenticationInfo message to the web process.
* PluginProcess/PluginControllerProxy.h:
* WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
(WebKit::initializeProtectionSpace):
Initialize a WebCore::ProtectionSpace object from NPAPI parameters.
(WebKit::NPN_GetAuthenticationInfo):
Make a ProtectionSpace object and then call NetscapePlugin::getAuthenticationInfo.
Finally, copy the username/password and pass them back to the plug-in.
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::getAuthenticationInfo):
Call the plug-in controller.
* WebProcess/Plugins/PluginController.h:
Add getAuthenticationInfo pure virtual member function.
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::getAuthenticationInfo):
Call the real plug-in controller's getAuthenticationInfo member function.
* WebProcess/Plugins/PluginProxy.messages.in:
Add GetAuthenticationInfo message.
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::getAuthenticationInfo):
Try to get the authentication info from the credential storage. Failing that,
get it from the persistent credential storage.
2011-05-10 Adam Roben <aroben@apple.com>
Use FontSmoothingLevelWindows by default on Windows
Fixes <http://webkit.org/b/60557> REGRESSION (r86077): Web Inspector uses CG font rendering
in WebKit2 on Windows
Reviewed by Darin Adler.
* Shared/WebPreferencesStore.h: Added and deployed a new DEFAULT_WEBKIT_FONT_SMOOTHING_LEVEL
macro to let Windows have a different default font smoothing level from other platforms.
* UIProcess/API/C/WKPreferencesPrivate.h: Updated the comment about the default font
smoothing level.
2011-05-06 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Adler.
Fix some unnecessary includes in headers
https://bugs.webkit.org/show_bug.cgi?id=60388
* WebProcess/FullScreen/WebFullScreenManager.cpp:
2011-05-09 Jeremy Noble <jer.noble@apple.com>
Reviewed by Darin Adler.
Command-~/Exposé to another window while <video> is in full screen, breaks Safari, eventually leading to crash
https://bugs.webkit.org/show_bug.cgi?id=60496
When animating into and out of full screen, order out and back in the original webView window,
disabling animations when necessary. The beganExitFullScreenAnimation method was targeting the wrong window,
as the webView is hosted in the full screen window when we ask for it's parent window.
* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController beganExitFullScreenAnimation]):
2011-05-09 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
A WKView with plug-ins paints white when first moved into a window
https://bugs.webkit.org/show_bug.cgi?id=60511
The UI process’s wait for DidUpdateBackingStoreState would always time out because the Web process
was blocked on a synchronous message the UI process trying to get the connections for plug-ins in
the view. This is avoided by deferring the call to Page::setCanStartMedia().
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Initialize the new m_setCanStartMediaTimer.
(WebKit::WebPage::setCanStartMediaTimerFired): Added. Calls setCanStartMedia(true) when the timer
fires.
(WebKit::WebPage::setIsInWindow): When going out of a window, stop the timer. When going into a
window, start it.
* WebProcess/WebPage/WebPage.h:
2011-05-09 Anders Carlsson <andersca@apple.com>
Reviewed by Dan Bernstein.
Crash when sending a sync message to a crashed web process
https://bugs.webkit.org/show_bug.cgi?id=60514
<rdar://problem/9281270>
Change WebProcessProxy::sendSync to return false if there's no connection.
Audit all WebProcessProxy::sendSync call sites to initialize reply parameters.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::firstRectForCharacterInSelectedRange):
(WebKit::WebPageProxy::getSelectedText):
(WebKit::WebPageProxy::gestureWillBegin):
* UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::sendSync):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::insertText):
(WebKit::WebPageProxy::getMarkedRange):
(WebKit::WebPageProxy::getSelectedRange):
(WebKit::WebPageProxy::characterIndexForPoint):
(WebKit::WebPageProxy::executeKeypressCommands):
(WebKit::WebPageProxy::writeSelectionToPasteboard):
(WebKit::WebPageProxy::readSelectionFromPasteboard):
2011-05-09 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Create a plug-in's MIME types preferences plist if it doesn't exist.
https://bugs.webkit.org/show_bug.cgi?id=57204
<rdar://problem/9195048>
Spawn a plug-in process and let it create the plist. For now, we'll do this on the
main thread since it's a rare one-time computation and we have an API function,
WKFrameCanShowMIMEType, which would have to block anyway.
* PluginProcess/mac/PluginProcessMainMac.mm:
(WebKit::PluginProcessMain):
If -createPluginMIMETypesPreferences is one of the command line argument keys,
the plug-in path will be the argument value. Call NetscapePluginModule::createPluginMIMETypesPreferences
to create the preferences file and then exit.
* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::contentsOfPropertyListAtURL):
Move code to read a property list out into a helper function.
(WebKit::getMIMETypesFromPluginBundle):
If there's no property list file, try to create one.
(WebKit::NetscapePluginModule::createPluginMIMETypesPreferences):
Load the plug-in, find the BP_CreatePluginMIMETypesPreferences and call it.
* UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
(WebKit::PluginProcessProxy::createPropertyListFile):
Spawn a plug-in process and pass the -createPluginMIMETypesPreferences flag to it and then wait
for it to exit.
2011-05-09 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Move EnvironmentVariables out into its own .cpp file
https://bugs.webkit.org/show_bug.cgi?id=60507
* UIProcess/Launcher/mac/EnvironmentVariables.cpp: Added.
(WebKit::EnvironmentVariables::EnvironmentVariables):
(WebKit::EnvironmentVariables::~EnvironmentVariables):
(WebKit::EnvironmentVariables::set):
(WebKit::EnvironmentVariables::get):
(WebKit::EnvironmentVariables::appendValue):
(WebKit::EnvironmentVariables::valueIfVariableHasName):
(WebKit::EnvironmentVariables::createStringForVariable):
(WebKit::EnvironmentVariables::copyEnvironmentVariables):
* UIProcess/Launcher/mac/EnvironmentVariables.h: Added.
(WebKit::EnvironmentVariables::environmentPointer):
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
* WebKit2.xcodeproj/project.pbxproj:
2011-05-09 Adam Roben <aroben@apple.com>
Always set the font rendering mode based on preference values
WebPage::platformInitialize and WebPage::platformPreferencesDidChange were fighting over the
font rendering mode. The platformInitialize code predates preference-based font rendering
mode support, and is now redundant and incorrect.
Fixes <http://webkit.org/b/60494> WebKit2 uses GDI text instead of CG text when
FontSmoothing preference is set to kWKFontSmoothingLevelNoSubpixelAntiAliasing in a .plist
on disk
Reviewed by Sam Weinig.
* WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::WebPage::platformInitialize): Removed code to set the font rendering mode.
platformPreferencesDidChange will take care of this for us.
2011-05-09 Anders Carlsson <andersca@apple.com>
Reviewed by John Sullivan.
Clean up NetscapePluginModule::getPluginInfo
https://bugs.webkit.org/show_bug.cgi?id=60486
Make all 'get' functions take a PluginInfoStore::Plugin reference, since getPluginInfoFromPropertyLists
is going to need it to know the path and plug-in architecture.
* Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
(WebKit::getPluginArchitecture):
(WebKit::getPluginInfoFromPropertyLists):
(WebKit::getPluginInfoFromCarbonResources):
(WebKit::NetscapePluginModule::getPluginInfo):
2011-05-09 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/9005982> REGRESSION (r85780): Flash of white when a WKView with composited content moves on-screen
https://bugs.webkit.org/show_bug.cgi?id=60488
* WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState): Update m_compositingAccordingToProxyMessages,
since the DidUpdateBackingStoreState message also changes the compositing state in the proxy.
2011-05-09 Benjamin Poulain <benjamin.poulain@nokia.com>
Reviewed by Andreas Kling.
Build fix for WebKit 2 on Qt
Qt treats warnings as errors so it does not build with unused variables. This patch removed two unused variable in WebKit 2.
* UIProcess/TiledDrawingAreaProxy.cpp:
(WebKit::TiledDrawingAreaProxy::createTiles):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::~PluginView):
2011-05-07 Dan Bernstein <mitz@apple.com>
Reviewed by Timothy Hatcher.
<rdar://problem/9365358> REGRESSION (WebKit2): When clicking in the page, Find overlay fades out instead of disappearing immediately
* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::hideFindUI): Do not fade out the overlay.
2011-05-07 Dan Bernstein <mitz@apple.com>
Avoid copying a header file into the WebKit2 framework wrapper.
* WebKit2.xcodeproj/project.pbxproj: Corrected the target membership of HTTPCookieAcceptPolicy.h.
2011-05-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r86016.
http://trac.webkit.org/changeset/86016
https://bugs.webkit.org/show_bug.cgi?id=60445
caused crashes on the WK2 Windows bots (Requested by
jessieberlin on #webkit).
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* Shared/win/WebCoreArgumentCodersWin.cpp:
(CoreIPC::decodeResourceRequest):
* UIProcess/win/WebContextWin.cpp:
(WebKit::WebContext::platformInitializeWebProcess):
* WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::cachedResponseForURL):
* WebProcess/win/WebProcessWin.cpp:
(WebKit::WebProcess::platformSetCacheModel):
(WebKit::WebProcess::platformClearResourceCaches):
(WebKit::WebProcess::platformInitializeWebProcess):
2011-05-07 Jessie Berlin <jberlin@apple.com>
Reviewed by Steve Falkenburg.
[Windows WebKit2] Use cookies set in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=60274
Share the default storage session between the UI and Web Processes.
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
Add a parameter for a serialized default storage session, used only on Windows.
* Shared/win/WebCoreArgumentCodersWin.cpp:
(CoreIPC::decodeResourceRequest):
Make sure to set the current storage session on any requests used by the Web
Process before CFNetwork has to do anything with them, in order for CFNetwork to avoid
doing anything with the Web Process's default storage session.
* UIProcess/win/WebContextWin.cpp:
(WebKit::WebContext::platformInitializeWebProcess):
Serialize the default storage session in the UI Process and add it to the
WebProcessCreationParameters.
* WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::cachedResponseForURL):
Use the cache associated with the current storage session and make sure the request has the
current storage session set on it before doing anything with it.
* WebProcess/win/WebProcessWin.cpp:
(WebKit::WebProcess::platformSetCacheModel):
Use the default storage session.
(WebKit::WebProcess::platformClearResourceCaches):
Ditto.
(WebKit::WebProcess::platformInitializeWebProcess):
Deserialize the default storage session passed in by the UI Process and hand it to the
ResourceHandle.
2011-05-07 Keith Kyzivat <keith.kyzivat@nokia.com>
Reviewed by Adam Roben.
[Qt] Webkit2 PLUGIN_ARCHITECTURE(UNSUPPORTED) configuration broken by r85961
https://bugs.webkit.org/show_bug.cgi?id=60420
* WebProcess/Plugins/Netscape/NetscapePluginNone.cpp:
(WebKit::NetscapePlugin::platformVisibilityDidChange):
2011-05-06 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] [WebKit2] WebView::windowToScreen needs an implementation
https://bugs.webkit.org/show_bug.cgi?id=55960
Add an implementation of PageClient::windowToScreen for GTK+ WebKit2 using
the newly abstracted widget to screen coordinate translation code in WebCore.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::windowToScreen): Added implementation.
2011-05-06 Anders Carlsson <andersca@apple.com>
Reviewed by Dan Bernstein.
Simplify the PluginInfoStore interface
https://bugs.webkit.org/show_bug.cgi?id=60406
Just expose a single API for getting a list of plug-ins from the info store,
PluginInfoStore::plugins and remove PluginInfoStore::getPlugins and PluginInfoStore::getPluginPaths.
Also, change the WebContext::pluginInfoStore() getter to return a reference.
* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::plugins):
* UIProcess/Plugins/PluginInfoStore.h:
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::getPluginProcessConnection):
* UIProcess/Plugins/PluginProcessManager.h:
* UIProcess/Plugins/WebPluginSiteDataManager.cpp:
(WebKit::WebPluginSiteDataManager::GetSitesWithDataState::GetSitesWithDataState):
(WebKit::WebPluginSiteDataManager::ClearSiteDataState::ClearSiteDataState):
(WebKit::WebPluginSiteDataManager::getSitesWithData):
(WebKit::WebPluginSiteDataManager::clearSiteData):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::getPlugins):
(WebKit::WebContext::getPluginPath):
* UIProcess/WebContext.h:
(WebKit::WebContext::pluginInfoStore):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::canShowMIMEType):
2011-05-06 Anders Carlsson <andersca@apple.com>
Windows build fix.
* UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
(WebKit::PluginInfoStore::shouldUsePlugin):
2011-05-06 Anders Carlsson <andersca@apple.com>
Reviewed by Dan Bernstein.
Make more PluginInfoStore member functions static
https://bugs.webkit.org/show_bug.cgi?id=60401
This is a first step towards making PluginInfoStore thread safe.
* UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::PluginInfoStore::loadPluginsIfNecessary):
(WebKit::PluginInfoStore::loadPlugin):
* UIProcess/Plugins/PluginInfoStore.h:
* UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
(WebKit::PluginInfoStore::shouldUsePlugin):
* UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
(WebKit::PluginInfoStore::shouldUsePlugin):
* UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
(WebKit::PluginInfoStore::shouldUsePlugin):
2011-05-06 Adam Roben <aroben@apple.com>
Mac build fix
* WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: Added a
missing #import.
2011-05-06 Adam Roben <aroben@apple.com>
Show/hide windowed plugins according to the plugin element's visibility CSS property
Fixes <http://webkit.org/b/60285> <rdar://problem/9152400> REGRESSION (WebKit2): A white
rectangle covers up important UI elements when composing a new message at mail.yahoo.com
with BrowserPlus! plug-in installed
Reviewed by Anders Carlsson.
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::isPluginVisible):
* PluginProcess/PluginControllerProxy.h:
Stubbed out.
* Shared/win/WindowGeometry.cpp:
(WebKit::WindowGeometry::WindowGeometry):
(WebKit::WindowGeometry::encode):
(WebKit::WindowGeometry::decode):
* Shared/win/WindowGeometry.h:
Added visible member.
* UIProcess/win/WebView.cpp:
(WebKit::WebView::updateChildWindowGeometries): Show or hide the window as specified in the
geometry.
* WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::visibilityDidChange):
* WebProcess/Plugins/Netscape/NetscapePlugin.h: