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