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