• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
12011-04-19  Anders Carlsson  <andersca@apple.com>
2
3        Reviewed by Sam Weinig.
4
5        UI process thinks the page is unresponsive when a plug-in is showing a context menu
6        https://bugs.webkit.org/show_bug.cgi?id=58943
7        <rdar://problem/9299901>
8
9        Change the HandleMouseEvent message to have a delayed reply and make the PluginControllerProxy
10        respond to it immediately, before even passing the event to the plug-in. Since it doesn't matter
11        for mouse events whether the plug-in handled them or not we can do this.
12
13        Another solution could have been to make handleMouseEvent an asynchronous message, but that could
14        mess up the message ordering so this seemed like the least intrusive change.
15
16        * PluginProcess/PluginControllerProxy.cpp:
17        (WebKit::PluginControllerProxy::handleMouseEvent):
18        * PluginProcess/PluginControllerProxy.h:
19        * PluginProcess/PluginControllerProxy.messages.in:
20
212011-04-19  Anders Carlsson  <andersca@apple.com>
22
23        Reviewed by Dan Bernstein.
24
25        Terminate hung plug-in processes after 45 seconds
26        https://bugs.webkit.org/show_bug.cgi?id=58932
27        <rdar://problem/8083219>
28
29        * UIProcess/Plugins/PluginProcessManager.cpp:
30        (WebKit::PluginProcessManager::pluginSyncMessageSendTimedOut):
31        Find the plug-in process proxy and terminate it.
32
33        (WebKit::PluginProcessManager::pluginProcessWithPath):
34        Add new helper function.
35
36        (WebKit::PluginProcessManager::getOrCreatePluginProcess):
37        Call pluginProcessWithPath.
38
39        * UIProcess/Plugins/PluginProcessProxy.cpp:
40        (WebKit::PluginProcessProxy::terminate):
41        Terminate the process.
42
43        * UIProcess/Plugins/PluginProcessProxy.h:
44        * UIProcess/WebProcessProxy.cpp:
45        (WebKit::WebProcessProxy::pluginSyncMessageSendTimedOut):
46        Call PluginProcessManager::pluginSyncMessageSendTimedOut.
47
48        * UIProcess/WebProcessProxy.h:
49        * UIProcess/WebProcessProxy.messages.in:
50        Add PluginSyncMessageSendTimedOut message.
51
52        * WebProcess/Plugins/PluginProcessConnection.cpp:
53        (WebKit::defaultSyncMessageTimeout):
54        (WebKit::PluginProcessConnection::PluginProcessConnection):
55        Set a sync message timeout on the plug-in process connection.
56
57        (WebKit::PluginProcessConnection::syncMessageSendTimedOut):
58        Send a message to the web process proxy.
59
602011-04-19  Alexey Proskuryakov  <ap@apple.com>
61
62        Reviewed by Adele Peterson.
63
64        WebKit2: Merge SelectionState and TextInputState
65        https://bugs.webkit.org/show_bug.cgi?id=58919
66
67        Combined TextInputState and EditorState in one structure, which is updated whenever we get
68        a chance to. There is no sense to keep possibly stale SelectionState data when we have already
69        requested the most recent data synchronously.
70
71        This also simplifies the code, as we don't need to pass the state around in a separate variable.
72
73        * GNUmakefile.am:
74        * Scripts/webkit2/messages.py:
75        * Shared/EditorState.h: Copied from Source/WebKit2/Shared/SelectionState.h.
76        (WebKit::EditorState::EditorState):
77        * Shared/SelectionState.h: Removed.
78        * Shared/mac/TextInputState.h: Removed.
79        * UIProcess/API/mac/PageClientImpl.h:
80        * UIProcess/API/mac/PageClientImpl.mm:
81        (WebKit::PageClientImpl::interpretKeyEvent):
82        * UIProcess/API/mac/WKView.mm:
83        (-[WKView validRequestorForSendType:returnType:]):
84        (-[WKView validateUserInterfaceItem:]):
85        (-[WKView shouldDelayWindowOrderingForEvent:]):
86        (-[WKView doCommandBySelector:]):
87        (-[WKView insertText:replacementRange:]):
88        (-[WKView _handleStyleKeyEquivalent:]):
89        (-[WKView _executeSavedKeypressCommands]):
90        (-[WKView inputContext]):
91        (-[WKView hasMarkedText]):
92        (-[WKView unmarkText]):
93        (-[WKView setMarkedText:selectedRange:replacementRange:]):
94        (-[WKView attributedSubstringForProposedRange:actualRange:]):
95        (-[WKView _interpretKeyEvent:savingCommandsTo:WebCore::]):
96        (-[WKView _updateSecureInputState]):
97        * UIProcess/API/mac/WKViewInternal.h:
98        * UIProcess/PageClient.h:
99        * UIProcess/WebPageProxy.cpp:
100        (WebKit::WebPageProxy::editorStateChanged):
101        * UIProcess/WebPageProxy.h:
102        (WebKit::WebPageProxy::editorState):
103        (WebKit::WebPageProxy::hasSelectedRange):
104        (WebKit::WebPageProxy::isContentEditable):
105        * UIProcess/WebPageProxy.messages.in:
106        * UIProcess/mac/WebPageProxyMac.mm:
107        (WebKit::WebPageProxy::setComposition):
108        (WebKit::WebPageProxy::confirmComposition):
109        (WebKit::WebPageProxy::insertText):
110        (WebKit::WebPageProxy::executeKeypressCommands):
111        (WebKit::WebPageProxy::writeSelectionToPasteboard):
112        (WebKit::WebPageProxy::readSelectionFromPasteboard):
113        (WebKit::WebPageProxy::interpretQueuedKeyEvent):
114        * UIProcess/win/WebView.cpp:
115        (WebKit::WebView::compositionSelectionChanged):
116        (WebKit::WebView::onIMEComposition):
117        (WebKit::WebView::onIMEEndComposition):
118        (WebKit::WebView::onIMERequestCharPosition):
119        (WebKit::WebView::onIMERequest):
120        * WebKit2.xcodeproj/project.pbxproj:
121        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
122        (WebKit::WebEditorClient::respondToChangedSelection):
123        * WebProcess/WebPage/WebPage.cpp:
124        (WebKit::WebPage::editorState):
125        * WebProcess/WebPage/WebPage.h:
126        * WebProcess/WebPage/WebPage.messages.in:
127        * WebProcess/WebPage/mac/WebPageMac.mm:
128        (WebKit::WebPage::handleEditingKeyboardEvent):
129        (WebKit::WebPage::setComposition):
130        (WebKit::WebPage::confirmComposition):
131        (WebKit::WebPage::insertText):
132        (WebKit::WebPage::executeKeypressCommands):
133        * win/WebKit2.vcproj:
134
1352011-04-19  Alexey Proskuryakov  <ap@apple.com>
136
137        Reviewed by Timothy Hatcher.
138
139        100% reproducible crash when right-clicking any element in Web Inspector on any page
140        https://bugs.webkit.org/show_bug.cgi?id=58822
141
142        Web Inspector changes selection from JavaScript, and checks in UI process are insufficient
143        when selection is changing asynchronously.
144
145        * WebProcess/WebPage/mac/WebPageMac.mm:
146        (WebKit::WebPage::writeSelectionToPasteboard): Check that there is a selection, matching WK1
147        and UI process side. Perhaps the check should really be in WebCore, but for now, it's a
148        WebKit responsibility.
149        (WebKit::WebPage::readSelectionFromPasteboard): Same check, for no other reason but consistency.
150
1512011-04-19  Anders Carlsson  <andersca@apple.com>
152
153        Reviewed by Sam Weinig.
154
155        Add syncMessageSendTimedOut CoreIPC Connection::Client member function
156        https://bugs.webkit.org/show_bug.cgi?id=58928
157
158        * Platform/CoreIPC/Connection.cpp:
159        (CoreIPC::Connection::waitForSyncReply):
160        Call syncMessageSendTimedOut.
161
162        * Platform/CoreIPC/Connection.h:
163        Add syncMessageSendTimedOut to Connection::Client.
164
165        * PluginProcess/PluginProcess.cpp:
166        * PluginProcess/PluginProcess.h:
167        * PluginProcess/WebProcessConnection.cpp:
168        * PluginProcess/WebProcessConnection.h:
169        * UIProcess/Plugins/PluginProcessProxy.cpp:
170        * UIProcess/Plugins/PluginProcessProxy.h:
171        * UIProcess/WebProcessProxy.cpp:
172        * UIProcess/WebProcessProxy.h:
173        * WebProcess/Plugins/PluginProcessConnection.cpp:
174        * WebProcess/Plugins/PluginProcessConnection.h:
175        * WebProcess/WebProcess.cpp:
176        * WebProcess/WebProcess.h:
177        Add syncMessageSendTimedOut stubs.
178
1792011-04-19  Anders Carlsson  <andersca@apple.com>
180
181        Reviewed by Alexey Proskuryakov.
182
183        Replace the didFailToSendSyncMessage Connection::Client function with a flag
184        https://bugs.webkit.org/show_bug.cgi?id=58923
185
186        * Platform/CoreIPC/Connection.cpp:
187        (CoreIPC::Connection::Connection):
188        Initialize m_shouldExitOnSyncMessageSendFailure to false.
189
190        (CoreIPC::Connection::setShouldExitOnSyncMessageSendFailure):
191        Set m_didCloseOnConnectionWorkQueueCallback.
192
193        (CoreIPC::Connection::sendSyncMessage):
194        Call didFailToSendSyncMessage if we fail to send the sync message for some reason.
195
196        (CoreIPC::Connection::didFailToSendSyncMessage):
197        if m_shouldExitOnSyncMessageSendFailure is true, exit.
198
199        * Platform/CoreIPC/Connection.h:
200        Remove didFailToSendSyncMessage from Connection::Client.
201
202        * PluginProcess/PluginProcess.cpp:
203        * PluginProcess/PluginProcess.h:
204        Remove didFailToSendSyncMessage.
205
206        * WebProcess/WebProcess.cpp:
207        (WebKit::WebProcess::initialize):
208        * WebProcess/WebProcess.h:
209        Remove didFailToSendSyncMessage. Call setShouldExitOnSyncMessageSendFailure on our
210        UI process connection.
211
2122011-04-19  Anders Carlsson  <andersca@apple.com>
213
214        Reviewed by Sam Weinig.
215
216        Add a way to set the default sync message timeout for a CoreIPC connection
217        https://bugs.webkit.org/show_bug.cgi?id=58908
218
219        * Platform/CoreIPC/Connection.cpp:
220        (CoreIPC::Connection::Connection):
221        Initialize m_defaultSyncMessageTimeout.
222
223        (CoreIPC::Connection::setDefaultSyncMessageTimeout):
224        Set the m_defaultSyncMessageTimeout member variable.
225
226        (CoreIPC::Connection::waitForSyncReply):
227        Handle the timeout being one of our two special magic values.
228
229        * Platform/CoreIPC/Connection.h:
230        Add a DefaultTimeout constant and change the NoTimeout constant to be -1.
231
2322011-04-19  Vsevolod Vlasov  <vsevik@chromium.org>
233
234        Reviewed by Pavel Feldman.
235
236        Web Inspector: Rename lengthReceived to encodedDataLength/dataLength
237        https://bugs.webkit.org/show_bug.cgi?id=58883
238
239        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
240        (WebKit::WebFrameLoaderClient::dispatchDidReceiveContentLength):
241        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
242
2432011-04-19  Andreas Kling  <andreas.kling@nokia.com>
244
245        Reviewed by Antonio Gomes.
246
247        WebKit2: Typo fix in WebPopupMenu::Type.
248        https://bugs.webkit.org/show_bug.cgi?id=58891
249
250        Fixed a typo, Seperator -> Separator.
251        Also removed m_ prefix on an argument variable name.
252
253        * Shared/WebPopupItem.h:
254        * UIProcess/mac/WebPopupMenuProxyMac.mm:
255        (WebKit::WebPopupMenuProxyMac::populate):
256        * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
257        (WebKit::WebPopupMenu::populateItems):
258
2592011-04-19  Jon Honeycutt  <jhoneycutt@apple.com>
260
261        WKContextDownloadURLRequest() should return a WKDownloadRef
262        https://bugs.webkit.org/show_bug.cgi?id=58867
263        Part of <rdar://problem/8931717>
264
265        Reviewed by Steve Falkenburg.
266
267        * UIProcess/API/C/WKContext.cpp:
268        (WKContextDownloadURLRequest):
269        Return the result of calling WebContext::download().
270
271        * UIProcess/API/C/WKContext.h:
272        Updated return type of WKContextDownloadURLRequest().
273
274        * UIProcess/WebContext.cpp:
275        (WebKit::WebContext::download):
276        Return the DownloadProxy returned by createDownloadProxy().
277        (WebKit::WebContext::createDownloadProxy):
278        Return the DownloadProxy.
279
280        * UIProcess/WebContext.h:
281        Changed return type of download() and createDownloadProxy().
282
283        * UIProcess/WebPageProxy.cpp:
284        (WebKit::WebPageProxy::receivedPolicyDecision):
285        Call the DownloadProxy's downloadID() function to get the ID.
286
2872011-04-18  Jia Pu  <jpu@apple.com>
288
289        Reviewed by Mark Rowe.
290
291        WebKit needs to stop importing <AppKit/NSTextChecker.h>
292        https://bugs.webkit.org/show_bug.cgi?id=58798
293        <rdar://problem/9294938>
294
295        Use public header <AppKit/NSSpellChecker.h> instead.
296
297        * UIProcess/mac/CorrectionPanel.h:
298        * UIProcess/mac/CorrectionPanel.mm:
299        (correctionIndicatorType):
300        (WebKit::CorrectionPanel::show):
301        (WebKit::CorrectionPanel::dismissInternal):
302        (WebKit::CorrectionPanel::handleAcceptedReplacement):
303        * UIProcess/mac/TextCheckerMac.mm:
304        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
305
3062011-04-05  Jer Noble  <jer.noble@apple.com>
307
308        Reviewed by Sam Weinig.
309
310        WebKit2: WKTR should support WebKit2 full screen APIs
311        https://bugs.webkit.org/show_bug.cgi?id=56318
312
313        Add a new WKBundlePage API for Full Screen events, and move some of the implementation
314        of WebFullScreenManager into the new InjectedBundlePageFullScreenClient class, so that
315        the default behavior can be overridden by a WKBundlePageFullScreenClient.
316
317        * WebKit2.xcodeproj/project.pbxproj:
318        * WebProcess/FullScreen/WebFullScreenManager.cpp:
319        (WebKit::WebFullScreenManager::supportsFullScreen): Moved contents into InjectedBundlePageFullScreenClient.
320        (WebKit::WebFullScreenManager::enterFullScreenForElement): Ditto.
321        (WebKit::WebFullScreenManager::exitFullScreenForElement): Ditto.
322        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
323        (WKBundlePageSetFullScreenClient): Added.
324        (WKBundlePageWillEnterFullScreenForElement): Added.
325        (WKBundlePageDidEnterFullScreenForElement): Added.
326        (WKBundlePageWillExitFullScreenForElement): Added.
327        (WKBundlePageDidExitFullScreenForElement): Added.
328        * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
329        * WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp: Added.
330        (WebKit::InjectedBundlePageFullScreenClient::supportsFullScreen): Added.
331        (WebKit::InjectedBundlePageFullScreenClient::enterFullScreenForElement): Added.
332        (WebKit::InjectedBundlePageFullScreenClient::exitFullScreenForElement): Added.
333        * WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.h: Added.
334        * WebProcess/WebPage/WebPage.cpp:
335        (WebKit::WebPage::initializeInjectedBundleFullScreenClient): Added.
336        * WebProcess/WebPage/WebPage.h:
337        (WebKit::WebPage::injectedBundleFullScreenClient): Added.
338
3392011-04-18  Alexey Proskuryakov  <ap@apple.com>
340
341        Reviewed by Maciej Stachowiak.
342
343        Re-add a null check lost in r83081
344        https://bugs.webkit.org/show_bug.cgi?id=58846
345
346        * WebProcess/WebPage/mac/WebPageMac.mm:
347        (WebKit::WebPage::getSelectedRange):
348
3492011-04-18  Andreas Kling  <kling@webkit.org>
350
351        Reviewed by Kenneth Rohde Christiansen.
352
353        [Qt][WK2] Clean up tool-tip/status-bar confusion.
354        https://bugs.webkit.org/show_bug.cgi?id=58844
355
356        Tool-tips were incorrectly hooked up to the status bar text.
357        Chrome::setStatusbarText() now correctly causes the QWKPage::statusBarMessage() signal.
358
359        New API:
360        - QWKPage::toolTipChanged(const QString& toolTip) [signal]
361
362        QGraphicsWKView will automatically listen for this and set its own toolTip().
363
364        * UIProcess/API/qt/ClientImpl.cpp:
365        (qt_wk_setStatusText):
366        * UIProcess/API/qt/ClientImpl.h:
367        * UIProcess/API/qt/qgraphicswkview.cpp:
368        (QGraphicsWKView::QGraphicsWKView):
369        (QGraphicsWKViewPrivate::onToolTipChanged):
370        * UIProcess/API/qt/qgraphicswkview.h:
371        * UIProcess/API/qt/qwkpage.cpp:
372        (QWKPagePrivate::toolTipChanged):
373        (QWKPage::QWKPage):
374        * UIProcess/API/qt/qwkpage.h:
375
3762011-04-18  Maciej Stachowiak  <mjs@apple.com>
377
378        Reviewed by Dan Bernstein.
379
380        sandbox violation for ~/Library/Dictionaries
381        https://bugs.webkit.org/show_bug.cgi?id=58841
382        <rdar://problem/9294770>
383
384        * WebProcess/com.apple.WebProcess.sb: Add to sandbox profile.
385        No obvious harm from allowing this, though it's not 100% clear
386        why it's needed.
387
3882011-04-18  Anders Carlsson  <andersca@apple.com>
389
390        Try to fix the Windows build.
391
392        * Scripts/webkit2/messages.py:
393
3942011-04-18  Anders Carlsson  <andersca@apple.com>
395
396        Reviewed by Dan Bernstein.
397
398        Get rid of WebProcessProxyLegacyMessage
399        https://bugs.webkit.org/show_bug.cgi?id=58825
400
401        * GNUmakefile.am:
402        * Platform/CoreIPC/MessageID.h:
403        * Shared/CoreIPCSupport/WebProcessProxyMessageKinds.h: Removed.
404        * UIProcess/WebProcessProxy.cpp:
405        * WebKit2.xcodeproj/project.pbxproj:
406        * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
407        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
408        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
409        * WebProcess/WebPage/WebPage.cpp:
410        * win/WebKit2.vcproj:
411
4122011-04-18  Anders Carlsson  <andersca@apple.com>
413
414        Fix build.
415
416        * UIProcess/Plugins/PluginInfoStore.h:
417
4182011-04-18  Anders Carlsson  <andersca@apple.com>
419
420        Reviewed by Sam Weinig.
421
422        Use the message generator for the GetPluginProcessConnection message
423        https://bugs.webkit.org/show_bug.cgi?id=58815
424
425        * Platform/CoreIPC/HandleMessage.h:
426        (CoreIPC::callMemberFunction):
427        (CoreIPC::handleMessageDelayed):
428        Add helper functions.
429
430        * UIProcess/Plugins/PluginInfoStore.h:
431        Mark class noncopyable.
432
433        * UIProcess/Plugins/PluginProcessManager.cpp:
434        (WebKit::PluginProcessManager::getPluginProcessConnection):
435        This now takes a delayed reply.
436
437        * UIProcess/Plugins/PluginProcessProxy.cpp:
438        (WebKit::PluginProcessProxy::getPluginProcessConnection):
439        This now takes a delayed reply.
440
441        (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
442        (WebKit::PluginProcessProxy::didCreateWebProcessConnection):
443        Call DelayedReply::send.
444
445        * UIProcess/WebProcessProxy.cpp:
446        (WebKit::WebProcessProxy::getPluginProcessConnection):
447        This now takes a delayed reply.
448
449        (WebKit::WebProcessProxy::didReceiveSyncMessage):
450        No need to handle this message here.
451
452        * UIProcess/WebProcessProxy.messages.in:
453        Add GetPluginProcessConnection message.
454
455        * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
456        (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
457        Don't use deprecatedSendSync.
458
4592011-04-18  Anders Carlsson  <andersca@apple.com>
460
461        Reviewed by Adam Roben.
462
463        Finish implementing delayed sync replies in the CoreIPC message generator
464        https://bugs.webkit.org/show_bug.cgi?id=58814
465
466        Put the DelayedReply function definitions in the .cpp file and fix bugs found by
467        actually trying to compile the generated files.
468
469        * Scripts/webkit2/messages.py:
470        * Scripts/webkit2/messages_unittest.py:
471
4722011-04-18  Anders Carlsson  <andersca@apple.com>
473
474        Reviewed by Adam Roben.
475
476        Reproducible crash in Find on Page, on pages that use accelerated compositing
477        https://bugs.webkit.org/show_bug.cgi?id=58793
478        <rdar://problem/9295870>
479
480        Move the call to PageOverlay::setNeedsDisplay() back to WebPage::installPageOverlay;
481        it needs to be called after we've told the drawing area that a page overlay has been installed.
482
483        * WebProcess/WebPage/PageOverlay.cpp:
484        (WebKit::PageOverlay::setPage):
485        * WebProcess/WebPage/WebPage.cpp:
486        (WebKit::WebPage::installPageOverlay):
487
4882011-04-18  Jeff Miller  <jeffm@apple.com>
489
490        Reviewed by Timothy Hatcher.
491
492        WKFrameLoadState should be a uint32_t to match our API conventions
493        https://bugs.webkit.org/show_bug.cgi?id=58785
494
495        * UIProcess/API/C/WKFrame.h: typedef WKFrameLoadState as a uint32_t and define its values as an anonymous enum.
496
4972011-04-18  Carlos Garcia Campos  <cgarcia@igalia.com>
498
499        Unreviewed. Fix WebKit2 GTK build after 84017.
500
501        * GNUmakefile.am:
502        * Shared/NativeWebMouseEvent.h:
503        (WebKit::NativeWebMouseEvent::nativeEvent):
504        * Shared/gtk/NativeWebMouseEventGtk.cpp: Copied from Source/WebKit2/Shared/NativeWebMouseEvent.h.
505        (WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
506        * UIProcess/gtk/WebView.cpp:
507        (WebKit::WebView::handleMouseEvent):
508
5092011-04-17  David Kilzer  <ddkilzer@apple.com>
510
511        <http://webkit.org/b/58463> Switch HTTP pipelining from user default to private setting
512        <rdar://problem/9268729>
513
514        Reviewed by Dan Bernstein.
515
516        This replaces support for the WebKitEnableHTTPPipelining user
517        default with methods on the WebCore::ResourceRequest class in
518        WebCore, the WebView class in WebKit1, and the WebContext class
519        in WebKit2.  It also removes support for the
520        WebKitForceHTTPPipeliningPriorityHigh user default which was not
521        needed.
522
523        * UIProcess/API/C/WKContext.cpp:
524        (_WKContextSetHTTPPipeliningEnabled): Added.
525        * UIProcess/API/C/WKContextPrivate.h:
526        (_WKContextSetHTTPPipeliningEnabled): Added declaration.
527        * UIProcess/WebContext.cpp:
528        (WebKit::WebContext::setHTTPPipeliningEnabled): Added.
529        (WebKit::WebContext::httpPipeliningEnabled): Added.
530        * UIProcess/WebContext.h:
531        (WebKit::WebContext::setHTTPPipeliningEnabled): Added declaration.
532        (WebKit::WebContext::httpPipeliningEnabled): Added declaration.
533
5342011-04-17  Sam Weinig  <sam@webkit.org>
535
536        Reviewed by Geoffrey Garen.
537
538        Make more strings in WebKit2 localizable
539        https://bugs.webkit.org/show_bug.cgi?id=58757
540
541        * UIProcess/API/mac/PDFViewController.mm:
542        (-[WKPDFView menuForEvent:]):
543        * UIProcess/API/mac/PageClientImpl.mm:
544        (WebKit::PageClientImpl::setViewportArguments):
545        (WebKit::PageClientImpl::registerEditCommand):
546        * UIProcess/WebEditCommandProxy.cpp:
547        (WebKit::WebEditCommandProxy::nameForEditAction):
548        * UIProcess/WebEditCommandProxy.h:
549        Use WebCore's localization macro to make more strings localizable.
550
5512011-04-17  Patrick Gansterer  <paroga@webkit.org>
552
553        Reviewed by Adam Barth.
554
555        Rename PLATFORM(CA) to USE(CA)
556        https://bugs.webkit.org/show_bug.cgi?id=58742
557
558        * WebProcess/WebPage/LayerTreeHost.cpp:
559        * WebProcess/WebPage/win/LayerTreeHostWin.cpp:
560        (WebKit::LayerTreeHost::supportsAcceleratedCompositing):
561
5622011-04-17  Patrick Gansterer  <paroga@webkit.org>
563
564        Reviewed by Adam Barth.
565
566        Rename PLATFORM(CG) to USE(CG)
567        https://bugs.webkit.org/show_bug.cgi?id=58729
568
569        * Shared/ShareableBitmap.h:
570        * Shared/WebCoreArgumentCoders.cpp:
571        * Shared/WebCoreArgumentCoders.h:
572        * Shared/WebGraphicsContext.cpp:
573        (WebKit::WebGraphicsContext::WebGraphicsContext):
574        * Shared/WebGraphicsContext.h:
575        * Shared/win/PlatformCertificateInfo.cpp:
576        (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
577        * UIProcess/win/WebView.cpp:
578        (WebKit::WebView::setFindIndicator):
579        * WebProcess/WebPage/WebPage.cpp:
580        (WebKit::WebPage::drawRectToPDF):
581        (WebKit::WebPage::drawPagesToPDF):
582        * WebProcess/WebPage/win/WebPageWin.cpp:
583        (WebKit::WebPage::platformPreferencesDidChange):
584        * config.h:
585
5862011-04-16  Anders Carlsson  <andersca@apple.com>
587
588        Reviewed by Sam Weinig.
589
590        Crash when NPP_Write returns -1 when writing the manual stream
591        https://bugs.webkit.org/show_bug.cgi?id=58735
592        <rdar://problem/9124993>
593
594        If NPP_Write returns -1 we must cancel the stream.
595
596        * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
597        (WebKit::NetscapePluginStream::deliverDataToPlugin):
598
5992011-04-16  Sam Weinig  <sam@webkit.org>
600
601        Reviewed by Simon Fraser.
602
603        Pages in the PageCache don't have the correct visited link coloring after being restored
604        https://bugs.webkit.org/show_bug.cgi?id=58721
605
606        * WebProcess/WebProcess.cpp:
607        (WebKit::WebProcess::visitedLinkStateChanged):
608        (WebKit::WebProcess::allVisitedLinkStateChanged):
609        Mark all pages in the page cache as needing visited link style recalc
610        whenever visited link information changes.
611
6122011-04-15  Daniel Bates  <dbates@webkit.org>
613
614        Attempt to fix the Qt Linux Release build after changeset 84064 <http://trac.webkit.org/changeset/84064>
615        (https://bugs.webkit.org/show_bug.cgi?id=58686).
616
617        * UIProcess/API/qt/qwkpage_p.h: Remove takeFocus().
618
6192011-04-15  Shishir Agrawal  <shishir@chromium.org>
620
621        Reviewed by James Robinson.
622
623        Add a flag to guard Page Visibility API changes.
624        https://bugs.webkit.org/show_bug.cgi?id=58464
625
626        * Configurations/FeatureDefines.xcconfig:
627
6282011-04-15  Jeff Miller  <jeffm@apple.com>
629
630        Reviewed by Sam Weinig.
631
632        Add takeFocus callback to WKPageUIClient
633        https://bugs.webkit.org/show_bug.cgi?id=58686
634
635        On Windows, we need to handle moving focus out of the web view in the client, so add a takeFocus callback to WKPageUIClient
636        and stop handling taking focus in the framework in WKView.mm on the Mac.
637
638        * UIProcess/API/C/WKPage.h: Added WKFocusDirection enum and takeFocus to WKPageUIClient.
639        * UIProcess/API/mac/PageClientImpl.h: Removed takeFocus().
640        * UIProcess/API/mac/PageClientImpl.mm: Removed takeFocus().
641        * UIProcess/API/mac/WKView.mm: Removed _takeFocus().
642        * UIProcess/API/mac/WKViewInternal.h: Removed _takeFocus().
643        * UIProcess/API/qt/ClientImpl.cpp:
644        (qt_wk_takeFocus): Added.
645        * UIProcess/API/qt/ClientImpl.h: Added qt_wk_takeFocus.
646        * UIProcess/API/qt/qwkpage.cpp: Remove takeFocus().
647        (QWKPage::QWKPage): Added takeFocus() callback.
648        * UIProcess/PageClient.h: Removed takeFocus().
649        * UIProcess/WebPageProxy.cpp:
650        (WebKit::WebPageProxy::takeFocus): Call m_uiClient to take focus.
651        * UIProcess/WebPageProxy.h: Pass FocusDirection as a uint32_t to takeFocus().
652        * UIProcess/WebPageProxy.messages.in: Pass FocusDirection as a uint32_t in TakeFocus message.
653        * UIProcess/WebUIClient.cpp:
654        (WebKit::WebUIClient::takeFocus): Added.
655        * UIProcess/WebUIClient.h: Added takeFocus().
656        * UIProcess/win/WebView.cpp: Removed takeFocus(), which was never implemented on Windows.
657        * UIProcess/win/WebView.h: Removed takeFocus().
658        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
659        (WebKit::WebChromeClient::takeFocus): Pass FocusDirection as a uint32_t in TakeFocus message.
660
6612011-04-15  Alexey Proskuryakov  <ap@apple.com>
662
663        Reviewed by Sam Weinig.
664
665        WebKit2: Stop using deprecated NSInputManager
666        https://bugs.webkit.org/show_bug.cgi?id=58709
667
668        Changed all mouse related functions to give NSInputContext a chance to handle the event,
669        added logging. Removed -rightMouseMoved: method, which was added by accident.
670
671        * UIProcess/API/mac/WKView.mm:
672        (-[WKView mouseMoved:]):
673        (-[WKView mouseDown:]):
674        (-[WKView mouseUp:]):
675        (-[WKView mouseDragged:]):
676
6772011-04-15  Jon Honeycutt  <jhoneycutt@apple.com>
678
679        Potential crash getting a JS wrapper.
680
681        <rdar://problem/8988741>
682
683        Reviewed by Brian Weinstein.
684
685        * WebProcess/WebPage/WebFrame.cpp:
686        (WebKit::WebFrame::jsWrapperForWorld):
687        Ensure that we have a valid m_coreFrame, because it can be cleared by
688        invalidate().
689
6902011-04-08  Luiz Agostini  <luiz.agostini@openbossa.org>
691
692        Reviewed by Kenneth Rohde Christiansen.
693
694        [Qt] QWebPage MIME type handling inconsistency with other web browsers
695        https://bugs.webkit.org/show_bug.cgi?id=46968
696
697        Implementing mime type sniffing based on
698        http://tools.ietf.org/html/draft-abarth-mime-sniff-06.
699
700        * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.cpp:
701        (WebCore::WebFrameNetworkingContext::WebFrameNetworkingContext):
702        (WebCore::WebFrameNetworkingContext::MIMESniffingEnabled):
703        * WebProcess/WebCoreSupport/qt/WebFrameNetworkingContext.h:
704
7052011-04-15  Oliver Hunt  <oliver@apple.com>
706
707        GC allocate Structure
708        https://bugs.webkit.org/show_bug.cgi?id=58483
709
710        Rolling r83894 r83827 r83810 r83809 r83808 back in with
711        a workaround for the gcc bug seen by the gtk bots
712
713        * WebProcess/Plugins/Netscape/JSNPMethod.h:
714        (WebKit::JSNPMethod::createStructure):
715        * WebProcess/Plugins/Netscape/JSNPObject.h:
716        (WebKit::JSNPObject::createStructure):
717
7182011-04-15  Anders Carlsson  <andersca@apple.com>
719
720        Reviewed by Sam Weinig.
721
722        Add API to get the bundle page overlay fade in fraction.
723
724        * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
725        (WKBundlePageOverlayFractionFadedIn):
726        * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.h:
727
7282011-04-15  Anders Carlsson  <andersca@apple.com>
729
730        Reviewed by Dan Bernstein.
731
732        Fade the find page overlay
733        https://bugs.webkit.org/show_bug.cgi?id=58697
734
735        * WebProcess/WebPage/FindController.cpp:
736        Make the color components floats.
737
738        (WebKit::overlayBackgroundColor):
739        (WebKit::holeShadowColor):
740        (WebKit::holeFillColor):
741        Add helper functions for returning the colors given the fraction faded in.
742
743        (WebKit::FindController::drawRect):
744        Use the new helper functions.
745
746        * WebProcess/WebPage/WebPage.cpp:
747        (WebKit::WebPage::installPageOverlay):
748        Start the fade animation unless we're replacing an already existing page overlay
749        with another.
750
7512011-04-15  Anders Carlsson  <andersca@apple.com>
752
753        Fix Windows build.
754
755        * WebProcess/WebPage/PageOverlay.cpp:
756        (WebKit::PageOverlay::fadeAnimationTimerFired):
757
7582011-04-15  Anders Carlsson  <andersca@apple.com>
759
760        Reviewed by Sam Weinig.
761
762        Add the ability for PageOverlays to fade in and out
763        https://bugs.webkit.org/show_bug.cgi?id=58694
764
765        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
766        (WKBundlePageUninstallPageOverlay):
767        WebPage::uninstallPageOverlay now takes a boolean. Default to false for now.
768
769        * WebProcess/WebPage/FindController.cpp:
770        (WebKit::FindController::findString):
771        Pass false to uninstallPageOverlay.
772
773        (WebKit::FindController::hideFindUI):
774        Pass true to uninstallPageOverlay.
775
776        * WebProcess/WebPage/PageOverlay.cpp:
777        (WebKit::PageOverlay::PageOverlay):
778        Initialize new member variables.
779
780        (WebKit::PageOverlay::bounds):
781        Get rid of an unnecessary webPage() getter.
782
783        (WebKit::PageOverlay::setPage):
784        Stop the animation timer.
785
786        (WebKit::PageOverlay::startFadeInAnimation):
787        Update m_fractionFadedIn and call startFadeAnimation.
788
789        (WebKit::PageOverlay::startFadeOutAnimation):
790        Ditto.
791
792        (WebKit::PageOverlay::startFadeAnimation):
793        Initialize m_fadeAnimationStartTime and start the fade animation timer.
794
795        (WebKit::PageOverlay::fadeAnimationTimerFired):
796        Update m_fractionFadedIn and call setNeedsDisplay().
797
798        * WebProcess/WebPage/PageOverlay.h:
799        * WebProcess/WebPage/WebPage.cpp:
800        (WebKit::WebPage::uninstallPageOverlay):
801        If fadeOut is true, tell the page overlay to start the fade out animation.
802        When the fade animation is complete, the page overlay will uninstall itself.
803
8042011-04-15  Brian Weinstein  <bweinstein@apple.com>
805
806        Reviewed by Adam Roben.
807
808        Views should be made visible before painting in WM_PRINTCLIENT messages
809        https://bugs.webkit.org/show_bug.cgi?id=58676
810        <rdar://problem/9279211>
811
812        * UIProcess/win/WebView.cpp:
813        (WebKit::WebView::onPrintClientEvent): If our view isn't currently visible set it to visible
814            before painting, then reset it back to not visible after painting.
815        (WebKit::WebView::onShowWindowEvent): Call setIsVisible instead of duplicating logic.
816        (WebKit::WebView::setIsVisible): Set the m_isVisible flag and call viewStateDidChange.
817        * UIProcess/win/WebView.h:
818
8192011-04-15  Jon Lee  <jonlee@apple.com>
820
821        Reviewed by Anders Carlsson.
822
823        onClick does not function with <select> elements in WebKit2
824        https://bugs.webkit.org/show_bug.cgi?id=57904
825        <rdar://problem/9217757>
826
827        Reviewed by Anders Carlsson.
828
829        * Shared/NativeWebMouseEvent.h: Copied from Source/WebKit2/UIProcess/WebPopupMenuProxy.h.
830        (WebKit::NativeWebMouseEvent::nativeEvent):
831        * Shared/mac/NativeWebMouseEventMac.mm: Added.
832        (WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
833        * Shared/qt/NativeWebMouseEventQt.cpp: Copied from Source/WebKit2/UIProcess/WebPopupMenuProxy.h.
834        (WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
835        * Shared/win/NativeWebMouseEventWin.cpp: Copied from Source/WebKit2/UIProcess/WebPopupMenuProxy.h.
836        (WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
837        * UIProcess/API/mac/WKView.mm:
838        (-[WKView mouseMoved:]):
839        (-[WKView _mouseHandler:]): Pre-compiler mouse handler calls need to use the new NativeWebMouseEvent class
840        * UIProcess/API/qt/qwkpage.cpp:
841        (QWKPagePrivate::mouseMoveEvent):
842        (QWKPagePrivate::mousePressEvent):
843        (QWKPagePrivate::mouseReleaseEvent):
844        (QWKPagePrivate::mouseDoubleClickEvent):
845        * UIProcess/WebPageProxy.cpp:
846        (WebKit::WebPageProxy::handleMouseEvent): keep track of mouse down event in order to be able to send a fake mouse up event on the select element
847        (WebKit::WebPageProxy::currentMouseDownEvent): for access by the popup menu proxy to dispatch the fake mouse up event
848        (WebKit::WebPageProxy::didReceiveEvent): clear out the cached mouse down event
849        (WebKit::WebPageProxy::processDidCrash): clear out the cached events since we assume that didReceiveEvent did not called prior to the crash
850        * UIProcess/WebPageProxy.h:
851        * UIProcess/WebPopupMenuProxy.h:
852        * UIProcess/mac/WebPopupMenuProxyMac.mm:
853        (WebKit::WebPopupMenuProxyMac::showPopupMenu): after notifying the popup menu client that the value changed, fake mouse up and mouse move events are posted
854        * UIProcess/win/WebPopupMenuProxyWin.cpp:
855        (WebKit::WebPopupMenuProxyWin::showPopupMenu): after notifying the popup menu client that the value changed, fake mouse up and mouse move events are posted
856        * UIProcess/win/WebView.cpp:
857        (WebKit::WebView::onMouseEvent):
858        * WebKit2.pro:
859        * WebKit2.xcodeproj/project.pbxproj:
860        * win/WebKit2.vcproj:
861
8622011-04-15  Alexey Proskuryakov  <ap@apple.com>
863
864        Qt build fix.
865
866        * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::selectionStateChanged): Wrap the variable
867        in PLATFORM(MAC), too, as it's unused on other platforms.
868
8692011-04-15  Brady Eidson  <beidson@apple.com>
870
871        Reviewed by Dan Bernstein.
872
873        <rdar://problem/9287880> and https://bugs.webkit.org/show_bug.cgi?id=58596
874        WK2: Past searches not remembered for <input type=search results="5" autosave="foo">
875
876        Add SaveRecentSearches and LoadRecentSearches messages:
877        * UIProcess/WebPageProxy.messages.in:
878        * UIProcess/WebPageProxy.h:
879
880        Message up to the UIProcess for the save/load operations:
881        * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
882        (WebKit::WebSearchPopupMenu::saveRecentSearches):
883        (WebKit::WebSearchPopupMenu::loadRecentSearches):
884        * WebProcess/WebCoreSupport/WebPopupMenu.h:
885        (WebKit::WebPopupMenu::page):
886
887        Save the values to disk CFPreference-style:
888        * UIProcess/cf/WebPageProxyCF.cpp:
889        (WebKit::autosaveKey):
890        (WebKit::WebPageProxy::saveRecentSearches):
891        (WebKit::WebPageProxy::loadRecentSearches):
892
893        Stubbed out for non-CF platforms:
894        * UIProcess/gtk/WebPageProxyGtk.cpp:
895        (WebKit::WebPageProxy::saveRecentSearches):
896        (WebKit::WebPageProxy::loadRecentSearches):
897        * UIProcess/qt/WebPageProxyQt.cpp:
898        (WebKit::WebPageProxy::saveRecentSearches):
899        (WebKit::WebPageProxy::loadRecentSearches):
900
9012011-04-14  Alexey Proskuryakov  <ap@apple.com>
902
903        Reviewed by Dan Bernstein.
904
905        WebKit2: Password field input does not switch to ASCII-compatible source
906        https://bugs.webkit.org/show_bug.cgi?id=58583
907        <rdar://problem/9059651>
908
909        The implementation is more modern than what we have in WK1. Instead of returning a null
910        input context (as in non-editable content), we now set page context's properties.
911
912        * UIProcess/PageClient.h:
913        * UIProcess/API/mac/PageClientImpl.h:
914        * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::updateSecureInputState):
915        Forward updateSecureInputState() call from WebPageProxy to WKView.
916
917        * UIProcess/API/mac/WKView.mm:
918        (-[WKView dealloc]): ASSERT that we didn't somehow leave secure input events enabled.
919        (-[WKView becomeFirstResponder]): Update secure event mode.
920        (-[WKView resignFirstResponder]): Disable secure event mode.
921        (-[WKView setMarkedText:selectedRange:replacementRange:]): Prevent most advanced editing
922        behaviors in password fields, matching NSSecureTextInputField.
923        (-[WKView attributedSubstringForProposedRange:actualRange:]): Disable TSM Document Access
924        in password fields. There is also a check in web process, but it doest't hurt to check twice.
925        (-[WKView _windowDidBecomeKey:]): Call _updateSecureInputState.
926        (-[WKView _windowDidResignKey:]): Call _updateSecureInputState.
927        (-[WKView _updateSecureInputState]): Update secure event mode and allowed input sources.
928
929        * UIProcess/API/mac/WKViewInternal.h: Added _updateSecureInputState.
930
931        * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::selectionStateChanged): Update secure
932        input state when going in or out a password field.
933
9342011-04-14  Jer Noble  <jer.noble@apple.com>
935
936        Reviewed by Eric Carlson.
937
938        REGRESSION: Rendering in <video> element appears to render quickly to catch up if it has been playing in a background tab
939        https://bugs.webkit.org/show_bug.cgi?id=58637
940
941        Notify AVFoundation that no one will be rendering when the view or window moves off screen.
942
943        * UIProcess/API/mac/PageClientImpl.mm:
944        (WebKit::PageClientImpl::isViewVisible): Return false if the view's window is not visible.
945        * UIProcess/API/mac/WKView.mm:
946        (-[WKView addWindowObserversForWindow:]): Observe orderOut and orderIn events.
947        (-[WKView removeWindowObservers]): Ditto.
948        (-[WKView _windowDidOrderOffScreen:]): Added.
949        (-[WKView _windowDidOrderOnScreen:]): Added.
950        * WebProcess/WebPage/DrawingAreaImpl.cpp:
951        (WebKit::DrawingAreaImpl::suspendPainting): Call LayerTreeHost::pauseRendering.
952        (WebKit::DrawingAreaImpl::resumePainting): Call LayerTreeHost::resumeRendering.
953        * WebProcess/WebPage/LayerTreeHost.h:
954        (WebKit::LayerTreeHost::pauseRendering): Added stub.
955        (WebKit::LayerTreeHost::resumeRendering): Added stub.
956        * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.h:
957        * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm:
958        (WebKit::LayerTreeHostCAMac::pauseRendering): Added. Post a notification with our
959            intention to stop rendering.
960        (WebKit::LayerTreeHostCAMac::resumeRendering): Added. Post a notification with our
961            intention to start rendering.
962
9632011-04-15  Jessie Berlin  <jberlin@apple.com>
964
965        Reviewed by Sam Weinig.
966
967        WebKit2: Need a way to keep the WebProcess alive for testing purposes.
968        https://bugs.webkit.org/show_bug.cgi?id=58592
969
970        * UIProcess/API/C/WKContext.cpp:
971        (WKContextDisableProcessTermination):
972        (WKContextEnableProcessTermination):
973        * UIProcess/API/C/WKContextPrivate.h:
974
975        * UIProcess/WebContext.cpp:
976        (WebKit::WebContext::WebContext):
977        Initialize m_processTerminationEnabled to true.
978        (WebKit::WebContext::enableProcessTermination):
979        Set m_processTerminationEnabled to true, and try to terminate the web process.
980        (WebKit::WebContext::shouldTerminate):
981        If !m_processTerminationEnabled, return false.
982        * UIProcess/WebContext.h:
983        (WebKit::WebContext::disableProcessTermination):
984        Set m_processTerminationEnabled to false;
985
9862011-04-15  Nancy Piedra  <nancy.piedra@nokia.com>
987
988        Reviewed by Laszlo Gombos.
989
990        [Qt][Symbian] Need to export ViewportAttributes class
991        https://bugs.webkit.org/show_bug.cgi?id=58651
992
993        On Symbian, if the ViewportAttributes class is not exported we get
994        linking errors.
995
996        Since this is a compilation issue, no new tests added.
997
998        * UIProcess/API/qt/qwkpage.h:
999
10002011-04-15  Anna Cavender  <annacc@chromium.org>
1001
1002        Reviewed by Eric Carlson.
1003
1004        Renaming TRACK feature define to VIDEO_TRACK
1005        https://bugs.webkit.org/show_bug.cgi?id=53556
1006
1007        * Configurations/FeatureDefines.xcconfig:
1008
10092011-04-14  Anders Carlsson  <andersca@apple.com>
1010
1011        Reviewed by Sam Weinig.
1012
1013        Select All context menu item doesn't work in Flash
1014        https://bugs.webkit.org/show_bug.cgi?id=58615
1015        <rdar://problem/9225761>
1016
1017        In some cases, -[NSWindow isKeyWindow] will return false even if
1018        a window is the key window, so we have to compare our window
1019        against -[NSApplication keyWindow].
1020
1021        * UIProcess/API/mac/PageClientImpl.mm:
1022        (WebKit::PageClientImpl::isViewWindowActive):
1023
10242011-04-14  Sam Weinig  <sam@webkit.org>
1025
1026        Reviewed by Anders Carlsson.
1027
1028        Add CFPreference based backend for WebKit2 preferences
1029        https://bugs.webkit.org/show_bug.cgi?id=58605
1030
1031        * UIProcess/cf/WebPreferencesCF.cpp:
1032        (WebKit::cfStringFromWebCoreString):
1033        (WebKit::makeKey):
1034        (WebKit::setStringValueIfInUserDefaults):
1035        (WebKit::setBoolValueIfInUserDefaults):
1036        (WebKit::setUInt32ValueIfInUserDefaults):
1037        (WebKit::setDoubleValueIfInUserDefaults):
1038        (WebKit::WebPreferences::platformInitializeStore):
1039        (WebKit::WebPreferences::platformUpdateStringValueForKey):
1040        (WebKit::WebPreferences::platformUpdateBoolValueForKey):
1041        (WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
1042        (WebKit::WebPreferences::platformUpdateDoubleValueForKey):
1043        Implement platform functions using CFPreferences API.
1044
10452011-04-14  Brady Eidson  <beidson@apple.com>
1046
1047        Reviewed by Sam Weinig.
1048
1049        <rdar://problem/8665102> and https://bugs.webkit.org/show_bug.cgi?id=58595
1050        Menu is not displayed for <input type=search results="5">
1051
1052        * WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
1053        (WebKit::WebSearchPopupMenu::enabled): Return true, like all good search popup menus should.
1054
1055        * WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
1056        (WebKit::WebPopupMenu::setUpPlatformData): Remember the shouldPopOver-ness.
1057
1058        * Shared/PlatformPopupMenuData.cpp:
1059        (WebKit::PlatformPopupMenuData::encode): Remember the shouldPopOver-ness.
1060        (WebKit::PlatformPopupMenuData::decode): Remember the shouldPopOver-ness.
1061        * Shared/PlatformPopupMenuData.h:
1062
1063        * UIProcess/mac/WebPopupMenuProxyMac.mm:
1064        (WebKit::WebPopupMenuProxyMac::showPopupMenu): Use the shouldPopOver-ness to adjust display position.
1065
10662011-04-14  Anders Carlsson  <andersca@apple.com>
1067
1068        Reviewed by Dan Bernstein.
1069
1070        Crash in NetscapePluginModule::tryGetSitesWithData when NPP_GetSitesWithData returns null
1071        https://bugs.webkit.org/show_bug.cgi?id=58578
1072        <rdar://problem/9275201>
1073
1074        It's OK for NPP_GetSitesWithData to return null.
1075
1076        * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
1077        (WebKit::NetscapePluginModule::tryGetSitesWithData):
1078
10792011-04-14  Sam Weinig  <sam@webkit.org>
1080
1081        Reviewed by Anders Carlsson.
1082
1083        Make creating WebPreferences lazy
1084        https://bugs.webkit.org/show_bug.cgi?id=58570
1085
1086        * UIProcess/WebPageGroup.cpp:
1087        (WebKit::WebPageGroup::WebPageGroup):
1088        (WebKit::WebPageGroup::~WebPageGroup):
1089        (WebKit::WebPageGroup::setPreferences):
1090        (WebKit::WebPageGroup::preferences):
1091        * UIProcess/WebPageGroup.h:
1092        Don't create the WebPreference object until it is requested.
1093
10942011-04-14  Pratik Solanki  <psolanki@apple.com>
1095
1096        Reviewed by David Kilzer.
1097
1098        Set minimum priority for fast lane connections
1099        https://bugs.webkit.org/show_bug.cgi?id=58353
1100
1101        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
1102        (InitWebCoreSystemInterface): Support for new WKSI method WKSetHTTPPipeliningMinimumFastLanePriority.
1103
11042011-04-14  Anders Carlsson  <andersca@apple.com>
1105
1106        Clang warning fixes.
1107
1108        * UIProcess/API/mac/PageClientImpl.h:
1109        * UIProcess/mac/TextCheckerMac.mm:
1110        * WebProcess/Downloads/mac/DownloadMac.mm:
1111
11122011-04-14  Jessie Berlin  <jberlin@apple.com>
1113
1114        Reviewed by Timothy Hatcher.
1115
1116        WebKit2: Add an option for a PageGroup to be invisible to the History Client.
1117        https://bugs.webkit.org/show_bug.cgi?id=58547
1118
1119        * Shared/WebPageGroupData.cpp:
1120        (WebKit::WebPageGroupData::encode):
1121        (WebKit::WebPageGroupData::decode):
1122        * Shared/WebPageGroupData.h:
1123
1124        * UIProcess/WebInspectorProxy.cpp:
1125        (WebKit::WebInspectorProxy::inspectorPageGroup):
1126        The Web Inspector should not be visible to the History Client, because its HTML-based nature
1127        should not be exposed through the API.
1128
1129        * UIProcess/WebPageGroup.cpp:
1130        (WebKit::WebPageGroup::create):
1131        (WebKit::WebPageGroup::WebPageGroup):
1132        * UIProcess/WebPageGroup.h:
1133
1134        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1135        (WebKit::WebFrameLoaderClient::updateGlobalHistory):
1136        Do not send the message to the WebContent for the history client.
1137        (WebKit::WebFrameLoaderClient::updateGlobalHistoryRedirectLinks):
1138        Ditto.
1139        (WebKit::WebFrameLoaderClient::setTitle):
1140        Ditto.
1141
1142        * WebProcess/WebPage/WebPageGroupProxy.h:
1143        (WebKit::WebPageGroupProxy::isVisibleToHistoryClient):
1144
11452011-04-14  Balazs Kelemen  <kbalazs@webkit.org>
1146
1147        Reviewed by Andreas Kling.
1148
1149        [Qt][WK2] Make Qt port compiling with ENABLE_PLUGIN_PROCESS=1
1150        https://bugs.webkit.org/show_bug.cgi?id=55719
1151
1152        Guard functionality related to complex text and implementations
1153        that rely on MachPort with PLATFORM(MAC).
1154        Based on Oleg Romashin's patch.
1155
1156        * PluginProcess/PluginControllerProxy.cpp:
1157        * PluginProcess/PluginControllerProxy.messages.in:
1158        * PluginProcess/PluginProcess.cpp:
1159        (WebKit::PluginProcess::createWebProcessConnection):
1160        * PluginProcess/WebProcessConnection.cpp:
1161        (WebKit::WebProcessConnection::createPlugin):
1162        * Shared/Plugins/PluginProcessCreationParameters.cpp:
1163        (WebKit::PluginProcessCreationParameters::decode): Fix bad C++ that
1164        does not compile with gcc-linux.
1165        * UIProcess/Plugins/PluginProcessProxy.cpp:
1166        (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
1167        (WebKit::PluginProcessProxy::didCreateWebProcessConnection):
1168        * UIProcess/Plugins/PluginProcessProxy.h:
1169        * UIProcess/Plugins/PluginProcessProxy.messages.in:
1170        * WebKit2.pro: Move implementation that does not need external
1171        visibility from WebKit2API.pri. Adding the headers as well.
1172        * WebKit2API.pri:
1173        * WebProcess/Plugins/PluginProcessConnectionManager.cpp:
1174        (WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
1175        * WebProcess/WebPage/WebPage.cpp:
1176
11772011-04-13  James Robinson  <jamesr@chromium.org>
1178
1179        Reviewed by Simon Fraser.
1180
1181        Allow setting composited backing stores for scrollbars and scroll corners
1182        https://bugs.webkit.org/show_bug.cgi?id=57202
1183
1184        Update WebPopupMenuProxyWin to reflect ScrollableArea interface changes.
1185
1186        * UIProcess/win/WebPopupMenuProxyWin.h:
1187        (WebKit::WebPopupMenuProxyWin::invalidateScrollCornerRect):
1188        (WebKit::WebPopupMenuProxyWin::scrollCornerPresent):
1189        (WebKit::WebPopupMenuProxyWin::scrollCornerRect):
1190
11912011-04-13  Jon Lee  <jonlee@apple.com>
1192
1193        Reviewed by Maciej Stachowiak.
1194
1195        REGRESSION(r81880): Paste menu is disabled for many edit fields (yahoo and google search, yahoo mail msg, forms, etc)
1196        https://bugs.webkit.org/show_bug.cgi?id=58284
1197        <rdar://problem/9246149>
1198
1199        * WebProcess/WebPage/WebPage.cpp:
1200        (WebKit::WebPage::setFocused): Check for whether we are not supposed to be focused AND whether our platform behavior dictates to clear out the selection
1201
12022011-04-13  Dan Bernstein  <mitz@apple.com>
1203
1204        Reviewed by Sam Weinig.
1205
1206        Fixed a bug where WKView changed the cursor when the mouse was moving over other views.
1207
1208        * UIProcess/API/mac/WKView.mm:
1209        (-[WKView mouseMoved:]): If getting this message because this view is the first responder,
1210        ignore it unless it is inside the visible rect.
1211
12122011-04-13  Enrica Casucci  <enrica@apple.com>
1213
1214        Reviewed by Dan Bernstein.
1215
1216        Should not rely on WKEditableLinkBehavior being in synch
1217        with WebCore::EditableLinkBehavior.
1218        https://bugs.webkit.org/show_bug.cgi?id=58473
1219
1220        Adding conversion routines.
1221
1222        * UIProcess/API/C/WKAPICast.h:
1223        (WebKit::toAPI):
1224        (WebKit::toEditableLinkBehavior):
1225        * UIProcess/API/C/WKPreferences.cpp:
1226        (WKPreferencesSetEditableLinkBehavior):
1227        (WKPreferencesGetEditableLinkBehavior):
1228
12292011-04-13  Anders Carlsson  <andersca@apple.com>
1230
1231        Reviewed by Dan Bernstein.
1232
1233        After closing the last window, re-opening my last visited website is over 2X slower
1234        https://bugs.webkit.org/show_bug.cgi?id=58488
1235        <rdar://problem/9233518>
1236
1237        Give the web process a 60 second termination timeout.
1238
1239        * WebProcess/WebProcess.cpp:
1240        (WebKit::WebProcess::WebProcess):
1241
12422011-04-13  Anders Carlsson  <andersca@apple.com>
1243
1244        Reviewed by Adam Roben.
1245
1246        Convert WebProcess over to using disableTermination/enableTermination
1247        https://bugs.webkit.org/show_bug.cgi?id=58485
1248
1249        * PluginProcess/PluginProcess.cpp:
1250        (WebKit::PluginProcess::getSitesWithData):
1251        (WebKit::PluginProcess::clearSiteData):
1252        Use the LocalTerminationDisabler RAII class.
1253
1254        * Shared/ChildProcess.h:
1255        (WebKit::ChildProcess::LocalTerminationDisabler::LocalTerminationDisabler):
1256        (WebKit::ChildProcess::LocalTerminationDisabler::~LocalTerminationDisabler):
1257        Add RAII class for calling disableTermination/enableTermination.
1258
1259        * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
1260        (WebKit::WebApplicationCacheManager::getApplicationCacheOrigins):
1261        (WebKit::WebApplicationCacheManager::deleteEntriesForOrigin):
1262        (WebKit::WebApplicationCacheManager::deleteAllEntries):
1263        Use the LocalTerminationDisabler RAII class.
1264
1265        * WebProcess/Cookies/WebCookieManager.cpp:
1266        (WebKit::WebCookieManager::getHostnamesWithCookies):
1267        (WebKit::WebCookieManager::deleteCookiesForHostname):
1268        (WebKit::WebCookieManager::deleteAllCookies):
1269        (WebKit::WebCookieManager::startObservingCookieChanges):
1270        (WebKit::WebCookieManager::setHTTPCookieAcceptPolicy):
1271        (WebKit::WebCookieManager::getHTTPCookieAcceptPolicy):
1272        Use the LocalTerminationDisabler RAII class.
1273
1274        * WebProcess/Downloads/Download.cpp:
1275        (WebKit::Download::Download):
1276        Call disableTermination().
1277
1278        (WebKit::Download::~Download):
1279        Call enableTermination().
1280
1281        * WebProcess/Downloads/DownloadManager.cpp:
1282        (WebKit::DownloadManager::downloadFinished):
1283        Remove call to terminateIfPossible.
1284
1285        * WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:
1286        (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
1287        (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
1288        (WebKit::WebKeyValueStorageManager::deleteAllEntries):
1289        Use the LocalTerminationDisabler RAII class.
1290
1291        * WebProcess/MediaCache/WebMediaCacheManager.cpp:
1292        (WebKit::WebMediaCacheManager::getHostnamesWithMediaCache):
1293        (WebKit::WebMediaCacheManager::clearCacheForHostname):
1294        (WebKit::WebMediaCacheManager::clearCacheForAllHostnames):
1295        Use the LocalTerminationDisabler RAII class.
1296
1297        * WebProcess/ResourceCache/WebResourceCacheManager.cpp:
1298        (WebKit::WebResourceCacheManager::getCacheOrigins):
1299        (WebKit::WebResourceCacheManager::clearCacheForOrigin):
1300        (WebKit::WebResourceCacheManager::clearCacheForAllOrigins):
1301        Use the LocalTerminationDisabler RAII class.
1302
1303        * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
1304        (WebKit::WebDatabaseManager::getDatabasesByOrigin):
1305        (WebKit::WebDatabaseManager::getDatabaseOrigins):
1306        (WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin):
1307        (WebKit::WebDatabaseManager::deleteDatabasesForOrigin):
1308        (WebKit::WebDatabaseManager::deleteAllDatabases):
1309        (WebKit::WebDatabaseManager::setQuotaForOrigin):
1310        Use the LocalTerminationDisabler RAII class.
1311
1312        * WebProcess/WebProcess.cpp:
1313        (WebKit::WebProcess::createWebPage):
1314        Call disableTermination().
1315
1316        (WebKit::WebProcess::removeWebPage):
1317        Call enableTermination().
1318
1319        (WebKit::WebProcess::shouldTerminate):
1320        Move logic from terminateIfPossible over here.
1321
1322        (WebKit::WebProcess::terminate):
1323        Move logic from terminateIfPossible over here.
1324
1325        (WebKit::WebProcess::getSitesWithPluginData):
1326        (WebKit::WebProcess::clearPluginSiteData):
1327        Use the LocalTerminationDisabler RAII class.
1328
1329        * WebProcess/WebProcess.h:
1330        Publically inherit from ChildProcess, LocalTerminationDisabler needs to be accessible
1331        from the WebProcess class.
1332
13332011-04-13  Steve Falkenburg  <sfalken@apple.com>
1334
1335        Reviewed by Adam Roben.
1336
1337        Follow-up to: WebKit2 will load two copies of the same plugin, but should not
1338        https://bugs.webkit.org/show_bug.cgi?id=49075
1339
1340        Use pathGetFileName instead of Win32 PathFindFileNameW.
1341
1342        * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
1343        (WebKit::PluginInfoStore::shouldUsePlugin):
1344
13452011-04-13  Sam Weinig  <sam@webkit.org>
1346
1347        Reviewed by Gavin Barraclough.
1348
1349        WebKit2 doesn't keep overlay scrollers shown while scroll gesture held
1350        <rdar://problem/9260518>
1351
1352        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
1353        (InitWebCoreSystemInterface):
1354        Initialize new WKSI functions.
1355
13562011-04-13  Steve Falkenburg  <sfalken@apple.com>
1357
1358        Reviewed by Oliver Hunt.
1359
1360        WebKit2 will load two copies of the same plugin, but should not
1361        https://bugs.webkit.org/show_bug.cgi?id=49075
1362        <rdar://problem/8635947>
1363
1364        * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
1365        (WebKit::PluginInfoStore::shouldUsePlugin): Don't use a plug-in if we've already allowed a plug-in with the same filename.
1366
13672011-04-13  Timothy Hatcher  <timothy@apple.com>
1368
1369        Hide the dictionary panel when navigating or crashing.
1370
1371        <rdar://problem/9261202>
1372
1373        Reviewed by Sam Weinig.
1374
1375        * UIProcess/API/mac/PageClientImpl.h:
1376        * UIProcess/API/mac/PageClientImpl.mm:
1377        (WebKit::PageClientImpl::dismissDictionaryLookupPanel): Added. Call WKHideWordDefinitionWindow.
1378        * UIProcess/PageClient.h:
1379        * UIProcess/WebPageProxy.cpp:
1380        (WebKit::WebPageProxy::didCommitLoadForFrame): Call PageClient::dismissDictionaryLookupPanel.
1381        (WebKit::WebPageProxy::processDidCrash): Call dismissCorrectionPanel and PageClient::dismissDictionaryLookupPanel.
1382
13832011-04-13  Anders Carlsson  <andersca@apple.com>
1384
1385        Reviewed by Adam Roben.
1386
1387        Add support for disabling/enabling termination to ChildProcess
1388        https://bugs.webkit.org/show_bug.cgi?id=58476
1389
1390        Add ChildProcess::disableTermination and ChildProcess::enableTermination and convert
1391        the PluginProcess class over to using them.
1392
1393        * PluginProcess/PluginProcess.cpp:
1394        (WebKit::PluginProcess::PluginProcess):
1395        The child process now takes a terminationTimeout argument. Get rid of the shutdown timer.
1396
1397        (WebKit::PluginProcess::removeWebProcessConnection):
1398        Call enableTermination().
1399
1400        (WebKit::PluginProcess::shouldTerminate):
1401        Always return true.
1402
1403        (WebKit::PluginProcess::createWebProcessConnection):
1404        Call disableTermination().
1405
1406        (WebKit::PluginProcess::getSitesWithData):
1407        Call disableTermination()/enableTermination().
1408
1409        (WebKit::PluginProcess::clearSiteData):
1410        Ditto.
1411
1412        * Shared/ChildProcess.cpp:
1413        (WebKit::ChildProcess::disableTermination):
1414        Increment the counter and stop the timer.
1415
1416        (WebKit::ChildProcess::enableTermination):
1417        Decrement the counter; if it's zero, start the timer.
1418
1419        (WebKit::ChildProcess::terminationTimerFired):
1420        Call shouldTerminate(). If it returns true, call terminate().
1421
1422        (WebKit::ChildProcess::terminate):
1423        Call RunLoop::quit().
1424
1425        * WebProcess/WebProcess.cpp:
1426        (WebKit::WebProcess::WebProcess):
1427        Just initialize the termination timeout to 0 for now.
1428
1429        (WebKit::WebProcess::shouldTerminate):
1430        Always return true; this isn't used yet.
1431
1432        * WebProcess/WebProcess.h:
1433
14342011-04-13  Enrica Casucci  <enrica@apple.com>
1435
1436        Reviewed by Dan Bernstein.
1437
1438        REGRESSION: Links are clickable when a contentEditable is set to true.
1439        https://bugs.webkit.org/show_bug.cgi?id=58473
1440        <rdar://problem/9256793>
1441
1442        Added support for editable link behavior property.
1443
1444        * Shared/WebPreferencesStore.cpp:
1445        * Shared/WebPreferencesStore.h:
1446        * UIProcess/API/C/WKPreferences.cpp:
1447        (WKPreferencesSetEditableLinkBehavior):
1448        (WKPreferencesGetEditableLinkBehavior):
1449        * UIProcess/API/C/WKPreferencesPrivate.h:
1450        * WebProcess/WebPage/WebPage.cpp:
1451        (WebKit::WebPage::updatePreferences):
1452
14532011-04-12  Alexey Proskuryakov  <ap@apple.com>
1454
1455        Reviewed by Oliver Hunt.
1456
1457        REGRESSION (WebKit2): Input methods are active in non-editable content
1458        https://bugs.webkit.org/show_bug.cgi?id=58404
1459        <rdar://problem/9275940>
1460
1461        * UIProcess/API/mac/WKView.mm:
1462        (-[WKView insertText:]): Re-add the old variant of this function, because it's not only part
1463        of deprecated NSTextInput protocol, but it's also part of NSResponder, and it's called when
1464        the input context in nil.
1465        (-[WKView inputContext]): Return nil when not in editable content.
1466
14672011-04-12  Brady Eidson  <beidson@apple.com>
1468
1469        Reviewed by Maciej Stachowiak.
1470
1471        <rdar://problem/9029193> and https://bugs.webkit.org/show_bug.cgi?id=58406
1472        Bringing up the context menu on a link might also follow the link.
1473
1474        This patch adds a flag that is set just before the WebProcess tells the UIProcess to show a context menu.
1475
1476        As long as this flag is set, the WebProcess will ignore any other mouse events that might have queued up
1477        by the time the UIProcess gets around to showing the menu.
1478
1479        After the UIProcess is done showing the menu, it messages back telling the WebProcess to clear the flag
1480        and resume normal MouseEvent handling.
1481
1482        * UIProcess/WebPageProxy.cpp:
1483        (WebKit::WebPageProxy::showContextMenu): No matter what internalShowContextMenu does, always notify
1484          the WebProcess that any context menu is now hidden.
1485        (WebKit::WebPageProxy::internalShowContextMenu):
1486        * UIProcess/WebPageProxy.h:
1487
1488        * WebProcess/WebPage/WebContextMenu.cpp:
1489        (WebKit::WebContextMenu::show): Since we're telling the UIProcess to show the menu, tell the WebPage a
1490          context menu is showing so it will stop handling mouse events.
1491
1492        * WebProcess/WebPage/WebPage.cpp:
1493        (WebKit::WebPage::WebPage):
1494        (WebKit::WebPage::mouseEvent): Don't try to handle mouse events if a context menu is flagged as showing.
1495
1496        Add accessors to twiddle the "context menu showing" flag:
1497        * WebProcess/WebPage/WebPage.h:
1498        (WebKit::WebPage::contextMenuShowing):
1499        (WebKit::WebPage::contextMenuHidden):
1500        * WebProcess/WebPage/WebPage.messages.in: Add the ContextMenuHidden message.
1501
15022011-04-12  Sam Weinig  <sam@webkit.org>
1503
1504        Reviewed by Maciej Stachowiak.
1505
1506        Quarantine related sandbox denial when downloading files
1507        <rdar://problem/9203736>
1508
1509        * WebProcess/com.apple.WebProcess.sb:
1510
15112011-04-12  Sam Weinig  <sam@webkit.org>
1512
1513        Reviewed by Anders Carlsson.
1514
1515        Sandbox violations dragging an image to the desktop.
1516        <rdar://problem/9261834>
1517
1518        * WebProcess/com.apple.WebProcess.sb:
1519
15202011-04-12  Sam Weinig  <sam@webkit.org>
1521
1522        Reviewed by Cameron Zwarich.
1523
1524        Sandbox violations trying to access ~/Library/Keyboard Layouts and ~/Library/Input Methods
1525        <rdar://problem/8973159>
1526
1527        * WebProcess/com.apple.WebProcess.sb:
1528
15292011-04-12  Enrica Casucci  <enrica@apple.com>
1530
1531        Reviewed by Alexey Proskuryakov and Sam Weinig.
1532
1533        Implement non-activating clicks to allow dragging out of a background window.
1534        https://bugs.webkit.org/show_bug.cgi?id=55053
1535        <rdar://problem/9042197>
1536
1537        Added methods to WKView to support non activating click. Unfortunately both
1538        methods require a synchronous call to the WebProcess to decide what to do.
1539        acceptFirstMouse is called only if shouldDelayWindowOrderingForEvent returns
1540        true. In order to minimize the number of synchronous calls, we send the request
1541        only if our window is not the key window.
1542
1543        * UIProcess/API/mac/WKView.mm:
1544        (-[WKView acceptsFirstMouse:]):
1545        (-[WKView shouldDelayWindowOrderingForEvent:]):
1546        * UIProcess/WebPageProxy.h:
1547        * UIProcess/mac/WebPageProxyMac.mm:
1548        (WebKit::WebPageProxy::shouldDelayWindowOrderingForEvent):
1549        (WebKit::WebPageProxy::acceptsFirstMouse):
1550        * WebProcess/WebPage/WebPage.h:
1551        * WebProcess/WebPage/WebPage.messages.in:
1552        * WebProcess/WebPage/mac/WebPageMac.mm:
1553        (WebKit::WebPage::shouldDelayWindowOrderingEvent):
1554        (WebKit::WebPage::acceptsFirstMouse):
1555
15562011-04-12  Alexey Proskuryakov  <ap@apple.com>
1557
1558        Reviewed by Oliver Hunt.
1559
1560        Crash when serializing a null AttributedString
1561        https://bugs.webkit.org/show_bug.cgi?id=58393
1562        <rdar://problem/9275326>
1563
1564        * Shared/mac/AttributedString.mm:
1565        (WebKit::AttributedString::encode):
1566        (WebKit::AttributedString::decode):
1567        Prefix the serialized value with an isNull tag.
1568
15692011-04-12  Enrica Casucci  <enrica@apple.com>
1570
1571        Reviewed by Alexey Proskuryakov.
1572
1573        Infinite recursion in WebHTMLView executeSavedKeypressCommands.
1574        https://bugs.webkit.org/show_bug.cgi?id=58382
1575        <rdar://problem/9239370>
1576
1577        Execution of some editing commands could trigger a call to selectedRange that
1578        internally calls executeSavedKeypressCommands creating an infinite recursion.
1579
1580        * UIProcess/API/mac/WKView.mm:
1581        (-[WKView _executeSavedKeypressCommands]): Added flag to avoid recursion.
1582        (-[WKView _interpretKeyEvent:withCachedTextInputState:savingCommandsTo:WebCore::]):
1583        Added flag initialization.
1584
15852011-04-12  Chris Marrin  <cmarrin@apple.com>
1586
1587        Reviewed by Simon Fraser.
1588
1589        Page tears and stutters in WebKit2 when page is > 2048 pixels wide
1590        https://bugs.webkit.org/show_bug.cgi?id=58330
1591
1592        Turn off tiling for nonCompositedContentLayer to avoid tearing when
1593        scrolling very wide (> 2048) windows.
1594
1595        * WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
1596        (WebKit::LayerTreeHostCA::initialize):
1597
15982011-04-12  Anders Carlsson  <andersca@apple.com>
1599
1600        Reviewed by Adam Roben.
1601
1602        Assertion in DrawingAreaImpl::resumePainting() (m_isPaintingSuspended) when clicking a link at twitter.com
1603        https://bugs.webkit.org/show_bug.cgi?id=58377
1604        <rdar://problem/8976531>
1605
1606        Remove the assertion.
1607
1608        * WebProcess/WebPage/DrawingAreaImpl.cpp:
1609        (WebKit::DrawingAreaImpl::resumePainting):
1610
16112011-04-11  Stephanie Lewis  <slewis@apple.com>
1612
1613        Reviewed by Oliver Hunt.
1614
1615        https://bugs.webkit.org/show_bug.cgi?id=58280
1616        <rdar://problem/9252824> javascript in an inconsistent state due to serialization returning an un-handled exception
1617        Change use of SerializedScriptValue::Create to use the same api as the rest of WebKit2.  This has the benefit
1618        of handling any exceptions so Javascript is not in an inconsistent state.
1619
1620        * Shared/API/c/WKSerializedScriptValue.h: fix a typo
1621        * WebProcess/WebPage/WebPage.cpp:
1622        (WebKit::WebPage::runJavaScriptInMainFrame):
1623
16242011-04-12  Jeff Miller  <jeffm@apple.com>
1625
1626        Reviewed by Adam Roben.
1627
1628        WebKit2: Pressing Tab in Web Inspector's console does not cycle through completion options
1629        https://bugs.webkit.org/show_bug.cgi?id=56020
1630
1631        Safari was always calling TranslateMessage() on key events since it has no way to know whether
1632        WebKit handled the event without a PageUIClient (which Safari only installs on pages inside
1633        a Safari window), which was generating a WM_CHAR message containing the tab in this case.  The fix
1634        is for Safari to never call TranslateMessage() on key events outside of a Safari window, but this
1635        means the WebPageProxy needs to do this for unhandled key events if there is no didNotHandleKeyEvent
1636        callback in the PageUIClient.
1637
1638        * UIProcess/WebPageProxy.cpp:
1639        (WebKit::WebPageProxy::didReceiveEvent): Call TranslateMessage() on Windows for unhandled key events that can't be handled by the PageUIClient.
1640        * UIProcess/WebUIClient.cpp:
1641        (WebKit::WebUIClient::canNotHandleKeyEvent): Added.
1642        * UIProcess/WebUIClient.h: Added canNotHandleKeyEvent().
1643
16442011-04-12  Alice Liu  <alice.liu@apple.com>
1645
1646        Reviewed by Sam Weinig.
1647
1648        https://bugs.webkit.org/show_bug.cgi?id=58292
1649        Provide new setting to allow site icon loading despite disabling automatic image loading in general.
1650
1651        * Shared/WebPreferencesStore.h: Add macro for setting default value.
1652        * UIProcess/API/C/WKPreferences.cpp:
1653        (WKPreferencesSetLoadsSiteIconsIgnoringImageLoadingPreference): Added setter.
1654        (WKPreferencesGetLoadsSiteIconsIgnoringImageLoadingPreference): Added getter.
1655        * UIProcess/API/C/WKPreferences.h:
1656        * WebProcess/WebPage/WebPage.cpp:
1657        (WebKit::WebPage::updatePreferences): Add to list of WebCore settings that get propagated to WebKit preferences.
1658
16592011-04-12  Jessie Berlin  <jberlin@apple.com>
1660
1661        Reviewed by Anders Carlsson.
1662
1663        WebKit2: Spelling and Grammar Checking: Make sure to remove the markings from the document
1664        when spelling and/or grammar checking is disabled.
1665        https://bugs.webkit.org/show_bug.cgi?id=58350
1666
1667        * UIProcess/API/mac/WKView.mm:
1668        (-[WKView toggleContinuousSpellChecking:]):
1669        Move the call to unmark the errors to the WebProcess.
1670        (-[WKView setGrammarCheckingEnabled:]):
1671        Ditto.
1672        (-[WKView toggleGrammarChecking:]):
1673        Ditto.
1674
1675        * UIProcess/WebPageProxy.cpp:
1676        Remove unused functions.
1677        * UIProcess/WebPageProxy.h:
1678        Ditto.
1679        * WebProcess/WebPage/WebPage.messages.in:
1680        Ditto.
1681        * WebProcess/WebPage/WebPage.h:
1682
1683        * WebProcess/WebProcess.cpp:
1684        (WebKit::WebProcess::setTextCheckerState):
1685        If grammar or spelling checking is disabled, unmark all the pages.
1686        Doing it here allows makes it possible to unmark all pages in a cross-platform way that is
1687        triggered both by selecting the the context menu items and by any other methods of updating
1688        the enabled / disabled state.
1689
16902011-04-12  Anders Carlsson  <andersca@apple.com>
1691
1692        Reviewed by Sam Weinig.
1693
1694        Cisco Meeting Center will not download or launch from Safari
1695        https://bugs.webkit.org/show_bug.cgi?id=58366
1696        <rdar://problem/8987139>
1697
1698        It's OK if a plug-in has less (or more) MIME type descriptions than actual MIME types.
1699
1700        * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
1701        (WebKit::getPluginInfoFromCarbonResources):
1702
17032011-04-12  Anders Carlsson  <andersca@apple.com>
1704
1705        Reviewed by Sam Weinig.
1706
1707        Call PluginControllerProxy::platformGeometryDidChange before Plugin::geometryDidChange
1708        https://bugs.webkit.org/show_bug.cgi?id=58361
1709
1710        Since Plugin::geometryDidChange ends up calling plug-in code it can resize the plug-in which causes
1711        platformGeometryDidChange to be called with the wrong rect.
1712
1713        * PluginProcess/PluginControllerProxy.cpp:
1714        (WebKit::PluginControllerProxy::geometryDidChange):
1715        Call platformGeometryDidChange.
1716
1717        * PluginProcess/PluginControllerProxy.h:
1718        * PluginProcess/mac/PluginControllerProxyMac.mm:
1719        (WebKit::PluginControllerProxy::platformGeometryDidChange):
1720        Remove the parameters to platformGeometryDidChange and just use m_frameRect instead.
1721
17222011-04-12  Anders Carlsson  <andersca@apple.com>
1723
1724        Reviewed by Sam Weinig.
1725
1726        Move three Mac specific functions to PluginControllerProxyMac.mm.
1727
17282011-04-12  Anders Carlsson  <andersca@apple.com>
1729
1730        Reviewed by Sam Weinig.
1731
1732        Cache the window and plug-in element NPObjects
1733        https://bugs.webkit.org/show_bug.cgi?id=58355
1734
1735        * PluginProcess/PluginControllerProxy.cpp:
1736        (WebKit::PluginControllerProxy::PluginControllerProxy):
1737        (WebKit::PluginControllerProxy::~PluginControllerProxy):
1738        (WebKit::PluginControllerProxy::windowScriptNPObject):
1739        (WebKit::PluginControllerProxy::pluginElementNPObject):
1740        * PluginProcess/PluginControllerProxy.h:
1741
17422011-04-12  Alejandro G. Castro  <alex@igalia.com>
1743
1744        Fixed GTK compilation after r83454.
1745
1746        * UIProcess/gtk/WebView.cpp:
1747        (WebKit::WebView::findStringInCustomRepresentation):
1748        (WebKit::WebView::countStringMatchesInCustomRepresentation):
1749        * UIProcess/gtk/WebView.h:
1750
17512011-04-11  Daniel Bates  <dbates@webkit.org>
1752
1753        Attempt to fix the Qt Linux Release build after changeset 83550 <http://trac.webkit.org/changeset/83550>
1754        (https://bugs.webkit.org/show_bug.cgi?id=54159).
1755
1756        * WebKit2API.pri: Append UIProcess/API/C/WKResourceCacheManager.cpp to the list WEBKIT2_API_SOURCES.
1757
17582011-04-11  Sam Weinig  <sam@webkit.org>
1759
1760        Reviewed by Anders Carlsson.
1761
1762        Move focus management out of WebKit via  the UIClient
1763        <rdar://problem/8784068>
1764        https://bugs.webkit.org/show_bug.cgi?id=58278
1765
1766        * UIProcess/API/C/WKPage.h:
1767        * UIProcess/API/mac/PageClientImpl.h:
1768        * UIProcess/API/mac/PageClientImpl.mm:
1769        * UIProcess/API/qt/qwkpage.cpp:
1770        (QWKPage::QWKPage):
1771        * UIProcess/API/qt/qwkpage_p.h:
1772        * UIProcess/PageClient.h:
1773        * UIProcess/WebPageProxy.cpp:
1774        (WebKit::WebPageProxy::setFocus):
1775        * UIProcess/WebUIClient.cpp:
1776        (WebKit::WebUIClient::focus):
1777        (WebKit::WebUIClient::unfocus):
1778        * UIProcess/WebUIClient.h:
1779        * UIProcess/gtk/WebView.cpp:
1780        * UIProcess/gtk/WebView.h:
1781        * UIProcess/win/WebView.h:
1782        Remove PageClient::setFocus() in favor of WebUIClient::focus and WebUIClient::unfocus.
1783
17842011-04-11  Alexey Proskuryakov  <ap@apple.com>
1785
1786        Reviewed by Maciej Stachowiak.
1787
1788        WebKit2: Cannot use Ctrl-Delete as a custom keyboard shortcut
1789        https://bugs.webkit.org/show_bug.cgi?id=58265
1790        <rdar://problem/9221468>
1791
1792        * WebProcess/WebPage/WebPage.cpp:
1793        (WebKit::WebPage::keyEvent): Added a comment explaining that doing work after DOM event
1794        dispatch isn't great.
1795        * WebProcess/WebPage/mac/WebPageMac.mm:
1796        (WebKit::WebPage::performNonEditingBehaviorForSelector): Added a comment explaining how this
1797        might be moved down to WebCore.
1798        (WebKit::WebPage::performDefaultBehaviorForKeyEvent): This is now empty, since both Space
1799        and Backspace behaviors are implemented in WebCore.
1800
18012011-04-11  Anders Carlsson  <andersca@apple.com>
1802
1803        Try to fix the Windows build.
1804
1805        * UIProcess/win/WebInspectorProxyWin.cpp:
1806        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
1807
18082011-04-11  Alexey Proskuryakov  <ap@apple.com>
1809
1810        Reviewed by Dan Bernstein.
1811
1812        REGRESSION (r83081): Esc key no longer removes current Kotoeri text operation
1813        https://bugs.webkit.org/show_bug.cgi?id=58274
1814        <rdar://problem/9263683>
1815
1816        * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::getMarkedRange): Wrap the returned
1817        temporary in RefPtr.
1818
18192011-04-11  Anders Carlsson  <andersca@apple.com>
1820
1821        Reviewed by Sam Weinig.
1822
1823        Remove m_urlAtProcessExit from WebPageProxy
1824        https://bugs.webkit.org/show_bug.cgi?id=58275
1825
1826        Get rid of m_urlAtProcessExit and replace some zeros with nullptrs.
1827
1828        * UIProcess/WebPageProxy.cpp:
1829        (WebKit::WebPageProxy::processDidCrash):
1830        * UIProcess/WebPageProxy.h:
1831
18322011-04-11  Anders Carlsson  <andersca@apple.com>
1833
1834        Reviewed by Adam Roben.
1835
1836        Remove the WebContext member variable from WebPageProxy
1837        https://bugs.webkit.org/show_bug.cgi?id=58271
1838        <rdar://problem/9148125>
1839
1840        * UIProcess/API/C/WKPage.cpp:
1841        (WKPageGetContext):
1842        * UIProcess/WebPageProxy.cpp:
1843        (WebKit::WebPageProxy::create):
1844        (WebKit::WebPageProxy::WebPageProxy):
1845        (WebKit::WebPageProxy::process):
1846        (WebKit::WebPageProxy::reattachToWebProcess):
1847        (WebKit::WebPageProxy::canShowMIMEType):
1848        (WebKit::WebPageProxy::receivedPolicyDecision):
1849        (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
1850        (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
1851        (WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
1852        (WebKit::WebPageProxy::didCommitLoadForFrame):
1853        (WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
1854        (WebKit::WebPageProxy::didFinishLoadForFrame):
1855        (WebKit::WebPageProxy::didFailLoadForFrame):
1856        (WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
1857        (WebKit::WebPageProxy::didReceiveTitleForFrame):
1858        (WebKit::WebPageProxy::didFirstLayoutForFrame):
1859        (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
1860        (WebKit::WebPageProxy::didRemoveFrameFromHierarchy):
1861        (WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
1862        (WebKit::WebPageProxy::didRunInsecureContentForFrame):
1863        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
1864        (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
1865        (WebKit::WebPageProxy::decidePolicyForResponse):
1866        (WebKit::WebPageProxy::unableToImplementPolicy):
1867        (WebKit::WebPageProxy::willSubmitForm):
1868        (WebKit::WebPageProxy::mouseDidMoveOverElement):
1869        (WebKit::WebPageProxy::showContextMenu):
1870        (WebKit::WebPageProxy::contextMenuItemSelected):
1871        * UIProcess/WebPageProxy.h:
1872        * UIProcess/WebProcessProxy.cpp:
1873        (WebKit::WebProcessProxy::createWebPage):
1874        * UIProcess/mac/WebInspectorProxyMac.mm:
1875        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
1876
18772011-04-11  Eric Carlson  <eric.carlson@apple.com>
1878
1879        Reviewed by Adam Roben.
1880
1881        Ignore context change callbacks when not on the main thread
1882        https://bugs.webkit.org/show_bug.cgi?id=58256
1883        <rdar://problem/9266090>
1884
1885        * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.cpp:
1886        (WebKit::LayerTreeHostCAWin::contextDidChangeCallback): Do nothing when not called
1887            on the main thread. This should only happen when no changes have actually
1888            been committed to the context, eg. when a video frame has been added to an image
1889            queue, so return without triggering animations etc.
1890
18912011-04-11  Anders Carlsson  <andersca@apple.com>
1892
1893        Reviewed by Sam Weinig.
1894
1895        First step towards simplifying WebPageProxy/WebProcessProxy/WebContext ownership
1896        https://bugs.webkit.org/show_bug.cgi?id=58266
1897        <rdar://problem/9148125>
1898
1899        With this patch, the WKView holds a strong reference to a WebPageProxy. The
1900        WebPageProxy in turn holds a strong reference to its WebProcessProxy. Finally,
1901        The WebProcessProxy holds a strong reference to its WebContext.
1902
1903        The WebContext holds a strong reference to the running WebProcessProxy which results
1904        in a reference cycle that's broken when the web process exits.
1905
1906        The reason for is to avoid crashes where WebPageProxy::process() returns null if the web process
1907        has crashed but has not yet been relaunched.
1908
1909        * UIProcess/WebContext.cpp:
1910        (WebKit::WebContext::disconnectProcess):
1911        Add comment.
1912
1913        (WebKit::WebContext::createWebPage):
1914        Return a PassRefPtr.
1915
1916        (WebKit::WebContext::relaunchProcessIfNecessary):
1917        Change this to return a WebPageProxy.
1918
1919        * UIProcess/WebPageProxy.cpp:
1920        (WebKit::WebPageProxy::create):
1921        This now takes a PassRefPtr<WebProcessProxy>.
1922
1923        (WebKit::WebPageProxy::WebPageProxy):
1924        Ditto.
1925
1926        (WebKit::WebPageProxy::~WebPageProxy):
1927        Call close() if necessary.
1928
1929        (WebKit::WebPageProxy::reattachToWebProcess):
1930        Replace the current process with the new process.
1931
1932        * UIProcess/WebProcessProxy.cpp:
1933        (WebKit::WebProcessProxy::create):
1934        Take a PassRefPtr<WebContext>.
1935
1936        (WebKit::WebProcessProxy::WebProcessProxy):
1937        Ditto.
1938
1939        (WebKit::WebProcessProxy::webPage):
1940        Remove .get() now that the page map uses weak references.
1941
1942        (WebKit::WebProcessProxy::createWebPage):
1943        This now returns the created web page proxy.
1944
19452011-04-11  Adam Roben  <aroben@apple.com>
1946
1947        Dispatch sent messages to windows owned by the web process when waiting a sync CoreIPC reply
1948
1949        On Windows, windowed plugins' HWNDs are created as children of the WKView's window. This
1950        creates a cross-process window hierarchy, which in turn attaches the input states of the UI
1951        process's and web process's main threads (as if ::AttachThreadInput has been called). Having
1952        the input states attached means that changes to the input state (e.g., changing the focus
1953        window) can result in synchronous window messages being sent between the processes. This can
1954        result in deadlocks if the UI process changes the input state while handling a synchronous
1955        CoreIPC message from the web process. Since the web process isn't running its message loop
1956        while waiting for the reply, it never processes the messages Windows is sending it from the
1957        UI process.
1958
1959        The solution taken in this patch is to continue to dispatch sent (not posted) messages to
1960        windows created by the web process while waiting for a sync CoreIPC reply. Someday we can
1961        hopefully reduce the number of cases in which the UI process modifies the thread's input
1962        state while handling a synchronous message; see the bug for details.
1963
1964        Fixes <http://webkit.org/b/58239> <rdar://problem/8769302> REGRESSION (WebKit2): Deadlock
1965        clicking Flash plugin
1966
1967        Reviewed by Anders Carlsson.
1968
1969        * Platform/CoreIPC/BinarySemaphore.h:
1970        (CoreIPC::BinarySemaphore::event): Added. Simple getter to expose the underlying event
1971        HANDLE.
1972
1973        * Platform/CoreIPC/Connection.cpp:
1974        (CoreIPC::Connection::SyncMessageState::waitWhileDispatchingSentMessages): New Windows-only
1975        function that is used instead of wait() so that sent messages will continue to be
1976        dispatched.
1977        (CoreIPC::Connection::waitForSyncReply): Use waitWhileDispatchingSentMessages instead of
1978        wait on Windows. Our Client gives us the set of windows that need to have windows delivered
1979        to them.
1980
1981        * Platform/CoreIPC/Connection.h: Added new
1982        windowsToReceiveSentMessagesWhileWaitingForSyncReply function to Client.
1983
1984        * Platform/RunLoop.h: Added new dispatchSentMessagesUntil function to be used while waiting
1985        for a sync CoreIPC reply.
1986
1987        * Platform/win/RunLoopWin.cpp:
1988        (RunLoop::dispatchSentMessagesUntil): Added. If we have no windows to dispatch messages to,
1989        then just wait on the semaphore. Otherwise spin a ::MsgWaitForMultipleObjectsEx loop to
1990        detect when the semaphore is signaled, the timeout elapses, or sent messages are available,
1991        and handle each case appropriately.
1992
1993        * UIProcess/WebProcessProxy.h: Added new CoreIPC::Connection::Client function.
1994
1995        * UIProcess/win/WebProcessProxyWin.cpp: Added.
1996        (WebKit::WebProcessProxy::windowsToReceiveSentMessagesWhileWaitingForSyncReply): Just return
1997        an empty Vector. The web process never modifies the thread's input state while responding to
1998        a synchronous message, so we don't have anything to worry about here.
1999
2000        * WebProcess/WebProcess.h: Added new CoreIPC::Connection::Client function.
2001
2002        * WebProcess/win/WebProcessWin.cpp:
2003        (WebKit::addWindowToVectorIfOwnedByCurrentThread): New helper function to be called by
2004        ::EnumThreadWindows/::EnumChildWindows. Does what it says.
2005        (WebKit::WebProcess::windowsToReceiveSentMessagesWhileWaitingForSyncReply): Added. Returns
2006        all top-level windows created by this thread, descendants of those windows created by this
2007        thread, and descendants of WKViews' windows created by this thread.
2008
2009        * win/WebKit2.vcproj: Added WebProcessProxyWin.cpp.
2010
20112011-04-11  Jessie Berlin  <jberlin@apple.com>
2012
2013        Reviewed by Anders Carlsson.
2014
2015        WebKit2: Implement TextChecker on Windows
2016        https://bugs.webkit.org/show_bug.cgi?id=57862
2017
2018        Part 7: Implement getGuessesForWord, learnWord, and ignoreWord.
2019
2020        * UIProcess/API/C/win/WKTextChecker.cpp:
2021        (WKTextCheckerChangeSpellingToWord):
2022        * UIProcess/API/C/win/WKTextChecker.h:
2023
2024        * UIProcess/WebPageProxy.cpp:
2025        (WebKit::WebPageProxy::changeSpellingToWord):
2026        Make this function const since it does not modify the WebPageProxy and making it const
2027        allows WebTextChecker::changeSpellingToWord to take a const WebPageProxy.
2028        (WebKit::WebPageProxy::learnWord):
2029        * UIProcess/WebPageProxy.h:
2030
2031        * UIProcess/TextChecker.h:
2032        * UIProcess/win/TextCheckerWin.cpp:
2033        (WebKit::TextChecker::getGuessesForWord):
2034        Ask the TextCheckerClient for the guesses.
2035        (WebKit::TextChecker::learnWord):
2036        Tell the TextCheckerClient.
2037        (WebKit::TextChecker::ignoreWord):
2038        Ditto.
2039        * UIProcess/gtk/TextCheckerGtk.cpp:
2040        (WebKit::TextChecker::learnWord):
2041        Add an unused param that is necessary for Windows.
2042        * UIProcess/mac/TextCheckerMac.mm:
2043        (WebKit::TextChecker::learnWord):
2044        Ditto.
2045        * UIProcess/qt/TextCheckerQt.cpp:
2046        (WebKit::TextChecker::learnWord):
2047        Ditto.
2048
2049        * UIProcess/win/WebTextChecker.cpp:
2050        (WebKit::WebTextChecker::changeSpellingToWord):
2051        Tell the page.
2052        * UIProcess/win/WebTextChecker.h:
2053
2054        * UIProcess/win/WebTextCheckerClient.cpp:
2055        (WebKit::WebTextCheckerClient::guessesForWord):
2056        (WebKit::WebTextCheckerClient::learnWord):
2057        (WebKit::WebTextCheckerClient::ignoreWord):
2058        * UIProcess/win/WebTextCheckerClient.h:
2059
20602011-04-11  Anders Carlsson  <andersca@apple.com>
2061
2062        Reviewed by Sam Weinig.
2063
2064        Remove unused WebProcessProxy functions
2065        https://bugs.webkit.org/show_bug.cgi?id=58262
2066
2067        * UIProcess/WebProcessProxy.cpp:
2068        * UIProcess/WebProcessProxy.h:
2069
20702011-04-11  Anders Carlsson  <andersca@apple.com>
2071
2072        Reviewed by Sam Weinig.
2073
2074        Crash in WebPageProxy::countStringMatches
2075        https://bugs.webkit.org/show_bug.cgi?id=58255
2076        <rdar://problem/9243837>
2077
2078        * UIProcess/WebPageProxy.cpp:
2079        (WebKit::WebPageProxy::countStringMatches):
2080        Return early if the page is not valid.
2081
20822011-04-11  Sam Weinig  <sam@webkit.org>
2083
2084        Reviewed by Anders Carlsson.
2085
2086        WebKit2: links don’t update to look visited
2087        <rdar://problem/8806254>
2088        https://bugs.webkit.org/show_bug.cgi?id=58252
2089
2090        * WebProcess/WebProcess.cpp:
2091        (WebKit::WebProcess::visitedLinkStateChanged):
2092        (WebKit::WebProcess::allVisitedLinkStateChanged):
2093        * WebProcess/WebProcess.h:
2094        Remove use of vestigial sharedPageGroup and instead iterate set of
2095        page groups in use by the process.
2096
20972011-04-11  Brian Weinstein  <bweinstein@apple.com>
2098
2099        Reviewed by Adam Roben.
2100
2101        WebKit2: Windows 7 Gestures Window Bounce shouldn't require a sync message
2102        https://bugs.webkit.org/show_bug.cgi?id=58167
2103        <rdar://problem/9259813>
2104
2105        Instead of making GestureDidScroll sync, have WebPageWin call from WebProcess ->
2106        UIProcess when the gesture causes the page to scroll to the beginning or the
2107        end of the document.
2108
2109        * UIProcess/PageClient.h:
2110        * UIProcess/WebPageProxy.cpp:
2111        (WebKit::WebPageProxy::gestureDidScroll): Not a sync message anymore.
2112        (WebKit::WebPageProxy::setGestureScrollingLimitReached): Tell the page client that the gesture
2113            scrolling limnit was reached.
2114        * UIProcess/WebPageProxy.h:
2115        * UIProcess/WebPageProxy.messages.in: Add a new message.
2116        * UIProcess/win/WebView.cpp:
2117        (WebKit::WebView::WebView): Initialize new variable.
2118        (WebKit::WebView::onGesture): Use the state of the member variable, not the response from
2119            the sync message.
2120        * UIProcess/win/WebView.h:
2121        (WebKit::WebView::setGestureScrollingLimitReached):
2122        * WebProcess/WebPage/WebPage.h:
2123        * WebProcess/WebPage/WebPage.messages.in:
2124        * WebProcess/WebPage/win/WebPageWin.cpp:
2125        (WebKit::scrollbarAtTopOfBottomOrDocument): Returns whether or not the scrollbar is at the
2126            top or bottom of the document.
2127        (WebKit::WebPage::gestureDidScroll): Track whether or not we started at the beginning
2128            or end of the document, and whether or not we ended at the beginning or end of the document,
2129            and send a message if the value changed.
2130
21312011-04-04  Jer Noble  <jer.noble@apple.com>
2132
2133        Reviewed by Maciej Stachowiak.
2134
2135        WK2: PDF: Find in page
2136        https://bugs.webkit.org/show_bug.cgi?id=57765
2137
2138        Support searching text within PDF documents.  Find requests must be routed from the
2139        WebPageProxy, through the PageClient, and to the WKView, where they can be passed to
2140        the PDFViewController.
2141
2142        * UIProcess/API/mac/PDFViewController.h:
2143        * UIProcess/API/mac/PDFViewController.mm:
2144        (_PDFSelectionsAreEqual): Copied from WebPDFView.
2145        (-[WKPDFView _nextMatchFor:direction:caseSensitive:wrap:fromSelection:startInSelection:]): Copied from WebPDFView.
2146        (-[WKPDFView _countMatches:caseSensitive:]): Added.
2147        (WebKit::PDFViewController::findString): Added.
2148        (WebKit::PDFViewController::countStringMatches): Added.
2149        * UIProcess/PageClient.h:
2150        * UIProcess/API/mac/PageClientImpl.h:
2151        * UIProcess/API/mac/PageClientImpl.mm:
2152        (WebKit::PageClientImpl::findStringInCustomRepresentation): Added.
2153        (WebKit::PageClientImpl::countStringMatchesInCustomRepresentation): Added.
2154        * UIProcess/API/mac/WKViewInternal.h:
2155        * UIProcess/API/mac/WKView.mm:
2156        (-[WKView _findStringInCustomRepresentation:withFindOptions:maxMatchCount:]): Added.
2157        (-[WKView _countStringMatchesInCustomRepresentation:withFindOptions:maxMatchCount:]): Added.
2158        * UIProcess/WebPageProxy.h: Moved a number of find-related functions from private: to public: so
2159            they could be called from PDFViewController.
2160        * UIProcess/WebPageProxy.cpp:
2161        (WebKit::WebPageProxy::findString): Added.
2162        (WebKit::WebPageProxy::countStringMatches): Added.
2163        * UIProcess/win/WebView.cpp:
2164        (WebKit::WebView::findStringInCustomRepresentation): Added stub.
2165        (WebKit::WebView::countStringMatchesInCustomRepresentation): Ditto.
2166        * UIProcess/win/WebView.h:
2167        * UIProcess/API/qt/qwkpage_p.h:
2168        (QWKPagePrivate::findStringInCustomRepresentation): Added stub.
2169        (QWKPagePrivate::countStringMatchesInCustomRepresentation): Added stub.
2170
21712011-04-11  Jessie Berlin  <jberlin@apple.com>
2172
2173        Reviewed by Anders Carlsson.
2174
2175        WebKit2: Implement TextChecker on Windows
2176        https://bugs.webkit.org/show_bug.cgi?id=57862
2177
2178        Part 6: Update the Spelling UI with the spelling and grammar mistakes.
2179
2180        * UIProcess/API/C/win/WKAPICastWin.h:
2181        (WebKit::toAPI):
2182        Make it possible to go from a WebCore::GrammarDetail to a WebGrammarDetail.
2183
2184        * UIProcess/API/C/win/WKGrammarDetail.cpp:
2185        (WKGrammarDetailCreate):
2186        (WKGrammarDetailGetLocation):
2187        (WKGrammarDetailGetLength):
2188        (WKGrammarDetailCopyGuesses):
2189        (WKGrammarDetailCopyUserDescription):
2190        * UIProcess/API/C/win/WKGrammarDetail.h:
2191
2192        * UIProcess/API/C/win/WKTextChecker.cpp:
2193        (WKTextCheckerCheckSpelling):
2194        Tell the WebTextChecker.
2195        * UIProcess/API/C/win/WKTextChecker.h:
2196
2197        * UIProcess/WebPageProxy.cpp:
2198        (WebKit::WebPageProxy::contextMenuItemSelected):
2199        If the show/hide spelling UI is selected and the spelling UI is not showing, make sure to
2200        advance to the next misspelling (in this case, the first).
2201        This behavior matches that in WebCore and WKView.mm.
2202        (WebKit::WebPageProxy::advanceToNextMisspelling):
2203        Make this function const since it does not modify the WebPageProxy and making it const
2204        allows WebTextChecker::checkSpelling to take a const WebPageProxy.
2205        (WebKit::WebPageProxy::spellDocumentTag):
2206        (WebKit::WebPageProxy::updateSpellingUIWithMisspelledWord):
2207        (WebKit::WebPageProxy::updateSpellingUIWithGrammarString):
2208        * UIProcess/WebPageProxy.h:
2209
2210        * UIProcess/TextChecker.h:
2211        * UIProcess/win/TextCheckerWin.cpp:
2212        (WebKit::TextChecker::uniqueSpellDocumentTag):
2213        Tell the TextCheckerClient which WebPageProxy this tag is for.
2214        (WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
2215        Tell the TextCheckerClient.
2216        (WebKit::TextChecker::updateSpellingUIWithGrammarString):
2217        Ditto.
2218        * UIProcess/mac/TextCheckerMac.mm:
2219        (WebKit::TextChecker::uniqueSpellDocumentTag):
2220        Add the new argument that is unused by this port.
2221        (WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
2222        Ditto.
2223        (WebKit::TextChecker::updateSpellingUIWithGrammarString):
2224        Ditto.
2225        * UIProcess/gtk/TextCheckerGtk.cpp:
2226        (WebKit::TextChecker::uniqueSpellDocumentTag):
2227        Ditto.
2228        (WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
2229        Ditto.
2230        (WebKit::TextChecker::updateSpellingUIWithGrammarString):
2231        Ditto.
2232        * UIProcess/qt/TextCheckerQt.cpp:
2233        (WebKit::TextChecker::uniqueSpellDocumentTag):
2234        Ditto.
2235        (WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
2236        Ditto.
2237        (WebKit::TextChecker::updateSpellingUIWithGrammarString):
2238        Ditto.
2239
2240        * UIProcess/win/WebGrammarDetail.cpp:
2241        (WebKit::WebGrammarDetail::create):
2242        (WebKit::WebGrammarDetail::WebGrammarDetail):
2243        (WebKit::WebGrammarDetail::guesses):
2244        * UIProcess/win/WebGrammarDetail.h:
2245        (WebKit::WebGrammarDetail::location):
2246        (WebKit::WebGrammarDetail::length):
2247        (WebKit::WebGrammarDetail::userDescription):
2248
2249        * UIProcess/win/WebTextChecker.cpp:
2250        (WebKit::WebTextChecker::checkSpelling):
2251        Tell the page to advance to the next misspelling. This matches the WK1 WebView.cpp logic.
2252
2253        * UIProcess/win/WebTextChecker.h:
2254        * UIProcess/win/WebTextCheckerClient.cpp:
2255        (WebKit::WebTextCheckerClient::uniqueSpellDocumentTag):
2256        (WebKit::WebTextCheckerClient::toggleSpellingUIIsShowing):
2257        (WebKit::WebTextCheckerClient::updateSpellingUIWithMisspelledWord):
2258        (WebKit::WebTextCheckerClient::updateSpellingUIWithGrammarString):
2259        * UIProcess/win/WebTextCheckerClient.h:
2260
22612011-04-10  Maciej Stachowiak  <mjs@apple.com>
2262
2263        Not reviewed.
2264
2265        Remove extra inadvertantly commiteed changes from last change.
2266
2267        * WebProcess/com.apple.WebProcess.sb:
2268
22692011-04-10  Maciej Stachowiak  <mjs@apple.com>
2270
2271        Reviewed by Dan Bernstein.
2272
2273        REGRESSION: WebProcess spews sandboxing violations for outbound network traffic
2274        https://bugs.webkit.org/show_bug.cgi?id=58215
2275        <rdar://problem/9251695>
2276
2277        * WebProcess/com.apple.WebProcess.sb: Restore some previously removed rules.
2278
22792011-04-10  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
2280
2281        Reviewed by Eric Seidel.
2282
2283        Require no undefined symbols during compilation.
2284
2285        [Qt] [WK2] WebKitTestRunner, QtWebProcess and WTRInjectBundle should fail to compile when there's undefined symbols
2286        https://bugs.webkit.org/show_bug.cgi?id=54896
2287
2288        Add -Wl,--no-undefined to catch missing symbols early.
2289
2290        * WebProcess.pro:
2291
22922011-04-09  Geoffrey Garen  <ggaren@apple.com>
2293
2294        Not reviewed.
2295
2296        Try recommitting some things svn left out of my last commit.
2297
2298        * WebProcess/Plugins/Netscape/NPJSObject.h:
2299
23002011-04-09  Geoffrey Garen  <ggaren@apple.com>
2301
2302        Not reviewed.
2303
2304        Try recommitting some things svn left out of my last commit.
2305
2306        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
2307        (WebKit::NPRuntimeObjectMap::evaluate):
2308
23092011-04-08  Alexey Proskuryakov  <ap@apple.com>
2310
2311        Reviewed by Darin Adler.
2312
2313        WebKit2: Safari doesn't respect cmd-arrows (and variations) as custom keyboard shortcuts
2314        https://bugs.webkit.org/show_bug.cgi?id=58175
2315        <rdar://problem/9060555>
2316
2317        The problem is that command handling should be different for events that come as keyDown:
2318        and those that come as performKeyEquivalent:. WebKit1 only tries custom "key bindings"
2319        when handling a keyDown:, letting a performKeyEquivalent: run through the whole responder
2320        chain first.
2321
2322        This would be very difficult to implement in WebKit2 because of how it re-sends the same
2323        event after web process handling. Luckily, we can both fix the bug and make the behavior
2324        more robust by not hardcoding key combinations.
2325
2326        * WebProcess/WebPage/WebPage.h: Edit performNonEditingBehaviorForSelector.
2327        * WebProcess/WebPage/mac/WebPageMac.mm:
2328        (WebKit::WebPage::executeKeypressCommandsInternal): When executing commands, also try
2329        executing editor commands in their non-editing meaning, which is usually scrolling.
2330        (WebKit::WebPage::performNonEditingBehaviorForSelector): Naive implementation with a chain
2331        of ifs, which is hopefully ok performance-wise for a dozen check.
2332        (WebKit::WebPage::performDefaultBehaviorForKeyEvent): Only kept two commands here that I
2333        couldn't easily move.
2334
23352011-04-08  Jessie Berlin  <jberlin@apple.com>
2336
2337        Reviewed by Anders Carlsson.
2338
2339        WebKit2: Show the substitutions panel on Mac and make sure the menu items titles are
2340        updated correctly.
2341        https://bugs.webkit.org/show_bug.cgi?id=58179
2342
2343        * UIProcess/API/mac/WKView.mm:
2344        (-[WKView validateUserInterfaceItem:]):
2345        The title of the context menu item should be opposite of whether or not the spelling panel
2346        is visible.
2347
2348        * UIProcess/WebPageProxy.cpp:
2349        (WebKit::WebPageProxy::contextMenuItemSelected):
2350        If the "Show/Hide" Substitutions item is selected, call toggleSubstitutionsPanelIsShowing.
2351        (WebKit::WebPageProxy::substitutionsPanelIsShowing):
2352        Ask the TextChecker.
2353        * UIProcess/WebPageProxy.h:
2354        * UIProcess/WebPageProxy.messages.in:
2355
2356        * UIProcess/TextChecker.h:
2357        * UIProcess/mac/TextCheckerMac.mm:
2358        (WebKit::TextChecker::substitutionsPanelIsShowing):
2359        As the shared NSSpellChecker if the substitutionsPanel is visible.
2360        (WebKit::TextChecker::toggleSubstitutionsPanelIsShowing):
2361        Order the substitutionsPanel out or front (copied from WKView.mm).
2362
2363        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
2364        (WebKit::WebEditorClient::substitutionsPanelIsShowing):
2365        Send a sync message to the UI process to find out.
2366        It needs to be sync because the editor code relies on the value returned.
2367
23682011-04-08  Dan Bernstein  <mitz@apple.com>
2369
2370        Reviewed by Adele Peterson.
2371
2372        Fixed a bug where right-to-left frames incorrectly reported that they were pinned to the left
2373        when they were actually not.
2374
2375        * WebProcess/WebPage/WebPage.cpp:
2376        (WebKit::WebPage::didChangeScrollOffsetForMainFrame): Do not assume that the minimum scroll offset
2377        is zero, because it is not.
2378
23792011-04-08  Anders Carlsson  <andersca@apple.com>
2380
2381        Fix the Windows build.
2382
2383        * UIProcess/win/WebView.cpp:
2384        (WebKit::WebView::Drop):
2385
23862011-04-08  Jessie Berlin  <jberlin@apple.com>
2387
2388        Reviewed by Anders Carlsson.
2389
2390        WebKit2: Implement TextChecker on Windows
2391        https://bugs.webkit.org/show_bug.cgi?id=57862
2392
2393        Part 5: Implement the code show and hide the Spelling UI via the context menu item (both
2394        Windows and Mac).
2395
2396        * UIProcess/API/C/win/WKTextChecker.h:
2397        Add the new WKTextCheckerClient funtions.
2398
2399        * UIProcess/API/mac/WKView.mm:
2400        (-[WKView validateUserInterfaceItem:]):
2401        The title of the context menu item should be opposite of whether or not the spelling panel
2402        is visible.
2403
2404        * UIProcess/WebPageProxy.cpp:
2405        (WebKit::WebPageProxy::contextMenuItemSelected):
2406        If the "Show/Hide Spelling and Grammar" item is selected, call toggleSpellingUIIsShowing.
2407        (WebKit::WebPageProxy::spellingUIIsShowing):
2408        Call through to TextChecker.
2409        * UIProcess/WebPageProxy.h:
2410        * UIProcess/WebPageProxy.messages.in:
2411
2412        * UIProcess/TextChecker.h:
2413       * UIProcess/win/TextCheckerWin.cpp:
2414        (WebKit::TextChecker::spellingUIIsShowing):
2415        Call the TextCheckerClient.
2416        (WebKit::TextChecker::toggleSpellingUIIsShowing):
2417        Ditto.
2418        * UIProcess/mac/TextCheckerMac.mm:
2419        (WebKit::TextChecker::spellingUIIsShowing):
2420        Ask the shared NSSpellChecker if the spellingPanel is visible.
2421        (WebKit::TextChecker::toggleSpellingUIIsShowing):
2422        Order the spellingPanel out or front (copied from WKView.mm).
2423        * UIProcess/qt/TextCheckerQt.cpp:
2424        (WebKit::TextChecker::spellingUIIsShowing):
2425        Call notImplemented.
2426        (WebKit::TextChecker::toggleSpellingUIIsShowing):
2427        Ditto.
2428        * UIProcess/gtk/TextCheckerGtk.cpp:
2429        (WebKit::TextChecker::spellingUIIsShowing):
2430        Ditto.
2431        (WebKit::TextChecker::toggleSpellingUIIsShowing):
2432        Ditto.
2433
2434        * UIProcess/win/WebTextCheckerClient.cpp:
2435        (WebKit::WebTextCheckerClient::spellingUIIsShowing):
2436        Call the client.
2437        (WebKit::WebTextCheckerClient::toggleSpellingUIIsShowing):
2438        Ditto.
2439        * UIProcess/win/WebTextCheckerClient.h:
2440
2441        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2442        (WebKit::WebEditorClient::spellingUIIsShowing):
2443        Send a sync message to the UI process to find out.
2444        It needs to be sync because the Editor code relies on the value returned.
2445
24462011-04-08  Anders Carlsson  <andersca@apple.com>
2447
2448        Reviewed by Dan Bernstein.
2449
2450        Sandboxing doesn't work if a local file is dropped on the content area
2451        https://bugs.webkit.org/show_bug.cgi?id=58177
2452        <rdar://problem/9019253>
2453
2454        When performing a drag and the dragging pasteboard contains a local file, create a
2455        sandbox extension and pass it along. If we end up loading the file, the sandbox extension
2456        tracker will consume the extension.
2457
2458        * UIProcess/API/mac/WKView.mm:
2459        (maybeCreateSandboxExtensionFromPasteboard):
2460        Add helper function.
2461
2462        (-[WKView performDragOperation:]):
2463        Create a sandbox extension handle and pass it to performDrag.
2464
2465        * UIProcess/WebPageProxy.cpp:
2466        (WebKit::WebPageProxy::dragEntered):
2467        (WebKit::WebPageProxy::dragUpdated):
2468        (WebKit::WebPageProxy::dragExited):
2469        Pass an empty sandbox extension handle to performDragControllerAction.
2470
2471        (WebKit::WebPageProxy::performDrag):
2472        Pass the sandbox extension handle along to performDragControllerAction.
2473
2474        (WebKit::WebPageProxy::performDragControllerAction):
2475        Send along the sandbox extension handle.
2476
2477        * WebProcess/WebCoreSupport/WebDragClient.cpp:
2478        (WebKit::WebDragClient::willPerformDragDestinationAction):
2479        If the destination action is a load action, call WebPage::willPerformLoadDragDestinationAction.
2480
2481        * WebProcess/WebPage/WebPage.cpp:
2482        (WebKit::WebPage::performDragControllerAction):
2483        Create a sandbox extension.
2484
2485        (WebKit::WebPage::willPerformLoadDragDestinationAction):
2486        If we have a sandbox extension, pass it along to the sandbox extension tracker.
2487
2488        (WebKit::WebPage::SandboxExtensionTracker::willPerformLoadDragDestinationAction):
2489        Call setPendingProvisionalSandboxExtension.
2490
2491        (WebKit::WebPage::SandboxExtensionTracker::beginLoad):
2492        Call setPendingProvisionalSandboxExtension.
2493
2494        (WebKit::WebPage::SandboxExtensionTracker::setPendingProvisionalSandboxExtension):
2495        Factor code from beginLoad out into a separate function.
2496
2497        * WebProcess/WebPage/WebPage.messages.in:
2498        PerformDragControllerAction now takes a sandbox extension handle.
2499
25002011-04-08  Alice Liu  <alice.liu@apple.com>
2501
2502        Reviewed by Adam Roben.
2503
2504        https://bugs.webkit.org/show_bug.cgi?id=58151
2505        Crash after closing a Webview, in WebKit!WebCore::WindowMessageBroadcaster::SubclassedWndProc
2506
2507        * UIProcess/win/WebView.cpp:
2508        (WebKit::WebView::close):
2509        Resolve a difference between old WebKit WebView and WebKit2 WebView by destroying and clearing
2510        out WebKit2 WebView's HWND when closing. Not doing so was causing the WebView to remain in the
2511        list of WindowMessageBroadcaster listeners, and after closing the WebView, WindowMessageBroadcaster
2512        would message a dead WebView and crash.
2513
25142011-04-08  Anders Carlsson  <andersca@apple.com>
2515
2516        Reviewed by Adam Roben.
2517
2518        Make the drag operations be different functions
2519        https://bugs.webkit.org/show_bug.cgi?id=58169
2520
2521        Since we want performDrag to take a sandbox extension, separate the four
2522        drag operations out into different functions. No functionality change.
2523
2524        * UIProcess/API/mac/WKView.mm:
2525        (-[WKView draggingEntered:]):
2526        (-[WKView draggingUpdated:]):
2527        (-[WKView draggingExited:]):
2528        (-[WKView performDragOperation:]):
2529        * UIProcess/WebPageProxy.cpp:
2530        (WebKit::WebPageProxy::dragEntered):
2531        (WebKit::WebPageProxy::dragUpdated):
2532        (WebKit::WebPageProxy::dragExited):
2533        (WebKit::WebPageProxy::performDrag):
2534        * UIProcess/WebPageProxy.h:
2535        * UIProcess/win/WebView.cpp:
2536        (WebKit::WebView::DragEnter):
2537        (WebKit::WebView::DragOver):
2538        (WebKit::WebView::DragLeave):
2539        (WebKit::WebView::Drop):
2540
25412011-04-08  Anders Carlsson  <andersca@apple.com>
2542
2543        Reviewed by Adam Roben.
2544
2545        Parse 'DispatchOnConnectionQueue' in messages.in files
2546        https://bugs.webkit.org/show_bug.cgi?id=58168
2547
2548        Handle parsing multiple, space-separated attributes in .messages.in files. Keep track of
2549        'DispatchOnConnectionQueue' and rename 'delayed' to 'Delayed'.
2550
2551        * Scripts/webkit2/messages.py:
2552        * Scripts/webkit2/messages_unittest.py:
2553
25542011-04-08  Alpha Lam  <hclam@chromium.org>
2555
2556        Unreviewed, rolling out r83335.
2557        http://trac.webkit.org/changeset/83335
2558        https://bugs.webkit.org/show_bug.cgi?id=53556
2559
2560        GTK and QT bots are broken
2561
2562        * Configurations/FeatureDefines.xcconfig:
2563
25642011-04-07  Anna Cavender  <annacc@chromium.org>
2565
2566        Reviewed by Eric Carlson.
2567
2568        Setup ENABLE(TRACK) feature define
2569        https://bugs.webkit.org/show_bug.cgi?id=53556
2570
2571        * Configurations/FeatureDefines.xcconfig:
2572
25732011-04-07  Alexey Proskuryakov  <ap@apple.com>
2574
2575        Reviewed by Darin Alder.
2576
2577        REGRESSION (WebKit2): AppKit thinks that web views don't support DocumentAccess
2578        https://bugs.webkit.org/show_bug.cgi?id=58102
2579        <rdar://problem/9223246>
2580
2581        * UIProcess/API/mac/WKView.h:
2582        * UIProcess/API/mac/WKView.mm:
2583        (-[WKView doCommandBySelector:]):
2584        (-[WKView insertText:replacementRange:]):
2585        (-[WKView validAttributesForMarkedText]):
2586        (-[WKView setMarkedText:selectedRange:replacementRange:]):
2587        (-[WKView attributedSubstringForProposedRange:actualRange:]):
2588        (-[WKView firstRectForCharacterRange:actualRange:]):
2589        Switch to NSTextInputClient, opting out of optimizations and optional features for now.
2590
25912011-04-08  Siddharth Mathur  <siddharth.mathur@nokia.com>
2592
2593        Reviewed by Martin Robinson.
2594
2595        [Qt][WK2][Symbian] Remove use of stack arrays with variable size
2596        https://bugs.webkit.org/show_bug.cgi?id=57877
2597
2598        For better compiler portability, use new/delete for arrays when size
2599        isn't known at compile time. Also fix one compiler warning about bitshift
2600        operations on signed integer
2601        * Platform/CoreIPC/unix/ConnectionUnix.cpp:
2602        (CoreIPC::Connection::readyReadHandler):
2603        (CoreIPC::Connection::sendOutgoingMessage):
2604
26052011-04-08  Martin Robinson  <mrobinson@igalia.com>
2606
2607        Reviewed by Xan Lopez.
2608
2609        [GTK] Fix the WebKit2 build for older versions of GTK+
2610        https://bugs.webkit.org/show_bug.cgi?id=58095
2611
2612        * UIProcess/gtk/ChunkedUpdateDrawingAreaProxyGtk.cpp: Include the GtkVersioning.h header.
2613
26142011-04-07  Balazs Kelemen  <kbalazs@webkit.org>
2615
2616        Reviewed by Kenneth Rohde Christiansen.
2617
2618        [WK2][Qt][GTK] Introduce common use flag for the shared UNIX domain socket IPC implementation
2619        https://bugs.webkit.org/show_bug.cgi?id=58030
2620
2621        Replace "PLATFORM(QT) || PLATFORM(GTK)" conditions in IPC code with
2622        USE(UNIX_DOMAIN_SOCKETS).
2623
2624        * Platform/CoreIPC/Attachment.h:
2625        * Platform/CoreIPC/Connection.h:
2626        * Platform/SharedMemory.h:
2627
26282011-04-07  Anders Carlsson  <andersca@apple.com>
2629
2630        Reviewed by Simon Fraser.
2631
2632        Clicks not recognized on http://www.nibblestutorials.net/ which uses Silverlight
2633        https://bugs.webkit.org/show_bug.cgi?id=58108
2634        <rdar://problem/9167611>
2635
2636        Change platformHandleMouseEvent to return true, which means that the plug-in has handled the
2637        event. Some plug-ins (like Silverlight) will return false from NPP_HandleEvent even though the
2638        event has been handled. In this case it lead to a very subtle bug where the plug-in element would
2639        lose focus right after a mouse down even had been sent.
2640
2641        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
2642        (WebKit::NetscapePlugin::platformHandleMouseEvent):
2643
26442011-04-07  Adam Roben  <aroben@apple.com>
2645
2646        Pass NPP_SetWindow a null window handle during plugin destruction on non-Mac platforms
2647
2648        This matches WebKit1.
2649
2650        Fixes <http://webkit.org/b/47009> WebKit2 needs to call NPP_SetWindow when destroying a
2651        plugin
2652
2653        Reviewed by Anders Carlsson.
2654
2655        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
2656        (WebKit::NetscapePlugin::destroy): Null out our NPWindow's window handle and pass it to
2657        NPP_SetWindow (unless we're on Mac).
2658
26592011-04-08  Jamie Cooley  <james.cooley@nokia.com>
2660
2661        Reviewed by Benjamin Poulain.
2662
2663        [Qt][WK2] Make sure qwkhistory.h is copied into includes/WebKit2
2664        https://bugs.webkit.org/show_bug.cgi?id=57945
2665
2666        * UIProcess/API/qt/WKView.h:
2667        * UIProcess/API/qt/qwkhistory.h:
2668
26692011-04-08  Carlos Garcia Campos  <cgarcia@igalia.com>
2670
2671        Reviewed by Martin Robinson.
2672
2673        [GTK] Do not destroy WorkQueue event sources unless they have been cancelled
2674        https://bugs.webkit.org/show_bug.cgi?id=57611
2675
2676        * Platform/WorkQueue.h:
2677        * Platform/gtk/WorkQueueGtk.cpp:
2678        (WorkQueue::EventSource::EventSource): Remove unused member
2679        m_dispatchSource.
2680        (WorkQueue::EventSource::executeEventSource): Make it return void
2681        instead of boolean since we are always ignoring the return value.
2682        (WorkQueue::EventSource::performWork): Return FALSE from the
2683        callback only when the source has been cancelled (condition = 0)
2684        to make sure it's destroyed when the even source handler is
2685        unregistered.
2686        (WorkQueue::registerEventSourceHandler): Use GRefPtr for the
2687        source, to avoid leaking it.
2688        (WorkQueue::scheduleWorkOnSource): Receive the source callback as
2689        parameter so that it can be used by scheduleWorkOnTermination() too.
2690        (WorkQueue::scheduleWork):
2691        (WorkQueue::scheduleWorkAfterDelay):
2692        (WorkQueue::scheduleWorkOnTermination): Use
2693        scheduleWorkOnSource().
2694
26952011-04-08  Carlos Garcia Campos  <cgarcia@igalia.com>
2696
2697        Reviewed by Martin Robinson.
2698
2699        [GTK] Close connection when web process finishes
2700        https://bugs.webkit.org/show_bug.cgi?id=57540
2701
2702        * Platform/CoreIPC/Connection.h:
2703        * Platform/CoreIPC/unix/ConnectionUnix.cpp:
2704        * Platform/PlatformProcessIdentifier.h: Use GPid as process
2705        identifier.
2706        * Platform/WorkQueue.h:
2707        * Platform/gtk/WorkQueueGtk.cpp:
2708        (WorkQueue::EventSource::EventSource): Add cancellable parameter.
2709        (WorkQueue::EventSource::cancel): New method to cancel the source.
2710        (WorkQueue::EventSource::performWorkOnTermination): New method to
2711        execute a work item called when child process has finished.
2712        (WorkQueue::registerEventSourceHandler): Create a GCancellable for
2713        the socket source.
2714        (WorkQueue::unregisterEventSourceHandler): Cancel the source
2715        instead of destroying it, this will cause the source to trigger
2716        with condition = 0, which makes the callback return FALSE and the
2717        source is destroyed.
2718        (WorkQueue::scheduleWorkOnSource): Pass NULL as cancellable for
2719        idle and timeout sources.
2720        (WorkQueue::scheduleWorkOnTermination): Create a child watch
2721        source to monitor the child process.
2722        * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
2723        (WebKit::ProcessLauncher::launchProcess): Use GPid instead of int
2724        as process identifier.
2725        * UIProcess/WebProcessProxy.cpp:
2726        (WebKit::WebProcessProxy::didFinishLaunching): Call
2727        WorkQueue::scheduleWorkOnTermination() for GTK platform too when
2728        web process has been launched.
2729
27302011-04-08  Carlos Garcia Campos  <cgarcia@igalia.com>
2731
2732        Reviewed by Martin Robinson.
2733
2734        [GTK] Implement scheduleWorkAfterDelay() in WorkQueueGtk
2735        https://bugs.webkit.org/show_bug.cgi?id=57434
2736
2737        * Platform/WorkQueue.h:
2738        * Platform/gtk/WorkQueueGtk.cpp:
2739        (WorkQueue::EventSource::executeEventSource): This new method
2740        contains the common code to execute a work item.
2741        (WorkQueue::EventSource::performWorkOnce): Use
2742        executeEventSource() to execute the work item.
2743        (WorkQueue::EventSource::performWork): Use executeEventSource() to
2744        execute the work item.
2745        (WorkQueue::registerEventSourceHandler): Use a GSocket instead of
2746        a GIOChannel since the API is newer and allows us to pass a
2747        cancellable object to be able to cancel the source.
2748        (WorkQueue::scheduleWorkOnSource): This new method contains the
2749        common code to attach a source to a context. It doesn't use a lock
2750        anymore, since g_source_attach() uses its own mutex internally.
2751        (WorkQueue::scheduleWork): Use an idle source instead of a timeout
2752        one, changing the priority to G_PRIORITY_DEFAULT.
2753        (WorkQueue::scheduleWorkAfterDelay): Implement it using a timeout
2754        source with the given delay.
2755
27562011-04-08  Carlos Garcia Campos  <cgarcia@igalia.com>
2757
2758        Reviewed by Martin Robinson.
2759
2760        [GTK] Use glib API instead of fork + execl in ProcessLauncherGtk
2761        https://bugs.webkit.org/show_bug.cgi?id=57234
2762
2763        * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
2764        (WebKit::childSetupFunction): close the socket and use prctl()
2765        when platform is Linux to kill the child process when the parent
2766        finishes.
2767        (WebKit::ProcessLauncher::launchProcess): Use g_spawn_async() to
2768        launch the web process.
2769
27702011-04-07  Geoffrey Garen  <ggaren@apple.com>
2771
2772        Some Handle<T> cleanup
2773        https://bugs.webkit.org/show_bug.cgi?id=58109
2774
2775        * WebProcess/Plugins/Netscape/NPJSObject.cpp:
2776        (WebKit::NPJSObject::NPJSObject): Updated for new null constructor.
2777
27782011-04-07  Jessie Berlin  <jberlin@apple.com>
2779
2780        Max build fix.
2781
2782        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2783        (WebKit::WebEditorClient::checkSpellingOfString):
2784        Do not risk an overflow.
2785        (WebKit::WebEditorClient::checkGrammarOfString):
2786        Ditto.
2787
27882011-04-07  Jessie Berlin  <jberlin@apple.com>
2789
2790        Reviewed by Brian Weinstein.
2791
2792        WebKit2: Implement TextChecker on Windows
2793        https://bugs.webkit.org/show_bug.cgi?id=57862
2794
2795        Part 4: Implement checkGrammarOfString.
2796
2797        * Scripts/webkit2/messages.py:
2798        The generated files should include TextCheckerClient.h for WebCore::GrammarDetail.
2799
2800        * Shared/API/c/win/WKBaseWin.h:
2801        * Shared/APIObject.h:
2802        * UIProcess/API/C/win/WKAPICastWin.h:
2803
2804        * UIProcess/API/C/win/WKGrammarDetail.cpp: Added.
2805        (WKGrammarDetailGetTypeID):
2806        (WKGrammarDetailCreate):
2807        * UIProcess/API/C/win/WKGrammarDetail.h: Added.
2808
2809        * UIProcess/API/C/win/WKTextChecker.h:
2810        Add the checkGrammarOfString WKTextCheckerClient function.
2811
2812        * UIProcess/WebPageProxy.cpp:
2813        (WebKit::WebPageProxy::checkGrammarOfString):
2814        * UIProcess/WebPageProxy.h:
2815        * UIProcess/WebPageProxy.messages.in:
2816
2817        * UIProcess/TextChecker.h:
2818        * UIProcess/win/TextCheckerWin.cpp:
2819        (WebKit::TextChecker::checkGrammarOfString):
2820        Call the TextCheckerClient.
2821        * UIProcess/mac/TextCheckerMac.mm:
2822        (WebKit::TextChecker::checkSpellingOfString):
2823        Add a comment about this not being used on Mac.
2824        (WebKit::TextChecker::checkGrammarOfString):
2825        Ditto, and call notImplemented.
2826        * UIProcess/gtk/TextCheckerGtk.cpp:
2827        (WebKit::TextChecker::checkGrammarOfString):
2828        Call notImplemented.
2829        * UIProcess/qt/TextCheckerQt.cpp:
2830        (WebKit::TextChecker::checkGrammarOfString):
2831        Ditto.
2832
2833        * UIProcess/win/WebGrammarDetail.cpp: Added.
2834        (WebKit::WebGrammarDetail::create):
2835        (WebKit::WebGrammarDetail::WebGrammarDetail):
2836        Initialize the underlying WebCore::GrammarDetail.
2837        * UIProcess/win/WebGrammarDetail.h: Added.
2838        (WebKit::WebGrammarDetail::grammarDetail):
2839        (WebKit::WebGrammarDetail::type):
2840
2841        * UIProcess/win/WebTextCheckerClient.cpp:
2842        (WebKit::WebTextCheckerClient::checkGrammarOfString):
2843        Populate the Vector of WebCore::GrammarDetails with the WebGrammarDetails.
2844        * UIProcess/win/WebTextCheckerClient.h:
2845
2846        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2847        (WebKit::WebEditorClient::checkSpellingOfString):
2848        Use WTF::notFound as the initial value for resultLocation.
2849        (WebKit::WebEditorClient::checkGrammarOfString):
2850        Send a sync message to the UI Process (similar to checkSpellingOfString and checkTextOfParagraph).
2851
2852        * win/WebKit2.vcproj:
2853        Add WKGrammarDetail.h/.cpp and WebGrammarDetail.h/.cpp.
2854        * win/WebKit2Generated.make:
2855        Copy over WKGrammarDetail.h.
2856
28572011-04-07  Enrica Casucci  <enrica@apple.com>
2858
2859        Reviewed by Oliver Hunt.
2860
2861        REGRESSION(WebKit2): execCommand('undo') doesn't work (Windows).
2862        https://bugs.webkit.org/show_bug.cgi?id=58056
2863        <rdar://problem/8862023>
2864
2865        Adding support for execCommand('undo') and execCommand('redo')
2866        in WebKit2 for Windows.
2867
2868        * UIProcess/API/C/win/WKView.h:
2869        * UIProcess/win/WebUndoClient.cpp:
2870        (WebKit::WebUndoClient::canUndoRedo):
2871        (WebKit::WebUndoClient::executeUndoRedo):
2872        * UIProcess/win/WebUndoClient.h:
2873        * UIProcess/win/WebView.cpp:
2874        (WebKit::WebView::canUndoRedo):
2875        (WebKit::WebView::executeUndoRedo):
2876
28772011-04-07  Andrew Scherkus  <scherkus@chromium.org>
2878
2879        Revert ENABLE_TRACK patch due to compile failures.
2880
2881        * Configurations/FeatureDefines.xcconfig:
2882
28832011-04-07  Martin Robinson  <mrobinson@igalia.com>
2884
2885        Fix the WebKit2 GTK+ build for older versions of GTK+.
2886
2887        * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: Include the GtkVersioning.h header.
2888
28892011-04-07   Amruth Raj  <amruthraj@motorola.com> and Martin Robinson  <mrobinson@igalia.com>
2890
2891        Reviewed by Kenneth Rohde Christiansen.
2892
2893        [GTK] Implement SharedMemory for WebKit2
2894        https://bugs.webkit.org/show_bug.cgi?id=49791
2895
2896        Share the SharedMemory, Attachment and Connection implementations with the Qt port.
2897        Both implementation are, in fact, general Unix implementations using standard Unix
2898        domain sockets and sendmsg / recvmsg. This should reduce the amount of duplicated code
2899        greatly and lay the groundwork for GTK+/Qt implementations for other operating systems.
2900
2901        * GNUmakefile.am: Replaced GTK+ versions of files with the Unix ones.
2902        * Platform/CoreIPC/ArgumentDecoder.cpp: Extended Qt #ifdefs to include GTK.
2903        (CoreIPC::ArgumentDecoder::~ArgumentDecoder):
2904        * Platform/CoreIPC/ArgumentEncoder.cpp: Ditto.
2905        (CoreIPC::ArgumentEncoder::~ArgumentEncoder):
2906        * Platform/CoreIPC/Attachment.h: Ditto.
2907        * Platform/CoreIPC/Connection.h: Combined the GTK+ and Qt sections.
2908        * Platform/CoreIPC/unix/AttachmentUnix.cpp: Renamed from Source/WebKit2/Platform/CoreIPC/qt/AttachmentQt.cpp.
2909        * Platform/CoreIPC/unix/ConnectionUnix.cpp: Renamed from Source/WebKit2/Platform/CoreIPC/qt/ConnectionQt.cpp.
2910        * Platform/unix/SharedMemoryUnix.cpp: Renamed from Source/WebKit2/Platform/qt/SharedMemoryQt.cpp.
2911        * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
2912        (WebKit::ProcessLauncher::launchProcess): Use SOCK_DGRAM instead of SOCK_STREAM to match Qt.
2913        * WebKit2.pro: Updated source list to reflect file renaming.
2914
29152011-04-07  Alexey Proskuryakov  <ap@apple.com>
2916
2917        Reviewed by Brian Weinstein.
2918
2919        REGRESSION (r83081): Use of deallocated memory in WebEditorClient::respondToChangedSelection()
2920        https://bugs.webkit.org/show_bug.cgi?id=58082
2921
2922        * WebProcess/WebCoreSupport/WebEditorClient.cpp: (WebKit::WebEditorClient::respondToChangedSelection):
2923        Now that the Range is used outside the full expression where it's created, it needs to be
2924        protected with RefPtr.
2925
29262011-04-07  Mark Rowe  <mrowe@apple.com>
2927
2928        Reviewed by Dan Bernstein.
2929
2930        <rdar://problem/9251566> WebBackForwardList::createCFDictionaryRepresentation's current item index
2931        doesn't account for items removed by filter callback.
2932
2933        * UIProcess/cf/WebBackForwardListCF.cpp:
2934        (WebKit::WebBackForwardList::createCFDictionaryRepresentation): Update the current item index
2935        when we omit an item due to the filter callback.
2936
29372011-04-07  Alexey Proskuryakov  <ap@apple.com>
2938
2939        Reviewed by Anders Carlsson.
2940
2941        REGRESSION (WebKit2): Reverse conversion doesn't work in Kotoeri
2942        https://bugs.webkit.org/show_bug.cgi?id=58066
2943        <rdar://problem/8965302>
2944
2945        * Scripts/webkit2/messages.py:
2946        * Shared/mac/AttributedString.h: Added.
2947        * Shared/mac/AttributedString.mm: Added.
2948        (WebKit::AttributedString::encode):
2949        (WebKit::AttributedString::decode):
2950        Added an class that wraps NSAttributedString. As far as I can tell, one can't pass a CF
2951        or NS object to another process without wrapping it in a C++ one.
2952
2953        * Shared/mac/ArgumentCodersMac.h: Added.
2954        * Shared/mac/ArgumentCodersMac.mm: Added.
2955        Added coders for Foundation objects, similar to ArgumentCodersCF. There are two reasons why
2956        these are needed:
2957        1) Even though most Foundation objects are toll free bridged with CF, CFGetTypeID() doesn't
2958        work properly for them (I've been just getting 1).
2959        2) NSColor isn't toll free bridged to CF.
2960        This adds just the types necessary for editing NSAttributedString (and I don't yet know what
2961        happens with attachments).
2962
2963        * UIProcess/API/mac/WKView.mm: (-[WKView attributedSubstringFromRange:]):
2964        * UIProcess/WebPageProxy.h:
2965        * UIProcess/mac/WebPageProxyMac.mm:
2966        (WebKit::WebPageProxy::getAttributedSubstringFromRange):
2967        * WebKit2.xcodeproj/project.pbxproj:
2968        * WebProcess/WebPage/WebPage.h:
2969        * WebProcess/WebPage/WebPage.messages.in:
2970        Boilerplate code for making a sync call to web process.
2971
2972        * WebProcess/WebPage/mac/WebPageMac.mm: (WebKit::WebPage::getAttributedSubstringFromRange):
2973        Ported from WebHTMLView.
2974
29752011-04-07  Jeff Miller  <jeffm@apple.com>
2976
2977        Mac build fix.
2978
2979        * Shared/WebString.h:
2980        (WebKit::WebString::getCharacters): Add explict cast when using std::min().
2981
29822011-04-07  Jeff Miller  <jeffm@apple.com>
2983
2984        Reviewed by Adam Roben.
2985
2986        Replace WKStringGetCharactersPtr() with WKStringGetCharacters()
2987        https://bugs.webkit.org/show_bug.cgi?id=58058
2988
2989        WKStringGetCharactersPtr() exposes the internal implementation of WKString, so change this to WKStringGetCharacters(), which makes a UTF-16 copy.
2990
2991        * Shared/API/c/WKString.cpp:
2992        (WKStringGetCharacters): Added, replaces WKStringGetCharactersPtr().
2993        * Shared/API/c/WKString.h: Replaced WKStringGetCharactersPtr() with WKStringGetCharacters().
2994        * Shared/WebString.h:
2995        (WebKit::WebString::getCharacters): Added.
2996
29972011-04-07  Brian Weinstein  <bweinstein@apple.com>
2998
2999        Reviewed by Adam Roben.
3000
3001        WebKit2: Support window bounce when panning.
3002        https://bugs.webkit.org/show_bug.cgi?id=58065
3003        <rdar://problem/9244367>
3004
3005        Make gestureDidScroll synchronous, as once we scroll, we need to know
3006        whether or not we are at the beginning or end of the scrollable document.
3007
3008        If we are at either end of the scrollable document, we call the Windows 7
3009        API to bounce the window to give an indication that you are past an end
3010        of the document.
3011
3012        * UIProcess/WebPageProxy.cpp:
3013        (WebKit::WebPageProxy::gestureDidScroll): Pass a boolean for the reply, and return it.
3014        * UIProcess/WebPageProxy.h:
3015        * UIProcess/win/WebView.cpp:
3016        (WebKit::WebView::WebView): Inititalize a new variable.
3017        (WebKit::WebView::onGesture): Once we send the message to scroll, check if have gone to
3018            an end of the document, and if we have, bounce the window.
3019        * UIProcess/win/WebView.h:
3020        * WebProcess/WebPage/WebPage.h:
3021        * WebProcess/WebPage/WebPage.messages.in: GestureDidScroll is now sync.
3022        * WebProcess/WebPage/win/WebPageWin.cpp:
3023        (WebKit::WebPage::gestureDidScroll): When we are done scrolling, check if we have a vertical
3024            scrollbar and if we are at the beginning or the end of the scrollable document.
3025
30262011-04-07  Chang Shu  <cshu@webkit.org>
3027
3028        Reviewed by Darin Adler.
3029
3030        WebKitTestRunner needs layoutTestController.isPageBoxVisible
3031        https://bugs.webkit.org/show_bug.cgi?id=42695
3032
3033        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
3034        (WKBundleIsPageBoxVisible):
3035        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
3036        * WebProcess/InjectedBundle/InjectedBundle.cpp:
3037        (WebKit::InjectedBundle::isPageBoxVisible):
3038        * WebProcess/InjectedBundle/InjectedBundle.h:
3039
30402011-04-07  Enrica Casucci  <enrica@apple.com>
3041
3042        Reviewed by Oliver Hunt.
3043
3044        REGRESSION(WebKit2): execCommand('undo') doesn't work (Mac).
3045        https://bugs.webkit.org/show_bug.cgi?id=58055
3046        <rdar://problem/8862023>
3047
3048        Adding support for execCommand('undo') and execCommand('redo')
3049        in WebKit2 for Mac.
3050
3051        * UIProcess/API/mac/PageClientImpl.h:
3052        * UIProcess/API/mac/PageClientImpl.mm:
3053        (WebKit::PageClientImpl::canUndoRedo): Added interaction with undomanager.
3054        (WebKit::PageClientImpl::executeUndoRedo): Added interaction with undomanager.
3055
3056        Added new empty PageClient methods for other platforms.
3057        * UIProcess/API/qt/qwkpage.cpp:
3058        (QWKPagePrivate::canUndoRedo):
3059        (QWKPagePrivate::executeUndoRedo):
3060        * UIProcess/API/qt/qwkpage_p.h:
3061        * UIProcess/PageClient.h:
3062        * UIProcess/gtk/WebView.cpp:
3063        (WebKit::WebView::canUndoRedo):
3064        (WebKit::WebView::executeUndoRedo):
3065        * UIProcess/gtk/WebView.h:
3066        * UIProcess/win/WebView.cpp:
3067        (WebKit::WebView::canUndoRedo):
3068        (WebKit::WebView::executeUndoRedo):
3069        * UIProcess/win/WebView.h:
3070
3071        * UIProcess/WebEditCommandProxy.cpp:
3072        (WebKit::WebEditCommandProxy::unapply): Added flag to allow dispatching
3073        of asychronous messages while waiting for a sync message reply.
3074        (WebKit::WebEditCommandProxy::reapply): Same as above.
3075        * UIProcess/WebPageProxy.cpp:
3076        (WebKit::WebPageProxy::canUndoRedo):
3077        (WebKit::WebPageProxy::executeUndoRedo):
3078        * UIProcess/WebPageProxy.h:
3079        * UIProcess/WebPageProxy.messages.in:
3080        * WebProcess/WebCoreSupport/WebEditorClient.cpp: Added missing implementation.
3081        (WebKit::WebEditorClient::canUndo):
3082        (WebKit::WebEditorClient::canRedo):
3083        (WebKit::WebEditorClient::undo):
3084        (WebKit::WebEditorClient::redo):
3085
30862011-04-07  Brady Eidson  <beidson@apple.com>
3087
3088        Reviewed by Maciej Stachowiak.
3089
3090        <rdar://problem/9250368> and https://bugs.webkit.org/show_bug.cgi?id=58062
3091
3092        * UIProcess/API/C/WKIconDatabase.cpp:
3093        (WKIconDatabaseClose):
3094        * UIProcess/API/C/WKIconDatabase.h:
3095
3096        * UIProcess/WebIconDatabase.cpp:
3097        (WebKit::WebIconDatabase::close):
3098        * UIProcess/WebIconDatabase.h:
3099
31002011-04-07  Jessie Berlin  <jberlin@apple.com>
3101
3102        Reviewed by Adam Roben.
3103
3104        WebKit2: Implement TextChecker on Windows
3105        https://bugs.webkit.org/show_bug.cgi?id=57862
3106
3107        Part 3: Implement checkSpellingOfString
3108
3109        In WebCore, checkTextOfParagraph is only defined and used on platforms where
3110        WTF_USE_UNIFIED_TEXT_CHECKING is defined (which right now is only non-Leopard and non-Tiger
3111        Mac builds).
3112
3113        On other platforms, checkSpellingOfString and checkGrammarOfString (coming in a separate
3114        patch in an attempt to keep things easier to review) are used.
3115
3116        * UIProcess/API/C/win/WKTextChecker.h:
3117        * UIProcess/TextChecker.h:
3118        Surround checkTextOfParagraph by #if USE(UNIFIED_TEXT_CHECKING) and add
3119        checkSpellingOfString.
3120
3121        * UIProcess/WebPageProxy.cpp:
3122        (WebKit::WebPageProxy::checkTextOfParagraph):
3123        Surround this by #if USE(UNIFIED_TEXT_CHECKING).
3124        (WebKit::WebPageProxy::checkSpellingOfString):
3125        Call through to the client.
3126        * UIProcess/WebPageProxy.h:
3127        * UIProcess/WebPageProxy.messages.in:
3128        Surround checkTextOfParagraph by #if USE(UNIFIED_TEXT_CHECKING) and add
3129        checkSpellingOfString.
3130
3131        * UIProcess/win/TextCheckerWin.cpp:
3132        (WebKit::TextChecker::checkSpellingOfString):
3133        Call through to the WebTextCheckerClient.
3134        * UIProcess/mac/TextCheckerMac.mm:
3135        (WebKit::TextChecker::checkTextOfParagraph):
3136        Surround this by #if USE(UNIFIED_TEXT_CHECKING) for clarity.
3137        (WebKit::TextChecker::checkSpellingOfString):
3138        Add a call to notImplemented.
3139        * UIProcess/qt/TextCheckerQt.cpp:
3140        (WebKit::TextChecker::checkSpellingOfString):
3141        Ditto, and remove the implementation for checkTextOfParagraph.
3142        * UIProcess/gtk/TextCheckerGtk.cpp:
3143        (WebKit::TextChecker::checkSpellingOfString):
3144        Ditto.
3145
3146        * UIProcess/win/WebTextCheckerClient.cpp:
3147        (WebKit::WebTextCheckerClient::checkSpellingOfString):
3148        * UIProcess/win/WebTextCheckerClient.h:
3149
3150        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
3151        (WebKit::WebEditorClient::checkSpellingOfString):
3152        Send a sync message to the UI Process (similar to the sync message used for
3153        checkTextOfParagraph).
3154
31552011-04-07  Siddharth Mathur  <siddharth.mathur@nokia.com>
3156
3157        Reviewed by Laszlo Gombos.
3158
3159        [Qt][WK2][Symbian] Temporary build fix until native Symbian IPC is done. Implement fake socketpair() as it's not available.
3160        https://bugs.webkit.org/show_bug.cgi?id=57877
3161
3162        * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
3163        (WebKit::socketpair): socketpair() which returns -1
3164
31652011-04-07  Michael Saboff  <msaboff@apple.com>
3166
3167        Reviewed by Maciej Stachowiak.
3168
3169        WebKit2: Memory leak in decodeResourceError
3170        https://bugs.webkit.org/show_bug.cgi?id=58004
3171
3172        Release the local NSError after it is used to create a ResourceError
3173        object assigned to the reference argument.
3174
3175        * Shared/mac/WebCoreArgumentCodersMac.mm:
3176        (CoreIPC::decodeResourceError):
3177
31782011-04-07  Maciej Stachowiak  <mjs@apple.com>
3179
3180        Reviewed by Adam Barth.
3181
3182        Remove temporary WebProcess sandbox rules that are unnecessary now that plugins are in their own process
3183        https://bugs.webkit.org/show_bug.cgi?id=58023
3184
3185        * WebProcess/com.apple.WebProcess.sb:
3186
31872011-04-07  Maciej Stachowiak  <mjs@apple.com>
3188
3189        Reviewed by Dan Bernstein.
3190
3191        Remove some no longer needed WebProcess sandbox allowances
3192        https://bugs.webkit.org/show_bug.cgi?id=58015
3193        <rdar://problem/9232592>
3194
3195        * WebProcess/com.apple.WebProcess.sb: Remove no-longer needed extra network
3196        and launching privileges, since the bugs that required them are fixed.
3197
31982011-04-06  Chang Shu  <cshu@webkit.org>
3199
3200        Reviewed by Darin Adler.
3201
3202        WebKitTestRunner needs layoutTestController.pageSizeAndMarginsInPixels
3203        https://bugs.webkit.org/show_bug.cgi?id=57984
3204
3205        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
3206        (WKBundlePageSizeAndMarginsInPixels):
3207        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
3208        * WebProcess/InjectedBundle/InjectedBundle.cpp:
3209        (WebKit::InjectedBundle::pageSizeAndMarginsInPixels):
3210        * WebProcess/InjectedBundle/InjectedBundle.h:
3211
32122011-04-06  Siddharth Mathur  <siddharth.mathur@nokia.com>
3213
3214        Reviewed by Benjamin Poulain.
3215
3216        [Qt][WK2][Symbian] Remove use of stack arrays with variable size
3217        https://bugs.webkit.org/show_bug.cgi?id=57877
3218
3219        For better compiler portability, use new/delete for arrays when size
3220        isn't known at compile time. Also fix one compiler warning about bitshift
3221        operations on signed integers.
3222        * Platform/CoreIPC/qt/ConnectionQt.cpp:
3223        (CoreIPC::Connection::readyReadHandler):
3224        (CoreIPC::Connection::sendOutgoingMessage):
3225
32262011-04-06  Brian Weinstein  <bweinstein@apple.com>
3227
3228        Reviewed by Adam Roben.
3229
3230        WebKit2: Support Windows 7 Gestures
3231        https://bugs.webkit.org/show_bug.cgi?id=49824
3232        <rdar://problem/8689728>
3233
3234        Port code from WebKit1 -> WebKit2 to handle Windows 7 gestures.
3235
3236        The UIProcess gets a WM_GESTURENOTIFY message, it sends a sync message to the WebProcess to ask
3237        if we should allow panning. The WebProcess checks if we're in a scrollable area, and the mouse
3238        isn't over a scrollbar.
3239
3240        The UIProcess then gets a WM_GESTURE message, and if it is a pan gesture, it sends a message to
3241        the WebProcess to scroll by the amount fingers have moved since the last WM_GESTURE messeage. The
3242        X and Y are reversed because panning up -> moving the page down, and vice versa.
3243
3244        * UIProcess/WebPageProxy.cpp:
3245        (WebKit::WebPageProxy::gestureWillBegin): Send a sync message to the WebProcess
3246            to initialize the gesture. The WebProcess returns whether or not we can start a pan
3247            gesture from where we are.
3248        (WebKit::WebPageProxy::gestureDidScroll): Send a message to the WebProcess to scroll by
3249            pan gesture.
3250        (WebKit::WebPageProxy::gestureDidEnd): Send a message to the WebProcess that the gesture has ended.
3251        * UIProcess/WebPageProxy.h:
3252        * UIProcess/win/WebView.cpp:
3253        (WebKit::WebView::wndProc): Add WM_GESTURE and WM_GESTURENOTIFY handlers.
3254        (WebKit::WebView::WebView): Initialize two new variables.
3255        (WebKit::WebView::onGestureNotify): Figure out which gestures we should support based on where
3256            the gesture is beginning.
3257        (WebKit::WebView::onGesture): Support starting a gesture, ending a gesture, and panning.
3258        * UIProcess/win/WebView.h:
3259        * WebProcess/WebPage/WebPage.h:
3260        * WebProcess/WebPage/WebPage.messages.in: Add messages needed for gestures.
3261        * WebProcess/WebPage/win/WebPageWin.cpp:
3262        (WebKit::WebPage::gestureWillBegin): Set the node that the gesture started on (so we
3263            know which layer to scroll if the user pans), and determine whether or not we should allow
3264            panning. If the page can't scroll, or the user is on a scrollbar, disallow panning.
3265        (WebKit::WebPage::gestureDidScroll): Scroll the enclosing layer of the element the gesture
3266            started on.
3267        (WebKit::WebPage::gestureDidEnd): Clear the node the gesture started on.
3268
32692011-04-06  Jeff Miller  <jeffm@apple.com>
3270
3271        Reviewed by Adam Roben.
3272
3273        Add WKStringGetCharactersPtr() and WKStringGetLength() to WebKit2 C API
3274        https://bugs.webkit.org/show_bug.cgi?id=57989
3275
3276        Note that WKChar, which is returned by WKStringGetCharactersPtr(), is defined the same way we define JSChar in JSStringRef.h.
3277
3278        * Shared/API/c/WKString.cpp:
3279        (WKStringGetLength): Added.
3280        (WKStringGetCharactersPtr): Added.
3281        * Shared/API/c/WKString.h: Define WKChar and added WKStringGetLength() and WKStringGetCharactersPtr().
3282        * Shared/WebString.h:
3283        (WebKit::WebString::length): Added.
3284        (WebKit::WebString::characters): Added.
3285
32862011-04-06  Anders Carlsson  <andersca@apple.com>
3287
3288        Reviewed by Oliver Hunt.
3289
3290        Dock stays in front of Hulu.com full screen video output
3291        https://bugs.webkit.org/show_bug.cgi?id=57988
3292        <rdar://problem/9216260>
3293
3294        Instead of using -[NSMenu setMenuBarVisible:] to toggle full screen, use
3295        -[NSApp setPresentationOptions:]. Also, make the UI process the front most app before
3296        setting the presentation options when exiting full screen, otherwise the dock won't
3297        be restored correctly.
3298
3299        * PluginProcess/mac/PluginProcessShim.mm:
3300        Remove some shim functions that aren't needed.
3301
3302        * UIProcess/Plugins/PluginProcessProxy.cpp:
3303        (WebKit::PluginProcessProxy::PluginProcessProxy):
3304        Initialize m_preFullscreenAppPresentationOptions.
3305
3306        * UIProcess/Plugins/PluginProcessProxy.h:
3307        Add m_preFullscreenAppPresentationOptions.
3308
3309        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
3310        (WebKit::PluginProcessProxy::enterFullscreen):
3311        Change the presentation options for the app.
3312
3313        (WebKit::PluginProcessProxy::exitFullscreen):
3314        Restore the presentation options.
3315
33162011-04-06  Mark Rowe  <mrowe@apple.com>
3317
3318        Reviewed by Darin Adler.
3319
3320        Expose the original URL of a WKBackForwardListItem.
3321
3322        Needed for <rdar://problem/9074651>.
3323
3324        * UIProcess/API/C/WKBackForwardListItem.cpp:
3325        (WKBackForwardListItemCopyOriginalURL):
3326        * UIProcess/API/C/WKBackForwardListItem.h:
3327
33282011-04-06  Brady Eidson  <beidson@apple.com>
3329
3330        Reviewed by Anders Carlsson.
3331
3332        https://bugs.webkit.org/show_bug.cgi?id=57973 and https://bugs.webkit.org/show_bug.cgi?id=57973
3333        WK2 icon database should be able to get a CGImage of a specific size
3334
3335        * UIProcess/API/C/cg/WKIconDatabaseCG.cpp:
3336        (WKIconDatabaseTryGetCGImageForURL): Change this API to take a requested size, and find the first matching
3337          CGImage in the icon.
3338        * UIProcess/API/C/cg/WKIconDatabaseCG.h:
3339
33402011-04-06  Jessie Berlin  <jberlin@apple.com>
3341
3342        Reviewed by Anders Carlsson.
3343
3344        WebKit2: Implement TextChecker on Windows
3345        https://bugs.webkit.org/show_bug.cgi?id=57862
3346
3347        Part 2: Implement uniqueSpellDocumentTag and closeSpellDocumentWithTag.
3348
3349        * UIProcess/API/C/win/WKTextChecker.h:
3350        * UIProcess/win/TextCheckerWin.cpp:
3351        (WebKit::TextChecker::uniqueSpellDocumentTag):
3352        (WebKit::TextChecker::closeSpellDocumentWithTag):
3353        * UIProcess/win/WebTextCheckerClient.cpp:
3354        (WebKit::WebTextCheckerClient::uniqueSpellDocumentTag):
3355        (WebKit::WebTextCheckerClient::closeSpellDocumentWithTag):
3356        * UIProcess/win/WebTextCheckerClient.h:
3357
33582011-04-06  Robert Sesek  <rsesek@chromium.org>
3359
3360        Reviewed by Alexey Proskuryakov.
3361
3362        Move code duplicated between the WebKit/mac and WebKit2 down to WebCore because Chromium will need it too
3363        https://bugs.webkit.org/show_bug.cgi?id=54969
3364
3365        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
3366        (WebKit::WebEditorClient::respondToChangedSelection): Moved duplicated code to WebCore
3367        * WebProcess/WebPage/mac/WebPageMac.mm: Moved duplicated code to WebCore
3368        (WebKit::WebPage::getMarkedRange):
3369        (WebKit::WebPage::getSelectedRange):
3370        (WebKit::WebPage::characterIndexForPoint):
3371        (WebKit::WebPage::performDictionaryLookupAtLocation):
3372
33732011-04-06  Chang Shu  <cshu@webkit.org>
3374
3375        Reviewed by Darin Adler.
3376
3377        WebKitTestRunner needs layoutTestController.pageNumberForElementById
3378        https://bugs.webkit.org/show_bug.cgi?id=42329
3379
3380        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
3381        (WKBundlePageNumberForElementById):
3382        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
3383        * WebProcess/InjectedBundle/InjectedBundle.cpp:
3384        (WebKit::InjectedBundle::pageNumberForElementById):
3385        * WebProcess/InjectedBundle/InjectedBundle.h:
3386
33872011-04-05  Enrica Casucci  <enrica@apple.com>
3388
3389        Reviewed by Darin Adler.
3390
3391        REGRESSION: Drag & Drop Gmail Attachments doesn't work.
3392        https://bugs.webkit.org/show_bug.cgi?id=57909
3393        <rdar://problem/9103220>
3394
3395        Added _hitTest method to support drag and drop when the drag types cannot be matched.
3396        This is the case for elements that do not place content
3397        in the drag pasteboard automatically when the drag start (i.e. dragging a DIV element).
3398
3399        * UIProcess/API/mac/WKView.mm:
3400        (-[WKView _hitTest:dragTypes:]): Added.
3401
34022011-04-06  Csaba Osztrogonác  <ossy@webkit.org>
3403
3404        Reviewed by Darin Adler.
3405
3406        Fix using UNUSED_PARAM introduced in r82907
3407        https://bugs.webkit.org/show_bug.cgi?id=57940
3408
3409        * WebProcess/ResourceCache/WebResourceCacheManager.cpp:
3410        (WebKit::WebResourceCacheManager::clearCacheForOrigin):
3411
34122011-04-06  Jessie Berlin  <jberlin@apple.com>
3413
3414        Reviewed by Anders Carlsson.
3415
3416        WebKit2: Implement TextChecker on Windows
3417        https://bugs.webkit.org/show_bug.cgi?id=57862
3418
3419        Part 1: Get and set the state.
3420
3421        * Shared/API/c/win/WKBaseWin.h:
3422        * Shared/APIObject.h:
3423        * UIProcess/API/C/win/WKAPICastWin.h:
3424
3425        * UIProcess/API/C/win/WKTextChecker.cpp: Added.
3426        (WKTextCheckerSetClient):
3427        (WKTextCheckerContinuousSpellCheckingEnabledStateChanged):
3428        (WKTextCheckerGrammarCheckingEnabledStateChanged):
3429        * UIProcess/API/C/win/WKTextChecker.h: Added.
3430
3431        * UIProcess/TextChecker.h:
3432        * UIProcess/win/TextCheckerWin.cpp:
3433        (WebKit::TextChecker::state):
3434        Do the initalization for the state only once so that it is not necessary to call the client
3435        every time the state is requested.
3436        (WebKit::TextChecker::isContinuousSpellCheckingAllowed):
3437        Call the client.
3438        (WebKit::TextChecker::setContinuousSpellCheckingEnabled):
3439        Update the state and tell the client.
3440        (WebKit::TextChecker::setGrammarCheckingEnabled):
3441        Ditto.
3442        (WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged):
3443        Update the state.
3444        (WebKit::TextChecker::grammarCheckingEnabledStateChanged):
3445        Update the state.
3446
3447        * UIProcess/win/WebTextChecker.cpp: Added.
3448        (WebKit::WebTextChecker::shared):
3449        Make the WebTextChecker available globally.
3450        (WebKit::WebTextChecker::WebTextChecker):
3451        (WebKit::WebTextChecker::setClient):
3452        (WebKit::updateStateForAllWebProcesses):
3453        (WebKit::WebTextChecker::continuousSpellCheckingEnabledStateChanged):
3454        Tell the TextChecker that the state has changed, and then tell the
3455        WebProcessProxies to send the new state to the WebProcesses.
3456        (WebKit::WebTextChecker::grammarCheckingEnabledStateChanged):
3457        Ditto.
3458        * UIProcess/win/WebTextChecker.h: Added.
3459        (WebKit::WebTextChecker::client):
3460        (WebKit::WebTextChecker::type):
3461
3462        * UIProcess/win/WebTextCheckerClient.cpp: Added.
3463        (WebKit::WebTextCheckerClient::continuousSpellCheckingAllowed):
3464        (WebKit::WebTextCheckerClient::continuousSpellCheckingEnabled):
3465        (WebKit::WebTextCheckerClient::setContinuousSpellCheckingEnabled):
3466        (WebKit::WebTextCheckerClient::grammarCheckingEnabled):
3467        (WebKit::WebTextCheckerClient::setGrammarCheckingEnabled):
3468        * UIProcess/win/WebTextCheckerClient.h: Added.
3469
3470        * win/WebKit2.vcproj:
3471        Add WKTextChecker.h/.cpp, WebTextChecker.h/.cpp, and WebTextCheckerClient.h/.cpp.
3472        * win/WebKit2Generated.make:
3473        Copy over WKTextChecker.h.
3474
34752011-04-05  Chang Shu  <cshu@webkit.org>
3476
3477        Reviewed by Darin Adler.
3478
3479        WebKitTestRunner needs layoutTestController.numberOfPages
3480        https://bugs.webkit.org/show_bug.cgi?id=42694
3481
3482        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
3483        (WKBundleNumberOfPages):
3484        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
3485        * WebProcess/InjectedBundle/InjectedBundle.cpp:
3486        (WebKit::InjectedBundle::numberOfPages):
3487        * WebProcess/InjectedBundle/InjectedBundle.h:
3488
34892011-04-05  Darin Adler  <darin@apple.com>
3490
3491        Reviewed by Alexey Proskuryakov.
3492
3493        [Mac] WebKit2: Escape key does not stop page loads when focus is on the web page
3494        https://bugs.webkit.org/show_bug.cgi?id=57893
3495        <rdar://problem/9130486>
3496
3497        * UIProcess/API/mac/PageClientImpl.h: Added executeSavedCommandBySelector.
3498        * UIProcess/API/mac/PageClientImpl.mm: Renamed internal Objective-C classes to use
3499        the WebKit2 Objective-C class prefix, WK, rather than the WebKit1 Objective-C class
3500        prefix, Web. Removed some unneeded explicit WebKit namespace prefixes.
3501        (-[WKEditCommandObjC initWithWebEditCommandProxy:]): Removed unneeded WebKit
3502        namespace prefix.
3503        (-[WKEditCommandObjC command]): Ditto.
3504        (-[WKEditorUndoTargetObjC undoEditing:]): Updated for new class name.
3505        (-[WKEditorUndoTargetObjC redoEditing:]): Ditto.
3506        (WebKit::PageClientImpl::PageClientImpl): Ditto.
3507        (WebKit::PageClientImpl::registerEditCommand): Ditto.
3508        (WebKit::PageClientImpl::executeSavedCommandBySelector): Added.
3509
3510        * UIProcess/API/mac/WKView.mm: Renamed internal Objective-C categories to use the
3511        WebKit2 Objective-C prefix, WK, rather than the WebKit1 Objective-C prefix, Web,
3512        or no prefix at all. Tweaked use of extern "C" a little.
3513        (-[WKView doCommandBySelector:]): Tweaked the comment.
3514        (-[WKView _executeSavedCommandBySelector:]): Added. For use when command is not handled
3515        by WebCore.
3516        (-[WKResponderChainSink initWithResponderChain:]): Added. Based on the
3517        WebResponderChainSink class in WebKit1.
3518        (-[WKResponderChainSink detach]): Added.
3519        (-[WKResponderChainSink didReceiveUnhandledCommand]): Added.
3520        (-[WKResponderChainSink noResponderFor:]): Added.
3521        (-[WKResponderChainSink doCommandBySelector:]): Added.
3522        (-[WKResponderChainSink tryToPerform:with:]): Added.
3523
3524        * UIProcess/API/mac/WKViewInternal.h: Added declaration of _executeSavedCommandBySelector:
3525        method. Also removed unneeded includes.
3526
3527        * UIProcess/PageClient.h: Added executeSavedCommandBySelector.
3528        * UIProcess/WebPageProxy.h: Added executeSavedCommandBySelector.
3529        * UIProcess/WebPageProxy.messages.in: Added ExecuteSavedCommandBySelector.
3530
3531        * UIProcess/mac/WebFullScreenManagerProxyMac.mm: Updated includes.
3532
3533        * UIProcess/mac/WebPageProxyMac.mm:
3534        (WebKit::WebPageProxy::executeSavedCommandBySelector): Added.
3535
3536        * WebProcess/WebPage/mac/WebPageMac.mm:
3537        (WebKit::WebPage::executeKeypressCommandsInternal): Send the synchronous
3538        ExecuteSavedCommandBySelector message when a command is not handled by WebCore.
3539
35402011-04-05  Anders Carlsson  <andersca@apple.com>
3541
3542        Reviewed by Alexey Proskuryakov.
3543
3544        Some plug-in content is displayed upside down in Unity plug-in
3545        https://bugs.webkit.org/show_bug.cgi?id=57895
3546        <rdar://problem/9212003>
3547
3548        Create the flipped geometry layer in the web process instead of the plug-in process,
3549        which matches what we do in WebKit1.
3550
3551        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
3552        (WebKit::NetscapePlugin::platformPostInitialize):
3553        * WebProcess/Plugins/Netscape/mac/PluginProxyMac.mm:
3554        (WebKit::PluginProxy::pluginLayer):
3555
35562011-04-05  Anders Carlsson  <andersca@apple.com>
3557
3558        Reviewed by Darin Adler.
3559
3560        Assertion failure when navigating quickly between file URLs
3561        https://bugs.webkit.org/show_bug.cgi?id=57884
3562        <rdar://problem/9080559>
3563
3564        Remove bogus assertion. The pending provisional sandbox extension can be
3565        non-null if the current provisional load fails because we're about to load a new
3566        page that also has a sandbox extension.
3567
3568        * WebProcess/WebPage/WebPage.cpp:
3569        (WebKit::WebPage::SandboxExtensionTracker::didFailProvisionalLoad):
3570
35712011-04-05  Anders Carlsson  <andersca@apple.com>
3572
3573        Reviewed by Adam Roben.
3574
3575        Grant the web process access to ~/Library/Preferences/com.apple.universalaccess.plist
3576        https://bugs.webkit.org/show_bug.cgi?id=57879
3577
3578        The web process needs access to the unviersal access preferences to determine if full keyboard
3579        access is enabled. I've filed <rdar://problem/9237619> which tracks reading this preference in the UI
3580        process and sending it over to the web process whenever it changes.
3581
3582        * WebProcess/com.apple.WebProcess.sb:
3583
35842011-04-05  Dean Jackson  <dino@apple.com>
3585
3586        Reviewed by Simon Fraser.
3587
3588        Add parentheses around && within || to avoid clang warning.
3589
3590        * WebProcess/WebPage/DrawingAreaImpl.cpp:
3591        (WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState):
3592
35932011-04-05  Anders Carlsson  <andersca@apple.com>
3594
3595        Reviewed by Adam Roben.
3596
3597        Add two more entries to the sandbox profile
3598        https://bugs.webkit.org/show_bug.cgi?id=57875
3599
3600        Allow read-access to /Library/Dictionaries since WebCore::nextBreakablePosition
3601        ends up calling into ICU which accesses the dictionary.
3602
3603        Allow Mach access to com.apple.networkd since it's used by CFNetwork.
3604
3605        * WebProcess/com.apple.WebProcess.sb:
3606
36072011-04-05  Anders Carlsson  <andersca@apple.com>
3608
3609        Reviewed by Oliver Hunt.
3610
3611        Invalidate callbacks if the WebPageProxy is no longer valid
3612        https://bugs.webkit.org/show_bug.cgi?id=57873
3613        <rdar://problem/9059717>
3614
3615        Audit all function calls that take callbacks and make sure to invalidate the callbacks
3616        if the web page is no longer valid.
3617
3618        * UIProcess/WebPageProxy.cpp:
3619        (WebKit::WebPageProxy::runJavaScriptInMainFrame):
3620        (WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
3621        (WebKit::WebPageProxy::getSourceForFrame):
3622        (WebKit::WebPageProxy::getContentsAsString):
3623        (WebKit::WebPageProxy::getSelectionOrContentsAsString):
3624        (WebKit::WebPageProxy::getMainResourceDataOfFrame):
3625        (WebKit::WebPageProxy::getResourceDataFromFrame):
3626        (WebKit::WebPageProxy::getWebArchiveOfFrame):
3627        (WebKit::WebPageProxy::forceRepaint):
3628        (WebKit::WebPageProxy::computePagesForPrinting):
3629        (WebKit::WebPageProxy::drawRectToPDF):
3630        (WebKit::WebPageProxy::drawPagesToPDF):
3631
36322011-04-05  Adam Roben  <aroben@apple.com>
3633
3634        Disable accelerated compositing on Windows machines that don't support it
3635
3636        This includes machines without the necessary graphics hardware, and machines without
3637        WebKitQuartzCoreAdditions (like the Windows 7 Release (WebKit2 Tests) bots).
3638
3639        Fixes <http://webkit.org/b/57870> REGRESSION (r82960): Lots of tests crashing in
3640        DrawingAreaImpl::enterAcceleratedCompositingMode on Windows 7 Release (WebKit2 Tests)
3641
3642        Reviewed by Anders Carlsson.
3643
3644        * WebProcess/WebPage/LayerTreeHost.h:
3645        (WebKit::LayerTreeHost::supportsAcceleratedCompositing): Added. On platforms other than
3646        Windows, this always returns true.
3647
3648        * WebProcess/WebPage/WebPage.cpp:
3649        (WebKit::WebPage::updatePreferences): Only enable accelerated compositing-related
3650        preferences if the machine supports accelerated compositing.
3651
3652        * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.cpp:
3653        (WebKit::LayerTreeHostCAWin::supportsAcceleratedCompositing): Added. Creates a view, asks it
3654        if it can draw, and returns the result.
3655
3656        * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.h: Added supportsAcceleratedCompositing.
3657
3658        * WebProcess/WebPage/win/LayerTreeHostWin.cpp: Added.
3659        (WebKit::LayerTreeHost::supportsAcceleratedCompositing): Added. Calls through to
3660        LayerTreeHostCAWin in configurations that support that class. Otherwise just returns false.
3661
3662        * win/WebKit2.vcproj: Added LayerTreeHostWin.cpp. Let VS reorder some other files.
3663
36642011-04-05  Adam Roben  <aroben@apple.com>
3665
3666        Make accelerated compositing work in WebKit2 on Windows
3667
3668        LayerTreeHostCAWin uses WKCACFView to render each frame to an image, then has
3669        DrawingAreaImpl send that image over to the UI process (just like it does for
3670        non-accelerated rendering). It's unfortunate that this requires reading every frame back
3671        from the GPU into system memory. More efficient solutions can be explored in the future.
3672
3673        Fixes <http://webkit.org/b/45567>.
3674
3675        Reviewed by Anders Carlsson.
3676
3677        * DerivedSources.make: Added $(WebKit2) to the VPATH so that DerivedSources.make can be
3678        found when used as a target dependency. Added rules to generate a HeaderDetection.h file on
3679        Windows. If we can find WebKitQuartzCoreAdditions headers, we define HAVE_WKQCA in
3680        HeaderDetection.h.
3681
3682        * WebProcess/WebPage/DrawingAreaImpl.cpp:
3683        (WebKit::DrawingAreaImpl::setLayerHostNeedsDisplay):
3684        * WebProcess/WebPage/DrawingAreaImpl.h:
3685        Added setLayerHostNeedsDisplay. Lets the layer host tell the DrawingAreaImpl that it has a
3686        new frame to render. This should only be called by layer hosts that participate in
3687        DrawingAreaImpl's display mechanism.
3688
3689        * WebProcess/WebPage/LayerTreeHost.cpp:
3690        (WebKit::LayerTreeHost::create): Only try to instantiate LayerTreeHostCAWin if we have
3691        WebKitQuartzCoreAdditions, since it depends on that library.
3692
3693        * WebProcess/WebPage/WebPage.cpp:
3694        (WebKit::WebPage::updatePreferences): Removed code that forced accelerated compositing to be
3695        disabled on Windows.
3696
3697        * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.cpp:
3698        (WebKit::registerDummyWindowClass): Registers the window class we use for the dummy window.
3699        (WebKit::createDummyWindow): Creates the dummy window we pass to WKCACFView so that D3D can
3700        determine the display mode, etc. (The window is never shown on screen.)
3701        (WebKit::LayerTreeHostCAWin::LayerTreeHostCAWin): Initialize new members.
3702        (WebKit::LayerTreeHostCAWin::platformInitialize): Create our dummy window and view and
3703        associate the two. We set ourselves as the view's context's user data so that
3704        PlatformCALayer can get our AbstractCACFLayerTreeHost pointer as needed.
3705        (WebKit::LayerTreeHostCAWin::invalidate): Cancel any pending flushes, tear down our view,
3706        and destroy the dummy window if no other layer host is using it.
3707        (WebKit::LayerTreeHostCAWin::scheduleLayerFlush): Ask LayerChangesFlusher to call us back
3708        soon to perform the flush.
3709        (WebKit::LayerTreeHostCAWin::participatesInDisplay): Added. Returns true, since we render
3710        each frame to an image.
3711        (WebKit::LayerTreeHostCAWin::needsDisplay): Added. Returns true if it's now time to
3712        displayReturns true if it's now time to display.
3713        (WebKit::LayerTreeHostCAWin::timeUntilNextDisplay): Added. Returns how many seconds remain
3714        before we need to display again.
3715        (WebKit::size): Added. Helper function to get the size of a WKCACFImage.
3716        (WebKit::toShareableBitmap): Added. Helper function to convert a WKCACFImage to a
3717        ShareableBitmap.
3718        (WebKit::LayerTreeHostCAWin::display): Added. Renders the next frame to an image and stuffs
3719        the image into the UpdateInfo struct.
3720        (WebKit::LayerTreeHostCAWin::sizeDidChange): Added. Tells the view about the new size.
3721        (WebKit::LayerTreeHostCAWin::forceRepaint): Added. Flushes any pending changes to the view.
3722        (WebKit::LayerTreeHostCAWin::contextDidChangeCallback): Added. WKCACFView calls this
3723        whenever any changes made to the view or its layer tree have been flushed. Just calls
3724        through to contextDidChange.
3725        (WebKit::LayerTreeHostCAWin::contextDidChange): Added. Tells layers that they've started
3726        animating, and tells the DrawingAreaImpl that we need to display again.
3727        (WebKit::LayerTreeHostCAWin::rootLayer): Added. Gets the root layer's PlatformCALayer.
3728        (WebKit::LayerTreeHostCAWin::addPendingAnimatedLayer): Added. Stores the layer so that we
3729        can tell it animations have started the next time we get a contextDidChange callback.
3730        (WebKit::LayerTreeHostCAWin::layerTreeDidChange): Added. Schedules a flush, unless we're
3731        already in the process of flushing. This code came from WebCore::WKCACFViewLayerTreeHost.
3732        (WebKit::LayerTreeHostCAWin::flushPendingLayerChangesNow): Added. Performs the flush. This
3733        code was adapted from WebCore::WKCACFViewLayerTreeHost.
3734
3735        * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.h: Wrapped this whole header in HAVE(WKQCA),
3736        since this class only works when WebKitQuartzCoreAdditions is available. Added a bunch of
3737        new members.
3738
37392011-04-04  Adam Roben  <aroben@apple.com>
3740
3741        Add a way for LayerTreeHost to participate in DrawingAreaImpl's normal display mechanism
3742
3743        When LayerTreeHost participates in display, it renders each frame into a bitmap.
3744        DrawingAreaImpl sends the bitmap to the UI process in an Update message, just like in
3745        non-accelerated compositing mode. The UI process never knows that accelerated compositing is
3746        going on. (When LayerTreeHost does not participate in display, as on Mac, it is responsible
3747        for getting bits from the web process to the UI process.)
3748
3749        No LayerTreeHost uses this mechanism (yet). This patch should cause no change in behavior.
3750
3751        Fixes <http://webkit.org/b/57792> LayerTreeHost needs a way to render frames to a bitmap
3752
3753        Reviewed by Anders Carlsson.
3754
3755        * WebProcess/WebPage/DrawingAreaImpl.cpp:
3756        (WebKit::DrawingAreaImpl::forceRepaint): If the layer tree host participates in display,
3757        perform a display (like in the non-accelerated case).
3758        (WebKit::DrawingAreaImpl::layerHostDidFlushLayers): Don't send an
3759        EnterAcceleratedCompositing message to the UI process if the layer tree host participates in
3760        display. In that case, the UI process doesn't even need to know we're using accelerated
3761        compositing in the web process.
3762        (WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState): Go through the normal display
3763        mechanism if we have a layer tree host that participates in display.
3764        (WebKit::DrawingAreaImpl::didUpdate): Don't ignore DidUpdate messages when we have a layer
3765        tree host that participates in display.
3766        (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode): If the new layer tree host
3767        participates in display, let the display timer continue to run and continue to expect
3768        DidUpdate messages so that we don't interrupt the normal display mechanism. We still clear
3769        out m_dirtyRegion, m_scrollRect, and m_scrollOffset, though, because the layer tree host is
3770        still responsible for keeping track of those things even when it participates in display.
3771        (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode): If the outgoing layer tree host
3772        was participating in display, just send another Update message instead of an
3773        ExitAcceleratedCompositing message, since the UI process never even knew we were using
3774        accelerated compositing.
3775        (WebKit::DrawingAreaImpl::displayTimerFired): If we have a layer tree host that's
3776        participating in display, ask it when it next needs to display when scheduling our timer.
3777
3778        (WebKit::DrawingAreaImpl::scheduleDisplay):
3779        (WebKit::DrawingAreaImpl::display):
3780        If we have a layer tree host that's participating in display, it will keep track of its own
3781        dirty region, so ask it if it needs display rather than checking our own dirty region.
3782
3783        (WebKit::DrawingAreaImpl::display): If we have a layer tree host that's participating in
3784        display, don't bail out. Instead, tell it to display rather than asking the page to paint.
3785        Moved the setting of updateInfo.viewSize earlier so that it will be set even when the layer
3786        tree host is displaying. Other changes are just due to indentation.
3787
3788        * WebProcess/WebPage/LayerTreeHost.h:
3789        (WebKit::LayerTreeHost::participatesInDisplay):
3790        (WebKit::LayerTreeHost::needsDisplay):
3791        (WebKit::LayerTreeHost::timeUntilNextDisplay):
3792        (WebKit::LayerTreeHost::display):
3793        Stubbed out these functions. Derived classes can override them to participate in display.
3794
37952011-04-04  MORITA Hajime  <morrita@google.com>
3796
3797        Reviewed by Ryosuke Niwa.
3798
3799        [Refactoring] SpellCheckingResult should be replaced with TextCheckingResult
3800        https://bugs.webkit.org/show_bug.cgi?id=56085
3801
3802        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
3803        (WebKit::WebEditorClient::requestCheckingOfString):
3804        * WebProcess/WebCoreSupport/WebEditorClient.h:
3805        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
3806        (WebKit::WebEditorClient::checkTextOfParagraph):
3807
38082011-04-05  Alejandro G. Castro  <alex@igalia.com>
3809
3810        Another compilation fix after r82929 horrible patch merge.
3811
3812        * UIProcess/WebPageProxy.messages.in:
3813
38142011-04-05  Alejandro G. Castro  <alex@igalia.com>
3815
3816        Fix compilation error after r82929.
3817
3818        * WebProcess/WebPage/WebPage.h:
3819
38202011-04-05  Amruth Raj  <amruthraj@motorola.com>, Ravi Phaneendra Kasibhatla  <ravi.kasibhatla@motorola.com> and Alejandro G. Castro  <alex@igalia.com>
3821
3822        Reviewed by Martin Robinson.
3823
3824        [GTK] Implement WebPage class for WebKit2
3825        https://bugs.webkit.org/show_bug.cgi?id=54230
3826
3827        Added functions to handle the generation of commands from the
3828        keycodes.
3829
3830        * GNUmakefile.am:
3831        * Scripts/webkit2/messages.py:
3832        * UIProcess/PageClient.h:
3833        * UIProcess/WebPageProxy.h:
3834        * UIProcess/WebPageProxy.messages.in:
3835        * UIProcess/gtk/WebPageProxyGtk.cpp:
3836        (WebKit::WebPageProxy::getEditorCommandsForKeyEvent):
3837        * UIProcess/gtk/WebView.cpp:
3838        (WebKit::backspaceCallback):
3839        (WebKit::selectAllCallback):
3840        (WebKit::cutClipboardCallback):
3841        (WebKit::copyClipboardCallback):
3842        (WebKit::pasteClipboardCallback):
3843        (WebKit::toggleOverwriteCallback):
3844        (WebKit::popupMenuCallback):
3845        (WebKit::showHelpCallback):
3846        (WebKit::deleteFromCursorCallback):
3847        (WebKit::moveCursorCallback):
3848        (WebKit::WebView::WebView):
3849        (WebKit::WebView::getEditorCommandsForKeyEvent):
3850        * UIProcess/gtk/WebView.h:
3851        (WebKit::WebView::addPendingEditorCommand):
3852        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
3853        * WebProcess/WebCoreSupport/WebEditorClient.h:
3854        * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: Added.
3855        (WebKit::WebEditorClient::getEditorCommandsForKeyEvent):
3856        (WebKit::WebEditorClient::executePendingEditorCommands):
3857        (WebKit::WebEditorClient::handleKeyboardEvent):
3858        (WebKit::WebEditorClient::handleInputMethodKeydown):
3859        * WebProcess/WebPage/WebPage.cpp:
3860        * WebProcess/WebPage/WebPage.h:
3861        * WebProcess/WebPage/gtk/WebPageGtk.cpp: Added.
3862        (WebKit::WebPage::platformInitialize):
3863        (WebKit::WebPage::platformPreferencesDidChange):
3864        (WebKit::scroll):
3865        (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
3866        (WebKit::WebPage::platformHasLocalDataForURL):
3867        (WebKit::WebPage::cachedResponseMIMETypeForURL):
3868        (WebKit::WebPage::platformCanHandleRequest):
3869
38702011-04-05  Csaba Osztrogonác  <ossy@webkit.org>
3871
3872        Remove duplicate API from WKContext
3873        <rdar://problem/8727879>
3874        https://bugs.webkit.org/show_bug.cgi?id=57815
3875
3876        Unreviewed buildfix after r82906.
3877
3878        Add UNUSED_PARAM to resourceCachesToClear, because
3879        it is only used within #if USE(CFURLCACHE) guard.
3880
3881        * WebProcess/ResourceCache/WebResourceCacheManager.cpp:
3882        (WebKit::WebResourceCacheManager::clearCacheForOrigin):
3883
38842011-04-04  Sam Weinig  <sam@webkit.org>
3885
3886        Reviewed by Brian Weinstein.
3887
3888        Remove duplicate API from WKContext
3889        <rdar://problem/8727879>
3890        https://bugs.webkit.org/show_bug.cgi?id=57815
3891
3892        - Remove WKContextClearResourceCaches and WKContextClearApplicationCache in favor
3893          of their more modern counterparts WKResourceCacheManagerClearCacheForAllOrigins
3894          and WKApplicationCacheManagerDeleteAllEntries.
3895
3896        - Expand clearing functionality of WKResourceCacheManager by adding type of resources
3897          to clear.
3898
3899        * Shared/WebProcessCreationParameters.cpp:
3900        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
3901        (WebKit::WebProcessCreationParameters::encode):
3902        (WebKit::WebProcessCreationParameters::decode):
3903        * Shared/WebProcessCreationParameters.h:
3904        Remove clearing bools.
3905
3906        * UIProcess/API/C/WKAPICast.h:
3907        (WebKit::toResourceCachesToClear):
3908        Update for new name of enum.
3909
3910        * UIProcess/API/C/WKContext.cpp:
3911        * UIProcess/API/C/WKContext.h:
3912        Remove WKContextClearResourceCaches and WKContextClearApplicationCache.
3913
3914        * UIProcess/API/C/WKResourceCacheManager.cpp:
3915        (WKResourceCacheManagerClearCacheForOrigin):
3916        (WKResourceCacheManagerClearCacheForAllOrigins):
3917        * UIProcess/API/C/WKResourceCacheManager.h:
3918        Add WKResourceCachesToClear enum and use it in the clearing functions.
3919
3920        * UIProcess/WebContext.cpp:
3921        (WebKit::WebContext::WebContext):
3922        (WebKit::WebContext::ensureWebProcess):
3923        * UIProcess/WebContext.h:
3924        * WebProcess/WebProcess.messages.in:
3925        Remove clearing functions and setting of bools for clear on launch.
3926
3927        * UIProcess/WebFullScreenManagerProxy.cpp:
3928        Remove unnecessary #include.
3929
3930        * UIProcess/WebResourceCacheManagerProxy.cpp:
3931        (WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin):
3932        (WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins):
3933        * UIProcess/WebResourceCacheManagerProxy.h:
3934        * WebProcess/ResourceCache/WebResourceCacheManager.cpp:
3935        (WebKit::WebResourceCacheManager::clearCacheForOrigin):
3936        (WebKit::WebResourceCacheManager::clearCacheForAllOrigins):
3937        * WebProcess/ResourceCache/WebResourceCacheManager.h:
3938        * WebProcess/ResourceCache/WebResourceCacheManager.messages.in:
3939        Add enum parameter describing what type of caches to clear.
3940
3941        * WebProcess/WebProcess.cpp:
3942        (WebKit::WebProcess::initializeWebProcess):
3943        (WebKit::WebProcess::clearResourceCaches):
3944        * WebProcess/WebProcess.h:
3945        No longer need to use opaque type now that it is not a message receiver.
3946
39472011-04-04  David Kilzer  <ddkilzer@apple.com>
3948
3949        <http://webkit.org/b/57384> CFNetwork and WebCore load priorities should match
3950
3951        Reviewed by Alexey Proskuryakov.
3952
3953        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
3954        (InitWebCoreSystemInterface): Added initialization for
3955        wkSetHTTPPipeliningMaximumPriority().
3956
39572011-04-04  Anders Carlsson  <andersca@apple.com>
3958
3959        Reviewed by Darin Adler.
3960
3961        Send NPCocoaEventFlagsChanged events
3962        https://bugs.webkit.org/show_bug.cgi?id=57811
3963        <rdar://problem/9215600>
3964
3965        * Shared/WebEvent.h:
3966        (WebKit::WebEvent::capsLockKey):
3967        Add CapsLock modifier and getter.
3968
3969        * Shared/mac/WebEventFactory.mm:
3970        (WebKit::modifiersForEvent):
3971        Check for NSAlphaShiftKeyMask and set the CapsLockKey modifier.
3972
3973        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
3974        (WebKit::modifierFlags):
3975        Check for CapsLockKey and set NSAlphaShiftKeyMask.
3976
3977        (WebKit::isFlagsChangedEvent):
3978        Return whether a given event is a Cocoa flags changed event.
3979
3980        (WebKit::initializeKeyboardEvent):
3981        If this is a flags changed event, set the event type to NPCocoaEventFlagsChanged.
3982
39832011-04-04  Anders Carlsson  <andersca@apple.com>
3984
3985        Reviewed by Darin Adler.
3986
3987        Don't discard the backing stores of WKViews in the key window
3988        https://bugs.webkit.org/show_bug.cgi?id=57808
3989        <rdar://problem/9110793>
3990        <rdar://problem/9194284>
3991        <rdar://problem/9222216>
3992
3993        * UIProcess/DrawingAreaProxy.h:
3994        (WebKit::DrawingAreaProxy::setBackingStoreIsDiscardable):
3995        Add empty stub.
3996
3997        * UIProcess/DrawingAreaProxyImpl.cpp:
3998        (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
3999        Initialize m_isBackingStoreDiscardable to true.
4000
4001        (WebKit::DrawingAreaProxyImpl::setBackingStoreIsDiscardable):
4002        Set m_isBackingStoreDiscardable and schedule or stop the discard backing store timer.
4003
4004        (WebKit::DrawingAreaProxyImpl::discardBackingStoreSoon):
4005        Don't start the timer if m_isBackingStoreDiscardable is false.
4006
4007        * UIProcess/DrawingAreaProxyImpl.h:
4008        Add m_isBackingStoreDiscardable.
4009
4010        * UIProcess/WebPageProxy.cpp:
4011        (WebKit::WebPageProxy::viewStateDidChange):
4012        Mark the backing store as discardable if the view is hidden or if the containing window
4013        is not active.
4014
40152011-04-04  Jade Han  <jade.han@nokia.com>
4016
4017        Reviewed by Csaba Osztrogonác.
4018
4019        Symbian build fix.
4020        https://bugs.webkit.org/show_bug.cgi?id=54977
4021
4022        * config.h:
4023
40242011-04-04  Brady Eidson  <beidson@apple.com>
4025
4026        Rubberstamped by Adam Roben.
4027
4028        Add WKIconDatabase* headers to the WebKit2 export for Windows:
4029        * win/WebKit2Generated.make:
4030
40312011-04-04  Anders Carlsson  <andersca@apple.com>
4032
4033        Reviewed by Dan Bernstein.
4034
4035        Get rid of WebContext::process() in more places
4036        https://bugs.webkit.org/show_bug.cgi?id=57787
4037
4038        Migrate calls to WebContext::process() over to sendToAllProcesses and
4039        sendToAllProcessesRelaunchingThemIfNecessary.
4040
4041        Add FIXMEs for things that need to be fixed in order to support multiple web processes.
4042
4043        * UIProcess/Downloads/DownloadProxy.cpp:
4044        (WebKit::DownloadProxy::cancel):
4045        * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
4046        (WebKit::WebPluginSiteDataManager::getSitesWithData):
4047        (WebKit::WebPluginSiteDataManager::clearSiteData):
4048        * UIProcess/VisitedLinkProvider.cpp:
4049        (WebKit::VisitedLinkProvider::pendingVisitedLinksTimerFired):
4050        * UIProcess/WebApplicationCacheManagerProxy.cpp:
4051        (WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins):
4052        (WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin):
4053        (WebKit::WebApplicationCacheManagerProxy::deleteAllEntries):
4054        * UIProcess/WebCookieManagerProxy.cpp:
4055        (WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
4056        (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
4057        * UIProcess/WebDatabaseManagerProxy.cpp:
4058        (WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin):
4059        (WebKit::WebDatabaseManagerProxy::getDatabaseOrigins):
4060        (WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin):
4061        (WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
4062        (WebKit::WebDatabaseManagerProxy::deleteAllDatabases):
4063        (WebKit::WebDatabaseManagerProxy::setQuotaForOrigin):
4064        * UIProcess/WebGeolocationManagerProxy.cpp:
4065        (WebKit::WebGeolocationManagerProxy::providerDidChangePosition):
4066        (WebKit::WebGeolocationManagerProxy::providerDidFailToDeterminePosition):
4067        * UIProcess/WebIconDatabase.cpp:
4068        (WebKit::WebIconDatabase::getLoadDecisionForIconURL):
4069        (WebKit::WebIconDatabase::didFinishURLImport):
4070        * UIProcess/WebKeyValueStorageManagerProxy.cpp:
4071        (WebKit::WebKeyValueStorageManagerProxy::getKeyValueStorageOrigins):
4072        (WebKit::WebKeyValueStorageManagerProxy::deleteEntriesForOrigin):
4073        (WebKit::WebKeyValueStorageManagerProxy::deleteAllEntries):
4074        * UIProcess/WebMediaCacheManagerProxy.cpp:
4075        (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache):
4076        (WebKit::WebMediaCacheManagerProxy::clearCacheForHostname):
4077        (WebKit::WebMediaCacheManagerProxy::clearCacheForAllHostnames):
4078        * UIProcess/WebResourceCacheManagerProxy.cpp:
4079        (WebKit::WebResourceCacheManagerProxy::getCacheOrigins):
4080        (WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin):
4081        (WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins):
4082
40832011-04-04  Alexey Proskuryakov  <ap@apple.com>
4084
4085        Reviewed by Dan Bernstein.
4086
4087        REGRESSION (WebKit2): Caps-Lock indicator sometimes doesn't appear in WebKit2
4088        https://bugs.webkit.org/show_bug.cgi?id=51230
4089        <rdar://problem/8780989>
4090
4091        <rdar://problem/9015250> REGRESSION (WebKit2): Key events not fired for modifier keys
4092
4093        * UIProcess/API/mac/WKView.mm:
4094        (-[WKView flagsChanged:]): Ported from WebHTMLView.
4095        (-[WKView _interpretKeyEvent:withCachedTextInputState:savingCommandsTo:WebCore::]):
4096        AppKit isn't happy about attempts to interpret NSFlagsChanged, but WK2 lacked the check.
4097
40982011-04-04  Steve Falkenburg  <sfalken@apple.com>
4099
4100        Reviewed by Adam Roben.
4101
4102        Remove unused AnalyzeWithLargeStack code from Windows build files
4103        https://bugs.webkit.org/show_bug.cgi?id=57771
4104
4105        This was used for us to build with prefast automatically,
4106        but it is out-of-date and hasn't been used for some time.
4107        Removing completely for now.
4108
4109        * win/WebKitPreBuild.cmd:
4110
41112011-04-04  Anders Carlsson  <andersca@apple.com>
4112
4113        Attempt to fix the Windows build.
4114
4115        * UIProcess/win/WebContextWin.cpp:
4116        (WebKit::WebContext::setShouldPaintNativeControls):
4117
41182011-04-04  Anders Carlsson  <andersca@apple.com>
4119
4120        Reviewed by Adam Roben.
4121
4122        Make it easier to send a message to all processes in a context
4123        https://bugs.webkit.org/show_bug.cgi?id=57776
4124
4125        Add WebContext::sendToAllProcesses and WebContext::sendToAllProcessesRelaunchingThemIfNecessary
4126        as a first step towards getting rid of WebContext::process() and getting rid of a class of crashers
4127        where WebContext::process() is null.
4128
4129        * UIProcess/WebContext.cpp:
4130        (WebKit::WebContext::initializeHistoryClient):
4131        (WebKit::WebContext::languageChanged):
4132        (WebKit::WebContext::setAlwaysUsesComplexTextCodePath):
4133        (WebKit::WebContext::registerURLSchemeAsEmptyDocument):
4134        (WebKit::WebContext::registerURLSchemeAsSecure):
4135        (WebKit::WebContext::setDomainRelaxationForbiddenForURLScheme):
4136        (WebKit::WebContext::setCacheModel):
4137        (WebKit::WebContext::setDefaultRequestTimeoutInterval):
4138        (WebKit::WebContext::clearResourceCaches):
4139        (WebKit::WebContext::clearApplicationCache):
4140        (WebKit::WebContext::setEnhancedAccessibility):
4141        (WebKit::WebContext::startMemorySampler):
4142        Use sendToAllProcesses.
4143
4144        (WebKit::WebContext::stopMemorySampler):
4145        Use sendToAllProcesses. This is a slight policy change where we now create a sandbox extension even
4146        if there's no process around. Since this is a debugging tool it seems OK to do this.
4147
4148        * UIProcess/WebContext.h:
4149        Get rid of hasValidProcess.
4150
4151        (WebKit::WebContext::sendToAllProcesses):
4152        If we have a process and we can send messages to it, then do so.
4153
4154        (WebKit::WebContext::sendToAllProcessesRelaunchingThemIfNecessary):
4155        Relaunch the web process and send the message.
4156
4157        * UIProcess/WebCookieManagerProxy.cpp:
4158        (WebKit::WebCookieManagerProxy::deleteCookiesForHostname):
4159        (WebKit::WebCookieManagerProxy::deleteAllCookies):
4160        (WebKit::WebCookieManagerProxy::startObservingCookieChanges):
4161        (WebKit::WebCookieManagerProxy::stopObservingCookieChanges):
4162        (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):
4163        Use sendToAllProcesses and sendToAllProcessesRelaunchingThemIfNecessary.
4164
41652011-04-04  Adam Roben  <aroben@apple.com>
4166
4167        Move a teensy bit of non-Mac-specific code up to LayerTreeHostCA
4168
4169        Fixes <http://webkit.org/b/57774> LayerTreeHostCA should know how to flip the root layer
4170
4171        Reviewed by Anders Carlsson.
4172
4173        * WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
4174        (WebKit::LayerTreeHostCA::initialize): Cross-platformized and moved some code here...
4175
4176        * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm:
4177        (WebKit::LayerTreeHostCAMac::platformInitialize): ...from here.
4178
41792011-04-01  Enrica Casucci  <enrica@apple.com>
4180
4181        Reviewed by Darin Adler.
4182
4183        WK2: Reproducible crash when dragging out of or over Safari window.
4184        https://bugs.webkit.org/show_bug.cgi?id=57654
4185        <rdar://problem/9139755>
4186
4187        AppKit does not retain the owner given to the pasteboard, therefore we
4188        need to give the ownership of the retained pointer to NSPasteboard.
4189        Also, dragImage will release the NSFilePromiseDragSource object, therefore
4190        we retain it before calling dragImage to be able to control its lifetime.
4191
4192        * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
4193        (WebKit::WebDragClient::declareAndWriteDragImage): Passing ownership
4194        of the pointer to AppKit when providing the owner pointer to the NSPasteboard
4195        object.
4196        * WebProcess/WebPage/mac/WebPageMac.mm:
4197        (WebKit::WebPage::platformDragEnded): Retaining the NSFilePromiseDragSource
4198        since dragImage will release it.
4199
42002011-03-30  Jer Noble  <jer.noble@apple.com>
4201
4202        Reviewed by Dan Bernstein.
4203
4204        WebKit2: No "open in preview" contextual menu item for PDFs
4205        https://bugs.webkit.org/show_bug.cgi?id=57527
4206
4207        Add support for opening a PDF in the associated application from the
4208        context menu.
4209
4210        * UIProcess/API/mac/PDFViewController.mm:
4211        (_applicationInfoForMIMEType): Added, copied from WebKit/WebPDFView.mm
4212        (-[WKPDFView _openWithFinder:]): Added.
4213        (-[WKPDFView hitTest:]): Added, copied from WebKit/WebPDFView.mm.
4214        (-[WKPDFView menuForEvent:]): Added, adapted from WebKit/WebPDFVie.mm.
4215        (-[WKPDFView validateUserInterfaceItem:]): Added.
4216
42172011-04-04  Chang Shu  <cshu@webkit.org>
4218
4219        Reviewed by Darin Adler.
4220
4221        WebKitTestRunner needs layoutTestController.setAllowFileAccessFromFileURLs
4222        https://bugs.webkit.org/show_bug.cgi?id=57572
4223
4224        * Shared/WebPreferencesStore.cpp:
4225        (WebKit::WebPreferencesStore::decode):
4226        (WebKit::WebPreferencesStore::overrideAllowFileAccessFromFileURLsForTestRunner):
4227        * Shared/WebPreferencesStore.h:
4228        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
4229        (WKBundleSetAllowFileAccessFromFileURLs):
4230        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
4231        * WebProcess/InjectedBundle/InjectedBundle.cpp:
4232        (WebKit::InjectedBundle::setAllowFileAccessFromFileURLs):
4233        * WebProcess/InjectedBundle/InjectedBundle.h:
4234
42352011-04-04  Brady Eidson  <beidson@apple.com>
4236
4237        Reviewed by Darin Adler.
4238
4239        https://bugs.webkit.org/show_bug.cgi?id=57683
4240        Flesh out WK2 Icon Database API
4241
4242        For now the new API will add a client interface where the WK1 version used NSNotifications.
4243
4244        If we decide we'd like the granularity of specific callback functions later,
4245        they can easily be added on.
4246
4247        Project file nonsense:
4248        * GNUmakefile.am:
4249        * WebKit2.pro:
4250        * WebKit2.xcodeproj/project.pbxproj:
4251        * win/WebKit2.vcproj:
4252
4253        Add a WKIconDatabaseClient and some new API:
4254        * UIProcess/API/C/WKIconDatabase.cpp:
4255        (WKIconDatabaseSetIconDatabaseClient):
4256        (WKIconDatabaseRemoveAllIcons):
4257        (WKIconDatabaseCheckIntegrityBeforeOpening):
4258        * UIProcess/API/C/WKIconDatabase.h:
4259        * UIProcess/API/C/cg/WKIconDatabaseCG.cpp:
4260        (WKIconDatabaseTryGetCGImageForURL): Renamed to "try" for subtle clarification.
4261        * UIProcess/API/C/cg/WKIconDatabaseCG.h:
4262
4263        Implementations for the new APIs:
4264        * UIProcess/WebIconDatabase.cpp:
4265        (WebKit::WebIconDatabase::retainIconForPageURL): Remove excessive logging.
4266        (WebKit::WebIconDatabase::releaseIconForPageURL): Ditto.
4267        (WebKit::WebIconDatabase::imageForPageURL):
4268        (WebKit::WebIconDatabase::removeAllIcons):
4269        (WebKit::WebIconDatabase::checkIntegrityBeforeOpening):
4270        (WebKit::WebIconDatabase::initializeIconDatabaseClient):
4271        (WebKit::WebIconDatabase::didImportIconURLForPageURL): Dispatch a client callback,
4272          much like the WK1 API uses notifications.
4273        (WebKit::WebIconDatabase::didImportIconDataForPageURL): Ditto.
4274        (WebKit::WebIconDatabase::didChangeIconForPageURL): Ditto.
4275        (WebKit::WebIconDatabase::didRemoveAllIcons): Ditto.
4276        * UIProcess/WebIconDatabase.h:
4277        * UIProcess/WebIconDatabaseClient.cpp: Added.
4278        (WebKit::WebIconDatabaseClient::didChangeIconForPageURL):
4279        (WebKit::WebIconDatabaseClient::didRemoveAllIcons):
4280        * UIProcess/WebIconDatabaseClient.h: Added.
4281
42822011-04-04  Carlos Garcia Campos  <cgarcia@igalia.com>
4283
4284        Reviewed by Martin Robinson.
4285
4286        [GTK] Main loop sources are leaked in RunLoopGtk
4287        https://bugs.webkit.org/show_bug.cgi?id=57618
4288
4289        * Platform/RunLoop.h:
4290        (RunLoop::TimerBase::isRepeating):
4291        * Platform/gtk/RunLoopGtk.cpp:
4292        (RunLoop::~RunLoop): Make sure main loop is currently running
4293        before calling g_main_loop_quit(), RunLoop::stop() might have been
4294        called.
4295        (RunLoop::wakeUp): Use an idle source with default priority
4296        instead of a timeout one with a 0 interval.
4297        (RunLoop::TimerBase::clearTimerSource): New method to clear the
4298        timer.
4299        (RunLoop::TimerBase::destroyNotifyCallback): Destroy notify
4300        callback called when the source is destroyed to clear the timer.
4301        (RunLoop::TimerBase::timerFiredCallback): Use the same callback for
4302        repeating and no repeating timers.
4303        (RunLoop::TimerBase::start): g_source_attach() increments the
4304        source reference counter, so use GRefPtr to make sure the source
4305        is freed.
4306        (RunLoop::TimerBase::stop): Use clearTimerSource().
4307
43082011-04-03  Dan Bernstein  <mitz@apple.com>
4309
4310        Build fix.
4311
4312        * Shared/DictionaryPopupInfo.cpp:
4313        (WebKit::DictionaryPopupInfo::encode):
4314        (WebKit::DictionaryPopupInfo::decode):
4315        * Shared/DictionaryPopupInfo.h:
4316
43172011-04-03  Dan Bernstein  <mitz@apple.com>
4318
4319        Reviewed by Maciej Stachowiak.
4320
4321        <rdar://problem/9227839> REGRESSION: Reproducible crash in Snow Leopard when trying to show the Dictionary panel or application
4322        https://bugs.webkit.org/show_bug.cgi?id=57739
4323
4324        * Shared/DictionaryPopupInfo.cpp:
4325        (WebKit::DictionaryPopupInfo::encode): Do not encode the options dictionary on Snow Leopard.
4326        (WebKit::DictionaryPopupInfo::decode): Do not decode the options dictionary on Snow Leopard.
4327        * Shared/DictionaryPopupInfo.h: Removed the options member variable on Snow Leopard.
4328        * Shared/Plugins/PluginQuirks.h:
4329        * WebProcess/WebPage/mac/WebPageMac.mm:
4330        (WebKit::WebPage::performDictionaryLookupForRange): Do not set the options member variable on
4331        Snow Leopard.
4332
43332011-04-02  Sam Weinig  <sam@webkit.org>
4334
4335        Reviewed by Beth Dakin.
4336
4337        https://bugs.webkit.org/show_bug.cgi?id=57605
4338        Frame::pageScaleFactor() should not affect getBoundingClientRect() or
4339        getClientRects()
4340        -and corresponding-
4341        <rdar://problem/9194541>
4342
4343        Add DRT support for the scaleWebView SPI.
4344        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
4345        (WKBundlePageSetScaleAtOrigin):
4346        * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
4347
43482011-04-02  Sam Weinig  <sam@webkit.org>
4349
4350        Reviewed by Oliver Hunt.
4351
4352        "Search in Spotlight" broken in WebKit2
4353        https://bugs.webkit.org/show_bug.cgi?id=57712
4354
4355        Proxy spotlight searching to the UIProcess.
4356
4357        * UIProcess/WebPageProxy.messages.in:
4358        Add new message. Re-organize messages to put all mac specific ones together.
4359
4360        * UIProcess/WebPageProxy.h:
4361        * UIProcess/mac/WebPageProxyMac.mm:
4362        (WebKit::WebPageProxy::speak):
4363        (WebKit::WebPageProxy::searchWithSpotlight):
4364        Moved code to trigger spotlight here. Use WTF::String -> NSString conversion function
4365        instead of relying on the built in conversion since it doesn't always work in the UIProcess.
4366
4367        * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
4368        (WebKit::WebContextMenuClient::searchWithSpotlight):
4369        Post message to the UIProcess to do the searching.
4370
43712011-04-02  Jeff Miller  <jeffm@apple.com>
4372
4373        Reviewed by Dan Bernstein.
4374
4375        WebKit2: Specify the certificate store in WKBundleSetClientCertificate()
4376        https://bugs.webkit.org/show_bug.cgi?id=57707
4377
4378        Include the name of the system certificate store that the client certificate came from in WKBundleSetClientCertificate().
4379
4380        The PCCERT_CONTEXT for the client certificate we create from the message from the UI process doesn't contain enough information to actually use it in a request, we need to get the real certificate from the certificate store (which is typically the "MY" store).
4381
4382        * WebProcess/InjectedBundle/API/c/win/WKBundlePrivateWin.cpp:
4383        (WKBundleSetClientCertificate): Add certificateSystemStoreName to parameters.
4384        * WebProcess/InjectedBundle/API/c/win/WKBundlePrivateWin.h: Add certificateSystemStoreName to WKBundleSetClientCertificate() parameters.
4385        * WebProcess/InjectedBundle/InjectedBundle.h: Add certificateSystemStoreName to setClientCertificate() parameters.
4386        * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp:
4387        (WebKit::InjectedBundle::setClientCertificate): Read the real certificate from the certificate store.
4388
43892011-04-02  Sam Weinig  <sam@webkit.org>
4390
4391        Reviewed by Dan Bernstein.
4392
4393        Implement WKBundleFrameHasHorizontalScrollbar/WKBundleFrameHasVerticalScrollbar
4394        <rdar://problem/9225772>
4395        https://bugs.webkit.org/show_bug.cgi?id=57709
4396
4397        * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
4398        (WKBundleFrameHasHorizontalScrollbar):
4399        (WKBundleFrameHasVerticalScrollbar):
4400        * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
4401        * WebProcess/WebPage/WebFrame.cpp:
4402        (WebKit::WebFrame::hasHorizontalScrollbar):
4403        (WebKit::WebFrame::hasVerticalScrollbar):
4404        * WebProcess/WebPage/WebFrame.h:
4405
44062011-04-01  Jon Lee  <jonlee@apple.com>
4407
4408        Reviewed by Darin Adler.
4409
4410        WebKit2: Type-to-select doesn't work in open <select> menu (53023)
4411        https://bugs.webkit.org/show_bug.cgi?id=53023
4412        <rdar://problem/8907678>
4413
4414        * UIProcess/WebPageProxy.h:
4415        * UIProcess/WebPageProxy.messages.in: adding new setPopupMenuSelectedIndex message for windows platform
4416        * UIProcess/win/WebPageProxyWin.cpp:
4417        (WebKit::WebPageProxy::setPopupMenuSelectedIndex):
4418        * UIProcess/win/WebPopupMenuProxyWin.h: moving setFocusedIndex() into public method
4419        * WebProcess/WebCoreSupport/WebPopupMenu.cpp:
4420        (WebKit::WebPopupMenu::updateFromElement): send message back to UIProcess to update the selected element
4421
44222011-04-01  Alexey Proskuryakov  <ap@apple.com>
4423
4424        Reviewed by Darin Adler.
4425
4426        REGRESSION: Assertion failure when executing a complex custom key binding
4427        https://bugs.webkit.org/show_bug.cgi?id=57681
4428
4429        Also completes a fix for
4430        <rdar://problem/9063782> WebKit2: Text fields in Safari don't honor custom key bindings
4431
4432        * UIProcess/API/mac/WKView.mm: (-[WKView hasMarkedText]): There is no need to execute saved
4433        commands when they can't possibly change the result.
4434
44352011-04-01  Brian Weinstein  <bweinstein@apple.com>
4436
4437        Reviewed by Anders Carlsson.
4438
4439        Crash when calling WebPageProxy::setMemoryCacheClientCallsEnabled with an invalid Web Process
4440        https://bugs.webkit.org/show_bug.cgi?id=57680
4441        <rdar://problem/9202909>
4442
4443        * UIProcess/WebPageProxy.cpp:
4444        (WebKit::WebPageProxy::setMemoryCacheClientCallsEnabled): Add an isValid check before sending
4445            the message.
4446
44472011-03-31  Jer Noble  <jer.noble@apple.com>
4448
4449        Reviewed by Dan Bernstein.
4450
4451        WebKit2: Save as PDF in Safari provides Untitled as default file name
4452        https://bugs.webkit.org/show_bug.cgi?id=57529
4453
4454        Set the NSPrintOperation's jobTitle to the printing frame's title.
4455
4456        * UIProcess/API/mac/WKView.mm:
4457        (-[WKView printOperationWithPrintInfo:forFrame:]):
4458
44592011-04-01  Jer Noble  <jer.noble@apple.com>
4460
4461        Reviewed by Darin Adler.
4462
4463        WebKit2: Link from PDF opens in a new tab instead of in the same tab
4464        https://bugs.webkit.org/show_bug.cgi?id=57528
4465
4466        Notify the WebProcess that a link has been clicked so that the normal policy
4467        lookup can occur.
4468
4469        * Shared/WebEvent.cpp:
4470        (WebKit::WebEvent::WebEvent): Initialize ivars in the default constructor.
4471        * Shared/WebEvent.h: Add WebEvent::NoType to Type enum.
4472        * Shared/WebMouseEvent.cpp:
4473        (WebKit::WebMouseEvent::WebMouseEvent): Ditto.
4474        * UIProcess/API/mac/PDFViewController.mm:
4475        (-[WKPDFView PDFViewWillClickOnLink:withURL:]): Handle the delegate
4476            function and override the PDFView default behavior.
4477        * UIProcess/WebPageProxy.cpp:
4478        (WebKit::WebPageProxy::didReceiveEvent): Handle the new WebEvent::NoType enum.
4479        (WebKit::WebPageProxy::linkClicked): Added.  Send event through to WebPage.
4480        * UIProcess/WebPageProxy.h:
4481        * WebProcess/WebPage/WebPage.cpp:
4482        (WebKit::WebPage::linkClicked): Added.  Call loadFrameRequest().
4483        * WebProcess/WebPage/WebPage.h:
4484        * WebProcess/WebPage/WebPage.messages.in: Added LinkClicked.
4485
44862011-04-01  Sam Weinig  <sam@webkit.org>
4487
4488        Reviewed by Adam "Keyword Slasher" Roben.
4489
4490        Remove unnecessary static keyword.
4491
4492        * UIProcess/API/cpp/WKRetainPtr.h:
4493        (WebKit::adoptWK):
4494
44952011-04-01  Sam Weinig  <sam@webkit.org>
4496
4497        Reviewed by Adam Roben.
4498
4499        Add adoptWK to WKRetainPtr.h
4500        https://bugs.webkit.org/show_bug.cgi?id=57670
4501
4502        * UIProcess/API/cpp/WKRetainPtr.h:
4503        (WebKit::adoptWK):
4504        Add shared implementation of adoptWK. Previously both WebKitTestRunner
4505        and TestWebKitAPI had separate versions of it.
4506
45072011-04-01  Anders Carlsson  <andersca@apple.com>
4508
4509        Reviewed by Sam Weinig.
4510
4511        Shockwave plug-in doesn't accept mouse events
4512        https://bugs.webkit.org/show_bug.cgi?id=57653
4513        <rdar://problem/8483273>
4514
4515        Add a missing break.
4516
4517        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
4518        (WebKit::NetscapePlugin::convertPoint):
4519
45202011-04-01  Sam Weinig  <sam@webkit.org>
4521
4522        Reviewed by Anders Carlsson.
4523
4524        WebKitTestRunner needs layoutTestController.shadowRoot
4525        https://bugs.webkit.org/show_bug.cgi?id=57661
4526
4527        * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
4528        (WKBundleNodeHandleGetRenderRect):
4529        (WKBundleNodeHandleGetElementBounds):
4530        (WKBundleNodeHandleCopyElementShadowRoot):
4531        * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
4532        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
4533        (WebKit::InjectedBundleNodeHandle::elementShadowRoot):
4534        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
4535        Add accessor for the shadowRoot of an element in the bundle.
4536
45372011-04-01  Alexey Proskuryakov  <ap@apple.com>
4538
4539        Reviewed by Darin Adler.
4540
4541        Make WebKit2 text input handling more like WebKit1
4542        https://bugs.webkit.org/show_bug.cgi?id=57649
4543
4544        We now send more sync messages from UI process to Web process for NSTextInput protocol
4545        methods. Some of the exchanges are avoided by pre-calculating the responses before asking
4546        UI process to interpret key events, and also with each sync message sent during
4547        interpretation, and which could change the state.
4548
4549        * Platform/CoreIPC/HandleMessage.h: (CoreIPC::callMemberFunction): Added a missing
4550        specialization for a function with 6 arguments and 2 returned values.
4551
4552        * Scripts/webkit2/messages.py: Added TextInputState to struct list.
4553
4554        * Shared/WebCoreArgumentCoders.h: Fixed a bug in CompositionUnderline encoding, which only
4555        encoded a part of Color field, and didn't match decoder.
4556
4557        * Shared/mac/TextInputState.h: Added. This is state that's needed for IM machinery and that
4558        we don't want to send sync messages for. This is similar to SelectionState, but the latter
4559        is only updated asynchronously, and is thus less reliable.
4560
4561        * UIProcess/API/mac/PageClientImpl.h: We don't "intercept", we "interpret".
4562
4563        * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::interpretKeyEvent): Pass
4564        current text input state, and don't expect anything input method related in return, as input
4565        methods are now sync.
4566
4567        * UIProcess/API/mac/WKView.mm:
4568        (-[WKView doCommandBySelector:]):
4569        (-[WKView insertText:]):
4570        (-[WKView keyDown:]):
4571        (-[WKView _executeSavedKeypressCommands]):
4572        (-[WKView inputContext]):
4573        (-[WKView selectedRange]):
4574        (-[WKView hasMarkedText]):
4575        (-[WKView unmarkText]):
4576        (-[WKView setMarkedText:selectedRange:]):
4577        (-[WKView markedRange]):
4578        (-[WKView attributedSubstringFromRange:]):
4579        (-[WKView characterIndexForPoint:]):
4580        (-[WKView firstRectForCharacterRange:]):
4581        (-[WKView _interpretKeyEvent:withCachedTextInputState:savingCommandsTo:WebCore::]):
4582        * UIProcess/API/mac/WKViewInternal.h:
4583        * UIProcess/PageClient.h:
4584        * UIProcess/WebPageProxy.h:
4585        * UIProcess/WebPageProxy.messages.in:
4586        * UIProcess/mac/WebPageProxyMac.mm:
4587        (WebKit::WebPageProxy::setComposition):
4588        (WebKit::WebPageProxy::confirmComposition):
4589        (WebKit::WebPageProxy::insertText):
4590        (WebKit::WebPageProxy::getSelectedRange):
4591        (WebKit::WebPageProxy::executeKeypressCommands):
4592        (WebKit::WebPageProxy::interpretQueuedKeyEvent):
4593        * WebKit2.xcodeproj/project.pbxproj:
4594        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
4595        (WebKit::WebEditorClient::handleKeyboardEvent):
4596        (WebKit::WebEditorClient::handleInputMethodKeydown):
4597        * WebProcess/WebPage/WebPage.cpp:
4598        (WebKit::WebPage::WebPage):
4599        * WebProcess/WebPage/WebPage.h:
4600        (WebKit::WebPage::viewFrameInWindowCoordinates):
4601        * WebProcess/WebPage/WebPage.messages.in:
4602        * WebProcess/WebPage/mac/WebPageMac.mm:
4603        (WebKit::createSelectorExceptionMap):
4604        (WebKit::commandNameForSelectorName):
4605        (WebKit::currentTextInputState):
4606        (WebKit::frameForEvent):
4607        (WebKit::WebPage::executeKeypressCommandsInternal):
4608        (WebKit::WebPage::handleEditingKeyboardEvent):
4609        (WebKit::WebPage::setComposition):
4610        (WebKit::WebPage::confirmComposition):
4611        (WebKit::WebPage::insertText):
4612        (WebKit::WebPage::getSelectedRange):
4613        (WebKit::convertToRange):
4614        (WebKit::WebPage::executeKeypressCommands):
4615        (WebKit::WebPage::performDefaultBehaviorForKeyEvent):
4616        Rewrote to be more like WebKit1.
4617
46182011-04-01  Chang Shu  <cshu@webkit.org>
4619
4620        Reviewed by Darin Adler.
4621
4622        WebKitTestRunner needs layoutTestController.setDatabaseQuota
4623        https://bugs.webkit.org/show_bug.cgi?id=57568
4624
4625        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
4626        (WKBundleSetDatabaseQuota):
4627        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
4628        * WebProcess/InjectedBundle/InjectedBundle.cpp:
4629        (WebKit::InjectedBundle::setDatabaseQuota):
4630        * WebProcess/InjectedBundle/InjectedBundle.h:
4631        * WebProcess/WebCoreSupport/WebDatabaseManager.h:
4632
46332011-04-01  Timothy Hatcher  <timothy@apple.com>
4634
4635        Make momentum scroll event latching work in WebKit2 on Mac.
4636
4637        <rdar://problem/8751861>
4638
4639        Reviewed by Darin Adler.
4640
4641        * Shared/mac/WebEventFactory.mm:
4642        (WebKit::momentumPhaseForEvent): Return a phase on older Mac system by using WKGetNSEventMomentumPhase.
4643        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
4644        (InitWebCoreSystemInterface): Remove IsLatchingWheelEvent, add GetNSEventMomentumPhase.
4645
46462011-04-01  Alexey Proskuryakov  <ap@apple.com>
4647
4648        Reviewed by Anders Carlsson.
4649
4650        Assertion failure (type == event.type()) after a web process crash
4651        https://bugs.webkit.org/show_bug.cgi?id=56228
4652        <rdar://problem/8806106>
4653
4654        This partially un-confuses the UI process about key processing state after a web process
4655        crash. It may not be pefect yet - sending a KeyUp to a new process that never saw a KeyDown
4656        seems weird.
4657
4658        * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::processDidCrash):
4659
46602011-04-01  Adam Roben  <aroben@apple.com>
4661
4662        Cairo build fix
4663
4664        * WebProcess/WebPage/LayerTreeHost.cpp: Only pull in the LayerTreeHostCA derived classes for
4665        PLATFORM(CA) ports.
4666
46672011-03-31  Adam Roben  <aroben@apple.com>
4668
4669        Split LayerTreeHostCA into a base class and derived Mac and Win classes
4670
4671        This will make it easier to customize the Mac and Windows implementations without adding too
4672        many #ifdefs.
4673
4674        Fixes <http://webkit.org/b/57606> Windows and Mac should use separate LayerTreeHost classes
4675
4676        Reviewed by Anders Carlsson.
4677
4678        * WebKit2.xcodeproj/project.pbxproj: Added LayerTreeHostCAMac.h.
4679
4680        * WebProcess/WebPage/LayerTreeHost.cpp:
4681        (WebKit::LayerTreeHost::create): Create a LayerTreeHostCAMac on Mac, and LayerTreeHostCAWin
4682        on Windows.
4683
4684        * WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
4685        (WebKit::LayerTreeHostCA::LayerTreeHostCA): Moved some code from here...
4686        (WebKit::LayerTreeHostCA::initialize): ...to here. This function will be called after the
4687        constructor returns, and thus can safely call functions that are pure virtual in this class
4688        and its base class. We now pass our LayerTreeContext to platformInitialize so that our
4689        derived classes can initialize it.
4690        (WebKit::LayerTreeHostCA::~LayerTreeHostCA): Removed Mac-specific code.
4691
4692        (WebKit::LayerTreeHostCA::invalidate):
4693        (WebKit::LayerTreeHostCA::sizeDidChange):
4694        (WebKit::LayerTreeHostCA::forceRepaint):
4695        (WebKit::LayerTreeHostCA::didPerformScheduledLayerFlush):
4696        Removed platform* calls. Derived classes can just override these functions to do what they
4697        need.
4698
4699        * WebProcess/WebPage/ca/LayerTreeHostCA.h: Removed Mac-specific pieces. Made some functions
4700        virtual so that derived classes can override them.
4701
4702        * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.h: Added.
4703
4704        * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm:
4705        (WebKit::LayerTreeHostCAMac::create): Create and initialize a host.
4706        (WebKit::LayerTreeHostCAMac::LayerTreeHostCAMac): Simple constructor.
4707        (WebKit::LayerTreeHostCAMac::~LayerTreeHostCAMac): Moved code here from LayerTreeHostCA
4708        destructor.
4709        (WebKit::LayerTreeHostCAMac::platformInitialize): Removed direct uses of LayerTreeHostCA
4710        data members.
4711
4712        (WebKit::LayerTreeHostCAMac::invalidate):
4713        (WebKit::LayerTreeHostCAMac::sizeDidChange):
4714        (WebKit::LayerTreeHostCAMac::forceRepaint):
4715        (WebKit::LayerTreeHostCAMac::didPerformScheduledLayerFlush):
4716        Renamed from platform*. Now call up to the base class.
4717
4718        (WebKit::LayerTreeHostCAMac::flushPendingLayerChangesRunLoopObserverCallback): Updated type.
4719
4720        * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.cpp:
4721        (WebKit::LayerTreeHostCAWin::create): Create and initialize a host.
4722
4723        (WebKit::LayerTreeHostCAWin::LayerTreeHostCAWin):
4724        (WebKit::LayerTreeHostCAWin::~LayerTreeHostCAWin):
4725        (WebKit::LayerTreeHostCAWin::platformInitialize):
4726        (WebKit::LayerTreeHostCAWin::scheduleLayerFlush):
4727        Stubbed out.
4728
4729        * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.h: Added.
4730
4731        * win/WebKit2.vcproj: Added LayerTreeHostCAWin.h
4732
4733        * win/WebKit2Apple.vsprops: Added WebProcess/WebPage/ca/win to the include path.
4734
47352011-03-31  Brent Fulgham  <bfulgham@webkit.org>
4736
4737        Unreviewed WinCairo build fix after r82632.
4738
4739        * UIProcess/DrawingAreaProxyImpl.cpp:
4740        (WebKit::DrawingAreaProxyImpl::visibilityDidChange):
4741
47422011-03-31  Adam Roben  <aroben@apple.com>
4743
4744        Add SharedMemory::adopt, which can take ownership of an existing file mapping object
4745
4746        Fixes <http://webkit.org/b/57599> Need a way to wrap an existing file mapping object in a
4747        SharedMemory
4748
4749        Reviewed by Anders Carlsson.
4750
4751        * Platform/SharedMemory.h: Added adopt.
4752
4753        * Platform/win/SharedMemoryWin.cpp:
4754        (WebKit::SharedMemory::create): Moved code to adopt the HANDLE from here...
4755        (WebKit::SharedMemory::adopt): ...to here.
4756
47572011-03-31  Chang Shu  <cshu@webkit.org>
4758
4759        Reviewed by Darin Adler.
4760
4761        WebKitTestRunner needs layoutTestController.clearAllDatabases
4762        https://bugs.webkit.org/show_bug.cgi?id=42540
4763
4764        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
4765        (WKBundleClearAllDatabases):
4766        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
4767        * WebProcess/InjectedBundle/InjectedBundle.cpp:
4768        (WebKit::InjectedBundle::clearAllDatabases):
4769        * WebProcess/InjectedBundle/InjectedBundle.h:
4770        * WebProcess/WebCoreSupport/WebDatabaseManager.h:
4771
47722011-03-31  Anders Carlsson  <andersca@apple.com>
4773
4774        Reviewed by Sam Weinig.
4775
4776        Add some more media related things to the sandbox profile.
4777
4778        * WebProcess/com.apple.WebProcess.sb:
4779
47802011-03-31  Anders Carlsson  <andersca@apple.com>
4781
4782        Reviewed by Dan Bernstein.
4783
4784        Tabbed pages redraw unnecessarily when activated
4785        https://bugs.webkit.org/show_bug.cgi?id=57589
4786        <rdar://problem/9218258>
4787
4788        * UIProcess/DrawingAreaProxyImpl.cpp:
4789        (WebKit::DrawingAreaProxyImpl::visibilityDidChange):
4790        If we become visible and have no backing store, make sure to call backingStoreStateDidChange
4791        so that the next time we're asked to paint we'll wait for something to paint.
4792
4793        (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
4794        Remove now redundant call to backingStoreStateDidChange.
4795
47962011-03-31  Sam Weinig  <sam@webkit.org>
4797
4798        Reviewed by Anders Carlsson.
4799
4800        Sandbox violations when playing back HTML5 video on YouTube
4801        <rdar://problem/8950692>
4802
4803        * WebProcess/com.apple.WebProcess.sb:
4804
48052011-03-31  Darin Adler  <darin@apple.com>
4806
4807        Reviewed by Sam Weinig.
4808
4809        Implement mouseDown, mouseUp, and mouseMoveTo in WebKitTestRunner
4810        https://bugs.webkit.org/show_bug.cgi?id=57573
4811
4812        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
4813        (WKBundlePageSimulateMouseDown): Added.
4814        (WKBundlePageSimulateMouseUp): Added.
4815        (WKBundlePageSimulateMouseMotion): Added.
4816        * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: Added above functions.
4817        * WebProcess/WebPage/WebPage.cpp:
4818        (WebKit::WebPage::simulateMouseDown): Added.
4819        (WebKit::WebPage::simulateMouseUp): Added.
4820        (WebKit::WebPage::simulateMouseMotion): Added.
4821        * WebProcess/WebPage/WebPage.h: Added above functions.
4822
48232011-03-31  Sam Weinig  <sam@webkit.org>
4824
4825        Reviewed by Anders Carlsson.
4826
4827        Rename WebCore's UI_STRING to WEB_UI_STRING to not overlap with WebKit API
4828        https://bugs.webkit.org/show_bug.cgi?id=57582
4829
4830        * PluginProcess/mac/PluginProcessMac.mm:
4831        (WebKit::PluginProcess::platformInitialize):
4832        * UIProcess/mac/WebInspectorProxyMac.mm:
4833        (WebKit::WebInspectorProxy::platformInspectedURLChanged):
4834        * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
4835        * WebProcess/mac/WebProcessMac.mm:
4836        (WebKit::WebProcess::platformInitializeWebProcess):
4837
48382011-03-31  Adam Roben  <aroben@apple.com>
4839
4840        Specify both FILE_MAP_READ and FILE_MAP_WRITE when creating a read-write SharedMemory object
4841
4842        When passed to ::MapViewOfFile, FILE_MAP_WRITE implies FILE_MAP_READ, but other file mapping
4843        APIs don't work that way. This bug wasn't causing any problems in practice, but it would
4844        have prevented us from creating a DIB that wraps a SharedMemory object (which I noticed
4845        while working on another bug).
4846
4847        Fixes <http://webkit.org/b/57576> File mappings used by read-write SharedMemory objects
4848        aren't correctly marked as read-write after being sent over a CoreIPC::Connection
4849
4850        Reviewed by Brian Weinstein.
4851
4852        * Platform/win/SharedMemoryWin.cpp:
4853        (WebKit::accessRights): Specify FILE_MAP_READ in addition to FILE_MAP_WRITE for read-write
4854        SharedMemory.
4855
48562011-03-31  Adam Roben  <aroben@apple.com>
4857
4858        Quote the executable path we pass to ::CreateProcessW
4859
4860        This will ensure that spaces in the path will be interpreted correctly.
4861
4862        Fixes <http://webkit.org/b/57569> Web process sometimes fails to launch when there are
4863        spaces in its path
4864
4865        Reviewed by Steve Falkenburg.
4866
4867        * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
4868        (WebKit::ProcessLauncher::launchProcess): Surround the executable path in quotes.
4869
48702011-03-31  Alexey Proskuryakov  <ap@apple.com>
4871
4872        Patch by John Harvey, reviewed and tweaked by me.
4873
4874        <rdar://problem/8644403> Should notify TSM that plug-ins would show a bottom input window for marked text.
4875
4876        * UIProcess/API/mac/WKTextInputWindowController.mm:
4877        (-[WKTextInputPanel _interpretKeyEvent:string:]):
4878
48792011-03-31  Anders Carlsson  <andersca@apple.com>
4880
4881        Reviewed by John Sullivan, Darin Adler, Dan Bernstein and Sam Weinig.
4882
4883        If a user doesn't have a Database/LocalStorage directory, it can't be created (sandbox violations)
4884        https://bugs.webkit.org/show_bug.cgi?id=57561
4885        <rdar://problem/9127411>
4886
4887        Ensure that any readwrite sandbox directories actually exist before entering the sandbox.
4888
4889        * WebProcess/mac/WebProcessMac.mm:
4890        (WebKit::appendReadwriteSandboxDirectory):
4891
48922011-03-31  John Sullivan  <sullivan@apple.com>
4893
4894        Reviewed by Darin Adler and Adam Roben.
4895
4896        <rdar://problem/9214824> Find client not told when WKPageCountStringMatches exceeds maximum
4897        https://bugs.webkit.org/show_bug.cgi?id=57552
4898
4899        * WebProcess/WebPage/FindController.cpp:
4900        (WebKit::FindController::countStringMatches):
4901        Use the same technique as findString() to report kWKMoreThanMaximumMatchCount when appropriate.
4902        (WebKit::FindController::findString):
4903        Convert numeric_limits::max() to max() - 1 to avoid overflow case.
4904
49052011-03-31  Evan Martin  <evan@chromium.org>
4906
4907        Reviewed by Eric Seidel.
4908
4909        <title> should support dir attribute
4910        https://bugs.webkit.org/show_bug.cgi?id=50961
4911
4912        Update to new FrameLoaderClient interface.
4913
4914        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
4915        (WebKit::WebFrameLoaderClient::dispatchDidReceiveTitle):
4916        (WebKit::WebFrameLoaderClient::setTitle):
4917        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
4918
49192011-03-31  Balazs Kelemen  <kbalazs@webkit.org>
4920
4921        Reviewed by Csaba Osztrogonác.
4922
4923        [WK2] Introduce an option for no NPAPI support
4924        https://bugs.webkit.org/show_bug.cgi?id=55828
4925
4926        Stub out NPAPI support for platform and OS combinations that are
4927        not supported yet. Ancestor patch was made by Laszlo Gombos.
4928
4929        * GNUmakefile.am: Add NetscapePluginModuleNone.cpp and NetscapePluginNone.cpp
4930        to the build system.
4931
4932        * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
4933        Remove the sanity check because from now all combinations that
4934        don't have an explicitly set plugin architecture fall into
4935        the PLUGIN_ARCHITECTURE(UNSUPPORTED) category and has a stubbed
4936        implementation.
4937
4938        * Shared/Plugins/Netscape/NetscapePluginModuleNone.cpp: Added.
4939        Stubbed implementation.
4940        (WebKit::NetscapePluginModule::getPluginInfo):
4941        (WebKit::NetscapePluginModule::determineQuirks):
4942
4943        * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp: Guard with
4944        PLUGIN_ARCHITECTURE(X11).
4945
4946        * WebKit2.pro: Add NetscapePluginModuleNone.cpp and NetscapePluginNone.cpp
4947        to the build system.
4948
4949        * WebProcess/Plugins/Netscape/NetscapePluginNone.cpp: Added.
4950        Stubbed implementation
4951        (WebKit::NetscapePlugin::platformPostInitialize):
4952        (WebKit::NetscapePlugin::platformDestroy):
4953        (WebKit::NetscapePlugin::platformInvalidate):
4954        (WebKit::NetscapePlugin::platformGeometryDidChange):
4955        (WebKit::NetscapePlugin::platformPaint):
4956        (WebKit::NetscapePlugin::platformHandleMouseEvent):
4957        (WebKit::NetscapePlugin::platformHandleWheelEvent):
4958        (WebKit::NetscapePlugin::platformSetFocus):
4959        (WebKit::NetscapePlugin::platformHandleMouseEnterEvent):
4960        (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent):
4961        (WebKit::NetscapePlugin::platformHandleKeyboardEvent):
4962
4963        * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: Guard with
4964        PLUGIN_ARCHITECTURE(X11)
4965
4966        * config.h: Introduce PLUGIN_ARCHITECTURE(UNSUPPORTED) as another
4967        option. Make platform and OS combinations that are not supported
4968        yet fall into this. Don't use Q_WS_X11 to test the window system
4969        for Qt because it is not defined without including <QtGlobal>.
4970        No clue about how could it work so far.
4971
49722011-03-31  Vamshikrishna.Yellenki  <vamshi@motorola.com> and Alejandro G. Castro  <alex@igalia.com>
4973
4974        Reviewed by Martin Robinson.
4975
4976        Implement MiniBrowser for Gtk port.
4977        https://bugs.webkit.org/show_bug.cgi?id=48512
4978
4979        * Shared/API/c/gtk/WKBaseGtk.h: Add the stdbool.h include.
4980
49812011-03-30  Dan Bernstein  <mitz@apple.com>
4982
4983        Reviewed by Maciej Stachowiak.
4984
4985        <rdar://problem/9005982> Flash of white when a WKView with composited content moves on-screen
4986        https://bugs.webkit.org/show_bug.cgi?id=57522
4987
4988        * UIProcess/DrawingAreaProxyImpl.cpp:
4989        (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode): Invalidate the current
4990        backing store state, so that we get an update as soon as the page enters compositing mode
4991        next.
4992        * WebProcess/WebPage/DrawingAreaImpl.cpp:
4993        (WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState): Added a call to
4994        LayerTreeHost::forceRepaint() in order to flush and synchronize the layers
4995        before sending the update message to the UI process.
4996
49972011-03-30  Sam Weinig  <sam@webkit.org>
4998
4999        Reviewed by Anders Carlsson.
5000
5001        Sandbox violations if you navigate a file URL via something other than a click
5002        <rdar://problem/9016086>
5003        https://bugs.webkit.org/show_bug.cgi?id=57519
5004
5005        * WebProcess/WebPage/WebPage.cpp:
5006        (WebKit::shouldReuseCommittedSandboxExtension):
5007        Remove unnecessary restriction on extension reuse. Any type of file to file navigation
5008        should be allowed.
5009
50102011-03-30  Anders Carlsson  <andersca@apple.com>
5011
5012        Reviewed by Sam Weinig.
5013
5014        Clean up the sandbox parameter code
5015        https://bugs.webkit.org/show_bug.cgi?id=57518
5016
5017        * Shared/WebProcessCreationParameters.h:
5018        Make nsURLCachePath and uiProcessBundleResourcePath Strings to match the other paths we send over.
5019
5020        * UIProcess/mac/WebContextMac.mm:
5021        (WebKit::WebContext::platformInitializeWebProcess):
5022        nsURLCachePath and uiProcessBundleResourcePath are now Strings.
5023
5024        * WebProcess/mac/WebProcessMac.mm:
5025        (WebKit::appendSandboxParameterPathInternal):
5026        (WebKit::appendReadwriteConfDirectory):
5027        (WebKit::appendReadonlySandboxDirectory):
5028        (WebKit::appendReadwriteSandboxDirectory):
5029        (WebKit::initializeSandbox):
5030        Make it more clear whether the directories we're adding are readonly or readwrite. No functionality change.
5031
5032        (WebKit::WebProcess::platformInitializeWebProcess):
5033        nsURLCachePath is now a string.
5034
50352011-03-30  Anders Carlsson  <andersca@apple.com>
5036
5037        Reviewed by Sam Weinig.
5038
5039        Downloading a file fails due to a sandbox violation if the destination path is a symlink
5040        https://bugs.webkit.org/show_bug.cgi?id=57517
5041        <rdar://problem/8943865>
5042
5043        Make sure to resolve any symlinks in the given path when creating a sandbox extension handle.
5044        Note that we can't use realpath or -[NSString stringByResolvingSymlinksInPath], because those calls
5045        will fail if the pointed to file doesn't exist.
5046
5047        * Shared/mac/SandboxExtensionMac.mm:
5048        (WebKit::resolveSymlinksInPath):
5049        New function that resolves all the symlinks in the given path.
5050
5051        (WebKit::SandboxExtension::createHandle):
5052        Call resolveSymlinksInPath on the resulting path.
5053
50542011-03-30  Steve Falkenburg  <sfalken@apple.com>
5055
5056        Reviewed by Adam Roben.
5057
5058        Share most vsprops between Release and Production builds in releaseproduction.vsprops
5059        https://bugs.webkit.org/show_bug.cgi?id=57508
5060
5061        * win/WebKit2Production.vsprops:
5062        * win/WebKit2Release.vsprops:
5063        * win/WebKit2ReleaseCairoCFLite.vsprops:
5064        * win/WebKit2WebProcessProduction.vsprops:
5065        * win/WebKit2WebProcessRelease.vsprops:
5066        * win/WebKit2WebProcessReleaseCairoCFLite.vsprops:
5067
50682011-03-30  Ivan Krstić  <ike@apple.com>
5069
5070        Reviewed by Oliver Hunt.
5071
5072        Ensure consistent, readable working directory for WebProcess before entering sandbox
5073        <rdar://problem/8951176>
5074
5075        * WebProcess/mac/WebProcessMac.mm:
5076        (WebKit::WebProcess::platformInitializeWebProcess):
5077
50782011-03-30  Sam Weinig  <sam@webkit.org>
5079
5080        Reviewed by Brady Eidson.
5081
5082        WebKit2: Attempting to view css file from url causes it to download
5083        <rdar://problem/9102611>
5084        https://bugs.webkit.org/show_bug.cgi?id=57501
5085
5086        * UIProcess/WebPageProxy.cpp:
5087        (WebKit::WebPageProxy::canShowMIMEType):
5088        Match WebKit1 by allowing any MIME type that starts with "text/"
5089        except the ones we explicitly blacklist.
5090
50912011-03-30  Steve Falkenburg  <sfalken@apple.com>
5092
5093        Reviewed by Adam Roben.
5094
5095        Update Windows production build logic for new production configurations
5096        https://bugs.webkit.org/show_bug.cgi?id=57494
5097
5098        * win/WebKit2.make:
5099        * win/WebKit2Production.vsprops:
5100        * win/WebKit2WebProcessProduction.vsprops:
5101
51022011-03-30  Steve Falkenburg  <sfalken@apple.com>
5103
5104        Reviewed by Adam Roben.
5105
5106        Rename Windows configuration Release_LTCG to Production for clarity
5107        https://bugs.webkit.org/show_bug.cgi?id=57465
5108
5109        * win/WebKit2.submit.sln:
5110        * win/WebKit2.vcproj:
5111        * win/WebKit2Generated.vcproj:
5112        * win/WebKit2Production.vsprops: Copied from Source/WebKit2/win/WebKit2ReleaseLTCG.vsprops.
5113        * win/WebKit2ReleaseLTCG.vsprops: Removed.
5114        * win/WebKit2WebProcess.vcproj:
5115        * win/WebKit2WebProcessProduction.vsprops: Copied from Source/WebKit2/win/WebKit2WebProcessReleaseLTCG.vsprops.
5116        * win/WebKit2WebProcessReleaseLTCG.vsprops: Removed.
5117
51182011-03-30  Jer Noble  <jer.noble@apple.com>
5119
5120        Reviewed by Dan Bernstein.
5121
5122        WebKit2: WebProcess is using 89%, while viewing a PDF
5123        https://bugs.webkit.org/show_bug.cgi?id=57471
5124
5125        Break a never ending display/update cycle between the UIProcess and the WebProcess
5126        by clearing the dirty region when a page has a custom representation (like a PDF).
5127        Also, avoid the issue where possible by not setting the dirty region in the same case.
5128
5129        * WebProcess/WebPage/DrawingAreaImpl.cpp:
5130        (WebKit::DrawingAreaImpl::setNeedsDisplay): Bail early if mainFrameHasCustomRepresentation().
5131        (WebKit::DrawingAreaImpl::scroll): Ditto.
5132        (WebKit::DrawingAreaImpl::display): Both bail early and clear m_dirtyRegion if
5133            mainFrameHasCustomRepresentation().
5134
51352011-03-30  Sam Weinig  <sam@webkit.org>
5136
5137        Fix Snow Leopard build.
5138
5139        * UIProcess/mac/WebContextMenuProxyMac.mm:
5140        (WebKit::WebContextMenuProxyMac::showContextMenu):
5141
51422011-03-30  Sam Weinig  <sam@webkit.org>
5143
5144        Reviewed by Anders Carlsson.
5145
5146        WebKit2 contextual menu looks different than the rest of the OS
5147        <rdar://problem/9172935>
5148        https://bugs.webkit.org/show_bug.cgi?id=57475
5149
5150        * UIProcess/mac/WebContextMenuProxyMac.mm:
5151        (WebKit::WebContextMenuProxyMac::showContextMenu):
5152        Use correct SPI for showing a context menu. The dummy view is also
5153        not necessary, so remove it.
5154
51552011-03-30  Anders Carlsson  <andersca@apple.com>
5156
5157        Reviewed by Sam Weinig.
5158
5159        Crash when NPN_Evaluate removes the plug-in frame
5160        https://bugs.webkit.org/show_bug.cgi?id=57474
5161        <rdar://problem/9191396>
5162
5163        Get a reference to the frame since it can be nulled out if running the JavaScript code
5164        causes the plug-in's containing frame to be removed from the frame tree.
5165
5166        * WebProcess/Plugins/PluginView.cpp:
5167        (WebKit::PluginView::evaluate):
5168
51692011-03-30  Sam Weinig  <sam@webkit.org>
5170
5171        Reviewed by Anders Carlsson.
5172
5173        Add default localization strategy that can be shared by WebKit1 and WebKit2
5174        https://bugs.webkit.org/show_bug.cgi?id=57406
5175
5176        * Shared/WebLocalizableStrings.h: Removed.
5177        Removed in favor of using WebCore/LocalizedStrings.h directly.
5178
5179        * PluginProcess/mac/PluginProcessMac.mm:
5180        * UIProcess/API/mac/WKView.mm:
5181        * UIProcess/mac/WebInspectorProxyMac.mm:
5182        * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
5183        * WebProcess/mac/WebProcessMac.mm:
5184        Use WebCore/LocalizedStrings.h directly.
5185
5186        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
5187        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
5188        Remove localization strategy override in favor of using new default implementation.
5189
5190        * GNUmakefile.am:
5191        * WebKit2.pro:
5192        * WebKit2.xcodeproj/project.pbxproj:
5193        * win/WebKit2.vcproj:
5194        Remove WebLocalizableStrings.h
5195
51962011-03-30  Anders Carlsson  <andersca@apple.com>
5197
5198        Reviewed by Adam Roben.
5199
5200        Assertion failure in plug-in process when calling WKPluginSiteDataManagerGetSitesWithData
5201        https://bugs.webkit.org/show_bug.cgi?id=57468
5202        <rdar://problem/9199089>
5203
5204        Call decrementLoadCount from removeWebProcessConnection instead of startShutdownTimerIfNecessary,
5205        otherwise we'll get a load count underflow when a connection is never created.
5206
5207        * PluginProcess/PluginProcess.cpp:
5208        (WebKit::PluginProcess::removeWebProcessConnection):
5209        (WebKit::PluginProcess::createWebProcessConnection):
5210        (WebKit::PluginProcess::startShutdownTimerIfNecessary):
5211
52122011-03-30  Jessie Berlin  <jberlin@apple.com>
5213
5214        Reviewed by Anders Carlsson.
5215
5216        WebKit2: Make sure to try to terminate the Web Process when any work that might require the
5217        Web Process to be relaunched is done
5218        https://bugs.webkit.org/show_bug.cgi?id=57462
5219
5220        For the ManagerProxies in the UIProcess, only return true from shouldTerminate if there are
5221        no more callbacks waiting to be invoked.
5222
5223        For the the Managers in the WebProcess, call WebProcess::shared().terminateIfPossible() when
5224        any work called for by a ManagerProxy function that called relaunchProcessIfNecessary is
5225        finished.
5226
5227        * UIProcess/WebContext.cpp:
5228        (WebKit::WebContext::shouldTerminate):
5229        Check with each of the ManagerProxies.
5230
5231        * UIProcess/WebApplicationCacheManagerProxy.cpp:
5232        (WebKit::WebApplicationCacheManagerProxy::shouldTerminate):
5233        * UIProcess/WebApplicationCacheManagerProxy.h:
5234        * UIProcess/WebCookieManagerProxy.cpp:
5235        (WebKit::WebCookieManagerProxy::shouldTerminate):
5236        * UIProcess/WebCookieManagerProxy.h:
5237        * UIProcess/WebDatabaseManagerProxy.cpp:
5238        (WebKit::WebDatabaseManagerProxy::shouldTerminate):
5239        * UIProcess/WebDatabaseManagerProxy.h:
5240        * UIProcess/WebKeyValueStorageManagerProxy.cpp:
5241        (WebKit::WebKeyValueStorageManagerProxy::shouldTerminate):
5242        * UIProcess/WebKeyValueStorageManagerProxy.h:
5243        * UIProcess/WebMediaCacheManagerProxy.cpp:
5244        (WebKit::WebMediaCacheManagerProxy::shouldTerminate):
5245        * UIProcess/WebMediaCacheManagerProxy.h:
5246        * UIProcess/WebResourceCacheManagerProxy.cpp:
5247        (WebKit::WebResourceCacheManagerProxy::shouldTerminate):
5248        * UIProcess/WebResourceCacheManagerProxy.h:
5249
5250        * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp:
5251        (WebKit::WebApplicationCacheManager::getApplicationCacheOrigins):
5252        (WebKit::WebApplicationCacheManager::deleteEntriesForOrigin):
5253        (WebKit::WebApplicationCacheManager::deleteAllEntries):
5254        * WebProcess/Cookies/WebCookieManager.cpp:
5255        (WebKit::WebCookieManager::getHostnamesWithCookies):
5256        (WebKit::WebCookieManager::deleteCookiesForHostname):
5257        (WebKit::WebCookieManager::deleteAllCookies):
5258        (WebKit::WebCookieManager::startObservingCookieChanges):
5259        (WebKit::WebCookieManager::setHTTPCookieAcceptPolicy):
5260        (WebKit::WebCookieManager::getHTTPCookieAcceptPolicy):
5261        * WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:
5262        (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
5263        (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
5264        (WebKit::WebKeyValueStorageManager::deleteAllEntries):
5265        * WebProcess/MediaCache/WebMediaCacheManager.cpp:
5266        (WebKit::WebMediaCacheManager::getHostnamesWithMediaCache):
5267        (WebKit::WebMediaCacheManager::clearCacheForHostname):
5268        (WebKit::WebMediaCacheManager::clearCacheForAllHostnames):
5269        * WebProcess/ResourceCache/WebResourceCacheManager.cpp:
5270        (WebKit::WebResourceCacheManager::getCacheOrigins):
5271        (WebKit::WebResourceCacheManager::clearCacheForOrigin):
5272        (WebKit::WebResourceCacheManager::clearCacheForAllOrigins):
5273        * WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
5274        (WebKit::WebDatabaseManager::getDatabasesByOrigin):
5275        (WebKit::WebDatabaseManager::getDatabaseOrigins):
5276        (WebKit::WebDatabaseManager::deleteDatabaseWithNameForOrigin):
5277        (WebKit::WebDatabaseManager::deleteDatabasesForOrigin):
5278        (WebKit::WebDatabaseManager::deleteAllDatabases):
5279        (WebKit::WebDatabaseManager::setQuotaForOrigin):
5280
52812011-03-30  Adam Roben  <aroben@apple.com>
5282
5283        Mac build fix after r82442
5284
5285        * WebProcess/Plugins/PluginProxy.cpp:
5286        (WebKit::PluginProxy::geometryDidChange): Added a missing argument.
5287
52882011-03-29  Adam Roben  <aroben@apple.com>
5289
5290        Add a way to specify that a ShareableBitmap has no alpha channel
5291
5292        Before this patch, all ShareableBitmaps had an alpha channel. With this patch, all
5293        ShareableBitmaps *still* have an alpha channel. But now there's a way to specify you don't
5294        want one (which will be used in the future)!
5295
5296        Fixes <http://webkit.org/b/57388> Need a way to specify that a ShareableBitmap has no alpha
5297        channel
5298
5299        Reviewed by Anders Carlsson.
5300
5301        * Shared/ShareableBitmap.cpp:
5302        (WebKit::ShareableBitmap::Handle::Handle): Moved here from the header file, and added
5303        initialization of m_flags.
5304
5305        (WebKit::ShareableBitmap::Handle::encode):
5306        (WebKit::ShareableBitmap::Handle::decode):
5307        Encode/decode m_flags.
5308
5309        (WebKit::ShareableBitmap::create):
5310        (WebKit::ShareableBitmap::createShareable):
5311        Pass along the new Flags argument.
5312
5313        (WebKit::ShareableBitmap::createHandle): Store our Flags on the Handle.
5314        (WebKit::ShareableBitmap::ShareableBitmap): Store the Flags in m_flags.
5315
5316        * Shared/ShareableBitmap.h: Added Flag, Flags, and m_flags, and added a Flags argument to
5317        some create functions.
5318
5319        * Shared/WebCoreArgumentCoders.cpp:
5320        (CoreIPC::encodeImage):
5321        * Shared/WebImage.cpp:
5322        (WebKit::WebImage::create):
5323        Specify that we want a bitmap that supports alpha to maintain current behavior.
5324
5325        * Shared/cg/ShareableBitmapCG.cpp:
5326        (WebKit::bitmapInfo): New helper function. Includes an alpha channel only if specified in
5327        the flags.
5328
5329        (WebKit::ShareableBitmap::createGraphicsContext):
5330        (WebKit::ShareableBitmap::makeCGImage):
5331        Use the new helper function.
5332
5333        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
5334        (WebKit::NetscapePlugin::snapshot):
5335        * WebProcess/Plugins/PluginProxy.cpp:
5336        (WebKit::PluginProxy::geometryDidChange):
5337        * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
5338        (WebKit::convertImageToBitmap):
5339        * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
5340        (WebKit::WebPopupMenu::setUpPlatformData):
5341        * WebProcess/WebPage/DrawingAreaImpl.cpp:
5342        (WebKit::DrawingAreaImpl::display):
5343        * WebProcess/WebPage/FindController.cpp:
5344        (WebKit::FindController::updateFindIndicator):
5345        Specify that we want a bitmap that supports alpha to maintain current behavior.
5346
53472011-03-29  Adam Roben  <aroben@apple.com>
5348
5349        Add ShareableBitmap::Handle
5350
5351        This object is used for encoding/decoding a ShareableBitmap via CoreIPC. It currently just
5352        encapsulates a SharedMemory::Handle (which is what we were using previously) and the image's
5353        size (which means callers no longer need to deal with the size explicitly), but in the
5354        future could be used to store more information about the bitmap.
5355
5356        This should cause no behavior changes.
5357
5358        Fixes <http://webkit.org/b/57397> ShareableBitmap needs its own Handle type
5359
5360        Reviewed by Anders Carlsson.
5361
5362        * PluginProcess/PluginControllerProxy.cpp:
5363        (WebKit::PluginControllerProxy::geometryDidChange): No longer need to pass a size to create,
5364        since the Handle records the size.
5365        (WebKit::PluginControllerProxy::snapshot): No longer need the bufferSize argument, since the
5366        Handle records the size.
5367
5368        * PluginProcess/PluginControllerProxy.h:
5369        * PluginProcess/PluginControllerProxy.messages.in:
5370        Updated Handle types and removed unnecessary size argument to Snapshot.
5371
5372        * Shared/PlatformPopupMenuData.cpp:
5373        (WebKit::PlatformPopupMenuData::encode):
5374        (WebKit::PlatformPopupMenuData::decode):
5375        * Shared/PlatformPopupMenuData.h:
5376        Changed to use ShareableBitmap::Handle and removed m_backingStoreSize, which is now stored
5377        in the Handles.
5378
5379        * Shared/ShareableBitmap.cpp:
5380        (WebKit::ShareableBitmap::Handle::encode):
5381        (WebKit::ShareableBitmap::Handle::decode):
5382        Simple encode/decode functions.
5383
5384        (WebKit::ShareableBitmap::create): Get the size from the Handle instead of as a separate
5385        argument.
5386        (WebKit::ShareableBitmap::createHandle): Store our size in the Handle.
5387
5388        * Shared/ShareableBitmap.h: Added ShareableBitmap::Handle and made some functions use it.
5389
5390        * Shared/UpdateInfo.h: Changed to use ShareableBitmap::Handle.
5391
5392        * Shared/UserMessageCoders.h:
5393        (WebKit::UserMessageEncoder::baseEncode):
5394        (WebKit::UserMessageDecoder::baseDecode):
5395        * Shared/WebCoreArgumentCoders.cpp:
5396        (CoreIPC::encodeImage):
5397        (CoreIPC::decodeImage):
5398        Use the size stored in the Handle instead of encoding/decoding one separately.
5399
5400        * UIProcess/API/mac/PageClientImpl.h:
5401        * UIProcess/API/mac/PageClientImpl.mm:
5402        (WebKit::PageClientImpl::setDragImage):
5403        Removed the unnecessary imageSize argument. We can get it from the image itself.
5404
5405        * UIProcess/BackingStore.cpp:
5406        (WebKit::BackingStore::incorporateUpdate):
5407        * UIProcess/FindIndicator.cpp:
5408        (WebKit::FindIndicator::create):
5409        No longer need to pass a size when creating a ShareableBitmap from a Handle.
5410
5411        * UIProcess/FindIndicator.h: Changed to use ShareableBitmap::Handle.
5412
5413        * UIProcess/PageClient.h: Removed unnecessary imageSize argument from setDragImage.
5414
5415        * UIProcess/WebPageProxy.cpp:
5416        (WebKit::WebPageProxy::setFindIndicator):
5417        * UIProcess/WebPageProxy.h:
5418        * UIProcess/WebPageProxy.messages.in:
5419        * UIProcess/mac/WebPageProxyMac.mm:
5420        (WebKit::WebPageProxy::setDragImage):
5421        * WebProcess/Plugins/PluginProxy.cpp:
5422        (WebKit::PluginProxy::snapshot):
5423        (WebKit::PluginProxy::geometryDidChange):
5424        * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
5425        (WebKit::WebDragClient::startDrag):
5426        Changed to use ShareableBitmap::Handle and removed now-unnecessary size arguments (since we
5427        can get the size from the Handle).
5428
5429        * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
5430        (WebKit::WebPopupMenu::setUpPlatformData): Don't need to store the backing store size in the
5431        data anymore; the Handles will make sure it reaches the other process.
5432
5433        * WebProcess/WebPage/FindController.cpp:
5434        (WebKit::FindController::updateFindIndicator):
5435        (WebKit::FindController::hideFindIndicator):
5436        Changed to use ShareableBitmap::Handle.
5437
54382011-03-30  Alejandro G. Castro  <alex@igalia.com>
5439
5440        Fix GTK build after r81980.
5441
5442        * GNUmakefile.am:
5443
54442011-03-29  Beth Dakin  <bdakin@apple.com>
5445
5446        Reviewed by Maciej Stachowiak.
5447
5448        Fix for https://bugs.webkit.org/show_bug.cgi?id=57408
5449        webkit-min-device-pixel-ratio media query doesn't work post-SnowLeopard
5450        -and corresponding-
5451        <rdar://problem/8665411>
5452
5453        * Shared/WebPageCreationParameters.cpp:
5454        (WebKit::WebPageCreationParameters::encode):
5455        (WebKit::WebPageCreationParameters::decode):
5456        * Shared/WebPageCreationParameters.h:
5457        * UIProcess/API/mac/PageClientImpl.h:
5458        * UIProcess/API/mac/PageClientImpl.mm:
5459        (WebKit::PageClientImpl::userSpaceScaleFactor):
5460        * UIProcess/API/qt/qwkpage_p.h:
5461        (QWKPagePrivate::userSpaceScaleFactor):
5462        * UIProcess/PageClient.h:
5463        * UIProcess/WebPageProxy.cpp:
5464        (WebKit::WebPageProxy::creationParameters):
5465        * UIProcess/gtk/WebView.h:
5466        (WebKit::WebView::userSpaceScaleFactor):
5467        * UIProcess/win/WebView.h:
5468        (WebKit::WebView::userSpaceScaleFactor):
5469        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
5470        (WebKit::WebChromeClient::scaleFactor):
5471        * WebProcess/WebPage/WebPage.cpp:
5472        (WebKit::WebPage::WebPage):
5473        * WebProcess/WebPage/WebPage.h:
5474        (WebKit::WebPage::userSpaceScaleFactor):
5475
54762011-03-29  Brent Fulgham  <bfulgham@webkit.org>
5477
5478        Unreviewed WinCairo build fix.
5479
5480        Bring DownloadCurl implementation stubs in line with current
5481        CFNetwork API.
5482
5483        * WebProcess/Downloads/curl/DownloadCurl.cpp:
5484        (WebKit::Download::receivedCredential):
5485        (WebKit::Download::receivedRequestToContinueWithoutCredential):
5486        (WebKit::Download::receivedCancellation):
5487
54882011-03-29  Chris Fleizach  <cfleizach@apple.com>
5489
5490        Reviewed by Darin Adler.
5491
5492        AX: WK2: When creating the window remote token, use what's returned from accessibility
5493        https://bugs.webkit.org/show_bug.cgi?id=57398
5494
5495        This will allow a specific WKView to override what's used for the window attribute of the
5496        HTML elements.
5497
5498        * UIProcess/API/mac/WKView.mm:
5499        (-[WKView viewDidMoveToWindow]):
5500
55012011-03-29  Jeff Miller  <jeffm@apple.com>
5502
5503        Reviewed by Sam Weinig.
5504
5505        Make Windows-only InjectedBundle functions platform-specific
5506        https://bugs.webkit.org/show_bug.cgi?id=57385
5507
5508        Added files for Windows-specific WKBundle functions.
5509        Removed stub wrappers for InjectedBundle::setHostAllowsAnyHTTPSCertificate() and InjectedBundle::setClientCertificate() from non-Windows platforms.
5510
5511        * WebProcess/InjectedBundle/API/c/WKBundle.cpp: Moved WKBundleSetHostAllowsAnyHTTPSCertificate() and WKBundleSetClientCertificate() to WKBundlePrivateWin.cpp.
5512        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Moved WKBundleSetHostAllowsAnyHTTPSCertificate() and WKBundleSetClientCertificate() to WKBundlePrivateWin.h.
5513        * WebProcess/InjectedBundle/API/c/win: Added.
5514        * WebProcess/InjectedBundle/API/c/win/WKBundlePrivateWin.cpp: Added.
5515        (WKBundleSetHostAllowsAnyHTTPSCertificate): Moved from WKBundle.cpp.
5516        (WKBundleSetClientCertificate): Moved from WKBundle.cpp.
5517        * WebProcess/InjectedBundle/API/c/win/WKBundlePrivateWin.h: Added.
5518        * WebProcess/InjectedBundle/InjectedBundle.h: setHostAllowsAnyHTTPSCertificate() and setClientCertificate() are Windows-only.
5519        * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp: Removed setHostAllowsAnyHTTPSCertificate() and setClientCertificate().
5520        * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp: Removed setHostAllowsAnyHTTPSCertificate() and setClientCertificate().
5521        * WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp: Removed setHostAllowsAnyHTTPSCertificate() and setClientCertificate().
5522        * win/WebKit2.vcproj: Added WKBundlePrivateWin.cpp and WKBundlePrivateWin.h.
5523        * win/WebKit2Generated.make: Copy WKBundlePrivateWin.h.
5524
55252011-03-29  Anders Carlsson  <andersca@apple.com>
5526
5527        Fix Windows build.
5528
5529        * WebProcess/Downloads/cfnet/DownloadCFNet.cpp:
5530        (WebKit::Download::receivedCredential):
5531        (WebKit::Download::receivedRequestToContinueWithoutCredential):
5532        (WebKit::Download::receivedCancellation):
5533
55342011-03-29  Anders Carlsson  <andersca@apple.com>
5535
5536        Reviewed by Sam Weinig.
5537
5538        Downloads: Authentication support
5539        https://bugs.webkit.org/show_bug.cgi?id=57403
5540        <rdar://problem/8691166>
5541
5542        * UIProcess/API/C/WKContext.h:
5543        Add didReceiveAuthenticationChallenge callback.
5544
5545        * UIProcess/Downloads/DownloadProxy.cpp:
5546        (WebKit::DownloadProxy::didReceiveAuthenticationChallenge):
5547        Call the download client.
5548
5549        * UIProcess/Downloads/DownloadProxy.messages.in:
5550        Add DidReceiveAuthenticationChallenge message.
5551
5552        * UIProcess/WebDownloadClient.cpp:
5553        (WebKit::WebDownloadClient::didReceiveAuthenticationChallenge):
5554        Call the client callback function.
5555
5556        * UIProcess/WebDownloadClient.h:
5557        * WebProcess/Authentication/AuthenticationManager.cpp:
5558        (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
5559        Send the DidReceiveAuthenticationChallenge message to the download proxy.
5560
5561        (WebKit::AuthenticationManager::useCredentialForChallenge):
5562        (WebKit::AuthenticationManager::continueWithoutCredentialForChallenge):
5563        (WebKit::AuthenticationManager::cancelChallenge):
5564        If the authentication client is null, call the static download member functions.
5565
5566        * WebProcess/Authentication/AuthenticationManager.h:
5567        * WebProcess/Downloads/Download.cpp:
5568        (WebKit::Download::didReceiveAuthenticationChallenge):
5569        Call the authentication manager.
5570
5571        * WebProcess/Downloads/Download.h:
5572        * WebProcess/Downloads/mac/DownloadMac.mm:
5573        (WebKit::Download::receivedCredential):
5574        (WebKit::Download::receivedRequestToContinueWithoutCredential):
5575        (WebKit::Download::receivedCancellation):
5576        Call the right sender methods.
5577
5578        (-[WKDownloadAsDelegate download:didReceiveAuthenticationChallenge:]):
5579        (-[WKDownloadAsDelegate downloadShouldUseCredentialStorage:]):
5580        Call the right Download member functions.
5581
5582        * WebProcess/Downloads/qt/DownloadQt.cpp:
5583        (WebKit::Download::receivedCredential):
5584        (WebKit::Download::receivedRequestToContinueWithoutCredential):
5585        (WebKit::Download::receivedCancellation):
5586        * WebProcess/Downloads/soup/DownloadSoup.cpp:
5587        (WebKit::Download::receivedCredential):
5588        (WebKit::Download::receivedRequestToContinueWithoutCredential):
5589        (WebKit::Download::receivedCancellation):
5590        Add stubs.
5591
55922011-03-29  Anders Carlsson  <andersca@apple.com>
5593
5594        Reviewed by Sam Weinig.
5595
5596        AuthenticationChallengeProxy objects should be associated with processes, not pages
5597        https://bugs.webkit.org/show_bug.cgi?id=57401
5598
5599        * UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
5600        (WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):
5601        (WebKit::AuthenticationChallengeProxy::~AuthenticationChallengeProxy):
5602        (WebKit::AuthenticationChallengeProxy::useCredential):
5603        (WebKit::AuthenticationChallengeProxy::cancel):
5604        * UIProcess/Authentication/AuthenticationChallengeProxy.h:
5605        (WebKit::AuthenticationChallengeProxy::create):
5606        * UIProcess/WebPageProxy.cpp:
5607        (WebKit::WebPageProxy::didReceiveAuthenticationChallenge):
5608
56092011-03-29  Sam Weinig  <sam@webkit.org>
5610
5611        Reviewed by Anders Carlsson.
5612
5613        Use LocalizedStrings.h as a bottleneck for localized strings instead of
5614        using UI_STRING.
5615
5616        * UIProcess/API/mac/WKView.mm:
5617        (-[WKView validateUserInterfaceItem:]):
5618        Call existing localization functions instead of using UI_STRING.
5619
5620        (-[WKView _getTextInputState:selectionEnd:underlines:]):
5621        Remove unnecessary WebCore:: prefix.
5622
56232011-03-29  Chang Shu  <cshu@webkit.org>
5624
5625        Reviewed by Kenneth Rohde Christiansen.
5626
5627        WebKitTestRunner needs layoutTestController.setAllowUniversalAccessFromFileURLs
5628        https://bugs.webkit.org/show_bug.cgi?id=42692
5629
5630        * Shared/WebPreferencesStore.cpp:
5631        (WebKit::WebPreferencesStore::decode):
5632        (WebKit::WebPreferencesStore::overrideAllowUniversalAccessFromFileURLsForTestRunner):
5633        * Shared/WebPreferencesStore.h:
5634        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
5635        (WKBundleOverrideAllowUniversalAccessFromFileURLsForTestRunner):
5636        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
5637        * WebProcess/InjectedBundle/InjectedBundle.cpp:
5638        (WebKit::InjectedBundle::overrideAllowUniversalAccessFromFileURLsForTestRunner):
5639        * WebProcess/InjectedBundle/InjectedBundle.h:
5640
56412011-03-29  Timothy Hatcher  <timothy@apple.com>
5642
5643        Update the order of the context menu to better match AppKit on Mac.
5644
5645        <rdar://problem/9054893>
5646
5647        Reviewed by John Sullivan.
5648
5649        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
5650        (WebKit::WebPlatformStrategies::contextMenuItemTagLookUpInDictionary): Added argument for selected string.
5651        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
5652
56532011-03-29  Jeff Miller  <jeffm@apple.com>
5654
5655        Fix formatting of WebKit2.vcproj after r82283.
5656
5657        * win/WebKit2.vcproj:
5658
56592011-03-29  Martin Robinson  <mrobinson@igalia.com>
5660
5661        [GTK] Build failed with ‘GDK_KEY_KP_Space’ was not declared in this scope
5662        https://bugs.webkit.org/show_bug.cgi?id=55314
5663
5664        Build fix for older versions of GTK+. Use the deprecated names for GDK key
5665        defines and include GtkVersioning.h to allow building on newer versions
5666        of GTK+.
5667
5668        * Shared/gtk/WebEventFactory.cpp:
5669        (WebKit::isGdkKeyCodeFromKeyPad): Update key defines.
5670
56712011-03-29  Steve Falkenburg  <sfalken@apple.com>
5672
5673        Reviewed by Darin Adler.
5674
5675        Use per-configuration vsprops in WebKit to avoid WebKitVSPropsRedirectionDir removal by MSVC IDE
5676        https://bugs.webkit.org/show_bug.cgi?id=57383
5677
5678        Visual Studio's IDE was removing instances of $(WebKitVSPropsRedirectionDir) from
5679        InheritedPropertySheet rules in our vcproj files when the vcproj was edited from within
5680        the IDE. To avoid this, add a separate vsprops file for each project configuration that
5681        contains the required inherited property sheets.
5682
5683        * win/WebKit2.vcproj:
5684        * win/WebKit2Debug.vsprops: Added.
5685        * win/WebKit2DebugAll.vsprops: Added.
5686        * win/WebKit2DebugCairoCFLite.vsprops: Added.
5687        * win/WebKit2Release.vsprops: Added.
5688        * win/WebKit2ReleaseCairoCFLite.vsprops: Added.
5689        * win/WebKit2ReleaseLTCG.vsprops: Added.
5690        * win/WebKit2WebProcess.vcproj:
5691        * win/WebKit2WebProcessDebug.vsprops: Added.
5692        * win/WebKit2WebProcessDebugAll.vsprops: Added.
5693        * win/WebKit2WebProcessDebugCairoCFLite.vsprops: Added.
5694        * win/WebKit2WebProcessRelease.vsprops: Added.
5695        * win/WebKit2WebProcessReleaseCairoCFLite.vsprops: Added.
5696        * win/WebKit2WebProcessReleaseLTCG.vsprops: Added.
5697
56982011-03-29  Jessie Berlin  <jberlin@apple.com>
5699
5700        Reviewed by Anders Carlsson.
5701
5702        WebKit2: The WebProcess should be relaunched if necessary when WebKit2 is asked for
5703        information about Cookies, Databases, Local Storage, etc.
5704        https://bugs.webkit.org/show_bug.cgi?id=57374
5705
5706        Instead of bailing when the WebProcess is not valid, call relaunchProcessIfNecessary().
5707
5708        * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
5709        (WebKit::WebPluginSiteDataManager::getSitesWithData):
5710        (WebKit::WebPluginSiteDataManager::clearSiteData):
5711        * UIProcess/WebApplicationCacheManagerProxy.cpp:
5712        (WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins):
5713        (WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin):
5714        (WebKit::WebApplicationCacheManagerProxy::deleteAllEntries):
5715        * UIProcess/WebCookieManagerProxy.cpp:
5716        (WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
5717        (WebKit::WebCookieManagerProxy::deleteCookiesForHostname):
5718        (WebKit::WebCookieManagerProxy::deleteAllCookies):
5719        (WebKit::WebCookieManagerProxy::startObservingCookieChanges):
5720        (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):
5721        (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
5722        * UIProcess/WebDatabaseManagerProxy.cpp:
5723        (WebKit::WebDatabaseManagerProxy::getDatabasesByOrigin):
5724        (WebKit::WebDatabaseManagerProxy::getDatabaseOrigins):
5725        (WebKit::WebDatabaseManagerProxy::deleteDatabaseWithNameForOrigin):
5726        (WebKit::WebDatabaseManagerProxy::deleteDatabasesForOrigin):
5727        (WebKit::WebDatabaseManagerProxy::deleteAllDatabases):
5728        (WebKit::WebDatabaseManagerProxy::setQuotaForOrigin):
5729        * UIProcess/WebKeyValueStorageManagerProxy.cpp:
5730        (WebKit::WebKeyValueStorageManagerProxy::getKeyValueStorageOrigins):
5731        (WebKit::WebKeyValueStorageManagerProxy::deleteEntriesForOrigin):
5732        (WebKit::WebKeyValueStorageManagerProxy::deleteAllEntries):
5733        * UIProcess/WebMediaCacheManagerProxy.cpp:
5734        (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache):
5735        (WebKit::WebMediaCacheManagerProxy::clearCacheForHostname):
5736        (WebKit::WebMediaCacheManagerProxy::clearCacheForAllHostnames):
5737        * UIProcess/WebResourceCacheManagerProxy.cpp:
5738        (WebKit::WebResourceCacheManagerProxy::getCacheOrigins):
5739        (WebKit::WebResourceCacheManagerProxy::clearCacheForOrigin):
5740        (WebKit::WebResourceCacheManagerProxy::clearCacheForAllOrigins):
5741
57422011-03-29  Jeff Miller  <jeffm@apple.com>
5743
5744        Reviewed by Darin Adler.
5745
5746        WebKit2: Support setting the client certificate on Windows
5747        https://bugs.webkit.org/show_bug.cgi?id=57368
5748
5749        Allow setting the client certificate for a host via the injected bundle.
5750        This requires the ability for Webkit2 Windows clients to create a WKCertificateInfo from a PCCERT_CONTEXT so they can send it to the web process.
5751
5752        * Shared/API/c/win/WKCertificateInfoWin.cpp:
5753        (WKCertificateInfoCreateWithCertificate): Added.
5754        * Shared/API/c/win/WKCertificateInfoWin.h: Added WKCertificateInfoCreateWithCertificate().
5755        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
5756        (WKBundleSetClientCertificate): Added.
5757        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Added WKBundleSetClientCertificate().
5758        * WebProcess/InjectedBundle/InjectedBundle.h: Added setClientCertificate().
5759        * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
5760        (WebKit::InjectedBundle::setClientCertificate): Added, should never be called.
5761        * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
5762        (WebKit::InjectedBundle::setClientCertificate): Added, should never be called.
5763        * WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp:
5764        (WebKit::InjectedBundle::setClientCertificate): Added, should never be called.
5765        * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp:
5766        (WebKit::InjectedBundle::setClientCertificate): Added.
5767
57682011-03-29  Timothy Hatcher  <timothy@apple.com>
5769
5770        Make WebKit2 work with update-webkit-localizable-strings.
5771
5772        https://webkit.org/b/57354
5773
5774        Reviewed by Sam Weinig.
5775
5776        * PluginProcess/mac/PluginProcessMac.mm: Remove UI_STRING macro. Use WebLocalizableStrings.h.
5777        * Shared/WebLocalizableStrings.h: Added.
5778        * UIProcess/API/mac/WKView.mm: Remove UI_STRING macro. Use WebLocalizableStrings.h.
5779        * UIProcess/mac/WebInspectorProxyMac.mm:
5780        (WebKit::WebInspectorProxy::platformInspectedURLChanged): Use UI_STRING. Remove FIXME.
5781        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: Remove UI_STRING macros.
5782        Use WebLocalizableStrings.h.
5783        * WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:
5784        (registerErrors): Remove UI_STRING macro. Use WebLocalizableStrings.h.
5785        * WebProcess/mac/WebProcessMac.mm:
5786        (WebKit::WebProcess::platformInitializeWebProcess): Use UI_STRING. Remove FIXME.
5787
5788        * GNUmakefile.am: Added Shared/WebLocalizableStrings.h.
5789        * WebKit2.pro: Ditto.
5790        * WebKit2.xcodeproj/project.pbxproj: Ditto.
5791        * win/WebKit2.vcproj: Ditto.
5792
57932011-03-29  Jeff Miller  <jeffm@apple.com>
5794
5795        Reviewed by Darin Adler.
5796
5797        CoreIPC::decodeResourceError() leaks a CFDataRef
5798        https://bugs.webkit.org/show_bug.cgi?id=57366
5799
5800        * Shared/win/WebCoreArgumentCodersWin.cpp:
5801        (CoreIPC::decodeResourceError): Don't leak the result of WebCore::copyCertificateToData(), since the ResourceError will retain it.
5802
58032011-03-29  Anders Carlsson  <andersca@apple.com>
5804
5805        Reviewed by Sam Weinig.
5806
5807        Allow the AppleConnect plug-in to use the QuickDraw drawing model
5808        https://bugs.webkit.org/show_bug.cgi?id=57365
5809        <rdar://problem/8712320>
5810
5811        * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
5812        (WebKit::NetscapePluginModule::determineQuirks):
5813        * Shared/Plugins/PluginQuirks.h:
5814        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
5815        (WebKit::NetscapePlugin::platformPostInitialize):
5816
58172011-03-29  Darin Adler  <darin@apple.com>
5818
5819        Reviewed by Adam Roben.
5820
5821        WebKit2 bundle page needs to offer generated file hooks
5822        https://bugs.webkit.org/show_bug.cgi?id=57279
5823
5824        * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Added shouldGenerateFileForUpload and
5825        generateFileForUpload callback pointers.
5826
5827        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
5828        (WebKit::InjectedBundlePageUIClient::shouldGenerateFileForUpload): Added.
5829        (WebKit::InjectedBundlePageUIClient::generateFileForUpload): Added.
5830        * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: Added functions above.
5831
5832        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
5833        (WebKit::WebChromeClient::shouldReplaceWithGeneratedFileForUpload): Implemented by
5834        calling the functions above.
5835        (WebKit::WebChromeClient::generateReplacementFile): Ditto.
5836
58372011-03-29  Anders Carlsson  <andersca@apple.com>
5838
5839        Reviewed by Darin Adler.
5840
5841        Assertion failure in plug-in process with clang-built 32/64-bit WebKit2
5842        https://bugs.webkit.org/show_bug.cgi?id=57359
5843
5844        Don't use __alignof when encoding and decoding scalar types.
5845
5846        Darwin 32-bit, double and unsigned long long are 4-byte aligned but on 64-bit they're
5847        8-byte aligned which causes problems when doing IPC between 32-bit and 64-bit processes.
5848        GCC is buggy and returns 8, but clang is correct and returns 4. Use sizeof instead which we know
5849        is equal to or greater than the alignment.
5850
5851        * Platform/CoreIPC/ArgumentDecoder.cpp:
5852        (CoreIPC::ArgumentDecoder::decodeBool):
5853        (CoreIPC::ArgumentDecoder::decodeUInt32):
5854        (CoreIPC::ArgumentDecoder::decodeUInt64):
5855        (CoreIPC::ArgumentDecoder::decodeInt32):
5856        (CoreIPC::ArgumentDecoder::decodeInt64):
5857        (CoreIPC::ArgumentDecoder::decodeFloat):
5858        (CoreIPC::ArgumentDecoder::decodeDouble):
5859        * Platform/CoreIPC/ArgumentEncoder.cpp:
5860        (CoreIPC::ArgumentEncoder::encodeBool):
5861        (CoreIPC::ArgumentEncoder::encodeUInt32):
5862        (CoreIPC::ArgumentEncoder::encodeUInt64):
5863        (CoreIPC::ArgumentEncoder::encodeInt32):
5864        (CoreIPC::ArgumentEncoder::encodeInt64):
5865        (CoreIPC::ArgumentEncoder::encodeFloat):
5866        (CoreIPC::ArgumentEncoder::encodeDouble):
5867
58682011-03-29  Brent Fulgham  <bfulgham@webkit.org>
5869
5870        Unreviewed build fix after r81928.
5871
5872        * win/WebKit2.vcproj: Don't build CG-specific icon routines
5873        for WinCairo port.
5874
58752011-03-29  Sam Weinig  <sam@webkit.org>
5876
5877        Reviewed by Anders Carlsson.
5878
5879        Reproducible crash running under libgmalloc, in -[WKView(Internal) removeTrackingRect:] --&gt; objc_assign_ivar_non_gc
5880        <rdar://problem/9193352>
5881        https://bugs.webkit.org/show_bug.cgi?id=57358
5882
5883        -[WKView removeTrackingRect] can be called from below -[WKView dealloc] after we have
5884        destroyed _data. So, nil out _data after releasing it and nil check it appropriately.
5885
5886        * UIProcess/API/mac/WKView.mm:
5887        (-[WKView dealloc]):
5888        Nil out _data after releasing it.
5889
5890        (-[WKView removeTrackingRect:]):
5891        Add early return for nil _data.
5892
58932011-03-29  Jeff Miller  <jeffm@apple.com>
5894
5895        Reviewed by Jon Honeycutt.
5896
5897        Add WebCore::copyCertificateToData() on Windows
5898        https://bugs.webkit.org/show_bug.cgi?id=57296
5899
5900        Remove duplicate code that implemented this functionality in WebCoreArgumentCodersWin.cpp and use WebCore::copyCertificateToData() instead.
5901
5902        * Shared/win/WebCoreArgumentCodersWin.cpp:
5903        (CoreIPC::decodeResourceError): Use WebCore::copyCertificateToData().
5904
59052011-03-29  Balazs Kelemen  <kbalazs@webkit.org>
5906
5907        Unreviewed build fix (64 bit gcc).
5908
5909        GCC does not accept uint64_t formatted as %lli.
5910
5911        * UIProcess/WebIconDatabase.cpp:
5912        (WebKit::WebIconDatabase::getLoadDecisionForIconURL): Add explicit cast to long long.
5913
59142011-03-28  Maciej Stachowiak  <mjs@apple.com>
5915
5916        Reviewed by Dan Bernstein.
5917
5918        WKPageGetSourceForFrame and WKPageGetContentsAsString should throw an error in case of a race with page loading
5919        https://bugs.webkit.org/show_bug.cgi?id=57305
5920        <rdar://problem/8738060>, <rdar://problem/8780168>
5921
5922        * UIProcess/WebPageProxy.cpp:
5923        (WebKit::WebPageProxy::close): Clear m_loadDependentStringCallbackIDs
5924        (WebKit::WebPageProxy::getSourceForFrame): track the callback as load dependent
5925        (WebKit::WebPageProxy::getContentsAsString): ditto
5926        (WebKit::WebPageProxy::clearLoadDependentCallbacks): Invalidate all load dependent callbacks
5927        (WebKit::WebPageProxy::didCommitLoadForFrame): Call clearLoadDependentCallbacks
5928        (WebKit::WebPageProxy::didFailLoadForFrame): ditto
5929        (WebKit::WebPageProxy::stringCallback): Remove callback from load dependent set if appropriate
5930        (WebKit::WebPageProxy::processDidCrash): Clear m_loadDependentStringCallbackIDs
5931        * UIProcess/WebPageProxy.h: Add m_loadDependentStringCallbackIDs hash set.
5932
59332011-03-28  Patrick Gansterer  <paroga@webkit.org>
5934
5935        Reviewed by Darin Adler.
5936
5937        Use String instead of CString as return value of openTemporaryFile
5938        https://bugs.webkit.org/show_bug.cgi?id=55332
5939
5940        * Shared/WebMemorySampler.cpp:
5941        (WebKit::WebMemorySampler::initializeTempLogFile):
5942        * WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
5943        (WebKit::NetscapePluginStream::stop):
5944        * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
5945
59462011-03-28  Brian Weinstein  <bweinstein@apple.com>
5947
5948        Reviewed by Jon Honeycutt.
5949
5950        WebKit2: Downloads started with DownloadCFNet::start never start
5951        https://bugs.webkit.org/show_bug.cgi?id=57268
5952
5953        * WebProcess/Downloads/cfnet/DownloadCFNet.cpp:
5954        (WebKit::Download::start): Call CFURLDownloadStart on the download we create.
5955
59562011-03-28  Anders Carlsson  <andersca@apple.com>
5957
5958        Fix Windows build.
5959
5960        * Shared/ShareableBitmap.h:
5961
59622011-03-28  Anders Carlsson  <andersca@apple.com>
5963
5964        Reviewed by Sam Weinig.
5965
5966        Beep when pressing a menu key equivalent when a plug-in has focus
5967        https://bugs.webkit.org/show_bug.cgi?id=57264
5968        <rdar://problem/8935597>
5969
5970        We don't want the WKTextInputWindowController inputContext to be involved in interpretKeyEvents.
5971
5972        * UIProcess/API/mac/WKView.mm:
5973        (-[WKView inputContext]):
5974
59752011-03-28  Anders Carlsson  <andersca@apple.com>
5976
5977        Reviewed by Sam Weinig.
5978
5979        CGImageRefs must hold a strong reference to underlying data
5980        https://bugs.webkit.org/show_bug.cgi?id=57263
5981        <rdar://problem/9146179>
5982
5983        Make paintBitmapContext use CGBitmapContextCreateImage, which creates a copy-on-write copy
5984        of the bitmap data. Also, add ShareableBitmap::makeCGImageCopy which does the same thing, and
5985        ShareableBitmap::makeCGImage in the cases where we know that the ShareableBitmap data will never change.
5986
5987        * Platform/cg/CGUtilities.cpp:
5988        (WebKit::paintImage):
5989        Factor image painting code out into a separate function.
5990
5991        (WebKit::paintBitmapContext):
5992        Call paintImage.
5993
5994        * Shared/API/c/cg/WKImageCG.cpp:
5995        (WKImagemakeCGImage):
5996        Use ShareableBitmap::makeCGImageCopy.
5997
5998        * Shared/ShareableBitmap.h:
5999        * Shared/cg/ShareableBitmapCG.cpp:
6000        (WebKit::ShareableBitmap::createGraphicsContext):
6001        (WebKit::ShareableBitmap::paint):
6002        (WebKit::ShareableBitmap::makeCGImageCopy):
6003        (WebKit::ShareableBitmap::makeCGImage):
6004        (WebKit::ShareableBitmap::releaseBitmapContextData):
6005        (WebKit::ShareableBitmap::releaseDataProviderData):
6006        Add makeCGImage and makeCGImageCopy.
6007
6008        * Shared/cg/WebCoreArgumentCodersCG.cpp:
6009        (CoreIPC::createImage):
6010        Use ShareableBitmap::makeCGImage.
6011
6012        * UIProcess/API/mac/PageClientImpl.mm:
6013        (WebKit::PageClientImpl::setDragImage):
6014        Use ShareableBitmap::makeCGImage and plug a CGImageRef leak.
6015
60162011-03-28  Alexey Proskuryakov  <ap@apple.com>
6017
6018        Build fix.
6019
6020        * UIProcess/API/mac/WKView.mm: (-[WKView keyDown:]): It's not "event" in this function, it's
6021        "theEvent".
6022
60232011-03-28  Alexey Proskuryakov  <ap@apple.com>
6024
6025        Reviewed by Darin Adler.
6026
6027        https://bugs.webkit.org/show_bug.cgi?id=57260
6028        Clean up text input code a little
6029
6030        * UIProcess/API/mac/WKView.mm:
6031        (-[WKView doCommandBySelector:]): This NSTextInput protocol method lacked a LOG() call.
6032        (-[WKView keyDown:]): Added (possibly useless) event protection to match performKeyEquivalent:
6033        and also WebKit1.
6034
6035        * WebProcess/WebPage/mac/WebPageMac.mm: Removed an obsolete comment.
6036
60372011-03-28  Jeff Miller  <jeffm@apple.com>
6038
6039        Reviewed by Adam Roben.
6040
6041        ResourceError::certificate() should return a PCCERT_CONTEXT
6042        https://bugs.webkit.org/show_bug.cgi?id=57262
6043
6044        * Shared/win/PlatformCertificateInfo.cpp:
6045        (WebKit::PlatformCertificateInfo::PlatformCertificateInfo): Don't assert if no PCCERT_CONTEXT is specified.
6046        * Shared/win/WebCoreArgumentCodersWin.cpp:
6047        (CoreIPC::encodeResourceError): Removed unneeded code now that ResourceError::certificate() returns a PCCERT_CONTEXT.
6048
60492011-03-28  Jeff Miller  <jeffm@apple.com>
6050
6051        Rubber-stamped by Adam Roben.
6052
6053        Remove unused CFErrorRef.
6054
6055        * Shared/win/WebCoreArgumentCodersWin.cpp:
6056        (CoreIPC::encodeResourceError): Remove unused CFErrorRef.
6057
60582011-03-28  Jeff Miller  <jeffm@apple.com>
6059
6060        Reviewed by Adam Roben.
6061
6062        Include certificate when sending a WebCore::ResourceError to UI process on Windows
6063        https://bugs.webkit.org/show_bug.cgi?id=57195
6064
6065        Add support for sending the certificate with the WebCore::ResourceError.
6066
6067        * Shared/win/WebCoreArgumentCodersWin.cpp:
6068        (CoreIPC::encodeResourceError): Encode certificate data.
6069        (CoreIPC::deallocCertContext): Added.
6070        (CoreIPC::createCertContextDeallocator): Added.
6071        (CoreIPC::copyCert): Added.
6072        (CoreIPC::decodeResourceError): Decode certificate data.
6073
60742011-03-27  Andy Estes  <aestes@apple.com>
6075
6076        Reviewed by Maciej Stachowiak.
6077
6078        Correctly get a plug-in's MIME type when it uses WebPluginMIMETypesFilename
6079        https://bugs.webkit.org/show_bug.cgi?id=57205
6080
6081        If the plug-in's Info.plist uses WebPluginMIMETypesFilename to specify
6082        plug-in MIME types, WebKit has to check for a property list file in
6083        ~/Library/Preferences for the MIME type dictionary.
6084
6085        * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
6086        (WebKit::getMIMETypesFromPluginBundle): If the bundle's Info dictionary
6087        has the key WebPluginMIMETypesFilename, open the property list
6088        specified by that key's value and return the MIME type dictionary from
6089        there. Otherwise, return the MIME type dictionary specified by the key
6090        WebPluginMIMETypes.
6091        (WebKit::getPluginInfoFromPropertyLists): Call
6092        getMIMETypesFromPluginBundle().
6093
60942011-03-27  Jer Noble  <jer.noble@apple.com>
6095
6096        Reviewed by Maciej Stachowiak.
6097
6098        Full Screen: disable keyboard access by default
6099        https://bugs.webkit.org/show_bug.cgi?id=56684
6100
6101        Take into account whether keyboard access was requested when deciding whether full
6102        screen mode is supported.
6103
6104        * UIProcess/WebFullScreenManagerProxy.cpp:
6105        (WebKit::WebFullScreenManagerProxy::supportsFullScreen):
6106        * UIProcess/WebFullScreenManagerProxy.h:
6107        * UIProcess/WebFullScreenManagerProxy.messages.in:
6108        * WebProcess/FullScreen/WebFullScreenManager.cpp:
6109        (WebKit::WebFullScreenManager::supportsFullScreen):
6110        * WebProcess/FullScreen/WebFullScreenManager.h:
6111        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
6112        (WebKit::WebChromeClient::supportsFullScreenForElement):
6113        * WebProcess/WebCoreSupport/WebChromeClient.h:
6114
61152011-03-27  Anders Carlsson  <andersca@apple.com>
6116
6117        Reviewed by Sam Weinig.
6118
6119        Dock doesn't come back after leaving fullscreen on Hulu
6120        https://bugs.webkit.org/show_bug.cgi?id=57189
6121        <rdar://problem/9192413>
6122
6123        Port some code over from the old WebKit1 plug-in host.
6124
6125        * PluginProcess/mac/PluginProcessShim.mm:
6126        (WebKit::shimShowMenuBar):
6127        (WebKit::shimHideMenuBar):
6128        (WebKit::shimIsMenuBarVisible):
6129
61302011-03-27  Anders Carlsson  <andersca@apple.com>
6131
6132        Reviewed by Sam Weinig.
6133
6134        Keep a strong reference to the connection to avoid crashes.
6135
6136        * Platform/CoreIPC/Connection.cpp:
6137
61382011-03-26  Jeff Miller  <jeffm@apple.com>
6139
6140        Reviewed by Sam Weinig.
6141
6142        WKErrorCopyCFError() doesn't actually return a copy of the CFErrorRef
6143        https://bugs.webkit.org/show_bug.cgi?id=57172
6144
6145        * Shared/API/c/cf/WKErrorCF.cpp:
6146        (WKErrorCopyCFError): Use RetainPtr<> and leakRef() to return a real copy.
6147
61482011-03-26  Maciej Stachowiak  <mjs@apple.com>
6149
6150        Revert inadvertently committed changes.
6151
6152        * WebProcess/com.apple.WebProcess.sb:
6153
61542011-03-26  Jer Noble  <jer.noble@apple.com>
6155
6156        Reviewed by Eric Carlson.
6157
6158        Enable the Full Screen API by default in WebKit/mac and WebKit2
6159        https://bugs.webkit.org/show_bug.cgi?id=56956
6160
6161        * Shared/WebPreferencesStore.h: Default the fullScreenEnabled preference to true.
6162
61632011-03-26  Jeff Miller  <jeffm@apple.com>
6164
6165        Reviewed by Steve Falkenburg.
6166
6167        Add PlatformCertificateInfo::PlatformCertificateInfo(PCCERT_CONTEXT) constructor on Windows
6168        https://bugs.webkit.org/show_bug.cgi?id=57152
6169
6170        We're going to need to create a PlatformCertificateInfo with a single certificate on Windows to support client certificates.
6171        Also, stop relying on the fact that the Win32 API CertDuplicateCertificateContext() currently returns the same PCCERT_CONTEXT that you pass to it, since that may change in the future.
6172
6173        * Shared/win/PlatformCertificateInfo.cpp:
6174        (WebKit::PlatformCertificateInfo::PlatformCertificateInfo): Added PlatformCertificateInfo(PCCERT_CONTEXT) construtor. Use return value from CertDuplicateCertificateContext().
6175        (WebKit::PlatformCertificateInfo::operator=): Use return value from CertDuplicateCertificateContext().
6176        * Shared/win/PlatformCertificateInfo.h: Added PlatformCertificateInfo(PCCERT_CONTEXT) construtor.
6177
61782011-03-26  Anders Carlsson  <andersca@apple.com>
6179
6180        Reviewed by Sam Weinig.
6181
6182        Graphic corruption appeared with Silverlight contents while resizing window
6183        https://bugs.webkit.org/show_bug.cgi?id=57167
6184        <rdar://problem/9094052>
6185
6186        Pass DispatchMessageEvenWhenWaitingForSyncReply when sending GeometryDidChange messages since that will guarantee
6187        that those messages will be handled before PaintEntirePlugin messages which prevents the PaintEntirePlugin handler from
6188        painting into the wrong backing store.
6189
6190        * WebProcess/Plugins/PluginProxy.cpp:
6191        (WebKit::PluginProxy::geometryDidChange):
6192
61932011-03-26  Sam Weinig  <sam@webkit.org>
6194
6195        Reviewed by Anders Carlsson.
6196
6197        Web process considered unresponsive (SPOD shown) when displaying a JavaScript alert() as a result of a click
6198        <rdar://problem/9067557>
6199        https://bugs.webkit.org/show_bug.cgi?id=57166
6200
6201        * UIProcess/WebPageProxy.cpp:
6202        (WebKit::WebPageProxy::runJavaScriptAlert):
6203        (WebKit::WebPageProxy::runJavaScriptConfirm):
6204        (WebKit::WebPageProxy::runJavaScriptPrompt):
6205        Invalidate the responsiveness timer before calling out to the client.
6206
62072011-03-26  Anders Carlsson  <andersca@apple.com>
6208
6209        Reviewed by Sam Weinig.
6210
6211        ASSERTION FAILED: m_operationInProgress == NoOperation loading nytimes.com
6212        https://bugs.webkit.org/show_bug.cgi?id=57165
6213        <rdar://problem/9024311>
6214
6215        The assertion fired because during GC, the web process sends a synchronous NPObjectMessageReceiver::Deallocate
6216        message to the plug-in process. Since this is a synchronous message, the web process needs to process incoming synchronous
6217        messages. While waiting, we get an incoming PluginProxy::Evaluate message from the plug-in. This causes JavaScript to run
6218        during GC which is very bad.
6219
6220        The fix for this is to add a flag on the connection that will cause synchronous messages sent by the connection (in this case the
6221        plug-in process) to not be processed while the other side (the web process) is waiting for a synchronous reply _unless_ the connection
6222        is actually processing a synchronous message. (The last part is to avoid deadlocks).
6223
6224        Since the call to NPN_Evaluate by the plug-in (that ends up sending the PluginProxy::Evaluate message) comes from a run loop timer firing,
6225        it's OK to wait for it to be processed by the web process when it returns to the run loop.
6226
6227        * Platform/CoreIPC/Connection.cpp:
6228        (CoreIPC::Connection::Connection):
6229        Initialize m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage and m_inDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount.
6230
6231        (CoreIPC::Connection::setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage):
6232        Set m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage.
6233
6234        (CoreIPC::Connection::sendMessage):
6235        Don't add the MessageID::DispatchMessageWhenWaitingForSyncReply flag when the right flags has been set on the connection, and it's not processing a synchronous message.
6236
6237        (CoreIPC::Connection::dispatchMessage):
6238        Increment and decrement m_inDispatchMessageMarkedDispatchWhenWaitingForSyncReplyCount accordingly.
6239
6240        * PluginProcess/WebProcessConnection.cpp:
6241        (WebKit::WebProcessConnection::WebProcessConnection):
6242        Call setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage on the connection.
6243
62442011-03-26  Sam Weinig  <sam@webkit.org>
6245
6246        Rollout r82042 (If a user doesn't have a Database/LocalStorage directory, it can't be created (sandbox violations))
6247
6248        -[NSString stringByResolvingSymlinksInPath] does not do what we needed for paths within /private.
6249        This caused all SSL sites to stop working.
6250
6251        * WebProcess/mac/WebProcessMac.mm:
6252        (WebKit::appendSandboxParameterPath):
6253        (WebKit::initializeSandbox):
6254
62552011-03-26  Sam Weinig  <sam@webkit.org>
6256
6257        Reviewed by Anders Carlsson.
6258
6259        If a user doesn't have a Database/LocalStorage directory, it can't be created (sandbox violations)
6260        <rdar://problem/9127411>
6261        https://bugs.webkit.org/show_bug.cgi?id=57164
6262
6263        * WebProcess/mac/WebProcessMac.mm:
6264        (WebKit::appendSandboxParameterPath):
6265        (WebKit::initializeSandbox):
6266        Use -[NSString stringByResolvingSymlinksInPath] instead of realpath to ensure we can resolve
6267        symlinks even if the file/directory doesn't exist yet.
6268
62692011-03-26  Anders Carlsson  <andersca@apple.com>
6270
6271        Reviewed by Sam Weinig.
6272
6273        Factor processing of incoming sync replies out into processIncomingSyncReply
6274        https://bugs.webkit.org/show_bug.cgi?id=57161
6275
6276        * Platform/CoreIPC/Connection.cpp:
6277        (CoreIPC::Connection::sendSyncMessage):
6278        Pass DispatchMessageEvenWhenWaitingForSyncReply to sendMessage.
6279
6280        (CoreIPC::Connection::processIncomingSyncReply):
6281        Move code from processIncomingMessage to here.
6282
6283        (CoreIPC::Connection::processIncomingMessage):
6284        Call processIncomingSyncReply.
6285
62862011-03-26  Sam Weinig  <sam@webkit.org>
6287
6288        Reviewed by Anders Carlsson.
6289
6290        WebKit2: Assert in CoreIPC::typeFromCFTypeRef() when loading a site with an invalid certificate
6291        <rdar://problem/9188041>
6292        https://bugs.webkit.org/show_bug.cgi?id=57159
6293
6294        * Shared/cf/ArgumentCodersCF.cpp:
6295        (CoreIPC::typeFromCFTypeRef):
6296        (CoreIPC::encode):
6297        (CoreIPC::decode):
6298        * Shared/cf/ArgumentCodersCF.h:
6299        Add encoding/decoding for SecCertificateRef type.
6300
6301        * Shared/mac/PlatformCertificateInfo.mm:
6302        (WebKit::PlatformCertificateInfo::encode):
6303        (WebKit::PlatformCertificateInfo::decode):
6304        Use ArgumentCodersCF now that it knows how to encode/decode SecCertificateRefs.
6305
63062011-03-26  Anders Carlsson  <andersca@apple.com>
6307
6308        Reviewed by Sam Weinig.
6309
6310        Handle synchronous replies coming in out of order
6311        https://bugs.webkit.org/show_bug.cgi?id=57158
6312
6313        When processing an incoming reply, don't assume that it belongs to the last sent synchronous request.
6314        Instead, iterate over the m_pendingSyncReplies vector backwards looking for the corresponding request.
6315
6316        * Platform/CoreIPC/Connection.cpp:
6317        (CoreIPC::Connection::processIncomingMessage):
6318
63192011-03-26  Anders Carlsson  <andersca@apple.com>
6320
6321        Reviewed by Sam Weinig.
6322
6323        Fix a possible deadlock when two synchronous messages are sent at the same time
6324        https://bugs.webkit.org/show_bug.cgi?id=57155
6325
6326        Simplify code and fix a possible (although highly improbable) dead lock.
6327
6328        * Platform/CoreIPC/Connection.cpp:
6329        Make SyncMessageState atomically ref counted since it can be ref()'ed from the connection queue.
6330        Get rid of m_waitForSyncReplyCount and add m_didScheduleDispatchMessagesWork.
6331
6332        (CoreIPC::Connection::SyncMessageState::SyncMessageState):
6333        Initialize m_didScheduleDispatchMessagesWork to false.
6334
6335        (CoreIPC::Connection::SyncMessageState::processIncomingMessage):
6336        if m_didScheduleDispatchMessagesWork is false, schedule a call to dispatchMessageAndResetDidScheduleDispatchMessagesWork
6337        on the client run loop.
6338
6339        (CoreIPC::Connection::SyncMessageState::dispatchMessageAndResetDidScheduleDispatchMessagesWork):
6340        Dispatch messages and set m_didScheduleDispatchMessagesWork back to false.
6341
6342        (CoreIPC::Connection::sendSyncMessage):
6343        Remove calls to beginWaitForSyncReply and endWaitForSyncReply.
6344
63452011-03-25  Sam Weinig  <sam@webkit.org>
6346
6347        Reviewed by Adele Peterson.
6348
6349        WKPageLoadAlternateHTMLString doesn't re-spawn a dead WebProcess, but should
6350        <rdar://problem/9191493>
6351        https://bugs.webkit.org/show_bug.cgi?id=57134
6352
6353        Make all load functions respawn a dead WebProcess for consistency.
6354
6355        * UIProcess/WebPageProxy.cpp:
6356        (WebKit::WebPageProxy::loadHTMLString):
6357        Respawn a dead WebProcess.
6358
6359        (WebKit::WebPageProxy::loadAlternateHTMLString):
6360        Respawn a dead WebProcess.
6361
6362        (WebKit::WebPageProxy::loadPlainTextString):
6363        Respawn a dead WebProcess.
6364
6365        (WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
6366        * UIProcess/WebPageProxy.h:
6367        * UIProcess/WebPageProxy.messages.in:
6368        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
6369        (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
6370        * WebProcess/WebPage/WebPage.cpp:
6371        (WebKit::WebPage::loadAlternateHTMLString):
6372        Since we may no longer always have a main frame when calling WKPageLoadAlternateHTMLString,
6373        set the unreachable URL, if there is one, on provisional load.
6374
63752011-03-25  Anders Carlsson  <andersca@apple.com>
6376
6377        Reviewed by Sam Weinig.
6378
6379        PluginView's call to invalidateContentsAndWindow() in invalidateRect() is wrong for plug-ins which paint into compositing layers
6380        https://bugs.webkit.org/show_bug.cgi?id=57133
6381        <rdar://problem/9029442>
6382
6383        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
6384        (WebKit::NetscapePlugin::platformInvalidate):
6385        Return true under the Core Animation drawing model, since that prevents the plug-in from calling PluginController::invalidate.
6386
6387        * WebProcess/Plugins/PluginView.cpp:
6388        (WebKit::PluginView::invalidateRect):
6389        Don't call invalidateContentsAndWindow() if the plug-in has a Core Animation layer.
6390
63912011-03-25  Brady Eidson  <beidson@apple.com>
6392
6393        Reviewed by Sam Weinig.
6394
6395        <rdar://problem/8648311> and https://bugs.webkit.org/show_bug.cgi?id=56425
6396        WebKit2 IconDatabase and API
6397
6398        This gets a basic, usable API in place.
6399        Enhancements can come in other bugs as they're needed.
6400
6401        * UIProcess/API/C/WKIconDatabase.cpp:
6402        (WKIconDatabaseRetainIconForURL):
6403        (WKIconDatabaseReleaseIconForURL):
6404        (WKIconDatabaseEnableDatabaseCleanup):
6405        * UIProcess/API/C/WKIconDatabase.h:
6406
6407        The first actual accessor for an "icon for a URL" is for a CGImageRef:
6408        * UIProcess/API/C/cg: Added.
6409        * UIProcess/API/C/cg/WKIconDatabaseCG.cpp: Added.
6410        (WKIconDatabaseGetCGImageForURL):
6411        * UIProcess/API/C/cg/WKIconDatabaseCG.h: Added.
6412
6413        Expose relevant methods to support the above API:
6414        * UIProcess/WebIconDatabase.cpp:
6415        (WebKit::WebIconDatabase::WebIconDatabase): New IconDatabases will have cleanup disabled from the start,
6416          and require a single call to "enableDatabaseCleanup" to allow cleanup.
6417        (WebKit::WebIconDatabase::setDatabasePath):
6418        (WebKit::WebIconDatabase::enableDatabaseCleanup):
6419        (WebKit::WebIconDatabase::imageForPageURL):
6420        * UIProcess/WebIconDatabase.h:
6421
6422        Project file stuff:
6423        * WebKit2.xcodeproj/project.pbxproj:
6424        * win/WebKit2.vcproj:
6425
64262011-03-25  Jeff Miller  <jeffm@apple.com>
6427
6428        Reviewed by Darin Adler.
6429
6430        Add CoreIPC::encodeResourceError() and CoreIPC::decodeResourceError() for all platforms
6431        https://bugs.webkit.org/show_bug.cgi?id=57125
6432
6433        Currently, these are only implemented on the Mac, but we're going to need them for Windows as well, so we might as well make them always platform-specific.
6434        In this patch, just replicate the existing common non-Mac implementation in WebCoreArgumentCoders.h to platform-specific files.
6435
6436        * Shared/WebCoreArgumentCoders.h: Move non-Mac implementations of encodeResourceError() and decodeResourceError() to common files.
6437        * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
6438        (CoreIPC::encodeResourceError): Added.
6439        (CoreIPC::decodeResourceError): Added.
6440        * Shared/qt/WebCoreArgumentCodersQt.cpp:
6441        (CoreIPC::encodeResourceError): Added.
6442        (CoreIPC::decodeResourceError): Added.
6443        * Shared/win/WebCoreArgumentCodersWin.cpp:
6444        (CoreIPC::encodeResourceError): Added.
6445        (CoreIPC::decodeResourceError): Added.
6446
64472011-03-25  Andy Estes  <aestes@apple.com>
6448
6449        Reviewed by Adele Peterson.
6450
6451        REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
6452        https://bugs.webkit.org/show_bug.cgi?id=49016
6453
6454        Update objectContentType() implementation to handle the
6455        shouldPreferPlugInsForImages flag.
6456
6457        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
6458        (WebKit::WebFrameLoaderClient::objectContentType):
6459        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
6460
64612011-03-25  Brent Fulgham  <bfulgham@webkit.org>
6462
6463        Unreviewed build correction.
6464
6465        Add stubs for WK2 cookie handling with cURL.
6466
6467        * WebProcess/Cookies/curl: Added.
6468        * WebProcess/Cookies/curl/WebCookieManagerCurl.cpp: Added.
6469        (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
6470        (WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy):
6471        * win/WebKit2.vcproj:
6472
64732011-03-25  Steve Falkenburg  <sfalken@apple.com>
6474
6475        Reviewed by Brian Weinstein.
6476
6477        Microsoft Windows Presentation Foundation (WPF) plug-in complains about missing xpcom.dll
6478        https://bugs.webkit.org/show_bug.cgi?id=57119
6479        <rdar://problem/9054148>
6480
6481        This plug-in from Microsoft links against xpcom.dll, which is a Firefox-specific DLL
6482        not available in WebKit. The plug-in is fairly widespread, since it was included in
6483        a Windows Update push at one point.
6484
6485        * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
6486        (WebKit::PluginInfoStore::shouldUsePlugin): Blacklist npwpf.dll.
6487
64882011-03-25  Jessie Berlin  <jberlin@apple.com>
6489
6490        Reviewed by Anders Carlsson.
6491
6492        WebKit2: Need to be able to set and get the Cookie Storage Policy.
6493        https://bugs.webkit.org/show_bug.cgi?id=50780
6494
6495        Part 2: Make it possible to set the initial policy on Windows.
6496
6497        In WebKit1, we read the initial policy on Windows from WebPreferences at startup.
6498        Since that is not possible in WebKit2, make it possible to specify the initial policy
6499        as a creation parameter to the WebProcess.
6500
6501        * Shared/WebProcessCreationParameters.cpp:
6502        (WebKit::WebProcessCreationParameters::encode):
6503        Encode initialHTTPCookieAcceptPolicy on Windows.
6504        (WebKit::WebProcessCreationParameters::decode):
6505        Decode initialHTTPCookieAcceptPolicy on Windows.
6506        * Shared/WebProcessCreationParameters.h:
6507
6508        * UIProcess/API/C/win/WKContextPrivateWin.h:
6509        * UIProcess/API/C/win/WKContextWin.cpp:
6510        (WKContextSetInitialHTTPCookieAcceptPolicy):
6511        Call through to WebContext.
6512
6513        * UIProcess/WebContext.cpp:
6514        (WebKit::WebContext::WebContext):
6515        Give the initial policy a default of "Always".
6516        * UIProcess/WebContext.h:
6517        (WebKit::WebContext::setInitialHTTPCookieAcceptPolicy):
6518        * UIProcess/win/WebContextWin.cpp:
6519        (WebKit::WebContext::platformInitializeWebProcess):
6520        Set the initial policy on Windows.
6521
6522        * WebProcess/Cookies/WebCookieManager.h:
6523        Make setHTTPCookieAcceptPolicy public so that it can be called from WebProcessWin.
6524
6525        * WebProcess/win/WebProcessWin.cpp:
6526        (WebKit::WebProcess::platformInitializeWebProcess):
6527        Tell the WebCookieManager about the initial policy.
6528
65292011-03-25  Jessie Berlin  <jberlin@apple.com>
6530
6531        Reviewed by Sam Weinig.
6532
6533        WebKit2: Need to be able to set and get the Cookie Storage Policy.
6534        https://bugs.webkit.org/show_bug.cgi?id=50780
6535
6536        * Shared/HTTPCookieAcceptPolicy.h: Added.
6537
6538        * UIProcess/API/C/WKAPICast.h:
6539        (WebKit::toHTTPCookieAcceptPolicy):
6540        (WebKit::toAPI):
6541
6542        * UIProcess/API/C/WKCookieManager.cpp:
6543        (WKCookieManagerSetHTTPCookieAcceptPolicy):
6544        Call through to WebCookieManagerProxy.
6545        (WKCookieManagerGetHTTPCookieAcceptPolicy):
6546        Ditto.
6547        * UIProcess/API/C/WKCookieManager.h:
6548
6549        * UIProcess/WebCookieManagerProxy.cpp:
6550        (WebKit::WebCookieManagerProxy::invalidate):
6551        Invalidate the get http cookie accept policy callbacks.
6552        (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):
6553        Send a message to the Web Process with the new value.
6554        (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
6555        Keep track of the callback and send a message to the Web Process.
6556        (WebKit::WebCookieManagerProxy::didGetHTTPCookieAcceptPolicy):
6557        Invoke the callback.
6558        * UIProcess/mac/WebCookieManagerProxyMac.mm: Added.
6559        (WebKit::WebCookieManagerProxy::persistHTTPCookieAcceptPolicy):
6560        On Mac, also set the policy in the UI Process because the sandboxed Web Process cannot
6561        persist the policy.
6562        * UIProcess/WebCookieManagerProxy.h:
6563        * UIProcess/WebCookieManagerProxy.messages.in:
6564
6565        * WebKit2.pri:
6566        * WebKit2.pro:
6567        * WebKit2.xcodeproj/project.pbxproj:
6568        * win/WebKit2.vcproj:
6569        * win/WebKit2Common.vsprops:
6570
6571        * WebProcess/Cookies/WebCookieManager.cpp:
6572        (WebKit::WebCookieManager::setHTTPCookieAcceptPolicy):
6573        Call platformSetHTTPCookieAcceptPolicy.
6574        (WebKit::WebCookieManager::getHTTPCookieAcceptPolicy):
6575        Send the result of platformGetHTTPCookieAcceptPolicy to the UI Process.
6576        * WebProcess/Cookies/WebCookieManager.h:
6577        * WebProcess/Cookies/WebCookieManager.messages.in:
6578
6579        * WebProcess/Cookies/cf: Added.
6580        * WebProcess/Cookies/cf/WebCookieManagerCFNet.cpp: Added.
6581        (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
6582        Set the policy on both the default cookie storage and any Private Browsing cookie storage.
6583        (WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy):
6584        * WebProcess/Cookies/mac: Added.
6585        * WebProcess/Cookies/mac/WebCookieManagerMac.mm: Added.
6586        (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
6587        Set the policy on the default cookie storage and add a FIXME to set it on any Private
6588        Browsing cookie storage.
6589        (WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy):
6590
6591        * WebProcess/Cookies/gtk: Added.
6592        * WebProcess/Cookies/gtk/WebCookieManagerGtk.cpp: Added.
6593        (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
6594        (WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy):
6595        * WebProcess/Cookies/qt: Added.
6596        * WebProcess/Cookies/qt/WebCookieManagerQt.cpp: Added.
6597        (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
6598        (WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy):
6599
66002011-03-25  Brian Weinstein  <bweinstein@apple.com>
6601
6602        Reviewed by Alexey Proskuryakov.
6603
6604        REGRESSION(r79227): CFURLCache not initialized correctly in WebKit2
6605        https://bugs.webkit.org/show_bug.cgi?id=57109
6606        <rdar://problem/9184590>
6607
6608        Check for a trailing Windows path separator, not a Unix path separator.
6609
6610        * UIProcess/win/WebContextWin.cpp:
6611        (WebKit::WebContext::platformInitializeWebProcess):
6612
66132011-03-25  Benjamin Poulain  <benjamin.poulain@nokia.com>
6614
6615        Reviewed by Andreas Kling.
6616
6617        [Qt] QtWebKit will not compile with QT_ASCII_CAST_WARNINGS enabled
6618        https://bugs.webkit.org/show_bug.cgi?id=57087
6619
6620        Use explicit conversion for string to avoid depending on the default codec
6621        installed by the user code.
6622
6623        * Platform/qt/SharedMemoryQt.cpp:
6624        (WebKit::SharedMemory::create):
6625        * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
6626        (WebKit::initializeGTK):
6627        * UIProcess/API/qt/tests/qgraphicswkview/tst_qgraphicswkview.cpp:
6628        (tst_QGraphicsWKView::loadEmptyPage):
6629        (tst_QGraphicsWKView::loadEmptyUrl):
6630        * UIProcess/API/qt/tests/qwkpage/tst_qwkpage.cpp:
6631        (tst_QWKPage::loadEmptyUrl):
6632        * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
6633        (WebKit::ProcessLauncher::launchProcess):
6634        * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
6635        (WebKit::getPluginDisplay):
6636        * WebProcess/qt/WebProcessMainQt.cpp:
6637        (WebKit::EnvHttpProxyFactory::initializeFromEnvironment):
6638        (WebKit::WebProcessMainQt):
6639
66402011-03-25  Brent Fulgham  <bfulgham@webkit.org>
6641
6642        Correct project file missing $(WebKitVSPropsRedirectionDir)s
6643        after r81924.
6644
6645        * win/WebKit2.vcproj: Restore lost $(WebKitVSPropsRedirectionDir)
6646
66472011-03-25  Alejandro G. Castro  <alex@igalia.com>
6648
6649        Reviewed by Martin Robinson.
6650
6651        [WK2] Consider .c files in the generate-forwarding-headers script
6652        https://bugs.webkit.org/show_bug.cgi?id=56680
6653
6654        * Scripts/generate-forwarding-headers.pl:
6655
66562011-03-24  Sheriff Bot  <webkit.review.bot@gmail.com>
6657
6658        Unreviewed, rolling out r81916 and r81917.
6659        http://trac.webkit.org/changeset/81916
6660        http://trac.webkit.org/changeset/81917
6661        https://bugs.webkit.org/show_bug.cgi?id=57071
6662
6663        broke a test on platforms that do not have QuickTime installed
6664        (Requested by estes on #webkit).
6665
6666        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
6667        (WebKit::WebFrameLoaderClient::objectContentType):
6668        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
6669
66702011-03-24  Brady Eidson  <beidson@apple.com>
6671
6672        Reviewed by Darin Adler.
6673
6674        https://bugs.webkit.org/show_bug.cgi?id=57069
6675        Add WKIconDatabase api to the project files, and expose accessor on WKContext.
6676
6677        Project file stuffs:
6678        * GNUmakefile.am:
6679        * WebKit2.xcodeproj/project.pbxproj:
6680        * win/WebKit2.vcproj:
6681
6682        * Shared/API/c/WKBase.h:
6683        * UIProcess/API/C/WKAPICast.h:
6684
6685        * UIProcess/API/C/WKContext.cpp:
6686        (WKContextGetIconDatabase):
6687        * UIProcess/API/C/WKContext.h:
6688
6689        * UIProcess/API/C/WKIconDatabase.cpp: Added.
6690        (WKIconDatabaseGetTypeID):
6691        * UIProcess/API/C/WKIconDatabase.h: Added.
6692
6693        * UIProcess/WebContext.h:
6694        (WebKit::WebContext::iconDatabase):
6695
66962011-03-24  Brent Fulgham  <bfulgham@webkit.org>
6697
6698        Build correction.
6699
6700        Disable the CA Layer stuff when building with Cairo.
6701
6702        * win/WebKit2.vcproj:
6703
67042011-03-24  Brady Eidson  <beidson@apple.com>
6705
6706        Reviewed by Sam Weinig.
6707
6708        https://bugs.webkit.org/show_bug.cgi?id=57058
6709        Hookup the UIProcess WebIconDatabase to a WebCore::IconDatabase as its implementation
6710
6711        * UIProcess/WebIconDatabase.cpp:
6712        (WebKit::WebIconDatabase::WebIconDatabase):
6713        (WebKit::WebIconDatabase::setDatabasePath): Create a new WebCore::IconDatabase and open it to this path.
6714        (WebKit::WebIconDatabase::retainIconForPageURL): Actually retain the url, using the impl.
6715        (WebKit::WebIconDatabase::releaseIconForPageURL): Actually release the url, using the impl.
6716        (WebKit::WebIconDatabase::setIconURLForPageURL): Actually set the url, using the impl.
6717        (WebKit::WebIconDatabase::setIconDataForIconURL): Actually set the data, using the impl.
6718        (WebKit::WebIconDatabase::getLoadDecisionForIconURL): Actually ask for a load decision to call back with.
6719        (WebKit::WebIconDatabase::performImport):
6720        (WebKit::WebIconDatabase::didImportIconURLForPageURL):
6721        (WebKit::WebIconDatabase::didImportIconDataForPageURL):
6722        (WebKit::WebIconDatabase::didChangeIconForPageURL):
6723        (WebKit::WebIconDatabase::didRemoveAllIcons):
6724        (WebKit::WebIconDatabase::didFinishURLImport): Notify all the pending callbacks what their load decisions
6725          are now that they're available.
6726        * UIProcess/WebIconDatabase.h:
6727
6728        Add an IconDatabase logging channel:
6729        * Platform/Logging.cpp:
6730        (WebKit::initializeLogChannelsIfNecessary):
6731        * Platform/Logging.h:
6732
6733        * UIProcess/WebContext.cpp:
6734        (WebKit::WebContext::setIconDatabasePath): Pass the new path on to the WebIconDatabase, possibly
6735          opening it.
6736        * UIProcess/WebContext.h:
6737
67382011-03-24  Andy Estes  <aestes@apple.com>
6739
6740        Reviewed by Darin Adler.
6741
6742        REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js
6743        https://bugs.webkit.org/show_bug.cgi?id=49016
6744
6745        Update objectContentType() implementation to handle the
6746        shouldPreferPlugInsForImages flag.
6747
6748        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
6749        (WebKit::WebFrameLoaderClient::objectContentType):
6750        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
6751
67522011-03-24  Adam Roben  <aroben@apple.com>
6753
6754        Start compiling LayerTreeHostCA on Windows
6755
6756        Fixes <http://webkit.org/b/57060> WebKit2.vcproj should compile LayerTreeHostCA
6757
6758        Reviewed by Anders Carlsson.
6759
6760        * WebProcess/WebPage/ca/win/LayerTreeHostCAWin.cpp: Added.
6761        (WebKit::LayerTreeHostCA::platformInitialize):
6762        (WebKit::LayerTreeHostCA::scheduleLayerFlush):
6763        (WebKit::LayerTreeHostCA::platformInvalidate):
6764        (WebKit::LayerTreeHostCA::platformSizeDidChange):
6765        (WebKit::LayerTreeHostCA::platformForceRepaint):
6766        (WebKit::LayerTreeHostCA::platformDidPerformScheduledLayerFlush):
6767        Stubbed out.
6768
6769        * win/WebKit2.vcproj: Added new files. Let VS reorder existing files.
6770
6771        * win/WebKit2Apple.vsprops: Added WebProcess\WebPage\ca to the include path.
6772
67732011-03-24  Jer Noble  <jer.noble@apple.com>
6774
6775        Unreviewed build fix.
6776
6777        Remove reference to LayerTreeHostMac.h from WebFullScreenManagerMac.mm.
6778
6779        * WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm:
6780
67812011-03-24  Adam Roben  <aroben@apple.com>
6782
6783        Split Mac-specific parts of LayerTreeHostCA into LayerTreeHostCAMac.mm
6784
6785        Fixes <http://webkit.org/b/57046> LayerTreeHostMac's code should be shareable with Windows
6786
6787        Reviewed by Anders Carlsson.
6788
6789        * WebKit2.xcodeproj/project.pbxproj:
6790
6791        * WebProcess/WebPage/ca/LayerTreeHostCA.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.mm.
6792        (WebKit::LayerTreeHostCA::LayerTreeHostCA): Moved some Mac-specific code to
6793        LayerTreeHostCAMac.mm.
6794        (WebKit::LayerTreeHostCA::~LayerTreeHostCA): Wrapped some Mac-specific code in
6795        PLATFORM(MAC).
6796
6797        (WebKit::LayerTreeHostCA::invalidate):
6798        (WebKit::LayerTreeHostCA::sizeDidChange):
6799        (WebKit::LayerTreeHostCA::forceRepaint):
6800        Moved some Mac-specific code to LayerTreeHostCAMac.mm.
6801
6802        (WebKit::LayerTreeHostCA::performScheduledLayerFlush): Renamed from
6803        flushPendingLayerChangesRunLoopObserverCallback. Moved some code from here...
6804        (WebKit::LayerTreeHostCA::didPerformScheduledLayerFlush): ...to here. Moved some
6805        Mac-specific code to LayerTreeHostCAMac.mm.
6806
6807        * WebProcess/WebPage/ca/LayerTreeHostCA.h: Added new functions, wrapped some Mac-specific
6808        declarations in PLATFORM(MAC).
6809
6810        * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm: Added.
6811        (WebKit::LayerTreeHostCA::platformInitialize):
6812        (WebKit::LayerTreeHostCA::scheduleLayerFlush):
6813        (WebKit::LayerTreeHostCA::platformInvalidate):
6814        (WebKit::LayerTreeHostCA::platformSizeDidChange):
6815        (WebKit::LayerTreeHostCA::platformForceRepaint):
6816        (WebKit::LayerTreeHostCA::flushPendingLayerChangesRunLoopObserverCallback):
6817        (WebKit::LayerTreeHostCA::platformDidPerformScheduledLayerFlush):
6818        Code was extracted from LayerTreeHostCA.cpp.
6819
68202011-03-24  Adam Roben  <aroben@apple.com>
6821
6822        Rename LayerTreeHostMac to LayerTreeHostCA
6823
6824        This is the first step toward sharing code with Windows.
6825
6826        Fixes <http://webkit.org/b/57051>.
6827
6828        Reviewed by Anders Carlsson.
6829
6830        * WebKit2.xcodeproj/project.pbxproj:
6831        * WebProcess/WebPage/LayerTreeHost.cpp:
6832        (WebKit::LayerTreeHost::create):
6833        Updated for rename.
6834
6835        * WebProcess/WebPage/ca/LayerTreeHostCA.h: Renamed from Source/WebKit2/WebProcess/WebPage/mac/LayerTreeHostMac.h.
6836        * WebProcess/WebPage/ca/LayerTreeHostCA.mm: Renamed from Source/WebKit2/WebProcess/WebPage/mac/LayerTreeHostMac.mm.
6837
68382011-03-17  Jer Noble  <jer.noble@apple.com>
6839
6840        Reviewed by Maciej Stachowiak.
6841
6842        WebKit2: Cancelling full screen early leaves full screen window up.
6843        https://bugs.webkit.org/show_bug.cgi?id=56589
6844
6845        No new tests, as WebKitTestRunner does not currently support the new Full Screen API.
6846
6847        Notify the UIProcess when it needs to tear down its layer hosting view, turn off
6848        the background layer when not in accelerated rendering mode and don't swap out
6849        the web view unnecessarily
6850
6851        * UIProcess/mac/WKFullScreenWindowController.mm:
6852        (-[WKFullScreenWindowController beganExitFullScreenAnimation]): Check before swapping _webView.
6853        (-[WKFullScreenWindowController enterAcceleratedCompositingMode:]): Add the _layerHostingView
6854            to the full screen window's animationView, not its contentsView.
6855        (-[WKFullScreenWindowController exitAcceleratedCompositingMode]): Hide the background layer.
6856        * WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm:
6857        (WebKit::WebFullScreenManagerMac::setRootFullScreenLayer): If given a null rootLayer, tell
6858            the client to exit accelerated mode.
6859
68602011-03-24  Enrica Casucci  <enrica@apple.com>
6861
6862        Reviewed by Alexey Proskuryakov.
6863
6864        WebKit2:Services menu item to convert selected Simplified/Traditional Chinese Text is not working.
6865        https://bugs.webkit.org/show_bug.cgi?id=56975
6866        <rdar://problem/8915066>
6867
6868        Adding missing entry point to support Mac OS X services in WebKit2.
6869
6870        * UIProcess/API/mac/WKView.mm:
6871        (-[WKView readSelectionFromPasteboard:]): Added.
6872        * UIProcess/WebPageProxy.h:
6873        * UIProcess/mac/WebPageProxyMac.mm:
6874        (WebKit::WebPageProxy::readSelectionFromPasteboard): Added.
6875        * WebProcess/WebPage/WebPage.h:
6876        * WebProcess/WebPage/WebPage.messages.in: Added synchronous
6877        message.
6878        * WebProcess/WebPage/mac/WebPageMac.mm:
6879        (WebKit::WebPage::readSelectionFromPasteboard): Added.
6880
68812011-03-24  Jia Pu  <jpu@apple.com>
6882
6883        Reviewed by Darin Adler.
6884
6885        Dismissed reversion suggestion is incorrectly learned.
6886        https://bugs.webkit.org/show_bug.cgi?id=57039
6887
6888        CorrectionPanel should always use [NSSpellChecker dismissCorrectionBubbleForView].
6889        [NSSpellChecker cancelCorrectionBubbleForView] is reserved for situation where correction panel
6890        is dismissed explicitly by ESC key or clicking the dimiss button. Misusing these causes
6891        incorrect automatic learning.
6892
6893        * UIProcess/mac/CorrectionPanel.mm:
6894        (WebKit::CorrectionPanel::dismissInternal):
6895
68962011-03-24  Brian Weinstein  <bweinstein@apple.com>
6897
6898        Reviewed by Adam Roben.
6899
6900        WebKit2: Add Trackpoint driver hack to support IBM trackpads
6901        https://bugs.webkit.org/show_bug.cgi?id=49830
6902        <rdar://problem/8705951>
6903
6904        Copy code from WebKit1 to WebKit2 to handle initializing fake scrollbars so
6905        IBM machines with a trackpad send us WM_VSCROLL and WM_HSCROLL messages.
6906
6907        Listen for the WM_VSCROLL and WM_HSCROLL messages, and turn the values into
6908        ScrollDirection and ScrollGranularity, and send a scroll command to the
6909        WebProcess.
6910
6911        * UIProcess/WebPageProxy.cpp:
6912        (WebKit::WebPageProxy::scrollBy): Send a message to the WebProcess.
6913        * UIProcess/WebPageProxy.h:
6914        * UIProcess/win/WebView.cpp:
6915        (WebKit::WebView::wndProc): Add WM_VSCROLL and WM_HSCROLL message handling.
6916        (WebKit::WebView::initialize): Call shouldInitializeTrackPointHack.
6917        (WebKit::WebView::onHorizontalScroll): Turn wParam into a ScrollDirection and ScrollGranularity.
6918        (WebKit::WebView::onVerticalScroll): Ditto.
6919        (WebKit::WebView::shouldInitializeTrackPointHack): Check the registry for keys that indicate
6920            the machine has a IBM Trackpoint driver.
6921        * UIProcess/win/WebView.h:
6922        * WebProcess/WebPage/WebPage.cpp:
6923        (WebKit::WebPage::scrollBy): Call scroll method.
6924        (WebKit::WebPage::scroll): Moved from WebPageMac and WebPageWin.
6925        (WebKit::WebPage::logicalScroll): Ditto.
6926        * WebProcess/WebPage/WebPage.h:
6927        * WebProcess/WebPage/WebPage.messages.in: Add a new scrollBy message.
6928        * WebProcess/WebPage/mac/WebPageMac.mm: Remove scroll and logicalScroll, they are now in WebPage.cpp.
6929        * WebProcess/WebPage/win/WebPageWin.cpp: Ditto.
6930
69312011-03-24  Sam Weinig  <sam@webkit.org>
6932
6933        Reviewed by Darin Adler.
6934
6935        Dictionary text extraction is not correctly detecting word boundaries on bing.com
6936        <rdar://problem/9078569>
6937        https://bugs.webkit.org/show_bug.cgi?id=56995
6938
6939        * Shared/DictionaryPopupInfo.cpp:
6940        (WebKit::DictionaryPopupInfo::encode):
6941        (WebKit::DictionaryPopupInfo::decode):
6942        * Shared/DictionaryPopupInfo.h:
6943        Add options dictionary.
6944
6945        * UIProcess/API/mac/PageClientImpl.mm:
6946        (WebKit::PageClientImpl::didPerformDictionaryLookup):
6947        Add path that can pass options through.
6948
6949        * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
6950        (WebKit::WebContextMenuClient::lookUpInDictionary):
6951        Use the new performDictionaryLookupForSelection which can extract context
6952        if supported.
6953
6954        * WebProcess/WebPage/WebPage.h:
6955        * WebProcess/WebPage/mac/WebPageMac.mm:
6956        (WebKit::characterRangeAtPositionForPoint):
6957        (WebKit::characterRangeAtPoint):
6958        Split functionality out of characterRangeAtPoint and into
6959        characterRangeAtPositionForPoint to avoid doing duplicate work
6960        if you already have the position.
6961
6962        (WebKit::isPositionInRange):
6963        (WebKit::shouldUseSelection):
6964        Add predicate to determine if we should use the selection instead
6965        of expanding to find the word we are over.
6966
6967        (WebKit::WebPage::performDictionaryLookupAtLocation):
6968        If available, use the surrounding paragraph as context to get better extraction
6969        and to get lexicographical information about the word. Also, clean up and use
6970        editing APIs to make the code more concise and understandable.
6971
6972        (WebKit::WebPage::performDictionaryLookupForSelection):
6973        Use similar logic as in performDictionaryLookupAtLocation to extract additional
6974        details from a selection for use in the dictionary popup.
6975
6976        (WebKit::WebPage::performDictionaryLookupForRange):
6977        Pass options to WebProcess if available.
6978
69792011-03-24  Jon Lee  <jonlee@apple.com>
6980
6981        Reviewed by Darin Adler.
6982
6983        WebKit2: Tabbing from the last focused field to a non-webpage element leaves the selection in a weird state
6984        <rdar://problem/8553962>
6985
6986        * WebProcess/WebPage/WebPage.cpp:
6987        (WebKit::WebPage::setFocused): When the page loses focus, clear out any selection in the frame
6988
69892011-03-24  Brian Weinstein  <bweinstein@apple.com>
6990
6991        Rubber-stamped by Sam Weinig.
6992
6993        Fix a typo in the VK_LEFT case of performDefaultBehaviorForKeyEvent.
6994
6995        * WebProcess/WebPage/mac/WebPageMac.mm:
6996        (WebKit::WebPage::performDefaultBehaviorForKeyEvent): It should be a logical or,
6997            not a bitwise or.
6998
69992011-03-24  Jeff Miller  <jeffm@apple.com>
7000
7001        Fix typo - USE(CF_NETWORK) should be USE(CFNETWORK).
7002
7003        * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp:
7004        (WebKit::InjectedBundle::setHostAllowsAnyHTTPSCertificate): USE(CF_NETWORK) should be USE(CFNETWORK)
7005
70062011-03-23  Jia Pu  <jpu@apple.com>
7007
7008        Reviewed by Darin Adler.
7009
7010        Hook up new AppKit autocorrection UI with WK2.
7011        https://bugs.webkit.org/show_bug.cgi?id=56055
7012        <rdar://problem/8947463>
7013
7014        Please see WebCore/ChangeLog for detail.
7015
7016        The calls to AppKit are implemented in PageClientImpl. Other changes are necessary for the
7017        plumbing work.
7018
7019        * UIProcess/API/mac/PageClientImpl.h:
7020        * UIProcess/API/mac/PageClientImpl.mm:
7021        (WebKit::PageClientImpl::showCorrectionPanel):
7022        (WebKit::PageClientImpl::dismissCorrectionPanel):
7023        (WebKit::PageClientImpl::dismissCorrectionPanelSoon):
7024        (WebKit::PageClientImpl::recordAutocorrectionResponse):
7025        * UIProcess/API/mac/WKView.mm:
7026        (-[WKView spellCheckerDocumentTag]):
7027        (-[WKView handleCorrectionPanelResult:]):
7028        * UIProcess/API/mac/WKViewPrivate.h:
7029        * UIProcess/PageClient.h:
7030        * UIProcess/WebPageProxy.cpp:
7031        (WebKit::WebPageProxy::didCommitLoadForFrame):
7032        (WebKit::WebPageProxy::showCorrectionPanel):
7033        (WebKit::WebPageProxy::dismissCorrectionPanel):
7034        (WebKit::WebPageProxy::dismissCorrectionPanelSoon):
7035        (WebKit::WebPageProxy::recordAutocorrectionResponse):
7036        (WebKit::WebPageProxy::handleCorrectionPanelResult):
7037        * UIProcess/WebPageProxy.h:
7038        * UIProcess/WebPageProxy.messages.in:
7039        * UIProcess/mac/CorrectionPanel.h: Added.
7040        (WebKit::CorrectionPanel::isShowing):
7041        * UIProcess/mac/CorrectionPanel.mm: Added.
7042        (correctionBubbleType):
7043        (WebKit::CorrectionPanel::CorrectionPanel):
7044        (WebKit::CorrectionPanel::~CorrectionPanel):
7045        (WebKit::CorrectionPanel::show):
7046        (WebKit::CorrectionPanel::dismiss):
7047        (WebKit::CorrectionPanel::dismissSoon):
7048        (WebKit::CorrectionPanel::dismissInternal):
7049        (WebKit::CorrectionPanel::recordAutocorrectionResponse):
7050        * WebKit2.xcodeproj/project.pbxproj:
7051        * WebProcess/WebCoreSupport/WebEditorClient.h:
7052        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
7053        (WebKit::WebEditorClient::showCorrectionPanel):
7054        (WebKit::WebEditorClient::dismissCorrectionPanel):
7055        (WebKit::WebEditorClient::dismissCorrectionPanelSoon):
7056        (WebKit::WebEditorClient::recordAutocorrectionResponse):
7057        * WebProcess/WebPage/WebPage.cpp:
7058        (WebKit::WebPage::handleCorrectionPanelResult):
7059        * WebProcess/WebPage/WebPage.h:
7060        * WebProcess/WebPage/WebPage.messages.in:
7061
70622011-03-23  Brian Weinstein  <bweinstein@apple.com>
7063
7064        Reviewed by Maciej Stachowiak.
7065
7066        WebKit2: Need API to manage the Media Cache
7067        https://bugs.webkit.org/show_bug.cgi?id=56878
7068        <rdar://problem/9082503>
7069
7070        Call through to HTMLMediaElement functions to manage the WebCore media cache.
7071
7072        * WebProcess/MediaCache/WebMediaCacheManager.cpp:
7073        (WebKit::WebMediaCacheManager::getHostnamesWithMediaCache):
7074        (WebKit::WebMediaCacheManager::clearCacheForHostname):
7075        (WebKit::WebMediaCacheManager::clearCacheForAllHostnames):
7076
70772011-03-23  Jeff Miller  <jeffm@apple.com>
7078
7079        Reviewed by Darin Adler.
7080
7081        Add WKBundleSetHostAllowsAnyHTTPSCertificate() for Windows
7082        https://bugs.webkit.org/show_bug.cgi?id=56972
7083
7084        This is the WebKit2 equivalent to the WebKit1 API IWebMutableURLRequest::setAllowsAnyHTTPSCertificate().
7085
7086        * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
7087        (WKBundleSetHostAllowsAnyHTTPSCertificate): Added.
7088        * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Added WKBundleSetHostAllowsAnyHTTPSCertificate().
7089        * WebProcess/InjectedBundle/InjectedBundle.h: Added setHostAllowsAnyHTTPSCertificate().
7090        * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
7091        (WebKit::InjectedBundle::setHostAllowsAnyHTTPSCertificate): Added, should never be called.
7092        * WebProcess/InjectedBundle/mac/InjectedBundleMac.cpp:
7093        (WebKit::InjectedBundle::setHostAllowsAnyHTTPSCertificate): Added, should never be called.
7094        * WebProcess/InjectedBundle/qt/InjectedBundleQt.cpp:
7095        (WebKit::InjectedBundle::setHostAllowsAnyHTTPSCertificate): Added, should never be called.
7096        * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp:
7097        (WebKit::InjectedBundle::setHostAllowsAnyHTTPSCertificate): Added.
7098
70992011-03-23  Sam Weinig  <sam@webkit.org>
7100
7101        Reviewed by Anders Carlsson.
7102
7103        Roll out r81593 Need WebKit2 API for creating a page with a specific main frame name
7104
7105        This API is not necessary.
7106
7107        * Shared/WebPageCreationParameters.cpp:
7108        (WebKit::WebPageCreationParameters::encode):
7109        (WebKit::WebPageCreationParameters::decode):
7110        * Shared/WebPageCreationParameters.h:
7111        * UIProcess/API/mac/WKView.h:
7112        * UIProcess/API/mac/WKView.mm:
7113        (-[WKView initWithFrame:]):
7114        (-[WKView initWithFrame:contextRef:]):
7115        (-[WKView initWithFrame:contextRef:pageGroupRef:]):
7116        * UIProcess/WebPageProxy.cpp:
7117        (WebKit::WebPageProxy::creationParameters):
7118        * UIProcess/WebPageProxy.h:
7119        * WebProcess/WebPage/WebFrame.cpp:
7120        (WebKit::WebFrame::createMainFrame):
7121        * WebProcess/WebPage/WebFrame.h:
7122        * WebProcess/WebPage/WebPage.cpp:
7123        (WebKit::WebPage::WebPage):
7124
71252011-03-23  Balazs Kelemen  <kbalazs@webkit.org>
7126
7127        Reviewed by Andreas Kling.
7128
7129        [WK2] Handle keyboard and mouse events on X11
7130        https://bugs.webkit.org/show_bug.cgi?id=56103
7131
7132        Propagate keyboard and mouse events to the plugin
7133        as XEvent's.
7134
7135        * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
7136        (WebKit::initializeXEvent):
7137        (WebKit::xTimeStamp):
7138        (WebKit::xKeyModifiers):
7139        (WebKit::setCommonMouseEventFields):
7140        (WebKit::setXMotionEventFields):
7141        (WebKit::setXButtonEventFields):
7142        (WebKit::setXCrossingEventFields):
7143        (WebKit::NetscapePlugin::platformHandleMouseEvent):
7144        (WebKit::NetscapePlugin::platformHandleMouseEnterEvent):
7145        (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent):
7146        (WebKit::setXKeyEventFields):
7147        (WebKit::NetscapePlugin::platformHandleKeyboardEvent):
7148
71492011-03-23  Anders Carlsson  <andersca@apple.com>
7150
7151        Reviewed by Sam Weinig.
7152
7153        Connection::SyncMessageState::processIncomingMessage should ignore whether the message is sync or not
7154        https://bugs.webkit.org/show_bug.cgi?id=56954
7155
7156        This is so we'll eventually be able to send sync messages that aren't processed immediately if the
7157        destination is waiting for a reply to another synchronous message.
7158
7159        * Platform/CoreIPC/Connection.cpp:
7160        (CoreIPC::Connection::SyncMessageState::processIncomingMessage):
7161        Only check for the DispatchMessageWhenWaitingForSyncReply flag.
7162
7163        (CoreIPC::Connection::sendSyncMessage):
7164        Add both DispatchMessageWhenWaitingForSyncReply and SyncMessage to the message ID.
7165
7166        * Platform/CoreIPC/Connection.h:
7167        (CoreIPC::Connection::sendSync):
7168        (CoreIPC::Connection::deprecatedSendSync):
7169        No need to add SyncMessage here anymore.
7170
71712011-03-23  Brian Weinstein  <bweinstein@apple.com>
7172
7173        Qt Build Fix.
7174
7175        * DerivedSources.pro:
7176
71772011-03-22  Brian Weinstein  <bweinstein@apple.com>
7178
7179        Reviewed by Darin Adler.
7180
7181        WebKit2: Need API to manage the Media Cache
7182        https://bugs.webkit.org/show_bug.cgi?id=56878
7183        <rdar://problem/9082503>
7184
7185        Project File Fun:
7186        * GNUmakefile.am:
7187        * WebKit2.pri:
7188        * WebKit2.pro:
7189        * WebKit2.xcodeproj/project.pbxproj:
7190        * win/WebKit2.vcproj:
7191        * win/WebKit2Common.vsprops:
7192        * win/WebKit2Generated.make:
7193
7194        Derived Sources and API fun:
7195        * DerivedSources.make:
7196        * DerivedSources.pro:
7197        * Platform/CoreIPC/MessageID.h:
7198        * Shared/API/c/WKBase.h:
7199        * Shared/APIObject.h:
7200        * UIProcess/API/C/WKAPICast.h:
7201
7202        * UIProcess/WebProcessProxy.cpp:
7203        (WebKit::WebProcessProxy::didReceiveMessage): Add a case for MediaCache messages.
7204        * WebProcess/WebProcess.cpp:
7205        (WebKit::WebProcess::didReceiveMessage): Ditto.
7206
7207        * UIProcess/WebContext.cpp:
7208        (WebKit::WebContext::WebContext): Initialize the WebMediaCacheManagerProxy member variable.
7209        (WebKit::WebContext::~WebContext): Invalidate the WebMediaCacheManagerProxy.
7210        (WebKit::WebContext::disconnectProcess): Ditto.
7211        (WebKit::WebContext::didReceiveMessage): Add a case for MediaCache messages.
7212        * UIProcess/WebContext.h:
7213        (WebKit::WebContext::mediaCacheManagerProxy):
7214
7215        * UIProcess/API/C/WKContext.cpp:
7216        (WKContextGetMediaCacheManager): Returns the context's WebMediaCacheManager.
7217        * UIProcess/API/C/WKContext.h:
7218
7219        * UIProcess/API/C/WKMediaCacheManager.cpp: Added.
7220        (WKMediaCacheManagerGetTypeID): Returns the WebMediaCacheManagerProxy type.
7221        (WKMediaCacheManagerGetHostnamesWithMediaCache): Calls down to the WebMediaCacheManagerProxy.
7222        (WKMediaCacheManagerClearCacheForHostname): Ditto.
7223        (WKMediaCacheManagerClearCacheForAllHostnames): Ditto.
7224        * UIProcess/API/C/WKMediaCacheManager.h: Added.
7225
7226        * UIProcess/WebMediaCacheManagerProxy.cpp: Added.
7227        (WebKit::WebMediaCacheManagerProxy::create):
7228        (WebKit::WebMediaCacheManagerProxy::WebMediaCacheManagerProxy):
7229        (WebKit::WebMediaCacheManagerProxy::~WebMediaCacheManagerProxy):
7230        (WebKit::WebMediaCacheManagerProxy::invalidate):
7231        (WebKit::WebMediaCacheManagerProxy::didReceiveMessage):
7232        (WebKit::WebMediaCacheManagerProxy::getHostnamesWithMediaCache): Call through to the WebProcess.
7233        (WebKit::WebMediaCacheManagerProxy::didGetHostnamesWithMediaCache): Process the WebProcess response,
7234            and call the callback.
7235        (WebKit::WebMediaCacheManagerProxy::clearCacheForHostname): Call through to the WebProcess.
7236        (WebKit::WebMediaCacheManagerProxy::clearCacheForAllHostnames): Call through to the WebProcess.
7237        * UIProcess/WebMediaCacheManagerProxy.h: Added.
7238        (WebKit::WebMediaCacheManagerProxy::clearContext):
7239        (WebKit::WebMediaCacheManagerProxy::type):
7240        * UIProcess/WebMediaCacheManagerProxy.messages.in: Added.
7241
7242        * WebProcess/MediaCache: Added.
7243        * WebProcess/MediaCache/WebMediaCacheManager.cpp: Added.
7244        (WebKit::WebMediaCacheManager::shared):
7245        (WebKit::WebMediaCacheManager::WebMediaCacheManager):
7246        (WebKit::WebMediaCacheManager::didReceiveMessage):
7247        (WebKit::WebMediaCacheManager::getHostnamesWithMediaCache): Added a FIXME to call through to WebCore.
7248        (WebKit::WebMediaCacheManager::clearCacheForHostname): Ditto.
7249        (WebKit::WebMediaCacheManager::clearCacheForAllHostnames): Ditto.
7250        * WebProcess/MediaCache/WebMediaCacheManager.h: Added.
7251        * WebProcess/MediaCache/WebMediaCacheManager.messages.in: Added.
7252
72532011-03-22  Brady Eidson  <beidson@apple.com>
7254
7255        Reviewed by Sam Weinig.
7256
7257        Add asynchronous load decision call to WebKit2 IconDatabase
7258        https://bugs.webkit.org/show_bug.cgi?id=56887
7259
7260        * UIProcess/WebIconDatabase.cpp:
7261        (WebKit::WebIconDatabase::getLoadDecisionForIconURL): In the future, get the actual load decision from the database.
7262          For now, always message "IconLoadNo" back to the WebProcess.
7263        * UIProcess/WebIconDatabase.h:
7264        * UIProcess/WebIconDatabase.messages.in:
7265
7266        * WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
7267        (WebKit::WebIconDatabaseProxy::loadDecisionForIconURL): Message the UIProcess for the load decision.
7268        (WebKit::WebIconDatabaseProxy::receivedIconLoadDecision): Callback into WebCore with the received load decision.
7269        * WebProcess/IconDatabase/WebIconDatabaseProxy.h:
7270        * WebProcess/IconDatabase/WebIconDatabaseProxy.messages.in:
7271
72722011-03-23  Chris Fleizach  <cfleizach@apple.com>
7273
7274        Reviewed by Darin Adler.
7275
7276        REGRESSION: WK2: AX: PDF in Safari no longer accessible.
7277        https://bugs.webkit.org/show_bug.cgi?id=56849
7278
7279        The WKView needs to know when to return the WKPDFView and when to return
7280        the remote web process connection.
7281
7282        * UIProcess/API/mac/PDFViewController.h:
7283        (WebKit::PDFViewController::pdfView):
7284        * UIProcess/API/mac/WKView.mm:
7285        (-[WKView accessibilityFocusedUIElement]):
7286        (-[WKView accessibilityHitTest:]):
7287        (-[WKView accessibilityAttributeValue:]):
7288
72892011-03-21  Stephanie Lewis  <slewis@apple.com>
7290
7291        Reviewed by Simon Fraser.
7292
7293        https://bugs.webkit.org/show_bug.cgi?id=56798
7294        Wrap autorelease pools around calls that can have pathological memory growth on Membuster.
7295        Only wrap the main runloop because some background threads are not expected to call into
7296        objc and an autorelease pool could mask bugs.
7297
7298        * Platform/mac/RunLoopMac.mm:
7299        (RunLoop::performWork):
7300        (RunLoop::TimerBase::timerFired):
7301        * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
7302        (WebKit::LayerTreeHostMac::flushPendingLayerChangesRunLoopObserverCallback):
7303
73042011-03-22  Anders Carlsson  <andersca@apple.com>
7305
7306        Reviewed by Sam Weinig.
7307
7308        OBJECT element with DivX source is always downloaded
7309        https://bugs.webkit.org/show_bug.cgi?id=56879
7310
7311        * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
7312        (WebKit::getPluginInfoFromPropertyLists):
7313        Always try to split every element in the "WebPluginExtensions" array, since the DivX plug-in
7314        specifies multiple file extensions in a single element.
7315
7316        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
7317        (WebKit::pluginSupportsExtension):
7318        Add a new helper function.
7319
7320        (WebKit::WebFrameLoaderClient::objectContentType):
7321        If we can't find the MIME for an extension, explicitly check if there's a plugin that claims to
7322        handle the given extension.
7323
73242011-03-22  Brady Eidson  <beidson@apple.com>
7325
7326        Reviewed by Sam Weinig.
7327
7328        Rename the synchronous icon database messages to be prefixed with "synchronous"
7329
7330        * UIProcess/WebIconDatabase.cpp:
7331        (WebKit::WebIconDatabase::synchronousIconDataForPageURL):
7332        (WebKit::WebIconDatabase::synchronousIconURLForPageURL):
7333        (WebKit::WebIconDatabase::synchronousIconDataKnownForIconURL):
7334        (WebKit::WebIconDatabase::synchronousLoadDecisionForIconURL):
7335        * UIProcess/WebIconDatabase.h:
7336        * UIProcess/WebIconDatabase.messages.in:
7337
7338        * WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
7339        (WebKit::WebIconDatabaseProxy::synchronousIconForPageURL):
7340
73412011-03-22  Sam Weinig  <sam@webkit.org>
7342
7343        Rubber-stamped by Anders Carlsson.
7344
7345        Loading a new tab does not dismiss Lookup
7346        <rdar://problem/9138391>
7347
7348        * UIProcess/API/mac/WKView.mm:
7349        (-[WKView viewDidMoveToWindow]):
7350        Hide the dictionary popup when moving the WKView out of a window.
7351
73522011-03-22  Anders Carlsson  <andersca@apple.com>
7353
7354        Reviewed by Sam Weinig.
7355
7356        Microsoft Silverlight playback shows artifacts
7357        https://bugs.webkit.org/show_bug.cgi?id=56863
7358        <rdar://problem/9103136>
7359
7360        * PluginProcess/PluginControllerProxy.cpp:
7361        (WebKit::PluginControllerProxy::paint):
7362        If the plug-in is transparent, clear the dirty rect before painting.
7363
7364        * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
7365        (WebKit::NetscapePluginModule::determineQuirks):
7366        Add the MakeTransparentIfBackgroundAttributeExists quirk for Silverlight plug-ins.
7367
7368        * Shared/Plugins/PluginQuirks.h:
7369        Add MakeTransparentIfBackgroundAttributeExists quirk.
7370
7371        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
7372        (WebKit::NPN_SetValue):
7373        Handle NPPVpluginTransparentBool.
7374
7375        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
7376        (WebKit::NetscapePlugin::NetscapePlugin):
7377        Initialize m_isTransparent to false.
7378
7379        (WebKit::NetscapePlugin::setIsTransparent):
7380        Set m_isTransparent.
7381
7382        (WebKit::NetscapePlugin::initialize):
7383        If the plug-in has the MakeTransparentIfBackgroundAttributeExists quirk, make it transparent
7384        if there's a 'background' attribute.
7385
7386        (WebKit::NetscapePlugin::isTransparent):
7387        Add getter.
7388
7389        * WebProcess/Plugins/Plugin.h:
7390        Add isTransparent().
7391
7392        * WebProcess/Plugins/PluginProxy.cpp:
7393        (WebKit::PluginProxy::paint):
7394        Always copy the plug-in backing store to the plug-in proxy backing store.
7395
7396        (WebKit::PluginProxy::isTransparent):
7397        Add getter that should never be called.
7398
7399        (WebKit::PluginProxy::update):
7400        Always copy the plug-in backing store to the plug-in proxy backing store.
7401
74022011-03-22  Anders Carlsson  <andersca@apple.com>
7403
7404        Reviewed by Sam Weinig.
7405
7406        Crash when calling PluginProxy::evaluate on a destroyed plug-in
7407        https://bugs.webkit.org/show_bug.cgi?id=56848
7408        <rdar://problem/9168975>
7409
7410        Return early if the NPObject doesn't exist anymore.
7411
7412        * WebProcess/Plugins/PluginProxy.cpp:
7413        (WebKit::PluginProxy::evaluate):
7414
74152011-03-22  Sam Weinig  <sam@webkit.org>
7416
7417        Reviewed by Adam Roben.
7418
7419        WebKit2: Cannot make a selection past the end of the visible page (no autoscrolling)
7420        <rdar://problem/8823874>
7421        https://bugs.webkit.org/show_bug.cgi?id=56847
7422
7423        * Shared/mac/WebEventFactory.mm:
7424        (WebKit::currentMouseButton):
7425        (WebKit::mouseButtonForEvent):
7426        Add mouse button for mouseEnter/Exit events. [NSEvent buttonNumber] doesn't seem to give the right result
7427        for these events, but getting the currentMouseButton does work.
7428
74292011-03-21  Brady Eidson  <beidson@apple.com>
7430
7431        Fix Mac release builds after https://bugs.webkit.org/show_bug.cgi?id=56783
7432
7433        * Platform/mac/Logging.mac.mm:
7434
74352011-03-21  Brady Eidson  <beidson@apple.com>
7436
7437        Reviewed by Brian Weinstein.
7438
7439        https://bugs.webkit.org/show_bug.cgi?id=56783
7440        Actually hook up WebKit2 logging on Mac.
7441
7442        * Platform/Logging.cpp:
7443        (WebKit::initializeLogChannel):
7444        * Platform/Logging.h:
7445        * Platform/mac/Logging.mac.mm: Added.
7446        (WebKit::initializeLogChannel):
7447
7448       * UIProcess/WebContext.cpp:
7449        (WebKit::WebContext::WebContext): Initialize logging if necessary.
7450
7451        * WebKit2.xcodeproj/project.pbxproj:
7452
74532011-03-21  Alexey Proskuryakov  <ap@apple.com>
7454
7455        Reviewed by Darin Adler.
7456
7457        REGRESSION (r81269): WebKit2 gets into an infinite recursion after an unhandled command key
7458        https://bugs.webkit.org/show_bug.cgi?id=56782
7459        <rdar://problem/9151993>
7460
7461        * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::doneWithKeyEvent):
7462        Factored out code for resending an event and moved it to WKView.
7463
7464        * UIProcess/API/mac/WKView.mm:
7465        (-[WKView performKeyEquivalent:]): Don't zero out _keyDownEventBeingResent, it's easier
7466        to just do that in _resendKeyDownEvent:.
7467        (-[WKView keyDown:]): Ditto.
7468        (-[WKView _resendKeyDownEvent:]): Moved from PageClientImpl.mm. Added an assertion that we
7469        are not already resending an event - it would be too confusing if we ever had to do that,
7470        but looks like this never happens.
7471
7472        * UIProcess/API/mac/WKViewInternal.h: Exposed _resendKeyDownEvent.
7473
74742011-03-21  Anders Carlsson  <andersca@apple.com>
7475
7476        Reviewed by Sam Weinig.
7477
7478        QT plug-in fails to load contextual menu
7479        https://bugs.webkit.org/show_bug.cgi?id=56777
7480        <rdar://problem/8979033>
7481
7482        Open a Carbon resource map and make it the current map when calling NP_Initialize.
7483
7484        * Platform/Module.cpp:
7485        (WebKit::Module::Module):
7486        Initialize m_bundleResourceMap to -1.
7487
7488        * Platform/Module.h:
7489        Add m_bundleResourceMap.
7490
7491        * Platform/mac/ModuleMac.mm:
7492        (WebKit::Module::unload):
7493        Close the resource map.
7494
7495        (WebKit::Module::bundleResourceMap):
7496        Open a resource map if necessary.
7497
7498        * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
7499        (WebKit::NetscapePluginModule::tryLoad):
7500        Get the resource map and make it current before calling NP_Initialize.
7501
75022011-03-21  Anders Carlsson  <andersca@apple.com>
7503
7504        Reviewed by Sam Weinig.
7505
7506        Plug-in process crashes if it fails to load a plug-in module
7507        https://bugs.webkit.org/show_bug.cgi?id=56775
7508
7509        * PluginProcess/PluginControllerProxy.cpp:
7510        (WebKit::PluginControllerProxy::initialize):
7511        If NetscapePlugin::create returns null, call removePluginControllerProxy with a null plug-in.
7512
7513        * PluginProcess/WebProcessConnection.cpp:
7514        (WebKit::WebProcessConnection::removePluginControllerProxy):
7515        Remove an incorrect assertion. Don't invalidate the remote object map if the plug-in is null.
7516
75172011-03-21  Anders Carlsson  <andersca@apple.com>
7518
7519        Reviewed by Sam Weinig.
7520
7521        QT plug-in loads controller at top of movie not bottom
7522        https://bugs.webkit.org/show_bug.cgi?id=56764
7523        <rdar://problem/8979037>
7524
7525        Create a layer with geometryFlipped set and add the plug-in layer as a sublayer,
7526        matching WebKit1.
7527
7528        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
7529        (WebKit::NetscapePlugin::platformPostInitialize):
7530
75312011-03-21  Sam Weinig  <sam@webkit.org>
7532
7533        Reviewed by Anders Carlsson.
7534
7535        WebKit2 needs preferences to change security knobs
7536        https://bugs.webkit.org/show_bug.cgi?id=56762
7537
7538        Add preferences for WebSecurityEnabled, UniversalAccessFromFileURLsAllowed
7539        and FileAccessFromFileURLsAllowed.
7540
7541        * Shared/WebPreferencesStore.h:
7542        * UIProcess/API/C/WKPreferences.cpp:
7543        (WKPreferencesSetWebSecurityEnabled):
7544        (WKPreferencesGetWebSecurityEnabled):
7545        (WKPreferencesSetUniversalAccessFromFileURLsAllowed):
7546        (WKPreferencesGetUniversalAccessFromFileURLsAllowed):
7547        (WKPreferencesSetFileAccessFromFileURLsAllowed):
7548        (WKPreferencesGetFileAccessFromFileURLsAllowed):
7549        * UIProcess/API/C/WKPreferencesPrivate.h:
7550        * WebProcess/WebPage/WebPage.cpp:
7551        (WebKit::WebPage::updatePreferences):
7552
75532011-03-21  Sam Weinig  <sam@webkit.org>
7554
7555        Reviewed by Anders Carlsson.
7556
7557        Remove old DrawingArea and LayerHostingView code from WKView.
7558
7559        * UIProcess/API/mac/WKView.mm:
7560        (-[WKView drawRect:]):
7561        (-[WKView hitTest:]):
7562        (-[WKView WebKit::]):
7563
75642011-03-21  Sam Weinig  <sam@webkit.org>
7565
7566        Reviewed by Anders Carlsson.
7567
7568        Need WebKit2 API for creating a page with a specific main frame name
7569        https://bugs.webkit.org/show_bug.cgi?id=56759
7570
7571        * Shared/WebPageCreationParameters.cpp:
7572        (WebKit::WebPageCreationParameters::encode):
7573        (WebKit::WebPageCreationParameters::decode):
7574        * Shared/WebPageCreationParameters.h:
7575        Add mainFrameName to creation parameters.
7576
7577        * UIProcess/API/mac/WKView.h:
7578        * UIProcess/API/mac/WKView.mm:
7579        (-[WKView initWithFrame:]):
7580        (-[WKView initWithFrame:contextRef:]):
7581        (-[WKView initWithFrame:contextRef:pageGroupRef:]):
7582        (-[WKView initWithFrame:contextRef:pageGroupRef:mainFrameName:]):
7583        Add new initializer which takes a main frame name.
7584
7585        * UIProcess/WebPageProxy.cpp:
7586        (WebKit::WebPageProxy::setMainFrameName):
7587        (WebKit::WebPageProxy::creationParameters):
7588        * UIProcess/WebPageProxy.h:
7589        Store the main frame name for initialization/re-initialization.
7590
7591        * WebProcess/WebPage/WebFrame.cpp:
7592        (WebKit::WebFrame::createMainFrame):
7593        * WebProcess/WebPage/WebFrame.h:
7594        * WebProcess/WebPage/WebPage.cpp:
7595        (WebKit::WebPage::WebPage):
7596        Pass the name to main frame creation.
7597
75982011-03-20  Bill Budge  <bbudge@chromium.org>
7599
7600        Reviewed by Adam Barth.
7601
7602        Rename ThreadSafeShared to ThreadSafeRefCounted
7603        https://bugs.webkit.org/show_bug.cgi?id=56714
7604
7605        No new tests. Exposes no new functionality.
7606
7607        * Platform/CoreIPC/Connection.h:
7608        * Platform/WorkQueue.h:
7609        * Platform/win/WorkQueueWin.cpp:
7610        * UIProcess/Launcher/ProcessLauncher.h:
7611        * UIProcess/Launcher/ThreadLauncher.h:
7612
76132011-03-19  Anton D'Auria  <adauria@apple.com>
7614
7615        Reviewed by Alexey Proskuryakov.
7616
7617        ApplicationCacheGroup is not obsolete after being deleted via ApplicationCacheStorage::deleteEntriesForOrigin
7618        https://bugs.webkit.org/show_bug.cgi?id=56415
7619
7620        * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp: calling ApplicationCacheGroup::deleteCacheGroupsForOrigin
7621        instead of ApplicationCacheStorage::deleteEntriesForOrigin.
7622        (WebKit::WebApplicationCacheManager::deleteEntriesForOrigin):
7623
76242011-03-18  Sam Weinig  <sam@webkit.org>
7625
7626        Attempt to fix the WinCairo build.
7627
7628        * win/WebKit2.vcproj:
7629
76302011-03-18  Anders Carlsson  <andersca@apple.com>
7631
7632        Reviewed by Dan Bernstein.
7633
7634        Empty gray page after going back from a PDF
7635        https://bugs.webkit.org/show_bug.cgi?id=56694
7636        <rdar://problem/8811854>
7637
7638        Update m_frameHasCustomRepresentation when loading a page that's in the page cache.
7639
7640        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
7641        (WebKit::WebFrameLoaderClient::transitionToCommittedFromCachedFrame):
7642
76432011-03-18  Anders Carlsson  <andersca@apple.com>
7644
7645        Reviewed by Sam Weinig.
7646
7647        Crash when sending a sync message ends up invalidating the connection
7648        https://bugs.webkit.org/show_bug.cgi?id=56686
7649        <rdar://problem/9048781>
7650
7651        Guard against a null client.
7652
7653        * Platform/CoreIPC/Connection.cpp:
7654        (CoreIPC::Connection::sendSyncMessage):
7655
76562011-03-18  Balazs Kelemen  <kbalazs@webkit.org>
7657
7658        Reviewed by Benjamin Poulain.
7659
7660        [Qt][WK2] Need a way to debug the web process after the UI process dies
7661        https://bugs.webkit.org/show_bug.cgi?id=56116
7662
7663        Allow the web process to outlive it's parent process
7664        in debug builds if the QT_WEBKIT_KEEP_ALIVE_WEB_PROCESS
7665        environment variable is set.
7666
7667        * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
7668        (WebKit::QtWebProcess::setupChildProcess): Used getenv
7669        since the prctl call is already in a Linux-only block
7670        and the implementation in this file is a candidate
7671        for sharing across ports in the future.
7672
76732011-03-18  Darin Adler  <darin@apple.com>
7674
7675        Reviewed by Anders Carlsson.
7676
7677        Command-period does not stop load when page has focus in WebKit2
7678        https://bugs.webkit.org/show_bug.cgi?id=56601
7679
7680        * UIProcess/API/mac/WKView.mm:
7681        (-[WKView doCommandBySelector:]): If called outside interpretKeyEvents,
7682        call through to super.
7683        (-[WKView insertText:]): Assert that we are inside interpretKeyEvents.
7684        (-[WKView unmarkText]): Ditto.
7685        (-[WKView setMarkedText:selectedRange:]): Ditto.
7686        (-[WKView _interceptKeyEvent:]): Set a flag to indicate we are inside
7687        interpretKeyEvents for use by the above.
7688
76892011-03-18  Brady Eidson  <beidson@apple.com>
7690
7691        Reviewed by Sam Weinig.
7692
7693        https://bugs.webkit.org/show_bug.cgi?id=56425
7694        More groundwork for WebKit2 IconDatabase
7695
7696        -Update the synchronous method names to be prefixed with "synchronous."
7697        -Add empty implementations for the asynchronous accessors.
7698
7699        * WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
7700        (WebKit::WebIconDatabaseProxy::setEnabled):
7701        (WebKit::WebIconDatabaseProxy::synchronousIconForPageURL):
7702        (WebKit::WebIconDatabaseProxy::synchronousIconURLForPageURL):
7703        (WebKit::WebIconDatabaseProxy::synchronousIconDataKnownForIconURL):
7704        (WebKit::WebIconDatabaseProxy::synchronousLoadDecisionForIconURL):
7705        (WebKit::WebIconDatabaseProxy::supportsAsynchronousMode):
7706        (WebKit::WebIconDatabaseProxy::loadDecisionForIconURL):
7707        (WebKit::WebIconDatabaseProxy::iconDataForIconURL):
7708        * WebProcess/IconDatabase/WebIconDatabaseProxy.h:
7709
77102011-03-18  Alejandro G. Castro  <alex@igalia.com>
7711
7712        Reviewed by Martin Robinson.
7713
7714        Fixed compilation after r80925.
7715
7716        * GNUmakefile.am:
7717        * UIProcess/gtk/WebFullScreenManagerProxyGtk.cpp: Added.
7718        (WebKit::WebFullScreenManagerProxy::enterFullScreen):
7719        (WebKit::WebFullScreenManagerProxy::exitFullScreen):
7720        (WebKit::WebFullScreenManagerProxy::beganEnterFullScreenAnimation):
7721        (WebKit::WebFullScreenManagerProxy::finishedEnterFullScreenAnimation):
7722        (WebKit::WebFullScreenManagerProxy::beganExitFullScreenAnimation):
7723        (WebKit::WebFullScreenManagerProxy::finishedExitFullScreenAnimation):
7724        (WebKit::WebFullScreenManagerProxy::enterAcceleratedCompositingMode):
7725        (WebKit::WebFullScreenManagerProxy::exitAcceleratedCompositingMode):
7726        (WebKit::WebFullScreenManagerProxy::getFullScreenRect):
7727        * WebProcess/FullScreen/gtk/WebFullScreenManagerGtk.cpp: Added.
7728        (WebKit::WebFullScreenManagerGtk::WebFullScreenManagerGtk):
7729        (WebKit::WebFullScreenManager::create):
7730        (WebKit::WebFullScreenManagerGtk::setRootFullScreenLayer):
7731        (WebKit::WebFullScreenManagerGtk::beginEnterFullScreenAnimation):
7732        (WebKit::WebFullScreenManagerGtk::beginExitFullScreenAnimation):
7733        * WebProcess/FullScreen/gtk/WebFullScreenManagerGtk.h: Added.
7734
77352011-03-18  Alejandro G. Castro  <alex@igalia.com>
7736
7737        Unreviewed, fixed compilation after r81208.
7738
7739        * GNUmakefile.am:
7740
77412011-03-18  John Sullivan  <sullivan@apple.com>
7742
7743        Reviewed by Dan Bernstein.
7744
7745        https://bugs.webkit.org/show_bug.cgi?id=56645
7746        Assertion fires when hidden Find-on-Page matches are encountered in WebKit2
7747
7748        * WebProcess/WebPage/FindController.cpp:
7749        (WebKit::FindController::updateFindIndicator):
7750        Bail out if the selection rect is empty, before trying to generate an appropriately-sized
7751        bitmap. (Previously it was bailing out afterwards, but encountering an assertion in debug
7752        builds along the way.)
7753
77542011-03-18  Mark Rowe  <mrowe@apple.com>
7755
7756        Rubber-stamped by Jon Honeycutt.
7757
7758        <rdar://problem/9153929> PluginProcess fails to launch due to PluginProcessShim.dylib building for 64-bit only
7759
7760        Fix a bogus change from r81392 that made PluginProcessShim.xcconfig import DebugRelease.xcconfig.
7761        As its name suggests, DebugRelease.xcconfig is only applicable for the debug and release configurations.
7762        It overrides the valid build architectures and also restricts the build to only the active architecture.
7763
7764        * Configurations/PluginProcessShim.xcconfig: Import BaseTarget.xcconfig instead. This is what
7765        each target-specific .xcconfig file should import.
7766
77672011-03-17  Mark Rowe  <mrowe@apple.com>
7768
7769        Fix the build.
7770
7771        * WebKit2.xcodeproj/project.pbxproj:
7772
77732011-03-17  Anders Carlsson  <andersca@apple.com>
7774
7775        Reviewed by Sam Weinig.
7776
7777        Implement PluginProcessProxy::setFullscreenWindowIsShowing
7778        https://bugs.webkit.org/show_bug.cgi?id=56618
7779
7780        * UIProcess/Plugins/PluginProcessProxy.cpp:
7781        (WebKit::PluginProcessProxy::PluginProcessProxy):
7782        Initialize m_fullscreenWindowIsShowing.
7783
7784        (WebKit::PluginProcessProxy::didClose):
7785        if m_fullscreenWindowIsShowing is true, call exitFullscreen.
7786
7787        * UIProcess/Plugins/PluginProcessProxy.h:
7788        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
7789        (WebKit::PluginProcessProxy::getPluginProcessSerialNumber):
7790        Add helper function for getting a PSN for the plug-in process.
7791
7792        (WebKit::PluginProcessProxy::makePluginProcessTheFrontProcess):
7793        Make the plug-in process the front process.
7794
7795        (WebKit::PluginProcessProxy::makeUIProcessTheFrontProcess):
7796        Make the current process (the UI process) the front process.
7797
7798        (WebKit::PluginProcessProxy::setFullscreenWindowIsShowing):
7799        Call enterFullscreen or exitFullscreen.
7800
7801        (WebKit::PluginProcessProxy::enterFullscreen):
7802        Make the plug-in process the front process and hide the menu bar.
7803
7804        (WebKit::PluginProcessProxy::exitFullscreen):
7805        Show the menu bar and if necessary make the UI process the front process.
7806
7807        (WebKit::PluginProcessProxy::endModal):
7808        call makeUIProcessTheFrontProcess.
7809
7810        (WebKit::PluginProcessProxy::applicationDidBecomeActive):
7811        Call makePluginProcessTheFrontProcess.
7812
78132011-03-17  Adam Roben  <aroben@apple.com>
7814
7815        Make bidi text in <select> menus in WebKit2 on Windows match WebKit1
7816
7817        Fixes <http://webkit.org/b/56614> 3 <select> bidi tests failing on Windows 7 Release
7818        (WebKit2 Tests)
7819
7820        Reviewed by Sam Weinig.
7821
7822        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
7823        (WebKit::WebChromeClient::selectItemWritingDirectionIsNatural):
7824        (WebKit::WebChromeClient::selectItemAlignmentFollowsMenuWritingDirection):
7825        On Windows, return the same values we return in WebKit1.
7826
78272011-03-17  Anders Carlsson  <andersca@apple.com>
7828
7829        Reviewed by Sam Weinig.
7830
7831        Implement PluginProcessProxy::setModalWindowIsShowing
7832        https://bugs.webkit.org/show_bug.cgi?id=56615
7833
7834        * UIProcess/Plugins/PluginProcessProxy.cpp:
7835        (WebKit::PluginProcessProxy::PluginProcessProxy):
7836        Initialize m_modalWindowIsShowing.
7837
7838        (WebKit::PluginProcessProxy::didClose):
7839        If m_modalWindowIsShowing is true, we must call endModal.
7840
7841        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
7842        (-[WKPlaceholderModalWindow _wantsUserAttention]):
7843        Add a WKPlaceholderModalWindow.
7844
7845        (WebKit::PluginProcessProxy::setModalWindowIsShowing):
7846        Call beginModal or endModal depending on whether we're showing a modal window or not.
7847
7848        (WebKit::PluginProcessProxy::beginModal):
7849        Create a fake window and start a nested run loop. Listen for NSApplicationWillBecomeActiveNotification notifications.
7850
7851        (WebKit::PluginProcessProxy::endModal):
7852        Tear down the window and the run loop.
7853
7854        (WebKit::PluginProcessProxy::applicationDidBecomeActive):
7855        Make sure that the plug-in process is frontmost.
7856
78572011-03-17  Jeff Miller  <jeffm@apple.com>
7858
7859        Reviewed by Adam Roben.
7860
7861        Web page shouldn't swallow alt-key combinations on Windows
7862        https://bugs.webkit.org/show_bug.cgi?id=56612
7863
7864        Make Alt+Left Arrow and Alt+Right Arrow go back and forward, but make
7865        sure any alt-key combinations bubble up to the client.
7866
7867        * WebProcess/WebPage/win/WebPageWin.cpp:
7868        (WebKit::WebPage::performDefaultBehaviorForKeyEvent): Make Alt+Left Arrow and Alt+Right Arrow go back and forward, ignore any other alt-key combinations.
7869
78702011-03-17  Anders Carlsson  <andersca@apple.com>
7871
7872        Reviewed by Sam Weinig.
7873
7874        Send SetModalWindowIsShowing and SetFullscreenWindowIsShowing messages to the UI process
7875        https://bugs.webkit.org/show_bug.cgi?id=56610
7876
7877        * PluginProcess/mac/PluginProcessMac.mm:
7878        (WebKit::FullscreenWindowTracker::FullscreenWindowTracker):
7879        Add fullscreen window tracker class.
7880
7881        (WebKit::rectCoversAnyScreen):
7882        Return whether the given rect covers any screen.
7883
7884        (WebKit::windowCoversAnyScreen):
7885        Return whether the given window covers any screen.
7886
7887        (WebKit::FullscreenWindowTracker::windowShown):
7888        If we're showing a fullscreen window, call PluginProcess::setFullscreenWindowIsShowing.
7889
7890        (WebKit::FullscreenWindowTracker::windowHidden):
7891        If we're hiding the last fullscreen window, call PluginProcess::setFullscreenWindowIsShowing.
7892
7893        (WebKit::cocoaWindowShown):
7894        (WebKit::cocoaWindowHidden):
7895        (WebKit::carbonWindowShown):
7896        (WebKit::carbonWindowHidden):
7897        Call the window tracking functions.
7898
7899        (WebKit::setModal):
7900        Call PluginProcess::setModalWindowIsShowing.
7901
7902        (WebKit::PluginProcess::setModalWindowIsShowing):
7903        (WebKit::PluginProcess::setFullscreenWindowIsShowing):
7904        Send CoreIPC messages.
7905
7906        * UIProcess/Plugins/PluginProcessProxy.h:
7907        * UIProcess/Plugins/PluginProcessProxy.messages.in:
7908        Add new messages.
7909
7910        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
7911        (WebKit::PluginProcessProxy::setModalWindowIsShowing):
7912        (WebKit::PluginProcessProxy::setFullscreenWindowIsShowing):
7913        Add stubs.
7914
79152011-03-17  Sam Weinig  <sam@webkit.org>
7916
7917        Reviewed by Brady Eidson.
7918
7919        Allow passing a certificate chain as a user message
7920        <rdar://problem/8951709>
7921        https://bugs.webkit.org/show_bug.cgi?id=56605
7922
7923        * Shared/API/c/mac/WKCertificateInfoMac.h:
7924        * Shared/API/c/mac/WKCertificateInfoMac.mm:
7925        (WKCertificateInfoCreateWithCertficateChain):
7926        Added. Creates a WKCertificate from a certificate chain.
7927
7928        * Shared/UserMessageCoders.h:
7929        (WebKit::UserMessageEncoder::baseEncode):
7930        (WebKit::UserMessageDecoder::baseDecode):
7931        Add encoding/decoding of WebCertificateInfo.
7932
79332011-03-17  Anders Carlsson  <andersca@apple.com>
7934
7935        Reviewed by Sam Weinig.
7936
7937        Add PluginProcessShim hooks for when windows are shown and hidden
7938        https://bugs.webkit.org/show_bug.cgi?id=56597
7939
7940        * Configurations/PluginProcessShim.xcconfig:
7941        Add HEADER_SEARCH_PATHS so we can find WebKitSystemInterface.h.
7942
7943        * PluginProcess/mac/PluginProcessMac.mm:
7944        (WebKit::cocoaWindowShown):
7945        (WebKit::cocoaWindowHidden):
7946        (WebKit::carbonWindowShown):
7947        (WebKit::carbonWindowHidden):
7948        (WebKit::setModal):
7949        (WebKit::PluginProcess::initializeShim):
7950        Add empty stubs.
7951
7952        * PluginProcess/mac/PluginProcessShim.h:
7953        * PluginProcess/mac/PluginProcessShim.mm:
7954        (WebKit::beginModal):
7955        (WebKit::endModal):
7956        Keep a modal count and call setModal accordingly.
7957
7958        (WebKit::shim_NSApplication_RunModalForWindow):
7959        (WebKit::shimModalDialog):
7960        (WebKit::shimAlert):
7961        Call beginModal/endModal.
7962
7963        (WebKit::shimShowWindow):
7964        (WebKit::shimHideWindow):
7965        Call the shim functions.
7966
7967        (WebKit::WebKitPluginProcessShimInitialize):
7968        Listen for notifications and call the necessary shim functions.
7969
7970        * WebKit2.xcodeproj/project.pbxproj:
7971        Link the plug-in process shim with AppKit and QuartzCore and WKSI.
7972
79732011-03-17  Jeff Miller  <jeffm@apple.com>
7974
7975        Use a consistent set of file patterns in the svn:ignore property for all .xcodeproj directories, specifically:
7976
7977        *.mode*
7978        *.pbxuser
7979        *.perspective*
7980        project.xcworkspace
7981        xcuserdata
7982
7983        * WebKit2.xcodeproj: Modified property svn:ignore.
7984
79852011-03-17  Sam Weinig  <sam@webkit.org>
7986
7987        Reviewed by Anders Carlsson.
7988
7989        WKErrors need the PeerCertificateChain for certificate errors
7990        <rdar://problem/8951784>
7991        https://bugs.webkit.org/show_bug.cgi?id=56592
7992
7993        * Shared/WebCoreArgumentCoders.h:
7994        Special case encoding/decoding of ResourceErrors for the mac.
7995
7996        * Shared/mac/PlatformCertificateInfo.h:
7997        * Shared/mac/PlatformCertificateInfo.mm:
7998        (WebKit::PlatformCertificateInfo::PlatformCertificateInfo):
7999        Add constructor that take the PeerCertificateChain as CFArrayRef.
8000
8001        * Shared/mac/WebCoreArgumentCodersMac.mm:
8002        (CoreIPC::encodeResourceError):
8003        (CoreIPC::decodeResourceError):
8004        Add encode/decode for ResourceError using the underlying NSError
8005        and encoding/decoding as much of the userInfo as we know how to.
8006        Right now this includes all string values and the PeerCertificateChain.
8007
80082011-03-17  John Sullivan  <sullivan@apple.com>
8009
8010        Reviewed by Adam Roben.
8011
8012        https://bugs.webkit.org/show_bug.cgi?id=56574
8013        Dealloc'ing a WKView can leave a stale reference to it in NSWindow
8014
8015        * UIProcess/API/mac/WKView.mm:
8016        (-[WKView viewWillMoveToWindow:]):
8017        Clear the outgoing window's growBoxOwner if it is this view.
8018
80192011-03-17  Anders Carlsson  <andersca@apple.com>
8020
8021        Rubber-stamped by John Sullivan.
8022
8023        Rename PluginProcessShim.cpp to PluginProcessShim.mm.
8024
8025        * PluginProcess/mac/PluginProcessShim.cpp: Removed.
8026        * PluginProcess/mac/PluginProcessShim.mm: Copied from PluginProcess/mac/PluginProcessShim.cpp.
8027        * WebKit2.xcodeproj/project.pbxproj:
8028
80292011-03-17  Anders Carlsson  <andersca@apple.com>
8030
8031        Reviewed by Darin Adler.
8032
8033        Invalidate all NPObjects for a plug-in when that plug-in is destroyed
8034        https://bugs.webkit.org/show_bug.cgi?id=56511
8035        <rdar://problem/8993491>
8036
8037        Before this change, we would invalidate NPObjectProxy objects and delete NPObjectMessageReceiver
8038        objects when the last plug-in of a certain type was destroyed. Doing so caused us to hold on to memory
8039        which we don't need, and could also lead to crashes if the NPObjectMessageReceiver would get a message and
8040        tried to invoke it on a already deallocated NPObject.
8041
8042        * PluginProcess/PluginControllerProxy.cpp:
8043        (WebKit::PluginControllerProxy::initialize):
8044        If we fail to initialize, call removePluginControllerProxy instead of having WebProcessConnection do so.
8045
8046        (WebKit::PluginControllerProxy::destroy):
8047        Pass the plug-in to removePluginControllerProxy.
8048
8049        * PluginProcess/WebProcessConnection.cpp:
8050        (WebKit::WebProcessConnection::removePluginControllerProxy):
8051        Call NPRemoteObjectMap::pluginDestroyed when the plug-in has been destroyed.
8052
8053        (WebKit::WebProcessConnection::createPlugin):
8054        Don't call removePluginControllerProxy if the plug-in fails to initialize. PluginControllerProxy::initialize now
8055        takes care of doing this.
8056
8057        * Shared/Plugins/NPObjectMessageReceiver.cpp:
8058        (WebKit::NPObjectMessageReceiver::NPObjectMessageReceiver):
8059        (WebKit::NPObjectMessageReceiver::~NPObjectMessageReceiver):
8060        * Shared/Plugins/NPObjectMessageReceiver.h:
8061        Remove m_shouldReleaseObjectWhenInvalidating, we now know that no NPObjects will have been deallocated
8062        by the time the NPObjectMessageReceiver is destroyed.
8063
8064        (WebKit::NPObjectMessageReceiver::plugin):
8065        Add getter.
8066
8067        * Shared/Plugins/NPObjectProxy.h:
8068        (WebKit::NPObjectProxy::plugin):
8069        Add getter.
8070
8071        * Shared/Plugins/NPRemoteObjectMap.cpp:
8072        (WebKit::NPRemoteObjectMap::NPRemoteObjectMap):
8073        Remove m_isInvalidating.
8074
8075        (WebKit::NPRemoteObjectMap::npObjectProxyDestroyed):
8076        Simplify code.
8077
8078        (WebKit::NPRemoteObjectMap::pluginDestroyed):
8079        Rename invalidate to pluginDestroyed. Only invalidate/delete objects that belong to the given plug-in.
8080
8081        * Shared/Plugins/NPRemoteObjectMap.h:
8082        Remove m_isInvalidating.
8083
8084        * WebProcess/Plugins/PluginProcessConnection.cpp:
8085        (WebKit::PluginProcessConnection::removePluginProxy):
8086        Call NPRemoteObjectMap::pluginDestroyed when the plug-in has been destroyed.
8087
80882011-03-17  Oleg Romashin  <oleg.romashin@nokia.com>
8089
8090        Reviewed by Anders Carlsson.
8091
8092        Teach WebKit2 messages.py generator to ifdef headers include
8093        which are related to ifdef-ed methods/types
8094        https://bugs.webkit.org/show_bug.cgi?id=55658
8095
8096        * Scripts/webkit2/messages.py:
8097        * Scripts/webkit2/messages_unittest.py:
8098
80992011-03-16  Joseph Pecoraro  <joepeck@webkit.org>
8100
8101        Reviewed by Kenneth Rohde Christiansen.
8102
8103        Viewport no longer allows an auto value for "user-scalable"
8104        https://bugs.webkit.org/show_bug.cgi?id=55416
8105
8106        Make the default value for userScalable be true.
8107
8108        * UIProcess/API/qt/qwkpage.cpp:
8109        (QWKPage::viewportAttributesForSize):
8110
81112011-03-16  Anders Carlsson  <andersca@apple.com>
8112
8113        Reviewed by Dan Bernstein.
8114
8115        NPObjectProxy and NPObjectMessageReceiver objects should know their Plugin object
8116        https://bugs.webkit.org/show_bug.cgi?id=56506
8117
8118        * PluginProcess/PluginControllerProxy.cpp:
8119        (WebKit::PluginControllerProxy::windowScriptNPObject):
8120        (WebKit::PluginControllerProxy::pluginElementNPObject):
8121        (WebKit::PluginControllerProxy::evaluate):
8122        (WebKit::PluginControllerProxy::getPluginScriptableNPObject):
8123        * Shared/Plugins/NPObjectMessageReceiver.cpp:
8124        (WebKit::NPObjectMessageReceiver::create):
8125        (WebKit::NPObjectMessageReceiver::NPObjectMessageReceiver):
8126        (WebKit::NPObjectMessageReceiver::invoke):
8127        (WebKit::NPObjectMessageReceiver::invokeDefault):
8128        (WebKit::NPObjectMessageReceiver::getProperty):
8129        (WebKit::NPObjectMessageReceiver::setProperty):
8130        (WebKit::NPObjectMessageReceiver::construct):
8131        * Shared/Plugins/NPObjectMessageReceiver.h:
8132        * Shared/Plugins/NPObjectProxy.cpp:
8133        (WebKit::NPObjectProxy::create):
8134        (WebKit::NPObjectProxy::NPObjectProxy):
8135        (WebKit::NPObjectProxy::invalidate):
8136        (WebKit::NPObjectProxy::initialize):
8137        (WebKit::NPObjectProxy::invoke):
8138        (WebKit::NPObjectProxy::invokeDefault):
8139        (WebKit::NPObjectProxy::getProperty):
8140        (WebKit::NPObjectProxy::setProperty):
8141        (WebKit::NPObjectProxy::construct):
8142        * Shared/Plugins/NPObjectProxy.h:
8143        * Shared/Plugins/NPRemoteObjectMap.cpp:
8144        (WebKit::NPRemoteObjectMap::createNPObjectProxy):
8145        (WebKit::NPRemoteObjectMap::registerNPObject):
8146        (WebKit::NPRemoteObjectMap::npVariantToNPVariantData):
8147        (WebKit::NPRemoteObjectMap::npVariantDataToNPVariant):
8148        * Shared/Plugins/NPRemoteObjectMap.h:
8149        * WebProcess/Plugins/PluginProxy.cpp:
8150        (WebKit::PluginProxy::pluginScriptableNPObject):
8151        (WebKit::PluginProxy::getWindowScriptNPObject):
8152        (WebKit::PluginProxy::getPluginElementNPObject):
8153        (WebKit::PluginProxy::evaluate):
8154
81552011-03-16  Beth Dakin  <bdakin@apple.com>
8156
8157        Reviewed by Darin Adler.
8158
8159        Fix for https://bugs.webkit.org/show_bug.cgi?id=54987 Crash beneath
8160        WebPageProxy::viewWillStartLiveResize when resizing window after web process
8161        crashed
8162        -and corresponding-
8163        <rdar://problem/9037685>
8164
8165        Just need simple isValid() checks here.
8166        * UIProcess/WebPageProxy.cpp:
8167        (WebKit::WebPageProxy::initializeUIClient):
8168        (WebKit::WebPageProxy::viewWillStartLiveResize):
8169        (WebKit::WebPageProxy::viewWillEndLiveResize):
8170
81712011-03-16  Damian Kaleta  <dkaleta@apple.com>
8172
8173        Reviewed by Kevin Decker.
8174
8175        Add a user default that will force all plugins to opt in to non-executable data
8176        https://bugs.webkit.org/show_bug.cgi?id=56487
8177        <rdar://problem/9109095>
8178
8179        * UIProcess/Plugins/PluginProcessProxy.cpp:
8180        (WebKit::PluginProcessProxy::PluginProcessProxy):
8181        * UIProcess/Plugins/PluginProcessProxy.h:
8182        * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
8183        (WebKit::PluginProcessProxy::pluginNeedsExecutableHeap):
8184
81852011-03-16  Chris Fleizach  <cfleizach@apple.com>
8186
8187        Reviewed by Darin Adler.
8188
8189        WK2: Need to propagate enhanced accessibility flag from UI -> web process
8190        https://bugs.webkit.org/show_bug.cgi?id=56379
8191
8192        Support sending the enhanced accessibility flag between processes.
8193
8194        * UIProcess/WebContext.cpp:
8195        (WebKit::WebContext::~WebContext):
8196        (WebKit::WebContext::setEnhancedAccessibility):
8197        * UIProcess/WebContext.h:
8198        * UIProcess/gtk/WebContextGtk.cpp:
8199        (WebKit::WebContet::platformInvalidateContext):
8200        * UIProcess/mac/WebContextMac.mm:
8201        (WebKit::WebContext::platformInitializeWebProcess):
8202        (WebKit::WebContext::platformInvalidateContext):
8203        * UIProcess/qt/WebContextQt.cpp:
8204        (WebKit::WebContext::platformInvalidateContext):
8205        * UIProcess/win/WebContextWin.cpp:
8206        (WebKit::WebContext::platformInvalidateContext):
8207        * WebProcess/WebProcess.cpp:
8208        (WebKit::WebProcess::setEnhancedAccessibility):
8209        * WebProcess/WebProcess.h:
8210        * WebProcess/WebProcess.messages.in:
8211
82122011-03-15  Oliver Hunt  <oliver@apple.com>
8213
8214        Reviewed by Geoffrey Garen.
8215
8216        Make Structure creation require a JSGlobalData
8217        https://bugs.webkit.org/show_bug.cgi?id=56438
8218
8219        Mechanical change to make all Structure creation use a JSGlobalData&.
8220
8221        * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
8222        (WebKit::JSNPMethod::JSNPMethod):
8223        * WebProcess/Plugins/Netscape/JSNPMethod.h:
8224        (WebKit::JSNPMethod::createStructure):
8225        * WebProcess/Plugins/Netscape/JSNPObject.cpp:
8226        (WebKit::JSNPObject::JSNPObject):
8227        * WebProcess/Plugins/Netscape/JSNPObject.h:
8228        (WebKit::JSNPObject::createStructure):
8229
82302011-03-16  Alexey Proskuryakov  <ap@apple.com>
8231
8232        Reviewed by Dan Bernstein.
8233
8234        WebKit2: Sometimes Command-[ opens a new tab and loads the back page in it
8235        https://bugs.webkit.org/show_bug.cgi?id=56477
8236        <rdar://problem/8806664>
8237
8238        * UIProcess/API/mac/PageClientImpl.mm: (WebKit::PageClientImpl::doneWithKeyEvent):
8239        Set NSApplication current event when re-dispatching a key event that returned from the web
8240        process unhandled. That way, code that looks at current event modifiers won't be confused.
8241
82422011-03-16  Sam Weinig  <sam@webkit.org>
8243
8244        Reviewed by Adam Roben.
8245
8246        Add WebKit2 API to figure out if an input or textarea was edited
8247        https://bugs.webkit.org/show_bug.cgi?id=56474
8248
8249        Expose WKBundleNodeHandleGetHTMLInputElementLastChangeWasUserEdit and
8250        WKBundleNodeHandleGetHTMLTextAreaElementLastChangeWasUserEdit. Next time,
8251        I will work on giving these functions longer names.
8252
8253        * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
8254        (WKBundleNodeHandleGetHTMLInputElementLastChangeWasUserEdit):
8255        (WKBundleNodeHandleGetHTMLTextAreaElementLastChangeWasUserEdit):
8256        * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
8257        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
8258        (WebKit::InjectedBundleNodeHandle::htmlInputElementLastChangeWasUserEdit):
8259        (WebKit::InjectedBundleNodeHandle::htmlTextAreaElementLastChangeWasUserEdit):
8260        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
8261
82622011-03-16  Brady Eidson  <beidson@apple.com>
8263
8264        Reviewed by Adam Roben.
8265
8266        https://bugs.webkit.org/show_bug.cgi?id=56467
8267        IconDatabase-related crash seen in WK2 tests
8268
8269        * WebProcess/IconDatabase/WebIconDatabaseProxy.cpp:
8270        (WebKit::WebIconDatabaseProxy::setIconDataForIconURL): The IconLoader might set a null data for an icon, so handle that case.
8271
82722011-03-16  Benjamin Poulain  <benjamin.poulain@nokia.com>
8273
8274        Reviewed by Kenneth Rohde Christiansen.
8275
8276        [Qt][WK2] Loading an empty URL crashes
8277        https://bugs.webkit.org/show_bug.cgi?id=55501
8278
8279        A null WKURLRef is created in the API of WebKit 2 when converting a null string. The code
8280        of WKPageLoadURL assume the WKPageRef is not null which causes crashes if it is.
8281
8282        This patch uses the converter toWTFString() to pass from WKPageRef to WTFString. This converter
8283        ensure the returned string is a valid null string.
8284
8285        Tested through the Qt API tests.
8286
8287        * UIProcess/API/C/WKPage.cpp:
8288        (WKPageLoadURL):
8289        * UIProcess/API/qt/tests/qgraphicswkview/tst_qgraphicswkview.cpp:
8290        (tst_QGraphicsWKView::loadEmptyUrl):
8291        * UIProcess/API/qt/tests/qwkpage/qwkpage.pro: Added.
8292        * UIProcess/API/qt/tests/qwkpage/tst_qwkpage.cpp: Added.
8293        (tst_QWKPage::init):
8294        (tst_QWKPage::cleanup):
8295        (tst_QWKPage::loadEmptyUrl):
8296        * UIProcess/API/qt/tests/tests.pro:
8297
82982011-03-15  Brady Eidson  <beidson@apple.com>
8299
8300        Reviewed by Sam Weinig.
8301
8302        https://bugs.webkit.org/show_bug.cgi?id=56425
8303        WebKit2 icon database.
8304
8305        Project file paperwork:
8306        * DerivedSources.make:
8307        * DerivedSources.pro:
8308        * GNUmakefile.am:
8309        * WebKit2.pri:
8310        * WebKit2.pro:
8311        * WebKit2.xcodeproj/project.pbxproj:
8312        * win/WebKit2.vcproj:
8313        * win/WebKit2Common.vsprops:
8314        * Scripts/webkit2/messages.py: Special-case capitalization for messages that start with "URL" to be lowercased
8315          to "url" instead of "uRL".
8316
8317        Add messaging-related stuff:
8318        * Platform/CoreIPC/MessageID.h:
8319        * UIProcess/WebIconDatabase.messages.in: Added.
8320        * WebProcess/IconDatabase/WebIconDatabaseProxy.messages.in: Added.
8321        * UIProcess/WebProcessProxy.cpp:
8322        (WebKit::WebProcessProxy::didReceiveMessage):
8323        (WebKit::WebProcessProxy::didReceiveSyncMessage):
8324
8325        Prep to make WebIconDatabase an API object:
8326        * Shared/APIObject.h:
8327
8328        Add an "icon DB is enabled" flag to WebProcessCreationParameters:
8329        * Shared/WebProcessCreationParameters.cpp:
8330        (WebKit::WebProcessCreationParameters::encode):
8331        (WebKit::WebProcessCreationParameters::decode):
8332        * Shared/WebProcessCreationParameters.h:
8333
8334        Add SPI for client apps to set the icon database path:
8335        * UIProcess/API/C/WKContext.cpp:
8336        (WKContextSetIconDatabasePath):
8337        * UIProcess/API/C/WKContextPrivate.h:
8338        * UIProcess/WebContext.h:
8339        (WebKit::WebContext::setIconDatabasePath):
8340
8341        Hook up initialization, clearing, and messaging for the icon database:
8342        * UIProcess/WebContext.cpp:
8343        (WebKit::WebContext::WebContext):
8344        (WebKit::WebContext::~WebContext):
8345        (WebKit::WebContext::ensureWebProcess):
8346        (WebKit::WebContext::didReceiveMessage):
8347        (WebKit::WebContext::didReceiveSyncMessage):
8348        (WebKit::WebContext::iconDatabasePath):
8349        * UIProcess/gtk/WebContextGtk.cpp:
8350        (WebKit::WebContext::platformDefaultIconDatabasePath):
8351        * UIProcess/mac/WebContextMac.mm:
8352        (WebKit::WebContext::platformDefaultIconDatabasePath):
8353        * UIProcess/qt/WebContextQt.cpp:
8354        (WebKit::WebContext::platformDefaultIconDatabasePath):
8355        * UIProcess/win/WebContextWin.cpp:
8356        (WebKit::WebContext::platformDefaultIconDatabasePath):
8357
8358        Add the UIProcess-side IconDatabase. It will be the "actual database" as well as the API object:
8359        * UIProcess/WebIconDatabase.cpp: Added.
8360        (WebKit::WebIconDatabase::create):
8361        (WebKit::WebIconDatabase::~WebIconDatabase):
8362        (WebKit::WebIconDatabase::WebIconDatabase):
8363        (WebKit::WebIconDatabase::invalidate):
8364        (WebKit::WebIconDatabase::retainIconForPageURL):
8365        (WebKit::WebIconDatabase::releaseIconForPageURL):
8366        (WebKit::WebIconDatabase::setIconURLForPageURL):
8367        (WebKit::WebIconDatabase::setIconDataForIconURL):
8368        (WebKit::WebIconDatabase::iconDataForPageURL):
8369        (WebKit::WebIconDatabase::iconURLForPageURL):
8370        (WebKit::WebIconDatabase::iconDataKnownForIconURL):
8371        (WebKit::WebIconDatabase::loadDecisionForIconURL):
8372        (WebKit::WebIconDatabase::didReceiveMessage):
8373        (WebKit::WebIconDatabase::didReceiveSyncMessage):
8374        * UIProcess/WebIconDatabase.h: Added.
8375        (WebKit::WebIconDatabase::clearContext):
8376        (WebKit::WebIconDatabase::type):
8377
8378        Add the WebProcess-side IconDatabaseProxy. It acts as the WebCore IconDatabase and operates via messaging:
8379        * WebProcess/IconDatabase: Added.
8380        * WebProcess/IconDatabase/WebIconDatabaseProxy.cpp: Added.
8381        (WebKit::WebIconDatabaseProxy::~WebIconDatabaseProxy):
8382        (WebKit::WebIconDatabaseProxy::WebIconDatabaseProxy):
8383        (WebKit::WebIconDatabaseProxy::isEnabled):
8384        (WebKit::WebIconDatabaseProxy::setEnabled):
8385        (WebKit::WebIconDatabaseProxy::iconForPageURL):
8386        (WebKit::WebIconDatabaseProxy::retainIconForPageURL):
8387        (WebKit::WebIconDatabaseProxy::releaseIconForPageURL):
8388        (WebKit::WebIconDatabaseProxy::iconURLForPageURL):
8389        (WebKit::WebIconDatabaseProxy::iconDataKnownForIconURL):
8390        (WebKit::WebIconDatabaseProxy::loadDecisionForIconURL):
8391        (WebKit::WebIconDatabaseProxy::setIconURLForPageURL):
8392        (WebKit::WebIconDatabaseProxy::setIconDataForIconURL):
8393        (WebKit::WebIconDatabaseProxy::urlImportFinished):
8394        (WebKit::WebIconDatabaseProxy::didReceiveMessage):
8395        * WebProcess/IconDatabase/WebIconDatabaseProxy.h: Added.
8396
8397        Hook up initialization and messaging for the icon database proxy:
8398        * WebProcess/WebProcess.cpp:
8399        (WebKit::WebProcess::WebProcess):
8400        (WebKit::WebProcess::initializeWebProcess):
8401        (WebKit::WebProcess::didReceiveMessage):
8402        * WebProcess/WebProcess.h:
8403
84042011-03-15  Sam Weinig  <sam@webkit.org>
8405
8406        Reviewed by Anders Carlsson.
8407
8408        WebKit2: False SPOD cursor when context menu is open
8409        <rdar://problem/9029154>
8410        https://bugs.webkit.org/show_bug.cgi?id=56433
8411
8412        * UIProcess/WebPageProxy.cpp:
8413        (WebKit::WebPageProxy::showContextMenu):
8414        Update to match showPopupMenu idiomatically, and stop the responsivenessTimer
8415        since the act of showing the context menu could spin a nested runloop.
8416
8417        * UIProcess/mac/WebContextMenuProxyMac.mm:
8418        (WebKit::WebContextMenuProxyMac::showContextMenu):
8419        * UIProcess/qt/WebContextMenuProxyQt.cpp:
8420        (WebKit::WebContextMenuProxyQt::showContextMenu):
8421        * UIProcess/win/WebContextMenuProxyWin.cpp:
8422        (WebKit::WebContextMenuProxyWin::showContextMenu):
8423        Move isEmpty() check to implementations, since we don't want to show
8424        this in any case, not just the one where we check it.
8425
84262011-03-15  Siddharth Mathur  <siddharth.mathur@nokia.com>
8427
8428        Reviewed by Laszlo Gombos.
8429
8430        [Qt][Symbian][WK2] Fix exporting and importing the WebProcessMainQt symbol
8431        https://bugs.webkit.org/show_bug.cgi?id=56417
8432
8433        Use the Q_DECL_EXPORT and Q_DECL_IMPORT macros directly to make sure
8434        the symbol is always exported/imported.
8435
8436        * WebProcess/qt/WebProcessMainQt.cpp:
8437        (WebKit::WebProcessMainQt):
8438        * qt/MainQt.cpp:
8439
84402011-03-15  Alexey Proskuryakov  <ap@apple.com>
8441
8442        Reviewed by Darin Adler.
8443
8444        REGRESSION (WebKit2): keygen element doesn't work
8445        https://bugs.webkit.org/show_bug.cgi?id=56402
8446        <rdar://problem/9006545>
8447
8448        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
8449        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
8450        Added strings used by keygen.
8451
8452        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: Initialize a WebCore pointer to
8453        a function used by keygen.
8454
84552011-03-15  Beth Dakin  <bdakin@apple.com>
8456
8457        Reviewed by Simon Fraser.
8458
8459        WebKit2 part of <rdar://problem/9075624> Overlay scrollbars slow down PLT by 6%
8460
8461        New WebKitystemInterface function to force the scrollbars to flash
8462        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
8463        (InitWebCoreSystemInterface):
8464
84652011-03-15  Anders Carlsson  <andersca@apple.com>
8466
8467        Reviewed by Sam Weinig.
8468
8469        Make sure that NP_Shutdown is always the last NPP function called
8470        https://bugs.webkit.org/show_bug.cgi?id=56391
8471        <rdar://problem/8989902>
8472
8473        Make sure to always increment the load count whenever a web process connection
8474        is opened to a plug-in process, and decrement it when the last web process connection
8475        goes away.
8476
8477        * PluginProcess/PluginProcess.cpp:
8478        (WebKit::PluginProcess::createWebProcessConnection):
8479        (WebKit::PluginProcess::startShutdownTimerIfNecessary):
8480        * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
8481        * Shared/Plugins/Netscape/NetscapePluginModule.h:
8482        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
8483        (WebKit::NetscapePlugin::NetscapePlugin):
8484        (WebKit::NetscapePlugin::~NetscapePlugin):
8485
84862011-03-15  Martin Robinson  <mrobinson@igalia.com>
8487
8488        Reviewed by Adam Barth.
8489
8490        [GTK] [WebKit2] The UIProcess never changes the mouse cursor
8491        https://bugs.webkit.org/show_bug.cgi?id=56333
8492
8493        Add an implementation for WebView::addCursor for WebKit2 GTK+. This allows
8494        the cursor to change as the user mouses around the page. There is currently
8495        no test infrastructure to track cursor changes.
8496
8497        * UIProcess/gtk/WebView.cpp:
8498        (WebKit::WebView::setCursor): Ported implementation from WebKit1.
8499
85002011-03-15  Kevin Ollivier  <kevino@theolliviers.com>
8501
8502        Reviewed by Darin Adler.
8503
8504        Introduce WTF_USE_EXPORT_MACROS, which will allow us to put shared library import/export
8505        info into the headers rather than in export symbol definition files, but disable it on
8506        all platforms initially so we can deal with port build issues one port at a time.
8507
8508        https://bugs.webkit.org/show_bug.cgi?id=27551
8509
8510        * config.h:
8511
85122011-03-14  Alexey Proskuryakov  <ap@apple.com>
8513
8514        Reviewed by Darin Adler.
8515
8516        REGRESSION: Print preview is blank when selecting multiple pages per sheet
8517        https://bugs.webkit.org/show_bug.cgi?id=56341
8518        <rdar://problem/8991382>
8519
8520        * UIProcess/API/mac/WKPrintingView.mm: (pageDidDrawToPDF): Don't reset latest expected
8521        callback number after receiving a different one. We only update preview after receiving
8522        the latest expected page data (and the assumption is that AppKit will ask for pages in
8523        natural order for N-up).
8524
85252011-03-14  Adam Roben  <aroben@apple.com>
8526
8527        Make WKBundlePageCanHandleRequest return true for empty document URLs
8528
8529        Reviewed by Sam Weinig.
8530
8531        * WebProcess/WebPage/WebPage.cpp:
8532        (WebKit::WebPage::canHandleRequest): Return true for any URL schemes that are handled as
8533        empty documents, and defer to the platform for everything else.
8534
8535        * WebProcess/WebPage/WebPage.h: Added platformCanHandleRequest.
8536
8537        * WebProcess/WebPage/mac/WebPageMac.mm:
8538        (WebKit::WebPage::platformCanHandleRequest):
8539        * WebProcess/WebPage/qt/WebPageQt.cpp:
8540        (WebKit::WebPage::platformCanHandleRequest):
8541        * WebProcess/WebPage/win/WebPageWin.cpp:
8542        (WebKit::WebPage::platformCanHandleRequest):
8543        Renamed from canHandleRequest.
8544
85452011-03-14  Chris Fleizach  <cfleizach@apple.com>
8546
8547        Reviewed by Beth Dakin.
8548
8549        CrashTracer: 60 crashes in WebProcess at com.apple.WebKit2: -[AccessibilityWebPageObject accessibilityHitTest:] + 248
8550        https://bugs.webkit.org/show_bug.cgi?id=56336
8551
8552        Crash trace indicates a nil pointer access in one of these m_page->mainFrame()->coreFrame()->view()
8553        pointers.
8554
8555        * WebProcess/WebPage/mac/AccessibilityWebPageObject.mm:
8556        (-[AccessibilityWebPageObject accessibilityHitTest:]):
8557
85582011-03-14  Alice Liu  <alice.liu@apple.com>
8559
8560        Reviewed by Sam Weinig.
8561
8562        Provide API for creating WKImage from CGImageRef
8563        https://bugs.webkit.org/show_bug.cgi?id=56159
8564
8565        Add function for creating a WKImage from CGImage data.
8566        * Shared/API/c/cg/WKImageCG.cpp:
8567        (WKImageCreateFromCGImage): Added. Creates a graphics context for the bitmap-backed image and draws into it.
8568        * Shared/API/c/cg/WKImageCG.h:
8569
85702011-03-14  Balazs Kelemen  <kbalazs@webkit.org>
8571
8572        Reviewed by Adam Roben.
8573
8574        [Qt][WK2]Unbreak InjectedBundle on Qt
8575        https://bugs.webkit.org/show_bug.cgi?id=54109
8576
8577        Add API's to WKURL and WKString to satisfy
8578        WebKitTestRunner's needs.
8579
8580        * Shared/API/c/WKString.cpp:
8581        (WKStringIsEqualToUTF8CStringIgnoringCase):
8582        * Shared/API/c/WKString.h:
8583        * Shared/API/c/WKURL.cpp:
8584        (WKURLCopyHostName):
8585        (WKURLCopyScheme):
8586        * Shared/API/c/WKURL.h:
8587        * Shared/WebString.h:
8588        (WebKit::WebString::equalToUTF8StringIgnoringCase):
8589        * Shared/WebURL.h: Added OwnPtr<KURL> member to be able
8590        to lazily parse the URL and store the result.
8591        (WebKit::WebURL::host):
8592        (WebKit::WebURL::protocol):
8593        (WebKit::WebURL::parseURLIfNecessary):
8594        * win/WebKit2.def: Revert the symbol exports that were
8595        needed to use KURL in WebKitTestRunner.
8596
85972011-03-14  Jeff Miller  <jeffm@apple.com>
8598
8599        Reviewed by Adam Roben.
8600
8601        Add WKViewSetScrollOffsetOnNextResize() to C API on Windows
8602        https://bugs.webkit.org/show_bug.cgi?id=56340
8603
8604        * UIProcess/API/C/win/WKView.cpp:
8605        (WKViewSetScrollOffsetOnNextResize): Added.
8606        * UIProcess/API/C/win/WKView.h: Added WKViewSetScrollOffsetOnNextResize().
8607        * UIProcess/win/WebView.cpp:
8608        (WebKit::WebView::onSizeEvent): Apply any scroll offset when setting the drawing area size.
8609        (WebKit::WebView::setScrollOffsetOnNextResize): Added.
8610        * UIProcess/win/WebView.h: Added setScrollOffsetOnNextResize().
8611
86122011-03-14  Brian Weinstein  <bweinstein@apple.com>
8613
8614        Reviewed by Adam Roben and Gavin Barraclough.
8615
8616        FileSystemWin.cpp needs listDirectory() implementation
8617        https://bugs.webkit.org/show_bug.cgi?id=56331
8618        <rdar://problem/9126635>
8619
8620        Move PathWalker down into WebCore, and call the PathWalker in WebCore
8621        (that now has a second argument, the pattern to take).
8622
8623        * UIProcess/Plugins/win/PluginInfoStoreWin.cpp:
8624        (WebKit::PluginInfoStore::pluginPathsInDirectory):
8625
86262011-03-14  Sam Weinig  <sam@webkit.org>
8627
8628        Reviewed by Darin Adler.
8629
8630        WebKit2: No icon shown for <input type=file>
8631        <rdar://problem/8988982>
8632        https://bugs.webkit.org/show_bug.cgi?id=54288
8633
8634        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
8635        (WebKit::WebChromeClient::chooseIconForFiles):
8636        Add implementation for chooseIconForFiles which calls down to Icon::createIconForFiles.
8637
86382011-03-14  Brady Eidson  <beidson@apple.com>
8639
8640        Reviewed by Dan Bernstein.
8641
8642        <rdar://problem/8762095> and https://bugs.webkit.org/show_bug.cgi?id=55172
8643        Need WK2 API to view/manage origins with LocalStorage
8644
8645        Hookup the existing API stubs to the WebCore implementations:
8646        * WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp:
8647        (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
8648        (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
8649        (WebKit::WebKeyValueStorageManager::deleteAllEntries):
8650
86512011-03-13  Brady Eidson  <beidson@apple.com>
8652
8653        Reviewed by Sam Weinig.
8654
8655        <rdar://problem/9127270> and https://bugs.webkit.org/show_bug.cgi?id=56282
8656
8657        Pass the path along with creation parameters:
8658        * Shared/WebProcessCreationParameters.cpp:
8659        (WebKit::WebProcessCreationParameters::encode):
8660        (WebKit::WebProcessCreationParameters::decode):
8661        * Shared/WebProcessCreationParameters.h:
8662
8663        Add SPI to set the path:
8664        * UIProcess/API/C/WKContext.cpp:
8665        (WKContextSetLocalStorageDirectory):
8666        * UIProcess/API/C/WKContextPrivate.h:
8667
8668        Pass the path along in the process creation parameters:
8669        * UIProcess/WebContext.cpp:
8670        (WebKit::WebContext::ensureWebProcess):
8671        (WebKit::WebContext::localStorageDirectory):
8672        * UIProcess/WebContext.h:
8673        (WebKit::WebContext::setLocalStorageDirectory):
8674
8675        * UIProcess/gtk/WebContextGtk.cpp:
8676        (WebKit::WebContext::platformDefaultLocalStorageDirectory):
8677        * UIProcess/mac/WebContextMac.mm:
8678        (WebKit::WebContext::platformDefaultLocalStorageDirectory):
8679        * UIProcess/qt/WebContextQt.cpp:
8680        (WebKit::WebContext::platformDefaultLocalStorageDirectory):
8681        * UIProcess/win/WebContextWin.cpp:
8682        (WebKit::WebContext::platformDefaultLocalStorageDirectory):
8683
8684        Include the path with settings updates, because WebCore needs it set on the Settings object:
8685        * WebProcess/WebPage/WebPage.cpp:
8686        (WebKit::WebPage::updatePreferences):
8687
8688        * WebProcess/WebProcess.cpp:
8689        (WebKit::WebProcess::initializeWebProcess):
8690        * WebProcess/WebProcess.h:
8691        (WebKit::WebProcess::localStorageDirectory):
8692
8693        Sandboxing stuff:
8694        * WebProcess/com.apple.WebProcess.sb:
8695        * WebProcess/mac/WebProcessMac.mm:
8696        (WebKit::initializeSandbox):
8697
86982011-03-12  Jer Noble  <jer.noble@apple.com>
8699
8700        Reviewed by Mark Rowe.
8701
8702        WebKit2: Build WKFullScreenWindowController cleanly in 32-bit.
8703        https://bugs.webkit.org/show_bug.cgi?id=56260
8704
8705        Include <Carbon/Carbon.h> instead of <HIToolbox/MacApplication.h>.
8706
8707        * UIProcess/mac/WKFullScreenWindowController.mm:
8708
87092011-03-13  Sam Weinig  <sam@webkit.org>
8710
8711        Reviewed by Anders Carlsson.
8712
8713        Add ability to create a WKErrorRef
8714        <rdar://problem/9115768>
8715        https://bugs.webkit.org/show_bug.cgi?id=56279
8716
8717        * Shared/API/c/cf/WKErrorCF.cpp: Added.
8718        (WKErrorCreateWithCFError):
8719        (WKErrorCopyCFError):
8720        * Shared/API/c/cf/WKErrorCF.h: Added.
8721        Add new API to create a WKErrorRef from a CFErrorRef
8722        and vice-versa.
8723
8724        * WebKit2.xcodeproj/project.pbxproj:
8725        * win/WebKit2.vcproj:
8726        * win/WebKit2Generated.make:
8727        Add new files.
8728
87292011-03-13  Pratik Solanki  <psolanki@apple.com>
8730
8731        Reviewed by Brady Eidson.
8732
8733        Make adjustMIMETypeIfNecessary use CFNetwork directly
8734        https://bugs.webkit.org/show_bug.cgi?id=55912
8735
8736        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
8737        (InitWebCoreSystemInterface): Support for new WKSI functions.
8738
87392011-03-13  Dan Bernstein  <mitz@apple.com>
8740
8741        Reviewed by Darin Adler.
8742
8743        WebPageProxy cleanup
8744        https://bugs.webkit.org/show_bug.cgi?id=56267
8745
8746        * UIProcess/WebPageProxy.cpp: Moved all Mac-only function implementations from
8747        here to WebPageProxyMac.mm.
8748        * UIProcess/WebPageProxy.h: Cleaned up #includes.
8749        * UIProcess/mac/WebPageProxyMac.mm: Moved all Mac-only function implementations
8750        here.
8751        (WebKit::WebPageProxy::updateWindowIsVisible):
8752        (WebKit::WebPageProxy::windowAndViewFramesChanged):
8753        (WebKit::WebPageProxy::getMarkedRange):
8754        (WebKit::WebPageProxy::characterIndexForPoint):
8755        (WebKit::WebPageProxy::firstRectForCharacterRange):
8756        (WebKit::WebPageProxy::writeSelectionToPasteboard):
8757        (WebKit::WebPageProxy::setDragImage):
8758        (WebKit::WebPageProxy::performDictionaryLookupAtLocation):
8759        (WebKit::WebPageProxy::interpretKeyEvent):
8760        (WebKit::WebPageProxy::sendComplexTextInputToPlugin):
8761        (WebKit::WebPageProxy::uppercaseWord):
8762        (WebKit::WebPageProxy::lowercaseWord):
8763        (WebKit::WebPageProxy::capitalizeWord):
8764        (WebKit::WebPageProxy::setSmartInsertDeleteEnabled):
8765        (WebKit::WebPageProxy::didPerformDictionaryLookup):
8766        (WebKit::WebPageProxy::registerWebProcessAccessibilityToken):
8767        (WebKit::WebPageProxy::registerUIProcessAccessibilityTokens):
8768        (WebKit::WebPageProxy::setComplexTextInputEnabled):
8769
87702011-03-13  Dan Bernstein  <mitz@apple.com>
8771
8772        Reviewed by Darin Adler.
8773
8774        <rdar://problem/8949683> WebKit2: Drag image is offset when the page is scrolled down
8775        https://bugs.webkit.org/show_bug.cgi?id=56265
8776
8777        * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
8778        (WebKit::WebDragClient::startDrag): Send the location in view coordinates rather than
8779        document coordinates.
8780
87812011-03-13  Dan Bernstein  <mitz@apple.com>
8782
8783        Reviewed by Mark Rowe.
8784
8785        Fix a crash when dragging.
8786
8787        * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
8788        (WebKit::convertImageToBitmap): Retain the saved context.
8789
87902011-03-12  Darin Adler  <darin@apple.com>
8791
8792        * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
8793        (WebKit::WebDragClient::startDrag): Fixed typo in a comment.
8794
87952011-03-11  Darin Adler  <darin@apple.com>
8796
8797        Reviewed by Sam Weinig.
8798
8799        Dragging image to desktop gives webloc instead of image file in WebKit2
8800        https://bugs.webkit.org/show_bug.cgi?id=56193
8801
8802        * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
8803        (WebKit::convertImageToBitmap): Added. Factored out from startDrag to
8804        make the startDrag code clearer.
8805        (WebKit::WebDragClient::startDrag): Streamlined code a bit.
8806        (WebKit::cachedImage): Added. Helper for function below.
8807        (WebKit::arrayForURLsWithTitles): Added. Helper for function below.
8808        (WebKit::WebDragClient::declareAndWriteDragImage): Added code to handle file
8809        promises and removed a log of uneeded code.
8810        (-[WKPasteboardFilePromiseOwner copyDropDirectory]): Added.
8811        (promisedDataClient): Added.
8812        (-[WKPasteboardOwner clearImage]): Added.
8813        (-[WKPasteboardOwner initWithImage:]): Added.
8814        (-[WKPasteboardOwner dealloc]): Added.
8815        (-[WKPasteboardOwner finalize]): Added.
8816        (-[WKPasteboardOwner pasteboard:provideDataForType:]): Added.
8817        (-[WKPasteboardOwner pasteboardChangedOwner:]): Added.
8818        (matchesExtensionOrEquivalent): Added.
8819        (-[WKPasteboardOwner namesOfPromisedFilesDroppedAtDestination:]): Added.
8820        Much of the new code above came from the WebKit1 drag code.
8821
8822        * WebProcess/WebPage/WebPage.cpp:
8823        (WebKit::WebPage::dragEnded): Added call to Mac-only platformDragEnded.
8824        * WebProcess/WebPage/WebPage.h: Added Mac-only platformDragEnded and m_dragSource.
8825        * WebProcess/WebPage/mac/WebPageMac.mm:
8826        (WebKit::WebPage::setDragSource): Added.
8827        (WebKit::WebPage::platformDragEnded): Added.
8828
88292011-03-12  Mark Rowe  <mrowe@apple.com>
8830
8831        Fix the 32-bit build.
8832
8833        This involves hacking around some HIToolbox headers that do things of dubious correctness,
8834        and fixing the usual CGRect vs NSRect issues.
8835
8836        * UIProcess/mac/WKFullScreenWindowController.mm:
8837        (-[WKFullScreenWindowController enterFullScreen:]): NSRect is not CGRect.
8838        * WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm:
8839        (WebKit::WebFullScreenManagerMac::beginExitFullScreenAnimation): Ditto.
8840
88412011-03-12  Anders Carlsson  <andersca@apple.com>
8842
8843        Reviewed by Sam Weinig.
8844
8845        * WebProcess/WebPage/WebFrame.cpp:
8846        (WebKit::WebFrame::url):
8847        Get the URL from the loader, not from the document.
8848
8849        (WebKit::WebFrame::suggestedFilenameForResourceWithURL):
8850        Return the correct suggested filename for the main resource.
8851
8852        (WebKit::WebFrame::mimeTypeForResourceWithURL):
8853        Return the correct mime type for the main resource.
8854
88552011-03-12  Anders Carlsson  <andersca@apple.com>
8856
8857        Reviewed by Sam Weinig.
8858
8859        Should be able to download a PDF to the Downloads folder
8860        https://bugs.webkit.org/show_bug.cgi?id=56256
8861
8862        * UIProcess/API/C/WKPage.h:
8863        Add WKPageSaveDataToFileInDownloadsFolderCallback to the UI client.
8864
8865        * UIProcess/API/mac/PDFViewController.h:
8866        * UIProcess/API/mac/PDFViewController.mm:
8867        (-[WKPDFView _applyPDFPreferences]):
8868        (-[WKPDFView _updatePreferences:]):
8869        Use new PDFViewController::page getter.
8870
8871        (-[WKPDFView PDFViewSavePDFToDownloadFolder:]):
8872        Call PDFViewController::savePDFToDownloadsFolder.
8873
8874        (WebKit::releaseCFData):
8875        (WebKit::PDFViewController::savePDFToDownloadsFolder):
8876        Create a WebData that wraps the CFData, then pass it along to
8877        WebPageProxy::saveDataToFileInDownloadsFolder.
8878
8879        * UIProcess/WebPageProxy.cpp:
8880        (WebKit::WebPageProxy::saveDataToFileInDownloadsFolder):
8881        Call WebUIClient::saveDataToFileInDownloadsFolder.
8882
8883        (WebKit::WebUIClient::saveDataToFileInDownloadsFolder):
8884        * UIProcess/WebUIClient.h:
8885        Call the UI client callback function.
8886
88872011-03-12  Anders Carlsson  <andersca@apple.com>
8888
8889        Reviewed by Sam Weinig.
8890
8891        WebData should be able to wrap already existing data
8892        https://bugs.webkit.org/show_bug.cgi?id=56254
8893
8894        * Shared/WebData.h:
8895        (WebKit::WebData::createWithoutCopying):
8896        (WebKit::WebData::create):
8897        (WebKit::WebData::~WebData):
8898        (WebKit::WebData::bytes):
8899        (WebKit::WebData::size):
8900        (WebKit::WebData::WebData):
8901        (WebKit::WebData::fastFreeBytes):
8902
89032011-03-12  Jer Noble  <jer.noble@apple.com>
8904
8905        Reviewed by Eric Carlson.
8906
8907        WebKit2: Initialize the WebFullScreenManagerProxy with a WKView
8908        https://bugs.webkit.org/show_bug.cgi?id=56250
8909
8910        * UIProcess/API/mac/WKView.mm:
8911        (-[WKView initWithFrame:contextRef:pageGroupRef:]): Call fullScreenManager()->setView(self).
8912
89132011-03-11  Jer Noble  <jer.noble@apple.com>
8914
8915        Reviewed by Anders Carlsson.
8916
8917        Add full screen animation code to WebFullScreenManager.
8918        https://bugs.webkit.org/show_bug.cgi?id=56220
8919
8920        * WebProcess/FullScreen/WebFullScreenManager.cpp: .
8921        (WebKit::WebFullScreenManager::~WebFullScreenManager): Added.
8922        (WebKit::WebFullScreenManager::exitFullScreenForElement): Remove ASSERTs.
8923        (WebKit::WebFullScreenManager::willEnterFullScreen): Set the full screen renderer's background color.
8924        (WebKit::WebFullScreenManager::didEnterFullScreen): Ditto.
8925        (WebKit::WebFullScreenManager::willExitFullScreen): Ditto.
8926        (WebKit::WebFullScreenManager::didExitFullScreen): Ditto.
8927        * WebProcess/FullScreen/WebFullScreenManager.h: Make a few functions pure virtual to be implemented in a
8928            concrete subclass.
8929        * WebProcess/FullScreen/mac/WebFullScreenManagerMac.h: Added.
8930        * WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm: Added.
8931        (-[WebFullScreenManagerAnimationListener initWithManager:WebKit::began:finished:]): Listener for CAAnimations.
8932        (-[WebFullScreenManagerAnimationListener animationDidStart:]): Added.
8933        (-[WebFullScreenManagerAnimationListener animationDidStop:finished:]): Added.
8934        (-[WebFullScreenManagerAnimationListener invalidate]): Added.
8935        (WebKit::WebFullScreenManager::create): Now creates a WebFullScreenManagerMac.
8936        (WebKit::WebFullScreenManagerMac::create): Added.
8937        (WebKit::WebFullScreenManagerMac::WebFullScreenManagerMac): Added.
8938        (WebKit::WebFullScreenManagerMac::~WebFullScreenManagerMac): Added.
8939        (WebKit::WebFullScreenManagerMac::setRootFullScreenLayer): Set up the remote layer host.
8940        (WebKit::WebFullScreenManagerMac::beginEnterFullScreenAnimation): Create a CATransform3D
8941            which will animate the full screen renderer from its initial position to its final one.
8942        (WebKit::WebFullScreenManagerMac::beginExitFullScreenAnimation): Ditto.
8943
89442011-03-11  Jer Noble  <jer.noble@apple.com>
8945
8946        Reviewed by Anders Carlsson.
8947
8948        Hook up new WKFullScreenWindowController functions to WebFullScreenManagerProxy
8949        https://bugs.webkit.org/show_bug.cgi?id=56218
8950
8951        * UIProcess/WebFullScreenManagerProxy.cpp:
8952        * UIProcess/mac/WebFullScreenManagerProxyMac.mm: Added.
8953        (WebKit::WebFullScreenManagerProxy::enterFullScreen): Call into WKFullScreenWindowController.
8954        (WebKit::WebFullScreenManagerProxy::exitFullScreen): Ditto.
8955        (WebKit::WebFullScreenManagerProxy::beganEnterFullScreenAnimation): Ditto.
8956        (WebKit::WebFullScreenManagerProxy::finishedEnterFullScreenAnimation): Ditto.
8957        (WebKit::WebFullScreenManagerProxy::beganExitFullScreenAnimation): Ditto.
8958        (WebKit::WebFullScreenManagerProxy::finishedExitFullScreenAnimation): Ditto.
8959        (WebKit::WebFullScreenManagerProxy::enterAcceleratedCompositingMode): Ditto.
8960        (WebKit::WebFullScreenManagerProxy::exitAcceleratedCompositingMode): Ditto.
8961        (WebKit::WebFullScreenManagerProxy::getFullScreenRect): Ditto.
8962        * UIProcess/API/mac/WKView.mm:
8963        (-[WKView fullScreenWindowController]): Lazily instantiate a WKFullScreenWindowController.
8964        * UIProcess/API/mac/WKViewInternal.h:
8965
89662011-03-11  Jer Noble  <jer.noble@apple.com>
8967
8968        Reviewed by Anders Carlsson.
8969
8970        Add the WKFullScreenWindowController, mostly cribbed from WebKit's WebFullScreenController.
8971
8972        [WebKit2] Implement a full screen window controller
8973        https://bugs.webkit.org/show_bug.cgi?id=56210
8974
8975        * UIProcess/mac/WKFullScreenWindowController.h: Added.
8976        * UIProcess/mac/WKFullScreenWindowController.mm: Added.
8977        (-[WKFullScreenWindowController init]): Remove the _mediaEventListener.
8978        (-[WKFullScreenWindowController dealloc]): Make sure to cancel previous async requests.
8979        (-[WKFullScreenWindowController windowDidLoad]): Remove the Tiger protection.
8980        (-[WKFullScreenWindowController webView]): Type change.
8981        (-[WKFullScreenWindowController setWebView:]): Type change.
8982        (-[WKFullScreenWindowController applicationDidResignActive:]): Case changes.
8983        (-[WKFullScreenWindowController applicationDidChangeScreenParameters:]): Case changes.
8984        (-[WKFullScreenWindowController enterFullScreen:]): Removed most of the animation code
8985            which will reappear in WebFullScreenManager.
8986        (-[WKFullScreenWindowController beganEnterFullScreenAnimation]): Added.
8987        (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Added.
8988        (-[WKFullScreenWindowController exitFullScreen]): Ditto to enterFullScreen.
8989        (-[WKFullScreenWindowController beganExitFullScreenAnimation]): Added.
8990        (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Added.
8991        (-[WKFullScreenWindowController enterAcceleratedCompositingMode:WebKit::]): Set up the
8992            layer tree host.
8993        (-[WKFullScreenWindowController exitAcceleratedCompositingMode]): Tear down same.
8994        (-[WKFullScreenWindowController getFullScreenRect:WebCore::]): Added.
8995        (-[WKFullScreenWindowController _updateMenuAndDockForFullScreen]): Case changes.
8996        (-[WKFullScreenWindowController _disableIdleDisplaySleep]): Ditto.
8997        (-[WKFullScreenWindowController _enableIdleDisplaySleep]): Ditto.
8998        (-[WKFullScreenWindowController _disableIdleSystemSleep]): Ditto.
8999        (-[WKFullScreenWindowController _enableIdleSystemSleep]): Ditto.
9000        (-[WKFullScreenWindowController _enableTickleTimer]): Ditto.
9001        (-[WKFullScreenWindowController _disableTickleTimer]): Ditto.
9002        (-[WKFullScreenWindowController _tickleTimerFired]): Ditto.
9003        (-[WKFullScreenWindowController _updatePowerAssertions]): Use _isPlaying ivar.
9004        (-[WKFullScreenWindowController _manager]): Added.
9005        (-[WKFullScreenWindowController _requestExit]): Case changes.
9006        (-[WKFullScreenWindowController _requestExitFullScreenWithAnimation:]): Ditto.
9007        (-[WKFullScreenWindowController _swapView:with:]): Added.
9008        (-[WKFullScreenWindowController _fullScreenWindow]): Case changes.
9009        (-[WKFullScreenWindow initWithContentRect:styleMask:backing:defer:]): Geometry no
9010            longer needs to be flipped.
9011        (-[WKFullScreenWindow cancelOperation:]): Case changes.
9012
90132011-03-11  Jer Noble  <jer.noble@apple.com>
9014
9015        Reviewed by Anders Carlsson.
9016
9017        Create new interface stubs to support full screen mode in WebKit2.
9018
9019        WebKit2: Plumb new full screen animation APIs through WebKit2.
9020        https://bugs.webkit.org/show_bug.cgi?id=55993
9021
9022        * UIProcess/WebFullScreenManagerProxy.cpp:
9023        (WebKit::WebFullScreenManagerProxy::WebFullScreenManagerProxy): Added.
9024        (WebKit::WebFullScreenManagerProxy::invalidate): Clear m_webView.
9025        (WebKit::WebFullScreenManagerProxy::setWebView): Set m_webView.
9026        (WebKit::WebFullScreenManagerProxy::beginEnterFullScreenAnimation): Added.
9027        (WebKit::WebFullScreenManagerProxy::beginExitFullScreenAnimation): Added.
9028        (WebKit::WebFullScreenManagerProxy::beganEnterFullScreenAnimation): Added stub.
9029        (WebKit::WebFullScreenManagerProxy::finishedEnterFullScreenAnimation): Added stub.
9030        (WebKit::WebFullScreenManagerProxy::beganExitFullScreenAnimation): Added stub.
9031        (WebKit::WebFullScreenManagerProxy::finishedExitFullScreenAnimation): Added stub.
9032        (WebKit::WebFullScreenManagerProxy::enterAcceleratedCompositingMode): Added stub.
9033        (WebKit::WebFullScreenManagerProxy::exitAcceleratedCompositingMode): Added stub.
9034        (WebKit::WebFullScreenManagerProxy::getFullScreenRect): Added stub.
9035        * UIProcess/WebFullScreenManagerProxy.h:
9036        * UIProcess/WebFullScreenManagerProxy.messages.in: Added new message definitions.
9037        * UIProcess/WebPageProxy.cpp: Moved include of WebFullScreenManagerProxy.h into source file.
9038        * UIProcess/WebPageProxy.h: Ditto.
9039        * WebProcess/FullScreen/WebFullScreenManager.cpp:
9040        (WebKit::WebFullScreenManager::element): Added.
9041        (WebKit::WebFullScreenManager::supportsFullScreen): Send message through WebPage.
9042        (WebKit::WebFullScreenManager::enterFullScreenForElement): Ditto.
9043        (WebKit::WebFullScreenManager::exitFullScreenForElement): Ditto.
9044        (WebKit::WebFullScreenManager::beganEnterFullScreenAnimation): Added..
9045        (WebKit::WebFullScreenManager::finishedEnterFullScreenAnimation): Added.
9046        (WebKit::WebFullScreenManager::beganExitFullScreenAnimation): Added.
9047        (WebKit::WebFullScreenManager::finishedExitFullScreenAnimation): Added.
9048        (WebKit::WebFullScreenManager::setRootFullScreenLayer): Added stub.
9049        (WebKit::WebFullScreenManager::getFullScreenRect): Added.
9050        (WebKit::WebFullScreenManager::beginEnterFullScreenAnimation): Added stub.
9051        (WebKit::WebFullScreenManager::beginExitFullScreenAnimation): Added stub.
9052        * WebProcess/FullScreen/WebFullScreenManager.h:
9053        * WebProcess/FullScreen/WebFullScreenManager.messages.in: Added new message definitions.
9054        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
9055        (WebKit::WebChromeClient::setRootFullScreenLayer): Added.
9056        * WebProcess/WebCoreSupport/WebChromeClient.h:
9057
90582011-03-11  Alice Liu  <alice.liu@apple.com>
9059
9060        Reviewed by Sam Weinig.
9061
9062        Support encoding /decoding WebData in usermessages
9063        https://bugs.webkit.org/show_bug.cgi?id=56158
9064
9065        Added encoding/decoding for APIObject::TypeData
9066        * Shared/UserMessageCoders.h:
9067        (WebKit::UserMessageEncoder::baseEncode):
9068        (WebKit::UserMessageDecoder::baseDecode):
9069
90702011-03-11  Alice Liu  <alice.liu@apple.com>
9071
9072        Reviewed by Sam Weinig.
9073
9074        Add api for "remove" to WKMutableDictionary
9075        https://bugs.webkit.org/show_bug.cgi?id=56157
9076
9077        * Shared/API/c/WKMutableDictionary.cpp:
9078        (WKDictionaryRemoveItem): Added; call remove on MutableDictionary impl.
9079        * Shared/API/c/WKMutableDictionary.h:
9080        * Shared/MutableDictionary.cpp:
9081        (WebKit::MutableDictionary::remove): Added; call remove on the underlying hashmap.
9082        * Shared/MutableDictionary.h:
9083
90842011-03-11  Sheriff Bot  <webkit.review.bot@gmail.com>
9085
9086        Unreviewed, rolling out r80899 and r80912.
9087        http://trac.webkit.org/changeset/80899
9088        http://trac.webkit.org/changeset/80912
9089        https://bugs.webkit.org/show_bug.cgi?id=56236
9090
9091        Caused animation tests to crash on Snow Leopard WebKit2
9092        (Requested by rniwa on #webkit).
9093
9094        * Shared/ShareableBitmap.cpp:
9095        (WebKit::ShareableBitmap::create):
9096        (WebKit::ShareableBitmap::createShareable):
9097        (WebKit::ShareableBitmap::resize):
9098        * Shared/ShareableBitmap.h:
9099        (WebKit::ShareableBitmap::numBytesForSize):
9100        (WebKit::ShareableBitmap::sizeInBytes):
9101        * UIProcess/DrawingAreaProxyImpl.cpp:
9102        (WebKit::DrawingAreaProxyImpl::update):
9103        * WebKit2.xcodeproj/project.pbxproj:
9104        * WebProcess/WebPage/DrawingArea.h:
9105        (WebKit::DrawingArea::didUpdate):
9106        * WebProcess/WebPage/DrawingArea.messages.in:
9107        * WebProcess/WebPage/DrawingAreaImpl.cpp:
9108        (WebKit::DrawingAreaImpl::~DrawingAreaImpl):
9109        (WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState):
9110        (WebKit::DrawingAreaImpl::didUpdate):
9111        (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
9112        (WebKit::DrawingAreaImpl::display):
9113        * WebProcess/WebPage/DrawingAreaImpl.h:
9114        * WebProcess/WebPage/SharedMemoryCache.cpp: Removed.
9115        * WebProcess/WebPage/SharedMemoryCache.h: Removed.
9116        * win/WebKit2.vcproj:
9117
91182011-03-11  Brian Weinstein  <bweinstein@apple.com>
9119
9120        Windows build fix. Add SharedMemoryCache to the vcproj.
9121
9122        * win/WebKit2.vcproj:
9123
91242011-03-11  Alexey Proskuryakov  <ap@apple.com>
9125
9126        Reviewed by Sam Weinig.
9127
9128        https://bugs.webkit.org/show_bug.cgi?id=56222
9129        A window remains frozen if web process crashes during printing
9130
9131        * UIProcess/API/mac/PageClientImpl.h:
9132        * UIProcess/API/mac/PageClientImpl.mm:
9133        * UIProcess/PageClient.h:
9134        * UIProcess/WebPageProxy.cpp:
9135        (WebKit::WebPageProxy::setComplexTextInputEnabled):
9136        * UIProcess/WebPageProxy.h:
9137        Moved setAutodisplay code into WKPrintingView.
9138
9139        * UIProcess/API/mac/WKPrintingView.h:
9140        * UIProcess/API/mac/WKView.mm:
9141        (-[WKView printOperationWithPrintInfo:forFrame:]):
9142        Keep a reference to the actual WKView, so that we can manipulate how it displays, even if
9143        page goes away.
9144
9145        * UIProcess/API/mac/WKPrintingView.mm:
9146        (-[WKPrintingView initWithFrameProxy:WebKit::view:]):
9147        (-[WKPrintingView _setAutodisplay:]):
9148        (-[WKPrintingView _suspendAutodisplay]):
9149        (-[WKPrintingView _delayedResumeAutodisplayTimerFired]):
9150        Move setAutodisplay here.
9151
91522011-03-11  Anders Carlsson  <andersca@apple.com>
9153
9154        Reviewed by Sam Weinig.
9155
9156        Add a shared memory cache to the web process
9157        https://bugs.webkit.org/show_bug.cgi?id=56232
9158
9159        Add a very simple shared memory cache to the web process, so that we don't have to allocate and
9160        free memory over and over when painting.
9161
9162        * Shared/ShareableBitmap.cpp:
9163        (WebKit::ShareableBitmap::create):
9164        (WebKit::ShareableBitmap::createShareable):
9165        (WebKit::ShareableBitmap::resize):
9166        * Shared/ShareableBitmap.h:
9167        (WebKit::ShareableBitmap::numBytesNeededForBitmapSize):
9168        (WebKit::ShareableBitmap::sizeInBytes):
9169        Rename numBytesForSize to numBytesNeededForBitmapSize.
9170
9171        * UIProcess/DrawingAreaProxyImpl.cpp:
9172        (WebKit::DrawingAreaProxyImpl::update):
9173        Always send back a DidUpdate message, even if we didn't use the update info.
9174        This is needed so that the web process knows when the UI process is done with the shared memory inside
9175        the update info struct.
9176
9177        * WebKit2.xcodeproj/project.pbxproj:
9178        Add new files.
9179
9180        * WebProcess/WebPage/DrawingArea.h:
9181        (WebKit::DrawingArea::didUpdate):
9182        * WebProcess/WebPage/DrawingArea.messages.in:
9183        DidUpdate now takes a boolean.
9184
9185        * WebProcess/WebPage/DrawingAreaImpl.cpp:
9186        (WebKit::sharedMemoryCache):
9187        Add shared memory cache.
9188
9189        (WebKit::DrawingAreaImpl::~DrawingAreaImpl):
9190        Return the shared memory to the cache.
9191
9192        (WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState):
9193        display now takes an extra boolean.
9194
9195        (WebKit::DrawingAreaImpl::didUpdate):
9196        Return the shared memory to the cache.
9197
9198        (WebKit::DrawingAreaImpl::display):
9199        If useSharedMemoryCache is true, get shared memory from the cache.
9200
9201        * WebProcess/WebPage/SharedMemoryCache.cpp: Added.
9202        (WebKit::SharedMemoryCache::acquireSharedMemory):
9203        If the memory we currently hold on to is big enough, return it.
9204
9205        (WebKit::SharedMemoryCache::releaseSharedMemory):
9206        If we're already holding on to shared memory, evict it if the returned
9207        shared memory object is bigger than the one we currently hold.
9208
9209        (WebKit::SharedMemoryCache::clearCacheTimerFired):
9210        Null out the shared memory object.
9211
92122011-03-11  Jessie Berlin  <jberlin@apple.com>
9213
9214        Reviewed by Adam Roben.
9215
9216        Crash calling WebContext::clearResourceCaches(InMemoryResourceCachesOnly) before the Web
9217        Process has finished launching.
9218        https://bugs.webkit.org/show_bug.cgi?id=56208
9219
9220        Only send the message if the Web Process is valid.
9221
9222        * UIProcess/WebContext.cpp:
9223        (WebKit::WebContext::clearResourceCaches):
9224
92252011-03-11  Anders Carlsson  <andersca@apple.com>
9226
9227        Reviewed by Dan Bernstein.
9228
9229        Don't paint more than 60 times per second
9230        https://bugs.webkit.org/show_bug.cgi?id=56206
9231        <rdar://problem/9085989>
9232
9233        * WebProcess/WebPage/DrawingAreaImpl.cpp:
9234        (WebKit::DrawingAreaImpl::DrawingAreaImpl):
9235        Initialize m_lastDisplayTime to 0. Change the display timer to call displayTimerFired.
9236
9237        (WebKit::DrawingAreaImpl::didUpdate):
9238        Call displayTimerFired instead of display.
9239
9240        (WebKit::DrawingAreaImpl::displayTimerFired):
9241        If we're asked to paint again less than 1/60th of a second after we've already painted,
9242        defer painting.
9243
9244        (WebKit::DrawingAreaImpl::display):
9245        Update m_lastDisplayTime.
9246
92472011-03-11  Mark Rowe  <mrowe@apple.com>
9248
9249        Reviewed by Alice Liu.
9250
9251        <rdar://problem/9120161> WKPageRestoreFromSessionState does not set the pending API request URL.
9252
9253        * UIProcess/cf/WebPageProxyCF.cpp:
9254        (WebKit::WebPageProxy::restoreFromSessionStateData): If we're navigating to a back/forward item
9255        as part of the restoration, call setPendingAPIRequestURL. When there's a provisional URL this will
9256        be done by our call to loadURL elsewhere in the function.
9257
92582011-03-10  Alexey Proskuryakov  <ap@apple.com>
9259
9260        Reviewed by Jon Honeycutt.
9261
9262        WebKit2 UI process crashes if web process crashes while computing page rects for printing
9263        https://bugs.webkit.org/show_bug.cgi?id=56160
9264        <rdar://problem/9027410>
9265
9266        * UIProcess/API/mac/WKPrintingView.mm:
9267        (-[WKPrintingView _suspendAutodisplay]): Added a null check for page, matching one that
9268        we have when resuming autodisplay.
9269        (-[WKPrintingView _delayedResumeAutodisplayTimerFired]): Added a FIXME.
9270        (pageDidComputePageRects): Sanitize results coming from the web process (and avoid crashing
9271        when there is a communication error, so results are all null).
9272        (-[WKPrintingView knowsPageRange:]): If there is no page any more, we can't tell how many
9273        pages it had.
9274        (-[WKPrintingView rectForPage:]): Handle the case where we are neither calculating pages
9275        nor knowing them, as it happens when the web process crashes.
9276
92772011-03-10  Mark Rowe  <mrowe@apple.com>
9278
9279        Rubber-stamped by Sam Weinig.
9280
9281        Part of <rdar://problem/8728860> WebKit2 needs to be made localizable
9282
9283        The presence of CFBundleDevelopmentRegion in the application's Info.plist prevents
9284        the default localization that we set during launch from being respected.
9285
9286        * PluginProcess/Info.plist: Remove CFBundleDevelopmentRegion.
9287        * WebProcess/Info.plist: Ditto.
9288
92892011-03-10  Martin Robinson  <mrobinson@igalia.com>
9290
9291        Build for WebKit2 GTK+ after r80714.
9292
9293        * GNUmakefile.am: Update source list.
9294        * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
9295        (WebKit::x11Display): Add missing semicolon.
9296
92972011-03-10  Chris Fleizach  <cfleizach@apple.com>
9298
9299        Reviewed by Darin Adler.
9300
9301        REGRESSION (WebKit2): VoiceOver focus no longer follows keyboard focus
9302        https://bugs.webkit.org/show_bug.cgi?id=55959
9303
9304        NSApplication has to return the focused element within the app in order
9305        for NSAccessibilityHandleFocusChanged() to work. The default implementation
9306        relies on keyWindow. Consequently, in WK2, the WebProcess must override that method
9307        to return the appropriate focused element within the WebProcess, since
9308        there is no keyWindow.
9309
9310        * WebKit2.xcodeproj/project.pbxproj:
9311        * WebProcess/WebPage/mac/AccessibilityWebPageObject.mm:
9312        (-[AccessibilityWebPageObject accessibilityFocusedUIElement]):
9313        * WebProcess/WebProcess.cpp:
9314        (WebKit::WebProcess::focusedWebPage):
9315        * WebProcess/WebProcess.h:
9316        * WebProcess/mac/NSApplicationOverride.mm: Added.
9317        (-[NSApplication accessibilityFocusedUIElement]):
9318
93192011-03-10  Oleg Romashin  <romaxa@gmail.com>
9320
9321        Reviewed by Andreas Kling.
9322
9323        Make Qt port compiling with ENABLE_PLUGIN_PROCESS=1, part3
9324        Solving conflict of Qt and Xlib includes
9325
9326        * Shared/Plugins/NPIdentifierData.cpp:
9327        * Shared/Plugins/NPIdentifierData.h:
9328        * Shared/Plugins/NPObjectProxy.cpp:
9329        * Shared/Plugins/NPVariantData.h:
9330
93312011-03-10  Sam Weinig  <sam@webkit.org>
9332
9333        Reviewed by Mark Rowe.
9334
9335        - Fix plugins in release and production builds.
9336
9337        * WebKit2.xcodeproj/project.pbxproj:
9338        Make sure to base the PluginProcess target on the correct xcconfig file
9339        in all configurations.
9340
93412011-03-09  Matthew Delaney  <mdelaney@apple.com>
9342
9343        Reviewed by Simon Fraser.
9344
9345        Plumb through settings for accelerated drawing for canvas
9346        https://bugs.webkit.org/show_bug.cgi?id=56039
9347
9348        * Shared/WebPreferencesStore.h:
9349        * UIProcess/API/C/WKPreferences.cpp:
9350        * UIProcess/API/C/WKPreferencesPrivate.h:
9351        * WebProcess/WebPage/WebPage.cpp:
9352
93532011-03-10  Jessie Berlin  <jberlin@apple.com>
9354
9355        Reviewed by Oliver Hunt and Brian Weinstein.
9356
9357        WebKit2: Need a way to clear only the in-memory resource caches
9358        https://bugs.webkit.org/show_bug.cgi?id=56022
9359
9360        Add a parameter to WKContextClearResourceCaches to specify whether to clear all the caches
9361        or just the memory caches.
9362
9363        * Shared/ResourceCachesToClear.h: Added.
9364        * UIProcess/API/C/WKAPICast.h:
9365        (WebKit::toResourceCachesToClear):
9366
9367        * UIProcess/API/C/WKContext.cpp:
9368        (WKContextClearResourceCaches):
9369        Add the new parameter.
9370        * UIProcess/API/C/WKContext.h:
9371        * UIProcess/WebContext.cpp:
9372        (WebKit::WebContext::clearResourceCaches):
9373        Ditto.
9374        * UIProcess/WebContext.h:
9375
9376        * WebProcess/WebProcess.cpp:
9377        (WebKit::WebProcess::clearResourceCaches):
9378        Pass the new parameter through to the platform-specific functions.
9379        * WebProcess/WebProcess.h:
9380        Add the new parameter and give it a default of AllResourceCaches.
9381        * WebProcess/WebProcess.messages.in:
9382        Ditto.
9383        * WebProcess/gtk/WebProcessGtk.cpp:
9384        (WebKit::WebProcess::platformClearResourceCaches):
9385        Ditto.
9386        * WebProcess/qt/WebProcessQt.cpp:
9387        (WebKit::WebProcess::platformClearResourceCaches):
9388        Ditto.
9389        * WebProcess/win/WebProcessWin.cpp:
9390        (WebKit::WebProcess::platformClearResourceCaches):
9391        When told to clear only the in-memory caches, return early so as not to clear the CFNetwork
9392        disk cache.
9393        * WebProcess/mac/WebProcessMac.mm:
9394        (WebKit::WebProcess::platformClearResourceCaches):
9395        Ditto.
9396
9397        * WebKit2.xcodeproj/project.pbxproj:
9398        Add ResourceCachesToClear.h
9399        * win/WebKit2.vcproj:
9400        Ditto.
9401
94022011-03-10  Jeff Miller  <jeffm@apple.com>
9403
9404        Reviewed by Adam Roben.
9405
9406        WKViewRegisterEditCommandCallback should use WKViewUndoType
9407        https://bugs.webkit.org/show_bug.cgi?id=56120
9408
9409        * UIProcess/API/C/win/WKView.h: Change undoOrRedo parameter in WKViewRegisterEditCommandCallback to be WKViewUndoType.
9410
94112011-03-10  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
9412
9413        Reviewed by Kenneth Rohde Christiansen.
9414
9415        Tiled backing store's delegated scroll request uses incorrect convention
9416        https://bugs.webkit.org/show_bug.cgi?id=56011
9417
9418        Adapt all of the internal API to match the delta to point
9419        conversion at the WebCore side.
9420
9421        * UIProcess/API/qt/qwkpage.cpp:
9422        (QWKPagePrivate::pageDidRequestScroll):
9423        * UIProcess/API/qt/qwkpage_p.h:
9424        * UIProcess/PageClient.h:
9425        * UIProcess/WebPageProxy.cpp:
9426        (WebKit::WebPageProxy::pageDidRequestScroll):
9427        * UIProcess/WebPageProxy.h:
9428        * UIProcess/WebPageProxy.messages.in:
9429        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
9430        (WebKit::WebChromeClient::delegatedScrollRequested):
9431        * WebProcess/WebCoreSupport/WebChromeClient.h:
9432        * WebProcess/WebPage/WebPage.cpp:
9433        (WebKit::WebPage::pageDidRequestScroll):
9434        * WebProcess/WebPage/WebPage.h:
9435
94362011-03-10  Balazs Kelemen  <kbalazs@webkit.org>
9437
9438        Reviewed by Andreas Kling.
9439
9440        [WK2] Make non-transparent windowless plugins paint on X11
9441        https://bugs.webkit.org/show_bug.cgi?id=55660
9442
9443        Implement painting for non-transparent windowless X11 plugins.
9444        The essence of the logic has been adapted from WebCore.
9445        The implementation is stubbed for GTK and working only on Qt
9446        but it should be really easy to finish it for GTK.
9447
9448        * WebKit2.pro:
9449        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
9450        (WebKit::NPN_GetValue): Handle X11 specific values that are necessary.
9451        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
9452        (WebKit::NetscapePlugin::NetscapePlugin): Initialize the X11 specific
9453        members that has been added.
9454        (WebKit::NetscapePlugin::callSetWindow): Always set the x and y coordinates
9455        of the NP_Window to 0 on X11 since we are using a backings store as the
9456        painting area for the plugin.
9457        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
9458        * WebProcess/Plugins/Netscape/gtk/NetscapePluginGtk.cpp: Removed in favour
9459        of a common implementation for X11.
9460        * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp: Ditto.
9461        * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: Added.
9462        (WebKit::getPluginDisplay):
9463
9464        Platform specific static getters.
9465        (WebKit::x11Display):
9466        (WebKit::displayDepth):
9467        (WebKit::rootWindowID):
9468        (WebKit::x11Screen):
9469
9470        (WebKit::NetscapePlugin::platformPostInitialize): Set up the visual
9471        settings and the colormap for the plugin.
9472        (WebKit::NetscapePlugin::platformDestroy):
9473        (WebKit::NetscapePlugin::platformInvalidate): Remained stub.
9474        (WebKit::NetscapePlugin::platformGeometryDidChange): Create a new
9475        pixmap that fits the geometry.
9476        (WebKit::NetscapePlugin::platformPaint): Propagate a paint event
9477        to the plugin, sync with it if necessary and draw the pixmap to
9478        the screen.
9479        (WebKit::toNP): Remained stub.
9480        (WebKit::NetscapePlugin::platformHandleMouseEvent): Remained stub.
9481        (WebKit::NetscapePlugin::platformHandleWheelEvent): Remained stub.
9482        (WebKit::NetscapePlugin::platformSetFocus): Remained stub.
9483        (WebKit::NetscapePlugin::platformHandleMouseEnterEvent): Remained stub.
9484        (WebKit::NetscapePlugin::platformHandleMouseLeaveEvent): Remained stub.
9485        (WebKit::NetscapePlugin::platformHandleKeyboardEvent): Remained stub.
9486        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
9487        (WebKit::WebFrameLoaderClient::createPlugin): Hack. Inject wmode=opaque
9488        key-value pair to the plugin parameters to force Flash to act in
9489        non-transparent windowless mode. Qt also doing this in WebCore.
9490
94912011-03-09  Peter Kasting  <pkasting@google.com>
9492
9493        Reviewed by Mihai Parparita.
9494
9495        Unify Windows version checks.
9496        https://bugs.webkit.org/show_bug.cgi?id=55979
9497
9498        * UIProcess/win/WebPageProxyWin.cpp:
9499        (WebKit::WebPageProxy::standardUserAgent):
9500
95012011-03-09  Adele Peterson  <adele@apple.com>
9502
9503        Reviewed by Anders Carlsson.
9504
9505        Fix for https://bugs.webkit.org/show_bug.cgi?id=56068
9506        <rdar://problem/9058245> WebKit2: Can't uncheck 'Spelling and Grammar' contextual items
9507
9508        * UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::contextMenuItemSelected):
9509        Add cases for ContextMenuItemTagCorrectSpellingAutomatically, ContextMenuItemTagCheckSpellingWhileTyping,
9510        and ContextMenuItemTagCheckGrammarWithSpelling
9511
95122011-03-09  Alexey Proskuryakov  <ap@apple.com>
9513
9514        Reviewed by Dan Bernstein.
9515
9516        Frequent crashes when printing in WebPageProxy::setAutodisplay
9517        https://bugs.webkit.org/show_bug.cgi?id=56057
9518        <rdar://problem/9053290>
9519
9520        * UIProcess/API/mac/WKPrintingView.mm: (-[WKPrintingView _delayedResumeAutodisplayTimerFired]):
9521        Null check the page, there is no reason for it to still exist.
9522
95232011-03-09  Brent Fulgham  <bfulgham@webkit.org>
9524
9525        Unreviewed build correction.
9526
9527        * UIProcess/DrawingAreaProxy.messages.in: Exclude the other
9528          method using LayerTreeContext for non-accelerated composition case.
9529
95302011-03-09  Sam Weinig  <sam@webkit.org>
9531
9532        Reviewed by Anders Carlsson.
9533
9534        Change plugins to use their own executable on Mac OS X
9535        https://bugs.webkit.org/show_bug.cgi?id=55991
9536
9537        * Configurations/PluginProcess.xcconfig: Copied from Source/WebKit2/Configurations/WebProcess.xcconfig.
9538        * PluginProcess/Info.plist: Copied from Source/WebKit2/WebProcess/Info.plist.
9539        Add files necessary for adding PluginProcess.app.
9540
9541        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
9542        (WebKit::ProcessLauncher::launchProcess):
9543        Launch the PluginProcess.app when launching a plugin process.
9544
9545        * WebKit2.xcodeproj/project.pbxproj:
9546        Add new executable and new files, removes some unneeded copying
9547        and duplicate compiling of files.
9548
9549        * WebProcess/Info.plist:
9550        Sorted.
9551
95522011-03-09  Jessie Berlin  <jberlin@apple.com>
9553
9554        Reviewed by Adam Roben.
9555
9556        Use the Cookie Storage from the Private Browsing Storage Session directly
9557        https://bugs.webkit.org/show_bug.cgi?id=55986
9558
9559        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
9560        (InitWebCoreSystemInterface):
9561
95622011-03-09  Alejandro G. Castro  <alex@igalia.com>
9563
9564        Fix compilation after r80596, add soup Download stubs.
9565
9566        * GNUmakefile.am:
9567        * WebProcess/Downloads/soup/DownloadSoup.cpp: Added.
9568        (WebKit::Download::start):
9569        (WebKit::Download::startWithHandle):
9570        (WebKit::Download::cancel):
9571        (WebKit::Download::platformInvalidate):
9572        (WebKit::Download::didDecideDestination):
9573        (WebKit::Download::platformDidFinish):
9574
95752011-03-09  Alejandro G. Castro  <alex@igalia.com>
9576
9577        Fix GTK+ compilation after r80619. Add WebFullScreenManager.
9578
9579        * GNUmakefile.am:
9580
95812011-03-08  Jer Noble  <jer.noble@apple.com>
9582
9583        Reviewed by Sam Weinig.
9584
9585        WebKit2: Plumb through the FULLSCREEN_API Chrome client calls
9586        https://bugs.webkit.org/show_bug.cgi?id=55273
9587
9588        The FULLSCREEN_API Chrome client calls need to be plumbed through from the
9589        WebProcess to the UIProcess.  To do this, WebFullScreenManager (and Proxy)
9590        classes have been added to WebPage.
9591
9592        * DerivedSources.make: Added rules necessary to build DerivedSources for new .in files.
9593        * DerivedSources.pro: Ditto.
9594        * Platform/CoreIPC/MessageID.h: Added message types for WebFullScreenManager.
9595        * Shared/API/c/WKBase.h: Added WKFullScreenManagerRef.
9596        * Shared/APIObject.h: Added APIType for WebFullScreenManager.
9597        * UIProcess/WebFullScreenManagerProxy.cpp: Added.
9598        * UIProcess/WebFullScreenManagerProxy.h: Added.
9599        * UIProcess/WebFullScreenManagerProxy.messages.in: Added.
9600        * UIProcess/WebPageProxy.cpp:
9601        (WebKit::WebPageProxy::close): Invalidate and clear m_fullScreenManager.
9602        (WebKit::WebPageProxy::processDidCrash): Ditto.
9603        (WebKit::WebPageProxy::didReceiveMessage): Pass messages on to WebFullScreenManagerProxy.
9604        (WebKit::WebPageProxy::didReceiveSyncMessage): Ditto.
9605        (WebKit::WebPageProxy::fullScreenManager): Added. Lazy instantiation of m_fullScreenManager.
9606        * UIProcess/WebPageProxy.h:
9607        * UIProcess/WebPageProxy.messages.in:
9608        * UIProcess/WebUIClient.cpp:
9609        * UIProcess/WebUIClient.h:
9610        * WebKit2.xcodeproj/project.pbxproj: Added references to new classes in project file.
9611        * WebKit2.pro: Ditto.
9612        * win/WebKit2.vcproj: Ditto.
9613        * WebKit2.pri: Added new directories to include file path.
9614        * win/WebKit2Common.vsprops: Ditto.
9615        * WebProcess/FullScreen/WebFullScreenManager.cpp: Added.
9616        * WebProcess/FullScreen/WebFullScreenManager.h: Added.
9617        * WebProcess/FullScreen/WebFullScreenManager.messages.in: Added.
9618        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
9619        (WebKit::WebChromeClient::supportsFullScreenForElement): Pass through to WebFullScreenManager.
9620        (WebKit::WebChromeClient::enterFullScreenForElement): Ditto.
9621        (WebKit::WebChromeClient::exitFullScreenForElement): Ditto.
9622        * WebProcess/WebPage/WebPage.cpp:
9623        (WebKit::WebPage::close): Invalidate and clear m_fullScreenManager.
9624        (WebKit::WebPage::fullScreenManager): Lazy instantiation of m_fullScreenManager.
9625        (WebKit::WebPage::didReceiveMessage): Pass messages through to WebFullScreenManager.
9626        * WebProcess/WebPage/WebPage.h:
9627
96282011-03-08  Jer Noble  <jer.noble@apple.com>
9629
9630        Reviewed by Sam Weinig.
9631
9632        WebKit2: Plumb through the "supportsFullScreen" preference.
9633        https://bugs.webkit.org/show_bug.cgi?id=55261
9634
9635        The "supportsFullScreen" preference needs to be plumbed through from
9636        the UIProcess to the WebProcess.
9637
9638        * Shared/WebPreferencesStore.h: Add a new macro entry.
9639        * UIProcess/API/C/WKPreferences.cpp: Implement preferences getter and setter.
9640        (WKPreferencesSetFullScreenEnabled):
9641        (WKPreferencesGetFullScreenEnabled):
9642        * UIProcess/API/C/WKPreferences.h:
9643        * WebProcess/WebPage/WebPage.cpp:
9644        (WebKit::WebPage::updatePreferences): Sync the fullScreenEnabled setting through to
9645            the settings object.
9646
96472011-03-08  Jeff Miller  <jeffm@apple.com>
9648
9649        Reviewed by Adele Peterson.
9650
9651        WebKit2: Implement Windows glue for Undo/Redo
9652        https://bugs.webkit.org/show_bug.cgi?id=55961
9653
9654        Expose Undo/Redo infrastructure through WKView on Windows by
9655        adding an undo client as well as APIs to reapply and unapply
9656        an edit command.
9657
9658        * UIProcess/API/C/win/WKView.cpp:
9659        (WKViewSetViewUndoClient): Added.
9660        (WKViewReapplyEditCommand): Added.
9661        (WKViewUnapplyEditCommand): Added.
9662        * UIProcess/API/C/win/WKView.h: Added WKViewUndoClient, WKViewSetViewUndoClient(), and WKViewUnapplyEditCommand().
9663        * UIProcess/WebPageProxy.cpp:
9664        (WebKit::WebPageProxy::isValidEditCommand): Added, used to validated an edit command from a WKView API.
9665        * UIProcess/WebPageProxy.h: Added isValidEditCommand().
9666        * UIProcess/win/WebUndoClient.cpp: Added, APIClient for WKViewUndoClient.
9667        (WebKit::WebUndoClient::registerEditCommand): Added.
9668        (WebKit::WebUndoClient::clearAllEditCommands): Added.
9669        * UIProcess/win/WebUndoClient.h: Added, APIClient for WKViewUndoClient.
9670        * UIProcess/win/WebView.cpp:
9671        (WebKit::WebView::initializeUndoClient): Added.
9672        (WebKit::WebView::close): Clear out undo client.
9673        (WebKit::WebView::registerEditCommand): Implemented to call through to WKViewUndoClient.
9674        (WebKit::WebView::clearAllEditCommands): Implmented to call through to WKViewUndoClient.
9675        (WebKit::WebView::reapplyEditCommand): Added.
9676        (WebKit::WebView::unapplyEditCommand): Added.
9677        * UIProcess/win/WebView.h: Added undo client support.
9678        * win/WebKit2.vcproj: Added WebUndoClient.cpp and WebUndoClient.h.
9679
96802011-03-08  Jeff Miller  <jeffm@apple.com>
9681
9682        Reviewed by Sam Weinig.
9683
9684        WebKit2: Expose WebEditCommandProxy in the C API on Windows
9685        https://bugs.webkit.org/show_bug.cgi?id=55962
9686
9687        Make WebEditCommandProxy a subclass of APIObject, and define
9688        WKEditCommandRef as the type that will be exposed through the C API.
9689
9690        * Shared/API/c/win/WKBaseWin.h: Add WKEditCommandRef.
9691        * Shared/APIObject.h: Add platform-specific TypeEditCommandProxy.
9692        * UIProcess/API/C/win/WKAPICastWin.h: Add API mapping for WKEditCommandRef.
9693        * UIProcess/WebEditCommandProxy.h: Subclass WebEditCommandProxy from APIObject.
9694        (WebKit::WebEditCommandProxy::type): Added.
9695
96962011-03-08  Jeff Miller  <jeffm@apple.com>
9697
9698        Reviewed by Oliver Hunt.
9699
9700        WebKit2: Redo is broken
9701        https://bugs.webkit.org/show_bug.cgi?id=55978
9702
9703        WebEditCommandProxy::unapply() and WebEditCommandProxy::reapply() were registering the wrong edit command when an undo or redo happens.
9704        For example, when we unapply(), we should register a Redo command, not an Undo command.
9705
9706        * UIProcess/WebEditCommandProxy.cpp:
9707        (WebKit::WebEditCommandProxy::unapply): Register a Redo command, not an Undo command.
9708        (WebKit::WebEditCommandProxy::reapply): Register an Undo command, not a Redo command.
9709
97102011-03-08  Brent Fulgham  <bfulgham@webkit.org>
9711
9712        Reviewed by Adam Roben.
9713
9714        https://bugs.webkit.org/show_bug.cgi?id=55977
9715        Refine CF/CFNet distinctions for better code sharing.
9716        1. Rename Downloads/cf/win/DownloadCFNetWin.cpp to DownloadCFWin.cpp
9717           since it does not use any CFNETWORK features.
9718        2. Create new cfnet directory.
9719        3. Move Downloads/cf/DownloadCFNet.cpp to Downloads/cfnet
9720        4. Update project file.
9721
9722        * WebProcess/Downloads/cf/DownloadCFNet.cpp: Removed.
9723        * WebProcess/Downloads/cf/win/DownloadCFNetWin.cpp: Removed.
9724        * WebProcess/Downloads/cf/win/DownloadCFWin.cpp: Copied from WebProcess/Downloads/cf/win/DownloadCFNetWin.cpp.
9725        * WebProcess/Downloads/cfnet: Added.
9726        * WebProcess/Downloads/cfnet/DownloadCFNet.cpp: Copied from WebProcess/Downloads/cf/DownloadCFNet.cpp.
9727        * win/WebKit2.vcproj:
9728
97292011-03-08  Mark Rowe  <mrowe@apple.com>
9730
9731        Reviewed by Brady Eidson.
9732
9733        <http://webkit.org/b/55976> Provisional URL should be loaded when restoring session state even if there are back / forward list entries.
9734
9735        * UIProcess/cf/WebPageProxyCF.cpp:
9736        (WebKit::WebPageProxy::restoreFromSessionStateData): If there's a provisional URL that we will load then restore the session state
9737        without navigating to the current item.
9738        * WebProcess/WebPage/WebPage.messages.in: Expose the ability to restore the session state without navigating to the current item.
9739
97402011-03-08  Brent Fulgham  <bfulgham@webkit.org>
9741
9742        Reviewed by Anders Carlsson.
9743
9744        https://bugs.webkit.org/show_bug.cgi?id=55956
9745        WebKit2 Changes to correct WinCairo port build
9746
9747        * Shared/LayerTreeContext.h: Don't exclude CoreIPC declarations for non-accelerated
9748          compositing case.
9749        * UIProcess/DrawingAreaProxy.h: Add "stdint.h" include needed for Cairo build.
9750        * UIProcess/DrawingAreaProxyImpl.cpp: Exclude accelerated compositing code for
9751          WinCairo build.
9752        (WebKit::DrawingAreaProxyImpl::~DrawingAreaProxyImpl):
9753        (WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState):
9754        (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
9755        (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
9756        (WebKit::DrawingAreaProxyImpl::sendUpdateBackingStoreState):
9757        (WebKit::DrawingAreaProxyImpl::waitForAndDispatchDidUpdateBackingStoreState):
9758        * UIProcess/DrawingAreaProxyImpl.h: Exclude declarations for code only used when
9759          accelerated compositing is enabled.
9760        (WebKit::DrawingAreaProxyImpl::isInAcceleratedCompositingMode):
9761        * UIProcess/win/WebView.cpp: Protect CG-specific drawing code.
9762        (WebKit::WebView::setFindIndicator):
9763        * WebProcess/Downloads/Download.h: Allow CFLite implentation to share overwrite flag,
9764          as well as destination and bundle paths.
9765        * WebProcess/Downloads/curl/DownloadCurl.cpp: Remove stub (to share CFNet implementation
9766          of file handling.  This will be moved to a common area in a future patch.)
9767        * WebProcess/WebPage/DrawingAreaImpl.cpp: Exclude accelerated-compositing paths.
9768        (WebKit::DrawingAreaImpl::layerHostDidFlushLayers):
9769        (WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState):
9770        (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
9771        * WebProcess/WebPage/WebPage.cpp: Protect CG-specific drawing code.
9772        (WebKit::WebPage::drawRectToPDF):
9773        (WebKit::WebPage::drawPagesToPDF):
9774        * win/WebKit2.vcproj: Exclude unused LayerTreeContext from WinCairo
9775
97762011-03-08  Ivan Krstić  <ike@apple.com>
9777
9778        Reviewed by Sam Weinig.
9779
9780        Re-fix: can't paste from 3rd party text editor into WebKit2 window
9781        <rdar://problem/8978624>
9782
9783        * WebProcess/com.apple.WebProcess.sb:
9784
97852011-03-08  Martin Robinson  <mrobinson@igalia.com>
9786
9787        Fix the WebKit2 compilation after r80578.
9788
9789        * UIProcess/gtk/WebView.cpp:
9790        (WebKit::WebView::setFocus): Added.
9791        * UIProcess/gtk/WebView.h:
9792
97932011-03-08  Jessie Berlin  <jberlin@apple.com>
9794
9795        Reviewed by Anders Carlsson.
9796
9797        Crash in CFNetwork visiting google.com
9798        https://bugs.webkit.org/show_bug.cgi?id=55958
9799
9800        * Shared/API/c/cf/WKURLResponseCF.cpp:
9801        (WKURLResponseCopyCFURLResponse):
9802        If the response to copy is null, return 0;
9803
98042011-03-08  John Sullivan  <sullivan@apple.com>
9805
9806        Reverted the patch for https://bugs.webkit.org/show_bug.cgi?id=55940
9807
9808        The patch was insufficient, and it wasn't useful for the intended client use either.
9809
9810        * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
9811        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
9812        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
9813
98142011-03-08  Alejandro G. Castro  <alex@igalia.com>
9815
9816        Unreviewed, fixed GTK+ compilation after r80569.
9817
9818        * UIProcess/gtk/WebView.cpp:
9819        (WebKit::WebView::windowToScreen):
9820        * UIProcess/gtk/WebView.h:
9821
98222011-03-08  Chris Fleizach  <cfleizach@apple.com>
9823
9824        Reviewed by Sam Weinig.
9825
9826        WK2: Cannot set focus on an element when focus is outside of WKView
9827        https://bugs.webkit.org/show_bug.cgi?id=55281
9828
9829        * UIProcess/API/mac/PageClientImpl.h:
9830        * UIProcess/API/mac/PageClientImpl.mm:
9831        (WebKit::PageClientImpl::setFocus):
9832        * UIProcess/API/qt/qwkpage_p.h:
9833        (QWKPagePrivate::setFocus):
9834        * UIProcess/PageClient.h:
9835        * UIProcess/WebPageProxy.cpp:
9836        (WebKit::WebPageProxy::setFocus):
9837        * UIProcess/WebPageProxy.h:
9838        * UIProcess/WebPageProxy.messages.in:
9839        * UIProcess/win/WebView.h:
9840        (WebKit::WebView::setFocus):
9841        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
9842        (WebKit::WebChromeClient::focus):
9843        (WebKit::WebChromeClient::unfocus):
9844
98452011-03-08  Jeff Miller  <jeffm@apple.com>
9846
9847        Unreviewed, fix last change so WKBaseWin.h is in alphabetical order in the project XML.
9848
9849        * win/WebKit2.vcproj: Move WKBaseWin.h to be in alphabetical order.
9850
98512011-03-08  Jeff Miller  <jeffm@apple.com>
9852
9853        Reviewed by Darin Adler.
9854
9855        Remove Source/WebKit2/UIProcess/API/C/win/WKBaseWin.h
9856        https://bugs.webkit.org/show_bug.cgi?id=55952
9857
9858        * UIProcess/API/C/win/WKBaseWin.h: Removed.
9859        * win/WebKit2.vcproj: Refer to the Shared version of WKBaseWin.h instead of the one in UIProcess.
9860
98612011-03-08  Alejandro G. Castro  <alex@igalia.com>
9862
9863        Reviewed by Martin Robinson.
9864
9865        [GTK] Add new files to compilation after r77974
9866        https://bugs.webkit.org/show_bug.cgi?id=54076
9867
9868        The commit added new code to allow passing context to policy
9869        delegate methods, we also added dummy ResourceRequest and
9870        ResourceResponse decoders until we implement them.
9871
9872        * GNUmakefile.am:
9873        * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
9874        (CoreIPC::decodeResourceRequest):
9875        (CoreIPC::decodeResourceResponse):
9876
98772011-03-08  Chris Fleizach  <cfleizach@apple.com>
9878
9879        Reviewed by Darin Adler.
9880
9881        AX: Webkit2 not sending UAZoomFocusChanged notifications
9882        https://bugs.webkit.org/show_bug.cgi?id=55916
9883
9884        Needed to implement the windowToScreen() method so that the right frame
9885        could be calculated to send for zoom focus changes.
9886
9887        * UIProcess/API/mac/PageClientImpl.h:
9888        * UIProcess/API/mac/PageClientImpl.mm:
9889        (WebKit::PageClientImpl::windowToScreen):
9890        * UIProcess/API/qt/qwkpage.cpp:
9891        (QWKPagePrivate::windowToScreen):
9892        * UIProcess/API/qt/qwkpage_p.h:
9893        * UIProcess/PageClient.h:
9894        * UIProcess/WebPageProxy.cpp:
9895        (WebKit::WebPageProxy::windowToScreen):
9896        * UIProcess/WebPageProxy.h:
9897        * UIProcess/WebPageProxy.messages.in:
9898        * UIProcess/win/WebView.cpp:
9899        (WebKit::WebView::windowToScreen):
9900        * UIProcess/win/WebView.h:
9901        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
9902        (WebKit::WebChromeClient::windowToScreen):
9903        * WebProcess/WebPage/WebPage.cpp:
9904        (WebKit::WebPage::windowToScreen):
9905        * WebProcess/WebPage/WebPage.h:
9906
99072011-03-08  John Sullivan  <sullivan@apple.com>
9908
9909        Reviewed by Darin Adler.
9910
9911        https://bugs.webkit.org/show_bug.cgi?id=55940
9912        WebKit2 should support Ignore policy from injected bundle client
9913
9914        * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
9915        Added WKBundlePagePolicyActionIgnore.
9916
9917        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
9918        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
9919        If the injected bundle client returns WKBundlePagePolicyActionIgnore, convert it
9920        to the loader's PolicyIgnore.
9921
99222011-03-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
9923
9924        Reviewed by Kenneth Rohde Christiansen.
9925
9926        [Qt] [Symbian] [WK2] Fix building WebKit 2 API tests
9927        https://bugs.webkit.org/show_bug.cgi?id=55876
9928
9929        Make sure TESTS_SOURCE_DIR is set for Symbian the same way
9930        as it is for WK1.
9931
9932        * UIProcess/API/qt/tests/qgraphicswkview/tst_qgraphicswkview.cpp:
9933        (tst_QGraphicsWKView::loadEmptyPage):
9934        * UIProcess/API/qt/tests/tests.pri:
9935
99362011-03-07  Damian Kaleta  <dkaleta@apple.com>
9937
9938        Reviewed by Anders Carlsson.
9939
9940        QuickTime plugin should opt in to a 32-bit non-executable heap
9941        https://bugs.webkit.org/show_bug.cgi?id=55704
9942        <rdar://problem/8105706>
9943
9944        * UIProcess/Plugins/PluginProcessProxy.cpp:
9945        (WebKit::pluginNeedsExecutableHeap): Decides per plugin if it should opt-in to a 32-bit non-executable heap.
9946        By default it should opt-out.
9947        (WebKit::PluginProcessProxy::PluginProcessProxy):
9948
99492011-03-07  Sam Weinig  <sam@webkit.org>
9950
9951        Reviewed by Anders Carlsson.
9952
9953        Add unableToImplementPolicy callback for WebKit2 policy client
9954        <rdar://problem/9071902>
9955        https://bugs.webkit.org/show_bug.cgi?id=55884
9956
9957        * UIProcess/API/C/WKPage.h:
9958        * UIProcess/WebPageProxy.cpp:
9959        (WebKit::WebPageProxy::unableToImplementPolicy):
9960        * UIProcess/WebPageProxy.h:
9961        * UIProcess/WebPageProxy.messages.in:
9962        * UIProcess/WebPolicyClient.cpp:
9963        (WebKit::WebPolicyClient::unableToImplementPolicy):
9964        * UIProcess/WebPolicyClient.h:
9965        * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
9966        * WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
9967        (WebKit::InjectedBundlePagePolicyClient::unableToImplementPolicy):
9968        * WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.h:
9969        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
9970        (WebKit::WebFrameLoaderClient::dispatchUnableToImplementPolicy):
9971        Pipe unableToImplementPolicy through both the bundle and the main WebKit2 API.
9972
99732011-03-07  Sam Weinig  <sam@webkit.org>
9974
9975        Reviewed by Anders Carlsson.
9976
9977        Replace WebKit2's decidePolicyForMIMEType with decidePolicyForResponse
9978        https://bugs.webkit.org/show_bug.cgi?id=55827
9979
9980        - Renamed FrameLoaderClient::dispatchDecidePolicyForMIMEType to dispatchDecidePolicyForResponse
9981          and pass the entire response, instead of just the MIMEType.
9982        - Updated both UIProcess API and bundle API to also be based on the whole response, not just the
9983          MIMEType.
9984
9985        * UIProcess/API/C/WKPage.h:
9986        * UIProcess/WebPageProxy.cpp:
9987        (WebKit::WebPageProxy::decidePolicyForResponse):
9988        * UIProcess/WebPageProxy.h:
9989        * UIProcess/WebPageProxy.messages.in:
9990        * UIProcess/WebPolicyClient.cpp:
9991        (WebKit::WebPolicyClient::decidePolicyForResponse):
9992        * UIProcess/WebPolicyClient.h:
9993        * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
9994        * WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
9995        (WebKit::InjectedBundlePagePolicyClient::decidePolicyForResponse):
9996        * WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.h:
9997        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
9998        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
9999        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
10000
100012011-03-06  Jessie Berlin  <jberlin@apple.com>
10002
10003        Reviewed by Sam Weinig.
10004
10005        WebKit2: Use CFNetwork Sessions API.
10006        https://bugs.webkit.org/show_bug.cgi?id=55435.
10007
10008        When Private Browsing is enabled, use cookies from a in-memory cookie storage based on the
10009        Private Browsing Storage Session.
10010
10011        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
10012        (InitWebCoreSystemInterface):
10013        Add support for using the new WKSI functions in WebCore.
10014
100152011-03-06  Oleg Romashin  <romaxa@gmail.com>
10016
10017        Reviewed by Kenneth Rohde Christiansen.
10018
10019        [Qt][WK2] Make Qt port compiling with ENABLE_PLUGIN_PROCESS=1, part1
10020        Adding dummy Qt files for Plugin Process implementation,
10021        Adding missing sources into Qt pro files
10022        https://bugs.webkit.org/show_bug.cgi?id=55719
10023
10024        * DerivedSources.pro:
10025        * PluginProcess/qt: Added.
10026        * PluginProcess/qt/PluginControllerProxyQt.cpp: Added.
10027        (WebKit::PluginControllerProxy::platformInitialize):
10028        (WebKit::PluginControllerProxy::platformDestroy):
10029        (WebKit::PluginControllerProxy::platformGeometryDidChange):
10030        * PluginProcess/qt/PluginProcessMainQt.cpp: Added.
10031        (WebKit::PluginProcessMain):
10032        * PluginProcess/qt/PluginProcessQt.cpp: Added.
10033        (WebKit::PluginProcess::platformInitialize):
10034        * UIProcess/Plugins/qt/PluginProcessProxyQt.cpp: Added.
10035        (WebKit::PluginProcessProxy::platformInitializePluginProcess):
10036        * WebKit2.pri:
10037        * WebKit2.pro:
10038        * WebKit2API.pri:
10039        * WebProcess/Plugins/Netscape/qt/PluginProxyQt.cpp: Added.
10040        (WebKit::PluginProxy::needsBackingStore):
10041
100422011-03-05  Sam Weinig  <sam@webkit.org>
10043
10044        Reviewed by Dan Bernstein.
10045
10046        Remove unneeded onPageClose function from DrawingArea
10047        https://bugs.webkit.org/show_bug.cgi?id=55836
10048
10049        * WebProcess/WebPage/DrawingArea.h:
10050        Remove empty function.
10051
10052        * WebProcess/WebPage/WebPage.cpp:
10053        (WebKit::WebPage::close):
10054        Remove only called
10055
100562011-03-04  Jon Honeycutt  <jhoneycutt@apple.com>
10057
10058        WK2 Mac build fix.
10059
10060        * UIProcess/API/C/WKPage.cpp:
10061        (WKPageComputePagesForPrinting):
10062        (WKPageBeginPrinting):
10063
10064        * UIProcess/API/C/WKPagePrivate.h:
10065
100662011-03-04  Jon Honeycutt  <jhoneycutt@apple.com>
10067
10068        WK2 Mac build fix.
10069
10070        * UIProcess/API/C/WKPagePrivate.h:
10071
100722011-03-04  Jon Honeycutt  <jhoneycutt@apple.com>
10073
10074        WK2 needs printing support on Windows
10075        https://bugs.webkit.org/show_bug.cgi?id=55800
10076        <rdar://problem/8903808>
10077
10078        Reviewed by Darin Adler.
10079
10080        * UIProcess/API/C/WKPage.cpp:
10081        (ComputedPagesContext::ComputedPagesContext):
10082        (computedPagesCallback):
10083        From the Vector of WebCore::IntRects, build up a Vector of WKRects.
10084        Call the callback, passing these rects and the scale factor.
10085        (printInfoFromWKPrintInfo):
10086        Return a PrintInfo structure from the WKPrintInfo.
10087        (WKPageComputePagesForPrinting):
10088        Call WebPageProxy::computePagesForPrinting(). Pass
10089        computedPagesCallback as the callback function, so that we can
10090        translate the WebCore rect type to WKRect before calling the caller's
10091        callback function.
10092        (WKPageBeginPrinting):
10093        Call WebPageProxy::beginPrinting().
10094        (WKPageDrawPagesToPDF):
10095        Call WebPageProxy::drawPagesToPDF().
10096
10097        * UIProcess/API/C/WKPagePrivate.h:
10098        Declare the WKPrintInfo type and new functions.
10099
10100        * UIProcess/WebPageProxy.cpp:
10101        Compile this code on Windows.
10102
10103        * UIProcess/WebPageProxy.h:
10104        Ditto.
10105
10106        * UIProcess/win/WebView.cpp:
10107        (WebKit::WebView::paint):
10108        We're painting the window; leave printing mode.
10109
10110        * WebProcess/WebPage/WebPage.cpp:
10111        Compile this code on Windows.
10112
10113        * WebProcess/WebPage/WebPage.h:
10114        Ditto.
10115
10116        * WebProcess/WebPage/WebPage.messages.in:
10117        Ditto.
10118
101192011-03-04  Steve Falkenburg  <sfalken@apple.com>
10120
10121        Reviewed by Darin Adler.
10122
10123        Adopt VersionStamper tool for Windows WebKit DLLs
10124        https://bugs.webkit.org/show_bug.cgi?id=55784
10125        <rdar://problem/9021320>
10126
10127        We now use a tool to stamp the version number onto the Apple WebKit DLLs
10128        during the post-build step.
10129
10130        Fetch the WebKit version from a string resource instead of the version resource.
10131
10132        * UIProcess/win/WebPageProxyWin.cpp:
10133        (WebKit::userVisibleWebKitVersionString): Fetch version from a string resource.
10134        * win/WebKit2.rc: Removed version, added stringtable.
10135        * win/WebKit2WebProcess.rc: Removed.
10136        * win/WebKit2WebProcess.vcproj:
10137        * win/WebKit2WebProcessPostBuild.cmd: Don't run autoversion script. It isn't used in this project.
10138        * win/WebKit2WebProcessPreBuild.cmd: Stamp version.
10139        * win/WebKitPostBuild.cmd: Stamp version.
10140
101412011-03-04  Jeff Miller  <jeffm@apple.com>
10142
10143        Reviewed by Darin Adler.
10144
10145        Add WKPageValidateCommand()
10146        https://bugs.webkit.org/show_bug.cgi?id=55793
10147
10148        On the Mac, validation of edit menu commands is handled within WebKit2 in WKView.mm.
10149        However, on Windows we need to do this in the client, so expose this functionality
10150        in the API via WKPageValidateCommand().
10151
10152        Change the Mac implementation to call WebPageProxy::validateCommand() with a callback
10153        to match this new API, so it no longer has to go through PageClient to get notified
10154        when a command is validated.  This makes PageClient::setEditCommandState() obsolete,
10155        so I removed the stub implementations in qt and gtk as well.
10156
10157        * UIProcess/API/C/WKPage.cpp:
10158        (WKPageValidateCommand): Added.
10159        * UIProcess/API/C/WKPage.h: Added WKPageValidateCommand().
10160        * UIProcess/API/mac/PageClientImpl.h: Removed setEditCommandState().
10161        * UIProcess/API/mac/PageClientImpl.mm: Removed setEditCommandState().
10162        * UIProcess/API/mac/WKView.mm:
10163        (validateCommandCallback): Added.
10164        (-[WKView validateUserInterfaceItem:]): Pass callback to validateCommand().
10165        * UIProcess/API/qt/qwkpage.cpp: Removed setEditCommandState().
10166        * UIProcess/API/qt/qwkpage_p.h: Removed setEditCommandState().
10167        * UIProcess/PageClient.h: Removed setEditCommandState().
10168        * UIProcess/WebPageProxy.cpp: Removed didValidateCommand().
10169        (WebKit::WebPageProxy::validateCommand): This now takes a callback.
10170        (WebKit::WebPageProxy::validateCommandCallback): Added.
10171        (WebKit::WebPageProxy::processDidCrash): Invalidate m_validateCommandCallbacks.
10172        * UIProcess/WebPageProxy.h: Removed didValidateCommand(), validateCommand() now takes a callback.
10173        (WebKit::ValidateCommandCallback::create): Added.
10174        (WebKit::ValidateCommandCallback::~ValidateCommandCallback): Added.
10175        (WebKit::ValidateCommandCallback::performCallbackWithReturnValue): Added.
10176        (WebKit::ValidateCommandCallback::invalidate): Added.
10177        (WebKit::ValidateCommandCallback::ValidateCommandCallback): Added.
10178        * UIProcess/WebPageProxy.messages.in: Removed DidValidateCommand, added ValidateCommandCallback.
10179        * UIProcess/gtk/WebView.cpp: Removed setEditCommandState().
10180        * UIProcess/gtk/WebView.h: Removed setEditCommandState().
10181        * UIProcess/win/WebView.cpp: Removed setEditCommandState().
10182        * UIProcess/win/WebView.h: Removed setEditCommandState().
10183        * WebProcess/WebPage/WebPage.cpp:
10184        (WebKit::WebPage::validateCommand): This now takes a callbackID.
10185        * WebProcess/WebPage/WebPage.h: validateCommand now takes a callbackID.
10186        * WebProcess/WebPage/WebPage.messages.in: ValidateCommand now takes a callbackID.
10187
101882011-03-04  Brian Weinstein  <bweinstein@apple.com>
10189
10190        Reviewed by Darin Adler.
10191
10192        Reference-counting for WKBundlePageResourceLoadClient::willSendRequestForFrame seems unclear/wrong
10193        https://bugs.webkit.org/show_bug.cgi?id=53919
10194        <rdar://problem/8966020>
10195
10196        Adopt the result of m_client.willSendRequestForFrame (which will be leaked by the client).
10197
10198        * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
10199        (WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame):
10200
102012011-03-04  Darin Adler  <darin@apple.com>
10202
10203        Reviewed by Mark Rowe.
10204
10205        WebKit2 session state should include even loads too new to be in the back/forward list
10206        https://bugs.webkit.org/show_bug.cgi?id=55781
10207        part of <rdar://problem/8968847>
10208
10209        * UIProcess/cf/WebPageProxyCF.cpp:
10210        (WebKit::WebPageProxy::sessionStateData): Save URLs that are early enough in the loading
10211        process to not be included in the back/forward list yet: The pending API request URL and
10212        the provisional URL.
10213        (WebKit::WebPageProxy::restoreFromSessionStateData): Call loadURL if the back/forward
10214        list is not restored and a URL is present. Later we can improve the way we handle the
10215        case where we have both a back/forward list and a URL.
10216
102172011-03-04  Jessie Berlin  <jberlin@apple.com>
10218
10219        Reviewed by Darin Adler.
10220
10221        WebKit2: Use CFNetwork Sessions API.
10222        https://bugs.webkit.org/show_bug.cgi?id=55435.
10223
10224        Add in the CFURLSTORAGESESSIONS guards that I incorrectly left out because the code was
10225        contained within guards that made USE(CFURLSTORAGESESSIONS) always be true.
10226
10227        * UIProcess/mac/WebContextMac.mm:
10228        (WebKit::WebContext::platformInitializeWebProcess):
10229        * UIProcess/win/WebContextWin.cpp:
10230        (WebKit::WebContext::platformInitializeWebProcess):
10231
102322011-03-04  Jessie Berlin  <jberlin@apple.com>
10233
10234        Reviewed by Maciej Stachowiak.
10235
10236        WebKit2: Use CFNetwork Sessions API.
10237        https://bugs.webkit.org/show_bug.cgi?id=55435.
10238
10239        When Private Browsing is enabled, get the cached url response from the cache associated with
10240        the Private Browsing Storage Session.
10241
10242        * WebProcess/WebPage/mac/WebPageMac.mm:
10243        (WebKit::WebPage::platformHasLocalDataForURL):
10244        If Private Browsing is enabled, call into WKSI to get the response.
10245        (WebKit::WebPage::cachedResponseMIMETypeForURL):
10246        Ditto.
10247        * WebProcess/WebPage/win/WebPageWin.cpp:
10248        (WebKit::WebPage::platformHasLocalDataForURL):
10249        If Private Browsing is enabled, call into WKSI to get the CFURLCacheRef.
10250        (WebKit::WebPage::cachedResponseMIMETypeForURL):
10251        Ditto.
10252
102532011-03-04  Jeff Miller  <jeffm@apple.com>
10254
10255        Reviewed by Darin Adler.
10256
10257        Move WKViewExecuteCommand() to WKPageExecuteCommand()
10258        https://bugs.webkit.org/show_bug.cgi?id=55744
10259
10260        Executing a command operates on a page, so it makes more sense for it to be in WKPage.
10261        This also makes it available on all platforms, not just Windows.
10262
10263        * UIProcess/API/C/WKPage.cpp:
10264        (WKPageExecuteCommand): Added.
10265        * UIProcess/API/C/WKPage.h: Add WKPageExecuteCommand().
10266        * UIProcess/API/C/win/WKView.cpp: Remove WKViewExecuteCommand().
10267        * UIProcess/API/C/win/WKView.h: Remove WKViewExecuteCommand().
10268
102692011-03-04  Dan Bernstein  <mitz@apple.com>
10270
10271        LLVM Compiler build fix.
10272
10273        * WebProcess/WebPage/WebPage.cpp:
10274        (WebKit::WebPage::runJavaScriptInMainFrame):
10275
102762011-03-03  Timothy Hatcher  <timothy@apple.com>
10277
10278        Make the WKPageRunJavaScriptFunction callback take a WKSerializedScriptValueRef.
10279
10280        https://webkit.org/b/55623
10281
10282        Reviewed by Darin Adler.
10283
10284        * UIProcess/API/C/WKPage.cpp:
10285        (WKPageRunJavaScriptInMainFrame): Use ScriptValueCallback.
10286        (callRunJavaScriptBlockAndRelease): Use WKSerializedScriptValueRef.
10287        * UIProcess/API/C/WKPage.h: Use WKSerializedScriptValueRef.
10288        * UIProcess/WebPageProxy.cpp:
10289        (WebKit::WebPageProxy::close): Call invalidateCallbackMap for m_scriptValueCallbacks.
10290        (WebKit::WebPageProxy::runJavaScriptInMainFrame): Take a ScriptValueCallback.
10291        (WebKit::WebPageProxy::scriptValueCallback): Added. Create a WebSerializedScriptValue
10292        from the DataReference before calling the callback.
10293        (WebKit::WebPageProxy::processDidCrash): Call invalidateCallbackMap for m_scriptValueCallbacks.
10294        * UIProcess/WebPageProxy.h: Added ScriptValueCallback and m_scriptValueCallbacks.
10295        * UIProcess/WebPageProxy.messages.in: Added ScriptValueCallback.
10296        * WebProcess/WebPage/WebPage.cpp:
10297        (WebKit::WebPage::runJavaScriptInMainFrame): Create a DataReference from a WebCore::SerializedScriptValue.
10298        And use ScriptValueCallback to send the message back.
10299
103002011-03-03  Brian Weinstein  <bweinstein@apple.com>
10301
10302        Reviewed by Adam Roben.
10303
10304        Cleanup from https://bugs.webkit.org/show_bug.cgi?id=55427.
10305
10306        Call WebCore::startObservingCookieChanges and WebCore::stopObservingCookieChanges
10307        on all platforms, and stub the functions on platforms that don't implement them.
10308
10309        * WebProcess/Cookies/WebCookieManager.cpp:
10310        (WebKit::WebCookieManager::startObservingCookieChanges):
10311        (WebKit::WebCookieManager::stopObservingCookieChanges):
10312
103132011-03-03  Jeff Miller  <jeffm@apple.com>
10314
10315        Reviewed by Darin Adler.
10316
10317        Refactor classes in GenericCallback.h
10318        https://bugs.webkit.org/show_bug.cgi?id=55732
10319
10320        Since we're going to need to add additional callback classes, make a CallbackBase class that manages
10321        the context and the callback ID.  The existing callback classes (VoidCallback, GenericCallback, and
10322        ComputedPagesCallback) now all derive from CallbackBase.
10323
10324        Fix bug in VoidCallback where we meant to implement the destructor, but we were implementing the default
10325        constructor instead (we forgot the leading ~).
10326
10327        * UIProcess/GenericCallback.h:
10328        (WebKit::CallbackBase::~CallbackBase):
10329        (WebKit::CallbackBase::callbackID):
10330        (WebKit::CallbackBase::CallbackBase):
10331        (WebKit::CallbackBase::context):
10332        (WebKit::CallbackBase::generateCallbackID):
10333        (WebKit::VoidCallback::~VoidCallback):
10334        (WebKit::VoidCallback::performCallback):
10335        (WebKit::VoidCallback::invalidate):
10336        (WebKit::VoidCallback::VoidCallback):
10337        (WebKit::GenericCallback::create):
10338        (WebKit::GenericCallback::~GenericCallback):
10339        (WebKit::GenericCallback::performCallbackWithReturnValue):
10340        (WebKit::GenericCallback::invalidate):
10341        (WebKit::GenericCallback::GenericCallback):
10342        (WebKit::ComputedPagesCallback::create):
10343        (WebKit::ComputedPagesCallback::~ComputedPagesCallback):
10344        (WebKit::ComputedPagesCallback::performCallbackWithReturnValue):
10345        (WebKit::ComputedPagesCallback::invalidate):
10346        (WebKit::ComputedPagesCallback::ComputedPagesCallback):
10347
103482011-03-03  Adam Roben  <aroben@apple.com>
10349
10350        Don't assume the web process has had a chance to paint before the view has to paint
10351
10352        Fixes <http://webkit.org/b/55739> REGRESSION (r80307): Lots of tests crashing in
10353        BackingStore::paint
10354
10355        Reviewed by Anders Carlsson.
10356
10357        * UIProcess/DrawingAreaProxyImpl.cpp:
10358        (WebKit::DrawingAreaProxyImpl::paint): Bail if the web process hasn't had a chance to paint
10359        yet.
10360
103612011-03-03  Adam Roben  <aroben@apple.com>
10362
10363        Throw away DrawingAreaProxyImpl's backing store after not painting for 5 seconds
10364
10365        The intent is to save memory for views that aren't painting.
10366
10367        Fixes <http://webkit.org/b/51262> <rdar://problem/8782537> WebPageProxy should delete its
10368        backing store after not painting for a while
10369
10370        Reviewed by Anders Carlsson.
10371
10372        * UIProcess/DrawingAreaProxyImpl.cpp:
10373        (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl): Initialize our timer.
10374        (WebKit::DrawingAreaProxyImpl::paint): Don't bail if we don't have a backing store (but do
10375        bail if we're in accelerated compositing mode); we might have thrown it away to save memory
10376        but now are being asked to paint by the view. The existing code in this function will handle
10377        getting a new backing store if possible by blocking for a little while to try to receive a
10378        DidUpdateBackingStoreState message. Added an assertion that we do have a backing store if we
10379        don't have any outstanding UpdateBackingStoreState requests. After painting, call
10380        discardBackingStoreSoon to update our timer.
10381        (WebKit::DrawingAreaProxyImpl::discardBackingStoreSoon): Set the timer for 5 seconds in the
10382        future.
10383        (WebKit::DrawingAreaProxyImpl::discardBackingStore): Throw away the backing store, and tell
10384        the web process we'll need a full backing store update on the next paint.
10385
10386        * UIProcess/DrawingAreaProxyImpl.h: Added m_discardBackingStoreTimer.
10387
103882011-03-03  Adam Roben  <aroben@apple.com>
10389
10390        Add a way to tell the web process to perform a full backing store update on its next paint
10391
10392        Messages::DrawingArea::UpdateBackingStoreState now takes a boolean specifying whether the
10393        full backing store update should happen immediately or should be deferred until the next
10394        paint or compositing mode change occurs. The deferred update isn't used yet, but will be
10395        used when we start throwing away backing stores to save memory.
10396
10397        Fixes <http://webkit.org/b/55730> UI process needs a way to tell the web process its backing
10398        store needs a full update on the next paint
10399
10400        Reviewed by Anders Carlsson.
10401
10402        * UIProcess/DrawingAreaProxyImpl.cpp:
10403        (WebKit::DrawingAreaProxyImpl::paint): If we have an outstanding backing store state change
10404        request, tell the web process to perform the backing store update right away, in case we
10405        previously told it it could defer the update.
10406        (WebKit::DrawingAreaProxyImpl::sizeDidChange): Specify that we need an immediate backing
10407        store update.
10408        (WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState): We can no longer assert that we
10409        were waiting for a DidUpdateBackingStoreState message when we receive one, as it's possible
10410        for the web process to decide to send us this message on its own (if we asked it to do a
10411        deferred backing store update and then it needed to paint some part of the page). Specify
10412        that we need an immediate backing store update if the web process hasn't updated to our
10413        latest state, as we're about to draw potentially out-of-date bits to the screen and want to
10414        get the right bits as soon as possible. Also added a FIXME about a potential optimization.
10415        (WebKit::DrawingAreaProxyImpl::backingStoreStateDidChange): Added a RespondImmediatelyOrNot
10416        parameter, which is just passed through to sendUpdateBackingStoreState.
10417        (WebKit::DrawingAreaProxyImpl::sendUpdateBackingStoreState): Added a RespondImmediatelyOrNot
10418        parameter that is used to specify to the web process whether to perform the full backing
10419        store update immediately. We now only wait for a DidUpdateBackingStoreState message (and
10420        thus suppress any more UpdateBackingStoreState messages until one is received) when we ask
10421        the web process for an immediate response; otherwise we could end up accidentally calling
10422        waitForAndDispatchDidUpdateBackingStoreState when the web process hasn't been told to send
10423        us such a message.
10424
10425        * UIProcess/DrawingAreaProxyImpl.h: Added RespondImmediatelyOrNot.
10426
10427        * WebProcess/WebPage/DrawingArea.h:
10428        (WebKit::DrawingArea::updateBackingStoreState): Added respondImmediately argument.
10429
10430        * WebProcess/WebPage/DrawingArea.messages.in: Added respondImmediately argument to
10431        UpdateBackingStoreState message.
10432
10433        * WebProcess/WebPage/DrawingAreaImpl.cpp:
10434        (WebKit::DrawingAreaImpl::DrawingAreaImpl): Initialize new member that's used to track
10435        whether we should send a DidUpdateBackingStoreState message instead of an Update or
10436        compositing mode change message. This will be set to true when a deferred backing store
10437        update is pending.
10438        (WebKit::DrawingAreaImpl::layerHostDidFlushLayers): If a deferred update is pending, send a
10439        DidUpdateBackingStoreState message instead of a compositing mode change message.
10440        (WebKit::DrawingAreaImpl::updateBackingStoreState): Added respondImmediately argument. If
10441        we've already been told about this state ID (as can happen when the UI process decides it
10442        needs an immediate update to a state that it previously requested a deferred update to),
10443        don't bother updating the page's size, etc. In addition, if we've already sent a
10444        DidUpdateBackingStoreState message for this state, we don't have to do anything at all.
10445        Moved code to send the DidUpdateBackingStoreState message from here...
10446        (WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState): ...to here.
10447        (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode): Always update our dirty region,
10448        even if painting is suspended or we're in the process of updating the backing store state.
10449        It causes no harm and simplifies the code. If a deferred update is pending, send a
10450        DidUpdateBackingStoreState message instead of a compositing mode change message. Also
10451        removed a redundant if.
10452        (WebKit::DrawingAreaImpl::display): Added an assertion that this isn't called while updating
10453        backing store state, as otherwise we might end up sending two DidUpdateBackingStoreState
10454        messages. If a deferred update is pending, send a DidUpdateBackingStoreState message instead
10455        of an Update message.
10456
10457        * WebProcess/WebPage/DrawingAreaImpl.h: Updated updateBackingStoreState to match the base
10458        class. Added sendDidUpdateBackingStoreState and m_shouldSendDidUpdateBackingStoreState.
10459
104602011-03-03  Andy Estes  <aestes@apple.com>
10461
10462        Reviewed by Darin Adler.
10463
10464        When displaying the missing plug-in sheet, pass the 'pluginspage'
10465        attribute to the UI process.
10466        https://bugs.webkit.org/show_bug.cgi?id=55553
10467
10468        * UIProcess/API/C/WKPage.h: Add pluginsPageURL as the third argument to
10469        missingPluginButtonClicked.
10470        * UIProcess/WebPageProxy.cpp:
10471        (WebKit::WebPageProxy::missingPluginButtonClicked): Ditto.
10472        * UIProcess/WebPageProxy.h: Ditto.
10473        * UIProcess/WebPageProxy.messages.in: Ditto.
10474        * UIProcess/WebUIClient.cpp:
10475        (WebKit::WebUIClient::missingPluginButtonClicked): Ditto.
10476        * UIProcess/WebUIClient.h: Ditto.
10477        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
10478        (WebKit::WebChromeClient::missingPluginButtonClicked): Get the value of
10479        pluginspageAttr.
10480
104812011-03-03  Alexey Proskuryakov  <ap@apple.com>
10482
10483        Suggested by Dan Bernstein.
10484
10485        Move "const" around "NSString *", so that it suddenly begins to make sense.
10486
10487        * WebProcess/mac/FullKeyboardAccessWatcher.mm:
10488
104892011-03-03  Jeff Miller  <jeffm@apple.com>
10490
10491        Reviewed by Anders Carlsson.
10492
10493        WebKit2: Add WKViewRef API for executing edit commands
10494        https://bugs.webkit.org/show_bug.cgi?id=49829
10495
10496        Added WKViewExecuteCommand() and documented some of the WebCore EditorCommand strings.
10497
10498        * UIProcess/API/C/win/WKView.cpp:
10499        (WKViewExecuteCommand): Added.
10500        * UIProcess/API/C/win/WKView.h: Added WKViewExecuteCommand() and comment block with WebCore EditorCommand strings.
10501
105022011-03-03  Jessie Berlin  <jberlin@apple.com>
10503
10504        Reviewed by Adam Roben.
10505
10506        WebKit2: Use CFNetwork Sessions API.
10507        https://bugs.webkit.org/show_bug.cgi?id=55435
10508
10509        Set the Private Browsing Storage Session on requests when Private Browsing is enabled.
10510
10511        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
10512        (InitWebCoreSystemInterface):
10513        Support using WKCopyRequestWithStorageSession in WebCore.
10514
105152011-03-03  Adam Roben  <aroben@apple.com>
10516
10517        Don't try to paint outside the page's bounds
10518
10519        When the page is resized smaller, we would allocate a ShareableBitmap at the old, larger
10520        size, even though we only needed to paint at the new, smaller size.
10521
10522        The assertion added in this patch will fire during the WebKit2/ResizeViewWhileHidden API
10523        test if this fix gets broken in the future.
10524
10525        Fixes <http://webkit.org/b/55715> DrawingAreaImpl allocates more memory than necessary when
10526        the page is resized smaller
10527
10528        Reviewed by Anders Carlsson.
10529
10530        * WebProcess/WebPage/DrawingAreaImpl.cpp:
10531        (WebKit::DrawingAreaImpl::updateBackingStoreState): Update our dirty region even if painting
10532        is suspended (but still refrain from updating it when in accelerated compositing mode).
10533        Rather than unite our existing dirty region with the page's new bounds, overwrite our dirty
10534        region with the page's new bounds. This prevents us from accumulating a dirty region that is
10535        larger than the page in the case where the page is being resized smaller.
10536        (WebKit::DrawingAreaImpl::display): Added an assertion that we're not trying to paint
10537        outside of the page's bounds.
10538
105392011-03-03  Maciej Stachowiak  <mjs@apple.com>
10540
10541        Reviewed by Brady Eidson.
10542
10543        WebProcess is calling CFURLCacheRemoveAllCachedResponses when loading, results in origin-load for all resources
10544        https://bugs.webkit.org/show_bug.cgi?id=55701
10545        <rdar://problem/9074017>
10546
10547        * Shared/WebProcessCreationParameters.cpp:
10548        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Initialize cache-clearing
10549        flag parameters to false.
10550        (WebKit::WebProcessCreationParameters::encode): Serialize them properly.
10551        (WebKit::WebProcessCreationParameters::decode): And deserialize.
10552
105532011-03-03  Alexey Proskuryakov  <ap@apple.com>
10554
10555        Reviewed by Darin Adler.
10556
10557        REGRESSION (WebKit2): Tab keys no longer observe Full Keyboard Access
10558        https://bugs.webkit.org/show_bug.cgi?id=55633
10559        <rdar://problem/8963023>
10560
10561        * WebKit2.xcodeproj/project.pbxproj:
10562        * WebProcess/mac/FullKeyboardAccessWatcher.h: Added.
10563        * WebProcess/mac/FullKeyboardAccessWatcher.mm: Added.
10564        (-[FullKeyboardAccessWatcher retrieveKeyboardUIModeFromPreferences:]):
10565        (-[FullKeyboardAccessWatcher init]):
10566        (+[FullKeyboardAccessWatcher fullKeyboardAccessEnabled]):
10567        Get the current state of full keyboard access, listening for change notifications.
10568
10569        * WebProcess/WebProcess.h:  Added fullKeyboardAccessEnabled().
10570
10571        * WebProcess/WebProcess.cpp: (WebKit::WebProcess::fullKeyboardAccessEnabled):
10572        WebKit1 also doesn't implement this on platforms other than Mac.
10573
10574        * WebProcess/mac/WebProcessMac.mm: (WebKit::WebProcess::fullKeyboardAccessEnabled):
10575        Just ask FullKeyboardAccessWatcher.
10576
10577        * WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::keyboardUIMode):
10578        * WebProcess/WebCoreSupport/WebChromeClient.h:
10579        Added keyboardUIMode(), removed tabsToLinks().
10580
10581        * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::keyboardUIMode):
10582        * WebProcess/WebPage/WebPage.h:
10583        Generate keyboard UI mode from tabToLinks preference and current state of FKA.
10584
105852011-03-03  Sam Weinig  <sam@webkit.org>
10586
10587        Reviewed by Anders Carlsson.
10588
10589        Give the Bundle's policy client the option of deciding the policy
10590        https://bugs.webkit.org/show_bug.cgi?id=55699
10591
10592        * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
10593        Add WKBundlePagePolicyAction enum and make it the return value of
10594        the WKBundlePagePolicyClient functions.
10595
10596        * WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
10597        (WebKit::InjectedBundlePagePolicyClient::decidePolicyForNavigationAction):
10598        (WebKit::InjectedBundlePagePolicyClient::decidePolicyForNewWindowAction):
10599        (WebKit::InjectedBundlePagePolicyClient::decidePolicyForMIMEType):
10600        * WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.h:
10601        Pass the return value back to the caller. For unimplemented functions, return WKBundlePagePolicyActionPassThrough.
10602
10603        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
10604        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForMIMEType):
10605        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
10606        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
10607        Call the policy function early if the bundle handles it.
10608
106092011-03-02  Brian Weinstein  <bweinstein@apple.com>
10610
10611        Reviewed by Adam Roben.
10612
10613        Rest of WebKit2: Need a way to send notifications to client when cookies change
10614        https://bugs.webkit.org/show_bug.cgi?id=55427
10615        <rdar://problem/9056027>
10616
10617        This patch adds the communication from the WebProcess <-> UIProcess about starting/stopping
10618        listening for cookies changing, and adds a mechanism for the WebProcess to notify the UIProcess
10619        when the cookies have changed. The WebProcess sends a message to the UIProcess when the cookies
10620        change, and the UIProcess passes this along to the WebCookieManagerProxyClient.
10621
10622        * UIProcess/API/C/WKCookieManager.cpp:
10623        (WKCookieManagerSetClient): Call through to WebCookieManagerProxy.
10624        (WKCookieManagerStartObservingCookieChanges): Ditto.
10625        (WKCookieManagerStopObservingCookieChanges): Ditto.
10626
10627        * UIProcess/API/C/WKCookieManager.h: Add new functions and a WKCookieManagerClient
10628            which is responsible for cookiesDidChange.
10629
10630        * UIProcess/WebCookieManagerProxy.cpp:
10631        (WebKit::WebCookieManagerProxy::initializeClient):
10632        (WebKit::WebCookieManagerProxy::startObservingCookieChanges): Send the message down to the web process.
10633        (WebKit::WebCookieManagerProxy::stopObservingCookieChanges): Ditto.
10634        (WebKit::WebCookieManagerProxy::cookiesDidChange): Tell the WKCookieManagerClient the cookies were
10635            modified.
10636        * UIProcess/WebCookieManagerProxy.h:
10637        * UIProcess/WebCookieManagerProxy.messages.in: Add new messages.
10638
10639        * UIProcess/WebCookieManagerProxyClient.cpp: Added.
10640        (WebKit::WebCookieManagerProxyClient::cookiesDidChange): Calls through to the client saying that
10641            cookies changed.
10642        * UIProcess/WebCookieManagerProxyClient.h: Added.
10643
10644        * WebProcess/Cookies/WebCookieManager.cpp:
10645        (WebKit::WebCookieManager::startObservingCookieChanges): Call through to WebCore::startObservingCookieChanges
10646            (on platforms that support it).
10647        (WebKit::WebCookieManager::stopObservingCookieChanges): Ditto (for stopObservingCookieChanges).
10648        (WebKit::WebCookieManager::dispatchDidModifyCookies): Send a message to the UI process that cookies changed.
10649        * WebProcess/Cookies/WebCookieManager.h:
10650        * WebProcess/Cookies/WebCookieManager.messages.in:
10651
10652        Add new files.
10653        * WebKit2.pro:
10654        * WebKit2.xcodeproj/project.pbxproj:
10655        * GNUmakefile.am:
10656        * win/WebKit2.vcproj:
10657
106582011-03-03  Anders Carlsson  <andersca@apple.com>
10659
10660        Reviewed by Darin Adler.
10661
10662        Remove CanRunBeforeUnloadConfirmPanel sync message
10663        https://bugs.webkit.org/show_bug.cgi?id=55689
10664
10665        * Shared/WebPageCreationParameters.cpp:
10666        (WebKit::WebPageCreationParameters::encode):
10667        (WebKit::WebPageCreationParameters::decode):
10668        Encode and decode canRunBeforeUnloadConfirmPanel, as well as canRunModal, which wasn't
10669        being encoded/decoded.
10670
10671        * Shared/WebPageCreationParameters.h:
10672        Add canRunBeforeUnloadConfirmPanel.
10673
10674        * UIProcess/WebPageProxy.cpp:
10675        (WebKit::WebPageProxy::initializeUIClient):
10676        Send SetCanRunBeforeUnloadConfirmPanel and SetCanRunModal messages.
10677
10678        (WebKit::WebPageProxy::creationParameters):
10679        Initialize parameters.canRunBeforeUnloadConfirmPanel.
10680
10681        * UIProcess/WebPageProxy.messages.in:
10682        Remove CanRunBeforeUnloadConfirmPanel message.
10683
10684        * UIProcess/WebUIClient.cpp:
10685        (WebKit::WebUIClient::canRunBeforeUnloadConfirmPanel):
10686        * UIProcess/WebUIClient.h:
10687        Make canRunBeforeUnloadConfirmPanel const.
10688
10689        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
10690        (WebKit::WebChromeClient::canRunBeforeUnloadConfirmPanel):
10691        Ask the web page instead of sending a synchronous message.
10692
10693        * WebProcess/WebPage/WebPage.cpp:
10694        (WebKit::WebPage::WebPage):
10695        Initialize m_canRunBeforeUnloadConfirmPanel.
10696
10697        * WebProcess/WebPage/WebPage.h:
10698        (WebKit::WebPage::canRunBeforeUnloadConfirmPanel):
10699        (WebKit::WebPage::setCanRunBeforeUnloadConfirmPanel):
10700        Add getter and setter for m_canRunBeforeUnloadConfirmPanel.
10701
10702        (WebKit::WebPage::setCanRunModal):
10703        Add setter for m_canRunModal.
10704
10705        * WebProcess/WebPage/WebPage.messages.in:
10706        Add SetCanRunBeforeUnloadConfirmPanel and SetCanRunModal messages.
10707
107082011-03-03  Adam Roben  <aroben@apple.com>
10709
10710        Create the CFBundleRef for WebKit.dll on Windows if needed
10711
10712        WebKit part of <http://webkit.org/b/55672> <rdar://problem/9080867> All inspector tests time
10713        out or crash on Windows 7 Release (WebKit2 Tests)
10714
10715        Reviewed by Darin Adler.
10716
10717        * Shared/win/WebKitBundle.cpp: Added.
10718        (WebKit::createWebKitBundle): Returns a pre-existing bundle, if possible, otherwise creates
10719        and returns a new bundle.
10720        (WebKit::webKitBundle): Creates and caches a bundle, and returns it.
10721
10722        * Shared/win/WebKitBundle.h: Added.
10723
10724        * UIProcess/win/WebInspectorProxyWin.cpp:
10725        (WebKit::WebInspectorProxy::inspectorPageURL):
10726        * WebProcess/WebPage/win/WebInspectorWin.cpp:
10727        (WebKit::WebInspector::localizedStringsURL):
10728        Changed to use webKitBundle() to ensure that the bundle has been created.
10729
10730        * win/WebKit2.vcproj: Added new files.
10731
107322011-03-03  Peter Kasting  <pkasting@google.com>
10733
10734        Reviewed by James Robinson.
10735
10736        Drop redundant "Windows; " from the Windows-specific User Agent string.
10737        https://bugs.webkit.org/show_bug.cgi?id=54567
10738
10739        * UIProcess/win/WebPageProxyWin.cpp:
10740        (WebKit::WebPageProxy::standardUserAgent):
10741
107422011-03-02  Sheriff Bot  <webkit.review.bot@gmail.com>
10743
10744        Unreviewed, rolling out r80188.
10745        http://trac.webkit.org/changeset/80188
10746        https://bugs.webkit.org/show_bug.cgi?id=55647
10747
10748        Broke the WebKit API tests. (Requested by xenon on #webkit).
10749
10750        * UIProcess/API/C/WKPage.cpp:
10751        (WKPageRunJavaScriptInMainFrame):
10752        (callRunJavaScriptBlockAndRelease):
10753        * UIProcess/API/C/WKPage.h:
10754        * UIProcess/WebPageProxy.cpp:
10755        (WebKit::WebPageProxy::close):
10756        (WebKit::WebPageProxy::runJavaScriptInMainFrame):
10757        (WebKit::WebPageProxy::processDidCrash):
10758        * UIProcess/WebPageProxy.h:
10759        * UIProcess/WebPageProxy.messages.in:
10760        * WebProcess/WebPage/WebPage.cpp:
10761        (WebKit::WebPage::runJavaScriptInMainFrame):
10762
107632011-03-02  Jeff Miller  <jeffm@apple.com>
10764
10765        Reviewed by Darin Adler.
10766
10767        Rename WebKit::WebPage::validateMenuItem() to validateCommand()
10768        https://bugs.webkit.org/show_bug.cgi?id=55636
10769
10770        Since this method can validate more than menu items, validateCommand() is a better name.  Also rename various messages and WebKit::WebPageProxy::didValidateMenuItem() to didValidateCommand().
10771
10772        * UIProcess/API/mac/WKView.mm:
10773        (-[WKView validateUserInterfaceItem:]): Call validateCommand() instead of validateMenuItem().
10774        * UIProcess/WebPageProxy.cpp:
10775        (WebKit::WebPageProxy::validateCommand): Renamed from validateMenuItem().
10776        (WebKit::WebPageProxy::didValidateCommand): Renamed from didValidateMenuItem().
10777        * UIProcess/WebPageProxy.h:
10778        * UIProcess/WebPageProxy.messages.in: Renamed DidValidateMenuItem to DidValidateCommand.
10779        * WebProcess/WebPage/WebPage.cpp:
10780        (WebKit::WebPage::validateCommand): Renamed from validateMenuItem().
10781        * WebProcess/WebPage/WebPage.h:
10782        * WebProcess/WebPage/WebPage.messages.in: Renamed ValidateMenuItem to ValidateCommand.
10783
107842011-03-02  Anders Carlsson  <andersca@apple.com>
10785
10786        Reviewed by Sam Weinig.
10787
10788        WKPageSetMemoryCacheClientCallsEnabled doesn't persist if web process crashes
10789        https://bugs.webkit.org/show_bug.cgi?id=55635
10790
10791        * Shared/WebPageCreationParameters.cpp:
10792        (WebKit::WebPageCreationParameters::encode):
10793        (WebKit::WebPageCreationParameters::decode):
10794        Encode and decode areMemoryCacheClientCallsEnabled.
10795
10796        * Shared/WebPageCreationParameters.h:
10797        Add areMemoryCacheClientCallsEnabled member variable.
10798
10799        * UIProcess/WebPageProxy.cpp:
10800        (WebKit::WebPageProxy::WebPageProxy):
10801        Initialize m_areMemoryCacheClientCallsEnabled.
10802
10803        (WebKit::WebPageProxy::setMemoryCacheClientCallsEnabled):
10804        Update m_areMemoryCacheClientCallsEnabled. Send a message if necessary.
10805
10806        (WebKit::WebPageProxy::creationParameters):
10807        Set areMemoryCacheClientCallsEnabled.
10808
10809        * WebProcess/WebPage/WebPage.cpp:
10810        (WebKit::WebPage::WebPage):
10811        Call WebPage::setMemoryCacheMessagesEnabled.
10812
108132011-03-02  Timothy Hatcher  <timothy@apple.com>
10814
10815        Make the runJavaScriptInMainFrame callback send a WKSerializedScriptValueRef.
10816
10817        https://webkit.org/b/55623
10818
10819        Reviewed by Darin Adler.
10820
10821        * UIProcess/API/C/WKPage.cpp:
10822        (WKPageRunJavaScriptInMainFrame): Use ScriptValueCallback.
10823        (callRunJavaScriptBlockAndRelease): Use WKSerializedScriptValueRef.
10824        * UIProcess/API/C/WKPage.h: Use WKSerializedScriptValueRef.
10825        * UIProcess/WebPageProxy.cpp:
10826        (WebKit::WebPageProxy::close): Call invalidateCallbackMap for m_scriptValueCallbacks.
10827        (WebKit::WebPageProxy::runJavaScriptInMainFrame): Take a ScriptValueCallback.
10828        (WebKit::WebPageProxy::scriptValueCallback): Added. Create a WebSerializedScriptValue
10829        from the DataReference before calling the callback.
10830        (WebKit::WebPageProxy::processDidCrash): Call invalidateCallbackMap for m_scriptValueCallbacks.
10831        * UIProcess/WebPageProxy.h: Added ScriptValueCallback and m_scriptValueCallbacks.
10832        * UIProcess/WebPageProxy.messages.in: Added ScriptValueCallback.
10833        * WebProcess/WebPage/WebPage.cpp:
10834        (WebKit::WebPage::runJavaScriptInMainFrame): Create a DataReference from a WebCore::SerializedScriptValue.
10835        And use ScriptValueCallback to send the message back.
10836
108372011-03-02  Jessie Berlin  <jberlin@apple.com>
10838
10839        Reviewed by Adam Roben.
10840
10841        WebKit2: Use CFNetwork Sessions API.
10842        https://bugs.webkit.org/show_bug.cgi?id=55435
10843
10844        Add the ability to create a Private Browsing Storage Session.
10845
10846        * Shared/WebProcessCreationParameters.cpp:
10847        (WebKit::WebProcessCreationParameters::encode):
10848        Encode the UI Process bundle identifier.
10849        (WebKit::WebProcessCreationParameters::decode):
10850        Decode the UI Process bundle identifier.
10851        * Shared/WebProcessCreationParameters.h:
10852
10853        * UIProcess/mac/WebContextMac.mm:
10854        (WebKit::WebContext::platformInitializeWebProcess):
10855        Grab the bundle identifier and use it to set the WebProcessCreationParameter.
10856        * UIProcess/win/WebContextWin.cpp:
10857        (WebKit::WebContext::platformInitializeWebProcess):
10858        Ditto.
10859
10860        * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
10861        (InitWebCoreSystemInterface):
10862        Support using the wkCreatePrivateStorageSession WKSI in WebCore.
10863
10864        * WebProcess/WebProcess.cpp:
10865        (WebKit::WebProcess::initializeWebProcess):
10866        Set the base for the Private Browsing Storage Session identifier to be the bundle identifier
10867        from the UI Process so that WebKit1 would create a Private Browsing Storage Session with the
10868        same identifier as WebKit2.
10869
108702011-03-01  Brian Weinstein  <bweinstein@apple.com>
10871
10872        Reviewed by Adam Roben.
10873
10874        Part of WebKit2: Need a way to send notifications to client when cookies change
10875        https://bugs.webkit.org/show_bug.cgi?id=55427
10876        <rdar://problem/9056027>
10877
10878        * WebProcess/Cookies/WebCookieManager.cpp:
10879        (WebKit::WebCookieManager::dispatchDidModifyCookies): Add a stub with a FIXME to send a
10880            message to the UI process.
10881
10882        * WebProcess/Cookies/WebCookieManager.h:
10883        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
10884        (WebKit::WebPlatformStrategies::createCookiesStrategy):
10885        (WebKit::WebPlatformStrategies::notifyCookiesChanged): Call WebCookieManager::dispatchDidModifyCookies.
10886        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
10887
108882011-03-02  Andras Becsi  <abecsi@webkit.org>
10889
10890        Reviewed by Laszlo Gombos.
10891
10892        [Qt][WK2] generate-forwarding-headers.pl should generate paths with framework names
10893        https://bugs.webkit.org/show_bug.cgi?id=55478
10894
10895        On case insensitive systems the generated forwarding headers cause build problems.
10896
10897        * Scripts/generate-forwarding-headers.pl: The generated header should
10898        also contain the framework name.
10899
109002011-03-01  Jeff Miller  <jeffm@apple.com>
10901
10902        Reviewed by Darin Adler.
10903
10904        Expose some selection state fields in WKPage
10905        https://bugs.webkit.org/show_bug.cgi?id=55541
10906
10907        Added WKPageCanDelete(), WKPageHasSelectedRange(), and WKPageIsContentEditable() so we can enable some
10908        Edit menu items properly on Windows when using WebKit2.
10909
10910        * UIProcess/API/C/WKPage.cpp:
10911        (WKPageCanDelete): Added.
10912        (WKPageHasSelectedRange): Added.
10913        (WKPageIsContentEditable): Added.
10914        * UIProcess/API/C/WKPage.h: Added new functions.
10915        * UIProcess/WebPageProxy.h:
10916        (WebKit::WebPageProxy::canDelete): Added.
10917        (WebKit::WebPageProxy::hasSelectedRange): Added.
10918        (WebKit::WebPageProxy::isContentEditable): Added.
10919
109202011-03-01  Mark Rowe  <mrowe@apple.com>
10921
10922        Hide the typeinfo name symbols for std::exception and std::bad_alloc too.
10923
10924        * Configurations/Base.xcconfig:
10925
109262011-03-01  Mark Rowe  <mrowe@apple.com>
10927
10928        Reviewed by Sam Weinig.
10929
10930        Add verification scripts to WebKit2 project and fix the issues they reveal.
10931
10932        * Configurations/Base.xcconfig: Add linker flags to prevent C++ standard
10933        library functions from being exported as weak externals.
10934        * Configurations/WebKit2.xcconfig: Inherit linker flags from the project level.
10935        * Shared/WebContextMenuItem.cpp:
10936        (WebKit::WebContextMenuItem::separatorItem): Use DEFINE_STATIC_LOCAL.
10937        * UIProcess/WebPageGroup.cpp:
10938        (WebKit::webPageGroupMap): Ditto.
10939        * WebKit2.xcodeproj/project.pbxproj: Don't copy .in files in to the framework.
10940        Run verification scripts at the appropriate times.
10941        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
10942        (WebKit::WebEditorClient::didBeginEditing): Use DEFINE_STATIC_LOCAL.
10943        (WebKit::WebEditorClient::respondToChangedContents): Ditto.
10944        (WebKit::WebEditorClient::respondToChangedSelection): Ditto.
10945        (WebKit::WebEditorClient::didEndEditing): Ditto.
10946        * WebProcess/WebPage/WebBackForwardListProxy.cpp:
10947        (WebKit::idToHistoryItemMap): Ditto.
10948        (WebKit::historyItemToIDMap): Ditto.
10949
109502011-03-01  Joseph Pecoraro  <joepeck@webkit.org>
10951
10952        Unreviewed. Roll out r80068 and r80073 due to breaking WebKit2 Qt port.
10953
10954        * UIProcess/API/qt/qwkpage.cpp:
10955        (QWKPage::viewportAttributesForSize):
10956
109572011-03-01  Joseph Pecoraro  <joepeck@webkit.org>
10958
10959        Unreviewed, missed updating a call to WebCore::computeViewportAttributes
10960        who's prototype changed.
10961
10962        Viewport Warning/Error Messages Are Now Inaccurate
10963        https://bugs.webkit.org/show_bug.cgi?id=53707
10964
10965        * UIProcess/API/qt/qwkpage.cpp:
10966        (QWKPage::viewportAttributesForSize): pass in a value for the document argument.
10967
109682011-03-01  Anders Carlsson  <andersca@apple.com>
10969
10970        Reviewed by Sam Weinig.
10971
10972        WKPluginSiteDataManagerClearAllSiteData is not working
10973        https://bugs.webkit.org/show_bug.cgi?id=55528
10974        <rdar://problem/9071823>
10975
10976        * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
10977        (WebKit::NetscapePluginModule::tryGetSitesWithData):
10978        Remove version checks, checking that the function pointer is not null is enough.
10979
10980        (WebKit::NetscapePluginModule::tryClearSiteData):
10981        Remove version checks, checking that the function pointer is not null is enough.
10982        Also, correctly convert a null String to a null CString.
10983
109842011-03-01  Adam Roben  <aroben@apple.com>
10985
10986        Incorporate a review comment I missed in r80051
10987
10988        * Shared/Plugins/Netscape/NetscapePluginModule.cpp: Clarified error message.
10989
109902011-03-01  Adam Roben  <aroben@apple.com>
10991
10992        Make the PLUGIN_ARCHITECTURE() macro work with MSVC
10993
10994        Fixes <http://webkit.org/b/55513> <rdar://problem/9069189> REGRESSION (r79925): Lots of
10995        plugins tests crashing in NetscapePlugin::initialize on Windows
10996
10997        Reviewed by Anders Carlsson.
10998
10999        * Shared/Plugins/Netscape/NetscapePluginModule.cpp: Added a compile-time check to make sure
11000        PLUGIN_ARCHITECTURE() is defined for some platform.
11001
11002        * config.h: Removed the parentheses from the use of "defined" in the PLUGIN_ARCHITECTURE()
11003        macro. This matches PLATFORM(), OS(), etc., and makes the macro work on Windows. Also
11004        replaced the nonsense OS(WIN) with OS(WINDOWS).
11005
11006        * win/WebKit2.vcproj: Added config.h for editing convenience. Let VS do its thang.
11007
110082011-03-01  Sam Weinig  <sam@webkit.org>
11009
11010        Reviewed by Timothy Hatcher.
11011
11012        WebKit2 needs to be made localizable
11013        https://bugs.webkit.org/show_bug.cgi?id=55483
11014
11015        * PluginProcess/mac/PluginProcessMainMac.mm:
11016        * WebProcess/mac/WebProcessMainMac.mm:
11017        Set the default localization from the passed in parameter.
11018
11019        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
11020        Add the preferred localization as a parameter when launching processes
11021        so that they can set their localization to match the launching app.
11022
11023        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
11024        Use WebCore's localizedString function on the mac, to actually localize
11025        these strings.
11026
11027        (WebKit::WebPlatformStrategies::imageTitle):
11028        Switch to using replace, instead of concatenation, to give localizers a chance
11029        to rearrange the wording.
11030
110312011-03-01  Balazs Kelemen  <kbalazs@webkit.org>
11032
11033        Reviewed by Anders Carlsson.
11034
11035        [Qt][WK2] Plugin initialization
11036        https://bugs.webkit.org/show_bug.cgi?id=48127
11037
11038        Apply the quirks that are necessary for the flash plugin
11039        to not crash on X11.
11040
11041        * Platform/qt/ModuleQt.cpp:
11042        (WebKit::Module::load): Use the ResolveAllSymbols hint as we do in WebCore.
11043        * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
11044        (WebKit::NetscapePluginModule::tryLoad): Call applyX11QuirksBeforeLoad
11045        if PLUGIN_ARCHITECTURE is X11.
11046        * Shared/Plugins/Netscape/NetscapePluginModule.h:
11047        * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
11048        (WebKit::initializeGTK):  The same hack that we do in WebCore.
11049        Call gtk_init because flash don't do it for itself.
11050        (WebKit::NetscapePluginModule::applyX11QuirksBeforeLoad): Added for X11.
11051        Do the hacks that we need to do before calling NP_Initialize on the
11052        flash plugin to save it form crashing.
11053        * Shared/Plugins/PluginQuirks.h: Use PLUGIN_ARCHITECTURE macros.
11054        Added RequiresGTKToolKit quirk for X11.
11055        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
11056        (WebKit::NPN_GetValue): Handle the RequiresGTKToolKit quirk on X11.
11057        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
11058        (WebKit::NetscapePlugin::quirks): Added getter for the PluginModule's
11059        quirks to be available in NPN_GetValue.
11060
110612011-03-01  Adam Roben  <aroben@apple.com>
11062
11063        Convert seconds to milliseconds before calling ::SetTimer
11064
11065        Fixes <http://webkit.org/b/55417> <rdar://problem/9065287> RunLoop::Timer fires 1000x too
11066        early on Windows
11067
11068        Reviewed by Anders Carlsson.
11069
11070        * Platform/win/RunLoopWin.cpp:
11071        (RunLoop::TimerBase::start): Convert the timeout interval to milliseconds, since that's what
11072        ::SetTimer expects.
11073
110742011-03-01  Andras Becsi  <abecsi@webkit.org>
11075
11076        Reviewed by Csaba Osztrogonác.
11077
11078        [Qt] Clean up the project files and move common options to WebKit.pri.
11079
11080        * WebKit2.pro: Deduplicate options.
11081
110822011-03-01  Juha Savolainen  <juha.savolainen@weego.fi>
11083
11084        Reviewed by Andreas Kling.
11085
11086        [Qt] WebKit2 needs to support font size changing and getting default font size
11087        https://bugs.webkit.org/show_bug.cgi?id=53671
11088
11089        Added new enum for font size type and added methods to set and get default font sizes.
11090
11091        * UIProcess/API/qt/qwkpreferences.cpp:
11092        (QWKPreferences::setFontSize): Added.
11093        (QWKPreferences::fontSize): Added.
11094        * UIProcess/API/qt/qwkpreferences.h:
11095
110962011-02-28  Alice Liu  <alice.liu@apple.com>
11097
11098        Reviewed by Adam Roben and Gavin Barraclough.
11099
11100        https://bugs.webkit.org/show_bug.cgi?id=54898
11101        InjectedBundleNodeHandle dies too early in WKBundleHitTestResultGetNodeHandle
11102
11103        * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
11104        (WKBundleHitTestResultCopyNodeHandle):
11105        Instead of .get(), call .release.leakRef() like other functions that return WKBundleNodeHandleRef.
11106        * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
11107        Renamed from "get" to "copy", because it leaksRef.
11108
111092011-02-28  Alice Liu  <alice.liu@apple.com>
11110
11111        Reviewed by Gavin Barraclough.
11112
11113        https://bugs.webkit.org/show_bug.cgi?id=55442
11114        Webarchives don't contain subframe content
11115
11116        * WebProcess/WebPage/WebPage.cpp:
11117        (WebKit::WebPage::getWebArchiveOfFrame):
11118        Pass the frame's document instead of just the frame, to use a different LegacyWebArchive::create function.
11119
111202011-02-28  Benjamin Poulain  <benjamin.poulain@nokia.com>
11121
11122        Reviewed by Kenneth Rohde Christiansen.
11123
11124        [Qt][WK2] Add a way to test the WebKit 2 APIs
11125        https://bugs.webkit.org/show_bug.cgi?id=55408
11126
11127        Add an initial test for the WebKit 2 APIs of Qt.
11128
11129        * UIProcess/API/qt/tests/html/basic_page.html: Added.
11130        * UIProcess/API/qt/tests/qgraphicswkview/qgraphicswkview.pro: Added.
11131        * UIProcess/API/qt/tests/qgraphicswkview/tst_qgraphicswkview.cpp: Added.
11132        (View::View):
11133        (View::resizeEvent):
11134        (tst_QGraphicsWKView::init):
11135        (tst_QGraphicsWKView::cleanup):
11136        (tst_QGraphicsWKView::loadEmptyPage):
11137        * UIProcess/API/qt/tests/tests.pri: Added.
11138        * UIProcess/API/qt/tests/tests.pro: Added.
11139        * UIProcess/API/qt/tests/util.h: Added.
11140        (waitForSignal):
11141
111422011-02-28  Anders Carlsson  <andersca@apple.com>
11143
11144        Fix clang build.
11145
11146        * UIProcess/API/mac/FindIndicatorWindow.mm:
11147        * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
11148        (WebKit::ChunkedUpdateDrawingAreaProxy::deprecatedUpdate):
11149        (WebKit::ChunkedUpdateDrawingAreaProxy::didReceiveMessage):
11150        * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
11151        * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
11152        (WebKit::ChunkedUpdateDrawingArea::deprecatedResumePainting):
11153        (WebKit::ChunkedUpdateDrawingArea::didReceiveMessage):
11154        * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
11155
111562011-02-28  Dan Bernstein  <mitz@apple.com>
11157
11158        Rubber-stamped by Anders Carlsson.
11159
11160        Do not copy config.h into WebKit2.
11161
11162        * WebKit2.xcodeproj/project.pbxproj:
11163
111642011-02-28  Dan Bernstein  <mitz@apple.com>
11165
11166        LLVM Compiler build fix.
11167
11168        * Scripts/webkit2/messages.py:
11169        * UIProcess/WebPageProxy.h:
11170
111712011-02-28  Anders Carlsson  <andersca@apple.com>
11172
11173        Reviewed by Dan Bernstein, Sam Weinig, Alexey Proskuryakov and Darin Adler.
11174
11175        Open PDF in Preview doesn't work
11176        https://bugs.webkit.org/show_bug.cgi?id=55400
11177        <rdar://problem/8750353>
11178
11179        * UIProcess/API/mac/PDFViewController.mm:
11180        (-[WKPDFView initWithFrame:PDFViewController:]):
11181        Set the WKPDFView as the delegate of itself.
11182
11183        (-[WKPDFView PDFViewOpenPDFInNativeApplication:]):
11184        Call PDFViewController::openPDFInFinder.
11185
11186        (WebKit::PDFViewController::PDFViewController):
11187        Initialize m_hasWrittenPDFToDisk to false.
11188
11189        (WebKit::PDFViewController::openPDFInFinder):
11190        Write the PDF to disk if needed and then open it using -[NSWorkspace openFile:].
11191
11192        (WebKit::temporaryPDFDirectoryPath):
11193        Create a directory to put PDFs in.
11194
11195        (WebKit::PDFViewController::pathToPDFOnDisk):
11196        Return a path to a (non-existent) file in the temporary PDF directory.
11197
111982011-02-28  Alexey Proskuryakov  <ap@apple.com>
11199
11200        Reviewed by Dan Bernstein.
11201
11202        Frequent crashes in CFURLCache code on Snow Leopard
11203        https://bugs.webkit.org/show_bug.cgi?id=55412
11204        <rdar://problem/9063922>
11205
11206        CString is evil, it has two lengths which can be different - specifically, fileSystemRepresentation()
11207        creates a string with maximum possible buffer size. A path with garbage at the end confused
11208        CFURLCache into corrupting its data structures.
11209
11210        * Shared/WebProcessCreationParameters.h: Added a FIXME about merging Mac and Windows code.
11211        This problem wouldn't have occured if we didn't use CString in the first place.
11212
11213        * UIProcess/mac/WebContextMac.mm: (WebKit::WebContext::platformInitializeWebProcess):
11214        Added an assertion matching Windows behavior (seems likely that NSURLCache also wouldn't
11215        have liked trailing slash).
11216
11217        * UIProcess/win/WebContextWin.cpp: (WebKit::WebContext::platformInitializeWebProcess):
11218        Made slash removal conditional for robustness.
11219
11220        * WebProcess/mac/WebProcessMac.mm: (WebKit::WebProcess::platformInitializeWebProcess):
11221        Use actual string length, not CString::length().
11222
112232011-02-28  Balazs Kelemen  <kbalazs@webkit.org>
11224
11225        Reviewed by Anders Carlsson.
11226
11227        [Qt][WK2] Plugin initialization
11228        https://bugs.webkit.org/show_bug.cgi?id=48127
11229
11230        Specialize the way of initializing the plugin for X11.
11231        Introduce PLUGIN_ARCHITECTURE macros to allow code sharing
11232        across platforms.
11233
11234        * Shared/Plugins/Netscape/NetscapePluginModule.cpp:
11235        (WebKit::NetscapePluginModule::tryLoad):
11236        * config.h:
11237
112382011-02-28  Sam Weinig  <sam@webkit.org>
11239
11240        Reviewed by Brady Eidson.
11241
11242        WK2 Context Menus - Implement LookUpInDictionary
11243        https://bugs.webkit.org/show_bug.cgi?id=55405
11244
11245        * Shared/DictionaryPopupInfo.cpp:
11246        (WebKit::DictionaryPopupInfo::encode):
11247        (WebKit::DictionaryPopupInfo::decode):
11248        * Shared/DictionaryPopupInfo.h:
11249        Add type to differentiate between HotKey and ContextMenu triggered
11250        dictionary popups. This is necessary since HotKey triggered ones want
11251        to override the style to always be overlay.
11252
11253        * UIProcess/API/mac/PageClientImpl.mm:
11254        (WebKit::PageClientImpl::didPerformDictionaryLookup):
11255        Only force the overlay style for HotKey triggered dictionary lookups.
11256
11257        * WebProcess/WebPage/WebPage.h:
11258        * WebProcess/WebPage/mac/WebPageMac.mm:
11259        (WebKit::WebPage::performDictionaryLookupAtLocation):
11260        (WebKit::WebPage::performDictionaryLookupForRange):
11261        Factor out shared functionality into performDictionaryLookupForRange.
11262
11263        * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
11264        (WebKit::WebContextMenuClient::lookUpInDictionary):
11265        Get selected range and call newly factored out performDictionaryLookupForRange.
11266
112672011-02-28  Anders Carlsson  <andersca@apple.com>
11268
11269        Reviewed by Dan Bernstein.
11270
11271        PDFViewController should hold a reference to the PDF data
11272        https://bugs.webkit.org/show_bug.cgi?id=55394
11273
11274        * UIProcess/API/mac/PDFViewController.h:
11275        * UIProcess/API/mac/PDFViewController.mm:
11276        (WebKit::PDFViewController::setPDFDocumentData):
11277
112782011-02-28  Sam Weinig  <sam@webkit.org>
11279
11280        Reviewed by Darin Adler.
11281
11282        Size of text in popup menu doesn't match size of text in <select> itself in WebKit2
11283        https://bugs.webkit.org/show_bug.cgi?id=48234
11284
11285        * Shared/TextInfo.cpp: Removed.
11286        * Shared/TextInfo.h: Removed.
11287        Replace this with the more appropriately DictionaryPopupInfo.
11288
11289        * Shared/DictionaryPopupInfo.cpp: Copied from Source/WebKit2/Shared/TextInfo.cpp.
11290        (WebKit::DictionaryPopupInfo::encode):
11291        (WebKit::DictionaryPopupInfo::decode):
11292        * Shared/DictionaryPopupInfo.h: Copied from Source/WebKit2/Shared/TextInfo.h.
11293        (WebKit::DictionaryPopupInfo::DictionaryPopupInfo):
11294        Replace individual font related fields with FontInfo.
11295
11296        * Shared/FontInfo.cpp: Added.
11297        (WebKit::FontInfo::FontInfo):
11298        (WebKit::FontInfo::encode):
11299        (WebKit::FontInfo::decode):
11300        * Shared/FontInfo.h: Added.
11301        Add class to encapsulate passing a font description over the wire.
11302
11303        * Shared/PlatformPopupMenuData.cpp:
11304        (WebKit::PlatformPopupMenuData::encode):
11305        (WebKit::PlatformPopupMenuData::decode):
11306        * Shared/PlatformPopupMenuData.h:
11307        Add FontInfo as extra data for the Mac.
11308
11309        * UIProcess/API/mac/PageClientImpl.h:
11310        * UIProcess/API/mac/PageClientImpl.mm:
11311        (WebKit::PageClientImpl::didPerformDictionaryLookup):
11312        * UIProcess/PageClient.h:
11313        Add scaleFactor and use it to construct a font at the right size.
11314
11315        * UIProcess/WebPageProxy.cpp:
11316        (WebKit::WebPageProxy::showPopupMenu):
11317        (WebKit::WebPageProxy::didPerformDictionaryLookup):
11318        * UIProcess/WebPageProxy.h:
11319        * UIProcess/WebPageProxy.messages.in:
11320        * UIProcess/WebPopupMenuProxy.h:
11321        * UIProcess/mac/WebPopupMenuProxyMac.h:
11322        (WebKit::WebPopupMenuProxyMac::create):
11323        * UIProcess/mac/WebPopupMenuProxyMac.mm:
11324        (WebKit::WebPopupMenuProxyMac::WebPopupMenuProxyMac):
11325        (WebKit::WebPopupMenuProxyMac::populate):
11326        (WebKit::WebPopupMenuProxyMac::showPopupMenu):
11327        * UIProcess/qt/WebPopupMenuProxyQt.cpp:
11328        (WebKit::WebPopupMenuProxyQt::showPopupMenu):
11329        * UIProcess/qt/WebPopupMenuProxyQt.h:
11330        * UIProcess/win/WebPopupMenuProxyWin.cpp:
11331        (WebKit::WebPopupMenuProxyWin::showPopupMenu):
11332        * UIProcess/win/WebPopupMenuProxyWin.h:
11333        * WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
11334        (WebKit::WebPopupMenu::setUpPlatformData):
11335        * WebProcess/WebPage/mac/WebPageMac.mm:
11336        (WebKit::WebPage::performDictionaryLookupAtLocation):
11337        Pass scale factor through and rename TextInfo -> DictionaryPopupInfo.
11338
11339        * WebKit2.pro:
11340        * WebKit2.xcodeproj/project.pbxproj:
11341        * win/WebKit2.vcproj:
11342        Add new files.
11343
113442011-02-28  Adam Roben  <aroben@apple.com>
11345
11346        One more rename as a followup to r79868
11347
11348        Rubber-stamped by Anders Carlsson.
11349
11350        * UIProcess/DrawingAreaProxyImpl.cpp:
11351        * UIProcess/DrawingAreaProxyImpl.h:
11352        Rename stateDidChange to backingStoreStateDidChange.
11353
113542011-02-28  Adam Roben  <aroben@apple.com>
11355
11356        Rename DrawingArea[Proxy]Impl's "state ID" concept to "backing store state ID"
11357
11358        Rubber-stamped (and suggested) by Anders Carlsson.
11359
11360        * UIProcess/DrawingAreaProxy.h:
11361        * UIProcess/DrawingAreaProxy.messages.in:
11362        * UIProcess/DrawingAreaProxyImpl.cpp:
11363        * UIProcess/DrawingAreaProxyImpl.h:
11364        * WebProcess/WebPage/DrawingArea.h:
11365        * WebProcess/WebPage/DrawingArea.messages.in:
11366        * WebProcess/WebPage/DrawingAreaImpl.cpp:
11367        * WebProcess/WebPage/DrawingAreaImpl.h:
11368        Perform the rename.
11369
113702011-02-28  Adam Roben  <aroben@apple.com>
11371
11372        Decouple state changes from sending of UpdateState messages in DrawingAreaProxyImpl
11373
11374        The new DrawingAreaProxyImpl::stateDidChange function should be called whenever
11375        DrawingAreaProxyImpl's state changes in a way that will require allocating a new backing
11376        store. (Currently, this is just when the size changes.) This function will sometimes (but
11377        not always, as when we're waiting for a DidUpdateState message) send an UpdateState message
11378        to the web process. This means it's now possible for the state IDs sent in consecutive
11379        UpdateState messages to increase by more than one, but that's OK.
11380
11381        This should cause no change in behavior.
11382
11383        Fixes <http://webkit.org/b/55382> DrawingAreaProxyImpl's state ID should be updated whenever
11384        its state changes, not just when we send an UpdateState message
11385
11386        Reviewed by Anders Carlsson.
11387
11388        * UIProcess/DrawingAreaProxyImpl.cpp:
11389        (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl): Updated for rename.
11390        (WebKit::DrawingAreaProxyImpl::sizeDidChange): Changed to call stateDidChange.
11391        (WebKit::DrawingAreaProxyImpl::didUpdateState): Updated for rename, and changed to call
11392        sendUpdateState whenever our state has changed for any reason since the last UpdateState
11393        message was sent.
11394        (WebKit::DrawingAreaProxyImpl::stateDidChange): Added. Increments m_nextStateID and calls
11395        through to sendUpdateState.
11396        (WebKit::DrawingAreaProxyImpl::sendUpdateState): Updated for rename, moved incrementing of
11397        the state ID we send to the web process from here to stateDidChange, and added an assertion.
11398
11399        * UIProcess/DrawingAreaProxyImpl.h: Renamed m_requestedStateID to m_nextStateID, and updated
11400        the comment explaining its meaning.
11401
114022011-02-28  Adam Roben  <aroben@apple.com>
11403
11404        Pass the right dirty rect to Plugin::paint
11405
11406        A typo in r79040 broke this. Much of this patch is just support for testing the fix.
11407
11408        Fixes <http://webkit.org/b/55365> <rdar://problem/9031089> REGRESSION (r79040): WebKit2:
11409        Large portions of pages with plugins paint black
11410
11411        Reviewed by Anders Carlsson.
11412
11413        * WebProcess/Plugins/PluginView.cpp:
11414        (WebKit::PluginView::paint): Pass the dirty rect we calculated earlier to Plugin::paint,
11415        rather than just passing along the dirty rect that was passed into this function. This is
11416        the bug fix.
11417
11418        * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
11419        (WKBundlePageForceRepaint):
11420        * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
11421        Added new SPI. Just calls through to WebPage::forceRepaintWithoutCallback.
11422
11423        * WebProcess/WebPage/WebPage.cpp:
11424        (WebKit::WebPage::forceRepaintWithoutCallback): Moved code to force a repaint here...
11425        (WebKit::WebPage::forceRepaint): ...from here.
11426
11427        * WebProcess/WebPage/WebPage.h: Added forceRepaintWithoutCallback.
11428
114292011-02-27  Sam Weinig  <sam@webkit.org>
11430
11431        Reviewed by Dan Bernstein.
11432
11433        Force dictionary popup to use overlay type
11434        <rdar://problem/9052483>
11435        https://bugs.webkit.org/show_bug.cgi?id=55337
11436
11437        * UIProcess/API/mac/PageClientImpl.mm:
11438        (WebKit::PageClientImpl::didPerformDictionaryLookup): As this is only
11439        used for the hot key version of the dictionary popup, force the overlay
11440        style.
11441
114422011-02-27  Benjamin Poulain  <benjamin.poulain@nokia.com>
11443
11444        Reviewed by Kenneth Rohde Christiansen.
11445
11446        [Qt] [WK2] QGraphicsWKView::showContextMenu() should be public
11447        https://bugs.webkit.org/show_bug.cgi?id=55330
11448
11449        Move QGraphicsWKView::showContextMenu() to the public API. Add documentation
11450        on its use.
11451
11452        * UIProcess/API/qt/qgraphicswkview.cpp:
11453        * UIProcess/API/qt/qgraphicswkview.h:
11454
114552011-02-27  Alejandro G. Castro  <alex@igalia.com>
11456
11457        Unreviewed, fixed GTK compilation after r79806.
11458
11459        * UIProcess/gtk/WebView.cpp:
11460        (WebKit::WebView::didFinishLoadingDataForCustomRepresentation):
11461        * UIProcess/gtk/WebView.h:
11462
114632011-02-26  Anders Carlsson  <andersca@apple.com>
11464
11465        Reviewed by Dan Bernstein.
11466
11467        Asynchronous response to FramePolicyListener is not finishing the load
11468        https://bugs.webkit.org/show_bug.cgi?id=55305
11469        <rdar://problem/9044356>
11470
11471        Always initialize the receivedPolicyAction reply parameter.
11472
11473        * UIProcess/WebPageProxy.cpp:
11474        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
11475        (WebKit::WebPageProxy::decidePolicyForMIMEType):
11476
114772011-02-26  Anders Carlsson  <andersca@apple.com>
11478
11479        Reviewed by Sam Weinig.
11480
11481        DidFinishLoadingDataForCustomRepresentation should pass along the suggested filename
11482        https://bugs.webkit.org/show_bug.cgi?id=55304
11483
11484        * UIProcess/API/mac/PDFViewController.h:
11485        * UIProcess/API/mac/PDFViewController.mm:
11486        (WebKit::PDFViewController::setPDFDocumentData):
11487        * UIProcess/API/mac/PageClientImpl.h:
11488        * UIProcess/API/mac/PageClientImpl.mm:
11489        (WebKit::PageClientImpl::didFinishLoadingDataForCustomRepresentation):
11490        * UIProcess/API/mac/WKView.mm:
11491        (-[WKView _didFinishLoadingDataForCustomRepresentationWithSuggestedFilename:dataReference:CoreIPC::]):
11492        * UIProcess/API/mac/WKViewInternal.h:
11493        * UIProcess/API/qt/qwkpage.cpp:
11494        (QWKPagePrivate::didFinishLoadingDataForCustomRepresentation):
11495        * UIProcess/API/qt/qwkpage_p.h:
11496        * UIProcess/PageClient.h:
11497        * UIProcess/WebPageProxy.cpp:
11498        (WebKit::WebPageProxy::didFinishLoadingDataForCustomRepresentation):
11499        * UIProcess/WebPageProxy.h:
11500        * UIProcess/WebPageProxy.messages.in:
11501        * UIProcess/win/WebView.cpp:
11502        (WebKit::WebView::didFinishLoadingDataForCustomRepresentation):
11503        * UIProcess/win/WebView.h:
11504        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
11505        (WebKit::WebFrameLoaderClient::finishedLoading):
11506
115072011-02-26  Anders Carlsson  <andersca@apple.com>
11508
11509        Reviewed by Oliver Hunt.
11510
11511        DrawingArea should not be reference counted
11512        https://bugs.webkit.org/show_bug.cgi?id=55284
11513
11514        * Shared/DrawingAreaInfo.h:
11515        * Shared/WebPageCreationParameters.cpp:
11516        (WebKit::WebPageCreationParameters::encode):
11517        (WebKit::WebPageCreationParameters::decode):
11518        * Shared/WebPageCreationParameters.h:
11519        * UIProcess/ChunkedUpdateDrawingAreaProxy.cpp:
11520        (WebKit::ChunkedUpdateDrawingAreaProxy::ChunkedUpdateDrawingAreaProxy):
11521        (WebKit::ChunkedUpdateDrawingAreaProxy::setPageIsVisible):
11522        (WebKit::ChunkedUpdateDrawingAreaProxy::update):
11523        (WebKit::ChunkedUpdateDrawingAreaProxy::sendSetSize):
11524        * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
11525        * UIProcess/DrawingAreaProxy.cpp:
11526        (WebKit::DrawingAreaProxy::DrawingAreaProxy):
11527        * UIProcess/DrawingAreaProxy.h:
11528        (WebKit::DrawingAreaProxy::type):
11529        * UIProcess/DrawingAreaProxyImpl.cpp:
11530        (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
11531        * UIProcess/DrawingAreaProxyImpl.h:
11532        * UIProcess/TiledDrawingAreaProxy.cpp:
11533        (WebKit::TiledDrawingAreaProxy::TiledDrawingAreaProxy):
11534        * UIProcess/TiledDrawingAreaProxy.h:
11535        * UIProcess/WebPageProxy.cpp:
11536        (WebKit::WebPageProxy::didReceiveSyncMessage):
11537        (WebKit::WebPageProxy::creationParameters):
11538        * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
11539        * WebProcess/WebPage/ChunkedUpdateDrawingArea.cpp:
11540        (WebKit::ChunkedUpdateDrawingArea::ChunkedUpdateDrawingArea):
11541        (WebKit::ChunkedUpdateDrawingArea::display):
11542        (WebKit::ChunkedUpdateDrawingArea::setSize):
11543        (WebKit::ChunkedUpdateDrawingArea::didReceiveMessage):
11544        * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
11545        * WebProcess/WebPage/DrawingArea.cpp:
11546        (WebKit::DrawingArea::create):
11547        (WebKit::DrawingArea::DrawingArea):
11548        * WebProcess/WebPage/DrawingArea.h:
11549        * WebProcess/WebPage/DrawingAreaImpl.cpp:
11550        (WebKit::DrawingAreaImpl::create):
11551        (WebKit::DrawingAreaImpl::DrawingAreaImpl):
11552        * WebProcess/WebPage/DrawingAreaImpl.h:
11553        * WebProcess/WebPage/TiledDrawingArea.cpp:
11554        (WebKit::TiledDrawingArea::TiledDrawingArea):
11555        * WebProcess/WebPage/TiledDrawingArea.h:
11556        * WebProcess/WebPage/WebPage.cpp:
11557        (WebKit::WebPage::drawRect):
11558        * WebProcess/WebPage/WebPage.h:
11559
115602011-02-26  Vsevolod Vlasov  <vsevik@chromium.org>
11561
11562        Reviewed by Pavel Feldman.
11563
11564        DumpRenderTree should reset frame opener between tests.
11565        https://bugs.webkit.org/show_bug.cgi?id=54874
11566
11567        Added clearOpener method to WKBundleWebFramePrivate.
11568
11569        * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
11570        (WKBundleFrameClearOpener):
11571        * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
11572
115732011-02-26  Yael Aharon  <yael.aharon@nokia.com>
11574
11575        Reviewed by Andreas Kling.
11576
11577        [Qt] Fix the focus in MiniBrowser.
11578        https://bugs.webkit.org/show_bug.cgi?id=55288
11579
11580        Implement basic functionality for focus in QWKPagePrivate.
11581
11582        * UIProcess/API/qt/qwkpage.cpp:
11583        (QWKPagePrivate::isViewWindowActive):
11584        (QWKPagePrivate::isViewFocused):
11585        (QWKPagePrivate::isViewVisible):
11586
115872011-02-26  Sheriff Bot  <webkit.review.bot@gmail.com>
11588
11589        Unreviewed, rolling out r79764.
11590        http://trac.webkit.org/changeset/79764
11591        https://bugs.webkit.org/show_bug.cgi?id=55295
11592
11593        "broke Chromium builds" (Requested by rniwa on #webkit).
11594
11595        * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
11596        * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
11597
115982011-02-26  Vsevolod Vlasov  <vsevik@chromium.org>
11599
11600        Reviewed by Pavel Feldman.
11601
11602        DumpRenderTree should reset frame opener between tests.
11603        https://bugs.webkit.org/show_bug.cgi?id=54874
11604
11605        Added clearOpener method to WKBundleWebFramePrivate.
11606
11607        * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
11608        (WKBundleFrameClearOpener):
11609        * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
11610
116112011-02-25  Anders Carlsson  <andersca@apple.com>
11612
11613        Reviewed by Darin Adler.
11614
11615        Plug-in process crashes when using GuardMalloc
11616        https://bugs.webkit.org/show_bug.cgi?id=55279
11617        <rdar://problem/9044618>
11618
11619        Update m_environmentPointer after copying the environment variables.
11620
11621        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
11622        (WebKit::EnvironmentVariables::copyEnvironmentVariables):
11623
116242011-02-25  Darin Adler  <darin@apple.com>
11625
11626        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
11627        (WebKit::ProcessLauncher::launchProcess): Fixed backwards logic from last change.
11628
116292011-02-25  Darin Adler  <darin@apple.com>
11630
11631        Reviewed by Mark Rowe.
11632
11633        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
11634        (WebKit::ProcessLauncher::launchProcess): Fixed performance problem in production
11635        builds by only setting DYLD_FRAMEWORK_PATH in engineering configurations.
11636
116372011-02-25  Darin Adler  <darin@apple.com>
11638
11639        Reviewed by Anders Carlsson.
11640
11641        <rdar://problem/8036034> WebKit2 should work even if DYLD_FRAMEWORK_PATH is not set
11642
11643        * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
11644        (WebKit::EnvironmentVariables::~EnvironmentVariables): Use fastFree, not delete, on
11645        the strings here because they are allocated with fastMalloc, not new.
11646        (WebKit::EnvironmentVariables::set): Use const more.
11647        (WebKit::EnvironmentVariables::get): Ditto.
11648        (WebKit::EnvironmentVariables::appendValue): Ditto.
11649        (WebKit::EnvironmentVariables::valueIfVariableHasName): Ditto. Also fix mistake
11650        where this would match if the name matched only a prefix of the environment variable's
11651        name. We want to match the whole name, so we need to use memcmp, not strncmp.
11652        (WebKit::EnvironmentVariables::createStringForVariable): Use const more.
11653        (WebKit::ProcessLauncher::launchProcess): Use clearer name, frameworkExecutablePath,
11654        for what was called bundlePath before. Append the frameworks path to DYLD_FRAMEWORK_PATH,
11655        ensuring we can pick up other frameworks from the same directory in the web process.
11656        Use a const_cast instead of a C-style cast.
11657
116582011-02-25  Chris Fleizach  <cfleizach@apple.com>
11659
11660        Reviewed by Anders Carlsson.
11661
11662        AX: WK2: AXApplication not returning the AXFocusedUIElement within the web area
11663        https://bugs.webkit.org/show_bug.cgi?id=55277
11664
11665        * UIProcess/API/mac/WKView.mm:
11666        (-[WKView accessibilityFocusedUIElement]):
11667
116682011-02-25  Alexey Proskuryakov  <ap@apple.com>
11669
11670        Reviewed by Anders Carlsson.
11671
11672        https://bugs.webkit.org/show_bug.cgi?id=55276
11673        WebPage::close() accesses "this" after it is destroyed.
11674
11675        This was making many tests crash with GuardMalloc.
11676
11677        * WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::close): Access "this" before it can be
11678        destroyed, not after.
11679
116802011-02-25  Balazs Kelemen  <kbalazs@webkit.org>
11681
11682        Unreviewed.
11683        Add missing sources to WebKit2API.pri.
11684
11685        * WebKit2API.pri:
11686
116872011-02-25  Anders Carlsson  <andersca@apple.com>
11688
11689        Reviewed by Darin Adler.
11690
11691        A WKView without a window will cause CG errors in the console
11692        https://bugs.webkit.org/show_bug.cgi?id=55264
11693        <rdar://problem/9044281>
11694
11695        Check that the window has a valid window number before trying to get its graphics context.
11696
11697        * UIProcess/API/mac/PageClientImpl.mm:
11698        (WebKit::PageClientImpl::containingWindowGraphicsContext):
11699
117002011-02-25  Brian Weinstein  <bweinstein@apple.com>
11701
11702        Reviewed by Brady Eidson and looked over by Jessie Berlin.
11703
11704        WebKit2: Need a way to manage cookies from the web process
11705        https://bugs.webkit.org/show_bug.cgi?id=55086
11706
11707        Call through to WebCore::CookieJar in our WebCookieManager functions.
11708
11709        * WebProcess/Cookies/WebCookieManager.cpp:
11710        (WebKit::WebCookieManager::getHostnamesWithCookies):
11711        (WebKit::WebCookieManager::deleteCookiesForHostname):
11712        (WebKit::WebCookieManager::deleteAllCookies):
11713
117142011-02-25  Anders Carlsson  <andersca@apple.com>
11715
11716        Reviewed by Sam Weinig.
11717
11718        Option-clicking on links doesn't download them due to sandbox violation
11719        https://bugs.webkit.org/show_bug.cgi?id=55250
11720        <rdar://problem/9018359>
11721
11722        The change to make DecidePolicyForNavigationAction sync didn't handle the case when the
11723        decided policy was "Download". Fix this by passing along the download ID back to the web process.
11724
11725        * Platform/CoreIPC/HandleMessage.h:
11726        (CoreIPC::callMemberFunction):
11727        Add new overload.
11728
11729        * UIProcess/WebPageProxy.cpp:
11730        (WebKit::WebPageProxy::WebPageProxy):
11731        Initialize m_syncNavigationActionPolicyDownloadID.
11732
11733        (WebKit::WebPageProxy::receivedPolicyDecision):
11734        Set m_syncNavigationActionPolicyDownloadID to the download ID.
11735
11736        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
11737        Return the m_syncNavigationActionPolicyDownloadID.
11738
11739        * UIProcess/WebPageProxy.h:
11740        * UIProcess/WebPageProxy.messages.in:
11741        Add a DownloadID reply parameter.
11742
11743        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
11744        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
11745        Don't pass a zero download ID to didReceivePolicyDecision.
11746
117472011-02-25  Amruth Raj  <amruthraj@motorola.com> and Ravi Phaneendra Kasibhatla  <ravi.kasibhatla@motorola.com> and Alejandro G. Castro  <alex@igalia.com>
11748
11749        Reviewed by Martin Robinson.
11750
11751        [GTK] Implement WebContext and NativeKeyboardEvent classes for WebKit2
11752        https://bugs.webkit.org/show_bug.cgi?id=48510
11753
11754        * GNUmakefile.am:
11755        * Shared/NativeWebKeyboardEvent.h: Added the GTK event attribute
11756        and constructors, in our case we need it because we use a pointer
11757        and copy the event.
11758        (WebKit::NativeWebKeyboardEvent::nativeEvent):
11759        * Shared/gtk/NativeWebKeyboardEventGtk.cpp: Added.
11760        (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): We need
11761        to copy the event in the constructor to avoid two references to
11762        the same event.
11763        * Shared/gtk/WebEventFactory.cpp: Changed the prototype of the
11764        functions to add const, we need it for the NativeWebKeyboardEvent
11765        constructor.
11766        (WebKit::modifiersForEvent):
11767        (WebKit::WebEventFactory::createWebKeyboardEvent):
11768        * UIProcess/gtk/WebContextGtk.cpp: Added. Stubbed implementation
11769        for GTK port. Yet to implement.
11770        (WebKit::WebContext::applicationCacheDirectory):
11771        (WebKit::WebContext::platformInitializeWebProcess):
11772        (WebKit::WebContext::platformDefaultDatabaseDirectory):
11773        * UIProcess/gtk/WebView.cpp:
11774        (WebKit::WebView::handleKeyboardEvent):
11775
117762011-02-25  Anders Carlsson  <andersca@apple.com>
11777
11778        Reviewed by Sam Weinig.
11779
11780        Get rid of more old accelerated compositing code
11781        https://bugs.webkit.org/show_bug.cgi?id=55235
11782
11783        * Shared/CoreIPCSupport/DrawingAreaProxyMessageKinds.h:
11784        * UIProcess/ChunkedUpdateDrawingAreaProxy.h:
11785        * UIProcess/DrawingAreaProxy.h:
11786        * UIProcess/DrawingAreaProxyImpl.cpp:
11787        * UIProcess/DrawingAreaProxyImpl.h:
11788        * WebProcess/WebPage/ChunkedUpdateDrawingArea.h:
11789        * WebProcess/WebPage/DrawingArea.h:
11790        * WebProcess/WebPage/DrawingAreaImpl.cpp:
11791        * WebProcess/WebPage/DrawingAreaImpl.h:
11792
117932011-02-25  Andras Becsi  <abecsi@webkit.org>
11794
11795        Reviewed by Csaba Osztrogonác.
11796
11797        [Qt] Make the WebKit2 build system less confusing for non-Qt developers
11798        https://bugs.webkit.org/show_bug.cgi?id=55213
11799
11800        * WebKit2API.pri: Added.
11801
118022011-02-25  Amruth Raj  <amruthraj@motorola.com> and Ravi Phaneendra Kasibhatla  <ravi.kasibhatla@motorola.com> and Alejandro G. Castro  <alex@igalia.com>
11803
11804        Reviewed by Martin Robinson.
11805
11806        [GTK] Implement WebView and WebKitWebView classes for WebKit2
11807        https://bugs.webkit.org/show_bug.cgi?id=48509
11808
11809        * GNUmakefile.am:
11810        * UIProcess/API/C/gtk/WKView.cpp:
11811        * UIProcess/API/C/gtk/WKView.h: Removed gdkrectangle from
11812        constructor.
11813        * UIProcess/gtk/WebViewWidget.cpp: Added. The GObject interface
11814        for WebView. The GObject is the GtkWidget handle which is used by
11815        WebView class for GTK port.
11816        * UIProcess/gtk/WebViewWidget.h: Added. The GObject interface
11817        declarations for GtkWidget handle for GTK port.
11818        * UIProcess/gtk/WebView.cpp: Added. The native GtkWidget handle
11819        for GTK port which is associated with each WKViewRef.
11820        * UIProcess/gtk/WebView.h: Added. Class which implements the
11821        PageClient interface. It is a wrapper over the native GtkWidget
11822        handle associated with each WKViewRef for GTK port.
11823
118242011-02-25  Alejandro G. Castro  <alex@igalia.com>
11825
11826        Fix GTK compilation after r79654.
11827
11828        * GNUmakefile.am:
11829
118302011-02-24  Brian Weinstein  <bweinstein@apple.com>
11831
11832        Qt build fix.
11833
11834        * WebKit2.pri:
11835
118362011-02-24  Brady Eidson  <beidson@apple.com>
11837
11838        Reviewed by Sam Weinig and looked over by Brian Weinstein.
11839
11840        Part of <rdar://problem/8762095> and https://bugs.webkit.org/show_bug.cgi?id=55172
11841        Need WebKit2 API to view/manage origins with LocalStorage.
11842
11843        Project file stuff:
11844        * GNUmakefile.am:
11845        * WebKit2.pri:
11846        * WebKit2.pro:
11847        * WebKit2.xcodeproj/project.pbxproj:
11848        * win/WebKit2.vcproj:
11849        * win/WebKit2Common.vsprops:
11850        * win/WebKit2Generated.make:
11851
11852        WK2 derived sources and API stuff:
11853        * DerivedSources.make:
11854        * DerivedSources.pro:
11855        * Platform/CoreIPC/MessageID.h:
11856        * Shared/API/c/WKBase.h:
11857        * Shared/APIObject.h:
11858        * UIProcess/API/C/WKAPICast.h:
11859
11860        Add an KeyValueStorageManager to the context and invalidate it at the appropriate times:
11861        * UIProcess/WebContext.cpp:
11862        (WebKit::WebContext::WebContext):
11863        (WebKit::WebContext::~WebContext):
11864        (WebKit::WebContext::disconnectProcess):
11865        (WebKit::WebContext::didReceiveMessage):
11866        * UIProcess/WebContext.h:
11867        (WebKit::WebContext::keyValueStorageManagerProxy):
11868
11869        Add API to get the KeyValueStorageManager for a context:
11870        * UIProcess/API/C/WKContext.cpp:
11871        (WKContextGetKeyValueStorageManager):
11872        * UIProcess/API/C/WKContext.h:
11873
11874        Route messages to the right place:
11875        * UIProcess/WebProcessProxy.cpp:
11876        (WebKit::WebProcessProxy::didReceiveMessage):
11877        * WebProcess/WebProcess.cpp:
11878        (WebKit::WebProcess::didReceiveMessage):
11879
11880        Add the API object, which wraps to WebKeyValueStorageManagerProxy:
11881        * UIProcess/API/C/WKKeyValueStorageManager.cpp: Added.
11882        (WKKeyValueStorageManagerGetTypeID):
11883        (WKKeyValueStorageManagerGetKeyValueStorageOrigins):
11884        (WKKeyValueStorageManagerDeleteEntriesForOrigin):
11885        (WKKeyValueStorageManagerDeleteAllEntries):
11886        * UIProcess/API/C/WKKeyValueStorageManager.h: Added.
11887
11888        The UIProcess implementation of the manager to send messages to the WebProcess and pipe a callback back up to the client:
11889        * UIProcess/WebKeyValueStorageManagerProxy.cpp: Added.
11890        (WebKit::WebKeyValueStorageManagerProxy::create):
11891        (WebKit::WebKeyValueStorageManagerProxy::WebKeyValueStorageManagerProxy):
11892        (WebKit::WebKeyValueStorageManagerProxy::~WebKeyValueStorageManagerProxy):
11893        (WebKit::WebKeyValueStorageManagerProxy::invalidate):
11894        (WebKit::WebKeyValueStorageManagerProxy::didReceiveMessage):
11895        (WebKit::WebKeyValueStorageManagerProxy::getKeyValueStorageOrigins):
11896        (WebKit::WebKeyValueStorageManagerProxy::didGetKeyValueStorageOrigins):
11897        (WebKit::WebKeyValueStorageManagerProxy::deleteEntriesForOrigin):
11898        (WebKit::WebKeyValueStorageManagerProxy::deleteAllEntries):
11899        * UIProcess/WebKeyValueStorageManagerProxy.h: Added.
11900        (WebKit::WebKeyValueStorageManagerProxy::clearContext):
11901        (WebKit::WebKeyValueStorageManagerProxy::type):
11902        * UIProcess/WebKeyValueStorageManagerProxy.messages.in: Added.
11903
11904        The WebProcess implementation to response to UIProcess messages and actually do the dirty-work in WebCore:
11905        * WebProcess/KeyValueStorage: Added.
11906        * WebProcess/KeyValueStorage/WebKeyValueStorageManager.cpp: Added.
11907        (WebKit::WebKeyValueStorageManager::shared):
11908        (WebKit::WebKeyValueStorageManager::WebKeyValueStorageManager):
11909        (WebKit::WebKeyValueStorageManager::didReceiveMessage):
11910        (WebKit::WebKeyValueStorageManager::getKeyValueStorageOrigins):
11911        (WebKit::WebKeyValueStorageManager::deleteEntriesForOrigin):
11912        (WebKit::WebKeyValueStorageManager::deleteAllEntries):
11913        * WebProcess/KeyValueStorage/WebKeyValueStorageManager.h: Added.
11914        * WebProcess/KeyValueStorage/WebKeyValueStorageManager.messages.in: Added.
11915
119162011-02-24  Darin Adler  <darin@apple.com>
11917
11918        Reviewed by Anders Carlsson.
11919
11920        WebKit2: Image-based cursors do not work
11921        https://bugs.webkit.org/show_bug.cgi?id=55184
11922
11923        * Shared/ShareableBitmap.h: Added releaseData function
11924        declaration. This is only defined for CG, but we can declare
11925        it without defining it on non-CG platforms without causing problems.
11926
11927        * Shared/WebCoreArgumentCoders.cpp: Added.
11928        (CoreIPC::encodeImage): Added. For use in the Cursor argument coder.
11929        (CoreIPC::decodeImage): Ditto.
11930
11931        * Shared/WebCoreArgumentCoders.h: Added code to the Cursor encoder
11932        and decoder to handle image-based cursors, using the new encodeImage
11933        and decodeImage functions.
11934
11935        * Shared/cg/ShareableBitmapCG.cpp:
11936        (WebKit::ShareableBitmap::releaseData): Added.
11937        (WebKit::ShareableBitmap::createGraphicsContext): Use
11938        CGBitmapContextCreateWithData instead of CGBitmapContextCreate,
11939        to guarantee we outlast the CGBitmapContext we create.
11940        (WebKit::ShareableBitmap::paint): Got rid of unnneeded local variable.
11941
11942        * Shared/cg/WebCoreArgumentCodersCG.cpp: Added.
11943        (CoreIPC::createImage): Added. For use by CoreIPC::decodeImage.
11944
11945        * WebKit2.xcodeproj/project.pbxproj: Added WebCoreArgumentCoders.cpp
11946        and WebCoreArgumentCodersCG.cpp.
11947        * win/WebKit2.vcproj: Ditto.
11948
119492011-02-24  Anders Carlsson  <andersca@apple.com>
11950
11951        Reviewed by Dan Bernstein.
11952
11953        Crash when trying to send a sync message on an invalid connection
11954        https://bugs.webkit.org/show_bug.cgi?id=55190
11955        <rdar://problem/9035806>
11956
11957        * Platform/CoreIPC/Connection.cpp:
11958        (CoreIPC::Connection::sendSyncMessage):
11959        Don't try to call a client function if isValid() returns false since the client
11960        will be null in that case.
11961
119622011-02-24  Anders Carlsson  <andersca@apple.com>
11963
11964        Reviewed by Dan Bernstein.
11965
11966        Remove the layer backed drawing area
11967        https://bugs.webkit.org/show_bug.cgi?id=55174
11968
11969        * GNUmakefile.am:
11970        * Shared/DrawingAreaInfo.h:
11971        * UIProcess/API/mac/WKView.mm:
11972        * UIProcess/LayerBackedDrawingAreaProxy.cpp: Removed.
11973        * UIProcess/LayerBackedDrawingAreaProxy.h: Removed.
11974        * UIProcess/mac/LayerBackedDrawingAreaProxyMac.mm: Removed.
11975        * UIProcess/win/LayerBackedDrawingAreaProxyWin.cpp: Removed.
11976        * UIProcess/win/WebView.cpp:
11977        * WebKit2.xcodeproj/project.pbxproj:
11978        * WebProcess/WebPage/DrawingArea.cpp:
11979        (WebKit::DrawingArea::create):
11980        * WebProcess/WebPage/LayerBackedDrawingArea.cpp: Removed.
11981        * WebProcess/WebPage/LayerBackedDrawingArea.h: Removed.
11982        * WebProcess/WebPage/mac/LayerBackedDrawingAreaMac.mm: Removed.
11983        * WebProcess/WebPage/win/LayerBackedDrawingAreaWin.cpp: Removed.
11984        * win/WebKit2.vcproj:
11985
119862011-02-24  Mike Thole  <mthole@apple.com>
11987
11988        Reviewed by Sam Weinig.
11989
11990        WK2: Add ability to get document node for a WKBundleNodeHandle
11991        https://bugs.webkit.org/post_bug.cgi
11992
11993        * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
11994        (WKBundleNodeHandleCopyDocument):
11995        * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
11996        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
11997        (WebKit::InjectedBundleNodeHandle::document):
11998        * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
11999
120002011-02-24  Brady Eidson  <beidson@apple.com>
12001
12002        Reviewed by Adam Roben and looked at by Brian Weinstein.
12003
12004        https://bugs.webkit.org/show_bug.cgi?id=55165
12005        Can call CF API with a null CFArray in WebResourceCacheManager
12006
12007        * WebProcess/ResourceCache/WebResourceCacheManager.cpp:
12008        (WebKit::WebResourceCacheManager::getCacheOrigins): cfURLCacheHostNames() can return a null CFArrayRef,
12009          so the call to CFArrayGetCount must be null checked.
12010
120112011-02-24  Anders Carlsson  <andersca@apple.com>
12012
12013        Reviewed by Simon Fraser.
12014
12015        ASSERTION FAILED: !isInAcceleratedCompositingMode() when entering accelerated compositing early
12016        https://bugs.webkit.org/show_bug.cgi?id=55162
12017        <rdar://problem/9048523>
12018
12019        * WebProcess/WebPage/DrawingAreaImpl.cpp:
12020        (WebKit::DrawingAreaImpl::updateState):
12021        Call setShouldNotifyAfterNextScheduledLayerFlush(false) so the web process process won't send an
12022        EnterAcceleratedCompositingMode message.
12023
12024        (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
12025        setShouldNotifyAfterNextScheduledLayerFlush now takes a boolean.
12026
12027        * WebProcess/WebPage/LayerTreeHost.h:
12028        * WebProcess/WebPage/mac/LayerTreeHostMac.h:
12029        * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
12030        (WebKit::LayerTreeHostMac::setShouldNotifyAfterNextScheduledLayerFlush):
12031        Make this take a boolean.
12032
120332011-02-24  Peter Kasting  <pkasting@google.com>
12034
12035        Reviewed by Eric Seidel.
12036
12037        Drop the "U; " encryption level from the User Agent string.
12038        https://bugs.webkit.org/show_bug.cgi?id=54566
12039
12040        * UIProcess/gtk/WebPageProxyGtk.cpp:
12041        (WebKit::WebPageProxy::standardUserAgent):
12042        * UIProcess/mac/WebPageProxyMac.mm:
12043        (WebKit::WebPageProxy::standardUserAgent):
12044        * UIProcess/qt/WebPageProxyQt.cpp:
12045        (WebKit::WebPageProxy::standardUserAgent):
12046        * UIProcess/win/WebPageProxyWin.cpp:
12047        (WebKit::WebPageProxy::standardUserAgent):
12048
120492011-02-24  Andrew Wilson  <atwilson@chromium.org>
12050
12051        Unreviewed, rolling out r79570.
12052        http://trac.webkit.org/changeset/79570
12053        https://bugs.webkit.org/show_bug.cgi?id=54874
12054
12055        Breaks chromium build because glue/mocks/mock_web_frame.h/cc
12056        was not updated
12057
12058        * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
12059        * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
12060
120612011-02-23  Brian Weinstein  <bweinstein@apple.com>
12062
12063        Reviewed by Adam Roben and looked over by Jessie Berlin.
12064
12065        Part of WebKit2: Need a way to manage cookies from the web process
12066        https://bugs.webkit.org/show_bug.cgi?id=55086
12067
12068        This patch adds the plumbing and classes that are needed to manage cookies from the web process.
12069        The functions that the API calls are currently stubs, but will be implemented in a follow-up patch.
12070
12071        Project file changes.
12072        * DerivedSources.make:
12073        * DerivedSources.pro:
12074        * GNUmakefile.am:
12075        * WebKit2.pri:
12076        * WebKit2.pro:
12077        * WebKit2.xcodeproj/project.pbxproj:
12078        * win/WebKit2.vcproj:
12079        * win/WebKit2Common.vsprops:
12080        * win/WebKit2Generated.make:
12081
12082        Add some needed plumbing for WebCookieManager{Proxy}.
12083        * Platform/CoreIPC/MessageID.h:
12084        * Shared/API/c/WKBase.h:
12085        * Shared/APIObject.h:
12086        * UIProcess/API/C/WKAPICast.h:
12087
12088        * UIProcess/API/C/WKContext.cpp:
12089        (WKContextGetCookieManager): Gets the cookie manager proxy.
12090        * UIProcess/API/C/WKContext.h:
12091        * UIProcess/API/C/WKCookieManager.cpp: Added.
12092        (WKCookieManagerGetTypeID):
12093        (WKCookieManagerGetHostnamesWithCookies): Calls through to WebCookieManagerProxy.
12094        (WKCookieManagerDeleteCookiesForHostname): Ditto.
12095        (WKCookieManagerDeleteAllCookies): Ditto.
12096        * UIProcess/API/C/WKCookieManager.h: Added.
12097
12098        * UIProcess/WebProcessProxy.cpp:
12099        (WebKit::WebProcessProxy::didReceiveMessage): Add a case for the cookie manager.
12100        * UIProcess/WebContext.cpp:
12101        (WebKit::WebContext::WebContext): Initialize the cookie manager.
12102        (WebKit::WebContext::~WebContext): Invalidate the cookie manager.
12103        (WebKit::WebContext::disconnectProcess): Ditto.
12104        (WebKit::WebContext::didReceiveMessage): Add a case for the cookie manager.
12105        * UIProcess/WebContext.h:
12106        (WebKit::WebContext::cookieManagerProxy): Returns the cookie manager.
12107        * WebProcess/WebProcess.cpp:
12108        (WebKit::WebProcess::didReceiveMessage): Add a case for the cookie manager.
12109
12110        * UIProcess/WebCookieManagerProxy.cpp: Added.
12111        (WebKit::WebCookieManagerProxy::create):
12112        (WebKit::WebCookieManagerProxy::WebCookieManagerProxy):
12113        (WebKit::WebCookieManagerProxy::~WebCookieManagerProxy):
12114        (WebKit::WebCookieManagerProxy::invalidate):
12115        (WebKit::WebCookieManagerProxy::didReceiveMessage):
12116        (WebKit::WebCookieManagerProxy::getHostnamesWithCookies): Call through to the web process to get hostnames with cookies.
12117        (WebKit::WebCookieManagerProxy::didGetHostnamesWithCookies): Call the callback we were passed in getHostnamesWithCookies.
12118        (WebKit::WebCookieManagerProxy::deleteCookiesForHostname): Call through to the web process to delete cookies
12119            for the origin.
12120        (WebKit::WebCookieManagerProxy::deleteAllCookies): Call through to the web process to delete all cookies.
12121        * UIProcess/WebCookieManagerProxy.h: Added.
12122        (WebKit::WebCookieManagerProxy::clearContext):
12123        (WebKit::WebCookieManagerProxy::type):
12124        * UIProcess/WebCookieManagerProxy.messages.in: Added.
12125
12126        * WebProcess/Cookies: Added.
12127        * WebProcess/Cookies/WebCookieManager.cpp: Added.
12128        (WebKit::WebCookieManager::shared):
12129        (WebKit::WebCookieManager::WebCookieManager):
12130        (WebKit::WebCookieManager::didReceiveMessage): Call through to didReceiveWebCookieManagerMessage.
12131        (WebKit::WebCookieManager::getHostnamesWithCookies): Build an array from a HashSet (that isn't filled yet), and
12132            convert that HashSet to a Vector to send to the UI process.
12133        (WebKit::WebCookieManager::deleteCookiesForHostname): Added a stub.
12134        (WebKit::WebCookieManager::deleteAllCookies): Ditto.
12135        * WebProcess/Cookies/WebCookieManager.h: Added.
12136        * WebProcess/Cookies/WebCookieManager.messages.in: Added.
12137
121382011-02-24   Amruth Raj  <amruthraj@motorola.com> and Ravi Phaneendra Kasibhatla  <ravi.kasibhatla@motorola.com> and Alejandro G. Castro  <alex@igalia.com>
12139
12140        Reviewed by Martin Robinson.
12141
12142        [GTK] Implement WebEventFactory, WebErrors classes for WebKit2
12143        https://bugs.webkit.org/show_bug.cgi?id=48510
12144
12145        * GNUmakefile.am:
12146        * Shared/gtk/WebEventFactory.cpp: Added. implementation for
12147        WebMouseEvent, WebWheelEvent, WebKeyboardEvent.
12148        * Shared/gtk/WebEventFactory.h: Added.
12149        * WebProcess/WebCoreSupport/gtk/WebErrorsGtk.cpp: Added. Stubbed
12150        implementation for GTK port.
12151
121522011-02-24  Vsevolod Vlasov  <vsevik@chromium.org>
12153
12154        Reviewed by Alexey Proskuryakov.
12155
12156        DumpRenderTree should reset frame opener between tests.
12157        https://bugs.webkit.org/show_bug.cgi?id=54874
12158
12159        Added clearOpener method to WKBundleWebFramePrivate.
12160
12161        * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
12162        (WKBundleFrameClearOpener):
12163        * WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
12164
121652011-02-24  Benjamin Poulain  <benjamin.poulain@nokia.com>
12166
12167        Reviewed by Eric Seidel.
12168
12169        Support building WebKit with Python 3
12170        https://bugs.webkit.org/show_bug.cgi?id=55038
12171
12172        Update the generator scripts to support Python 3.
12173
12174        * Scripts/generate-message-receiver.py: print is a function in Python 3, write the output to
12175        sys.stdout to be compatible with Python 2 and 3.
12176        * Scripts/generate-messages-header.py:
12177        * Scripts/webkit2/messages.py: dist.iteritems does not exist in Python 3, fallback
12178          to dict.items which is common to Python 2 and 3.
12179
121802011-02-24  Andras Becsi  <abecsi@webkit.org>
12181
12182        Reviewed by Laszlo Gombos.
12183
12184        [Qt] MinGW build fails to link
12185        https://bugs.webkit.org/show_bug.cgi?id=55050
12186
12187        Prepend the libraries of subcomponents instead of appending them
12188        to fix the library order according to the dependency of the libraries
12189
12190        * WebKit2.pri:
12191
121922011-02-24  Andras Becsi  <abecsi@webkit.org>
12193
12194        Reviewed by Csaba Osztrogonác.
12195
12196        [Qt] REGRESSION(69304): WKNativeEvent.h forwarding header is always regenerated
12197        https://bugs.webkit.org/show_bug.cgi?id=47589
12198
12199        In case of file name clashes only generate forwarding header for the current platform.
12200
12201        * Scripts/generate-forwarding-headers.pl:
12202
122032011-02-23  Anders Carlsson  <andersca@apple.com>
12204
12205        Reviewed by Sam Weinig.
12206
12207        Remove some of the old accelerated compositing code
12208        https://bugs.webkit.org/show_bug.cgi?id=55084
12209
12210        * UIProcess/API/mac/PageClientImpl.h:
12211        * UIProcess/API/mac/PageClientImpl.mm:
12212        (WebKit::PageClientImpl::exitAcceleratedCompositingMode):
12213        * UIProcess/API/mac/WKView.mm:
12214        * UIProcess/API/mac/WKViewInternal.h:
12215        * UIProcess/API/qt/qwkpage_p.h:
12216        * UIProcess/PageClient.h:
12217        * UIProcess/WebPageProxy.cpp:
12218        (WebKit::WebPageProxy::exitAcceleratedCompositingMode):
12219        * UIProcess/WebPageProxy.h:
12220        * UIProcess/WebPageProxy.messages.in:
12221        * UIProcess/mac/LayerBackedDrawingAreaProxyMac.mm:
12222        (WebKit::LayerBackedDrawingAreaProxy::attachCompositingContext):
12223        (WebKit::LayerBackedDrawingAreaProxy::detachCompositingContext):
12224        * UIProcess/win/WebView.cpp:
12225        * UIProcess/win/WebView.h:
12226        * WebProcess/WebPage/WebPage.cpp:
12227        (WebKit::WebPage::enterAcceleratedCompositingMode):
12228        (WebKit::WebPage::exitAcceleratedCompositingMode):
12229        * WebProcess/WebPage/WebPage.h:
12230
122312011-02-23  Enrica Casucci  <enrica@apple.com>
12232
12233        Reverting an unintentional change that was part of http://trac.webkit.org/changeset/79494.
12234        Unreviewed.
12235
12236        * WebProcess/WebPage/mac/WebPageMac.mm:
12237        (WebKit::WebPage::interceptEditingKeyboardEvent):
12238
122392011-02-18  Enrica Casucci  <enrica@apple.com>
12240
12241        Reviewed by Adam Roben.
12242
12243        Mac OS X Services are not available for selected text in WebKit2 windows.
12244        https://bugs.webkit.org/show_bug.cgi?id=54777
12245        <rdar://problem/8666428>
12246
12247        This patch adds support for Mac OS X Services in WebKit2 windows.
12248        In WKView we now call registerServicesMenuSendTypes providing the
12249        pasteboard types supported by WebKit and we also implement the two
12250        protocol methods required to validate the send type and write the
12251        content to the pasteboard. Unfortunately, AppKit expects the content
12252        to be available in the pasteboard upon return from writeSelectionToPasteboard and
12253        this is the reason why the call to the WebProcess is synchronous.
12254
12255        * Shared/SelectionState.h:
12256        (WebKit::SelectionState::SelectionState): Extended to include
12257        isContentRichlyEditable
12258        * Shared/mac/PasteboardTypes.h:
12259        * Shared/mac/PasteboardTypes.mm:
12260        (WebKit::PasteboardTypes::forSelection): Added.
12261        * UIProcess/API/mac/WKView.mm:
12262        (-[WKView initWithFrame:contextRef:pageGroupRef:]): Added call
12263        to registerServicesMenuSendTypes.
12264        (-[WKView writeSelectionToPasteboard:types:]): Added.
12265        (-[WKView validRequestorForSendType:returnType:]): Added.
12266        * UIProcess/WebPageProxy.cpp:
12267        (WebKit::WebPageProxy::writeSelectionToPasteboard):
12268        * UIProcess/WebPageProxy.h:
12269        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
12270        (WebKit::WebEditorClient::respondToChangedSelection): Modified to
12271        support the new SelectionState value.
12272        * WebProcess/WebPage/WebPage.h:
12273        * WebProcess/WebPage/WebPage.messages.in:
12274        * WebProcess/WebPage/mac/WebPageMac.mm:
12275        (WebKit::WebPage::writeSelectionToPasteboard): Added synchronous
12276        message to write the selected content to the pasteboard.
12277
122782011-02-23  Anders Carlsson  <andersca@apple.com>
12279
12280        Reviewed by Sam Weinig.
12281
12282        Add a ShareableBitmap::create overload that takes an existing SharedMemory object
12283        https://bugs.webkit.org/show_bug.cgi?id=55081
12284
12285        * Shared/ShareableBitmap.cpp:
12286        (WebKit::ShareableBitmap::createShareable):
12287        (WebKit::ShareableBitmap::create):
12288        * Shared/ShareableBitmap.h:
12289
122902011-02-23  Anders Carlsson  <andersca@apple.com>
12291
12292        Reviewed by Dan Bernstein.
12293
12294        Web Inspector toolbar looks bad in WebKit2
12295        https://bugs.webkit.org/show_bug.cgi?id=55076
12296        <rdar://problem/8866258>
12297
12298        * UIProcess/API/mac/WKView.mm:
12299        (-[WKView mouseDownCanMoveWindow]):
12300        Return NO from mouseDownCanMoveWindow to prevent drags in the (now transparent) inspector WKView
12301        from dragging the window around.
12302
12303        * UIProcess/mac/WebInspectorProxyMac.mm:
12304        (WebKit::WebInspectorProxy::platformCreateInspectorPage):
12305        Call [WKView setDrawsBackground:NO].
12306
123072011-02-23  Sam Weinig  <sam@webkit.org>
12308
12309        Reviewed by Anders Carlsson.
12310
12311        Remove WKPageForceRepaintWithInvalidation and instead make WKPageForceRepaint
12312        always dirty the entire page.
12313
12314        * Shared/ForceRepaintFlags.h: Removed.
12315        * UIProcess/API/C/WKPage.cpp:
12316        (WKPageForceRepaint):
12317        * UIProcess/API/C/WKPage.h:
12318        * UIProcess/WebPageProxy.cpp:
12319        (WebKit::WebPageProxy::forceRepaint):
12320        * UIProcess/WebPageProxy.h:
12321        * WebKit2.pro:
12322        * WebKit2.xcodeproj/project.pbxproj:
12323        * WebProcess/WebPage/DrawingAreaImpl.cpp:
12324        (WebKit::DrawingAreaImpl::forceRepaint):
12325        * WebProcess/WebPage/WebPage.cpp:
12326        (WebKit::WebPage::forceRepaint):
12327        * WebProcess/WebPage/WebPage.h:
12328        * WebProcess/WebPage/WebPage.messages.in:
12329        * win/WebKit2.vcproj:
12330
123312011-02-23  Anders Carlsson  <andersca@apple.com>
12332
12333        Reviewed by Sam Weinig.
12334
12335        Race condition when creating and destroying pages quickly
12336        https://bugs.webkit.org/show_bug.cgi?id=55061
12337        <rdar://problem/8708435>
12338
12339        When the last page in a web process is closed, the web process would
12340        previously terminate, even if the UI process had created a new page
12341        (the CreateNewPage message just wouldn't have reached the web process yet).
12342
12343        Fix this by adding a ShouldTerminate message that the web process sends when it's
12344        about to terminate. If the UI process has any pending pages, downloads etc. it will
12345        prevent the web process from terminating. Otherwise, it will immmediately disconnect
12346        the WebPageProxy so that creating a page after that will launch a new web process.
12347
12348        * UIProcess/Plugins/WebPluginSiteDataManager.cpp:
12349        (WebKit::WebPluginSiteDataManager::shouldTerminate):
12350        * UIProcess/Plugins/WebPluginSiteDataManager.h:
12351        * UIProcess/WebContext.cpp:
12352        (WebKit::WebContext::shouldTerminate):
12353        (WebKit::WebContext::disconnectProcess):
12354        * UIProcess/WebContext.h:
12355        * UIProcess/WebProcessProxy.cpp:
12356        (WebKit::WebProcessProxy::disconnect):
12357        (WebKit::WebProcessProxy::didReceiveSyncMessage):
12358        (WebKit::WebProcessProxy::didClose):
12359        (WebKit::WebProcessProxy::shouldTerminate):
12360        * UIProcess/WebProcessProxy.h:
12361        * UIProcess/WebProcessProxy.messages.in:
12362        * WebProcess/WebProcess.cpp:
12363        (WebKit::WebProcess::terminateIfPossible):
12364
123652011-02-23  Mike Thole  <mthole@apple.com>
12366
12367        Reviewed by Darin Adler.
12368
12369        WKBundleNavigationAction.h should be exposed as a public header
12370        https://bugs.webkit.org/show_bug.cgi?id=55059
12371
12372        * WebKit2.xcodeproj/project.pbxproj:
12373        Changed WKBundleNavigationAction.h from 'project' to 'public'.
12374
123752011-02-23  Siddharth Mathur  <siddharth.mathur@nokia.com>
12376
12377        Reviewed by Laszlo Gombos.
12378
12379        [Qt] Make sure Symbian binary UIDs are unique
12380
12381        * WebProcess.pro: Resolve the UID collision with QtTestBrowser.pro
12382        by changing the UID.
12383
123842011-02-23  Siddharth Mathur  <siddharth.mathur@nokia.com>
12385
12386        Reviewed by Laszlo Gombos.
12387
12388        [Qt] Fix the Symbian build after r79334
12389        https://bugs.webkit.org/show_bug.cgi?id=55044
12390
12391        * WebKit2.pri: Copy the rules from JavaScriptCore.pri for
12392        defineTest().
12393
12394        Remove addWebKit2LibWholeArchive as it is no longer needed.
12395
123962011-02-23  Alejandro G. Castro  <alex@igalia.com>
12397
12398        Unreviewed, fixed GTK WebKit2 compilation after r79366.
12399
12400        * GNUmakefile.am:
12401
124022011-02-23  Patrick Gansterer  <paroga@webkit.org>
12403
12404        Reviewed by Darin Adler.
12405
12406        Rename PLATFORM(CF) to USE(CF)
12407        https://bugs.webkit.org/show_bug.cgi?id=53540
12408
12409        * UIProcess/WebBackForwardList.h:
12410        * UIProcess/WebPageProxy.cpp:
12411        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
12412        (WebKit::formatLocalizedString):
12413
124142011-02-23  Benjamin Poulain  <benjamin.poulain@nokia.com>
12415
12416        Reviewed by Andreas Kling.
12417
12418        [Qt] [WK2] When the context menu is empty, we should still send the signal QWKPage::showContextMenu()
12419        https://bugs.webkit.org/show_bug.cgi?id=54996
12420
12421        Send the signal QWKPage::showContextMenu() with an empty menu even if the content menu generated
12422        is empty/contain only disabled elements.
12423
12424        * UIProcess/API/qt/qgraphicswkview.cpp:
12425        (QGraphicsWKView::showContextMenu):
12426        * UIProcess/qt/WebContextMenuProxyQt.cpp:
12427        (WebKit::WebContextMenuProxyQt::showContextMenu):
12428
124292011-02-22  Dan Bernstein  <mitz@apple.com>
12430
12431        LLVM Compiler build fix.
12432
12433        * Scripts/webkit2/messages.py:
12434        * WebProcess/ApplicationCache/WebApplicationCacheManager.h:
12435
124362011-02-22  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
12437
12438        Reviewed by Alexey Proskuryakov.
12439
12440        Drop the language tag part from the User Agent string
12441        https://bugs.webkit.org/show_bug.cgi?id=54560
12442
12443        * UIProcess/gtk/WebPageProxyGtk.cpp:
12444        (WebKit::WebPageProxy::standardUserAgent):
12445
12446        * UIProcess/mac/WebPageProxyMac.mm:
12447        (WebKit::WebPageProxy::standardUserAgent):
12448
12449        * UIProcess/qt/WebPageProxyQt.cpp:
12450        (WebKit::WebPageProxy::standardUserAgent):
12451
12452        * UIProcess/win/WebPageProxyWin.cpp:
12453        (WebKit::WebPageProxy::standardUserAgent): Drop the language tag
12454        part and fix style.
12455
124562011-02-22  Sam Weinig  <sam@webkit.org>
12457
12458        Reviewed by Anders Carlsson.
12459
12460        Add WebKit2 API to force a repaint with an invalidation
12461        https://bugs.webkit.org/show_bug.cgi?id=55015
12462
12463        * Shared/ForceRepaintFlags.h: Added.
12464        * UIProcess/API/C/WKPage.cpp:
12465        (WKPageForceRepaint):
12466        (WKPageForceRepaintWithInvalidation):
12467        * UIProcess/API/C/WKPage.h:
12468        Add WKPageForceRepaintWithInvalidation which does the same thing WKPageForceRepaint
12469        but also calls setNeedsDisplay on the entire bounds of the page.
12470
12471        * UIProcess/WebPageProxy.cpp:
12472        (WebKit::WebPageProxy::forceRepaint):
12473        * UIProcess/WebPageProxy.h:
12474        * WebProcess/WebPage/WebPage.cpp:
12475        (WebKit::WebPage::forceRepaint):
12476        * WebProcess/WebPage/WebPage.h:
12477        * WebProcess/WebPage/WebPage.messages.in:
12478        Pipe the flag down to the WebProcess.
12479
12480        * WebKit2.pro:
12481        * WebKit2.xcodeproj/project.pbxproj:
12482        * win/WebKit2.vcproj:
12483        Add ForceRepaintFlags.h.
12484
124852011-02-22  Simon Fraser  <simon.fraser@apple.com>
12486
12487        Reviewed by Dan Bernstein.
12488
12489        <rdar://problem/9039670>
12490
12491        Make sure that we set the accelerateDrawing property on the LayerTreeHosts's
12492        non-composited content layer if the preference is set.
12493
12494        * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
12495        (WebKit::LayerTreeHostMac::LayerTreeHostMac):
12496
124972011-02-22  Brady Eidson  <beidson@apple.com>
12498
12499        Fix it Windows-style.
12500
12501        * WebProcess/WebProcess.cpp:
12502        (WebKit::WebProcess::getSitesWithPluginData):
12503        (WebKit::WebProcess::clearPluginSiteData):
12504
125052011-02-22  Anders Carlsson  <andersca@apple.com>
12506
12507        Reviewed by Dan Bernstein.
12508
12509        Rename WebProcess::shutdownIfPossible to WebProcess::terminateIfPossible
12510        https://bugs.webkit.org/show_bug.cgi?id=55008
12511
12512        * WebProcess/Downloads/DownloadManager.cpp:
12513        (WebKit::DownloadManager::downloadFinished):
12514        * WebProcess/WebProcess.cpp:
12515        (WebKit::WebProcess::removeWebPage):
12516        (WebKit::WebProcess::terminateIfPossible):
12517        (WebKit::WebProcess::getSitesWithPluginData):
12518        * WebProcess/WebProcess.h:
12519        * WebProcess/gtk/WebProcessGtk.cpp:
12520        (WebKit::WebProcess::platformTerminate):
12521        * WebProcess/mac/WebProcessMac.mm:
12522        (WebKit::WebProcess::platformTerminate):
12523        * WebProcess/qt/WebProcessQt.cpp:
12524        (WebKit::WebProcess::platformTerminate):
12525        * WebProcess/win/WebProcessWin.cpp:
12526        (WebKit::WebProcess::platformTerminate):
12527
125282011-02-22  Brady Eidson  <beidson@apple.com>
12529
12530        Windows build-fix attempt.
12531
12532        * win/WebKit2Generated.make:
12533
125342011-02-22  Csaba Osztrogonác  <ossy@webkit.org>
12535
12536        Unreviewed.
12537
12538        <rdar://problem/8762042> and  https://bugs.webkit.org/show_bug.cgi?id=54514
12539        API to view and delete Application Cache data by origin.
12540
12541        [Qt][WK2] Buildfix after r79364.
12542
12543        * DerivedSources.pro:
12544        * WebKit2.pri:
12545
125462011-02-22  Brady Eidson  <beidson@apple.com>
12547
12548        Reviewed by Anders Carlsson and looked over by Brian Weinstein.
12549
12550        <rdar://problem/8762042> and https://bugs.webkit.org/show_bug.cgi?id=54514
12551        API to view and delete Application Cache data by origin.
12552
12553        I couldn't help myself - I also re-alphabetized WebResourceCacheManager in many places where
12554        it's sorting was wrong due to a last minute name change.
12555
12556        Project file changes:
12557        * GNUmakefile.am:
12558        * win/WebKit2.vcproj:
12559        * win/WebKit2Common.vsprops:
12560        * win/WebKit2Generated.make:
12561        * WebKit2.pro:
12562        * WebKit2.xcodeproj/project.pbxproj:
12563
12564        WK2 build-system and API paperwork:
12565        * DerivedSources.make:
12566        * Platform/CoreIPC/MessageID.h:
12567        * Shared/API/c/WKBase.h:
12568        * Shared/APIObject.h:
12569        * UIProcess/API/C/WKAPICast.h:
12570
12571        Add a helper to perform an ArrayCallback with a Vector of SecurityOriginDatas:
12572        * Shared/SecurityOriginData.cpp:
12573        (WebKit::performAPICallbackWithSecurityOriginDataVector):
12574        * Shared/SecurityOriginData.h:
12575        * UIProcess/WebResourceCacheManagerProxy.cpp:
12576        (WebKit::WebResourceCacheManagerProxy::didGetCacheOrigins): Use performAPICallbackWithSecurityOriginDataVector here.
12577
12578        Add an ApplicationCacheManagerProxy to the context and invalidate it at the appropriate times:
12579        * UIProcess/WebContext.cpp:
12580        (WebKit::WebContext::WebContext):
12581        (WebKit::WebContext::~WebContext):
12582        (WebKit::WebContext::processDidClose):
12583        (WebKit::WebContext::didReceiveMessage): Route messages to the right proxy.
12584        * UIProcess/WebContext.h:
12585        (WebKit::WebContext::applicationCacheManagerProxy):
12586        (WebKit::WebContext::resourceCacheManagerProxy):
12587
12588        Add API to get the ApplicationCacheManager for a context:
12589        * UIProcess/API/C/WKContext.cpp:
12590        (WKContextGetApplicationCacheManager):
12591        (WKContextGetResourceCacheManager):
12592        * UIProcess/API/C/WKContext.h:
12593
12594        Route messages to the right place:
12595        * UIProcess/WebProcessProxy.cpp:
12596        (WebKit::WebProcessProxy::didReceiveMessage):
12597        * WebProcess/WebProcess.cpp:
12598        (WebKit::WebProcess::didReceiveMessage):
12599
12600        Add the API object, which wraps to WebApplicationCacheManagerProxy:
12601        * UIProcess/API/C/WKApplicationCacheManager.cpp: Added.
12602        (WKApplicationCacheManagerGetTypeID):
12603        (WKApplicationCacheManagerGetApplicationCacheOrigins):
12604        (WKApplicationCacheManagerDeleteEntriesForOrigin):
12605        (WKApplicationCacheManagerDeleteAllEntries):
12606        * UIProcess/API/C/WKApplicationCacheManager.h: Added.
12607
12608        The UIProcess implementation of the manager to send messages to the WebProcess and pipe a callback back up to the client:
12609        * UIProcess/WebApplicationCacheManagerProxy.cpp: Added.
12610        (WebKit::WebApplicationCacheManagerProxy::create):
12611        (WebKit::WebApplicationCacheManagerProxy::WebApplicationCacheManagerProxy):
12612        (WebKit::WebApplicationCacheManagerProxy::~WebApplicationCacheManagerProxy):
12613        (WebKit::WebApplicationCacheManagerProxy::invalidate):
12614        (WebKit::WebApplicationCacheManagerProxy::didReceiveMessage):
12615        (WebKit::WebApplicationCacheManagerProxy::getApplicationCacheOrigins):
12616        (WebKit::WebApplicationCacheManagerProxy::didGetApplicationCacheOrigins): Use performAPICallbackWithSecurityOriginDataVector here.
12617        (WebKit::WebApplicationCacheManagerProxy::deleteEntriesForOrigin):
12618        (WebKit::WebApplicationCacheManagerProxy::deleteAllEntries):
12619        * UIProcess/WebApplicationCacheManagerProxy.h: Added.
12620        (WebKit::WebApplicationCacheManagerProxy::clearContext):
12621        (WebKit::WebApplicationCacheManagerProxy::type):
12622        * UIProcess/WebApplicationCacheManagerProxy.messages.in: Added.
12623
12624        The WebProcess implementation to response to UIProcess messages and actually do the dirty-work in WebCore:
12625        * WebProcess/ApplicationCache: Added.
12626        * WebProcess/ApplicationCache/WebApplicationCacheManager.cpp: Added.
12627        (WebKit::WebApplicationCacheManager::shared):
12628        (WebKit::WebApplicationCacheManager::WebApplicationCacheManager):
12629        (WebKit::WebApplicationCacheManager::didReceiveMessage):
12630        (WebKit::WebApplicationCacheManager::getApplicationCacheOrigins):
12631        (WebKit::WebApplicationCacheManager::deleteEntriesForOrigin):
12632        (WebKit::WebApplicationCacheManager::deleteAllEntries):
12633        * WebProcess/ApplicationCache/WebApplicationCacheManager.h: Added.
12634        * WebProcess/ApplicationCache/WebApplicationCacheManager.messages.in: Added.
12635
126362011-02-22  Anders Carlsson  <andersca@apple.com>
12637
12638        Reviewed by Sam Weinig.
12639
12640        Get rid of WebProcessManager
12641        https://bugs.webkit.org/show_bug.cgi?id=55001
12642
12643        WebProcessManager had become a stupid map of WebContext > WebProcess relations,
12644        which isn't really useful since the WebContext already knows about its process.
12645
12646        * Shared/WebURLRequest.cpp:
12647        * UIProcess/API/mac/WKView.mm:
12648        * UIProcess/WebContext.cpp:
12649        (WebKit::WebContext::~WebContext):
12650        (WebKit::WebContext::ensureWebProcess):
12651        (WebKit::WebContext::processDidFinishLaunching):
12652        * UIProcess/WebProcessManager.cpp: Removed.
12653        * UIProcess/WebProcessManager.h: Removed.
12654        * UIProcess/WebProcessProxy.cpp:
12655        (WebKit::WebProcessProxy::didClose):
12656        * WebKit2.pro:
12657        * WebKit2.xcodeproj/project.pbxproj:
12658        * win/WebKit2.vcproj:
12659
126602011-02-22  Anders Carlsson  <andersca@apple.com>
12661
12662        Reviewed by Darin Adler.
12663
12664        Get rid of WebProcessManager::getAllWebProcessContexts
12665        https://bugs.webkit.org/show_bug.cgi?id=55000
12666
12667        * Shared/WebURLRequest.cpp:
12668        (WebKit::WebURLRequest::setDefaultTimeoutInterval):
12669        Call WebContext::allContexts instead.
12670
12671        * UIProcess/WebContext.cpp:
12672        * UIProcess/WebContext.h:
12673        Add a vector of WebContext objects. Update it when creating and destroying contexts.
12674
12675        * UIProcess/WebProcessManager.cpp:
12676        * UIProcess/WebProcessManager.h:
12677        Remove WebProcessManager::getAllWebProcessContexts.
12678
126792011-02-22  Sam Weinig  <sam@webkit.org>
12680
12681        Reviewed by Anders Carlsson.
12682
12683        Re-add early bail out in dispatchDecidePolicyForNavigationAction with prevents
12684        a crash running fast/loader/empty-embed-src-attribute.html. This matches a
12685        bail out in the default policy delegate in WebKit1.
12686
12687        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
12688        (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
12689
126902011-02-22  Anders Carlsson  <andersca@apple.com>
12691
12692        Reviewed by Dan Bernstein.
12693
12694        Grammar correction from Spelling & Grammar window doesn't work
12695        https://bugs.webkit.org/show_bug.cgi?id=54982
12696        <rdar://problem/8940918>
12697
12698        * UIProcess/API/mac/WKView.mm:
12699        (-[WKView isGrammarCheckingEnabled]):
12700        (-[WKView setGrammarCheckingEnabled:]):
12701        Call down to the text checker.
12702
12703        * UIProcess/TextChecker.h:
12704        Add updateSpellingUIWithGrammarString.
12705
12706        * UIProcess/WebPageProxy.cpp:
12707        (WebKit::WebPageProxy::updateSpellingUIWithGrammarString):
12708        Call TextChecker::updateSpellingUIWithGrammarString.
12709
12710        * UIProcess/WebPageProxy.messages.in:
12711        Add UpdateSpellingUIWithGrammarString message.
12712
12713        * UIProcess/gtk/TextCheckerGtk.cpp:
12714        (WebKit::TextChecker::updateSpellingUIWithGrammarString):
12715        * UIProcess/qt/TextCheckerQt.cpp:
12716        (WebKit::TextChecker::updateSpellingUIWithGrammarString):
12717        * UIProcess/win/TextCheckerWin.cpp:
12718        (WebKit::TextChecker::updateSpellingUIWithGrammarString):
12719        Add stubs.
12720
12721        * UIProcess/mac/TextCheckerMac.mm:
12722        (WebKit::TextChecker::updateSpellingUIWithGrammarString):
12723        Update the spelling panel.
12724
12725        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
12726        (WebKit::WebEditorClient::updateSpellingUIWithGrammarString):
12727        Send an UpdateSpellingUIWithGrammarString message to the UI process.
12728
127292011-02-22  Balazs Kelemen  <kbalazs@webkit.org>
12730
12731        Reviewed by Anders Carlsson.
12732
12733        notImplemented() should behave identical in WebCore and WebKit2
12734        https://bugs.webkit.org/show_bug.cgi?id=54449
12735
12736        Use NotImplemented.h from WebCore. Initialize logging channels.
12737        Remove the WebKit2 concept of notImplemented().
12738
12739        * Platform/gtk/SharedMemoryGtk.cpp:
12740        * Platform/gtk/WorkQueueGtk.cpp:
12741        * Platform/qt/WorkQueueQt.cpp:
12742        * Platform/win/WorkQueueWin.cpp:
12743        * Shared/NotImplemented.h: Removed.
12744        * Shared/Plugins/NPIdentifierData.cpp:
12745        * Shared/Plugins/NPRemoteObjectMap.cpp:
12746        * Shared/Plugins/NPVariantData.cpp:
12747        * Shared/cairo/ShareableBitmapCairo.cpp:
12748        * Shared/gtk/ShareableBitmapGtk.cpp:
12749        * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
12750        * Shared/qt/WebCoreArgumentCodersQt.cpp:
12751        * Shared/win/LayerTreeContextWin.cpp:
12752        * UIProcess/API/mac/PageClientImpl.mm:
12753        * UIProcess/API/qt/qwkpage.cpp:
12754        * UIProcess/Launcher/gtk/ThreadLauncherGtk.cpp:
12755        * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
12756        * UIProcess/Plugins/gtk/PluginInfoStoreGtk.cpp:
12757        * UIProcess/WebContext.cpp:
12758        (WebKit::WebContext::WebContext):
12759        * UIProcess/WebInspectorProxy.cpp:
12760        * UIProcess/gtk/TextCheckerGtk.cpp:
12761        * UIProcess/gtk/WebInspectorGtk.cpp:
12762        * UIProcess/gtk/WebPreferencesGtk.cpp:
12763        * UIProcess/qt/TextCheckerQt.cpp:
12764        * UIProcess/qt/WebInspectorProxyQt.cpp:
12765        * UIProcess/win/TextCheckerWin.cpp:
12766        * UIProcess/win/WebContextMenuProxyWin.cpp:
12767        * WebKit2.pro:
12768        * WebKit2.xcodeproj/project.pbxproj:
12769        * WebProcess/Downloads/cf/DownloadCFNet.cpp:
12770        * WebProcess/Downloads/curl/DownloadCurl.cpp:
12771        * WebProcess/Downloads/mac/DownloadMac.mm:
12772        * WebProcess/Downloads/qt/DownloadQt.cpp:
12773        * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
12774        * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
12775        * WebProcess/Plugins/Netscape/NPJSObject.cpp:
12776        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
12777        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
12778        * WebProcess/Plugins/Netscape/gtk/NetscapePluginGtk.cpp:
12779        * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:
12780        * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
12781        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
12782        * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
12783        * WebProcess/WebCoreSupport/WebDragClient.cpp:
12784        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
12785        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
12786        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
12787        * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
12788        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
12789        * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp:
12790        * WebProcess/WebCoreSupport/gtk/WebPopupMenuGtk.cpp:
12791        * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
12792        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
12793        * WebProcess/WebCoreSupport/qt/WebContextMenuClientQt.cpp:
12794        * WebProcess/WebPage/gtk/WebInspectorGtk.cpp:
12795        * WebProcess/WebPage/qt/WebInspectorQt.cpp:
12796        * WebProcess/WebProcess.cpp:
12797        (WebKit::WebProcess::WebProcess):
12798        * WebProcess/gtk/WebProcessGtk.cpp:
12799        * config.h:
12800        * win/WebKit2.vcproj:
12801
128022011-02-22  Brian Weinstein  <bweinstein@apple.com>
12803
12804        Rubber-stamped by Brady Eidson.
12805
12806        Invalidate the WebResourceCacheManagerProxy in WebContext::processDidClose.
12807
12808        * UIProcess/WebContext.cpp:
12809        (WebKit::WebContext::processDidClose):
12810
128112011-02-21  Adam Roben  <aroben@apple.com>
12812
12813        Make DrawingAreaProxyImpl keep track of the most recent state ID it sent to the web process
12814
12815        This will be useful for sending repeated messages for the same state ID to the web process.
12816        We don't do this currently, but will need to if we're asked to paint after we've thrown away
12817        our backing store to save memory.
12818
12819        Fixes <http://webkit.org/b/54916> DrawingAreaProxyImpl should keep track of the state ID it
12820        last sent to the web process
12821
12822        Reviewed by Anders Carlsson.
12823
12824        * UIProcess/DrawingAreaProxyImpl.cpp:
12825        (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl): Initialize m_requestedStateID, and
12826        reordered member initialization to match the new declaration order.
12827        (WebKit::DrawingAreaProxyImpl::didUpdateState): Added an assertion that the stateID we got
12828        from the web process is no newer than the most recent one we requested.
12829        (WebKit::DrawingAreaProxyImpl::sendUpdateState): Changed to increment and send
12830        m_requestedStateID instead of a new global stateID.
12831
12832        * UIProcess/DrawingAreaProxyImpl.h: Added m_requestedStateID, and moved the state IDs before
12833        other data members. Also beefed the comment explaining m_currentStateID.
12834
128352011-02-22  Andras Becsi  <abecsi@webkit.org>
12836
12837        Reviewed by Laszlo Gombos.
12838
12839        [Qt] Redesign the build system
12840        https://bugs.webkit.org/show_bug.cgi?id=51339
12841
12842        Part 2.
12843
12844        Build WebCore as a static library, compile the WebKit API and WebKit2 API
12845        in a final step and link to WebKit2, WebCore and JSC libraries to fix
12846        linking issues resulting from stripped away symbols.
12847
12848        * WebKit2.pri: Add include paths.
12849        * WebKit2.pro: Move include paths to WebKit2.pri and move
12850        the API source to WebKit/qt/QtWebKit.pro
12851
128522011-02-22  Benjamin Poulain  <benjamin.poulain@nokia.com>
12853
12854        Reviewed by Kenneth Rohde Christiansen.
12855
12856        [Qt] [WK2] Improve the memory handling of the context menu for WebKit 2
12857        https://bugs.webkit.org/show_bug.cgi?id=54902
12858
12859        Refactor the context menu handling of Qt to make it simpler to manage memory.
12860
12861        WebContextMenuProxyQt uses smart pointer for all the references to menu so
12862        there is no need to delete it explicitely.
12863
12864        Passing the QMenu from QWKPage to the client of the signal now uses a QSharedPointer so
12865        the client can choose to handle the memory, but there is no leak if it does not.
12866
12867        * UIProcess/API/qt/qgraphicswkview.cpp:
12868        (QGraphicsWKView::QGraphicsWKView):
12869        (QGraphicsWKView::showContextMenu):
12870        * UIProcess/API/qt/qgraphicswkview.h:
12871        * UIProcess/API/qt/qwkpage.h:
12872        * UIProcess/qt/WebContextMenuProxyQt.cpp:
12873        (WebKit::WebContextMenuProxyQt::showContextMenu):
12874        (WebKit::WebContextMenuProxyQt::createContextMenu):
12875        * UIProcess/qt/WebContextMenuProxyQt.h:
12876
128772011-02-22  Philippe Normand  <pnormand@igalia.com>
12878
12879        Reviewed by Xan Lopez.
12880
12881        [GTK] make distcheck fails
12882        https://bugs.webkit.org/show_bug.cgi?id=54943
12883
12884        Removed reference to NotImplemented.h which was removed.
12885
12886        * GNUmakefile.am:
12887
128882011-02-22  Kimmo Kinnunen  <kimmo.t.kinnunen@nokia.com>
12889
12890        Reviewed by Kenneth Rohde Christiansen.
12891
12892        [Qt] QtWebProcess should be installed with 'make install'
12893        https://bugs.webkit.org/show_bug.cgi?id=44100
12894
12895        Follow the standard in other project files and allow install
12896        location to be changed with INSTALL_BINS variable.
12897
12898        * WebProcess.pro: Install QtWebProcess.
12899
129002011-02-22  Sheriff Bot  <webkit.review.bot@gmail.com>
12901
12902        Unreviewed, rolling out r79296.
12903        http://trac.webkit.org/changeset/79296
12904        https://bugs.webkit.org/show_bug.cgi?id=54941
12905
12906        Breaks compilation on SnowLeapard Intel Release (Requested by
12907        kbalazs_ on #webkit).
12908
12909        * Platform/gtk/SharedMemoryGtk.cpp:
12910        * Platform/gtk/WorkQueueGtk.cpp:
12911        * Platform/qt/WorkQueueQt.cpp:
12912        * Platform/win/WorkQueueWin.cpp:
12913        * Shared/NotImplemented.h: Copied from Source/WebKit2/WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp.
12914        * Shared/Plugins/NPIdentifierData.cpp:
12915        * Shared/Plugins/NPRemoteObjectMap.cpp:
12916        * Shared/Plugins/NPVariantData.cpp:
12917        * Shared/cairo/ShareableBitmapCairo.cpp:
12918        * Shared/gtk/ShareableBitmapGtk.cpp:
12919        * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
12920        * Shared/qt/WebCoreArgumentCodersQt.cpp:
12921        * Shared/win/LayerTreeContextWin.cpp:
12922        * UIProcess/API/mac/PageClientImpl.mm:
12923        * UIProcess/API/qt/qwkpage.cpp:
12924        * UIProcess/Launcher/gtk/ThreadLauncherGtk.cpp:
12925        * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
12926        * UIProcess/Plugins/gtk/PluginInfoStoreGtk.cpp:
12927        * UIProcess/WebContext.cpp:
12928        (WebKit::WebContext::WebContext):
12929        * UIProcess/WebInspectorProxy.cpp:
12930        * UIProcess/gtk/TextCheckerGtk.cpp:
12931        * UIProcess/gtk/WebInspectorGtk.cpp:
12932        * UIProcess/gtk/WebPreferencesGtk.cpp:
12933        * UIProcess/qt/TextCheckerQt.cpp:
12934        * UIProcess/qt/WebInspectorProxyQt.cpp:
12935        * UIProcess/win/TextCheckerWin.cpp:
12936        * UIProcess/win/WebContextMenuProxyWin.cpp:
12937        * WebKit2.pro:
12938        * WebKit2.xcodeproj/project.pbxproj:
12939        * WebProcess/Downloads/cf/DownloadCFNet.cpp:
12940        * WebProcess/Downloads/curl/DownloadCurl.cpp:
12941        * WebProcess/Downloads/mac/DownloadMac.mm:
12942        * WebProcess/Downloads/qt/DownloadQt.cpp:
12943        * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
12944        * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
12945        * WebProcess/Plugins/Netscape/NPJSObject.cpp:
12946        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
12947        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
12948        * WebProcess/Plugins/Netscape/gtk/NetscapePluginGtk.cpp:
12949        * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:
12950        * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
12951        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
12952        * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
12953        * WebProcess/WebCoreSupport/WebDragClient.cpp:
12954        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
12955        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
12956        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
12957        * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
12958        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
12959        * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp:
12960        * WebProcess/WebCoreSupport/gtk/WebPopupMenuGtk.cpp:
12961        * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
12962        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
12963        * WebProcess/WebCoreSupport/qt/WebContextMenuClientQt.cpp:
12964        * WebProcess/WebPage/gtk/WebInspectorGtk.cpp:
12965        * WebProcess/WebPage/qt/WebInspectorQt.cpp:
12966        * WebProcess/WebProcess.cpp:
12967        (WebKit::WebProcess::WebProcess):
12968        * WebProcess/gtk/WebProcessGtk.cpp:
12969        * config.h:
12970        * win/WebKit2.vcproj:
12971
129722011-02-16  Balazs Kelemen  <kbalazs@webkit.org>
12973
12974        Reviewed by Anders Carlsson.
12975
12976        notImplemented() should behave identical in WebCore and WebKit2
12977        https://bugs.webkit.org/show_bug.cgi?id=54449
12978
12979        Use NotImplemented.h from WebCore. Initialize logging channels.
12980        Remove the WebKit2 concept of notImplemented().
12981
12982        * Platform/gtk/SharedMemoryGtk.cpp:
12983        * Platform/gtk/WorkQueueGtk.cpp:
12984        * Platform/qt/WorkQueueQt.cpp:
12985        * Platform/win/WorkQueueWin.cpp:
12986        * Shared/NotImplemented.h: Removed.
12987        * Shared/Plugins/NPIdentifierData.cpp:
12988        * Shared/Plugins/NPRemoteObjectMap.cpp:
12989        * Shared/Plugins/NPVariantData.cpp:
12990        * Shared/cairo/ShareableBitmapCairo.cpp:
12991        * Shared/gtk/ShareableBitmapGtk.cpp:
12992        * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
12993        * Shared/qt/WebCoreArgumentCodersQt.cpp:
12994        * Shared/win/LayerTreeContextWin.cpp:
12995        * UIProcess/API/qt/qwkpage.cpp:
12996        * UIProcess/Launcher/gtk/ThreadLauncherGtk.cpp:
12997        * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
12998        * UIProcess/Plugins/gtk/PluginInfoStoreGtk.cpp:
12999        * UIProcess/WebContext.cpp:
13000        (WebKit::WebContext::WebContext):
13001        * UIProcess/WebInspectorProxy.cpp:
13002        * UIProcess/gtk/TextCheckerGtk.cpp:
13003        * UIProcess/gtk/WebInspectorGtk.cpp:
13004        * UIProcess/gtk/WebPreferencesGtk.cpp:
13005        * UIProcess/qt/TextCheckerQt.cpp:
13006        * UIProcess/qt/WebInspectorProxyQt.cpp:
13007        * UIProcess/win/TextCheckerWin.cpp:
13008        * UIProcess/win/WebContextMenuProxyWin.cpp:
13009        * WebKit2.pro:
13010        * WebProcess/Downloads/cf/DownloadCFNet.cpp:
13011        * WebProcess/Downloads/curl/DownloadCurl.cpp:
13012        * WebProcess/Downloads/mac/DownloadMac.mm:
13013        * WebProcess/Downloads/qt/DownloadQt.cpp:
13014        * WebProcess/InjectedBundle/gtk/InjectedBundleGtk.cpp:
13015        * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
13016        * WebProcess/Plugins/Netscape/NPJSObject.cpp:
13017        * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
13018        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
13019        * WebProcess/Plugins/Netscape/gtk/NetscapePluginGtk.cpp:
13020        * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:
13021        * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
13022        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
13023        * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
13024        * WebProcess/WebCoreSupport/WebDragClient.cpp:
13025        * WebProcess/WebCoreSupport/WebEditorClient.cpp:
13026        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
13027        * WebProcess/WebCoreSupport/WebInspectorClient.cpp:
13028        * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
13029        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
13030        * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp:
13031        * WebProcess/WebCoreSupport/gtk/WebPopupMenuGtk.cpp:
13032        * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
13033        * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
13034        * WebProcess/WebCoreSupport/qt/WebContextMenuClientQt.cpp:
13035        * WebProcess/WebPage/gtk/WebInspectorGtk.cpp:
13036        * WebProcess/WebPage/qt/WebInspectorQt.cpp:
13037        * WebProcess/WebProcess.cpp:
13038        (WebKit::WebProcess::WebProcess):
13039        * WebProcess/gtk/WebProcessGtk.cpp:
13040
130412011-02-21  Timothy Hatcher  <timothy@apple.com>
13042
13043        Set and update the window title for the Web Inspector in WebKit2.
13044
13045        https://webkit.org/b/50945
13046        rdar://problem/8762410
13047
13048        Reviewed by Adam Roben.
13049
13050        * UIProcess/WebInspectorProxy.cpp:
13051        (WebKit::WebInspectorProxy::inspectedURLChanged): Added. Call platformInspectedURLChanged.
13052        * UIProcess/WebInspectorProxy.h:
13053        * UIProcess/WebInspectorProxy.messages.in: Added InspectedURLChanged.
13054        * UIProcess/mac/WebInspectorProxyMac.mm:
13055        (WebKit::WebInspectorProxy::platformInspectedURLChanged): Added. Set the window title.
13056        * UIProcess/win/WebInspectorProxyWin.cpp:
13057        (WebKit::WebInspectorProxy::platformInspectedURLChanged): Added. Set the window title.
13058        * UIProcess/gtk/WebInspectorGtk.cpp:
13059        (WebKit::WebInspectorProxy::platformInspectedURLChanged): Added. Not implemented.
13060        * UIProcess/qt/WebInspectorProxyQt.cpp:
13061        (WebKit::WebInspectorProxy::platformInspectedURLChanged): Added. Not implemented.
13062        * WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:
13063        (WebKit::WebInspectorFrontendClient::inspectedURLChanged): Call WebInspector::inspectedURLChanged.
13064        * WebProcess/WebPage/WebInspector.cpp:
13065        (WebKit::WebInspector::inspectedURLChanged): Added. Send the InspectedURLChanged message.
13066        * WebProcess/WebPage/WebInspector.h:
13067
130682011-02-21  Sam Weinig  <sam@webkit.org>
13069
13070        Reviewed by Anders Carlsson.
13071
13072        Can't paste from 3rd party text editor into WebKit2 window.
13073        <rdar://problem/8978624>
13074
13075        * WebProcess/com.apple.WebProcess.sb:
13076
130772011-02-21  Anders Carlsson  <andersca@apple.com>
13078
13079        Reviewed by Dan Bernstein.
13080
13081        Initialize DrawingAreaProxy::m_size
13082        https://bugs.webkit.org/show_bug.cgi?id=54913
13083
13084        This was removed in r76962 since it caused flashes when switching drawing areas due to
13085        entering and exiting composited mode, but since we no longer switch drawing areas we can
13086        put it back.
13087
13088        * UIProcess/DrawingAreaProxy.cpp:
13089        (WebKit::DrawingAreaProxy::DrawingAreaProxy):
13090
130912011-02-21  Adam Roben  <aroben@apple.com>
13092
13093        Add some assertions about the state IDs we receive from the web process
13094
13095        Rubber-stamped by Anders Carlsson.
13096
13097        * UIProcess/DrawingAreaProxyImpl.cpp:
13098        (WebKit::DrawingAreaProxyImpl::update):
13099        (WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode):
13100        (WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode):
13101        Assert that the state ID the web process sent us is no newer than our own state ID.
13102
131032011-02-21  Adam Roben  <aroben@apple.com>
13104
13105        Rename DrawingArea[Proxy]Impl's "sequence number" concept to "state ID".
13106
13107        As explained in r79251, DrawingAreaProxyImpl has some state that, when it changes, causes
13108        all operations performed before that state change to become invalid. Currently, this state
13109        consists of a single piece of data: the view's size. Eventually it will encompass more data
13110        (e.g., the backing store we're drawing into; when we start throwing away the backing store
13111        to save memory, our state will have changed, and any operations that were intended for the
13112        old backing store will have become invalid). r79251 effectively transformed
13113        DrawingArea[Proxy]Impl's "sequence number," which incremented every time DrawingAreaImpl
13114        sent DrawingAreaProxyImpl a message, to a "state ID," which only increments when the view's
13115        size changes.
13116
13117        This patch is just a set of simple renames to reflect the transformation that r79251
13118        effected. It should not introduce any changes in behavior. The renames are:
13119          - Messages::DrawingArea::SetSize -> UpdateState
13120          - Messages::DrawingAreaProxy::DidSetSize -> DidUpdateState
13121          - DrawingAreaProxyImpl::m_lastDidSetSizeSequenceNumber -> m_currentStateID
13122          - DrawingAreaProxyImpl::m_isWaitingForDidSetSize -> m_isWaitingForDidUpdateState
13123          - DrawingAreaProxyImpl::waitForAndDispatchDidSetSize -> waitForAndDispatchDidUpdateState
13124          - DrawingAreaImpl::m_inSetSize -> m_inUpdateState
13125          - generateSequenceNumber -> generateStateID
13126          - sequenceNumber -> stateID
13127
13128        Fixes <http://webkit.org/b/54911> DrawingArea[Proxy]Impl's "sequence number" concept should
13129        be renamed to "state ID"
13130
13131        Reviewed by Anders Carlsson.
13132
13133        * UIProcess/DrawingAreaProxy.h:
13134        * UIProcess/DrawingAreaProxy.messages.in:
13135        * UIProcess/DrawingAreaProxyImpl.cpp:
13136        * UIProcess/DrawingAreaProxyImpl.h:
13137        * WebProcess/WebPage/DrawingArea.h:
13138        * WebProcess/WebPage/DrawingArea.messages.in:
13139        * WebProcess/WebPage/DrawingAreaImpl.cpp:
13140        * WebProcess/WebPage/DrawingAreaImpl.h:
13141        Performed the renames described above.
13142
131432011-02-21  Alexey Proskuryakov  <ap@apple.com>
13144
13145        Reviewed by Adam Roben.
13146
13147        REGRESSION (WebKit2): HTTP requests time out after 60 seconds
13148        https://bugs.webkit.org/show_bug.cgi?id=54755
13149        <rdar://problem/9006592>
13150
13151        * Shared/API/c/WKURLRequest.cpp:
13152        (WKURLRequestSetDefaultTimeoutInterval):
13153        * Shared/API/c/WKURLRequest.h:
13154        Added an API to set a default timeout interval for requests created from URLs. The API
13155        affects both the UI process and requests created internally by the Web process. Requests
13156        created from NSURLRequest or CFURLRequest take timeout from those.
13157
13158        * Shared/WebURLRequest.cpp: (WebKit::WebURLRequest::setDefaultTimeoutInterval):
13159        * Shared/WebURLRequest.h:
13160        Pipe the default timeout interval from WKURLRequest down to actual implementation. Since
13161        WebURLRequest is currently implemented with WebCore::ResourceRequest, it automatically respects
13162        NSURLRequest default timeout interval.
13163
13164        * UIProcess/WebProcessManager.cpp: (WebKit::WebProcessManager::getAllWebProcessContexts):
13165        * UIProcess/WebProcessManager.h:
13166        Added a way to enumerate all contexts running in separate processes.
13167
13168        * Shared/WebProcessCreationParameters.cpp:
13169        (WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
13170        (WebKit::WebProcessCreationParameters::encode):
13171        (WebKit::WebProcessCreationParameters::decode):
13172        * Shared/WebProcessCreationParameters.h:
13173        (WebKit::WebContext::ensureWebProcess):
13174        (WebKit::WebContext::setDefaultRequestTimeoutInterval):
13175        * UIProcess/WebContext.h:
13176        * WebProcess/WebProcess.cpp:
13177        (WebKit::WebProcess::initializeWebProcess):
13178        (WebKit::WebProcess::setDefaultRequestTimeoutInterval):
13179        * WebProcess/WebProcess.h:
13180        * WebProcess/WebProcess.messages.in:
13181        Use UI process default timeout interval in separate process contexts, too.
13182
131832011-02-18  Brian Weinstein  <bweinstein@apple.com>
13184
13185        Reviewed by Adam Roben.
13186
13187        WebResourceCacheManager should be responsible for managing the CFURLCache as well
13188        as the WebCore memory cache.
13189        https://bugs.webkit.org/show_bug.cgi?id=54886
13190        Part of <rdar://problem/8971738>
13191
13192        * WebProcess/ResourceCache/WebResourceCacheManager.cpp:
13193        (WebKit::WebResourceCacheManager::getCacheOrigins): Call through to cFURLCacheHostNames, and add
13194            create SecurityOrigin's for them and add them to the set of SecurityOrigins with cache.
13195        (WebKit::WebResourceCacheManager::clearCacheForOrigin): Call through to clear the CFURLCache for
13196            the origin's hostname.
13197        * WebProcess/ResourceCache/WebResourceCacheManager.h:
13198
13199        * WebProcess/ResourceCache/cf: Added.
13200        * WebProcess/ResourceCache/cf/WebResourceCacheManagerCFNet.cpp: Added.
13201        (WebKit::WebResourceCacheManager::cfURLCacheHostNames): Call through to WebKitSystemInterface.
13202        (WebKit::WebResourceCacheManager::clearCFURLCacheForHostNames): Ditto.
13203
13204        * win/WebKit2.vcproj: Added new file.
13205        * WebKit2.xcodeproj/project.pbxproj: Ditto.
13206
132072011-02-21  Adam Roben  <aroben@apple.com>
13208
13209        Move control of the sequence number from DrawingAreaImpl to DrawingAreaProxyImpl
13210
13211        DrawingAreaProxyImpl has some state that, when it changes, causes all operations performed
13212        before that state change to become invalid. When painting, we need to have performed at
13213        least one Update for the most recent state; otherwise, we'll be painting old/incorrect bits
13214        into the view.
13215
13216        Currently, this state consists of a single piece of data: the view's size. Whenever the
13217        state (i.e., size) changes, we tell the web process via the SetSize message, and the web
13218        process lets us know that it has updated to match the new state (i.e., size) via the
13219        DidSetSize message.
13220
13221        When it's time to paint, if we're waiting for the web process to update to match our current
13222        state (i.e., size), we block for a little while hoping to receive a DidSetSize message so
13223        that we can paint up-to-date bits into the window. This can cause us to receive messages
13224        out-of-order; the DidSetSize message will be processed immediately, and any messages that
13225        were sent before the DidSetSize message will be processed later. Since the messages from
13226        before the DidSetSize message correspond to an old state (i.e., size), they are no longer
13227        useful (e.g., they contain bits of the page that are drawn at the wrong size/location), so
13228        we discard them.
13229
13230        The way we identify and discard these messages is by keeping track of a sequence number.
13231        Currently, DrawingAreaImpl sends a monotonically-increasing sequence number to
13232        DrawingAreaProxyImpl with every message. Whenever DrawingAreaProxyImpl receives a DidSetSize
13233        message, it records the sequence number that came along with it. If we then later receive
13234        any messages that have a lower sequence number, we know they correspond to an old state
13235        (i.e., size) and can discard them.
13236
13237        This patch moves control of the sequence number to DrawingAreaProxyImpl.
13238        DrawingAreaProxyImpl now sends a monotonically-increasing sequence number in the SetSize
13239        message. DrawingAreaImpl records this sequence number when it receives the SetSize message,
13240        and sends it back to DrawingAreaProxyImpl in every message. Otherwise the logic is the same
13241        as before.
13242
13243        This should cause no changes in behavior, but will allow DrawingAreaProxyImpl to request a
13244        full backing store update (by incrementing the sequence number) at times other than when the
13245        view's size changes (e.g., after it has thrown away its backing store in order to save
13246        memory).
13247
13248        Fixes <http://webkit.org/b/54907> DrawingAreaProxyImpl should tell DrawingAreaImpl what
13249        sequence number to use
13250
13251        Reviewed by Anders Carlsson.
13252
13253        * UIProcess/DrawingAreaProxyImpl.cpp:
13254        (WebKit::generateSequenceNumber): Moved here from DrawingAreaImpl.cpp.
13255        (WebKit::DrawingAreaProxyImpl::sendSetSize): Changed to pass a new sequence number in the
13256        SetSize message.
13257        (WebKit::DrawingAreaProxyImpl::waitForAndDispatchDidSetSize): Added a FIXME about a
13258        potential improvement.
13259
13260        * WebProcess/WebPage/DrawingArea.h:
13261        (WebKit::DrawingArea::setSize): Updated to match the message's new parameters.
13262
13263        * WebProcess/WebPage/DrawingArea.messages.in: Added a sequenceNumber parameter to SetSize.
13264
13265        * WebProcess/WebPage/DrawingAreaImpl.cpp:
13266        (WebKit::DrawingAreaImpl::DrawingAreaImpl): Initialize m_sequenceNumber.
13267        (WebKit::DrawingAreaImpl::setSize): Record the new sequence number from the UI process.
13268
13269        (WebKit::DrawingAreaImpl::layerHostDidFlushLayers):
13270        (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
13271        (WebKit::DrawingAreaImpl::display):
13272        Send m_sequenceNumber, instead of a new sequence number, back to the UI process.
13273
13274        * WebProcess/WebPage/DrawingAreaImpl.h: Added m_sequenceNumber, updated setSize function to
13275        match the base class.
13276
132772011-02-21  Gavin Barraclough  <barraclough@apple.com>
13278
13279        Reviewed by Sam Weinig.
13280
13281        Bug 54894 - Make inheritance structure described by ClassInfo match C++ class hierarchy.
13282
13283        The ClassInfo objects describe an inheritance hierarchy, with each ClassInfo instance
13284        containing a pointer to its parent class. These links should reflect the inheritance
13285        hierarchy of C++ classes below JSObject. For the large part it does, but in some cases
13286        entries in the C++ hierarchy are skipped over. This presently likely doesn't matter,
13287        since intervening C++ classes may not have ClassInfo - but would be a potential bug
13288        were ClassInfo were to be added.
13289
13290        * WebProcess/Plugins/Netscape/JSNPObject.cpp:
13291
132922011-02-21  Balazs Kelemen  <kbalazs@webkit.org>
13293
13294        Reviewed by Kenneth Rohde Christiansen.
13295
13296        [Qt] Implement WorkQueue::sheduleWorkAfterDelay
13297        https://bugs.webkit.org/show_bug.cgi?id=54878
13298
13299        * Platform/qt/WorkQueueQt.cpp:
13300        (WorkQueue::scheduleWorkAfterDelay):
13301
133022011-02-20  Alejandro G. Castro  <alex@igalia.com>
13303
13304        Reviewed by Martin Robinson.
13305
13306        [GTK] Add WebResourceCacheDataManager to the compilation after r78848
13307        https://bugs.webkit.org/show_bug.cgi?id=54732
13308
13309        Added resource cache manager API to GTK+ compilation after r78848.
13310
13311        * GNUmakefile.am:
13312
133132011-02-20  Sam Weinig  <sam@webkit.org>
13314
13315        Reviewed by Dan Bernstein.
13316
13317        Crash in WebProcess at com.apple.WebCore: WebCore::Page::goToItem + 46
13318        <rdar://problem/8942726>
13319
13320        * WebProcess/WebPage/WebPage.cpp:
13321        (WebKit::WebPage::goForward):
13322        (WebKit::WebPage::goBack):
13323        (WebKit::WebPage::goToBackForwardItem):
13324        Defend agains null HistoryItems.
13325
133262011-02-20  Anders Carlsson  <andersca@apple.com>
13327
13328        Reviewed by Maciej Stachowiak.
13329
13330        Crash when a plug-in requests a javascript: url that destroys the plug-in
13331        https://bugs.webkit.org/show_bug.cgi?id=54837
13332        <rdar://problem/9005475>
13333
13334        * WebProcess/Plugins/PluginProxy.cpp:
13335        (WebKit::PluginProxy::destroy):
13336        Null out m_pluginController.
13337
13338        * WebProcess/Plugins/PluginView.cpp:
13339        (WebKit::PluginView::performJavaScriptURLRequest):
13340        Don't access the frame through m_pluginElement since it will be nulled out
13341        when the plug-in is destroyed.
13342
133432011-02-20  Anders Carlsson  <andersca@apple.com>
13344
13345        Reviewed by Sam Weinig.
13346
13347        Fix another crash when a plug-in is destroyed when evaluating JavaScript
13348        https://bugs.webkit.org/show_bug.cgi?id=54834
13349        <rdar://problem/9005475>
13350
13351        This contains three separate fixes:
13352
13353        - In unprotectPluginFromDestruction we can't just destroy the plug-in once
13354          the count reaches zero, because the plug-in might still have code executing
13355          on the stack. To fix this we use a zero-delay timer to defer destruction
13356          of the plug-in.
13357
13358        - Trying to get the NPObject for the window using NPN_GetValue would return
13359          NPERR_NO_ERROR, even if the returned NPObject was null. Fix this to return
13360          NPERR_GENERIC_ERROR instead.
13361
13362        - Protect the plug-in from destruction anytime an NPAPI call that sends a
13363          synchronous IPC message is made.
13364
13365        * PluginProcess/PluginControllerProxy.cpp:
13366        (WebKit::PluginControllerProxy::PluginControllerProxy):
13367        (WebKit::PluginControllerProxy::destroy):
13368        (WebKit::PluginControllerProxy::unprotectPluginFromDestruction):
13369        * PluginProcess/PluginControllerProxy.h:
13370        * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
13371        (WebKit::PluginDestructionProtector::PluginDestructionProtector):
13372        (WebKit::NPN_GetValue):
13373        (WebKit::NPN_Evaluate):
13374        (WebKit::NPN_GetProperty):
13375        (WebKit::NPN_SetProperty):
13376        (WebKit::NPN_RemoveProperty):
13377        (WebKit::NPN_HasProperty):
13378        (WebKit::NPN_HasMethod):
13379        (WebKit::NPN_Enumerate):
13380        (WebKit::NPN_Construct):
13381        (WebKit::NPN_GetValueForURL):
13382        (WebKit::NPN_SetValueForURL):
13383
133842011-02-19  Sam Weinig  <sam@webkit.org>
13385
13386        Reviewed by Anders Carlsson.
13387
13388        Add phase in addition to momentumPhase to platform wheel events
13389        Part of <rdar://problem/8945362>
13390
13391        Rename existing phase to momentumPhase.
13392
13393        * Shared/WebEvent.h:
13394        (WebKit::WebWheelEvent::momentumPhase):
13395        * Shared/WebEventConversion.cpp:
13396        (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
13397        * Shared/WebWheelEvent.cpp:
13398        (WebKit::WebWheelEvent::WebWheelEvent):
13399        (WebKit::WebWheelEvent::encode):
13400        (WebKit::WebWheelEvent::decode):
13401        * Shared/mac/WebEventFactory.mm:
13402        (WebKit::phaseForEvent):
13403        (WebKit::momentumPhaseForEvent):
13404        (WebKit::WebEventFactory::createWebWheelEvent):
13405
134062011-02-19  Anders Carlsson  <andersca@apple.com>
13407
13408        Reviewed by Dan Bernstein.
13409
13410        Crash when trying to take a snapshot of an uninitialized plug-in
13411        https://bugs.webkit.org/show_bug.cgi?id=54812
13412
13413        * WebProcess/Plugins/PluginView.cpp:
13414        (WebKit::PluginView::notifyWidget):
13415        Don't try to create a snapshot of the plug-in if it hasn't been initialized.
13416
134172011-02-18  Gavin Barraclough  <barraclough@apple.com>
13418
13419        Reviewed by Sam Weinig.
13420
13421        Bug 54786 - Devirtualize JSCell::classInfo()
13422
13423        Instead of making a virtual function call, add a pointer to the ClassInfo
13424        onto Structure.
13425
13426        This removes a virtual function call, and paves the way towards removing all
13427        the createStructure methods, and StructureFlags/AnonymousSlotCount properties
13428        (these should be able to move onto ClassInfo).
13429
13430        Calls to Structure::create must now pass a pointer to the ClassInfo for the
13431        structure. All objects now have a ClassInfo pointer, non-object cell types
13432        still do not.
13433
13434        Changes are most mechanical, involving three steps:
13435            * Remove virtual classInfo() methods.
13436            * Add &s_info parameter to calls to Structure::create.
13437            * Rename ClassInfo static members on classes from 'info' to 's_info',
13438              for consistency.
13439
13440        * WebProcess/Plugins/Netscape/JSNPMethod.cpp:
13441        (WebKit::JSNPMethod::JSNPMethod):
13442        * WebProcess/Plugins/Netscape/JSNPMethod.h:
13443        (WebKit::JSNPMethod::createStructure):
13444        * WebProcess/Plugins/Netscape/JSNPObject.cpp:
13445        (WebKit::JSNPObject::JSNPObject):
13446        * WebProcess/Plugins/Netscape/JSNPObject.h:
13447        (WebKit::JSNPObject::createStructure):
13448
134492011-02-19  Sam Weinig  <sam@webkit.org>
13450
13451        Reviewed by Anders Carlsson.
13452
13453        Rename performLookupAtCurrentMouseLocation to performDictionaryLookupAtCurrentMouseLocation
13454
13455        * UIProcess/API/mac/WKView.mm:
13456        (-[WKView performDictionaryLookupAtCurrentMouseLocation]):
13457        * UIProcess/API/mac/WKViewPrivate.h:
13458
134592011-02-19  Charlie Reis  <creis@chromium.org>
13460
13461        Reviewed by Mihai Parparita.
13462
13463        Ensure loading has stopped in HistoryController::goToItem
13464        https://bugs.webkit.org/show_bug.cgi?id=54517
13465
13466        Add a FrameLoaderClient callback for whether to stop loading before goToItem.
13467
13468        Test: http/tests/navigation/forward-to-fragment-fires-onload.html
13469
13470        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
13471        (WebFrameLoaderClient::shouldStopLoadingForHistoryItem): Added.
13472        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
13473
134742011-02-18  Sam Weinig  <sam@webkit.org>
13475
13476        Reviewed by Adele Peterson.
13477
13478        Real fix for <rdar://problem/9025723> CrashTracer: [USER]
13479        1 crash in WebProcess at com.apple.WebKit2:
13480        WebKit::WebPage::didChangeScrollOffsetForMainFrame + 31
13481
13482        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
13483        (WebKit::WebFrameLoaderClient::didChangeScrollOffset):
13484        Add null check for the FrameView. This function can be called when the
13485        FrameView is being torn down during a transition to a new FrameView.
13486
13487        * WebProcess/WebPage/WebPage.cpp:
13488        (WebKit::WebPage::didChangeScrollOffsetForMainFrame):
13489        Revert last attempt.
13490
134912011-02-18  Anders Carlsson  <andersca@apple.com>
13492
13493        Reviewed by Sam Weinig.
13494
13495        Hang trying to load nytimes.com with Flash installed
13496        <rdar://problem/9018113>
13497
13498        * Platform/CoreIPC/Connection.cpp:
13499        (CoreIPC::Connection::sendSyncMessage):
13500        Call beginWaitForSyncReply() before sending the message. Otherwise, in some cases we could
13501        have gotten back a synchronous request before calling beginWaitForSyncReply(), and then we wouldn't
13502        process it correctly. (Which would lead to the hang).
13503
135042011-02-18  Simon Fraser  <simon.fraser@apple.com>
13505
13506        Reviewed by Kevin Decker.
13507
13508        <rdar://problem/9021296> Some plug-ins are the wrong size after zooming
13509
13510        Use the same frame/bounds adjustment that we use for NSView-based
13511        plugins in WebKit2, which allows plug-ins and their snapshots to
13512        render with the correct size after scaling.
13513
13514        * WebProcess/Plugins/PluginView.cpp:
13515        (WebKit::PluginView::setBoundsSize):
13516        (WebKit::PluginView::viewGeometryDidChange):
13517        (WebKit::PluginView::clipRectInWindowCoordinates):
13518        * WebProcess/Plugins/PluginView.h:
13519
135202011-02-18  Beth Dakin  <bdakin@apple.com>
13521
13522        Rubber-stamped by Adele Peterson.
13523
13524        Fix for <rdar://problem/9025723> CrashTracer: [USER]
13525        1 crash in WebProcess at com.apple.WebKit2:
13526        WebKit::WebPage::didChangeScrollOffsetForMainFrame + 31
13527
13528        Simple null-check.
13529        * WebProcess/WebPage/WebPage.cpp:
13530        (WebKit::WebPage::didChangeScrollOffsetForMainFrame):
13531
135322011-02-18  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
13533
13534        Reviewed by Kenneth Rohde Christiansen.
13535
13536        Tiled backing store area is too big.
13537        Error in area calculcation causes size of backing store
13538        up to 8 times bigger than viewport with default multipliers.
13539        https://bugs.webkit.org/show_bug.cgi?id=54587
13540
13541        * UIProcess/TiledDrawingAreaProxy.cpp:
13542        (WebKit::TiledDrawingAreaProxy::calculateKeepRect):
13543        (WebKit::TiledDrawingAreaProxy::calculateCoverRect):
13544
135452011-02-18  John Sullivan  <sullivan@apple.com>
13546
13547        Reviewed by Maciej Stachowiak.
13548
13549        <rdar://problem/9026169>
13550        https://bugs.webkit.org/show_bug.cgi?id=54780
13551        pendingAPIRequestURL isn't updated for WKPageGoToBackForwardListItem
13552
13553        * UIProcess/WebPageProxy.cpp:
13554        (WebKit::WebPageProxy::goToBackForwardItem):
13555        Update the pending API URL.
13556
135572011-02-18  Anders Carlsson  <andersca@apple.com>
13558
13559        Reviewed by Sam Weinig.
13560
13561        Accelerated content fades in when using a layer backed WKView
13562        <rdar://problem/9021586>
13563
13564        * UIProcess/API/mac/WKView.mm:
13565        (-[WKView _enterAcceleratedCompositingMode:]):
13566        Make a new nested CATransaction and disable animations when adding the layer
13567        hosting subview. This avoids an implicit fade animation that would otherwise occur.
13568
135692011-02-18  Simon Fraser  <simon.fraser@apple.com>
13570
13571        Reviewed by Dan Bernstein.
13572
13573        Plugin snapshot location is wrong for subframes
13574        https://bugs.webkit.org/show_bug.cgi?id=54776
13575
13576        Only change the CTM to the way that the plugin expects it
13577        when painting the plugin, not when drawing the snapshot.
13578        This fixes the snapshot location when painting flattened
13579        frames.
13580
13581        * WebProcess/Plugins/PluginView.cpp:
13582        (WebKit::PluginView::paint):
13583
135842011-02-18  Anders Carlsson  <andersca@apple.com>
13585
13586        Reviewed by Simon Fraser.
13587
13588        Implement NetscapePlugin::pluginComplexTextInputIdentifier
13589        https://bugs.webkit.org/show_bug.cgi?id=54770
13590
13591        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
13592        (WebKit::NetscapePlugin::pluginComplexTextInputIdentifier):
13593
135942011-02-18  Sam Weinig  <sam@webkit.org>
13595
13596        Reviewed by Maciej Stachowiak.
13597
13598        Add the ability to ask the WKPage if the main frame is pinned
13599        to the right or left hand side.
13600        Part of <rdar://problem/9017043>.
13601
13602        * UIProcess/API/C/WKPage.cpp:
13603        (WKPageIsPinnedToLeftSide):
13604        (WKPageIsPinnedToRightSide):
13605        * UIProcess/API/C/WKPage.h:
13606        Add new API calls.
13607
13608        * UIProcess/WebPageProxy.cpp:
13609        (WebKit::WebPageProxy::WebPageProxy):
13610        (WebKit::WebPageProxy::close):
13611        (WebKit::WebPageProxy::processDidCrash):
13612        (WebKit::WebPageProxy::didChangeScrollOffsetPinningForMainFrame):
13613        * UIProcess/WebPageProxy.h:
13614        (WebKit::WebPageProxy::isPinnedToLeftSide):
13615        (WebKit::WebPageProxy::isPinnedToRightSide):
13616        Initialize, reset and update the pinned state.
13617
13618        * UIProcess/WebPageProxy.messages.in:
13619        Add message to update the pinned state.
13620
13621        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
13622        (WebKit::WebFrameLoaderClient::didChangeScrollOffset):
13623        * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
13624        * WebProcess/WebPage/WebPage.cpp:
13625        (WebKit::WebPage::WebPage):
13626        (WebKit::WebPage::didChangeScrollOffsetForMainFrame):
13627        * WebProcess/WebPage/WebPage.h:
13628        Cache the pinned state, and only update the UIProcess when it
13629        changes.
13630
136312011-02-18  Anders Carlsson  <andersca@apple.com>
13632
13633        Reviewed by Simon Fraser.
13634
13635        Fix assertion in SharedMemory::create when trying to snapshot 0x0 plug-in
13636        https://bugs.webkit.org/show_bug.cgi?id=54768
13637
13638        * PluginProcess/PluginControllerProxy.cpp:
13639        (WebKit::PluginControllerProxy::snapshot):
13640        Don't try to create a handle from a null ShareableBitmap.
13641
13642        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
13643        (WebKit::NetscapePlugin::snapshot):
13644        Check for a zero sized plug-in before trying to create a snapshot.
13645
136462011-02-18  Anders Carlsson  <andersca@apple.com>
13647
13648        Reviewed by Simon Fraser.
13649
13650        WKView flashes when entering/exiting compositing mode
13651        https://bugs.webkit.org/show_bug.cgi?id=54695
13652        <rdar://problem/9011554>
13653
13654        * UIProcess/API/mac/WKView.mm:
13655        (-[WKView _exitAcceleratedCompositingMode]):
13656        Remove the layer hosting view before clearing out its layer, otherwise we can get
13657        white flashes when exiting accelerated compositing mode.
13658
13659        * WebProcess/WebPage/DrawingAreaImpl.cpp:
13660        When entering accelerated compositing mode, we want to defer sending the message
13661        until we've actually committed the layer tree and pushed all changes over to the
13662        UI process.
13663
13664        (WebKit::DrawingAreaImpl::layerHostDidFlushLayers):
13665        Tell the layer tree host to force a repaint. This will ensure that all layer tree
13666        changes are pushed over to the UI process. When that is done, send the new layer tree
13667        context over to the UI process.
13668
13669        (WebKit::DrawingAreaImpl::setRootCompositingLayer):
13670        When exiting compositing mode in response to a didSetSize, we want to exit accelerated
13671        compositing mode right away to avoid flashes. This is safe since we've laid out the page
13672        already so we won't end up reentering setRootCompositingLayer.
13673
13674        (WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
13675        Tell the layer tree host to notify us when the next layer tree flush happened, so we can
13676        let the UI process know. If we're entering accelerated compositing mode in response to a
13677        SetSize message, the new layer tree context will be passed in the DidSetSize message.
13678
13679        * WebProcess/WebPage/DrawingAreaImpl.h:
13680        Add layerHostDidFlushLayers.
13681
13682        * WebProcess/WebPage/LayerTreeHost.h:
13683        Add setShouldNotifyAfterNextScheduledLayerFlush.
13684
13685        * WebProcess/WebPage/mac/LayerTreeHostMac.h:
13686        Add a m_notifyAfterScheduledLayerFlush flag.
13687
13688        * WebProcess/WebPage/mac/LayerTreeHostMac.mm:
13689        (WebKit::LayerTreeHostMac::LayerTreeHostMac):
13690        Initialize m_notifyAfterScheduledLayerFlush to false.
13691
13692        (WebKit::LayerTreeHostMac::setShouldNotifyAfterNextScheduledLayerFlush):
13693        Set m_notifyAfterScheduledLayerFlush to true.
13694
13695        (WebKit::LayerTreeHostMac::flushPendingLayerChangesRunLoopObserverCallback):
13696        If m_notifyAfterScheduledLayerFlush is true, call DrawingAreaImpl::layerHostDidFlushLayers.
13697
136982011-02-18  Alexey Proskuryakov  <ap@apple.com>
13699
13700        Reviewed by Adele Peterson.
13701
13702        REGRESSION (WebKit2): Wrong frame printed on tivofaq.com
13703        https://bugs.webkit.org/show_bug.cgi?id=54677
13704        <rdar://problem/8994133>
13705
13706        * WebProcess/WebCoreSupport/WebChromeClient.cpp:
13707        (WebKit::area): Use visible frame bounds.
13708        (WebKit::findLargestFrameInFrameSet): Added a comment explaining what we're up to here.
13709        WebKit2 shouldn't be making policy decisions for the client, but it gets dangerously close
13710        to that. We used to expose the same as WK1 API though.
13711
137122011-02-18  Balazs Kelemen  <kbalazs@webkit.org>
13713
13714        Unreviwed.
13715
13716        Remove CleanupHandler since we do not use it anymore.
13717
13718        * Shared/qt/CleanupHandler.cpp: Removed.
13719        * Shared/qt/CleanupHandler.h: Removed.
13720
137212011-02-18  Alejandro G. Castro  <alex@igalia.com>
13722
13723        Fix GTK build by fixing signature of platformPaint(), required after r78956.
13724
13725        * WebProcess/Plugins/Netscape/gtk/NetscapePluginGtk.cpp:
13726        (WebKit::NetscapePlugin::platformPaint):
13727
137282011-02-17  Dan Bernstein  <mitz@apple.com>
13729
13730        LLVM Compiler build fix.
13731
13732        * UIProcess/WebResourceCacheManagerProxy.h:
13733        * WebProcess/ResourceCache/WebResourceCacheManager.h:
13734
137352011-02-17  Simon Fraser  <simon.fraser@apple.com>
13736
13737        Fix Windows and Qt builds by fixing signature of platformPaint().
13738
13739        * WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:
13740        (WebKit::NetscapePlugin::platformPaint):
13741        * WebProcess/Plugins/Netscape/win/NetscapePluginWin.cpp:
13742        (WebKit::NetscapePlugin::platformPaint):
13743
137442011-02-17  Simon Fraser  <simon.fraser@apple.com>
13745
13746        Reviewed by Sam Weinig.
13747
13748        WebKit2 snapshots don't show plug-ins
13749        https://bugs.webkit.org/show_bug.cgi?id=54716
13750
13751        Fix WebKit2 plug-ins to do a software paint for
13752        snapshotting.
13753
13754        * PluginProcess/PluginControllerProxy.h:
13755        * PluginProcess/PluginControllerProxy.cpp:
13756        (WebKit::PluginControllerProxy::snapshot): Respond to the snapshot
13757        message by getting a sharable bitmap from the plugin, and returning
13758        a handle to it in the reply.
13759
13760        * PluginProcess/PluginControllerProxy.messages.in: Add the snapshot
13761        message.
13762
13763        * Shared/Plugins/PluginQuirks.h:
13764        * Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
13765        (WebKit::NetscapePluginModule::determineQuirks): Add a quirk for the
13766        ability to be snapshotted, which we only set for Flash at the moment.
13767
13768        * WebProcess/Plugins/Netscape/NetscapePlugin.h:
13769        * WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
13770        (WebKit::NetscapePlugin::snapshot): Create a shareable bitmap, and
13771        paint into it.
13772        (WebKit::NetscapePlugin::supportsSnapshotting): Test the quirk.
13773
13774        * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
13775        (WebKit::NetscapePlugin::platformPaint): Allow the paint to happen
13776        if we're snapshotting, even when using the CoreAnimation drawing
13777        model.
13778
13779        * WebProcess/Plugins/Plugin.h: New snapshot method.
13780
13781        * WebProcess/Plugins/PluginProxy.h:
13782        * WebProcess/Plugins/PluginProxy.cpp:
13783        (WebKit::PluginProxy::snapshot): Send a sync message to the plugin process,
13784        asking for a snapshot in a shareble bitmap.
13785
13786        * WebProcess/Plugins/PluginView.h:
13787        * WebProcess/Plugins/PluginView.cpp:
13788        (WebKit::PluginView::paint): Use the snapshot if we have one, to avoid
13789        calling into the plugin to draw, which may run script.
13790
13791        (WebKit::PluginView::notifyWidget): Generate the snapshot before
13792        a flattening paint, and throw it away after.
13793
137942011-02-17  Jessie Berlin  <jberlin@apple.com>
13795
13796        Reviewed by Adam Roben.
13797
13798        WebKit2: The CFNetwork Cache should be shared between the UI Process and the Web Process on
13799        Windows.
13800        https://bugs.webkit.org/show_bug.cgi?id=54683
13801
13802        * Shared/WebProcessCreationParameters.cpp:
13803        (WebKit::WebProcessCreationParameters::encode):
13804        (WebKit::WebProcessCreationParameters::decode):
13805        * Shared/WebProcessCreationParameters.h:
13806
13807        * UIProcess/win/WebContextWin.cpp:
13808        (WebKit::WebContext::platformInitializeWebProcess):
13809        Make sure to remove the ending slash, as CFNetwork does not recognize the directory with
13810        that slash.
13811
13812        * WebProcess/win/WebProcessWin.cpp:
13813        (WebKit::WebProcess::platformInitializeWebProcess):
13814        Create a cache using the path, disk capacity, and memory capacity and set it as default.
13815
138162011-02-17  Anders Carlsson  <andersca@apple.com>
13817
13818        Reviewed by Sam Weinig.
13819
13820        Web and/or plug-in process crashes when NPN_Evaluate destroys the plug-in
13821        https://bugs.webkit.org/show_bug.cgi?id=54686
13822        <rdar://problem/9013384>
13823
13824        This patch fixes two bugs with a plug-in calling NPN_Evaluate to destroy itself:
13825
13826        - The PluginProxy object would be destroyed in the middle of PluginProxy::evaluate.
13827          This would cause the web process to crash.
13828
13829        - The PluginControllerProxy would call NPP_Destroy while the plug-in was busy running
13830          code. This would cause the plug-in process to crash.
13831
13832        To fix this, we add protectPluginFromDestruction/unprotectPluginFromDestruction to
13833        PluginControllerProxy and use it to defer calling destroy() in the plug-in process,
13834        and defer actually destroying the plug-in in the web process.
13835
13836        https://bugs.webkit.org/show_bug.cgi?id=54171 tracks adding a test for this.
13837
13838        * PluginProcess/PluginControllerProxy.cpp:
13839        (WebKit::PluginControllerProxy::PluginControllerProxy):
13840        (WebKit::PluginControllerProxy::destroy):
13841        (WebKit::PluginControllerProxy::evaluate):
13842        (WebKit::PluginControllerProxy::protectPluginFromDestruction):
13843        (WebKit::PluginControllerProxy::unprotectPluginFromDestruction):
13844        * PluginProcess/PluginControllerProxy.h:
13845        (WebKit::PluginControllerProxy::asPluginController):
13846        * PluginProcess/WebProcessConnection.cpp:
13847        (WebKit::WebProcessConnection::destroyPluginControllerProxy):
13848        (WebKit::WebProcessConnection::didReceiveMessage):
13849        (WebKit::WebProcessConnection::didReceiveSyncMessage):
13850        * PluginProcess/WebProcessConnection.h:
13851        (WebKit::WebProcessConnection::connection):
13852        * WebProcess/Plugins/PluginController.h:
13853        (WebKit::PluginController::PluginDestructionProtector::PluginDestructionProtector):
13854        (WebKit::PluginController::PluginDestructionProtector::~PluginDestructionProtector):
13855        * WebProcess/Plugins/PluginProxy.cpp:
13856        (WebKit::PluginProxy::evaluate):
13857        * WebProcess/Plugins/PluginView.cpp:
13858        (WebKit::PluginView::protectPluginFromDestruction):
13859        (WebKit::PluginView::unprotectPluginFromDestruction):
13860        * WebProcess/Plugins/PluginView.h:
13861
138622011-02-17  Sam Weinig  <sam@webkit.org>
13863
13864        Build fix.
13865
13866        * WebProcess/WebPage/mac/WebPageMac.mm:
13867        (WebKit::WebPage::performDictionaryLookupAtLocation):
13868
138692011-02-17  Sam Weinig  <sam@webkit.org>
13870
13871        Reviewed by Maciej Stachowiak.
13872
13873        WebKit2: Support Dictionary popup
13874        <rdar://problem/7660670>
13875
13876        * Shared/TextInfo.cpp: Added.
13877        (WebKit::TextInfo::encode):
13878        (WebKit::TextInfo::decode):
13879        * Shared/TextInfo.h: Added.
13880        (WebKit::TextInfo::TextInfo):
13881        Add class to represent the location and style of a run of text.
13882
13883        * UIProcess/PageClient.h:
13884        * UIProcess/API/mac/PageClientImpl.h:
13885        * UIProcess/API/mac/PageClientImpl.mm:
13886        (WebKit::PageClientImpl::didPerformDictionaryLookup):
13887        Invoke the dictionary popup.
13888
13889        * UIProcess/API/mac/WKView.mm:
13890        (-[WKView performLookupAtCurrentMouseLocation]):
13891        Tell the WebProcess to get get the text under the mouse and cause
13892        the dictionary popup to appear.
13893
13894        * UIProcess/API/mac/WKViewPrivate.h:
13895        Add performLookupAtCurrentMouseLocation.
13896
13897        * UIProcess/WebPageProxy.cpp:
13898        (WebKit::WebPageProxy::performDictionaryLookupAtLocation):
13899        (WebKit::WebPageProxy::didPerformDictionaryLookup):
13900        * UIProcess/WebPageProxy.h:
13901        * UIProcess/WebPageProxy.messages.in:
13902        * WebProcess/WebPage/WebPage.cpp:
13903        * WebProcess/WebPage/WebPage.h:
13904        * WebProcess/WebPage/WebPage.messages.in:
13905        Pipe messages through.
13906
13907        * WebProcess/WebPage/mac/WebPageMac.mm:
13908        (WebKit::characterRangeAtPoint): Fix to return PassRefPtr
13909        and not potentially stale pointers.
13910
13911        (WebKit::WebPage::characterIndexForPoint):
13912        Change to use a RefPtr.
13913
13914        (WebKit::WebPage::performDictionaryLookupAtLocation):
13915        Add simple heuristic to get the word at the current point (or the current selection
13916        if it is at that point) and grab the style of the word to send the UIProcess.
13917
13918        * WebKit2.pro:
13919        * WebKit2.xcodeproj/project.pbxproj:
13920        * win/WebKit2.vcproj:
13921        Add new files.
13922
139232011-02-17  Brian Weinstein  <bweinstein@apple.com>
13924
13925        Qt build fix.
13926
13927        * WebKit2.pro: Update after renaming of MemoryCache to ResourceCache.
13928
139292011-02-17  Brian Weinstein  <bweinstein@apple.com>
13930
13931        Mac build fix.
13932
13933        * WebKit2.xcodeproj/project.pbxproj: Use relative to group instead of absolute paths. Not everyone's home
13934            directory is /Users/brian_weinstein.
13935
139362011-02-16  Brian Weinstein  <bweinstein@apple.com>
13937
13938        Reviewed by Brady Eidson.
13939
13940        WebKit2: Need a way to manage the WebCore Cache
13941        https://bugs.webkit.org/show_bug.cgi?id=54501
13942
13943        Implement a WebKit2 API to manage the WebCore memory cache. This API exposes three functions:
13944
13945        1) A method to get a list of all security origins that have entries in the WebCore memory cache.
13946        2) A method to remove all entries in the WebCore memory cache from a SecurityOrigin.
13947        3) A method to remove all entries from the WebCore memory cache.
13948
13949        * Platform/CoreIPC/MessageID.h: Add two new MessageClasses.
13950        * Shared/API/c/WKBase.h:
13951        * Shared/APIObject.h: Add a CacheManager type.
13952        * Shared/WebSecurityOrigin.h: Typedef WKCacheManagerRef.
13953        (WebKit::WebSecurityOrigin::createFromString): Creates a WebCore::SecurityOrigin using
13954            SecurityOrigin::createFromString.
13955        (WebKit::WebSecurityOrigin::toString): Calls through to SecurityOrigin::toString.
13956        * UIProcess/API/C/WKAPICast.h:
13957
13958        * UIProcess/API/C/WKCacheManager.cpp: Added.
13959        (WKCacheManagerGetTypeID): Returns the WebResourceCacheManagerProxy type.
13960        (WKCacheManagerGetCacheOrigins): Calls through to WebResourceCacheManagerProxy::getCacheOrigins.
13961        (callGetCacheOriginsBlockBlockAndDispose):
13962        (WKCacheManagerGetCacheOrigins_b):
13963        (WKCacheManagerDeleteCacheForOrigin): Calls through to WebResourceCacheManagerProxy::deleteCacheForOrigin.
13964        (WKCacheManagerDeleteAllCache): Calls through to WebResourceCacheManagerProxy::deleteAllCache.
13965        * UIProcess/API/C/WKCacheManager.h: Added.
13966
13967        * UIProcess/API/C/WKContext.cpp:
13968        (WKContextGetCacheManager): Calls to get the WebResourceCacheManagerProxy.
13969        * UIProcess/API/C/WKContext.h:
13970
13971        * UIProcess/WebResourceCacheManagerProxy.cpp: Added.
13972        (WebKit::WebResourceCacheManagerProxy::create): Calls through to the constructor.
13973        (WebKit::WebResourceCacheManagerProxy::WebResourceCacheManagerProxy): Initialize the m_webContext variable.
13974        (WebKit::WebResourceCacheManagerProxy::~WebResourceCacheManagerProxy):
13975        (WebKit::WebResourceCacheManagerProxy::invalidate): Invalidate the callback map.
13976        (WebKit::WebResourceCacheManagerProxy::getCacheOrigins): Call through to the web process to get the cache
13977            origins.
13978        (WebKit::WebResourceCacheManagerProxy::didGetCacheOrigins): Call the callback.
13979        (WebKit::WebResourceCacheManagerProxy::deleteCacheForOrigin): Call through to the web process to delete cache
13980            for the given origin.
13981        (WebKit::WebResourceCacheManagerProxy::deleteAllCache): Call through to the web process to delete all of the cache.
13982        * UIProcess/WebResourceCacheManagerProxy.h: Added.
13983        (WebKit::WebResourceCacheManagerProxy::clearContext):
13984        (WebKit::WebResourceCacheManagerProxy::type):
13985        * UIProcess/WebResourceCacheManagerProxy.messages.in: Added.
13986
13987        * UIProcess/WebContext.cpp:
13988        (WebKit::WebContext::WebContext): Initialize new member variable.
13989        (WebKit::WebContext::~WebContext):  Invalidates new member variable.
13990        (WebKit::WebContext::didReceiveMessage): Passes cache messages to the cache manager.
13991        * UIProcess/WebContext.h:
13992        (WebKit::WebContext::cacheManagerProxy):
13993        * UIProcess/WebProcessProxy.cpp:
13994        (WebKit::WebProcessProxy::didReceiveMessage): Add a new message class.
13995
13996        * WebProcess/ResourceCache/WebResourceCacheManager.cpp: Added.
13997        (WebKit::WebResourceCacheManager::shared):
13998        (WebKit::WebResourceCacheManager::WebResourceCacheManager):
13999        (WebKit::WebResourceCacheManager::~WebResourceCacheManager):
14000        (WebKit::WebResourceCacheManager::didReceiveMessage): Calls through to didReceiveWebResourceCacheManagerMessage.
14001        (WebKit::WebResourceCacheManager::getCacheOrigins): Gets a list of origins with cache entries from the memory
14002            cache, and puts them into a vector to send to the UI process.
14003        (WebKit::WebResourceCacheManager::deleteCacheForOrigin): Calls through to ResourceCache to delete all cache entries
14004            from a given origin.
14005        (WebKit::WebResourceCacheManager::deleteAllCache):
14006        * WebProcess/ResourceCache/WebResourceCacheManager.h: Added.
14007        * WebProcess/ResourceCache/WebResourceCacheManager.messages.in: Added.
14008
14009        * WebProcess/WebProcess.cpp:
14010        (WebKit::WebProcess::didReceiveMessage):
14011        (WebKit::WebProcess::clearResourceCaches): Tell the memory cache to evict its resources. This was done on WebKit1,
14012            but not WebKit2.
14013        * WebProcess/WebProcess.h:
14014
14015        * WebKit2.xcodeproj/project.pbxproj: Added new files.
14016        * win/WebKit2.vcproj: Ditto.
14017        * win/WebKit2Common.vsprops: Added new include directory.
14018        * win/WebKit2Generated.make: Added new header.
14019
140202011-02-16  David Hyatt  <hyatt@apple.com>
14021
14022        Reviewed by Dan Bernstein.
14023
14024        https://bugs.webkit.org/show_bug.cgi?id=54244
14025
14026        Convert the line box tree to floating point and eliminate font rounding hacks.  This patch removes all of the rounding
14027        hacks from the Font code and makes sure all Font APIs involving width measurement and width offsets use floats.
14028
14029        The line box tree's x, y and logicalWidth members have all been converted to floats and all of the line box APIs have
14030        been changed as well.
14031
14032        In terms of pixel adjustments, overflow is using an enclosing model (so it will be enclosingIntRect of a line box's x/y/width/height).
14033
14034        Background and border painting is using a rounding model, so borders and backgrounds will round to the nearest pixel when painting.
14035
14036        Replaced elements still snap to integer positions on lines, and they use a rounding model as well, although their underlying line boxes
14037        still have a precise floating point position.
14038
14039        Justification will now allow subpixel positioning to occur as well.  Platforms that don't support subpixel positioning should already
14040        be rounding justification spacing in their font code.
14041
14042        Many layout test results change on Mac, since rounding hacks were used there and are now gone.
14043
14044        * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
14045        (WebKit::WebPopupMenu::setUpPlatformData):
14046
140472011-02-10  Luiz Agostini  <luiz.agostini@openbossa.org>
14048
14049        Reviewed by Adam Roben.
14050
14051        HTML5 <details> and <summary>: localized text
14052        https://bugs.webkit.org/show_bug.cgi?id=54260
14053
14054        The method defaultDetailsSummaryText was added to LocalizationStrategy class. It is used to
14055        provide the default label to be used by a <details> tag that has no <summary> child.
14056
14057        * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
14058        (WebKit::WebPlatformStrategies::defaultDetailsSummaryText):
14059        * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
14060
140612011-02-17  Adam Roben  <aroben@apple.com>
14062
14063        Make sure layout is up-to-date before rendering the layer tree in DrawingAreaImpl
14064
14065        Fixes <http://webkit.org/b/54646> <rdar://problem/9016889> Assertion failure in
14066        FrameView::paintContents when calling WKPageForceRepaint on a page that uses accelerated
14067        compositing
14068
14069        Reviewed by Anders Carlsson.
14070
14071        * WebProcess/WebPage/DrawingAreaImpl.cpp:
14072        (WebKit::DrawingAreaImpl::forceRepaint): Lay out before we do anything else.
14073
140742011-02-17  Alejandro G. Castro  <alex@igalia.com>
14075
14076        Reviewed by Martin Robinson.
14077
14078        [GTK] Add WKPluginSiteDataManager.cpp compilation after r78647
14079        https://bugs.webkit.org/show_bug.cgi?id=54564
14080
14081        * GNUmakefile.am: Added files to compilation.
14082        * Shared/Plugins/Netscape/NetscapePluginModule.h: used
14083        npruntime_internal.h in the include to avoid problems with X
14084        types.
14085        * WebProcess/WebProcess.cpp:
14086        (WebKit::WebProcess::setAlwaysUsesComplexTextCodePath): fixed
14087        ambiguous reference to Font caused by the X headers required by
14088        the plugins.
14089
140902011-02-16  Matthew Delaney  <mdelaney@apple.com>
14091
14092        Reviewed by Simon Fraser.
14093
14094        Allow acceleratesDrawing for WebKit2
14095        https://bugs.webkit.org/show_bug.cgi?id=54511
14096
14097        Plumb through preference for accelerated drawing.
14098
14099        If accelerated drawing is enabled, keep the DrawingAreaImpl in
14100        accelerated compositing mode.
14101
14102        * Shared/WebPreferencesStore.h:
14103        * UIProcess/API/C/WKPreferences.cpp:
14104        (WKPreferencesSetAcceleratedDrawingEnabled):
14105        (WKPreferencesGetAcceleratedDrawingEnabled):
14106        * UIProcess/API/C/WKPreferencesPrivate.h:
14107        * WebProcess/WebPage/DrawingAreaImpl.cpp:
14108        (WebKit::DrawingAreaImpl::DrawingAreaImpl):
14109        (WebKit::DrawingAreaImpl::setRootCompositingLayer):
14110        (WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode):
14111        * WebProcess/WebPage/DrawingAreaImpl.h:
14112        * WebProcess/WebPage/WebPage.cpp:
14113        (WebKit::WebPage::updatePreferences):
14114
141152011-02-16  Yael Aharon  <yael.aharon@nokia.com>
14116
14117        Reviewed by Andreas Kling.
14118
14119        [Qt] White screen is displayed when tiled backing store is enabled in MiniBrowser.
14120        https://bugs.webkit.org/show_bug.cgi?id=54583
14121
14122        Make sure to invalidate all the tiles, including the last one.
14123
14124        * UIProcess/TiledDrawingAreaProxy.cpp:
14125        (WebKit::TiledDrawingAreaProxy::invalidate):
14126
141272011-02-16  Yael Aharon  <yael.aharon@nokia.com>
14128
14129        Reviewed by Andreas Kling.
14130
14131        [Qt] Tiles are not created for webkit2 after r77286.
14132        https://bugs.webkit.org/show_bug.cgi?id=54577
14133
14134        When using the default tile size of 1024x1024, only one tile is created.
14135        Make sure to create this tile by undoing what seems to be a typo in r77286.
14136
14137        * UIProcess/TiledDrawingAreaProxy.cpp:
14138        (WebKit::TiledDrawingAreaProxy::paint):
14139        (WebKit::TiledDrawingAreaProxy::createTiles):
14140
14141== Rolled over to ChangeLog-2011-02-16 ==
14142