Remove unused WebPageIOS::zoomToRect and plumbing
[WebKit.git] / Source / WebKit2 / ChangeLog
1 2017-03-08  Tim Horton  <timothy_horton@apple.com>
2
3         Remove unused WebPageIOS::zoomToRect and plumbing
4         https://bugs.webkit.org/show_bug.cgi?id=169344
5
6         Reviewed by Alex Christensen.
7
8         * UIProcess/PageClient.h:
9         * UIProcess/WebPageProxy.h:
10         * UIProcess/WebPageProxy.messages.in:
11         * UIProcess/ios/PageClientImplIOS.h:
12         * UIProcess/ios/PageClientImplIOS.mm:
13         (WebKit::PageClientImpl::zoomToRect): Deleted.
14         * WebProcess/WebPage/WebPage.h:
15         * WebProcess/WebPage/ios/WebPageIOS.mm:
16         (WebKit::WebPage::zoomToRect): Deleted.
17
18 2017-03-08  Brad Wright  <bwright2@apple.com>
19
20         UIViewController with WKWebView presented modally causes the presented UIViewController to be dismissed.
21         https://bugs.webkit.org/show_bug.cgi?id=165225
22         
23         Reviewed by Wenson Hsieh.
24
25         The problem happens on an iPhone with a WKWebView inside a view controller presented modally. If the user selects an HTML file input 
26         tag button, a UIDocumentMenuViewController will appear. Anything the user does next causes the entire modal view controller to get dismissed.
27
28         To fix this problem, I prevent the UIDocumentMenuViewController from being dismissed by not saving a pointer to it. The UIDocumentMenuViewController 
29         always goes away by itself on any user interaction. Trying to dismiss the UIDocumentMenuViewController when it is already dismissed causes the modal view controller
30         to be dismissed.
31
32         * UIProcess/ios/forms/WKFileUploadPanel.mm:
33         (-[WKFileUploadPanel _cancel]):
34         (-[WKFileUploadPanel dismiss]):
35         (-[WKFileUploadPanel _showDocumentPickerMenu]):
36         (-[WKFileUploadPanel _presentMenuOptionForCurrentInterfaceIdiom:]):
37         (-[WKFileUploadPanel _presentForCurrentInterfaceIdiom:]): Deleted.
38
39 2017-03-08  Alexey Proskuryakov  <ap@apple.com>
40
41         WebKit should not export dyld install name hints on watchOS and tvOS
42         https://bugs.webkit.org/show_bug.cgi?id=169342
43
44         Reviewed by Dan Bernstein.
45
46         * Shared/API/Cocoa/WebKit.m:
47
48 2017-03-07  Simon Fraser  <simon.fraser@apple.com>
49
50         Have fixedPositionCreatesStackingContext be on by default everywhere
51         https://bugs.webkit.org/show_bug.cgi?id=169334
52
53         Reviewed by Zalan Bujtas.
54
55         It makes no sense to have web-exposed CSS functionality be different based on setting,
56         and other browser are now aligned with having position:fixed create stacking context.
57
58         So remove the fixedPositionCreatesStackingContext setting and have StyleResolver::adjustRenderStyle()
59         always force stacking context for position:fixed.
60
61         * WebProcess/WebPage/WebPage.cpp:
62         (WebKit::WebPage::setUseFixedLayout):
63         * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
64         (WebKit::RemoteLayerTreeDrawingArea::updatePreferences):
65         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
66         (WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
67
68 2017-03-07  Brent Fulgham  <bfulgham@apple.com>
69
70         [Mac][WK2] Whitelist iokit-get-properties
71         https://bugs.webkit.org/show_bug.cgi?id=169331
72         <rdar://problem/16363632>
73
74         Reviewed by Alex Christensen.
75
76         Block access to all IOKit properties by default. Turn on only those properties
77         that are actually needed by our engine.
78
79         * DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
80         * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
81         * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
82         * WebProcess/com.apple.WebProcess.sb.in:
83
84 2017-03-07  Simon Fraser  <simon.fraser@apple.com>
85
86         Enable SubpixelAntialiasedLayerTextEnabled by default on some versions of macOS
87         https://bugs.webkit.org/show_bug.cgi?id=169329
88
89         Reviewed by Tim Horton.
90
91         If the macOS version is > 101300, enable subpixelAntialiasedLayerTextEnabled.
92
93         * Shared/WebPreferencesDefinitions.h:
94
95 2017-03-07  Dean Jackson  <dino@apple.com>
96
97         Some platforms won't be able to create a GPUDevice
98         https://bugs.webkit.org/show_bug.cgi?id=169314
99         <rdar://problems/30907521>
100
101         Reviewed by Jon Lee.
102
103         Disable WEB_GPU on the iOS Simulator.
104
105         * Configurations/FeatureDefines.xcconfig:
106
107 2017-03-07  Brent Fulgham  <bfulgham@apple.com>
108
109         [Mac][iOS][WK2] Whitelist sysctl-read
110         https://bugs.webkit.org/show_bug.cgi?id=169306
111         <rdar://problem/16371458>
112
113         Reviewed by Alex Christensen.
114
115         Limit access to the 'sysctl' call to read-only cases of the very small
116         set of operations we actually use.
117
118         * DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
119         * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
120         * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
121         * Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb:
122         * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
123         * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
124         * WebProcess/com.apple.WebProcess.sb.in:
125
126 2017-03-07  Alex Christensen  <achristensen@webkit.org>
127
128         [Content Extensions] Rename "Domain" to "Condition" where appropriate
129         https://bugs.webkit.org/show_bug.cgi?id=169297
130
131         Reviewed by Brady Eidson.
132
133         * Shared/WebCompiledContentExtension.cpp:
134         (WebKit::WebCompiledContentExtension::filtersWithoutConditionsBytecode):
135         (WebKit::WebCompiledContentExtension::filtersWithoutConditionsBytecodeLength):
136         (WebKit::WebCompiledContentExtension::filtersWithConditionsBytecode):
137         (WebKit::WebCompiledContentExtension::filtersWithConditionsBytecodeLength):
138         (WebKit::WebCompiledContentExtension::conditionedFiltersBytecode):
139         (WebKit::WebCompiledContentExtension::conditionedFiltersBytecodeLength):
140         (WebKit::WebCompiledContentExtension::filtersWithoutDomainsBytecode): Deleted.
141         (WebKit::WebCompiledContentExtension::filtersWithoutDomainsBytecodeLength): Deleted.
142         (WebKit::WebCompiledContentExtension::filtersWithDomainsBytecode): Deleted.
143         (WebKit::WebCompiledContentExtension::filtersWithDomainsBytecodeLength): Deleted.
144         (WebKit::WebCompiledContentExtension::domainFiltersBytecode): Deleted.
145         (WebKit::WebCompiledContentExtension::domainFiltersBytecodeLength): Deleted.
146         * Shared/WebCompiledContentExtension.h:
147         * Shared/WebCompiledContentExtensionData.cpp:
148         (WebKit::WebCompiledContentExtensionData::encode):
149         (WebKit::WebCompiledContentExtensionData::decode):
150         * Shared/WebCompiledContentExtensionData.h:
151         (WebKit::WebCompiledContentExtensionData::WebCompiledContentExtensionData):
152         * UIProcess/API/APIUserContentExtensionStore.cpp:
153         (API::ContentExtensionMetaData::fileSize):
154         (API::encodeContentExtensionMetaData):
155         (API::decodeContentExtensionMetaData):
156         (API::compiledToFile):
157         (API::createExtension):
158         (API::UserContentExtensionStore::lookupContentExtension):
159         (API::UserContentExtensionStore::compileContentExtension):
160         (API::UserContentExtensionStore::removeContentExtension):
161         * UIProcess/API/APIUserContentExtensionStore.h:
162
163 2017-03-07  Brent Fulgham  <bfulgham@apple.com>
164
165         [Mac][WK2] Expand sandbox to support access to audio component registrar
166         https://bugs.webkit.org/show_bug.cgi?id=169283
167         <rdar://problem/30793512>
168
169         Reviewed by Alexey Proskuryakov.
170
171         * WebProcess/com.apple.WebProcess.sb.in:
172
173 2017-03-07  Chris Dumez  <cdumez@apple.com>
174
175         Port DOMTimer from std::chrono::milliseconds to WTF::Seconds type
176         https://bugs.webkit.org/show_bug.cgi?id=169236
177
178         Reviewed by Simon Fraser.
179
180         * UIProcess/WebProcessPool.cpp:
181         (WebKit::WebProcessPool::updateHiddenPageThrottlingAutoIncreaseLimit):
182         * WebProcess/WebPage/WebPage.h:
183         (WebKit::WebPage::setHiddenPageDOMTimerThrottlingIncreaseLimit):
184         * WebProcess/WebProcess.cpp:
185         (WebKit::WebProcess::setHiddenPageDOMTimerThrottlingIncreaseLimit):
186         * WebProcess/WebProcess.h:
187         * WebProcess/WebProcess.messages.in:
188
189 2017-03-06  Aakash Jain  <aakash_jain@apple.com>
190
191         Enable SUPPORTS_TEXT_BASED_API in WebKit2 for iOS
192         https://bugs.webkit.org/show_bug.cgi?id=169233
193
194         Reviewed by Alexey Proskuryakov.
195
196         * Configurations/Base.xcconfig: Enable SUPPORTS_TEXT_BASED_API.
197         * Configurations/WebKit.xcconfig: Pass information to TAPI about reexporting WebKitLegacy and few extra headers.
198         * WebKit2.xcodeproj/project.pbxproj: Run scripts which are run for installhdrs phase for installapi phase as well.
199
200 2017-03-06  Dan Bernstein  <mitz@apple.com>
201
202         [Cocoa] Expose API::InjectedBundle::EditorClient::didChange via the Objective-C bundle SPI
203         https://bugs.webkit.org/show_bug.cgi?id=169223
204
205         Reviewed by Tim Horton.
206
207         * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInEditingDelegate.h: Declared new
208           delegate method -_webProcessPlugInBrowserContextControllerDidChangeByEditing:.
209         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
210         (-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]): Added an override
211           of API::InjectedBundle::EditorClient::didChange that calls the new delegate method.
212
213 2017-03-06  Michael Saboff  <msaboff@apple.com>
214
215         Unreviewed build fix after r213492.
216
217         * Configurations/Base.xcconfig:
218
219 2017-03-06  Aakash Jain  <aakash_jain@apple.com>
220
221         Add WK_CLASS_AVAILABLE to _WKLinkIconParameters and _WKWebViewPrintFormatter
222         https://bugs.webkit.org/show_bug.cgi?id=169225
223
224         Reviewed by Tim Horton.
225
226         * UIProcess/API/Cocoa/_WKLinkIconParameters.h:
227         * UIProcess/_WKWebViewPrintFormatter.h:
228
229 2017-03-06  Michael Saboff  <msaboff@apple.com>
230
231         Unreviewed build fix after r213483.
232
233         * Configurations/Base.xcconfig:
234
235 2017-03-06  Brent Fulgham  <bfulgham@apple.com>
236
237         [Mac][WK2] Support new CoreMedia routing features
238         https://bugs.webkit.org/show_bug.cgi?id=169241
239         <rdar://problem/30077969>
240
241         Reviewed by Alexey Proskuryakov.
242
243         * WebProcess/com.apple.WebProcess.sb.in:
244
245 2017-03-06  Michael Saboff  <msaboff@apple.com>
246
247         Take advantage of fast permissions switching of JIT memory for devices that support it
248         https://bugs.webkit.org/show_bug.cgi?id=169155
249
250         Reviewed by Saam Barati.
251
252         Updated the Xcode config files to match what is in the JavaScriptCore ones.
253
254         * Configurations/FeatureDefines.xcconfig:
255
256 2017-03-06  Aakash Jain  <aakash_jain@apple.com>
257
258         Make WKMenuItemIdentifiersPrivate.h private header
259         https://bugs.webkit.org/show_bug.cgi?id=168981
260
261         Reviewed by Tim Horton.
262
263         * WebKit2.xcodeproj/project.pbxproj: Made WKMenuItemIdentifiersPrivate.h private.
264
265 2017-03-06  Alexey Proskuryakov  <ap@apple.com>
266
267         Replace -sub_umbrella linker flag with a build setting
268         https://bugs.webkit.org/show_bug.cgi?id=169146
269
270         Reviewed by Tim Horton.
271
272         * Configurations/WebKit.xcconfig:
273
274 2017-03-03  Matt Rajca  <mrajca@apple.com>
275
276         Media: notify clients when the user never plays a media element that was prevented from auto-playing
277         https://bugs.webkit.org/show_bug.cgi?id=169150
278
279         Reviewed by Alex Christensen.
280
281         * UIProcess/API/C/WKPageUIClient.h:
282
283 2017-03-06  Myles C. Maxfield  <mmaxfield@apple.com>
284
285         Expand font-weight and font-stretch to take any number
286         https://bugs.webkit.org/show_bug.cgi?id=168889
287
288         Reviewed by Simon Fraser.
289
290         Migrate off old enum types.
291
292         * WebProcess/WebPage/WebPage.cpp:
293         (WebKit::WebPage::editorState):
294
295 2017-03-06  Andreas Kling  <akling@apple.com>
296
297         [iOS] Report domains crashing under memory pressure via enhanced privacy logging.
298         <https://webkit.org/b/169133>
299         <rdar://problem/29964017>
300
301         Reviewed by Antti Koivisto.
302
303         Notify the UI process when the memory pressure status changes.
304         If a web process crashes while under memory pressure, log the domain of the last open page
305         using enhanced privacy logging.
306
307         * UIProcess/WebPageProxy.cpp:
308         (WebKit::WebPageProxy::processDidCrash):
309         * UIProcess/WebProcessProxy.h:
310         (WebKit::WebProcessProxy::memoryPressureStatusChanged):
311         (WebKit::WebProcessProxy::isUnderMemoryPressure):
312         * UIProcess/WebProcessProxy.messages.in:
313         * WebProcess/WebProcess.cpp:
314         (WebKit::WebProcess::initializeWebProcess):
315
316 2017-03-05  Brady Eidson  <beidson@apple.com>
317
318         Remove new files accidentally added in r213441
319
320         Unreviewed.
321
322         * UIProcess/WebLoadingProviderProxy.cpp: Removed.
323         * UIProcess/WebLoadingProviderProxy.h: Removed.
324         * UIProcess/WebLoadingProviderProxy.messages.in: Removed.
325
326 2017-03-05  Brady Eidson  <beidson@apple.com>
327
328         Rename CustomProtocolFoo to LegacyCustomProtocolFoo.
329         https://bugs.webkit.org/show_bug.cgi?id=169188
330
331         Reviewed by Andy Estes.
332
333         * CMakeLists.txt:
334         * DerivedSources.make:
335
336         * NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm: Renamed from Source/WebKit2/NetworkProcess/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm.
337         (+[WKCustomProtocol canInitWithRequest:]):
338         (+[WKCustomProtocol canonicalRequestForRequest:]):
339         (+[WKCustomProtocol requestIsCacheEquivalent:toRequest:]):
340         (-[WKCustomProtocol initWithRequest:cachedResponse:client:]):
341         (-[WKCustomProtocol initializationRunLoop]):
342         (-[WKCustomProtocol startLoading]):
343         (-[WKCustomProtocol stopLoading]):
344         (WebKit::LegacyCustomProtocolManager::registerProtocolClass):
345         (WebKit::LegacyCustomProtocolManager::registerScheme):
346         (WebKit::LegacyCustomProtocolManager::unregisterScheme):
347         (WebKit::LegacyCustomProtocolManager::supportsScheme):
348         (WebKit::dispatchOnInitializationRunLoop):
349         (WebKit::LegacyCustomProtocolManager::didFailWithError):
350         (WebKit::LegacyCustomProtocolManager::didLoadData):
351         (WebKit::LegacyCustomProtocolManager::didReceiveResponse):
352         (WebKit::LegacyCustomProtocolManager::didFinishLoading):
353         (WebKit::LegacyCustomProtocolManager::wasRedirectedToRequest):
354         (WebKit::LegacyCustomProtocolManager::protocolForID):
355
356         * NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.cpp: Renamed from Source/WebKit2/NetworkProcess/CustomProtocols/CustomProtocolManager.cpp.
357         (WebKit::generateCustomProtocolID):
358         (WebKit::LegacyCustomProtocolManager::supplementName):
359         (WebKit::LegacyCustomProtocolManager::LegacyCustomProtocolManager):
360         (WebKit::LegacyCustomProtocolManager::initialize):
361         (WebKit::LegacyCustomProtocolManager::addCustomProtocol):
362         (WebKit::LegacyCustomProtocolManager::removeCustomProtocol):
363         (WebKit::LegacyCustomProtocolManager::startLoading):
364         (WebKit::LegacyCustomProtocolManager::stopLoading):
365         * NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h: Renamed from Source/WebKit2/NetworkProcess/CustomProtocols/CustomProtocolManager.h.
366         * NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.messages.in: Renamed from Source/WebKit2/NetworkProcess/CustomProtocols/CustomProtocolManager.messages.in.
367
368         * NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp: Renamed from Source/WebKit2/NetworkProcess/CustomProtocols/soup/CustomProtocolManagerSoup.cpp.
369         (WebKit::CustomProtocolManager::WebSoupRequestAsyncData::WebSoupRequestAsyncData):
370         (WebKit::CustomProtocolManager::WebSoupRequestAsyncData::~WebSoupRequestAsyncData):
371         (WebKit::CustomProtocolManager::registerProtocolClass):
372         (WebKit::CustomProtocolManager::registerScheme):
373         (WebKit::CustomProtocolManager::unregisterScheme):
374         (WebKit::CustomProtocolManager::supportsScheme):
375         (WebKit::CustomProtocolManager::didFailWithError):
376         (WebKit::CustomProtocolManager::didLoadData):
377         (WebKit::CustomProtocolManager::didReceiveResponse):
378         (WebKit::CustomProtocolManager::didFinishLoading):
379         (WebKit::CustomProtocolManager::wasRedirectedToRequest):
380
381         * NetworkProcess/NetworkProcess.cpp:
382         (WebKit::NetworkProcess::NetworkProcess):
383
384         * NetworkProcess/NetworkSession.cpp:
385         (WebKit::NetworkSession::create):
386         * NetworkProcess/NetworkSession.h:
387
388         * NetworkProcess/cocoa/NetworkSessionCocoa.h:
389         * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
390         (WebKit::globalLegacyCustomProtocolManager):
391         (WebKit::NetworkSessionCocoa::setLegacyCustomProtocolManager):
392         (WebKit::NetworkSessionCocoa::create):
393         (WebKit::NetworkSessionCocoa::defaultSession):
394         (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
395         (WebKit::globalCustomProtocolManager): Deleted.
396         (WebKit::NetworkSessionCocoa::setCustomProtocolManager): Deleted.
397
398         * NetworkProcess/mac/RemoteNetworkingContext.mm:
399         (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):
400
401         * UIProcess/API/APICustomProtocolManagerClient.h:
402         (API::LegacyCustomProtocolManagerClient::~LegacyCustomProtocolManagerClient):
403         (API::LegacyCustomProtocolManagerClient::startLoading):
404         (API::LegacyCustomProtocolManagerClient::stopLoading):
405         (API::LegacyCustomProtocolManagerClient::invalidate):
406         (API::CustomProtocolManagerClient::~CustomProtocolManagerClient): Deleted.
407         (API::CustomProtocolManagerClient::startLoading): Deleted.
408         (API::CustomProtocolManagerClient::stopLoading): Deleted.
409         (API::CustomProtocolManagerClient::invalidate): Deleted.
410
411         * UIProcess/Cocoa/LegacyCustomProtocolManagerClient.h: Renamed from Source/WebKit2/UIProcess/Cocoa/CustomProtocolManagerClient.h.
412         * UIProcess/Cocoa/LegacyCustomProtocolManagerClient.mm: Renamed from Source/WebKit2/UIProcess/Cocoa/CustomProtocolManagerClient.mm.
413         (-[WKCustomProtocolLoader initWithLegacyCustomProtocolManagerProxy:customProtocolID:request:]):
414         (-[WKCustomProtocolLoader dealloc]):
415         (-[WKCustomProtocolLoader customProtocolManagerProxyDestroyed]):
416         (-[WKCustomProtocolLoader connection:didFailWithError:]):
417         (-[WKCustomProtocolLoader connection:willCacheResponse:]):
418         (-[WKCustomProtocolLoader connection:didReceiveResponse:]):
419         (-[WKCustomProtocolLoader connection:didReceiveData:]):
420         (-[WKCustomProtocolLoader connection:willSendRequest:redirectResponse:]):
421         (-[WKCustomProtocolLoader connectionDidFinishLoading:]):
422         (WebKit::LegacyCustomProtocolManagerClient::startLoading):
423         (WebKit::LegacyCustomProtocolManagerClient::stopLoading):
424         (WebKit::LegacyCustomProtocolManagerClient::invalidate):
425
426         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
427         (WebKit::WebProcessPool::platformInitialize):
428
429         * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.cpp: Removed.
430         * UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.cpp: Added.
431         (WebKit::LegacyCustomProtocolManagerProxy::LegacyCustomProtocolManagerProxy):
432         (WebKit::LegacyCustomProtocolManagerProxy::~LegacyCustomProtocolManagerProxy):
433         (WebKit::LegacyCustomProtocolManagerProxy::startLoading):
434         (WebKit::LegacyCustomProtocolManagerProxy::stopLoading):
435         (WebKit::LegacyCustomProtocolManagerProxy::processDidClose):
436         (WebKit::LegacyCustomProtocolManagerProxy::wasRedirectedToRequest):
437         (WebKit::LegacyCustomProtocolManagerProxy::didReceiveResponse):
438         (WebKit::LegacyCustomProtocolManagerProxy::didLoadData):
439         (WebKit::LegacyCustomProtocolManagerProxy::didFailWithError):
440         (WebKit::LegacyCustomProtocolManagerProxy::didFinishLoading):
441         * UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.h: Renamed from Source/WebKit2/UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h.
442         * UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.messages.in: Renamed from Source/WebKit2/UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.messages.in.
443
444         * UIProcess/Network/NetworkProcessProxy.cpp:
445         * UIProcess/Network/NetworkProcessProxy.h:
446
447         * UIProcess/WebProcessPool.cpp:
448         (WebKit::WebProcessPool::WebProcessPool):
449         (WebKit::WebProcessPool::setLegacyCustomProtocolManagerClient):
450         (WebKit::WebProcessPool::registerSchemeForCustomProtocol):
451         (WebKit::WebProcessPool::unregisterSchemeForCustomProtocol):
452         (WebKit::WebProcessPool::setCustomProtocolManagerClient): Deleted.
453         * UIProcess/WebProcessPool.h:
454
455         * WebKit2.xcodeproj/project.pbxproj:
456
457         * WebProcess/cocoa/WebProcessCocoa.mm:
458
459 2017-03-04  Eric Carlson  <eric.carlson@apple.com>
460
461         [iOS] The web process should inherit application state from UI process
462         https://bugs.webkit.org/show_bug.cgi?id=169156
463         <rdar://problem/30845473>
464
465         Reviewed by Alexey Proskuryakov.
466
467         * Platform/spi/ios/CelestialSPI.h: Added.
468
469         * WebKit2.xcodeproj/project.pbxproj: Include CelestialSPI.h.
470
471         * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-iOS.plist: Add entitlement.
472
473         * WebProcess/WebPage/ios/WebPageIOS.mm:
474         (WebKit::WebPage::platformInitialize): Set up PID proxying.
475
476 2017-03-04  Aakash Jain  <aakash_jain@apple.com>
477
478         Add symbols required by TAPI from Shared/API/Cocoa/WebKit.m in a header file
479         https://bugs.webkit.org/show_bug.cgi?id=169162
480
481         Reviewed by Alexey Proskuryakov.
482
483         The symbols from binary and headers should match precisely, otherwise TAPI would
484         complain. There are few symbols which are not actually needed in header file, but
485         we still need to add them in a header file to make TAPI happy.
486
487         * Platform/ExtraPublicSymbolsForTAPI.h: Added.
488         * WebKit2.xcodeproj/project.pbxproj: Added ExtraPublicSymbolsForTAPI.h
489
490 2017-03-04  Aakash Jain  <aakash_jain@apple.com>
491
492         Add symbols required by TAPI in a header file
493         https://bugs.webkit.org/show_bug.cgi?id=169113
494         <rdar://problem/30772033>
495
496         Reviewed by Alexey Proskuryakov.
497
498         The symbols from binary and headers should match precisely, otherwise TAPI would
499         complain. There are few symbols which are not actually needed in header file, but
500         we still need to add them in a header file to make TAPI happy.
501
502         * Platform/ExtraPrivateSymbolsForTAPI.h: Added.
503         * WebKit2.xcodeproj/project.pbxproj: Added Platform/ExtraPrivateSymbolsForTAPI.h
504
505 2017-03-04  Joseph Pecoraro  <pecoraro@apple.com>
506
507         Remove duplicate initialization guard in WebKit2 logging initialization
508         https://bugs.webkit.org/show_bug.cgi?id=169164
509
510         Reviewed by Dan Bernstein.
511
512         * Platform/Logging.cpp:
513         (WebKit::initializeLogChannelsIfNecessary):
514
515 2017-03-03  Youenn Fablet  <youenn@apple.com>
516
517         [WebRTC] Update libwebrtc source code
518         https://bugs.webkit.org/show_bug.cgi?id=168599
519
520         Reviewed by Alex Christensen.
521
522         * WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
523
524 2017-03-03  Dean Jackson  <dino@apple.com>
525
526         Add WebGPU compile flag and experimental feature flag
527         https://bugs.webkit.org/show_bug.cgi?id=169161
528         <rdar://problem/30846689>
529
530         Reviewed by Tim Horton.
531
532         Add ENABLE_WEBGPU, an experimental feature flag, a RuntimeEnabledFeature,
533         and an InternalSetting.
534
535         * Configurations/FeatureDefines.xcconfig:
536         * Shared/WebPreferencesDefinitions.h:
537         * WebProcess/InjectedBundle/InjectedBundle.cpp:
538         (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
539         * WebProcess/WebPage/WebPage.cpp:
540         (WebKit::WebPage::updatePreferences):
541
542 2017-03-03  Dean Jackson  <dino@apple.com>
543
544         Move Input Events and Gamepad from experimental features into main preferences
545         https://bugs.webkit.org/show_bug.cgi?id=169157
546         <rdar://problems/30845587>
547
548         Reviewed by Myles C. Maxfield.
549
550         These are no longer experimental on trunk.
551
552         * Shared/WebPreferencesDefinitions.h:
553
554 2017-03-03  Brent Fulgham  <bfulgham@apple.com>
555
556         [MediaStream iOS] REGRESSION(r212883): Missing function definition breaks sandbox
557         https://bugs.webkit.org/show_bug.cgi?id=169148
558         <rdar://problem/30825728>
559
560         Reviewed by Alex Christensen.
561
562         The changes in r212883 added a call to 'shared-preferences-read', which is not defined
563         for iOS. In fact, it's not needed since 'user-preference-read' does everything we need on iOS.
564         Switch to the correct preference rule.
565
566         * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Add missing function
567
568 2017-03-03  Aakash Jain  <aakash_jain@apple.com>
569
570         Move declaration of _WKSetCrashReportApplicationSpecificInformation to header file
571         https://bugs.webkit.org/show_bug.cgi?id=169043
572
573         Reviewed by Alex Christensen.
574
575         * WebKit2.xcodeproj/project.pbxproj: Added WebProcessCocoa.h
576         * WebProcess/cocoa/WebProcessCocoa.h: Added.
577         * WebProcess/cocoa/WebProcessCocoa.mm: Imported WebProcessCocoa.h
578         * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm: Ditto.
579
580 2017-03-03  Carlos Garcia Campos  <cgarcia@igalia.com>
581
582         [GTK] Ensure WebKitWebView always have a user content manager
583         https://bugs.webkit.org/show_bug.cgi?id=169130
584
585         Reviewed by Michael Catanzaro.
586
587         User content manager is a construct only property, so if not set by the user the web view doesn't have any. We
588         can create a default one, like we do for settings, when user didn't provide one.
589
590         * UIProcess/API/gtk/WebKitWebView.cpp:
591         (webkitWebViewConstructed):
592
593 2017-03-02  Sam Weinig  <sam@webkit.org>
594
595         Rename htmlediting.h/cpp to Editing.h/cpp
596         https://bugs.webkit.org/show_bug.cgi?id=169103
597
598         Reviewed by Alex Christensen.
599
600         * WebProcess/WebPage/WebPage.cpp:
601         * WebProcess/WebPage/ios/WebPageIOS.mm:
602         * WebProcess/WebPage/mac/WebPageMac.mm:
603
604 2017-03-02  Joseph Pecoraro  <pecoraro@apple.com>
605
606         [Mac] Set the NSURLSessionTask priority to match the request's priority
607         https://bugs.webkit.org/show_bug.cgi?id=169115
608         <rdar://problem/28881392>
609
610         Reviewed by Alex Christensen.
611
612         * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
613         (WebKit::toNSURLSessionTaskPriority):
614         (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
615         Set the priority on the task based on the ResourceRequest's priority.
616         This is used for HTTP/2 request prioritization.
617
618 2017-03-02  Mark Lam  <mark.lam@apple.com>
619
620         Add WebKit2 hooks to notify the VM that the user has requested a debugger break.
621         https://bugs.webkit.org/show_bug.cgi?id=169089
622
623         Reviewed by Tim Horton and Joseph Pecoraro.
624
625         * CMakeLists.txt:
626         * DerivedSources.make:
627         * UIProcess/WebInspectorProxy.cpp:
628         (WebKit::WebInspectorProxy::connect):
629         * WebKit2.xcodeproj/project.pbxproj:
630         * WebProcess/WebPage/WebInspectorInterruptDispatcher.cpp: Added.
631         (WebKit::WebInspectorInterruptDispatcher::create):
632         (WebKit::WebInspectorInterruptDispatcher::WebInspectorInterruptDispatcher):
633         (WebKit::WebInspectorInterruptDispatcher::~WebInspectorInterruptDispatcher):
634         (WebKit::WebInspectorInterruptDispatcher::initializeConnection):
635         (WebKit::WebInspectorInterruptDispatcher::notifyNeedDebuggerBreak):
636         * WebProcess/WebPage/WebInspectorInterruptDispatcher.h: Added.
637         * WebProcess/WebPage/WebInspectorInterruptDispatcher.messages.in: Added.
638         * WebProcess/WebProcess.cpp:
639         (WebKit::WebProcess::WebProcess):
640         (WebKit::WebProcess::initializeConnection):
641         * WebProcess/WebProcess.h:
642
643 2017-03-02  Brady Eidson  <beidson@apple.com>
644
645         Update WKWebsiteDatastoreConfiguration SPI.
646         https://bugs.webkit.org/show_bug.cgi?id=169102
647
648         Reviewed by Tim Horton.
649         
650         Make these strings URLs, and throw exceptions if you try to use non-file URLs.
651
652         * UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
653         (-[WKWebsiteDataStore _initWithConfiguration:]):
654
655         * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
656         * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
657         (checkURLArgument):
658         (-[_WKWebsiteDataStoreConfiguration _webStorageDirectory]):
659         (-[_WKWebsiteDataStoreConfiguration _setWebStorageDirectory:]):
660         (-[_WKWebsiteDataStoreConfiguration _indexedDBDatabaseDirectory]):
661         (-[_WKWebsiteDataStoreConfiguration _setIndexedDBDatabaseDirectory:]):
662         (-[_WKWebsiteDataStoreConfiguration _webSQLDatabaseDirectory]):
663         (-[_WKWebsiteDataStoreConfiguration _setWebSQLDatabaseDirectory:]):
664
665 2017-03-02  Youenn Fablet  <youenn@apple.com>
666
667         Move part of NetworkRTCProvider::close implementation in NetworkRTCProvider destructor
668         https://bugs.webkit.org/show_bug.cgi?id=169104
669
670         Reviewed by Alex Christensen.
671
672         Improving NetworkRTCProvider clean-up by moving some member field cleaning to the destructor.
673         The remaining cleaning is still kept in NetworkRTCProvider::close as we need to go to the rtc network thread and
674         for that, we take a ref of NetworkRTCProvider.
675         Stopping any resolver before freeing them.
676
677         * NetworkProcess/webrtc/NetworkRTCMonitor.h:
678         * NetworkProcess/webrtc/NetworkRTCProvider.cpp:
679         (WebKit::NetworkRTCProvider::~NetworkRTCProvider):
680         (WebKit::NetworkRTCProvider::close):
681         * NetworkProcess/webrtc/NetworkRTCProvider.h:
682
683 2017-03-02  Youenn Fablet  <youenn@apple.com>
684
685         [iOS] Replicate NetworkProcess Mac sandboxing in iOS to allow TCP/UDP
686         https://bugs.webkit.org/show_bug.cgi?id=169105
687
688         Reviewed by Alex Christensen.
689
690         * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Adding sandbox extension support for TCP/UDP networking.
691
692 2017-03-02  Aakash Jain  <aakash_jain@apple.com>
693
694         Move stringMatchesWildcardString from WebKit2 to WebCore
695         https://bugs.webkit.org/show_bug.cgi?id=169065
696
697         Reviewed by Alexey Proskuryakov.
698
699         * Platform/mac/StringUtilities.h: Moved stringMatchesWildcardString to WebCore.
700         * WebKit2.xcodeproj/project.pbxproj: Make StringUtilities.h a project header.
701         * Platform/mac/StringUtilities.mm:
702         (WebKit::wildcardRegexPatternString): Moved to WebCore.
703         (WebKit::stringMatchesWildcardString): Ditto.
704         * WebProcess/Plugins/WebPluginInfoProvider.cpp: Using stringMatchesWildcardString from WebCore.
705
706 2017-03-02  Aakash Jain  <aakash_jain@apple.com>
707
708         IsSmartPtr<WKRetainPtr<T>>::value should not be exported
709         https://bugs.webkit.org/show_bug.cgi?id=169047
710
711         Reviewed by Alexey Proskuryakov.
712
713         * UIProcess/API/cpp/WKRetainPtr.h:
714
715 2017-03-02  Youenn Fablet  <youenn@apple.com>
716
717         Activate some new webrtc tests
718         https://bugs.webkit.org/show_bug.cgi?id=168850
719
720         Reviewed by Alex Christensen.
721
722         * Shared/WebPreferencesDefinitions.h: Activating peer connection by default when libwebrtc is on.
723         This allows ensuring the network process will have its sandbox extension.
724
725 2017-03-02  Brian Burg  <bburg@apple.com>
726
727         Web Automation: _WKAutomationSessionDelegate should work with WKWebViews
728         https://bugs.webkit.org/show_bug.cgi?id=169091
729         <rdar://problem/30810538>
730
731         Reviewed by Tim Horton.
732
733         As a first step towards fixing the mistake of using WKPageRef in an Objective-C SPI,
734         add the correct delegate methods that take WKWebView so that Objective-C clients can
735         use this functionality.
736
737         In a future patch, we'll remove the WKPageRef delegate methods when they are no longer
738         being used by clients. Clients should switch to using WKWebView, or wait for a C SPI
739         with equivalent functionality (something like WKAutomationSessionClient) to be ported.
740
741         While I'm fixing this mess, make API::AutomationSessionClient use references instead
742         of pointers. We null-check all WebPageProxy parameters before calling its methods.
743
744         * UIProcess/API/APIAutomationSessionClient.h:
745         (API::AutomationSessionClient::didDisconnectFromRemote):
746         (API::AutomationSessionClient::didRequestNewWindow):
747         (API::AutomationSessionClient::isShowingJavaScriptDialogOnPage):
748         (API::AutomationSessionClient::dismissCurrentJavaScriptDialogOnPage):
749         (API::AutomationSessionClient::acceptCurrentJavaScriptDialogOnPage):
750         (API::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage):
751         (API::AutomationSessionClient::setUserInputForCurrentJavaScriptPromptOnPage):
752         Change pointer to reference.
753
754         * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h:
755         Add duplicate delegate methods that take/return WKWebView instead of WKPageRef.
756         Adjust the delegate method names to reflect parameter type and avoid conflicts with the
757         WKPageRef-using methods that we need to remove eventually.
758
759         * UIProcess/Automation/WebAutomationSession.cpp:
760         (WebKit::WebAutomationSession::terminate):
761         (WebKit::WebAutomationSession::createBrowsingContext):
762         (WebKit::WebAutomationSession::isShowingJavaScriptDialog):
763         (WebKit::WebAutomationSession::dismissCurrentJavaScriptDialog):
764         (WebKit::WebAutomationSession::acceptCurrentJavaScriptDialog):
765         (WebKit::WebAutomationSession::messageOfCurrentJavaScriptDialog):
766         (WebKit::WebAutomationSession::setUserInputForCurrentJavaScriptPrompt):
767         Dereference `this` and `webPageProxy` when calling API::AutomationSessionClient methods.
768
769         * UIProcess/Cocoa/AutomationSessionClient.h:
770         * UIProcess/Cocoa/AutomationSessionClient.mm:
771         (WebKit::AutomationSessionClient::AutomationSessionClient):
772         (WebKit::AutomationSessionClient::didDisconnectFromRemote):
773         (WebKit::AutomationSessionClient::didRequestNewWindow):
774         (WebKit::AutomationSessionClient::isShowingJavaScriptDialogOnPage):
775         (WebKit::AutomationSessionClient::dismissCurrentJavaScriptDialogOnPage):
776         (WebKit::AutomationSessionClient::acceptCurrentJavaScriptDialogOnPage):
777         (WebKit::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage):
778         (WebKit::AutomationSessionClient::setUserInputForCurrentJavaScriptPromptOnPage):
779         Now there are two possible delegate methods for most of these, so try to use the
780         WKWebView-based delegate method first and fall back to the WKPageRef delegate method.
781
782 2017-03-02  Alex Christensen  <achristensen@webkit.org>
783
784         Continue enabling WebRTC
785         https://bugs.webkit.org/show_bug.cgi?id=169056
786
787         Reviewed by Jon Lee.
788
789         * Configurations/FeatureDefines.xcconfig:
790
791 2017-03-01  Megan Gardner  <megan_gardner@apple.com>
792
793         Data interaction support for WK1
794         https://bugs.webkit.org/show_bug.cgi?id=169062
795
796         Reviewed by Wenson Hsieh.
797
798         Allow for separate additions files in WK1 and WK2
799
800         * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
801
802 2017-03-02  Youenn Fablet  <youenn@apple.com>
803
804         [WebRTC] Activate ICE candidate privacy policy
805         https://bugs.webkit.org/show_bug.cgi?id=168975
806
807         Reviewed by Alex Christensen.
808
809         Disabling network enumeration by default.
810         Enabling ICE candidate filtering by default.
811         Chaning ICE candidate filtering according userMediaAccess policy:
812         - If access is denied, filtering is on.
813         - If access is granted, filtering is off.
814
815         * Shared/WebPageCreationParameters.cpp:
816         (WebKit::WebPageCreationParameters::encode):
817         (WebKit::WebPageCreationParameters::decode):
818         * Shared/WebPageCreationParameters.h:
819         * Shared/WebPreferencesDefinitions.h:
820         * UIProcess/API/C/WKPreferences.cpp:
821         (WKPreferencesSetICECandidateFilteringEnabled):
822         (WKPreferencesGetICECandidateFilteringEnabled):
823         (WKPreferencesSetEnumeratingAllNetworkInterfacesEnabled):
824         (WKPreferencesGetEnumeratingAllNetworkInterfacesEnabled):
825         * UIProcess/API/C/WKPreferencesRefPrivate.h:
826         * UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
827         (WebKit::toWebCore):
828         (WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted):
829         * UIProcess/UserMediaProcessManager.cpp:
830         (WebKit::UserMediaProcessManager::willCreateMediaStream):
831         (WebKit::UserMediaProcessManager::endedCaptureSession):
832         * UIProcess/WebPageProxy.cpp:
833         (WebKit::WebPageProxy::creationParameters):
834         * WebProcess/WebPage/WebPage.cpp:
835
836 2017-03-02  Tomas Popela  <tpopela@redhat.com>
837
838         [WK2] Keyboard menu key should show context menu
839         https://bugs.webkit.org/show_bug.cgi?id=72099
840
841         Reviewed by Carlos Garcia Campos.
842
843         Show the context menu when the GtkWidget::popup-menu signal is
844         emitted. This signal is triggered by pressing a key (usually
845         the Menu key or the Shift + F10 shortcut) or it could be emitted on
846         WebKitWebView.
847
848         * UIProcess/API/gtk/WebKitWebView.cpp:
849         (webkit_web_view_class_init):
850         (webkit_web_view_class_init): Update the documentation for the
851         context-menu signal
852         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
853         (webkitWebViewBasePopupMenu): Connect to the popup-menu signal and
854         save the event that was used to trigger the signal. If there is no
855         such event create a new GdkEvent with GDK_NOTHING type.
856         (webkitWebViewBasePopupMenu):
857         (webkit_web_view_base_class_init):
858         * UIProcess/WebPageProxy.cpp:
859         (WebKit::WebPageProxy::handleContextMenuKeyEvent):
860         * UIProcess/WebPageProxy.h:
861         * WebProcess/WebPage/WebPage.cpp:
862         (WebKit::WebPage::contextMenuForKeyEvent):
863         * WebProcess/WebPage/WebPage.h:
864         * WebProcess/WebPage/WebPage.messages.in:
865
866 2017-03-01  Wenson Hsieh  <wenson_hsieh@apple.com>
867
868         Replace -[WKWebView adjustedDataInteractionItemProviders:] with a UI delegate method
869         https://bugs.webkit.org/show_bug.cgi?id=169013
870
871         Reviewed by Dan Bernstein.
872
873         Rather than introduce new SPI on WKWebView directly, we should follow convention and add the hook to the private
874         version of the UI delegate.
875
876         * UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
877         * UIProcess/API/Cocoa/WKWebView.mm:
878         (-[WKWebView _adjustedDataInteractionItemProviders:]): Deleted.
879         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
880
881 2017-03-01  Alex Christensen  <achristensen@webkit.org>
882
883         Unreviewed, rolling out r213259.
884
885         Broke an internal build
886
887         Reverted changeset:
888
889         "Continue enabling WebRTC"
890         https://bugs.webkit.org/show_bug.cgi?id=169056
891         http://trac.webkit.org/changeset/213259
892
893 2017-03-01  Alex Christensen  <achristensen@webkit.org>
894
895         Continue enabling WebRTC
896         https://bugs.webkit.org/show_bug.cgi?id=169056
897
898         Reviewed by Jon Lee.
899
900         * Configurations/FeatureDefines.xcconfig:
901
902 2017-03-01  Chris Dumez  <cdumez@apple.com>
903
904         [WK2][!NETWORK_SESSION] Failure to download when using a download attribute with no value on an anchor
905         https://bugs.webkit.org/show_bug.cgi?id=169060
906         <rdar://problem/30773140>
907
908         Reviewed by Darin Adler.
909
910         In the !NETWORK_SESSION code path, we were failing to use the suggested filename coming from the
911         network layer in the case where the download attribute is present but has no value. We were ending
912         up passing an empty string as suggested filename to Safari which is not handled properly.
913
914         * UIProcess/Downloads/DownloadProxy.cpp:
915         (WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
916
917 2017-02-28  Matt Rajca  <mrajca@apple.com>
918
919         Media: notify clients when autoplayed media is muted
920         https://bugs.webkit.org/show_bug.cgi?id=168987
921
922         Reviewed by Alex Christensen.
923
924         * UIProcess/API/C/WKPageUIClient.h:
925
926 2017-03-01  Brady Eidson  <beidson@apple.com>
927
928         Add SPI to create WebsiteDataStore objects pointing to custom paths.
929         https://bugs.webkit.org/show_bug.cgi?id=169044
930
931         Reviewed by Tim Horton.
932
933         * UIProcess/API/APIWebsiteDataStore.h:
934
935         * UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
936         (-[WKWebsiteDataStore _initWithConfiguration:]):
937
938         * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
939
940         * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h.
941         * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h.
942
943         * UIProcess/WebsiteData/WebsiteDataStore.h:
944
945         * WebKit2.xcodeproj/project.pbxproj:
946
947 2017-03-01  Jon Lee  <jonlee@apple.com>
948
949         Update peer connection preference
950         https://bugs.webkit.org/show_bug.cgi?id=169016
951         rdar://problem/30773889
952
953         Reviewed by Eric Carlson.
954
955         * Shared/WebPreferencesDefinitions.h:
956         * UIProcess/WebPreferences.cpp:
957         (WebKit::WebPreferences::setEnabledForFeature):
958         (WebKit::WebPreferences::setPeerConnectionAndMediaStreamEnabled): Deleted.
959         * UIProcess/WebPreferences.h:
960
961 2017-03-01  Tomas Popela  <tpopela@redhat.com>
962
963         [GTK] Fix problems found by Coverity scan in WebPrintOperationGtk.cpp
964         https://bugs.webkit.org/show_bug.cgi?id=169027
965
966         Reviewed by Carlos Garcia Campos.
967
968         Initialize the lastPagePosition variable and remove an unused one
969         - totalToPrint.
970
971         * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
972         (WebKit::PrintPagesData::PrintPagesData):
973
974 2017-03-01  Andreas Kling  <akling@apple.com>
975
976         Move MemoryPressureHandler to WTF
977         <https://webkit.org/b/168908>
978
979         Reviewed by Sam Weinig.
980
981         * NetworkProcess/NetworkProcess.h:
982         * NetworkProcess/mac/NetworkProcessMac.mm:
983         * PluginProcess/PluginProcess.cpp:
984         * Shared/linux/WebMemorySamplerLinux.cpp:
985         * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
986         * WebProcess/WebPage/ios/WebPageIOS.mm:
987
988 2017-03-01  Joseph Pecoraro  <pecoraro@apple.com>
989
990         [WebRTC] Install libwebrtc.dylib inside of WebCore.framework
991         https://bugs.webkit.org/show_bug.cgi?id=168859
992
993         Reviewed by Dan Bernstein.
994
995         * Configurations/BaseTarget.xcconfig:
996         * Configurations/WebKit.xcconfig:
997         Set library search path to find the libwebrtc.dylib inside of WebCore's Frameworks
998         or in the WK_OVERRIDE_FRAMEWORKS_DIR.
999
1000 2017-02-28  Carlos Garcia Campos  <cgarcia@igalia.com>
1001
1002         NetworkProcess aborts in WebKit::NetworkLoad::didCompleteWithError at Source/WebKit2/NetworkProcess/NetworkLoad.cpp:423
1003         https://bugs.webkit.org/show_bug.cgi?id=168963
1004
1005         Reviewed by Antti Koivisto.
1006
1007         This is trying to call SpeculativeLoad::didFailLoading() after SpeculativeLoad has already been
1008         completed. SpeculativeLoad::didComplete() call its completion handler that removes the load from
1009         m_pendingPreloads. When the completion handler returns the SpeculativeLoad is deleted. So, we should always
1010         ensure that SpeculativeLoad is not used after didComplete() call. In SpeculativeLoad::willSendRedirectedRequest(),
1011         the call to NetworkLoad::continueWillSendRequest() causes SpeculativeLoad::didFailLoading() to be called. We
1012         don't really need to call continueWillSendRequest() though, since the network load is going to be deleted anyway
1013         by didComplete(), and the willSendRequest completion handler does nothing when the request is null.
1014
1015         * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
1016         (WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
1017
1018 2017-02-28  Alexey Proskuryakov  <ap@apple.com>
1019
1020         https://bugs.webkit.org/show_bug.cgi?id=168899
1021         Re-add deprecated functions to WKPageGroup.h
1022
1023         Reviewed by Tim Horton.
1024
1025         * Shared/API/c/WKDeprecatedFunctions.cpp:
1026         (WKPageGroupRemoveUserContentFilter):
1027         (WKPageGroupRemoveAllUserContentFilters): Deleted. Unlike the other three, this
1028         function isn't used by any clients.
1029         * UIProcess/API/C/WKPageGroup.h:
1030
1031 2017-02-28  Alexey Proskuryakov  <ap@apple.com>
1032
1033         Expose _WKVisitedLinkProvider in a header
1034         https://bugs.webkit.org/show_bug.cgi?id=168955
1035
1036         Reviewed by Tim Horton.
1037
1038         * UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm:
1039         * UIProcess/API/Cocoa/_WKVisitedLinkStore.h:
1040         The class needs to be visible in a header, as it is exported SPI.
1041
1042 2017-02-28  Brady Eidson  <beidson@apple.com>
1043
1044         Move resolving symlinks of some WebsiteDataStore paths from WebProcessPool to... WebsiteDataStore!.
1045         https://bugs.webkit.org/show_bug.cgi?id=168696.
1046
1047         Reviewed by Alex Christensen.
1048
1049         * UIProcess/WebProcessPool.cpp:
1050         (WebKit::WebProcessPool::createNewWebProcess):
1051
1052         * UIProcess/WebsiteData/WebsiteDataStore.cpp:
1053         (WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
1054         * UIProcess/WebsiteData/WebsiteDataStore.h:
1055         (WebKit::WebsiteDataStore::resolvedApplicationCacheDirectory):
1056         (WebKit::WebsiteDataStore::resolvedMediaCacheDirectory):
1057         (WebKit::WebsiteDataStore::resolvedMediaKeysDirectory):
1058         (WebKit::WebsiteDataStore::resolvedDatabaseDirectory):
1059
1060 2017-02-28  Alex Christensen  <achristensen@webkit.org>
1061
1062         LibWebRTCProvider should check existence of libwebrtc.dylib
1063         https://bugs.webkit.org/show_bug.cgi?id=168986
1064
1065         Reviewed by Youenn Fablet.
1066
1067         * Shared/WebPreferencesDefinitions.h:
1068         * Shared/WebPreferencesStore.cpp:
1069         * UIProcess/WebPreferences.cpp:
1070         (WebKit::checkWebRTCAvailability): Deleted.
1071
1072 2017-02-28  Wenson Hsieh  <wenson_hsieh@apple.com>
1073
1074         Unreviewed, build fix after r213176.
1075
1076         * Platform/spi/ios/UIKitSPI.h:
1077
1078 2017-02-28  Tim Horton  <timothy_horton@apple.com>
1079
1080         [iOS] Getting QLPreviewProtocol slows down first navigation in Web process
1081         https://bugs.webkit.org/show_bug.cgi?id=168940
1082         <rdar://problem/29468999>
1083
1084         Reviewed by Simon Fraser.
1085
1086         * WebProcess/Network/WebLoaderStrategy.cpp:
1087         (WebKit::WebLoaderStrategy::scheduleLoad):
1088         Make use of isQuickLookPreviewURL.
1089
1090 2017-02-28  Brady Eidson  <beidson@apple.com>
1091
1092         Fix API test regression(s):
1093         REGRESSION (r213168): API test WKUserContentController.ScriptMessageHandlerMultipleHandlerRemoval crashing
1094         https://bugs.webkit.org/show_bug.cgi?id=168991
1095
1096         Unreviewed.
1097
1098         * UIProcess/WebProcessPool.cpp:
1099         (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
1100
1101 2017-02-28  Wenson Hsieh  <wenson_hsieh@apple.com>
1102
1103         Data interaction should support attachment elements
1104         https://bugs.webkit.org/show_bug.cgi?id=168916
1105         <rdar://problem/30664519>
1106
1107         Reviewed by Ryosuke Niwa.
1108
1109         Teaches WKContentView to recognize attachment elements as data interactive content, and add an internal hook to
1110         adjust the list of item providers before initiating data interaction.
1111
1112         * Platform/spi/ios/UIKitSPI.h:
1113         * UIProcess/API/Cocoa/WKWebView.mm:
1114         (-[WKWebView _adjustedDataInteractionItemProviders:]):
1115         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
1116         * UIProcess/ios/WKContentViewInteraction.mm:
1117         (-[WKContentView pointIsInDataInteractionContent:]):
1118
1119 2017-02-28  Yongjun Zhang  <yongjun_zhang@apple.com>
1120
1121         Add delegate method to handle images with alternate data.
1122         https://bugs.webkit.org/show_bug.cgi?id=168785
1123         <rdar://problem/28776219>
1124
1125         Add delegate methods to WKUIDelegatePrivate so that a WebKit client can provide alternate URL or data for an image
1126         before long-press or preview. When an image has alternate URL or data, we can change the actions accordingly.
1127
1128         Reviewed by Enrica Casucci.
1129
1130         * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Add two delegate methods _webView:getAlternateURLFromImage:completionHandler:
1131             and _webView:alternateURLFromImage:userInfo;
1132         * UIProcess/API/Cocoa/_WKActivatedElementInfo.h: Add an readonly property userInfo so that alternate data can be
1133             carried by _WKActivatedElementInfo and be processed by WebKit client.
1134         * UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:
1135         (-[_WKActivatedElementInfo _initWithType:URL:location:title:ID:rect:image:]):
1136         (-[_WKActivatedElementInfo _initWithType:URL:location:title:ID:rect:image:userInfo:]): A new initializer that also takes userInfo.
1137         (-[_WKActivatedElementInfo userInfo]):
1138         * UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h: A new delegate method for WKActionSheetAssistantDelegate to fetch
1139             alternate data before showing image sheet.
1140         * UIProcess/ios/WKActionSheetAssistant.h:
1141         * UIProcess/ios/WKActionSheetAssistant.mm:
1142         (-[WKActionSheetAssistant showImageSheet]): Before showing the image sheet, if the image doesn't have linked URL (i.e. not a image
1143             link), try to fetch its alternate URL and data.
1144         (-[WKActionSheetAssistant defaultActionsForImageSheet:]): Drive-by fix. We always use positionInformation's URL to populate the
1145             actions, however, we should use elementInfo's URL since the two URLs could mismatch.
1146         * UIProcess/ios/WKContentViewInteraction.mm:
1147         (-[WKContentView actionSheetAssistant:getAlternateURLForImage:completion:]):
1148         (-[WKContentView _presentedViewControllerForPreviewItemController:]): Before previewing an image, synchronously get alternate
1149             data for the image and update the actions accordingly.
1150
1151 2017-02-28  Brady Eidson  <beidson@apple.com>
1152         
1153         Refactor WebViewImpl creation in preparation for supporting multiple WebsiteDataStores.
1154         https://bugs.webkit.org/show_bug.cgi?id=168676
1155
1156         Reviewed by Alex Christensen and Sam Weinig.
1157
1158         * UIProcess/WebProcessPool.cpp:
1159         (WebKit::WebProcessPool::createNewWebProcess):
1160         (WebKit::WebProcessPool::warmInitialProcess):
1161         (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
1162         (WebKit::WebProcessPool::createWebPage):
1163         * UIProcess/WebProcessPool.h:
1164
1165 2017-02-28  Youenn Fablet  <youenn@apple.com>
1166
1167         [WebRTC] Limit libwebrtc logging in Debug build
1168         https://bugs.webkit.org/show_bug.cgi?id=168974
1169
1170         Reviewed by Alex Christensen.
1171
1172         * NetworkProcess/webrtc/NetworkRTCProvider.cpp:
1173         (WebKit::NetworkRTCProvider::NetworkRTCProvider):
1174         * Platform/Logging.h:
1175
1176 2017-02-28  Youenn Fablet  <youenn@apple.com>
1177
1178         [WebRTC] NetworkRTCProvider should stop the network thread from the main thread
1179         https://bugs.webkit.org/show_bug.cgi?id=168972
1180
1181         Reviewed by Alex Christensen.
1182
1183         * NetworkProcess/webrtc/NetworkRTCProvider.cpp:
1184         (WebKit::NetworkRTCProvider::close): Ensuring to stop the network thread from the main thread when provider is
1185         getting closed.
1186
1187 2017-02-24  Matt Rajca  <mrajca@apple.com>
1188
1189         Media: notify clients when autoplayed media ends without being paused
1190         https://bugs.webkit.org/show_bug.cgi?id=168852
1191
1192         Reviewed by Alex Christensen.
1193
1194         * UIProcess/API/C/WKPageUIClient.h:
1195
1196 2017-02-28  Csaba Osztrogonác  <ossy@webkit.org>
1197
1198         Remove EFL leftover from WebPageProxy.messages.in
1199         https://bugs.webkit.org/show_bug.cgi?id=168828
1200
1201         Reviewed by Gyuyoung Kim.
1202
1203         * UIProcess/WebPageProxy.messages.in:
1204
1205 2017-02-28  Alex Christensen  <achristensen@webkit.org>
1206
1207         Main resource requests need cachePartition
1208         https://bugs.webkit.org/show_bug.cgi?id=168806
1209
1210         Reviewed by Brady Eidson.
1211
1212         * NetworkProcess/NetworkResourceLoader.cpp:
1213         (WebKit::NetworkResourceLoader::continueWillSendRequest):
1214
1215 2017-02-27  Alex Christensen  <achristensen@webkit.org>
1216
1217         Begin enabling WebRTC on 64-bit
1218         https://bugs.webkit.org/show_bug.cgi?id=168915
1219
1220         Reviewed by Eric Carlson.
1221
1222         * Configurations/FeatureDefines.xcconfig:
1223
1224 2017-02-27  Alexey Proskuryakov  <ap@apple.com>
1225
1226         Remove _WKWebsiteDataRecord.h
1227         https://bugs.webkit.org/show_bug.cgi?id=168954
1228
1229         Reviewed by Dan Bernstein.
1230
1231         This doesn't seem to have ever been used, so better to remove it than to add an
1232         implementation.
1233
1234         * UIProcess/API/Cocoa/_WKWebsiteDataRecord.h: Removed.
1235         * WebKit2.xcodeproj/project.pbxproj:
1236
1237 2017-02-27  Alexey Proskuryakov  <ap@apple.com>
1238
1239         WKPageIsPlayingVideoInEnhancedFullscreen availability mismatch
1240         https://bugs.webkit.org/show_bug.cgi?id=168952
1241
1242         Reviewed by Dan Bernstein.
1243
1244         * UIProcess/API/C/mac/WKPagePrivateMac.h: TARGET_OS_MAC is not the right thing to
1245         check, as it's true on both macOS and iOS.
1246
1247 2017-02-27  Alexey Proskuryakov  <ap@apple.com>
1248
1249         Export WKPluginInformationBundleShortVersionKey
1250         https://bugs.webkit.org/show_bug.cgi?id=168951
1251
1252         Reviewed by Dan Bernstein.
1253
1254         * Shared/API/c/WKPluginInformation.h: It was accidentally not exported when added.
1255
1256 2017-02-27  Youenn Fablet  <youenn@apple.com>
1257
1258         [WebRTC] Add support for libwebrtc TCP incoming connections
1259         https://bugs.webkit.org/show_bug.cgi?id=168748
1260
1261         Reviewed by Alex Christensen.
1262
1263         Covered by added layout tests.
1264
1265         When a libwebrtc server socket is signalling a new connnection through SignalNewConnection, we do:
1266         - Wrap the incoming socket into a LibWebRTCSocketClient
1267         - Store it into a pending socket map with an identifier
1268         - Send a message to the web process of a new connection with the server socket identifier and new connection socket identifier.
1269         The Web process then creates a WebRTCSocket wrapper around it by sendinig a WrapNewTCPConnection message.
1270         It then propagates the SignalNewConnection to libwebrtc code path.
1271
1272         * NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:
1273         (WebKit::LibWebRTCSocketClient::LibWebRTCSocketClient):
1274         (WebKit::LibWebRTCSocketClient::signalReadPacket):
1275         (WebKit::LibWebRTCSocketClient::signalSentPacket):
1276         (WebKit::LibWebRTCSocketClient::signalNewConnection):
1277         (WebKit::LibWebRTCSocketClient::signalAddressReady):
1278         (WebKit::LibWebRTCSocketClient::signalConnect):
1279         (WebKit::LibWebRTCSocketClient::signalClose):
1280         * NetworkProcess/webrtc/LibWebRTCSocketClient.h:
1281         * NetworkProcess/webrtc/NetworkRTCProvider.cpp:
1282         (WebKit::NetworkRTCProvider::wrapNewTCPConnection):
1283         (WebKit::NetworkRTCProvider::newConnection):
1284         * NetworkProcess/webrtc/NetworkRTCProvider.h:
1285         * NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
1286         * WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
1287         (WebKit::LibWebRTCSocket::signalNewConnection):
1288         * WebProcess/Network/webrtc/LibWebRTCSocket.h:
1289         * WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
1290         (WebKit::LibWebRTCSocketFactory::createNewConnectionSocket):
1291         * WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
1292         * WebProcess/Network/webrtc/WebRTCSocket.cpp:
1293         (WebKit::WebRTCSocket::signalNewConnection):
1294         * WebProcess/Network/webrtc/WebRTCSocket.h:
1295         * WebProcess/Network/webrtc/WebRTCSocket.messages.in:
1296
1297 2017-02-27  Brent Fulgham  <bfulgham@apple.com>
1298
1299         [Mac] Don't use undefined sandbox rule on macOS 10.11 or earlier
1300         https://bugs.webkit.org/show_bug.cgi?id=168942
1301         <rdar://problem/30743376>
1302
1303         Reviewed by Ryosuke Niwa.
1304
1305         * WebProcess/com.apple.WebProcess.sb.in:
1306
1307 2017-02-27  Wenson Hsieh  <wenson_hsieh@apple.com>
1308
1309         Unreviewed, roll out r213065.
1310
1311         * UIProcess/ios/WKContentViewInteraction.h:
1312
1313 2017-02-27  Alexey Proskuryakov  <ap@apple.com>
1314
1315         Remove some deprecated WKPage plug-in information functions
1316         https://bugs.webkit.org/show_bug.cgi?id=168897
1317
1318         Reviewed by Tim Horton.
1319
1320         * UIProcess/API/C/WKPage.cpp:
1321         (WKPageGetProcessIdentifier):
1322         (WKPageGetPluginInformationBundleIdentifierKey): Deleted.
1323         (WKPageGetPluginInformationBundleVersionKey): Deleted.
1324         (WKPageGetPluginInformationDisplayNameKey): Deleted.
1325         (WKPageGetPluginInformationFrameURLKey): Deleted.
1326         (WKPageGetPluginInformationMIMETypeKey): Deleted.
1327         (WKPageGetPluginInformationPageURLKey): Deleted.
1328         (WKPageGetPluginInformationPluginspageAttributeURLKey): Deleted.
1329         (WKPageGetPluginInformationPluginURLKey): Deleted.
1330         * UIProcess/API/C/WKPage.h:
1331
1332 2017-02-27  Alexey Proskuryakov  <ap@apple.com>
1333
1334         Stop exporting C++ member variables from class extensions in WKDOMInternals.h
1335         https://bugs.webkit.org/show_bug.cgi?id=168886
1336
1337         Reviewed by Tim Horton.
1338
1339         * WebProcess/InjectedBundle/API/mac/WKDOMInternals.h: These are @package variables.
1340
1341 2017-02-27  Alex Christensen  <achristensen@webkit.org>
1342
1343         Optimize checkWebRTCAvailability
1344         https://bugs.webkit.org/show_bug.cgi?id=168913
1345
1346         Reviewed by Darin Adler.
1347
1348         We can optimize startup time by using RTLD_LAZY instead of RTLD_NOW because we don't need to load all the symbols.
1349         We just need to check whether libwebrtc.dylib can be found and is a valid dylib for the current architecture.
1350         Also, initialize a static bool so it only needs to be checked once.  Right now it's only used when initializing settings,
1351         but if we use it for other things in the future there will be no need to reopen the dylib.
1352
1353         * UIProcess/WebPreferences.cpp:
1354         (WebKit::checkWebRTCAvailability):
1355
1356 2017-02-26  Wenson Hsieh  <wenson_hsieh@apple.com>
1357
1358         Unreviewed, revert all temporary build fixes for data interaction
1359
1360         Rolls out r212990, r212988 and r212984.
1361
1362         * UIProcess/ios/WKContentViewInteraction.h:
1363
1364 2017-02-27  Carlos Garcia Campos  <cgarcia@igalia.com>
1365
1366         [GTK] Rendering artifacts when resizing the window in X11 with AC mode enabled
1367         https://bugs.webkit.org/show_bug.cgi?id=168728
1368
1369         Reviewed by Žan Doberšek.
1370
1371         This happens because the pixmap we create from the redirected window is uninitialized until the threaded
1372         compositor renders into it. We should always initialize the pixmap right after it's created.
1373
1374         * WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:
1375         (WebKit::defaultVisual): Helper static method to get the default GdkVisual.
1376         (WebKit::AcceleratedSurfaceX11::AcceleratedSurfaceX11): Use createPixmap().
1377         (WebKit::AcceleratedSurfaceX11::createPixmap): Create and initialize the pixmap.
1378         (WebKit::AcceleratedSurfaceX11::resize): Use createPixmap().
1379         * WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h:
1380
1381 2017-02-27  Carlos Garcia Campos  <cgarcia@igalia.com>
1382
1383         [GTK] Flickering when leaving accelerated compositing mode
1384         https://bugs.webkit.org/show_bug.cgi?id=168911
1385
1386         Reviewed by Žan Doberšek.
1387
1388         It doesn't always happen, and it's too fast, more noticeable in websites with a dark background, because we are
1389         drawing a single white frame. This happens when we leave AC mode during the layer flush that schedules an update
1390         on the compositor, which at that point only clears the area and renders nothing. However,
1391         CoordinatedGraphicsScene::paintToCurrentGLContext() always renders a white background when no web view color has
1392         been set. And that's the white frame we get. We could prevent that last update from happening by checking if we
1393         still have a graphics root layer after syncDisplayState() in the layer flush, the same way we check the layer
1394         tree host is still valid.
1395
1396         * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
1397         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
1398         (WebKit::CoordinatedLayerTreeHost::layerFlushTimerFired):
1399
1400 2017-02-27  Alex Christensen  <achristensen@webkit.org>
1401
1402         [libwebrtc] Enable WebRTC in some Production Builds
1403         https://bugs.webkit.org/show_bug.cgi?id=168858
1404
1405         * Configurations/FeatureDefines.xcconfig:
1406
1407 2017-02-27  Andy Estes  <aestes@apple.com>
1408
1409         Links cannot be activated when running Mobile Safari with external SDK build of WebKit for iOS Simulator
1410         https://bugs.webkit.org/show_bug.cgi?id=141906
1411
1412         Reviewed by Tim Horton.
1413
1414         Even if Touch Events are disabled, we still need to register a
1415         UIWebTouchEventsGestureRecognizer to record the layer tree transaction ID when a touch
1416         begins. Click events are only generated for touches that occur after the current frame's
1417         load has committed, and we use the transaction ID from when the touch began to implement
1418         this check.
1419
1420         * UIProcess/WebPageProxy.cpp:
1421         (WebKit::WebPageProxy::handleTouchEventSynchronously):
1422         (WebKit::WebPageProxy::resetState):
1423         * UIProcess/WebPageProxy.h:
1424         * UIProcess/ios/WKContentViewInteraction.h: Declared _layerTreeTransactionIdAtLastTouchStart.
1425         * UIProcess/ios/WKContentViewInteraction.mm:
1426         (-[WKContentView setupInteraction]): Register a UIWebTouchEventsGestureRecognizer even if
1427         Touch Events are disabled.
1428         (-[WKContentView cleanupInteraction]): Reset _layerTreeTransactionIdAtLastTouchStart to 0.
1429         (-[WKContentView _webTouchEventsRecognized:]): Update _layerTreeTransactionIdAtLastTouchStart
1430         when a touch begins, even if Touch Events are disabled.
1431         (-[WKContentView _singleTapCommited:]): Passed _layerTreeTransactionIdAtLastTouchStart to
1432         WebPageProxy::commitPotentialTap().
1433         (-[WKContentView _attemptClickAtLocation:]): Ditto for WebPageProxy::handleTap().
1434         * UIProcess/ios/WebPageProxyIOS.mm:
1435         (WebKit::WebPageProxy::commitPotentialTap):
1436         (WebKit::WebPageProxy::handleTap):
1437
1438 2017-02-26  Zan Dobersek  <zdobersek@igalia.com>
1439
1440         [CoordinatedGraphics] Remove CoordinatedGraphicsScene::paintToGraphicsContext()
1441         https://bugs.webkit.org/show_bug.cgi?id=168903
1442
1443         Reviewed by Carlos Garcia Campos.
1444
1445         Remove the CoordinatedGraphicsScene::paintToGraphicsContext() method as it
1446         is not used anywhere. Also enables removing the GraphicsContext pointer
1447         member from the TextureMapper class.
1448
1449         * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
1450         (WebKit::CoordinatedGraphicsScene::paintToGraphicsContext): Deleted.
1451         * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
1452
1453 2017-02-26  Carlos Garcia Campos  <cgarcia@igalia.com>
1454
1455         [GTK] Hangs when showing Google search results
1456         https://bugs.webkit.org/show_bug.cgi?id=168699
1457
1458         Reviewed by Žan Doberšek.
1459
1460         Connection::sendOutgoingMessage() can poll forever if sendmsg fails with EAGAIN or EWOULDBLOCK. For example if
1461         socket read buffers are full, poll will be blocked until we read the pending data, but we can't read because
1462         the thread is blocked in the poll. In case of EAGAIN/EWOULDBLOCK we should poll using the run loop, to allow
1463         reads to happen in thread while we wait for the socket to be writable again. In the GTK+ port we use
1464         GSocketMonitor to poll socket file descriptor without blocking, using the run loop. This patch renames the
1465         socket monitor as readSocketMonitor and adds another one for polling output. When sendmsg fails with
1466         EAGAIN/EWOULDBLOCK, the pending message is saved and the write monitor starts polling. Once the socket is
1467         writable again we send the pending message. Helper class MessageInfo and a new one UnixMessage have been moved
1468         to its own header file to be able to use std::unique_ptr member to save the pending message.
1469
1470         * Platform/IPC/Connection.cpp: Include UnixMessage.h as required by std::unique_ptr.
1471         * Platform/IPC/Connection.h: Add write socket monitor and also keep the GSocket as a member to reuse it.
1472         * Platform/IPC/glib/GSocketMonitor.cpp: Use Function instead of std::function.
1473         (IPC::GSocketMonitor::start):
1474         * Platform/IPC/glib/GSocketMonitor.h:
1475         * Platform/IPC/unix/ConnectionUnix.cpp:
1476         (IPC::Connection::platformInitialize): Initialize the GSocket here since we rely on it to take the ownership of
1477         the descriptor. We were leaking it if the connection was invalidated without being opened.
1478         (IPC::Connection::platformInvalidate): Destroy the GSocket even when not connected. Also stop the write monitor.
1479         (IPC::Connection::processMessage):
1480         (IPC::Connection::open):
1481         (IPC::Connection::platformCanSendOutgoingMessages): Return false if we have a pending message to ensure
1482         Connection doesn't try to send more messages until the pending message is dispatched. We don't need to check
1483         m_isConnected because the caller already checks that.
1484         (IPC::Connection::sendOutgoingMessage): Split it in two. This creates and prepares a UnixMessage and then calls
1485         sendOutputMessage() to do the rest.
1486         (IPC::Connection::sendOutputMessage): Send the message, or save it if sendmsg fails with EAGAIN or EWOULDBLOCK
1487         to be sent later when the socket is writable.
1488         * Platform/IPC/unix/UnixMessage.h: Added.
1489         (IPC::MessageInfo::MessageInfo):
1490         (IPC::MessageInfo::setMessageBodyIsOutOfLine):
1491         (IPC::MessageInfo::isMessageBodyIsOutOfLine):
1492         (IPC::MessageInfo::bodySize):
1493         (IPC::MessageInfo::attachmentCount):
1494         (IPC::UnixMessage::UnixMessage):
1495         (IPC::UnixMessage::~UnixMessage):
1496         (IPC::UnixMessage::attachments):
1497         (IPC::UnixMessage::messageInfo):
1498         (IPC::UnixMessage::body):
1499         (IPC::UnixMessage::bodySize):
1500         (IPC::UnixMessage::appendAttachment):
1501         * PlatformGTK.cmake:
1502
1503 2017-02-26  Devin Rousso  <dcrousso+webkit@gmail.com>
1504
1505         Web Inspector: RTL: Docking Left doesn't constrain the page width
1506         https://bugs.webkit.org/show_bug.cgi?id=168862
1507
1508         Reviewed by Brian Burg.
1509
1510         * UIProcess/mac/WebInspectorProxyMac.mm:
1511         (WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
1512         Calculate the inspectedViewFrame to be the remaining space after WebInspector is opened
1513         instead of using the original page size.
1514
1515 2017-02-26  Alexey Proskuryakov  <ap@apple.com>
1516
1517         Stop exporting C++ member variables from WKDOMTextIterator
1518         https://bugs.webkit.org/show_bug.cgi?id=168885
1519
1520         Reviewed by Dan Bernstein.
1521
1522         * WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.mm:
1523
1524 2017-02-26  Alexey Proskuryakov  <ap@apple.com>
1525
1526         Add preprocessor guards to Mac specific files that are exposed as private headers on iOS
1527         https://bugs.webkit.org/show_bug.cgi?id=168878
1528
1529         Reviewed by Dan Bernstein.
1530
1531         * UIProcess/API/C/WKInspector.h:
1532         * WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.h:
1533
1534 2017-02-26  Alexey Proskuryakov  <ap@apple.com>
1535
1536         Remove spurious C++ include from _WKTestingDelegate.h
1537         https://bugs.webkit.org/show_bug.cgi?id=168877
1538
1539         Reviewed by Dan Bernstein.
1540
1541         * UIProcess/API/Cocoa/_WKTestingDelegate.h:
1542
1543 2017-02-26  Alexey Proskuryakov  <ap@apple.com>
1544
1545         Remove unimplemented WKResourceLoadStatisticsManagerSetReducedTimestampResolution
1546         https://bugs.webkit.org/show_bug.cgi?id=168880
1547
1548         Reviewed by Dan Bernstein.
1549
1550         * UIProcess/API/C/WKResourceLoadStatisticsManager.h:
1551
1552 2017-02-26  Alexey Proskuryakov  <ap@apple.com>
1553
1554         Remove leftover WebKit2 C API function declarations
1555         https://bugs.webkit.org/show_bug.cgi?id=168879
1556
1557         Reviewed by Tim Horton.
1558
1559         * UIProcess/API/C/WKPreferencesRefPrivate.h:
1560
1561 2017-02-26  Alexey Proskuryakov  <ap@apple.com>
1562
1563         Remove some old WKSecurityOrigin binary compatibility stubs
1564         https://bugs.webkit.org/show_bug.cgi?id=168881
1565
1566         Reviewed by Dan Bernstein.
1567
1568         * Shared/API/c/WKSecurityOriginRef.cpp:
1569         (WKSecurityOriginGetHost): Deleted.
1570         (WKSecurityOriginGetProtocol): Deleted.
1571
1572 2017-02-26  Wenson Hsieh  <wenson_hsieh@apple.com>
1573
1574         REGRESSION (r211312): Double-clicking a word selects it along with the space that follows it
1575         https://bugs.webkit.org/show_bug.cgi?id=168821
1576         <rdar://problem/30690431>
1577
1578         Reviewed by Tim Horton.
1579
1580         Actually encode and decode smartInsertDeleteEnabled when sending WebPageCreationParameters over XPC.
1581
1582         * Shared/WebPageCreationParameters.cpp:
1583         (WebKit::WebPageCreationParameters::encode):
1584         (WebKit::WebPageCreationParameters::decode):
1585
1586 2017-02-26  Chris Dumez  <cdumez@apple.com>
1587
1588         HitTestResult's linkSuggestedFilename should sanitize download attribute
1589         https://bugs.webkit.org/show_bug.cgi?id=168856
1590         <rdar://problem/30683109>
1591
1592         Reviewed by Antti Koivisto.
1593
1594         HitTestResult's linkSuggestedFilename should sanitize download attribute.
1595         This is used by the context menu's "Download Linked File" & "Download Linked
1596         File As..." actions.
1597
1598         * Shared/WebHitTestResultData.cpp:
1599         (WebKit::WebHitTestResultData::WebHitTestResultData):
1600         * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
1601         (WebKit::InjectedBundleHitTestResult::linkSuggestedFilename):
1602
1603 2017-02-25  Michael Catanzaro  <mcatanzaro@igalia.com>
1604
1605         [GTK] Unreviewed, document deficiency in webkit_website_data_manager_clear() API
1606
1607         Document that this function cannot currently delete cookie data for a particular period of
1608         time.
1609
1610         * UIProcess/API/gtk/WebKitWebsiteDataManager.cpp:
1611
1612 2017-02-24  Joseph Pecoraro  <pecoraro@apple.com>
1613
1614         [Resource Timing] Gather timing information with reliable responseEnd time
1615         https://bugs.webkit.org/show_bug.cgi?id=168351
1616
1617         Reviewed by Alex Christensen.
1618
1619         Change from an unused `double finishTime` to a complete WebCore::NetworkLoadMetrics
1620         object in the didFinishLoad ResourceLoader path. We may also extend this in the
1621         didFail path later on. This allows the NetworkProcess to give complete timing
1622         information, and more final metrics about the load, to WebCore.
1623
1624         * NetworkProcess/NetworkDataTask.h:
1625         (WebKit::NetworkDataTaskClient::didCompleteWithError):
1626         Give the NetworkDataTaskClient a basic didCompleteWithError for a completion
1627         without metrics. For loads that complete with an error, or haven't populated
1628         any metrics, this will pass empty metrics onward.
1629
1630         * NetworkProcess/Downloads/BlobDownloadClient.cpp:
1631         (WebKit::BlobDownloadClient::didFinishLoading):
1632         * NetworkProcess/Downloads/BlobDownloadClient.h:
1633         * NetworkProcess/Downloads/PendingDownload.h:
1634         * NetworkProcess/PingLoad.h:
1635         * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
1636         (WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):
1637         * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
1638         * NetworkProcess/NetworkDataTaskBlob.cpp:
1639         (WebKit::NetworkDataTaskBlob::didFail):
1640         * NetworkProcess/NetworkLoad.cpp:
1641         (WebKit::NetworkLoad::continueWillSendRequest):
1642         (WebKit::NetworkLoad::didCompleteWithError):
1643         (WebKit::NetworkLoad::didFinishLoading):
1644         * NetworkProcess/NetworkLoad.h:
1645         * NetworkProcess/NetworkLoadClient.h:
1646         * NetworkProcess/NetworkResourceLoader.cpp:
1647         (WebKit::NetworkResourceLoader::didFinishLoading):
1648         (WebKit::NetworkResourceLoader::sendResultForCacheEntry):
1649         * NetworkProcess/NetworkResourceLoader.h:
1650         * WebProcess/Network/WebResourceLoader.cpp:
1651         (WebKit::WebResourceLoader::didFinishResourceLoad):
1652         (WebKit::WebResourceLoader::didReceiveResource):
1653         * WebProcess/Network/WebResourceLoader.h:
1654         * WebProcess/Network/WebResourceLoader.messages.in:
1655         Change didFinishLoad paths to take a NetworkLoadMetrics object instead of finishTime.
1656         Change didCompleteWithError pathes to include a NetworkLoadMetrics object instead of finishTime.
1657
1658         * NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
1659         * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
1660         (WebKit::NetworkDataTaskCocoa::didCompleteWithError):
1661         Own a NetworkLoadTiming that will be populated with the load.
1662
1663         * NetworkProcess/cocoa/NetworkSessionCocoa.h:
1664         * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
1665         (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
1666         (-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):
1667         (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
1668         Populate NetworkLoadMetrics in the didFinishCollectingMetrics NSURLSessionTaskDelegate method.
1669
1670         * NetworkProcess/soup/NetworkDataTaskSoup.cpp:
1671         (WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup):
1672         (WebKit::NetworkDataTaskSoup::timeoutFired):
1673         (WebKit::NetworkDataTaskSoup::didSendRequest):
1674         (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
1675         (WebKit::NetworkDataTaskSoup::dispatchDidCompleteWithError):
1676         (WebKit::NetworkDataTaskSoup::tlsErrorsChanged):
1677         (WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
1678         (WebKit::NetworkDataTaskSoup::didFinishRead):
1679         (WebKit::NetworkDataTaskSoup::didFinishRequestNextPart):
1680         (WebKit::NetworkDataTaskSoup::didFailDownload):
1681         (WebKit::NetworkDataTaskSoup::didFail):
1682         (WebKit::NetworkDataTaskSoup::networkEvent):
1683         (WebKit::NetworkDataTaskSoup::didStartRequest):
1684         (WebKit::NetworkDataTaskSoup::didRestart):
1685         * NetworkProcess/soup/NetworkDataTaskSoup.h:
1686         Instead of populating the NetworkLoadMetrics on the ResourceResponse, populate
1687         a member variable during the entire load and dispatch didFinishCollectingMetrics
1688         right before didCompleteLoadWithError.
1689
1690 2017-02-24  Chris Dumez  <cdumez@apple.com>
1691
1692         Unreviewed, rolling out r212944.
1693
1694         Caused a lot of failures on the debug bots
1695
1696         Reverted changeset:
1697
1698         "[Resource Timing] Gather timing information with reliable
1699         responseEnd time"
1700         https://bugs.webkit.org/show_bug.cgi?id=168351
1701         http://trac.webkit.org/changeset/212944
1702
1703 2017-02-24  Wenson Hsieh  <wenson_hsieh@apple.com>
1704
1705         Unreviewed, fix the internal build
1706
1707         * UIProcess/ios/WKContentViewInteraction.h:
1708
1709 2017-02-24  Matt Rajca  <mrajca@apple.com>
1710
1711         Media: notify clients when autoplay is denied
1712         https://bugs.webkit.org/show_bug.cgi?id=168840
1713
1714         Reviewed by Alex Christensen.
1715
1716         * UIProcess/API/APIUIClient.h:
1717         (API::UIClient::handleAutoplayEvent):
1718         (API::UIClient::didPlayMediaPreventedFromPlayingWithoutUserGesture): Deleted.
1719         * UIProcess/API/C/WKPage.cpp:
1720         (WKPageSetPageUIClient):
1721         * UIProcess/API/C/WKPageUIClient.h:
1722         * UIProcess/WebPageProxy.cpp:
1723         (WebKit::WebPageProxy::handleAutoplayEvent):
1724         (WebKit::WebPageProxy::didPlayMediaPreventedFromPlayingWithoutUserGesture): Deleted.
1725         * UIProcess/WebPageProxy.h:
1726         * UIProcess/WebPageProxy.messages.in:
1727         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
1728         (WebKit::WebChromeClient::handleAutoplayEvent):
1729         (WebKit::WebChromeClient::didPlayMediaPreventedFromPlayingWithoutUserGesture): Deleted.
1730         * WebProcess/WebCoreSupport/WebChromeClient.h:
1731
1732 2017-02-20  Wenson Hsieh  <wenson_hsieh@apple.com>
1733
1734         Refactor data interaction to use new WKDataInteraction SPI
1735         https://bugs.webkit.org/show_bug.cgi?id=168602
1736         Work towards <rdar://problem/30313681>
1737
1738         Reviewed by Tim Horton.
1739
1740         Adjust testing SPI to match new data interaction interfaces.
1741
1742         * Platform/spi/ios/UIKitSPI.h:
1743         * UIProcess/API/Cocoa/WKWebView.mm:
1744         (-[WKWebView _simulateDataInteractionEntered:]):
1745         (-[WKWebView _simulateDataInteractionUpdated:]):
1746         (-[WKWebView _simulateDataInteractionPerformOperation:]):
1747         (-[WKWebView _simulateDataInteractionEnded:]):
1748         (-[WKWebView _simulateDataInteractionSessionDidEnd:]):
1749         (-[WKWebView _simulateWillBeginDataInteractionWithSession:]):
1750         (-[WKWebView _simulatedItemsForSession:]):
1751         (-[WKWebView _simulatePrepareForDataInteractionSession:completion:]):
1752         (-[WKWebView _simulateDataInteractionSessionDidEnd:withOperation:]): Deleted.
1753         (-[WKWebView _simulateFailedDataInteractionWithIndex:]): Deleted.
1754         (-[WKWebView _simulateWillBeginDataInteractionWithIndex:withSession:]): Deleted.
1755         (-[WKWebView _simulatedItemsForDataInteractionWithIndex:]): Deleted.
1756         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
1757         * UIProcess/ios/WKContentViewInteraction.h:
1758         * UIProcess/ios/WKContentViewInteraction.mm:
1759         (-[WKContentView _positionInformationDidChange:]):
1760         * UIProcess/ios/WKScrollView.h:
1761         * UIProcess/ios/WKScrollView.mm:
1762
1763 2017-02-20  Wenson Hsieh  <wenson_hsieh@apple.com>
1764
1765         Remove the data interaction gesture recognizer
1766         https://bugs.webkit.org/show_bug.cgi?id=168600
1767         <rdar://problem/30313681>
1768
1769         Reviewed by Anders Carlsson.
1770
1771         The data interaction gesture recognizer will no longer be needed moving forward.
1772
1773         * UIProcess/API/Cocoa/WKWebView.mm:
1774         (-[WKWebView _simulateDataInteractionGestureRecognized]): Deleted.
1775         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
1776         * UIProcess/ios/WKContentViewInteraction.h:
1777         * UIProcess/ios/WKContentViewInteraction.mm:
1778         (-[WKContentView setupInteraction]):
1779         (-[WKContentView cleanupInteraction]):
1780         (-[WKContentView _removeDefaultGestureRecognizers]):
1781         (-[WKContentView _addDefaultGestureRecognizers]):
1782         (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
1783         (-[WKContentView gestureRecognizerShouldBegin:]):
1784         (-[WKContentView _dataInteractionGestureRecognizer]): Deleted.
1785
1786 2017-02-24  Chris Dumez  <cdumez@apple.com>
1787
1788         [iOS][WK2] Disable network cache speculative revalidation / loading in low power mode
1789         https://bugs.webkit.org/show_bug.cgi?id=168832
1790         <rdar://problem/30697911>
1791
1792         Reviewed by Antti Koivisto.
1793
1794         Disable network cache speculative revalidation / loading in low power mode on iOS to
1795         save battery.
1796
1797         * NetworkProcess/cache/NetworkCache.cpp:
1798         (WebKit::NetworkCache::Cache::initialize):
1799         * NetworkProcess/cache/NetworkCache.h:
1800
1801 2017-02-24  John Wilander  <wilander@apple.com>
1802
1803         Resource Load Statistics: Add alternate classification method
1804         https://bugs.webkit.org/show_bug.cgi?id=168347
1805         <rdar://problem/30352793>
1806         <rdar://problem/30646710>
1807         <rdar://problem/30660708>
1808
1809         Reviewed by Alex Christensen.
1810
1811         This patch adds a CorePrediction-based classifier to the WebResourceLoadStatisticsStore.
1812         The CorePrediction framework is introduced as a dependency for macOS and iOS. The patch
1813         also adds functions to support layout tests of the feature.
1814
1815         * Platform/Logging.h:
1816             Added channel ResourceLoadStatistics.
1817         * Platform/classifier/ResourceLoadStatisticsClassifier.h: Added.
1818             Pulls in the Cocoa-specific classifier for Cocoa-based platforms.
1819         (WebKit::ResourceLoadStatisticsClassifier::ResourceLoadStatisticsClassifier):
1820         * Platform/classifier/ResourceLoadStatisticsClassifierBase.cpp: Added.
1821         (WebKit::ResourceLoadStatisticsClassifierBase::hasPrevalentResourceCharacteristics):
1822             Shared classifier logic.
1823         (WebKit::ResourceLoadStatisticsClassifierBase::classifyWithVectorThreshold):
1824             Fallback classifier for when we don't have CorePrediction.
1825         * Platform/classifier/ResourceLoadStatisticsClassifierBase.h: Added.
1826         (WebKit::ResourceLoadStatisticsClassifierBase::ResourceLoadStatisticsClassifierBase):
1827         (WebKit::ResourceLoadStatisticsClassifierBase::~ResourceLoadStatisticsClassifierBase):
1828         * Platform/classifier/cocoa/CorePredictionSoftLink.h: Added.
1829             Soft links to CorePrediction and the two functions we use from it.
1830         * Platform/classifier/cocoa/ResourceLoadStatisticsClassifierCocoa.cpp: Added.
1831         (WebKit::ResourceLoadStatisticsClassifier::classify):
1832         (WebKit::ResourceLoadStatisticsClassifier::storagePath):
1833         (WebKit::ResourceLoadStatisticsClassifier::shouldUseCorePredictionAndHaveModelLoaded):
1834         (WebKit::ResourceLoadStatisticsClassifier::singletonPredictionModel):
1835             The new classifier for Cocoa platforms.
1836         * Platform/classifier/cocoa/ResourceLoadStatisticsClassifierCocoa.h: Added.
1837         * PlatformGTK.cmake:
1838             Added Platform/classifier directory and ResourceLoadStatisticsClassifierBase.cpp.
1839         * PlatformMac.cmake:
1840             Added Platform/classifier and Platform/classifier/cocoa directories, and
1841             source files ResourceLoadStatisticsClassifierBase.cpp and
1842             ResourceLoadStatisticsClassifierCocoa.cpp
1843         * Resources/ResourceLoadStatistics/corePrediction_model: Added.
1844             Model file to load into CorePrediction.
1845         * UIProcess/API/C/WKResourceLoadStatisticsManager.cpp:
1846         (WKResourceLoadStatisticsManagerSetSubframeUnderTopFrameOrigin):
1847         (WKResourceLoadStatisticsManagerSetSubresourceUnderTopFrameOrigin):
1848         (WKResourceLoadStatisticsManagerSetSubresourceUniqueRedirectTo):
1849             Test infrastructure.
1850         * UIProcess/API/C/WKResourceLoadStatisticsManager.h:
1851         * UIProcess/WebResourceLoadStatisticsManager.cpp:
1852         (WebKit::WebResourceLoadStatisticsManager::setSubframeUnderTopFrameOrigin):
1853         (WebKit::WebResourceLoadStatisticsManager::setSubresourceUnderTopFrameOrigin):
1854         (WebKit::WebResourceLoadStatisticsManager::setSubresourceUniqueRedirectTo):
1855             Test infrastructure.
1856         * UIProcess/WebResourceLoadStatisticsManager.h:
1857         * UIProcess/WebResourceLoadStatisticsStore.cpp:
1858         (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
1859             Renamed m_storagePath to m_statisticsStoragePath for clarity.
1860         (WebKit::WebResourceLoadStatisticsStore::classifyResource):
1861             Now calls the classifier through its ResourceLoadStatisticsClassifier
1862             member variable.
1863         (WebKit::WebResourceLoadStatisticsStore::persistentStoragePath):
1864             Renamed m_storagePath to m_statisticsStoragePath for clarity.
1865         (WebKit::WebResourceLoadStatisticsStore::writeEncoderToDisk):
1866             Renamed m_storagePath to m_statisticsStoragePath for clarity.
1867         (WebKit::WebResourceLoadStatisticsStore::hasPrevalentResourceCharacteristics): Deleted.
1868         * UIProcess/WebResourceLoadStatisticsStore.h:
1869         * WebKit2.xcodeproj/project.pbxproj:
1870             Added the new classifier source files under Platform/classifier and the
1871             corePrediction_model file under Resources/ResourceLoadStatistics.
1872
1873 2017-02-23  Joseph Pecoraro  <pecoraro@apple.com>
1874
1875         [Resource Timing] Add Experimental Feature Flag
1876         https://bugs.webkit.org/show_bug.cgi?id=167147
1877
1878         Reviewed by Ryosuke Niwa.
1879
1880         * Shared/WebPreferencesDefinitions.h:
1881         Move ResourceTiming to experimental section.
1882         Disable it for El Capitan due to known issues.
1883
1884 2017-02-23  Joseph Pecoraro  <pecoraro@apple.com>
1885
1886         [Resource Timing] Gather timing information with reliable responseEnd time
1887         https://bugs.webkit.org/show_bug.cgi?id=168351
1888
1889         Reviewed by Alex Christensen.
1890
1891         Change from an unused `double finishTime` to a complete WebCore::NetworkLoadMetrics
1892         object in the didFinishLoad ResourceLoader path. We may also extend this in the
1893         didFail path later on. This allows the NetworkProcess to give complete timing
1894         information, and more final metrics about the load, to WebCore.
1895
1896         * NetworkProcess/NetworkDataTask.h:
1897         (WebKit::NetworkDataTaskClient::didCompleteWithError):
1898         Give the NetworkDataTaskClient a basic didCompleteWithError for a completion
1899         without metrics. For loads that complete with an error, or haven't populated
1900         any metrics, this will pass empty metrics onward.
1901
1902         * NetworkProcess/Downloads/BlobDownloadClient.cpp:
1903         (WebKit::BlobDownloadClient::didFinishLoading):
1904         * NetworkProcess/Downloads/BlobDownloadClient.h:
1905         * NetworkProcess/Downloads/PendingDownload.h:
1906         * NetworkProcess/PingLoad.h:
1907         * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
1908         (WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):
1909         * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
1910         * NetworkProcess/NetworkDataTaskBlob.cpp:
1911         (WebKit::NetworkDataTaskBlob::didFail):
1912         * NetworkProcess/NetworkLoad.cpp:
1913         (WebKit::NetworkLoad::continueWillSendRequest):
1914         (WebKit::NetworkLoad::didCompleteWithError):
1915         (WebKit::NetworkLoad::didFinishLoading):
1916         * NetworkProcess/NetworkLoad.h:
1917         * NetworkProcess/NetworkLoadClient.h:
1918         * NetworkProcess/NetworkResourceLoader.cpp:
1919         (WebKit::NetworkResourceLoader::didFinishLoading):
1920         (WebKit::NetworkResourceLoader::sendResultForCacheEntry):
1921         * NetworkProcess/NetworkResourceLoader.h:
1922         * WebProcess/Network/WebResourceLoader.cpp:
1923         (WebKit::WebResourceLoader::didFinishResourceLoad):
1924         (WebKit::WebResourceLoader::didReceiveResource):
1925         * WebProcess/Network/WebResourceLoader.h:
1926         * WebProcess/Network/WebResourceLoader.messages.in:
1927         Change didFinishLoad paths to take a NetworkLoadMetrics object instead of finishTime.
1928         Change didCompleteWithError pathes to include a NetworkLoadMetrics object instead of finishTime.
1929
1930         * NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
1931         * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
1932         (WebKit::NetworkDataTaskCocoa::didCompleteWithError):
1933         Own a NetworkLoadTiming that will be populated with the load.
1934
1935         * NetworkProcess/cocoa/NetworkSessionCocoa.h:
1936         * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
1937         (-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
1938         (-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):
1939         (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
1940         Populate NetworkLoadMetrics in the didFinishCollectingMetrics NSURLSessionTaskDelegate method.
1941
1942         * NetworkProcess/soup/NetworkDataTaskSoup.cpp:
1943         (WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup):
1944         (WebKit::NetworkDataTaskSoup::timeoutFired):
1945         (WebKit::NetworkDataTaskSoup::didSendRequest):
1946         (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
1947         (WebKit::NetworkDataTaskSoup::dispatchDidCompleteWithError):
1948         (WebKit::NetworkDataTaskSoup::tlsErrorsChanged):
1949         (WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
1950         (WebKit::NetworkDataTaskSoup::didFinishRead):
1951         (WebKit::NetworkDataTaskSoup::didFinishRequestNextPart):
1952         (WebKit::NetworkDataTaskSoup::didFailDownload):
1953         (WebKit::NetworkDataTaskSoup::didFail):
1954         (WebKit::NetworkDataTaskSoup::networkEvent):
1955         (WebKit::NetworkDataTaskSoup::didStartRequest):
1956         (WebKit::NetworkDataTaskSoup::didRestart):
1957         * NetworkProcess/soup/NetworkDataTaskSoup.h:
1958         Instead of populating the NetworkLoadMetrics on the ResourceResponse, populate
1959         a member variable during the entire load and dispatch didFinishCollectingMetrics
1960         right before didCompleteLoadWithError.
1961
1962 2017-02-23  Beth Dakin  <bdakin@apple.com> + Dan Saunders  <dasau@microsoft.com>
1963
1964         No reliable way to get a snapshot of WKWebView
1965         https://bugs.webkit.org/show_bug.cgi?id=161450
1966         -and corresponding-
1967         <rdar://problem/23846039>
1968
1969         Reviewed by Tim Horton.
1970
1971         This patch adds a new API to WKWebView to snapshot a rect:
1972         takeSnapshotWithConfiguration:completionHandler:
1973
1974         It also adds a new API object WKSnapshotConfiguration.
1975
1976         * UIProcess/API/Cocoa/WKSnapshotConfiguration.h: Added.
1977         * UIProcess/API/Cocoa/WKSnapshotConfiguration.mm: Added.
1978         (-[WKSnapshotConfiguration copyWithZone:]):
1979         * UIProcess/API/Cocoa/WKWebView.h:
1980         * UIProcess/API/Cocoa/WKWebView.mm:
1981         (-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):
1982         * WebKit2.xcodeproj/project.pbxproj:
1983
1984 2017-02-23  Jer Noble  <jer.noble@apple.com>
1985
1986         ASSERT in RTCNetwork::IPAddress::decode()
1987         https://bugs.webkit.org/show_bug.cgi?id=168792
1988
1989         Reviewed by Tim Horton.
1990
1991         An ASSERT added to RTCNetwork::IPAddress::decode in r212781 was hit due to a bad encode of SocketAddress; an
1992         extra boolean value was added to the encoder unnecessarily, leading to garbage data being decoded in the following
1993         IPAddress.
1994
1995         Drive-by-fix: allow the IPAddress encoder/decoder to pass through a value of AF_UNSPEC for an IPAddress to support
1996         passing through an "empty" IPAddress value.
1997
1998         * Shared/RTCNetwork.cpp:
1999         (WebKit::RTCNetwork::IPAddress::decode):
2000         (WebKit::RTCNetwork::IPAddress::encode):
2001         (WebKit::RTCNetwork::SocketAddress::encode):
2002
2003 2017-02-23  Eric Carlson  <eric.carlson@apple.com>
2004
2005         [WebRTC][Mac][WebKit2] WebRTC requires media capture
2006         https://bugs.webkit.org/show_bug.cgi?id=168782
2007         <rdar://problem/30675242>
2008
2009         Reviewed by Youenn Fablet.
2010
2011         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
2012         (WebKit::WebProcessPool::platformInitializeWebProcess): Extend the sanbox to allow microphone access
2013         if media stream OR WebRTC is enabled.
2014
2015 2017-02-23  Brent Fulgham  <bfulgham@apple.com>
2016
2017         [Mac] Remove unneeded sandbox exceptions for media elements
2018         https://bugs.webkit.org/show_bug.cgi?id=168767
2019
2020         Reviewed by Alex Christensen.
2021
2022         Remove several sandbox exceptions that have not been needed for the past four
2023         or five macOS releases.
2024         
2025         * WebProcess/com.apple.WebProcess.sb.in:
2026
2027 2017-02-23  Brent Fulgham  <bfulgham@apple.com>
2028
2029         [Mac] Remove com.apple.audio.VDCAssistant from sandboxes
2030         https://bugs.webkit.org/show_bug.cgi?id=168764
2031         <rdar://problem/16736919>
2032
2033         Reviewed by Alex Christensen.
2034
2035         Remove unneeded sandbox class.
2036
2037         * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
2038         * WebProcess/com.apple.WebProcess.sb.in:
2039
2040 2017-02-22  Wenson Hsieh  <wenson_hsieh@apple.com>
2041
2042         Data interaction causes selection to fall out of sync between web/UI processes
2043         https://bugs.webkit.org/show_bug.cgi?id=168735
2044         <rdar://problem/30657817>
2045
2046         Reviewed by Tim Horton.
2047
2048         Fixes a bug with data interaction causing selection state to fall out of sync between the UI and web processes,
2049         and also introduces testing infrastructure and tests for grabbing UI-side selection view rects in TestWebKitAPI.
2050         While performing a data interaction operation, we now lift restrictions for assisting the focused node.
2051
2052         * UIProcess/ios/WKContentViewInteraction.h:
2053         * UIProcess/ios/WKContentViewInteraction.mm:
2054         (-[WKContentView cleanupInteraction]):
2055         (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):
2056
2057 2017-02-23  Carlos Garcia Campos  <cgarcia@igalia.com>
2058
2059         [GTK] Crash attempting to load Flash plugin in Wayland
2060         https://bugs.webkit.org/show_bug.cgi?id=163159
2061
2062         Reviewed by Michael Catanzaro.
2063
2064         The problem is that we check if the current diplay is X11 or Wayland also in the plugin process, but with GTK2
2065         plugins the display is always X11. We should early reject plugins requiring GTK2 in the UI process when the
2066         current display is Wayland.
2067
2068         * UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
2069         (WebKit::PluginInfoStore::getPluginInfo):
2070         * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
2071         (WebKit::PluginProcessProxy::scanPlugin):
2072         * UIProcess/gtk/WebPageProxyGtk.cpp:
2073         (WebKit::WebPageProxy::createPluginContainer): Add an assert to ensure this message is never received on a
2074         non-X11 display.
2075         * WebProcess/Plugins/PluginView.cpp:
2076         (WebKit::PluginView::createPluginContainer): Never send CreatePluginContainer message to the UI process if the
2077         display is not X11.
2078
2079 2017-02-23  Eric Carlson  <eric.carlson@apple.com>
2080
2081         [MediaStream iOS] Allow web process sandbox to be extended for media capture
2082         https://bugs.webkit.org/show_bug.cgi?id=168756
2083
2084         Reviewed by Brent Fulgham.
2085
2086         * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Add rules to dynamically
2087         extend the sandbox to allow access to the camera and/or microphone.
2088
2089 2017-02-23  Tomas Popela  <tpopela@redhat.com>
2090
2091         [GTK] Drag and drop is always moving the content even if copy is requested
2092         https://bugs.webkit.org/show_bug.cgi?id=168424
2093
2094         Reviewed by Carlos Garcia Campos.
2095
2096         Drag and drop is always moving the content around even if the copy is
2097         requested (i.e. by pressing the Control key).
2098
2099         * UIProcess/gtk/DragAndDropHandler.cpp:
2100         (WebKit::DragAndDropHandler::drop):
2101
2102 2017-02-22  Carlos Garcia Campos  <cgarcia@igalia.com>
2103
2104         Better handle Thread and RunLoop initialization
2105         https://bugs.webkit.org/show_bug.cgi?id=167828
2106
2107         Reviewed by Yusuke Suzuki.
2108
2109         Remove unnecessary call to WTF::initializeMainThread().
2110
2111         * Shared/WebKit2Initialize.cpp:
2112         (WebKit::InitializeWebKit2):
2113
2114 2017-02-22  Chris Dumez  <cdumez@apple.com>
2115
2116         Unreviewed, drop console logging landed by mistake as part of r212832.
2117
2118         * UIProcess/BackgroundProcessResponsivenessTimer.cpp:
2119         (WebKit::BackgroundProcessResponsivenessTimer::timerFired):
2120
2121 2017-02-22  Brent Fulgham  <bfulgham@apple.com>
2122
2123         [Mac] Tighten sandbox to deny process-info* access
2124         https://bugs.webkit.org/show_bug.cgi?id=168704
2125         <rdar://problem/16371441>
2126
2127         Reviewed by Alex Christensen.
2128
2129         Tighten the various WebKit sandboxes by denying access to process-info.
2130         Add back specific features needed to run WebKit tests and to do browsing
2131         of websites (including plugins).
2132
2133         * DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
2134         * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
2135         * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
2136         * WebProcess/com.apple.WebProcess.sb.in:
2137
2138 2017-02-22  Anders Carlsson  <andersca@apple.com>
2139
2140         Crash if there's a mismatch between the WebKit used by the UI process and child processes respectively
2141         https://bugs.webkit.org/show_bug.cgi?id=168739
2142         Part of rdar://problem/30631411.
2143
2144         Reviewed by Geoffrey Garen.
2145
2146         If the UI process and web process for some reason end up using different versions of the WebKit framework, weird things happen
2147         because the message format is different between versions. To avoid this, send along the WebKit bundle version from the UI process
2148         in the XPC bootstrap message, check that it matches inside the XPC main functions. If there's a mismatch, crash.
2149
2150         * Shared/Cocoa/ChildProcessCocoa.mm:
2151         (WebKit::ChildProcess::didReceiveInvalidMessage):
2152         Fix parameters.
2153
2154         * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:
2155         (main):
2156         Check for the bundle version and crash if it's not what we expect.
2157
2158         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
2159         (WebKit::ProcessLauncher::launchProcess):
2160         Initialize the bundle version.
2161
2162         * WebProcess/cocoa/WebProcessCocoa.mm:
2163         (WebKit::_WKSetCrashReportApplicationSpecificInformation):
2164         Export this so we can call it from the XPC services without having to link WKSI.
2165
2166 2017-02-22  Chris Dumez  <cdumez@apple.com>
2167
2168         [WK2] Call processDidBecomeUnresponsive delegate when a background process is unresponsive
2169         https://bugs.webkit.org/show_bug.cgi?id=168683
2170         <rdar://problem/30558745>
2171
2172         Reviewed by Dan Bernstein.
2173
2174         Call processDidBecomeUnresponsive delegate when a background process is unresponsive
2175         instead of killing it on WebKit side. This gives the client the choice about what it
2176         wants to do about this process.
2177
2178         * UIProcess/API/APIProcessPoolConfiguration.cpp:
2179         (API::ProcessPoolConfiguration::copy):
2180         * UIProcess/API/APIProcessPoolConfiguration.h:
2181         * UIProcess/API/C/WKContext.cpp:
2182         * UIProcess/API/C/WKContextPrivate.h:
2183         * UIProcess/BackgroundProcessResponsivenessTimer.cpp: Renamed from Source/WebKit2/UIProcess/UnresponsiveWebProcessTerminator.cpp.
2184         (WebKit::BackgroundProcessResponsivenessTimer::BackgroundProcessResponsivenessTimer):
2185         (WebKit::BackgroundProcessResponsivenessTimer::updateState):
2186         (WebKit::BackgroundProcessResponsivenessTimer::timerFired):
2187         * UIProcess/BackgroundProcessResponsivenessTimer.h: Renamed from Source/WebKit2/UIProcess/UnresponsiveWebProcessTerminator.h.
2188         * UIProcess/WebPageProxy.cpp:
2189         (WebKit::WebPageProxy::reattachToWebProcess):
2190         (WebKit::WebPageProxy::dispatchActivityStateChange):
2191         (WebKit::WebPageProxy::terminateProcess):
2192         * UIProcess/WebPageProxy.h:
2193         * UIProcess/WebProcessProxy.cpp:
2194         (WebKit::m_backgroundResponsivenessTimer):
2195         * UIProcess/WebProcessProxy.h:
2196         * WebKit2.xcodeproj/project.pbxproj:
2197
2198 2017-02-22  Carlos Garcia Campos  <cgarcia@igalia.com>
2199
2200         NetworkProcess: Stop disabling buffering when NETWORK_CACHE is disabled in build
2201         https://bugs.webkit.org/show_bug.cgi?id=168637
2202
2203         Reviewed by Alex Christensen.
2204
2205         It was added in r193752 as part of bug #137692 to fix an infinite loop in network process that happened in EFL
2206         because they didn't enable the network cache at that time. I think that was actually a workaround, and it was
2207         added without any comment so it has stayed there even when EFL enabled disk cache, and now that is gone. Looking
2208         at current code I see no reason why buffering can't work with the disk cache disabled, so I think it's time to
2209         remove that workaround.
2210
2211         * WebProcess/Network/WebLoaderStrategy.cpp:
2212         (WebKit::maximumBufferingTime):
2213
2214 2017-02-21  Youenn Fablet  <youenn@apple.com>
2215
2216         [WebRTC][Mac] Activate libwebrtc
2217         https://bugs.webkit.org/show_bug.cgi?id=167293
2218         <rdar://problem/30401864>
2219
2220         Reviewed by Alex Christensen.
2221
2222         Activating PeerConnection runtime flag based on successful loading of libwebrtc.dylib.
2223
2224         * Configurations/WebKit.xcconfig:
2225         * Configurations/FeatureDefines.xcconfig:
2226         * Shared/WebPreferencesDefinitions.h:
2227         * UIProcess/WebPreferences.cpp:
2228         (WebKit::checkWebRTCAvailability):
2229
2230 2017-02-21  Commit Queue  <commit-queue@webkit.org>
2231
2232         Unreviewed, rolling out r212786.
2233         https://bugs.webkit.org/show_bug.cgi?id=168710
2234
2235         It broke GTK+ port when using single shared process model
2236         (Requested by KaL on #webkit).
2237
2238         Reverted changeset:
2239
2240         "Refactor WebViewImpl creation in preparation for supporting
2241         multiple WebsiteDataStores."
2242         https://bugs.webkit.org/show_bug.cgi?id=168676
2243         http://trac.webkit.org/changeset/212786
2244
2245 2017-02-21  Brady Eidson  <beidson@apple.com>
2246
2247         Refactor WebViewImpl creation in preparation for supporting multiple WebsiteDataStores.
2248         https://bugs.webkit.org/show_bug.cgi?id=168676
2249
2250         Reviewed by Alex Christensen.
2251
2252         * UIProcess/API/Cocoa/WKWebView.mm:
2253         (-[WKWebView _initializeWithConfiguration:]): Allow for WebViewImpl creation to fail.
2254
2255         * UIProcess/API/mac/WKView.mm:
2256         (-[WKView initWithFrame:processPool:configuration:]): Ditto.
2257
2258         * UIProcess/Cocoa/WebViewImpl.h:
2259         * UIProcess/Cocoa/WebViewImpl.mm:
2260         (WebKit::WebViewImpl::maybeCreate):
2261         (WebKit::WebViewImpl::WebViewImpl):
2262
2263         * UIProcess/WebPageProxy.cpp:
2264         (WebKit::WebPageProxy::reattachToWebProcess): New WebProcess creation might fail. Handle it.
2265         * UIProcess/WebProcessPool.cpp:
2266         (WebKit::WebProcessPool::createNewWebProcess):
2267         (WebKit::WebProcessPool::warmInitialProcess):
2268         (WebKit::WebProcessPool::maybeCreateNewWebProcessRespectingProcessCountLimit): This can now fail
2269           if the process will have a non-default WebsiteDataStore but we've already reached the process cap.
2270         (WebKit::WebProcessPool::createWebPage):
2271         (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit): Deleted.
2272         * UIProcess/WebProcessPool.h:
2273
2274 2017-02-21  Youenn Fablet  <youenn@apple.com>
2275
2276         [WebRTC] WebKit2 should assert that libwebrtc transmitted IP addresses family is IP4 or IP6
2277         https://bugs.webkit.org/show_bug.cgi?id=168691
2278
2279         Reviewed by Alex Christensen.
2280
2281         Adding some asserts that family is IPv4 or IPv6.
2282
2283         * Shared/RTCNetwork.cpp:
2284         (WebKit::RTCNetwork::IPAddress::decode):
2285         (WebKit::RTCNetwork::IPAddress::encode):
2286
2287 2017-02-20  Simon Fraser  <simon.fraser@apple.com>
2288
2289         Add support to PlatformCALayer/GraphicsLayerCA for subpixel-antialiased text, with a Setting and a MiniBrowser switch
2290         https://bugs.webkit.org/show_bug.cgi?id=168620
2291         <rdar://problem/30617772>
2292
2293         Reviewed by Tim Horton.
2294
2295         Add a Setting for subpixel-antialiased layer text. Plumb this through GraphicsLayerCA and
2296         PlatformCALayer, where it ultimately affects the layer contents format.
2297         
2298         This is not supported with UI-side compositing.
2299
2300         * Shared/WebPreferencesDefinitions.h:
2301         * UIProcess/API/C/WKPreferences.cpp:
2302         (WKPreferencesSetSubpixelAntialiasedLayerTextEnabled):
2303         (WKPreferencesGetSubpixelAntialiasedLayerTextEnabled):
2304         * UIProcess/API/C/WKPreferencesRefPrivate.h:
2305         * UIProcess/API/Cocoa/WKPreferences.mm:
2306         (-[WKPreferences _subpixelAntialiasedLayerTextEnabled]):
2307         (-[WKPreferences _setSubpixelAntialiasedLayerTextEnabled:]):
2308         * UIProcess/API/Cocoa/WKPreferencesPrivate.h:
2309         * WebProcess/WebPage/WebPage.cpp:
2310         (WebKit::WebPage::updatePreferences):
2311         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
2312         (WebKit::PlatformCALayerRemote::supportsSubpixelAntialiasedText):
2313         (WebKit::PlatformCALayerRemote::setSupportsSubpixelAntialiasedText):
2314         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
2315         * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
2316         (WebKit::PlatformCALayerRemoteTiledBacking::supportsSubpixelAntialiasedText):
2317         (WebKit::PlatformCALayerRemoteTiledBacking::setSupportsSubpixelAntialiasedText):
2318         * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
2319
2320 2017-02-21  John Wilander  <wilander@apple.com>
2321
2322         Resource Load Statistics: Only scan website data store once per session ID + reinstate removal counting
2323         https://bugs.webkit.org/show_bug.cgi?id=168541
2324
2325         Reviewed by Alex Christensen.
2326
2327         * UIProcess/WebProcessProxy.cpp:
2328         (WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyOwnedDomainsInAllPersistentDataStores):
2329             The CallbackAggregator now merges a list of domains for which we
2330             have removed data records and eventually reports this back to the
2331             caller.
2332         * UIProcess/WebProcessProxy.h:
2333         * UIProcess/WebResourceLoadStatisticsStore.cpp:
2334         (WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
2335             Now reports back to its WebCore::ResourceLoadStatisticsStore
2336             which domains have had data records removed.
2337         * UIProcess/WebsiteData/WebsiteDataStore.cpp:
2338         (WebKit::WebsiteDataStore::fetchDataForTopPrivatelyOwnedDomains):
2339             The completion handler now handles data record removal counting.
2340         (WebKit::WebsiteDataStore::removeDataForTopPrivatelyOwnedDomains):
2341             The completion handler now handles data record removal counting.
2342         * UIProcess/WebsiteData/WebsiteDataStore.h:
2343
2344 2017-02-21  Alex Christensen  <achristensen@webkit.org>
2345
2346         Fix CMake build.
2347
2348         * PlatformMac.cmake:
2349
2350 2017-02-21  Youenn Fablet  <youenn@apple.com>
2351
2352         [WebRTC][Mac] Network process sandbox does not allow WebRTC networking
2353         https://bugs.webkit.org/show_bug.cgi?id=168594
2354
2355         Reviewed by Brent Fulgham.
2356
2357         UIProcess was passing a boolean to know whether WebRTC networking is allowed or not to the network process.
2358         This boolean was known to late for the sandbox to be relaxed.
2359         A sandbox extension is now used instead to relax the sandbox.
2360
2361         * NetworkProcess/NetworkProcess.h:
2362         * NetworkProcess/NetworkProcessCreationParameters.cpp:
2363         (WebKit::NetworkProcessCreationParameters::encode):
2364         (WebKit::NetworkProcessCreationParameters::decode):
2365         * NetworkProcess/NetworkProcessCreationParameters.h:
2366         * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
2367         (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
2368         * NetworkProcess/mac/NetworkProcessMac.mm:
2369         (WebKit::NetworkProcess::platformInitializeNetworkProcess):
2370         (WebKit::NetworkProcess::initializeSandbox):
2371         * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
2372         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
2373         (WebKit::WebProcessPool::platformInitializeNetworkProcess):
2374
2375 2017-02-21  Youenn Fablet  <youenn@apple.com>
2376
2377         [WebRTC] ICE candidates should be filtered according a policy
2378         https://bugs.webkit.org/show_bug.cgi?id=168348
2379
2380         Reviewed by Alex Christensen.
2381
2382         Adding the possibility for the UI process to control the ICE candidate filtering and whether libwebrtc can
2383         enumerate all interfaces or not.
2384
2385         Disabling ICE candidate filtering for the moment.
2386         Enabling to enumerate all interfaces for the moment.
2387
2388         In the future, ICE candidate filtering should be tied to getUserMedia.
2389         Interface enumeration should be disabled with the default configuration.
2390         We should do that once we have sufficient testing in various network infrastructures.
2391
2392         * UIProcess/WebPageProxy.cpp:
2393         (WebKit::WebPageProxy::initializeWebPage):
2394         * WebKit2.xcodeproj/project.pbxproj:
2395         * WebProcess/WebPage/WebPage.h:
2396         (WebKit::WebPage::disableICECandidateFiltering):
2397         (WebKit::WebPage::enableICECandidateFiltering):
2398         (WebKit::WebPage::disableEnumeratingAllNetworkInterfaces):
2399         (WebKit::WebPage::enableEnumeratingAllNetworkInterfaces):
2400         * WebProcess/WebPage/WebPage.messages.in:
2401
2402 2017-02-21  Youenn Fablet  <youenn@apple.com>
2403
2404         [WebRTC] NetworkRTCMonitor should ensure clearing its manager only once
2405         https://bugs.webkit.org/show_bug.cgi?id=168661
2406
2407         Reviewed by Alex Christensen.
2408
2409         Making sure NetworkRTCMonitor manager is cleared only once.
2410         ALso ensuring that manager does not get destroyed as part of NetworkRTCMonitor destructor.
2411         The manager needs to be destroyed in the RTC network thread.
2412
2413         * NetworkProcess/webrtc/NetworkRTCMonitor.cpp:
2414         (WebKit::NetworkRTCMonitor::~NetworkRTCMonitor):
2415         (WebKit::NetworkRTCMonitor::stopUpdating):
2416         * NetworkProcess/webrtc/NetworkRTCMonitor.h:
2417
2418 2017-02-21  Brent Fulgham  <bfulgham@apple.com>
2419
2420         [WebRTC][Mac][WebKit2] Revise sandbox to limit connections to UDP and TCP
2421         https://bugs.webkit.org/show_bug.cgi?id=168664
2422         <rdar://problem/30600587>
2423
2424         Reviewed by Youenn Fablet.
2425
2426         Add filters to the WebRTC rule to limit network traffic to UDP and TCP.
2427
2428         * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
2429
2430 2017-02-21  Maureen Daum  <mdaum@apple.com>
2431
2432         Check what LocalStorage data exists in deleteDatabasesModifiedSince() before attempting deletion.
2433         https://bugs.webkit.org/show_bug.cgi?id=168659
2434         rdar://problem/22781730
2435
2436         Reviewed by Brady Eidson.
2437
2438         Check what LocalStorage data exists in deleteDatabasesModifiedSince() before attempting deletion.
2439         It is possible that another process has caused information to be added to LocalStorage
2440         after we created this LocalStorageDatabaseTracker instance, so we should update our
2441         internal state by checking the contents of StorageTracker.db and the other local
2442         storage files so we know what databases actually exist. By calling importOriginIdentifiers()
2443         at the start of deleteDatabasesModifiedSince(), m_origins will now have the up-to-date
2444         list of origins LocalStorage contains data for.
2445
2446         * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
2447         (WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):
2448
2449 2017-02-21  Carlos Garcia Campos  <cgarcia@igalia.com>
2450
2451         Reduce platform ifdefs in WebKit2 custom protocols implementation
2452         https://bugs.webkit.org/show_bug.cgi?id=165028
2453
2454         Reviewed by Darin Adler.
2455
2456         Make mac implementation use the APICustomProtocolManagerClient to share more code with the soup based ports.
2457
2458         * CMakeLists.txt: Add CustomProtocolManagerProxy.cpp.
2459         * PlatformEfl.cmake: Remove CustomProtocolManagerProxySoup.cpp.
2460         * PlatformGTK.cmake: Ditto.
2461         * PlatformMac.cmake: Remove CustomProtocolManagerProxyMac.mm.
2462         * UIProcess/API/APICustomProtocolManagerClient.h:
2463         (API::CustomProtocolManagerClient::startLoading): Make it void, since we were always returning true and the
2464         returned value was ignored.
2465         * UIProcess/API/efl/ewk_url_scheme_request.cpp:
2466         (EwkUrlSchemeRequest::finish): Update to new CustomProtocolManagerProxy API.
2467         * UIProcess/API/gtk/WebKitCustomProtocolManagerClient.cpp:
2468         * UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
2469         (webkitURISchemeRequestReadCallback): Ditto.
2470         * UIProcess/Cocoa/CustomProtocolManagerClient.h: Added.
2471         * UIProcess/Cocoa/CustomProtocolManagerClient.mm: Added.
2472         (-[WKCustomProtocolLoader initWithCustomProtocolManagerProxy:customProtocolID:request:]):
2473         (-[WKCustomProtocolLoader dealloc]):
2474         (-[WKCustomProtocolLoader connection:didFailWithError:]):
2475         (-[WKCustomProtocolLoader connection:didReceiveResponse:]):
2476         (-[WKCustomProtocolLoader connection:didReceiveData:]):
2477         (-[WKCustomProtocolLoader connection:willSendRequest:redirectResponse:]):
2478         (-[WKCustomProtocolLoader connectionDidFinishLoading:]):
2479         (WebKit::CustomProtocolManagerClient::startLoading):
2480         (WebKit::CustomProtocolManagerClient::stopLoading):
2481         (WebKit::CustomProtocolManagerClient::invalidate):
2482         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
2483         (WebKit::WebProcessPool::platformInitialize): Set the CustomProtocolManagerClient.
2484         (WebKit::WebProcessPool::platformInitializeNetworkProcess): Remove code that is now shared.
2485         * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.cpp: Added.
2486         (WebKit::CustomProtocolManagerProxy::startLoading):
2487         (WebKit::CustomProtocolManagerProxy::processDidClose):
2488         (WebKit::CustomProtocolManagerProxy::wasRedirectedToRequest):
2489         (WebKit::CustomProtocolManagerProxy::didReceiveResponse):
2490         * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
2491         * UIProcess/WebProcessPool.cpp:
2492         (WebKit::globalURLSchemesWithCustomProtocolHandlers): Just moved here to use it from ensureNetworkProcess().
2493         (WebKit::WebProcessPool::WebProcessPool): Remove soup ifdefs.
2494         (WebKit::WebProcessPool::setCustomProtocolManagerClient): Moved from the soup implementation.
2495         (WebKit::WebProcessPool::ensureNetworkProcess): Initialize custom protocols parameters.
2496         (WebKit::WebProcessPool::registerSchemeForCustomProtocol): Register the protocol if not already registered globally.
2497         (WebKit::WebProcessPool::unregisterSchemeForCustomProtocol): Remove soup ifdefs.
2498         * UIProcess/WebProcessPool.h: Remove soup ifdefs.
2499         * UIProcess/efl/RequestManagerClientEfl.cpp:
2500         * UIProcess/soup/WebProcessPoolSoup.cpp:
2501         (WebKit::WebProcessPool::platformInitializeNetworkProcess): Remove code that is now shared.
2502         * WebKit2.xcodeproj/project.pbxproj:
2503
2504 2017-02-21  Daewoong Jang  <daewoong.jang@navercorp.com>
2505
2506         Remove unused files.
2507         https://bugs.webkit.org/show_bug.cgi?id=168656.
2508
2509         Reviewed by Csaba Osztrogonác.
2510
2511         Remove files which became unused after removal of EFL port.
2512
2513         * UIProcess/CoordinatedGraphics/PageViewportController.cpp: Removed.
2514         * UIProcess/CoordinatedGraphics/PageViewportController.h: Removed.
2515         * UIProcess/PageViewportControllerClient.h: Removed.
2516
2517 2017-02-21  Youenn Fablet  <youenn@apple.com>
2518
2519         [WebRTC] LibWebRTCSocket::SendTo message should have a correct SocketAddress
2520         https://bugs.webkit.org/show_bug.cgi?id=168636
2521
2522         Reviewed by Eric Carlson.
2523
2524         * WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
2525         (WebKit::LibWebRTCSocket::SendTo): Ensuring address remains valid during SendTo message lifetime.
2526
2527 2017-02-21  Alex Christensen  <achristensen@webkit.org>
2528
2529         Unreviewed, rolling out r212699.
2530
2531         Internal build not ready
2532
2533         Reverted changeset:
2534
2535         "[WebRTC][Mac] Activate libwebrtc"
2536         https://bugs.webkit.org/show_bug.cgi?id=167293
2537         http://trac.webkit.org/changeset/212699
2538
2539 2017-02-20  Carlos Garcia Campos  <cgarcia@igalia.com>
2540
2541         Remove ENABLE_THREADED_COMPOSITOR build option
2542         https://bugs.webkit.org/show_bug.cgi?id=168606
2543
2544         Reviewed by Michael Catanzaro.
2545
2546         Now that we have AC mode on demand with the threaded compositor there's no reason to keep the old AC code.
2547
2548         * PlatformGTK.cmake:
2549         * WebProcess/WebPage/LayerTreeHost.cpp:
2550         (WebKit::LayerTreeHost::create):
2551         * WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp: Removed.
2552         * WebProcess/WebPage/gtk/LayerTreeHostGtk.h: Removed.
2553
2554 2017-02-20  Youenn Fablet  <youenn@apple.com>
2555
2556         [WebRTC][Mac] Activate libwebrtc
2557         https://bugs.webkit.org/show_bug.cgi?id=167293
2558         <rdar://problem/30401864>
2559
2560         Reviewed by Alex Christensen.
2561
2562         Activating PeerConnection runtime flag based on successful loading of libwebrtc.dylib.
2563
2564         * Configurations/WebKit.xcconfig:
2565         * Shared/WebPreferencesDefinitions.h:
2566         * UIProcess/WebPreferences.cpp:
2567         (WebKit::checkWebRTCAvailability):
2568
2569 2017-02-20  Ryan Haddad  <ryanhaddad@apple.com>
2570
2571         Unreviewed, rolling out r212685.
2572
2573         This change broke the 32-bit Sierra build.
2574
2575         Reverted changeset:
2576
2577         "Resource Load Statistics: Add alternate classification
2578         method"
2579         https://bugs.webkit.org/show_bug.cgi?id=168347
2580         http://trac.webkit.org/changeset/212685
2581
2582 2017-02-20  John Wilander  <wilander@apple.com>
2583
2584         Resource Load Statistics: Add alternate classification method
2585         https://bugs.webkit.org/show_bug.cgi?id=168347
2586         <rdar://problem/30352793>
2587
2588         Reviewed by Alex Christensen.
2589
2590         This patch adds a CorePrediction-based classifier to the WebResourceLoadStatisticsStore.
2591         The CorePrediction framework is introduced as a dependency for macOS and iOS. The patch
2592         also adds functions to support layout tests of the feature.
2593
2594         * Configurations/BaseTarget.xcconfig:
2595         * Configurations/WebKit.xcconfig:
2596             Added dependency on CorePrediction.
2597         * Platform/classifier: Added.
2598         * Platform/classifier/ResourceLoadStatisticsClassifier.h: Added.
2599             Pulls in the Cocoa-specific classifier for Cocoa-based platforms.
2600         (WebKit::ResourceLoadStatisticsClassifier::ResourceLoadStatisticsClassifier):
2601         * Platform/classifier/ResourceLoadStatisticsClassifierBase.cpp: Added.
2602         (WebKit::ResourceLoadStatisticsClassifierBase::hasPrevalentResourceCharacteristics):
2603             Shared classifier logic.
2604         (WebKit::ResourceLoadStatisticsClassifierBase::classifyWithVectorThreshold):
2605             Fallback classifier for when we don't have CorePrediction.
2606         * Platform/classifier/ResourceLoadStatisticsClassifierBase.h: Added.
2607         (WebKit::ResourceLoadStatisticsClassifierBase::ResourceLoadStatisticsClassifierBase):
2608         (WebKit::ResourceLoadStatisticsClassifierBase::~ResourceLoadStatisticsClassifierBase):
2609         * Platform/classifier/cocoa: Added.
2610         * Platform/classifier/cocoa/CorePredictionSPI.h: Added.
2611             Includes CorePrediction if available, otherwise declares needed symbols.
2612             Always redeclares the functions so we'll get a build error if
2613             CorePrediction changes.
2614         * Platform/classifier/cocoa/ResourceLoadStatisticsClassifierCocoa.cpp: Added.
2615         (WebKit::ResourceLoadStatisticsClassifier::classify):
2616         (WebKit::ResourceLoadStatisticsClassifier::storagePath):
2617         (WebKit::ResourceLoadStatisticsClassifier::shouldUseCorePrediction):
2618             The new classifier for Cocoa platforms.
2619         * Platform/classifier/cocoa/ResourceLoadStatisticsClassifierCocoa.h: Added.
2620         (WebKit::ResourceLoadStatisticsClassifier::ResourceLoadStatisticsClassifier):
2621         * PlatformGTK.cmake:
2622            Added Platform/classifier directory and ResourceLoadStatisticsClassifierBase.cpp.
2623         * PlatformMac.cmake:
2624            Added Platform/classifier and Platform/classifier/cocoa directories, and
2625            source files ResourceLoadStatisticsClassifierBase.cpp and
2626            ResourceLoadStatisticsClassifierCocoa.cpp
2627         * Resources/ResourceLoadStatistics: Added.
2628         * Resources/ResourceLoadStatistics/corePrediction_model: Added.
2629             Model file to load into CorePrediction.
2630         * UIProcess/API/C/WKResourceLoadStatisticsManager.cpp:
2631         (WKResourceLoadStatisticsManagerSetSubframeUnderTopFrameOrigin):
2632         (WKResourceLoadStatisticsManagerSetSubresourceUnderTopFrameOrigin):
2633         (WKResourceLoadStatisticsManagerSetSubresourceUniqueRedirectTo):
2634             Test infrastructure.
2635         * UIProcess/API/C/WKResourceLoadStatisticsManager.h:
2636         * UIProcess/WebResourceLoadStatisticsManager.cpp:
2637         (WebKit::WebResourceLoadStatisticsManager::setSubframeUnderTopFrameOrigin):
2638         (WebKit::WebResourceLoadStatisticsManager::setSubresourceUnderTopFrameOrigin):
2639         (WebKit::WebResourceLoadStatisticsManager::setSubresourceUniqueRedirectTo):
2640             Test infrastructure.
2641         * UIProcess/WebResourceLoadStatisticsManager.h:
2642         * UIProcess/WebResourceLoadStatisticsStore.cpp:
2643         (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
2644             Renamed m_storagePath to m_statisticsStoragePath for clarity.
2645         (WebKit::WebResourceLoadStatisticsStore::classifyResource):
2646             Now calls the classifier through its ResourceLoadStatisticsClassifier
2647             member variable.
2648         (WebKit::WebResourceLoadStatisticsStore::persistentStoragePath):
2649             Renamed m_storagePath to m_statisticsStoragePath for clarity.
2650         (WebKit::WebResourceLoadStatisticsStore::writeEncoderToDisk):
2651             Renamed m_storagePath to m_statisticsStoragePath for clarity.
2652         (WebKit::WebResourceLoadStatisticsStore::hasPrevalentResourceCharacteristics): Deleted.
2653         * UIProcess/WebResourceLoadStatisticsStore.h:
2654         * WebKit2.xcodeproj/project.pbxproj:
2655             Added the new classifier source files under Platform/classifier and the
2656             corePrediction_model file under Resources/ResourceLoadStatistics.
2657
2658 2017-02-20  Wenson Hsieh  <wenson_hsieh@apple.com>
2659
2660         Add plumbing to the UI process for TextIndicatorData when computing the drag image
2661         https://bugs.webkit.org/show_bug.cgi?id=168583
2662         Work towards <rdar://problem/30313681>
2663
2664         Reviewed by Tim Horton.
2665
2666         Changes the SetDragImage IPC message to send TextIndicatorData over to the UI process. Also changes the boolean
2667         isLink parameter to be a DragSourceAction instead, leaving it up to the receiving end (in the UI process) to
2668         special case links.
2669
2670         Additionally, renames hasDataInteractionAtPosition to hasSelectionAtPosition to better reflect its purpose.
2671
2672         These changes are only infrastructural should not alter any behaviors.
2673
2674         * Shared/ios/InteractionInformationAtPosition.h:
2675         * Shared/ios/InteractionInformationAtPosition.mm:
2676         (WebKit::InteractionInformationAtPosition::encode):
2677         (WebKit::InteractionInformationAtPosition::decode):
2678         * UIProcess/API/Cocoa/WKWebView.mm:
2679         (-[WKWebView _simulateDataInteractionGestureRecognized]):
2680         (-[WKWebView _simulateDataInteractionEntered:]):
2681         (-[WKWebView _simulateDataInteractionUpdated:]):
2682         (-[WKWebView _simulateDataInteractionPerformOperation:]):
2683         (-[WKWebView _simulateDataInteractionEnded:]):
2684         (-[WKWebView _simulateDataInteractionSessionDidEnd:withOperation:]):
2685         (-[WKWebView _simulateFailedDataInteractionWithIndex:]):
2686         (-[WKWebView _simulateWillBeginDataInteractionWithIndex:withSession:]):
2687         (-[WKWebView _simulatedItemsForDataInteractionWithIndex:]):
2688         * UIProcess/API/Cocoa/_WKTestingDelegate.h:
2689         * UIProcess/PageClient.h:
2690         * UIProcess/WebPageProxy.h:
2691         * UIProcess/WebPageProxy.messages.in:
2692         * UIProcess/ios/PageClientImplIOS.h:
2693         * UIProcess/ios/PageClientImplIOS.mm:
2694         (WebKit::PageClientImpl::setDragImage):
2695         (WebKit::PageClientImpl::startDataInteractionWithImage):
2696         * UIProcess/ios/WKContentViewInteraction.h:
2697         * UIProcess/ios/WKContentViewInteraction.mm:
2698         (-[WKContentView hasSelectablePositionAtPoint:]):
2699         (-[WKContentView pointIsInDataInteractionContent:]):
2700         (-[WKContentView _dataInteractionGestureRecognizer]):
2701         (-[WKContentView pointIsInAssistedNode:]):
2702         * UIProcess/mac/PageClientImpl.h:
2703         * UIProcess/mac/PageClientImpl.mm:
2704         (WebKit::PageClientImpl::setDragImage):
2705         * UIProcess/mac/WebPageProxyMac.mm:
2706         (WebKit::WebPageProxy::setDragImage):
2707         * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
2708         (WebKit::WebDragClient::startDrag):
2709         * WebProcess/WebPage/ios/WebPageIOS.mm:
2710         (WebKit::WebPage::getPositionInformation):
2711
2712 2017-02-20  David Quesada  <david_quesada@apple.com>
2713
2714         Don’t set NSURLSessionConfiguration’s _sourceApplicationAuditTokenData if _sourceApplicationBundleIdentifier is also set.
2715         https://bugs.webkit.org/show_bug.cgi?id=168607
2716
2717         rdar://problem/30239618
2718
2719         Reviewed by Geoffrey Garen.
2720
2721         * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
2722         (WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
2723         If the process pool configuration sets a source application bundle identifier, don't give the NSURLSession configuration
2724         the audit token from the UI process, as it may be associated with an application with a conflicting bundle identifier.
2725
2726 2017-02-20  Ryan Haddad  <ryanhaddad@apple.com>
2727
2728         Unreviewed, rolling out r212632.
2729
2730         This change appears to have caused API test failures.
2731
2732         Reverted changeset:
2733
2734         "Reduce platform ifdefs in WebKit2 custom protocols
2735         implementation"
2736         https://bugs.webkit.org/show_bug.cgi?id=165028
2737         http://trac.webkit.org/changeset/212632
2738
2739 2017-02-20  Youenn Fablet  <youenn@apple.com>
2740
2741         [WebRTC] Fix some memory leaks in libwebrtc binding code
2742         https://bugs.webkit.org/show_bug.cgi?id=168596
2743
2744         Reviewed by Eric Carlson.
2745
2746         * NetworkProcess/webrtc/NetworkRTCProvider.cpp:
2747         (WebKit::NetworkRTCProvider::OnMessage):
2748
2749 2017-02-20  Carlos Garcia Campos  <cgarcia@igalia.com>
2750
2751         Remove code under USE(GRAPHICS_SURFACE)
2752         https://bugs.webkit.org/show_bug.cgi?id=168592
2753
2754         Reviewed by Michael Catanzaro.
2755
2756         This was only used by EFL port.
2757
2758         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
2759         (IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::encode):
2760         (IPC::ArgumentCoder<CoordinatedGraphicsLayerState>::decode):
2761         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
2762         * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
2763         (WebKit::CoordinatedGraphicsScene::syncPlatformLayerIfNeeded):
2764         (WebKit::CoordinatedGraphicsScene::deleteLayer):
2765         (WebKit::CoordinatedGraphicsScene::assignImageBackingToLayer):
2766         (WebKit::CoordinatedGraphicsScene::purgeGLResources):
2767         * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
2768         * Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:
2769         (WebKit::WebCoordinatedSurface::Handle::encode):
2770         (WebKit::WebCoordinatedSurface::Handle::decode):
2771         (WebKit::WebCoordinatedSurface::create):
2772         (WebKit::WebCoordinatedSurface::createGraphicsContext):
2773         (WebKit::WebCoordinatedSurface::createHandle):
2774         (WebKit::WebCoordinatedSurface::copyToTexture):
2775         * Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
2776
2777 2017-02-20  Carlos Garcia Campos  <cgarcia@igalia.com>
2778
2779         Reduce platform ifdefs in WebKit2 custom protocols implementation
2780         https://bugs.webkit.org/show_bug.cgi?id=165028
2781
2782         Reviewed by Darin Adler.
2783
2784         Make mac implementation use the APICustomProtocolManagerClient to share more code with the soup based ports.
2785
2786         * CMakeLists.txt: Add CustomProtocolManagerProxy.cpp.
2787         * PlatformEfl.cmake: Remove CustomProtocolManagerProxySoup.cpp.
2788         * PlatformGTK.cmake: Ditto.
2789         * PlatformMac.cmake: Remove CustomProtocolManagerProxyMac.mm.
2790         * UIProcess/API/APICustomProtocolManagerClient.h:
2791         (API::CustomProtocolManagerClient::startLoading): Make it void, since we were always returning true and the
2792         returned value was ignored.
2793         * UIProcess/API/efl/ewk_url_scheme_request.cpp:
2794         (EwkUrlSchemeRequest::finish): Update to new CustomProtocolManagerProxy API.
2795         * UIProcess/API/gtk/WebKitCustomProtocolManagerClient.cpp:
2796         * UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
2797         (webkitURISchemeRequestReadCallback): Ditto.
2798         * UIProcess/Cocoa/CustomProtocolManagerClient.h: Added.
2799         * UIProcess/Cocoa/CustomProtocolManagerClient.mm: Added.
2800         (-[WKCustomProtocolLoader initWithCustomProtocolManagerProxy:customProtocolID:request:]):
2801         (-[WKCustomProtocolLoader dealloc]):
2802         (-[WKCustomProtocolLoader connection:didFailWithError:]):
2803         (-[WKCustomProtocolLoader connection:didReceiveResponse:]):
2804         (-[WKCustomProtocolLoader connection:didReceiveData:]):
2805         (-[WKCustomProtocolLoader connection:willSendRequest:redirectResponse:]):
2806         (-[WKCustomProtocolLoader connectionDidFinishLoading:]):
2807         (WebKit::CustomProtocolManagerClient::startLoading):
2808         (WebKit::CustomProtocolManagerClient::stopLoading):
2809         (WebKit::CustomProtocolManagerClient::invalidate):
2810         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
2811         (WebKit::WebProcessPool::platformInitialize): Set the CustomProtocolManagerClient.
2812         (WebKit::WebProcessPool::platformInitializeNetworkProcess): Remove code that is now shared.
2813         * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.cpp: Added.
2814         (WebKit::CustomProtocolManagerProxy::startLoading):
2815         (WebKit::CustomProtocolManagerProxy::processDidClose):
2816         (WebKit::CustomProtocolManagerProxy::wasRedirectedToRequest):
2817         (WebKit::CustomProtocolManagerProxy::didReceiveResponse):
2818         * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
2819         * UIProcess/WebProcessPool.cpp:
2820         (WebKit::globalURLSchemesWithCustomProtocolHandlers): Just moved here to use it from ensureNetworkProcess().
2821         (WebKit::WebProcessPool::WebProcessPool): Remove soup ifdefs.
2822         (WebKit::WebProcessPool::setCustomProtocolManagerClient): Moved from the soup implementation.
2823         (WebKit::WebProcessPool::ensureNetworkProcess): Initialize custom protocols parameters.
2824         (WebKit::WebProcessPool::registerSchemeForCustomProtocol): Register the protocol if not already registered globally.
2825         (WebKit::WebProcessPool::unregisterSchemeForCustomProtocol): Remove soup ifdefs.
2826         * UIProcess/WebProcessPool.h: Remove soup ifdefs.
2827         * UIProcess/efl/RequestManagerClientEfl.cpp:
2828         * UIProcess/soup/WebProcessPoolSoup.cpp:
2829         (WebKit::WebProcessPool::platformInitializeNetworkProcess): Remove code that is now shared.
2830         * WebKit2.xcodeproj/project.pbxproj:
2831
2832 2017-02-20  Manuel Rego Casasnovas  <rego@igalia.com>
2833
2834         [css-grid] Remove compilation flag ENABLE_CSS_GRID_LAYOUT
2835         https://bugs.webkit.org/show_bug.cgi?id=167693
2836
2837         Reviewed by Sergio Villar Senin.
2838
2839         * Configurations/FeatureDefines.xcconfig:
2840         * WebProcess/InjectedBundle/InjectedBundle.cpp:
2841         (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
2842         * WebProcess/WebPage/WebPage.cpp:
2843         (WebKit::WebPage::updatePreferences):
2844
2845 2017-02-20  Carlos Garcia Campos  <cgarcia@igalia.com>
2846
2847         REGRESSION(r212345): [GTK] ASSERT(cookieChangeCallbackMap().contains(jar)) failed in WebCore::stopObservingCookieChanges:54
2848         https://bugs.webkit.org/show_bug.cgi?id=168375
2849
2850         Reviewed by Alex Christensen.
2851
2852         Simplify the cookies change notification. The current approach of the UI process telling the network process
2853         when to start and stop observing cookie changes is quite fragile and error prone. In the GTK+ port we always
2854         observe cookies, so our cookie manager always calls start in the constructor and stop in the destructor.
2855         Everything would be a lot simpler if the network process always monitored cookies.
2856
2857         * NetworkProcess/soup/NetworkSessionSoup.cpp:
2858         (WebKit::NetworkSessionSoup::NetworkSessionSoup): Set cookies observer handler for the session.
2859         (WebKit::NetworkSessionSoup::~NetworkSessionSoup): Remove the cookies observer handler.
2860         * UIProcess/API/gtk/WebKitCookieManager.cpp:
2861         (_WebKitCookieManagerPrivate::~_WebKitCookieManagerPrivate): Remove the cookies observer callback.
2862         (webkit_cookie_manager_class_init): Remove dispose implementation that is no longer needed.
2863         (webkitCookieManagerCreate): Set the cookies observer callback.
2864         (webkit_cookie_manager_set_persistent_storage): Remove code to start/stop observing cookies when the jar
2865         changes, the network process deals with that now.
2866         (webkitCookieManagerDispose): Deleted.
2867         * UIProcess/WebCookieManagerProxy.cpp:
2868         (WebKit::WebCookieManagerProxy::startObservingCookieChanges): Remove the optional callback method in favor of an
2869         explicit method to the set the callback that doesn't send the StartObservingCookieChanges message to the network
2870         process.
2871         (WebKit::WebCookieManagerProxy::stopObservingCookieChanges): Do not change the callback map here.
2872         (WebKit::WebCookieManagerProxy::setCookieObserverCallback): Add the callback to the map or remove the session if
2873         nullptr is given.
2874         * UIProcess/WebCookieManagerProxy.h:
2875         * WebProcess/Cookies/WebCookieManager.cpp:
2876         (WebKit::WebCookieManager::notifyCookiesDidChange): Send CookiesDidChange message to the UI process.
2877         (WebKit::WebCookieManager::startObservingCookieChanges): Use notifyCookiesDidChange().
2878         * WebProcess/Cookies/WebCookieManager.h:
2879         * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
2880         (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Set the policy on all sessions. Code moved from
2881         WebFrameNetworkingContext since it doesn't belong there.
2882         (WebKit::WebCookieManager::setCookiePersistentStorage): Use new method to set the cookie storage in the
2883         NetworkStorageSession.
2884         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
2885         (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): Deleted.
2886         * WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.h:
2887
2888 2017-02-19  Chris Dumez  <cdumez@apple.com>
2889
2890         [WK2] Support termination of unresponsive WebContent processes that are in the background
2891         https://bugs.webkit.org/show_bug.cgi?id=168479
2892         <rdar://problem/30558745>
2893
2894         Reviewed by Antti Koivisto.
2895
2896         Support termination of unresponsive WebContent processes that are in the background.
2897         This protects us against cases where a background tab is unresponsive and has high CPU
2898         usage, thus draining the battery without the user knowing about it (e.g.
2899         <rdar://problem/29808005>).
2900
2901         The feature works as follows:
2902         - If a WebProcessProxy has pages but none of them are visible, then it will check
2903           regularly if its associated WebContent process is still responsive.
2904         - Every time we find that the WebContent process is responsive, we exponentially
2905           back off the timer to avoid waking up the process too often. The timer initially
2906           uses a 20 seconds interval and can back off up to 8 hours.
2907         - If the WebContent process is unresponsive, then we terminate it. No notification
2908           is shown to the user and the termination is not immediately observable since the
2909           tab is not visible and its title remains. The tab is not immediately reloaded
2910           so as to avoid getting back into a bad state in the background (and have a
2911           yo-yo effect).
2912         - If the user switches to a tab that was previously killed for being unresponsive
2913           while in the background, we will then reload the tab in a fresh WebContent
2914           process. The crash banner will only be shown if the tab has ever been visible.
2915           If it wasn't ever visible (e.g. session restore case), then it will look as if
2916           the tab loads for the first time when the user switches to it.
2917
2918         The functionality is disabled by default and can be enabled by the client via the new
2919         WKContextSetUnresponsiveBackgroundProcessesTerminationEnabled() private API.
2920
2921         * CMakeLists.txt:
2922         * UIProcess/API/APIProcessPoolConfiguration.cpp:
2923         (API::ProcessPoolConfiguration::copy):
2924         * UIProcess/API/APIProcessPoolConfiguration.h:
2925         * UIProcess/API/C/WKContext.cpp:
2926         (WKContextSetUnresponsiveBackgroundProcessesTerminationEnabled):
2927         * UIProcess/API/C/WKContextPrivate.h:
2928         * UIProcess/UnresponsiveWebProcessTerminator.cpp: Added.
2929         (WebKit::UnresponsiveWebProcessTerminator::UnresponsiveWebProcessTerminator):
2930         (WebKit::UnresponsiveWebProcessTerminator::updateState):
2931         (WebKit::pagesCopy):
2932         (WebKit::UnresponsiveWebProcessTerminator::timerFired):
2933         * UIProcess/UnresponsiveWebProcessTerminator.h: Added.
2934         (WebKit::UnresponsiveWebProcessTerminator::shouldBeActive):
2935         * UIProcess/WebPageProxy.cpp:
2936         (WebKit::WebPageProxy::reattachToWebProcess):
2937         (WebKit::WebPageProxy::reloadAfterBeingKilledInBackground):
2938         (WebKit::WebPageProxy::dispatchActivityStateChange):
2939         (WebKit::WebPageProxy::terminateProcess):
2940         (WebKit::WebPageProxy::resetStateAfterProcessExited):
2941         * UIProcess/WebPageProxy.h:
2942         * UIProcess/WebProcessProxy.cpp:
2943         (WebKit::WebProcessProxy::WebProcessProxy):
2944         (WebKit::m_backgroundResponsivenessTimer):
2945         (WebKit::WebProcessProxy::createWebPage):
2946         (WebKit::WebProcessProxy::addExistingWebPage):
2947         (WebKit::WebProcessProxy::removeWebPage):
2948         (WebKit::WebProcessProxy::updateBackgroundResponsivenessTimer):
2949         * UIProcess/WebProcessProxy.h:
2950         (WebKit::WebProcessProxy::visiblePageCount):
2951         * WebKit2.xcodeproj/project.pbxproj:
2952
2953 2017-02-18  Michael Catanzaro  <mcatanzaro@igalia.com>
2954
2955         Remove COORDINATED_GRAPHICS_MULTIPROCESS
2956         https://bugs.webkit.org/show_bug.cgi?id=168514
2957
2958         Reviewed by Darin Adler.
2959
2960         * Shared/DrawingAreaInfo.h:
2961         * UIProcess/API/C/CoordinatedGraphics/WKView.cpp:
2962         (WKViewFindZoomableAreaForRect):
2963         * UIProcess/AcceleratedDrawingAreaProxy.cpp:
2964         (WebKit::AcceleratedDrawingAreaProxy::AcceleratedDrawingAreaProxy):
2965         * UIProcess/AcceleratedDrawingAreaProxy.h:
2966         (WebKit::AcceleratedDrawingAreaProxy::coordinatedLayerTreeHostProxy): Deleted.
2967         * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp: Removed.
2968         * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h: Removed.
2969         * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.messages.in: Removed.
2970         * UIProcess/CoordinatedGraphics/PageViewportController.cpp:
2971         (WebKit::PageViewportController::pageTransitionViewportReady):
2972         * UIProcess/CoordinatedGraphics/WebPageProxyCoordinatedGraphics.cpp: Removed.
2973         * UIProcess/DrawingAreaProxy.h:
2974         * UIProcess/PageClient.h:
2975         * UIProcess/WebPageProxy.cpp:
2976         (WebKit::WebPageProxy::pageDidRequestScroll): Deleted.
2977         (WebKit::WebPageProxy::pageTransitionViewportReady): Deleted.
2978         (WebKit::WebPageProxy::didRenderFrame): Deleted.
2979         (WebKit::WebPageProxy::commitPageTransitionViewport): Deleted.
2980         * UIProcess/WebPageProxy.h:
2981         * UIProcess/WebPageProxy.messages.in:
2982         * WebProcess/WebPage/AcceleratedDrawingArea.cpp:
2983         (WebKit::AcceleratedDrawingArea::AcceleratedDrawingArea):
2984         (WebKit::AcceleratedDrawingArea::updateBackingStoreState):
2985         (WebKit::AcceleratedDrawingArea::didReceiveCoordinatedLayerTreeHostMessage): Deleted.
2986         * WebProcess/WebPage/AcceleratedDrawingArea.h:
2987         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
2988         (WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
2989         (WebKit::CoordinatedLayerTreeHost::commitSceneState):
2990         (WebKit::CoordinatedLayerTreeHost::createCoordinatedSurface):
2991         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
2992         * WebProcess/WebPage/CoordinatedGraphics/WebPageCoordinatedGraphics.cpp: Removed.
2993         * WebProcess/WebPage/DrawingArea.cpp:
2994         (WebKit::DrawingArea::create):
2995         * WebProcess/WebPage/DrawingArea.h:
2996         * WebProcess/WebPage/LayerTreeHost.cpp:
2997         (WebKit::LayerTreeHost::create):
2998         * WebProcess/WebPage/LayerTreeHost.h:
2999         * WebProcess/WebPage/WebPage.cpp:
3000         (WebKit::WebPage::~WebPage):
3001         (WebKit::WebPage::pageDidRequestScroll):
3002         (WebKit::WebPage::didCompletePageTransition):
3003         (WebKit::WebPage::didReceiveMessage):
3004         (WebKit::WebPage::commitPageTransitionViewport): Deleted.
3005         * WebProcess/WebPage/WebPage.h:
3006         * WebProcess/WebPage/WebPage.messages.in:
3007
3008 2017-02-18  Michael Catanzaro  <mcatanzaro@igalia.com>
3009
3010         [GTK] Cannot paste primary selection into web view in Wayland
3011         https://bugs.webkit.org/show_bug.cgi?id=166949
3012
3013         Reviewed by Carlos Garcia Campos.
3014
3015         Once upon a time, primary selection (middle-click paste) was not supported in Wayland. At
3016         the time, I changed this function to report that primary selection was unsupported. But
3017         nowadays, primary selection works fine in all GTK+ applications except WebKit. All we have
3018         to do to make it work in WebKit is change this return value.
3019
3020         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
3021         (WebKit::WebEditorClient::supportsGlobalSelection):
3022
3023 2017-02-17  Brian Burg  <bburg@apple.com>
3024
3025         Web Inspector: RTL: Inspector window should dock to the left when using RTL layout direction
3026         https://bugs.webkit.org/show_bug.cgi?id=168273
3027         <rdar://problem/29949325>
3028
3029         Reviewed by Matt Baker.
3030
3031         Add the ability to dock Web Inspector to the left of the inspected view.
3032         The frontend decides whether the Dock to Side button docks left or right
3033         based on the current layout direction.
3034
3035         * UIProcess/WebInspectorProxy.cpp:
3036         (WebKit::WebInspectorProxy::attachLeft):
3037         (WebKit::WebInspectorProxy::attach):
3038         (WebKit::WebInspectorProxy::createInspectorPage):
3039         * UIProcess/WebInspectorProxy.h:
3040         * UIProcess/WebInspectorProxy.messages.in:
3041         Add plumbing for new dock configuration.
3042
3043         * UIProcess/mac/WebInspectorProxyMac.mm:
3044         (WebKit::WebInspectorProxy::platformCreateInspectorPage):
3045         (WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
3046         (WebKit::WebInspectorProxy::platformAttach):
3047         Adapt existing sizing logic to work for docking to left.
3048
3049         * WebProcess/WebPage/WebInspectorUI.cpp:
3050         (WebKit::WebInspectorUI::requestSetDockSide):
3051         (WebKit::WebInspectorUI::setDockSide):
3052         * WebProcess/WebPage/WebInspectorUI.h:
3053         (WebKit::WebInspectorUI::attachedLeft):
3054         * WebProcess/WebPage/WebInspectorUI.messages.in:
3055         Add plumbing for new dock configuration.
3056
3057 2017-02-16  Simon Fraser  <simon.fraser@apple.com>
3058
3059         Allow PlatformCALayers to specify that they want deep color backing store
3060         https://bugs.webkit.org/show_bug.cgi?id=168495
3061
3062         Reviewed by Tim Horton.
3063
3064         Currently capable iOS devices get deep color backing store by virtue of a supports
3065         check in PlatformCALayerCocoa::PlatformCALayerCocoa(), and LegacyTileGridTile.
3066
3067         Future work will make layer contents format selection more complex, so express the need
3068         for deep color on PlatformCALayer, and have the creators of PlatformCALayer (mainly the
3069         flavors of GraphicsLayerCA) choose for them to support deep color. A bit of special-casing
3070         is needed to propagte the state to TileControllers.
3071         
3072         The deep-colorness now propagates from PlatformCALayerRemote to RemoteLayerBackingStore,
3073         instead of RemoteLayerBackingStore looking at the properties of the screen directly.
3074
3075         Remove PlatformCALayer::LayerTypeWebTiledLayer which was only used for the old CATiledLayers
3076         that we no longer use.
3077
3078         * Shared/mac/RemoteLayerBackingStore.h:
3079         * Shared/mac/RemoteLayerBackingStore.mm:
3080         (WebKit::RemoteLayerBackingStore::ensureBackingStore):
3081         (WebKit::RemoteLayerBackingStore::bytesPerPixel):
3082         (WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
3083         (WebKit::RemoteLayerBackingStore::drawInContext):
3084         (WebKit::RemoteLayerBackingStore::surfaceBufferFormat):
3085         (WebKit::bufferFormat): Deleted.
3086         * WebProcess/WebPage/mac/GraphicsLayerCARemote.cpp:
3087         (WebKit::GraphicsLayerCARemote::createPlatformCALayer):
3088         * WebProcess/WebPage/mac/GraphicsLayerCARemote.h:
3089         * WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
3090         (WebKit::PlatformCALayerRemote::PlatformCALayerRemote):
3091         (WebKit::PlatformCALayerRemote::updateBackingStore):
3092         (WebKit::PlatformCALayerRemote::wantsDeepColorBackingStore):
3093         (WebKit::PlatformCALayerRemote::setWantsDeepColorBackingStore):
3094         * WebProcess/WebPage/mac/PlatformCALayerRemote.h:
3095         * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:
3096         (WebKit::PlatformCALayerRemoteTiledBacking::wantsDeepColorBackingStore):
3097         (WebKit::PlatformCALayerRemoteTiledBacking::setWantsDeepColorBackingStore):
3098         * WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:
3099
3100 2017-02-17  Wenson Hsieh  <wenson_hsieh@apple.com>
3101
3102         [WK2] Action sheet should not dismiss when a DDAction with user interface is being presented
3103         https://bugs.webkit.org/show_bug.cgi?id=168528
3104         <rdar://problem/30515324>
3105
3106         Reviewed by Beth Dakin.
3107
3108         After r211643, -[WKActionSheet doneWithSheet] now dismisses the presenting view controller. This is called when
3109         interaction with the sheet is finished and is a reasonable thing to do in most cases. However, when using data
3110         detectors, we don't want to dismiss the presenting view controller, since DataDetector handles dismissing on its
3111         own and expects that its completion handler will be invoked.
3112
3113         To fix this, we add a parameter to doneWithSheet: to indicate whether or not we should additionally dismiss the
3114         presenting view controller, and pass in NO in the case where we are handing control over to DataDetector.
3115
3116         * UIProcess/ios/WKActionSheet.h:
3117         * UIProcess/ios/WKActionSheet.mm:
3118         (-[WKActionSheet doneWithSheet:]):
3119         (-[WKActionSheet doneWithSheet]): Deleted.
3120         * UIProcess/ios/WKActionSheetAssistant.mm:
3121         (-[WKActionSheetAssistant showDataDetectorsSheet]):
3122         (-[WKActionSheetAssistant cleanupSheet]):
3123
3124 2017-02-17  Michael Catanzaro  <mcatanzaro@igalia.com>
3125
3126         Remove EFL from WebKit2
3127         https://bugs.webkit.org/show_bug.cgi?id=168511
3128
3129         Reviewed by Alex Christensen.
3130
3131         * Platform/IPC/unix/ConnectionUnix.cpp:
3132         (IPC::Connection::platformInvalidate):
3133         (IPC::Connection::open):
3134         * Platform/Module.h:
3135         * PlatformEfl.cmake: Removed.
3136         * PluginProcess/unix/PluginProcessMainUnix.cpp:
3137         * Shared/API/APIObject.h:
3138         * Shared/API/c/WKBase.h:
3139         * Shared/API/c/WKSharedAPICast.h:
3140         (WebKit::toAPI):
3141         (WebKit::toImpl):
3142         * Shared/NativeWebKeyboardEvent.h:
3143         (WebKit::NativeWebKeyboardEvent::isFakeEventForComposition):
3144         (WebKit::NativeWebKeyboardEvent::isFiltered): Deleted.
3145         * Shared/NativeWebMouseEvent.h:
3146         (WebKit::NativeWebMouseEvent::nativeEvent):
3147         (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): Deleted.
3148         * Shared/NativeWebTouchEvent.h:
3149         (WebKit::NativeWebTouchEvent::nativeEvent):
3150         * Shared/NativeWebWheelEvent.h:
3151         (WebKit::NativeWebWheelEvent::nativeEvent):
3152         * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
3153         (WebKit::NetscapePluginModule::determineQuirks):
3154         * Shared/WebPreferencesDefinitions.h:
3155         * UIProcess/API/APIWebsiteDataStore.cpp:
3156         * UIProcess/API/C/WKAPICast.h:
3157         * UIProcess/API/C/WKTextChecker.cpp:
3158         * UIProcess/API/C/WKTextChecker.h:
3159         * UIProcess/ChildProcessProxy.cpp:
3160         (WebKit::ChildProcessProxy::getLaunchOptions):
3161         * UIProcess/CoordinatedGraphics/PageViewportController.cpp:
3162         (WebKit::PageViewportController::pixelAlignedFloatPoint):
3163         * UIProcess/InspectorServer/WebInspectorServer.h:
3164         * UIProcess/Launcher/ProcessLauncher.h:
3165         * UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp:
3166         * UIProcess/PageClient.h:
3167         * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
3168         (WebKit::PluginProcessProxy::scanPlugin):
3169         * UIProcess/WebInspectorProxy.h:
3170         * UIProcess/WebPageProxy.h:
3171         * WebKit2.xcodeproj/project.pbxproj:
3172         * WebProcess/InjectedBundle/InjectedBundle.h:
3173         * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
3174         (WebKit::getPluginDisplay):
3175         (WebKit::x11Screen):
3176         (WebKit::displayDepth):
3177         (WebKit::rootWindowID):
3178         (WebKit::NetscapePluginX11::paint):
3179         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
3180         (WebKit::WebChromeClient::selectItemWritingDirectionIsNatural):
3181         (WebKit::WebChromeClient::pageExtendedBackgroundColorDidChange):
3182         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
3183         (WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection):
3184         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3185         (WebKit::WebFrameLoaderClient::saveViewStateToItem):
3186         (WebKit::WebFrameLoaderClient::restoreViewState):
3187         (WebKit::WebFrameLoaderClient::dispatchDidClearWindowObjectInWorld):
3188         * WebProcess/WebPage/WebPage.cpp:
3189         (WebKit::WebPage::WebPage):
3190         * WebProcess/WebPage/WebPage.h:
3191         * WebProcess/WebPage/WebPage.messages.in:
3192         * config.h:
3193
3194 2017-02-15  Brady Eidson  <beidson@apple.com>
3195
3196         Stop backing up localStorage databases to iCloud by default.
3197         <rdar://problem/29045531> and https://bugs.webkit.org/show_bug.cgi?id=168388
3198
3199         Reviewed by Geoffrey Garen.
3200
3201         * UIProcess/Cocoa/VersionChecks.h:
3202
3203         * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
3204         (WebKit::LocalStorageDatabaseTracker::databasePath):
3205         * UIProcess/Storage/LocalStorageDatabaseTracker.h:
3206         * UIProcess/Storage/ios/LocalStorageDatabaseTrackerIOS.mm: Copied from Source/WebKit2/UIProcess/Cocoa/VersionChecks.h.
3207         (WebKit::LocalStorageDatabaseTracker::platformExcludeFromBackup):
3208
3209         * WebKit2.xcodeproj/project.pbxproj:
3210
3211 2017-02-16  Aakash Jain  <aakash_jain@apple.com>
3212
3213         Remove unused methods WKPageGetDebugPaintFlags and WKPageSetDebugPaintFlags
3214         https://bugs.webkit.org/show_bug.cgi?id=168464
3215
3216         Reviewed by Alexey Proskuryakov.
3217
3218         * UIProcess/API/C/WKPagePrivate.h:
3219
3220 2017-02-16  Youenn Fablet  <youenn@apple.com>
3221
3222         [WebRTC] libwebrtc socket addresses should not be passed as strings
3223         https://bugs.webkit.org/show_bug.cgi?id=168474
3224
3225         Reviewed by Alex Christensen.
3226
3227         Removing all seralization of socket addresses as strings.
3228         Instead, a dedicated serialization is provided.
3229         This allows proper handling of various cases like addresses with both hostnames and resolved IPs.
3230
3231         * NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:
3232         (WebKit::LibWebRTCSocketClient::signalReadPacket):
3233         (WebKit::LibWebRTCSocketClient::signalSentPacket):
3234         (WebKit::LibWebRTCSocketClient::signalAddressReady):
3235         * NetworkProcess/webrtc/NetworkRTCProvider.cpp:
3236         (WebKit::NetworkRTCProvider::createUDPSocket):
3237         (WebKit::NetworkRTCProvider::createServerTCPSocket):
3238         (WebKit::NetworkRTCProvider::createClientTCPSocket):
3239         * NetworkProcess/webrtc/NetworkRTCProvider.h:
3240         * NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
3241         * NetworkProcess/webrtc/NetworkRTCSocket.cpp:
3242         (WebKit::NetworkRTCSocket::sendTo):
3243         * NetworkProcess/webrtc/NetworkRTCSocket.h:
3244         * NetworkProcess/webrtc/NetworkRTCSocket.messages.in:
3245         * Shared/RTCNetwork.cpp:
3246         (WebKit::RTCNetwork::SocketAddress::decode):
3247         (WebKit::RTCNetwork::SocketAddress::encode):
3248         * Shared/RTCNetwork.h:
3249         (WebKit::RTCNetwork::SocketAddress::SocketAddress):
3250         * WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
3251         (WebKit::LibWebRTCSocket::signalAddressReady):
3252         (WebKit::LibWebRTCSocket::SendTo):
3253         * WebProcess/Network/webrtc/LibWebRTCSocket.h:
3254         * WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
3255         (WebKit::LibWebRTCSocketFactory::CreateServerTcpSocket):
3256         (WebKit::LibWebRTCSocketFactory::CreateUdpSocket):
3257         (WebKit::LibWebRTCSocketFactory::CreateClientTcpSocket):
3258         * WebProcess/Network/webrtc/WebRTCSocket.cpp:
3259         (WebKit::WebRTCSocket::signalAddressReady):
3260         * WebProcess/Network/webrtc/WebRTCSocket.h:
3261         * WebProcess/Network/webrtc/WebRTCSocket.messages.in:
3262
3263 2017-02-16  Daniel Bates  <dabates@apple.com>
3264
3265         Remove Chromium-specific code to call FrameLoaderClient::redirectDataToPlugin(nullptr)
3266         https://bugs.webkit.org/show_bug.cgi?id=168417
3267         <rdar://problem/30541748>
3268
3269         Reviewed by Brent Fulgham.
3270
3271         Update override of FrameLoaderClient::redirectDataToPlugin() to take a Widget& instead of a
3272         Widget* as it is always called with a valid Widget.
3273
3274         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3275         (WebKit::WebFrameLoaderClient::redirectDataToPlugin):
3276         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
3277         * mac/WebKit2.order: Remove symbol for WebFrameLoaderClient::redirectDataToPlugin() that took a Widget*
3278         as it no longer exists. I am unclear if this file is still meaningful as it was last modified in
3279         r180570 (2 years ago) though Xcode still references this ordering file (why?).
3280
3281 2017-02-16  Alex Christensen  <achristensen@webkit.org>
3282
3283         Remove EFL-specific files in WebKit2.
3284
3285         Rubber-stamped by Anders Carlsson
3286
3287         * DatabaseProcess/efl: Removed.
3288         * DatabaseProcess/efl/DatabaseProcessMainEfl.cpp: Removed.
3289         * NetworkProcess/Downloads/efl: Removed.
3290         * NetworkProcess/Downloads/efl/DownloadSoupErrorsEfl.cpp: Removed.
3291         * NetworkProcess/efl: Removed.
3292         * NetworkProcess/efl/NetworkProcessMainEfl.cpp: Removed.
3293         * Platform/efl: Removed.
3294         * Platform/efl/ModuleEfl.cpp: Removed.
3295         * Shared/API/c/efl: Removed.
3296         * Shared/API/c/efl/WKArrayEfl.cpp: Removed.
3297         * Shared/API/c/efl/WKArrayEfl.h: Removed.
3298         * Shared/API/c/efl/WKBaseEfl.h: Removed.
3299         * Shared/efl: Removed.
3300         * Shared/efl/NativeWebKeyboardEventEfl.cpp: Removed.
3301         * Shared/efl/NativeWebTouchEventEfl.cpp: Removed.
3302         * Shared/efl/NativeWebWheelEventEfl.cpp: Removed.
3303         * Shared/efl/ProcessExecutablePathEfl.cpp: Removed.
3304         * Shared/efl/WebEventFactory.cpp: Removed.
3305         * Shared/efl/WebEventFactory.h: Removed.
3306         * UIProcess/API/C/efl: Removed.
3307         * UIProcess/API/C/efl/WKAPICastEfl.h: Removed.
3308         * UIProcess/API/C/efl/WKColorPickerResultListener.cpp: Removed.
3309         * UIProcess/API/C/efl/WKColorPickerResultListener.h: Removed.
3310         * UIProcess/API/C/efl/WKEventEfl.cpp: Removed.
3311         * UIProcess/API/C/efl/WKEventEfl.h: Removed.
3312         * UIProcess/API/C/efl/WKViewEfl.cpp: Removed.
3313         * UIProcess/API/C/efl/WKViewEfl.h: Removed.
3314         * UIProcess/API/cpp/efl: Removed.
3315         * UIProcess/API/cpp/efl/WKEinaSharedString.cpp: Removed.
3316         * UIProcess/API/cpp/efl/WKEinaSharedString.h: Removed.
3317         * UIProcess/API/efl: Removed.
3318         * UIProcess/API/efl/APIWebsiteDataStoreEfl.cpp: Removed.
3319         * UIProcess/API/efl/EWebKit2.h.in: Removed.
3320         * UIProcess/API/efl/EwkView.cpp: Removed.
3321         * UIProcess/API/efl/EwkView.h: Removed.
3322         * UIProcess/API/efl/EwkViewCallbacks.h: Removed.
3323         * UIProcess/API/efl/GestureRecognizer.cpp: Removed.
3324         * UIProcess/API/efl/GestureRecognizer.h: Removed.
3325         * UIProcess/API/efl/SnapshotImageGL.cpp: Removed.
3326         * UIProcess/API/efl/SnapshotImageGL.h: Removed.
3327         * UIProcess/API/efl/WebAccessibility.cpp: Removed.
3328         * UIProcess/API/efl/WebAccessibility.h: Removed.
3329         * UIProcess/API/efl/ewk_application_cache_manager.cpp: Removed.
3330         * UIProcess/API/efl/ewk_application_cache_manager.h: Removed.
3331         * UIProcess/API/efl/ewk_application_cache_manager_private.h: Removed.
3332         * UIProcess/API/efl/ewk_auth_request.cpp: Removed.
3333         * UIProcess/API/efl/ewk_auth_request.h: Removed.
3334         * UIProcess/API/efl/ewk_auth_request_private.h: Removed.
3335         * UIProcess/API/efl/ewk_back_forward_list.cpp: Removed.
3336         * UIProcess/API/efl/ewk_back_forward_list.h: Removed.
3337         * UIProcess/API/efl/ewk_back_forward_list_item.cpp: Removed.
3338         * UIProcess/API/efl/ewk_back_forward_list_item.h: Removed.
3339         * UIProcess/API/efl/ewk_back_forward_list_item_private.h: Removed.
3340         * UIProcess/API/efl/ewk_back_forward_list_private.h: Removed.
3341         * UIProcess/API/efl/ewk_color_picker.cpp: Removed.
3342         * UIProcess/API/efl/ewk_color_picker.h: Removed.
3343         * UIProcess/API/efl/ewk_color_picker_private.h: Removed.
3344         * UIProcess/API/efl/ewk_context.cpp: Removed.
3345         * UIProcess/API/efl/ewk_context.h: Removed.
3346         * UIProcess/API/efl/ewk_context_menu.cpp: Removed.
3347         * UIProcess/API/efl/ewk_context_menu.h: Removed.
3348         * UIProcess/API/efl/ewk_context_menu_item.cpp: Removed.
3349         * UIProcess/API/efl/ewk_context_menu_item.h: Removed.
3350         * UIProcess/API/efl/ewk_context_menu_item_private.h: Removed.
3351         * UIProcess/API/efl/ewk_context_menu_private.h: Removed.
3352         * UIProcess/API/efl/ewk_context_private.h: Removed.
3353         * UIProcess/API/efl/ewk_cookie_manager.cpp: Removed.
3354         * UIProcess/API/efl/ewk_cookie_manager.h: Removed.
3355         * UIProcess/API/efl/ewk_cookie_manager_private.h: Removed.
3356         * UIProcess/API/efl/ewk_database_manager.cpp: Removed.
3357         * UIProcess/API/efl/ewk_database_manager.h: Removed.
3358         * UIProcess/API/efl/ewk_database_manager_private.h: Removed.
3359         * UIProcess/API/efl/ewk_download_job.cpp: Removed.
3360         * UIProcess/API/efl/ewk_download_job.h: Removed.
3361         * UIProcess/API/efl/ewk_download_job_private.h: Removed.
3362         * UIProcess/API/efl/ewk_error.cpp: Removed.
3363         * UIProcess/API/efl/ewk_error.h: Removed.
3364         * UIProcess/API/efl/ewk_error_private.h: Removed.
3365         * UIProcess/API/efl/ewk_favicon_database.cpp: Removed.
3366         * UIProcess/API/efl/ewk_favicon_database.h: Removed.
3367         * UIProcess/API/efl/ewk_favicon_database_private.h: Removed.
3368         * UIProcess/API/efl/ewk_file_chooser_request.cpp: Removed.
3369         * UIProcess/API/efl/ewk_file_chooser_request.h: Removed.
3370         * UIProcess/API/efl/ewk_file_chooser_request_private.h: Removed.
3371         * UIProcess/API/efl/ewk_form_submission_request.cpp: Removed.
3372         * UIProcess/API/efl/ewk_form_submission_request.h: Removed.
3373         * UIProcess/API/efl/ewk_form_submission_request_private.h: Removed.
3374         * UIProcess/API/efl/ewk_intro.h: Removed.
3375         * UIProcess/API/efl/ewk_main.cpp: Removed.
3376         * UIProcess/API/efl/ewk_main.h: Removed.
3377         * UIProcess/API/efl/ewk_main_private.h: Removed.
3378         * UIProcess/API/efl/ewk_navigation_data.cpp: Removed.
3379         * UIProcess/API/efl/ewk_navigation_data.h: Removed.
3380         * UIProcess/API/efl/ewk_navigation_data_private.h: Removed.
3381         * UIProcess/API/efl/ewk_navigation_policy_decision.cpp: Removed.
3382         * UIProcess/API/efl/ewk_navigation_policy_decision.h: Removed.
3383         * UIProcess/API/efl/ewk_navigation_policy_decision_private.h: Removed.
3384         * UIProcess/API/efl/ewk_object.cpp: Removed.
3385         * UIProcess/API/efl/ewk_object.h: Removed.
3386         * UIProcess/API/efl/ewk_object_private.h: Removed.
3387         * UIProcess/API/efl/ewk_page_group.cpp: Removed.
3388         * UIProcess/API/efl/ewk_page_group.h: Removed.
3389         * UIProcess/API/efl/ewk_page_group_private.h: Removed.
3390         * UIProcess/API/efl/ewk_popup_menu.cpp: Removed.
3391         * UIProcess/API/efl/ewk_popup_menu.h: Removed.
3392         * UIProcess/API/efl/ewk_popup_menu_item.cpp: Removed.
3393         * UIProcess/API/efl/ewk_popup_menu_item.h: Removed.
3394         * UIProcess/API/efl/ewk_popup_menu_item_private.h: Removed.
3395         * UIProcess/API/efl/ewk_popup_menu_private.h: Removed.
3396         * UIProcess/API/efl/ewk_security_origin.cpp: Removed.
3397         * UIProcess/API/efl/ewk_security_origin.h: Removed.
3398         * UIProcess/API/efl/ewk_security_origin_private.h: Removed.
3399         * UIProcess/API/efl/ewk_settings.cpp: Removed.
3400         * UIProcess/API/efl/ewk_settings.h: Removed.
3401         * UIProcess/API/efl/ewk_settings_private.h: Removed.
3402         * UIProcess/API/efl/ewk_storage_manager.cpp: Removed.
3403         * UIProcess/API/efl/ewk_storage_manager.h: Removed.
3404         * UIProcess/API/efl/ewk_storage_manager_private.h: Removed.
3405         * UIProcess/API/efl/ewk_text_checker.cpp: Removed.
3406         * UIProcess/API/efl/ewk_text_checker.h: Removed.
3407         * UIProcess/API/efl/ewk_text_checker_private.h: Removed.
3408         * UIProcess/API/efl/ewk_touch.h: Removed.
3409         * UIProcess/API/efl/ewk_url_request.cpp: Removed.
3410         * UIProcess/API/efl/ewk_url_request.h: Removed.
3411         * UIProcess/API/efl/ewk_url_request_private.h: Removed.
3412         * UIProcess/API/efl/ewk_url_response.cpp: Removed.
3413         * UIProcess/API/efl/ewk_url_response.h: Removed.
3414         * UIProcess/API/efl/ewk_url_response_private.h: Removed.
3415         * UIProcess/API/efl/ewk_url_scheme_request.cpp: Removed.
3416         * UIProcess/API/efl/ewk_url_scheme_request.h: Removed.
3417         * UIProcess/API/efl/ewk_url_scheme_request_private.h: Removed.
3418         * UIProcess/API/efl/ewk_view.cpp: Removed.
3419         * UIProcess/API/efl/ewk_view.h: Removed.
3420         * UIProcess/API/efl/ewk_view_configuration.cpp: Removed.
3421         * UIProcess/API/efl/ewk_view_configuration.h: Removed.
3422         * UIProcess/API/efl/ewk_view_configuration_private.h: Removed.
3423         * UIProcess/API/efl/ewk_view_private.h: Removed.
3424         * UIProcess/API/efl/ewk_window_features.cpp: Removed.
3425         * UIProcess/API/efl/ewk_window_features.h: Removed.
3426         * UIProcess/API/efl/ewk_window_features_private.h: Removed.
3427         * UIProcess/API/efl/tests: Removed.
3428         * UIProcess/API/efl/tests/UnitTestUtils: Removed.
3429         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp: Removed.
3430         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h: Removed.
3431         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.cpp: Removed.
3432         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h: Removed.
3433         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestMain.cpp: Removed.
3434         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.cpp: Removed.
3435         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestServer.h: Removed.
3436         * UIProcess/API/efl/tests/extensions: Removed.
3437         * UIProcess/API/efl/tests/extensions/extension_sample.cpp: Removed.
3438         * UIProcess/API/efl/tests/resources: Removed.
3439         * UIProcess/API/efl/tests/resources/Page1.html: Removed.
3440         * UIProcess/API/efl/tests/resources/Page2.html: Removed.
3441         * UIProcess/API/efl/tests/resources/Page3.html: Removed.
3442         * UIProcess/API/efl/tests/resources/blank.ico: Removed.
3443         * UIProcess/API/efl/tests/resources/default_test_page.html: Removed.
3444         * UIProcess/API/efl/tests/resources/empty_theme.edj: Removed.
3445         * UIProcess/API/efl/tests/resources/file_chooser.html: Removed.
3446         * UIProcess/API/efl/tests/resources/frame_flattening_test.html: Removed.
3447         * UIProcess/API/efl/tests/resources/frame_flattening_test_subframe.html: Removed.
3448         * UIProcess/API/efl/tests/resources/local_file_access.html: Removed.
3449         * UIProcess/API/efl/tests/resources/redirect_url_to_default.html: Removed.
3450         * UIProcess/API/efl/tests/resources/resultMHTML.mht: Removed.
3451         * UIProcess/API/efl/tests/resources/same_page_navigation.html: Removed.
3452         * UIProcess/API/efl/tests/resources/spelling_selection_tests.html: Removed.
3453         * UIProcess/API/efl/tests/resources/spelling_test.html: Removed.
3454         * UIProcess/API/efl/tests/resources/test.pdf: Removed.
3455         * UIProcess/API/efl/tests/resources/window_move_resize.html: Removed.
3456         * UIProcess/API/efl/tests/test_ewk2_accessibility.cpp: Removed.
3457         * UIProcess/API/efl/tests/test_ewk2_application_cache_manager.cpp: Removed.
3458         * UIProcess/API/efl/tests/test_ewk2_auth_request.cpp: Removed.
3459         * UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp: Removed.
3460         * UIProcess/API/efl/tests/test_ewk2_color_picker.cpp: Removed.
3461         * UIProcess/API/efl/tests/test_ewk2_context.cpp: Removed.
3462         * UIProcess/API/efl/tests/test_ewk2_context_history_callbacks.cpp: Removed.
3463         * UIProcess/API/efl/tests/test_ewk2_context_menu.cpp: Removed.
3464         * UIProcess/API/efl/tests/test_ewk2_cookie_manager.cpp: Removed.
3465         * UIProcess/API/efl/tests/test_ewk2_database_manager.cpp: Removed.
3466         * UIProcess/API/efl/tests/test_ewk2_download_job.cpp: Removed.
3467         * UIProcess/API/efl/tests/test_ewk2_eina_shared_string.cpp: Removed.
3468         * UIProcess/API/efl/tests/test_ewk2_favicon_database.cpp: Removed.
3469         * UIProcess/API/efl/tests/test_ewk2_file_chooser_request.cpp: Removed.
3470         * UIProcess/API/efl/tests/test_ewk2_javascript_binding.cpp: Removed.
3471         * UIProcess/API/efl/tests/test_ewk2_object.cpp: Removed.
3472         * UIProcess/API/efl/tests/test_ewk2_page.cpp: Removed.
3473         * UIProcess/API/efl/tests/test_ewk2_page_group.cpp: Removed.
3474         * UIProcess/API/efl/tests/test_ewk2_popup_menu.cpp: Removed.
3475         * UIProcess/API/efl/tests/test_ewk2_settings.cpp: Removed.
3476         * UIProcess/API/efl/tests/test_ewk2_ssl.cpp: Removed.
3477         * UIProcess/API/efl/tests/test_ewk2_storage_manager.cpp: Removed.
3478         * UIProcess/API/efl/tests/test_ewk2_text_checker.cpp: Removed.
3479         * UIProcess/API/efl/tests/test_ewk2_view.cpp: Removed.
3480         * UIProcess/API/efl/tests/test_ewk2_view_configuration.cpp: Removed.
3481         * UIProcess/API/efl/tests/test_ewk2_window_features.cpp: Removed.
3482         * UIProcess/InspectorServer/efl: Removed.
3483         * UIProcess/InspectorServer/efl/WebInspectorServerEfl.cpp: Removed.
3484         * UIProcess/Launcher/efl: Removed.
3485         * UIProcess/Launcher/efl/ProcessLauncherEfl.cpp: Removed.
3486         * UIProcess/efl: Removed.
3487         * UIProcess/efl/ContextHistoryClientEfl.cpp: Removed.
3488         * UIProcess/efl/ContextHistoryClientEfl.h: Removed.
3489         * UIProcess/efl/ContextMenuClientEfl.cpp: Removed.
3490         * UIProcess/efl/ContextMenuClientEfl.h: Removed.
3491         * UIProcess/efl/DownloadManagerEfl.cpp: Removed.
3492         * UIProcess/efl/DownloadManagerEfl.h: Removed.
3493         * UIProcess/efl/EasingCurves.cpp: Removed.
3494         * UIProcess/efl/EasingCurves.h: Removed.
3495         * UIProcess/efl/EwkDebug.h: Removed.
3496         * UIProcess/efl/EwkTouchEvent.cpp: Removed.
3497         * UIProcess/efl/EwkTouchEvent.h: Removed.
3498         * UIProcess/efl/EwkTouchPoint.cpp: Removed.
3499         * UIProcess/efl/EwkTouchPoint.h: Removed.
3500         * UIProcess/efl/FindClientEfl.cpp: Removed.
3501         * UIProcess/efl/FindClientEfl.h: Removed.
3502         * UIProcess/efl/FormClientEfl.cpp: Removed.
3503         * UIProcess/efl/FormClientEfl.h: Removed.
3504         * UIProcess/efl/InputMethodContextEfl.cpp: Removed.
3505         * UIProcess/efl/InputMethodContextEfl.h: Removed.
3506         * UIProcess/efl/PageLoadClientEfl.cpp: Removed.
3507         * UIProcess/efl/PageLoadClientEfl.h: Removed.
3508         * UIProcess/efl/PagePolicyClientEfl.cpp: Removed.
3509         * UIProcess/efl/PagePolicyClientEfl.h: Removed.
3510         * UIProcess/efl/PageUIClientEfl.cpp: Removed.
3511         * UIProcess/efl/PageUIClientEfl.h: Removed.
3512         * UIProcess/efl/PageViewportControllerClientEfl.cpp: Removed.
3513         * UIProcess/efl/PageViewportControllerClientEfl.h: Removed.
3514         * UIProcess/efl/RequestManagerClientEfl.cpp: Removed.
3515         * UIProcess/efl/RequestManagerClientEfl.h: Removed.
3516         * UIProcess/efl/TextCheckerClientEfl.cpp: Removed.
3517         * UIProcess/efl/TextCheckerClientEfl.h: Removed.
3518         * UIProcess/efl/TextCheckerEfl.cpp: Removed.
3519         * UIProcess/efl/VibrationClientEfl.cpp: Removed.
3520         * UIProcess/efl/VibrationClientEfl.h: Removed.
3521         * UIProcess/efl/ViewClientEfl.cpp: Removed.
3522         * UIProcess/efl/ViewClientEfl.h: Removed.
3523         * UIProcess/efl/WebColorPickerClient.cpp: Removed.
3524         * UIProcess/efl/WebColorPickerClient.h: Removed.
3525         * UIProcess/efl/WebColorPickerEfl.cpp: Removed.
3526         * UIProcess/efl/WebColorPickerEfl.h: Removed.
3527         * UIProcess/efl/WebColorPickerResultListenerProxy.cpp: Removed.
3528         * UIProcess/efl/WebColorPickerResultListenerProxy.h: Removed.
3529         * UIProcess/efl/WebContextMenuProxyEfl.cpp: Removed.
3530         * UIProcess/efl/WebContextMenuProxyEfl.h: Removed.
3531         * UIProcess/efl/WebInspectorProxyEfl.cpp: Removed.
3532         * UIProcess/efl/WebPageProxyEfl.cpp: Removed.
3533         * UIProcess/efl/WebPopupItemEfl.cpp: Removed.
3534         * UIProcess/efl/WebPopupItemEfl.h: Removed.
3535         * UIProcess/efl/WebPopupMenuProxyEfl.cpp: Removed.
3536         * UIProcess/efl/WebPopupMenuProxyEfl.h: Removed.
3537         * UIProcess/efl/WebPreferencesEfl.cpp: Removed.
3538         * UIProcess/efl/WebProcessPoolEfl.cpp: Removed.
3539         * UIProcess/efl/WebView.cpp: Removed.
3540         * UIProcess/efl/WebView.h: Removed.
3541         * UIProcess/efl/WebViewClient.cpp: Removed.
3542         * UIProcess/efl/WebViewClient.h: Removed.
3543         * WebProcess/InjectedBundle/API/efl: Removed.
3544         * WebProcess/InjectedBundle/API/efl/EWebKit_Extension.h: Removed.
3545         * WebProcess/InjectedBundle/API/efl/ewk_extension.cpp: Removed.
3546         * WebProcess/InjectedBundle/API/efl/ewk_extension.h: Removed.
3547         * WebProcess/InjectedBundle/API/efl/ewk_extension_private.h: Removed.
3548         * WebProcess/InjectedBundle/API/efl/ewk_page.cpp: Removed.
3549         * WebProcess/InjectedBundle/API/efl/ewk_page.h: Removed.
3550         * WebProcess/InjectedBundle/API/efl/ewk_page_private.h: Removed.
3551         * WebProcess/InjectedBundle/efl: Removed.
3552         * WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp: Removed.
3553         * WebProcess/WebCoreSupport/efl: Removed.
3554         * WebProcess/WebCoreSupport/efl/WebContextMenuClientEfl.cpp: Removed.
3555         * WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp: Removed.
3556         * WebProcess/WebCoreSupport/efl/WebErrorsEfl.cpp: Removed.
3557         * WebProcess/WebCoreSupport/efl/WebPopupMenuEfl.cpp: Removed.
3558         * WebProcess/WebPage/efl: Removed.
3559         * WebProcess/WebPage/efl/WebInspectorUIEfl.cpp: Removed.
3560         * WebProcess/WebPage/efl/WebPageEfl.cpp: Removed.
3561         * WebProcess/efl: Removed.
3562         * WebProcess/efl/ExtensionManagerEfl.cpp: Removed.
3563         * WebProcess/efl/ExtensionManagerEfl.h: Removed.
3564         * WebProcess/efl/WebInjectedBundleMainEfl.cpp: Removed.
3565         * WebProcess/efl/WebProcessMainEfl.cpp: Removed.
3566         * efl: Removed.
3567         * efl/EWebKit2Config.cmake.in: Removed.
3568         * efl/EWebKit2ConfigVersion.cmake.in: Removed.
3569         * efl/ewebkit2-extension.pc.in: Removed.
3570         * efl/ewebkit2.pc.in: Removed.
3571
3572 2017-02-16  Alex Christensen  <achristensen@webkit.org>
3573
3574         Remove old URL parser
3575         https://bugs.webkit.org/show_bug.cgi?id=168483
3576
3577         Reviewed by Tim Horton.
3578
3579         * NetworkProcess/NetworkProcess.cpp:
3580         (WebKit::NetworkProcess::initializeNetworkProcess):
3581         * NetworkProcess/NetworkProcessCreationParameters.cpp:
3582         (WebKit::NetworkProcessCreationParameters::encode):
3583         (WebKit::NetworkProcessCreationParameters::decode):
3584         * NetworkProcess/NetworkProcessCreationParameters.h:
3585         * PlatformEfl.cmake:
3586         * PlatformGTK.cmake:
3587         * PlatformMac.cmake:
3588         * Shared/Cocoa/WebKit2InitializeCocoa.mm: Removed.
3589         * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
3590         (WebKit::XPCServiceInitializer):
3591         * Shared/WebKit2Initialize.cpp:
3592         (WebKit::InitializeWebKit2):
3593         * Shared/WebKit2Initialize.h:
3594         (): Deleted.
3595         * Shared/WebProcessCreationParameters.cpp:
3596         (WebKit::WebProcessCreationParameters::encode):
3597         (WebKit::WebProcessCreationParameters::decode):
3598         * Shared/WebProcessCreationParameters.h:
3599         * Shared/efl/WebKit2InitializeEFL.cpp: Removed.
3600         * Shared/gtk/WebKit2InitializeGTK.cpp: Removed.
3601         * UIProcess/WebProcessPool.cpp:
3602         (WebKit::WebProcessPool::ensureNetworkProcess):
3603         (WebKit::WebProcessPool::createNewWebProcess):
3604         * WebKit2.xcodeproj/project.pbxproj:
3605         * WebProcess/WebProcess.cpp:
3606         (WebKit::WebProcess::initializeWebProcess):
3607
3608 2017-02-16  Wenson Hsieh  <wenson_hsieh@apple.com>
3609
3610         [WK2] Add additional test infrastructure and unit tests for data interaction
3611         https://bugs.webkit.org/show_bug.cgi?id=168439
3612         <rdar://problem/30557942>
3613
3614         Reviewed by Tim Horton.
3615
3616         Adds two new _WKTestingDelegate protocol methods that are fired when a 'start data interaction' request has been
3617         sent to the web process, and when a response has been received. See Tools/ChangeLog for more details.
3618
3619         * UIProcess/API/Cocoa/_WKTestingDelegate.h:
3620
3621 2017-02-16  Aakash Jain  <aakash_jain@apple.com>
3622
3623         Remove unused method WKBundlePageCopyContextMenuItemTitle
3624         https://bugs.webkit.org/show_bug.cgi?id=168456
3625
3626         Reviewed by Dan Bernstein.
3627
3628         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: Removed WKBundlePageCopyContextMenuItemTitle.
3629
3630 2017-02-16  Aakash Jain  <aakash_jain@apple.com>
3631
3632         Remove unused WKContextGetProcessSuppressionEnabled and WKContextSetProcessSuppressionEnabled
3633         https://bugs.webkit.org/show_bug.cgi?id=168460
3634
3635         Reviewed by Dan Bernstein.
3636
3637         * UIProcess/API/C/mac/WKContextPrivateMac.h:
3638
3639 2017-02-16  Aakash Jain  <aakash_jain@apple.com>
3640
3641         Removed unused method WKContextGetProcessModel
3642         https://bugs.webkit.org/show_bug.cgi?id=168457
3643
3644         Reviewed by Dan Bernstein.
3645
3646         * UIProcess/API/C/WKContext.h: Removed WKContextGetProcessModel.
3647
3648 2017-02-16  Tim Horton  <timothy_horton@apple.com>
3649
3650         WKWebView inside a UICollectionView flashes when items are inserted above it
3651         https://bugs.webkit.org/show_bug.cgi?id=168376
3652         <rdar://problem/29322051>
3653
3654         Reviewed by Simon Fraser.
3655
3656         Previously, we would immediately send visible content rect updates
3657         whenever we scrolled, or our frame or bounds changed, or ... a whole
3658         bunch of other things. This message would be immediately sent to the
3659         Web Content process, and coalesced at the whims of the Web Content process
3660         main thread. However, if we received multiple such updates within the
3661         same runloop cycle in the UI process, the Web Content process could
3662         send back layer tree commits for intermediate states that would
3663         never make it to the screen.
3664
3665         In the UICollectionView case, UIKit would first scroll to the new location
3666         (potentially putting the WKWebView totally off-screen), and then update
3667         our frame (back on screen), and we would get two layer tree commits;
3668         one, with less tile coverage than needed to cover the area, and another
3669         with full coverage.
3670
3671         Instead, wait until just before we commit the UI-side layer tree (and
3672         thus everyone is done moving things around) to push the new visible 
3673         rect info to the Web Content process.
3674
3675         So far, I have not found a way to test that reliably fails before
3676         and reliably passes after without adding a ton of supporting code to WebKit.
3677
3678         * UIProcess/API/Cocoa/WKWebView.mm:
3679         (-[WKWebView _didInvokeUIScrollViewDelegateCallback]):
3680         (-[WKWebView _didCommitLayerTree:]):
3681         (-[WKWebView _didFinishScrolling]):
3682         (-[WKWebView scrollViewDidScroll:]):
3683         (-[WKWebView scrollViewDidZoom:]):
3684         (-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
3685         (-[WKWebView _scrollViewDidInterruptDecelerating:]):
3686         (-[WKWebView _didScroll]):
3687         (-[WKWebView _enclosingScrollerScrollingEnded:]):
3688         (-[WKWebView _frameOrBoundsChanged]):
3689         (-[WKWebView _scheduleVisibleContentRectUpdate]):
3690         (-[WKWebView _scrollViewIsInStableState:]):
3691         (-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]):
3692         (-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):
3693         (-[WKWebView _setObscuredInsets:]):
3694         (-[WKWebView _endInteractiveObscuredInsetsChange]):
3695         (-[WKWebView _beginAnimatedResizeWithUpdates:]):
3696         (-[WKWebView _endAnimatedResize]):
3697         (-[WKWebView _updateVisibleContentRects]): Deleted.
3698         (-[WKWebView _updateVisibleContentRectAfterScrollInView:]): Deleted.
3699         * UIProcess/API/Cocoa/WKWebViewInternal.h:
3700         * UIProcess/ios/WKContentView.mm:
3701         (-[WKContentView _didCommitLayerTree:]):
3702         * UIProcess/ios/WKContentViewInteraction.mm:
3703         (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):
3704         (-[WKContentView _stopAssistingNode]):
3705         * UIProcess/ios/WKScrollView.mm:
3706         (-[WKScrollView setContentInset:]):
3707         Have existing callers of _updateVisibleContentRect* instead call
3708         _scheduleVisibleContentRectUpdate*.
3709
3710         In _scheduleVisibleContentRectUpdate, schedule a pre-commit callback
3711         in which we will compute the new visible content rect information
3712         and send it to the Web Content process.
3713
3714         Keep track of the stable state of the scroll view which most recently
3715         scheduled an update, and use that to inform _updateVisibleContentRects.
3716         This matches the previous behavior where the updates might get coalesced
3717         in the Web Content process, and the most recent update wins.
3718
3719         Make a few callers of _updateVisibleContentRectAfterScrollInView
3720         that passed in our scroll view just use _scheduleVisibleContentRectUpdate instead.
3721
3722 2017-02-16  Brent Fulgham  <bfulgham@apple.com>
3723
3724         [WebRTC][Mac] Conditionally add sandbox extensions to the Network Process
3725         https://bugs.webkit.org/show_bug.cgi?id=168010
3726         <rdar://problem/30245503>
3727
3728         Reviewed by Youenn Fablet.
3729
3730         Conditionally add sandbox extensions to the Network Process when the WebRTC/Media Capture
3731         features are enabled.
3732
3733         * NetworkProcess/NetworkProcess.h:
3734         * NetworkProcess/NetworkProcessCreationParameters.cpp:
3735         (WebKit::NetworkProcessCreationParameters::encode): Serialize new process configuration flag.
3736         (WebKit::NetworkProcessCreationParameters::decode): Ditto.
3737         * NetworkProcess/NetworkProcessCreationParameters.h:
3738         * NetworkProcess/mac/NetworkProcessMac.mm:
3739         (WebKit::NetworkProcess::platformInitializeNetworkProcess):  Remember state of WebRTC for when the
3740         sandbox is established.
3741         (WebKit::NetworkProcess::initializeSandbox): Add ENABLE_WEB_RTC parameter to sandbox launch state.
3742         * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: Add conditional sandbox expansion to allow
3743         bidirectional network access when the ENABLE_LIBWEBRTC flag is present in the sandbox launch parameters.
3744         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
3745         (WebKit::WebProcessPool::platformInitializeWebProcess): Use proper compile guards and check media stream
3746         preference, rather than the peer connection preference.
3747         (WebKit::WebProcessPool::platformInitializeNetworkProcess): Notify NetworkProcess at launch time whether the
3748         user wants WebRTC support.
3749
3750 2017-02-16  Brent Fulgham  <bfulgham@apple.com>
3751
3752         [WebRTC][Mac][WebKit2] Initial WebProcess does not support WebRTC
3753         https://bugs.webkit.org/show_bug.cgi?id=168438
3754         <rdar://problem/30401818>
3755
3756         Reviewed by Youenn Fablet.
3757
3758         The sandbox extension for microphone access does not take effect until the second WebProcess
3759         is created, causing the initial browser tab to lack microphone support.
3760
3761         This patch checks the setting earlier in the boot process so that the initial WebProcess
3762         instance gets the correct setting.
3763
3764         * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
3765         (WebKit::WebProcessPool::platformInitializeWebProcess): Move microphone sandbox extension here, so that the
3766         initial WebProcess has the correct microphone access.
3767         * UIProcess/WebProcessPool.cpp:
3768         (WebKit::WebProcessPool::createNewWebProcess): Move microphone sandbox extension from here to platform-specific file.
3769         (WebKit::WebProcessPool::createWebPage): Remove unneeded preference checks.
3770
3771 2017-02-16  Eric Carlson  <eric.carlson@apple.com>
3772
3773         Add WebRTC as an off-by-default experimental feature menu item.
3774         https://bugs.webkit.org/show_bug.cgi?id=167972
3775         <rdar://problem/30293429>
3776
3777         Reviewed by Alex Christensen.
3778
3779         * Shared/WebPreferencesDefinitions.h:
3780         * UIProcess/WebPreferences.cpp:
3781         (WebKit::WebPreferences::setPeerConnectionAndMediaStreamEnabled): We need to enable/disable
3782         peer connection and media stream preferences at the same time, so special case them.
3783         (WebKit::WebPreferences::setEnabledForFeature):
3784         * UIProcess/WebPreferences.h:
3785
3786 2017-02-15  Alex Christensen  <achristensen@webkit.org>
3787
3788         Unreviewed, rolling out r212394.
3789
3790         Fixed iOS WebInspector
3791
3792         Reverted changeset:
3793
3794         "Unreviewed, rolling out r212169."
3795         https://bugs.webkit.org/show_bug.cgi?id=166681
3796         http://trac.webkit.org/changeset/212394
3797
3798 2017-02-15  Eric Carlson  <eric.carlson@apple.com>
3799
3800         [MediaStream] delete CaptureDeviceInfo struct
3801         https://bugs.webkit.org/show_bug.cgi?id=168395
3802
3803         Reviewed by Sam Weinig.
3804
3805         * Shared/WebCoreArgumentCoders.cpp:
3806         (IPC::ArgumentCoder<CaptureDevice>::encode):
3807         (IPC::ArgumentCoder<CaptureDevice>::decode):
3808
3809 2017-02-15  Anders Carlsson  <andersca@apple.com>
3810
3811         Try again.
3812
3813         * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
3814         (WebKit::WebDragClient::startDrag):
3815
3816 2017-02-15  Anders Carlsson  <andersca@apple.com>
3817
3818         Attempt to fix the GTK+ build.
3819
3820         * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
3821         (WebKit::WebDragClient::startDrag):
3822
3823 2017-02-15  Simon Fraser  <simon.fraser@apple.com>
3824
3825         Clean up WebProcessCreationParameters a little
3826         https://bugs.webkit.org/show_bug.cgi?id=168349
3827
3828         Reviewed by Alex Christensen.
3829
3830         Initialize the data members better, and rearrange to group the types in a slightly more space-efficient manner.
3831
3832         * Shared/WebProcessCreationParameters.cpp:
3833         (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
3834         * Shared/WebProcessCreationParameters.h:
3835
3836 2017-02-15  Jer Noble  <jer.noble@apple.com>
3837
3838         REGRESSION(r183937): Fullscreen Exit animation missing mask
3839         https://bugs.webkit.org/show_bug.cgi?id=168360
3840
3841         Reviewed by Eric Carlson.
3842
3843         In r183937, the fullscreen window's clip layer has it's mask removed when the enter
3844         fullscreen animation completes, allowing low-power video playback mode to be entered. But
3845         this breaks the exit fullscreen animaiton, which assumes a mask is present. Abstract the
3846         mask creation code out into a static helper method, and use it at the beginning of the exit
3847         fullscreen animation to re-create the mask before adding animations to it.
3848
3849         * UIProcess/mac/WKFullScreenWindowController.mm:
3850         (createMask):
3851         (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
3852         (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):
3853
3854 2017-02-15  Alex Christensen  <achristensen@webkit.org>
3855
3856         Unreviewed, rolling out r212169.
3857
3858         Broke iOS WebInspector
3859
3860         Reverted changeset:
3861
3862         "WebInspector: refactor RemoteInspector to move cocoa specific
3863         code to their own files"
3864         https://bugs.webkit.org/show_bug.cgi?id=166681
3865         http://trac.webkit.org/changeset/212169
3866
3867 2017-02-15  Anders Carlsson  <andersca@apple.com>
3868
3869         Modernize DragClient::startDrag somewhat
3870         https://bugs.webkit.org/show_bug.cgi?id=168379
3871
3872         Reviewed by Tim Horton.
3873
3874         Update for WebCore changes.
3875
3876         * WebProcess/WebCoreSupport/WebDragClient.cpp:
3877         (WebKit::WebDragClient::startDrag):
3878         * WebProcess/WebCoreSupport/WebDragClient.h:
3879         * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
3880         (WebKit::WebDragClient::startDrag):
3881
3882 2017-02-15  Aakash Jain  <aakash_jain@apple.com>
3883
3884         Remove WebIOSEvent interface
3885         https://bugs.webkit.org/show_bug.cgi?id=168368
3886
3887         Reviewed by Tim Horton.
3888
3889         * Shared/NativeWebKeyboardEvent.h: Using WebEvent from WebCore instead of WebIOSEvent.
3890         * Shared/ios/NativeWebKeyboardEventIOS.mm: Ditto.
3891         * Shared/ios/WebIOSEventFactory.h: Ditto.
3892         * Shared/ios/WebIOSEventFactory.mm: Ditto.
3893         * UIProcess/ios/WKContentViewInteraction.h: Ditto.
3894         * UIProcess/ios/WKContentViewInteraction.mm: Ditto.
3895         * UIProcess/API/C/WKPage.cpp: Using WebEvent from WebKit.
3896
3897 2017-02-14  Carlos Garcia Campos  <cgarcia@igalia.com>
3898
3899         [GTK] Update cookie manager API to properly work with ephemeral sessions
3900         https://bugs.webkit.org/show_bug.cgi?id=168230
3901
3902         Reviewed by Michael Catanzaro.
3903
3904         WebKitCookieManager is associated to a particular WebKitWebContext and uses the default session ID
3905         unconditionally. It should be associated to a WebKitWebsiteDataManager instead and use its session ID. This
3906         patch also adds support for handling cookies with WebKitWebsiteDataManager and deprecates
3907         webkit_cookie_manager_get_domains_with_cookies(), webkit_cookie_manager_delete_cookies_for_domain() and
3908         webkit_cookie_manager_delete_all_cookies(). It also adds API to get the the WebKitWebsiteDataManager of a
3909         WebKitWebView, since it's the only way to get the WebKitCookieManager associated to an ephemeral web view.
3910
3911         * UIProcess/API/gtk/WebKitCookieManager.cpp:
3912         (webkitCookieManagerDispose): Stop observing cookie changes.
3913         (webkit_cookie_manager_class_init): Add dispose implementation.
3914         (webkitCookieManagerCreate): Create the WebKitCookieManager with a WebKitWebsiteDataManager.
3915         (webkit_cookie_manager_set_persistent_storage): Work with all contexts having the session.
3916         (webkit_cookie_manager_set_accept_policy): Ditto.
3917         (webkit_cookie_manager_get_accept_policy): Use any context having the session.
3918         (webkit_cookie_manager_get_domains_with_cookies): Deprecate and implement using WebKitWebsiteDataManager.
3919         (webkit_cookie_manager_get_domains_with_cookies_finish): Ditto.
3920         (webkit_cookie_manager_delete_cookies_for_domain): Ditto.
3921         (webkit_cookie_manager_delete_all_cookies): Ditto.
3922         * UIProcess/API/gtk/WebKitCookieManager.h:
3923         * UIProcess/API/gtk/WebKitCookieManagerPrivate.h:
3924         * UIProcess/API/gtk/WebKitCustomProtocolManagerClient.cpp:
3925         (attachCustomProtocolManagerClientToContext):
3926         * UIProcess/API/gtk/WebKitDownloadClient.cpp:
3927         (attachDownloadClientToContext):
3928         * UIProcess/API/gtk/WebKitInjectedBundleClient.cpp:
3929         (attachInjectedBundleClientToContext):
3930         * UIProcess/API/gtk/WebKitSecurityManager.cpp:
3931         (registerSecurityPolicyForURIScheme):
3932         * UIProcess/API/gtk/WebKitWebContext.cpp:
3933         (webkitWebContextConstructed): Call webkitWebsiteDataManagerAddProcessPool.
3934         (webkitWebContextDispose): Call webkitWebsiteDataManagerRemoveProcessPool.
3935         (webkit_web_context_get_cookie_manager): Return the WebKitCookieManager of the WebKitWebsiteDataManager.
3936         (webkitWebContextGetProcessPool): Make it return a reference.
3937         * UIProcess/API/gtk/WebKitWebContextPrivate.h:
3938         * UIProcess/API/gtk/WebKitWebView.cpp:
3939         (webkitWebViewConstructed): Call webkitWebsiteDataManagerAddProcessPool when creating a ephemeral web view.
3940         (webkitWebViewDispose): Call webkitWebsiteDataManagerRemoveProcessPool if needed.
3941         (webkit_web_view_get_website_data_manager): Return the WebKitWebsiteDataManager or the context one.
3942         * UIProcess/API/gtk/WebKitWebView.h:
3943         * UIProcess/API/gtk/WebKitWebsiteData.cpp: Add support for Cookies type.
3944         (recordContainsSupportedDataTypes):
3945         (toWebKitWebsiteDataTypes):
3946         * UIProcess/API/gtk/WebKitWebsiteData.h:
3947         * UIProcess/API/gtk/WebKitWebsiteDataManager.cpp:
3948         (_WebKitWebsiteDataManagerPrivate::~_WebKitWebsiteDataManagerPrivate): Ensure all contexts were unregistered.
3949         (webkitWebsiteDataManagerAddProcessPool): Register the process pool in the session.
3950         (webkitWebsiteDataManagerRemoveProcessPool): Unregister the process poll from the session.
3951         (webkitWebsiteDataManagerGetProcessPools): Return the list of proces pools registered.
3952         (webkit_website_data_manager_get_cookie_manager): Return the WebKitCookieManager.
3953         (toWebsiteDataTypes): Add Cookies.
3954         * UIProcess/API/gtk/WebKitWebsiteDataManager.h:
3955         * UIProcess/API/gtk/WebKitWebsiteDataManagerPrivate.h:
3956         * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols.
3957         * UIProcess/WebsiteData/WebsiteDataRecord.cpp:
3958         (WebKit::WebsiteDataRecord::displayNameForCookieHostName): Handle localhost as a special case here for backwards
3959         compatibility.
3960
3961 2017-02-14  Wenson Hsieh  <wenson_hsieh@apple.com>
3962
3963         [WK2] Support data interaction on links
3964         https://bugs.webkit.org/show_bug.cgi?id=168331
3965         <rdar://problem/30200837>
3966
3967         Reviewed by Tim Horton.
3968
3969         Adds support for data interaction on links at the client layer for WebKit2. This involves several changes,
3970         detailed in the per-method changes below:
3971
3972         * Shared/ios/InteractionInformationAtPosition.h:
3973         * Shared/ios/InteractionInformationAtPosition.mm:
3974         (WebKit::InteractionInformationAtPosition::encode):
3975         (WebKit::InteractionInformationAtPosition::decode):
3976
3977         Add adjustedPointForNodeRespondingToClickEvents (the request point, adjusted to take nodeRespondingToClickEvents
3978         into account) to InteractionInformationAtPosition. The web process sends this adjusted point over to the UI
3979         process so that the UI process will be able to begin a data interaction at the adjusted point rather than the
3980         request point, which is necessary for small clickable (and data-interactive) elements such as links.
3981
3982         * UIProcess/ios/WKActionSheet.h:
3983         * UIProcess/ios/WKActionSheet.mm:
3984         (-[WKActionSheet presentSheet:]):
3985         (-[WKActionSheet _presentationRectForStyle:]):
3986         (-[WKActionSheet updateSheetPosition]):
3987         * UIProcess/ios/WKActionSheetAssistant.h:
3988         * UIProcess/ios/WKActionSheetAssistant.mm:
3989         (-[WKActionSheetAssistant presentationRectForElementUsingClosestIndicatedRect]):
3990         (-[WKActionSheetAssistant presentationRectForIndicatedElement]):
3991         (-[WKActionSheetAssistant showImageSheet]):
3992         (-[WKActionSheetAssistant _shouldPresentAtTouchLocationForElementRect:]):
3993         (-[WKActionSheetAssistant needsLinkIndicator]):
3994         (-[WKActionSheetAssistant showLinkSheet]):
3995         (-[WKActionSheetAssistant cleanupSheet]):
3996         (-[WKActionSheetAssistant _presentationStyleForImageAtElementRect:]): Deleted.
3997
3998         Add support for the WKActionSheetPresentAtClosestIndicatorRect style of presenting an action sheet. When
3999         showing the action sheet for a link and there is space along the margins to show a popover in the first place,
4000         we will now target the popover rect to the bounding rect of the set of adjacent (or nearly-adjacent) element
4001         rects closest to the user's touch location. This covers cases where the link is split into multiple rects due to
4002         a line break, when the link is on multiple lines with a jagged rect per line, and when both of the above are
4003         true.
4004
4005         * UIProcess/ios/WKContentViewInteraction.mm:
4006         (-[WKContentView pointIsInDataInteractionContent:]):
4007         (-[WKContentView _positionInformationDidChange:]):
4008         (-[WKContentView positionInformationForActionSheetAssistant:]):
4009         (-[WKContentView updatePositionInformationForActionSheetAssistant:]):
4010
4011         Include link indicator data in the position information request if needed. As the FIXME suggests, this can be
4012         improved by asynchronously presenting the action sheet assistant after the request returns, and is something we
4013         should address in the future.
4014
4015         * WebProcess/WebPage/ios/WebPageIOS.mm:
4016         (WebKit::WebPage::getPositionInformation):
4017
4018 2017-02-14  Jason Rinn  <jrinn@apple.com>
4019
4020         Add new WKWebKit Cocoa API for getContentsAsString.
4021         https://bugs.webkit.org/show_bug.cgi?id=168147
4022         <rdar://problem/30502539>
4023
4024         Reviewed by Tim Horton.
4025
4026         * UIProcess/API/Cocoa/WKWebView.mm:
4027         (-[WKWebView _getContentsAsStringWithCompletionHandler:]): New API for getContentsAsString.
4028         * UIProcess/API/Cocoa/WKWebViewPrivate.h:
4029
4030 2017-02-14  Chris Dumez  <cdumez@apple.com>
4031
4032         HTML Form Validation bubble should take minimum font size setting into consideration
4033         https://bugs.webkit.org/show_bug.cgi?id=168271
4034         <rdar://problem/29869869>
4035
4036         Reviewed by Simon Fraser.
4037
4038         * UIProcess/API/Cocoa/WKWebView.mm:
4039         (-[WKWebView _contentsOfUserInterfaceItem:]):
4040         Return font size used in the validation bubble.
4041
4042         * UIProcess/PageClient.h:
4043         * UIProcess/ios/PageClientImplIOS.h:
4044         * UIProcess/ios/PageClientImplIOS.mm:
4045         (WebKit::PageClientImpl::createValidationBubble):
4046         * UIProcess/ios/WebPageProxyIOS.mm:
4047         (WebKit::WebPageProxy::showValidationMessage):
4048         * UIProcess/mac/PageClientImpl.h:
4049         * UIProcess/mac/PageClientImpl.mm:
4050         (WebKit::PageClientImpl::createValidationBubble):
4051         * UIProcess/mac/WebPageProxyMac.mm:
4052         (WebKit::WebPageProxy::showValidationMessage):
4053         Pass minimum font size setting when constructing the form validation bubble.
4054
4055 2017-02-14  Commit Queue  <commit-queue@webkit.org>
4056
4057         Unreviewed, rolling out r211879.
4058         https://bugs.webkit.org/show_bug.cgi?id=168330
4059
4060         Not ready for the menu yet (Requested by eric_car_ on
4061         #webkit).
4062
4063         Reverted changeset:
4064
4065         "Add WebRTC as an off-by-default experimental feature menu
4066         item."
4067         https://bugs.webkit.org/show_bug.cgi?id=167972
4068         http://trac.webkit.org/changeset/211879
4069
4070 2017-02-14  Simon Fraser  <simon.fraser@apple.com>
4071
4072         Add logging and defensive fixes to try to detect problems causing blank tabs
4073         https://bugs.webkit.org/show_bug.cgi?id=168270
4074         rdar://problem/30505482
4075
4076         Reviewed by Jon Lee.
4077         
4078         Add release logging when -[WKWebView _beginAnimatedResizeWithUpdates:] and -[WKWebView _endAnimatedResize]
4079         are unbalanced across a commit, to detect cases where _endAnimatedResize&nbs