/
ChangeLog
11839 lines (8874 loc) · 505 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
2014-12-17 Andreas Kling <akling@apple.com>
Purge PassRefPtr from Frame.
<https://webkit.org/b/139731>
Reviewed by Anders Carlsson.
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createSubframe):
2014-12-17 Dan Bernstein <mitz@apple.com>
iOS build fix
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::PageClient::setTextIndicatorAnimationProgress):
2014-12-17 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix GTK+ build after r177427.
* UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::setTextIndicatorAnimationProgress):
* UIProcess/API/gtk/PageClientImpl.h:
2014-12-16 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Unreviewed, EFL build fix since r177427.
* UIProcess/CoordinatedGraphics/WebView.cpp:
(WebKit::WebView::setTextIndicatorAnimationProgress): Added.
* UIProcess/CoordinatedGraphics/WebView.h:
2014-12-16 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Move WebCore/platform/graphics/surfaces to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=139641
Reviewed by Andreas Kling.
* WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2014-12-16 Timothy Horton <timothy_horton@apple.com>
Implement and adopt two new TextIndicator presentation animations
https://bugs.webkit.org/show_bug.cgi?id=139715
<rdar://problem/19237945>
Reviewed by Anders Carlsson.
* UIProcess/API/mac/WKView.mm:
(-[WKView _setTextIndicator:fadeOut:]):
(-[WKView _setTextIndicatorAnimationProgress:]):
(-[WKView _setTextIndicator:fadeOut:animationCompletionHandler:]): Deleted.
* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setTextIndicatorAnimationProgress):
(WebKit::WebPageProxy::performActionMenuHitTestAtLocation):
* UIProcess/WebPageProxy.h:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::setTextIndicatorAnimationProgress):
(WebKit::PageClientImpl::didPerformDictionaryLookup):
Remove the completion handler block argument from TextIndicator
installation.
Plumb animation progress through PageClient to TextIndicatorWindow.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
(-[WKImmediateActionController immediateActionRecognizerDidUpdateAnimation:]):
(-[WKImmediateActionController immediateActionRecognizerDidCancelAnimation:]):
(-[WKImmediateActionController immediateActionRecognizerDidCompleteAnimation:]):
(-[WKImmediateActionController _menuItemForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForText]):
Forward immediate action gesture recognizer animation progress
to TextIndicator. Force us to keep the selection when immediate
action popovers steal first responder status from the WebView.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::textIndicatorTransitionForActionMenu):
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Factor out the presentation animation decision code.
For immediate actions, of the Lookup range is equal to the
selection range, use a Crossfade animation; otherwise, use a FadeIn
animation.
Push whether the actionMenuHitTest is for an immediate action
or a menu to the Web process, to make the presentation animation
decision code live entirely in the Web process.
Avoid extracting encoded image data if we know we're doing
an immediate action and will never need it.
2014-12-16 Anders Carlsson <andersca@apple.com>
Fix lambda and std::function formatting
https://bugs.webkit.org/show_bug.cgi?id=139719
Reviewed by Sam Weinig.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::getOrigins):
(WebKit::DatabaseProcess::deleteEntriesForOrigin):
(WebKit::DatabaseProcess::deleteEntriesModifiedBetweenDates):
(WebKit::DatabaseProcess::deleteAllEntries):
* DatabaseProcess/DatabaseProcess.h:
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::deleteDatabase):
(WebKit::UniqueIDBDatabase::getOrEstablishIDBDatabaseMetadata):
(WebKit::UniqueIDBDatabase::openTransaction):
(WebKit::UniqueIDBDatabase::beginTransaction):
(WebKit::UniqueIDBDatabase::commitTransaction):
(WebKit::UniqueIDBDatabase::resetTransaction):
(WebKit::UniqueIDBDatabase::rollbackTransaction):
(WebKit::UniqueIDBDatabase::postTransactionOperation):
(WebKit::UniqueIDBDatabase::changeDatabaseVersion):
(WebKit::UniqueIDBDatabase::createObjectStore):
(WebKit::UniqueIDBDatabase::deleteObjectStore):
(WebKit::UniqueIDBDatabase::clearObjectStore):
(WebKit::UniqueIDBDatabase::createIndex):
(WebKit::UniqueIDBDatabase::deleteIndex):
(WebKit::UniqueIDBDatabase::putRecord):
(WebKit::UniqueIDBDatabase::getRecord):
(WebKit::UniqueIDBDatabase::openCursor):
(WebKit::UniqueIDBDatabase::cursorAdvance):
(WebKit::UniqueIDBDatabase::cursorIterate):
(WebKit::UniqueIDBDatabase::count):
(WebKit::UniqueIDBDatabase::deleteRange):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
* NetworkProcess/cache/NetworkCacheStorageCocoa.mm:
(WebKit::NetworkCacheStorage::store):
* Shared/AsyncTask.h:
(WebKit::AsyncTask::AsyncTask):
* Shared/ChildProcess.cpp:
(WebKit::didCloseOnConnectionWorkQueue):
* Shared/WebContextMenuItemData.cpp:
(WebKit::WebContextMenuItemData::WebContextMenuItemData):
* Shared/WebContextMenuItemData.h:
(WebKit::WebContextMenuItemData::selectionHandler):
* Shared/mac/SecItemShim.cpp:
(WebKit::responseMap):
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::PluginProcessManager):
* UIProcess/WebContext.cpp:
(WebKit::WebContext::WebContext):
(WebKit::m_processSuppressionDisabledForPageCounter):
* UIProcess/WebOriginDataManagerProxy.cpp:
(WebKit::CallbackSynchronizer::create):
(WebKit::CallbackSynchronizer::CallbackSynchronizer):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
* UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKSelectionHandlerWrapper initWithSelectionHandler:]):
(WebKit::nsMenuItemVector):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::deleteDatabase):
(WebKit::WebIDBServerConnection::getOrEstablishIDBDatabaseMetadata):
(WebKit::WebIDBServerConnection::openTransaction):
(WebKit::WebIDBServerConnection::beginTransaction):
(WebKit::WebIDBServerConnection::commitTransaction):
(WebKit::WebIDBServerConnection::resetTransaction):
(WebKit::WebIDBServerConnection::rollbackTransaction):
(WebKit::WebIDBServerConnection::setIndexKeys):
(WebKit::WebIDBServerConnection::createObjectStore):
(WebKit::WebIDBServerConnection::createIndex):
(WebKit::WebIDBServerConnection::deleteIndex):
(WebKit::WebIDBServerConnection::get):
(WebKit::WebIDBServerConnection::put):
(WebKit::WebIDBServerConnection::count):
(WebKit::WebIDBServerConnection::deleteRange):
(WebKit::WebIDBServerConnection::clearObjectStore):
(WebKit::WebIDBServerConnection::deleteObjectStore):
(WebKit::WebIDBServerConnection::changeDatabaseVersion):
(WebKit::WebIDBServerConnection::openCursor):
(WebKit::WebIDBServerConnection::cursorAdvance):
(WebKit::WebIDBServerConnection::cursorIterate):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.h:
* WebProcess/OriginData/WebOriginDataManagerSupplement.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::getOrigins):
(WebKit::WebProcess::deleteEntriesForOrigin):
(WebKit::WebProcess::deleteEntriesModifiedBetweenDates):
(WebKit::WebProcess::deleteAllEntries):
* WebProcess/WebProcess.h:
2014-12-16 Anders Carlsson <andersca@apple.com>
Get rid of a couple of binds in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139717
Reviewed by Sam Weinig.
* DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::postDatabaseTask):
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::didShutdownBackingStore):
(WebKit::UniqueIDBDatabase::postMainThreadTask):
(WebKit::UniqueIDBDatabase::performNextMainThreadTask):
(WebKit::UniqueIDBDatabase::postDatabaseTask):
(WebKit::UniqueIDBDatabase::performNextMainThreadTaskWithoutAdoptRef): Deleted.
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h:
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::initializeDeadNameSource):
* UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::processLauncherWorkQueue):
(WebKit::ProcessLauncher::ProcessLauncher):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::unprotectPluginFromDestruction):
(WebKit::derefPluginView): Deleted.
2014-12-16 Andreas Kling <akling@apple.com>
Use Ref for SecurityOrigin.
<https://webkit.org/b/139710>
Reviewed by Anders Carlsson.
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::databaseFilenameIdentifier):
* WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
(WebKit::WebApplicationCacheManager::deleteEntriesForOrigin):
* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::WebIDBServerConnection):
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::addOriginAccessWhitelistEntry):
(WebKit::InjectedBundle::removeOriginAccessWhitelistEntry):
2014-12-16 Anders Carlsson <andersca@apple.com>
Remove deprecated StorageNamespaceImpl overloads
https://bugs.webkit.org/show_bug.cgi?id=139713
Reviewed by Andreas Kling.
* WebProcess/Storage/StorageNamespaceImpl.cpp:
(WebKit::StorageNamespaceImpl::storageArea):
(WebKit::StorageNamespaceImpl::copy):
(WebKit::StorageNamespaceImpl::createSessionStorageNamespace): Deleted.
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace): Deleted.
* WebProcess/Storage/StorageNamespaceImpl.h:
2014-12-16 Beth Dakin <bdakin@apple.com>
Speculative build fix.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _animationControllerForCustomPreview]):
2014-12-16 Beth Dakin <bdakin@apple.com>
REGRESSION: Preview popovers obscure the link, look wrong
https://bugs.webkit.org/show_bug.cgi?id=139711
-and corresponding-
rdar://problem/19271854
Reviewed by Tim Horton.
Switch to using NSPopoverAnimationController.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _animationControllerForCustomPreview]):
2014-12-16 Timothy Horton <timothy_horton@apple.com>
Immediate action popovers can get stuck open
https://bugs.webkit.org/show_bug.cgi?id=139709
<rdar://problem/19270279>
Reviewed by Beth Dakin.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _clearImmediateActionState]):
Don't clear the animation controller; it breaks things and was unnecessary.
2014-12-16 Conrad Shultz <conrad_shultz@apple.com>
Add a progress indicator to the preview popover
https://bugs.webkit.org/show_bug.cgi?id=139699
Reviewed by Tim Horton.
* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView _setPreviewLoading:]):
Wrap -[WKImmediateActionController setPreviewLoading:].
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _createPreviewPopoverIfNeededForURL:]):
Flag the preview view controller as loading before beginning the load.
(-[WKImmediateActionController setPreviewLoading:]):
Wrap -[WKPagePreviewViewController setLoading:].
* UIProcess/mac/WKPagePreviewViewController.h:
* UIProcess/mac/WKPagePreviewViewController.mm:
(-[WKPagePreviewViewController setLoading:]):
Toggle the progress indicator animation state.
(-[WKPagePreviewViewController isLoading]):
Accessor.
(-[WKPagePreviewViewController loadView]):
Create and center an indeterminate progress indicator that won't scale with the preview content.
2014-12-16 Enrica Casucci <enrica@apple.com>
Fix iOS builders for 8.0
https://bugs.webkit.org/show_bug.cgi?id=139495
Reviewed by Jer Noble
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _mayAutomaticallyShowVideoOptimized]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
* UIProcess/ios/WebVideoFullscreenManagerProxy.mm:
2014-12-16 Gavin Barraclough <barraclough@apple.com>
Move Mac process suppression from WebCore to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139705
Reviewed by Geoff Garen.
Currently PageThrottler constructs the PageActivityState, holds a copy of the ViewState,
and an optional UserActivity.
Instead, still construct the PageActivityState but just pass this out via the Page to WebPage.
Logic From PageThrottler::updateUserActivity merged into WebPage::updateUserActivity.
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::setPageActivityState):
- added to propagate PageActivityState to WebPage.
* WebProcess/WebCoreSupport/WebChromeClient.h:
- added setPageActivityState to propagate PageActivityState to WebPage.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
- calls to updateUserActivity.
(WebKit::WebPage::setPageActivityState):
- calls to updateUserActivity.
(WebKit::WebPage::updateUserActivity):
- incorporate logic from PageThrottler::updateUserActivity.
(WebKit::WebPage::setViewState):
- calls to updateUserActivity.
(WebKit::WebPage::updatePreferences):
- calls to updateUserActivity.
* WebProcess/WebPage/WebPage.h:
- added setPageActivityState, m_activityState.
2014-12-16 Anders Carlsson <andersca@apple.com>
More StorageManager modernization
https://bugs.webkit.org/show_bug.cgi?id=139704
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::destroyStorageMap):
(WebKit::StorageManager::findStorageArea):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
2014-12-16 Anders Carlsson <andersca@apple.com>
Use Ref in another StorageManager function
https://bugs.webkit.org/show_bug.cgi?id=139700
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea):
2014-12-16 Anders Carlsson <andersca@apple.com>
Use Ref in StorageManager
https://bugs.webkit.org/show_bug.cgi?id=139698
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::TransientLocalStorageNamespace::create):
(WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::StorageArea::create):
(WebKit::StorageManager::StorageArea::clone):
(WebKit::StorageManager::LocalStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::create):
* UIProcess/Storage/StorageManager.h:
2014-12-16 Gavin Barraclough <barraclough@apple.com>
Split UserActivity from disabled flag in WebPage
https://bugs.webkit.org/show_bug.cgi?id=139696
Reviewed by Geoffrey Garen.
In preparation for other things driving the UserActivity.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
- initialize new members.
(WebKit::WebPage::updateUserActivity):
- start/stop the m_userActivity, based on m_processSupressionEnabled
(WebKit::WebPage::updatePreferences):
- call updateUserActivity to account for m_processSupressionEnabled changes.
* WebProcess/WebPage/WebPage.h:
- split m_processSuppressionDisabledByWebPreference -> m_processSupressionEnabled, m_userActivity.
2014-12-16 Anders Carlsson <andersca@apple.com>
Get rid of PassRefPtr inside StorageManager
https://bugs.webkit.org/show_bug.cgi?id=139693
Reviewed by Andreas Kling.
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::StorageArea::create):
(WebKit::StorageManager::StorageArea::StorageArea):
(WebKit::StorageManager::StorageArea::clone):
(WebKit::StorageManager::LocalStorageNamespace::create):
(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::create):
* UIProcess/Storage/StorageManager.h:
2014-12-16 Tim Horton <timothy_horton@apple.com>
Disable TextIndication for Lookup immediate actions
https://bugs.webkit.org/show_bug.cgi?id=139684
Reviewed by Anders Carlsson.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _animationControllerForText]):
2014-12-16 Dan Bernstein <mitz@apple.com>
[Cocoa] WKWebProcessPlugInLoadDelegate can’t tell what type of same-document navigation has happened
https://bugs.webkit.org/show_bug.cgi?id=139669
Reviewed by Anders Carlsson.
* Shared/API/Cocoa/_WKSameDocumentNavigationType.h: Added. Moved the
_WKSameDocumentNavigationType type definition here from WKNavigationDelegatePrivate.h.
* Shared/API/Cocoa/_WKSameDocumentNavigationTypeInternal.h: Added.
(WebKit::toWKSameDocumentNavigationType): Moved from NavigationState.mm.
* Shared/API/c/WKSharedAPICast.h:
(WebKit::toSameDocumentNavigationType): Added this conversion helper.
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Added #import.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::toWKSameDocumentNavigationType): Deleted.
* WebKit2.xcodeproj/project.pbxproj: Updated for added headers.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h: Declared new
delegate method that take a navigation type parameter.
* WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(didSameDocumentNavigationForFrame): Changed to call the new delegate method, passing the
navigation type.
2014-12-16 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.7.3 release.
* gtk/NEWS: Add release notes for 2.7.3.
2014-12-16 Antti Koivisto <antti@apple.com>
WebKit level persistent caching
https://bugs.webkit.org/show_bug.cgi?id=30322
Minor cleanups based on comments by Joseph Pecoraro.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::decodeStorageEntry):
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStorage.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
2014-12-15 Bartlomiej Gajda <b.gajda@samsung.com>
Build fix after r177301.
https://bugs.webkit.org/show_bug.cgi?id=139666
Reviewed by Gyuyoung Kim.
* WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp:
(WebKit::WebPage::findZoomableAreaForPoint):
2014-12-15 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Possible crash when setting the WKWebViews's scroll view delegate, if the scroll view outlives the web view
https://bugs.webkit.org/show_bug.cgi?id=139662
rdar://problem/18083882
Reviewed by Benjamin Poulain.
Null out the internal delegate on the WKScrollView when the WKWebView goes away, since
it's possible for a client to set its own scroll view delegate, forcing the creation of
a WKScrollViewDelegateForwarder, and then retain the UIScrollView past the lifetime of
the WKWebView. In this situation, the WKScrollViewDelegateForwarder's internalDelegate
would point to a deleted WKWebView.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView dealloc]):
2014-12-15 Beth Dakin <bdakin@apple.com>
Make lookup an immediate action instead of an action menu item
https://bugs.webkit.org/show_bug.cgi?id=139661
-and corresponding-
rdar://problem/19198414
Reviewed by Tim Horton.
New type.
* Shared/API/c/WKImmediateActionTypes.h:
ActionMenuHitTestResult now includes a DictionaryPopupInfo.
* Shared/mac/ActionMenuHitTestResult.h:
* Shared/mac/ActionMenuHitTestResult.mm:
(WebKit::ActionMenuHitTestResult::encode):
(WebKit::ActionMenuHitTestResult::decode):
Remove all lookup menu items.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForText]):
(-[WKActionMenuController _defaultMenuItemsForEditableText]):
(-[WKActionMenuController _defaultMenuItemsForEditableTextWithSuggestions]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
(-[WKActionMenuController _lookupText:]): Deleted.
Set the defaultAnimationController to the lookup-provided animation controller
when appropriate.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _animationControllerForText]):
Re-factor performDictionaryLookupForRange() so that most of the work is done in a
new function called dictionaryPopupInfoForRange(). This was that code can be used
for both performing a dictionary lookup and just getting the DictionaryPopupInfo
for the ActionMenuHitTest.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::dictionaryPopupInfoForRange):
(WebKit::WebPage::performDictionaryLookupForRange):
(WebKit::WebPage::performActionMenuHitTestAtLocation):
(WebKit::WebPage::lookupTextAtLocation):
2014-12-15 Matt Baker <mattbaker@apple.com>
Web Inspector: Docked inspector repositioned incorrectly when dragging frame borders
https://bugs.webkit.org/show_bug.cgi?id=139415
Reviewed by Joseph Pecoraro.
The _ignoreNextInspectedViewFrameDidChange flag wasn't set back to NO after
being tested by inspectedViewFrameDidChange.
* UIProcess/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter inspectedViewFrameDidChange:]):
2014-12-15 Gavin Barraclough <barraclough@apple.com>
Simplify tracking of process suppression disabled for PluginProcessManager
https://bugs.webkit.org/show_bug.cgi?id=139611
Unreviewed gtk/efl build fix.
* UIProcess/Plugins/PluginProcessManager.h:
- missing #ifdef
2014-12-15 Timothy Horton <timothy_horton@apple.com>
Implement Data Detectors immediate actions for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139617
<rdar://problem/19198539>
Reviewed by Beth Dakin.
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _menuItemForDataDetectedText]):
Note that this action context is only for immediate actions.
2014-12-15 Myles C. Maxfield <mmaxfield@apple.com>
Addressing post-review comments in r177035
https://bugs.webkit.org/show_bug.cgi?id=139557
Reviewed by Darin Adler.
* Shared/WebHitTestResult.cpp:
(WebKit::WebHitTestResult::Data::elementBoundingBoxInWindowCoordinates): Migrate off rendererBoundingBox().
* WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp:
(WebKit::WebPage::findZoomableAreaForPoint): Ditto.
2014-12-15 Timothy Horton <timothy_horton@apple.com>
Implement Data Detectors immediate actions for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=139617
<rdar://problem/19198539>
Reviewed by Beth Dakin.
* Shared/API/c/WKImmediateActionTypes.h:
Add a new type.
* UIProcess/API/mac/WKView.mm:
(-[WKView mouseDown:]):
Send mouseDown along to the WKImmediateActionController too.
(-[WKView initWithFrame:context:configuration:webView:]):
Temporarily disable action menus.
(-[WKView _dismissContentRelativeChildWindows]):
Hide the immediate action preview when detaching child windows.
* UIProcess/mac/WKImmediateActionController.h:
* UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController willDestroyView:]):
Clear the DDActionContext when tearing down the view.
(-[WKImmediateActionController wkView:willHandleMouseDown:]):
(-[WKImmediateActionController _cancelImmediateAction]):
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController _updateImmediateActionItem]):
(-[WKImmediateActionController hidePreview]):
(-[WKImmediateActionController popoverWillClose:]):
(-[WKImmediateActionController _menuItemForDataDetectedText]):
Copy most of the DataDetectors implementation into WKImmediateActionController.
2014-12-15 Myles C. Maxfield <mmaxfield@apple.com>
Delete Notation because we don't use it
https://bugs.webkit.org/show_bug.cgi?id=139171
Reviewed by Kent Tamura.
* WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:
(WebKit::WKDOMNodeClass):
* mac/MigrateHeadersFromWebKitLegacy.make:
2014-12-15 David Kilzer <ddkilzer@apple.com>
Remove last references to OfflineStorage process
<http://webkit.org/b/139648>
Reviewed by Anders Carlsson.
* WebKit2.xcodeproj/project.pbxproj: Remove last references to
the OfflineStorage process. See r154251 and r154256.
2014-12-15 Gavin Barraclough <barraclough@apple.com>
Change HysteresisActivity to use a lambda
https://bugs.webkit.org/show_bug.cgi?id=139636
Reviewed by Darin Adler.
The current implementation provides notifications via callbacks to a delegate. Using a delegate
with callbacks is limiting a number of ways. The callback names are very ambiguous, the callbacks
must either be on a separate object (more boilerplate), or the callback must be public for
HysteresisActivity to call them, or friends get involved. Without the boilerplate of extra
delegate objects it's hard to scale use of these objects – a single object can't serve as a
delegate for multiple HysteresisActivity members.
Instead, make HysteresisActivity take a lambda to callback on state change. To simplify, changed
HysteresisState to only track Started/Stopped states (removed WillStopPendingTimeout).
* WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.cpp:
(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
- HysteresisActivity now takes a lambda, not a delegate.
(WebKit::WebSQLiteDatabaseTracker::hysteresisUpdated):
(WebKit::WebSQLiteDatabaseTracker::started): Deleted.
(WebKit::WebSQLiteDatabaseTracker::stopped): Deleted.
- started/stopped merged into hysteresisUpdated
* WebProcess/WebCoreSupport/WebSQLiteDatabaseTracker.h:
- HysteresisActivity is no longer templated on delegate type, changed function declarations.
2014-12-15 Antti Koivisto <antti@apple.com>
WebKit level persistent caching
https://bugs.webkit.org/show_bug.cgi?id=30322
Reviewed by Sam Weinig.
We can improve performance and open new optimization possibilities by bringing network caching into WebKit.
This patch implements an experimental HTTP cache living in the network process.
The main classes are:
NetworkCache
- Implements HTTP cache validation logic including Vary header
- Initially non-range GET only
- Fast serialization using WebKit types (ResourcesResponse etc) instead of native network layer types
NetworkCacheKey
- Unique identifier for cache entries
- Keyed on method/partition/URL
NetworkCacheStorage
- Storage backend
- dispatch-IO based implementation (generic posix implementation wouldn't be difficult)
- File system only (no SQLite or similar)
- One file per resource containing both header and body data
- Zero persistent global metadata
- Bloom filter for fast fail
NetworkCacheEncoder/Decoder
- Serializisation support with integrity verification.
The code is behind the NETWORK_CACHE feature flag and requires network process to be enabled to use.
This patch does not enable the feature yet by default.
Test: http/tests/cache/disk-cache-validation.html
* NetworkProcess/cache/NetworkCache.cpp: Added.
* NetworkProcess/cache/NetworkCache.h: Added.
* NetworkProcess/cache/NetworkCacheKey.cpp: Added.
* NetworkProcess/cache/NetworkCacheKey.h: Added.
* NetworkProcess/cache/NetworkCacheStorage.h: Added.
* NetworkProcess/cache/NetworkCacheStorage.mm: Added.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
(WebKit::NetworkProcess::platformSetCacheModel):
* NetworkProcess/ios/NetworkProcessIOS.mm:
(WebKit::NetworkProcess::clearCacheForAllOrigins):
* NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::clearCacheForAllOrigins):
* NetworkProcess/mac/NetworkResourceLoaderMac.mm:
(WebKit::tryGetShareableHandleFromCFData):
* Platform/Logging.h:
* WebKit2.xcodeproj/project.pbxproj:
* config.h:
2014-12-15 Gavin Barraclough <barraclough@apple.com>
Simplify tracking of process suppression disabled for PluginProcessManager
https://bugs.webkit.org/show_bug.cgi?id=139611
Reviewed by Darin Adler.
Previously if process suppression state changed for any context we would
iterate over all contexts to recompute.
There was also an inconsistency in the code. When plugin processes are
created they called processSuppressionIsEnabledForAllContexts(), which
checked WebContext::processSuppressionEnabled(), which in turn checks
two things - whether any page is currently visible, and whether the
suppression is currently disabled for any page. However when updating
process supression state we would call
processSuppressionPreferenceIsEnabledForAllContexts(), which would just
check the value of the key from the context's default PageGroup.
We shouldn't be taking visibility into account (this is handled from the
content, where we know which pages have instances of which plugins), but
we should be checking the current pref value of each page.
We already track in each context whether any page has teh pref set to
disable throttling; add a counter to the shared PluginProcessManager to
coallesce across all contexts.
* UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::PluginProcessManager):
- added m_processSuppressionDisabledForPageCounter, m_processSuppressionEnabled.
* UIProcess/Plugins/PluginProcessManager.h:
(WebKit::PluginProcessManager::processSuppressionDisabledForPageCount):
- accessor for WebContext to increment count.
(WebKit::PluginProcessManager::processSuppressionEnabled):
- accessor for PluginProcessProxy.
* UIProcess/Plugins/PluginProcessProxy.cpp:
(WebKit::PluginProcessProxy::didFinishLaunching):
- get initial supression state from the PluginProcessManager, not WebContext.
* UIProcess/Plugins/mac/PluginProcessManagerMac.mm:
(WebKit::PluginProcessManager::updateProcessSuppressionState):
(WebKit::PluginProcessManager::setProcessSuppressionEnabled): Deleted.
- setProcessSuppressionEnabled -> updateProcessSuppressionState
rather than WebContext setting suppression state, PluginProcessManager detects
when this may need to change & determines a new value for itself.
* UIProcess/WebContext.h:
- removed processSuppressionIsEnabledForAllContexts, processSuppressionPreferenceIsEnabledForAllContexts
updateProcessSuppressionState is no longer const (updates m_pluginProcessManagerProcessSuppressionDisabledCount).
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::updateProcessSuppressionState):
- instead of explicitly recomputing plugin throttling state from Within the WebContext, just update
m_pluginProcessManagerProcessSuppressionDisabledCount to count a RefCounter on the shared PluginProcessManager.
(WebKit::WebContext::processSuppressionIsEnabledForAllContexts): Deleted.
(WebKit::WebContext::processSuppressionPreferenceIsEnabledForAllContexts): Deleted.
- removed.
2014-12-15 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Use API::LoaderClient instead of WKPageLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=139583
Reviewed by Gustavo Noronha Silva.
It simplifies the code and it will make easier to implement new
loader client methods.
* UIProcess/API/gtk/WebKitBackForwardList.cpp:
(webkitBackForwardListChanged):
* UIProcess/API/gtk/WebKitBackForwardListPrivate.h:
* UIProcess/API/gtk/WebKitLoaderClient.cpp:
(LoaderClient::LoaderClient):
(attachLoaderClientToView):
(didStartProvisionalLoadForFrame): Deleted.
(didReceiveServerRedirectForProvisionalLoadForFrame): Deleted.
(didFailProvisionalLoadWithErrorForFrame): Deleted.
(didCommitLoadForFrame): Deleted.
(didFinishLoadForFrame): Deleted.
(didFailLoadWithErrorForFrame): Deleted.
(didDisplayInsecureContentForFrame): Deleted.
(didRunInsecureContentForFrame): Deleted.
(didChangeBackForwardList): Deleted.
(didReceiveAuthenticationChallengeInFrame): Deleted.
(processDidCrash): Deleted.
2014-12-15 Gwang Yoon Hwang <yoon@igalia.com>
Add initial implementation of ThreadSafeCoordinatedSurface, ThreadedCompositor, and SimpleViewportController
https://bugs.webkit.org/show_bug.cgi?id=118383
Reviewed by Martin Robinson.
Implements an initial version of the Threaded Compositor.
Threaded Compositor is a variant of Coordinated Graphics implementation.
Basic structure of the implementaion is simliar, thus, Threaded
Compositor reuses lots of classes from Coordinated Graphics. However,
instead of compositing on UI Process, Threaded Compositor performs
compositing on a dedicate thread of Web Process.
No new test, because it is in experimental stage.
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
Removed a assertion not to force its creation in the main thread. In
the Threaded Compositor, it can be created in the dedicated thread.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp: Added.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.h: Added.
Implements a surface using ImageBuffer as a backend to use in the Web
Process.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: Added.
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: Added.
Implements a compositor which runs on the created thread. It owns
SimpleViewportController and CoordinatedGraphicsScene to render scene on the
actual surface.
* Shared/CoordinatedGraphics/SimpleViewportController.cpp: Added.
* Shared/CoordinatedGraphics/SimpleViewportController.h: Added.
This class is responsible to handle scale factor and scrolling position
with a simplifed logic in the compositing thread.
2014-12-14 Andreas Kling <akling@apple.com>
Replace PassRef with Ref/Ref&& across the board.
<https://webkit.org/b/139587>
Reviewed by Darin Adler.
* UIProcess/WebBackForwardList.h:
(WebKit::WebBackForwardList::create):
* UIProcess/WebBatteryManagerProxy.cpp:
(WebKit::WebBatteryManagerProxy::create):
* UIProcess/WebBatteryManagerProxy.h:
* UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::createNonNull):
* UIProcess/WebPageGroup.h:
* UIProcess/efl/BatteryProvider.cpp:
(BatteryProvider::create):
* UIProcess/efl/BatteryProvider.h:
* WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
* WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::WebEditorClient::shouldApplyStyle):
* WebProcess/WebCoreSupport/WebUserMediaClient.cpp:
(WebKit::WebUserMediaClient::requestPermission):
* WebProcess/WebCoreSupport/WebUserMediaClient.h:
* WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::create):
* WebProcess/WebPage/ViewUpdateDispatcher.h:
2014-12-12 Gavin Barraclough <barraclough@apple.com>
Split WebPageProxy::m_preventProcessSuppression to track pref/visibility separately
https://bugs.webkit.org/show_bug.cgi?id=139600
Reviewed by Geoff Garen.
Previously WebPageProxy::m_preventProcessSuppression would be set if either the page was visible
or its suppression was disabled by the pref. Instead track these separately. This will make the
user observability state applicable on iOS, too.
Add a new counter to WebContext, and split the counting in WebPageProxy.
::updateProccessSuppressionState continues to track the pref change (which matches its name),
tracking of user observability changes moved to updateActivityToken (which we should further
merge with; it already tracks observability to control process state for iOS).
* UIProcess/WebContext.cpp:
(WebKit::m_processSuppressionDisabledForPageCounter):
- added new RefCounter.
* UIProcess/WebContext.h:
(WebKit::WebContext::processSuppressionDisabledForPageCount):
- added new RefCounter.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reattachToWebProcess):
- no longer needs to call updateProccessSuppressionState (pref has not changed; handled by the call to updateActivityToken).
(WebKit::WebPageProxy::dispatchViewStateChange):
- no longer needs to call updateProccessSuppressionState (pref has not changed; handled by the call to updateActivityToken).
(WebKit::WebPageProxy::updateActivityToken):
- this now also updated the user observability counter.
(WebKit::WebPageProxy::updateProccessSuppressionState):
- now only tracks whether this is disabled via the preference.
(WebKit::WebPageProxy::resetStateAfterProcessExited):
- clear the user observability counter; thsi will be reset on reattach.
* UIProcess/WebPageProxy.h:
- added new RefCounter::Count.
* UIProcess/mac/WebContextMac.mm:
(WebKit::WebContext::processSuppressionEnabled):
- processSuppressionEnabled is disabled if *neither*:
- there are user observable pages
- disabled by pref for any page.
2014-12-12 Beth Dakin <bdakin@apple.com>
Need a fake mouse move after hiding data detectors UI
https://bugs.webkit.org/show_bug.cgi?id=139608
-and corresponding-
rdar://problem/19221935
Reviewed by Tim Horton.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::dataDetectorsDidHideUI):
2014-12-12 Anders Carlsson <andersca@apple.com>
Handle caches in WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=139607
<rdar://problem/19107614>
Reviewed by Sam Weinig.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeNetworkProcessAccessType):
2014-12-12 Enrica Casucci <enrica@apple.com>
[iOS] Predictions are not updated when using navigation buttons.
https://bugs.webkit.org/show_bug.cgi?id=139567
rdar://problem/19132585
Reviewed by Dan Bernstein.
When moving focus programmatically, we need to notify the keyboard so that it
can update the prediction bar.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKFormInputSession setAccessoryViewCustomButtonTitle:]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView inputAssistantButtonItems]):
(-[WKContentView accessoryTab:]):
(-[WKContentView _startAssistingKeyboard]):
(-[WKContentView _stopAssistingNode]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::focusNextAssistedNode):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::focusNextAssistedNode):
2014-12-12 Timothy Horton <timothy_horton@apple.com>
TextIndicator (and other view-relative subwindows) is not dismissed on zoom gesture
https://bugs.webkit.org/show_bug.cgi?id=139580
<rdar://problem/19226350>