PDFPlugins don't load when plugins are disabled, but they should
[WebKit-https.git] / Source / WebKit2 / ChangeLog
1 2013-05-16  Tim Horton  <timothy_horton@apple.com>
2
3         PDFPlugins don't load when plugins are disabled, but they should
4         https://bugs.webkit.org/show_bug.cgi?id=75790
5         <rdar://problem/11650197>
6
7         Reviewed by Anders Carlsson.
8
9         Support loading "application" plug-ins even if plug-ins are explicitly disabled.
10
11         Make PDFPlugin and SimplePDFPlugin "application" plug-ins, so they can
12         be loaded even if plug-ins are disabled.
13
14         * Platform/CoreIPC/HandleMessage.h:
15         (CoreIPC::callMemberFunction):
16         Add a 5-argument, 3-reply version of callMemberFunction.
17
18         * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
19         (WebKit::NetscapePluginModule::getPluginInfo):
20         NPAPI plug-ins are not application plug-ins.
21
22         * Shared/WebCoreArgumentCoders.cpp:
23         (CoreIPC::::encode):
24         (CoreIPC::::decode):
25         Encode/decode the new isApplicationPlugin field on PluginInfo.
26
27         * UIProcess/Plugins/PluginInfoStore.cpp:
28         (WebKit::PluginInfoStore::findPluginForMIMEType):
29         (WebKit::PluginInfoStore::findPluginForExtension):
30         (WebKit::PluginInfoStore::findPlugin):
31         * UIProcess/Plugins/PluginInfoStore.h:
32         (PluginInfoStore):
33         Give PluginInfoStore's findPlugin method and its private helper
34         methods an argument allowing them to only match application plug-ins.
35
36         (WebKit::WebPageProxy::findPlugin):
37         * UIProcess/WebPageProxy.h:
38         (WebPageProxy):
39         * UIProcess/WebPageProxy.messages.in:
40         Add an argument allowing findPlugin to restrict its search to only application plug-ins.
41
42         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
43         (WebKit::WebFrameLoaderClient::objectContentType):
44         Previously, this caller depended on pluginData() returning null if
45         plug-ins were disabled. Since that is no longer the case, we have to
46         check if we can use plug-ins, and otherwise ignore non-application-plug-ins.
47
48         * WebProcess/WebPage/WebPage.cpp:
49         (WebKit::WebPage::createPlugin):
50         When going to search for a plug-in, ask subframeLoader whether or not
51         it's OK to use ordinary non-application plug-ins, and pass that information
52         on to the UIProcess when performing the search.
53
54         (WebKit::WebPage::canPluginHandleResponse): Ditto.
55         (WebKit::WebPage::canShowMIMEType):
56         Ensure that canShowMIMEType returns true if we have an application plug-in
57         that can display a particular MIME type, even if we're not allowed to load plug-ins.
58
59 2013-05-16  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
60
61         [EFL][WK2] Make Ewk_Context_Menu Ewk_Object
62         https://bugs.webkit.org/show_bug.cgi?id=116097
63
64         Reviewed by Gyuyoung Kim.
65
66         Changed Ewk_Context_Menu to be an Ewk_Object so pointer to menu
67         object can be shared between different modules.
68
69         * UIProcess/API/efl/EwkView.cpp:
70         (EwkView::showContextMenu):
71         * UIProcess/API/efl/EwkView.h:
72         (EwkView):
73         * UIProcess/API/efl/ewk_context_menu.cpp:
74         (EwkContextMenu::appendItem):
75         (EwkContextMenu::removeItem):
76         (ewk_context_menu_new):
77         (ewk_context_menu_new_with_items):
78         (ewk_context_menu_item_append):
79         (ewk_context_menu_item_remove):
80         (ewk_context_menu_hide):
81         (ewk_context_menu_items_get):
82         (ewk_context_menu_item_select):
83         * UIProcess/API/efl/ewk_context_menu_item.cpp:
84         (EwkContextMenuItem::EwkContextMenuItem):
85         (ewk_context_menu_item_new_with_submenu):
86         * UIProcess/API/efl/ewk_context_menu_item_private.h:
87         (EwkContextMenuItem):
88         * UIProcess/API/efl/ewk_context_menu_private.h:
89         (EwkContextMenu):
90         (EwkContextMenu::create):
91         * UIProcess/API/efl/ewk_defines.h:
92
93 2013-05-16  Andreas Kling  <akling@apple.com>
94
95         Page::chrome() should return a reference.
96         <http://webkit.org/b/116185>
97
98         Reviewed by Anders Carlsson.
99
100 2013-05-16  Brady Eidson  <beidson@apple.com>
101
102         svg/as-image/img-zoom-svg-stylesheet.html crashes with NetworkProcess enabled.
103         <rdar://problem/13837408> and https://bugs.webkit.org/show_bug.cgi?id=115917
104
105         Reviewed by Sam Weinig.
106
107         * NetworkProcess/SchedulableLoader.cpp:
108         (WebKit::SchedulableLoader::SchedulableLoader): ASSERT that either there’s a frame and page ID, or
109           that the client cannot be asked for credentials.
110
111         * WebProcess/Network/WebResourceLoadScheduler.cpp:
112         (WebKit::WebResourceLoadScheduler::scheduleLoad): Only cast the FrameLoaderClient and get WebFrame/WebPage
113           if that is actually possible. Set the clientCredentialPolicy based on whether or not WebFrame/WebPage are
114           available since they are needed to ask the UIProcess for credentials. ASSERT that either there’s both
115           a frame and page ID or that the client won’t be asked for credentials.
116
117 2013-05-16  Timothy Hatcher  <timothy@apple.com>
118
119         Make the Find Banner in Safari work again with the docked Web Inspector.
120
121         https://webkit.org/b/116182
122         rdar://problem/13857423
123
124         Reviewed by Benjamin Poulain.
125
126         * UIProcess/mac/WebInspectorProxyMac.mm:
127         (WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
128         (WebKit::WebInspectorProxy::platformDetach):
129         Preserve the top position of the inspected view so banners in Safari still work.
130
131 2013-05-16  Tim Horton  <timothy_horton@apple.com>
132
133         [wk2] didGetImageForFindMatch can return a null image
134         https://bugs.webkit.org/show_bug.cgi?id=116251
135         <rdar://problem/13277246>
136
137         Reviewed by Simon Fraser.
138
139         Don't send didGetImageForFindMatch if we didn't get an image for
140         the find match, which can happen if the selection is not visible.
141
142         * WebProcess/WebPage/FindController.cpp:
143         (WebKit::FindController::getImageForFindMatch):
144
145 2013-05-16  Tim Horton  <timothy_horton@apple.com>
146
147         [wk2] Minimum layout width is lost if the WebProcess crashes
148         https://bugs.webkit.org/show_bug.cgi?id=116202
149         <rdar://problem/13202320>
150
151         Reviewed by Darin Adler.
152
153         Send the minimum layout width to the WebProcess upon initialization,
154         so that crashed-and-restarted WebProcesses have the correct width.
155
156         * Shared/WebPageCreationParameters.cpp:
157         (WebKit::WebPageCreationParameters::encode):
158         (WebKit::WebPageCreationParameters::decode):
159         * Shared/WebPageCreationParameters.h:
160         (WebPageCreationParameters):
161         Add minimumLayoutWidth WebPage creation parameter.
162
163         * UIProcess/WebPageProxy.cpp:
164         (WebKit::WebPageProxy::creationParameters):
165         Send the current minimumLayoutWidth to the WebPage when it's created.
166
167         (WebKit::WebPageProxy::setMinimumLayoutWidth):
168         Store minimumLayoutWidth changes that come in while the WebProcess is
169         not valid, so that the correct width is sent once it is restarted.
170
171         * WebProcess/WebPage/WebPage.cpp:
172         (WebKit::WebPage::WebPage):
173         Set minimumLayoutWidth to the value provided by our creation parameters.
174
175 2013-05-16  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
176
177         [Win] Unreviewed buildfix after r150161.
178
179         'Unknown' in HTTPRequest.cpp is ambiguous symbol with MSVC,
180         because it is also defined in MS SDK 7.1 winioctl.h.
181
182         * UIProcess/InspectorServer/HTTPRequest.cpp:
183         (WebKit::HTTPRequest::HTTPRequest):
184
185 2013-05-16  Andras Becsi  <andras.becsi@digia.com>
186
187         [WK2] PluginInformation.cpp fails to build because of missing ENABLE(NETSCAPE_PLUGIN_API) guard
188         https://bugs.webkit.org/show_bug.cgi?id=116018
189
190         Rubber-stamped by Jocelyn Turcotte.
191
192         * Shared/Plugins/Netscape/PluginInformation.cpp:
193         (WebKit::getPluginModuleInformation):
194
195 2013-05-15  Simon Cooper  <scooper@apple.com>
196
197         Enable printing in plugins
198         https://bugs.webkit.org/show_bug.cgi?id=116201
199         <rdar://problem/12347902>
200
201         Reviewed by Alexey Proskuryakov.
202
203         Add the printing entitlement so that legacy printing drivers can
204         customize the print panel. Update the printing rules and enable them
205         for the plugins.
206
207         * Configurations/PluginService.entitlements:
208         * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
209         * Resources/PlugInSandboxProfiles/com.macromedia.Flash Player.plugin.sb:
210         * Resources/PlugInSandboxProfiles/com.microsoft.SilverlightPlugin.sb:
211         * Resources/PlugInSandboxProfiles/com.oracle.java.JavaAppletPlugin.sb:
212
213 2013-05-15  Anders Carlsson  <andersca@apple.com>
214
215         Move HTTPRequest class to WebKit2
216         https://bugs.webkit.org/show_bug.cgi?id=116192
217
218         Reviewed by Darin Adler.
219
220         Move HTTPRequest to WebKit2 and put it in the WebKit namespace.
221
222         * CMakeLists.txt:
223         * GNUmakefile.list.am:
224         * Target.pri:
225         * UIProcess/InspectorServer/HTTPRequest.cpp: Renamed from Source/WebCore/platform/network/HTTPRequest.cpp.
226         * UIProcess/InspectorServer/HTTPRequest.h: Renamed from Source/WebCore/platform/network/HTTPRequest.h.
227         * UIProcess/InspectorServer/WebInspectorServer.cpp:
228         * UIProcess/InspectorServer/WebInspectorServer.h:
229         (WebInspectorServer):
230         * UIProcess/InspectorServer/WebSocketServerClient.h:
231         (WebKit::WebSocketServerClient::didReceiveUnrecognizedHTTPRequest):
232         (WebKit::WebSocketServerClient::didReceiveWebSocketUpgradeHTTPRequest):
233         (WebKit::WebSocketServerClient::didEstablishWebSocketConnection):
234         * UIProcess/InspectorServer/WebSocketServerConnection.cpp:
235         * UIProcess/InspectorServer/WebSocketServerConnection.h:
236         (WebKit):
237         (WebSocketServerConnection):
238
239 2013-05-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>
240
241         [GTK] [WebKit2] enable displaying console.log messages to system console
242         https://bugs.webkit.org/show_bug.cgi?id=115578
243
244         Reviewed by Martin Robinson.
245
246         Add a setting to enable/disable displaying of page messages to system
247         console. Property is called enable-write-console-messages-to-stdout.
248         Getter API function is
249         webkit_settings_get_enable_write_console_messages_to_stdout
250         Setter API function is
251         webkit_settings_set_enable_write_console_messages_to_stdout
252
253         * UIProcess/API/gtk/WebKitSettings.cpp:
254         (webKitSettingsSetProperty):
255         (webKitSettingsGetProperty):
256         (webkit_settings_class_init):
257         (webkit_settings_get_enable_write_console_messages_to_stdout):
258         (webkit_settings_set_enable_write_console_messages_to_stdout):
259         * UIProcess/API/gtk/WebKitSettings.h:
260         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
261         * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
262         (testWebKitSettings):
263
264 2013-05-08  Gavin Barraclough  <barraclough@apple.com>
265
266         Process suppression should throttle scripted animations
267         https://bugs.webkit.org/show_bug.cgi?id=115812
268
269         Reviewed by Simon Fraser.
270
271         <rdar://problem/13799726>
272
273         * WebProcess/WebPage/WebPage.cpp:
274         (WebKit::WebPage::setThrottled):
275         (WebKit):
276         * WebProcess/WebPage/WebPage.h:
277         (WebPage):
278             - Added setThrottled, forwards to WebCore::Page.
279         * WebProcess/WebProcess.cpp:
280         (WebKit):
281         (WebKit::WebProcess::setProcessSuppressionEnabled):
282         * WebProcess/WebProcess.h:
283         (WebProcess):
284             - Intercept calls to setProcessSuppressionEnabled, also mark all pages as being throttled.
285
286 2013-05-15  Anders Carlsson  <andersca@apple.com>
287
288         WKPageGetPluginInformationDisplayNameKey doesn't return the right key
289         https://bugs.webkit.org/show_bug.cgi?id=116188
290
291         Reviewed by Andreas Kling.
292
293         * UIProcess/API/C/WKPage.cpp:
294         (WKPageGetPluginInformationDisplayNameKey):
295
296 2013-05-15  Alexey Proskuryakov  <ap@apple.com>
297
298         More fixing after WebProcessShim renaming in r149074.
299
300         * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
301         (WebContentServiceInitializer): Updated a comment to mention the shim by its new name.
302
303 2013-05-15  Alexey Proskuryakov  <ap@apple.com>
304
305         <rdar://problem/13902706> Lion: com.apple.tsm.uiserver sandbox error in Console when
306         launching Safari
307
308         Reviewed by Anders Carlsson.
309
310         * WebProcess/com.apple.WebProcess.sb.in: Silence the violation.
311
312 2013-05-13  Anders Carlsson  <andersca@apple.com>
313
314         Frame::editor() should return a reference
315         https://bugs.webkit.org/show_bug.cgi?id=116037
316
317         Reviewed by Darin Adler.
318
319         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
320         (WebKit::WebContextMenuClient::searchWithGoogle):
321         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
322         (WebKit::WebEditorClient::updateGlobalSelection):
323         * WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:
324         (WebKit::WebEditorClient::handleInputMethodKeydown):
325         * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
326         (WebKit::WebEditorClient::executePendingEditorCommands):
327         (WebKit::WebEditorClient::handleKeyboardEvent):
328         * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
329         (WebKit::WebContextMenuClient::searchWithGoogle):
330         (WebKit::WebContextMenuClient::searchWithSpotlight):
331         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
332         (WebKit::changeWordCase):
333         * WebProcess/WebPage/WebFrame.cpp:
334         (WebKit::WebFrame::selectionAsString):
335         (WebKit::WebFrame::setTextDirection):
336         * WebProcess/WebPage/WebPage.cpp:
337         (WebKit::WebPage::editorState):
338         (WebKit::WebPage::executeEditingCommand):
339         (WebKit::WebPage::isEditingCommandEnabled):
340         (WebKit::WebPage::validateCommand):
341         (WebKit::WebPage::handleEditingKeyboardEvent):
342         (WebKit::WebPage::advanceToNextMisspelling):
343         (WebKit::WebPage::uppercaseWord):
344         (WebKit::WebPage::lowercaseWord):
345         (WebKit::WebPage::capitalizeWord):
346         (WebKit::WebPage::replaceSelectionWithText):
347         (WebKit::WebPage::handleAlternativeTextUIResult):
348         (WebKit::WebPage::setCompositionForTesting):
349         (WebKit::WebPage::hasCompositionForTesting):
350         (WebKit::WebPage::confirmCompositionForTesting):
351         (WebKit::WebPage::setComposition):
352         (WebKit::WebPage::cancelComposition):
353         * WebProcess/WebPage/efl/WebPageEfl.cpp:
354         (WebKit::WebPage::confirmComposition):
355         (WebKit::WebPage::setComposition):
356         (WebKit::WebPage::cancelComposition):
357         * WebProcess/WebPage/mac/WebPageMac.mm:
358         (WebKit::WebPage::executeKeypressCommandsInternal):
359         (WebKit::WebPage::handleEditingKeyboardEvent):
360         (WebKit::WebPage::setComposition):
361         (WebKit::WebPage::confirmComposition):
362         (WebKit::WebPage::cancelComposition):
363         (WebKit::WebPage::insertText):
364         (WebKit::WebPage::insertDictatedText):
365         (WebKit::WebPage::getMarkedRange):
366         (WebKit::WebPage::firstRectForCharacterRange):
367         (WebKit::WebPage::readSelectionFromPasteboard):
368         (WebKit::WebPage::getStringSelectionForPasteboard):
369         (WebKit::WebPage::getDataSelectionForPasteboard):
370
371 2013-05-15  Anders Carlsson  <andersca@apple.com>
372
373         Need a way for NPAPI plug-ins to open preference panes
374         https://bugs.webkit.org/show_bug.cgi?id=116173
375         <rdar://problem/13503848>
376
377         Reviewed by Sam Weinig.
378
379         * PluginProcess/PluginControllerProxy.h:
380         Add openPluginPreferencePane().
381
382         * PluginProcess/mac/PluginControllerProxyMac.mm:
383         (WebKit::PluginControllerProxy::openPluginPreferencePane):
384         Send OpenPluginPreferencePane to the UI process.
385
386         * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
387         (WebKit::NetscapePluginModule::getPluginInfo):
388         Get the preference pane path.
389         
390         * Shared/Plugins/PluginModuleInfo.h:
391         Add preferencePanePath member variable.
392
393         * UIProcess/Plugins/PluginProcessProxy.h:
394         Add openPluginPreferencePane message handler.
395
396         * UIProcess/Plugins/PluginProcessProxy.messages.in:
397         ADd OpenPluginPreferencePane message.
398
399         * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
400         (WebKit::PluginProcessProxy::openPluginPreferencePane):
401         Get the path to the preference pane and use LS to open it.
402
403         * WebKit2.xcodeproj/project.pbxproj:
404         Add new files.
405
406         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
407         (WebKit::NPN_GetValue):
408         Handle WKNVPlugInContainer.
409
410         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
411         Add WKNVPlugInContainer member variable.
412
413         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
414         (WebKit::NetscapePlugin::openPluginPreferencePane):
415         Call through to the plug-in controller.
416
417         (WebKit::NetscapePlugin::plugInContainer):
418         Create a WKNPAPIPlugInContainer object if necessary.
419
420         (WebKit::NetscapePlugin::platformDestroy):
421         Invalidate the WKNPAPIPlugInContainer object.
422
423         * WebProcess/Plugins/Netscape/mac/WKNPAPIPlugInContainer.h:
424         New file with the protocol definition.
425
426         * WebProcess/Plugins/Netscape/mac/WKNPAPIPlugInContainer.mm:
427         (-[WKNPAPIPlugInContainer dealloc]):
428         Assert that the plug-in is null (that we've been invalidated).
429
430         (-[WKNPAPIPlugInContainer _invalidate]):
431         Set the plug-in to null.
432
433         (-[WKNPAPIPlugInContainer openPlugInPreferencePane]):
434         Call through to the plug-in.
435
436         * WebProcess/Plugins/Netscape/mac/WKNPAPIPlugInContainerInternal.h:
437         New file with the interface declaration for the object that implements the protocol.
438
439         * WebProcess/Plugins/PluginController.h:
440         Add openPluginPreferencePane member function.
441
442         * WebProcess/Plugins/PluginView.cpp:
443         (WebKit::PluginView::openPluginPreferencePane):
444         Add stub; this should never be called since we always go through the UI process.
445
446 2013-05-15  Alexey Proskuryakov  <ap@apple.com>
447
448         [WK2][Mac] Split resetTextInputState into two functions
449         https://bugs.webkit.org/show_bug.cgi?id=116174
450
451         Reviewed by Anders Carlsson.
452
453         Splitting resetTextInputState into resetSecureInputState and
454         notifyInputContextAboutDiscardedComposition, paving the way for a fix where these
455         won't be happening simultaneously.
456
457         * UIProcess/API/mac/PageClientImpl.h:
458         * UIProcess/API/mac/PageClientImpl.mm:
459         (WebKit::PageClientImpl::resetSecureInputState):
460         (WebKit::PageClientImpl::notifyInputContextAboutDiscardedComposition):
461         * UIProcess/API/mac/WKView.mm:
462         (-[WKView resignFirstResponder]):
463         (-[WKView _resetSecureInputState]):
464         (-[WKView _notifyInputContextAboutDiscardedComposition]):
465         * UIProcess/API/mac/WKViewInternal.h:
466         * UIProcess/PageClient.h:
467         * UIProcess/WebPageProxy.cpp:
468         (WebKit::WebPageProxy::didCommitLoadForFrame):
469
470 2013-05-15  Carlos Garcia Campos  <cgarcia@igalia.com>
471
472         [GTK] Add padding to all public class structs for future expansion without breaking ABI
473         https://bugs.webkit.org/show_bug.cgi?id=112565
474
475         Reviewed by Anders Carlsson.
476
477         Use 4 pointers for most of the classes that are unlikely to grow
478         and 8 for WebKitWebView and WebKitWebContext.
479
480         * UIProcess/API/gtk/WebKitBackForwardList.h:
481         (_WebKitBackForwardListClass):
482         * UIProcess/API/gtk/WebKitBackForwardListItem.h:
483         (_WebKitBackForwardListItemClass):
484         * UIProcess/API/gtk/WebKitContextMenu.h:
485         (_WebKitContextMenuClass):
486         * UIProcess/API/gtk/WebKitContextMenuItem.h:
487         (_WebKitContextMenuItemClass):
488         * UIProcess/API/gtk/WebKitCookieManager.h:
489         (_WebKitCookieManagerClass):
490         * UIProcess/API/gtk/WebKitDownload.h:
491         (_WebKitDownloadClass):
492         * UIProcess/API/gtk/WebKitFaviconDatabase.h:
493         (_WebKitFaviconDatabaseClass):
494         * UIProcess/API/gtk/WebKitFileChooserRequest.h:
495         (_WebKitFileChooserRequestClass):
496         * UIProcess/API/gtk/WebKitFindController.h:
497         (_WebKitFindControllerClass):
498         * UIProcess/API/gtk/WebKitFormSubmissionRequest.h:
499         (_WebKitFormSubmissionRequestClass):
500         * UIProcess/API/gtk/WebKitGeolocationPermissionRequest.h:
501         (_WebKitGeolocationPermissionRequestClass):
502         * UIProcess/API/gtk/WebKitHitTestResult.h:
503         (_WebKitHitTestResultClass):
504         * UIProcess/API/gtk/WebKitNavigationPolicyDecision.h:
505         (_WebKitNavigationPolicyDecisionClass):
506         * UIProcess/API/gtk/WebKitPlugin.h:
507         (_WebKitPluginClass):
508         * UIProcess/API/gtk/WebKitPolicyDecision.h:
509         (_WebKitPolicyDecisionClass):
510         * UIProcess/API/gtk/WebKitPrintOperation.h:
511         (_WebKitPrintOperationClass):
512         * UIProcess/API/gtk/WebKitResponsePolicyDecision.h:
513         (_WebKitResponsePolicyDecisionClass):
514         * UIProcess/API/gtk/WebKitSecurityManager.h:
515         (_WebKitSecurityManagerClass):
516         * UIProcess/API/gtk/WebKitSettings.h:
517         (_WebKitSettingsClass):
518         * UIProcess/API/gtk/WebKitURIRequest.h:
519         (_WebKitURIRequestClass):
520         * UIProcess/API/gtk/WebKitURIResponse.h:
521         (_WebKitURIResponseClass):
522         * UIProcess/API/gtk/WebKitURISchemeRequest.h:
523         (_WebKitURISchemeRequestClass):
524         * UIProcess/API/gtk/WebKitWebContext.h:
525         (_WebKitWebContextClass):
526         * UIProcess/API/gtk/WebKitWebInspector.h:
527         (_WebKitWebInspectorClass):
528         * UIProcess/API/gtk/WebKitWebResource.h:
529         (_WebKitWebResourceClass):
530         * UIProcess/API/gtk/WebKitWebView.h:
531         (_WebKitWebViewClass):
532         * UIProcess/API/gtk/WebKitWebViewBase.h:
533         (_WebKitWebViewBaseClass):
534         * UIProcess/API/gtk/WebKitWebViewGroup.h:
535         (_WebKitWebViewGroupClass):
536         * UIProcess/API/gtk/WebKitWindowProperties.h:
537         (_WebKitWindowPropertiesClass):
538
539 2013-05-14  Carlos Garcia Campos  <cgarcia@igalia.com>
540
541         Remove WTF_USE_PLATFORM_STRATEGIES
542         https://bugs.webkit.org/show_bug.cgi?id=114431
543
544         Reviewed by Darin Adler.
545
546         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
547         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
548         * WebProcess/WebProcess.cpp:
549         (WebKit::WebProcess::WebProcess):
550
551 2013-05-14  Simon Cooper  <scooper@apple.com>
552
553         Add a preference that can disable the fake SYSV SHM shim
554         https://bugs.webkit.org/show_bug.cgi?id=116127
555         <rdar://problem/13810524>
556
557         Reviewed by Alexey Proskuryakov.
558
559         * PluginProcess/mac/PluginProcessShim.mm:
560         (WebKit::shim_disabled):
561         (WebKit::shim_shmdt):
562         (WebKit::shim_shmat):
563         (WebKit::shim_shmget):
564         (WebKit::shim_shmctl):
565
566 2013-05-14  Tim Horton  <timothy_horton@apple.com>
567
568         [wk2] Not updating tiled backing coverage when main frame scrollability changes
569         https://bugs.webkit.org/show_bug.cgi?id=116123
570         <rdar://problem/13836559>
571
572         Reviewed by Simon Fraser.
573
574         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
575         (TiledCoreAnimationDrawingArea):
576         Add updateMainFrameClipsToExposedRect.
577
578         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
579         (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
580         (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
581         Remove m_clipsToExposedRect. We don't actually need it.
582
583         (WebKit::TiledCoreAnimationDrawingArea::mainFrameScrollabilityChanged):
584         Call updateMainFrameClipsToExposedRect so that we can always update
585         tiled backing coverage and can factor out our calls to setClipsToExposedRect.
586
587         (WebKit::TiledCoreAnimationDrawingArea::updateMainFrameClipsToExposedRect):
588         Factor out setClipsToExposedRect calls to here, and also call
589         FrameView::adjustTiledBackingCoverage so that the FrameView's tiled
590         backing is informed to allow overdraw in the UI-process-scrolling case.
591
592         (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
593         Use updateMainFrameClipsToExposedRect.
594
595 2013-05-14  Alexey Proskuryakov  <ap@apple.com>
596
597         [Mac] Add a testing shim for secure event input functions
598         https://bugs.webkit.org/show_bug.cgi?id=116122
599
600         Reviewed by Mark Rowe.
601
602         Moved DyldInterpose.h to WebCore, as we now use it there too.
603
604         * PluginProcess/mac/PluginProcessShim.mm:
605         * Shared/mac/CookieStorageShimLibrary.cpp:
606         * Shared/mac/DyldInterpose.h: Removed.
607         * WebKit2.xcodeproj/project.pbxproj:
608         * WebProcess/mac/SecItemShimLibrary.mm:
609
610 2013-05-14  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
611
612         [Win] REGRESSION(r149944): mmap is not available on Windows
613         https://bugs.webkit.org/show_bug.cgi?id=116015
614
615         Reviewed by Anders Carlsson.
616
617         Use fastAlloc/fastFree for platforms other than OS(DARWIN) where
618         using mmap is not necessary and maybe not available.
619
620         * Platform/CoreIPC/ArgumentEncoder.cpp:
621         (CoreIPC::allocBuffer):
622         (CoreIPC::freeBuffer):
623         (CoreIPC::ArgumentEncoder::~ArgumentEncoder):
624         (CoreIPC::ArgumentEncoder::grow):
625
626 2013-05-14  Zan Dobersek  <zdobersek@igalia.com>
627
628         [GTK] Move generated ColorData.cpp, WebKitFontFamilyNames.(cpp|h) build targets into libPlatform
629         https://bugs.webkit.org/show_bug.cgi?id=115921
630
631         Reviewed by Gustavo Noronha Silva.
632
633         * GNUmakefile.am: Add platform_cppflags to the list of libwebkit2gtk CPPFLAGS.
634
635 2013-05-14  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
636
637         [WK2][Win] Fix ASSERT(DeleteTimerQueueTimer...)
638         https://bugs.webkit.org/show_bug.cgi?id=116039
639
640         Reviewed by Benjamin Poulain.
641
642         According to the documentation, DeleteTimerQueueTimer can be expected to return
643         false with an ERROR_IO_PENDING error when called from the timer's callback.
644
645         * Platform/win/WorkQueueWin.cpp:
646         (WorkQueue::timerCallback):
647
648 2013-05-14  Alexey Proskuryakov  <ap@apple.com>
649
650         Remove unused "type" field from DictionaryPopupInfo
651         https://bugs.webkit.org/show_bug.cgi?id=116011
652
653         Reviewed by Darin Adler.
654
655         It is unused, and furthermore, PDFPlugin sets it incorrectly anyway.
656
657         * Shared/DictionaryPopupInfo.cpp:
658         (WebKit::DictionaryPopupInfo::encode):
659         (WebKit::DictionaryPopupInfo::decode):
660         * Shared/DictionaryPopupInfo.h:
661         * WebProcess/Plugins/PDF/PDFPlugin.mm:
662         (WebKit::PDFPlugin::showDefinitionForAttributedString):
663         * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
664         (WebKit::WebContextMenuClient::lookUpInDictionary):
665         * WebProcess/WebPage/WebPage.h:
666         * WebProcess/WebPage/mac/WebPageMac.mm:
667         (WebKit::WebPage::performDictionaryLookupAtLocation):
668         (WebKit::WebPage::performDictionaryLookupForSelection):
669         (WebKit::WebPage::performDictionaryLookupForRange):
670
671 2013-05-14  Michael Brüning  <michael.bruning@digia.com>
672
673         [WK2] Make WebPageProxy use deviceScaleFactor() in creationParameters().
674         https://bugs.webkit.org/show_bug.cgi?id=110218
675
676         Reviewed by Darin Adler.
677
678         Make the WebPageProxy::creationParameters use the accessor
679         deviceScaleFactor() instead of using m_intrinsicDeviceScaleFactor
680         directly. This will restore the custom device scale factor when
681         reattaching to the WebProcess after a crash.
682
683         Moreover, it will enable the Qt and ELF ports to use the
684         existing C API for overriding the device scale factor instead
685         of using the WebPageProxy directly or adding new C API to set
686         the intrinsic device scale factor.
687
688         * UIProcess/API/efl/EwkView.cpp:
689         (EwkView::setDeviceScaleFactor):
690         * UIProcess/API/qt/qquickwebpage.cpp:
691         (QQuickWebPage::updatePaintNode):
692         * UIProcess/WebPageProxy.cpp:
693         (WebKit::WebPageProxy::creationParameters):
694
695 2013-05-13  Alex Christensen  <achristensen@apple.com>
696
697         Added testRunner.setPrinting.
698         https://bugs.webkit.org/show_bug.cgi?id=42693
699         rdar://problem/8213845
700
701         Reviewed by Darin Adler.
702
703         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
704         (WKBundlePageCopyRenderTreeExternalRepresentationForPrinting): Added.
705         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
706         Added WKBundlePageCopyRenderTreeExternalRepresentationForPrinting declaration.
707         * WebProcess/WebPage/WebPage.cpp:
708         (WebKit::WebPage::renderTreeExternalRepresentationForPrinting): Added.
709         * WebProcess/WebPage/WebPage.h:
710         Added renderTreeExternalRepresentationForPrinting declaration.
711
712 2013-05-13  Timothy Hatcher  <timothy@apple.com>
713
714         Add support for updating the Web Inspector toolbar height.
715
716         https://bugs.webkit.org/show_bug.cgi?id=115996
717
718         Reviewed by Joseph Pecoraro and Benjamin Poulain.
719
720         * UIProcess/WebInspectorProxy.h:
721         (WebKit::WebInspectorProxy::setToolbarHeight):
722         (WebInspectorProxy):
723         * UIProcess/WebInspectorProxy.messages.in:
724         * UIProcess/efl/WebInspectorProxyEfl.cpp:
725         (WebKit::WebInspectorProxy::platformSetToolbarHeight):
726         * UIProcess/gtk/WebInspectorProxyGtk.cpp:
727         (WebKit::WebInspectorProxy::platformSetToolbarHeight):
728         (WebKit):
729         * UIProcess/mac/WebInspectorProxyMac.mm:
730         (WebKit::WebInspectorProxy::platformSetToolbarHeight):
731         * UIProcess/qt/WebInspectorProxyQt.cpp:
732         (WebKit::WebInspectorProxy::platformSetToolbarHeight):
733         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
734         (WebKit::WebInspectorFrontendClient::setToolbarHeight):
735         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
736         (WebInspectorFrontendClient):
737         * WebProcess/WebPage/WebInspector.cpp:
738         (WebKit::WebInspector::setToolbarHeight):
739         * WebProcess/WebPage/WebInspector.h:
740
741 2013-05-13  Ryosuke Niwa  <rniwa@webkit.org>
742
743         Sometimes NSUndoManager can get into an inconsistent state
744         https://bugs.webkit.org/show_bug.cgi?id=116050
745
746         Reviewed by Enrica Casucci.
747
748         Always group undo items to work around a bug in NSUndoManager that manifests
749         when we call removeAllActionsWithTarget.
750
751         * UIProcess/API/mac/PageClientImpl.mm:
752         (WebKit::PageClientImpl::registerEditCommand):
753
754 2013-05-13  Anders Carlsson  <andersca@apple.com>
755
756         [WK2] Crash in WebKit::StorageAreaMap::didSetItem()
757         https://bugs.webkit.org/show_bug.cgi?id=116026
758
759         Reviewed by Andreas Kling.
760
761         Make sure that we ignore any leftover messages from the UI process after we've reset
762         the storage map. Achieve this by keeping a seed count in the StorageAreaMap object that's incremented
763         everytime the map is reset. Associate every storage area change with the seed and ignore any incoming 
764         notification messages from the UI process if the seeds are different.
765
766         * Platform/CoreIPC/HandleMessage.h:
767         (CoreIPC):
768         (CoreIPC::callMemberFunction):
769         * UIProcess/Storage/StorageManager.cpp:
770         (WebKit::StorageManager::getValues):
771         (WebKit::StorageManager::setItem):
772         (WebKit::StorageManager::removeItem):
773         (WebKit::StorageManager::clear):
774         * UIProcess/Storage/StorageManager.h:
775         (StorageManager):
776         * UIProcess/Storage/StorageManager.messages.in:
777         * WebProcess/Storage/StorageAreaMap.cpp:
778         (WebKit::StorageAreaMap::StorageAreaMap):
779         (WebKit::StorageAreaMap::setItem):
780         (WebKit::StorageAreaMap::removeItem):
781         (WebKit::StorageAreaMap::clear):
782         (WebKit::StorageAreaMap::resetValues):
783         (WebKit::StorageAreaMap::loadValuesIfNeeded):
784         (WebKit::StorageAreaMap::didGetValues):
785         (WebKit::StorageAreaMap::didSetItem):
786         (WebKit::StorageAreaMap::didRemoveItem):
787         (WebKit::StorageAreaMap::didClear):
788         (WebKit::StorageAreaMap::applyChange):
789         * WebProcess/Storage/StorageAreaMap.h:
790         (StorageAreaMap):
791         * WebProcess/Storage/StorageAreaMap.messages.in:
792
793 2013-05-13  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
794
795         [WK2][CoordinatedGraphics] Avoid dispensable calls to WebView::updateViewportSize()
796         https://bugs.webkit.org/show_bug.cgi?id=116045
797
798         Reviewed by Darin Adler.
799
800         * UIProcess/CoordinatedGraphics/WebView.cpp:
801         (WebKit::WebView::setSize):
802
803 2013-05-13  Jon Lee  <jonlee@apple.com>
804
805         [WK2] Notification manager removal should not be tied to termination of web processes
806         https://bugs.webkit.org/show_bug.cgi?id=116038
807         <rdar://problem/10968680>
808
809         Reviewed by Ryosuke Niwa.
810
811         WebNotificationManagerProxy incorrectly removes the manager when web processes close.
812         Since it is a supplemental on the web context, the manager should only be removed
813         when the context is destroyed.
814
815         * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
816         * UIProcess/Notifications/WebNotificationManagerProxy.h: Remove implementation of
817         processDidClose().
818
819 2013-05-13  Martin Robinson  <mrobinson@igalia.com>
820
821         [GTK] [WebKit2] Use a template file for generated GObject enum files
822         https://bugs.webkit.org/show_bug.cgi?id=115867
823
824         Reviewed by Carlos Garcia Campos.
825
826         * GNUmakefile.am: Use a template file instead of specifying portions of the file on the command-line.
827         * UIProcess/API/gtk/WebKitEnumTypes.cpp.template: Added.
828         * UIProcess/API/gtk/WebKitEnumTypes.h.template: Added.
829         * UIProcess/API/gtk/WebKitFindController.cpp: We can no longer rely on WebKitEnumTypes.h to pull in WebKitWebView.h.
830
831 2013-05-13  Noam Rosenthal  <noam@webkit.org>
832
833         [CoordGfx] requestAnimationFrame performance issues
834         https://bugs.webkit.org/show_bug.cgi?id=112345
835
836         Reviewed by Jocelyn Turcotte.
837
838         Changed the logic of requestAnimationFrame in Coordinated Graphics.
839         We don't send any IPC messages for requestAnimationFrame. Instead, we do one of two things:
840         - If there is already a frame pending in the UI process, do nothing, as the animations would
841           be serviced when the frame is returned to the web process.
842         - If there is no frame pending, we schedule a flush, making sure that that flush occurs at 
843           least 1/60 seconds after the last animation service, so that we don't get an infinite loop
844           of flushes.
845
846         * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:
847         (WebKit::CoordinatedLayerTreeHostProxy::requestAnimationFrame):
848         * UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
849         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
850         (WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
851         (WebKit::CoordinatedLayerTreeHost::flushPendingLayerChanges):
852         (WebKit::CoordinatedLayerTreeHost::scheduleAnimation):
853         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
854         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.messages.in:
855
856 2013-05-13  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
857
858         [WK2][CoordinatedGraphics] WKView needs API for handling opacity
859         https://bugs.webkit.org/show_bug.cgi?id=116032
860
861         Reviewed by Kenneth Rohde Christiansen.
862
863         Add WKViewSetOpacity and WKViewOpacity APIs and use them in
864         WebView.cpp.
865
866         * UIProcess/API/C/CoordinatedGraphics/WKView.cpp:
867         (WKViewSetOpacity):
868         (WKViewOpacity):
869         * UIProcess/API/C/CoordinatedGraphics/WKView.h:
870         * UIProcess/CoordinatedGraphics/WebView.cpp:
871         (WebKit::WebView::WebView):
872         (WebKit::WebView::paintToCurrentGLContext):
873         * UIProcess/CoordinatedGraphics/WebView.h:
874         (WebKit::WebView::setOpacity):
875         (WebKit::WebView::opacity):
876         (WebView):
877
878 2013-05-13  Zan Dobersek  <zdobersek@igalia.com>
879
880         [GTK] Use WebCore layer archives for TestWebCore, WebKitPluginProcess
881         https://bugs.webkit.org/show_bug.cgi?id=115918
882
883         Reviewed by Gustavo Noronha Silva.
884
885         Due to layer violations and circular dependencies the WebKitPluginProcess requires for the
886         libraries containing the built code of the intertwining Platform and WebCore layers to be
887         specified multiple times when linking. This can be avoided by packing the two layers' archives
888         into one big archive, named after the WebCore layer due to no clear boundary between it and the
889         Platform layer. The big archive can then be specified only once when linking, simplifying the code
890         and suppressing all the layering violations so they do not cause build problems.
891
892         First the libtool libraries that the WebCore layer (as required by the WebKitPluginProcess) depends on
893         are specified. These are then used as dependencies for the archive creation rule as well as the list
894         from which the archive file paths are constructed and then used to dump the member files from these archives.
895         The member files are then added to the big archive. The latter is added to the list of libraries the
896         WebKitPluginProcess requires to successfully link.
897
898         * GNUmakefile.am:
899
900 2013-05-13  Zalan Bujtas  <zalan@apple.com>
901
902         WebProcess consuming very high CPU on linkedin.com
903         https://bugs.webkit.org/show_bug.cgi?id=115601
904
905         Reviewed by Andreas Kling.
906
907         Disable WEB_TIMING_MINIMAL.
908         Turn off window.performance and performance.now(). Some JS frameworks expect
909         additional Web Timing APIs, when performance.now() is available.
910
911         * Configurations/FeatureDefines.xcconfig:
912
913 2013-05-12  Anders Carlsson  <andersca@apple.com>
914
915         Stop including UnusedParam.h
916         https://bugs.webkit.org/show_bug.cgi?id=116003
917
918         Reviewed by Sam Weinig.
919
920         UnusedParam.h is empty now so there's no need to include it anymore.
921
922         * UIProcess/API/C/WKContext.cpp:
923         * UIProcess/API/C/WKInspector.cpp:
924         * UIProcess/API/C/WKPage.cpp:
925         * UIProcess/API/efl/ewk_text_checker.cpp:
926         * UIProcess/API/efl/ewk_view.cpp:
927         * UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:
928         * UIProcess/API/efl/tests/test_ewk2_view.cpp:
929         * UIProcess/mac/WKFullScreenWindowController.mm:
930         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
931         * WebProcess/ResourceCache/WebResourceCacheManager.cpp:
932
933 2013-05-12  Andreas Kling  <akling@apple.com>
934
935         Unload event listeners should prevent Safari from insta-killing the web process on last tab close.
936         <http://webkit.org/b/115988>
937         <rdar://problem/13870943>
938
939         Reviewed by Anders Carlsson.
940
941         Let WebCore control the UI process's suppression of the sudden termination mechanism.
942         This is implemented by having WebChromeClient push Enable/DisableSuddenTermination messages
943         over to the UI process where the appropriate NSProcessInfo calls are made.
944
945         We also use this information when deciding whether to insta-kill a web process when its last
946         page is closed. This mechanism is re-usable in WebCore to protect against sudden termination
947         by the UI process.
948
949         * UIProcess/WebProcessProxy.cpp:
950         (WebKit::WebProcessProxy::WebProcessProxy):
951         (WebKit::WebProcessProxy::removeWebPage):
952         (WebKit::WebProcessProxy::enableSuddenTermination):
953         (WebKit::WebProcessProxy::disableSuddenTermination):
954         * UIProcess/WebProcessProxy.h:
955         (WebProcessProxy):
956         * UIProcess/WebProcessProxy.messages.in:
957         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
958         (WebKit::WebChromeClient::enableSuddenTermination):
959         (WebKit::WebChromeClient::disableSuddenTermination):
960         * WebProcess/WebCoreSupport/WebChromeClient.h:
961         (WebChromeClient):
962
963 2013-05-12  Alexey Proskuryakov  <ap@apple.com>
964
965         <rdar://problem/13402976> Sandbox violations in com.nvidia.OpenGL on Lion.
966
967         Reviewed by Dan Bernstein.
968
969         * WebProcess/com.apple.WebProcess.sb.in: Silence the violations (on Lion only).
970
971 2013-05-12  Carlos Garcia Campos  <cgarcia@igalia.com>
972
973         [GTK] Remove unnecessary GTK_CHECK_VERSION #ifdefs
974         https://bugs.webkit.org/show_bug.cgi?id=115914
975
976         Reviewed by Martin Robinson.
977
978         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
979         (webkitWebViewBaseRealize):
980
981 2013-05-12  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
982
983         Unreviewed build fix after r149944.
984
985         * Platform/CoreIPC/ArgumentEncoder.cpp: Include <sys/mman.h> for mmap(2).
986
987 2013-05-11  Anders Carlsson  <andersca@apple.com>
988
989         Don't pass malloced pointers as out-of-line data when sending Mach messages
990         https://bugs.webkit.org/show_bug.cgi?id=115970
991         <rdar://problem/13144680>
992
993         Reviewed by Sam Weinig.
994
995         Give ArgumentEncoder an inline buffer of 512 bytes. If we need more than that, use mmap to allocate data
996         since that gives us fresh zero-filled memory that we can safely share.
997
998         * Platform/CoreIPC/ArgumentEncoder.cpp:
999         (CoreIPC::ArgumentEncoder::ArgumentEncoder):
1000         Set up the buffer pointers to point to the inline buffer.
1001
1002         (CoreIPC::ArgumentEncoder::~ArgumentEncoder):
1003         Unmap the buffer if necessary.
1004
1005         (CoreIPC::ArgumentEncoder::grow):
1006         Grow the allocation exponentially, rounded up to the nearest page. This is a simplification from the
1007         current strategy, but most messages are either tiny in which case they will fit inside the inline buffer,
1008         or big in which case we'll end up doing less allocations + memory copying.
1009
1010         * Platform/CoreIPC/ArgumentEncoder.h:
1011         (ArgumentEncoder):
1012
1013 2013-05-11  Zan Dobersek  <zdobersek@igalia.com>
1014
1015         Unreviewed GTK build fix after r149904.
1016
1017         * GNUmakefile.list.am: Adding missing build targets.
1018
1019 2013-05-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>
1020
1021         Unreviewed, Fix WK2 EFL build after r149904.
1022
1023         Add new PluginInformation.cpp file to CMake.
1024
1025         * CMakeLists.txt:
1026
1027 2013-05-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>
1028
1029         Unreviewed, fix WK2 EFL build after r149904.
1030
1031         Add new WKPluginInformation.cpp file to CMake.
1032
1033         * CMakeLists.txt:
1034
1035 2013-05-11  Andreas Kling  <akling@apple.com>
1036
1037         When possible, terminate web processes immediately when closing their last page.
1038         <http://webkit.org/b/115964>
1039         <rdar://problem/13869266>
1040
1041         Reviewed by Geoffrey Garen.
1042
1043         When we're using a network process, there's no need for the UI process to wait for web processes
1044         to clear resource caches and terminate nicely.
1045
1046         We can just kill them off right away in WebProcessProxy::removeWebPage() when the last page is closed.
1047
1048         * UIProcess/WebProcessProxy.cpp:
1049         (WebKit::WebProcessProxy::removeWebPage):
1050
1051             Terminate the child process immediately if possible.
1052
1053         * UIProcess/WebProcessProxy.h:
1054         (WebKit::WebProcessProxy::canTerminateChildProcess):
1055         (WebKit::WebProcessProxy::shouldTerminate):
1056
1057             Broke out the logic from the shouldTerminate() IPC message handler into a separate function
1058             so we can call it from removeWebPage().
1059
1060 2013-05-11  Anders Carlsson  <andersca@apple.com>
1061
1062         Crash when terminating a process that has not been fully launched
1063         https://bugs.webkit.org/show_bug.cgi?id=115962
1064         <rdar://problem/13660916>
1065
1066         Reviewed by Andreas Kling.
1067
1068         Handle terminating a process that has not been fully launched.
1069
1070         * UIProcess/Launcher/ProcessLauncher.cpp:
1071         (WebKit::ProcessLauncher::didFinishLaunchingProcess):
1072         If we have been invalidated, dispose the connection identifier.
1073
1074         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
1075         (WebKit::ProcessLauncher::terminateProcess):
1076         If we're still launching the process, invalidate so the client won't get an unexpected
1077         didFinishLaunching callback.
1078
1079         * UIProcess/WebProcessProxy.cpp:
1080         (WebKit::WebProcessProxy::requestTermination):
1081         Check if webConnection() is null before calling it. (It will be null if the process isn't fully launched).
1082
1083 2013-05-10  Brian J. Burg  <burg@cs.washington.edu>
1084
1085         Web Inspector: Implement WK2 version of WebInspectorFrontendClient::save
1086         https://bugs.webkit.org/show_bug.cgi?id=115564
1087
1088         Reviewed by Benjamin Poulain.
1089
1090         Implement InspectorFrontendHost's save() and append() methods for
1091         Mac WebKit2. Add canSave() for all ports.
1092
1093         * UIProcess/WebInspectorProxy.cpp:
1094         (WebKit::WebInspectorProxy::save):
1095         (WebKit):
1096         (WebKit::WebInspectorProxy::append):
1097         * UIProcess/WebInspectorProxy.h:
1098         (WebInspectorProxy):
1099         * UIProcess/WebInspectorProxy.messages.in:
1100         * UIProcess/efl/WebInspectorProxyEfl.cpp:
1101         (WebKit::WebInspectorProxy::platformSave):
1102         (WebKit):
1103         (WebKit::WebInspectorProxy::platformAppend):
1104         * UIProcess/gtk/WebInspectorProxyGtk.cpp:
1105         (WebKit::WebInspectorProxy::platformSave):
1106         (WebKit):
1107         (WebKit::WebInspectorProxy::platformAppend):
1108         * UIProcess/mac/WebInspectorProxyMac.mm:
1109         (WebKit::WebInspectorProxy::platformSave):
1110         (WebKit):
1111         (WebKit::WebInspectorProxy::platformAppend):
1112         * UIProcess/qt/WebInspectorProxyQt.cpp:
1113         (WebKit::WebInspectorProxy::platformSave):
1114         (WebKit):
1115         (WebKit::WebInspectorProxy::platformAppend):
1116         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
1117         (WebKit::WebInspectorFrontendClient::canSave):
1118         (WebKit):
1119         (WebKit::WebInspectorFrontendClient::save):
1120         (WebKit::WebInspectorFrontendClient::append):
1121         * WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
1122         (WebInspectorFrontendClient):
1123         * WebProcess/WebPage/WebInspector.cpp:
1124         (WebKit::WebInspector::save):
1125         (WebKit):
1126         (WebKit::WebInspector::append):
1127         (WebKit::WebInspector::didSave):
1128         (WebKit::WebInspector::didAppend):
1129         * WebProcess/WebPage/WebInspector.h:
1130         (WebInspector):
1131         * WebProcess/WebPage/WebInspector.messages.in:
1132         * WebProcess/WebPage/efl/WebInspectorEfl.cpp:
1133         (WebKit::WebInspector::canSave):
1134         (WebKit):
1135         * WebProcess/WebPage/gtk/WebInspectorGtk.cpp:
1136         (WebKit::WebInspector::canSave):
1137         (WebKit):
1138         * WebProcess/WebPage/mac/WebInspectorMac.mm:
1139         (WebKit::WebInspector::canSave):
1140         (WebKit):
1141         * WebProcess/WebPage/qt/WebInspectorQt.cpp:
1142         (WebKit::WebInspector::canSave):
1143         (WebKit):
1144
1145 2013-05-10  Remy Demarest  <rdemarest@apple.com>
1146
1147         Copy WKPluginInformation.h header to the WebKit2 Framework private headers.
1148         https://bugs.webkit.org/show_bug.cgi?id=115940
1149
1150         Reviewed by Darin Adler.
1151
1152         * WebKit2.xcodeproj/project.pbxproj:
1153         Move WKPluginInformation.h file from the framework's Project Headers to
1154         Private Headers.
1155
1156 2013-05-10  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
1157
1158         [Qt][Mac] Unreviewed. Roll out the fix attempt in r149912.
1159
1160         * Target.pri:
1161
1162 2013-05-10  Simon Cooper  <scooper@apple.com>
1163
1164         Fix AppleConnect issues for WiFi interfaces
1165         <rdar://problem/13776227&13776240&13776281>
1166         https://bugs.webkit.org/show_bug.cgi?id=115932
1167
1168         Reviewed by Alexey Proskuryakov.
1169
1170         Add support for WiFi interfaces for the AppleConnect plugin.
1171         Remove the FIXME.
1172
1173         * Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb:
1174
1175 2013-05-10  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
1176
1177         [Qt][Mac] Unreviewed speculative build fix after r149904.
1178
1179         * Target.pri:
1180
1181 2013-05-10  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
1182
1183         [Qt] Unreviewed buildfix after r149904.
1184
1185         * Target.pri:
1186
1187 2013-05-09  Sam Weinig  <sam@webkit.org>
1188
1189         Unify plug-in information dictionaries
1190         <rdar://problem/13852080>
1191         https://bugs.webkit.org/show_bug.cgi?id=115891
1192
1193         Reviewed by Anders Carlsson.
1194
1195         This unifies the plug-in information dictionaries vended by WKContextCopyPlugInInfoForBundleIdentifier
1196         and WKContextGetInfoForInstalledPlugIns with those from the WKPageLoaderClient and WKPageUIClient.
1197
1198         All the old keys will continue to work, but have been deprecated in favor of new keys defined in 
1199         WKPluginInformation.h
1200
1201         * Shared/API/c/WKPluginInformation.cpp: Added.
1202         * Shared/API/c/WKPluginInformation.h: Added.
1203         Export new keys as SPI.
1204
1205         * Shared/Plugins/Netscape/PluginInformation.h: Added.
1206         * Shared/Plugins/Netscape/PluginInformation.cpp: Added.
1207         (WebKit::pluginInformationBundleIdentifierKey):
1208         (WebKit::pluginInformationBundleVersionKey):
1209         (WebKit::pluginInformationPathKey):
1210         (WebKit::pluginInformationDisplayNameKey):
1211         (WebKit::pluginInformationDefaultLoadPolicyKey):
1212         (WebKit::pluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey):
1213         (WebKit::pluginInformationHasSandboxProfileKey):
1214         (WebKit::pluginInformationFrameURLKey):
1215         (WebKit::pluginInformationMIMETypeKey):
1216         (WebKit::pluginInformationPageURLKey):
1217         (WebKit::pluginInformationPluginspageAttributeURLKey):
1218         (WebKit::pluginInformationPluginURLKey):
1219         Add new keys.
1220
1221         (WebKit::pluginModuleInformation):
1222         (WebKit::createPluginInformationDictionary):
1223         Add creation functions to simplify multiple sites.
1224
1225         * Shared/Plugins/Netscape/mac/PluginInformationMac.mm: Added.
1226         (WebKit::platformPluginModuleInformation):
1227         Add platform specific data to the dictionary.
1228
1229         * UIProcess/API/C/WKPage.cpp:
1230         (WKPageGetPluginInformationBundleIdentifierKey):
1231         (WKPageGetPluginInformationBundleVersionKey):
1232         (WKPageGetPluginInformationDisplayNameKey):
1233         (WKPageGetPluginInformationFrameURLKey):
1234         (WKPageGetPluginInformationMIMETypeKey):
1235         (WKPageGetPluginInformationPageURLKey):
1236         (WKPageGetPluginInformationPluginspageAttributeURLKey):
1237         (WKPageGetPluginInformationPluginURLKey):
1238         * UIProcess/API/C/WKPage.h:
1239         Deprecate the old keys.
1240
1241         * UIProcess/API/C/mac/WKContextPrivateMac.h:
1242         * UIProcess/API/C/mac/WKContextPrivateMac.mm:
1243         (WKContextCopyPlugInInfoForBundleIdentifier):
1244         (WKContextGetInfoForInstalledPlugIns):
1245         Simplify by using the new createPluginInformationDictionary functions.
1246
1247         (WKPlugInInfoPathKey):
1248         (WKPlugInInfoBundleIdentifierKey):
1249         (WKPlugInInfoVersionKey):
1250         (WKPlugInInfoLoadPolicyKey):
1251         (WKPlugInInfoUpdatePastLastBlockedVersionIsKnownAvailableKey):
1252         (WKPlugInInfoIsSandboxedKey):
1253         Deprecate the old keys.
1254
1255         * UIProcess/WebLoaderClient.cpp:
1256         (WebKit::WebLoaderClient::didFailToInitializePlugin):
1257         (WebKit::WebLoaderClient::didBlockInsecurePluginVersion):
1258         (WebKit::WebLoaderClient::pluginLoadPolicy):
1259         * UIProcess/WebLoaderClient.h:
1260         * UIProcess/WebUIClient.cpp:
1261         (WebKit::WebUIClient::unavailablePluginButtonClicked):
1262         * UIProcess/WebUIClient.h:
1263         Optimize for the most recent callback type which takes a dictionary,
1264         and pull out the necessary bits from it for deprecated callbacks as necessary.
1265
1266         * UIProcess/WebPageProxy.h:
1267         * UIProcess/WebPageProxy.cpp:
1268         (WebKit::WebPageProxy::findPlugin):
1269         (WebKit::WebPageProxy::unavailablePluginButtonClicked):
1270         (WebKit::WebPageProxy::didFailToInitializePlugin):
1271         (WebKit::WebPageProxy::didBlockInsecurePluginVersion):
1272         Use createPluginInformationDictionary() consistently, to get consistent results for callbacks.
1273
1274         * WebKit2.xcodeproj/project.pbxproj:
1275         Add new files.
1276
1277 2013-05-10  Brian J. Burg  <burg@cs.washington.edu>
1278
1279         Web Inspector: implement runOpenPanel callback for WebKit2 inspector
1280         https://bugs.webkit.org/show_bug.cgi?id=115865
1281
1282         Reviewed by Sam Weinig.
1283
1284         * UIProcess/WebInspectorProxy.h:
1285         (WebKit::WebInspectorProxy::inspectorWindow):
1286         Add an accessor for m_inspectorWindow.
1287
1288         * UIProcess/mac/WebInspectorProxyMac.mm:
1289         (WebKit::runOpenPanel):
1290         Show the open panel dialog when requested.
1291
1292         (WebKit::WebInspectorProxy::platformCreateInspectorPage):
1293         Register the callback when the inspector page is created.
1294
1295 2013-05-10  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
1296
1297         [WK2][CoordinatedGraphics] WKViewSetThemePath is EFL specific
1298         https://bugs.webkit.org/show_bug.cgi?id=115928
1299
1300         Reviewed by Kenneth Rohde Christiansen.
1301
1302         WKViewSetThemePath was moved to WKViewEfl.h since it is EFL specific.
1303
1304         * UIProcess/API/C/CoordinatedGraphics/WKView.cpp:
1305         * UIProcess/API/C/CoordinatedGraphics/WKView.h:
1306         * UIProcess/API/C/efl/WKViewEfl.cpp:
1307         (WKViewSetThemePath):
1308         * UIProcess/API/C/efl/WKViewEfl.h:
1309         * UIProcess/CoordinatedGraphics/WebView.cpp:
1310         * UIProcess/CoordinatedGraphics/WebView.h:
1311         (WebView):
1312         * UIProcess/efl/ViewClientEfl.cpp:
1313         * UIProcess/efl/WebInspectorProxyEfl.cpp:
1314         * UIProcess/efl/WebViewEfl.cpp:
1315         (WebKit::WebViewEfl::setThemePath):
1316         * UIProcess/efl/WebViewEfl.h:
1317         (WebViewEfl):
1318
1319 2013-05-10  Jer Noble  <jer.noble@apple.com>
1320
1321         REGRESSION (r149439): Video turns blank upon entering full screen for the first time
1322         https://bugs.webkit.org/show_bug.cgi?id=115617
1323
1324         Reviewed by Eric Carlson.
1325
1326         Partially revert the change introduced in r149439 for OS X 10.8 and previous. On these
1327         platforms, create a window with a NSZeroSize initial frame, which fixes the "blank"
1328         first-full screen behavior.
1329
1330         * UIProcess/API/mac/WKView.mm:
1331         (-[WKView createFullScreenWindow]):
1332
1333 2013-05-10  Zan Dobersek  <zdobersek@igalia.com>
1334
1335         [WK2] Make the WebSoupRequestManager a supplement to the WebProcess
1336         https://bugs.webkit.org/show_bug.cgi?id=115717
1337
1338         Reviewed by Andreas Kling.
1339
1340         WebSoupRequestManager should inherit from WebProcessSupplement and should be used as such
1341         by the WebProcess. This removes the need for the m_soupRequestManager member variable in
1342         the WebProcess class and brings the WebSoupRequestManager in line with other manager classes
1343         of which instances are controlled by the WebProcess class.
1344
1345         * WebProcess/WebProcess.cpp:
1346         (WebKit::WebProcess::WebProcess): Add  the WebSoupRequestManager as a supplement.
1347         * WebProcess/WebProcess.h:
1348         (WebProcess): Remove the m_soupRequestManager member variable and its getter method.
1349         * WebProcess/soup/WebKitSoupRequestGeneric.cpp:
1350         (webkitSoupRequestGenericSendAsync): Access the WebSoupRequestManager as a supplement.
1351         (webkitSoupRequestGenericSendFinish): Ditto.
1352         * WebProcess/soup/WebProcessSoup.cpp:
1353         (WebKit::WebProcess::platformInitializeWebProcess): Access the WebSoupRequestManager as a supplement.
1354         * WebProcess/soup/WebSoupRequestManager.cpp:
1355         (WebKit::WebSoupRequestManager::supplementName): Specify the supplement's name.
1356         * WebProcess/soup/WebSoupRequestManager.h:
1357         (WebSoupRequestManager): Inherit from the WebProcessSupplement interface.
1358
1359 2013-05-10  Carlos Garcia Campos  <cgarcia@igalia.com>
1360
1361         [GTK] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
1362         https://bugs.webkit.org/show_bug.cgi?id=115904
1363
1364         Reviewed by Martin Robinson.
1365
1366         * UIProcess/API/gtk/tests/TestInspectorServer.cpp:
1367         (startTestServerMonitor):
1368         * UIProcess/API/gtk/tests/TestWebKitAccessibility.cpp:
1369         (startTestServerMonitor):
1370
1371 2013-05-09  Anders Carlsson  <andersca@apple.com>
1372
1373         Fix build.
1374
1375         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
1376
1377 2013-05-09  Anders Carlsson  <andersca@apple.com>
1378
1379         Enable UI process storage
1380         https://bugs.webkit.org/show_bug.cgi?id=115879
1381         <rdar://problem/12239765>
1382
1383         Reviewed by Beth Dakin.
1384
1385         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
1386         Flip the switch.
1387
1388 2013-05-09  Anders Carlsson  <andersca@apple.com>
1389
1390         Remove extra spaces between right angle brackets in template declarations
1391         https://bugs.webkit.org/show_bug.cgi?id=115877
1392
1393         Reviewed by Beth Dakin.
1394
1395         C++11 doesn't require spaces between right angle brackets so remove all of them.
1396
1397         * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
1398         (WebKit::NetworkBlobRegistry::registerBlobURL):
1399         (WebKit::NetworkBlobRegistry::sandboxExtensions):
1400         * NetworkProcess/FileAPI/NetworkBlobRegistry.h:
1401         (NetworkBlobRegistry):
1402         * NetworkProcess/HostRecord.h:
1403         (HostRecord):
1404         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
1405         (WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
1406         (WebKit::NetworkConnectionToWebProcess::didClose):
1407         (WebKit::NetworkConnectionToWebProcess::registerBlobURL):
1408         * NetworkProcess/NetworkConnectionToWebProcess.h:
1409         (NetworkConnectionToWebProcess):
1410         * NetworkProcess/NetworkProcess.h:
1411         (NetworkProcess):
1412         * NetworkProcess/NetworkResourceLoadScheduler.cpp:
1413         (WebKit::NetworkResourceLoadScheduler::servePendingRequests):
1414         (WebKit::NetworkResourceLoadScheduler::removeScheduledLoaders):
1415         * NetworkProcess/NetworkResourceLoadScheduler.h:
1416         * NetworkProcess/SchedulableLoader.cpp:
1417         (WebKit::SchedulableLoader::SchedulableLoader):
1418         * NetworkProcess/SchedulableLoader.h:
1419         (SchedulableLoader):
1420         * Platform/CoreIPC/ArgumentCoders.h:
1421         * Platform/CoreIPC/Connection.cpp:
1422         (Connection::SyncMessageState):
1423         (CoreIPC::Connection::waitForMessage):
1424         (CoreIPC::Connection::processIncomingMessage):
1425         * Platform/CoreIPC/Connection.h:
1426         (Connection):
1427         * Platform/WorkQueue.h:
1428         (WorkQueue):
1429         * PluginProcess/PluginProcess.h:
1430         (PluginProcess):
1431         * Scripts/webkit2/messages_unittest.py:
1432         (CoreIPC):
1433         * Shared/BlockingResponseMap.h:
1434         (BlockingResponseMap):
1435         * Shared/ChildProcessProxy.h:
1436         (ChildProcessProxy):
1437         * Shared/ImmutableArray.cpp:
1438         (WebKit::ImmutableArray::ImmutableArray):
1439         * Shared/ImmutableArray.h:
1440         (WebKit::ImmutableArray::adopt):
1441         (ImmutableArray):
1442         * Shared/ImmutableDictionary.cpp:
1443         (WebKit::ImmutableDictionary::keys):
1444         * Shared/ImmutableDictionary.h:
1445         (ImmutableDictionary):
1446         * Shared/Network/CustomProtocols/CustomProtocolManager.h:
1447         (CustomProtocolManager):
1448         * Shared/SecurityOriginData.cpp:
1449         (WebKit::performAPICallbackWithSecurityOriginDataVector):
1450         * Shared/SessionState.cpp:
1451         * Shared/StatisticsData.h:
1452         (StatisticsData):
1453         * Shared/UserMessageCoders.h:
1454         (WebKit::UserMessageDecoder::baseDecode):
1455         * Shared/WebArchive.cpp:
1456         (WebKit::WebArchive::WebArchive):
1457         (WebKit::WebArchive::subresources):
1458         (WebKit::WebArchive::subframeArchives):
1459         * Shared/WebContextMenuItem.cpp:
1460         (WebKit::WebContextMenuItem::submenuItemsAsImmutableArray):
1461         * Shared/WebOpenPanelParameters.cpp:
1462         (WebKit::WebOpenPanelParameters::acceptMIMETypes):
1463         (WebKit::WebOpenPanelParameters::selectedFileNames):
1464         * Shared/mac/ArgumentCodersMac.mm:
1465         (CoreIPC::encode):
1466         * SharedWorkerProcess/SharedWorkerProcess.h:
1467         (SharedWorkerProcess):
1468         * UIProcess/API/mac/WKPrintingView.h:
1469         (WebFrameProxy):
1470         * UIProcess/API/mac/WKPrintingView.mm:
1471         (-[WKPrintingView _drawPreview:]):
1472         * UIProcess/API/mac/WKView.mm:
1473         (WebKit):
1474         * UIProcess/Downloads/DownloadProxyMap.cpp:
1475         (WebKit::DownloadProxyMap::processDidClose):
1476         * UIProcess/Downloads/DownloadProxyMap.h:
1477         (DownloadProxyMap):
1478         * UIProcess/GeolocationPermissionRequestManagerProxy.h:
1479         (GeolocationPermissionRequestManagerProxy):
1480         * UIProcess/Launcher/mac/DynamicLinkerEnvironmentExtractor.h:
1481         (DynamicLinkerEnvironmentExtractor):
1482         * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
1483         (CustomProtocolManagerProxy):
1484         * UIProcess/Network/NetworkProcessProxy.h:
1485         (NetworkProcessProxy):
1486         * UIProcess/Notifications/NotificationPermissionRequestManagerProxy.h:
1487         (NotificationPermissionRequestManagerProxy):
1488         * UIProcess/Notifications/WebNotificationManagerProxy.h:
1489         (WebNotificationManagerProxy):
1490         * UIProcess/Plugins/PluginProcessManager.h:
1491         (PluginProcessManager):
1492         * UIProcess/Plugins/PluginProcessProxy.h:
1493         (PluginProcessProxy):
1494         * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
1495         (WebKit::WebPluginSiteDataManager::didGetSitesWithData):
1496         * UIProcess/Plugins/WebPluginSiteDataManager.h:
1497         (WebPluginSiteDataManager):
1498         * UIProcess/SharedWorkers/SharedWorkerProcessManager.h:
1499         (SharedWorkerProcessManager):
1500         * UIProcess/SharedWorkers/SharedWorkerProcessProxy.h:
1501         (SharedWorkerProcessProxy):
1502         * UIProcess/StatisticsRequest.cpp:
1503         (WebKit::StatisticsRequest::completedRequest):
1504         * UIProcess/Storage/StorageManager.cpp:
1505         (StorageManager::StorageArea):
1506         (WebKit::StorageManager::StorageArea::dispatchEvents):
1507         (StorageManager::SessionStorageNamespace):
1508         (WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea):
1509         (WebKit::StorageManager::SessionStorageNamespace::cloneTo):
1510         (WebKit::StorageManager::createLocalStorageMap):
1511         (WebKit::StorageManager::createSessionStorageMap):
1512         (WebKit::StorageManager::destroyStorageMap):
1513         (WebKit::StorageManager::invalidateConnectionInternal):
1514         (WebKit::StorageManager::findStorageArea):
1515         (WebKit::StorageManager::getOrCreateLocalStorageNamespace):
1516         * UIProcess/Storage/StorageManager.h:
1517         (StorageManager):
1518         * UIProcess/WebApplicationCacheManagerProxy.h:
1519         (WebApplicationCacheManagerProxy):
1520         * UIProcess/WebBackForwardList.cpp:
1521         (WebKit::WebBackForwardList::addItem):
1522         (WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit):
1523         (WebKit::WebBackForwardList::forwardListAsImmutableArrayWithLimit):
1524         (WebKit::WebBackForwardList::clear):
1525         * UIProcess/WebBackForwardList.h:
1526         (WebKit):
1527         * UIProcess/WebContext.cpp:
1528         (WebKit::WebContext::createNewWebProcess):
1529         (WebKit::WebContext::enableProcessTermination):
1530         (WebKit::WebContext::pluginInfoStoreDidLoadPlugins):
1531         * UIProcess/WebContext.h:
1532         (WebContext):
1533         * UIProcess/WebCookieManagerProxy.cpp:
1534         (WebKit::WebCookieManagerProxy::didGetHostnamesWithCookies):
1535         * UIProcess/WebCookieManagerProxy.h:
1536         (WebCookieManagerProxy):
1537         * UIProcess/WebDatabaseManagerProxy.cpp:
1538         (WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin):
1539         (WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins):
1540         * UIProcess/WebDatabaseManagerProxy.h:
1541         (WebDatabaseManagerProxy):
1542         * UIProcess/WebFormClient.cpp:
1543         (WebKit::WebFormClient::willSubmitForm):
1544         * UIProcess/WebFormClient.h:
1545         (WebFormClient):
1546         * UIProcess/WebKeyValueStorageManagerProxy.h:
1547         (WebKeyValueStorageManagerProxy):
1548         * UIProcess/WebLoaderClient.cpp:
1549         (WebKit::WebLoaderClient::didChangeBackForwardList):
1550         * UIProcess/WebLoaderClient.h:
1551         (WebLoaderClient):
1552         * UIProcess/WebMediaCacheManagerProxy.cpp:
1553         (WebKit::WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache):
1554         * UIProcess/WebMediaCacheManagerProxy.h:
1555         (WebMediaCacheManagerProxy):
1556         * UIProcess/WebPageContextMenuClient.cpp:
1557         (WebKit::WebPageContextMenuClient::showContextMenu):
1558         * UIProcess/WebPageProxy.cpp:
1559         (ExceededDatabaseQuotaRecords):
1560         (WebKit::WebPageProxy::relatedPages):
1561         (WebKit::WebPageProxy::didChangeBackForwardList):
1562         (WebKit::WebPageProxy::handleWheelEvent):
1563         (WebKit::WebPageProxy::processNextQueuedWheelEvent):
1564         (WebKit::WebPageProxy::findStringMatches):
1565         (WebKit::WebPageProxy::willSubmitForm):
1566         (WebKit::WebPageProxy::pluginInformationDictionary):
1567         (WebKit::WebPageProxy::didFindStringMatches):
1568         (WebKit::WebPageProxy::didReceiveEvent):
1569         * UIProcess/WebPageProxy.h:
1570         (WebPageProxy):
1571         * UIProcess/WebPageProxy.messages.in:
1572         * UIProcess/WebProcessProxy.cpp:
1573         (WebKit::WebProcessProxy::disconnect):
1574         (WebKit::WebProcessProxy::didClose):
1575         (WebKit::WebProcessProxy::didBecomeUnresponsive):
1576         (WebKit::WebProcessProxy::interactionOccurredWhileUnresponsive):
1577         (WebKit::WebProcessProxy::didBecomeResponsive):
1578         (WebKit::WebProcessProxy::disconnectFramesFromPage):
1579         (WebKit::WebProcessProxy::frameCountInPage):
1580         * UIProcess/WebProcessProxy.h:
1581         (WebProcessProxy):
1582         * UIProcess/WebResourceCacheManagerProxy.h:
1583         (WebResourceCacheManagerProxy):
1584         * UIProcess/mac/WebContextMenuProxyMac.mm:
1585         (WebKit::populateNSMenu):
1586         (WebKit::nsMenuItemVector):
1587         * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
1588         (WebKit::WebApplicationCacheManager::getApplicationCacheOrigins):
1589         * WebProcess/Geolocation/WebGeolocationManager.cpp:
1590         (WebKit::WebGeolocationManager::didChangePosition):
1591         (WebKit::WebGeolocationManager::didFailToDeterminePosition):
1592         * WebProcess/IconDatabase/WebIconDatabaseProxy.h:
1593         (WebIconDatabaseProxy):
1594         * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
1595         * WebProcess/InjectedBundle/InjectedBundle.cpp:
1596         (WebKit::InjectedBundle::originsWithApplicationCache):
1597         * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp:
1598         (WebKit::InjectedBundleBackForwardListItem::children):
1599         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
1600         (WebKit::InjectedBundlePageEditorClient::getPasteboardDataForRange):
1601         * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h:
1602         (InjectedBundlePageEditorClient):
1603         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
1604         (WebKit::InjectedBundlePageFormClient::willSendSubmitEvent):
1605         (WebKit::InjectedBundlePageFormClient::willSubmitForm):
1606         * WebProcess/InjectedBundle/InjectedBundlePageFormClient.h:
1607         (InjectedBundlePageFormClient):
1608         * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
1609         (WebKit::InjectedBundlePageLoaderClient::featuresUsedInPage):
1610         * WebProcess/Network/WebResourceLoadScheduler.cpp:
1611         (WebKit::WebResourceLoadScheduler::internallyFailedLoadTimerFired):
1612         (WebKit::WebResourceLoadScheduler::networkProcessCrashed):
1613         * WebProcess/Network/WebResourceLoadScheduler.h:
1614         (WebResourceLoadScheduler):
1615         * WebProcess/Notifications/NotificationPermissionRequestManager.h:
1616         (NotificationPermissionRequestManager):
1617         * WebProcess/Notifications/WebNotificationManager.h:
1618         (WebNotificationManager):
1619         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
1620         (WebKit::NPRuntimeObjectMap::invalidate):
1621         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
1622         (NPRuntimeObjectMap):
1623         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
1624         (WebKit::NetscapePlugin::stopAllStreams):
1625         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
1626         (NetscapePlugin):
1627         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
1628         (NetscapePluginStream):
1629         * WebProcess/Plugins/PDF/SimplePDFPlugin.mm:
1630         (getAllScriptsInPDFDocument):
1631         (WebKit::SimplePDFPlugin::runScriptsInPDFDocument):
1632         * WebProcess/Plugins/PluginProcessConnectionManager.h:
1633         (PluginProcessConnectionManager):
1634         * WebProcess/Plugins/PluginView.cpp:
1635         (WebKit::PluginView::cancelAllStreams):
1636         * WebProcess/Plugins/PluginView.h:
1637         (PluginView):
1638         * WebProcess/Storage/StorageAreaMap.cpp:
1639         (WebKit::StorageAreaMap::dispatchSessionStorageEvent):
1640         (WebKit::StorageAreaMap::dispatchLocalStorageEvent):
1641         * WebProcess/Storage/StorageNamespaceImpl.cpp:
1642         (WebKit::StorageNamespaceImpl::storageArea):
1643         * WebProcess/Storage/StorageNamespaceImpl.h:
1644         (StorageNamespaceImpl):
1645         * WebProcess/Storage/WebKeyValueStorageManager.cpp:
1646         (WebKit::keyValueStorageOriginIdentifiers):
1647         * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
1648         (WebKit::WebDatabaseManager::getDatabasesByOrigin):
1649         (WebKit::WebDatabaseManager::getDatabaseOrigins):
1650         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
1651         (WebKit::WebEditorClient::getClientPasteboardDataForRange):
1652         * WebProcess/WebCoreSupport/WebEditorClient.h:
1653         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1654         (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):
1655         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
1656         (WebKit::WebEditorClient::documentFragmentFromAttributedString):
1657         * WebProcess/WebPage/EventDispatcher.h:
1658         (EventDispatcher):
1659         * WebProcess/WebPage/FindController.cpp:
1660         (WebKit::FindController::findStringMatches):
1661         * WebProcess/WebPage/FindController.h:
1662         (FindController):
1663         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
1664         (WebKit):
1665         * WebProcess/WebPage/WebFrame.cpp:
1666         (WebKit::WebFrame::childFrames):
1667         * WebProcess/WebPage/WebPage.cpp:
1668         (WebKit::WebPage::trackedRepaintRects):
1669         * WebProcess/WebPage/WebPage.h:
1670         (WebKit):
1671         (WebPage):
1672         * WebProcess/WebPage/mac/LayerTreeHostMac.h:
1673         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
1674         (TiledCoreAnimationDrawingArea):
1675         * WebProcess/WebProcess.cpp:
1676         (WebKit::WebProcess::visitedLinkStateChanged):
1677         (WebKit::WebProcess::allVisitedLinkStateChanged):
1678         (WebKit::WebProcess::focusedWebPage):
1679         (WebKit::WebProcess::createWebPage):
1680         (WebKit::WebProcess::didClose):
1681         (WebKit::WebProcess::webPageGroup):
1682         (WebKit::addCaseFoldedCharacters):
1683         (WebKit::getWebCoreMemoryCacheStatistics):
1684         (WebKit::WebProcess::setTextCheckerState):
1685         * WebProcess/WebProcess.h:
1686         (WebProcess):
1687
1688 2013-05-09  Anders Carlsson  <andersca@apple.com>
1689
1690         Implement WebPlatformStrategies::transientLocalStorageNamespace
1691         https://bugs.webkit.org/show_bug.cgi?id=115876
1692         <rdar://problem/13852871>
1693
1694         Reviewed by Beth Dakin.
1695
1696         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
1697         (WebKit::WebPlatformStrategies::transientLocalStorageNamespace):
1698         Return a session storage namespace for a random page when UI process storage is enabled,
1699         otherwise call the base class implementation.
1700
1701 2013-05-09  Anders Carlsson  <andersca@apple.com>
1702
1703         Use explicit qualifiers for names in the std:: namespace
1704         https://bugs.webkit.org/show_bug.cgi?id=115868
1705
1706         Reviewed by Andreas Kling.
1707
1708         * Shared/mac/ArgumentCodersMac.mm:
1709         (CoreIPC::encode):
1710         * UIProcess/API/C/WKPluginSiteDataManager.cpp:
1711         (WKPluginSiteDataManagerClearAllSiteData):
1712         * UIProcess/Plugins/PluginInfoStore.cpp:
1713         (WebKit::PluginInfoStore::findPluginForExtension):
1714         * UIProcess/WebFrameProxy.cpp:
1715         * UIProcess/WebProcessProxy.cpp:
1716         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
1717         (WebKit::parsePostBuffer):
1718         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
1719         (WebKit::NetscapePlugin::loadURL):
1720         * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
1721         (WebKit::NetscapePluginStream::deliverDataToPlugin):
1722         * WebProcess/Plugins/PDF/SimplePDFPlugin.mm:
1723         * WebProcess/WebPage/DrawingAreaImpl.cpp:
1724         * WebProcess/WebPage/FindController.cpp:
1725         (WebKit::FindController::countStringMatches):
1726         (WebKit::FindController::updateFindUIAfterPageScroll):
1727         * WebProcess/WebPage/WebPage.cpp:
1728         * WebProcess/WebPage/mac/WebPageMac.mm:
1729         (WebKit::drawPDFPage):
1730         * WebProcess/mac/WebProcessMac.mm:
1731
1732 2013-05-09  Max Feil  <mfeil@rim.com>
1733
1734         shouldUsePluginDocument() needs to be respected when a document is created
1735         https://bugs.webkit.org/show_bug.cgi?id=110308
1736
1737         Reviewed by Rob Buis.
1738
1739         Renaming shouldUsePluginDocument() to shouldAlwaysUsePluginDocument()
1740         for clarity.
1741
1742         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1743         (WebKit::WebFrameLoaderClient::shouldAlwaysUsePluginDocument):
1744         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
1745         (WebFrameLoaderClient):
1746
1747 2013-05-09  Timothy Hatcher  <timothy@apple.com>
1748
1749         Make dragging off a tab in Safari with a docked Inspector reattach the Inspector.
1750
1751         https://webkit.org/b/115832
1752         rdar://problem/13605661
1753
1754         Reviewed by Benjamin Poulain.
1755
1756         * UIProcess/mac/WebInspectorProxyMac.mm:
1757         (WebKit::WebInspectorProxy::platformBringToFront):
1758         If the Web Inspector is no longer in the same window as the inspected view,
1759         then we need to reopen the Inspector to get it attached to the right window.
1760
1761 2013-05-08  Anders Carlsson  <andersca@apple.com>
1762
1763         Fix a typo in a comment.
1764
1765         Rubber-stamped by Darin Adler.
1766
1767         * WebProcess/WebProcess.cpp:
1768         (WebKit::WebProcess::initializeConnection):
1769
1770 2013-05-08  Anders Carlsson  <andersca@apple.com>
1771
1772         Remove bogus StorageAreaMap assertions
1773         https://bugs.webkit.org/show_bug.cgi?id=115838
1774
1775         Reviewed by Sam Weinig.
1776
1777         It is possible for didGetValues, and didClear to be called even if m_hasPendingClear is false so remove the assertions.
1778
1779         * WebProcess/Storage/StorageAreaMap.cpp:
1780         (WebKit::StorageAreaMap::didGetValues):
1781         (WebKit::StorageAreaMap::didClear):
1782
1783 2013-05-08  Anders Carlsson  <andersca@apple.com>
1784
1785         Handle incoming clear operations
1786         https://bugs.webkit.org/show_bug.cgi?id=115829
1787
1788         Reviewed by Sam Weinig.
1789
1790         Handle clear by building up a new storage map with our pending changes.
1791
1792         * WebProcess/Storage/StorageAreaMap.cpp:
1793         (WebKit::StorageAreaMap::applyChange):
1794
1795 2013-05-08  Anders Carlsson  <andersca@apple.com>
1796
1797         Don't apply changes while we're clearing the database
1798         https://bugs.webkit.org/show_bug.cgi?id=115826
1799
1800         Reviewed by Darin Adler.
1801
1802         * UIProcess/Storage/LocalStorageDatabase.cpp:
1803         (WebKit::LocalStorageDatabase::openDatabase):
1804         Only call didOpenDatabaseWithOrigin if we actually did open the database.
1805
1806         (WebKit::LocalStorageDatabase::updateDatabaseWithChangedItems):
1807         Create the database if needed.
1808
1809         * UIProcess/Storage/StorageManager.cpp:
1810         (WebKit::StorageManager::getValues):
1811         Send back a DidGetValues message.
1812
1813         * WebProcess/Storage/StorageAreaMap.cpp:
1814         (WebKit::StorageAreaMap::StorageAreaMap):
1815         Initialize m_hasPendingClear.
1816
1817         (WebKit::StorageAreaMap::clear):
1818         Set m_hasPendingClear to true.
1819
1820         (WebKit::StorageAreaMap::resetValues):
1821         Set m_hasPendingClear back to false.
1822
1823         (WebKit::StorageAreaMap::loadValuesIfNeeded):
1824         Set m_hasPendingClear to true so we'll ignore any changes that are already part of the returned items.
1825
1826         (WebKit::StorageAreaMap::didGetValues):
1827         Set m_hasPendingClear back to false.
1828
1829         (WebKit::StorageAreaMap::didClear):
1830         Set m_hasPendingClear back to false.
1831
1832         (WebKit::StorageAreaMap::applyChange):
1833         Don't apply the change if m_hasPendingClear is true.
1834
1835         * WebProcess/Storage/StorageAreaMap.messages.in:
1836         Add DidGetValues message.
1837
1838 2013-05-08  Andy Estes  <aestes@apple.com>
1839
1840         [WebKit2] REGRESSION (Custom Protocols): Reproducible crash when navigating to URL with an invalid scheme
1841         https://bugs.webkit.org/show_bug.cgi?id=115790
1842
1843         Reviewed by Alexey Proskuryakov.
1844
1845         NSMutableSet does not support adding or removing nil objects, and
1846         WTF::HashSet does not support adding, removing, or checking for null
1847         WTF::Strings.
1848
1849         For the NSMutableSet case, make sure that we don't try to add or remove
1850         nil NSStrings.
1851
1852         For the WTF::HashSet case, NSURL will return a nil NSString if we ask
1853         it for its scheme when it is invalid, which we will convert to a null
1854         WTF::String. Don't try to check if our HashSet of registered schemes
1855         contains a null String.
1856
1857         * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
1858         (WebKit::CustomProtocolManager::registerScheme): Assert that the scheme
1859         isn't null. We reject null schemes at the WKBrowsingContextController level.
1860         (WebKit::CustomProtocolManager::unregisterScheme): Ditto.
1861         (WebKit::CustomProtocolManager::supportsScheme): If scheme is null, return false.
1862         * UIProcess/API/mac/WKBrowsingContextController.mm:
1863         (+[WKBrowsingContextController registerSchemeForCustomProtocol:]): Do not register a nil scheme.
1864         (+[WKBrowsingContextController unregisterSchemeForCustomProtocol:]): Ditto.
1865
1866 2013-05-08  Anders Carlsson  <andersca@apple.com>
1867
1868         Apply remote changes to storage maps locally
1869         https://bugs.webkit.org/show_bug.cgi?id=115825
1870
1871         Reviewed by Beth Dakin.
1872
1873         * WebProcess/Storage/StorageAreaMap.cpp:
1874         (WebKit::StorageAreaMap::resetValues):
1875         Clear the pending values map.
1876
1877         (WebKit::StorageAreaMap::didSetItem):
1878         If we failed to set the item, forget everything we know about this storage map.
1879         Otherwise, remove the pending item.
1880
1881         (WebKit::StorageAreaMap::didRemoveItem):
1882         Remove the pending item.
1883
1884         (WebKit::StorageAreaMap::shouldApplyChangeForKey):
1885         Helper function that returns whether a change for a given key should be applied.
1886
1887         (WebKit::StorageAreaMap::applyChange):
1888         Apply the change. Currently only adds and removes are handled.
1889
1890         (WebKit::StorageAreaMap::dispatchStorageEvent):
1891         Apply the change locally as well if needed.
1892
1893         * WebProcess/Storage/StorageAreaMap.h:
1894
1895 2013-05-08  Anders Carlsson  <andersca@apple.com>
1896
1897         Assert at compile time that we don't pass Objective-C object pointers to adoptCF
1898         https://bugs.webkit.org/show_bug.cgi?id=115823
1899
1900         Reviewed by Geoffrey Garen.
1901
1902         Fix adoptNS/adoptCF mismatches. For the adopt(leakRef()) case we'd ideally want a static_pointer_cast overload for RetainPtr,
1903         but this will do for now.
1904         
1905         * Shared/mac/ArgumentCodersMac.mm:
1906         (CoreIPC::decode):
1907
1908 2013-05-08  Sam Weinig  <sam@webkit.org>
1909
1910         Add SPI to determine if a plugin is sandboxed
1911         https://bugs.webkit.org/show_bug.cgi?id=115810
1912
1913         Reviewed by Anders Carlsson.
1914
1915         * PluginProcess/mac/PluginProcessMac.mm:
1916         (WebKit::PluginProcess::initializeSandbox):
1917         * Shared/Plugins/mac/PluginSandboxProfile.h: Added.
1918         * Shared/Plugins/mac/PluginSandboxProfile.mm: Added.
1919         (WebKit::pluginSandboxProfileDefaultDirectory):
1920         (WebKit::pluginSandboxProfileDirectories):
1921         (WebKit::pluginSandboxProfileName):
1922         (WebKit::pluginSandboxCommonProfile):
1923         (WebKit::pluginSandboxProfileForDirectory):
1924         (WebKit::pluginSandboxProfile):
1925         (WebKit::pluginHasSandboxProfileForDirectory):
1926         (WebKit::pluginHasSandboxProfile):
1927         Move sandbox code to its own file and refactor to use cocoa. Also adds pluginHasSandboxProfile function
1928         which uses the newly refactored code.
1929
1930         * UIProcess/API/C/mac/WKContextPrivateMac.h:
1931         * UIProcess/API/C/mac/WKContextPrivateMac.mm:
1932         (WKPlugInInfoIsSandboxedKey):
1933         (createInfoDictionary):
1934         Add WKPlugInInfoIsSandboxedKey.
1935
1936         * WebKit2.xcodeproj/project.pbxproj:
1937         Add new files.
1938
1939 2013-05-08  Anders Carlsson  <andersca@apple.com>
1940
1941         Safari unexpectedly quits with invalid message from the web process with message ID 0x323002f (WebPageProxy.DecidePolicyForNavigationAction)
1942         https://bugs.webkit.org/show_bug.cgi?id=115814
1943         <rdar://problem/12331258>
1944
1945         Reviewed by Andreas Kling.
1946
1947         To ensure that any asynchronous messages are delivered to the UI process before
1948         synchronous messages (except when doing so would lead to a deadlock), Call
1949         setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage on the UI process connections.
1950
1951         * WebProcess/WebProcess.cpp:
1952         (WebKit::WebProcess::initializeConnection):
1953
1954 2013-05-08  Tim Horton  <timothy_horton@apple.com>
1955
1956         Coalesce WKView visibleRect changes
1957         https://bugs.webkit.org/show_bug.cgi?id=115792
1958         <rdar://problem/13776842>
1959
1960         Reviewed by Simon Fraser.
1961
1962         The system can call renewGState much more often than we actually want
1963         to update the WebProcess' notion of the exposed rect. Most importantly,
1964         within an autolayout pass it is called many times, and often sees
1965         [WKView visibleRect] be an intermediate value which will never be
1966         flushed to the screen. We only care about the final value, so we should
1967         wait until AppKit has finished - with a zero-delay timer - to inform the
1968         WebProcess of exposed rect changes.
1969
1970         * UIProcess/WebPageProxy.cpp:
1971         (WebKit::WebPageProxy::WebPageProxy):
1972         Add exposedRectChangedTimer.
1973         (WebKit::WebPageProxy::close):
1974         Cancel exposedRectChangedTimer when tearing down the WebPageProxy.
1975         * UIProcess/WebPageProxy.h:
1976         (WebPageProxy):
1977         Add exposedRectChangedTimerFired, the timer itself, and two rects:
1978         the most recent exposed rect from the WKView, and the last one we actually
1979         sent across to the WebProcess.
1980         * UIProcess/mac/WebPageProxyMac.mm:
1981         (WebKit::WebPageProxy::viewExposedRectChanged):
1982         Instead of immediately sending exposed rect changes to the WebProcess,
1983         start a zero-delay timer to do so.
1984         (WebKit::WebPageProxy::exposedRectChangedTimerFired):
1985         Once the zero-delay timer fires, send the new exposed rect to the WebProcess.
1986
1987 2013-05-08  Alexey Proskuryakov  <ap@apple.com>
1988
1989         <rdar://problem/13776220> 13A451: PluginProcess(2225) deny file-read-data ~/Library/InputManagers
1990         <rdar://problem/13642510> PluginProcess logs sandbox violations initializing TextServices
1991
1992         Reviewed by Anders Carlsson.
1993
1994         * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb: Allow more
1995         TextServices and NSInputManager directories.
1996
1997 2013-05-08  Anders Carlsson  <andersca@apple.com>
1998
1999         Remove BinarySemaphoreWin.cpp.
2000
2001         Rubber-stamped by Beth Dakin.
2002
2003         BinarySemaphoreWin has been moved to WTF, but the original was never removed.
2004
2005         * Platform/CoreIPC/win/BinarySemaphoreWin.cpp: Removed.
2006
2007 2013-05-08  Zan Dobersek  <zdobersek@igalia.com>
2008
2009         [WK2] Make the WebNetworkInfoManager a supplement to the WebProcess
2010         https://bugs.webkit.org/show_bug.cgi?id=115716
2011
2012         Reviewed by Andreas Kling.
2013
2014         WebNetworkInfoManager should inherit from WebProcessSupplement and should be used
2015         as such by the WebProcess. This removes the need for the m_networkInfoManager member
2016         variable in the WebProcess class and brings the WebNetworkInfoManager in line with
2017         other manager classes of which instances are controlled by the WebProcess class.
2018
2019         * WebProcess/NetworkInfo/WebNetworkInfoManager.cpp:
2020         (WebKit::WebNetworkInfoManager::supplementName): Specify the supplement's name.
2021         (WebKit):
2022         * WebProcess/NetworkInfo/WebNetworkInfoManager.h:
2023         (WebKit): Alphabetically reorder the two forwarding declarations.
2024         (WebNetworkInfoManager): Inherit from the WebProcessSupplement interface.
2025         * WebProcess/WebCoreSupport/WebNetworkInfoClient.cpp:
2026         (WebKit::WebNetworkInfoClient::bandwidth): Access the WebNetworkInfoManager as a supplement.
2027         (WebKit::WebNetworkInfoClient::metered): Ditto.
2028         (WebKit::WebNetworkInfoClient::startUpdating): Ditto.
2029         (WebKit::WebNetworkInfoClient::stopUpdating): Ditto.
2030         (WebKit::WebNetworkInfoClient::networkInfoControllerDestroyed): Ditto.
2031         * WebProcess/WebProcess.cpp:
2032         (WebKit::WebProcess::WebProcess): Add the WebNetworkInfoManager instance as a supplement.
2033         * WebProcess/WebProcess.h:
2034         (WebProcess): Remove the m_networkInfoManager member variable and its getter method.
2035
2036 2013-05-08  Zan Dobersek  <zdobersek@igalia.com>
2037
2038         [WK2] Make the WebBatteryManager a supplement to the WebProcess
2039         https://bugs.webkit.org/show_bug.cgi?id=115715
2040
2041         Reviewed by Andreas Kling.
2042
2043         WebBatteryManager should inherit from WebProcessSupplement and should be used as such
2044         by the WebProcess. This removes the need for the m_batteryManager member variable in
2045         the WebProcess class and brings the WebBatteryManager in line with other manager classes
2046         of which instances are controlled by the WebProcess class.
2047
2048         * WebProcess/Battery/WebBatteryManager.cpp:
2049         (WebKit::WebBatteryManager::supplementName): Specify the supplement's name.
2050         (WebKit):
2051         * WebProcess/Battery/WebBatteryManager.h:
2052         (WebBatteryManager): Inherit from the WebProcessSupplement interface.
2053         * WebProcess/WebCoreSupport/WebBatteryClient.cpp:
2054         (WebKit::WebBatteryClient::startUpdating): Access the WebBatteryManager as a supplement.
2055         (WebKit::WebBatteryClient::stopUpdating): Ditto.
2056         (WebKit::WebBatteryClient::batteryControllerDestroyed): Ditto.
2057         * WebProcess/WebProcess.cpp:
2058         (WebKit::WebProcess::WebProcess): Add the WebBatteryManager instance as a supplement.
2059         * WebProcess/WebProcess.h:
2060         (WebProcess): Remove the m_batteryManager member variable and its getter method.
2061
2062 2013-05-06  Darin Adler  <darin@apple.com>
2063
2064         Use adoptCF and adoptNS in more places
2065         https://bugs.webkit.org/show_bug.cgi?id=115657
2066
2067         Reviewed by Sam Weinig.
2068
2069         * Shared/Downloads/cfnet/DownloadCFNet.cpp:
2070         (WebKit::Download::useCredential):
2071         (WebKit::Download::start):
2072         (WebKit::Download::startWithHandle):
2073         (WebKit::Download::cancel):
2074         (WebKit::Download::didDecideDestination):
2075         Use adoptCF and adoptNS.
2076
2077 2013-05-06  Sam Weinig  <sam@webkit.org>
2078
2079         Add SPI to get an array of all the installed plug-ins
2080         https://bugs.webkit.org/show_bug.cgi?id=115688
2081
2082         Reviewed by Anders Carlsson.
2083
2084         * UIProcess/API/C/mac/WKContextPrivateMac.h:
2085         * UIProcess/API/C/mac/WKContextPrivateMac.mm:
2086         (createInfoDictionary):
2087         Extract creation of info dictionary into helper.
2088         (WKContextCopyPlugInInfoForBundleIdentifier):
2089         Modified to use the new helper.
2090         (WKContextGetInfoForInstalledPlugIns):
2091         Added.
2092
2093 2013-05-07  Anders Carlsson  <andersca@apple.com>
2094
2095         Clean up KeyframeValueList and related classes
2096         https://bugs.webkit.org/show_bug.cgi?id=115738
2097
2098         Reviewed by Simon Fraser.
2099
2100         Update for WebCore changes.
2101
2102         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
2103         (CoreIPC::::decode):
2104
2105 2013-05-07  Anders Carlsson  <andersca@apple.com>
2106
2107         Add and remove databases and origins from the database tracker
2108         https://bugs.webkit.org/show_bug.cgi?id=115752
2109
2110         Reviewed by Andreas Kling.
2111
2112         * UIProcess/Storage/LocalStorageDatabase.cpp:
2113         (WebKit::LocalStorageDatabase::LocalStorageDatabase):
2114         Rename m_databaseFilename to m_databasePath.
2115
2116         (WebKit::LocalStorageDatabase::tryToOpenDatabase):
2117         Rename m_databaseFilename to m_databasePath.
2118
2119         * UIProcess/Storage/LocalStorageDatabase.h:
2120         Rename m_databaseFilename to m_databasePath.
2121
2122         * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
2123         (WebKit::LocalStorageDatabaseTracker::databasePath):
2124         Rename databaseFilename to databasePath.
2125
2126         (WebKit::LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin):
2127         Call addDatabaseWithOriginIdentifier.
2128
2129         (WebKit::LocalStorageDatabaseTracker::deleteEmptyDatabaseWithOrigin):
2130         Call removeDatabaseWithOriginIdentifier.
2131
2132         (WebKit::LocalStorageDatabaseTracker::trackerDatabasePath):
2133         Call databasePath instead of databaseFile.
2134
2135         (WebKit::LocalStorageDatabaseTracker::openTrackerDatabase):
2136         Bail if the database is already open.
2137
2138         (WebKit::LocalStorageDatabaseTracker::updateTrackerDatabaseFromLocalStorageDatabaseFiles):
2139         Call addDatabaseWithOriginIdentifier if this is an origin we don't know about.
2140
2141         (WebKit::LocalStorageDatabaseTracker::addDatabaseWithOriginIdentifier):
2142         Add the database to the Origins table.
2143
2144         (WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier):
2145         remove the database from the Origins table and delete it.
2146
2147         (WebKit::LocalStorageDatabaseTracker::pathForDatabaseWithOriginIdentifier):
2148         Helper function that looks up a database path given its identifier.
2149         
2150         * UIProcess/Storage/LocalStorageDatabaseTracker.h:
2151         Rename databaseFile to databasePath.
2152
2153 2013-05-07  Anders Carlsson  <andersca@apple.com>
2154
2155         The storage database tracker should know when databases come and go
2156         https://bugs.webkit.org/show_bug.cgi?id=115748
2157
2158         Reviewed by Andreas Kling.
2159
2160         * UIProcess/Storage/LocalStorageDatabase.cpp:
2161         (WebKit::LocalStorageDatabase::openDatabase):
2162         If we've opened the database successfully, call LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin.
2163
2164         (WebKit::LocalStorageDatabase::tryToOpenDatabase):
2165         Remove a FIXME; we run all storage related things on the same thread.
2166
2167         (WebKit::LocalStorageDatabase::close):
2168         Close the database. If it's empty, call LocalStorageDatabaseTracker::deleteEmptyDatabaseWithOrigin.
2169
2170         (WebKit::LocalStorageDatabase::databaseIsEmpty):
2171         Helper function for determining whether a database is empty.
2172         
2173         * UIProcess/Storage/LocalStorageDatabase.h:
2174         * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
2175         (WebKit::LocalStorageDatabaseTracker::databaseFilename):
2176         Add ".localstorage" to the filename.
2177
2178         (WebKit::LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin):
2179         (WebKit::LocalStorageDatabaseTracker::deleteEmptyDatabaseWithOrigin):
2180         Add empty stubs.
2181
2182 2013-05-07  Brady Eidson  <beidson@apple.com>
2183
2184         Add JoinExistingSession to the Networking XPC.
2185         <rdar://problem/12902288> and https://bugs.webkit.org/show_bug.cgi?id=114991
2186
2187         Reviewed by Sam Weinig.
2188
2189         * NetworkProcess/EntryPoint/mac/XPCService/NetworkService.Development/Info.plist:
2190         * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info.plist:
2191
2192 2013-05-07  Anders Carlsson  <andersca@apple.com>
2193
2194         REGRESSION(r149647): Assertion failure in LocalStorageDatabaseTracker::setLocalStorageDirectoryInternal
2195         https://bugs.webkit.org/show_bug.cgi?id=115711
2196
2197         Reviewed by Andreas Kling.
2198
2199         Handle setting the local storage directory more than once.
2200
2201         * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
2202         (WebKit::LocalStorageDatabaseTracker::setLocalStorageDirectoryInternal):
2203         Close the database (if necessary) and clear the origins map before importing the origin identifiers.
2204
2205 2013-05-07  Antoine Quint  <graouts@apple.com>
2206
2207         Re-establish autostart timeout extension on user interaction
2208         https://bugs.webkit.org/show_bug.cgi?id=113232
2209
2210         Change WebProcess::pluginDidReceiveUserInteraction to use a tuple of
2211         (pluginOrigin, pageOrigin, mimeType) arguments like the other similar
2212         WebProcess methods and gather these arguments from the PlugInView's
2213         plug-in element.
2214
2215         Reviewed by Dean Jackson.
2216
2217         * WebProcess/Plugins/PluginView.cpp:
2218         (WebKit::PluginView::pluginDidReceiveUserInteraction):
2219         Cast the m_pluginElement to a HTMLPlugInImageElement so we can obtain the
2220         tuple of (pluginOrigin, pageOrigin, mimeType) to pass to pluginDidReceiveUserInteraction().
2221
2222         * WebProcess/WebProcess.cpp:
2223         (WebKit::WebProcess::plugInDidReceiveUserInteraction):
2224         * WebProcess/WebProcess.h:
2225         (WebProcess):
2226         Update method signature to a tuple of (pluginOrigin, pageOrigin, mimeType)
2227         and obtain the plug-in origin hash from that.
2228
2229 2013-05-07  Anders Carlsson  <andersca@apple.com>
2230
2231         Each local storage database should know its origin
2232         https://bugs.webkit.org/show_bug.cgi?id=115737
2233
2234         Reviewed by Andreas Kling.
2235
2236         Store the security origin in a member variable. It'll be used to communicate database state changes to the tracker.
2237
2238         * UIProcess/Storage/LocalStorageDatabase.cpp:
2239         (WebKit::LocalStorageDatabase::create):
2240         (WebKit::LocalStorageDatabase::LocalStorageDatabase):
2241         * UIProcess/Storage/LocalStorageDatabase.h:
2242         (LocalStorageDatabase):
2243
2244 2013-05-07  Brady Eidson  <beidson@apple.com>
2245
2246         Remove some unnecessary soft linking in NetworkProcess. (Take 2)
2247         <rdar://problem/13821779> and https://bugs.webkit.org/show_bug.cgi?id=115683
2248
2249         Reviewed by Dean Jackson and owned by Andreas Kling.
2250
2251         As a followup to r149651, include the private headers conditionally.
2252         Also, fix a bug introduced with r149651 (bool vs CFBooleanRef).
2253
2254         * NetworkProcess/mac/DiskCacheMonitor.mm:
2255         * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
2256         (WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer):
2257
2258 2013-05-07  Jinwoo Song  <jinwoo7.song@samsung.com>
2259
2260         [EFL][WK2] Add ewk APIs for setting and getting user agent
2261         https://bugs.webkit.org/show_bug.cgi?id=114429
2262
2263         Reviewed by Andreas Kling.
2264
2265         Provide ewk_view_user_agent_get/set APIs which wraps WK APIs.
2266
2267         * UIProcess/API/efl/EwkView.cpp:
2268         (EwkView::EwkView):
2269         (EwkView::setUserAgent):
2270         * UIProcess/API/efl/EwkView.h:
2271         (EwkView::userAgent):
2272         (EwkView):
2273         * UIProcess/API/efl/ewk_view.cpp:
2274         (ewk_view_user_agent_get):
2275         (ewk_view_user_agent_set):
2276         * UIProcess/API/efl/ewk_view.h:
2277         * UIProcess/API/efl/tests/test_ewk2_view.cpp:
2278         (TEST_F):
2279
2280 2013-05-07  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2281
2282         HashTraits<RefPtr<P> >::PeekType should be raw pointer for better performance
2283         https://bugs.webkit.org/show_bug.cgi?id=115646
2284
2285         Reviewed by Darin Adler.
2286
2287         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
2288         (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):
2289         * NetworkProcess/NetworkResourceLoadScheduler.cpp:
2290         (WebKit::NetworkResourceLoadScheduler::hostForURL):
2291         * Shared/ImmutableDictionary.h:
2292         (WebKit::ImmutableDictionary::get):
2293         * UIProcess/Storage/StorageManager.cpp:
2294         (WebKit::StorageManager::createSessionStorageMap):
2295         (WebKit::StorageManager::cloneSessionStorageNamespaceInternal):
2296         (WebKit::StorageManager::findStorageArea):
2297         * UIProcess/WebContext.h:
2298         (WebKit::WebContext::supplement):
2299         * UIProcess/WebProcessProxy.cpp:
2300         (WebKit::WebProcessProxy::webBackForwardItem):
2301         (WebKit::WebProcessProxy::webFrame):
2302         * UIProcess/efl/DownloadManagerEfl.cpp:
2303         (WebKit::DownloadManagerEfl::ewkDownloadJob):
2304         * WebProcess/Network/WebResourceLoadScheduler.h:
2305         (WebKit::WebResourceLoadScheduler::webResourceLoaderForIdentifier):
2306         * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
2307         (WebKit::NetscapePlugin::streamFromID):
2308         * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
2309         (WebKit::PluginProcessConnectionManager::pluginProcessCrashed):
2310         * WebProcess/Plugins/PluginView.cpp:
2311         (WebKit::PluginView::cancelStreamLoad):
2312         * WebProcess/WebPage/EventDispatcher.cpp:
2313         (WebKit::EventDispatcher::wheelEvent):
2314         * WebProcess/WebPage/WebBackForwardListProxy.cpp:
2315         (WebKit::WebBackForwardListProxy::itemForID):
2316         (WebKit::WebBackForwardListProxy::itemAtIndex):
2317         * WebProcess/WebPage/WebPage.cpp:
2318         (WebKit::WebPage::webUndoStep):
2319         (WebKit::WebPage::didFinishCheckingText):
2320         (WebKit::WebPage::didCancelCheckingText):
2321         * WebProcess/WebProcess.cpp:
2322         (WebKit::WebProcess::webPage):
2323         (WebKit::WebProcess::webPageGroup):
2324             Updated accordingly to new HashMap<.., RefPtr>::get() semantics.
2325
2326 2013-05-06  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
2327
2328         [Qt] Unreviewed buildfix after r149637.
2329
2330         * Target.pri:
2331
2332 2013-05-06  Ryosuke Niwa  <rniwa@webkit.org>
2333
2334         REGRESSION(r149647): Assertion failure in LocalStorageDatabaseTracker::setLocalStorageDirectoryInternal
2335         https://bugs.webkit.org/show_bug.cgi?id=115711    
2336
2337         Rubber-stamped by Anders Carlsson.
2338
2339         Temporarily removed the assertion. Andres is going to investigate it tomorrow.
2340
2341         * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
2342         (WebKit::LocalStorageDatabaseTracker::setLocalStorageDirectoryInternal):
2343
2344 2013-05-06  Darin Adler  <darin@apple.com>
2345
2346         Use OwnPtr instead of deleteAllValues in KeyframeValueList
2347         https://bugs.webkit.org/show_bug.cgi?id=115652
2348
2349         Reviewed by Simon Fraser.
2350
2351         * Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
2352         (CoreIPC::ArgumentCoder<GraphicsLayerAnimation>::decode): Added adoptPtr
2353         next to new when calling KeyframeValueList::insert.
2354
2355 2013-05-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2356
2357         Unreviewed, build fix on EFL port
2358
2359         * CMakeLists.txt: Add LocalStorageDatabaseTracker.cpp
2360
2361 2013-05-06  Philippe Normand  <pnormand@igalia.com>
2362
2363         Unreviewed, GTK build fix after r149637.
2364
2365         * GNUmakefile.list.am: Add LocalStorageDatabaseTracker sources to
2366         the build.
2367
2368 2013-05-06  Brady Eidson  <beidson@apple.com>
2369
2370         Remove some unnecessary soft linking in NetworkProcess.
2371         <rdar://problem/13821779> and https://bugs.webkit.org/show_bug.cgi?id=115683
2372
2373         Reviewed by Sam Weinig.
2374
2375         Replace some unneeded soft linking with forward declarations.
2376
2377         * NetworkProcess/mac/DiskCacheMonitor.mm:
2378         (WebKit::DiskCacheMonitor::DiskCacheMonitor):
2379         * NetworkProcess/mac/NetworkResourceLoaderMac.mm:
2380         (WebKit::NetworkResourceLoader::tryGetShareableHandleFromCFURLCachedResponse):
2381         (WebKit::NetworkResourceLoader::tryGetShareableHandleFromSharedBuffer):
2382
2383 2013-05-06  Anders Carlsson  <andersca@apple.com>
2384
2385         More work on LocalStorageDatabaseTracker
2386         https://bugs.webkit.org/show_bug.cgi?id=115680
2387
2388         Reviewed by Andreas Kling.
2389
2390         * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
2391         (WebKit::LocalStorageDatabaseTracker::databaseFilename):
2392         Call the new databaseFilename that takes a string.
2393
2394         (WebKit::LocalStorageDatabaseTracker::setLocalStorageDirectoryInternal):
2395         Assert that we don't call this more than once. Dispatch a call to import origin identifiers.
2396
2397         (WebKit::LocalStorageDatabaseTracker::trackerDatabasePath):
2398         New helper function that returns the tracker database path.
2399
2400         (WebKit::LocalStorageDatabaseTracker::openTrackerDatabase):
2401         Open the database and create the Origins table if needed.
2402
2403         (WebKit::LocalStorageDatabaseTracker::importOriginIdentifiers):
2404         Open the database and import the origin identifiers from it, then synchronize it with whatever files are on disk.
2405
2406         (WebKit::LocalStorageDatabaseTracker::updateTrackerDatabaseFromLocalStorageDatabaseFiles):
2407         Bring the tracker database up to date from the database files on disk.
2408
2409         * UIProcess/Storage/LocalStorageDatabaseTracker.h:
2410         (LocalStorageDatabaseTracker):
2411
2412 2013-05-06  Alexey Proskuryakov  <ap@apple.com>
2413
2414         <rdar://problem/13479806> [Mac] Pass information about open pages to LaunchServices
2415         https://bugs.webkit.org/show_bug.cgi?id=115665
2416
2417         Reviewed by Darin Adler.
2418
2419         * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCommitLoad): Moved repeated
2420         check for frame->isMainFrame() to the top, matching oter similar functions.
2421         Call updateActivePages().
2422
2423         * WebProcess/WebProcess.cpp:
2424         (WebKit::WebProcess::networkProcessConnectionClosed): Removed an obsolete FIXME.
2425         (WebKit::WebProcess::updateActivePages): Empty implementation for platforms
2426         that don't need to do anything here.
2427
2428         * WebProcess/WebProcess.h: Added updateActivePages().
2429
2430         * WebProcess/mac/WebProcessMac.mm: (WebKit::WebProcess::updateActivePages):
2431         Collect user visible origins of pages in the process and pass them to LS.
2432
2433 2013-05-06  Mark Rowe  <mrowe@apple.com>
2434
2435         <rdar://problem/13775921> Switch off a deprecated API.
2436
2437         Reviewed by Oliver Hunt.
2438
2439         * Shared/mac/ChildProcessMac.mm:
2440         (WebKit::ChildProcess::setProcessSuppressionEnabled): When disabling process suppression,
2441         begin an activity that doesn't disable idle sleep, sudden termination or automatic termination.
2442         When enabling process suppression, end the activity.
2443
2444 2013-05-06  Anders Carlsson  <andersca@apple.com>
2445
2446         Move local storage directory handling to LocalStorageDatabaseTracker
2447         https://bugs.webkit.org/show_bug.cgi?id=115676
2448
2449         Reviewed by Andreas Kling.
2450
2451         * UIProcess/Storage/LocalStorageDatabase.cpp:
2452         (WebKit::LocalStorageDatabase::create):
2453         (WebKit::LocalStorageDatabase::LocalStorageDatabase):
2454         * UIProcess/Storage/LocalStorageDatabase.h:
2455         (WebCore):
2456         (LocalStorageDatabase):
2457         * UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
2458         (WebKit::LocalStorageDatabaseTracker::setLocalStorageDirectory):
2459         (WebKit):
2460         (WebKit::LocalStorageDatabaseTracker::databaseFilename):
2461         (WebKit::LocalStorageDatabaseTracker::setLocalStorageDirectoryInternal):
2462         * UIProcess/Storage/LocalStorageDatabaseTracker.h:
2463         (WebCore):
2464         (LocalStorageDatabaseTracker):
2465         * UIProcess/Storage/StorageManager.cpp:
2466         (WebKit::StorageManager::StorageArea::StorageArea):
2467         (WebKit::StorageManager::setLocalStorageDirectory):
2468         * UIProcess/Storage/StorageManager.h:
2469         (StorageManager):
2470
2471 2013-05-06  Manuel Rego Casasnovas  <rego@igalia.com>
2472
2473         [GTK] Add webkit_uri_scheme_request_finish_error
2474         https://bugs.webkit.org/show_bug.cgi?id=94316
2475
2476         Reviewed by Anders Carlsson.
2477
2478         This new method will allow to finish WebKitURISchemeRequest with a
2479         GError that will be passed to the WebKitWebView through the
2480         "load-failed" signal.
2481
2482         * UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
2483         (webkit_uri_scheme_request_finish_error): Implement new method using
2484         WebSoupRequestManagerProxy::didFailURIRequest().
2485         * UIProcess/API/gtk/WebKitURISchemeRequest.h: Add new method header.
2486         * UIProcess/API/gtk/WebKitWebContext.cpp: Include the usage of the new
2487         method in the code example at webkit_web_context_register_uri_scheme()
2488         documentation.
2489         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Include the new
2490         method.
2491         * UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
2492         (loadFailedCallback): Set m_error to monitor it from the tests.
2493         (LoadTrackingTest::loadURI): Clear m_error before each load.
2494         (LoadTrackingTest::loadHtml): Ditto.
2495         (LoadTrackingTest::loadPlainText): Ditto.
2496         (LoadTrackingTest::loadRequest): Ditto.
2497         (LoadTrackingTest::reload): Ditto.
2498         (LoadTrackingTest::goBack): Ditto.
2499         (LoadTrackingTest::goForward): Ditto.
2500         * UIProcess/API/gtk/tests/LoadTrackingTest.h: Add new member m_error.
2501         * UIProcess/API/gtk/tests/TestWebKitWebContext.cpp:
2502         (testWebContextURIScheme): Modify test to check the behavior of the new
2503         method.
2504         * UIProcess/soup/WebSoupRequestManagerProxy.cpp:
2505         (WebKit::WebSoupRequestManagerProxy::didFailURIRequest):
2506         (WebKit): Implement new method using
2507         WebSoupRequestManager::DidFailURIRequest().
2508         * UIProcess/soup/WebSoupRequestManagerProxy.h:
2509         (WebSoupRequestManagerProxy): Add new method header.
2510         * WebProcess/soup/WebSoupRequestManager.cpp:
2511         (WebKit):
2512         (WebKit::WebSoupRequestManager::didFailURIRequest): Implement new method
2513         setting the error and completing the request.
2514         * WebProcess/soup/WebSoupRequestManager.h:
2515         (WebSoupRequestManager): Add new method header.
2516         * WebProcess/soup/WebSoupRequestManager.messages.in: Add new method
2517         signature.
2518
2519 2013-05-06  Anders Carlsson  <andersca@apple.com>
2520
2521         Every LocalStorageDatabase should know about its tracker
2522         https://bugs.webkit.org/show_bug.cgi?id=115673
2523
2524         Reviewed by Andreas Kling.
2525
2526         * UIProcess/Storage/LocalStorageDatabase.cpp:
2527         (WebKit::LocalStorageDatabase::create):
2528         (WebKit::LocalStorageDatabase::LocalStorageDatabase):
2529         * UIProcess/Storage/LocalStorageDatabase.h:
2530         * UIProcess/Storage/StorageManager.cpp:
2531         (WebKit::StorageManager::StorageArea::StorageArea):
2532
2533 2013-05-06  Anders Carlsson  <andersca@apple.com>
2534
2535         Add LocalStorageDatabaseTracker class
2536         https://bugs.webkit.org/show_bug.cgi?id=115671
2537
2538         Reviewed by Andreas Kling.
2539
2540         Somewhat unsurprisingly, this class will be used for tracking local storage databases.
2541
2542         * UIProcess/Storage/LocalStorageDatabaseTracker.cpp: Added.
2543         (WebKit::LocalStorageDatabaseTracker::create):
2544         (WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
2545         (WebKit::LocalStorageDatabaseTracker::~LocalStorageDatabaseTracker):
2546         * UIProcess/Storage/LocalStorageDatabaseTracker.h: Added.
2547         (LocalStorageDatabaseTracker):
2548         
2549         * UIProcess/Storage/StorageManager.cpp:
2550         (WebKit::StorageManager::StorageManager):
2551         Create a local storage database tracker.
2552
2553         * WebKit2.xcodeproj/project.pbxproj:
2554         Add new files.
2555
2556 2013-05-06  Anders Carlsson  <andersca@apple.com>
2557
2558         Handle closing the local storage database
2559         https://bugs.webkit.org/show_bug.cgi?id=115669
2560
2561         Reviewed by Beth Dakin.
2562
2563         * UIProcess/Storage/LocalStorageDatabase.cpp:
2564         (WebKit::LocalStorageDatabase::LocalStorageDatabase):
2565         Initialize m_isClosed.
2566     
2567         (WebKit::LocalStorageDatabase::~LocalStorageDatabase):
2568         Assert that m_isClosed is false.
2569
2570         (WebKit::LocalStorageDatabase::close):
2571         Set m_isClosed to true and write any pending changes to disk.
2572
2573         (WebKit::LocalStorageDatabase::updateDatabase):
2574         Compute the changed items and pass them to updateDatabaseWithChangedItems.
2575
2576         (WebKit::LocalStorageDatabase::updateDatabaseWithChangedItems):
2577         Split out the code that actually writes to the database from updateDatabase and into this function.
2578
2579         * UIProcess/Storage/LocalStorageDatabase.h:
2580         * UIProcess/Storage/StorageManager.cpp:
2581         (WebKit::StorageManager::StorageArea::~StorageArea):
2582         Call close().
2583
2584 2013-05-06  Zan Dobersek  <zdobersek@igalia.com>
2585
2586         [WK2] Make the WebNetworkInfoManagerProxy a supplement to the WebContext
2587         https://bugs.webkit.org/show_bug.cgi?id=115654
2588
2589         Reviewed by Andreas Kling.
2590
2591         Rather than holding a RefPtr to the WebNetworkInfoManagerProxy object in WebContext, change the WebNetworkInfoManagerProxy
2592         to implement the WebContextSupplement interface and handle the object as such in WebContext, simplifying its
2593         construction and cleanup, removing the specific RefPtr member variable and its correlating getter method.
2594
2595         * UIProcess/API/C/WKContext.cpp:
2596         (WKContextGetNetworkInfoManager): Retrieve the WebNetworkInfoManagerProxy object from the suppplements of the WebContext.
2597         * UIProcess/WebContext.cpp:
2598         (WebKit::WebContext::WebContext): Add the WebNetworkInfoManagerProxy object as a supplement instead of assigning it to
2599         the now-removed member variable.
2600         (WebKit::WebContext::~WebContext): No need for the specific cleanup, the equivalent is achieved when iterating through the
2601         supplements vector.
2602         (WebKit::WebContext::disconnectProcess): Ditto.
2603         * UIProcess/WebContext.h:
2604         (WebContext): Remove the WebNetworkInfoManagerProxy RefPtr member variable and its getter method.
2605         * UIProcess/WebNetworkInfoManagerProxy.cpp:
2606         (WebKit::WebNetworkInfoManagerProxy::supplementName): Specift the supplement's name.
2607         (WebKit::WebNetworkInfoManagerProxy::WebNetworkInfoManagerProxy): Initialize as a WebContextSupplement.
2608         (WebKit::WebNetworkInfoManagerProxy::providerDidChangeNetworkInformation): Adjust to use the context() method instead of
2609         accessing the private m_context directly.
2610         (WebKit::WebNetworkInfoManagerProxy::contextDestroyed): Stop updating when invoked.
2611         (WebKit::WebNetworkInfoManagerProxy::processDidClose): Ditto.
2612         (WebKit::WebNetworkInfoManagerProxy::refWebContextSupplement): Call APIObject::ref.
2613         (WebKit::WebNetworkInfoManagerProxy::derefWebContextSupplement): Call APIObject::deref.
2614         * UIProcess/WebNetworkInfoManagerProxy.h:
2615         (WebNetworkInfoManagerProxy): Inherit from WebContextSupplement, declare the newly-inherited methods.
2616
2617 2013-05-06  Alexey Proskuryakov  <ap@apple.com>
2618
2619         <rdar://problem/13479806> [Mac] Pass plug-in bundle ID to LaunchServices
2620         https://bugs.webkit.org/show_bug.cgi?id=115483
2621
2622         Reviewed by Darin Adler.
2623
2624         * PluginProcess/PluginProcess.h: Added m_pluginBundleIdentifier. We now need it
2625         in multiple places, so it's easier to pre-compute it.
2626
2627         * PluginProcess/mac/PluginProcessMac.mm:
2628         (WebKit::loadSandboxProfileForDirectory): Changed to use precomputed bundle ID.
2629         (WebKit::loadSandboxProfile): Ditto.
2630         (WebKit::PluginProcess::platformInitializeProcess): Pre-compute bundle ID.
2631         (WebKit::PluginProcess::initializeProcessName): Pass it to LaunchServices.
2632         (WebKit::PluginProcess::initializeSandbox): Pass precomputed bundle ID instead of
2633         a path.
2634
2635 2013-05-06  Anders Carlsson  <andersca@apple.com>
2636
2637         Handle removeItem and clear in LocalStorageDatabase
2638         https://bugs.webkit.org/show_bug.cgi?id=115664
2639
2640         Reviewed by Darin Adler.
2641
2642         * UIProcess/Storage/LocalStorageDatabase.cpp:
2643         (WebKit::LocalStorageDatabase::removeItem):
2644         Call itemDidChange with a null value, indicating that we want to remove this item.
2645
2646         (WebKit::LocalStorageDatabase::clear):
2647         Clear items, set m_shouldClearItems and schedule a database update.
2648
2649         (WebKit::LocalStorageDatabase::updateDatabase):
2650         If m_shouldClearItems is true, clear all items.
2651
2652         * UIProcess/Storage/StorageManager.cpp:
2653         (WebKit::StorageManager::StorageArea::removeItem):
2654         Call through to the local storage database.
2655
2656         (WebKit::StorageManager::StorageArea::clear):
2657         Ditto.
2658
2659 2013-05-06  Anders Carlsson  <andersca@apple.com>
2660
2661         Write storage changes to disk
2662         https://bugs.webkit.org/show_bug.cgi?id=115660
2663
2664         Reviewed by Andreas Kling.
2665
2666         * UIProcess/Storage/LocalStorageDatabase.cpp:
2667         (WebKit::LocalStorageDatabase::LocalStorageDatabase):
2668         Initialize new member variables.
2669
2670         (WebKit::LocalStorageDatabase::tryToOpenDatabase):
2671         Disable database threading checks.
2672
2673         (WebKit::LocalStorageDatabase::importItems):
2674         Only import the items once.
2675
2676         (WebKit::LocalStorageDatabase::setItem):
2677         Call itemDidChange.
2678
2679         (WebKit::LocalStorageDatabase::itemDidChange):
2680         Record the change and schedule a database update.
2681
2682         (WebKit::LocalStorageDatabase::scheduleDatabaseUpdate):
2683         Use WorkQueue::dispatchAfterDelay to schedule a datbase update.
2684
2685         (WebKit::LocalStorageDatabase::updateDatabase):
2686         Write changes to disk. If there are more than 100 pending items, only write the first 100 and then schedule
2687         another database update for the remaining items.
2688
2689         * UIProcess/Storage/LocalStorageDatabase.h:
2690         Add new member variables.
2691
2692         * UIProcess/Storage/StorageManager.cpp:
2693         (WebKit::StorageManager::StorageArea::setItem):
2694         Call LocalStorageDatabase::setItem.
2695
2696 2013-05-06  Zan Dobersek  <zdobersek@igalia.com>
2697
2698         [WK2] Make the WebBatteryManagerProxy a supplement to the WebContext
2699         https://bugs.webkit.org/show_bug.cgi?id=115625
2700
2701         Reviewed by Andreas Kling.
2702
2703         Rather than holding a RefPtr to the WebBatteryManagerProxy object in WebContext, change the WebBatteryManagerProxy
2704         to implement the WebContextSupplement interface and handle the object as such in WebContext, simplifying its
2705         construction and cleanup, removing the specific RefPtr member variable and its correlating getter method.
2706
2707         * UIProcess/API/C/WKContext.cpp:
2708         (WKContextGetBatteryManager): Retrieve the WebBatteryManagerProxy object from the supplements of the WebContext.
2709         * UIProcess/WebBatteryManagerProxy.cpp:
2710         (WebKit::WebBatteryManagerProxy::supplementName): Specify the supplement's name.
2711         (WebKit::WebBatteryManagerProxy::WebBatteryManagerProxy): Initialize as a WebContextSupplementable.
2712         (WebKit::WebBatteryManagerProxy::providerDidChangeBatteryStatus): Adjust to use the context() method instead of accessing
2713         the private m_context directly.
2714         (WebKit::WebBatteryManagerProxy::providerUpdateBatteryStatus): Ditto.
2715         (WebKit::WebBatteryManagerProxy::contextDestroyed): Stop updating when invoked.
2716         (WebKit::WebBatteryManagerProxy::processDidClose): Ditto.
2717         (WebKit::WebBatteryManagerProxy::refWebContextSupplement): Call APIObject::ref.
2718         (WebKit::WebBatteryManagerProxy::derefWebContextSupplement): Call APIObject::deref.
2719         (WebKit::WebBatteryManagerProxy::startUpdating): Fire up the provider if not yet updating.
2720         (WebKit::WebBatteryManagerProxy::stopUpdating): Wind down the provider if updating.
2721         * UIProcess/WebBatteryManagerProxy.h:
2722         (WebBatteryManagerProxy): Inherit from WebContextSupplement, declare the newly-inherited methods.
2723         * UIProcess/WebContext.cpp:
2724         (WebKit::WebContext::WebContext): Add the WebBatteryManagerProxy object as a supplement instead of assigning it to
2725         the now-removed member variable.
2726         (WebKit::WebContext::~WebContext): No need for the specific cleanup, the equivalent is achieved when iterating through the
2727         supplements vector.
2728         (WebKit::WebContext::disconnectProcess): Ditto.
2729         * UIProcess/WebContext.h:
2730         (WebContext): Remove the WebBatteryManagerProxy RefPtr member variable and its getter method.
2731
2732 2013-05-06  Antoine Quint  <graouts@apple.com>
2733
2734         Manage the presentation of the snapshotted plug-in using JavaScript
2735         https://bugs.webkit.org/show_bug.cgi?id=115548
2736
2737         Reviewed by Dean Jackson.
2738
2739         Expose a new plugInExtraScript method to support the injection of
2740         a JS file from the chrome client to customize the rendering of a
2741         snapshotted plug-in's shadow tree. Additionally, it is expected
2742         the chrome client will want to provide localized strings taking
2743         into account the snapshotted plug-in's mime-type, so we're adding
2744         this as a parameter to both plugInStartLabelTitle and
2745         plugInStartLabelSubtitle methods.
2746
2747         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
2748         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
2749         (WebKit::InjectedBundlePageUIClient::plugInStartLabelTitle):
2750         (WebKit::InjectedBundlePageUIClient::plugInStartLabelSubtitle):
2751         (WebKit::InjectedBundlePageUIClient::plugInExtraScript):
2752         * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
2753         (InjectedBundlePageUIClient):
2754         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
2755         (WebKit::WebChromeClient::plugInStartLabelTitle):
2756         (WebKit::WebChromeClient::plugInStartLabelSubtitle):
2757         (WebKit::WebChromeClient::plugInExtraScript):
2758         * WebProcess/WebCoreSupport/WebChromeClient.h:
2759         (WebChromeClient):
2760
2761 2013-05-05  Chris Fleizach  <cfleizach@apple.com>
2762
2763         WEB SPEECH: deny file-read-data /Library/Speech/Synthesizers
2764         https://bugs.webkit.org/show_bug.cgi?id=115621
2765
2766         Reviewed by Alexey Proskuryakov.
2767
2768         Allow access to the location where 3rd party speech synthesizers are stored.
2769
2770         * WebProcess/com.apple.WebProcess.sb.in:
2771
2772 2013-05-05  Tim Horton  <timothy_horton@apple.com>
2773
2774         [wk2] Page Overlays: deviceScaleFactor doesn't update when the display changes
2775         https://bugs.webkit.org/show_bug.cgi?id=115577
2776         <rdar://problem/13762583>
2777
2778         Reviewed by Darin Adler.
2779
2780         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
2781         (WebKit::TiledCoreAnimationDrawingArea::setDeviceScaleFactor):
2782         Invalidate the page overlay layers' device scale factor when
2783         TiledCoreAnimationDrawingArea is notified that it has changed.
2784
2785 2013-05-05  Anders Carlsson  <andersca@apple.com>
2786
2787         Remove the Vector::append overload that takes a Vector
2788         https://bugs.webkit.org/show_bug.cgi?id=115535
2789
2790         Reviewed by Andreas Kling.
2791
2792         Use Vector::appendVector instead.
2793
2794         * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
2795         (WebKit::NetworkBlobRegistry::registerBlobURL):
2796         * NetworkProcess/SchedulableLoader.cpp:
2797         (WebKit::SchedulableLoader::SchedulableLoader):
2798         * Platform/CoreIPC/Connection.cpp:
2799         (CoreIPC::Connection::SyncMessageState::dispatchMessages):
2800         * UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
2801         (WebKit::PluginInfoStore::pluginsDirectories):
2802
2803 2013-05-04  Sam Weinig  <sam@webkit.org>
2804
2805         Fix * placement in a few functions as noticed by Mark Rowe.
2806
2807         Rubber-stamped by Dan Bernstein.
2808
2809         * WebProcess/WebPage/PageBanner.h:
2810         (PageBanner):
2811         * WebProcess/WebPage/mac/PageBannerMac.mm:
2812         (WebKit::PageBanner::create):
2813         (WebKit::PageBanner::PageBanner):
2814
2815 2013-05-04  Sam Weinig  <sam@webkit.org>
2816
2817         REGRESSION(r148312): Crash when calling WKPageClose(page) followed by WKPageTerminate(page)
2818         <rdar://problem/13702008>
2819         https://bugs.webkit.org/show_bug.cgi?id=115607
2820
2821         Reviewed by Benjamin Poulain.
2822
2823         API Test: WebKit2.CloseThenTerminate
2824
2825         * UIProcess/WebPageProxy.cpp:
2826         (WebKit::WebPageProxy::resetStateAfterProcessExited):
2827         Don't try to reset the state if the page is closed, it won't work and its not worth it.
2828
2829 2013-05-04  Beth Dakin  <bdakin@apple.com>
2830
2831         https://bugs.webkit.org/show_bug.cgi?id=115574
2832         Crash using new WKBundlePageSetHeaderBanner() API to set a banner to null
2833
2834         Reviewed by Darin Adler.
2835
2836         Don't call addToPage() on a null banner.
2837         * WebProcess/WebPage/WebPage.cpp:
2838         (WebKit::WebPage::setHeaderPageBanner):
2839         (WebKit::WebPage::setFooterPageBanner):
2840
2841 2013-05-03  Alexey Proskuryakov  <ap@apple.com>
2842
2843         <rdar://problem/13806836> Tweak sandbox profile.
2844
2845         Reviewed by Dan Bernstein.
2846
2847         * WebProcess/com.apple.WebProcess.sb.in:
2848
2849 2013-05-03  Tim Horton  <timothy_horton@apple.com>
2850
2851         PDFPlugin: Changes being made to active annotation aren't saved when the PDF is exported
2852         https://bugs.webkit.org/show_bug.cgi?id=115544
2853         <rdar://problem/13801789>
2854
2855         Reviewed by Alexey Proskuryakov.
2856
2857         Commit changes to the active annotation (if there is one) before
2858         returning the live PDF data, so that said changes are represented
2859         in the exported or printed output.
2860
2861         * WebProcess/Plugins/PDF/PDFPlugin.h: Override liveData.
2862         * WebProcess/Plugins/PDF/PDFPlugin.mm:
2863         (WebKit::PDFPlugin::liveData): Commit the active annotation if there is one.
2864         * WebProcess/Plugins/PDF/SimplePDFPlugin.h:
2865         (SimplePDFPlugin): Make liveData virtual.
2866
2867 2013-05-03  Tim Horton  <timothy_horton@apple.com>
2868
2869         Web process crashes at WebPage::determinePrimarySnapshottedPlugInTimerFired + 8
2870         https://bugs.webkit.org/show_bug.cgi?id=115056
2871         <rdar://problem/13719543>
2872
2873         Reviewed by Simon Fraser.
2874
2875         Null-check m_page. In theory, we shouldn't get here, because we stop
2876         the timer at the only point where m_page is cleared, but crash logs say
2877         we're still crashing here.
2878
2879         * WebProcess/WebPage/WebPage.cpp:
2880         (WebKit::WebPage::determinePrimarySnapshottedPlugInTimerFired):
2881
2882 2013-05-03  Tim Horton  <timothy_horton@apple.com>
2883
2884         Remove some "what" comments from FindController
2885         https://bugs.webkit.org/show_bug.cgi?id=115546
2886
2887         Reviewed by Andreas Kling.
2888
2889         * WebProcess/WebPage/FindController.cpp:
2890         (WebKit::FindController::countStringMatches):
2891         (WebKit::FindController::updateFindUIAfterPageScroll):
2892         (WebKit::FindController::willMoveToWebPage):
2893         (WebKit::FindController::mouseEvent):
2894         Remove or reword some comments.
2895
2896 2013-05-02  Andy Estes  <aestes@apple.com>
2897
2898         [WK2][CustomProtocols] NSURLProtocolClient methods should be dispatched on NSURLConnection's resource loader run loop
2899         https://bugs.webkit.org/show_bug.cgi?id=115539
2900
2901         Reviewed by Alexey Proskuryakov.
2902
2903         It turns out that calling NSURLProtocolClient methods from a different
2904         thread than the one running the NSURLConnection run loop is unsafe.
2905         Although I can't capture it reliably in a test case, doing so can
2906         sometimes result in a load timing out because the call to
2907         -[NSURLProtocolClient URLProtocolDidFinishLoading:] was ignored by
2908         NSURLConnection.
2909
2910         Fix this by dispatching these methods on the NSURLConnection resource
2911         load run loop. This matches where NSURLProtocolClient methods are
2912         dispatched by typical NSURLProtocol implementations, and in my testing
2913         this solves the timeout issue.
2914
2915         * Shared/Network/CustomProtocols/CustomProtocolManager.h: Declare
2916         dispatchOnResourceLoaderRunLoop().
2917         * Shared/Network/CustomProtocols/mac/CustomProtocolManagerMac.mm:
2918         Declare +[NSURLConnection resourceLoaderRunLoop] on a category of
2919         NSURLConnection. Also include the header that declares it if it's present.
2920         (WebKit::CustomProtocolManager::didFailWithError): Call the
2921         NSURLProtocolClient method via dispatchOnResourceLoaderRunLoop().
2922         (WebKit::CustomProtocolManager::didLoadData): Ditto.
2923         (WebKit::CustomProtocolManager::didReceiveResponse): Ditto.
2924         (WebKit::CustomProtocolManager::didFinishLoading): Ditto.
2925         (WebKit::CustomProtocolManager::dispatchOnResourceLoaderRunLoop):
2926         Dispatch a block on the NSURLConnection resource loader run loop and
2927         then wake up the run loop.
2928
2929 2013-05-02  Brady Eidson  <beidson@apple.com>
2930
2931         REGRESSION (149389) Main resources converted to downloads are immediately cancelled.
2932         <rdar://problem/13795795> and https://bugs.webkit.org/show_bug.cgi?id=115530
2933
2934         Reviewed by Alexey Proskuryakov.
2935
2936         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
2937         (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): Call didConvertHandleToDownload
2938           on the NetworkResourceLoader.
2939
2940         * NetworkProcess/NetworkResourceLoader.cpp:
2941         (WebKit::NetworkResourceLoader::NetworkResourceLoader):
2942         (WebKit::NetworkResourceLoader::didConvertHandleToDownload): Set m_handleConvertedToDownload to true.
2943         (WebKit::NetworkResourceLoader::abort): Only cancel the handle if m_handleConvertedToDownload is false.
2944         * NetworkProcess/NetworkResourceLoader.h:
2945
2946 2013-05-02  Alexey Proskuryakov  <ap@apple.com>
2947
2948         <rdar://problem/13740375> Non-ASCII downloaded file names are garbled when using NetworkProcess
2949         https://bugs.webkit.org/show_bug.cgi?id=115520
2950
2951         Reviewed by Darin Adler.
2952
2953         * Shared/mac/WebCoreArgumentCodersMac.mm:
2954         (CoreIPC::::encodePlatformData):
2955         (CoreIPC::::decodePlatformData):
2956         Send the encoding fallback array over IPC, so that it's present when NetworkProcess does its loading.
2957
2958 2013-05-01  Alexey Proskuryakov  <ap@apple.com>
2959
2960         REGRESSION (r149422): -[WKBrowsingContextController loadFileURL:restrictToFilesWithin:]
2961         broken when second argument is nil
2962         https://bugs.webkit.org/show_bug.cgi?id=115505
2963         <rdar://problem/13787297>
2964
2965         Reviewed by Darin Adler.
2966
2967         * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::loadFile): Pass a URL string
2968         to assumeReadAccessToBaseURL, as this is what it takes.
2969
2970 2013-05-01  Ryosuke Niwa  <rniwa@webkit.org>
2971
2972         [Mac] WebKit doesn't enable or disable autocorrections when system preferences are changed
2973         https://bugs.webkit.org/show_bug.cgi?id=115463
2974
2975         Reviewed by Darin Adler.
2976
2977         Observe the default notification center and propagate the changes to TextCheckerState and
2978         to all WebProcesses when system preferences are updated.
2979
2980         * UIProcess/TextChecker.h:
2981         * UIProcess/WebContext.h:
2982         * UIProcess/mac/TextCheckerMac.mm:
2983         (WebKit::shouldAutomaticTextReplacementBeEnabled):
2984         (WebKit::shouldAutomaticSpellingCorrectionBeEnabled):
2985         (WebKit::shouldAutomaticQuoteSubstitutionBeEnabled):
2986         (WebKit::shouldAutomaticDashSubstitutionBeEnabled):
2987         (WebKit::initializeState):
2988         (WebKit::TextChecker::didChangeAutomaticTextReplacementEnabled):
2989         (WebKit::TextChecker::didChangeAutomaticSpellingCorrectionEnabled):
2990         (WebKit::TextChecker::didChangeAutomaticQuoteSubstitutionEnabled):
2991         (WebKit::TextChecker::didChangeAutomaticDashSubstitutionEnabled):
2992         * UIProcess/mac/WebContextMac.mm:
2993         (WebKit::WebContext::registerNotificationObservers):
2994         (WebKit::WebContext::unregisterNotificationObservers):
2995
2996 2013-05-01  Ryuan Choi  <ryuan.choi@samsung.com>
2997
2998         [GTK] Fix build break after r149449
2999         https://bugs.webkit.org/show_bug.cgi?id=115500
3000
3001         Reviewed by Gustavo Noronha Silva.
3002
3003         Unreviewed GTK build fix
3004
3005         * GNUmakefile.list.am: Added LocalStorageDatabase.[cpp|h] to the list of
3006         sources.
3007
3008 2013-05-01  Martin Robinson  <mrobinson@igalia.com>
3009
3010         [GTK] [WebKit2] Documentation for webkit_web_view_run_javascript should indicate what happens when JavaScript is disabled
3011         https://bugs.webkit.org/show_bug.cgi?id=115492
3012
3013         Reviewed by Xan Lopez.
3014
3015         * UIProcess/API/gtk/WebKitWebView.cpp: Clarify the documentation.
3016
3017 2013-05-01  Tim Horton  <timothy_horton@apple.com>
3018
3019         Move knowledge of PDF/PostScript MIME types into MIMETypeRegistry
3020         https://bugs.webkit.org/show_bug.cgi?id=115487
3021
3022         Reviewed by Darin Adler.
3023
3024         * UIProcess/WebContext.cpp:
3025         * UIProcess/WebContext.h:
3026         Remove pdfAndPostScriptMIMETypes.
3027
3028         * UIProcess/WebFrameProxy.cpp:
3029         (WebKit::WebFrameProxy::canShowMIMEType): Move PDF bits to WebPageProxy.
3030         (WebKit::WebFrameProxy::isDisplayingPDFDocument):
3031         Make use of WebCore's newfound knowledge of PDF and PostScript MIME types,
3032         so we don't have to duplicate it unnecessarily in WebKit2.
3033
3034         * UIProcess/WebPageProxy.cpp:
3035         (WebKit::WebPageProxy::canShowMIMEType):
3036         Add code which used to be in WebFrameProxy::canShowMIMEType, and adapt it
3037         to use WebCore's knowledge of PDF and PostScript MIME types.
3038
3039         * WebProcess/Plugins/PDF/SimplePDFPlugin.mm:
3040         (WebKit::SimplePDFPlugin::pluginInfo):
3041         We previously supported the "text/pdf" MIME type for PDFViewController,
3042         so SimplePDFPlugin and PDFPlugin should support it as well.
3043
3044         * WebProcess/WebPage/WebPage.cpp:
3045         (WebKit::WebPage::createPlugin):
3046         Adopt MIMETypeRegistry::isPDFOrPostScriptMIMEType.
3047
3048         * WebProcess/WebPage/WebPage.h:
3049         (WebPage):
3050         Remove pdfAndPostScriptMIMETypes.
3051
3052         * WebProcess/WebPage/mac/WebPageMac.mm:
3053         (WebKit::WebPage::platformPreferencesDidChange):
3054         Adopt getPDFAndPostScriptMIMETypes instead of duplicating the list in WebKit2.
3055
3056 2013-05-01  Anders Carlsson  <andersca@apple.com>
3057
3058         Implement LocalStorageDatabase::importItems
3059         https://bugs.webkit.org/show_bug.cgi?id=115493
3060
3061         Reviewed by Andreas Kling.
3062
3063         Fetch items and insert them in the storage map.
3064         * UIProcess/Storage/LocalStorageDatabase.cpp:
3065         (WebKit::LocalStorageDatabase::importItems):
3066
3067 2013-05-01  Anders Carlsson  <andersca@apple.com>
3068
3069         Begin work on loading items from the local storage database
3070         https://bugs.webkit.org/show_bug.cgi?id=115489
3071
3072         Reviewed by Andreas Kling.
3073
3074         Some of the LocalStorageDatabase code is originally from WebCore,
3075         but has been simplified due to the fact that we don't need to load
3076         database data asynchronously since we're already running on a non-main thread.
3077
3078         * UIProcess/Storage/LocalStorageDatabase.cpp:
3079         (WebKit::LocalStorageDatabase::LocalStorageDatabase):
3080         (WebKit::LocalStorageDatabase::openDatabase):
3081         (WebKit::LocalStorageDatabase::tryToOpenDatabase):
3082         (WebKit::LocalStorageDatabase::migrateItemTableIfNeeded):
3083         (WebKit::LocalStorageDatabase::importItems):
3084
3085         * UIProcess/Storage/LocalStorageDatabase.h:
3086         (WebKit::StorageManager::StorageArea::setItem):
3087         (WebKit::StorageManager::StorageArea::removeItem):
3088         (WebKit::StorageManager::StorageArea::clear):
3089         (WebKit::StorageManager::StorageArea::items):
3090         Call importItemsFromDatabase().
3091         
3092         (WebKit::StorageManager::StorageArea::importItemsFromDatabase):
3093         Ask the database to import the items.
3094
3095 2013-05-01  Ryuan Choi  <ryuan.choi@samsung.com>
3096
3097         [EFL] Unreviewed buildfix after r149449.
3098
3099         * CMakeLists.txt:
3100
3101 2013-05-01  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
3102
3103         [Qt] Unreviewed buildfix after r149449.
3104
3105         * Target.pri:
3106
3107 2013-05-01  Anders Carlsson  <andersca@apple.com>
3108
3109         Add LocalStorageDatabase class
3110         https://bugs.webkit.org/show_bug.cgi?id=115486
3111
3112         Reviewed by Sam Weinig.
3113
3114         The LocalStorageDatabase class will persist local storage data to disk.
3115
3116         * UIProcess/Storage/LocalStorageDatabase.cpp:
3117         * UIProcess/Storage/LocalStorageDatabase.h: Added.
3118
3119         * UIProcess/Storage/StorageManager.cpp:
3120         (StorageManager::StorageArea):
3121         (WebKit::StorageManager::LocalStorageNamespace::storageManager):
3122         Add getter.
3123
3124         (StorageManager::LocalStorageNamespace):
3125         (WebKit::StorageManager::StorageArea::StorageArea):
3126         If this is a local storage area, create a LocalStorageDatabase.
3127
3128         (WebKit::StorageManager::LocalStorageNamespace::databaseFilename):
3129         Helper function for getting the name of the database for the given origin.
3130
3131         * WebKit2.xcodeproj/project.pbxproj:
3132         Add new files.
3133
3134 2013-05-01  Alexey Proskuryakov  <ap@apple.com>
3135
3136         <rdar://problem/13781156> Launching NetworkProcess broken on some OS versions.
3137
3138         Reviewed by Anders Carlsson.
3139
3140         Adapt to LaunchServices changes.
3141
3142         * Shared/mac/ChildProcessMac.mm:
3143         (WebKit::ChildProcess::setApplicationIsDaemon):
3144
3145 2013-05-01  Martin Robinson  <mrobinson@igalia.com>
3146
3147         [GTK] [WebKit2] Add a setting to control whether or not accelerated 2D canvas is enabled
3148         https://bugs.webkit.org/show_bug.cgi?id=114394
3149
3150         Reviewed by Anders Carlsson.
3151
3152         Add a setting to control accelerated 2D canvas, which determines whether
3153         or not to consider rendering HTML canvas with hardware acceleration.
3154
3155         * UIProcess/API/gtk/WebKitSettings.cpp:
3156         (webKitSettingsSetProperty): Added support for enable-accelerated-2d-canvas property.
3157         (webKitSettingsGetProperty): Added support for enable-accelerated-2d-canvas property.
3158         (webkit_settings_class_init): Added support for enable-accelerated-2d-canvas property.
3159         (webkit_settings_get_enable_accelerated_2d_canvas): Added.
3160         (webkit_settings_set_enable_accelerated_2d_canvas): Added.
3161         * UIProcess/API/gtk/WebKitSettings.h: New methods.
3162         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added new methods to the documentation.
3163         * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
3164         (testWebKitSettings): Added a simple test for the setting.
3165
3166 2013-04-30  Jer Noble  <jer.noble@apple.com>
3167
3168         Entering full screen mode shows desktop linen instead of WKView the first time.
3169         https://bugs.webkit.org/show_bug.cgi?id=115433
3170         <rdar://problem/13774540>
3171
3172         Reviewed by Eric Carlson.
3173
3174         For certain types of windows created by subclasses of WKView, the window in question fails to paint
3175         when created with a zero-size rect. Create the window with an initial size of the active screen frame
3176         as that is the likely destination size.
3177
3178         * UIProcess/API/mac/WKView.mm:
3179         (-[WKView createFullScreenWindow]):
3180
3181 2013-05-01  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
3182
3183         [Qt][Win] Fix build after r149416.
3184         https://bugs.webkit.org/show_bug.cgi?id=115474
3185
3186         Reviewed by Anders Carlsson.
3187
3188         * Platform/CoreIPC/Connection.h:
3189         (Connection):
3190         * Platform/CoreIPC/win/ConnectionWin.cpp:
3191         (CoreIPC::Connection::dispatchSentMessagesUntil):
3192
3193 2013-05-01  Sergio Villar Senin  <svillar@igalia.com>
3194
3195         Unreviewed GTK build fix after r149417.
3196
3197         * GNUmakefile.list.am: Added PageBanner.[cpp|h] to the list of
3198         sources.
3199
3200 2013-05-01  Ryuan Choi  <ryuan.choi@samsung.com>
3201
3202         [EFL] Unreviewed buildfix after r149416 and r149417.
3203
3204         Unreviewed build fix.
3205
3206         * CMakeLists.txt:
3207
3208 2013-05-01  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
3209
3210         [Qt] Unreviewed buildfix after r149416 and r149417.
3211
3212         * Target.pri:
3213
3214 2013-04-30  Dongwoo Joshua Im  <dw.im@samsung.com>
3215
3216         [EFL] Unreviewed, EFL build fix after r149416
3217         https://bugs.webkit.org/show_bug.cgi?id=115467
3218
3219         Unreviewed build fix.
3220
3221         * CMakeLists.txt: Remove non-existing file, BinarySemaphore.cpp, from the list.
3222
3223 2013-04-30  Simon Cooper  <scooper@apple.com>
3224
3225         ipc-posix-shm backwards compatibility 
3226         https://bugs.webkit.org/show_bug.cgi?id=115448
3227         <rdar://problem/13743037>
3228
3229         Reviewed by Alexey Proskuryakov.
3230
3231         Add compatibility for older ipc-posix-shm operations, but prefer the
3232         newer names when writing profiles.
3233
3234         * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
3235
3236 2013-04-30  Philippe Normand  <pnormand@igalia.com>
3237
3238         Unreviewed, GTK build fix after r149416.
3239
3240         * GNUmakefile.list.am: Remove references to non-existant
3241         BinarySemaphore module.
3242
3243 2013-04-28  Alexey Proskuryakov  <ap@apple.com>
3244
3245         <rdar://problem/13574729> Implement file path restrictions in WebKit Objective C API
3246         https://bugs.webkit.org/show_bug.cgi?id=115321
3247
3248         Reviewed by Darin Adler.
3249
3250         * UIProcess/API/C/WKPage.cpp:
3251         * UIProcess/API/C/WKPage.h: 
3252         * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::loadFile):
3253         * UIProcess/WebPageProxy.h:
3254         Added and implemented a C API to load a file while only opening sandbox for
3255         a specific directory.
3256
3257         * UIProcess/API/mac/WKBrowsingContextController.h: Fixed a typo in a comment.
3258
3259         * UIProcess/API/mac/WKBrowsingContextController.mm:
3260         (-[WKBrowsingContextController loadFileURL:restrictToFilesWithin:]):
3261         Respect allowedDirectory argument. Updated the function to raise an exception for
3262         incorrect input, as decribed in header file.
3263
3264 2013-04-29  Sam Weinig  <sam@webkit.org>
3265
3266         Add API to allow WebKit2 banners to get mouse events
3267         https://bugs.webkit.org/show_bug.cgi?id=115395
3268
3269         Reviewed by Beth Dakin.
3270
3271         * Shared/API/c/WKBase.h:
3272         * Shared/APIObject.h:
3273         Add banner type.
3274
3275         * WebKit2.xcodeproj/project.pbxproj:
3276         Add files.
3277
3278         * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h:
3279         Add conversion.
3280
3281         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
3282         (WKBundlePageSetTopOverhangImage):
3283         (WKBundlePageSetBottomOverhangImage):
3284         Fix parameter names to be consistent.
3285
3286         (WKBundlePageSetHeaderBanner):
3287         (WKBundlePageSetFooterBanner):
3288         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
3289         * WebProcess/InjectedBundle/API/c/WKBundlePageBanner.cpp: Added.
3290         (WKBundlePageBannerGetTypeID):
3291         * WebProcess/InjectedBundle/API/c/WKBundlePageBanner.h: Added.
3292         * WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.h: Added.
3293         * WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm: Added.
3294         (PageBannerClientImpl):
3295         (PageBannerClientImpl::create):
3296         (PageBannerClientImpl::PageBannerClientImpl):
3297         (PageBannerClientImpl::pageBannerDestroyed):
3298         (PageBannerClientImpl::mouseEvent):
3299         (WKBundlePageBannerCreateBannerWithCALayer):
3300         (WKBundlePageBannerGetLayer):
3301         Add banner API.
3302
3303         * WebProcess/WebPage/PageBanner.h: Added.
3304         * WebProcess/WebPage/PageBanner.cpp: Added.
3305         (WebKit::PageBanner::~PageBanner):
3306         (WebKit::PageBanner::addToPage):
3307         (WebKit::PageBanner::detachFromPage):
3308         (WebKit::PageBanner::didChangeDeviceScaleFactor):
3309         (WebKit::PageBanner::mouseEvent):
3310         Add non-mac implementations.
3311
3312         * WebProcess/WebPage/WebPage.cpp:
3313         (WebKit::WebPage::~WebPage):
3314         (WebKit::WebPage::setHeaderPageBanner):
3315         (WebKit::WebPage::headerPageBanner):
3316         (WebKit::WebPage::setFooterPageBanner):
3317         (WebKit::WebPage::footerPageBanner):
3318         (WebKit::WebPage::mouseEvent):
3319         (WebKit::WebPage::mouseEventSyncForTesting):
3320         * WebProcess/WebPage/WebPage.h:
3321         Add banner setter/getters and give the banners a chance to handle mouse events.
3322
3323         * WebProcess/WebPage/mac/PageBannerMac.mm: Added.
3324         (WebKit::PageBanner::create):
3325         (WebKit::PageBanner::PageBanner):
3326         (WebKit::PageBanner::addToPage):
3327         (WebKit::PageBanner::detachFromPage):
3328         (WebKit::PageBanner::didChangeDeviceScaleFactor):
3329         (WebKit::PageBanner::mouseEvent):
3330         (WebKit::PageBanner::layer):
3331         Add Mac implementation.
3332
3333         * WebProcess/WebPage/mac/WebPageMac.mm:
3334         (WebKit::WebPage::updateHeaderAndFooterLayersForDeviceScaleChange):
3335         Notify banners when the device scale changes.
3336
3337 2013-04-30  Anders Carlsson  <andersca@apple.com>
3338
3339         Remove the WebKit2 BinarySemaphore class
3340         https://bugs.webkit.org/show_bug.cgi?id=115458
3341
3342         Reviewed by Benjamin Poulain.
3343
3344         Remove the WK2 specific BinarySemaphore class and use the one from WTF.
3345
3346         * Platform/CoreIPC/BinarySemaphore.cpp: Removed.
3347         * Platform/CoreIPC/BinarySemaphore.h: Removed.
3348         * Platform/CoreIPC/Connection.cpp:
3349         * Platform/CoreIPC/Connection.h:
3350         * WebKit2.xcodeproj/project.pbxproj:
3351
3352 2013-04-30  Alexey Proskuryakov  <ap@apple.com>
3353
3354         <rdar://problem/13757475> WebProcess deny ipc-posix-shm-read-data CFPBS:A2:
3355
3356         Reviewed by Anders Carlsson.
3357
3358         * WebProcess/com.apple.WebProcess.sb.in: Allow pbs shared memory.
3359
3360 2013-04-30  Alexey Proskuryakov  <ap@apple.com>
3361
3362         [Mac] Don't open window server connection in network process
3363         https://bugs.webkit.org/show_bug.cgi?id=115446
3364
3365         Reviewed by Anders Carlsson.
3366
3367         * NetworkProcess/NetworkProcess.cpp:
3368         (WebKit::NetworkProcess::initializeProcess):
3369         * NetworkProcess/NetworkProcess.h:
3370         * NetworkProcess/mac/NetworkProcessMac.mm:
3371         (WebKit::NetworkProcess::initializeProcess):
3372         (WebKit::NetworkProcess::initializeProcessName):
3373         Instead of shutting down a connection after setting process name, just prevent
3374         it from being created.
3375
3376         * Shared/ChildProcess.h:
3377         * Shared/mac/ChildProcessMac.mm: (WebKit::ChildProcess::setApplicationIsDaemon):
3378         Expose a function for client processes to call if they don't run an NSApplication
3379         run loop.
3380
3381         * OfflineStorageProcess/OfflineStorageProcess.cpp:
3382         (WebKit::OfflineStorageProcess::initializeProcess):
3383         * OfflineStorageProcess/OfflineStorageProcess.h:
3384         * OfflineStorageProcess/mac/OfflineStorageProcessMac.mm:
3385         (WebKit::OfflineStorageProcess::initializeProcess):
3386         (WebKit::OfflineStorageProcess::initializeProcessName):
3387         * SharedWorkerProcess/SharedWorkerProcess.cpp:
3388         (WebKit::SharedWorkerProcess::initializeProcess):
3389         (WebKit::SharedWorkerProcess::initializeProcessName):
3390         * SharedWorkerProcess/SharedWorkerProcess.h:
3391         * SharedWorkerProcess/mac/SharedWorkerProcessMac.mm:
3392         (WebKit::SharedWorkerProcess::initializeProcess):
3393         (WebKit::SharedWorkerProcess::initializeProcessName):
3394         Match NetworkProcess for consistency.
3395
3396         * WebProcess/mac/WebProcessMac.mm: (WebKit::WebProcess::initializeProcessName):
3397         Don't null check UI process name. First, it can't be null, and second, some other
3398         processes already don't have this check.
3399
3400 2013-04-30  Tim Horton  <timothy_horton@apple.com>
3401
3402         Disable deprecation warnings around some NSProcessInfo API.
3403
3404         Rubber-stamped by Brady Eidson.
3405
3406         * Shared/mac/ChildProcessMac.mm:
3407         (WebKit::ChildProcess::setProcessSuppressionEnabled):
3408
3409 2013-04-30  Brady Eidson  <beidson@apple.com>
3410
3411         [WK2] Threads get stuck in NetworkProcess when canceling loads in WebProcess.
3412         <rdar://problem/13757687> and https://bugs.webkit.org/show_bug.cgi?id=115319
3413
3414         Written and reviewed by both Alexey Proskuryakov and Brady Eidson.
3415
3416         * NetworkProcess/NetworkConnectionToWebProcess.cpp:
3417         (WebKit::NetworkConnectionToWebProcess::didClose): Call abort() on all loaders
3418           instead of connectionToWebProcessDidClose()
3419         (WebKit::NetworkConnectionToWebProcess::removeLoadIdentifier): Instead of removing
3420           the loader from the scheduler, call abort() which will also end up removing it.
3421
3422         * NetworkProcess/SchedulableLoader.h: Add a virtual abort() call.
3423
3424         * NetworkProcess/NetworkResourceLoader.cpp:
3425         (WebKit::NetworkResourceLoader::sendAbortingOnFailure): Added a messageFlags argument so 
3426           callers can pass DispatchMessageEvenWhenWaitingForSyncReply.
3427         (WebKit::NetworkResourceLoader::abort): Combined "abortInProgressLoad" and "cleanup" to
3428           be a general purpose "cancel"
3429         (WebKit::NetworkResourceLoader::didReceiveBuffer):
3430         (WebKit::NetworkResourceLoader::willSendRequestAsync):
3431         (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):
3432         * NetworkProcess/NetworkResourceLoader.h:
3433
3434         * NetworkProcess/SyncNetworkResourceLoader.cpp:
3435         (WebKit::SyncNetworkResourceLoader::abort):
3436         * NetworkProcess/SyncNetworkResourceLoader.h:
3437
3438         * WebProcess/Network/WebResourceLoadScheduler.cpp:
3439         (WebKit::WebResourceLoadScheduler::remove): Remove an obsolete/incorrect comment.
3440
3441         * WebProcess/Network/WebResourceLoader.cpp:
3442         (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo): Add comment stressing
3443           the importance of this null check so it's not removed again.
3444
3445 2013-04-30  Carlos Garcia Campos  <cgarcia@igalia.com>
3446
3447         [WK2][GTK] MiniBrowser won't play video in <embed> tag
3448         https://bugs.webkit.org/show_bug.cgi?id=113107
3449
3450         Reviewed by Anders Carlsson.
3451
3452         The wrong clip region is used for windowed plugins, because it's
3453         translated to window frame coords again.
3454
3455         * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
3456         (WebKit::NetscapePlugin::platformGeometryDidChange): Do not move
3457         the current clip region.
3458
3459 2013-04-30  Timothy Hatcher  <timothy@apple.com>
3460
3461         Make the Inspector dock to right button work in the WebKit nightlies on Safari 6.0.4.
3462
3463         https://webkit.org/b/115428
3464
3465         Reviewed by Joseph Pecoraro.
3466
3467         * UIProcess/mac/WebInspectorProxyMac.mm:
3468         (WebKit::WebInspectorProxy::createInspectorWindow): Reduce the required Safari version.
3469         (WebKit::WebInspectorProxy::platformDetach): Simplify the frame restoring code so it
3470         works on Safari 6.0.4.
3471
3472 2013-04-30  Artur Moryc  <a.moryc@samsung.com>
3473
3474         [WK2][EFL] Spelling marker disappears while selection is being changed
3475         https://bugs.webkit.org/show_bug.cgi?id=115165
3476
3477         Reviewed by Anders Carlsson.
3478
3479         The marker for a misspelled word disappears while the cursor is being navigated along the word.
3480
3481         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
3482         (WebKit::WebEditorClient::shouldEraseMarkersAfterChangeSelection):
3483
3484 2013-04-30  Zalan Bujtas  <zalan@apple.com>
3485
3486         Animations fail to start on http://www.google.com/insidesearch/howsearchworks/thestory/
3487         https://bugs.webkit.org/show_bug.cgi?id=111244
3488
3489         Reviewed by David Kilzer.
3490         
3491         Enable performance.now() as a minimal subset of Web Timing API. 
3492         It returns DOMHighResTimeStamp, a monotonically increasing value representing the 
3493         number of milliseconds from the start of the navigation of the current document.
3494         JS libraries use this API to check against the requestAnimationFrame() timestamp.
3495
3496         * Configurations/FeatureDefines.xcconfig:
3497
3498 2013-04-29  Chris Fleizach  <cfleizach@apple.com>
3499
3500         WEB SPEECH: need to identify the default voice per language
3501         https://bugs.webkit.org/show_bug.cgi?id=115366
3502
3503         Reviewed by Tim Horton.
3504
3505         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
3506         (InitWebCoreSystemInterface):
3507
3508 2013-04-29  Benjamin Poulain  <benjamin@webkit.org>
3509
3510         [WK2] Streamline the use of strings in WebProcess::getWebCoreStatistics
3511         https://bugs.webkit.org/show_bug.cgi?id=115315
3512
3513         Reviewed by Geoffrey Garen.
3514
3515         Remove a couple of unjustified DEFINE_STATIC_LOCAL.
3516         Use ASCIILiteral when allocating new String.
3517
3518         * WebProcess/WebProcess.cpp:
3519         (WebKit::getWebCoreMemoryCacheStatistics):
3520         (WebKit::WebProcess::getWebCoreStatistics):
3521
3522 2013-04-29  Anders Carlsson  <andersca@apple.com>
3523
3524         Remove StorageTracker::originsLoaded
3525         https://bugs.webkit.org/show_bug.cgi?id=115382
3526
3527         Reviewed by Sam Weinig.
3528
3529         Add m_didFinishLoadingOrigins.
3530
3531         * WebProcess/Storage/WebKeyValueStorageManager.cpp:
3532         (WebKit::WebKeyValueStorageManager::WebKeyValueStorageManager):
3533         (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
3534         (WebKit::WebKeyValueStorageManager::didFinishLoadingOrigins):
3535         * WebProcess/Storage/WebKeyValueStorageManager.h:
3536         (WebKeyValueStorageManager):
3537
3538 2013-04-29  Chris Fleizach  <cfleizach@apple.com>
3539
3540         WEB SPEECH Update seatbelt profile to work with speech synthesis
3541         https://bugs.webkit.org/show_bug.cgi?id=115368
3542
3543         Reviewed by Alexey Proskuryakov.
3544
3545         * WebProcess/com.apple.WebProcess.sb.in:
3546
3547 2013-04-28  Beth Dakin  <bdakin@apple.com>
3548
3549         Need a LayoutMilestone to fire when we have done our first paint after suppressing 
3550         incremental layout
3551         https://bugs.webkit.org/show_bug.cgi?id=115330
3552         -and corresponding-
3553         <rdar://problem/12722365>
3554
3555         Reviewed by Simon Fraser.
3556
3557         Two new millstones.
3558         * Shared/API/c/WKPageLoadTypes.h:
3559         * Shared/API/c/WKSharedAPICast.h:
3560         (WebKit::toWKLayoutMilestones):
3561         (WebKit::toLayoutMilestones):
3562
3563         This null-check is necessary now since this code ends up running at 
3564         WebFrame::init() time while we're setting up the Document. 
3565         setVisualUpdatesAllowed(true) has always been called as a part of that process, 
3566         and now the updateLayout(), ends up calling this code too, but we don't actually 
3567         have a mainFrame yet since it's still being created.
3568         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
3569         (WebKit::findLargestFrameInFrameSet):
3570
3571 2013-04-29  Brady Eidson  <beidson@apple.com>
3572
3573         REGRESSION: We see authentication challenge sheets for favicon requests.
3574         <rdar://problem/13753470> and https://bugs.webkit.org/show_bug.cgi?id=115288
3575
3576         Reviewed by Alexey Proskuryakov.
3577
3578         Have NetworkResourceLoadParameters remember the ClientCredentialPolicy:
3579         * Shared/Network/NetworkResourceLoadParameters.cpp:
3580         (WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
3581         (WebKit::NetworkResourceLoadParameters::encode):
3582         (WebKit::NetworkResourceLoadParameters::decode):
3583         * Shared/Network/NetworkResourceLoadParameters.h:
3584
3585         Pass along the ClientCredentialPolicy to the NetworkProcess:
3586         * WebProcess/Network/WebResourceLoadScheduler.cpp:
3587         (WebKit::WebResourceLoadScheduler::scheduleLoad):
3588         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
3589         (WebKit::WebPlatformStrategies::loadResourceSynchronously):
3590         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
3591
3592         Have the SchedulableLoader remember the ClientCredentialPolicy:
3593         * NetworkProcess/SchedulableLoader.cpp:
3594         (WebKit::SchedulableLoader::SchedulableLoader):
3595         * NetworkProcess/SchedulableLoader.h:
3596         (WebKit::SchedulableLoader::clientCredentialPolicy):
3597
3598         Don’t message for credentials if the ClientCredentialPolicy forbids it:
3599         * NetworkProcess/NetworkResourceLoader.cpp:
3600         (WebKit::NetworkResourceLoader::didReceiveAuthenticationChallenge):
3601         * NetworkProcess/NetworkResourceLoader.h:
3602
3603         Update for the new loadResourceSynchronously signature (which is still a no-op on the NetworkProcess side):
3604         * NetworkProcess/NetworkProcessPlatformStrategies.cpp:
3605         (WebKit::NetworkProcessPlatformStrategies::loadResourceSynchronously):
3606         * NetworkProcess/NetworkProcessPlatformStrategies.h:
3607
3608 2013-04-29  Jer Noble  <jer.noble@apple.com>
3609
3610         Unreviewed build fix. Point the Network process towards its own version of SecItemShim.dyld.
3611
3612         * NetworkProcess/EntryPoint/mac/XPCService/NetworkService/Info.plist:
3613
3614 2013-04-29  Alexey Proskuryakov  <ap@apple.com>
3615
3616         Threads get stuck in NetworkProcess when canceling loads
3617         https://bugs.webkit.org/show_bug.cgi?id=115319
3618
3619         Backing out part of the fix, as it's causing crashes.
3620
3621         * WebProcess/Network/WebResourceLoader.cpp:
3622         (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
3623
3624 2013-04-29  Noam Rosenthal  <noam@webkit.org>
3625
3626         Get rid of "non-composited contents" in CoordinatedLayerTreeHost
3627         https://bugs.webkit.org/show_bug.cgi?id=110355
3628
3629         Reviewed by Jocelyn Turcotte.
3630
3631         Instead of using a special non-composited contents layer, we let RenderLayerCompositor create
3632         a proper GraphicsLayer for that content.
3633         CoordinatedLayerTreeHost now needs to find the main contents layer for the purpose of setting
3634         the trajectory vector and applying the cover rect.
3635
3636         * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
3637         (WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
3638         (WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
3639             Don't create the non-composited layer, instead keep a raw pointer to the root
3640             compositing layer created by the WebCore compositor.
3641
3642         (WebKit::CoordinatedLayerTreeHost::setNonCompositedContentsNeedDisplay):
3643         (WebKit::CoordinatedLayerTreeHost::setNonCompositedContentsNeedDisplayInRect):
3644         (WebKit::CoordinatedLayerTreeHost::scrollNonCompositedContents):
3645         (WebKit::CoordinatedLayerTreeHost::sizeDidChange):
3646         (WebKit::CoordinatedLayerTreeHost::paintContents):
3647         (WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
3648         (WebKit::CoordinatedLayerTreeHost::setVisibleContentsRect):
3649             Remove non-composited layer specialization.
3650
3651 2013-04-29  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
3652
3653         [Qt] Build fix. Enabling c++11 for Qt WK2 after r149259.
3654         https://bugs.webkit.org/show_bug.cgi?id=115345
3655
3656         Reviewed by Anders Carlsson.
3657
3658         * WebKit2.pri:
3659
3660 2013-04-29  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
3661
3662         [WK2][EFL] Skip cancel fullscreen request if not made from FullScreen API
3663         https://bugs.webkit.org/show_bug.cgi?id=108201
3664
3665         Reviewed by Andreas Kling.
3666
3667         Adds a check on WebFullScreenManagerProxyEfl whether fullscreen mode was
3668         set from FullScreen API or not, so it can skip cancelling fullscreen
3669         request if fullscreen mode was set by application, preventing
3670         WebProcess' FullScreenManager from crashing.
3671
3672         EFL unit test available: ewk_view_cancel_full_screen_request.
3673
3674         * UIProcess/API/C/CoordinatedGraphics/WKView.cpp:
3675         (WKViewExitFullScreen):
3676         * UIProcess/API/C/CoordinatedGraphics/WKView.h:
3677         WKViewExitFullScreen now returns a bool, indicating whether the
3678         operation has succeeded or not.
3679
3680         * UIProcess/API/efl/ewk_view.cpp:
3681         (ewk_view_fullscreen_exit):
3682         Skip request if not in fullscreen mode.
3683
3684         * UIProcess/API/efl/tests/test_ewk2_view.cpp:
3685         (TEST_F):
3686         Added ewk_view_cancel_full_screen_request unit test.
3687
3688         * UIProcess/CoordinatedGraphics/WebView.cpp:
3689         (WebKit::WebView::exitFullScreen):
3690         * UIProcess/CoordinatedGraphics/WebView.h:
3691         (WebView):
3692         exitFullScreen now returns a bool, indicating whether the operation has
3693         succeeded or not.
3694
3695         * UIProcess/WebFullScreenManagerProxy.cpp:
3696         (WebKit::WebFullScreenManagerProxy::WebFullScreenManagerProxy):
3697         * UIProcess/WebFullScreenManagerProxy.h:
3698         (WebFullScreenManagerProxy):
3699         * UIProcess/efl/WebFullScreenManagerProxyEfl.cpp:
3700         (WebKit::WebFullScreenManagerProxy::isFullScreen):
3701         (WebKit::WebFullScreenManagerProxy::enterFullScreen):
3702         (WebKit::WebFullScreenManagerProxy::exitFullScreen):
3703         Added m_hasRequestedFullScreen boolean flag to EFL port. Used to
3704         indicate if fullscreen mode is enabled, as well as sanity checks on both
3705         {enter,exit}FullScreen functions.
3706
3707 2013-04-29  Anders Carlsson  <andersca@apple.com>
3708
3709         Stop using range-based for syntax
3710         https://bugs.webkit.org/show_bug.cgi?id=115356
3711
3712         Reviewed by Andreas Kling.
3713
3714         * PluginProcess/WebProcessConnection.cpp:
3715         (WebKit::WebProcessConnection::didClose):
3716
3717 2013-04-29  Sergio Correia  <sergio.correia@openbossa.org>
3718
3719         [EFL][WK2]: WebProcessMain: hide call to ecore_x_shutdown() under guard
3720         https://bugs.webkit.org/show_bug.cgi?id=115295
3721
3722         Reviewed by Andreas Kling.
3723
3724         Since the mentioned function is declared in a header that is included
3725         conditionally depending on HAVE_ECORE_X being defined.
3726
3727         * WebProcess/efl/WebProcessMainEfl.cpp:
3728         (WebKit::WebProcessMainEfl):
3729
3730 2013-04-29  Jinwoo Song  <jinwoo7.song@samsung.com>
3731
3732         [WK2] Remove build warnings by -Wunused-parameter
3733         https://bugs.webkit.org/show_bug.cgi?id=115344
3734
3735         Reviewed by Noam Rosenthal.
3736
3737         Fix build warnigs -Wunused-parameter.
3738
3739         * UIProcess/CoordinatedGraphics/WebView.cpp:
3740         (WebKit::WebView::createContextMenuProxy):
3741         * UIProcess/DrawingAreaProxy.h:
3742         (WebKit::DrawingAreaProxy::waitForPossibleGeometryUpdate):
3743         * UIProcess/WebPageProxy.cpp:
3744         (WebKit::WebPageProxy::connectionWillClose):
3745
3746 2013-04-29  Carlos Garcia Campos  <cgarcia@igalia.com>
3747
3748         Unreviewed. Fix make distcheck.
3749
3750         * GNUmakefile.list.am: Add missing header files to compilation.
3751
3752 2013-04-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3753
3754         Unreviewed fix build break on EFL port since r149259.
3755
3756         In EFL port, there is a non-compatible code when compiling based on C++11. This is a trivial build fix.
3757
3758         I got a confirm from Sam about landing a trivial build fix patch without sign-off from
3759         WK2 owner.
3760
3761         * UIProcess/API/efl/EwkViewCallbacks.h:
3762
3763 2013-04-28  Dean Jackson  <dino@apple.com>
3764
3765         [Mac] Disable canvas backing store scaling (HIGH_DPI_CANVAS)
3766         https://bugs.webkit.org/show_bug.cgi?id=115310
3767
3768         Reviewed by Simon Fraser.
3769
3770         Remove ENABLE_HIGH_DPI_CANVAS_macosx.
3771
3772         * Configurations/FeatureDefines.xcconfig:
3773
3774 2013-04-28  Sam Weinig  <sam@webkit.org>
3775
3776         [WebKit2] Adopt new API for detecting window occlusion
3777         https://bugs.webkit.org/show_bug.cgi?id=115334
3778
3779         Reviewed by Simon Fraser.
3780
3781         Switch off of WKSI for window occlusion and use the new NSWindowDidChangeOcclusionState notification
3782         instead.
3783
3784         * UIProcess/API/mac/WKView.mm:
3785         (-[WKView dealloc]):
3786         (-[WKView addWindowObserversForWindow:]):
3787         (-[WKView removeWindowObservers]):
3788         (-[WKView viewWillMoveToWindow:]):
3789         (-[WKView viewDidMoveToWindow]):
3790         (-[WKView _windowDidOrderOnScreen:]):
3791         (-[WKView _windowDidChangeOcclusionState:]):
3792         (-[WKView _setIsWindowOccluded:]):
3793         (-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):
3794         (-[WKView windowOcclusionDetectionEnabled]):
3795         (-[WKView setWindowOcclusionDetectionEnabled:]):
3796         Only compile occlusion detection code where supported and remove calls to register/deregister
3797         for detection callbacks, now that NSWindow will handle that for us. We also no longer need to
3798         track all the WKViews, as that was only required to lookup the view that matched the window number
3799         returned from the occlusion callback.
3800
3801 2013-04-26  Anders Carlsson  <andersca@apple.com>
3802
3803         Use OwnPtr<PluginControllerProxy> for storing plug-in controllers in WebProcessConnection
3804         https://bugs.webkit.org/show_bug.cgi?id=115259
3805
3806         Reviewed by Andreas Kling.
3807
3808         * PluginProcess/WebProcessConnection.cpp:
3809         (WebKit::WebProcessConnection::addPluginControllerProxy):
3810         (WebKit::WebProcessConnection::removePluginControllerProxy):
3811         (WebKit::WebProcessConnection::didClose):
3812         * PluginProcess/WebProcessConnection.h:
3813         (WebProcessConnection):
3814
3815 2013-04-27  Jessie Berlin  <jberlin@apple.com>
3816
3817         Build fix.
3818
3819         * NetworkProcess/NetworkResourceLoader.cpp:
3820         (WebKit::NetworkResourceLoader::didReceiveBuffer):
3821         Do not declare another variable with the same name.
3822
3823 2013-04-27  Darin Adler  <darin@apple.com>
3824
3825         Move from constructor and member function adoptCF/NS to free function adoptCF/NS.
3826         https://bugs.webkit.org/show_bug.cgi?id=115307
3827
3828         Reviewed by Geoffrey Garen.
3829
3830         This change was done by a global replace followed by compiling and inspecting for
3831         cases that needed to be tweaked by hand.
3832
3833         * Platform/cg/CGUtilities.cpp:
3834         (WebKit::paintBitmapContext):
3835         * Platform/mac/ModuleMac.mm:
3836         (WebKit::Module::load):
3837         (WebKit::Module::platformFunctionPointer):
3838         * PluginProcess/mac/PluginProcessMac.mm:
3839         (WebKit::PluginProcess::initializeSandbox):
3840         * Shared/API/c/mac/WKURLRequestNS.mm:
3841         (WKURLRequestCreateWithNSURLRequest):
3842         * Shared/API/c/mac/WKURLResponseNS.mm:
3843         (WKURLResponseCreateWithNSURLResponse):
3844         * Shared/Downloads/mac/DownloadMac.mm:
3845         (WebKit::Download::start):
3846         (WebKit::Download::startWithHandle):
3847         * Shared/EntryPointUtilities/mac/LegacyProcess/ChildProcessEntryPoint.h:
3848         (WebKit::ChildProcessMain):
3849         * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
3850         (WebKit::getPluginArchitecture):
3851         (WebKit::contentsOfPropertyListAtURL):
3852         (WebKit::getMIMETypesFromPluginBundle):
3853         (WebKit::getStringListResource):
3854         (WebKit::NetscapePluginModule::getPluginInfo):
3855         * Shared/ShareableResource.cpp:
3856         (WebKit::ShareableResource::Handle::tryWrapInSharedBuffer):
3857         * Shared/cf/ArgumentCodersCF.cpp:
3858         (CoreIPC::decode):
3859         (CoreIPC::encode):
3860         * Shared/cg/ShareableBitmapCG.cpp:
3861         (WebKit::ShareableBitmap::createGraphicsContext):
3862         (WebKit::ShareableBitmap::makeCGImageCopy):
3863         (WebKit::ShareableBitmap::makeCGImage):
3864         (WebKit::ShareableBitmap::createCGImage):
3865         * Shared/mac/ArgumentCodersMac.mm:
3866         (CoreIPC::decode):
3867         * Shared/mac/PlatformCertificateInfo.mm:
3868         (WebKit::PlatformCertificateInfo::dump):
3869         * Shared/mac/WebCoreArgumentCodersMac.mm:
3870         (CoreIPC::::encodePlatformData):
3871         (CoreIPC::::decodePlatformData):
3872         * UIProcess/API/mac/FindIndicatorWindow.mm:
3873         (WebKit::FindIndicatorWindow::setFindIndicator):
3874         (WebKit::FindIndicatorWindow::startFadeOutTimerFired):
3875         * UIProcess/API/mac/PDFViewController.mm:
3876         (-[WKPDFView initWithFrame:PDFViewController:]):
3877         (WebKit::PDFViewController::PDFViewController):
3878         (WebKit::convertPostScriptDataSourceToPDF):
3879         (WebKit::PDFViewController::setPDFDocumentData):
3880         * UIProcess/API/mac/PageClientImpl.mm:
3881         (WebKit::PageClientImpl::PageClientImpl):
3882         (WebKit::PageClientImpl::registerEditCommand):
3883         (WebKit::PageClientImpl::setDragImage):
3884         * UIProcess/API/mac/WKBrowsingContextController.mm:
3885         (didFailProvisionalLoadWithErrorForFrame):
3886         (didFailLoadWithErrorForFrame):
3887         * UIProcess/API/mac/WKConnection.mm:
3888         (didReceiveMessage):
3889         * UIProcess/API/mac/WKPrintingView.mm:
3890         (-[WKPrintingView drawRect:]):
3891         * UIProcess/API/mac/WKView.mm:
3892         (-[WKView browsingContextController]):
3893         (-[WKView _setAcceleratedCompositingModeRootLayer:]):
3894         (-[WKView _setPromisedData:WebCore::withFileName:withExtension:withTitle:withURL:withVisibleURL:withArchive:WebCore::forPasteboard:]):
3895         (-[WKView namesOfPromisedFilesDroppedAtDestination:]):
3896         (-[WKView fullScreenWindowController]):
3897         (-[WKView _executeSavedCommandBySelector:]):
3898         (-[WKView printOperationWithPrintInfo:forFrame:]):
3899         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
3900         (WebKit::createProcess):
3901         * UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
3902         (WebKit::PluginInfoStore::pluginPathsInDirectory):
3903         (WebKit::PluginInfoStore::getMIMETypeForExtension):
3904         * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
3905         (WebKit::PluginProcessProxy::beginModal):
3906         * UIProcess/cf/WebBackForwardListCF.cpp:
3907         (WebKit::WebBackForwardList::createCFDictionaryRepresentation):
3908         * UIProcess/cf/WebPageProxyCF.cpp:
3909         (WebKit::WebPageProxy::sessionStateData):
3910         (WebKit::WebPageProxy::restoreFromSessionStateData):
3911         (WebKit::WebPageProxy::saveRecentSearches):
3912         (WebKit::WebPageProxy::loadRecentSearches):
3913         * UIProcess/cf/WebPreferencesCF.cpp:
3914         (WebKit::cfStringFromWebCoreString):
3915         (WebKit::setStringValueIfInUserDefaults):
3916         (WebKit::setBoolValueIfInUserDefaults):
3917         (WebKit::setUInt32ValueIfInUserDefaults):
3918         (WebKit::setDoubleValueIfInUserDefaults):
3919         (WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
3920         (WebKit::WebPreferences::platformUpdateDoubleValueForKey):
3921         (WebKit::WebPreferences::platformUpdateFloatValueForKey):
3922         * UIProcess/mac/BackingStoreMac.mm:
3923         (WebKit::BackingStore::resetScrolledRect):
3924         (WebKit::BackingStore::backingStoreContext):
3925         * UIProcess/mac/CorrectionPanel.mm:
3926         (WebKit::CorrectionPanel::handleAcceptedReplacement):
3927         * UIProcess/mac/TextCheckerMac.mm:
3928         (WebKit::TextChecker::checkTextOfParagraph):
3929         (WebKit::TextChecker::updateSpellingUIWithGrammarString):
3930         * UIProcess/mac/WKFullScreenWindowController.mm:
3931         (-[WKFullScreenWindowController enterFullScreen:]):
3932         (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]):
3933         (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]):
3934         * UIProcess/mac/WebContextMac.mm:
3935         (WebKit::WebContext::platformDefaultDiskCacheDirectory):
3936         * UIProcess/mac/WebContextMenuProxyMac.mm:
3937         (WebKit::nsMenuItemVector):
3938         (WebKit::WebContextMenuProxyMac::populate):
3939         * UIProcess/mac/WebInspectorProxyMac.mm:
3940         (WebKit::WebInspectorProxy::createInspectorWindow):
3941         (WebKit::WebInspectorProxy::platformCreateInspectorPage):
3942         * UIProcess/mac/WebPopupMenuProxyMac.mm:
3943         (WebKit::WebPopupMenuProxyMac::populate):
3944         (WebKit::WebPopupMenuProxyMac::showPopupMenu):
3945         * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
3946         (WebKit::InjectedBundle::load):
3947         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
3948         (WebKit::NetscapePlugin::updatePluginLayer):
3949         * WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm:
3950         (WebKit::PluginProxy::pluginLayer):
3951         * WebProcess/Plugins/PDF/PDFPlugin.mm:
3952         (WebKit::PDFPlugin::PDFPlugin):
3953         (WebKit::PDFPlugin::createScrollbar):
3954         (WebKit::PDFPlugin::pdfDocumentDidLoad):
3955         (WebKit::PDFPlugin::writeItemsToPasteboard):
3956         * WebProcess/Plugins/PDF/SimplePDFPlugin.mm:
3957         (getAllScriptsInPDFDocument):
3958         (WebKit::SimplePDFPlugin::pdfDocumentDidLoad):
3959         (WebKit::SimplePDFPlugin::streamDidReceiveData):
3960         (WebKit::SimplePDFPlugin::manualStreamDidReceiveData):
3961         * WebProcess/ResourceCache/WebResourceCacheManager.cpp:
3962         (WebKit::WebResourceCacheManager::clearCacheForOrigin):
3963         * WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.cpp:
3964         (WebKit::WebResourceCacheManager::cfURLCacheHostNames):
3965         (WebKit::WebResourceCacheManager::clearCFURLCacheForHostNames):
3966         * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
3967         (WebKit::createNSError):
3968         * WebProcess/WebPage/WebPage.cpp:
3969         (WebKit::WebPage::drawPagesToPDF):
3970         * WebProcess/WebPage/mac/WebPageMac.mm:
3971         (WebKit::WebPage::performDictionaryLookupForRange):
3972         (WebKit::cachedResponseForURL):
3973         (WebKit::WebPage::drawPagesToPDFFromPDFDocument):
3974         * WebProcess/mac/WebProcessMac.mm:
3975         (WebKit::WebProcess::platformSetCacheModel):
3976         Use adoptCF and adoptNS free functions.
3977
3978 2013-04-27  Alexey Proskuryakov  <ap@apple.com>
3979
3980         <rdar://problem/13757007> Crashes in NetworkResourceLoader::didReceiveResponseAsync
3981         https://bugs.webkit.org/show_bug.cgi?id=115318
3982
3983         Reviewed by Darin Adler.
3984
3985         sendAbortingOnFailure may actually fail, and abort the request, making m_handle null.
3986
3987         * NetworkProcess/NetworkResourceLoader.cpp:
3988         (WebKit::NetworkResourceLoader::didReceiveResponseAsync): Null check m_handle after
3989         sending a message, because the request will cancelled when connection is invalid.
3990         (WebKit::NetworkResourceLoader::didReceiveBuffer): Assert that m_handle matches
3991         the handle that we are called with.
3992         (WebKit::NetworkResourceLoader::didFinishLoading): Ditto.
3993         (WebKit::NetworkResourceLoader::didFail): Ditto.
3994         (WebKit::NetworkResourceLoader::willSendRequestAsync): Ditto.
3995         (WebKit::NetworkResourceLoader::didSendData): Ditto.
3996         (WebKit::NetworkResourceLoader::shouldUseCredentialStorage): Ditto.
3997         (WebKit::NetworkResourceLoader::shouldUseCredentialStorageAsync): Ditto.
3998         (WebKit::NetworkResourceLoader::didReceiveAuthenticationChallenge): Ditto.
3999         (WebKit::NetworkResourceLoader::didCancelAuthenticationChallenge): Ditto.
4000         (WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync): Ditto.
4001
4002 2013-04-27  Alexey Proskuryakov  <ap@apple.com>
4003
4004         <rdar://problem/13757687> Threads get stuck in NetworkProcess when canceling loads
4005         https://bugs.webkit.org/show_bug.cgi?id=115319
4006
4007         Reviewed by Darin Adler.
4008
4009         WebResourceLoader was second-guessing NetworkProcess as to whether it needs a response
4010         to DidReceiveResponseWithCertificateInfo, and it was guessing wrong if the load was
4011         alrady canceled on WebProcess side.
4012
4013         * NetworkProcess/NetworkResourceLoader.cpp:
4014         (WebKit::NetworkResourceLoader::didReceiveResponseAsync):
4015         * WebProcess/Network/WebResourceLoader.cpp:
4016         (WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
4017         * WebProcess/Network/WebResourceLoader.h:
4018         * WebProcess/Network/WebResourceLoader.messages.in:
4019
4020 2013-04-27  Alexey Proskuryakov  <ap@apple.com>
4021
4022         Regression tests that reference a non-local resource crash with NetworkProcess enabled
4023         https://bugs.webkit.org/show_bug.cgi?id=115290
4024
4025         Reviewed by Sam Weinig.
4026
4027         Covered by fast/dom/icon-url-change.html and many other existing tests.
4028
4029         * WebProcess/Network/WebResourceLoadScheduler.cpp:
4030         (WebKit::WebResourceLoadScheduler::remove): Handle this case. Architecturally, it
4031         would be better if SubresourceLoad::create just created an object an didn't do
4032         further checks before returning a pointer, but changing that is beyond the scope
4033         of the fix.
4034
4035 2013-04-26  Yael Aharon  <yael.aharon@intel.com>
4036
4037         [WK2][EFL] Build break after r149212
4038         https://bugs.webkit.org/show_bug.cgi?id=115294
4039
4040         Reviewed by Simon Fraser.
4041         r144672 bumped up the revision of WKContextClient API, and introduced a version array
4042         APIClientTraits<WKContextClient>::interfaceSizesByVersion .
4043         In r149212, the version was bumped back down and the version array was emptied but not removed.
4044         This causes a warning "array subscript is below array bounds", and in EFL the warning is
4045         treated as error.
4046
4047         * Shared/APIClientTraits.cpp:
4048         (WebKit):
4049         * Shared/APIClientTraits.h:
4050
4051 2013-04-26  Martin Robinson  <mrobinson@igalia.com>
4052
4053         [GTK] Add methods to add a user style sheet to the WebKit2 GTK+ API
4054         https://bugs.webkit.org/show_bug.cgi?id=99081
4055
4056         Reviewed by Carlos Garcia Campos, Gustavo Noronha Silva, and Benjamin Poulain.
4057
4058         Add methods to WebKitWebViewGroup to add and remove user style sheets.
4059         This allows clients to inject style sheets into pages with a set of
4060         rules for when those style sheets apply.
4061
4062         * UIProcess/API/gtk/WebKitWebViewGroup.cpp:
4063         (toImmutableArray): Added this helper which converts the GList* parameters into
4064         ImmutableArrays for use with the WebKit2 internal API.
4065         (webkit_web_view_group_add_user_style_sheet): Added new API for adding a style sheet.
4066         (webkit_web_view_group_remove_all_user_style_sheets): Add new API for clearing out all style sheets.
4067         * UIProcess/API/gtk/WebKitWebViewGroup.h: Added new method declarations.
4068         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added new API to the documentation.
4069         * UIProcess/API/gtk/tests/TestWebKitWebViewGroup.cpp: Added a test for the new API.
4070         (isStyleSheetInjectedForURLAtPath): Function to check whether the style sheet has been injected for a given URL.
4071         (fillURLListFromPaths): Helper which converts paths passed via varargs into a whitelist or blacklist.
4072         (removeOldInjectedStyleSheetsAndResetLists): Function to start afresh.
4073         (testWebViewGroupInjectedStyleSheet): The actual test.
4074         (serverCallback): Server callback for use with the test. We cannot use loadHTML or
4075         loadAlternateHTML, because that checks the whitelist and blacklist against about:blank.
4076         (beforeAll): Initialize the server and new test.
4077         (afterAll): Clean up the server.
4078
4079 2013-04-26  Simon Cooper  <scooper@apple.com>
4080
4081         Permit ~/Library or ~/Library/Preferences to be symlinks
4082         https://bugs.webkit.org/show_bug.cgi?id=115142
4083         <rdar://problem/12953603>
4084
4085         Reviewed by Alexey Proskuryakov.
4086
4087         Pass in two new parameters which are the resolved paths to ~/Library
4088         and ~/Library/Preferences. Added new expansion functions and
4089         substituted the new functions for home-regex, home-subpath and
4090         home-literal for places referencing resources in "~/Library" or
4091         "~/Library/Preferences".
4092
4093         * Resources/PlugInSandboxProfiles/com.apple.QuickTime Plugin.plugin.sb:
4094         * Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
4095         * Resources/PlugInSandboxProfiles/com.apple.ist.ds.appleconnect.webplugin.sb:
4096         * Resources/PlugInSandboxProfiles/com.macromedia.Flash Player.plugin.sb:
4097         * Resources/PlugInSandboxProfiles/com.microsoft.SilverlightPlugin.sb:
4098         * Resources/PlugInSandboxProfiles/com.oracle.java.JavaAppletPlugin.sb:
4099         * Shared/mac/ChildProcessMac.mm:
4100         (WebKit::ChildProcess::initializeSandbox):
4101
4102 2013-04-26  Alexey Proskuryakov  <ap@apple.com>
4103
4104         [WK2] WKContextClient doesn't need to be versioned yet