[Qt] Fix build when cross-compiling
[WebKit-https.git] / Source / WebKit2 / ChangeLog
1 2012-02-03  Simon Hausmann  <simon.hausmann@nokia.com>
2
3         [Qt] Fix build when cross-compiling
4         https://bugs.webkit.org/show_bug.cgi?id=77634
5
6         Reviewed by Tor Arne Vestbø.
7
8         * WebKit2.pri: Link in -lrt on linux mkspecs, regardless of whether gcc
9         is in use or not. More specifically this fixes the case where the makespace
10         is not linux-g++* but for a cross-compiling one like linux-arm-gnueabi-g++.
11
12 2012-02-03  Shinya Kawanaka  <shinyak@google.com>
13
14         Stop calling Element::ensureShadowRoot in Internals.
15         https://bugs.webkit.org/show_bug.cgi?id=77612
16
17         Reviewed by Hajime Morita.
18
19         Exports symbols.
20
21         * win/WebKit2.def:
22         * win/WebKit2CFLite.def:
23
24 2012-02-02  Sheriff Bot  <webkit.review.bot@gmail.com>
25
26         Unreviewed, rolling out r106620.
27         http://trac.webkit.org/changeset/106620
28         https://bugs.webkit.org/show_bug.cgi?id=77716
29
30         It broke non ENABLE(3D_RENDERING) builds (Requested by
31         Ossy_morning on #webkit).
32
33         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
34         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
35         (WebKit::LayerTreeHostProxy::paintToGraphicsContext):
36         (WebKit::LayerTreeHostProxy::createImage):
37         (WebKit::LayerTreeHostProxy::ensureRootLayer):
38
39 2012-02-02  No'am Rosenthal  <noam.rosenthal@nokia.com>
40
41         [Qt][Texmap] Refactor TextureMapper API to use ImageBuffers when possible.
42         https://bugs.webkit.org/show_bug.cgi?id=77148
43
44         Reviewed by Martin Robinson.
45
46         Use TextureMapper::create instead of creating TextureMapperGL/TextureMapperQt directly.
47         Remove calls to unused API.
48
49         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
50         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
51         (WebKit::LayerTreeHostProxy::paintToGraphicsContext):
52         (WebKit::LayerTreeHostProxy::createImage):
53         (WebKit::LayerTreeHostProxy::ensureRootLayer):
54
55 2012-02-02  Jon Lee  <jonlee@apple.com>
56
57         Clear shown notifications when context is no longer active
58         https://bugs.webkit.org/show_bug.cgi?id=77363
59         <rdar://problem/10568907>
60
61         Reviewed by Darin Adler.
62
63         * WebProcess/WebCoreSupport/WebNotificationClient.cpp:
64         (WebKit::WebNotificationClient::clearNotifications): Forward the call to
65         WebNotificationManager.
66         * WebProcess/WebCoreSupport/WebNotificationClient.h:
67         (WebNotificationClient):
68
69         * WebProcess/Notifications/WebNotificationManager.h: Add an additional map that maps
70         all notifications associated with a given ScriptExecutionContext instance.
71         * WebProcess/Notifications/WebNotificationManager.cpp:
72         (WebKit::WebNotificationManager::show): Create a map entry for the notification's
73         context if it doesn't exist already, and note that notification's ID. Also, correct
74         the return value of show() if notifications are not enabled, to return false.
75         (WebKit::WebNotificationManager::didCloseNotifications): When the notification is closed,
76         we remove that notification from the map.
77         (WebKit::WebNotificationManager::clearNotifications): Use the map entry for the given
78         context, and pass that along to the proxy so that all of the notifications with those IDs
79         can be cleared. In the meantime, we remove that context's map entry.
80
81         * UIProcess/Notifications/WebNotificationManagerProxy.messages.in: New ClearNotifications()
82         message.
83         * UIProcess/Notifications/WebNotificationManagerProxy.h:
84         * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
85         (WebKit::WebNotificationManagerProxy::clearNotifications): Forward the call to the provider.
86         Then remove this proxy's entries for the given notification IDs.
87
88         * UIProcess/Notifications/WebNotificationProvider.cpp:
89         (WebKit::WebNotificationProvider::clearNotifications): Convert the vector of IDs to a mutable
90         array.
91         * UIProcess/Notifications/WebNotificationProvider.h:
92         (WebNotificationProvider):
93
94         * UIProcess/API/C/WKNotificationProvider.h: Add WK API to tell the platform to clear the notifications.
95
96         Remove the #if guard since they already exist in WebNotificationManager functions:
97         * WebProcess/WebCoreSupport/WebNotificationClient.cpp:
98         (WebKit::WebNotificationClient::show):
99         (WebKit::WebNotificationClient::cancel):
100         (WebKit::WebNotificationClient::notificationObjectDestroyed):
101
102 2012-02-02  Anders Carlsson  <andersca@apple.com>
103
104         NPAPI will not send mouse up events when mouse is outside plugin area
105         https://bugs.webkit.org/show_bug.cgi?id=77657
106         <rdar://problem/10160674>
107
108         Reviewed by Andreas Kling.
109
110         Use EventHandler::setCapturingMouseEventsNode to ensure we get all the mouse events when the mouse is down.
111
112         * WebProcess/Plugins/PluginView.cpp:
113         (WebKit::PluginView::handleEvent):
114
115 2012-02-02  Claudio Saavedra  <csaavedra@igalia.com> and Martin Robinson  <mrobinson@igalia.com>
116
117         [GTK] WebKitWebView won't work in a GtkOffscreenWindow
118         https://bugs.webkit.org/show_bug.cgi?id=76911
119
120         Reviewed by Philippe Normand.
121
122         * UIProcess/API/gtk/WebKitUIClient.cpp:
123         (getWindowFrame): Use the new helper.
124         * UIProcess/API/gtk/WebKitWebView.cpp:
125         (webkitWebViewCreateJavaScriptDialog): Ditto
126         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
127         (webkitWebViewBaseRealize): Ditto.
128         (webkitWebViewBaseSizeAllocate): Ditto.
129         (webkitWebViewBaseFocusInEvent): Ditto.
130
131 2012-02-01  Philippe Normand  <pnormand@igalia.com>
132
133         [GStreamer] FFTFrame implementation
134         https://bugs.webkit.org/show_bug.cgi?id=73545
135
136         Reviewed by Chris Rogers.
137
138         * GNUmakefile.am: Remove libfftw compilation flags.
139
140 2012-02-01  No'am Rosenthal  <noam.rosenthal@nokia.com>
141
142         [Texmap] Use glScissors for clipping in TextureMapperGL when possible
143         https://bugs.webkit.org/show_bug.cgi?id=77575
144
145         Reviewed by Martin Robinson.
146
147         Instead of applying the scissor clip in QQuickWebPage, we trickle it down to
148         TextureMapperGL, and apply it there as part of beginClip(). All direct GL operations are
149         now cleaned out of QQuickWebPage.
150
151         * UIProcess/API/qt/qquickwebpage.cpp:
152         (QQuickWebPagePrivate::paintToCurrentGLContext):
153         * UIProcess/DrawingAreaProxy.h:
154         (WebKit::DrawingAreaProxy::paintToCurrentGLContext):
155         * UIProcess/DrawingAreaProxyImpl.cpp:
156         (WebKit::DrawingAreaProxyImpl::paintToCurrentGLContext):
157         * UIProcess/DrawingAreaProxyImpl.h:
158         (DrawingAreaProxyImpl):
159         * UIProcess/LayerTreeHostProxy.h:
160         (LayerTreeHostProxy):
161         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
162         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
163
164 2012-02-01  Dan Bernstein  <mitz@apple.com>
165
166         WebKit2 part of <rdar://problem/10442663> Paginated display does not respect page-break-{before,after}
167         https://bugs.webkit.org/show_bug.cgi?id=77505
168
169         Reviewed by Darin Adler.
170
171         * Shared/WebPageCreationParameters.cpp:
172         (WebKit::WebPageCreationParameters::encode): Encode paginationBehavesLikeColumns.
173         (WebKit::WebPageCreationParameters::decode): Decode paginationBehavesLikeColumns.
174         * Shared/WebPageCreationParameters.h:
175         (WebPageCreationParameters): Added paginationBehavesLikeColumns boolean.
176         * UIProcess/API/C/WKPage.cpp:
177         (WKPageSetPaginationBehavesLikeColumns): Added this setter.
178         (WKPageGetPaginationBehavesLikeColumns): Added this getter.
179         * UIProcess/API/C/WKPagePrivate.h:
180         * UIProcess/API/mac/WKBrowsingContextController.mm:
181         (-[WKBrowsingContextController setPaginationBehavesLikeColumns:]): Added this Objective-C
182         wrapper around WKPageSetPaginationBehavesLikeColumns.
183         (-[WKBrowsingContextController paginationBehavesLikeColumns]): Added this Objective-C wrapper
184         around WKPageGetPaginationBehavesLikeColumns.
185         * UIProcess/API/mac/WKBrowsingContextControllerPrivate.h:
186         * UIProcess/WebPageProxy.cpp:
187         (WebKit::WebPageProxy::WebPageProxy): Added call to setPaginationBehavesLikeColumns() with
188         the value from the creation parameters.
189         (WebKit::WebPageProxy::setPaginationBehavesLikeColumns): Added this setter.
190         (WebKit::WebPageProxy::creationParameters): Populate paginationBehavesLikeColumns.
191         * UIProcess/WebPageProxy.h:
192         (WebKit::WebPageProxy::paginationBehavesLikeColumns): Added this getter.
193         * WebProcess/WebPage/WebPage.cpp:
194         (WebKit::WebPage::setPaginationBehavesLikeColumns): Added this setter.
195         * WebProcess/WebPage/WebPage.h:
196         * WebProcess/WebPage/WebPage.messages.in: Added SetPaginationBehavesLikeColumns message.
197
198 2012-02-01  Anders Carlsson  <andersca@apple.com>
199
200         REGRESSION (r104727): Strange graphics corruption opening a new tab in Safari
201         https://bugs.webkit.org/show_bug.cgi?id=77578
202         <rdar://problem/10767174>
203
204         Reviewed by Dan Bernstein.
205
206         Resizing a window will always invalidate the window backing store, so make sure to set
207         _data->_windowHasValidBackingStore to NO whenever that happens.
208
209         * UIProcess/API/mac/WKView.mm:
210         (-[WKView addWindowObserversForWindow:]):
211         Use separate methods for the NSWindowDidMoveNotification and NSWindowDidResizeNotification notifications.
212
213         (-[WKView _windowDidMove:]):
214         Call -[WKView _updateWindowAndViewFrames].
215
216         (-[WKView _windowDidResize:]):
217         Call -[WKView _updateWindowAndViewFrames] and mark the window backing store as invalid.
218
219 2012-02-01  Beth Dakin  <bdakin@apple.com>
220
221         https://bugs.webkit.org/show_bug.cgi?id=77383
222         Add a different didFirstVisuallNonEmptyLayout heuristic to experiment with
223         -and corresponding-
224         <rdar://problem/10709560>
225
226         Reviewed by Sam Weinig.
227
228         Machinery for didNewFirstVisuallNonEmptyLayout.
229         * UIProcess/API/C/WKPage.h:
230         * UIProcess/WebLoaderClient.cpp:
231         (WebKit::WebLoaderClient::didNewFirstVisuallyNonEmptyLayout):
232         (WebKit):
233         * UIProcess/WebLoaderClient.h:
234         (WebLoaderClient):
235         * UIProcess/WebPageProxy.cpp:
236         (WebKit::WebPageProxy::didNewFirstVisuallyNonEmptyLayout):
237         (WebKit):
238         * UIProcess/WebPageProxy.h:
239         (WebPageProxy):
240         * UIProcess/WebPageProxy.messages.in:
241         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
242         (WebKit::WebFrameLoaderClient::dispatchDidNewFirstVisuallyNonEmptyLayout):
243         (WebKit):
244         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
245         (WebFrameLoaderClient):
246
247         This temporary API allows the client to specify the threshold for the painted 
248         objects counter on Page. This is temporary.
249         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
250         (WKBundlePageSetPaintedObjectsCounterThreshold):
251         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
252         * WebProcess/WebPage/WebPage.cpp:
253         (WebKit::WebPage::setPaintedObjectsCounterThreshold):
254         (WebKit):
255         * WebProcess/WebPage/WebPage.h:
256         (WebPage):
257
258 2012-01-31  Alexey Proskuryakov  <ap@apple.com>
259
260         REGRESSION (WebKit2): event.keyCode is always zero when typing in Russian
261         https://bugs.webkit.org/show_bug.cgi?id=77473
262         <rdar://problem/10751357>
263
264         Reviewed by Darin Adler.
265
266         * Shared/mac/WebEventFactory.mm: Removed broken copy/pasted implementation in favor of
267         WebCore ones.
268
269 2012-01-31  Alexey Proskuryakov  <ap@apple.com>
270
271         PluginProcess should be able to use remote open and save panels
272         https://bugs.webkit.org/show_bug.cgi?id=77461
273         <rdar://problem/10783615>
274
275         Reviewed by Mark Rowe.
276
277         * PluginProcess/mac/PluginProcess.entitlements: Added.
278         * PluginProcess/mac/add-entitlements.sh: Added.
279         * WebKit2.xcodeproj/project.pbxproj:
280         Add appropriate entitlement, plus ad hoc binary signing for it to work.
281
282 2012-01-31  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
283
284         Ensure tiles are repainted when scrolling using mouse wheel.
285         https://bugs.webkit.org/show_bug.cgi?id=77339
286
287         A new slot visibleContentRectAndScaleChanged has been added
288         that is emited by non-animated scrolling code in the
289         QtViewportInteractionEngine.
290
291         Reviewed by Kenneth Rohde Christiansen.
292
293         * UIProcess/API/qt/qquickwebview.cpp:
294         (QQuickWebViewPrivate::initializeDesktop):
295         (QQuickWebViewPrivate::initializeTouch):
296         (QQuickWebViewPrivate::_q_resume):
297         (QQuickWebViewPrivate::_q_updateVisibleContentRectAndScale):
298         (QQuickWebViewPrivate::updateTouchViewportSize):
299         * UIProcess/API/qt/qquickwebview_p.h:
300         * UIProcess/API/qt/qquickwebview_p_p.h:
301         (QQuickWebViewPrivate):
302         * UIProcess/qt/QtViewportInteractionEngine.cpp:
303         (WebKit::QtViewportInteractionEngine::wheelEvent):
304         * UIProcess/qt/QtViewportInteractionEngine.h:
305         (QtViewportInteractionEngine):
306
307 2012-01-31  Zeno Albisser  <zeno@webkit.org>
308
309         [Qt][WK2] Make UIProcess decide about encoding of input data for application URL schemes.
310         https://bugs.webkit.org/show_bug.cgi?id=77417
311
312         Make the UIProcess decide about the encoding and display
313         a warning in case no encoding was defined.
314         Make the QQuickNetworkReply store a QWeakPointer to the
315         QQuickWebViewExperimental to get rid of hackish chain of parental queries.
316
317         Reviewed by Simon Hausmann.
318
319         * UIProcess/API/qt/qquicknetworkreply.cpp:
320         (QQuickNetworkReply::send):
321         (QQuickNetworkReply::setWebViewExperimental):
322         * UIProcess/API/qt/qquicknetworkreply_p.h:
323         * UIProcess/API/qt/qquickwebview.cpp:
324         (QQuickWebViewExperimental::schemeDelegates_Append):
325         * WebProcess/qt/QtNetworkReply.cpp:
326         (WebKit::QtNetworkReply::QtNetworkReply):
327         (WebKit::QtNetworkReply::setReplyData):
328
329 2012-01-30  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
330
331         [Qt] Disconnect the LayerTreeHost from layers when they get removed from their parent.
332         https://bugs.webkit.org/show_bug.cgi?id=77362
333
334         Reviewed by Noam Rosenthal.
335
336         This fixes crashes seen in layout tests under certain timing circumstances
337         that appeared after r106109 was landed.
338
339         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
340         (WebCore::WebGraphicsLayer::replaceChild):
341         (WebCore::WebGraphicsLayer::removeFromParent):
342
343 2012-01-30  Beth Dakin  <bdakin@apple.com>
344
345         https://bugs.webkit.org/show_bug.cgi?id=77263
346         PlatformScreenMac should not rely on NSWindow for important bits of data
347
348         Reviewed by Geoff Garen.
349
350         toUserSpace() and toDeviceSpace() now take a parameter for the 
351         deviceScaleFactor.
352         * UIProcess/API/mac/WKView.mm:
353         (-[WKView _convertToDeviceSpace:]):
354         (-[WKView _convertToUserSpace:]):
355
356 2012-01-26  No'am Rosenthal  <noam.rosenthal@nokia.com> and Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
357
358         [Qt] WKTR: Use a software rendering pipiline when running tests.
359         https://bugs.webkit.org/show_bug.cgi?id=76708
360
361         Reviewed by Kenneth Rohde Christiansen.
362
363         Animation layout tests require the graphics layers tree to be updated
364         to pass. WebkitTestRunner doesn't show its wrapping QQuickView, which
365         prevents the rendering pipeline to run and then in turn blocks the web
366         process from processing further graphics layer updates.
367
368         This allows the tests to use a TextureMapperQt to empty the LayerTreeHost's
369         message queue and render the layers in software on an offscreen buffer.
370
371         * UIProcess/API/qt/qquickwebpage.cpp:
372         (QQuickWebPagePrivate::paint):
373         * UIProcess/API/qt/qquickwebview.cpp:
374         (QQuickWebViewPrivate::QQuickWebViewPrivate):
375         (QQuickWebViewPrivate::setNeedsDisplay):
376         (QQuickWebViewExperimental::setRenderToOffscreenBuffer):
377         (QQuickWebViewExperimental::renderToOffscreenBuffer):
378         * UIProcess/API/qt/qquickwebview_p.h:
379         * UIProcess/API/qt/qquickwebview_p_p.h:
380         (QQuickWebViewPrivate::setRenderToOffscreenBuffer):
381         (QQuickWebViewPrivate::renderToOffscreenBuffer):
382         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
383         (WebKit::LayerTreeHostProxy::paintToGraphicsContext):
384
385 2012-01-30  Andras Becsi  <andras.becsi@nokia.com>
386
387         [Qt][WK2] Render layers do not get flushed when the scroll animation finishes
388         https://bugs.webkit.org/show_bug.cgi?id=77338
389
390         Reviewed by Noam Rosenthal.
391
392         Schedule a layer flush when setting the visible content rect and scale.
393
394         Fixed with the help of Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
395
396         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
397         (WebKit::LayerTreeHostQt::setVisibleContentRectAndScale):
398
399 2012-01-30  Carlos Garcia Campos  <cgarcia@igalia.com>
400
401         Unreviewed. Fix make distcheck.
402
403         * GNUmakefile.am: Add missing files.
404         * WebProcess/WebPage/TapHighlightController.cpp: Add #if
405         ENABLE(TOUCH_EVENTS).
406
407 2012-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
408
409         Unreviewed, rolling out r106022.
410         http://trac.webkit.org/changeset/106022
411         https://bugs.webkit.org/show_bug.cgi?id=77305
412
413         It broke Qt-WK2 API tests (Requested by Ossy_weekend on
414         #webkit).
415
416         * UIProcess/API/qt/qquickwebview.cpp:
417         (QQuickWebViewPrivate::setUseTraditionalDesktopBehaviour):
418         (QQuickWebView::geometryChanged):
419         * UIProcess/API/qt/qquickwebview_p.h:
420         * UIProcess/API/qt/qwebviewportinfo.cpp:
421         (QWebViewportInfo::currentScale):
422         (QWebViewportInfo::devicePixelRatio):
423         (QWebViewportInfo::initialScale):
424         (QWebViewportInfo::minimumScale):
425         (QWebViewportInfo::maximumScale):
426         (QWebViewportInfo::isScalable):
427         (QWebViewportInfo::layoutSize):
428
429 2012-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
430
431         Unreviewed, rolling out r106109.
432         http://trac.webkit.org/changeset/106109
433         https://bugs.webkit.org/show_bug.cgi?id=77302
434
435         It made tests crash (Requested by Ossy_weekend on #webkit).
436
437         * UIProcess/API/qt/qquickwebpage.cpp:
438         * UIProcess/API/qt/qquickwebpage_p_p.h:
439         (QQuickWebPagePrivate):
440         * UIProcess/API/qt/qquickwebview.cpp:
441         (QQuickWebViewPrivate::QQuickWebViewPrivate):
442         * UIProcess/API/qt/qquickwebview_p.h:
443         * UIProcess/API/qt/qquickwebview_p_p.h:
444         (QQuickWebViewPrivate):
445         * UIProcess/DrawingAreaProxy.h:
446         * UIProcess/DrawingAreaProxyImpl.cpp:
447         * UIProcess/DrawingAreaProxyImpl.h:
448         (DrawingAreaProxyImpl):
449         * UIProcess/LayerTreeHostProxy.h:
450         (LayerTreeHostProxy):
451         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
452         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
453         * UIProcess/qt/QtPageClient.cpp:
454         (QtPageClient::setViewNeedsDisplay):
455
456 2012-01-27  Fady Samuel  <fsamuel@chromium.org>
457
458         Rename shouldLayoutFixedElementsRelativeToFrame and make it a setting
459         https://bugs.webkit.org/show_bug.cgi?id=76459
460
461         Reviewed by Darin Fisher.
462
463         * win/WebKit2.def:
464         * win/WebKit2CFLite.def:
465
466 2012-01-27  Martin Robinson  <mrobinson@igalia.com>
467
468         Fix a compilation warning in a WebKit2 GTK+ API test.
469
470         Reviewed by Gustavo Noronha Silva.
471
472         * UIProcess/API/gtk/tests/TestBackForwardList.cpp:
473         (testBackForwardListLimitAndCache): Use an int instead of size_t
474         because we want to print them as ints and do subtraction on them.
475
476 2012-01-27  Martin Robinson  <mrobinson@igalia.com>
477
478         [GTK] [WK2] Implement the policy client
479         https://bugs.webkit.org/show_bug.cgi?id=76343
480
481         Reviewed by Gustavo Noronha Silva.
482
483         Implement the abstract WebKitPolicyDecision, WebKitNavigationPolicyDecision,
484         and add the decide-policy signal to WebKitWebView.
485
486         * GNUmakefile.am: Add new files to the source list.
487         * UIProcess/API/gtk/WebKitError.cpp: Use the WebCore namespace because
488         of changes to ASSERT_MATCHING_ENUMS.
489         * UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp: Added.
490         * UIProcess/API/gtk/WebKitNavigationPolicyDecision.h: Added.
491         * UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h: Added.
492         * UIProcess/API/gtk/WebKitPolicyClient.cpp: Added.
493         * UIProcess/API/gtk/WebKitPolicyClientPrivate.h: Added.
494         * UIProcess/API/gtk/WebKitPolicyDecision.cpp: Added.
495         * UIProcess/API/gtk/WebKitPolicyDecision.h: Added.
496         * UIProcess/API/gtk/WebKitPolicyDecisionPrivate.h: Added.
497         * UIProcess/API/gtk/WebKitPrivate.h: Modify ASSERT_MATCHING_ENUMS to make
498         it useful for non-WebCore enums.
499         * UIProcess/API/gtk/WebKitWebView.cpp:
500         (webkitWebViewConstructed): Attach the policy client callbacks to the page.
501         (webkit_web_view_class_init): Add the decide-policy signal definition.
502         (webkitWebViewMakePolicyDecision): Added this private method to fire the signal.
503         * UIProcess/API/gtk/WebKitWebView.h: Added new signal to the list.
504         * UIProcess/API/gtk/WebKitWebViewPrivate.h: Added new method declaration.
505         * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Added new classes to the docs.
506         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto.
507         * UIProcess/API/gtk/tests/GNUmakefile.am: Added new test to the source list.
508         * UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp: Added.
509         * UIProcess/API/gtk/webkit2marshal.list: decide-policy has a new signature.
510
511 2012-01-27  Ada Chan  <adachan@apple.com>
512
513         Add API to get the parent frame in WKBundleFrameRef
514         https://bugs.webkit.org/show_bug.cgi?id=77161
515
516         Reviewed by Anders Carlsson.
517
518         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
519         (WKBundleFrameGetParentFrame): Get the parent frame by calling WebFrame::parentFrame().
520         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
521         * WebProcess/WebPage/WebFrame.cpp:
522         (WebKit::WebFrame::parentFrame): Return null if the frame does not have an owner element.
523         Otherwise, return the owner element's frame.
524         * WebProcess/WebPage/WebFrame.h:
525
526 2012-01-27  Gustavo Noronha Silva  <gns@gnome.org>
527
528         [GTK] Sometimes fails to build when using make -j
529         https://bugs.webkit.org/show_bug.cgi?id=77226
530
531         Reviewed by Martin Robinson.
532
533         * GNUmakefile.am: use a different name for the scripts used to
534         generate enum files for WebKitGTK+ and WebKit2GTK+, so they do not
535         clash;
536
537 2012-01-27  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
538
539         Fix overridePreference for WebKitHixie76WebSocketProtocolEnabled in WebKitTestRunner.
540         https://bugs.webkit.org/show_bug.cgi?id=77220
541
542         Reviewed by Noam Rosenthal.
543
544         * WebProcess/InjectedBundle/InjectedBundle.cpp:
545         (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): The macro already stringify TestRunnerName.
546
547 2012-01-27  Carlos Garcia Campos  <cgarcia@igalia.com>
548
549         [GTK] Add a GKeyFile especialization to GOwnPtr
550         https://bugs.webkit.org/show_bug.cgi?id=77191
551
552         Reviewed by Martin Robinson.
553
554         * Shared/gtk/ArgumentCodersGtk.cpp:
555         (CoreIPC::decodeGKeyFile): Use GOwnPtr for GKeyFile.
556         (CoreIPC::encode): Ditto.
557         (CoreIPC::decode): Ditto.
558
559 2012-01-27  Kenneth Rohde Christiansen  <kenneth@webkit.org>
560
561         [Qt] Fade out tap highlighting when starting to pan
562         https://bugs.webkit.org/show_bug.cgi?id=77202
563
564         Reviewed by Simon Hausmann.
565
566         Basically we need to fade out the potential tap highlighting
567         when ever the gesture recognition fails or another gesture
568         is recognized. We do that with this change.
569
570         * UIProcess/qt/QtTapGestureRecognizer.cpp:
571         (WebKit::QtTapGestureRecognizer::QtTapGestureRecognizer):
572         (WebKit::QtTapGestureRecognizer::recognize):
573         (WebKit::QtTapGestureRecognizer::reset):
574
575             Remove reset as it does nothing but call code before the
576             event handler is installed.
577
578 2012-01-26  No'am Rosenthal  <noam.rosenthal@nokia.com> and Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
579
580         [Qt] WKTR: Use a software rendering pipiline when running tests.
581         https://bugs.webkit.org/show_bug.cgi?id=76708
582
583         Reviewed by Kenneth Rohde Christiansen.
584
585         Animation layout tests require the graphics layers tree to be updated
586         to pass. WebkitTestRunner doesn't show its wrapping QQuickView, which
587         prevents the rendering pipeline to run and then in turn blocks the web
588         process from processing further graphics layer updates.
589
590         This allows the tests to use a TextureMapperQt to empty the LayerTreeHost's
591         message queue and render the layers in software on an offscreen buffer.
592
593         * UIProcess/API/qt/qquickwebpage.cpp:
594         (QQuickWebPagePrivate::paint):
595         * UIProcess/API/qt/qquickwebview.cpp:
596         (QQuickWebViewPrivate::QQuickWebViewPrivate):
597         (QQuickWebViewPrivate::setNeedsDisplay):
598         (QQuickWebViewExperimental::setRenderToOffscreenBuffer):
599         (QQuickWebViewExperimental::renderToOffscreenBuffer):
600         * UIProcess/API/qt/qquickwebview_p.h:
601         * UIProcess/API/qt/qquickwebview_p_p.h:
602         (QQuickWebViewPrivate::setRenderToOffscreenBuffer):
603         (QQuickWebViewPrivate::renderToOffscreenBuffer):
604         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
605         (WebKit::LayerTreeHostProxy::paintToGraphicsContext):
606
607 2012-01-27  Simon Hausmann  <simon.hausmann@nokia.com>
608
609         [Qt] Re-creating QQuickWebView starts new web process every time
610         https://bugs.webkit.org/show_bug.cgi?id=77194
611
612         Reviewed by Kenneth Rohde Christiansen.
613
614         Since the WebKit::WebContext is never fully destructed due to circular
615         references, we should use the real shared context instead of re-creating
616         a new WebContext every time.
617
618         * UIProcess/qt/QtWebContext.cpp:
619         (WebKit::QtWebContext::defaultContext):
620
621 2012-01-26  Carlos Garcia Campos  <cgarcia@igalia.com>
622
623         [GTK] Add basic printing support to WebKit2
624         https://bugs.webkit.org/show_bug.cgi?id=76172
625
626         Reviewed by Gustavo Noronha Silva.
627
628         * GNUmakefile.am: Add new files to compilation.
629         * Shared/PrintInfo.cpp:
630         (WebKit::PrintInfo::encode): Encode also GtkPrintSettings and
631         GtkPageSetup for the GTK+ port.
632         (WebKit::PrintInfo::decode): Decode also GtkPrintSettings and
633         GtkPageSetup for the GTK+ port.
634         * Shared/PrintInfo.h: Add GtkPrintSettings and GtkPageSetup member
635         for the GTK+ port.
636         * Shared/gtk/ArgumentCodersGtk.cpp:
637         (CoreIPC::encodeGKeyFile): Helper function to encode a GKeyFile as
638         a DataReference object.
639         (CoreIPC::decodeGKeyFile): Helper function to decode a GKeyFile to
640         a DataReference object.
641         (CoreIPC::encode): Encode GtkPrintSettings and GtkPageSetup using
642         the GKeyFile representation.
643         (CoreIPC::decode): Decode GtkPrintSettings and GtkPageSetup using
644         the GKeyFile representation.
645         * Shared/gtk/ArgumentCodersGtk.h:
646         * Shared/gtk/PrintInfoGtk.cpp: Copied from Source/WebKit2/Shared/PrintInfo.cpp.
647         (WebKit::PrintInfo::PrintInfo): Add PrintInfo constructor that
648         takes GtkPrintSettings and GtkPageSetup instances.
649         * UIProcess/WebPageProxy.cpp:
650         (WebKit::WebPageProxy::drawPagesForPrinting): Send
651         DrawPagesForPrinting message to Web process to start printing.
652         * UIProcess/WebPageProxy.h:
653         * WebProcess/WebPage/WebPage.cpp:
654         (WebKit::WebPage::beginPrinting): Create a WebPrintOperationGtk.
655         (WebKit::WebPage::endPrinting): Delete the WebPrintOperationGtk
656         object.
657         (WebKit::WebPage::drawPagesForPrinting): Start printing pages.
658         * WebProcess/WebPage/WebPage.h:
659         * WebProcess/WebPage/WebPage.messages.in: Add DrawPagesForPrinting message.
660         * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: Added.
661         (WebKit::PrintPagesData::PrintPagesData): Struct to store all data
662         used to render pages for printing.
663         (WebKit::PrintPagesData::incrementPageSequence): Helper function
664         to increment the page sequence.
665         (WebKit::WebPrintOperationGtk::create): Create a
666         WebPrintOperationGtkUnix or WebPrintOperationGtkWin32 depending on
667         the platform.
668         (WebKit::WebPrintOperationGtk::WebPrintOperationGtk):
669         (WebKit::WebPrintOperationGtk::~WebPrintOperationGtk):
670         (WebKit::WebPrintOperationGtk::pageCount): Return the total pages
671         of the document to print.
672         (WebKit::WebPrintOperationGtk::rotatePage): Helper function to
673         transform the context according to orientation.
674         (WebKit::WebPrintOperationGtk::renderPage): Render the given page
675         into the printing context.
676         (WebKit::WebPrintOperationGtk::printPagesIdle): Idle function used
677         to print pages.
678         (WebKit::WebPrintOperationGtk::printPagesIdleDone): Callback
679         called when printPagesIdle finishes.
680         (WebKit::WebPrintOperationGtk::printDone): Helper function to
681         finish the print operation, called when all pages have been rendered.
682         (WebKit::WebPrintOperationGtk::print): Start printing the document
683         using the given cairo surface.
684         * WebProcess/WebPage/gtk/WebPrintOperationGtk.h: Added.
685         (WebKit::WebPrintOperationGtk::printSettings):
686         (WebKit::WebPrintOperationGtk::pageSetup):
687         (WebKit::WebPrintOperationGtk::pagesToPrint):
688         (WebKit::WebPrintOperationGtk::pageRanges):
689         (WebKit::WebPrintOperationGtk::pageRangesCount):
690
691 2012-01-26  Tim Horton  <hortont424@gmail.com>
692
693         3D transformed elements hide when showing the print dialog
694         https://bugs.webkit.org/show_bug.cgi?id=45894
695         <rdar://problem/7441593>
696
697         Reviewed by Andy Estes.
698
699         Suspend updates of the compositing layer tree while printing is taking place,
700         preventing on-screen layers from moving to their print-mode positions.
701
702         * WebProcess/WebPage/WebPage.cpp:
703         (WebKit::WebPage::beginPrinting):
704         (WebKit::WebPage::endPrinting):
705         * WebProcess/WebPage/ca/LayerTreeHostCA.h:
706         * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.h:
707         * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm:
708         (WebKit::LayerTreeHostCAMac::forceRepaint):
709         (WebKit::LayerTreeHostCAMac::flushPendingLayerChanges):
710
711 2012-01-26  Andras Becsi  <andras.becsi@nokia.com>
712
713         [Qt][WK2] Add the componentComplete method to WebView
714         https://bugs.webkit.org/show_bug.cgi?id=77111
715
716         Reviewed by Kenneth Rohde Christiansen.
717
718         Move the touch/desktop initialization to componentComplete.
719         Also return valid default values in the viewport info functions
720         if the interaction engine is not yet initialized because the
721         viewport info component could finish initialization earlier
722         than the WebView, which results in QML warnings during MiniBrowser
723         startup.
724
725         * UIProcess/API/qt/qquickwebview.cpp:
726         (QQuickWebViewPrivate::setUseTraditionalDesktopBehaviour):
727         (QQuickWebView::geometryChanged):
728         (QQuickWebView::componentComplete):
729         * UIProcess/API/qt/qquickwebview_p.h:
730         * UIProcess/API/qt/qwebviewportinfo.cpp:
731         (QWebViewportInfo::currentScale):
732         (QWebViewportInfo::devicePixelRatio):
733         (QWebViewportInfo::initialScale):
734         (QWebViewportInfo::minimumScale):
735         (QWebViewportInfo::maximumScale):
736         (QWebViewportInfo::isScalable):
737         (QWebViewportInfo::layoutSize):
738
739 2012-01-26  Anders Carlsson  <andersca@apple.com>
740
741         WebWheelEvent::Phase and PlatformWheelEvent::Phase declarations should match AppKit
742         https://bugs.webkit.org/show_bug.cgi?id=77123
743
744         Reviewed by Beth Dakin.
745
746         * Shared/WebEvent.h:
747         ():
748         * Shared/mac/WebEventFactory.mm:
749         (WebKit::phaseForEvent):
750
751 2012-01-26  Andras Becsi  <andras.becsi@nokia.com>
752
753         ASSERT(!m_overlay) reached in TapHighlightController.cpp:73
754         https://bugs.webkit.org/show_bug.cgi?id=77117
755
756         Reviewed by Tor Arne Vestbø.
757
758         The PageOverlay does only get uninstalled after the fade-out animation finishes,
759         so do not assert on !m_overlay after the uninstallPageOverlay call.
760
761         * WebProcess/WebPage/TapHighlightController.cpp:
762         (WebKit::TapHighlightController::hideHighlight):
763
764 2012-01-26  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
765
766         WebPreferencesStore: use DEFINE_STATIC_LOCAL for overrides HashMap
767         https://bugs.webkit.org/show_bug.cgi?id=77109
768
769         Reviewed by Andreas Kling.
770
771         Fix build for Clang.
772
773         * Shared/WebPreferencesStore.cpp:
774         (WebKit):
775         (WebKit::boolTestRunnerOverridesMap):
776         (WebKit::WebPreferencesStore::overrideBoolValueForKey):
777         (WebKit::WebPreferencesStore::removeTestRunnerOverrides):
778         (WebKit::WebPreferencesStore::getBoolValueForKey):
779
780 2012-01-26  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
781
782         Implement overridePreference for boolean preferences in WebKitTestRunner
783         https://bugs.webkit.org/show_bug.cgi?id=77033
784
785         Reviewed by Alexey Proskuryakov.
786
787         Implement a way to WebKitTestRunner override preferences for the pages
788         loaded. Follows the same approach taken by
789         overrideXSSAuditorEnabledForTestRunner() from r66551, but generalizing to many
790         preferences.
791
792         Preferences are stored in the UI process using WebPreferencesStore, and when
793         there's a change, this data is sent to Web process, triggering
794         WebPage::preferencesDidChange(), which take a WebPreferencesStore and apply it's
795         data to the WebCore::Settings object.
796
797         The overridePreference() is executed on the Web process, and set the preferences
798         without communicating to the UI process. The overriden preferences are stored in
799         a static map and WebPreferencesStore query this map before returning the values
800         of each preference. This static map is used only on the Web process.
801
802         To clear the overrides we need to clear the map. Since WTR only sets preferences
803         when resetting the page, we hook the clearing at WebPage::preferencesDidChange().
804         A WKPreferences private function was exposed to WTR force the update, in case
805         there's no effective change at UI process (all the properties remains the same).
806
807         This clearing could be improved by creating a proper message instead of hooking
808         at WebPage::preferencesDidChange().
809
810         * Shared/WebPreferencesStore.cpp:
811         (WebKit::WebPreferencesStore::decode):
812         (WebKit::WebPreferencesStore::overrideBoolValueForKey):
813         (WebKit::WebPreferencesStore::removeTestRunnerOverrides):
814         (WebKit::WebPreferencesStore::getBoolValueForKey):
815         * Shared/WebPreferencesStore.h:
816         * UIProcess/API/C/WKPreferences.cpp:
817         (WKPreferencesResetTestRunnerOverrides):
818         * UIProcess/API/C/WKPreferencesPrivate.h:
819         * UIProcess/WebPreferences.h:
820         (WebKit::WebPreferences::forceUpdate):
821         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
822         (WKBundleOverrideBoolPreferenceForTestRunner):
823         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
824         * WebProcess/InjectedBundle/InjectedBundle.cpp:
825         (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
826         (WebKit::InjectedBundle::overrideXSSAuditorEnabledForTestRunner):
827         * WebProcess/InjectedBundle/InjectedBundle.h:
828
829 2012-01-26  Carlos Garcia Campos  <cgarcia@igalia.com>
830
831         [GTK][WK2] Primary clipboard should be updated with the current selection in X11 platforms
832         https://bugs.webkit.org/show_bug.cgi?id=77097
833
834         Reviewed by Martin Robinson.
835
836         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
837         (WebKit::WebEditorClient::respondToChangedSelection): Call
838         setSelectionPrimaryClipboardIfNeeded() to update primary clipboard
839         in X11 platforms.
840         * WebProcess/WebCoreSupport/WebEditorClient.h:
841         * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
842         (WebKit::collapseSelection): Callback called when clearing
843         clipboard contents.
844         (WebKit::WebEditorClient::setSelectionPrimaryClipboardIfNeeded):
845         Updaye primary clipboard with the current selection.
846
847 2012-01-26  Zeno Albisser  <zeno@webkit.org>
848
849         [Qt][WK2] Use QVariant for payload data in application URL schemes.
850         https://bugs.webkit.org/show_bug.cgi?id=77007
851
852         Make application schemes use QVariant for payload data.
853         This allows passing QByteArrays as well as simple String data.
854
855         Remove unneeded http header parts that were exposed in
856         QQuickNetworkReply.
857
858         Add ByteArrayTestData class to allow injecting QByteArray
859         data into an application scheme handler for testing.
860
861         Reviewed by Simon Hausmann.
862
863         * Shared/qt/QtNetworkReplyData.cpp:
864         (WebKit::QtNetworkReplyData::QtNetworkReplyData):
865         (WebKit::QtNetworkReplyData::encode):
866         (WebKit::QtNetworkReplyData::decode):
867         * Shared/qt/QtNetworkReplyData.h:
868         * UIProcess/API/qt/qquicknetworkreply.cpp:
869         (QQuickNetworkReply::QQuickNetworkReply):
870         (QQuickNetworkReply::data):
871         (QQuickNetworkReply::setData):
872         (QQuickNetworkReply::send):
873         * UIProcess/API/qt/qquicknetworkreply_p.h:
874         * UIProcess/API/qt/tests/bytearraytestdata.cpp: Added.
875         (ByteArrayTestData::ByteArrayTestData):
876         (ByteArrayTestData::latin1Data):
877         (ByteArrayTestData::utf8Data):
878         * UIProcess/API/qt/tests/bytearraytestdata.h: Added.
879         * UIProcess/API/qt/tests/qmltests/WebView/tst_applicationScheme.qml:
880         * UIProcess/API/qt/tests/qmltests/tst_qmltests.cpp:
881         (main):
882         * UIProcess/API/qt/tests/tests.pri:
883         * WebProcess/qt/QtNetworkReply.cpp:
884         (WebKit::QtNetworkReply::setReplyData):
885         * WebProcess/qt/QtNetworkReply.h:
886
887 2012-01-26  Thiago Marcos P. Santos  <tmpsantos@gmail.com>
888
889         [Qt] Fixed build when using force_static_libs_as_shared
890         https://bugs.webkit.org/attachment.cgi?bugid=77082
891
892         Reviewed by Simon Hausmann.
893
894         * Target.pri:
895
896 2012-01-26  Nándor Huszka  <huszka.nandor@stud.u-szeged.hu>
897
898         [WK2] WebKitTestRunner needs layoutTestController.setGeolocationPermission
899         https://bugs.webkit.org/show_bug.cgi?id=42545
900
901         Reviewed by Zoltan Herczeg.
902
903         Implement the setGeolocationPermission method.
904
905         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
906         (WKBundleSetGeolocationPermission):
907         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
908         * WebProcess/InjectedBundle/InjectedBundle.cpp:
909         (WebKit::InjectedBundle::setGeoLocationPermission):
910         (WebKit):
911         * WebProcess/InjectedBundle/InjectedBundle.h:
912         (InjectedBundle):
913
914 2012-01-25  Mark Rowe  <mrowe@apple.com>
915
916         Build in to an alternate location when USE_STAGING_INSTALL_PATH is set.
917
918         <rdar://problem/10609417> Adopt USE_STAGING_INSTALL_PATH
919
920         Reviewed by David Kilzer.
921
922         * Configurations/BaseTarget.xcconfig: Define NORMAL_WEBKIT2_FRAMEWORKS_DIR, which contains
923         the path where WebKit is normally installed. Update WEBKIT2_FRAMEWORKS_DIR to point to
924         the staged frameworks directory when USE_STAGING_INSTALL_PATH is set. Update
925         UMBRELLA_FRAMEWORKS_DIR so we can find WebCore at the top level of the staged frameworks
926         directory when USE_STAGING_INSTALL_PATH is set, rather than finding it embedded inside of
927         WebKit.framework.
928         * Configurations/PluginProcess.xcconfig: Set our install path based on WEBKIT2_FRAMEWORKS_DIR.
929         * Configurations/WebKit2.xcconfig: Set our install path based on WEBKIT2_FRAMEWORKS_DIR.
930         Always set the framework's install name based on the normal framework location. This prevents
931         an incorrect install name from being used when installing in to the staged frameworks directory.
932         * Configurations/WebProcess.xcconfig: Set our install path based on WEBKIT2_FRAMEWORKS_DIR.
933
934 2012-01-25  No'am Rosenthal  <noam.rosenthal@nokia.com>
935
936         [WK2][Qt] REGRESSION: Pages with transform animations sometimes omit some of the layers since r105413
937         https://bugs.webkit.org/show_bug.cgi?id=76886
938
939         Reviewed by Kenneth Rohde Christiansen.
940
941         We now render the whole layer if it or one if its ancestors has an active transform
942         animations. It's possible to optimize further in the future, but not currently necessary.
943         Also, we make sure that when a WebGraphicsLayer's property that affects transformation is
944         changed, all its descandants layers are marked as modified so that we re-adjust their
945         visible rect in the next pass.
946
947         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
948         (WebCore::WebGraphicsLayer::notifyChangeRecursively):
949         (WebCore):
950         (WebCore::WebGraphicsLayer::setPosition):
951         (WebCore::WebGraphicsLayer::setAnchorPoint):
952         (WebCore::WebGraphicsLayer::setSize):
953         (WebCore::WebGraphicsLayer::setTransform):
954         (WebCore::WebGraphicsLayer::setChildrenTransform):
955         (WebCore::WebGraphicsLayer::setPreserves3D):
956         (WebCore::WebGraphicsLayer::setMasksToBounds):
957         (WebCore::WebGraphicsLayer::addAnimation):
958         (WebCore::WebGraphicsLayer::removeAnimation):
959         (WebCore::WebGraphicsLayer::tiledBackingStoreVisibleRect):
960         (WebCore::WebGraphicsLayer::selfOrAncestorHasActiveTransformAnimations):
961         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
962         (WebGraphicsLayer):
963
964 2012-01-25  Hajime Morita  <morrita@google.com>
965
966         ENABLE_SHADOW_DOM should be available via build-webkit --shadow-dom
967         https://bugs.webkit.org/show_bug.cgi?id=76863
968
969         Reviewed by Dimitri Glazkov.
970
971         Added a feature flag.
972
973         * Configurations/FeatureDefines.xcconfig:
974
975 2012-01-25  Martin Robinson  <mrobinson@igalia.com>
976
977         [WK2] Navigation events not triggered by a mouse event claim to be triggered by the left mouse button during policy decisions
978         https://bugs.webkit.org/show_bug.cgi?id=76344
979
980         Reviewed by Sam Weinig.
981
982         When creating InjectedBundleNavigationActions, initialize the mouse button to NoButton.
983         This ensures that when there is no mouse event associated with the action, when the event
984         hits the client-API layer, the button is still NoButton.
985
986         * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
987         (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction): Initialize m_mouseButton
988         to WebMouseEvent::NoButton.
989
990 2012-01-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
991
992         [Qt] Implement tap feedback respecting -webkit-tap-highlight-color
993         https://bugs.webkit.org/show_bug.cgi?id=76914
994
995         Reviewed by Simon Hausmann.
996
997         Implement tap highlighting for Qt. When a touch press is issued,
998         which is not handled by the web page, then we highlight any
999         activatable node below. In all otehr cases, we hide any highlights.
1000
1001         The highlighting itself is painted on an accelerated PageOverlay,
1002         on the web process side.
1003
1004         * Target.pri:
1005         * UIProcess/WebPageProxy.cpp:
1006         (WebKit::WebPageProxy::handlePotentialActivation):
1007         * UIProcess/WebPageProxy.h:
1008         * UIProcess/qt/QtTapGestureRecognizer.cpp:
1009         (WebKit::QtTapGestureRecognizer::recognize):
1010         * UIProcess/qt/QtWebPageEventHandler.cpp:
1011         (QtWebPageEventHandler::handlePotentialSingleTapEvent):
1012         * UIProcess/qt/QtWebPageEventHandler.h:
1013         * WebProcess/WebPage/TapHighlightController.cpp: Added.
1014         (WebKit::TapHighlightController::TapHighlightController):
1015         (WebKit::TapHighlightController::~TapHighlightController):
1016         (WebKit::TapHighlightController::highlight):
1017         (WebKit::TapHighlightController::hideHighlight):
1018         (WebKit::TapHighlightController::pageOverlayDestroyed):
1019         (WebKit::TapHighlightController::willMoveToWebPage):
1020         (WebKit::TapHighlightController::didMoveToWebPage):
1021         (WebKit::highlightColor):
1022         (WebKit::TapHighlightController::drawRect):
1023         (WebKit::TapHighlightController::mouseEvent):
1024         * WebProcess/WebPage/TapHighlightController.h: Added.
1025         * WebProcess/WebPage/WebPage.cpp:
1026         (WebKit::WebPage::WebPage):
1027         (WebKit::WebPage::highlightPotentialActivation):
1028         * WebProcess/WebPage/WebPage.h:
1029         (WebKit::WebPage::tapHighlightController):
1030         * WebProcess/WebPage/WebPage.messages.in:
1031
1032 2012-01-25  Nándor Huszka  <huszka.nandor@stud.u-szeged.hu>
1033
1034         [WK2] WebKitTestRunner needs layoutTestController.setPopupBlockingEnabled
1035         https://bugs.webkit.org/show_bug.cgi?id=63458
1036
1037         Reviewed by Adam Roben.
1038
1039         Implement the setPopupBlockingEnabled method.
1040
1041         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
1042         (WKBundleSetPrivateBrowsingEnabled):
1043         (WKBundleSetPopupBlockingEnabled):
1044         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
1045         * WebProcess/InjectedBundle/InjectedBundle.cpp:
1046         (WebKit::InjectedBundle::setPopupBlockingEnabled):
1047         * WebProcess/InjectedBundle/InjectedBundle.h:
1048
1049 2012-01-25  Yael Aharon  <yael.aharon@nokia.com>
1050
1051         [Qt] Build fix when using force_static_libs_as_shared
1052         https://bugs.webkit.org/show_bug.cgi?id=76832
1053
1054         Reviewed by Simon Hausmann.
1055
1056         Add a dependency on QtWidgets.
1057
1058         * Target.pri:
1059
1060 2012-01-24  Sergio Villar Senin  <svillar@igalia.com>
1061
1062         [WK2] FindController should not assume that ports do not want to highlight text matches
1063         https://bugs.webkit.org/show_bug.cgi?id=76921
1064
1065         Reviewed by Darin Adler.
1066
1067         FindController must obey the FindOptionsShowHighlight flag instead
1068         of assuming that ports do not want to highlight search matches.
1069
1070         * Shared/API/c/WKFindOptions.h: added kWKFindOptionsShowHighlight.
1071         * Shared/API/c/WKSharedAPICast.h:
1072         (WebKit::toFindOptions): Ditto.
1073         * Shared/WebFindOptions.h: added FindOptionsShowHighlight.
1074         * WebProcess/WebPage/FindController.cpp:
1075         (WebKit::FindController::findString):
1076
1077 2012-01-25  Carlos Garcia Campos  <cgarcia@igalia.com>
1078
1079         [GTK] Page clients don't need to be GObjects anymore in WebKit2 GTK+ API
1080         https://bugs.webkit.org/show_bug.cgi?id=76899
1081
1082         Reviewed by Martin Robinson.
1083
1084         * UIProcess/API/gtk/WebKitLoaderClient.cpp: Renamed from
1085         Source/WebKit2/UIProcess/API/gtk/WebKitWebLoaderClient.cpp.
1086         (didStartProvisionalLoadForFrame): Use clientInfo instead fo
1087         getting the view from the page.
1088         (didReceiveServerRedirectForProvisionalLoadForFrame): Ditto.
1089         (didFailProvisionalLoadWithErrorForFrame): Ditto.
1090         (didCommitLoadForFrame): Ditto.
1091         (didFinishLoadForFrame): Ditto.
1092         (didFailLoadWithErrorForFrame): Ditto.
1093         (didSameDocumentNavigationForFrame): Ditto.
1094         (didReceiveTitleForFrame): Ditto.
1095         (didChangeProgress): Ditto.
1096         (didChangeBackForwardList): Ditto.
1097         (attachLoaderClientToView): Pass WebKitWebView as clientInfo to
1098         callbacks.
1099         * UIProcess/API/gtk/WebKitLoaderClient.h: Added.
1100         * UIProcess/API/gtk/WebKitUIClient.cpp:
1101         (createNewPage): Use clientInfo instead fo getting the view from
1102         the page.
1103         (showPage): Ditto.
1104         (closePage): Ditto.
1105         (runJavaScriptAlert): Ditto.
1106         (runJavaScriptConfirm): Ditto.
1107         (runJavaScriptPrompt): Ditto.
1108         (toolbarsAreVisible): Ditto.
1109         (setToolbarsAreVisible): Ditto.
1110         (menuBarIsVisible): Ditto.
1111         (setMenuBarIsVisible): Ditto.
1112         (statusBarIsVisible): Ditto.
1113         (setStatusBarIsVisible): Ditto.
1114         (isResizable): Ditto.
1115         (setIsResizable): Ditto.
1116         (getWindowFrame): Ditto.
1117         (setWindowFrame): Ditto.
1118         (attachUIClientToView): Pass WebKitWebView as clientInfo to
1119         callbacks.
1120         * UIProcess/API/gtk/WebKitUIClient.h: Remove GObject boilerplate.
1121         * UIProcess/API/gtk/WebKitWebLoaderClient.h: Removed.
1122         * UIProcess/API/gtk/WebKitWebView.cpp:
1123         (webkitWebViewConstructed): Remove UIClient and LoaderClient
1124         objects and call attachUIClientToView() and attachLoaderClientToView().
1125         * UIProcess/API/gtk/tests/GNUmakefile.am: Rename
1126         WebKitWebLoaderClient to WebKitLoaderClient.
1127         * UIProcess/API/gtk/tests/TestLoaderClient.cpp: Renamed from
1128         Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebLoaderClient.cpp.
1129
1130 2012-01-25  Roland Steiner  <rolandsteiner@chromium.org>
1131
1132         <style scoped>: Implement registering of <style scoped> with the scoping element
1133         https://bugs.webkit.org/show_bug.cgi?id=67790
1134
1135         Add symbols for windows.internals.numberOfScopedHTMLStyleChildren
1136
1137         Reviewed by Dimitri Glazkov.
1138
1139         * win/WebKit2.def:
1140         * win/WebKit2CFLite.def:
1141
1142 2012-01-24  Beth Dakin  <bdakin@apple.com>
1143
1144         https://bugs.webkit.org/show_bug.cgi?id=76928
1145         Accelerated drawing should force compositing mode
1146         -and corresponding-
1147         <rdar://problem/10697417>
1148
1149         Reviewed by Simon Fraser.
1150
1151         * WebProcess/WebPage/WebPage.cpp:
1152         (WebKit::WebPage::updatePreferences):
1153
1154 2012-01-24  Alexis Menard  <alexis.menard@openbossa.org>
1155
1156         Unreviewed build fix for Qt.
1157
1158         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
1159         (WebKit::LayerTreeHostQt::showDebugBorders):
1160         (WebKit::LayerTreeHostQt::showRepaintCounter):
1161
1162 2012-01-23  Simon Fraser  <simon.fraser@apple.com>
1163
1164         Show layer borders for scrollbar layers
1165         https://bugs.webkit.org/show_bug.cgi?id=76888
1166
1167         Reviewed by Beth Dakin.
1168         
1169         Update for new signatures of GraphicsLayerClient::showDebugBorders()
1170         and GraphicsLayerClient::showRepaintCounter().
1171
1172         * UIProcess/LayerTreeHostProxy.h:
1173         (WebKit::LayerTreeHostProxy::showDebugBorders):
1174         (WebKit::LayerTreeHostProxy::showRepaintCounter):
1175         * WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
1176         (WebKit::LayerTreeHostCA::showDebugBorders):
1177         (WebKit::LayerTreeHostCA::showRepaintCounter):
1178         * WebProcess/WebPage/ca/LayerTreeHostCA.h:
1179         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
1180
1181 2012-01-24  David Levin  <levin@chromium.org>
1182
1183         [windows] Convert usage of GetDC to HWndDC Part 3.
1184         https://bugs.webkit.org/show_bug.cgi?id=76889
1185
1186         Reviewed by Adam Roben.
1187
1188         * UIProcess/win/WebPopupMenuProxyWin.cpp:
1189         (WebKit::WebPopupMenuProxyWin::paint): Fix a dc leak and use the dellayed allocation.
1190
1191 2012-01-24  Sergio Villar Senin  <svillar@igalia.com>
1192
1193         [WK2] [GTK] TestDownloads hitting an assertion in Debug builds
1194         https://bugs.webkit.org/show_bug.cgi?id=76915
1195
1196         Reviewed by Martin Robinson.
1197
1198         No new tests required as it fixes some assertions in a unit test.
1199
1200         * WebProcess/Downloads/soup/DownloadSoup.cpp:
1201         (WebKit::Download::start):
1202         (WebKit::Download::startWithHandle):
1203
1204 2012-01-24  No'am Rosenthal  <noam.rosenthal@nokia.com>
1205
1206         [Qt][WK2] Qt's cross-process AC copies images excessively when updating tiles.
1207         https://bugs.webkit.org/show_bug.cgi?id=76877
1208
1209         Reviewed by Kenneth Rohde Christiansen.
1210
1211         Instead of copying QImages, pass a reference to the ShareableBitmap that was originally
1212         created by the web process. Also, swizzle the image's RGB in the web process, before it's
1213         transferred to the UI process.
1214
1215         Data flow before change:
1216         (Web Process) Render to image -> IPC -> (UI Process) Copy (render queue) -> Copy Swizzled RGB -> Upload
1217
1218         Data flow after change:
1219         (Web Process) Render to image -> swizzle RGB -> IPC -> (UI Process) -> Upload
1220
1221         * Shared/ShareableBitmap.h:
1222         * Shared/qt/ShareableBitmapQt.cpp:
1223         (WebKit::ShareableBitmap::swizzleRGB):
1224         * UIProcess/LayerTreeHostProxy.h:
1225         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
1226         (WebKit::LayerTreeHostProxy::updateTile):
1227         (WebKit::LayerTreeHostProxy::createImage):
1228         (WebKit::LayerTreeHostProxy::syncRemoteContent):
1229         (WebKit::LayerTreeHostProxy::updateTileForLayer):
1230         (WebKit::LayerTreeHostProxy::createDirectlyCompositedImage):
1231         (WebKit::LayerTreeHostProxy::purgeGLResources):
1232         * WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp:
1233         (WebKit::TiledBackingStoreRemoteTile::updateBackBuffer):
1234         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
1235         (WebKit::LayerTreeHostQt::adoptImageBackingStore):
1236
1237 2012-01-24  Rafael Brandao  <rafael.lobo@openbossa.org>
1238
1239         [Qt][WK2] QtWebIconDatabaseClient leaves a dangling pointer on WebIconDatabase after its destruction
1240         https://bugs.webkit.org/show_bug.cgi?id=76399
1241
1242         Reviewed by Simon Hausmann.
1243
1244         Due a circular dependency between WebContext and WebProcessProxy, WebContext it not
1245         being destroyed, neither WebIconDatabase. As QtWebIconDatabaseClient's life time is the same
1246         as QtWebContext and this one is being destroyed, the remaining reference to our client
1247         on WebIconDatabase should be cleaned upon its destruction.
1248
1249         * UIProcess/qt/QtWebIconDatabaseClient.cpp:
1250         (QtWebIconDatabaseClient::QtWebIconDatabaseClient):
1251         (QtWebIconDatabaseClient::~QtWebIconDatabaseClient): Clear client pointer on WebIconDatabase.
1252         * UIProcess/qt/QtWebIconDatabaseClient.h: Make this client hold a reference to WebIconDatabase.
1253
1254 2012-01-24  Zeno Albisser  <zeno@webkit.org>
1255
1256         [Qt][WK2] Add test for application URL schemes.
1257         https://bugs.webkit.org/show_bug.cgi?id=74933
1258
1259         Add a test that checks handling of url strings.
1260         Add a test that verifies replies in case of multiple
1261         available application url schemes.
1262
1263         Reviewed by Kenneth Rohde Christiansen.
1264
1265         * UIProcess/API/qt/tests/qmltests/WebView/tst_applicationScheme.qml:
1266
1267 2012-01-24  Carlos Garcia Campos  <cgarcia@igalia.com>
1268
1269         [GTK] Fix /webkit2/WebKitWebView/reload after r105688
1270         https://bugs.webkit.org/show_bug.cgi?id=76898
1271
1272         Reviewed by Alejandro G. Castro.
1273
1274         * UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
1275         (LoadTrackingTest::reload): Add reload method that clears events
1276         and initializes progress.
1277         * UIProcess/API/gtk/tests/LoadTrackingTest.h:
1278         * UIProcess/API/gtk/tests/TestWebKitWebLoaderClient.cpp:
1279         (testWebViewReload): Use LoadTrackingTest::reload() instead of
1280         webkit_web_view_reload().
1281
1282 2012-01-24  Simon Hausmann  <simon.hausmann@nokia.com>
1283
1284         Some qmake build files must include Qt5's "quick" module.
1285         https://bugs.webkit.org/show_bug.cgi?id=76671
1286
1287         Unreviewed build fix.
1288
1289         * UIProcess/API/qt/tests/tests.pri:
1290
1291 2012-01-24  Zeno Albisser  <zeno@webkit.org>
1292
1293         [Qt][WK2] Application URL schemes cause asserts when using debug.
1294         https://bugs.webkit.org/show_bug.cgi?id=76700
1295
1296         Instances of QtNetworkRequestData / QtNetworkReplyData are meant
1297         to be used for transfering data over IPC. To allow transferring
1298         instances of these classes over IPC they need to be copyable,
1299         and it must be possible to create such instances on the stack.
1300         Because classes that inherit from RefCounted always need to be
1301         used in connection with RefPtr, QtNetworkRequestData and
1302         QtNetworkReplyData cannot inherit directly from RefCounted.
1303
1304         Deleting an object that inherits from RefCounted, without
1305         the proper sequence of ref()/deref() being called by it's
1306         RefPtr, causes asserts when running a debug version.
1307
1308         Reviewed by Simon Hausmann.
1309
1310         * Shared/qt/QtNetworkReplyData.h:
1311         (WebKit::QtRefCountedNetworkReplyData::data):
1312         * Shared/qt/QtNetworkRequestData.cpp:
1313         (WebKit::QtRefCountedNetworkRequestData::QtRefCountedNetworkRequestData):
1314         * Shared/qt/QtNetworkRequestData.h:
1315         (WebKit::QtRefCountedNetworkRequestData::data):
1316         * Target.pri:
1317         * UIProcess/API/qt/qquicknetworkreply.cpp:
1318         (QQuickNetworkReply::QQuickNetworkReply):
1319         (QQuickNetworkReply::contentType):
1320         (QQuickNetworkReply::setContentType):
1321         (QQuickNetworkReply::operation):
1322         (QQuickNetworkReply::setOperation):
1323         (QQuickNetworkReply::contentDisposition):
1324         (QQuickNetworkReply::setContentDisposition):
1325         (QQuickNetworkReply::location):
1326         (QQuickNetworkReply::setLocation):
1327         (QQuickNetworkReply::lastModified):
1328         (QQuickNetworkReply::setLastModified):
1329         (QQuickNetworkReply::cookie):
1330         (QQuickNetworkReply::setCookie):
1331         (QQuickNetworkReply::userAgent):
1332         (QQuickNetworkReply::setUserAgent):
1333         (QQuickNetworkReply::server):
1334         (QQuickNetworkReply::setServer):
1335         (QQuickNetworkReply::data):
1336         (QQuickNetworkReply::setData):
1337         (QQuickNetworkReply::send):
1338         (QQuickNetworkReply::networkRequestData):
1339         (QQuickNetworkReply::setNetworkRequestData):
1340         (QQuickNetworkReply::networkReplyData):
1341         * UIProcess/API/qt/qquicknetworkreply_p.h:
1342         * UIProcess/API/qt/qquicknetworkrequest.cpp:
1343         (QQuickNetworkRequest::QQuickNetworkRequest):
1344         (QQuickNetworkRequest::setNetworkRequestData):
1345         (QQuickNetworkRequest::url):
1346         * UIProcess/API/qt/qquicknetworkrequest_p.h:
1347         * UIProcess/API/qt/qquickwebview.cpp:
1348         (QQuickWebViewExperimental::invokeApplicationSchemeHandler):
1349         * UIProcess/API/qt/qquickwebview_p.h:
1350         * UIProcess/WebPageProxy.h:
1351         * UIProcess/qt/QtPageClient.cpp:
1352         (QtPageClient::handleApplicationSchemeRequest):
1353         * UIProcess/qt/QtPageClient.h:
1354         * UIProcess/qt/WebPageProxyQt.cpp:
1355         (WebKit::WebPageProxy::resolveApplicationSchemeRequest):
1356         (WebKit::WebPageProxy::sendApplicationSchemeReply):
1357         * WebProcess/qt/QtNetworkReply.cpp:
1358         (WebKit::QtNetworkReply::setData):
1359         (WebKit::QtNetworkReply::readData):
1360
1361 2012-01-24  Carlos Garcia Campos  <cgarcia@igalia.com>
1362
1363         [GTK] Implement DownloadClient in WebKit2 GTK+ API
1364         https://bugs.webkit.org/show_bug.cgi?id=72952
1365
1366         Reviewed by Martin Robinson.
1367
1368         * GNUmakefile.am: Add new files to compilation.
1369         * UIProcess/API/gtk/WebKitDownloadClient.cpp: Added.
1370         (didStart): Call webkitWebContextDownloadStarted().
1371         (didReceiveResponse): Call webkitDownloadSetResponse() with the
1372         received response.
1373         (didReceiveData): Call webkitDownloadNotifyProgress().
1374         (decideDestinationWithSuggestedFilename): Call
1375         webkitDownloadDecideDestinationWithSuggestedFilename().
1376         (didCreateDestination): Call webkitDownloadDestinationCreated().
1377         (didFail): Call webkitDownloadFailed() or
1378         webkitDownloadCancelled() if the download was cancelled before
1379         failing.
1380         (didCancel): Call webkitDownloadCancelled().
1381         (didFinish): Call webkitDownloadFinished().
1382         (attachDownloadClientToContext): Add
1383         implementation for download client callbacks.
1384         * UIProcess/API/gtk/WebKitDownloadClient.h: Added.
1385         * UIProcess/API/gtk/WebKitError.cpp:
1386         (webkit_download_error_quark): Add quark for download errors.
1387         * UIProcess/API/gtk/WebKitError.h:
1388         * UIProcess/API/gtk/WebKitWebContext.cpp:
1389         (webkit_web_context_class_init): Add download-started signal.
1390         (createDefaultWebContext): Initialize the download client.
1391         (downloadsMap): HashMap containing download objects for all
1392         ongoing download operations.
1393         (webkit_web_context_download_uri): Start a new download for the
1394         given URI.
1395         (webkitWebContextGetOrCreateDownload): Helper function to create a
1396         new download object or return the existing one from the downloads map.
1397         (webkitWebContextRemoveDownload): Remove the download object from
1398         the downloads map.
1399         (webkitWebContextDownloadStarted): Emit
1400         WebKitWebContext::download-started for the given download object.
1401         * UIProcess/API/gtk/WebKitWebContext.h:
1402         * UIProcess/API/gtk/WebKitWebContextPrivate.h:
1403         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
1404         * UIProcess/API/gtk/tests/GNUmakefile.am: Add new test for downloads.
1405         * UIProcess/API/gtk/tests/TestDownloads.cpp: Added.
1406         (getWebKit1TestResoucesDir):
1407         (testDownloadLocalFile):
1408         (testDownloadLocalFileError):
1409         (serverCallback):
1410         (testDownloadRemoteFile):
1411         (testDownloadRemoteFileError):
1412         (beforeAll):
1413         (afterAll):
1414
1415 2012-01-23  Carlos Garcia Campos  <cgarcia@igalia.com>
1416
1417         [GTK] Add WebKitDownload to WebKit2 GTK+ API
1418         https://bugs.webkit.org/show_bug.cgi?id=72949
1419
1420         Reviewed by Martin Robinson.
1421
1422         * GNUmakefile.am: Add new files to compilation.
1423         * UIProcess/API/gtk/WebKitDownload.cpp: Added.
1424         (webkitDownloadFinalize):
1425         (webkitDownloadGetProperty):
1426         (webkitDownloadDecideDestination):
1427         (webkit_download_init):
1428         (webkit_download_class_init):
1429         (webkitDownloadCreate): Create a new WebKitDownload for a given
1430         WKDownloadRef.
1431         (webkitDownloadSetResponse): Set the network response of the
1432         download.
1433         (webkitDownloadIsCancelled): Whether the download has been
1434         cancelled by the user.
1435         (webkitDownloadNotifyProgress): Emit notify::estimated-progress if
1436         needed.
1437         (webkitDownloadFailed): Emit WebKitDownload::failed with the given
1438         error.
1439         (webkitDownloadCancelled): Emit WebKitDownload::failed with
1440         cancelled error.
1441         (webkitDownloadFinished): Emit WebKitDownload::finished.
1442         (webkitDownloadDecideDestinationWithSuggestedFilename): Emit
1443         WebKitDownload::decide-destination.
1444         (webkitDownloadDestinationCreated): Emit
1445         WebKitDownload::created-destination.
1446         (webkit_download_get_destination): Return the destination URI of
1447         the download.
1448         (webkit_download_set_destination): Set the destination URI of the
1449         download.
1450         (webkit_download_get_response): Return the response received by
1451         the server.
1452         (webkit_download_cancel): Cancel the download.
1453         (webkit_download_get_estimated_progress): Return the estimated
1454         progress.
1455         (webkit_download_get_elapsed_time): Return the time elapsed since
1456         the download started.
1457         * UIProcess/API/gtk/WebKitDownload.h: Added.
1458         * UIProcess/API/gtk/WebKitDownloadPrivate.h: Added.
1459         * UIProcess/API/gtk/WebKitPrivate.h:
1460         * UIProcess/API/gtk/WebKitURIResponse.cpp:
1461         (webkitURIResponseGetResourceResponse):
1462         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
1463         * UIProcess/API/gtk/docs/webkit2gtk.types: Add
1464         webkit_download_get_type().
1465         * UIProcess/API/gtk/webkit2.h: Include WebKitDownload.h.
1466         * UIProcess/API/gtk/webkit2marshal.list:
1467
1468 2012-01-23  Geoffrey Garen  <ggaren@apple.com>
1469
1470         JSValue::toString() should return a JSString* instead of a UString
1471         https://bugs.webkit.org/show_bug.cgi?id=76861
1472
1473         Reviewed by Gavin Barraclough.
1474
1475         Mechanical changes to call value() after calling toString(), to
1476         convert from "JS string" (JSString*) to "C++ string" (UString), since
1477         toString() no longer returns a "C++ string".
1478
1479         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
1480         (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
1481
1482 2012-01-23  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
1483
1484         [Qt][WK2] QQuickWebView is initializing touch mode twice while being constructed
1485         https://bugs.webkit.org/show_bug.cgi?id=76859
1486
1487         Reviewed by Kenneth Rohde Christiansen.
1488
1489         Removing d->initializeTouch() from QQuickWebView::QQuickWebView()
1490         since in QQuickWebViewPrivate::initialize() there is a call for
1491         setUseTraditionalDesktopBehaviour(false), which will call initializeTouch.
1492
1493         * UIProcess/API/qt/qquickwebview.cpp:
1494         (QQuickWebView::QQuickWebView):
1495
1496 2012-01-23  Martin Robinson  <mrobinson@igalia.com>
1497
1498         [GTK][WK2] Make the LoadTracking and WebView test fixtures more flexible
1499         https://bugs.webkit.org/show_bug.cgi?id=76755
1500
1501         Reviewed by Alejandro G. Castro.
1502
1503         Always clear the loading events when loading new content in the load tracking
1504         test. In the WebView test correctly handle loading HTML with a URL that isn't
1505         "about:blank."
1506
1507         * UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
1508         (LoadTrackingTest::loadURI): Reset the class state when starting a new load.
1509         (LoadTrackingTest::loadHtml): Ditto.
1510         (LoadTrackingTest::loadPlainText): Ditto.
1511         (LoadTrackingTest::loadRequest): Ditto.
1512         * UIProcess/API/gtk/tests/LoadTrackingTest.h: Added new method definitions.
1513         * UIProcess/API/gtk/tests/TestWebKitWebLoaderClient.cpp:
1514         (assertNormalLoadHappened): No longer clear loading events. The fixture handles that now.
1515         (testLoadHtml): Update to reflect new method name.
1516         (testLoadPlainText): Ditto.
1517         (testLoadRequest): Ditto.
1518         (testWebViewReload): Ditto.
1519         * UIProcess/API/gtk/tests/WebViewTest.cpp:
1520         (WebViewTest::loadHtml): Properly interpret the baseURL parameter.
1521         * UIProcess/API/gtk/tests/WebViewTest.h: Make loading methods virtual.
1522
1523 2012-01-23  Alexander Færøy  <alexander.faeroy@nokia.com>
1524
1525         [Qt] Implement SSL error handling QML API.
1526         https://bugs.webkit.org/show_bug.cgi?id=76793
1527
1528         Reviewed by Simon Hausmann.
1529
1530         This patch implements support for accepting or rejecting invalid SSL
1531         certificates from the QML API.
1532
1533         * UIProcess/API/qt/qquickwebview.cpp:
1534         (QQuickWebViewPrivate::QQuickWebViewPrivate):
1535         (QQuickWebViewPrivate::handleCertificateVerificationRequest):
1536         (QQuickWebViewExperimental::certificateVerificationDialog):
1537         (QQuickWebViewExperimental::setCertificateVerificationDialog):
1538         * UIProcess/API/qt/qquickwebview_p.h:
1539         * UIProcess/API/qt/qquickwebview_p_p.h:
1540         * UIProcess/PageClient.h:
1541         * UIProcess/WebPageProxy.cpp:
1542         (WebKit::WebPageProxy::certificateVerificationRequest):
1543         * UIProcess/WebPageProxy.h:
1544         * UIProcess/WebPageProxy.messages.in:
1545         * UIProcess/qt/QtDialogRunner.cpp:
1546         (CertificateVerificationDialogContextObject::CertificateVerificationDialogContextObject):
1547         (CertificateVerificationDialogContextObject::hostname):
1548         (CertificateVerificationDialogContextObject::accept):
1549         (CertificateVerificationDialogContextObject::reject):
1550         (QtDialogRunner::initForCertificateVerification):
1551         * UIProcess/qt/QtDialogRunner.h:
1552         * UIProcess/qt/QtPageClient.cpp:
1553         (QtPageClient::handleCertificateVerificationRequest):
1554         * UIProcess/qt/QtPageClient.h:
1555         * WebProcess/qt/QtNetworkAccessManager.cpp:
1556         (WebKit::QtNetworkAccessManager::QtNetworkAccessManager):
1557         (WebKit::QtNetworkAccessManager::onSslErrors):
1558         * WebProcess/qt/QtNetworkAccessManager.h:
1559
1560 2012-01-23  David Levin  <levin@chromium.org>
1561
1562         [windows] Convert usages of GetDC to HWndDC Part 2.
1563         https://bugs.webkit.org/show_bug.cgi?id=76750
1564
1565         Reviewed by Adam Roben.
1566
1567         * Shared/win/ShareableBitmapWin.cpp:
1568         (WebKit::ShareableBitmap::windowsContext): Fix incorrect usage of OwnPtr<HDC> which
1569         would do a DeleteDC instead of a ReleaseDC.
1570
1571 2012-01-23  David Levin  <levin@chromium.org>
1572
1573         [windows] Convert usages of GetDC to HWndDC Part 1.
1574         https://bugs.webkit.org/show_bug.cgi?id=76744
1575
1576         Reviewed by Adam Roben.
1577
1578         * UIProcess/win/WebView.cpp:
1579         (WebKit::WebView::flashBackingStoreUpdates): Typical conversion.
1580
1581 2012-01-21  Timothy Hatcher  <timothy@apple.com>
1582
1583         Make WebKit2 remember the height of the Web Inspector when it is docked.
1584
1585         https://webkit.org/b/76769
1586
1587         Reviewed by Dan Bernstein.
1588
1589         * Shared/WebPreferencesStore.h: Added InspectorAttachedHeight.
1590         * UIProcess/WebInspectorProxy.cpp:
1591         (WebKit::WebInspectorProxy::setAttachedWindowHeight): Call WebPreferencesStore::setInspectorAttachedHeight.
1592         * UIProcess/mac/WebInspectorProxyMac.mm:
1593         (WebKit::WebInspectorProxy::platformAttach): Set the height of the inspector's WKView to inspectorAttachedHeight.
1594         (WebKit::WebInspectorProxy::platformSetAttachedWindowHeight): Remove unneeded setNeedsDisplay: calls.
1595
1596 2012-01-20  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
1597
1598         [Qt] [WK2] Division by zero error in QtViewportInteractionEngine::setItemRectVisible
1599         https://bugs.webkit.org/show_bug.cgi?id=76674
1600
1601         Reviewed by Kenneth Rohde Christiansen.
1602
1603         Make sure that itemRect is not empty.
1604
1605         * UIProcess/qt/QtViewportInteractionEngine.cpp:
1606         (WebKit::QtViewportInteractionEngine::setItemRectVisible):
1607
1608 2012-01-20  Steve Falkenburg  <sfalken@apple.com>
1609
1610         Reviewed by Alexey Proskuryakov.
1611
1612         Drag/drop of a file into a WebView on Windows needs to allow access to that file
1613         https://bugs.webkit.org/show_bug.cgi?id=76753
1614         <rdar://problem/10731719>
1615         
1616         The Windows drag/drop code path was missing the code to open a file read exception.
1617
1618         Added code to match the Mac version, while allowing directories and multiple files to
1619         also be dragged (matching our previous behavior).
1620
1621         * UIProcess/win/WebView.cpp:
1622         (WebKit::maybeCreateSandboxExtensionFromDragData): Added.
1623         (WebKit::WebView::Drop): Add a universal read exception if we're dragging a file into a WebView to open it.
1624
1625 2012-01-20  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1626
1627         [Qt] Trigger forcing accelerated compositing from the UI process side.
1628         https://bugs.webkit.org/show_bug.cgi?id=76296
1629
1630         Reviewed by Noam Rosenthal.
1631
1632         Some messages can be sent from the web view to the LayerTreeHost before
1633         accelerated compositing is entered on the web process and signaled back.
1634         By letting the UI process decide if AC has to be forced, we can create
1635         the LayerTreeHostProxy earlier to send messages to the web process while
1636         AC is being entered there.
1637
1638         This patch also fixes the flow of DidRenderFrame and RenderNextFrame messages
1639         by setting the m_waitingForUIProcess flag properly and only send the
1640         RenderNextFrame once the painting thread on the UI process is ready to paint.
1641
1642         This fixes the first visible content rect message not being received when
1643         loading pages from the disk.
1644
1645         * Shared/WebPreferencesStore.h:
1646         * UIProcess/API/qt/qquickwebview.cpp:
1647         (QQuickWebViewPrivate::initialize):
1648         * UIProcess/DrawingAreaProxyImpl.cpp:
1649         (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
1650         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
1651         (WebKit::LayerTreeHostProxy::flushLayerChanges):
1652         (WebKit::LayerTreeHostProxy::didRenderFrame):
1653         * WebProcess/WebPage/DrawingAreaImpl.cpp:
1654         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
1655         * WebProcess/WebPage/WebPage.cpp:
1656         (WebKit::WebPage::updatePreferences):
1657         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
1658         (WebKit::LayerTreeHostQt::performScheduledLayerFlush):
1659         * WebProcess/WebPage/qt/WebPageQt.cpp:
1660         (WebKit::WebPage::platformInitialize):
1661
1662 2012-01-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1663
1664         Unreviewed, rolling out r105497.
1665         http://trac.webkit.org/changeset/105497
1666         https://bugs.webkit.org/show_bug.cgi?id=76696
1667
1668         Leaking in Qt layout tests and timing out in GTK API tests.
1669         (Requested by jturcotte on #webkit).
1670
1671         * Shared/WebPreferencesStore.h:
1672         * UIProcess/API/qt/qquickwebview.cpp:
1673         (QQuickWebViewPrivate::initialize):
1674         * UIProcess/DrawingAreaProxyImpl.cpp:
1675         (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
1676         * WebProcess/WebPage/DrawingAreaImpl.cpp:
1677         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
1678         * WebProcess/WebPage/WebPage.cpp:
1679         (WebKit::WebPage::updatePreferences):
1680         * WebProcess/WebPage/qt/WebPageQt.cpp:
1681         (WebKit::WebPage::platformInitialize):
1682
1683 2012-01-20  Mario Sanchez Prada  <msanchez@igalia.com>
1684
1685         [GTK] Expose accessibility hierarchy in WebKit2 to ATK/AT-SPI based ATs
1686         https://bugs.webkit.org/show_bug.cgi?id=72589
1687
1688         Reviewed by Martin Robinson.
1689
1690         Expose the accessibility hierarchy in the multi-process
1691         architecture of WK2 through AtkSocket and AtkPlug.
1692
1693         Make the WebView widget return an AtkSocket when calling to
1694         gtk_widget_get_accessible().
1695
1696         * GNUmakefile.am: Add new files.
1697         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
1698         (webkit_web_view_base_init):
1699         (webkitWebViewBaseGetAccessible):
1700         (webkit_web_view_base_class_init):
1701         * UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp: Added.
1702         (webkitWebViewBaseAccessibleWidgetFinalize):
1703         (webkitWebViewBaseAccessibleWidgetDestroyed):
1704         (webkitWebViewBaseAccessibleInitialize):
1705         (webkitWebViewBaseAccessibleRefStateSet):
1706         (webkitWebViewBaseAccessibleGetIndexInParent):
1707         (webkit_web_view_base_accessible_init):
1708         (webkit_web_view_base_accessible_class_init):
1709         (webkitWebViewBaseAccessibleNew):
1710         * UIProcess/API/gtk/WebKitWebViewBaseAccessible.h: Added.
1711
1712         Make the WebPage create an AtkPlug on its initialization and
1713         sending the ID of that plug to the UI process, so it can embed the
1714         plug in the socket.
1715
1716         Also, take care of all the needed wrapping around the WebCore's
1717         accessibility objects, exposing them in the UI process's
1718         accessibility hierarchy thanks to the socket-plug connection.
1719
1720         * UIProcess/WebPageProxy.h:
1721         (WebKit::WebPageProxy::accessibilityPlugID):
1722         * UIProcess/WebPageProxy.messages.in:
1723         * UIProcess/gtk/WebPageProxyGtk.cpp:
1724         (WebKit::WebPageProxy::bindAccessibilityTree):
1725         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1726         (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
1727         * WebProcess/WebPage/WebPage.cpp:
1728         (WebKit::WebPage::WebPage):
1729         * WebProcess/WebPage/gtk/WebPageAccessibilityObject.cpp: Added.
1730         (accessibilityRootObjectWrapper):
1731         (webPageAccessibilityObjectInitialize):
1732         (webPageAccessibilityObjectGetIndexInParent):
1733         (webPageAccessibilityObjectGetNChildren):
1734         (webPageAccessibilityObjectRefChild):
1735         (web_page_accessibility_object_init):
1736         (web_page_accessibility_object_class_init):
1737         (webPageAccessibilityObjectNew):
1738         (webPageAccessibilityObjectRefresh):
1739         * WebProcess/WebPage/gtk/WebPageAccessibilityObject.h: Added.
1740         * WebProcess/WebPage/gtk/WebPageGtk.cpp:
1741         (WebKit::WebPage::platformInitialize):
1742         (WebKit::WebPage::updateAccessibilityTree):
1743
1744         New unit test for checking accessibility support in WK2GTK.
1745
1746         * UIProcess/API/gtk/tests/AccessibilityTestServer.cpp: Added.
1747         (loadChangedCallback): Notify the parent process (the test)
1748         when ready.
1749         (main):
1750         * UIProcess/API/gtk/tests/GNUmakefile.am:
1751         * UIProcess/API/gtk/tests/TestWebKitAccessibility.cpp: Added.
1752         (stopTestServer):
1753         (sigAbortHandler):
1754         (testServerMonitorThreadFunc):
1755         (startTestServerMonitor):
1756         (startTestServer):
1757         (checkAtspiAccessible):
1758         (findTestServerApplication):
1759         (testAtspiBasicHierarchy):
1760         (beforeAll):
1761         (afterAll):
1762
1763 2012-01-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1764
1765         [Qt] Public API watch dog auto test.
1766         https://bugs.webkit.org/show_bug.cgi?id=73922
1767
1768         Reviewed by Simon Hausmann.
1769
1770         This test aims to prevent unintended/unapproved
1771         modifications to the public QML API.
1772
1773         * UIProcess/API/qt/tests/publicapi/publicapi.pro: Added.
1774         * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp: Added.
1775         (isCheckedEnum):
1776         (isCheckedClass):
1777         (checkKnownType):
1778         (gatherAPI):
1779         (tst_publicapi::publicAPI):
1780
1781 2012-01-13  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1782
1783         [Qt] Trigger forcing accelerated compositing from the UI process side.
1784         https://bugs.webkit.org/show_bug.cgi?id=76296
1785
1786         Reviewed by Noam Rosenthal.
1787
1788         Some messages can be sent from the web view to the LayerTreeHost before
1789         accelerated compositing is entered on the web process and signaled back.
1790         By letting the UI process decide if AC has to be forced, we can create
1791         the LayerTreeHostProxy earlier to send messages to the web process while
1792         AC is being entered there.
1793
1794         This fixes the first visible content rect message not being received when
1795         loading pages from the disk.
1796
1797         * Shared/WebPreferencesStore.h:
1798         * UIProcess/API/qt/qquickwebview.cpp:
1799         (QQuickWebViewPrivate::initialize):
1800         * UIProcess/DrawingAreaProxyImpl.cpp:
1801         (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
1802         * WebProcess/WebPage/DrawingAreaImpl.cpp:
1803         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
1804         * WebProcess/WebPage/WebPage.cpp:
1805         (WebKit::WebPage::updatePreferences):
1806         * WebProcess/WebPage/qt/WebPageQt.cpp:
1807         (WebKit::WebPage::platformInitialize):
1808
1809 2012-01-20  Alexandru Chiculita  <achicu@adobe.com>
1810
1811         CSS Shaders: Add a Settings flag to enable/disable CSS Shaders at runtime
1812         https://bugs.webkit.org/show_bug.cgi?id=76444
1813
1814         Reviewed by Nikolas Zimmermann.
1815
1816         * Shared/WebPreferencesStore.h:
1817         * UIProcess/API/C/WKPreferences.cpp:
1818         (WKPreferencesSetCSSCustomFilterEnabled):
1819         (WKPreferencesGetCSSCustomFilterEnabled):
1820         * UIProcess/API/C/WKPreferencesPrivate.h:
1821         * WebProcess/WebPage/WebPage.cpp:
1822         (WebKit::WebPage::updatePreferences):
1823
1824 2012-01-19  Sam Weinig  <sam@webkit.org>
1825
1826         Replace improper #import with an #include.
1827
1828         * UIProcess/Plugins/PluginProcessProxy.cpp:
1829         Fixes warnings.
1830
1831 2012-01-18  Sam Weinig  <sam@webkit.org>
1832
1833         Move RunLoop to WebCore/platform
1834         https://bugs.webkit.org/show_bug.cgi?id=76471
1835
1836         Reviewed by Anders Carlsson.
1837
1838         * GNUmakefile.am:
1839         * Platform/CoreIPC/Connection.cpp:
1840         * Platform/CoreIPC/Connection.h:
1841         * Platform/CoreIPC/mac/ConnectionMac.cpp:
1842         * PluginProcess/PluginControllerProxy.h:
1843         * PluginProcess/PluginProcess.cpp:
1844         * PluginProcess/PluginProcess.h:
1845         * PluginProcess/WebProcessConnection.cpp:
1846         * PluginProcess/mac/PluginProcessMainMac.mm:
1847         * PluginProcess/qt/PluginProcessMainQt.cpp:
1848         * Shared/ChildProcess.cpp:
1849         * Shared/ChildProcess.h:
1850         * Target.pri:
1851         * UIProcess/API/mac/FindIndicatorWindow.h:
1852         * UIProcess/API/mac/WKView.mm:
1853         * UIProcess/DrawingAreaProxyImpl.h:
1854         * UIProcess/Launcher/ThreadLauncher.cpp:
1855         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
1856         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
1857         * UIProcess/Launcher/mac/ThreadLauncherMac.mm:
1858         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
1859         * UIProcess/Launcher/qt/ThreadLauncherQt.cpp:
1860         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
1861         * UIProcess/Launcher/win/ThreadLauncherWin.cpp:
1862         * UIProcess/LayerTreeHostProxy.h:
1863         * UIProcess/Plugins/PluginProcessProxy.cpp:
1864         * UIProcess/ResponsivenessTimer.cpp:
1865         * UIProcess/ResponsivenessTimer.h:
1866         * UIProcess/TiledDrawingAreaProxy.h:
1867         * UIProcess/VisitedLinkProvider.h:
1868         * UIProcess/WebConnectionToWebProcess.cpp:
1869         * UIProcess/WebConnectionToWebProcess.h:
1870         * UIProcess/WebContext.cpp:
1871         * UIProcess/win/WebView.cpp:
1872         * WebKit2.xcodeproj/project.pbxproj:
1873         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
1874         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
1875         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
1876         * WebProcess/Plugins/PluginView.h:
1877         * WebProcess/WebConnectionToUIProcess.cpp:
1878         * WebProcess/WebConnectionToUIProcess.h:
1879         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
1880         * WebProcess/WebPage/DrawingAreaImpl.h:
1881         * WebProcess/WebPage/EventDispatcher.cpp:
1882         * WebProcess/WebPage/PageOverlay.h:
1883         * WebProcess/WebPage/WebPage.cpp:
1884         * WebProcess/WebPage/WebPage.h:
1885         * WebProcess/WebProcess.cpp:
1886         * WebProcess/WebProcess.h:
1887         (WebKit::WebProcess::runLoop):
1888         * WebProcess/gtk/WebProcessMainGtk.cpp:
1889         * WebProcess/mac/WebProcessMainMac.mm:
1890         * WebProcess/qt/WebProcessMainQt.cpp:
1891         * WebProcess/win/WebProcessMainWin.cpp:
1892         * win/WebKit2.vcproj:
1893         Remove RunLoop code and update #includes.
1894
1895 2012-01-18  Ada Chan  <adachan@apple.com>
1896
1897         Need a WebKit2 API for setting media volume
1898         https://bugs.webkit.org/show_bug.cgi?id=76560
1899
1900         Reviewed by Dan Bernstein.
1901
1902         * Shared/WebPageCreationParameters.cpp:
1903         (WebKit::WebPageCreationParameters::encode): Encode the mediaVolume parameter.
1904         (WebKit::WebPageCreationParameters::decode): Decode the mediaVolume parameter.
1905         * Shared/WebPageCreationParameters.h:
1906         * UIProcess/API/C/WKPage.cpp:
1907         (WKPageSetMediaVolume): Call WebPageProxy::setMediaVolume().
1908         * UIProcess/API/C/WKPagePrivate.h:
1909         * UIProcess/WebPageProxy.cpp:
1910         (WebKit::WebPageProxy::WebPageProxy): Initialize new data member m_mediaVolume.
1911         (WebKit::WebPageProxy::setMediaVolume): Bail if the volume hasn't changed. Update m_mediaVolume 
1912         and bail if the page is no longer valid.  Otherwise, send a WebPage::SetMediaVolume message to 
1913         the web process.
1914         (WebKit::WebPageProxy::creationParameters): Add media volume to the creation parameters.
1915         * UIProcess/WebPageProxy.h:
1916         * WebProcess/WebPage/WebPage.cpp:
1917         (WebKit::WebPage::WebPage): Initialize media volume from the WebPageCreationParameters.
1918         (WebKit::WebPage::setMediaVolume): Call Page::setMediaVolume().
1919         * WebProcess/WebPage/WebPage.h:
1920         * WebProcess/WebPage/WebPage.messages.in: Add the SetMediaVolume message.
1921
1922 2012-01-19  Carlos Garcia Campos  <cgarcia@igalia.com>
1923
1924         [GTK] WebKit2 GTK+ API public headers are not installed
1925         https://bugs.webkit.org/show_bug.cgi?id=76626
1926
1927         Reviewed by Martin Robinson.
1928
1929         * GNUmakefile.am: Rename webkit2gtk_headers as
1930         libwebkit2gtkinclude_HEADERS to match libwebkit2gtkincludedir so
1931         that headers are installed during make install.
1932
1933 2012-01-19  Carlos Garcia Campos  <cgarcia@igalia.com>
1934
1935         [GTK] Add print-backgrounds setting to WebKit2 GTK+ API
1936         https://bugs.webkit.org/show_bug.cgi?id=76616
1937
1938         Reviewed by Martin Robinson.
1939
1940         * UIProcess/API/gtk/WebKitSettings.cpp:
1941         (webKitSettingsSetProperty):
1942         (webKitSettingsGetProperty):
1943         (webkit_settings_class_init):
1944         (webkit_settings_get_print_backgrounds):
1945         (webkit_settings_set_print_backgrounds):
1946         * UIProcess/API/gtk/WebKitSettings.h:
1947         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt:
1948         * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
1949         (testWebKitSettings):
1950
1951 2012-01-18  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1952
1953         [Qt] Handle the layers visible rect calculation on the web process.
1954         https://bugs.webkit.org/show_bug.cgi?id=74720
1955
1956         Reviewed by Noam Rosenthal.
1957
1958         The layers now get their visible rect on the web process through the
1959         root layer when the UI process call setVisibleContentRectAndScale,
1960         previously only used for the non-composited content layer.
1961         The rect is then carried down the layers in the tree which apply it the inverse
1962         of their transform before handing it to their tiled backing store.
1963
1964         This ensures that new layers get a proper visible rect right on creation,
1965         and also that simultaneous visible rect and scale changes are applied synchronously.
1966
1967         This patch also uses clampedBoundsOfProjectedQuad instead of mapRect
1968         to transform the visible rect correctly for 3D transformed layers.
1969
1970         * UIProcess/API/qt/qquickwebview.cpp:
1971         (QQuickWebViewPrivate::initializeDesktop):
1972         (QQuickWebViewPrivate::initializeTouch):
1973         (QQuickWebViewPrivate::updateDesktopViewportSize):
1974         (QQuickWebViewPrivate::updateTouchViewportSize):
1975         (QQuickWebView::geometryChanged):
1976         Make sure that the visible rect is updated for the desktop view as well.
1977         * UIProcess/API/qt/qquickwebview_p_p.h:
1978         * UIProcess/LayerTreeHostProxy.h:
1979         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
1980         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
1981         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
1982         (WebCore::WebGraphicsLayer::setChildren):
1983         (WebCore::WebGraphicsLayer::addChild):
1984         (WebCore::WebGraphicsLayer::addChildAtIndex):
1985         (WebCore::WebGraphicsLayer::addChildAbove):
1986         (WebCore::WebGraphicsLayer::addChildBelow):
1987         (WebCore::WebGraphicsLayer::replaceChild):
1988         (WebCore::WebGraphicsLayer::setMaskLayer):
1989         (WebCore::WebGraphicsLayer::syncCompositingState):
1990         (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
1991         (WebCore::WebGraphicsLayer::setVisibleContentRectAndScale):
1992         (WebCore::WebGraphicsLayer::tiledBackingStoreVisibleRect):
1993         (WebCore::WebGraphicsLayer::computeTransformedVisibleRect):
1994         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
1995         * WebProcess/WebPage/LayerTreeHost.messages.in:
1996         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
1997         (WebKit::LayerTreeHostQt::setVisibleContentRectAndScale):
1998         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
1999
2000 2012-01-18  Jon Lee  <jonlee@apple.com>
2001
2002         Another build fix for r105364.
2003
2004         * WebProcess/mac/WebProcessMac.mm:
2005         (WebKit::WebProcess::platformInitializeWebProcess): Missing #if.
2006
2007 2012-01-18  Jon Lee  <jonlee@apple.com>
2008
2009         Build fix for r105364. Unreviewed.
2010
2011         * WebProcess/Notifications/WebNotificationManager.cpp: Wrap methods in #if ENABLE(NOTIFICATIONS)
2012         (WebKit::WebNotificationManager::initialize):
2013         (WebKit::WebNotificationManager::didUpdateNotificationDecision):
2014         (WebKit::WebNotificationManager::didRemoveNotificationDecisions):
2015         (WebKit::WebNotificationManager::policyForOrigin):
2016
2017 2012-01-18  Jon Lee  <jonlee@apple.com>
2018
2019         [WK2] Sync call for notifications permissions causes flashes on gmail.com
2020         https://bugs.webkit.org/show_bug.cgi?id=76570
2021         <rdar://problem/10647155>
2022
2023         Reviewed by Anders Carlsson and Sam Weinig.
2024
2025         The website code figures out the permission level for its security origin by making a JS call (called
2026         checkPermission()) that is synchronous. The way this was implemented was to make a synchronous call from
2027         the WebNotificationManager to its proxy. That call goes to the WK API layer to find the policy, and
2028         returns that policy back to the JS.
2029
2030         The synchronous nature of this call causes the white flash to appear in certain cases.
2031
2032         To fix this, the checkPermission() call is handled all within the web process, instead of going up into
2033         the UI process. To do this, the web process initializes the WebNotificationManager with a copy of the
2034         notification permissions. Any time the WK client makes a change to the permissions, that gets sent down
2035         asynchronously, and the cached copy in WebNotificationManager gets updated.
2036
2037         A page's settings may disable notifications altogether. Before, this would have been handled by the WK
2038         client, since retrieving the permissions were also handled there. Now that the lookup happens in the web
2039         process, we need to add that setting in WebCore.
2040
2041         == Update notification permissions to use the security origin's string representation, rather than its
2042         database identifier.
2043
2044         * UIProcess/Notifications/WebNotification.cpp:
2045         (WebKit::WebNotification::WebNotification):
2046         * UIProcess/Notifications/WebNotification.h:
2047         (WebKit::WebNotification::create):
2048         * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
2049         (WebKit::WebNotificationManagerProxy::show): Registering the provider with the manager is handled in
2050         initialize() now.
2051         (WebKit::WebNotificationManagerProxy::cancel): Registering the provider with the manager is handled in
2052         initialize() now.
2053         * UIProcess/Notifications/WebNotificationManagerProxy.h:
2054         * UIProcess/WebPageProxy.cpp:
2055         (WebKit::WebPageProxy::requestNotificationPermission):
2056         (WebKit::WebPageProxy::showNotification):
2057         * UIProcess/WebPageProxy.h:
2058
2059         * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
2060         (WebKit::NotificationPermissionRequestManager::startRequest): Only start the request if notifications
2061         are enabled.
2062         * WebProcess/Notifications/WebNotificationManager.cpp:
2063         (WebKit::WebNotificationManager::show): Only show notification is they are enabled.
2064         (WebKit::WebNotificationManager::cancel): Only cancel if notifications are enabled.
2065
2066         == Remove synchronous message to get policy for a given origin. Instead, use the cached copy in
2067         WebNotificationManager.
2068
2069         * WebProcess/Notifications/WebNotificationManager.h:
2070         * WebProcess/Notifications/WebNotificationManager.cpp:
2071         (WebKit::WebNotificationManager::policyForOrigin): Looks for the permission in the cached copy.
2072         If it doesn't exist, return NotificationPresenter::PermissionNotAllowed.
2073         * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
2074         (WebKit::NotificationPermissionRequestManager::permissionLevel): Update permissionLevel to use
2075         policyForOrigin().
2076
2077         Remove old WK API function to get the policy. Because this function was the only synchronous message,
2078         we remove the sync-message-related functions also. Also, add in some #includes that might have been
2079         omitted in prior patches.
2080
2081         * UIProcess/API/C/WKNotificationProvider.h:
2082         * UIProcess/Notifications/WebNotificationManagerProxy.messages.in: Remove NotificationPermissionLevel.
2083         * UIProcess/Notifications/WebNotificationManagerProxy.h:
2084         * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
2085
2086         * UIProcess/Notifications/WebNotificationProvider.h: Remove policyForNotificationPermissionAtOrigin().
2087         * UIProcess/Notifications/WebNotificationProvider.cpp:
2088
2089         * UIProcess/WebProcessProxy.cpp:
2090         (WebKit::WebProcessProxy::didReceiveSyncMessage): Remove conditional to forward sync messages to the
2091         notification manager proxy.
2092
2093         == Mechanism for client to update the permissions copy in WebNotificationManager.
2094
2095         * WebProcess/Notifications/WebNotificationManager.messages.in: Add new messages
2096         didUpdateNotificationDecision and didRemoveNotificationDecisions.
2097         * WebProcess/Notifications/WebNotificationManager.h:
2098         * WebProcess/Notifications/WebNotificationManager.cpp:
2099         (WebKit::WebNotificationManager::initialize):
2100         (WebKit::WebNotificationManager::didUpdateNotificationDecision): Update the entry.
2101         (WebKit::WebNotificationManager::didRemoveNotificationDecisions): Remove the entry.
2102
2103         * UIProcess/Notifications/WebNotificationManagerProxy.h:
2104         * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
2105         (WebKit::WebNotificationManagerProxy::providerDidUpdateNotificationPolicy):
2106         (WebKit::WebNotificationManagerProxy::providerDidRemoveNotificationPolicies): Convert the array of
2107         origins to remove, and send it to the WebNotificationManager.
2108
2109         * UIProcess/API/C/WKNotificationManager.h: Expose these update functions as WK API.
2110         * UIProcess/API/C/WKNotificationManager.cpp:
2111         (WKNotificationManagerProviderDidUpdateNotificationPolicy):
2112         (WKNotificationManagerProviderDidRemoveNotificationPolicies):
2113
2114         == Initialize WebNotificationManager with permissions. Initialize WebPage with notifications enabled bit
2115         from settings.
2116
2117         * Shared/WebProcessCreationParameters.h: Add map of notification permissions as part of the
2118         parameters.
2119         * Shared/WebProcessCreationParameters.cpp:
2120         (WebKit::WebProcessCreationParameters::encode):
2121         (WebKit::WebProcessCreationParameters::decode):
2122
2123         * UIProcess/Notifications/WebNotificationProvider.h: Retrieve copy of existing notification permissions.
2124         * UIProcess/Notifications/WebNotificationProvider.cpp:
2125         * UIProcess/API/C/WKNotificationProvider.h: Add WK API to get a copy of the permissions.
2126
2127         * UIProcess/Notifications/WebNotificationManagerProxy.h: Add populateCopyOfNotificationPermissions().
2128         * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
2129         (WebKit::WebNotificationManagerProxy::initializeProvider): Add the manager at the time of initialization.
2130         Similar calls in show() and cancel() are removed in following patch.
2131         (WebKit::WebNotificationManagerProxy::populateCopyOfNotificationPermissions): Clear the existing copy.
2132         Populate with origin string, and whether that origin is allowed to post. If no decision has been made
2133         by the user, then there should be no item in this dictionary.
2134
2135         * UIProcess/WebContext.cpp:
2136         (WebKit::WebContext::ensureWebProcess): When the web process is initialized, we get a copy of the
2137         permissions, and send it to the web process to initialize the notification manager.
2138         * WebProcess/mac/WebProcessMac.mm:
2139         (WebKit::WebProcess::platformInitializeWebProcess): Initialize the notification manager.
2140
2141         * WebProcess/Notifications/WebNotificationManager.h:
2142         * WebProcess/Notifications/WebNotificationManager.cpp:
2143         (WebKit::WebNotificationManager::initialize): Initialize the permissions copy.
2144
2145         * WebProcess/WebPage/WebPage.cpp:
2146         (WebKit::WebPage::updatePreferences): Set notifications enabled bit from settings.
2147
2148         == Expose toString() method from WebCore::SecurityOrigin. Work is also towards bug 74956.
2149
2150         * Shared/API/c/WKSecurityOrigin.h: Refactor WKSecurityOriginCreateFromIdentifier to
2151         WKSecurityOriginCreateFromDatabaseIdentifier and add WKSecurityOriginCreateFromString function.
2152         * Shared/API/c/WKSecurityOrigin.cpp:
2153         (WKSecurityOriginCreateFromString):
2154         (WKSecurityOriginCreateFromDatabaseIdentifier):
2155         (WKSecurityOriginCopyToString):
2156
2157         Refactor WebSecurityOrigin::create() to WebSecurityOrigin::createFromDatabaseIdentifier()
2158         and add WebSecurityOrigin::createFromString().
2159
2160         * Shared/WebSecurityOrigin.h:
2161         (WebKit::WebSecurityOrigin::createFromString):
2162         (WebKit::WebSecurityOrigin::createFromDatabaseIdentifier):
2163         (WebKit::WebSecurityOrigin::toString): Added function.
2164         
2165         Refactor with renamed createFromDatabaseIdentifier() method.
2166         
2167         * UIProcess/WebDatabaseManagerProxy.cpp:
2168         (WebKit::WebDatabaseManagerProxy::didGetDatabasesByOrigin):
2169         (WebKit::WebDatabaseManagerProxy::didGetDatabaseOrigins):
2170         (WebKit::WebDatabaseManagerProxy::didModifyOrigin):
2171         (WebKit::WebDatabaseManagerProxy::didModifyDatabase):
2172         * UIProcess/WebPageProxy.cpp:
2173         (WebKit::WebPageProxy::exceededDatabaseQuota):
2174         (WebKit::WebPageProxy::requestGeolocationPermissionForFrame):
2175
2176         == Add WK API calls to change notificationsEnabled bit in WebCore::Settings.
2177
2178         * Shared/WebPreferencesStore.h:
2179         * UIProcess/API/C/WKPreferences.cpp:
2180         (WKPreferencesSetNotificationsEnabled):
2181         (WKPreferencesGetNotificationsEnabled):
2182         * UIProcess/API/C/WKPreferences.h:
2183
2184 2012-01-18  Anders Carlsson  <andersca@apple.com>
2185
2186         REGRESSION (r88886): Tabs restore blank when running Safari with a nightly build for the first time
2187         https://bugs.webkit.org/show_bug.cgi?id=76587
2188         <rdar://problem/9739135>
2189
2190         Reviewed by Sam Weinig.
2191
2192         * UIProcess/cf/WebPageProxyCF.cpp:
2193         Change CurrentSessionStateDataVersion back to 2.
2194
2195         * WebProcess/WebPage/DecoderAdapter.cpp:
2196         (WebKit::DecoderAdapter::decodeString):
2197         * WebProcess/WebPage/EncoderAdapter.cpp:
2198         (WebKit::EncoderAdapter::encodeString):
2199         Backport the CoreIPC string encoding and decoding functions that were in place prior to r88886.
2200
2201 2012-01-17  Alexey Proskuryakov  <ap@apple.com>
2202
2203         [Mac] Add a flag telling plug-in if it can enter sandbox
2204         https://bugs.webkit.org/show_bug.cgi?id=76467
2205
2206         Reviewed by Anders Carlsson.
2207
2208         * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
2209         (WebKit::NPN_GetValue): Added a private flag.
2210
2211 2012-01-18  Eric Carlson  <eric.carlson@apple.com>
2212
2213         Provide access to user's list of preferred languages
2214         https://bugs.webkit.org/show_bug.cgi?id=76138
2215
2216         Reviewed by Alexey Proskuryakov.
2217
2218         * Shared/WebProcessCreationParameters.cpp:
2219         (WebKit::WebProcessCreationParameters::encode): Encode the languages array.
2220         (WebKit::WebProcessCreationParameters::decode): Decode the languages array.
2221         * Shared/WebProcessCreationParameters.h:
2222
2223         * UIProcess/WebContext.cpp:
2224         (WebKit::WebContext::languageChanged): Override the WebProcess userPreferredLanguages.
2225         (WebKit::WebContext::ensureWebProcess): Initialize parameters.languages.
2226
2227         * WebProcess/WebProcess.cpp:
2228         (WebKit::WebProcess::initializeWebProcess): Override user languages array.
2229         (WebKit::WebProcess::userPreferredLanguagesChanged): Ditto.
2230         * WebProcess/WebProcess.h:
2231         * WebProcess/WebProcess.messages.in: Define UserPreferredLanguagesChanged.
2232
2233         * win/WebKit2.def: Export the new functions.
2234         * win/WebKit2CFLite.def: Ditto.
2235
2236 2012-01-18  Luciano Wolf  <luciano.wolf@openbossa.org>
2237
2238         [Qt][WK2] Broken build with undefined reference to shm_open and shm_unlink
2239         https://bugs.webkit.org/show_bug.cgi?id=76538
2240
2241         Reviewed by Tor Arne Vestbø.
2242
2243         The -lrt parameter was coming before -lWebKit2 during linkage.
2244
2245         Moved rt lib inclusion from Source/api.pri to WebKit2.pri as it should be aware
2246         of its own dependencies instead of letting WebKit guess about. Letting
2247         it on api.pri can lead to a wrong parameter's order during linker phase.
2248         Ubuntu 11.10 was giving errors about SharedMemory (shm_open and
2249         shm_unlink undefined symbols).
2250
2251         The issue was fixed with the help of Aloisio Almeida and Lauro Venancio.
2252
2253         * WebKit2.pri:
2254
2255 2012-01-18  Carlos Garnacho  <carlosg@gnome.org>
2256
2257         [GTK] Listen to GDK_SCROLL_MASK
2258         https://bugs.webkit.org/show_bug.cgi?id=76529
2259
2260         Set GDK_SCROLL_MASK explicitly, as WebKitWebViewBase does handle
2261         scroll events, scrolling currently works because GTK+ happens 
2262         to send such events to widgets listening to GDK_BUTTON_PRESS_MASK,
2263         but this isn't the intended behavior, so it's subject to change.
2264
2265         Reviewed by Martin Robinson.
2266
2267         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
2268         (webkitWebViewBaseRealize):
2269
2270 2012-01-18  Andras Becsi  <andras.becsi@nokia.com>
2271
2272         [Qt][WK2] Fix the debug build.
2273
2274         Unreviewed.
2275
2276         * UIProcess/qt/QtWebPageEventHandler.cpp:
2277         (setInputPanelVisible): Remove assertion from non-member function.
2278
2279 2012-01-12  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2280
2281         [Qt] Zoom in to the focused node only when vkb starts becoming visible
2282         https://bugs.webkit.org/show_bug.cgi?id=76174
2283
2284         Reviewed by Simon Hausmann.
2285
2286         Remove the old code which always zoomed in when something got focus,
2287         even via JavaScript, and replaced it with code checking the state of
2288         the Qt input panel.
2289
2290         Also make sure that we do not zoom in or request the input panel if
2291         the item is not focused.
2292
2293         * UIProcess/PageClient.h:
2294         * UIProcess/WebPageProxy.cpp:
2295         * UIProcess/WebPageProxy.h:
2296         * UIProcess/WebPageProxy.messages.in:
2297         * UIProcess/qt/QtPageClient.cpp:
2298         * UIProcess/qt/QtPageClient.h:
2299         * UIProcess/qt/QtWebPageEventHandler.cpp:
2300         (QtWebPageEventHandler::QtWebPageEventHandler):
2301         (QtWebPageEventHandler::~QtWebPageEventHandler):
2302         (QtWebPageEventHandler::inputPanelVisibleChanged):
2303         * UIProcess/qt/QtWebPageEventHandler.h:
2304         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2305         (WebKit::WebEditorClient::respondToChangedSelection):
2306
2307 2012-01-18  Shinya Kawanaka  <shinyak@google.com>
2308
2309         Move ShadowContentElement from dom/ to html/ and make ShadowContentElement subclass of HTMLElement.
2310         https://bugs.webkit.org/show_bug.cgi?id=76241
2311
2312         Reviewed by Dimitri Glazkov.
2313
2314         * win/WebKit2.def: Exposed necessary symbols.
2315         * win/WebKit2CFLite.def: ditto.
2316
2317 2012-01-17  Hajime Morrita  <morrita@chromium.org>
2318
2319         [Internals] Should be able to access corresponding Document object.
2320         https://bugs.webkit.org/show_bug.cgi?id=76425
2321
2322         Reviewed by Adam Barth.
2323
2324         * win/WebKit2.def: Added exporting symbols.
2325         * win/WebKit2CFLite.def: Added exporting symbols.
2326
2327 2012-01-17  Matthew Delaney  <mdelaney@apple.com>
2328
2329         On post-Lion releases, preserve the Lion behavior where WebKit explicitly calls -setGeometryFlipped on the hosting layer for applications that were linked on Lion or earlier.
2330         <rdar://problem/10692025>
2331
2332         Reviewed by Simon Fraser.
2333
2334         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: Init new function.
2335         (InitWebCoreSystemInterface):
2336
2337 2012-01-17  Sam Weinig  <sam@webkit.org>
2338
2339         Rename quickLookPreviewItemsAtWindowLocation: to quickLookWithEvent:
2340         <rdar://problem/10688913>
2341
2342         Reviewed by Anders Carlsson.
2343
2344         * UIProcess/API/mac/WKView.mm:
2345         (-[WKView quickLookWithEvent:]):
2346
2347 2012-01-17  Sam Weinig  <sam@webkit.org>
2348
2349         Add helper macro for forward declaring objective-c classes
2350         https://bugs.webkit.org/show_bug.cgi?id=76485
2351
2352         Reviewed by Anders Carlsson.
2353
2354         * WebProcess/WebCoreSupport/WebDragClient.h:
2355         Deploy OBJC_CLASS for a little code reduction.
2356
2357         * config.h:
2358         Remove duplicate copy of OBJC_CLASS.
2359
2360 2012-01-17  Martin Robinson  <mrobinson@igalia.com>
2361
2362         [GTK] [WK2] WebKitPrivate should include the entire WebKit2 C API
2363         https://bugs.webkit.org/show_bug.cgi?id=76345
2364
2365         Reviewed by Gustavo Noronha Silva.
2366
2367         Isolate all of the WebKit2 C API includes into WebKitPrivate.h and no longer
2368         include anything other than WebKit2.h for the C API.
2369
2370         * UIProcess/API/gtk/WebKitBackForwardList.cpp: Use WebKitPrivate.h now.
2371         * UIProcess/API/gtk/WebKitBackForwardListItem.cpp: Ditto.
2372         * UIProcess/API/gtk/WebKitPrivate.h: Add WebKit2.h, WKAPICast.h and WKRetainPtr.h includes.
2373         * UIProcess/API/gtk/WebKitSettings.cpp: Use WebKitPrivate.h.
2374         * UIProcess/API/gtk/WebKitUIClient.cpp: Ditto.
2375         * UIProcess/API/gtk/WebKitWebContext.cpp: Ditto.
2376         * UIProcess/API/gtk/WebKitWebView.cpp: Ditto.
2377         * UIProcess/API/gtk/WebKitWebViewBase.cpp: Ditto.
2378         * UIProcess/API/gtk/WebKitWindowProperties.cpp: Ditto.
2379
2380 2012-01-17  Alexander Færøy  <alexander.faeroy@nokia.com>
2381
2382         [Qt] Implement HTTP authentication QML API
2383         https://bugs.webkit.org/show_bug.cgi?id=75535
2384
2385         Reviewed by Kenneth Rohde Christiansen.
2386
2387         This patch implements the QML API for handling HTTP authentication.
2388         The implementation uses a syncronous message between the WebProcess
2389         and the UIProcess which is called when the authenticationRequired
2390         signal is emitted from QNAM.
2391
2392         Based in part upon patch by Peter Hartmann.
2393
2394         * UIProcess/API/qt/qquickwebview.cpp:
2395         (QQuickWebViewPrivate::QQuickWebViewPrivate):
2396         (QQuickWebViewPrivate::handleAuthenticationRequiredRequest):
2397         (QQuickWebViewExperimental::authenticationDialog):
2398         (QQuickWebViewExperimental::setAuthenticationDialog):
2399         * UIProcess/API/qt/qquickwebview_p.h:
2400         * UIProcess/API/qt/qquickwebview_p_p.h:
2401         * UIProcess/PageClient.h:
2402         * UIProcess/WebPageProxy.cpp:
2403         (WebKit::WebPageProxy::authenticationRequiredRequest):
2404         * UIProcess/WebPageProxy.h:
2405         * UIProcess/WebPageProxy.messages.in:
2406         * UIProcess/qt/QtDialogRunner.cpp:
2407         (AuthenticationDialogContextObject::AuthenticationDialogContextObject):
2408         (AuthenticationDialogContextObject::hostname):
2409         (AuthenticationDialogContextObject::realm):
2410         (AuthenticationDialogContextObject::prefilledUsername):
2411         (AuthenticationDialogContextObject::accept):
2412         (AuthenticationDialogContextObject::reject):
2413         (QtDialogRunner::initForAuthentication):
2414         * UIProcess/qt/QtDialogRunner.h:
2415         (QtDialogRunner::username):
2416         (QtDialogRunner::password):
2417         (QtDialogRunner::onAuthenticationAccepted):
2418         * UIProcess/qt/QtPageClient.cpp:
2419         (QtPageClient::handleAuthenticationRequiredRequest):
2420         * UIProcess/qt/QtPageClient.h:
2421         * WebProcess/qt/QtNetworkAccessManager.cpp:
2422         (WebKit::QtNetworkAccessManager::QtNetworkAccessManager):
2423         (WebKit::QtNetworkAccessManager::onAuthenticationRequired):
2424         * WebProcess/qt/QtNetworkAccessManager.h:
2425
2426 2012-01-16  Dan Bernstein  <mitz@apple.com>
2427
2428         <rdar://problem/10702758> REGRESSION: Every Safari Reader WKView leaks
2429
2430         Reviewed by John Sullivan and Ada Chan.
2431
2432         * UIProcess/API/mac/WKView.mm:
2433         (-[WKView viewDidMoveToWindow]): Since this method can be called multiple times in a row
2434         while [self window] is non-nil, check if there isn’t already an event monitor before adding
2435         a new one.
2436
2437 2012-01-16  Anders Carlsson  <andersca@apple.com>
2438
2439         Crash when calling SecItemAdd with a null result pointer
2440         https://bugs.webkit.org/show_bug.cgi?id=76407
2441         <rdar://problem/10696087>
2442
2443         Reviewed by Brady Eidson.
2444
2445         Add null check.
2446
2447         * WebProcess/mac/SecItemShimMethods.mm:
2448         (WebKit::webSecItemAdd):
2449
2450 2012-01-16  Jon Lee  <jonlee@apple.com>
2451
2452         Build fix for r105086.
2453
2454         * Configurations/FeatureDefines.xcconfig:
2455
2456 2012-01-16  Zeno Albisser  <zeno@webkit.org>
2457
2458         [Qt] Fix QT_VERSION related warnings when building on Mac OS X
2459         https://bugs.webkit.org/show_bug.cgi?id=76340
2460
2461         This bug was caused by r104826.
2462         As was already mentioned for https://bugs.webkit.org/show_bug.cgi?id=57239
2463         we should not use "using namespace WebCore" in header files,
2464         because it might cause ambiguous references.
2465         This patch reverts the changes from r104826 and r104981
2466         and removes the "using namespace WebCore" statement from
2467         two header files.
2468
2469         Reviewed by Tor Arne Vestbø.
2470
2471         * Shared/WebLayerTreeInfo.h:
2472         (WebKit::WebLayerUpdateInfo::WebLayerUpdateInfo):
2473         (WebKit::WebLayerAnimation::WebLayerAnimation):
2474         * UIProcess/LayerTreeHostProxy.h:
2475         (WebKit::LayerTreeHostProxy::layerByID):
2476         (WebKit::LayerTreeHostProxy::rootLayer):
2477         (WebKit::LayerTreeHostProxy::notifyAnimationStarted):
2478         (WebKit::LayerTreeHostProxy::notifySyncRequired):
2479         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2480         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
2481         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
2482
2483 2012-01-16  Alexander Færøy  <alexander.faeroy@nokia.com>
2484
2485         [Qt] Remove references to PagePointer in the FrameNetworkingContext
2486         https://bugs.webkit.org/show_bug.cgi?id=76342
2487
2488         Reviewed by Simon Hausmann.
2489
2490         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
2491         (WebKit::WebFrameLoaderClient::createNetworkingContext):
2492         * WebProcess/qt/QtNetworkAccessManager.cpp:
2493         (WebKit::QtNetworkAccessManager::obtainOriginatingWebPage):
2494         * WebProcess/qt/QtNetworkAccessManager.h:
2495
2496 2012-01-14  Dan Bernstein  <mitz@apple.com>
2497
2498         <rdar://problem/10696295> Crash in WebProcess at com.apple.CFNetwork: URLCredentialStorage::CreateCurrentPersistentCredentials + 298
2499
2500         Reviewed by Anders Carlsson.
2501
2502         * WebProcess/mac/SecItemShimMethods.mm:
2503         (WebKit::initializeSecItemShim): Removed an early return that was accidentally added in r105008.
2504
2505 2012-01-13  Anders Carlsson  <andersca@apple.com>
2506
2507         Delay updating the root compositing layer if the layer tree state is frozen
2508         https://bugs.webkit.org/show_bug.cgi?id=76316
2509
2510         Reviewed by Dan Bernstein.
2511
2512         When the layer tree is frozen, stash the root layer in m_pendingRootCompositingLayer and set it in flushLayers.
2513
2514         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
2515         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
2516         (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
2517         (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
2518
2519 2012-01-13  Anders Carlsson  <andersca@apple.com>
2520
2521         Implement TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen
2522         https://bugs.webkit.org/show_bug.cgi?id=76308
2523
2524         Reviewed by Sam Weinig.
2525
2526         Keep track of whether the layer tree state is frozen and suspend/resume the layer flush scheduler accordingly.
2527
2528         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
2529         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
2530         (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
2531         (WebKit::TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen):
2532         (WebKit::TiledCoreAnimationDrawingArea::layerTreeStateIsFrozen):
2533         (WebKit::TiledCoreAnimationDrawingArea::scheduleCompositingLayerSync):
2534         (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
2535
2536 2012-01-13  Anders Carlsson  <andersca@apple.com>
2537
2538         Disable implicit animations when setting the root compositing layer
2539         https://bugs.webkit.org/show_bug.cgi?id=76304
2540
2541         Reviewed by Sam Weinig.
2542
2543         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
2544         (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
2545
2546 2012-01-13  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2547
2548         TextureMapper: Extract layer transform logic to a LayerTransform class.
2549         https://bugs.webkit.org/show_bug.cgi?id=76291
2550
2551         Reviewed by Noam Rosenthal.
2552
2553         Move the paint call before the visible rect collection to make sure that
2554         transforms are computed. This will increase the delay for the visible rects
2555         to get to the WebProcess until we move this calculation out of the UI Process.
2556         This fixes an assert triggering in LayerTransform::combineTransforms.
2557
2558         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2559         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
2560
2561 2012-01-13  Brent Fulgham  <bfulgham@webkit.org>
2562
2563         [WinCairo] Build correction.
2564
2565         * Shared/WebGraphicsContext.h: Use proper include path for RefPtrCairo.h.
2566
2567 2012-01-12  Martin Robinson  <mrobinson@igalia.com>
2568
2569         [GTK] [WebKit2] WebKitURIRequest and WebKitURIResponse should wrap the corresponding WebCore classes
2570         https://bugs.webkit.org/show_bug.cgi?id=74478
2571
2572         Reviewed by Gustavo Noronha Silva.
2573
2574         Have WebKitURIRequest wrap a ResourceRquesst and WebKitURIResponse wrap a ResourceResponse.
2575         They are the WebCore types they are meant to represent and we will need to expose more
2576         information from them in the future to make them useful. Later we can have ResourceResponse
2577         generate a SoupMessage lazily if necessary.
2578
2579         * GNUmakefile.am:
2580         * UIProcess/API/gtk/WebKitURIRequest.cpp:
2581         (webkit_uri_request_class_init): Remove the set property vmethod.
2582         (webkit_uri_request_new): The URI property is no longer settable.
2583         (webkitURIRequestCreateForResourceRequest): Added this private constructor.
2584         (webkit_uri_request_get_uri): Now we just get the URI directly from the ResourceRequest.
2585         * UIProcess/API/gtk/WebKitURIResponse.cpp:
2586         (webkit_uri_response_class_init): Remove the set property vmethod.
2587         (webkit_uri_response_get_uri): Get the URI directly from the ResourceReponse.
2588         (webkit_uri_response_get_status_code): Get the status code directly from the ResourceResponse.
2589         (webkit_uri_response_get_content_length): Get the content length directly from the ResourceResponse.
2590         (webkitURIResponseCreateForResourceResponse): Added this private constructor.
2591         * UIProcess/API/gtk/WebKitURIResponsePrivate.h: Removed unnecessary methods.
2592
2593 2012-01-12  No'am Rosenthal  <noam.rosenthal@nokia.com>
2594
2595         [Qt][WK2] WebProcesses crashes when composited reflections/masks are present
2596         https://bugs.webkit.org/show_bug.cgi?id=75883
2597
2598         Reviewed by Kenneth Rohde Christiansen.
2599
2600         Make sure masks and replica layers can access layerTreeTileClient. Let masks
2601         have the right contents/visible rect so that they can render content tiles.
2602         Default the mask's size to be the layer's size.
2603
2604         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
2605         (WebCore::WebGraphicsLayer::WebGraphicsLayer):
2606         (WebCore::WebGraphicsLayer::setSize):
2607         (WebCore::WebGraphicsLayer::setMaskLayer):
2608         (WebCore::WebGraphicsLayer::setReplicatedByLayer):
2609         (WebCore::WebGraphicsLayer::syncCompositingState):
2610         (WebCore::WebGraphicsLayer::setContentsScale):
2611         (WebCore::WebGraphicsLayer::setVisibleContentRect):
2612         (WebCore::WebGraphicsLayer::tiledBackingStoreContentsRect):
2613         (WebCore::WebGraphicsLayer::updateTileBuffersRecursively):
2614         (WebCore::WebGraphicsLayer::layerTreeTileClient):
2615         (WebCore::WebGraphicsLayer::purgeBackingStores):
2616         (WebCore::WebGraphicsLayer::recreateBackingStoreIfNeeded):
2617         (WebCore::WebGraphicsLayer::setLayerTreeTileClient):
2618         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
2619         (WebCore::WebGraphicsLayer::maskTarget):
2620         (WebCore::WebGraphicsLayer::setMaskTarget):
2621
2622 2012-01-12  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2623
2624         [Qt] Set the input method hints on the QtQuick item
2625         https://bugs.webkit.org/show_bug.cgi?id=76169
2626
2627         Reviewed by Simon Hausmann.
2628
2629         Set the input method hints given the HTMLElement type and state.
2630
2631         * Shared/EditorState.cpp:
2632         (WebKit::EditorState::encode):
2633         (WebKit::EditorState::decode):
2634         * Shared/EditorState.h:
2635         (WebKit::EditorState::EditorState):
2636         * UIProcess/qt/QtWebPageEventHandler.cpp:
2637         (QtWebPageEventHandler::updateTextInputState):
2638         * WebProcess/WebPage/WebPage.cpp:
2639         (WebKit::WebPage::editorState):
2640
2641 2012-01-12  Eunmi Lee  <eunmi15.lee@samsung.com>
2642
2643         [EFL][WK2] Update and show ewk_view with updated webpage.
2644         https://bugs.webkit.org/show_bug.cgi?id=76023
2645
2646         Reviewed by Andreas Kling.
2647
2648         Update ewk_view with BackingStore image which is rendered webpage
2649         image by WebProcess, and show updated image's area when
2650         PageClientImpl::setViewNeedsDisplay() is called.
2651         The ewk_view_display() function is used to display updated area of
2652         evas_object_image and the ewk_view_image_data_set() function is used
2653         to set evas_object_image's data with rendered webpage.
2654
2655         * UIProcess/API/efl/PageClientImpl.cpp:
2656         (WebKit::PageClientImpl::setViewNeedsDisplay):
2657         * UIProcess/API/efl/ewk_private.h: Added.
2658         * UIProcess/API/efl/ewk_view.cpp:
2659         (ewk_view_add):
2660         (ewk_view_display):
2661         (ewk_view_image_data_set):
2662         * UIProcess/cairo/BackingStoreCairo.cpp:
2663         (WebKit::BackingStore::incorporateUpdate):
2664
2665 2012-01-12  Ryuan Choi  <ryuan.choi@samsung.com>
2666
2667         [EFL][WK2] Network is not available when SOUP is enabled.
2668         https://bugs.webkit.org/show_bug.cgi?id=76112
2669
2670         Reviewed by Andreas Kling.
2671
2672         ecore_main_loop_glib_integrate should be called to use glib based library
2673         such as SOUP.
2674
2675         * WebProcess/efl/WebProcessMainEfl.cpp:
2676         (WebKit::WebProcessMainEfl):
2677
2678 2012-01-12  Ryuan Choi  <ryuan.choi@samsung.com>
2679
2680         [EFL][WK2] Add PLATFORM(EFL) in SharedMemory.h, WebProcessStore.h, WebEditorClient.cpp
2681         https://bugs.webkit.org/show_bug.cgi?id=76115
2682
2683         Reviewed by Andreas Kling.
2684
2685         This patch added PLATFORM(EFL) guard in SharedMemory.h to use UNIX_DOMAIN_SOCKETS
2686         and WebProcessStore.h to have font family preference
2687         and WebEditorClient.cpp to use platform specific handleKeyboardEvent(),
2688         handleInputMethodKeydown()
2689
2690         * Platform/SharedMemory.h:
2691         * Shared/WebPreferencesStore.h:
2692         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2693
2694 2012-01-11  Carlos Garcia Campos  <cgarcia@igalia.com>
2695
2696         [GTK] Web process should use the same locale than UI process
2697         https://bugs.webkit.org/show_bug.cgi?id=76054
2698
2699         Reviewed by Gustavo Noronha Silva.
2700
2701         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
2702         (WebKit::childSetupFunction): Make child process use the same
2703         locale than its parent.
2704
2705 2012-01-11  Ryuan Choi  <ryuan.choi@samsung.com>
2706
2707         [WK2] Share cairo specific codes with EFL port.
2708         https://bugs.webkit.org/show_bug.cgi?id=75457
2709
2710         Reviewed by Brent Fulgham.
2711
2712         Change PLATFORM(GTK) to USE(CAIRO) in WebGraphicsContext{h,cpp} to share
2713         with EFL port.
2714
2715         * Shared/WebGraphicsContext.cpp:
2716         (WebKit::WebGraphicsContext::WebGraphicsContext):
2717         * Shared/WebGraphicsContext.h:
2718
2719 2012-01-11  Beth Dakin  <bdakin@apple.com>
2720
2721         https://bugs.webkit.org/show_bug.cgi?id=75904
2722         WebKit 1: Scrollbar uiStateTransitionProgress requires tracking the mouse all 
2723         the time
2724         -and corresponding-
2725         <rdar://problem/10498816>
2726
2727         Reviewed by Darin Adler.
2728
2729         This patch gets rid of the optional parameter called onlyUpdateScrollbars for 
2730         WebCore::EventHandler::mouseMoved() and instead moves that functionality into 
2731         its own function called passMouseMovedEventToScrollbars().
2732         * WebProcess/WebPage/WebPage.cpp:
2733         (WebKit::handleMouseEvent):
2734
2735 2012-01-11  Brent Fulgham  <bfulgham@webkit.org>
2736
2737         WinCairo build correction.
2738
2739         * UIProcess/WebPageProxy.h: Don't define viewWidget for WinCairo port.
2740
2741 2012-01-11  Anders Carlsson  <andersca@apple.com>
2742
2743         Webpages flash white when switching between windows
2744         https://bugs.webkit.org/show_bug.cgi?id=76080
2745         <rdar://problem/9893565>
2746
2747         Reviewed by Dan Bernstein.
2748
2749         Introduce a _windowHasValidBackingStore boolean and only paint the background (white or clear)
2750         * UIProcess/API/mac/WKView.mm:
2751         (-[WKView setFrameSize:]):
2752         Set _windowHasValidBackingStore to false if the new size is different from the old size.
2753
2754         (-[WKView viewDidMoveToWindow]):
2755         Set _windowHasValidBackingStore to false.
2756
2757         (-[WKView _windowDidMiniaturize:]):
2758         Set _windowHasValidBackingStore to false.
2759
2760         (-[WKView _windowDidChangeBackingProperties:]):
2761         Set _windowHasValidBackingStore to false.
2762
2763         (-[WKView drawRect:]):
2764         Only call drawPageBackground if _windowHasValidBackingStore is false. Set it to true after painting.
2765
2766 2012-01-11  Anders Carlsson  <andersca@apple.com>
2767
2768         Fix the Mac GCC build.
2769
2770         Work around the fact that GCC doesn't work very well with Blocks and C++ objets.
2771
2772         * UIProcess/mac/WebProcessProxyMac.mm:
2773         (WebKit::dispatchFunctionOnQueue):
2774         (WebKit::WebProcessProxy::secItemRequest):
2775         (WebKit::WebProcessProxy::secKeychainItemRequest):
2776
2777 2012-01-11  No'am Rosenthal  <noam.rosenthal@nokia.com>
2778
2779         [Qt][WK2] Directly-composited images sometimes appear with a wrong geometry
2780         https://bugs.webkit.org/show_bug.cgi?id=75882
2781
2782         Reviewed by Simon Hausmann.
2783
2784         When assigning a directly composited image to a TextureMapperNode in WebKit2, we take
2785         contentsRect() onto account. However, contentsRect() might be changed after the image
2786         is already assigned.
2787         We have to reassign the image when contentsRect() changes. This is a pretty cheap
2788         operation, since the image is already converted to a texture and we simply change the
2789         geometric values.
2790
2791         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2792         (WebKit::LayerTreeHostProxy::syncLayerParameters):
2793         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
2794         (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
2795
2796 2012-01-11  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2797
2798         [Qt] Add the editor rect to the EditorState
2799         https://bugs.webkit.org/show_bug.cgi?id=76053
2800
2801         Reviewed by Simon Hausmann.
2802
2803         Also rename some members to match the new Qt naming scheme.
2804
2805         * Shared/EditorState.cpp:
2806         (WebKit::EditorState::encode):
2807         (WebKit::EditorState::decode):
2808         * Shared/EditorState.h:
2809         * UIProcess/API/qt/qquickwebview.cpp:
2810         (QQuickWebView::inputMethodQuery):
2811         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2812         (WebKit::WebEditorClient::respondToChangedSelection):
2813         * WebProcess/WebPage/WebPage.cpp:
2814         (WebKit::WebPage::editorState):
2815
2816 2012-01-11  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
2817
2818         [GTK] Linking of big binaries should be serialized to avoid thrashing
2819         https://bugs.webkit.org/show_bug.cgi?id=75977
2820
2821         Reviewed by Martin Robinson.
2822
2823         Added artificial dependencies so that libwebkitgtk is always
2824         linked first, libwebkit2gtk second, and WebKitPluginProcess
2825         last. Automake unfortunately replaces the whole rule used to build
2826         the libraries if the actual name is used to add the dependency, so
2827         we use helper variables to work around that.
2828
2829         * GNUmakefile.am:
2830
2831 2012-01-11  Ryuan Choi  <ryuan.choi@samsung.com>
2832
2833         [EFL][WK2] Rename viewObject to viewWidget
2834         https://bugs.webkit.org/show_bug.cgi?id=75947
2835
2836         Reviewed by Martin Robinson.
2837
2838         Rename viewObject to viewWidget for the EFL port to use WidgetBackingStore
2839         which calls viewWidget().
2840
2841         * UIProcess/API/efl/PageClientImpl.cpp:
2842         (WebKit::PageClientImpl::PageClientImpl):
2843         (WebKit::PageClientImpl::setViewNeedsDisplay):
2844         (WebKit::PageClientImpl::viewSize):
2845         * UIProcess/API/efl/PageClientImpl.h:
2846         (WebKit::PageClientImpl::create):
2847         (WebKit::PageClientImpl::viewWidget):
2848         * UIProcess/WebPageProxy.h:
2849         * UIProcess/efl/WebPageProxyEfl.cpp:
2850         (WebKit::WebPageProxy::viewWidget):
2851
2852 2012-01-10  Mark Rowe  <mrowe@apple.com>
2853
2854         REGRESSION (r104377): All pages print blank on Snow Leopard
2855         <http://webkit.org/b/75879> / <rdar://problem/10674335>
2856
2857         We need to explicitly load PDFKit.framework before using PDFDocument and friends.
2858         On SnowLeopard the framework is not necessarily loaded by anything else before we
2859         print, which would lead to us failing to allocate the PDFDocument that we use for
2860         drawing the content from the web process.
2861
2862         Reviewed by Dan Bernstein.
2863
2864         * UIProcess/API/mac/WKPrintingView.mm:
2865         (pdfKitFrameworkPath): Construct the path to the PDFKit framework.
2866         (classFromPDFKit): Ensure that the PDFKit framework is loaded, and then retrieve the
2867         given class from it.
2868         (pdfAnnotationLinkClass): ASSERT that we found the class.
2869         (pdfDocumentClass): Ditto.
2870
2871 2012-01-10  Chris Marrin  <cmarrin@apple.com>
2872
2873         Wrapped allowedCompositingTriggers in ACCELERATED_COMPOSITING ifdef to make non-accelerated builds work
2874
2875         Unreviewed.
2876
2877         * WebProcess/WebCoreSupport/WebChromeClient.h:
2878
2879 2012-01-10  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
2880
2881         [Qt][WK2]REGRESSION(r102435): It made tst_QQuickWebView::show() crash
2882         https://bugs.webkit.org/show_bug.cgi?id=74176
2883
2884         Reviewed by Noam Rosenthal.
2885
2886         Check texture mapper exists already in ensureRootLayer to avoid recrecation.
2887         Check if root layer was deleted already in purgeGLResources.
2888         Added multipleWebViewWindows and multipleWebViews API tests.
2889
2890         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
2891         (tst_QQuickWebView::multipleWebViewWindows):
2892         (tst_QQuickWebView::multipleWebViews):
2893         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2894         (WebKit::LayerTreeHostProxy::ensureRootLayer):
2895         (WebKit::LayerTreeHostProxy::purgeGLResources):
2896
2897 2012-01-10  Ryosuke Niwa  <rniwa@webkit.org>
2898
2899         Snow Leopard build fix.
2900
2901         * UIProcess/API/mac/PageClientImpl.h:
2902         * UIProcess/API/mac/PageClientImpl.mm:
2903
2904 2012-01-10  Anders Carlsson  <andersca@apple.com>
2905
2906         Hang opening movie that requires authentication
2907         https://bugs.webkit.org/show_bug.cgi?id=75989
2908
2909         Reviewed by Sam Weinig.
2910
2911         Change the way the keychain calls are processed to avoid deadlocks:
2912
2913         1. When a keychain call is made, the web process sends an asynchronous request message to the UI process,
2914            avoiding the need to bounce calls to the main thread (since CoreIPC only allows sending
2915            synchronous messages from the main thread). Incidentally, this fixes <rdar://problem/9428041>.
2916         2. The Web Process now waits on the calling thread, (for a condition variable to be signalled) for a reply message.
2917         3. The UI process handles the incoming message request message on the connection work queue and uses
2918            dispatch_async to a global dispatch queue where the keychain call is made.
2919            We use a global queue to prevent the connection work queue from blocking on the call.
2920         4. The UI process then sends an asynchronous reply message back to the web process. This message is sent from
2921            the global dispatch queue.
2922         5. The Web Process handles the reply message on the connection queue, adds the reply to a map and signals
2923            the condition variable that the web process is waiting on and the thread that made the keychain call
2924            can resume execution.
2925
2926         * Shared/mac/SecItemRequestData.cpp:
2927         (WebKit::SecItemRequestData::SecItemRequestData):
2928         (WebKit::SecItemRequestData::encode):
2929         (WebKit::SecItemRequestData::decode):
2930         * Shared/mac/SecItemRequestData.h:
2931         (WebKit::SecItemRequestData::type):
2932         Add a type to SecItemRequestData and encode/decode it.
2933
2934         * Shared/mac/SecItemResponseData.h:
2935         (WebKit::SecItemResponseData::resultObject):
2936         Make this return a reference so we can call leakRef() on it.
2937
2938         * Shared/mac/SecKeychainItemRequestData.cpp:
2939         (WebKit::SecKeychainItemRequestData::SecKeychainItemRequestData):
2940         (WebKit::SecKeychainItemRequestData::~SecKeychainItemRequestData):
2941         (WebKit::SecKeychainItemRequestData::attributeList):
2942         (WebKit::SecKeychainItemRequestData::encode):
2943         (WebKit::SecKeychainItemRequestData::decode):
2944         * Shared/mac/SecKeychainItemRequestData.h:
2945         (WebKit::SecKeychainItemRequestData::type):
2946         Add a type, and put the OwnPtr and OwnArrayPtr in a RefCounted struct so we can
2947         correctly copy this object.
2948
2949         * UIProcess/WebConnectionToWebProcess.cpp:
2950         (WebKit::WebConnectionToWebProcess::WebConnectionToWebProcess):
2951         Don't open the connection here, the WebProcessProxy object needs to add itself as a queue client before opening.
2952     
2953         * UIProcess/WebProcessProxy.cpp:
2954         (WebKit::WebProcessProxy::disconnect):
2955         Remove the WebProcessProxy object from the list of connection queue clients.
2956
2957         (WebKit::WebProcessProxy::didReceiveMessageOnConnectionWorkQueue):
2958         Call didReceiveWebProcessProxyMessageOnConnectionWorkQueue.
2959
2960         (WebKit::WebProcessProxy::didFinishLaunching):
2961         Add the WebProcessProxy as a queue client and open the connection.
2962
2963         * UIProcess/WebProcessProxy.h:
2964         WebProcessProxy should inherit from CoreIPC::Connection::QueueClient. Replace all individual keychain
2965         handler functions with two generic functions, secItemRequest and secKeychainItemRequest.
2966     
2967         * UIProcess/WebProcessProxy.messages.in:
2968         Replace individual keychain messages with SecItemRequest and SecKeychainItemRequest messages.
2969
2970         * UIProcess/mac/WebProcessProxyMac.mm:
2971         (WebKit::handleSecItemRequest):
2972         Call the right SecItem function depending on the request type and send back the result.
2973
2974         (WebKit::WebProcessProxy::secItemRequest):
2975         Dispatch handleSecItemRequest on a global dispatch queue.
2976
2977         (WebKit::handleSecKeychainItemRequest):
2978         Call the right SecKeychainItem function depending on the request type and send back the result.
2979         
2980         (WebKit::WebProcessProxy::secKeychainItemRequest):
2981         Dispatch handleSecKeychainItemRequest on a global dispatch queue.
2982         
2983         * WebKit2.xcodeproj/project.pbxproj:
2984         Update for added/removed files.
2985
2986         * WebProcess/WebProcess.h:
2987         Add secItemResponse and secKeychainItemResponse message handlers.
2988
2989         * WebProcess/WebProcess.messages.in:
2990         Add SecItemResponse and SecKeychainItemResponse messages.
2991
2992         * WebProcess/mac/CoreIPCClientRunLoop.h:
2993         * WebProcess/mac/CoreIPCClientRunLoop.mm:
2994         This is no longer needed.
2995
2996         * WebProcess/mac/KeychainItemShimMethods.h:
2997         * WebProcess/mac/KeychainItemShimMethods.mm:
2998         (WebKit::managedAttributeLists):
2999         Make this an atomically initialized static.
3000
3001         (WebKit::managedAttributeListsMutex):
3002         Add an atomically initialized mutex.
3003
3004         (WebKit::allocateAttributeListContents):
3005         Use the managedAttributeListsMutex to make this function callable from any thread.
3006
3007         (WebKit::managedKeychainItemContents):
3008         Make this an atomically initialized static.
3009         
3010         (WebKit::managedKeychainItemContentsMutex):
3011         Add an atomically initialized mutex.
3012
3013         (WebKit::allocateKeychainItemContentData):
3014         Use the managedAttributeListsMutex to make this function callable from any thread.
3015
3016         (WebKit::webFreeAttributeListContent):
3017         Use locking so this can be called from any thread.
3018
3019         (WebKit::webFreeKeychainItemContent):
3020         Ditto.
3021
3022         (WebKit::responseMap):
3023         Add responseMap thread-safe singleton for holding incoming responses.
3024
3025         (WebKit::generateSecKeychainItemRequestID):
3026         Return a unique item request id, using OSAtomicIncrement64Barrier for atomicity.
3027
3028         (WebKit::didReceiveSecKeychainItemResponse):
3029         Pass the response over the response map.
3030
3031         (WebKit::sendSeqKeychainItemRequest):
3032         Send a request message and wait for a response using ResponseMap::waitForResponse.
3033
3034         (WebKit::webSecKeychainItemCopyContent):
3035         Send a request using sendSeqKeychainItemRequest.
3036
3037         (WebKit::webSecKeychainItemCreateFromContent):
3038         Ditto.
3039
3040         (WebKit::webSecKeychainItemModifyContent):
3041         Ditto.
3042
3043         * WebProcess/mac/KeychainShimResponseMap.h:
3044         New thread-safe helper class that stores a map of responses and lets client wait for a response
3045         with a given ID.
3046
3047         (KeychainShimResponseMap::waitForResponse):
3048         Wait until the response is available in the hash map, then return it.
3049
3050         (KeychainShimResponseMap::didReceiveResponse):
3051         Add the response to the hash map and signal the condition variable.
3052
3053         * WebProcess/mac/SecItemShimMethods.h:
3054         * WebProcess/mac/SecItemShimMethods.mm:
3055         (WebKit::responseMap):
3056         Add responseMap thread-safe singleton for holding incoming responses.
3057
3058         (WebKit::generateSecItemRequestID):
3059         Return a unique item request id, using OSAtomicIncrement64Barrier for atomicity.
3060
3061         (WebKit::didReceiveSecItemResponse):
3062         Pass the response over the response map.
3063
3064         (WebKit::sendSeqItemRequest):
3065         Send a request message and wait for a response using ResponseMap::waitForResponse.
3066
3067         (WebKit::webSecItemCopyMatching):
3068         Send a request using sendSeqItemRequest.
3069
3070         (WebKit::webSecItemAdd):
3071         Ditto.
3072
3073         (WebKit::webSecItemUpdate):
3074         Ditto.
3075
3076         (WebKit::webSecItemDelete):
3077         Ditto.
3078
3079         * WebProcess/mac/WebProcessMac.mm:
3080         (WebKit::WebProcess::secItemResponse):
3081         Call didReceiveSecItemResponse.
3082
3083         (WebKit::WebProcess::secKeychainItemResponse):
3084         Call didReceiveSecKeychainItemResponse.
3085
3086 2012-01-10  Anders Carlsson  <andersca@apple.com>
3087
3088         DispatchOnConnectionQueue messages should have a Connection parameter
3089         https://bugs.webkit.org/show_bug.cgi?id=75986
3090
3091         Reviewed by Adam Roben.
3092
3093         Message handlers for messages with the DispatchOnConnectionQueue should have a CoreIPC::Connection
3094         parameter, making it easier to send messages back over that connection.
3095
3096         * Platform/CoreIPC/HandleMessage.h:
3097         (CoreIPC::callMemberFunction):
3098         (CoreIPC::handleMessageOnConnectionQueue):
3099         * Scripts/webkit2/messages.py:
3100         (async_case_statement):
3101         (generate_message_handler):
3102         * Scripts/webkit2/messages_unittest.py:
3103         * WebProcess/WebPage/EventDispatcher.cpp:
3104         (WebKit::EventDispatcher::wheelEvent):
3105         (WebKit::EventDispatcher::gestureEvent):
3106         * WebProcess/WebPage/EventDispatcher.h:
3107         * WebProcess/WebProcess.cpp:
3108         (WebKit::WebProcess::pluginProcessCrashed):
3109         * WebProcess/WebProcess.h:
3110
3111 2012-01-10  Chris Marrin  <cmarrin@apple.com>
3112
3113         Turn off the FilterTrigger in WebKit and WebKit2
3114         https://bugs.webkit.org/show_bug.cgi?id=75914
3115
3116         Reviewed by Simon Fraser.
3117
3118         Implement allowedCompositingTriggers to turn on all compositing triggers except FilterTrigger.
3119
3120         * WebProcess/WebCoreSupport/WebChromeClient.h:
3121         (WebKit::WebChromeClient::allowedCompositingTriggers):
3122
3123 2012-01-10  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3124
3125         Unreviewed potential Mac WK2 build fix.
3126
3127         * UIProcess/PageClient.h: forward declare WebGestureEvent.
3128
3129 2012-01-10  Csaba Osztrogonác  <ossy@webkit.org>
3130
3131         Unreviewed, rolling out an accidental commit r104569.
3132
3133         * Shared/EditorState.cpp:
3134         (WebKit::EditorState::encode):
3135         (WebKit::EditorState::decode):
3136         * Shared/EditorState.h:
3137         * UIProcess/API/qt/qquickwebview.cpp:
3138         (QQuickWebView::inputMethodQuery):
3139         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
3140         (WebKit::WebEditorClient::respondToChangedSelection):
3141         * WebProcess/WebPage/WebPage.cpp:
3142         (WebKit::WebPage::editorState):
3143
3144 2012-01-10  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3145
3146         Unreviewed potential Mac WK2 build fix.
3147
3148         * UIProcess/API/mac/PageClientImpl.h:
3149         * UIProcess/API/mac/PageClientImpl.mm:
3150         (WebKit::PageClientImpl::doneWithGestureEvent):
3151
3152 2012-01-10  Rafael Brandao  <rafael.lobo@openbossa.org>
3153
3154         [Qt][WK2] Add font-related API tests for QWebPreferences
3155         https://bugs.webkit.org/show_bug.cgi?id=75739
3156
3157         Reviewed by Zoltan Herczeg.
3158
3159         * UIProcess/API/qt/tests/qmltests/WebView/tst_preferences.qml:
3160         * UIProcess/API/qt/tests/qmltests/common/font-preferences.html: Added.
3161
3162 2012-01-10  Simon Hausmann  <simon.hausmann@nokia.com>
3163
3164         [Qt] Fix failing WK2 layout tests after r104557
3165
3166         Reviewed by Kenneth Rohde Christiansen.
3167
3168         * UIProcess/WebPageProxy.cpp:
3169         (WebKit::WebPageProxy::didReceiveEvent): Add missing break to not
3170         handle mouseDown as gesture event.
3171
3172 2012-01-10  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3173
3174         Unreviewed buildfix.
3175
3176         * UIProcess/WebPageProxy.h:
3177
3178 2012-01-10  Kenneth Rohde Christiansen  <kenneth@webkit.org>
3179
3180         Implement the input panel request/close handling
3181
3182         Reviewed by Simon Hausmann.
3183
3184         With the current patch we only request the input panel as a
3185         response to a user tap. Close requests, on the other hand,
3186         is always respected.
3187
3188         As multiple show/hide requests can happen while processing
3189         the tap gesture, input panel visibility changes are postponed
3190         until the tap gesture ends.
3191
3192         The input panel will become visible if the WebCore editor is
3193         in canEdit mode and thus work for content-editable, meaning
3194         that it won't close the input panel if you click on a link
3195         (eg. editCommand) while in content-editable mode.
3196
3197         * UIProcess/PageClient.h:
3198         * UIProcess/WebPageProxy.cpp:
3199         (WebKit::WebPageProxy::handleGestureEvent):
3200         (WebKit::WebPageProxy::editorStateChanged):
3201         (WebKit::WebPageProxy::didReceiveEvent):
3202
3203             Add a new doneWithGestureEvent method to the PageClient
3204             as well as add a updateTextInputState similar to that of mac.
3205
3206         * UIProcess/WebPageProxy.h:
3207         * UIProcess/qt/QtPageClient.cpp:
3208         (QtPageClient::updateTextInputState):
3209         (QtPageClient::doneWithGestureEvent):
3210
3211             Propagate the new events to the Qt EventHandler.
3212
3213         * UIProcess/qt/QtPageClient.h:
3214         * UIProcess/qt/QtWebPageEventHandler.cpp:
3215         * UIProcess/qt/QtWebPageEventHandler.h:
3216         (QtWebPageEventHandler::QtWebPageEventHandler):
3217         (QtWebPageEventHandler::handleSingleTapEvent):
3218         (setInputPanelVisible):
3219         (QtWebPageEventHandler::updateTextInputState):
3220         (QtWebPageEventHandler::doneWithGestureEvent):
3221
3222             Handle postponing of the input method visibility change
3223             and the actual showing/hiding.
3224
3225 2012-01-10  Eunmi Lee  <eunmi15.lee@samsung.com>
3226
3227         [EFL][WK2] Remove codes to move and resize the clip.
3228         https://bugs.webkit.org/show_bug.cgi?id=75428
3229
3230         Reviewed by Andreas Kling.
3231
3232         Remove codes to move and resize the clip because clip is not used now.
3233         We have to show whole area of evas_object_image so we don't have to
3234         clip any area.
3235         In the WebKit1 Efl, the clip is used to clip the area to show during
3236         weak zoom, so we can use codes to manipulate the clip when we want to
3237         implement weak zoom for WebKit2 Efl.
3238
3239         * UIProcess/API/efl/ewk_view.cpp:
3240         (_ewk_view_smart_calculate):
3241
3242 2012-01-09  Andras Becsi  <andras.becsi@nokia.com>
3243
3244         [Qt][WK2] Pinch zoom should affect the page size
3245         https://bugs.webkit.org/show_bug.cgi?id=74601
3246
3247         Reviewed by Kenneth Rohde Christiansen.
3248
3249         The current implementation uses the scale property of the QQuickWebPage
3250         to scale the page in response to pinch gestures.
3251         However for layout and anchoring to work correctly in QML, pinching needs
3252         to change the page size.
3253         This patch applies the pinch scale to the page size and to the transformation
3254         matrix of the drawing area.
3255         Thus the page item's coordinate system is no longer a direct representation
3256         of the WebCore::Page coordinate system and it is no longer suitable as
3257         an inertial frame of reference for input events. The event propagation had
3258         to be moved to the QQuickWebView and the positions translated to content
3259         coordinates when NativeWebEvents are created.
3260         Re-landing with fixed event delivery for the test infrastructure.
3261
3262         * Shared/NativeWebMouseEvent.h:
3263         * Shared/NativeWebTouchEvent.h:
3264         * Shared/NativeWebWheelEvent.h:
3265         * Shared/qt/NativeWebMouseEventQt.cpp:
3266         (WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
3267         * Shared/qt/NativeWebTouchEventQt.cpp:
3268         (WebKit::NativeWebTouchEvent::NativeWebTouchEvent):
3269         * Shared/qt/NativeWebWheelEventQt.cpp:
3270         (WebKit::NativeWebWheelEvent::NativeWebWheelEvent):
3271         * Shared/qt/WebEventFactoryQt.cpp:
3272         (WebKit::WebEventFactory::createWebMouseEvent):
3273         (WebKit::WebEventFactory::createWebWheelEvent):
3274         (WebKit::WebEventFactory::createWebTouchEvent):
3275         * Shared/qt/WebEventFactoryQt.h:
3276         * UIProcess/API/qt/qquickwebpage.cpp:
3277         (QQuickWebPage::geometryChanged):
3278         (QQuickWebPagePrivate::QQuickWebPagePrivate):
3279         (QQuickWebPagePrivate::paintToCurrentGLContext):
3280         (QQuickWebPage::usesTraditionalDesktopBehaviour):
3281         (QQuickWebPage::setUsesTraditionalDesktopBehaviour):
3282         (QQuickWebPage::eventHandler):
3283         (QQuickWebPage::setContentSize):
3284         (QQuickWebPage::contentSize):
3285         (QQuickWebPage::setContentScale):
3286         (QQuickWebPage::contentScale):
3287         (QQuickWebPage::transformFromItem):
3288         (QQuickWebPage::transformToItem):
3289         (QQuickWebPagePrivate::updateSize):
3290         * UIProcess/API/qt/qquickwebpage_p.h:
3291         * UIProcess/API/qt/qquickwebpage_p_p.h:
3292         * UIProcess/API/qt/qquickwebview.cpp:
3293         (QQuickWebViewPrivate::enableMouseEvents):
3294         (QQuickWebViewPrivate::disableMouseEvents):
3295         (QQuickWebViewPrivate::loadDidCommit):
3296         (QQuickWebViewPrivate::didFinishFirstNonEmptyLayout):
3297         (QQuickWebViewPrivate::didChangeContentsSize):
3298         (QQuickWebViewPrivate::didChangeViewportProperties):
3299         (QQuickWebViewPrivate::pageDidRequestScroll):
3300         (QQuickWebViewPrivate::updateVisibleContentRectAndScale):
3301         (QQuickWebViewPrivate::PostTransitionState::apply):
3302         (QQuickWebViewPrivate::setUseTraditionalDesktopBehaviour):
3303         (QQuickWebViewExperimental::setUseTraditionalDesktopBehaviour):
3304         (QQuickWebViewExperimental::useTraditionalDesktopBehaviour):
3305         (QQuickWebView::mapToWebContent):
3306         (QQuickWebView::mapRectToWebContent):
3307         (QQuickWebView::mapFromWebContent):
3308         (QQuickWebView::mapRectFromWebContent):
3309         (QQuickWebView::geometryChanged):
3310         (QQuickWebView::keyPressEvent):
3311         (QQuickWebView::keyReleaseEvent):
3312         (QQuickWebView::inputMethodEvent):
3313         (QQuickWebView::focusInEvent):
3314         (QQuickWebView::focusOutEvent):
3315         (QQuickWebView::touchEvent):
3316         (QQuickWebView::mousePressEvent):
3317         (QQuickWebView::mouseMoveEvent):
3318         (QQuickWebView::mouseReleaseEvent):
3319         (QQuickWebView::mouseDoubleClickEvent):
3320         (QQuickWebView::wheelEvent):
3321         (QQuickWebView::hoverEnterEvent):
3322         (QQuickWebView::hoverMoveEvent):
3323         (QQuickWebView::hoverLeaveEvent):
3324         (QQuickWebView::dragMoveEvent):
3325         (QQuickWebView::dragEnterEvent):
3326         (QQuickWebView::dragLeaveEvent):
3327         (QQuickWebView::dropEvent):
3328         (QQuickWebView::event):
3329         * UIProcess/API/qt/qquickwebview_p.h:
3330         * UIProcess/API/qt/qquickwebview_p_p.h:
3331         * UIProcess/API/qt/qwebviewportinfo.cpp:
3332         (QWebViewportInfo::contentsSize):
3333         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
3334         (tst_QQuickWebView::scrollRequest):
3335         * UIProcess/qt/QtPinchGestureRecognizer.cpp:
3336         (WebKit::QtPinchGestureRecognizer::recognize):
3337         * UIProcess/qt/QtViewportInteractionEngine.cpp:
3338         (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
3339         (WebKit::QtViewportInteractionEngine::setItemRectVisible):
3340         (WebKit::QtViewportInteractionEngine::animateItemRectVisible):
3341         (WebKit::QtViewportInteractionEngine::event):
3342         (WebKit::QtViewportInteractionEngine::wheelEvent):
3343         (WebKit::QtViewportInteractionEngine::pagePositionRequest):
3344         (WebKit::QtViewportInteractionEngine::computePosRangeForItemAtScale):
3345         (WebKit::QtViewportInteractionEngine::ensureContentWithinViewportBoundary):
3346         (WebKit::QtViewportInteractionEngine::applyConstraints):
3347         (WebKit::QtViewportInteractionEngine::currentCSSScale):
3348         (WebKit::QtViewportInteractionEngine::panGestureStarted):
3349         (WebKit::QtViewportInteractionEngine::panGestureRequestUpdate):
3350         (WebKit::QtViewportInteractionEngine::panGestureEnded):
3351         (WebKit::QtViewportInteractionEngine::pinchGestureStarted):
3352         (WebKit::QtViewportInteractionEngine::pinchGestureRequestUpdate):
3353         (WebKit::QtViewportInteractionEngine::scaleContent):
3354         * UIProcess/qt/QtViewportInteractionEngine.h:
3355         * UIProcess/qt/QtWebPageEventHandler.cpp:
3356         (QtWebPageEventHandler::handleEvent):
3357         (QtWebPageEventHandler::handleMouseMoveEvent):
3358         (QtWebPageEventHandler::handleMousePressEvent):
3359         (QtWebPageEventHandler::handleMouseReleaseEvent):
3360         (QtWebPageEventHandler::handleWheelEvent):
3361         (QtWebPageEventHandler::handleHoverLeaveEvent):
3362         (QtWebPageEventHandler::handleHoverMoveEvent):
3363         (QtWebPageEventHandler::handleDragEnterEvent):
3364         (QtWebPageEventHandler::handleDragMoveEvent):
3365         (QtWebPageEventHandler::handleDropEvent):
3366         (QtWebPageEventHandler::handleSingleTapEvent):
3367         (QtWebPageEventHandler::handleDoubleTapEvent):
3368         (QtWebPageEventHandler::touchEvent):
3369         * UIProcess/qt/QtWebPageEventHandler.h:
3370
3371 2012-01-09  Eunmi Lee  <eunmi15.lee@samsung.com>
3372
3373         [EFL][WK2] Set color_set function to the clipped smart class.
3374         https://bugs.webkit.org/show_bug.cgi?id=75286
3375
3376         Reviewed by Andreas Kling.
3377
3378         Set _ewk_view_smart_color_set() function to the clipped smart class's color_set,
3379         so application can set webpage's background color using evas_object_color_set() API.
3380
3381         * UIProcess/API/efl/ewk_view.cpp:
3382         (_ewk_view_smart_color_set):
3383         (ewk_view_smart_class_init):
3384
3385 2012-01-08  Dan Bernstein  <mitz@apple.com>
3386
3387         REGRESSION (r103859): WKViews leak
3388         https://bugs.webkit.org/show_bug.cgi?id=75805
3389
3390         The flags changed event monitor added in r103859 was retaining the WKView (as it references
3391         self in the handler block), causing it to leak.
3392
3393         * UIProcess/API/mac/WKView.mm:
3394         (-[WKView dealloc]): Moved call to remove the flags changed event monitor from here...
3395         (-[WKView viewDidMoveToWindow]): ...to here. Moved call to add the flags changed event
3396         monitor to here from...
3397         (-[WKView initWithFrame:contextRef:pageGroupRef:]): ...here.
3398
3399 2012-01-06  Mark Rowe  <mrowe@apple.com>
3400
3401         REGRESSION (WebKit2): Save as PDF no longer generates links to URLs
3402         <http://webkit.org/b/65076> / <rdar://problem/9606246>
3403
3404         WebKit2 printing works by having the web process render the page content to a PDF. The PDF
3405         data is then shipped to the UI process which will render it in to the printing graphics context.
3406         Links were being lost because the API used to do the rendering of the PDF in to the printing
3407         graphics context, CGContextDrawPDFPage, did not preserve the links that were present in the
3408         PDF content received from the web process.
3409
3410         To fix this we switch to using PDFKit for drawing the PDF in to the printing graphics context.
3411         PDFKit provides the ability for us to iterate over the links in the PDF content ourselves and
3412         add links in to the printing graphics context.
3413
3414         Reviewed by Alexey Proskuryakov.
3415
3416         * UIProcess/API/mac/WKPrintingView.h:
3417         * UIProcess/API/mac/WKPrintingView.mm:
3418         (pdfAnnotationLinkClass): Look up the PDFAnnotationLink class from PDFKit as WebKit2 loads PDFKit lazily.
3419         (pdfDocumentClass): Ditto.
3420         (-[WKPrintingView _drawPDFDocument:page:atPoint:]): Switch to using the PDFKit equivalents of several types.
3421         Iterate over the annotations present in the PDFPage, calling CGPDFContextSetURLForRect for each PDFAnnotationLink
3422         that we find.
3423         (-[WKPrintingView _drawPreview:]): Create an NSData to feed to PDFDocument.
3424         (-[WKPrintingView drawRect:]): Ditto.
3425         * WebKit2Prefix.h: Add the usual workaround to make Objective-C exceptions compile when C++ exception handling is disabled.
3426
3427 2012-01-06  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
3428
3429         [Qt] [WK2] Minibrowser leaks memory ~6-7Mb per reload
3430         https://bugs.webkit.org/show_bug.cgi?id=75746
3431
3432         Reset WebGraphicsLayer::m_layerTreeTileClient of all dependent 
3433         layers from ~LayerTreeHostQt(). This replaces r103760 which
3434         causes leaks of GraphicsLayerTextureMapper objects on UI side. 
3435
3436         Reviewed by Noam Rosenthal.
3437
3438         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
3439         (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
3440         (WebCore::WebGraphicsLayer::setLayerTreeTileClient):
3441         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
3442         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
3443         (WebKit::LayerTreeHostQt::~LayerTreeHostQt):
3444
3445 2012-01-06  Alexey Proskuryakov  <ap@apple.com>
3446
3447         [Mac] Thread verifier assertions when printing
3448         https://bugs.webkit.org/show_bug.cgi?id=75738
3449
3450         Reviewed by Sam Weinig.
3451
3452         * UIProcess/API/mac/WKPrintingView.mm:
3453         (-[WKPrintingView dealloc]): Dealloc in main thread, so that WebFrameProxy doesn't get
3454         deref'ed from a secondary one.
3455         (-[WKPrintingView _adjustPrintingMarginsForHeaderAndFooter]): This method calls out to client,
3456         which only expects that on main thread.
3457         (-[WKPrintingView knowsPageRange:]): Call _adjustPrintingMarginsForHeaderAndFooter on main
3458         thread.
3459
3460 2012-01-06  Alexey Proskuryakov  <ap@apple.com>
3461
3462         Need to allow SCNetworkReachability service in sandbox profile
3463         https://bugs.webkit.org/show_bug.cgi?id=75724
3464         <rdar://problem/10652415>
3465
3466         Reviewed by Mark Rowe.
3467
3468         * WebProcess/com.apple.WebProcess.sb:
3469
3470 2012-01-06  Benjamin Poulain  <bpoulain@apple.com>
3471
3472         [Mac] Sort the resources of WebKit2.xcodeproj
3473         https://bugs.webkit.org/show_bug.cgi?id=75636
3474
3475         Reviewed by Andreas Kling.
3476
3477         * WebKit2.xcodeproj/project.pbxproj:
3478