Make use of CG rounded-rect primitives
[WebKit-https.git] / Source / WebKit2 / ChangeLog
1 2012-02-29  Tim Horton  <timothy_horton@apple.com>
2
3         Make use of CG rounded-rect primitives
4         https://bugs.webkit.org/show_bug.cgi?id=79932
5         <rdar://problem/9274953>
6
7         Reviewed by Simon Fraser.
8
9         Add wkCGPathAddRoundedRect.
10
11         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
12         (InitWebCoreSystemInterface):
13
14 2012-02-29  Andy Estes  <aestes@apple.com>
15
16         CFURLDownloadScheduleWithCurrentMessageQueue only exists on Windows
17         https://bugs.webkit.org/show_bug.cgi?id=79936
18
19         Reviewed by Brady Eidson.
20
21         CFURLDownloadScheduleWithCurrentMessageQueue only exists on Windows
22         platforms. Non-Windows platforms that use CFNetwork-based downloads
23         should omit this call.
24
25         * WebProcess/Downloads/cfnet/DownloadCFNet.cpp:
26         (WebKit::Download::start):
27
28 2012-02-29  Rafael Brandao  <rafael.lobo@openbossa.org>
29
30         [Qt][WK2] We should not add NetscapeBrowserFuncs.cpp as header
31         https://bugs.webkit.org/show_bug.cgi?id=79847
32
33         Reviewed by Alexey Proskuryakov.
34
35         * Target.pri: Fix typo, so we can add ".h" file instead.
36
37 2012-02-29  Sam Weinig  <sam@webkit.org>
38
39         When invoking Lookup while zoomed in, the highlighted word renders out of line
40         <rdar://problem/10812527>
41
42         Reviewed by Simon Fraser.
43
44         * WebProcess/WebPage/mac/WebPageMac.mm:
45         (WebKit::WebPage::performDictionaryLookupForRange):
46         Make sure to scale the ascent when determining the origin for the overlay.
47
48 2012-02-29  Carlos Garcia Campos  <cgarcia@igalia.com>
49
50         [GTK] Use text or page zoom factor in WebKitWebView depending on zoom-text-only
51         https://bugs.webkit.org/show_bug.cgi?id=75252
52
53         Reviewed by Gustavo Noronha Silva.
54
55         * UIProcess/API/gtk/WebKitWebView.cpp:
56         (zoomTextOnlyChanged): Update text/page zoom factor when
57         zoom-text-only setting changes.
58         (webkitWebViewSetSettings): Helper function to set the settings
59         object for the web view, initializing the settings for the page
60         and connecting to notify::zoom-text-only signal.
61         (webkitWebViewConstructed): Use webkitWebViewSetSettings().
62         (webkit_web_view_set_settings): Use webkitWebViewSetSettings() and
63         disconnect from the notify::zoom-text-only signal of the previous
64         settings object.
65         (webkit_web_view_set_zoom_level): Set text/page zoom factor
66         depending on WebKitSettings:zoom-text-only property.
67         (webkit_web_view_get_zoom_level): Get text/page zoom factor
68         depending on WebKitSettings:zoom-text-only property.
69         * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
70         (testWebViewZoomLevel):
71
72 2012-02-29  Carlos Garcia Campos  <cgarcia@igalia.com>
73
74         [GTK] Add zoom-text-only setting to WebKit2 GTK+ API
75         https://bugs.webkit.org/show_bug.cgi?id=75249
76
77         Reviewed by Gustavo Noronha Silva.
78
79         To set whether zoom level of web view should affect only the text
80         or all page contents. It's disabled by default.
81
82         * UIProcess/API/gtk/WebKitSettings.cpp:
83         (webKitSettingsSetProperty):
84         (webKitSettingsGetProperty):
85         (webkit_settings_class_init): Add WebKitSettings:zoom-text-only
86         property.
87         (webkit_settings_set_zoom_text_only): Set
88         WebKitSettings:zoom-text-only.
89         (webkit_settings_get_zoom_text_only): Get
90         WebKitSettings:zoom-text-only.
91         * UIProcess/API/gtk/WebKitSettings.h:
92         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new
93         symbols.
94         * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
95         (testWebKitSettings):
96
97 2012-02-29  Sergio Villar Senin  <svillar@igalia.com>
98
99         DidFindString should be emitted even if FindOptionsShowOverlay is not enabled
100         https://bugs.webkit.org/show_bug.cgi?id=76522
101
102         Reviewed by Darin Adler.
103
104         DidFindString message should be issued always even if neither
105         FindOptionsShowOverlay or FindOptionsShowHighlight are
106         provided. The difference is that if any of those flags are present
107         the find operation will look for all the appearances of the text
108         in the web view, otherwise it will just look and report the next
109         occurrence.
110
111         This patch removes the temporary workaround added in r109222 to
112         the WebKitFindController unit tests.
113
114         * UIProcess/API/gtk/tests/TestWebKitFindController.cpp:
115         * WebProcess/WebPage/FindController.cpp:
116         (WebKit::FindController::findString):
117
118 2012-01-19  Sergio Villar Senin  <svillar@igalia.com>
119
120         [GTK] [WK2] Add Find API
121         https://bugs.webkit.org/show_bug.cgi?id=76070
122
123         Reviewed by Martin Robinson.
124
125         This patch adds a new public find API for the Gtk+ WK2 port. It
126         defines a new object called WebKitFindController owned by each
127         WebKitWebView. Clients will use this new object to search strings
128         in the WebKitWebView.
129
130         Changes include also documentation and unit tests for the new
131         public API.
132
133         * GNUmakefile.am:
134         * UIProcess/API/gtk/WebKitDefines.h:
135         * UIProcess/API/gtk/WebKitFindController.cpp: Added.
136         (didFindString): implementation of the WKPage Find interface.
137         (didFailToFindString): Ditto.
138         (didCountStringMatches): Ditto.
139         (webkit_find_controller_init):
140         (getWKPageFromWebKitWebView):
141         (webkitFindControllerConstructed):
142         (webkitFindControllerGetProperty):
143         (webkitFindControllerSetProperty):
144         (webkitFindControllerFinalize):
145         (webkit_find_controller_class_init):
146         (webkit_find_controller_get_search_text):
147         (webkit_find_controller_get_options):
148         (webkit_find_controller_get_max_match_count):
149         (webkit_find_controller_get_web_view):
150         (webKitFindControllerPerform):
151         (webKitFindControllerSetSearchData):
152         (webkit_find_controller_search): asynchronously looks for the
153         search string in the WebKitWebView.
154         (webkit_find_controller_search_finish): unhighlights text matches.
155         (webkit_find_controller_search_next):
156         (webkit_find_controller_search_previous):
157         (webkit_find_controller_count_matches): asynchronously counts the
158         number of matches of the search string in the WebKitWebView.
159         * UIProcess/API/gtk/WebKitFindController.h: Added.
160         * UIProcess/API/gtk/WebKitPrivate.h:
161         * UIProcess/API/gtk/WebKitWebView.cpp:
162         (webkit_web_view_get_find_controller): returns the
163         WebKitFindController instance owned by the WebKitWebView.
164         * UIProcess/API/gtk/WebKitWebView.h:
165         * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
166         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
167         * UIProcess/API/gtk/docs/webkit2gtk.types:
168         * UIProcess/API/gtk/tests/GNUmakefile.am:
169         * UIProcess/API/gtk/tests/TestWebKitFindController.cpp: Added.
170         (testFindControllerTextFound):
171         (testFindControllerTextNotFound):
172         (testFindControllerMatchCount):
173         (testFindControllerMaxMatchCount):
174         (testFindControllerNext):
175         (testFindControllerPrevious):
176         (testFindControllerCountedMatches):
177         (testFindControllerOptions):
178         (testFindControllerInstance):
179         (testFindControllerGetters):
180         (testFindControllerHide):
181         (beforeAll):
182         (afterAll):
183         * UIProcess/API/gtk/webkit2.h:
184
185 2012-02-28  Simon Fraser  <simon.fraser@apple.com>
186
187         Update WebKitSystemInterface.
188
189         Reviewed by Sam Weinig.
190
191         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
192         (InitWebCoreSystemInterface):
193
194 2012-02-28  Hugo Parente Lima  <hugo.lima@openbossa.org>
195
196         All mouse events after a right click are ignored when they came from WebkitTestRunner
197         https://bugs.webkit.org/show_bug.cgi?id=77350
198
199         Reviewed by Chang Shu.
200
201         Never ignore mouse events when using sync events, even if the context menu is being
202         show but the Ui did replied the ShowContextMenu event with a ContextMenuHidden.
203
204         * WebProcess/WebPage/WebPage.cpp:
205         (WebKit::WebPage::mouseEventSyncForTesting):
206
207 2012-02-28  Alexey Proskuryakov  <ap@apple.com>
208
209         More build fix.
210
211         * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm: Check for build platform
212         properly.
213
214 2012-02-28  Alexey Proskuryakov  <ap@apple.com>
215
216         Build fix.
217
218         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::NPN_GetValue):
219         Check for build platform properly.
220
221 2012-02-28  Enrica Casucci  <enrica@apple.com>
222
223         More Pasteboard code cleanup.
224         https://bugs.webkit.org/show_bug.cgi?id=79816
225
226         Removing the last references to NSPasteboard.
227         
228         Reviewed by Alexey Proskuryakov.
229
230         * WebProcess/WebCoreSupport/WebEditorClient.h:
231         * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
232         (WebKit::WebEditorClient::setInsertionPasteboard):
233
234 2012-02-28  Alexey Proskuryakov  <ap@apple.com>
235
236         [Mac] Add an experimental SPI for plug-ins to enter sandbox
237         https://bugs.webkit.org/show_bug.cgi?id=79709
238
239         Reviewed by Anders Carlsson.
240
241         * PluginProcess/PluginProcess.h: (WebKit::PluginProcess::pluginPath): Exposed plugin path.
242
243         * PluginProcess/mac/com.apple.WebKit.PluginProcess.sb: Added.
244
245         * WebKit2.xcodeproj/project.pbxproj: Added new files.
246
247         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: (WebKit::NPN_GetValue): Exposed
248         a function to access sandboxing functions when available.
249
250         * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.h: Added.
251         * WebProcess/Plugins/Netscape/mac/NetscapeSandboxFunctions.mm: Added.
252
253 2012-02-28  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
254
255         [Qt] Allow read/write to the WebView.url property
256         https://bugs.webkit.org/show_bug.cgi?id=77554
257
258         Reviewed by Tor Arne Vestbø.
259
260         Change QML API WebView.url to read/write to reflect either the url requested by the user.
261         Also removed WebView.load(url). Defers setting url (loading page) until onComponentComplete is triggered. 
262         Fixed c++ and qml tests to reflect the new API.
263
264         * Target.pri:
265         * UIProcess/API/qt/qquickwebview.cpp:
266         (QQuickWebViewPrivate::QQuickWebViewPrivate):
267         (QQuickWebViewPrivate::onComponentComplete):
268         (QQuickWebView::setUrl):
269         * UIProcess/API/qt/qquickwebview_p_p.h:
270         (QQuickWebViewPrivate):
271         * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
272         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_itemSelector.qml:
273         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_linkHovered.qml:
274         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_messaging.qml:
275         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_navigationRequested.qml:
276         * UIProcess/API/qt/tests/qmltests/WebView/tst_applicationScheme.qml:
277         * UIProcess/API/qt/tests/qmltests/WebView/tst_download.qml:
278         * UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml:
279         * UIProcess/API/qt/tests/qmltests/WebView/tst_geopermission.qml:
280         * UIProcess/API/qt/tests/qmltests/WebView/tst_javaScriptDialogs.qml:
281         * UIProcess/API/qt/tests/qmltests/WebView/tst_loadFail.qml:
282         * UIProcess/API/qt/tests/qmltests/WebView/tst_loadProgress.qml:
283         * UIProcess/API/qt/tests/qmltests/WebView/tst_loadProgressSignal.qml:
284         * UIProcess/API/qt/tests/qmltests/WebView/tst_loadUrl.qml:
285         * UIProcess/API/qt/tests/qmltests/WebView/tst_navigationHistory.qml:
286         * UIProcess/API/qt/tests/qmltests/WebView/tst_origin.qml:
287         * UIProcess/API/qt/tests/qmltests/WebView/tst_preferences.qml:
288         * UIProcess/API/qt/tests/qmltests/WebView/tst_properties.qml:
289         * UIProcess/API/qt/tests/qmltests/WebView/tst_titleChanged.qml:
290         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
291         (tst_QQuickWebView::loadEmptyPageViewHidden):
292         (tst_QQuickWebView::loadNonexistentFileUrl):
293
294 2012-02-28  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
295
296         [Qt] Signal and property cleanup in QQuickWebView
297         https://bugs.webkit.org/show_bug.cgi?id=78820
298
299         Reviewed by Noam Rosenthal.
300
301         - Remove parameters from property change notify signals:
302           titleChanged, urlChanged, iconChanged, loadProgressChanged
303         - Rename the parameters of linkHovered to prevent shadoing properties of WebView
304         - Rename navigationStateChanged to navigationHistoryChanged
305
306         * UIProcess/API/qt/qquickwebview.cpp:
307         (QQuickWebViewPrivate::QQuickWebViewPrivate):
308         (QQuickWebViewPrivate::initialize):
309         (QQuickWebViewPrivate::_q_onUrlChanged):
310         (QQuickWebViewPrivate::setIcon):
311         * UIProcess/API/qt/qquickwebview_p.h:
312         * UIProcess/API/qt/qquickwebview_p_p.h:
313         (QQuickWebViewPrivate):
314         * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
315         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_linkHovered.qml:
316         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_loadHtml.qml:
317         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
318         (tst_QQuickWebView::loadProgress):
319         * UIProcess/qt/QtWebPageLoadClient.cpp:
320         (QtWebPageLoadClient::didCommitLoadForFrame):
321         (QtWebPageLoadClient::didSameDocumentNavigationForFrame):
322         (QtWebPageLoadClient::didReceiveTitleForFrame):
323         (QtWebPageLoadClient::setLoadProgress):
324         * UIProcess/qt/QtWebPageLoadClient.h:
325         (QtWebPageLoadClient):
326
327 2012-02-28  Mario Sanchez Prada  <msanchez@igalia.com>
328
329         [GTK] Add GMainLoop and GMainContext to be handled by GRefPtr
330         https://bugs.webkit.org/show_bug.cgi?id=79496
331
332         Reviewed by Martin Robinson.
333
334         Updated places where raw pointers to GMainLoop and GMainContext
335         were being used, replacing them with GRefPtr-based code.
336
337         * Platform/WorkQueue.h:
338         (WorkQueue):
339         * Platform/gtk/WorkQueueGtk.cpp:
340         (WorkQueue::platformInitialize):
341         (WorkQueue::platformInvalidate):
342         (WorkQueue::workQueueThreadBody):
343         (WorkQueue::registerEventSourceHandler):
344         (WorkQueue::dispatchOnSource):
345         * UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
346         (WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk):
347         (WebKit::WebPopupMenuProxyGtk::showPopupMenu):
348         (WebKit::WebPopupMenuProxyGtk::shutdownRunLoop):
349         * UIProcess/gtk/WebPopupMenuProxyGtk.h:
350         (WebPopupMenuProxyGtk):
351
352 2012-02-28  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
353
354         [Qt] Initialize QtWebContext as much as we can in its constructor.
355         https://bugs.webkit.org/show_bug.cgi?id=79809
356
357         Reviewed by Tor Arne Vestbø.
358
359         The icon database wouldn't be initialized on the QtWebContext while in WebKitTestRunner
360         since it doesn't call the initialize method on it after creating it.
361         Remove the initialize method, move the download manager and icon database initialization
362         in the constructor and call initializeContextInjectedBundleClient directly in
363         defaultContext to prevent overriding WKTR's injected bundle client.
364
365         * UIProcess/qt/QtWebContext.cpp:
366         (WebKit::QtWebContext::QtWebContext):
367         (WebKit::QtWebContext::defaultContext):
368         * UIProcess/qt/QtWebContext.h:
369         (QtWebContext):
370
371 2012-02-28  Carlos Garcia Campos  <cgarcia@igalia.com>
372
373         [GTK] Inconsistent state of WebKitWebView when replacing content in WebKit2
374         https://bugs.webkit.org/show_bug.cgi?id=79775
375
376         Reviewed by Martin Robinson.
377
378         Use an enum instead of a boolean to track the status of a
379         replace_content() load operation. We need to know when the load of
380         the replace content actually starts to not ignore valid load
381         events of a previous ongoing load operation.
382
383         * UIProcess/API/gtk/WebKitWebView.cpp:
384         (webkitWebViewLoadChanged): Transit to new replace content state
385         when replacing content depending on the load event.
386         (webkitWebViewLoadFailed): Ignore load failed events when
387         replacing content.
388         (webkitWebViewSetEstimatedLoadProgress): Ignore load progress when
389         replacing content.
390         (webkit_web_view_replace_content): Set replace content status to
391         WillReplaceContent.
392         * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
393         (replaceContentLoadCallback):
394         (testWebViewReplaceContent):
395         * UIProcess/API/gtk/tests/WebViewTest.cpp:
396         (titleChanged):
397         (WebViewTest::waitUntilTitleChanged): Convenient method to wait
398         until title changes. Use with replaceConent() since load events
399         are not emitted when replacing content.
400         * UIProcess/API/gtk/tests/WebViewTest.h:
401
402 2012-02-27  Anders Carlsson  <andersca@apple.com>
403
404         Add basic page overlay support to TiledCoreAnimationDrawingArea
405         https://bugs.webkit.org/show_bug.cgi?id=79716
406         <rdar://problem/10923079>
407
408         Reviewed by Sam Weinig.
409
410         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
411         Make TiledCoreAnimationDrawingArea a GraphicsLayerClient.
412
413         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
414         (WebKit::TiledCoreAnimationDrawingArea::didInstallPageOverlay):
415         Create the page overlay layer.
416
417         (WebKit::TiledCoreAnimationDrawingArea::didUninstallPageOverlay):
418         Destroy the page overlay layer.
419
420         (WebKit::TiledCoreAnimationDrawingArea::setPageOverlayNeedsDisplay):
421         Mark the page overlay layer as needing display.
422
423         (WebKit::TiledCoreAnimationDrawingArea::notifyAnimationStarted):
424         (WebKit::TiledCoreAnimationDrawingArea::notifySyncRequired):
425         Add empty GraphisLayerClient member function implementations.
426
427         (WebKit::TiledCoreAnimationDrawingArea::paintContents):
428         Ask the page overlay to paint itself.
429
430         (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
431         Flush the page overlay layer.
432         
433         (WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
434         Resize the page overlay layer.
435
436         (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
437         If we have a page overlay layer, add it as a sublayer of the root layer.
438
439         (WebKit::TiledCoreAnimationDrawingArea::createPageOverlayLayer):
440         Create the page overlay layer and add it as a sublayer of the root layer.
441
442         (WebKit::TiledCoreAnimationDrawingArea::destroyPageOverlayLayer):
443         Remove the page overlay layer and destroy it.
444
445 2012-02-28  Carlos Garcia Campos  <cgarcia@igalia.com>
446
447         [GTK] Remove virtual methods of WebKitDownload signals in WebKit2 GTK+ API
448         https://bugs.webkit.org/show_bug.cgi?id=79804
449
450         Reviewed by Martin Robinson.
451
452         That comes from the first patch that followed the approach of the
453         first LoaderClient implementation. With current implementation
454         download signals, except decide-destination, don't need to be
455         true_handled, and they won't have a default handler
456         implementation. Also the download object is not supposed to be
457         inheritable, since instances are created privately by the
458         WebContext, so it's not possible to override the virtual methods
459         in derived classes.
460
461         * UIProcess/API/gtk/WebKitDownload.cpp:
462         (webkit_download_class_init):
463         (webkitDownloadNotifyProgress):
464         (webkitDownloadFailed):
465         (webkitDownloadFinished):
466         * UIProcess/API/gtk/WebKitDownload.h:
467         (_WebKitDownloadClass):
468         * UIProcess/API/gtk/webkit2marshal.list:
469
470 2012-02-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
471
472         [Qt] Fix build for WK2, do not use enum type if values can be outside the enum
473         https://bugs.webkit.org/show_bug.cgi?id=79800
474
475         Reviewed by Csaba Osztrogonác.
476
477         We have two different enums called NavigationRequestAction. If we use one of them
478         to store the variables, compilers can rightfully warn about comparison with
479         values from other enums.
480
481         We might revisit the strategy of exposing different enumerations in experimental,
482         but for now, fallback to using int for the 'action' property in
483         QWebNavigationRequest.
484
485         * UIProcess/API/qt/qwebnavigationrequest.cpp:
486         (QWebNavigationRequestPrivate):
487         (QWebNavigationRequest::setAction):
488         (QWebNavigationRequest::action):
489         * UIProcess/API/qt/qwebnavigationrequest_p.h:
490         * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
491
492 2012-02-27  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
493
494         [Qt] API changes to QWebNavigationRequest
495         https://bugs.webkit.org/show_bug.cgi?id=78821
496
497         Reviewed by Kenneth Rohde Christiansen.
498
499         Changes discussed in API review at Szeged: rename 'button' to 'mouseButton',
500         rename 'modifiers' to 'keyboardModifiers', remove 'originatingUrl' and
501         use the enum type for 'action'.
502
503         * UIProcess/API/qt/qwebnavigationrequest.cpp:
504         (QWebNavigationRequestPrivate::QWebNavigationRequestPrivate):
505         (QWebNavigationRequestPrivate):
506         (QWebNavigationRequest::QWebNavigationRequest):
507         (QWebNavigationRequest::setAction):
508         (QWebNavigationRequest::mouseButton):
509         (QWebNavigationRequest::keyboardModifiers):
510         (QWebNavigationRequest::action):
511         * UIProcess/API/qt/qwebnavigationrequest_p.h:
512         * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
513         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_navigationRequested.qml:
514         * UIProcess/qt/QtWebPagePolicyClient.cpp:
515         (QtWebPagePolicyClient::decidePolicyForNavigationAction):
516         * UIProcess/qt/QtWebPagePolicyClient.h:
517         (QtWebPagePolicyClient):
518
519 2012-02-28  Shinya Kawanaka  <shinyak@chromium.org>
520
521         Element should be able to have multiple shadow roots.
522         https://bugs.webkit.org/show_bug.cgi?id=77931
523
524         Reviewed by Hajime Morita.
525
526         * win/WebKit2.def:
527         * win/WebKit2CFLite.def:
528
529 2012-02-28  Hugo Parente Lima  <hugo.lima@openbossa.org>
530
531         [Qt][WK2] Use movementStarted/Ended signals instead of movingChanged on QtViewportInterationEngine
532         https://bugs.webkit.org/show_bug.cgi?id=79521
533
534         Reviewed by Kenneth Rohde Christiansen.
535
536         movingChanged() signal is emitted many times, so the use of movementStarted() and
537         movementEnded() is a better choice.
538
539         * UIProcess/qt/QtFlickProvider.cpp:
540         (QtFlickProvider::QtFlickProvider):
541         * UIProcess/qt/QtFlickProvider.h:
542         (QtFlickProvider):
543         * UIProcess/qt/QtViewportInteractionEngine.cpp:
544         (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
545         * UIProcess/qt/QtViewportInteractionEngine.h:
546         (QtViewportInteractionEngine):
547
548 2012-02-27  Shinya Kawanaka  <shinyak@chromium.org>
549
550         Element::removeShadowRoot() and setShadowRoot() should be moved into ShadowTree.
551         https://bugs.webkit.org/show_bug.cgi?id=78313
552
553         Reviewed by Hajime Morita.
554
555         * win/WebKit2.def:
556         * win/WebKit2CFLite.def:
557
558 2012-02-27  Brady Eidson  <beidson@apple.com>
559
560         <rdar://problem/10924993> and https://bugs.webkit.org/show_bug.cgi?id=79725
561         <a ping> doesn't work in WebKit2
562
563         Reviewed by Alexey Proskuryakov.
564
565         * WebProcess/WebPage/WebPage.cpp:
566         (WebKit::WebPage::updatePreferences): Push the WK2 <a ping> setting to WebCore::Settings.
567
568 2012-02-27  Enrica Casucci  <enrica@apple.com>
569
570         WebKit2: implement platform strategy to access Pasteboard in the UI process.
571         https://bugs.webkit.org/show_bug.cgi?id=79253
572         <rdar://problem/9971876>
573
574         Reviewed by Alexey Proskuryakov.
575
576         * UIProcess/WebContext.h:
577         * UIProcess/WebContext.messages.in: Added messages to access NSPasteboard
578         in the UI process.
579         * UIProcess/mac/WebContextMac.mm: Added methods corresponding to the
580         new messages.
581         (WebKit::WebContext::getPasteboardTypes):
582         (WebKit::WebContext::getPasteboardPathnamesForType):
583         (WebKit::WebContext::getPasteboardStringForType):
584         (WebKit::WebContext::getPasteboardBufferForType):
585         (WebKit::WebContext::pasteboardCopy):
586         (WebKit::WebContext::getPasteboardChangeCount):
587         (WebKit::WebContext::getPasteboardUniqueName):
588         (WebKit::WebContext::getPasteboardColor):
589         (WebKit::WebContext::setPasteboardTypes):
590         (WebKit::WebContext::setPasteboardPathnamesForType):
591         (WebKit::WebContext::setPasteboardStringForType):
592         (WebKit::WebContext::setPasteboardBufferForType):
593         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: New implementation of the PasteboardStrategy using message exchange
594         with the UI process.
595         (WebKit::WebPlatformStrategies::getTypes):
596         (WebKit::WebPlatformStrategies::bufferForType):
597         (WebKit::WebPlatformStrategies::getPathnamesForType):
598         (WebKit::WebPlatformStrategies::stringForType):
599         (WebKit::WebPlatformStrategies::copy):
600         (WebKit::WebPlatformStrategies::changeCount):
601         (WebKit::WebPlatformStrategies::uniqueName):
602         (WebKit::WebPlatformStrategies::color):
603         (WebKit::WebPlatformStrategies::setTypes):
604         (WebKit::WebPlatformStrategies::setBufferForType):
605         (WebKit::WebPlatformStrategies::setPathnamesForType):
606         (WebKit::WebPlatformStrategies::setStringForType):
607
608 2012-02-27  Dan Bernstein  <mitz@apple.com>
609
610         <rdar://problem/9557598> REGRESSION (WebKit2): Non-activating links sometimes don’t work
611         https://bugs.webkit.org/show_bug.cgi?id=79607
612
613         Reviewed by Adele Peterson.
614
615         Test: TestWebKitAPI/Tests/mac/AcceptsFirstMouse.mm
616
617         This was caused by not mapping the mouse event coordinates from window coordinates to
618         document coordinates.
619
620         * WebProcess/WebPage/mac/WebPageMac.mm:
621         (WebKit::WebPage::performDictionaryLookupAtLocation): Convert the point to main frame
622         coordinates when performing the hit test.
623         (WebKit::WebPage::shouldDelayWindowOrderingEvent): Convert the point to the main or focused
624         frame coordinates when perfomring the hit test.
625         (WebKit::WebPage::acceptsFirstMouse): Ditto.
626
627 2012-02-27  Timothy Hatcher  <timothy@apple.com>
628
629         Add WKInspector API to know when the Web Inspector is the frontmost window.
630
631         Also makes the Safari Develop menu items work when the Web Inspector is frontmost.
632
633         https://webkit.org/b/79649
634
635         Reviewed by John Sullivan.
636
637         * UIProcess/API/C/WKInspector.cpp:
638         (WKInspectorIsFront): Added. Call WebInspectorProxy::isFront.
639         * UIProcess/API/C/WKInspector.h:
640         * UIProcess/WebInspectorProxy.cpp:
641         (WebKit::WebInspectorProxy::isFront): Added. Call platformIsFront.
642         * UIProcess/WebInspectorProxy.h:
643         * UIProcess/efl/WebInspectorEfl.cpp:
644         (WebKit::WebInspectorProxy::platformIsFront): Added stub.
645         * UIProcess/gtk/WebInspectorGtk.cpp:
646         (WebKit::WebInspectorProxy::platformIsFront): Added stub.
647         * UIProcess/mac/WebInspectorProxyMac.mm:
648         (-[WKWebInspectorProxyObjCAdapter showWebInspector:]): Added. Makes the Develop menu items in Safari work when
649         the Web Inspector window is front.
650         (-[WKWebInspectorProxyObjCAdapter showErrorConsole:]): Added. Ditto.
651         (-[WKWebInspectorProxyObjCAdapter showResources:]): Added. Ditto.
652         (-[WKWebInspectorProxyObjCAdapter viewSource:]): Added. Ditto.
653         (-[WKWebInspectorProxyObjCAdapter toggleDebuggingJavaScript:]): Added. Ditto.
654         (-[WKWebInspectorProxyObjCAdapter toggleProfilingJavaScript:]): Added. Ditto.
655         (-[WKWebInspectorProxyObjCAdapter validateUserInterfaceItem:]): Added. Update the menu item titles.
656         (WebKit::WebInspectorProxy::platformIsFront): Added. Return if visible and the window is main.
657         * UIProcess/qt/WebInspectorProxyQt.cpp:
658         (WebKit::WebInspectorProxy::platformIsFront): Added stub.
659         * UIProcess/win/WebInspectorProxyWin.cpp:
660         (WebKit::WebInspectorProxy::platformIsFront): Added stub.
661
662 2012-02-26  YoungTaeck Song  <youngtaeck.song@samsung.com>
663
664         [EFL][WK2] Add InjectedBundleEfl.cpp
665         https://bugs.webkit.org/show_bug.cgi?id=75463
666
667         Reviewed by Andreas Kling.
668
669         Add first version of InjectedBundleEfl.cpp including load() and placeholder for activateMacFontAscentHack().
670
671         * WebProcess/InjectedBundle/InjectedBundle.h:
672         * WebProcess/InjectedBundle/efl/InjectedBundleEfl.cpp:
673         (WebKit::InjectedBundle::load):
674         (WebKit::InjectedBundle::activateMacFontAscentHack):
675
676 2012-02-26  Shinya Kawanaka  <shinyak@chromium.org>
677
678         Rename ShadowRootList to ShadowTree.
679         https://bugs.webkit.org/show_bug.cgi?id=79342
680
681         Reviewed by Hajime Morita.
682
683         * win/WebKit2.def:
684         * win/WebKit2CFLite.def:
685
686 2012-02-26  Hajime Morrita  <morrita@chromium.org>
687
688         Move ChromeClient::showContextMenu() to ContextMenuClient
689         https://bugs.webkit.org/show_bug.cgi?id=79427
690
691         Reviewed by Adam Barth.
692
693         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
694         * WebProcess/WebCoreSupport/WebChromeClient.h:
695         (WebChromeClient):
696         * WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
697         (WebKit):
698         (WebKit::WebContextMenuClient::showContextMenu): Moved from WebChromeClient
699         * WebProcess/WebCoreSupport/WebContextMenuClient.h:
700         (WebContextMenuClient):
701         * WebProcess/WebPage/WebPage.cpp:
702         (WebKit::handleContextMenuEvent):
703         (WebKit::handleMouseEvent):
704         (WebKit::WebPage::mouseEvent):
705         (WebKit::WebPage::mouseEventSyncForTesting):
706
707 2012-02-26  Huang Dongsung  <luxtella@company100.net>
708
709         Use Functional instead of a MessageQueue for messages to the LayerTreeHostProxy
710         renderer.
711         https://bugs.webkit.org/show_bug.cgi?id=79478
712
713         This makes a lot of the broilerplate code for message-passing unnecessary, and
714         results in a much more succinct implementation.
715
716         Reviewed by Noam Rosenthal.
717
718         * UIProcess/LayerTreeHostProxy.h:
719         (WebKit):
720         (LayerTreeHostProxy):
721         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
722         (WebKit):
723         (WebKit::LayerTreeHostProxy::updateTile):
724         (WebKit::LayerTreeHostProxy::createImage):
725         (WebKit::LayerTreeHostProxy::syncRemoteContent):
726         (WebKit::LayerTreeHostProxy::dispatchUpdate):
727         (WebKit::LayerTreeHostProxy::createTileForLayer):
728         (WebKit::LayerTreeHostProxy::updateTileForLayer):
729         (WebKit::LayerTreeHostProxy::removeTileForLayer):
730         (WebKit::LayerTreeHostProxy::deleteCompositingLayer):
731         (WebKit::LayerTreeHostProxy::setRootCompositingLayer):
732         (WebKit::LayerTreeHostProxy::syncCompositingLayerState):
733         (WebKit::LayerTreeHostProxy::didRenderFrame):
734         (WebKit::LayerTreeHostProxy::createDirectlyCompositedImage):
735         (WebKit::LayerTreeHostProxy::destroyDirectlyCompositedImage):
736
737 2012-02-26  Filip Pizlo  <fpizlo@apple.com>
738
739         Build fix for SL.
740
741         * Platform/mac/RemoteLayerClient.mm:
742         (WebKit::RemoteLayerClient::RemoteLayerClient):
743
744 2012-02-26  Sam Weinig  <sam@webkit.org>
745
746         Encapsulate uses of WKSI to setup a remote layer into a new RemoteLayerClient class
747         https://bugs.webkit.org/show_bug.cgi?id=79612
748
749         Reviewed by Anders Carlsson.
750
751         * Platform/mac/RemoteLayerClient.h: 
752         * Platform/mac/RemoteLayerClient.mm: 
753         (WebKit::RemoteLayerClient::create):
754         (WebKit::RemoteLayerClient::RemoteLayerClient):
755         (WebKit::RemoteLayerClient::~RemoteLayerClient):
756         (WebKit::RemoteLayerClient::clientID):
757         (WebKit::RemoteLayerClient::invalidate):
758         New class that encapsulates calls to WKSI WKCARemoteLayerClient*. For platforms
759         where the use of WKSI is not necessary, due to CARemoteLayerClient being available,
760         stop using WKSI.
761
762         * PluginProcess/PluginControllerProxy.cpp:
763         * PluginProcess/PluginControllerProxy.h:
764         * PluginProcess/mac/PluginControllerProxyMac.mm:
765         (WebKit::PluginControllerProxy::platformInitialize):
766         (WebKit::PluginControllerProxy::platformDestroy):
767         (WebKit::PluginControllerProxy::remoteLayerClientID):
768         (WebKit::PluginControllerProxy::platformGeometryDidChange):
769         * WebKit2.xcodeproj/project.pbxproj:
770         * WebProcess/FullScreen/mac/WebFullScreenManagerMac.h:
771         * WebProcess/FullScreen/mac/WebFullScreenManagerMac.mm:
772         (WebKit::WebFullScreenManagerMac::setRootFullScreenLayer):
773         (WebKit::WebFullScreenManagerMac::disposeOfLayerClient):
774         * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.h:
775         (LayerTreeHostCAMac):
776         * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm:
777         (WebKit::LayerTreeHostCAMac::platformInitialize):
778         (WebKit::LayerTreeHostCAMac::invalidate):
779         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
780         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
781         (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
782         Switch to using RemoteLayerClient.
783
784         * UIProcess/mac/WebContextMac.mm:
785         (WebKit::WebContext::platformInitializeWebProcess):
786         * UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
787         (WebKit::PluginProcessProxy::platformInitializePluginProcess):
788         Use CARemoteLayerServer directly if available.
789
790 2012-02-25  Anders Carlsson  <andersca@apple.com>
791
792         Address review feedback from Andreas Kling.
793
794         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
795         (WebKit::NetscapePlugin::platformHandleMouseEvent):
796
797 2012-02-25  Anders Carlsson  <andersca@apple.com>
798
799         Mouse tracking incorrect in Silverlight when using multi monitor with offset arrangement
800         https://bugs.webkit.org/show_bug.cgi?id=79589
801         <rdar://problem/9719592>
802
803         Reviewed by Sam Weinig.
804
805         In the Carbon event model, mouse event coordinates are flipped relative to the first screen,
806         whereas the coordinates we get from the WebMouseEvent are flipped relative to the screen where
807         the containing WKView is on.
808
809         Instead of passing the global coordinates to NPP_HandleEvent, convert them to the flipped screen coordinate
810         system that the plug-in expects.
811
812         * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
813         (WebKit::NetscapePlugin::platformHandleMouseEvent):
814
815 2012-02-25  Sheriff Bot  <webkit.review.bot@gmail.com>
816
817         Unreviewed, rolling out r108900.
818         http://trac.webkit.org/changeset/108900
819         https://bugs.webkit.org/show_bug.cgi?id=79587
820
821         broke some API tests, will investigate and re-commit
822         (Requested by noamr on #webkit).
823
824         * UIProcess/API/qt/qquickwebpage.cpp:
825         (computeEffectiveOpacity):
826         (QQuickWebPagePrivate::paintToCurrentGLContext):
827         (PageProxyNode::changedStates):
828         (PageProxyNode::render):
829         * UIProcess/API/qt/qquickwebpage_p_p.h:
830         (QQuickWebPagePrivate):
831
832 2012-02-25  No'am Rosenthal  <noam.rosenthal@nokia.com>
833
834         [Qt] Use the existing inheritedOpacity/matrix properties of QSGNode
835         https://bugs.webkit.org/show_bug.cgi?id=79543
836
837         Use QSGNode::inheritedOpacity() and QSGNode::matrix().
838         Also, remove flags from changedStates() that we don't actually touch.
839
840         Reviewed by Kenneth Rohde Christiansen.
841
842         * UIProcess/API/qt/qquickwebpage.cpp:
843         (QQuickWebPagePrivate::paintToCurrentGLContext):
844         (PageProxyNode::changedStates):
845         (PageProxyNode::render):
846         * UIProcess/API/qt/qquickwebpage_p_p.h:
847         (QQuickWebPagePrivate):
848
849 2012-02-25  Sheriff Bot  <webkit.review.bot@gmail.com>
850
851         Unreviewed, rolling out r108816.
852         http://trac.webkit.org/changeset/108816
853         https://bugs.webkit.org/show_bug.cgi?id=79562
854
855         It made many tests crash and timeout on Qt-WK2 (Requested by
856         ossy__ on #webkit).
857
858         * UIProcess/API/qt/qquickwebview.cpp:
859         (QQuickWebViewPrivate::QQuickWebViewPrivate):
860         (QQuickWebViewPrivate::initialize):
861         (QQuickWebViewPrivate::setIcon):
862         * UIProcess/API/qt/qquickwebview_p.h:
863         * UIProcess/API/qt/qquickwebview_p_p.h:
864         (QQuickWebViewPrivate):
865         * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
866         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_linkHovered.qml:
867         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_loadHtml.qml:
868         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
869         (tst_QQuickWebView::loadProgress):
870         * UIProcess/qt/QtWebPageLoadClient.cpp:
871         (QtWebPageLoadClient::didCommitLoadForFrame):
872         (QtWebPageLoadClient::didSameDocumentNavigationForFrame):
873         (QtWebPageLoadClient::didReceiveTitleForFrame):
874         (QtWebPageLoadClient::setLoadProgress):
875         * UIProcess/qt/QtWebPageLoadClient.h:
876         (QtWebPageLoadClient):
877
878 2012-02-24  Andy Estes  <aestes@apple.com>
879
880         REGRESSION (r108730): Webkit nightlies fails to start due to WKPreferencesGetSuppressIncrementalRendering renaming
881         https://bugs.webkit.org/show_bug.cgi?id=79515
882
883         Reviewed by Alexey Proskuryakov.
884
885         Some versions of Safari contain call sites to two functions in WebKit2
886         that were removed in r108730. Restore these two functions so that these
887         versions of Safari can be used with WebKit nightly builds.
888
889         * UIProcess/API/C/WKPreferences.cpp:
890         (WKPreferencesSetSuppressIncrementalRendering):
891         (WKPreferencesGetSuppressIncrementalRendering):
892         * UIProcess/API/C/WKPreferences.h:
893
894 2012-02-24  Jessie Berlin  <jberlin@apple.com>
895
896         requestPermission callback not invoked if the WebProcess doesn't have to ask the UI Process
897         about the permission level.
898         https://bugs.webkit.org/show_bug.cgi?id=79494
899
900         Reviewed by Jon Honeycutt.
901
902         Invoke the callback in the case where the permission level is known and no message is sent
903         to the UI Process.
904
905         * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
906         (WebKit::NotificationPermissionRequestManager::startRequest):
907
908 2012-02-24  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
909
910         [Qt] Signal and property cleanup in QQuickWebView
911         https://bugs.webkit.org/show_bug.cgi?id=78820
912
913         Reviewed by Simon Hausmann.
914
915         - Remove parameters from property change notify signals:
916           titleChanged, urlChanged, iconChanged, loadProgressChanged
917         - Rename the parameters of linkHovered to prevent shadoing properties of WebView
918         - Rename navigationStateChanged to navigationHistoryChanged
919
920         * UIProcess/API/qt/qquickwebview.cpp:
921         (QQuickWebViewPrivate::QQuickWebViewPrivate):
922         (QQuickWebViewPrivate::initialize):
923         (QQuickWebViewPrivate::_q_onUrlChanged):
924         (QQuickWebViewPrivate::setIcon):
925         * UIProcess/API/qt/qquickwebview_p.h:
926         * UIProcess/API/qt/qquickwebview_p_p.h:
927         (QQuickWebViewPrivate):
928         * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
929         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_linkHovered.qml:
930         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_loadHtml.qml:
931         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
932         (tst_QQuickWebView::loadProgress):
933         * UIProcess/qt/QtWebPageLoadClient.cpp:
934         (QtWebPageLoadClient::didCommitLoadForFrame):
935         (QtWebPageLoadClient::didSameDocumentNavigationForFrame):
936         (QtWebPageLoadClient::didReceiveTitleForFrame):
937         (QtWebPageLoadClient::setLoadProgress):
938         * UIProcess/qt/QtWebPageLoadClient.h:
939         (QtWebPageLoadClient):
940
941 2012-02-24  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
942
943         [Qt] API: Unify the loading properties and signals.
944         https://bugs.webkit.org/show_bug.cgi?id=79486
945
946         Reviewed by Simon Hausmann.
947
948         - Remove the canReload signal, instead assume that calling reload in those cases
949           won't have any effect.
950         - Replace loadStarted, loadSucceeded and loadFailed by a single signal: loadingChanged.
951           The signal carries an argument with a status and error codes giving the intended context.
952         - Use loadingChanged as the notification signal for the property "loading" instead of
953           navigationStateChanged.
954
955         Also update all API tests to use the new loading signals and add some utility functions
956         to track the loading since the new API aims to be more adapted to declarative logic
957         and the auto tests are using an imperative logic.
958
959         * Target.pri:
960         * UIProcess/API/qt/qquickwebview.cpp:
961         (QQuickWebViewPrivate::QQuickWebViewPrivate):
962         (QQuickWebViewPrivate::loadDidSucceed):
963         (QQuickWebViewPrivate::didChangeLoadingState):
964         (QQuickWebViewPrivate::processDidCrash):
965         (QQuickWebViewPrivate::didRelaunchProcess):
966         * UIProcess/API/qt/qquickwebview_p.h:
967         * UIProcess/API/qt/qquickwebview_p_p.h:
968         (QQuickWebViewPrivate):
969         * UIProcess/API/qt/qwebloadrequest.cpp: Added.
970         (QWebLoadRequestPrivate):
971         (QWebLoadRequestPrivate::QWebLoadRequestPrivate):
972         (QWebLoadRequest::QWebLoadRequest):
973         (QWebLoadRequest::~QWebLoadRequest):
974         (QWebLoadRequest::url):
975         (QWebLoadRequest::status):
976         (QWebLoadRequest::errorString):
977         (QWebLoadRequest::errorDomain):
978         (QWebLoadRequest::errorCode):
979         * UIProcess/API/qt/qwebloadrequest_p.h: Added.
980         * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
981         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_itemSelector.qml:
982         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_linkHovered.qml:
983         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_loadHtml.qml:
984         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_messaging.qml:
985         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_navigationRequested.qml:
986         * UIProcess/API/qt/tests/qmltests/WebView/tst_favIconLoad.qml:
987         * UIProcess/API/qt/tests/qmltests/WebView/tst_javaScriptDialogs.qml:
988         * UIProcess/API/qt/tests/qmltests/WebView/tst_loadFail.qml:
989         * UIProcess/API/qt/tests/qmltests/WebView/tst_loadHtml.qml:
990         * UIProcess/API/qt/tests/qmltests/WebView/tst_loadProgress.qml:
991         * UIProcess/API/qt/tests/qmltests/WebView/tst_loadProgressSignal.qml:
992         * UIProcess/API/qt/tests/qmltests/WebView/tst_loadUrl.qml:
993         * UIProcess/API/qt/tests/qmltests/WebView/tst_navigationHistory.qml:
994         * UIProcess/API/qt/tests/qmltests/WebView/tst_preferences.qml:
995         * UIProcess/API/qt/tests/qmltests/WebView/tst_properties.qml:
996         * UIProcess/API/qt/tests/qmltests/WebView/tst_titleChanged.qml:
997         * UIProcess/API/qt/tests/qmltests/common/TestWebView.qml: Added.
998         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
999         (tst_QQuickWebView::navigationStatusAtStartup):
1000         (LoadStartedCatcher::LoadStartedCatcher):
1001         (LoadStartedCatcher::onLoadingChanged):
1002         (tst_QQuickWebView::stopEnabledAfterLoadStarted):
1003         (tst_QQuickWebView::loadEmptyPageViewHidden):
1004         (tst_QQuickWebView::loadNonexistentFileUrl):
1005         (tst_QQuickWebView::backAndForward):
1006         (tst_QQuickWebView::reload):
1007         (tst_QQuickWebView::stop):
1008         (tst_QQuickWebView::loadProgress):
1009         (tst_QQuickWebView::showWebView):
1010         (tst_QQuickWebView::multipleWebViewWindows):
1011         (tst_QQuickWebView::multipleWebViews):
1012         (tst_QQuickWebView::scrollRequest):
1013         * UIProcess/API/qt/tests/util.cpp:
1014         (LoadSpy):
1015         (LoadSpy::LoadSpy):
1016         (LoadSpy::onLoadingChanged):
1017         (waitForLoadSucceeded):
1018         (waitForLoadFailed):
1019         * UIProcess/API/qt/tests/util.h:
1020         * UIProcess/qt/QtWebError.h:
1021         * UIProcess/qt/QtWebPageLoadClient.cpp:
1022         (QtWebPageLoadClient::didStartProvisionalLoadForFrame):
1023         (QtWebPageLoadClient::dispatchLoadFailed):
1024         * UIProcess/qt/QtWebPageLoadClient.h:
1025         (QtWebPageLoadClient):
1026
1027 2012-02-24  Simon Hausmann  <simon.hausmann@nokia.com>
1028
1029         Unreviewed, rolling out r108798.
1030         http://trac.webkit.org/changeset/108798
1031         https://bugs.webkit.org/show_bug.cgi?id=78047
1032
1033         Broke too many Qt WK2 tests.
1034
1035         * UIProcess/API/qt/qquickwebview.cpp:
1036         (QQuickWebView::keyPressEvent):
1037         (QQuickWebView::keyReleaseEvent):
1038         (QQuickWebView::inputMethodEvent):
1039         (QQuickWebView::focusInEvent):
1040         (QQuickWebView::focusOutEvent):
1041         (QQuickWebView::touchEvent):
1042         (QQuickWebView::mousePressEvent):
1043         (QQuickWebView::mouseMoveEvent):
1044         (QQuickWebView::mouseReleaseEvent):
1045         (QQuickWebView::mouseDoubleClickEvent):
1046         (QQuickWebView::wheelEvent):
1047         (QQuickWebView::hoverEnterEvent):
1048         (QQuickWebView::hoverMoveEvent):
1049         (QQuickWebView::hoverLeaveEvent):
1050         (QQuickWebView::dragMoveEvent):
1051         (QQuickWebView::dragEnterEvent):
1052         (QQuickWebView::dragLeaveEvent):
1053         (QQuickWebView::dropEvent):
1054         (QQuickWebView::event):
1055         * UIProcess/qt/QtWebPageEventHandler.cpp:
1056         (QtWebPageEventHandler::handleEvent):
1057         (QtWebPageEventHandler::handleMouseMoveEvent):
1058         (QtWebPageEventHandler::handleMousePressEvent):
1059         (QtWebPageEventHandler::handleMouseReleaseEvent):
1060         (QtWebPageEventHandler::handleWheelEvent):
1061         (QtWebPageEventHandler::handleHoverLeaveEvent):
1062         (QtWebPageEventHandler::handleHoverMoveEvent):
1063         (QtWebPageEventHandler::handleDragEnterEvent):
1064         (QtWebPageEventHandler::handleDragLeaveEvent):
1065         (QtWebPageEventHandler::handleDragMoveEvent):
1066         (QtWebPageEventHandler::handleDropEvent):
1067         (QtWebPageEventHandler::handleKeyPressEvent):
1068         (QtWebPageEventHandler::handleKeyReleaseEvent):
1069         (QtWebPageEventHandler::handleFocusInEvent):
1070         (QtWebPageEventHandler::handleFocusOutEvent):
1071         (QtWebPageEventHandler::inputMethodEvent):
1072         (QtWebPageEventHandler::touchEvent):
1073         * UIProcess/qt/QtWebPageEventHandler.h:
1074         (QtWebPageEventHandler):
1075
1076 2012-02-24  Simon Hausmann  <simon.hausmann@nokia.com>
1077
1078         [Qt][WK2] QQuickWebView::event should lookup faster which events QQuickWebPage can handle
1079         https://bugs.webkit.org/show_bug.cgi?id=78047
1080
1081         Reviewed by Kenneth Rohde Christiansen.
1082
1083         Replaced double-dispatch of events with direct forwarding of events from QQuickWebView::*Event to
1084         QtWebPageEventHandler::handle*Event.
1085
1086         * UIProcess/API/qt/qquickwebview.cpp:
1087         (QQuickWebView::keyPressEvent):
1088         (QQuickWebView::keyReleaseEvent):
1089         (QQuickWebView::inputMethodEvent):
1090         (QQuickWebView::focusInEvent):
1091         (QQuickWebView::focusOutEvent):
1092         (QQuickWebView::touchEvent):
1093         (QQuickWebView::mousePressEvent):
1094         (QQuickWebView::mouseMoveEvent):
1095         (QQuickWebView::mouseReleaseEvent):
1096         (QQuickWebView::mouseDoubleClickEvent):
1097         (QQuickWebView::wheelEvent):
1098         (QQuickWebView::hoverEnterEvent):
1099         (QQuickWebView::hoverMoveEvent):
1100         (QQuickWebView::hoverLeaveEvent):
1101         (QQuickWebView::dragMoveEvent):
1102         (QQuickWebView::dragEnterEvent):
1103         (QQuickWebView::dragLeaveEvent):
1104         (QQuickWebView::dropEvent):
1105         (QQuickWebView::event):
1106         * UIProcess/qt/QtWebPageEventHandler.cpp:
1107         (QtWebPageEventHandler::handleMouseMoveEvent):
1108         (QtWebPageEventHandler::handleMousePressEvent):
1109         (QtWebPageEventHandler::handleMouseReleaseEvent):
1110         (QtWebPageEventHandler::handleWheelEvent):
1111         (QtWebPageEventHandler::handleHoverLeaveEvent):
1112         (QtWebPageEventHandler::handleHoverMoveEvent):
1113         (QtWebPageEventHandler::handleDragEnterEvent):
1114         (QtWebPageEventHandler::handleDragLeaveEvent):
1115         (QtWebPageEventHandler::handleDragMoveEvent):
1116         (QtWebPageEventHandler::handleDropEvent):
1117         (QtWebPageEventHandler::handleKeyPressEvent):
1118         (QtWebPageEventHandler::handleKeyReleaseEvent):
1119         (QtWebPageEventHandler::handleFocusInEvent):
1120         (QtWebPageEventHandler::handleFocusOutEvent):
1121         (QtWebPageEventHandler::handleInputMethodEvent):
1122         (QtWebPageEventHandler::handleTouchEvent):
1123         * UIProcess/qt/QtWebPageEventHandler.h:
1124         (QtWebPageEventHandler):
1125
1126 2012-02-24  Simon Hausmann  <simon.hausmann@nokia.com>
1127
1128         [Qt] Use private QSGRenderNode in QQuickWebView for improved Qt Scene Graph integration
1129         https://bugs.webkit.org/show_bug.cgi?id=79022
1130
1131         Reviewed by Csaba Osztrogonác.
1132
1133         * Target.pri:
1134         * UIProcess/API/qt/qquickwebpage.cpp:
1135         (PageProxyNode::PageProxyNode):
1136         (PageProxyNode::changedStates):
1137         (PageProxyNode::render):
1138         (PageProxyNode):
1139
1140 2012-02-24  Carlos Garcia Campos  <cgarcia@igalia.com>
1141
1142         [GTK] Encode/decode Null ResourceResponse objects in WebKit2
1143         https://bugs.webkit.org/show_bug.cgi?id=79471
1144
1145         Reviewed by Philippe Normand.
1146
1147         * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
1148         (CoreIPC::::encode): Check whether ResourceResponse is Null before
1149         encoding it.
1150         (CoreIPC::::decode): Check whether response is Null and create a
1151         Null ResourceResponse object in such case.
1152
1153 2012-02-24  Shinya Kawanaka  <shinyak@chromium.org>
1154
1155         SpellCheckRequest needs to know the context where the spellcheck happened.
1156         https://bugs.webkit.org/show_bug.cgi?id=79320
1157
1158         Reviewed by Hajime Morita.
1159
1160         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
1161         (WebKit::WebEditorClient::requestCheckingOfString):
1162         * WebProcess/WebCoreSupport/WebEditorClient.h:
1163
1164 2012-02-23  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1165
1166         [Qt] Tiling: Improve the method names dealing with moving and scaling.
1167
1168         Rubberstamped by Simon Hausmann.
1169
1170         * UIProcess/API/qt/qquickwebview.cpp:
1171         (QQuickWebViewLegacyPrivate::updateViewportSize):
1172         (QQuickWebViewFlickablePrivate::onComponentComplete):
1173         (QQuickWebViewFlickablePrivate::updateViewportSize):
1174         (QQuickWebViewFlickablePrivate::_q_commitScaleChange):
1175         (QQuickWebViewPrivate::_q_commitPositionChange):
1176         (QQuickWebViewFlickablePrivate::_q_resume):
1177         * UIProcess/API/qt/qquickwebview_p.h:
1178         * UIProcess/API/qt/qquickwebview_p_p.h:
1179         (QQuickWebViewPrivate):
1180         (QQuickWebViewPrivate::_q_commitScaleChange):
1181         (QQuickWebViewFlickablePrivate):
1182         * UIProcess/DrawingAreaProxy.h:
1183         (WebKit::DrawingAreaProxy::setVisibleContentsRectForScaling):
1184         (WebKit::DrawingAreaProxy::setVisibleContentsRectForPanning):
1185         * UIProcess/DrawingAreaProxyImpl.cpp:
1186         (WebKit::DrawingAreaProxyImpl::setVisibleContentsRectForScaling):
1187         (WebKit::DrawingAreaProxyImpl::setVisibleContentsRectForPanning):
1188         * UIProcess/DrawingAreaProxyImpl.h:
1189         (DrawingAreaProxyImpl):
1190         * UIProcess/LayerTreeHostProxy.h:
1191         (LayerTreeHostProxy):
1192         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
1193         (WebKit::LayerTreeHostProxy::setVisibleContentsRectForPanning):
1194         (WebKit::LayerTreeHostProxy::setVisibleContentsRectForScaling):
1195         * UIProcess/qt/QtViewportInteractionEngine.cpp:
1196         (WebKit::ViewportUpdateDeferrer::~ViewportUpdateDeferrer):
1197         (WebKit::QtViewportInteractionEngine::flickableMovingPositionUpdate):
1198         (WebKit::QtViewportInteractionEngine::wheelEvent):
1199         (WebKit::QtViewportInteractionEngine::pinchGestureStarted):
1200         * UIProcess/qt/QtViewportInteractionEngine.h:
1201         (QtViewportInteractionEngine):
1202         * WebProcess/WebPage/LayerTreeHost.h:
1203         (WebKit::LayerTreeHost::setVisibleContentsRectForScaling):
1204         (WebKit::LayerTreeHost::setVisibleContentsRectForPanning):
1205         (WebKit::LayerTreeHost::setVisibleContentsRectForLayer):
1206         * WebProcess/WebPage/LayerTreeHost.messages.in:
1207         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
1208         (WebKit::LayerTreeHostQt::setVisibleContentsRectForScaling):
1209         (WebKit::LayerTreeHostQt::setVisibleContentsRectForPanning):
1210         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
1211         (LayerTreeHostQt):
1212
1213 2012-02-24  Sergio Villar Senin  <svillar@igalia.com>
1214
1215         [WK2] [GTK] Destructor not invoked in EditorClientFrameDestructionObserver
1216         https://bugs.webkit.org/show_bug.cgi?id=79466
1217
1218         Reviewed by Philippe Normand.
1219
1220         Explicitly cast the observer before deleting it instead of just
1221         deleting a generic pointer. We must to that in order to get the
1222         destructor of the object properly called.
1223
1224         * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
1225         (WebKit::EditorClientFrameDestructionObserver::destroyOnClosureFinalization):
1226
1227 2012-02-23  Andy Estes  <aestes@apple.com>
1228
1229         Rename [setS|s]uppressIncrementalRendering to [setS|s]uppressesIncrementalRendering and make it WebPreferences API.
1230         https://bugs.webkit.org/show_bug.cgi?id=79433
1231
1232         Reviewed by Dan Bernstein.
1233
1234         * Shared/WebPreferencesStore.h:
1235         (WebKit):
1236         * UIProcess/API/C/WKPreferences.cpp:
1237         (WKPreferencesSetSuppressesIncrementalRendering):
1238         (WKPreferencesGetSuppressesIncrementalRendering):
1239         * UIProcess/API/C/WKPreferences.h:
1240         * UIProcess/WebInspectorProxy.cpp:
1241         (WebKit::createInspectorPageGroup):
1242         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1243         (WebKit::WebFrameLoaderClient::dispatchDidFirstLayout):
1244         * WebProcess/WebPage/WebPage.cpp:
1245         (WebKit::WebPage::updatePreferences):
1246
1247 2012-02-23  Mario Sanchez Prada  <msanchez@igalia.com>
1248
1249         [GTK] Wrong signal name on emission in WebKitWindowProperties.cpp
1250         https://bugs.webkit.org/show_bug.cgi?id=79352
1251
1252         Reviewed by Philippe Normand.
1253
1254         Emit the signal 'resizable' instead of 'resizable-visible'.
1255
1256         * UIProcess/API/gtk/WebKitWindowProperties.cpp:
1257         (webkitWindowPropertiesSetResizable): Use right signal name.
1258
1259 2012-02-23  Anders Carlsson  <andersca@apple.com>
1260
1261         Flush layer changes after layout when resizing web page
1262         https://bugs.webkit.org/show_bug.cgi?id=79399
1263         <rdar://problem/10920157>
1264
1265         Reviewed by Andreas Kling.
1266
1267         Flush layer changes after layout, otherwise the scrollbars won't be updated
1268         until sometime later which looks bad.
1269
1270         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1271         (WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
1272
1273 2012-02-23  Daniel Bates  <dbates@webkit.org>
1274
1275         Add missing "Reviewed by" line to change log entry for changeset r108631
1276         (https://bugs.webkit.org/show_bug.cgi?id=79252)
1277
1278         The patch landed in changeset r108631 was reviewed by Martin Robinson.
1279
1280         * ChangeLog:
1281
1282 2012-02-23  Patrick Gansterer  <paroga@webkit.org>
1283
1284         [CMake] Add WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS macro
1285         https://bugs.webkit.org/show_bug.cgi?id=79371
1286
1287         Reviewed by Daniel Bates.
1288
1289         * CMakeLists.txt:
1290
1291 2012-02-23  Simon Hausmann  <simon.hausmann@nokia.com>
1292
1293         [Qt] Add support for touch cancellation
1294         https://bugs.webkit.org/show_bug.cgi?id=79348
1295
1296         Reviewed by Kenneth Rohde Christiansen.
1297
1298         Convert and forward incoming touch cancellation events
1299         to the web process.
1300
1301         * Shared/qt/WebEventFactoryQt.cpp:
1302         (WebKit::webEventTypeForEvent):
1303         (WebKit::WebEventFactory::createWebTouchEvent):
1304         * UIProcess/API/qt/qquickwebview.cpp:
1305         (QQuickWebView::event):
1306         * UIProcess/qt/QtWebPageEventHandler.cpp:
1307         (QtWebPageEventHandler::handleEvent):
1308
1309 2012-02-23  Brent Fulgham  <bfulgham@webkit.org>
1310
1311         [WinCairo] Build fix after r108428.
1312
1313         * win/WebKit2CFLite.def: Add missing export declaration.
1314
1315 2012-02-23  Simon Hausmann  <simon.hausmann@nokia.com>
1316
1317         Unreviewed test fix after r108614: Adjust public API after changes.
1318
1319         * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp:
1320
1321 2012-02-23  Simon Hausmann  <simon.hausmann@nokia.com>
1322
1323         [Qt] Build fix. Qt WebKit2 can not be compiled due to QtWebPageEventHandler.
1324         https://bugs.webkit.org/show_bug.cgi?id=79335
1325
1326         Reviewed by Kenneth Rohde Christiansen.
1327
1328         In the upcoming Qt 5 builds the convenient setInputMethodHints method on QQuickItem
1329         will be removed. There's no need for us to use it, we can implement passing the hints
1330         to the input method right away in our re-implementation of inputMethodQuery, which works
1331         with old and newer Qt 5 builds.
1332
1333         * UIProcess/API/qt/qquickwebview.cpp:
1334         (QQuickWebView::inputMethodQuery):
1335         * UIProcess/qt/QtWebPageEventHandler.cpp:
1336         (QtWebPageEventHandler::updateTextInputState):
1337
1338 2012-02-23  Sergio Villar Senin  <svillar@igalia.com>
1339
1340         [WK2][GTK] WebProcess SIGSEVs due to incorrect clipboard handling
1341         https://bugs.webkit.org/show_bug.cgi?id=79252
1342
1343         Reviewed by Martin Robinson.
1344
1345         Do not execute clipboard callbacks after the Frame associated with
1346         it is destroyed.
1347
1348         This change is already covered by the TestWebViewEditor unit tests
1349         (among others), they hang (because WebProcess dies) without this
1350         patch in Debug builds.
1351
1352         * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
1353         (EditorClientFrameDestructionObserver):
1354         (WebKit::EditorClientFrameDestructionObserver::EditorClientFrameDestructionObserver):
1355         (WebKit::EditorClientFrameDestructionObserver::frameDestroyed):
1356         (WebKit::EditorClientFrameDestructionObserver::destroyOnClosureFinalization):
1357         (WebKit):
1358         (WebKit::WebEditorClient::setSelectionPrimaryClipboardIfNeeded):
1359
1360 2012-02-23  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1361
1362         [Qt] Page doesn't get repainted while panning is in progress
1363         https://bugs.webkit.org/show_bug.cgi?id=78602
1364
1365         Reviewed by Simon Hausmann.
1366
1367         The tiling code needed the current visibleContentsRect in order to be
1368         able to create tiles, so we now make sure it gets it. We also needed
1369         to make sure to set the trajectory vector while panning and while the
1370         flicking engine was animating kinetic scrolling.
1371
1372         * UIProcess/API/qt/qquickwebview.cpp:
1373         (QQuickWebViewFlickablePrivate::_q_updateVisibleContentRectAndScale):
1374         (QQuickWebViewPrivate::_q_viewportTrajectoryVectorChanged):
1375         * UIProcess/DrawingAreaProxy.h:
1376         (WebKit::DrawingAreaProxy::setVisibleContentRectTrajectoryVector):
1377         * UIProcess/DrawingAreaProxyImpl.cpp:
1378         (WebKit::DrawingAreaProxyImpl::setVisibleContentRectTrajectoryVector):
1379         * UIProcess/DrawingAreaProxyImpl.h:
1380         (DrawingAreaProxyImpl):
1381         * UIProcess/LayerTreeHostProxy.h:
1382         (LayerTreeHostProxy):
1383         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
1384         (WebKit::LayerTreeHostProxy::setVisibleContentRectTrajectoryVector):
1385         * UIProcess/qt/QtViewportInteractionEngine.cpp:
1386         (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
1387         (WebKit::QtViewportInteractionEngine::flickableMovingStateChanged):
1388         (WebKit):
1389         (WebKit::QtViewportInteractionEngine::panMoveStarted):
1390         (WebKit::QtViewportInteractionEngine::panMoveEnded):
1391         (WebKit::QtViewportInteractionEngine::flickableMovingPositionUpdate):
1392         (WebKit::QtViewportInteractionEngine::panGestureRequestUpdate):
1393         * UIProcess/qt/QtViewportInteractionEngine.h:
1394         (QtViewportInteractionEngine):
1395         * WebProcess/WebPage/LayerTreeHost.h:
1396         (WebKit::LayerTreeHost::setVisibleContentRectTrajectoryVector):
1397         * WebProcess/WebPage/LayerTreeHost.messages.in:
1398         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
1399         (WebKit::LayerTreeHostQt::setVisibleContentRectAndScale):
1400         (WebKit::LayerTreeHostQt::setVisibleContentRectTrajectoryVector):
1401         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
1402         (LayerTreeHostQt):
1403
1404 2012-02-23  Patrick Gansterer  <paroga@webkit.org>
1405
1406         [CMAKE][WK2] Cleanup WebKit2/CMakeLists.txt.
1407         https://bugs.webkit.org/show_bug.cgi?id=76122
1408
1409         Reviewed by Eric Seidel.
1410
1411         * CMakeLists.txt: Removed hardcoded WTF_USE_JSC preprocessor definition.
1412
1413 2012-02-23  Simon Hausmann  <simon.hausmann@nokia.com>
1414
1415         [WK2] Trivial build fix after r108615.
1416
1417         * WebProcess/WebPage/WebPage.cpp:
1418         (WebKit::WebPage::WebPage):
1419
1420 2012-02-22  Michael Tyutyunik  <michael.tyutyunik@nokia.com>
1421
1422         [Qt][WK2] navigationType is missing in new API
1423         https://bugs.webkit.org/show_bug.cgi?id=78867
1424
1425         Reviewed by Simon Hausmann.
1426
1427         In QtWebPagePolicyClient::decidePolicyForNavigationAction()
1428         navigationType argument is dropped by mistake. Adding it back
1429         and make it available through NavigationRequest.
1430
1431         * UIProcess/API/qt/qquickwebview_p.h:
1432         * UIProcess/API/qt/qwebnavigationrequest.cpp:
1433         (QWebNavigationRequestPrivate::QWebNavigationRequestPrivate):
1434         (QWebNavigationRequestPrivate):
1435         (QWebNavigationRequest::QWebNavigationRequest):
1436         (QWebNavigationRequest::navigationType):
1437         * UIProcess/API/qt/qwebnavigationrequest_p.h:
1438         * UIProcess/qt/QtWebPagePolicyClient.cpp:
1439         (QtWebPagePolicyClient::decidePolicyForNavigationAction):
1440         (toQuickWebViewNavigationType):
1441         * UIProcess/qt/QtWebPagePolicyClient.h:
1442         (QtWebPagePolicyClient):
1443
1444 2012-02-22  Anders Carlsson  <andersca@apple.com>
1445
1446         Implement TiledCoreAnimationDrawingAreaProxy::deviceScaleFactorDidChange
1447         https://bugs.webkit.org/show_bug.cgi?id=79297
1448         <rdar://problem/10748510>
1449
1450         Reviewed by Beth Dakin.
1451
1452         * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
1453         (WebKit::TiledCoreAnimationDrawingAreaProxy::deviceScaleFactorDidChange):
1454         Send a message to the web process.
1455
1456         * WebProcess/WebPage/DrawingArea.h:
1457         (WebKit::DrawingArea::setDeviceScaleFactor):
1458         Add empty stub.
1459
1460         * WebProcess/WebPage/DrawingArea.messages.in:
1461         Add SetDeviceScaleFactor message.
1462
1463         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1464         (WebKit::TiledCoreAnimationDrawingArea::setDeviceScaleFactor):
1465         Call WebPage::setDeviceScaleFactor.
1466
1467 2012-02-22  Brady Eidson  <beidson@apple.com>
1468
1469         <rdar://problem/10406044> and https://bugs.webkit.org/show_bug.cgi?id=79279
1470         Synchronous ShouldGoToBackForwardListItem causes lots of WebProcess hangs
1471
1472         Reviewed by Anders Carlsson.
1473
1474         Anytime the WebProcess sends a sync message up to the UI Process a hang can ensue.
1475         
1476         In the case of shouldGoToBackForwardListItem it seems many clients want a back/forward
1477         notification but don't actually want to make a policy decision.
1478
1479         Making it an asynchronous notification instead of a synchronous policy call will remove the
1480         possibility of a hang here.
1481
1482         If clients later decide it is important to have a policy here we should implement a form of
1483         shouldGoToBackForwardListItem in the bundle loader client.
1484
1485         Add a notification "willGoToBackForwardListItem" to the WKPageLoaderClient:
1486         * UIProcess/API/C/WKPage.h:
1487
1488         * UIProcess/WebPageProxy.cpp:
1489         (WebKit::WebPageProxy::initializeLoaderClient): Tell the WebProcess whether it should be
1490           sending the shouldGoToBackForwardListItem or willGoToBackForwardListItem form of this message.
1491         (WebKit::WebPageProxy::shouldGoToBackForwardListItem): 
1492         (WebKit::WebPageProxy::willGoToBackForwardListItem):
1493         * UIProcess/WebPageProxy.h:
1494         * UIProcess/WebPageProxy.messages.in: Add an asynchronous WillGoToBackForwardListItem message
1495
1496         Store a flag in the WebProcess - Sent from the UIProcess - to tell the FrameLoaderClient which form 
1497         of the callback should be used:
1498         * WebProcess/WebPage/WebPage.cpp:
1499         (WebKit::WebPage::WebPage):
1500         * WebProcess/WebPage/WebPage.h:
1501         (WebKit::WebPage::willGoToBackForwardItemCallbackEnabled):
1502         (WebKit::WebPage::setWillGoToBackForwardItemCallbackEnabled):
1503         * WebProcess/WebPage/WebPage.messages.in:
1504
1505         * UIProcess/WebLoaderClient.cpp:
1506         (WebKit::WebLoaderClient::shouldGoToBackForwardListItem): Only consider calling this for
1507           version 0 clients.
1508         (WebKit::WebLoaderClient::willGoToBackForwardListItem): Later clients get this callback.
1509         * UIProcess/WebLoaderClient.h:
1510         (WebLoaderClient):
1511         
1512         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1513         (WebKit::WebFrameLoaderClient::shouldGoToHistoryItem): Send either the synchronous "should" message
1514           or the asynchronous "will" message depending on which the WebProcess was last told that the
1515           UIProcess expects. There is an edge case where the wrong one might be sent because the WebProcess
1516           hasn't received the message about a change in the WKPageLoaderClient yet but that's probably okay;
1517           It seems unlikely that a UIProcess client would ever rapidly change between v0 and other versions
1518           of the loader client and the UIProcess of WebKit2 is equipped to handle that case if it comes up.
1519
1520 2012-02-16  Jon Lee  <jonlee@apple.com>
1521
1522         [WK2] Clearing notifications does not clean up internal state
1523         https://bugs.webkit.org/show_bug.cgi?id=78861
1524         <rdar://problem/10881167>
1525
1526         Reviewed by Anders Carlsson.
1527
1528         * WebProcess/Notifications/WebNotificationManager.cpp:
1529         (WebKit::WebNotificationManager::clearNotifications): This function was missing removing the notification
1530         entries from the other maps.
1531         (WebKit::WebNotificationManager::didDestroyNotification): When the notification is destroyed, it should
1532         also be removed from the context map.
1533         (WebKit::WebNotificationManager::didCloseNotifications): Refactor to pull out the code that removes
1534         a provided notification from the context map.
1535         (WebKit::WebNotificationManager::removeNotificationFromContextMap): Find the notification in the map, and
1536         remove it. If the map is empty, get rid of the entry.
1537         * WebProcess/Notifications/WebNotificationManager.h:
1538         (WebNotificationManager):
1539
1540 2012-02-22  Jon Lee  <jonlee@apple.com>
1541
1542         Code cleanup in WebNotificationManager (79285)
1543         https://bugs.webkit.org/show_bug.cgi?id=79285
1544         <rdar://problem/10914522>
1545
1546         Reviewed by Anders Carlsson.
1547
1548         * WebProcess/Notifications/WebNotificationManager.cpp:
1549         (WebKit::WebNotificationManager::show): Simplify adding a blank vector to the map using .add(),
1550         similar to what is found in WebNotificationClient.mm in WebKit 1.
1551
1552 2012-02-21  Ryosuke Niwa  <rniwa@webkit.org>
1553
1554         Remove the remaining uses of CSSStyleDeclaration in Editor
1555         https://bugs.webkit.org/show_bug.cgi?id=78939
1556
1557         Reviewed by Enrica Casucci.
1558
1559         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
1560         (WebKit::WebEditorClient::shouldApplyStyle):
1561         * WebProcess/WebCoreSupport/WebEditorClient.h:
1562         (WebEditorClient):
1563
1564 2012-02-22  Martin Robinson  <mrobinson@igalia.com>
1565
1566         [GTK] Clean build is broken when using make -j
1567         https://bugs.webkit.org/show_bug.cgi?id=76388
1568
1569         * GNUmakefile.am: Add some WebKit2 sources to global sources lists
1570         so that we can refer to them in separate GNUmakefiles.
1571
1572 2012-02-22  Antaryami Pandia  <antaryami.pandia@motorola.com>
1573
1574         [GTK][WK2] Add WebGL WebSetting.
1575         https://bugs.webkit.org/show_bug.cgi?id=79217
1576
1577         Reviewed by Martin Robinson.
1578
1579         Add a WebSetting to enable/disable Webgl.
1580
1581         * UIProcess/API/gtk/WebKitSettings.cpp:
1582         (webKitSettingsSetProperty):
1583         (webKitSettingsGetProperty):
1584         (webkit_settings_class_init):
1585         (webkit_settings_set_enable_webaudio):
1586         (webkit_settings_get_enable_webgl):
1587         (webkit_settings_set_enable_webgl):
1588         * UIProcess/API/gtk/WebKitSettings.h:
1589         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
1590         * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
1591         (testWebKitSettings):
1592
1593 2012-02-22  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1594
1595         [Qt] Disregard previous backing store as soon as possible
1596         https://bugs.webkit.org/show_bug.cgi?id=79232
1597
1598         Reviewed by Simon Hausmann and No'am Rosenthal.
1599
1600         Between creating the new backing store and painting the content,
1601         we do not want to drop the previous one as that might result in
1602         briefly seeing flickering as the old tiles may be dropped before
1603         something replaces them.
1604
1605         But we do need to drop it at some point and we need to make sure
1606         to not spike the memory usage before of this.
1607
1608         What we now do, is to store the previous backing store as before,
1609         but drop all tiles which are not visible and then drop it as soon
1610         as the visible rect (which might change due if followed by a quick
1611         panning) has been fully covered by tiles.
1612
1613         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
1614         (WebCore::WebGraphicsLayer::setContentsScale):
1615         (WebCore::WebGraphicsLayer::updateContentBuffers):
1616
1617 2012-02-22  Michael Brüning  <michael.bruning@nokia.com>
1618
1619         [Qt][WK2] Implement proxy authentication handling.
1620         https://bugs.webkit.org/show_bug.cgi?id=78792
1621
1622         Reviewed by Simon Hausmann.
1623
1624         This patch corrects two bugs with the previous implementation:
1625         1. The signal proxyAuthenticationRequired was not connected to a
1626            slot.
1627         2. The slot onProxyAuthenticationRequired had the wrong parameters. 
1628
1629         * WebProcess/qt/QtNetworkAccessManager.cpp:
1630         (WebKit::QtNetworkAccessManager::QtNetworkAccessManager):
1631         (WebKit::QtNetworkAccessManager::onProxyAuthenticationRequired):
1632         * WebProcess/qt/QtNetworkAccessManager.h: Added include.
1633         (QtNetworkAccessManager):
1634
1635 2012-02-22  Kenneth Rohde Christiansen  <kenneth@webkit.org>
1636
1637         Merge setVisibleRectTrajectoryVector and adjustVisibleRect to
1638         the more descriptive coverWithTilesIfNeeded
1639         https://bugs.webkit.org/show_bug.cgi?id=79230
1640
1641         Reviewed by Simon Hausmann.
1642
1643         Replace use by coverWithTilesIfNeeded().
1644
1645         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
1646         (WebCore::WebGraphicsLayer::setVisibleContentRectTrajectoryVector):
1647         (WebCore::WebGraphicsLayer::adjustVisibleRect):
1648         (WebCore::WebGraphicsLayer::computeTransformedVisibleRect):
1649
1650 2012-02-22  Zalan Bujtas  <zbujtas@gmail.com>
1651
1652         [Qt][WK2] Add frame flattening setting to QWebPreferences.
1653         https://bugs.webkit.org/show_bug.cgi?id=79099
1654
1655         Reviewed by Simon Hausmann.
1656
1657         Frame flattening is enabled by default for Qt WebKit2.
1658
1659         * UIProcess/API/qt/qquickwebview.cpp:
1660         (QQuickWebViewPrivate::initialize):
1661         * UIProcess/API/qt/qwebpreferences.cpp:
1662         (QWebPreferencesPrivate::testAttribute):
1663         (QWebPreferencesPrivate::setAttribute):
1664         (QWebPreferences::setNavigatorQtObjectEnabled):
1665         (QWebPreferences::frameFlatteningEnabled):
1666         (QWebPreferences::setFrameFlatteningEnabled):
1667         * UIProcess/API/qt/qwebpreferences_p.h:
1668
1669 2012-02-22  Ryosuke Niwa  <rniwa@webkit.org>
1670
1671         Remove the remaining uses of CSSStyleDeclaration in Editor
1672         https://bugs.webkit.org/show_bug.cgi?id=78939
1673
1674         Reviewed by Enrica Casucci.
1675
1676         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
1677         (WebKit::WebEditorClient::shouldApplyStyle):
1678         * WebProcess/WebCoreSupport/WebEditorClient.h:
1679         (WebEditorClient):
1680
1681 2012-02-21  Carlos Garcia Campos  <cgarcia@igalia.com>
1682
1683         [GTK] Null ResourceErrors are encoded/decoded as empty ResourceErrors
1684         https://bugs.webkit.org/show_bug.cgi?id=79120
1685
1686         Reviewed by Martin Robinson.
1687
1688         * Shared/gtk/WebCoreArgumentCodersGtk.cpp:
1689         (CoreIPC::::encode): Encode a boolean to indicate whether it's a
1690         Null error.
1691         (CoreIPC::::decode): Check whether the error is Null and do not
1692         continue decoding in such case.
1693
1694 2012-02-21  No'am Rosenthal  <noam.rosenthal@nokia.com>
1695
1696         [Qt][WK2] Draw tiles of previous contents-scale for opaque layers if they don't intersect with previous tiles
1697         https://bugs.webkit.org/show_bug.cgi?id=78962
1698
1699         Only avoid painting old-scale tiles in semi-transparent situtations if the old
1700         tiles intersect with existing tiles.
1701
1702         Reviewed by Kenneth Rohde Christiansen.
1703
1704         * UIProcess/qt/LayerBackingStore.cpp:
1705         (WebKit::LayerBackingStore::paintToTextureMapper):
1706
1707 2012-02-21  No'am Rosenthal  <noam.rosenthal@nokia.com>
1708
1709         [Qt] Previous web page appears outside content rect
1710         https://bugs.webkit.org/show_bug.cgi?id=78816
1711
1712         Apply a clip on painted tiles if some of the tiles fall outside of the target rect.
1713
1714         Reviewed by Kenneth Rohde Christiansen.
1715
1716         * UIProcess/qt/LayerBackingStore.cpp:
1717         (WebKit::LayerBackingStore::paintToTextureMapper):
1718
1719 2012-02-21  No'am Rosenthal  <noam.rosenthal@nokia.com>
1720
1721         [Qt][WK2] Accelerated animations don't work on Mac
1722         https://bugs.webkit.org/show_bug.cgi?id=78963
1723
1724         Problem came from using a non-RunLoop timer.
1725         Remove the unused viewportUpdateTimer, and use the existing animationTimer instead.
1726         Use a continuous timer that we only stop when animations stop.
1727
1728         Reviewed by Kenneth Rohde Christiansen.
1729
1730         * UIProcess/LayerTreeHostProxy.h:
1731         (LayerTreeHostProxy):
1732         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
1733         (WebKit::LayerTreeHostProxy::LayerTreeHostProxy):
1734         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
1735         (WebKit):
1736         (WebKit::LayerTreeHostProxy::syncAnimations):
1737
1738 2012-02-21  Sam Weinig  <sam@webkit.org>
1739
1740         Attempt to fix the Snow Leopard build.
1741
1742         * Configurations/Base.xcconfig:
1743
1744 2012-02-21  Sam Weinig  <sam@webkit.org>
1745
1746         Use libc++ when building with Clang on Mac
1747         https://bugs.webkit.org/show_bug.cgi?id=78981
1748
1749         Reviewed by Dan Bernstein.
1750
1751         * Configurations/Base.xcconfig:
1752
1753 2012-02-21  Andras Becsi  <andras.becsi@nokia.com>
1754
1755         [Qt][WK2] Get rid of the dependency to QtWidgets
1756         https://bugs.webkit.org/show_bug.cgi?id=76276
1757
1758         Reviewed by Simon Hausmann.
1759
1760         * Target.pri:
1761         * UIProcess/API/qt/tests/qmltests/tst_qmltests.cpp:
1762         (main):
1763         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
1764         * UIProcess/API/qt/tests/tests.pri:
1765         * UIProcess/API/qt/tests/util.h:
1766
1767 2012-02-20  Martin Robinson  <mrobinson@igalia.com>
1768
1769         [UNIX] Plugin information fields are not interpreted as UTF-8
1770         https://bugs.webkit.org/show_bug.cgi?id=78635
1771
1772         Reviewed by Gustavo Noronha Silva.
1773
1774         Interpret plugin metadata as UTF8 aways. This matches the behavior
1775         of Chromium and the Totem plugin.
1776
1777         * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
1778         (WebKit::NetscapePluginModule::getPluginInfoForLoadedPlugin): Use String::fromUTF8.
1779
1780 2012-02-20  Carlos Garcia Campos  <cgarcia@igalia.com>
1781
1782         [GTK] Adding SOUP_TYPE_PROXY_RESOLVER_DEFAULT feature to soup session makes WebProcess to hang
1783         https://bugs.webkit.org/show_bug.cgi?id=79036
1784
1785         Reviewed by Martin Robinson.
1786
1787         This looks like a bug in gobject. Initializing the WebProcess
1788         before creating the soup session seems to fix the problem. It's
1789         actually a workaround, but initializing the WebProcess as sson as
1790         possible it's a good idea in any case.
1791
1792         * WebProcess/gtk/WebProcessMainGtk.cpp:
1793         (WebKit::WebProcessMainGtk):
1794
1795 2012-02-20  Michael Brüning  <michael.bruning@nokia.com>
1796
1797         [Qt][WK2] Implement proxy authentication handling.
1798         https://bugs.webkit.org/show_bug.cgi?id=78792
1799
1800         Reviewed by Simon Hausmann.
1801
1802         This patch implements the proxy authentication handling
1803         for the Qt port in a similar matter to the http authentication
1804         implementation.
1805
1806         Since there is a need to pass the proxy port, which is of type uint16_t,
1807         from the WebProcess to the UIProcess, an encoder and a decoder for
1808         this type was added because it did not exist.
1809         
1810         The message that was added to the WebPageProxy is called synchronously
1811         as this is needed by the implementation of the network access manager
1812         and has also been implemented this way already for the http 
1813         authentication.
1814
1815         * Platform/CoreIPC/ArgumentDecoder.cpp:
1816         (CoreIPC::ArgumentDecoder::decodeUInt16):
1817         (CoreIPC):
1818         * Platform/CoreIPC/ArgumentDecoder.h:
1819         (ArgumentDecoder):
1820         (CoreIPC::ArgumentDecoder::decode):
1821         (CoreIPC):
1822         * Platform/CoreIPC/ArgumentEncoder.cpp:
1823         (CoreIPC::ArgumentEncoder::encodeUInt16):
1824         (CoreIPC):
1825         * Platform/CoreIPC/ArgumentEncoder.h:
1826         (ArgumentEncoder):
1827         (CoreIPC::ArgumentEncoder::encode):
1828         (CoreIPC):
1829         * UIProcess/API/qt/qquickwebview.cpp:
1830         (QQuickWebViewPrivate::QQuickWebViewPrivate):
1831         (QQuickWebViewPrivate::handleProxyAuthenticationRequiredRequest):
1832         (QQuickWebViewExperimental::proxyAuthenticationDialog):
1833         (QQuickWebViewExperimental::setProxyAuthenticationDialog):
1834         * UIProcess/API/qt/qquickwebview_p.h:
1835         * UIProcess/API/qt/qquickwebview_p_p.h:
1836         (QQuickWebViewPrivate):
1837         * UIProcess/PageClient.h:
1838         (PageClient):
1839         * UIProcess/WebPageProxy.cpp:
1840         (WebKit::WebPageProxy::proxyAuthenticationRequiredRequest):
1841         (WebKit):
1842         * UIProcess/WebPageProxy.h:
1843         (WebPageProxy):
1844         * UIProcess/WebPageProxy.messages.in:
1845         * UIProcess/qt/QtDialogRunner.cpp:
1846         (ProxyAuthenticationDialogContextObject):
1847         (ProxyAuthenticationDialogContextObject::ProxyAuthenticationDialogContextObject):
1848         (ProxyAuthenticationDialogContextObject::hostname):
1849         (ProxyAuthenticationDialogContextObject::port):
1850         (ProxyAuthenticationDialogContextObject::prefilledUsername):
1851         (ProxyAuthenticationDialogContextObject::accept):
1852         (ProxyAuthenticationDialogContextObject::reject):
1853         (QtDialogRunner::initForProxyAuthentication):
1854         * UIProcess/qt/QtDialogRunner.h:
1855         (QtDialogRunner):
1856         * UIProcess/qt/QtPageClient.cpp:
1857         (QtPageClient::handleProxyAuthenticationRequiredRequest):
1858         * UIProcess/qt/QtPageClient.h:
1859         (QtPageClient):
1860         * WebProcess/WebPage/DecoderAdapter.cpp:
1861         (WebKit::DecoderAdapter::decodeUInt16):
1862         (WebKit):
1863         * WebProcess/WebPage/DecoderAdapter.h:
1864         (DecoderAdapter):
1865         * WebProcess/WebPage/EncoderAdapter.cpp:
1866         (WebKit::EncoderAdapter::encodeUInt16):
1867         (WebKit):
1868         * WebProcess/WebPage/EncoderAdapter.h:
1869         (EncoderAdapter):
1870         * WebProcess/qt/QtNetworkAccessManager.cpp:
1871         (WebKit::QtNetworkAccessManager::onProxyAuthenticationRequired):
1872         (WebKit):
1873         * WebProcess/qt/QtNetworkAccessManager.h:
1874         (QtNetworkAccessManager):
1875
1876 2012-02-20  Patrick Gansterer  <paroga@webkit.org>
1877
1878         [CMake] Update and sort list of source files.
1879
1880         * CMakeLists.txt:
1881
1882 2012-02-20  Martin Robinson  <mrobinson@igalia.com>
1883
1884         Fix WebKit2GTK+ for 'make distcheck'.
1885
1886         Instead of conditionally including WebKit2 GNUmakefiles, always
1887         include them and conditionally activate the final targets.
1888
1889         * GNUmakefile.am:
1890         * UIProcess/API/gtk/tests/GNUmakefile.am:
1891
1892 2012-02-20  Martin Robinson  <mrobinson@igalia.com>
1893
1894         [GTK][WK2] WebKit2 does not build if gtk-unix-printing-3.0 is not available
1895         https://bugs.webkit.org/show_bug.cgi?id=79011
1896
1897         Fix the build when gtk-unix-printing-3.0 is not present.
1898
1899         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
1900         (webkitPrintOperationRunDialog):
1901         (webkitPrintOperationRunDialogForFrame):
1902         * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
1903         (WebKit::WebPrintOperationGtk::create):
1904
1905 2012-02-18  Dan Bernstein  <mitz@apple.com>
1906
1907         <rdar://problem/10891801> BackingStore::scroll() unnecessarily copies pixels around
1908         https://bugs.webkit.org/show_bug.cgi?id=78976
1909
1910         Reviewed by Anders Carlsson.
1911
1912         Rather than move pixels in the backing store in response to scrolling, we can maintain a
1913         mapping, for the most recently scrolled rect, from backing store coordinates to view
1914         client coordinates.
1915
1916         * UIProcess/BackingStore.h:
1917         * UIProcess/mac/BackingStoreMac.mm:
1918         (WebKit::BackingStore::performWithScrolledRectTransform): Added. Given a block to be
1919         performed on a rect, divides the rect into parts such that for each part the mapping from
1920         backing store coordinates to client coordinates is a (uniform) translation, and performs
1921         the block on that part, passing it the translation that applies to the part.
1922         (WebKit::BackingStore::resetScrolledRect): Added. Copies everything in the scrolled rect
1923         back to where it should be under the identity map, and resets the scrolled rect and offset.
1924         (WebKit::BackingStore::paint): Changed to call through performWithScrolledRectTransform().
1925         (WebKit::BackingStore::incorporateUpdate): Ditto.
1926         (WebKit::BackingStore::scroll): Now instead of copying pixels, just updates the scrolled
1927         rect and offset.
1928
1929 2012-02-17  No'am Rosenthal  <noam.rosenthal@nokia.com>
1930
1931         [Qt][WK2] Allow opaque tiles
1932         https://bugs.webkit.org/show_bug.cgi?id=78809
1933
1934         Apply the SupportsAlpha flag only when the buffers actually have alpha.
1935
1936         Reviewed by Kenneth Rohde Christiansen.
1937
1938         * Shared/ShareableBitmap.h:
1939         (ShareableBitmap):
1940         * Shared/qt/ShareableBitmapQt.cpp:
1941         * UIProcess/qt/LayerBackingStore.cpp:
1942         (WebKit::LayerBackingStoreTile::swapBuffers):
1943
1944 2012-02-17  Adam Roben  <aroben@apple.com>
1945
1946         Clang build fix after r108119
1947
1948         * WebProcess/WebProcess.cpp:
1949         (WebKit::randomCrashThread): Annotate this function with NO_RETURN_DUE_TO_CRASH.
1950
1951 2012-02-17  Kalev Lember  <kalevlember@gmail.com>
1952
1953         Remove unused parameters from WTF threading API
1954         https://bugs.webkit.org/show_bug.cgi?id=78389
1955
1956         Reviewed by Adam Roben.
1957
1958         waitForThreadCompletion() had an out param 'void **result' to get the
1959         'void *' returned by ThreadFunction. However, the implementation in
1960         ThreadingWin.cpp ignored the out param, not filling it in. This had
1961         led to a situation where none of the client code made use of the param
1962         and just ignored it.
1963
1964         To clean this up, the patch changes the signature of ThreadFunction to
1965         return void instead of void* and drops the the unused 'void **result'
1966         parameter from waitForThreadCompletion. Also, all client code is
1967         updated for the API change.
1968
1969         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=78389 , even
1970         though the change only affects internal API, Safari is using it
1971         directly and we'll need to keep the old versions around for ABI
1972         compatibility. For this, the patch adds compatibility wrappers with
1973         the old ABI.
1974
1975         * Platform/WorkQueue.h:
1976         (WorkQueue):
1977         * Platform/gtk/WorkQueueGtk.cpp:
1978         (WorkQueue::startWorkQueueThread):
1979         * UIProcess/Launcher/mac/ThreadLauncherMac.mm:
1980         (WebKit::webThreadBody):
1981         * UIProcess/Launcher/qt/ThreadLauncherQt.cpp:
1982         (WebKit::webThreadBody):
1983         * UIProcess/Launcher/win/ThreadLauncherWin.cpp:
1984         (WebKit::webThreadBody):
1985         * WebProcess/WebProcess.cpp:
1986         (WebKit::randomCrashThread):
1987         * win/WebKit2.def:
1988         * win/WebKit2CFLite.def:
1989
1990 2012-02-17  Mihnea Ovidenie  <mihnea@adobe.com>
1991
1992         CSS regions enabled by default
1993         https://bugs.webkit.org/show_bug.cgi?id=78525
1994
1995         Reviewed by David Hyatt.
1996
1997         Add a runtime preference to enable/disable regions functionality at runtime(WebKitCSSRegionsEnabled).
1998         CSSRegions are still enabled by default.
1999         In DRT, use layoutTestController.overridePreference("WebKitCSSRegionsEnabled", "0") to disable the css regions functionality.
2000
2001         * Shared/WebPreferencesStore.h:
2002         (WebKit):
2003         * UIProcess/API/C/WKPreferences.cpp:
2004         (WKPreferencesSetCSSRegionsEnabled):
2005         (WKPreferencesGetCSSRegionsEnabled):
2006         * UIProcess/API/C/WKPreferencesPrivate.h:
2007         * WebProcess/InjectedBundle/InjectedBundle.cpp:
2008         (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
2009         * WebProcess/WebPage/WebPage.cpp:
2010         (WebKit::WebPage::updatePreferences):
2011
2012 2012-02-17  Enrica Casucci  <enrica@apple.com>
2013
2014         Refactor DragData class to use PlatformStrategies in the Mac implementation.
2015         https://bugs.webkit.org/show_bug.cgi?id=78768
2016
2017         Reviewed by Darin Adler.
2018
2019         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: Added color() method.
2020         (WebKit::WebPlatformStrategies::color):
2021         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2022
2023 2012-02-17  Martin Robinson  <mrobinson@igalia.com>
2024
2025         Fix some warnings encountered during the GTK+ build
2026         https://bugs.webkit.org/show_bug.cgi?id=78911
2027
2028         Reviewed by Xan Lopez.
2029
2030         * UIProcess/API/gtk/WebKitLoaderClient.cpp:
2031         (attachLoaderClientToView): Initialize a new member of the loader client struct.
2032
2033 2012-02-17  Carlos Garcia Campos  <cgarcia@igalia.com>
2034
2035         [GTK] Allow printing scaled pages in WebKit2 for printers that don't support it
2036         https://bugs.webkit.org/show_bug.cgi?id=78823
2037
2038         Reviewed by Gustavo Noronha Silva.
2039
2040         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
2041         (webkitPrintOperationRunDialogUnix): Enable scale option in print
2042         dialog.
2043         * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
2044         (WebKit::WebPrintOperationGtk::WebPrintOperationGtk): Initialize
2045         manual scale to 1.
2046         (WebKit::WebPrintOperationGtk::rotatePageIfNeeded): Renamed and
2047         moved the needs rotate check here as an early return.
2048         (WebKit::WebPrintOperationGtk::prepareContextToDraw): Scale the
2049         page according to the manual scale factor.
2050         (WebKit::WebPrintOperationGtk::renderPage): Move rotatePage to
2051         prepareContextToDraw.
2052         * WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
2053
2054 2012-02-17  Carlos Garcia Campos  <cgarcia@igalia.com>
2055
2056         [GTK] Allow printing multiple copies in WebKit2 for printers that don't support it
2057         https://bugs.webkit.org/show_bug.cgi?id=78805
2058
2059         Reviewed by Gustavo Noronha Silva.
2060
2061         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
2062         (webkitPrintOperationRunDialogUnix): Enable multiple copies and
2063         collate options in print dialog.
2064         * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
2065         (WebKit::PrintPagesData::PrintPagesData): Initialize number of
2066         collated and uncolated copies done and total.
2067         (WebKit::PrintPagesData::collatedCopiesLeft): Helper function that
2068         returns the number of collated copies left to do.
2069         (WebKit::PrintPagesData::uncollatedCopiesLeft): Helper function
2070         that returns the number of uncollated copies left to do.
2071         (WebKit::PrintPagesData::copiesLeft): Helper function
2072         that returns the number of collated or uncollated copies left to
2073         do.
2074         (WebKit::PrintPagesData::incrementPageSequence): Do not finish the
2075         print if there are uncollated copies left, and do not increment
2076         sheet number if there are collated copies left.
2077         (WebKit::WebPrintOperationGtk::WebPrintOperationGtk): Initialize
2078         m_manualCopies to 1 and m_manualCollateCopies to false.
2079         * WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
2080
2081 2012-02-17  Carlos Garcia Campos  <cgarcia@igalia.com>
2082
2083         [GTK] Allow printing pages in reverse order in WebKit2 for printers that don't support it
2084         https://bugs.webkit.org/show_bug.cgi?id=78799
2085
2086         Reviewed by Gustavo Noronha Silva.
2087
2088         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
2089         (webkitPrintOperationRunDialogUnix): Enable printing in reverse
2090         order option in print dialog.
2091         * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
2092         (WebKit::PrintPagesData::PrintPagesData): Initialize sheetNumber
2093         and lastPagePosition depending on whether printing is in reverse
2094         order or not.
2095         (WebKit::PrintPagesData::incrementPageSequence): Use a negative
2096         increment step when printing in reverse order. Fix page
2097         incrementing when printing only odd/even pages broken in previous
2098         commit due to merge conflicts.
2099         (WebKit::WebPrintOperationGtk::WebPrintOperationGtk): Initialize
2100         reverse printing to false.
2101         * WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
2102
2103 2012-02-17  Carlos Garcia Campos  <cgarcia@igalia.com>
2104
2105         [GTK] Allow printing only odd/even pages in WebKit2 for printers that don't support it
2106         https://bugs.webkit.org/show_bug.cgi?id=78793
2107
2108         Reviewed by Gustavo Noronha Silva.
2109
2110         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
2111         (webkitPrintOperationRunDialogUnix): Enable print odd/even pages
2112         option in print dialog.
2113         * WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
2114         * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
2115         (WebKit::PrintPagesData::PrintPagesData): Add lastPagePosition and
2116         initialize it depending on the page set.
2117         (WebKit::PrintPagesData::incrementPageSequence): Use 2 step
2118         increment when printing only odd/even pages.
2119         (WebKit::WebPrintOperationGtk::WebPrintOperationGtk): Initialize
2120         m_manualPageSet to GTK_PAGE_SET_ALL.
2121
2122 2012-02-17  Carlos Garcia Campos  <cgarcia@igalia.com>
2123
2124         [GTK] Allow printing multiple pages per sheet in WebKit2 for printers that don't support it
2125         https://bugs.webkit.org/show_bug.cgi?id=78715
2126
2127         Reviewed by Gustavo Noronha Silva.
2128
2129         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
2130         (webkitPrintOperationRunDialogUnix): Enable multiple pages per
2131         sheet options in print dialog.
2132         * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
2133         (WebKit::PrintPagesData::PrintPagesData): Initialize sheetNumber
2134         and numberOfSheets. Move pagePosition to WebPrintOperationGtk.
2135         (WebKit::PrintPagesData::incrementPageSequence): Increment current
2136         sheet and page position.
2137         (WebKit::WebPrintOperationGtk::WebPrintOperationGtk):
2138         (WebKit::WebPrintOperationGtk::currentPageIsFirstPageOfSheet):
2139         Helper function to check whether current pages is the first one of
2140         the current sheet.
2141         (WebKit::WebPrintOperationGtk::currentPageIsLastPageOfSheet):
2142         Helper function to check whether current pages is the last one of
2143         the current sheet.
2144         (WebKit::WebPrintOperationGtk::getRowsAndColumnsOfPagesPerSheet):
2145         Returns the number of rows and columns of pages per sheet.
2146         (WebKit::WebPrintOperationGtk::getPositionOfPageInSheet): Returns
2147         the row and column number of the current page in the current sheet.
2148         (WebKit::WebPrintOperationGtk::prepareContextToDraw): Translate,
2149         scale and rotate accordingly to render every page in the right
2150         place of the sheet.
2151         (WebKit::WebPrintOperationGtk::renderPage): Call
2152         prepareContextToDraw() before drawing the page.
2153         * WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
2154         (WebKit::WebPrintOperationGtk::setNumberOfPagesToPrint):
2155         (WebKit::WebPrintOperationGtk::pagePosition):
2156         (WebKit::WebPrintOperationGtk::setPagePosition):
2157         (WebKit::WebPrintOperationGtk::numberUp):
2158         (WebKit::WebPrintOperationGtk::numberUpLayout):
2159
2160 2012-02-17  Carlos Garcia Campos  <cgarcia@igalia.com>
2161
2162         [GTK] Rename WebKitPrintOperation::done signal to ::finished in WebKit2
2163         https://bugs.webkit.org/show_bug.cgi?id=78893
2164
2165         Reviewed by Gustavo Noronha Silva.
2166
2167         And it's not emitted anynmore when the print dialog has been
2168         cancelled. Since it's not possible to know whether the print
2169         dialog was cancelled or not, the enum WebKitPrintOperationResponse
2170         has been added, with Print and Cancel values, and it's used as
2171         return value of webkit_print_operation_run_dialog().
2172
2173         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
2174         (webkit_print_operation_class_init): Rename done as finished.
2175         (webkitPrintOperationRunDialogUnix): Return a
2176         WebKitPrintOperationResponse instead of bool.
2177         (webkitPrintOperationRunDialogWin32): Ditto.
2178         (drawPagesForPrintingCompleted): Emit finished instead of done.
2179         (webkitPrintOperationRunDialogForFrame): Do not emit finished if
2180         the dialog was cancelled and return a WebKitPrintOperationResponse.
2181         (webkit_print_operation_run_dialog): Return
2182         WebKitPrintOperationResponse.
2183         * UIProcess/API/gtk/WebKitPrintOperation.h: Add
2184         WebKitPrintOperationResponse enum.
2185         * UIProcess/API/gtk/WebKitPrintOperationPrivate.h:
2186         * UIProcess/API/gtk/WebKitWebView.cpp:
2187         (webkitWebViewPrintFrame): Check whether the dialog has been
2188         cancelled or not and connect to finish when the print operation is
2189         in progress to release the print operation object when printing
2190         finishes.
2191         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add
2192         WebKitPrintOperationResponse symbol.
2193         * UIProcess/API/gtk/tests/TestPrinting.cpp:
2194         (testPrintOperationPrintFinished): Use finished instead of done.
2195         (testPrintOperationPrint): Ditto.
2196
2197 2012-02-17  Carlos Garcia Campos  <cgarcia@igalia.com>
2198
2199         [GTK] Add webkit_print_operation_print() to WebKit2 GTK+ API
2200         https://bugs.webkit.org/show_bug.cgi?id=76536
2201
2202         Reviewed by Gustavo Noronha Silva.
2203
2204         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
2205         (webkitPrintOperationPrintPagesForFrame): Helper function to call
2206         WebPageProxy::drawPagesForPrinting using the given
2207         GtkPrintSettings and GtkPageSetup.
2208         (webkitPrintOperationRunDialogForFrame): Use
2209         webkitPrintOperationPrintPagesForFrame().
2210         (webkit_print_operation_print): Print directly using current
2211         GtkPrintSettings and GtkPageSetup without showing the print
2212         dialog.
2213         * UIProcess/API/gtk/WebKitPrintOperation.h:
2214         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
2215         * UIProcess/API/gtk/tests/GNUmakefile.am:
2216         * UIProcess/API/gtk/tests/TestPrinting.cpp:
2217         (testPrintOperationPrintLoadChanged):
2218         (testPrintOperationPrintDone):
2219         (testPrintOperationPrintPrinter):
2220         (testPrintOperationPrint):
2221         (beforeAll):
2222         (afterAll):
2223
2224 2012-02-17  No'am Rosenthal  <noam.rosenthal@nokia.com>
2225
2226         [Qt][WK2] Allow partial updates
2227         https://bugs.webkit.org/show_bug.cgi?id=78824
2228
2229         Instead of using UpdateInfo to fill the entire tile's texture, we use it as a patch that
2230         contains only the dirty rectangle of the current paint. This requires a lot less memory
2231         for small updates, for example when typing a text in an input field.
2232         This shows a significant reduction in overhead when testing on Mac with Instruments.
2233
2234         Reviewed by Simon Hausmann.
2235
2236         * UIProcess/qt/LayerBackingStore.cpp:
2237         (WebKit::LayerBackingStoreTile::swapBuffers):
2238         (WebKit::LayerBackingStoreTile::setBackBuffer):
2239         (WebKit):
2240         (WebKit::LayerBackingStore::updateTile):
2241         * UIProcess/qt/LayerBackingStore.h:
2242         (LayerBackingStoreTile):
2243         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2244         (WebKit::LayerTreeHostProxy::updateTileForLayer):
2245         * WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp:
2246         (WebKit::TiledBackingStoreRemoteTile::updateBackBuffer):
2247
2248 2012-02-16  Carlos Garcia Campos  <cgarcia@igalia.com>
2249
2250         [GTK] Make sure print operation object is alive until printing finishes in WebKit2
2251         https://bugs.webkit.org/show_bug.cgi?id=78829
2252
2253         Reviewed by Martin Robinson.
2254
2255         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
2256         (drawPagesForPrintingCompleted): Adopt the WebKitPrintOperation
2257         reference so that it's released when the callback finishes.
2258         (webkitPrintOperationRunDialogForFrame): Pass a reference of
2259         WebKitPrintOperation to the printing callback.
2260
2261 2012-02-15  Geoffrey Garen  <ggaren@apple.com>
2262
2263         Made Weak<T> single-owner, adding PassWeak<T>
2264         https://bugs.webkit.org/show_bug.cgi?id=78740
2265
2266         Reviewed by Sam Weinig.
2267
2268         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
2269         (WebKit::NPRuntimeObjectMap::getOrCreateJSObject): Use raw pointer and
2270         PassWeak<T>, as required by our new hash map API.
2271
2272 2012-02-16  Sergio Villar Senin  <svillar@igalia.com>
2273
2274         [soup] Move important SoupSession feature initialization to WebCore
2275         https://bugs.webkit.org/show_bug.cgi?id=68602
2276
2277         Reviewed by Martin Robinson.
2278
2279         Moved content sniffer and decoder initialization from the
2280         WebProcess to WebCore because network stuff will not work as
2281         expected without them.
2282
2283         No new tests required as we're just moving stuff from the
2284         WebProcess to WebCore.
2285
2286         * WebProcess/gtk/WebProcessMainGtk.cpp:
2287         (WebKit::WebProcessMainGtk):
2288
2289 2012-02-16  Philippe Normand  <pnormand@igalia.com>
2290
2291         Unreviewed, rolling out r107941.
2292         http://trac.webkit.org/changeset/107941
2293         https://bugs.webkit.org/show_bug.cgi?id=68602
2294
2295         Broke 23 http tests on GTK
2296
2297         * WebProcess/gtk/WebProcessMainGtk.cpp:
2298         (WebKit::WebProcessMainGtk):
2299
2300 2012-02-16  No'am Rosenthal  <noam.rosenthal@nokia.com>
2301
2302         [Texmap] Improve the way we deal with BGRA extension
2303         https://bugs.webkit.org/show_bug.cgi?id=78822
2304
2305         Get rid of swizzling in the web process. Instead, we moved swizzling back to
2306         TextureMapperGL, as we're moving towards a setup where textures are uploaded
2307         in the web process.
2308
2309         Reviewed by Kenneth Rohde Christiansen.
2310
2311         * UIProcess/qt/LayerBackingStore.cpp:
2312         (WebKit::LayerBackingStoreTile::swapBuffers):
2313         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2314         (WebKit::LayerTreeHostProxy::createImage):
2315         * WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp:
2316         (WebKit::TiledBackingStoreRemoteTile::updateBackBuffer):
2317         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
2318         (WebKit::LayerTreeHostQt::adoptImageBackingStore):
2319
2320 2012-02-16  Carlos Garcia Campos  <cgarcia@igalia.com>
2321
2322         Unreviewed. Fix WebKit2 GTK+ build after r107947.
2323
2324         * UIProcess/API/gtk/WebKitPrintOperation.cpp:
2325         (webkitPrintOperationRunDialogForFrame):
2326
2327 2012-02-16  Alexander Færøy  <ahf@0x90.dk>
2328
2329         [Qt] Fix linking in debug builds on Mac OS X
2330         https://bugs.webkit.org/show_bug.cgi?id=78811
2331
2332         Reviewed by Kenneth Rohde Christiansen.
2333
2334         * UIProcess/API/qt/tests/bytearraytestdata.h:
2335
2336 2012-02-16  Carlos Garcia Campos  <cgarcia@igalia.com>
2337
2338         [GTK] Page content is incorrectly translated whenh rendering pages for printing in WebKit2
2339         https://bugs.webkit.org/show_bug.cgi?id=78712
2340
2341         Reviewed by Martin Robinson.
2342
2343         * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
2344         (WebKit::WebPrintOperationGtk::enumeratePrintersFunction):
2345         Simplify the code to select the printer.
2346         (WebKit::WebPrintOperationGtk::renderPage): Call cairo_save()
2347         before rendering the page and cairo_restore() when page has been
2348         rendered.
2349
2350 2012-02-16  Carlos Garcia Campos  <cgarcia@igalia.com>
2351
2352         [GTK] Add WebKitPrintOperation to WebKit2 GTK+ API
2353         https://bugs.webkit.org/show_bug.cgi?id=76448
2354
2355         Reviewed by Martin Robinson.
2356
2357         * GNUmakefile.am: Add new files to compilation.
2358         * UIProcess/API/gtk/WebKitDefines.h:
2359         * UIProcess/API/gtk/WebKitPrintOperation.cpp: Added.
2360         (webViewDestroyed): Delete the print operation when the view
2361         widget associated is destroyed.
2362         (webkitPrintOperationConstructed): Connect to destroy signal of
2363         associated web view.
2364         (webkitPrintOperationGetProperty):
2365         (webkitPrintOperationSetProperty):
2366         (webkit_print_operation_init):
2367         (webkit_print_operation_class_init):
2368         (webkitPrintOperationRunDialogUnix): Use GtkPrintUnixDialog to
2369         show the printing dialog in UNIX platforms.
2370         (webkitPrintOperationRunDialogWin32): Empty, not implemented yet.
2371         (drawPagesForPrintingCompleted): Callback called when printing
2372         operation has finished in the web process.
2373         (webkitPrintOperationRunDialogForFrame): Run the printing dialog
2374         and start printing the given frame.
2375         (webkit_print_operation_new): Create a new print operation for the
2376         given web view.
2377         (webkit_print_operation_get_print_settings):
2378         (webkit_print_operation_set_print_settings):
2379         (webkit_print_operation_get_page_setup):
2380         (webkit_print_operation_set_page_setup):
2381         (webkit_print_operation_run_dialog): Run the print dialog to print
2382         the web view main frame.
2383         * UIProcess/API/gtk/WebKitPrintOperation.h: Added.
2384         * UIProcess/API/gtk/WebKitPrintOperationPrivate.h: Added.
2385         * UIProcess/API/gtk/WebKitUIClient.cpp:
2386         (printFrame): Call webkitWebViewPrintFrame.
2387         (attachUIClientToView): Add implementation for
2388         printFrame callback.
2389         * UIProcess/API/gtk/WebKitWebView.cpp:
2390         (webkit_web_view_class_init): Add WebKitWebView::print-requested
2391         signal.
2392         (webkitWebViewPrintFrame): Emit print-requested and show the print
2393         dialog to print the frame when not signal is not handled by user.
2394         * UIProcess/API/gtk/WebKitWebView.h:
2395         * UIProcess/API/gtk/WebKitWebViewPrivate.h:
2396         * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
2397         WebKitPrintOperation.
2398         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
2399         * UIProcess/API/gtk/tests/GNUmakefile.am:
2400         * UIProcess/API/gtk/tests/TestPrinting.cpp: Added.
2401         (testPrintOperationPrintSettings):
2402         (webViewPrintRequestedCallback):
2403         (testWebViewPrintRequested):
2404         (beforeAll):
2405         (afterAll):
2406         * UIProcess/API/gtk/webkit2.h: Include WebKitPrintOperation.h.
2407
2408 2012-02-16  Simon Hausmann  <simon.hausmann@nokia.com>
2409
2410         [Gtk][Efl][Qt] Move OpenGLShims out of cairo/ subdirectory
2411         https://bugs.webkit.org/show_bug.cgi?id=78800
2412
2413         Reviewed by Kenneth Rohde Christiansen.
2414
2415         * UIProcess/qt/LayerTreeHostProxyQt.cpp: Adjust to changed OpenGLShims.h
2416         location - no more cairo prefix needed.
2417
2418 2012-02-16  No'am Rosenthal  <noam.rosenthal@nokia.com>
2419
2420         [Qt][WK2] Allow opaque tiles
2421         https://bugs.webkit.org/show_bug.cgi?id=78809
2422
2423         Set the supportsAlpha flag for TiledBackingStore when the layer has contentsOpaque enabled.
2424         Use the flag for ShareableBitmaps created by TiledBackingStore.
2425
2426         For now this will not have impact on performance/memory, because we allocate the same type
2427         of buffers for opaque and transparent tiles.
2428
2429         Reviewed by Kenneth Rohde Christiansen.
2430
2431         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
2432         (WebCore::WebGraphicsLayer::setContentsOpaque):
2433         (WebCore::WebGraphicsLayer::setContentsScale):
2434         (WebCore::WebGraphicsLayer::createBackingStore):
2435         (WebCore):
2436         (WebCore::WebGraphicsLayer::updateContentBuffers):
2437         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
2438         (WebGraphicsLayer):
2439         * WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp:
2440         (WebKit::TiledBackingStoreRemoteTile::updateBackBuffer):
2441
2442 2012-02-16  Sergio Villar Senin  <svillar@igalia.com>
2443
2444         [soup] Move important SoupSession feature initialization to WebCore
2445         https://bugs.webkit.org/show_bug.cgi?id=68602
2446
2447         Reviewed by Martin Robinson.
2448
2449         Moved content sniffer and decoder initialization from the
2450         WebProcess to WebCore because network stuff will not work as
2451         expected without them.
2452
2453         No new tests required as we're just moving stuff from the
2454         WebProcess to WebCore.
2455
2456         * WebProcess/gtk/WebProcessMainGtk.cpp:
2457         (WebKit::WebProcessMainGtk):
2458
2459 2012-02-16  Adenilson Cavalcanti  <cavalcantii@gmail.com>
2460
2461         [Qt][WK2] Split QWebPermissionRequest into QWebSecurityOrigin
2462         https://bugs.webkit.org/show_bug.cgi?id=73215
2463
2464         Reviewed by Kenneth Rohde Christiansen.
2465
2466         Introducing a new class to expose security origin information
2467         (port/scheme/etc), useful for inspecting the origin of permission
2468         requests.
2469
2470         * Target.pri:
2471         * UIProcess/API/qt/qtwebsecurityorigin.cpp: Added.
2472         (QtWebSecurityOrigin::QtWebSecurityOrigin):
2473         (QtWebSecurityOrigin::~QtWebSecurityOrigin):
2474         (QtWebSecurityOrigin::host):
2475         (QtWebSecurityOrigin::scheme):
2476         (QtWebSecurityOrigin::path):
2477         (QtWebSecurityOrigin::port):
2478         (QtWebSecurityOrigin::setHost):
2479         (QtWebSecurityOrigin::setScheme):
2480         (QtWebSecurityOrigin::setPath):
2481         (QtWebSecurityOrigin::setPort):
2482         * UIProcess/API/qt/qtwebsecurityorigin_p.h: Added.
2483         * UIProcess/API/qt/tests/qmltests/WebView/tst_origin.qml: Added.
2484         * UIProcess/API/qt/qwebpermissionrequest.cpp:
2485         (QWebPermissionRequestPrivate::QWebPermissionRequestPrivate):
2486         (QWebPermissionRequest::securityOrigin):
2487         * UIProcess/API/qt/qwebpermissionrequest_p.h:
2488         * UIProcess/API/qt/tests/qmltests/qmltests.pro:
2489
2490 2012-02-16  Patrick Gansterer  <paroga@webkit.org>
2491
2492         [CMake] Add missing include directories.
2493
2494         * CMakeLists.txt:
2495
2496 2012-02-16  Carlos Garcia Campos  <cgarcia@igalia.com>
2497
2498         [GTK] Document that local paths in html loaded with loadHTML might cause the web process to terminate
2499         https://bugs.webkit.org/show_bug.cgi?id=78719
2500
2501         Reviewed by Martin Robinson.
2502
2503         * UIProcess/API/gtk/WebKitWebView.cpp:
2504
2505 2012-02-15  Anders Carlsson  <andersca@apple.com>
2506
2507         Add TiledCoreAnimationDrawingArea::forceRepaint
2508         https://bugs.webkit.org/show_bug.cgi?id=78749
2509         <rdar://problem/10866221>
2510
2511         Reviewed by Sam Weinig.
2512
2513         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
2514         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
2515         (WebKit::TiledCoreAnimationDrawingArea::forceRepaint):
2516         Force a repaint and synchronize the layer tree to the UI process.
2517
2518 2012-02-15  Enrica Casucci  <enrica@apple.com>
2519
2520         Refactor ClipboardMac class to use PlatformStrategies.
2521         https://bugs.webkit.org/show_bug.cgi?id=78554
2522
2523         Reviewed by Anders Carlsson.
2524
2525         * WebProcess/WebCoreSupport/WebDragClient.h: Changed method signature to reference
2526         the pasteboard by name.
2527         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: Added new methods.
2528         (WebKit::WebPlatformStrategies::changeCount):
2529         (WebKit::WebPlatformStrategies::uniqueName):
2530         * WebProcess/WebCoreSupport/WebPlatformStrategies.h: Ditto.
2531         * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
2532         (WebKit::WebDragClient::declareAndWriteDragImage): Changed method signature to reference
2533         the pasteboard by name.
2534
2535 2012-02-15  Sadrul Habib Chowdhury  <sadrul@chromium.org>
2536
2537         Notify ChromeClient when touch-event handlers are installed/removed.
2538         https://bugs.webkit.org/show_bug.cgi?id=77440
2539
2540         Reviewed by Darin Fisher and Ryosuke Niwa.
2541
2542         * UIProcess/WebPageProxy.h:
2543         (WebKit::WebPageProxy::numTouchEventHandlersChanged):
2544         * WebProcess/WebCoreSupport/WebChromeClient.h:
2545
2546 2012-02-15  Patrick Gansterer  <paroga@webkit.org>
2547
2548         [CMake] Move RunLoop to WebCore/platform
2549         https://bugs.webkit.org/show_bug.cgi?id=78504
2550
2551         Reviewed by Adam Roben.
2552
2553         * CMakeLists.txt: Remove RunLoop.cpp from list of souces.
2554
2555 2012-02-14  Simon Hausmann  <simon.hausmann@nokia.com>
2556
2557         [Qt] Eliminate first set of QtWidgets dependencies from WebCore
2558         https://bugs.webkit.org/show_bug.cgi?id=78611
2559
2560         Reviewed by Kenneth Rohde Christiansen.
2561
2562         * UIProcess/qt/QtWebPageEventHandler.cpp: Add missing QCursor include
2563         to fix compilation.
2564
2565 2012-02-15  Roland Steiner  <rolandsteiner@chromium.org>
2566
2567         <style scoped>: Allow <style scoped> as a direct child of a ShadowRoot
2568         https://bugs.webkit.org/show_bug.cgi?id=77853
2569
2570         numberOfScopedHTMLStyleChildren got moved from Element into Node.
2571
2572         Reviewed by Dimitri Glazkov.
2573
2574         * win/WebKit2.def:
2575         * win/WebKit2CFLite.def:
2576
2577 2012-02-15  No'am Rosenthal  <noam.rosenthal@nokia.com>
2578
2579         [Texmap] Divide TextureMapperNode.cpp to 3 files.
2580         https://bugs.webkit.org/show_bug.cgi?id=76660
2581
2582         Rename TextureMapperNode to TextureMapperLayer.
2583
2584         Reviewed by Kenneth Rohde Christiansen.
2585
2586         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2587         (WebKit::LayerTreeHostProxy::createLayer):
2588         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
2589         (WebKit::LayerTreeHostProxy::paintToGraphicsContext):
2590         (WebKit::LayerTreeHostProxy::getBackingStore):
2591         (WebKit::LayerTreeHostProxy::ensureRootLayer):
2592         (WebKit::LayerTreeHostProxy::purgeGLResources):
2593
2594 2012-02-14  Anders Carlsson  <andersca@apple.com>
2595
2596         Swipe gestures don't work if main frame has a horizontal scrollbar
2597         https://bugs.webkit.org/show_bug.cgi?id=78650
2598         <rdar://problem/10864993>
2599
2600         Reviewed by Sam Weinig.
2601
2602         * WebProcess/WebPage/EventDispatcher.cpp:
2603         (WebKit::EventDispatcher::wheelEvent):
2604         ScrollingTree::tryToHandleWheelEvent now returns a tri-state enum so handle the extra case.
2605
2606         (WebKit::EventDispatcher::sendDidReceiveEvent):
2607         Rename this now that it takes a parameter indicating whether the event was handled or not.
2608
2609 2012-02-14  Brian Weinstein  <bweinstein@apple.com>
2610
2611         Web Inspector: Add the ability to show the resources panel on launch
2612         https://bugs.webkit.org/show_bug.cgi?id=78641
2613         
2614         Add WebKit2 API for the ability to show the resources panel. This calls down
2615         from the WK API all the way to InspectorFrontendClientLocal::showResources.
2616
2617         Reviewed by Timothy Hatcher.
2618
2619         * UIProcess/API/C/WKInspector.cpp:
2620         (WKInspectorShowResources): Call WebInspectorProxy::showResources.
2621         * UIProcess/API/C/WKInspector.h:
2622         * UIProcess/WebInspectorProxy.cpp:
2623         (WebKit::WebInspectorProxy::showResources): Send a message to the web process.
2624         * UIProcess/WebInspectorProxy.h:
2625         * WebProcess/WebPage/WebInspector.cpp:
2626         (WebKit::WebInspector::showResources): Call InspectorFrontendClientLocal::showResources.
2627         * WebProcess/WebPage/WebInspector.h:
2628         * WebProcess/WebPage/WebInspector.messages.in: Add a ShowResources message.
2629
2630 2012-02-14  Matt Lilek  <mrl@apple.com>
2631
2632         Don't ENABLE_DASHBOARD_SUPPORT unconditionally on all Mac platforms
2633         https://bugs.webkit.org/show_bug.cgi?id=78629
2634
2635         Reviewed by David Kilzer.
2636
2637         * Configurations/FeatureDefines.xcconfig:
2638
2639 2012-02-13  Raphael Kubo da Costa  <kubo@profusion.mobi>
2640
2641         [CMake] Merge WebKitEfl.cmake into FindEFL.cmake.
2642         https://bugs.webkit.org/show_bug.cgi?id=78566
2643
2644         Reviewed by Daniel Bates.
2645
2646         * PlatformEfl.cmake: Do not include WebKitEfl.cmake.
2647
2648 2012-02-14  No'am Rosenthal  <noam.rosenthal@nokia.com>
2649
2650         [Qt][Texmap] Refactor backing-store code in TextureMapper
2651         https://bugs.webkit.org/show_bug.cgi?id=78305
2652
2653         Move the backing-store code to LayerTreeBackingStore, implementing the virtual functions
2654         in TextureMapperBackingStore.
2655         We save the double-buffered tile in the backing-store, and then convert them to regular
2656         tiles in updateContents, based on the order of painting.
2657         Use TextureMapperCompositedImage for images instead of saving our own composited image
2658         registry.
2659
2660         Reviewed by Kenneth Rohde Christiansen.
2661
2662         * Target.pri:
2663         * UIProcess/LayerTreeHostProxy.h:
2664         (WebKit):
2665         (LayerTreeHostProxy):
2666         * UIProcess/qt/LayerBackingStore.cpp: Added.
2667         * UIProcess/qt/LayerBackingStore.h: Added.
2668         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2669         (WebKit::LayerTreeHostProxy::createLayer):
2670         (WebKit::LayerTreeHostProxy::syncLayerParameters):
2671         (WebKit::LayerTreeHostProxy::getBackingStore):
2672         (WebKit::LayerTreeHostProxy::createTile):
2673         (WebKit::LayerTreeHostProxy::removeTile):
2674         (WebKit::LayerTreeHostProxy::updateTile):
2675         (WebKit::LayerTreeHostProxy::createImage):
2676         (WebKit::LayerTreeHostProxy::assignImageToLayer):
2677         (WebKit::LayerTreeHostProxy::purgeGLResources):
2678         * WebProcess.pro:
2679
2680
2681 2012-02-14  Shinya Kawanaka  <shinyak@google.com>
2682
2683         Use youngestShadowRoot and oldestShadowRoot instead of Element::shadowRoot().
2684         https://bugs.webkit.org/show_bug.cgi?id=78455
2685
2686         Reviewed by Hajime Morita.
2687
2688         Exports necesarry symbols.
2689
2690         * win/WebKit2.def:
2691         * win/WebKit2CFLite.def:
2692
2693 2012-02-14  Alexey Proskuryakov  <ap@apple.com>
2694
2695         [Mac][Win][WK2] Switch to RFC 6455 protocol for WebSockets
2696         https://bugs.webkit.org/show_bug.cgi?id=78541
2697         <rdar://problem/10036695>
2698
2699         Reviewed by Kent Tamura.
2700
2701         * Shared/WebPreferencesStore.h: (WebKit): Changed default value of the preference.
2702
2703 2012-02-13  W. James MacLean  <wjmaclean@chromium.org>
2704
2705         [chromium] Remove obsolete zoom animation pathway.
2706         https://bugs.webkit.org/show_bug.cgi?id=78359
2707
2708         Reviewed by James Robinson.
2709
2710         This patch removes dead code from the previous incarnation of zoom animation for chromium.
2711
2712         WebProcess/Plugins/PDF/BuiltInPDFView.h:
2713         (BuiltInPDFView):
2714
2715 2012-02-13  Enrica Casucci  <enrica@apple.com>
2716
2717         Refactor Mac platform implementation of the Pasteboard class to use Platform Strategies.
2718         https://bugs.webkit.org/show_bug.cgi?id=78282
2719
2720         This patch removes any accesss to the NSPasteboard object from the Pasteboard class which
2721         now makes use of a new pasteboardStrategy object that is implemented both in WebKit and
2722         WebKit2. The actual access to NSPasteboard is now performed inside the PlatformPasteboard
2723         class. Currently both WebKit and WebKit2 use the same implementation of the PasteboardStrategy
2724         interface but this one more step in the direction of removing access to NSPasteboard from
2725         the WebProcess.
2726         As part of the refactoring the I've reduced to a minimum the use of OBJ-C classes.
2727
2728         Reviewed by Anders Carlsson.
2729
2730         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: Added implementation of PasteboardStrategy
2731         interface.
2732         (WebKit::WebPlatformStrategies::createPasteboardStrategy):
2733         (WebKit::WebPlatformStrategies::getTypes):
2734         (WebKit::WebPlatformStrategies::bufferForType):
2735         (WebKit::WebPlatformStrategies::getPathnamesForType):
2736         (WebKit::WebPlatformStrategies::stringForType):
2737         (WebKit::WebPlatformStrategies::copy):
2738         (WebKit::WebPlatformStrategies::setTypes):
2739         (WebKit::WebPlatformStrategies::setBufferForType):
2740         (WebKit::WebPlatformStrategies::setPathnamesForType):
2741         (WebKit::WebPlatformStrategies::setStringForType):
2742         * WebProcess/WebCoreSupport/WebPlatformStrategies.h: Added PasteboardStrategy.
2743
2744 2012-02-13  Anders Carlsson  <andersca@apple.com>
2745
2746         The scrolling tree needs to know about the back forward state of the page
2747         https://bugs.webkit.org/show_bug.cgi?id=78523
2748         <rdar://problem/10756548>
2749
2750         Reviewed by Sam Weinig.
2751
2752         Pass the back/forward state in the WheelEvent message. This is pretty hacky but works well.
2753
2754         * Platform/CoreIPC/HandleMessage.h:
2755         (CoreIPC):
2756         (CoreIPC::callMemberFunction):
2757         * UIProcess/WebPageProxy.cpp:
2758         (WebKit::WebPageProxy::handleWheelEvent):
2759         (WebKit::WebPageProxy::didReceiveEvent):
2760         * WebProcess/WebPage/EventDispatcher.cpp:
2761         (WebKit::EventDispatcher::wheelEvent):
2762         * WebProcess/WebPage/EventDispatcher.h:
2763         (EventDispatcher):
2764         * WebProcess/WebPage/EventDispatcher.messages.in:
2765
2766 2012-02-13  Dan Bernstein  <mitz@apple.com>
2767
2768         WebKit2 build emits a warning about not stripping code-signed PluginProcess.app when copying it into the framework
2769         https://bugs.webkit.org/show_bug.cgi?id=78451
2770
2771         Reviewed by Sam Weinig.
2772
2773         * Configurations/Base.xcconfig: Set COPY_PHASE_STRIP to NO.
2774
2775 2012-02-13  Sam Weinig  <sam@webkit.org>
2776
2777         Windows build fix.
2778
2779         * UIProcess/win/WebPopupMenuProxyWin.cpp:
2780         (WebKit::WebPopupMenuProxyWin::scrollToRevealSelection):
2781
2782 2012-02-13  Zalan Bujtas  <zbujtas@gmail.com>
2783
2784         Manage ShareableBitmap object lifecycle properly, when QImage is created
2785         using the shared data.
2786         https://bugs.webkit.org/show_bug.cgi?id=77546
2787
2788         Reviewed by Simon Hausmann.
2789
2790         * Shared/ShareableBitmap.h:
2791         (ShareableBitmap):
2792         * Shared/qt/ShareableBitmapQt.cpp:
2793         (WebKit::ShareableBitmap::createQImage):
2794         (WebKit):
2795         (WebKit::ShareableBitmap::releaseSharedMemoryData):
2796
2797 2012-02-06  Raphael Kubo da Costa  <kubo@profusion.mobi>
2798
2799         [EFL] Drop support for the Curl network backend.
2800         https://bugs.webkit.org/show_bug.cgi?id=77874
2801
2802         Reviewed by Eric Seidel.
2803
2804         Nobody seems to be maintaining the Curl backend in WebCore, the
2805         EFL port developers all seem to be using the Soup backend and the
2806         port itself has many features which are only implemented for the
2807         latter.
2808
2809         * PlatformEfl.cmake: Unconditionally build the glib/soup source
2810         files and unconditionally add the required include directories and
2811         libraries.
2812         * WebProcess/efl/WebProcessMainEfl.cpp:
2813         (WebKit::WebProcessMainEfl): Remove USE(SOUP) check.
2814
2815 2012-02-11  Sheriff Bot  <webkit.review.bot@gmail.com>
2816
2817         Unreviewed, rolling out r107435.
2818         http://trac.webkit.org/changeset/107435
2819         https://bugs.webkit.org/show_bug.cgi?id=78410
2820
2821         It broke the Qt build (Requested by Ossy on #webkit).
2822
2823         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
2824         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
2825         (WebPlatformStrategies):
2826
2827 2012-02-10  Brian Weinstein  <bweinstein@apple.com>
2828
2829         Web Inspector: Add the ability to jump to the source for a given frame
2830         https://bugs.webkit.org/show_bug.cgi?id=78396
2831         
2832         Add WebKit2 API for the ability to show the source of a frame in the web inspector. This calls down
2833         from the WK API all the way to InspectorFrontendClientLocal::showMainResourceForFrame.
2834
2835         Reviewed by Tim Hatcher.
2836
2837         * UIProcess/API/C/WKInspector.cpp:
2838         (WKInspectorShowMainResourceForFrame): Call WebInspectorProxy::showMainResourceForFrame.
2839         * UIProcess/API/C/WKInspector.h:
2840
2841         * UIProcess/WebInspectorProxy.cpp:
2842         (WebKit::WebInspectorProxy::showMainResourceForFrame): Send a message to the web process, passing
2843             the frame ID of the frame we want to show the main resource of.
2844         * UIProcess/WebInspectorProxy.h:
2845
2846         * WebProcess/WebPage/WebInspector.cpp:
2847         (WebKit::WebInspector::showMainResourceForFrame): Get the WebFrame for the frame we want to show the
2848             main resource of from its ID. If we found a frame, call InspectorFrontendClientLocal::showMainResourceForFrame.
2849         * WebProcess/WebPage/WebInspector.h:
2850         
2851         * WebProcess/WebPage/WebInspector.messages.in: Add a new message.
2852
2853 2012-02-10  Adam Klein  <adamk@chromium.org>
2854
2855         Enable MUTATION_OBSERVERS by default on all platforms
2856         https://bugs.webkit.org/show_bug.cgi?id=78196
2857
2858         Reviewed by Ojan Vafai.
2859
2860         * Configurations/FeatureDefines.xcconfig:
2861
2862 2012-02-10  Enrica Casucci  <enrica@apple.com>
2863
2864         Refactor Mac platform implementation of the Pasteboard class to use Platform Strategies.
2865         https://bugs.webkit.org/show_bug.cgi?id=78282
2866
2867         This patch removes any accesss to the NSPasteboard object from the Pasteboard class which
2868         now makes use of a new pasteboardStrategy object that is implemented both in WebKit and
2869         WebKit2. The actual access to NSPasteboard is now performed inside the PlatformPasteboard
2870         class. Currently both WebKit and WebKit2 use the same implementation of the PasteboardStrategy
2871         interface but this one more step in the direction of removing access to NSPasteboard from
2872         the WebProcess.
2873         As part of the refactoring the I've reduced to a minimum the use of OBJ-C classes.
2874         
2875         Reviewed by Anders Carlsson.
2876
2877         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: Added implementation of PasteboardStrategy
2878         interface.
2879         (WebKit::WebPlatformStrategies::createPasteboardStrategy):
2880         (WebKit::WebPlatformStrategies::getTypes):
2881         (WebKit::WebPlatformStrategies::bufferForType):
2882         (WebKit::WebPlatformStrategies::getPathnamesForType):
2883         (WebKit::WebPlatformStrategies::stringForType):
2884         (WebKit::WebPlatformStrategies::copy):
2885         (WebKit::WebPlatformStrategies::setTypes):
2886         (WebKit::WebPlatformStrategies::setBufferForType):
2887         (WebKit::WebPlatformStrategies::setPathnamesForType):
2888         (WebKit::WebPlatformStrategies::setStringForType):
2889         * WebProcess/WebCoreSupport/WebPlatformStrategies.h: Added PasteboardStrategy.
2890
2891 2012-02-09  Timothy Hatcher  <timothy@apple.com>
2892
2893         Prevent attaching when inspecting the Web Inspector.
2894
2895         Also adds some comments about keeping in sync with InspectorFrontendClientLocal::canAttachWindow
2896         and why there are two implementations of the same function.
2897
2898         https://webkit.org/b/78304
2899
2900         Reviewed by Brian Weinstein.
2901
2902         * UIProcess/WebInspectorProxy.cpp:
2903         (WebKit::WebInspectorProxy::canAttach): Prevent attaching when the page is an inspector page.
2904         Added comments about InspectorFrontendClientLocal::canAttachWindow.
2905         * UIProcess/WebInspectorProxy.h:
2906         (WebInspectorProxy): Added comment about keeping in sync with InspectorFrontendClientLocal.
2907
2908 2012-02-09  Alexey Proskuryakov  <ap@apple.com>
2909
2910         Managed network proxy settings are not used in WebProcess
2911         https://bugs.webkit.org/show_bug.cgi?id=78288
2912         <rdar://problem/9962116>
2913
2914         Reviewed by Anders Carlsson.
2915
2916         * WebProcess/com.apple.WebProcess.sb: Allow reading managed preferences.
2917
2918 2012-02-09  Alexey Proskuryakov  <ap@apple.com>
2919
2920         ASSERTION FAILED: checkURLReceivedFromWebProcess(originalURL) loading a local file, if the WebProcess crashed
2921         https://bugs.webkit.org/show_bug.cgi?id=70845
2922         <rdar://problem/10269985>
2923
2924         Reviewed by Anders Carlsson.
2925
2926         This also fixes some case where WebProcess did not get a sandbox extension after a crash.
2927
2928         * UIProcess/WebPageProxy.cpp:
2929         (WebKit::WebPageProxy::reattachToWebProcessWithItem): We no longer need to pass a sandbox
2930         extension here, we're now passing it at b/f navigation bottleneck.
2931         (WebKit::WebPageProxy::reload): Pass a sandbox extension - reload may mean reloading an error
2932         page after a crash, so WebProcess may no longer have the extension.
2933         (WebKit::WebPageProxy::goForward): We no longer need to pass a sandbox extension here,
2934         we're now passing it at b/f navigation bottleneck. Also, fixed a bug where we first null checked
2935         a WebBackForwardListItem pointer, and then used it anyway.
2936         (WebKit::WebPageProxy::goBack): Ditto.
2937         (WebKit::WebPageProxy::goToBackForwardItem): Ditto.
2938         (WebKit::WebPageProxy::backForwardGoToItem): This is the bottleneck. We get here both for UI
2939         actions like pressing the Back button, and for window.history.go() navigations. JS navigations
2940         previously didn't open up the sandbox. URLs in UI process b/f list are trusted, so it's
2941         always OK to grant a sandbox extension if one of them is a file: one.
2942
2943         * UIProcess/WebPageProxy.h: backForwardGoToItem() now returns a sandbox extension handle.
2944
2945         * UIProcess/WebPageProxy.messages.in: Ditto.
2946
2947         * UIProcess/WebProcessProxy.cpp:
2948         (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess): If a URL is in UI process b/f
2949         list, then it has been already vetted as something the Web process knows about. No need to
2950         crash if it actually attempts going there.
2951         (WebKit::WebProcessProxy::didReceiveInvalidMessage): Removed a useless comment (we have tons
2952         of fprintfs besides this one). Fixed log message syntax.
2953
2954         * UIProcess/cf/WebPageProxyCF.cpp: (WebKit::WebPageProxy::restoreFromSessionStateData):
2955         We no longer need to pass a sandbox extension here, we're now passing it at b/f navigation
2956         bottleneck. 
2957
2958         * WebProcess/WebPage/WebBackForwardListProxy.cpp: (WebKit::WebBackForwardListProxy::goToItem):
2959         We now get an extension here, when telling UI process that we're navigating to a b/f list item.
2960
2961         * WebProcess/WebPage/WebPage.cpp:
2962         (WebKit::WebPage::reload): Use the extension we're getting.
2963         (WebKit::WebPage::goForward): Don't use one we're not getting.
2964         (WebKit::WebPage::goBack): Ditto.
2965         (WebKit::WebPage::goToBackForwardItem): Ditto.
2966         (WebKit::WebPage::restoreSessionAndNavigateToCurrentItem): Ditto.
2967
2968         * WebProcess/WebPage/WebPage.h: Adjusted signatures accordingly.
2969
2970         * WebProcess/WebPage/WebPage.messages.in: Ditto.
2971
2972 2012-02-09  Matthew Delaney  <mdelaney@apple.com>
2973
2974         HiDPI: WebKit2's drag images are blurry
2975         https://bugs.webkit.org/show_bug.cgi?id=67779
2976
2977         Use the proper deviceScaleFactor() instead of accessing _intrinsicDeviceScaleFactor
2978
2979         Reviewed by Beth Dakin.
2980
2981         * UIProcess/API/mac/WKView.mm:
2982         (-[WKView _setDragImage:at:linkDrag:]):
2983
2984 2012-02-09  Alexey Proskuryakov  <ap@apple.com>
2985
2986         [WK2] Allow reading some debug-only preference files
2987         https://bugs.webkit.org/show_bug.cgi?id=78255
2988         <rdar://problem/9382382>
2989         <rdar://problem/10830558>
2990
2991         Reviewed by Dan Bernstein.
2992
2993         * WebProcess/com.apple.WebProcess.sb:
2994
2995 2012-02-09  Matthew Delaney  <mdelaney@apple.com>
2996
2997         HiDPI: WebKit2's link-dragging images are blurry
2998         https://bugs.webkit.org/show_bug.cgi?id=67779
2999
3000         Reviewed by Beth Dakin.
3001
3002         Teach startDrag about the deviceScaleFactor so that it creates
3003         an appropriately scaled bitmap image to ship over.
3004         * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
3005         (WebKit::WebDragClient::startDrag):
3006         (WebKit::convertImageToBitmap):
3007
3008         Have setDragImage assume that it's receiving a bitmap image scaled
3009         up by the deviceScaleFactor that it sees.
3010         * UIProcess/API/mac/WKView.mm:
3011         (-[WKView _setDragImage:at:linkDrag:]):
3012
3013 2012-02-09  Carlos Garcia Campos  <cgarcia@igalia.com>
3014
3015         [GTK] Add WebKitWebView::mouse-target-changed signal to WebKit2 GTK+ API
3016         https://bugs.webkit.org/show_bug.cgi?id=78097
3017
3018         Reviewed by Martin Robinson.
3019
3020         * GNUmakefile.am: Add new files to compilation.
3021         * UIProcess/API/gtk/WebKitHitTestResult.cpp: Added.
3022         (webkitHitTestResultFinalize):
3023         (webkitHitTestResultGetProperty):
3024         (webkitHitTestResultSetProperty):
3025         (webkit_hit_test_result_init):
3026         (webkit_hit_test_result_class_init):
3027         (webkitHitTestResultCreate): Create a new WebKitHitTestResult for
3028         the given WKHitTestResult.
3029         (stringIsEqualToCString): Helper function to compare String and
3030         CString considering String::isEmpty() == CString.isNull().
3031         (webkitHitTestResultCompare): Helper function to check whether a
3032         WebKitHitTestResult contains the same information than the given
3033         WKHitTestResult.
3034         (webkit_hit_test_result_get_context):
3035         (webkit_hit_test_result_context_is_link):
3036         (webkit_hit_test_result_context_is_image):
3037         (webkit_hit_test_result_context_is_media):
3038         (webkit_hit_test_result_get_link_uri):
3039         (webkit_hit_test_result_get_link_title):
3040         (webkit_hit_test_result_get_link_label):
3041         (webkit_hit_test_result_get_image_uri):
3042         (webkit_hit_test_result_get_media_uri):
3043         * UIProcess/API/gtk/WebKitHitTestResult.h: Added.
3044         * UIProcess/API/gtk/WebKitHitTestResultPrivate.h:
3045         * UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp:
3046         (webkitNavigationPolicyDecisionCreate): Use
3047         wkEventModifiersToGdkModifiers.
3048         * UIProcess/API/gtk/WebKitPrivate.cpp:
3049         (wkEventModifiersToGdkModifiers): Moved from
3050         WebKitNavigationPolicyDecision and renamed to wkEventModifiersToGdkModifiers.
3051         * UIProcess/API/gtk/WebKitPrivate.h:
3052         * UIProcess/API/gtk/WebKitUIClient.cpp:
3053         (mouseDidMoveOverElement): UI client callback that calls
3054         webkitWebViewMouseTargetChanged().
3055         (attachUIClientToView): Add implementation for callback
3056         mouseDidMoveOverElement.
3057         * UIProcess/API/gtk/WebKitWebView.cpp:
3058         (webkit_web_view_class_init): Add
3059         WebKitWebView::mouse-target-changed signal.
3060         (webkitWebViewMouseTargetChanged): Emit
3061         WebKitWebView::mouse-target-changed signal.
3062         * UIProcess/API/gtk/WebKitWebView.h:
3063         * UIProcess/API/gtk/WebKitWebViewPrivate.h:
3064         * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
3065         WebKitHitTestResult.
3066         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
3067         * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
3068         (testWebViewMouseTarget):
3069         (beforeAll):
3070         * UIProcess/API/gtk/tests/WebViewTest.cpp:
3071         (WebViewTest::WebViewTest):
3072         (WebViewTest::~WebViewTest):
3073         (parentWindowMapped):
3074         (WebViewTest::showInWindowAndWaitUntilMapped): Method to add the
3075         view into a popup window and show it running the main loop until
3076         the window is mapped.
3077         (WebViewTest::mouseMoveTo): Method to synthesize a
3078         GDK_MOTION_EVENT on the given coordinates and using the given
3079         modifiers.
3080         * UIProcess/API/gtk/tests/WebViewTest.h:
3081         * UIProcess/API/gtk/webkit2.h: Include WebKitHitTestResult.h.
3082         * UIProcess/API/gtk/webkit2marshal.list:
3083
3084 2012-02-07  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3085
3086         [Qt] Fetch the visible rect from LayerTreeHost instead of keeping a copy in each layer.
3087         https://bugs.webkit.org/show_bug.cgi?id=78009
3088
3089         Reviewed by Noam Rosenthal.
3090
3091         Since WebGraphicsLayers are now accessed directly from LayerTreeHost, they don't
3092         need to keep the visible rect to pass it down their child layers anymore.
3093
3094         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
3095         (WebCore::WebGraphicsLayer::setContentsScale):
3096         (WebCore::WebGraphicsLayer::tiledBackingStoreVisibleRect):
3097         (WebCore::WebGraphicsLayer::adjustVisibleRect):
3098         (WebCore):
3099         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
3100         (WebGraphicsLayerClient):
3101         (WebGraphicsLayer):
3102         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
3103         (WebKit::LayerTreeHostQt::registerLayer):
3104         (WebKit::LayerTreeHostQt::visibleContentsRect):
3105         (WebKit):
3106         (WebKit::LayerTreeHostQt::setVisibleContentRectAndScale):
3107         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
3108         (LayerTreeHostQt):
3109
3110 2012-02-09  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3111
3112         [Qt] Control the lifetime of TiledBackingStores in WebGraphicsLayer.
3113         https://bugs.webkit.org/show_bug.cgi?id=78005
3114
3115         Reviewed by Noam Rosenthal.
3116
3117         This makes sure that no empty tiles are generated for layers without contents and that
3118         no interaction is made with the TiledBackingStore until we got a WebGraphicsLayerClient.
3119
3120         - Create the main TiledBackingStore only when the layer has drawsContent and has no
3121           directly composited image
3122         - Removed recreateBackingStoreIfNeeded and do the (re)creation of the backing stores
3123           in updateContentBuffers
3124         - Call purgeBackingStores on registered layers instead of passing it down the layer tree
3125
3126         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
3127         (WebCore::WebGraphicsLayer::WebGraphicsLayer):
3128         (WebCore::WebGraphicsLayer::~WebGraphicsLayer):
3129         (WebCore::WebGraphicsLayer::setDrawsContent):
3130         (WebCore::WebGraphicsLayer::setNeedsDisplayInRect):
3131         (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
3132         (WebCore::WebGraphicsLayer::setVisibleContentRectTrajectoryVector):
3133         (WebCore::WebGraphicsLayer::tiledBackingStoreContentsRect):
3134         (WebCore::WebGraphicsLayer::updateContentBuffers):
3135         (WebCore::WebGraphicsLayer::purgeBackingStores):
3136         (WebCore::WebGraphicsLayer::setWebGraphicsLayerClient):
3137         (WebCore::WebGraphicsLayer::computeTransformedVisibleRect):
3138         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
3139         (WebGraphicsLayer):
3140         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
3141         (WebKit::LayerTreeHostQt::LayerTreeHostQt):
3142         (WebKit::LayerTreeHostQt::flushPendingLayerChanges):
3143         (WebKit):
3144         (WebKit::LayerTreeHostQt::purgeBackingStores):
3145         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
3146         (LayerTreeHostQt):
3147
3148 2012-02-08  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3149
3150         [Qt] Remove WebGraphicsLayer::updateTileBuffersRecursively
3151         https://bugs.webkit.org/show_bug.cgi?id=78105
3152
3153         Reviewed by Kenneth Rohde Christiansen.
3154
3155         The method is unused.
3156
3157         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
3158         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
3159         (WebGraphicsLayer):
3160
3161 2012-02-08  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3162
3163         [Qt] Register individual WebGraphicsLayers to LayerTreeHost instead of handling the tree as a whole.
3164         https://bugs.webkit.org/show_bug.cgi?id=77976
3165
3166         Reviewed by Kenneth Rohde Christiansen.
3167
3168         The LayerTreeHost association had to be maintained between re-parented layers and it would be
3169         impossible to know if the layer would be disconnected from the LayerTreeHost only for reparenting
3170         or disconnected for good (in other words, that the LayerTreeHost could be deleted meanwhile).
3171
3172         Instead, this patch assumes that graphics layers will only be in contact with one instance of
3173         LayerTreeHost, and that this association can be kept until either the graphics layer or the layer
3174         tree host gets deleted.
3175
3176         The registered layers are kept in a set and the visible rect and scales are passed directly
3177         to layers instead of down the tree, through the root layer.
3178
3179         This also fixes the !m_layerInfo.imageBackingStoreID ASSERT that was popping in unit tests.
3180
3181         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
3182         (WebCore::WebGraphicsLayer::WebGraphicsLayer):
3183         (WebCore::WebGraphicsLayer::~WebGraphicsLayer):
3184         (WebCore::WebGraphicsLayer::setChildren):
3185         (WebCore::WebGraphicsLayer::addChild):
3186         (WebCore::WebGraphicsLayer::addChildAtIndex):
3187         (WebCore::WebGraphicsLayer::addChildAbove):
3188         (WebCore::WebGraphicsLayer::addChildBelow):
3189         (WebCore::WebGraphicsLayer::replaceChild):
3190         (WebCore::WebGraphicsLayer::removeFromParent):
3191         (WebCore::WebGraphicsLayer::setContentsToImage):
3192         (WebCore::WebGraphicsLayer::setMaskLayer):
3193         (WebCore::WebGraphicsLayer::setReplicatedByLayer):
3194         (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
3195         (WebCore::WebGraphicsLayer::setVisibleContentRectAndScale):
3196         (WebCore::WebGraphicsLayer::tiledBackingStoreUpdatesAllowed):
3197         (WebCore::WebGraphicsLayer::createTile):
3198         (WebCore::WebGraphicsLayer::updateTile):
3199         (WebCore::WebGraphicsLayer::removeTile):
3200         (WebCore::WebGraphicsLayer::updateContentBuffers):
3201         (WebCore::WebGraphicsLayer::purgeBackingStores):
3202         (WebCore::WebGraphicsLayer::setWebGraphicsLayerClient):
3203         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
3204         (WebCore):
3205         (WebGraphicsLayerClient):
3206         (WebGraphicsLayer):
3207         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
3208         (WebKit::LayerTreeHostQt::~LayerTreeHostQt):
3209         (WebKit::LayerTreeHostQt::LayerTreeHostQt):
3210         (WebKit::LayerTreeHostQt::attachLayer):
3211         (WebKit):
3212         (WebKit::LayerTreeHostQt::detachLayer):
3213         (WebKit::LayerTreeHostQt::setVisibleContentRectAndScale):
3214         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
3215         (LayerTreeHostQt):
3216
3217 2012-02-07  Andras Becsi  <andras.becsi@nokia.com>
3218
3219         [Qt][WK2] WebView should use Flickable instead of QScroller to handle positioning
3220         https://bugs.webkit.org/show_bug.cgi?id=76275
3221
3222         Reviewed by Simon Hausmann and Kenneth Rohde Christiansen.
3223
3224         The current WebView implementation uses QScroller to manage positioning but other
3225         similar items in QML (ie. ListView, GridView) use Flickable as their base class.
3226         Since QScroller will be dropped from Qt5 this patch removes the QScroller code
3227         and redirects pan gestures to a dynamically created encapsulated Flickable instance
3228         (QtFlickProvider) which handles the positioning.
3229
3230         This implementation only uses public QML API and does not depend on declarative-private.
3231         It propagates a small subset of the Flickable API as the public API of the WebView.
3232         This minimalistic API is accessible via the experimental extension and makes it possible
3233         in QML to place additional items (such as toolbars, scroll indicators and floating menus)
3234         aroud the page.
3235         These items can use anchoring and binding for positioning on the flickable contentItem.
3236
3237         The patch depends however on the automatic touch->mouse event synthetization of Qt5.
3238         The touch events sent to the flickProvider are translated to mouse events automatically
3239         as long as the Flickable does not handle touch events directly.
3240
3241         After this change QtWebKit2 does no longer depend on QtWidgets and this dependency can be
3242         removed in a follow-up patch.
3243
3244         * Target.pri: Added QtFlickProvider source.
3245         * UIProcess/API/qt/qquickwebpage.cpp:
3246         (QQuickWebPagePrivate::paintToCurrentGLContext):
3247         (QQuickWebPage::transformToItem):
3248         (QQuickWebPagePrivate::updateSize):
3249         * UIProcess/API/qt/qquickwebview.cpp:
3250         (QQuickWebViewPrivate::QQuickWebViewPrivate):
3251         (QQuickWebViewPrivate::pageItemPos):
3252         (QQuickWebViewFlickablePrivate::pageItemPos):
3253         (QQuickWebViewFlickablePrivate::updateContentsSize):
3254         (QQuickWebViewFlickablePrivate::onComponentComplete):
3255         (QQuickWebViewFlickablePrivate::updateViewportSize):
3256         (QQuickWebViewExperimental::flickableData):
3257         (QQuickWebViewExperimental::contentItem):
3258         (QQuickWebViewExperimental::contentWidth):
3259         (QQuickWebViewExperimental::setContentWidth):
3260         (QQuickWebViewExperimental::contentHeight):
3261         (QQuickWebViewExperimental::setContentHeight):
3262         (QQuickWebViewExperimental::contentX):
3263         (QQuickWebViewExperimental::setContentX):
3264         (QQuickWebViewExperimental::contentY):
3265         (QQuickWebViewExperimental::setContentY):
3266         (QQuickWebView::pageItemPos):
3267         (QQuickWebView::updateContentsSize):
3268         * UIProcess/API/qt/qquickwebview_p.h:
3269         * UIProcess/API/qt/qquickwebview_p_p.h:
3270         (QQuickWebViewPrivate):
3271         (QQuickWebViewPrivate::updateContentsSize):
3272         (QQuickWebViewFlickablePrivate):
3273         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
3274         (tst_QQuickWebView::scrollRequest):
3275         * UIProcess/qt/QtFlickProvider.cpp: Added.
3276         (QtFlickProvider::QtFlickProvider):
3277         (QtFlickProvider::handleTouchFlickEvent):
3278         (QtFlickProvider::contentItem):
3279         (QtFlickProvider::flickableData):
3280         (QtFlickProvider::contentPos):
3281         (QtFlickProvider::setContentPos):
3282         (QtFlickProvider::viewportSize):
3283         (QtFlickProvider::setViewportSize):
3284         (QtFlickProvider::returnToBounds):
3285         (QtFlickProvider::cancelFlick):
3286         (QtFlickProvider::isMoving):
3287         (QtFlickProvider::isDragging):
3288         (QtFlickProvider::isFlicking):
3289         (QtFlickProvider::contentWidth):
3290         (QtFlickProvider::setContentWidth):
3291         (QtFlickProvider::contentHeight):
3292         (QtFlickProvider::setContentHeight):
3293         (QtFlickProvider::contentX):
3294         (QtFlickProvider::setContentX):
3295         (QtFlickProvider::contentY):
3296         (QtFlickProvider::setContentY):
3297         * UIProcess/qt/QtFlickProvider.h: Added.
3298         (QtFlickProvider):
3299         * UIProcess/qt/QtPanGestureRecognizer.cpp:
3300         (WebKit::QtPanGestureRecognizer::recognize):
3301         * UIProcess/qt/QtPanGestureRecognizer.h:
3302         (QtPanGestureRecognizer):
3303         * UIProcess/qt/QtViewportInteractionEngine.cpp:
3304         (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
3305         (WebKit::QtViewportInteractionEngine::setItemRectVisible):
3306         (WebKit::QtViewportInteractionEngine::scrollStateChanged):
3307         (WebKit):
3308         (WebKit::QtViewportInteractionEngine::wheelEvent):
3309         (WebKit::QtViewportInteractionEngine::reset):
3310         (WebKit::QtViewportInteractionEngine::applyConstraints):
3311         (WebKit::QtViewportInteractionEngine::scrollAnimationActive):
3312         (WebKit::QtViewportInteractionEngine::panGestureActive):
3313         (WebKit::QtViewportInteractionEngine::panGestureStarted):
3314         (WebKit::QtViewportInteractionEngine::panGestureRequestUpdate):
3315         (WebKit::QtViewportInteractionEngine::panGestureCancelled):
3316         (WebKit::QtViewportInteractionEngine::panGestureEnded):
3317         (WebKit::QtViewportInteractionEngine::pinchGestureRequestUpdate):
3318         (WebKit::QtViewportInteractionEngine::scaleContent):
3319         * UIProcess/qt/QtViewportInteractionEngine.h:
3320         (QtViewportInteractionEngine):
3321         * UIProcess/qt/QtWebPageEventHandler.cpp:
3322         (QtWebPageEventHandler::doneWithTouchEvent):
3323
3324 2012-02-08  Keunsoon Lee  <keunsoon.lee@samsung.com>
3325
3326         [WK2][EFL] creating dummy class derived from ResourceHandleClient for Efl download module.
3327         https://bugs.webkit.org/show_bug.cgi?id=76171
3328
3329         Reviewed by Andreas Kling.
3330
3331         FileDownloaderEfl is a practical class to operate file download.
3332         It communicates with Download class to start download
3333         and to notify downloading states to user(e.g. client application).
3334         Besides FileDownloaderEfl derives from ResourceHandleClient
3335         and receives chunked data from ResourceHandle directly
3336         or redirects data flow which is started from MainResourceLoader
3337         by mean of exchanging ResourceHandle's existing client for FileDownloaderEfl.
3338
3339         This patch has only dummy functions to make easy to review.
3340         Working patch will be uploaded on another bug thread.
3341
3342         * PlatformEfl.cmake: added new file to compile.
3343         * WebProcess/Downloads/Download.h: added FileDownloaderEfl's instance as a form of OwnPtr<FileDownloaderEfl>.
3344         (WebKit):
3345         (Download):
3346         * WebProcess/Downloads/efl/DownloadEfl.cpp:
3347         (WebKit::Download::start): calling to FileDownloaderEfl::start() to start download for passing ResourceRequest.
3348         * WebProcess/Downloads/efl/FileDownloaderEfl.cpp: Added. a practical class to operate file download.
3349         (WebKit):
3350         (WebKit::FileDownloaderEfl::create): create function, which returns PassOwnPtr<FileDownloaderEfl>.
3351         (WebKit::FileDownloaderEfl::FileDownloaderEfl): constructor, which receives Download* as a parameter.
3352         (WebKit::FileDownloaderEfl::~FileDownloaderEfl): deconstructor.
3353         (WebKit::FileDownloaderEfl::start): a function to start downloading for passed ResourceRequest.
3354         It does nothing for now, but shows how Download class can call FileDownloaderEfl's function.
3355         (WebKit::FileDownloaderEfl::didReceiveResponse): virtual function for ResourceHandleClient.
3356         It will receive response header information from ResourceHandle.
3357         (WebKit::FileDownloaderEfl::didReceiveData): virtual function for ResourceHandleClient.
3358         It will receive chunk data from ResourceHandle.
3359         (WebKit::FileDownloaderEfl::didFinishLoading): virtual function for ResourceHandleClient.
3360         It will be notified loading is finished from ResourceHandle.
3361         (WebKit::FileDownloaderEfl::didFail): virtual function for ResourceHandleClient.
3362         It will be notified loading is fail with ResourceError from ResourceHandle.
3363         (WebKit::FileDownloaderEfl::shouldUseCredentialStorage): virtual function for ResourceHandleClient.
3364         It returns whether to use credential storage or not.
3365         (WebKit::FileDownloaderEfl::didReceiveAuthenticationChallenge): virtual function for ResourceHandleClient.
3366         It will receive AuthenticationChallenge.
3367         (WebKit::FileDownloaderEfl::didCancelAuthenticationChallenge): virtual function for ResourceHandleClient.
3368         It will be notified AuthenticationChallenge is canceled.
3369         (WebKit::FileDownloaderEfl::receivedCancellation): virtual function for ResourceHandleClient.
3370         * WebProcess/Downloads/efl/FileDownloaderEfl.h: Added.
3371         (WebCore):
3372         (WebKit):
3373         (FileDownloaderEfl):
3374
3375 2012-02-07  MORITA Hajime  <morrita@google.com>
3376
3377         Replacement text should be available from the marker.
3378         https://bugs.webkit.org/show_bug.cgi?id=77934
3379
3380         Reviewed by Kent Tamura.
3381
3382         * win/WebKit2.def:
3383         * win/WebKit2CFLite.def:
3384
3385 2012-02-08  Anders Carlsson  <andersca@apple.com>
3386
3387         Don't use the wheel event handler count to track if a page has horizontal scrollbars
3388         https://bugs.webkit.org/show_bug.cgi?id=78192
3389
3390         Reviewed by Andreas Kling.
3391
3392         Prior to this change, we were incrementing and decrementing the wheel event handler count
3393         whenever a scrollable area gained or lost a horizontal scrollbar, so we could use the count
3394         to determine if Safari can handle horizontal wheel events directly or whether they have to be sent
3395         to the web process first.
3396
3397         What this meant was that whenever a page had horizontal scrollbars we'd have to send all scroll wheel events
3398         to the main thread instead of the scrolling thread, regardless of whether there were any wheel event handlers.
3399         
3400         After this change, we traverse the tree of scrollable areas after every layout and check if any of them
3401         have a horizontal scrollbar. (We still also check if there are wheel event handlers).
3402
3403         If traversing the tree after every layout is deemed to slow we can go back to caching the number of horizontal scrollbars
3404         in a page, but the number of subframes in a page is usually very small and the number of other scrollable areas is even smaller.
3405
3406         * UIProcess/WebPageProxy.cpp:
3407         (WebKit::WebPageProxy::WebPageProxy):
3408         (WebKit::WebPageProxy::willHandleHorizontalScrollEvents):
3409         * UIProcess/WebPageProxy.h:
3410         (WebKit::WebPageProxy::setCanShortCircuitHorizontalWheelEvents):
3411         (WebPageProxy):
3412         * UIProcess/WebPageProxy.messages.in:
3413         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
3414         (WebKit::WebChromeClient::numWheelEventHandlersChanged):
3415         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3416         (WebKit::WebFrameLoaderClient::dispatchDidLayout):
3417         * WebProcess/WebPage/WebPage.cpp:
3418         (WebKit::WebPage::WebPage):
3419         (WebKit::WebPage::numWheelEventHandlersChanged):
3420         (WebKit):
3421         (WebKit::hasEnabledHorizontalScrollbar):
3422         (WebKit::pageContainsAnyHorizontalScrollbars):
3423         (WebKit::WebPage::recomputeShortCircuitHorizontalWheelEventsState):
3424         * WebProcess/WebPage/WebPage.h:
3425         (WebPage):
3426
3427 2012-02-08  Sheriff Bot  <webkit.review.bot@gmail.com>
3428
3429         Unreviewed, rolling out r106920, r106924, r106933, r106939,
3430         and r107090.
3431         http://trac.webkit.org/changeset/106920
3432         http://trac.webkit.org/changeset/106924
3433         http://trac.webkit.org/changeset/106933
3434         http://trac.webkit.org/changeset/106939
3435         http://trac.webkit.org/changeset/107090
3436         https://bugs.webkit.org/show_bug.cgi?id=78124
3437
3438         Something is completely wrong this change (Requested by
3439         Ossy_gardener on #webkit).
3440
3441         * Shared/WebProcessCreationParameters.cpp:
3442         (WebKit::WebProcessCreationParameters::encode):
3443         (WebKit::WebProcessCreationParameters::decode):
3444         * Shared/WebProcessCreationParameters.h:
3445         (WebProcessCreationParameters):
3446         * UIProcess/WebContext.cpp:
3447         (WebKit::WebContext::WebContext):
3448         * UIProcess/qt/WebContextQt.cpp:
3449         (WebKit::WebContext::platformInitializeWebProcess):
3450         * WebProcess/qt/WebProcessQt.cpp:
3451         (WebKit):
3452         (WebKit::WebProcess::platformSetCacheModel):
3453         (WebKit::WebProcess::platformInitializeWebProcess):
3454
3455 2012-02-08  Carlos Garcia Campos  <cgarcia@igalia.com>
3456
3457         [GTK] Fix a crash when WebKitWebView is created without a WebContext
3458         https://bugs.webkit.org/show_bug.cgi?id=78104
3459
3460         Reviewed by Philippe Normand.
3461
3462         * UIProcess/API/gtk/WebKitWebView.cpp:
3463         (webkitWebViewSetProperty): Make sure WebKitWebView:web-context
3464         property is initialized to the default web context when a web
3465         context is not passed to g_object_new().
3466         * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
3467         (testWebViewDefaultContext): Check that a web view created with
3468         g_object_new has the default context.
3469
3470 2012-02-08  Michael Brüning  <michael.bruning@nokia.com>
3471
3472         [Qt][WK2] Compute and set cache capacities using the current CacheModel
3473         https://bugs.webkit.org/show_bug.cgi?id=73918
3474
3475         Reviewed by Kenneth Rohde Christiansen.
3476
3477         * UIProcess/WebContext.cpp:
3478         (WebKit::WebContext::WebContext): Set default cacheModel for Qt platform to
3479         CacheModelPrimaryWebBrowser.
3480
3481 2012-02-08  Carlos Garcia Campos  <cgarcia@igalia.com>
3482