REGRESSION (r212929): WKSnapshotConfiguration may leak an NSNumber when deallocated
[WebKit-https.git] / Source / WebKit / ChangeLog
1 2018-01-03  David Kilzer  <ddkilzer@apple.com>
2
3         REGRESSION (r212929): WKSnapshotConfiguration may leak an NSNumber when deallocated
4         <https://webkit.org/b/181274>
5
6         Reviewed by Joseph Pecoraro.
7
8         * UIProcess/API/Cocoa/WKSnapshotConfiguration.mm:
9         (-[WKSnapshotConfiguration dealloc]): Implement method and
10         release _snapshotWidth.
11
12 2018-01-03  John Wilander  <wilander@apple.com>
13
14         Storage Access API: Refactor XPC for access removal to go straight from the web process to the network process
15         https://bugs.webkit.org/show_bug.cgi?id=181270
16         <rdar://problem/36289544>
17
18         Reviewed by Alex Christensen.
19
20         This change refactors how the web process tells the network process
21         to remove storage access. Previously, this was done over the UI process
22         just like requests for storage access. But since no further reasoning
23         is needed, the message should go straight from the web process to the
24         network process for performance reasons and to minimize the risk of a
25         race.
26
27         As a consequence, the XPC code for storage access removal in the UI
28         process is deleted.
29
30         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
31         (WebKit::NetworkConnectionToWebProcess::removeStorageAccess):
32         * NetworkProcess/NetworkConnectionToWebProcess.h:
33         * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
34         * NetworkProcess/NetworkProcess.cpp:
35         (WebKit::NetworkProcess::removeStorageAccess): Deleted.
36         * NetworkProcess/NetworkProcess.h:
37         * NetworkProcess/NetworkProcess.messages.in:
38         * UIProcess/Network/NetworkProcessProxy.cpp:
39         (WebKit::NetworkProcessProxy::removeStorageAccess): Deleted.
40         * UIProcess/Network/NetworkProcessProxy.h:
41         * UIProcess/WebPageProxy.cpp:
42         (WebKit::WebPageProxy::requestStorageAccess):
43         (WebKit::WebPageProxy::removeStorageAccess): Deleted.
44         * UIProcess/WebPageProxy.h:
45         * UIProcess/WebPageProxy.messages.in:
46         * UIProcess/WebsiteData/WebsiteDataStore.cpp:
47         (WebKit::WebsiteDataStore::requestStorageAccess):
48         (WebKit::WebsiteDataStore::removeStorageAccess): Deleted.
49         * UIProcess/WebsiteData/WebsiteDataStore.h:
50         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
51         (WebKit::WebFrameLoaderClient::detachedFromParent2):
52         (WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):
53
54 2018-01-03  David Kilzer  <ddkilzer@apple.com>
55
56         com.apple.WebKit.Networking crash in com.apple.Foundation: -[__NSOperationInternal _start:]
57         <https://webkit.org/b/181272>
58         <rdar://problem/35657310>
59
60         Reviewed by Alex Christensen.
61
62         * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
63         (downgradeRequest): Remove unnecessary -autorelease.
64
65 2018-01-03  Brent Fulgham  <bfulgham@apple.com>
66
67         [macOS] Constant frame dropping during Flash video playback
68         https://bugs.webkit.org/show_bug.cgi?id=181249
69         <rdar://problem/34843448>
70
71         Reviewed by Eric Carlson.
72
73         Review of logs during jerky flash video playback shows a few IOKit properties are being blocked by the sandbox,
74         which prevents some high-efficiency codecs from being used. Add 'AppleGVAKeyDoesNotExist', 'IODVDBundleName', and
75         'IOGVA*Encode' to the whitelist.
76
77         * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
78
79 2018-01-03  Michael Catanzaro  <mcatanzaro@igalia.com>
80
81         [GTK] Add web process API to detect when form is submitted via JavaScript
82         https://bugs.webkit.org/show_bug.cgi?id=173915
83
84         Reviewed by Carlos Garcia Campos.
85
86         Epiphany relies on the DOM submit event to detect when a form has been submitted. However,
87         for historical reasons, the submit event is not emitted when a form is submitted by
88         JavaScript. It is therefore not currently possible for a web browser to reliably detect form
89         submission and not possible to implement a robust password storage feature. In order to
90         avoid this problem, this patch adds a new WebKitWebPage signal, will-submit-form, that
91         browsers can use in preference to a DOM event listener.
92
93         Unfortunately, this signal is not available for WPE because it depends on the DOM API.
94
95         There are two submission events, WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT and
96         WEBKIT_FORM_SUBMISSION_WILL_COMPLETE. WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT
97         occurs earlier than WEBKIT_FORM_SUBMISSION_WILL_COMPLETE and can be used to retrieve form
98         values before websites receive the DOM submit event. This is useful as some websites like
99         to delete form values right before a submit would normally happen in order to attempt to
100         defeat browser password managers. There are two tricks to note: JavaScript can cancel form
101         submission immediately after this event occurs (by returning false in an onsubmit handler),
102         and, for historical reasons, this event will not occur at all when form submission is
103         triggered by JavaScript. WEBKIT_FORM_SUBMISSION_WILL_COMPLETE occurs next, and is more
104         straightforward: it is always emitted when a form is about to be submitted, when it is too
105         late to cancel.
106
107         The recommended way to reliably retrieve password form values would be to watch for both
108         events, use the form value detected in WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT
109         if that event is emitted, and use the value detected later in
110         WEBKIT_FORM_SUBMISSION_WILL_COMPLETE otherwise.
111
112         Since one of the signal arguments is an enum, we now have to run glib-mkenums for the web
113         process API. And that has resulted in this patch also adding GType goo for
114         WebKitConsoleMessageLevel and WebKitConsoleMessageSource that was previously missing. Any
115         applications that for some unlikely reason want to use these enums in properties or signals
116         will be happy.
117
118         * PlatformGTK.cmake:
119         * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
120         * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:
121         (webkit_web_page_class_init):
122         * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h:
123         * WebProcess/InjectedBundle/API/gtk/WebKitWebProcessEnumTypes.cpp.template: Added.
124         * WebProcess/InjectedBundle/API/gtk/WebKitWebProcessEnumTypes.h.template: Added.
125
126 2018-01-03  Carlos Garcia Campos  <cgarcia@igalia.com>
127
128         Unreviewed. Really fix plugin process after r226327.
129
130         * PluginProcess/unix/PluginProcessMainUnix.cpp:
131
132 2018-01-02  Brent Fulgham  <bfulgham@apple.com>
133
134         [macOS, iOS] Adopt new secure coding APIs in WebKit
135         https://bugs.webkit.org/show_bug.cgi?id=181085
136         <rdar://problem/34837397>
137
138         Reviewed by Tim Horton.
139
140         Update WebKit code to use NSSecureCoding when the underlying operating system supports it. Use new
141         wrapper functions so the same code can be built on all supported OS releases, while enabling
142         seure coding when possible.
143
144         Note that NSView-based classes cannot be migrated at present due to AppKit not supporting NSSecureCoding
145         in its class hierarchy.
146
147         Tested by exising TestWebKitAPI tests for Coding and data transfer.
148
149         * Platform/ios/AccessibilityIOS.mm:
150         (WebKit::newAccessibilityRemoteToken): Encode using NSSecureCoding.
151         * UIProcess/API/Cocoa/WKPreferences.h:
152         * UIProcess/API/Cocoa/WKPreferences.mm:
153         (+[WKPreferences supportsSecureCoding]): Added to enable NSSecureCoding.
154         * UIProcess/API/Cocoa/WKProcessPool.h:
155         * UIProcess/API/Cocoa/WKProcessPool.mm:
156         (+[WKProcessPool supportsSecureCoding]): Ditto.
157         * UIProcess/API/Cocoa/WKUserContentController.h:
158         * UIProcess/API/Cocoa/WKUserContentController.mm:
159         (+[WKUserContentController supportsSecureCoding]): Ditto.
160         * UIProcess/API/Cocoa/WKWebView.mm:
161         (-[WKWebView initWithCoder:]): Use coding initialization that supports secure coding if
162         it is available in the supplied class.
163         * UIProcess/API/Cocoa/WKWebViewConfiguration.h:
164         * UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
165         (+[WKWebViewConfiguration supportsSecureCoding]): Added to enable NSSecureCoding.
166         (-[WKWebViewConfiguration initWithCoder:]): Use secure coding when possible.
167         * UIProcess/API/Cocoa/WKWebsiteDataStore.h:
168         * UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
169         (+[WKWebsiteDataStore supportsSecureCoding]): Added to enable NSSecureCoding.
170         * UIProcess/API/Cocoa/_WKApplicationManifest.h:
171         * UIProcess/API/Cocoa/_WKApplicationManifest.mm:
172         (+[_WKApplicationManifest supportsSecureCoding]): Added to enable NSSecureCoding.
173         (-[_WKApplicationManifest initWithCoder:]): Use secure coding when possible.
174
175 2017-12-28  Yusuke Suzuki  <utatane.tea@gmail.com>
176
177         Remove std::chrono completely
178         https://bugs.webkit.org/show_bug.cgi?id=181186
179
180         Reviewed by Alex Christensen.
181
182         Use MonotonicTime, WallTime, and Seconds instead.
183         Changes are mechanical ones.
184
185         * NetworkProcess/NetworkProcess.cpp:
186         (WebKit::NetworkProcess::deleteWebsiteData):
187         * NetworkProcess/NetworkProcess.h:
188         * NetworkProcess/NetworkProcess.messages.in:
189         * NetworkProcess/cache/CacheStorageEngineCaches.cpp:
190         (WebKit::CacheStorage::Caches::clear):
191         * NetworkProcess/cache/NetworkCache.cpp:
192         (WebKit::NetworkCache::responseHasExpired):
193         (WebKit::NetworkCache::responseNeedsRevalidation):
194         (WebKit::NetworkCache::makeStoreDecision):
195         (WebKit::NetworkCache::Cache::clear):
196         (WebKit::NetworkCache::Cache::storeData):
197         * NetworkProcess/cache/NetworkCache.h:
198         * NetworkProcess/cache/NetworkCacheEntry.cpp:
199         (WebKit::NetworkCache::Entry::Entry):
200         (WebKit::NetworkCache::Entry::asJSON const):
201         * NetworkProcess/cache/NetworkCacheEntry.h:
202         (WebKit::NetworkCache::Entry::timeStamp const):
203         * NetworkProcess/cache/NetworkCacheFileSystem.cpp:
204         (WebKit::NetworkCache::fileTimes):
205         (WebKit::NetworkCache::updateFileModificationTimeIfNeeded):
206         * NetworkProcess/cache/NetworkCacheFileSystem.h:
207         * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
208         (WebKit::NetworkCache::IOChannel::IOChannel):
209         * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
210         (WebKit::NetworkCache::responseNeedsRevalidation):
211         (WebKit::NetworkCache::canRevalidate):
212         * NetworkProcess/cache/NetworkCacheStorage.cpp:
213         (WebKit::NetworkCache::Storage::readRecord):
214         (WebKit::NetworkCache::Storage::clear):
215         (WebKit::NetworkCache::computeRecordWorth):
216         * NetworkProcess/cache/NetworkCacheStorage.h:
217         Bump the cache version. We now change the data in persistent cache.
218         * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:
219         (WebKit::NetworkCache::SubresourceInfo::SubresourceInfo):
220         (WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry):
221         * NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:
222         (WebKit::NetworkCache::SubresourceInfo::lastSeen const):
223         (WebKit::NetworkCache::SubresourceInfo::firstSeen const):
224         (WebKit::NetworkCache::SubresourcesEntry::timeStamp const):
225         * NetworkProcess/cocoa/NetworkProcessCocoa.mm:
226         (WebKit::NetworkProcess::clearHSTSCache):
227         (WebKit::clearNSURLCache):
228         (WebKit::NetworkProcess::clearDiskCache):
229         * NetworkProcess/curl/NetworkProcessCurl.cpp:
230         (WebKit::NetworkProcess::clearDiskCache):
231         * NetworkProcess/mac/NetworkProcessMac.mm:
232         (WebKit::NetworkProcess::clearCacheForAllOrigins):
233         * NetworkProcess/soup/NetworkProcessSoup.cpp:
234         (WebKit::NetworkProcess::clearCacheForAllOrigins):
235         (WebKit::NetworkProcess::clearDiskCache):
236         * Platform/IPC/ArgumentCoders.cpp:
237         (IPC::ArgumentCoder<WallTime>::encode):
238         (IPC::ArgumentCoder<WallTime>::decode):
239         (IPC::ArgumentCoder<std::chrono::system_clock::time_point>::encode): Deleted.
240         (IPC::ArgumentCoder<std::chrono::system_clock::time_point>::decode): Deleted.
241         * Platform/IPC/ArgumentCoders.h:
242         * PluginProcess/PluginProcess.cpp:
243         (WebKit::PluginProcess::deleteWebsiteData):
244         * PluginProcess/PluginProcess.h:
245         * PluginProcess/PluginProcess.messages.in:
246         * Scripts/webkit/messages.py:
247         (headers_for_type):
248         * Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
249         (WebKit::RemoteLayerBackingStore::lastDisplayTime const):
250         * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
251         (WebKit::RemoteLayerBackingStore::RemoteLayerBackingStore):
252         (WebKit::RemoteLayerBackingStore::display):
253         * Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
254         * Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
255         (WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):
256         (WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):
257         * Shared/WebCoreArgumentCoders.cpp:
258         (IPC::ArgumentCoder<RecentSearch>::decode):
259         (IPC::ArgumentCoder<WallTime>::encode): Deleted.
260         (IPC::ArgumentCoder<WallTime>::decode): Deleted.
261         * Shared/WebCoreArgumentCoders.h:
262         * StorageProcess/StorageProcess.cpp:
263         (WebKit::StorageProcess::deleteWebsiteData):
264         * StorageProcess/StorageProcess.h:
265         * StorageProcess/StorageProcess.messages.in:
266         * UIProcess/API/C/WKApplicationCacheManager.cpp:
267         (WKApplicationCacheManagerDeleteAllEntries):
268         * UIProcess/API/C/WKCookieManager.cpp:
269         (WKCookieManagerDeleteAllCookiesModifiedAfterDate):
270         * UIProcess/API/C/WKKeyValueStorageManager.cpp:
271         (WKKeyValueStorageManagerDeleteAllEntries):
272         * UIProcess/API/C/WKResourceCacheManager.cpp:
273         (WKResourceCacheManagerClearCacheForAllOrigins):
274         * UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
275         (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
276         (WKWebsiteDataStoreStatisticsClearThroughWebsiteDataRemoval):
277         (WKWebsiteDataStoreRemoveAllFetchCaches):
278         (WKWebsiteDataStoreRemoveAllIndexedDatabases):
279         (WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations):
280         * UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
281         (toSystemClockTime):
282         (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:]):
283         * UIProcess/API/glib/WebKitWebContext.cpp:
284         (webkit_web_context_clear_cache):
285         * UIProcess/API/glib/WebKitWebsiteDataManager.cpp:
286         (webkit_website_data_manager_clear):
287         * UIProcess/DrawingAreaProxy.h:
288         * UIProcess/Network/NetworkProcessProxy.cpp:
289         (WebKit::NetworkProcessProxy::deleteWebsiteData):
290         * UIProcess/Network/NetworkProcessProxy.h:
291         * UIProcess/Plugins/PluginProcessManager.cpp:
292         (WebKit::PluginProcessManager::deleteWebsiteData):
293         * UIProcess/Plugins/PluginProcessManager.h:
294         * UIProcess/Plugins/PluginProcessProxy.cpp:
295         (WebKit::PluginProcessProxy::deleteWebsiteData):
296         * UIProcess/Plugins/PluginProcessProxy.h:
297         * UIProcess/Storage/StorageProcessProxy.cpp:
298         (WebKit::StorageProcessProxy::deleteWebsiteData):
299         * UIProcess/Storage/StorageProcessProxy.h:
300         * UIProcess/WebCookieManagerProxy.cpp:
301         (WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince):
302         * UIProcess/WebCookieManagerProxy.h:
303         * UIProcess/WebProcessProxy.cpp:
304         (WebKit::WebProcessProxy::deleteWebsiteData):
305         * UIProcess/WebProcessProxy.h:
306         * UIProcess/WebResourceLoadStatisticsStore.cpp:
307         (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
308         * UIProcess/WebResourceLoadStatisticsStore.h:
309         * UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp:
310         (WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):
311         * UIProcess/WebStorage/LocalStorageDatabaseTracker.h:
312         * UIProcess/WebStorage/StorageManager.cpp:
313         (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
314         * UIProcess/WebStorage/StorageManager.h:
315         * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
316         (WebKit::WebsiteDataStore::platformRemoveRecentSearches):
317         * UIProcess/WebsiteData/WebsiteDataStore.cpp:
318         (WebKit::WebsiteDataStore::removeData):
319         (WebKit::WebsiteDataStore::removeMediaKeys):
320         * UIProcess/WebsiteData/WebsiteDataStore.h:
321         * UIProcess/gtk/WebPageProxyGtk.cpp:
322         (WebKit::WebsiteDataStore::platformRemoveRecentSearches):
323         * UIProcess/wpe/WebPageProxyWPE.cpp:
324         (WebKit::WebsiteDataStore::platformRemoveRecentSearches):
325         * WebProcess/Cookies/WebCookieManager.cpp:
326         (WebKit::WebCookieManager::deleteAllCookiesModifiedSince):
327         * WebProcess/Cookies/WebCookieManager.h:
328         * WebProcess/Cookies/WebCookieManager.messages.in:
329         * WebProcess/Plugins/PluginView.cpp:
330         (WebKit::lastModifiedDateMS):
331         * WebProcess/WebProcess.cpp:
332         (WebKit::WebProcess::deleteWebsiteData):
333         * WebProcess/WebProcess.h:
334         * WebProcess/WebProcess.messages.in:
335
336 2018-01-02  Wenson Hsieh  <wenson_hsieh@apple.com>
337
338         [Attachment Support] Introduce data structures and IPC support for writing promised blobs
339         https://bugs.webkit.org/show_bug.cgi?id=181189
340
341         Reviewed by Tim Horton.
342
343         Add IPC support for PromisedBlobInfo and PromisedBlobData. See WebCore/ChangeLog for more detail.
344
345         * Shared/WebCoreArgumentCoders.cpp:
346         (IPC::ArgumentCoder<PromisedBlobData>::encode):
347         (IPC::ArgumentCoder<PromisedBlobData>::decode):
348         (IPC::ArgumentCoder<PromisedBlobInfo>::encode):
349         (IPC::ArgumentCoder<PromisedBlobInfo>::decode):
350         * Shared/WebCoreArgumentCoders.h:
351
352 2018-01-02  Michael Catanzaro  <mcatanzaro@igalia.com>
353
354         REGRESSION(r223253): Broke ResourceLoadStatistics layout tests for non-Cocoa ports
355         https://bugs.webkit.org/show_bug.cgi?id=181231
356
357         Reviewed by Alex Christensen.
358
359         Add new C API for use by WebKitTestRunner.
360
361         * UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
362         (WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder):
363         (WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo):
364         * UIProcess/API/C/WKWebsiteDataStoreRef.h:
365
366 2018-01-02  Jiewen Tan  <jiewen_tan@apple.com>
367
368         Add a WebAuthentication runtime feature flag
369         https://bugs.webkit.org/show_bug.cgi?id=181220
370         <rdar://problem/36055305>
371
372         Reviewed by Brent Fulgham.
373
374         Renames the CredentialManagement runtime feature flag into WebAuthentication.
375
376         * Shared/WebPreferences.yaml:
377         * UIProcess/API/C/WKPreferences.cpp:
378         (WKPreferencesSetWebAuthenticationEnabled):
379         (WKPreferencesGetWebAuthenticationEnabled):
380         (WKPreferencesSetCredentialManagementEnabled): Deleted.
381         (WKPreferencesGetCredentialManagementEnabled): Deleted.
382         * UIProcess/API/C/WKPreferencesRefPrivate.h:
383         * WebProcess/WebPage/WebPage.cpp:
384         (WebKit::WebPage::updatePreferences):
385
386 2018-01-02  Michael Catanzaro  <mcatanzaro@igalia.com>
387
388         REGRESSION(r226327): [GTK] Plugin process is broken
389         https://bugs.webkit.org/show_bug.cgi?id=181187
390
391         Unreviewed, fix PluginProcessMainUnix after r226327.
392
393         * PluginProcess/unix/PluginProcessMainUnix.cpp:
394
395 2018-01-02  Tim Horton  <timothy_horton@apple.com>
396
397         Fix the build on platforms where UICurrentUserInterfaceIdiomIsPad is defined to false
398         https://bugs.webkit.org/show_bug.cgi?id=181218
399
400         Reviewed by Alex Christensen.
401
402         * Platform/spi/ios/UIKitSPI.h:
403         (currentUserInterfaceIdiomIsPad):
404         * UIProcess/ios/SmartMagnificationController.mm:
405         (WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture):
406         * UIProcess/ios/WKContentViewInteraction.mm:
407         (-[WKFormInputSession setAccessoryViewCustomButtonTitle:]):
408         (-[WKContentView _requiresKeyboardWhenFirstResponder]):
409         (-[WKContentView _displayFormNodeInputView]):
410         (-[WKContentView requiresAccessoryView]):
411         (-[WKContentView _updateAccessory]):
412         * UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
413         (-[WKAirPlayRoutePicker show:fromRect:]):
414         * UIProcess/ios/forms/WKFileUploadPanel.mm:
415         (-[WKFileUploadPanel _showPhotoPickerWithSourceType:]):
416         (-[WKFileUploadPanel _presentMenuOptionForCurrentInterfaceIdiom:]):
417         * UIProcess/ios/forms/WKFormInputControl.mm:
418         (-[WKDateTimePicker initWithView:datePickerMode:]):
419         (-[WKFormInputControl initWithView:]):
420         * UIProcess/ios/forms/WKFormSelectControl.mm:
421         (-[WKFormSelectControl initWithView:]):
422         On platforms where UICurrentUserInterfaceIdiomIsPad is defined to false,
423         blocks that conditionally execute based on its value are unreachable.
424         This causes the compiler to complain. Hide it away inside an inline function
425         and make use of that everywhere we used to use the macro.
426
427 2018-01-02  Alex Christensen  <achristensen@webkit.org>
428
429         Remove SVN file accidentally added in r226160
430         https://bugs.webkit.org/show_bug.cgi?id=180934
431
432         * UIProcess/WebPageProxy.cpp.orig: Removed.
433
434 2018-01-02  Alex Christensen  <achristensen@webkit.org>
435
436         Use BlockPtrs and lambdas instead of new/delete to pass parameters to blocks in WebViewImpl::performDragOperation
437         https://bugs.webkit.org/show_bug.cgi?id=180795
438
439         Reviewed by Brent Fulgham.
440
441         * UIProcess/Cocoa/WebViewImpl.mm:
442         (WebKit::WebViewImpl::performDragOperation):
443
444 2018-01-02  Michael Catanzaro  <mcatanzaro@igalia.com>
445
446         [WPE][GTK] Implement the assignment of ProcessIdentifiers to child processes
447         https://bugs.webkit.org/show_bug.cgi?id=181187
448
449         Reviewed by Brady Eidson.
450
451         * Shared/ChildProcess.cpp: Make the ProcessIdentifier mandatory.
452         (WebKit::ChildProcess::initialize):
453         * Shared/unix/ChildProcessMain.cpp: Initialize ChildProcessInitializationParameters with the
454         ProcessIdentifier.
455         (WebKit::ChildProcessMainBase::parseCommandLine):
456         * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: Copy the ProcessIdentifier from
457         LaunchOptions into argv.
458         (WebKit::ProcessLauncher::launchProcess):
459         * WebProcess/wpe/WebProcessMainWPE.cpp: Expect the WPE socket ID later in the command line.
460
461 2018-01-02  Alex Christensen  <achristensen@webkit.org>
462
463         Use new WebsiteDataStore passed in through decidePolicyForNavigation SPI
464         https://bugs.webkit.org/show_bug.cgi?id=180897
465         <rdar://problem/35535328>
466
467         Reviewed by Brent Fulgham.
468
469         * Shared/WebsitePoliciesData.cpp:
470         (WebKit::WebsitePoliciesData::applyToDocumentLoader):
471         * UIProcess/Cocoa/NavigationState.mm:
472         (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
473         * UIProcess/WebPageProxy.cpp:
474         (WebKit::WebPageProxy::changeWebsiteDataStore):
475         * UIProcess/WebPageProxy.h:
476         * UIProcess/WebProcessPool.cpp:
477         (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
478         (WebKit::WebProcessPool::pageEndUsingWebsiteDataStore):
479         (WebKit::WebProcessPool::pageAddedToProcess): Deleted.
480         (WebKit::WebProcessPool::pageRemovedFromProcess): Deleted.
481         * UIProcess/WebProcessPool.h:
482         * UIProcess/WebProcessProxy.cpp:
483         (WebKit::WebProcessProxy::addExistingWebPage):
484         (WebKit::WebProcessProxy::removeWebPage):
485         * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
486         (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession):
487
488 2018-01-02  Alex Christensen  <achristensen@webkit.org>
489
490         Only use CookieStorageShim when we aren't using NetworkSession
491         https://bugs.webkit.org/show_bug.cgi?id=180766
492
493         Reviewed by Brent Fulgham.
494
495         * Shared/mac/CookieStorageShim.h:
496         * Shared/mac/CookieStorageShim.mm:
497         * WebProcess/WebProcess.cpp:
498         (WebKit::WebProcess::initializeWebProcess):
499
500 2018-01-02  Alex Christensen  <achristensen@webkit.org>
501
502         Clean up context menu code
503         https://bugs.webkit.org/show_bug.cgi?id=181074
504
505         Reviewed by Brent Fulgham.
506
507         Use Ref instead of RefPtr where possible.
508         Use move semantics instead of copying from const references when possible.
509         Remove dead iOS code.  Reduce allocations.  Add stub for WPE.
510
511         * UIProcess/API/APIContextMenuClient.h:
512         (API::ContextMenuClient::getContextMenuFromProposedMenu):
513         (API::ContextMenuClient::getContextMenuFromProposedMenuAsync):
514         (API::ContextMenuClient::showContextMenu):
515         * UIProcess/API/C/WKPage.cpp:
516         (WKPageSetPageContextMenuClient):
517         * UIProcess/API/gtk/PageClientImpl.cpp:
518         (WebKit::PageClientImpl::createContextMenuProxy):
519         * UIProcess/API/gtk/PageClientImpl.h:
520         * UIProcess/PageClient.h:
521         * UIProcess/WebContextMenuListenerProxy.cpp:
522         (WebKit::WebContextMenuListenerProxy::useContextMenuItems):
523         * UIProcess/WebContextMenuProxy.cpp:
524         (WebKit::WebContextMenuProxy::WebContextMenuProxy):
525         * UIProcess/WebContextMenuProxy.h:
526         * UIProcess/WebPageProxy.cpp:
527         (WebKit::WebPageProxy::showContextMenu):
528         (WebKit::WebPageProxy::internalShowContextMenu): Deleted.
529         * UIProcess/WebPageProxy.h:
530         * UIProcess/gtk/WebContextMenuProxyGtk.cpp:
531         (WebKit::WebContextMenuProxyGtk::showContextMenuWithItems):
532         (WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk):
533         * UIProcess/gtk/WebContextMenuProxyGtk.h:
534         (WebKit::WebContextMenuProxyGtk::create):
535         * UIProcess/ios/PageClientImplIOS.h:
536         * UIProcess/ios/PageClientImplIOS.mm:
537         (WebKit::PageClientImpl::createContextMenuProxy): Deleted.
538         * UIProcess/mac/PageClientImplMac.h:
539         * UIProcess/mac/PageClientImplMac.mm:
540         (WebKit::PageClientImpl::createContextMenuProxy):
541         * UIProcess/mac/WebContextMenuProxyMac.h:
542         (WebKit::WebContextMenuProxyMac::create):
543         * UIProcess/mac/WebContextMenuProxyMac.mm:
544         (WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac):
545         (WebKit::WebContextMenuProxyMac::showContextMenuWithItems):
546         (WebKit::WebContextMenuProxyMac::showContextMenu):
547
548 == Rolled over to ChangeLog-2018-01-01 ==