1 2012-01-27 Carlos Garcia Campos <cgarcia@igalia.com>
3 [GTK] Add a GKeyFile especialization to GOwnPtr
4 https://bugs.webkit.org/show_bug.cgi?id=77191
6 Reviewed by Martin Robinson.
8 * Shared/gtk/ArgumentCodersGtk.cpp:
9 (CoreIPC::decodeGKeyFile): Use GOwnPtr for GKeyFile.
10 (CoreIPC::encode): Ditto.
11 (CoreIPC::decode): Ditto.
13 2012-01-27 Kenneth Rohde Christiansen <kenneth@webkit.org>
15 [Qt] Fade out tap highlighting when starting to pan
16 https://bugs.webkit.org/show_bug.cgi?id=77202
18 Reviewed by Simon Hausmann.
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.
24 * UIProcess/qt/QtTapGestureRecognizer.cpp:
25 (WebKit::QtTapGestureRecognizer::QtTapGestureRecognizer):
26 (WebKit::QtTapGestureRecognizer::recognize):
27 (WebKit::QtTapGestureRecognizer::reset):
29 Remove reset as it does nothing but call code before the
30 event handler is installed.
32 2012-01-26 No'am Rosenthal <noam.rosenthal@nokia.com> and Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
34 [Qt] WKTR: Use a software rendering pipiline when running tests.
35 https://bugs.webkit.org/show_bug.cgi?id=76708
37 Reviewed by Kenneth Rohde Christiansen.
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.
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.
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):
61 2012-01-27 Simon Hausmann <simon.hausmann@nokia.com>
63 [Qt] Re-creating QQuickWebView starts new web process every time
64 https://bugs.webkit.org/show_bug.cgi?id=77194
66 Reviewed by Kenneth Rohde Christiansen.
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.
72 * UIProcess/qt/QtWebContext.cpp:
73 (WebKit::QtWebContext::defaultContext):
75 2012-01-26 Carlos Garcia Campos <cgarcia@igalia.com>
77 [GTK] Add basic printing support to WebKit2
78 https://bugs.webkit.org/show_bug.cgi?id=76172
80 Reviewed by Gustavo Noronha Silva.
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
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
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
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
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):
145 2012-01-26 Tim Horton <hortont424@gmail.com>
147 3D transformed elements hide when showing the print dialog
148 https://bugs.webkit.org/show_bug.cgi?id=45894
149 <rdar://problem/7441593>
151 Reviewed by Andy Estes.
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.
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):
165 2012-01-26 Andras Becsi <andras.becsi@nokia.com>
167 [Qt][WK2] Add the componentComplete method to WebView
168 https://bugs.webkit.org/show_bug.cgi?id=77111
170 Reviewed by Kenneth Rohde Christiansen.
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
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):
193 2012-01-26 Anders Carlsson <andersca@apple.com>
195 WebWheelEvent::Phase and PlatformWheelEvent::Phase declarations should match AppKit
196 https://bugs.webkit.org/show_bug.cgi?id=77123
198 Reviewed by Beth Dakin.
202 * Shared/mac/WebEventFactory.mm:
203 (WebKit::phaseForEvent):
205 2012-01-26 Andras Becsi <andras.becsi@nokia.com>
207 ASSERT(!m_overlay) reached in TapHighlightController.cpp:73
208 https://bugs.webkit.org/show_bug.cgi?id=77117
210 Reviewed by Tor Arne Vestbø.
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.
215 * WebProcess/WebPage/TapHighlightController.cpp:
216 (WebKit::TapHighlightController::hideHighlight):
218 2012-01-26 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
220 WebPreferencesStore: use DEFINE_STATIC_LOCAL for overrides HashMap
221 https://bugs.webkit.org/show_bug.cgi?id=77109
223 Reviewed by Andreas Kling.
227 * Shared/WebPreferencesStore.cpp:
229 (WebKit::boolTestRunnerOverridesMap):
230 (WebKit::WebPreferencesStore::overrideBoolValueForKey):
231 (WebKit::WebPreferencesStore::removeTestRunnerOverrides):
232 (WebKit::WebPreferencesStore::getBoolValueForKey):
234 2012-01-26 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
236 Implement overridePreference for boolean preferences in WebKitTestRunner
237 https://bugs.webkit.org/show_bug.cgi?id=77033
239 Reviewed by Alexey Proskuryakov.
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
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.
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.
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).
261 This clearing could be improved by creating a proper message instead of hooking
262 at WebPage::preferencesDidChange().
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:
283 2012-01-26 Carlos Garcia Campos <cgarcia@igalia.com>
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
288 Reviewed by Martin Robinson.
290 * WebProcess/WebCoreSupport/WebEditorClient.cpp:
291 (WebKit::WebEditorClient::respondToChangedSelection): Call
292 setSelectionPrimaryClipboardIfNeeded() to update primary clipboard
294 * WebProcess/WebCoreSupport/WebEditorClient.h:
295 * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
296 (WebKit::collapseSelection): Callback called when clearing
298 (WebKit::WebEditorClient::setSelectionPrimaryClipboardIfNeeded):
299 Updaye primary clipboard with the current selection.
301 2012-01-26 Zeno Albisser <zeno@webkit.org>
303 [Qt][WK2] Use QVariant for payload data in application URL schemes.
304 https://bugs.webkit.org/show_bug.cgi?id=77007
306 Make application schemes use QVariant for payload data.
307 This allows passing QByteArrays as well as simple String data.
309 Remove unneeded http header parts that were exposed in
312 Add ByteArrayTestData class to allow injecting QByteArray
313 data into an application scheme handler for testing.
315 Reviewed by Simon Hausmann.
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:
336 * UIProcess/API/qt/tests/tests.pri:
337 * WebProcess/qt/QtNetworkReply.cpp:
338 (WebKit::QtNetworkReply::setReplyData):
339 * WebProcess/qt/QtNetworkReply.h:
341 2012-01-26 Thiago Marcos P. Santos <tmpsantos@gmail.com>
343 [Qt] Fixed build when using force_static_libs_as_shared
344 https://bugs.webkit.org/attachment.cgi?bugid=77082
346 Reviewed by Simon Hausmann.
350 2012-01-26 Nándor Huszka <huszka.nandor@stud.u-szeged.hu>
352 [WK2] WebKitTestRunner needs layoutTestController.setGeolocationPermission
353 https://bugs.webkit.org/show_bug.cgi?id=42545
355 Reviewed by Zoltan Herczeg.
357 Implement the setGeolocationPermission method.
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):
365 * WebProcess/InjectedBundle/InjectedBundle.h:
368 2012-01-25 Mark Rowe <mrowe@apple.com>
370 Build in to an alternate location when USE_STAGING_INSTALL_PATH is set.
372 <rdar://problem/10609417> Adopt USE_STAGING_INSTALL_PATH
374 Reviewed by David Kilzer.
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
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.
388 2012-01-25 No'am Rosenthal <noam.rosenthal@nokia.com>
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
393 Reviewed by Kenneth Rohde Christiansen.
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.
401 * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
402 (WebCore::WebGraphicsLayer::notifyChangeRecursively):
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:
418 2012-01-25 Hajime Morita <morrita@google.com>
420 ENABLE_SHADOW_DOM should be available via build-webkit --shadow-dom
421 https://bugs.webkit.org/show_bug.cgi?id=76863
423 Reviewed by Dimitri Glazkov.
425 Added a feature flag.
427 * Configurations/FeatureDefines.xcconfig:
429 2012-01-25 Martin Robinson <mrobinson@igalia.com>
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
434 Reviewed by Sam Weinig.
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.
440 * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
441 (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction): Initialize m_mouseButton
442 to WebMouseEvent::NoButton.
444 2012-01-25 Kenneth Rohde Christiansen <kenneth@webkit.org>
446 [Qt] Implement tap feedback respecting -webkit-tap-highlight-color
447 https://bugs.webkit.org/show_bug.cgi?id=76914
449 Reviewed by Simon Hausmann.
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.
455 The highlighting itself is painted on an accelerated PageOverlay,
456 on the web process side.
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:
486 2012-01-25 Nándor Huszka <huszka.nandor@stud.u-szeged.hu>
488 [WK2] WebKitTestRunner needs layoutTestController.setPopupBlockingEnabled
489 https://bugs.webkit.org/show_bug.cgi?id=63458
491 Reviewed by Adam Roben.
493 Implement the setPopupBlockingEnabled method.
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:
503 2012-01-25 Yael Aharon <yael.aharon@nokia.com>
505 [Qt] Build fix when using force_static_libs_as_shared
506 https://bugs.webkit.org/show_bug.cgi?id=76832
508 Reviewed by Simon Hausmann.
510 Add a dependency on QtWidgets.
514 2012-01-24 Sergio Villar Senin <svillar@igalia.com>
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
519 Reviewed by Darin Adler.
521 FindController must obey the FindOptionsShowHighlight flag instead
522 of assuming that ports do not want to highlight search matches.
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):
531 2012-01-25 Carlos Garcia Campos <cgarcia@igalia.com>
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
536 Reviewed by Martin Robinson.
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
553 * UIProcess/API/gtk/WebKitLoaderClient.h: Added.
554 * UIProcess/API/gtk/WebKitUIClient.cpp:
555 (createNewPage): Use clientInfo instead fo getting the view from
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
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.
584 2012-01-25 Roland Steiner <rolandsteiner@chromium.org>
586 <style scoped>: Implement registering of <style scoped> with the scoping element
587 https://bugs.webkit.org/show_bug.cgi?id=67790
589 Add symbols for windows.internals.numberOfScopedHTMLStyleChildren
591 Reviewed by Dimitri Glazkov.
594 * win/WebKit2CFLite.def:
596 2012-01-24 Beth Dakin <bdakin@apple.com>
598 https://bugs.webkit.org/show_bug.cgi?id=76928
599 Accelerated drawing should force compositing mode
601 <rdar://problem/10697417>
603 Reviewed by Simon Fraser.
605 * WebProcess/WebPage/WebPage.cpp:
606 (WebKit::WebPage::updatePreferences):
608 2012-01-24 Alexis Menard <alexis.menard@openbossa.org>
610 Unreviewed build fix for Qt.
612 * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
613 (WebKit::LayerTreeHostQt::showDebugBorders):
614 (WebKit::LayerTreeHostQt::showRepaintCounter):
616 2012-01-23 Simon Fraser <simon.fraser@apple.com>
618 Show layer borders for scrollbar layers
619 https://bugs.webkit.org/show_bug.cgi?id=76888
621 Reviewed by Beth Dakin.
623 Update for new signatures of GraphicsLayerClient::showDebugBorders()
624 and GraphicsLayerClient::showRepaintCounter().
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:
635 2012-01-24 David Levin <levin@chromium.org>
637 [windows] Convert usage of GetDC to HWndDC Part 3.
638 https://bugs.webkit.org/show_bug.cgi?id=76889
640 Reviewed by Adam Roben.
642 * UIProcess/win/WebPopupMenuProxyWin.cpp:
643 (WebKit::WebPopupMenuProxyWin::paint): Fix a dc leak and use the dellayed allocation.
645 2012-01-24 Sergio Villar Senin <svillar@igalia.com>
647 [WK2] [GTK] TestDownloads hitting an assertion in Debug builds
648 https://bugs.webkit.org/show_bug.cgi?id=76915
650 Reviewed by Martin Robinson.
652 No new tests required as it fixes some assertions in a unit test.
654 * WebProcess/Downloads/soup/DownloadSoup.cpp:
655 (WebKit::Download::start):
656 (WebKit::Download::startWithHandle):
658 2012-01-24 No'am Rosenthal <noam.rosenthal@nokia.com>
660 [Qt][WK2] Qt's cross-process AC copies images excessively when updating tiles.
661 https://bugs.webkit.org/show_bug.cgi?id=76877
663 Reviewed by Kenneth Rohde Christiansen.
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.
669 Data flow before change:
670 (Web Process) Render to image -> IPC -> (UI Process) Copy (render queue) -> Copy Swizzled RGB -> Upload
672 Data flow after change:
673 (Web Process) Render to image -> swizzle RGB -> IPC -> (UI Process) -> Upload
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):
691 2012-01-24 Rafael Brandao <rafael.lobo@openbossa.org>
693 [Qt][WK2] QtWebIconDatabaseClient leaves a dangling pointer on WebIconDatabase after its destruction
694 https://bugs.webkit.org/show_bug.cgi?id=76399
696 Reviewed by Simon Hausmann.
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.
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.
708 2012-01-24 Zeno Albisser <zeno@webkit.org>
710 [Qt][WK2] Add test for application URL schemes.
711 https://bugs.webkit.org/show_bug.cgi?id=74933
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.
717 Reviewed by Kenneth Rohde Christiansen.
719 * UIProcess/API/qt/tests/qmltests/WebView/tst_applicationScheme.qml:
721 2012-01-24 Carlos Garcia Campos <cgarcia@igalia.com>
723 [GTK] Fix /webkit2/WebKitWebView/reload after r105688
724 https://bugs.webkit.org/show_bug.cgi?id=76898
726 Reviewed by Alejandro G. Castro.
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().
736 2012-01-24 Simon Hausmann <simon.hausmann@nokia.com>
738 Some qmake build files must include Qt5's "quick" module.
739 https://bugs.webkit.org/show_bug.cgi?id=76671
741 Unreviewed build fix.
743 * UIProcess/API/qt/tests/tests.pri:
745 2012-01-24 Zeno Albisser <zeno@webkit.org>
747 [Qt][WK2] Application URL schemes cause asserts when using debug.
748 https://bugs.webkit.org/show_bug.cgi?id=76700
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.
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.
762 Reviewed by Simon Hausmann.
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):
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):
815 2012-01-24 Carlos Garcia Campos <cgarcia@igalia.com>
817 [GTK] Implement DownloadClient in WebKit2 GTK+ API
818 https://bugs.webkit.org/show_bug.cgi?id=72952
820 Reviewed by Martin Robinson.
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
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
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
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
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):
864 (testDownloadRemoteFile):
865 (testDownloadRemoteFileError):
869 2012-01-23 Carlos Garcia Campos <cgarcia@igalia.com>
871 [GTK] Add WebKitDownload to WebKit2 GTK+ API
872 https://bugs.webkit.org/show_bug.cgi?id=72949
874 Reviewed by Martin Robinson.
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
885 (webkitDownloadSetResponse): Set the network response of the
887 (webkitDownloadIsCancelled): Whether the download has been
888 cancelled by the user.
889 (webkitDownloadNotifyProgress): Emit notify::estimated-progress if
891 (webkitDownloadFailed): Emit WebKitDownload::failed with the given
893 (webkitDownloadCancelled): Emit WebKitDownload::failed with
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
902 (webkit_download_set_destination): Set the destination URI of the
904 (webkit_download_get_response): Return the response received by
906 (webkit_download_cancel): Cancel the download.
907 (webkit_download_get_estimated_progress): Return the estimated
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:
922 2012-01-23 Geoffrey Garen <ggaren@apple.com>
924 JSValue::toString() should return a JSString* instead of a UString
925 https://bugs.webkit.org/show_bug.cgi?id=76861
927 Reviewed by Gavin Barraclough.
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".
933 * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
934 (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
936 2012-01-23 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
938 [Qt][WK2] QQuickWebView is initializing touch mode twice while being constructed
939 https://bugs.webkit.org/show_bug.cgi?id=76859
941 Reviewed by Kenneth Rohde Christiansen.
943 Removing d->initializeTouch() from QQuickWebView::QQuickWebView()
944 since in QQuickWebViewPrivate::initialize() there is a call for
945 setUseTraditionalDesktopBehaviour(false), which will call initializeTouch.
947 * UIProcess/API/qt/qquickwebview.cpp:
948 (QQuickWebView::QQuickWebView):
950 2012-01-23 Martin Robinson <mrobinson@igalia.com>
952 [GTK][WK2] Make the LoadTracking and WebView test fixtures more flexible
953 https://bugs.webkit.org/show_bug.cgi?id=76755
955 Reviewed by Alejandro G. Castro.
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
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.
977 2012-01-23 Alexander Færøy <alexander.faeroy@nokia.com>
979 [Qt] Implement SSL error handling QML API.
980 https://bugs.webkit.org/show_bug.cgi?id=76793
982 Reviewed by Simon Hausmann.
984 This patch implements support for accepting or rejecting invalid SSL
985 certificates from the QML API.
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:
1014 2012-01-23 David Levin <levin@chromium.org>
1016 [windows] Convert usages of GetDC to HWndDC Part 2.
1017 https://bugs.webkit.org/show_bug.cgi?id=76750
1019 Reviewed by Adam Roben.
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.
1025 2012-01-23 David Levin <levin@chromium.org>
1027 [windows] Convert usages of GetDC to HWndDC Part 1.
1028 https://bugs.webkit.org/show_bug.cgi?id=76744
1030 Reviewed by Adam Roben.
1032 * UIProcess/win/WebView.cpp:
1033 (WebKit::WebView::flashBackingStoreUpdates): Typical conversion.
1035 2012-01-21 Timothy Hatcher <timothy@apple.com>
1037 Make WebKit2 remember the height of the Web Inspector when it is docked.
1039 https://webkit.org/b/76769
1041 Reviewed by Dan Bernstein.
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.
1050 2012-01-20 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
1052 [Qt] [WK2] Division by zero error in QtViewportInteractionEngine::setItemRectVisible
1053 https://bugs.webkit.org/show_bug.cgi?id=76674
1055 Reviewed by Kenneth Rohde Christiansen.
1057 Make sure that itemRect is not empty.
1059 * UIProcess/qt/QtViewportInteractionEngine.cpp:
1060 (WebKit::QtViewportInteractionEngine::setItemRectVisible):
1062 2012-01-20 Steve Falkenburg <sfalken@apple.com>
1064 Reviewed by Alexey Proskuryakov.
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>
1070 The Windows drag/drop code path was missing the code to open a file read exception.
1072 Added code to match the Mac version, while allowing directories and multiple files to
1073 also be dragged (matching our previous behavior).
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.
1079 2012-01-20 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
1081 [Qt] Trigger forcing accelerated compositing from the UI process side.
1082 https://bugs.webkit.org/show_bug.cgi?id=76296
1084 Reviewed by Noam Rosenthal.
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.
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.
1096 This fixes the first visible content rect message not being received when
1097 loading pages from the disk.
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):
1116 2012-01-20 Sheriff Bot <webkit.review.bot@gmail.com>
1118 Unreviewed, rolling out r105497.
1119 http://trac.webkit.org/changeset/105497
1120 https://bugs.webkit.org/show_bug.cgi?id=76696
1122 Leaking in Qt layout tests and timing out in GTK API tests.
1123 (Requested by jturcotte on #webkit).
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):
1137 2012-01-20 Mario Sanchez Prada <msanchez@igalia.com>
1139 [GTK] Expose accessibility hierarchy in WebKit2 to ATK/AT-SPI based ATs
1140 https://bugs.webkit.org/show_bug.cgi?id=72589
1142 Reviewed by Martin Robinson.
1144 Expose the accessibility hierarchy in the multi-process
1145 architecture of WK2 through AtkSocket and AtkPlug.
1147 Make the WebView widget return an AtkSocket when calling to
1148 gtk_widget_get_accessible().
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.
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
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.
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):
1198 New unit test for checking accessibility support in WK2GTK.
1200 * UIProcess/API/gtk/tests/AccessibilityTestServer.cpp: Added.
1201 (loadChangedCallback): Notify the parent process (the test)
1204 * UIProcess/API/gtk/tests/GNUmakefile.am:
1205 * UIProcess/API/gtk/tests/TestWebKitAccessibility.cpp: Added.
1208 (testServerMonitorThreadFunc):
1209 (startTestServerMonitor):
1211 (checkAtspiAccessible):
1212 (findTestServerApplication):
1213 (testAtspiBasicHierarchy):
1217 2012-01-19 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
1219 [Qt] Public API watch dog auto test.
1220 https://bugs.webkit.org/show_bug.cgi?id=73922
1222 Reviewed by Simon Hausmann.
1224 This test aims to prevent unintended/unapproved
1225 modifications to the public QML API.
1227 * UIProcess/API/qt/tests/publicapi/publicapi.pro: Added.
1228 * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp: Added.
1233 (tst_publicapi::publicAPI):
1235 2012-01-13 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
1237 [Qt] Trigger forcing accelerated compositing from the UI process side.
1238 https://bugs.webkit.org/show_bug.cgi?id=76296
1240 Reviewed by Noam Rosenthal.
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.
1248 This fixes the first visible content rect message not being received when
1249 loading pages from the disk.
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):
1263 2012-01-20 Alexandru Chiculita <achicu@adobe.com>
1265 CSS Shaders: Add a Settings flag to enable/disable CSS Shaders at runtime
1266 https://bugs.webkit.org/show_bug.cgi?id=76444
1268 Reviewed by Nikolas Zimmermann.
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):
1278 2012-01-19 Sam Weinig <sam@webkit.org>
1280 Replace improper #import with an #include.
1282 * UIProcess/Plugins/PluginProcessProxy.cpp:
1285 2012-01-18 Sam Weinig <sam@webkit.org>
1287 Move RunLoop to WebCore/platform
1288 https://bugs.webkit.org/show_bug.cgi?id=76471
1290 Reviewed by Anders Carlsson.
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:
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.
1349 2012-01-18 Ada Chan <adachan@apple.com>
1351 Need a WebKit2 API for setting media volume
1352 https://bugs.webkit.org/show_bug.cgi?id=76560
1354 Reviewed by Dan Bernstein.
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
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.
1376 2012-01-19 Carlos Garcia Campos <cgarcia@igalia.com>
1378 [GTK] WebKit2 GTK+ API public headers are not installed
1379 https://bugs.webkit.org/show_bug.cgi?id=76626
1381 Reviewed by Martin Robinson.
1383 * GNUmakefile.am: Rename webkit2gtk_headers as
1384 libwebkit2gtkinclude_HEADERS to match libwebkit2gtkincludedir so
1385 that headers are installed during make install.
1387 2012-01-19 Carlos Garcia Campos <cgarcia@igalia.com>
1389 [GTK] Add print-backgrounds setting to WebKit2 GTK+ API
1390 https://bugs.webkit.org/show_bug.cgi?id=76616
1392 Reviewed by Martin Robinson.
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):
1405 2012-01-18 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
1407 [Qt] Handle the layers visible rect calculation on the web process.
1408 https://bugs.webkit.org/show_bug.cgi?id=74720
1410 Reviewed by Noam Rosenthal.
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.
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.
1421 This patch also uses clampedBoundsOfProjectedQuad instead of mapRect
1422 to transform the visible rect correctly for 3D transformed layers.
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:
1454 2012-01-18 Jon Lee <jonlee@apple.com>
1456 Another build fix for r105364.
1458 * WebProcess/mac/WebProcessMac.mm:
1459 (WebKit::WebProcess::platformInitializeWebProcess): Missing #if.
1461 2012-01-18 Jon Lee <jonlee@apple.com>
1463 Build fix for r105364. Unreviewed.
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):
1471 2012-01-18 Jon Lee <jonlee@apple.com>
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>
1477 Reviewed by Anders Carlsson and Sam Weinig.
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.
1484 The synchronous nature of this call causes the white flash to appear in certain cases.
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.
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.
1495 == Update notification permissions to use the security origin's string representation, rather than its
1496 database identifier.
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
1505 (WebKit::WebNotificationManagerProxy::cancel): Registering the provider with the manager is handled in
1507 * UIProcess/Notifications/WebNotificationManagerProxy.h:
1508 * UIProcess/WebPageProxy.cpp:
1509 (WebKit::WebPageProxy::requestNotificationPermission):
1510 (WebKit::WebPageProxy::showNotification):
1511 * UIProcess/WebPageProxy.h:
1513 * WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
1514 (WebKit::NotificationPermissionRequestManager::startRequest): Only start the request if notifications
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.
1520 == Remove synchronous message to get policy for a given origin. Instead, use the cached copy in
1521 WebNotificationManager.
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
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.
1535 * UIProcess/API/C/WKNotificationProvider.h:
1536 * UIProcess/Notifications/WebNotificationManagerProxy.messages.in: Remove NotificationPermissionLevel.
1537 * UIProcess/Notifications/WebNotificationManagerProxy.h:
1538 * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
1540 * UIProcess/Notifications/WebNotificationProvider.h: Remove policyForNotificationPermissionAtOrigin().
1541 * UIProcess/Notifications/WebNotificationProvider.cpp:
1543 * UIProcess/WebProcessProxy.cpp:
1544 (WebKit::WebProcessProxy::didReceiveSyncMessage): Remove conditional to forward sync messages to the
1545 notification manager proxy.
1547 == Mechanism for client to update the permissions copy in WebNotificationManager.
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.
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.
1563 * UIProcess/API/C/WKNotificationManager.h: Expose these update functions as WK API.
1564 * UIProcess/API/C/WKNotificationManager.cpp:
1565 (WKNotificationManagerProviderDidUpdateNotificationPolicy):
1566 (WKNotificationManagerProviderDidRemoveNotificationPolicies):
1568 == Initialize WebNotificationManager with permissions. Initialize WebPage with notifications enabled bit
1571 * Shared/WebProcessCreationParameters.h: Add map of notification permissions as part of the
1573 * Shared/WebProcessCreationParameters.cpp:
1574 (WebKit::WebProcessCreationParameters::encode):
1575 (WebKit::WebProcessCreationParameters::decode):
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.
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.
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.
1595 * WebProcess/Notifications/WebNotificationManager.h:
1596 * WebProcess/Notifications/WebNotificationManager.cpp:
1597 (WebKit::WebNotificationManager::initialize): Initialize the permissions copy.
1599 * WebProcess/WebPage/WebPage.cpp:
1600 (WebKit::WebPage::updatePreferences): Set notifications enabled bit from settings.
1602 == Expose toString() method from WebCore::SecurityOrigin. Work is also towards bug 74956.
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):
1611 Refactor WebSecurityOrigin::create() to WebSecurityOrigin::createFromDatabaseIdentifier()
1612 and add WebSecurityOrigin::createFromString().
1614 * Shared/WebSecurityOrigin.h:
1615 (WebKit::WebSecurityOrigin::createFromString):
1616 (WebKit::WebSecurityOrigin::createFromDatabaseIdentifier):
1617 (WebKit::WebSecurityOrigin::toString): Added function.
1619 Refactor with renamed createFromDatabaseIdentifier() method.
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):
1630 == Add WK API calls to change notificationsEnabled bit in WebCore::Settings.
1632 * Shared/WebPreferencesStore.h:
1633 * UIProcess/API/C/WKPreferences.cpp:
1634 (WKPreferencesSetNotificationsEnabled):
1635 (WKPreferencesGetNotificationsEnabled):
1636 * UIProcess/API/C/WKPreferences.h:
1638 2012-01-18 Anders Carlsson <andersca@apple.com>
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>
1644 Reviewed by Sam Weinig.
1646 * UIProcess/cf/WebPageProxyCF.cpp:
1647 Change CurrentSessionStateDataVersion back to 2.
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.
1655 2012-01-17 Alexey Proskuryakov <ap@apple.com>
1657 [Mac] Add a flag telling plug-in if it can enter sandbox
1658 https://bugs.webkit.org/show_bug.cgi?id=76467
1660 Reviewed by Anders Carlsson.
1662 * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
1663 (WebKit::NPN_GetValue): Added a private flag.
1665 2012-01-18 Eric Carlson <eric.carlson@apple.com>
1667 Provide access to user's list of preferred languages
1668 https://bugs.webkit.org/show_bug.cgi?id=76138
1670 Reviewed by Alexey Proskuryakov.
1672 * Shared/WebProcessCreationParameters.cpp:
1673 (WebKit::WebProcessCreationParameters::encode): Encode the languages array.
1674 (WebKit::WebProcessCreationParameters::decode): Decode the languages array.
1675 * Shared/WebProcessCreationParameters.h:
1677 * UIProcess/WebContext.cpp:
1678 (WebKit::WebContext::languageChanged): Override the WebProcess userPreferredLanguages.
1679 (WebKit::WebContext::ensureWebProcess): Initialize parameters.languages.
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.
1687 * win/WebKit2.def: Export the new functions.
1688 * win/WebKit2CFLite.def: Ditto.
1690 2012-01-18 Luciano Wolf <luciano.wolf@openbossa.org>
1692 [Qt][WK2] Broken build with undefined reference to shm_open and shm_unlink
1693 https://bugs.webkit.org/show_bug.cgi?id=76538
1695 Reviewed by Tor Arne Vestbø.
1697 The -lrt parameter was coming before -lWebKit2 during linkage.
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).
1705 The issue was fixed with the help of Aloisio Almeida and Lauro Venancio.
1709 2012-01-18 Carlos Garnacho <carlosg@gnome.org>
1711 [GTK] Listen to GDK_SCROLL_MASK
1712 https://bugs.webkit.org/show_bug.cgi?id=76529
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.
1719 Reviewed by Martin Robinson.
1721 * UIProcess/API/gtk/WebKitWebViewBase.cpp:
1722 (webkitWebViewBaseRealize):
1724 2012-01-18 Andras Becsi <andras.becsi@nokia.com>
1726 [Qt][WK2] Fix the debug build.
1730 * UIProcess/qt/QtWebPageEventHandler.cpp:
1731 (setInputPanelVisible): Remove assertion from non-member function.
1733 2012-01-12 Kenneth Rohde Christiansen <kenneth@webkit.org>
1735 [Qt] Zoom in to the focused node only when vkb starts becoming visible
1736 https://bugs.webkit.org/show_bug.cgi?id=76174
1738 Reviewed by Simon Hausmann.
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
1744 Also make sure that we do not zoom in or request the input panel if
1745 the item is not focused.
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):
1761 2012-01-18 Shinya Kawanaka <shinyak@google.com>
1763 Move ShadowContentElement from dom/ to html/ and make ShadowContentElement subclass of HTMLElement.
1764 https://bugs.webkit.org/show_bug.cgi?id=76241
1766 Reviewed by Dimitri Glazkov.
1768 * win/WebKit2.def: Exposed necessary symbols.
1769 * win/WebKit2CFLite.def: ditto.
1771 2012-01-17 Hajime Morrita <morrita@chromium.org>
1773 [Internals] Should be able to access corresponding Document object.
1774 https://bugs.webkit.org/show_bug.cgi?id=76425
1776 Reviewed by Adam Barth.
1778 * win/WebKit2.def: Added exporting symbols.
1779 * win/WebKit2CFLite.def: Added exporting symbols.
1781 2012-01-17 Matthew Delaney <mdelaney@apple.com>
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>
1786 Reviewed by Simon Fraser.
1788 * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm: Init new function.
1789 (InitWebCoreSystemInterface):
1791 2012-01-17 Sam Weinig <sam@webkit.org>
1793 Rename quickLookPreviewItemsAtWindowLocation: to quickLookWithEvent:
1794 <rdar://problem/10688913>
1796 Reviewed by Anders Carlsson.
1798 * UIProcess/API/mac/WKView.mm:
1799 (-[WKView quickLookWithEvent:]):
1801 2012-01-17 Sam Weinig <sam@webkit.org>
1803 Add helper macro for forward declaring objective-c classes
1804 https://bugs.webkit.org/show_bug.cgi?id=76485
1806 Reviewed by Anders Carlsson.
1808 * WebProcess/WebCoreSupport/WebDragClient.h:
1809 Deploy OBJC_CLASS for a little code reduction.
1812 Remove duplicate copy of OBJC_CLASS.
1814 2012-01-17 Martin Robinson <mrobinson@igalia.com>
1816 [GTK] [WK2] WebKitPrivate should include the entire WebKit2 C API
1817 https://bugs.webkit.org/show_bug.cgi?id=76345
1819 Reviewed by Gustavo Noronha Silva.
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.
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.
1834 2012-01-17 Alexander Færøy <alexander.faeroy@nokia.com>
1836 [Qt] Implement HTTP authentication QML API
1837 https://bugs.webkit.org/show_bug.cgi?id=75535
1839 Reviewed by Kenneth Rohde Christiansen.
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.
1846 Based in part upon patch by Peter Hartmann.
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:
1880 2012-01-16 Dan Bernstein <mitz@apple.com>
1882 <rdar://problem/10702758> REGRESSION: Every Safari Reader WKView leaks
1884 Reviewed by John Sullivan and Ada Chan.
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
1891 2012-01-16 Anders Carlsson <andersca@apple.com>
1893 Crash when calling SecItemAdd with a null result pointer
1894 https://bugs.webkit.org/show_bug.cgi?id=76407
1895 <rdar://problem/10696087>
1897 Reviewed by Brady Eidson.
1901 * WebProcess/mac/SecItemShimMethods.mm:
1902 (WebKit::webSecItemAdd):
1904 2012-01-16 Jon Lee <jonlee@apple.com>
1906 Build fix for r105086.
1908 * Configurations/FeatureDefines.xcconfig:
1910 2012-01-16 Zeno Albisser <zeno@webkit.org>
1912 [Qt] Fix QT_VERSION related warnings when building on Mac OS X
1913 https://bugs.webkit.org/show_bug.cgi?id=76340
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
1923 Reviewed by Tor Arne Vestbø.
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:
1937 2012-01-16 Alexander Færøy <alexander.faeroy@nokia.com>
1939 [Qt] Remove references to PagePointer in the FrameNetworkingContext
1940 https://bugs.webkit.org/show_bug.cgi?id=76342
1942 Reviewed by Simon Hausmann.
1944 * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1945 (WebKit::WebFrameLoaderClient::createNetworkingContext):
1946 * WebProcess/qt/QtNetworkAccessManager.cpp:
1947 (WebKit::QtNetworkAccessManager::obtainOriginatingWebPage):
1948 * WebProcess/qt/QtNetworkAccessManager.h:
1950 2012-01-14 Dan Bernstein <mitz@apple.com>
1952 <rdar://problem/10696295> Crash in WebProcess at com.apple.CFNetwork: URLCredentialStorage::CreateCurrentPersistentCredentials + 298
1954 Reviewed by Anders Carlsson.
1956 * WebProcess/mac/SecItemShimMethods.mm:
1957 (WebKit::initializeSecItemShim): Removed an early return that was accidentally added in r105008.
1959 2012-01-13 Anders Carlsson <andersca@apple.com>
1961 Delay updating the root compositing layer if the layer tree state is frozen
1962 https://bugs.webkit.org/show_bug.cgi?id=76316
1964 Reviewed by Dan Bernstein.
1966 When the layer tree is frozen, stash the root layer in m_pendingRootCompositingLayer and set it in flushLayers.
1968 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
1969 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1970 (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
1971 (WebKit::TiledCoreAnimationDrawingArea::flushLayers):
1973 2012-01-13 Anders Carlsson <andersca@apple.com>
1975 Implement TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen
1976 https://bugs.webkit.org/show_bug.cgi?id=76308
1978 Reviewed by Sam Weinig.
1980 Keep track of whether the layer tree state is frozen and suspend/resume the layer flush scheduler accordingly.
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):
1990 2012-01-13 Anders Carlsson <andersca@apple.com>
1992 Disable implicit animations when setting the root compositing layer
1993 https://bugs.webkit.org/show_bug.cgi?id=76304
1995 Reviewed by Sam Weinig.
1997 * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1998 (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
2000 2012-01-13 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
2002 TextureMapper: Extract layer transform logic to a LayerTransform class.
2003 https://bugs.webkit.org/show_bug.cgi?id=76291
2005 Reviewed by Noam Rosenthal.
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.
2012 * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2013 (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
2015 2012-01-13 Brent Fulgham <bfulgham@webkit.org>
2017 [WinCairo] Build correction.
2019 * Shared/WebGraphicsContext.h: Use proper include path for RefPtrCairo.h.
2021 2012-01-12 Martin Robinson <mrobinson@igalia.com>
2023 [GTK] [WebKit2] WebKitURIRequest and WebKitURIResponse should wrap the corresponding WebCore classes
2024 https://bugs.webkit.org/show_bug.cgi?id=74478
2026 Reviewed by Gustavo Noronha Silva.
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.
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.
2047 2012-01-12 No'am Rosenthal <noam.rosenthal@nokia.com>
2049 [Qt][WK2] WebProcesses crashes when composited reflections/masks are present
2050 https://bugs.webkit.org/show_bug.cgi?id=75883
2052 Reviewed by Kenneth Rohde Christiansen.
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.
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):
2076 2012-01-12 Kenneth Rohde Christiansen <kenneth@webkit.org>
2078 [Qt] Set the input method hints on the QtQuick item
2079 https://bugs.webkit.org/show_bug.cgi?id=76169
2081 Reviewed by Simon Hausmann.
2083 Set the input method hints given the HTMLElement type and state.
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):
2095 2012-01-12 Eunmi Lee <eunmi15.lee@samsung.com>
2097 [EFL][WK2] Update and show ewk_view with updated webpage.
2098 https://bugs.webkit.org/show_bug.cgi?id=76023
2100 Reviewed by Andreas Kling.
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.
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:
2115 (ewk_view_image_data_set):
2116 * UIProcess/cairo/BackingStoreCairo.cpp:
2117 (WebKit::BackingStore::incorporateUpdate):
2119 2012-01-12 Ryuan Choi <ryuan.choi@samsung.com>
2121 [EFL][WK2] Network is not available when SOUP is enabled.
2122 https://bugs.webkit.org/show_bug.cgi?id=76112
2124 Reviewed by Andreas Kling.
2126 ecore_main_loop_glib_integrate should be called to use glib based library
2129 * WebProcess/efl/WebProcessMainEfl.cpp:
2130 (WebKit::WebProcessMainEfl):
2132 2012-01-12 Ryuan Choi <ryuan.choi@samsung.com>
2134 [EFL][WK2] Add PLATFORM(EFL) in SharedMemory.h, WebProcessStore.h, WebEditorClient.cpp
2135 https://bugs.webkit.org/show_bug.cgi?id=76115
2137 Reviewed by Andreas Kling.
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()
2144 * Platform/SharedMemory.h:
2145 * Shared/WebPreferencesStore.h:
2146 * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2148 2012-01-11 Carlos Garcia Campos <cgarcia@igalia.com>
2150 [GTK] Web process should use the same locale than UI process
2151 https://bugs.webkit.org/show_bug.cgi?id=76054
2153 Reviewed by Gustavo Noronha Silva.
2155 * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
2156 (WebKit::childSetupFunction): Make child process use the same
2157 locale than its parent.
2159 2012-01-11 Ryuan Choi <ryuan.choi@samsung.com>
2161 [WK2] Share cairo specific codes with EFL port.
2162 https://bugs.webkit.org/show_bug.cgi?id=75457
2164 Reviewed by Brent Fulgham.
2166 Change PLATFORM(GTK) to USE(CAIRO) in WebGraphicsContext{h,cpp} to share
2169 * Shared/WebGraphicsContext.cpp:
2170 (WebKit::WebGraphicsContext::WebGraphicsContext):
2171 * Shared/WebGraphicsContext.h:
2173 2012-01-11 Beth Dakin <bdakin@apple.com>
2175 https://bugs.webkit.org/show_bug.cgi?id=75904
2176 WebKit 1: Scrollbar uiStateTransitionProgress requires tracking the mouse all
2179 <rdar://problem/10498816>
2181 Reviewed by Darin Adler.
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):
2189 2012-01-11 Brent Fulgham <bfulgham@webkit.org>
2191 WinCairo build correction.
2193 * UIProcess/WebPageProxy.h: Don't define viewWidget for WinCairo port.
2195 2012-01-11 Anders Carlsson <andersca@apple.com>
2197 Webpages flash white when switching between windows
2198 https://bugs.webkit.org/show_bug.cgi?id=76080
2199 <rdar://problem/9893565>
2201 Reviewed by Dan Bernstein.
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.
2208 (-[WKView viewDidMoveToWindow]):
2209 Set _windowHasValidBackingStore to false.
2211 (-[WKView _windowDidMiniaturize:]):
2212 Set _windowHasValidBackingStore to false.
2214 (-[WKView _windowDidChangeBackingProperties:]):
2215 Set _windowHasValidBackingStore to false.
2217 (-[WKView drawRect:]):
2218 Only call drawPageBackground if _windowHasValidBackingStore is false. Set it to true after painting.
2220 2012-01-11 Anders Carlsson <andersca@apple.com>
2222 Fix the Mac GCC build.
2224 Work around the fact that GCC doesn't work very well with Blocks and C++ objets.
2226 * UIProcess/mac/WebProcessProxyMac.mm:
2227 (WebKit::dispatchFunctionOnQueue):
2228 (WebKit::WebProcessProxy::secItemRequest):
2229 (WebKit::WebProcessProxy::secKeychainItemRequest):
2231 2012-01-11 No'am Rosenthal <noam.rosenthal@nokia.com>
2233 [Qt][WK2] Directly-composited images sometimes appear with a wrong geometry
2234 https://bugs.webkit.org/show_bug.cgi?id=75882
2236 Reviewed by Simon Hausmann.
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
2245 * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2246 (WebKit::LayerTreeHostProxy::syncLayerParameters):
2247 * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
2248 (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
2250 2012-01-11 Kenneth Rohde Christiansen <kenneth@webkit.org>
2252 [Qt] Add the editor rect to the EditorState
2253 https://bugs.webkit.org/show_bug.cgi?id=76053
2255 Reviewed by Simon Hausmann.
2257 Also rename some members to match the new Qt naming scheme.
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):
2270 2012-01-11 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
2272 [GTK] Linking of big binaries should be serialized to avoid thrashing
2273 https://bugs.webkit.org/show_bug.cgi?id=75977
2275 Reviewed by Martin Robinson.
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.
2285 2012-01-11 Ryuan Choi <ryuan.choi@samsung.com>
2287 [EFL][WK2] Rename viewObject to viewWidget
2288 https://bugs.webkit.org/show_bug.cgi?id=75947
2290 Reviewed by Martin Robinson.
2292 Rename viewObject to viewWidget for the EFL port to use WidgetBackingStore
2293 which calls viewWidget().
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):
2306 2012-01-10 Mark Rowe <mrowe@apple.com>
2308 REGRESSION (r104377): All pages print blank on Snow Leopard
2309 <http://webkit.org/b/75879> / <rdar://problem/10674335>
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.
2316 Reviewed by Dan Bernstein.
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.
2325 2012-01-10 Chris Marrin <cmarrin@apple.com>
2327 Wrapped allowedCompositingTriggers in ACCELERATED_COMPOSITING ifdef to make non-accelerated builds work
2331 * WebProcess/WebCoreSupport/WebChromeClient.h:
2333 2012-01-10 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
2335 [Qt][WK2]REGRESSION(r102435): It made tst_QQuickWebView::show() crash
2336 https://bugs.webkit.org/show_bug.cgi?id=74176
2338 Reviewed by Noam Rosenthal.
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.
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):
2351 2012-01-10 Ryosuke Niwa <rniwa@webkit.org>
2353 Snow Leopard build fix.
2355 * UIProcess/API/mac/PageClientImpl.h:
2356 * UIProcess/API/mac/PageClientImpl.mm:
2358 2012-01-10 Anders Carlsson <andersca@apple.com>
2360 Hang opening movie that requires authentication
2361 https://bugs.webkit.org/show_bug.cgi?id=75989
2363 Reviewed by Sam Weinig.
2365 Change the way the keychain calls are processed to avoid deadlocks:
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.
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.
2388 * Shared/mac/SecItemResponseData.h:
2389 (WebKit::SecItemResponseData::resultObject):
2390 Make this return a reference so we can call leakRef() on it.
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.
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.
2407 * UIProcess/WebProcessProxy.cpp:
2408 (WebKit::WebProcessProxy::disconnect):
2409 Remove the WebProcessProxy object from the list of connection queue clients.
2411 (WebKit::WebProcessProxy::didReceiveMessageOnConnectionWorkQueue):
2412 Call didReceiveWebProcessProxyMessageOnConnectionWorkQueue.
2414 (WebKit::WebProcessProxy::didFinishLaunching):
2415 Add the WebProcessProxy as a queue client and open the connection.
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.
2421 * UIProcess/WebProcessProxy.messages.in:
2422 Replace individual keychain messages with SecItemRequest and SecKeychainItemRequest messages.
2424 * UIProcess/mac/WebProcessProxyMac.mm:
2425 (WebKit::handleSecItemRequest):
2426 Call the right SecItem function depending on the request type and send back the result.
2428 (WebKit::WebProcessProxy::secItemRequest):
2429 Dispatch handleSecItemRequest on a global dispatch queue.
2431 (WebKit::handleSecKeychainItemRequest):
2432 Call the right SecKeychainItem function depending on the request type and send back the result.
2434 (WebKit::WebProcessProxy::secKeychainItemRequest):
2435 Dispatch handleSecKeychainItemRequest on a global dispatch queue.
2437 * WebKit2.xcodeproj/project.pbxproj:
2438 Update for added/removed files.
2440 * WebProcess/WebProcess.h:
2441 Add secItemResponse and secKeychainItemResponse message handlers.
2443 * WebProcess/WebProcess.messages.in:
2444 Add SecItemResponse and SecKeychainItemResponse messages.
2446 * WebProcess/mac/CoreIPCClientRunLoop.h:
2447 * WebProcess/mac/CoreIPCClientRunLoop.mm:
2448 This is no longer needed.
2450 * WebProcess/mac/KeychainItemShimMethods.h:
2451 * WebProcess/mac/KeychainItemShimMethods.mm:
2452 (WebKit::managedAttributeLists):
2453 Make this an atomically initialized static.
2455 (WebKit::managedAttributeListsMutex):
2456 Add an atomically initialized mutex.
2458 (WebKit::allocateAttributeListContents):
2459 Use the managedAttributeListsMutex to make this function callable from any thread.
2461 (WebKit::managedKeychainItemContents):
2462 Make this an atomically initialized static.
2464 (WebKit::managedKeychainItemContentsMutex):
2465 Add an atomically initialized mutex.
2467 (WebKit::allocateKeychainItemContentData):
2468 Use the managedAttributeListsMutex to make this function callable from any thread.
2470 (WebKit::webFreeAttributeListContent):
2471 Use locking so this can be called from any thread.
2473 (WebKit::webFreeKeychainItemContent):
2476 (WebKit::responseMap):
2477 Add responseMap thread-safe singleton for holding incoming responses.
2479 (WebKit::generateSecKeychainItemRequestID):
2480 Return a unique item request id, using OSAtomicIncrement64Barrier for atomicity.
2482 (WebKit::didReceiveSecKeychainItemResponse):
2483 Pass the response over the response map.
2485 (WebKit::sendSeqKeychainItemRequest):
2486 Send a request message and wait for a response using ResponseMap::waitForResponse.
2488 (WebKit::webSecKeychainItemCopyContent):
2489 Send a request using sendSeqKeychainItemRequest.
2491 (WebKit::webSecKeychainItemCreateFromContent):
2494 (WebKit::webSecKeychainItemModifyContent):
2497 * WebProcess/mac/KeychainShimResponseMap.h:
2498 New thread-safe helper class that stores a map of responses and lets client wait for a response
2501 (KeychainShimResponseMap::waitForResponse):
2502 Wait until the response is available in the hash map, then return it.
2504 (KeychainShimResponseMap::didReceiveResponse):
2505 Add the response to the hash map and signal the condition variable.
2507 * WebProcess/mac/SecItemShimMethods.h:
2508 * WebProcess/mac/SecItemShimMethods.mm:
2509 (WebKit::responseMap):
2510 Add responseMap thread-safe singleton for holding incoming responses.
2512 (WebKit::generateSecItemRequestID):
2513 Return a unique item request id, using OSAtomicIncrement64Barrier for atomicity.
2515 (WebKit::didReceiveSecItemResponse):
2516 Pass the response over the response map.
2518 (WebKit::sendSeqItemRequest):
2519 Send a request message and wait for a response using ResponseMap::waitForResponse.
2521 (WebKit::webSecItemCopyMatching):
2522 Send a request using sendSeqItemRequest.
2524 (WebKit::webSecItemAdd):
2527 (WebKit::webSecItemUpdate):
2530 (WebKit::webSecItemDelete):
2533 * WebProcess/mac/WebProcessMac.mm:
2534 (WebKit::WebProcess::secItemResponse):
2535 Call didReceiveSecItemResponse.
2537 (WebKit::WebProcess::secKeychainItemResponse):
2538 Call didReceiveSecKeychainItemResponse.
2540 2012-01-10 Anders Carlsson <andersca@apple.com>
2542 DispatchOnConnectionQueue messages should have a Connection parameter
2543 https://bugs.webkit.org/show_bug.cgi?id=75986
2545 Reviewed by Adam Roben.
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.
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:
2565 2012-01-10 Chris Marrin <cmarrin@apple.com>
2567 Turn off the FilterTrigger in WebKit and WebKit2
2568 https://bugs.webkit.org/show_bug.cgi?id=75914
2570 Reviewed by Simon Fraser.
2572 Implement allowedCompositingTriggers to turn on all compositing triggers except FilterTrigger.
2574 * WebProcess/WebCoreSupport/WebChromeClient.h:
2575 (WebKit::WebChromeClient::allowedCompositingTriggers):
2577 2012-01-10 Kenneth Rohde Christiansen <kenneth@webkit.org>
2579 Unreviewed potential Mac WK2 build fix.
2581 * UIProcess/PageClient.h: forward declare WebGestureEvent.
2583 2012-01-10 Csaba Osztrogonác <ossy@webkit.org>
2585 Unreviewed, rolling out an accidental commit r104569.
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):
2598 2012-01-10 Kenneth Rohde Christiansen <kenneth@webkit.org>
2600 Unreviewed potential Mac WK2 build fix.
2602 * UIProcess/API/mac/PageClientImpl.h:
2603 * UIProcess/API/mac/PageClientImpl.mm:
2604 (WebKit::PageClientImpl::doneWithGestureEvent):
2606 2012-01-10 Rafael Brandao <rafael.lobo@openbossa.org>
2608 [Qt][WK2] Add font-related API tests for QWebPreferences
2609 https://bugs.webkit.org/show_bug.cgi?id=75739
2611 Reviewed by Zoltan Herczeg.
2613 * UIProcess/API/qt/tests/qmltests/WebView/tst_preferences.qml:
2614 * UIProcess/API/qt/tests/qmltests/common/font-preferences.html: Added.
2616 2012-01-10 Simon Hausmann <simon.hausmann@nokia.com>
2618 [Qt] Fix failing WK2 layout tests after r104557
2620 Reviewed by Kenneth Rohde Christiansen.
2622 * UIProcess/WebPageProxy.cpp:
2623 (WebKit::WebPageProxy::didReceiveEvent): Add missing break to not
2624 handle mouseDown as gesture event.
2626 2012-01-10 Kenneth Rohde Christiansen <kenneth@webkit.org>
2628 Unreviewed buildfix.
2630 * UIProcess/WebPageProxy.h:
2632 2012-01-10 Kenneth Rohde Christiansen <kenneth@webkit.org>
2634 Implement the input panel request/close handling
2636 Reviewed by Simon Hausmann.
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.
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.
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.
2651 * UIProcess/PageClient.h:
2652 * UIProcess/WebPageProxy.cpp:
2653 (WebKit::WebPageProxy::handleGestureEvent):
2654 (WebKit::WebPageProxy::editorStateChanged):
2655 (WebKit::WebPageProxy::didReceiveEvent):
2657 Add a new doneWithGestureEvent method to the PageClient
2658 as well as add a updateTextInputState similar to that of mac.
2660 * UIProcess/WebPageProxy.h:
2661 * UIProcess/qt/QtPageClient.cpp:
2662 (QtPageClient::updateTextInputState):
2663 (QtPageClient::doneWithGestureEvent):
2665 Propagate the new events to the Qt EventHandler.
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):
2676 Handle postponing of the input method visibility change
2677 and the actual showing/hiding.
2679 2012-01-10 Eunmi Lee <eunmi15.lee@samsung.com>
2681 [EFL][WK2] Remove codes to move and resize the clip.
2682 https://bugs.webkit.org/show_bug.cgi?id=75428
2684 Reviewed by Andreas Kling.
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
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.
2693 * UIProcess/API/efl/ewk_view.cpp:
2694 (_ewk_view_smart_calculate):
2696 2012-01-09 Andras Becsi <andras.becsi@nokia.com>
2698 [Qt][WK2] Pinch zoom should affect the page size
2699 https://bugs.webkit.org/show_bug.cgi?id=74601
2701 Reviewed by Kenneth Rohde Christiansen.
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.
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:
2825 2012-01-09 Eunmi Lee <eunmi15.lee@samsung.com>
2827 [EFL][WK2] Set color_set function to the clipped smart class.
2828 https://bugs.webkit.org/show_bug.cgi?id=75286
2830 Reviewed by Andreas Kling.
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.
2835 * UIProcess/API/efl/ewk_view.cpp:
2836 (_ewk_view_smart_color_set):
2837 (ewk_view_smart_class_init):
2839 2012-01-08 Dan Bernstein <mitz@apple.com>
2841 REGRESSION (r103859): WKViews leak
2842 https://bugs.webkit.org/show_bug.cgi?id=75805
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.
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.
2853 2012-01-06 Mark Rowe <mrowe@apple.com>
2855 REGRESSION (WebKit2): Save as PDF no longer generates links to URLs
2856 <http://webkit.org/b/65076> / <rdar://problem/9606246>
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.
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.
2868 Reviewed by Alexey Proskuryakov.
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
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.
2881 2012-01-06 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
2883 [Qt] [WK2] Minibrowser leaks memory ~6-7Mb per reload
2884 https://bugs.webkit.org/show_bug.cgi?id=75746
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.
2890 Reviewed by Noam Rosenthal.
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):
2899 2012-01-06 Alexey Proskuryakov <ap@apple.com>
2901 [Mac] Thread verifier assertions when printing
2902 https://bugs.webkit.org/show_bug.cgi?id=75738
2904 Reviewed by Sam Weinig.
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
2914 2012-01-06 Alexey Proskuryakov <ap@apple.com>
2916 Need to allow SCNetworkReachability service in sandbox profile
2917 https://bugs.webkit.org/show_bug.cgi?id=75724
2918 <rdar://problem/10652415>
2920 Reviewed by Mark Rowe.
2922 * WebProcess/com.apple.WebProcess.sb:
2924 2012-01-06 Benjamin Poulain <bpoulain@apple.com>
2926 [Mac] Sort the resources of WebKit2.xcodeproj
2927 https://bugs.webkit.org/show_bug.cgi?id=75636
2929 Reviewed by Andreas Kling.
2931 * WebKit2.xcodeproj/project.pbxproj:
2933 2012-01-06 Rafael Brandao <rafael.lobo@openbossa.org>
2935 [Qt][WK2] QQuickWebView breaks when an empty url is loaded
2936 https://bugs.webkit.org/show_bug.cgi?id=75445
2938 Reviewed by Tor Arne Vestbø.
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:
2946 2012-01-06 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
2948 [Qt] Move listing of include paths and libs to pri files in sources
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.
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().
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.
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.
2968 Reviewed by Simon Hausmann.
2972 * WebKit2.pri: Renamed from Tools/qmake/mkspecs/features/webkit2.prf.
2974 2012-01-06 Zeno Albisser <zeno@webkit.org>
2976 [Qt][WK2] Add test for application URL schemes.
2977 https://bugs.webkit.org/show_bug.cgi?id=74933
2979 Reviewed by Kenneth Rohde Christiansen.
2981 * UIProcess/API/qt/tests/qmltests/WebView/tst_applicationScheme.qml: Added.
2982 * UIProcess/API/qt/tests/qmltests/qmltests.pro:
2984 2012-01-05 Dan Bernstein <mitz@apple.com>
2986 <rdar://problem/10633760> Update copyright strings
2988 Reviewed by Mark Rowe.
2991 * PluginProcess/Info.plist:
2992 * WebProcess/Info.plist:
2994 2012-01-05 Anders Carlsson <andersca@apple.com>
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>
3000 Reviewed by Kevin Decker.
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.
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).
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.
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.
3017 * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
3018 (WebKit::NPRuntimeObjectMap::invalidate):
3020 2012-01-05 Alexey Proskuryakov <ap@apple.com>
3022 REGRESSION (r98912-r99538): Crash in WebKit::WebFrameLoaderClient::didDetectXSS
3023 https://bugs.webkit.org/show_bug.cgi?id=75578
3025 Reviewed by Daniel Bates.
3027 * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
3028 (WebKit::InjectedBundlePageLoaderClient::didDetectXSSForFrame):
3029 Check for a correct struct member existence.
3031 2012-01-05 Alexey Proskuryakov <ap@apple.com>
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>
3037 Reviewed by Dan Bernstein.
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
3043 2012-01-05 Zeno Albisser <zeno@webkit.org>
3045 [Qt][WK2] Implement custom URL schemes defined in QML.
3046 https://bugs.webkit.org/show_bug.cgi?id=74931
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
3053 The request is then handled in QML/JS and a reply
3054 is sent back from the UIProcess to the WebProcess.
3056 Reviewed by Kenneth Rohde Christiansen.
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.
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):
3153 2012-01-05 Fady Samuel <fsamuel@chromium.org>
3155 Move scalePageBy from eventSender to window.internals
3156 https://bugs.webkit.org/show_bug.cgi?id=64512
3158 Reviewed by Simon Fraser.
3161 * win/WebKit2CFLite.def:
3163 2012-01-05 Alexander Færøy <alexander.faeroy@nokia.com>
3165 Pass WebFrame instead of WebCore::Frame to the WebKit2 specific FrameNetworkingContext
3166 https://bugs.webkit.org/show_bug.cgi?id=75550
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.
3172 As the WebFrameNetworkingContext is partly shared across all WebKit2 ports,
3173 all port specific files have been modified.
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.
3180 Based on original patch by Peter Hartmann.
3182 Reviewed by Kenneth Rohde Christiansen.
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):
3204 2012-01-05 Kenneth Rohde Christiansen <kenneth@webkit.org>
3206 [Qt] Implement QQuickWebView::inputMethodQuery
3208 Reviewed by Simon Hausmann.
3210 Implement the current Qt5 queries of inputMethodQuery.
3212 * UIProcess/API/qt/qquickwebview.cpp:
3213 (QQuickWebView::inputMethodQuery):
3214 * UIProcess/API/qt/qquickwebview_p.h:
3216 2012-01-05 Carlos Garcia Campos <cgarcia@igalia.com>
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
3221 Reviewed by Gustavo Noronha Silva.
3223 It uses the page zoom factor unconditionally for now.
3225 * UIProcess/API/gtk/WebKitWebView.cpp:
3226 (webkitWebViewSetProperty):
3227 (webkitWebViewGetProperty):
3228 (webkit_web_view_class_init): Add WebKitWebView:zoom-level
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):
3238 2012-01-05 Carlos Garcia Campos <cgarcia@igalia.com>
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
3243 Reviewed by Martin Robinson.
3245 * UIProcess/API/gtk/WebKitWebView.cpp:
3246 (webkitWebViewLoadFail): Use webkit_web_view_replace_content().
3247 (webkitWebViewLoadChanged): Do not emit load-changed signal when
3249 (webkitWebViewLoadFailed): Do not emit load-failed signal when
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:
3258 * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
3259 (replaceContentTitleChangedCallback):
3260 (replaceContentLoadCallback):
3261 (testWebViewReplaceContent):
3263 * UIProcess/API/gtk/tests/WebViewTest.cpp:
3264 (WebViewTest::replaceContent):
3265 * UIProcess/API/gtk/tests/WebViewTest.h:
3267 2012-01-05 Keunsoon Lee <keunsoon.lee@samsung.com>
3269 [WK2][EFL] creating dummy functions for Download class on Efl port.
3270 https://bugs.webkit.org/show_bug.cgi?id=75246
3272 dummy functions for Download class on Efl port
3274 Reviewed by Hajime Morita.
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):
3292 2012-01-04 Dan Bernstein <mitz@apple.com>
3294 Allow WebProcess to launch a client process and become its first WebProcess.
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
3298 Reviewed by Anders Carlsson.
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
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
3320 2012-01-04 Alexey Proskuryakov <ap@apple.com>
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>
3326 Reviewed by Dan Bernstein.
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.
3335 2012-01-04 Alexander Færøy <alexander.faeroy@nokia.com>
3337 [Qt] Fix test regressions after r104025
3338 https://bugs.webkit.org/show_bug.cgi?id=75545
3340 Reviewed by Kenneth Rohde Christiansen.
3342 * WebProcess/WebPage/WebPage.cpp:
3343 (WebKit::WebPage::editorState):
3345 2012-01-04 Andras Becsi <andras.becsi@nokia.com>
3347 REGRESSION(r104028): Broke editing tests and event coordinates in desktop behaviour
3348 https://bugs.webkit.org/show_bug.cgi?id=75542
3351 [Qt][WK2] Pinch zoom should affect the page size
3352 https://bugs.webkit.org/show_bug.cgi?id=74601
3354 Unreviewed roll-out.
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:
3453 2012-01-04 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
3455 [Qt] Introduce new qmake variable 'WEBKIT' for signaling dependencies
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.
3462 This replaces the previous convension of using load(foo) for
3463 just include paths, and CONFIG += foo to also link against foo.
3465 Adding a dependency results in additional include paths being
3466 available, and potentially linking to the library. This is