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