WebKit2 build emits a warning about not stripping code-signed PluginProcess.app when...
[WebKit-https.git] / Source / WebKit2 / ChangeLog
1 2012-02-13  Dan Bernstein  <mitz@apple.com>
2
3         WebKit2 build emits a warning about not stripping code-signed PluginProcess.app when copying it into the framework
4         https://bugs.webkit.org/show_bug.cgi?id=78451
5
6         Reviewed by Sam Weinig.
7
8         * Configurations/Base.xcconfig: Set COPY_PHASE_STRIP to NO.
9
10 2012-02-13  Sam Weinig  <sam@webkit.org>
11
12         Windows build fix.
13
14         * UIProcess/win/WebPopupMenuProxyWin.cpp:
15         (WebKit::WebPopupMenuProxyWin::scrollToRevealSelection):
16
17 2012-02-13  Zalan Bujtas  <zbujtas@gmail.com>
18
19         Manage ShareableBitmap object lifecycle properly, when QImage is created
20         using the shared data.
21         https://bugs.webkit.org/show_bug.cgi?id=77546
22
23         Reviewed by Simon Hausmann.
24
25         * Shared/ShareableBitmap.h:
26         (ShareableBitmap):
27         * Shared/qt/ShareableBitmapQt.cpp:
28         (WebKit::ShareableBitmap::createQImage):
29         (WebKit):
30         (WebKit::ShareableBitmap::releaseSharedMemoryData):
31
32 2012-02-06  Raphael Kubo da Costa  <kubo@profusion.mobi>
33
34         [EFL] Drop support for the Curl network backend.
35         https://bugs.webkit.org/show_bug.cgi?id=77874
36
37         Reviewed by Eric Seidel.
38
39         Nobody seems to be maintaining the Curl backend in WebCore, the
40         EFL port developers all seem to be using the Soup backend and the
41         port itself has many features which are only implemented for the
42         latter.
43
44         * PlatformEfl.cmake: Unconditionally build the glib/soup source
45         files and unconditionally add the required include directories and
46         libraries.
47         * WebProcess/efl/WebProcessMainEfl.cpp:
48         (WebKit::WebProcessMainEfl): Remove USE(SOUP) check.
49
50 2012-02-11  Sheriff Bot  <webkit.review.bot@gmail.com>
51
52         Unreviewed, rolling out r107435.
53         http://trac.webkit.org/changeset/107435
54         https://bugs.webkit.org/show_bug.cgi?id=78410
55
56         It broke the Qt build (Requested by Ossy on #webkit).
57
58         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
59         * WebProcess/WebCoreSupport/WebPlatformStrategies.h:
60         (WebPlatformStrategies):
61
62 2012-02-10  Brian Weinstein  <bweinstein@apple.com>
63
64         Web Inspector: Add the ability to jump to the source for a given frame
65         https://bugs.webkit.org/show_bug.cgi?id=78396
66         
67         Add WebKit2 API for the ability to show the source of a frame in the web inspector. This calls down
68         from the WK API all the way to InspectorFrontendClientLocal::showMainResourceForFrame.
69
70         Reviewed by Tim Hatcher.
71
72         * UIProcess/API/C/WKInspector.cpp:
73         (WKInspectorShowMainResourceForFrame): Call WebInspectorProxy::showMainResourceForFrame.
74         * UIProcess/API/C/WKInspector.h:
75
76         * UIProcess/WebInspectorProxy.cpp:
77         (WebKit::WebInspectorProxy::showMainResourceForFrame): Send a message to the web process, passing
78             the frame ID of the frame we want to show the main resource of.
79         * UIProcess/WebInspectorProxy.h:
80
81         * WebProcess/WebPage/WebInspector.cpp:
82         (WebKit::WebInspector::showMainResourceForFrame): Get the WebFrame for the frame we want to show the
83             main resource of from its ID. If we found a frame, call InspectorFrontendClientLocal::showMainResourceForFrame.
84         * WebProcess/WebPage/WebInspector.h:
85         
86         * WebProcess/WebPage/WebInspector.messages.in: Add a new message.
87
88 2012-02-10  Adam Klein  <adamk@chromium.org>
89
90         Enable MUTATION_OBSERVERS by default on all platforms
91         https://bugs.webkit.org/show_bug.cgi?id=78196
92
93         Reviewed by Ojan Vafai.
94
95         * Configurations/FeatureDefines.xcconfig:
96
97 2012-02-10  Enrica Casucci  <enrica@apple.com>
98
99         Refactor Mac platform implementation of the Pasteboard class to use Platform Strategies.
100         https://bugs.webkit.org/show_bug.cgi?id=78282
101
102         This patch removes any accesss to the NSPasteboard object from the Pasteboard class which
103         now makes use of a new pasteboardStrategy object that is implemented both in WebKit and
104         WebKit2. The actual access to NSPasteboard is now performed inside the PlatformPasteboard
105         class. Currently both WebKit and WebKit2 use the same implementation of the PasteboardStrategy
106         interface but this one more step in the direction of removing access to NSPasteboard from
107         the WebProcess.
108         As part of the refactoring the I've reduced to a minimum the use of OBJ-C classes.
109         
110         Reviewed by Anders Carlsson.
111
112         * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: Added implementation of PasteboardStrategy
113         interface.
114         (WebKit::WebPlatformStrategies::createPasteboardStrategy):
115         (WebKit::WebPlatformStrategies::getTypes):
116         (WebKit::WebPlatformStrategies::bufferForType):
117         (WebKit::WebPlatformStrategies::getPathnamesForType):
118         (WebKit::WebPlatformStrategies::stringForType):
119         (WebKit::WebPlatformStrategies::copy):
120         (WebKit::WebPlatformStrategies::setTypes):
121         (WebKit::WebPlatformStrategies::setBufferForType):
122         (WebKit::WebPlatformStrategies::setPathnamesForType):
123         (WebKit::WebPlatformStrategies::setStringForType):
124         * WebProcess/WebCoreSupport/WebPlatformStrategies.h: Added PasteboardStrategy.
125
126 2012-02-09  Timothy Hatcher  <timothy@apple.com>
127
128         Prevent attaching when inspecting the Web Inspector.
129
130         Also adds some comments about keeping in sync with InspectorFrontendClientLocal::canAttachWindow
131         and why there are two implementations of the same function.
132
133         https://webkit.org/b/78304
134
135         Reviewed by Brian Weinstein.
136
137         * UIProcess/WebInspectorProxy.cpp:
138         (WebKit::WebInspectorProxy::canAttach): Prevent attaching when the page is an inspector page.
139         Added comments about InspectorFrontendClientLocal::canAttachWindow.
140         * UIProcess/WebInspectorProxy.h:
141         (WebInspectorProxy): Added comment about keeping in sync with InspectorFrontendClientLocal.
142
143 2012-02-09  Alexey Proskuryakov  <ap@apple.com>
144
145         Managed network proxy settings are not used in WebProcess
146         https://bugs.webkit.org/show_bug.cgi?id=78288
147         <rdar://problem/9962116>
148
149         Reviewed by Anders Carlsson.
150
151         * WebProcess/com.apple.WebProcess.sb: Allow reading managed preferences.
152
153 2012-02-09  Alexey Proskuryakov  <ap@apple.com>
154
155         ASSERTION FAILED: checkURLReceivedFromWebProcess(originalURL) loading a local file, if the WebProcess crashed
156         https://bugs.webkit.org/show_bug.cgi?id=70845
157         <rdar://problem/10269985>
158
159         Reviewed by Anders Carlsson.
160
161         This also fixes some case where WebProcess did not get a sandbox extension after a crash.
162
163         * UIProcess/WebPageProxy.cpp:
164         (WebKit::WebPageProxy::reattachToWebProcessWithItem): We no longer need to pass a sandbox
165         extension here, we're now passing it at b/f navigation bottleneck.
166         (WebKit::WebPageProxy::reload): Pass a sandbox extension - reload may mean reloading an error
167         page after a crash, so WebProcess may no longer have the extension.
168         (WebKit::WebPageProxy::goForward): We no longer need to pass a sandbox extension here,
169         we're now passing it at b/f navigation bottleneck. Also, fixed a bug where we first null checked
170         a WebBackForwardListItem pointer, and then used it anyway.
171         (WebKit::WebPageProxy::goBack): Ditto.
172         (WebKit::WebPageProxy::goToBackForwardItem): Ditto.
173         (WebKit::WebPageProxy::backForwardGoToItem): This is the bottleneck. We get here both for UI
174         actions like pressing the Back button, and for window.history.go() navigations. JS navigations
175         previously didn't open up the sandbox. URLs in UI process b/f list are trusted, so it's
176         always OK to grant a sandbox extension if one of them is a file: one.
177
178         * UIProcess/WebPageProxy.h: backForwardGoToItem() now returns a sandbox extension handle.
179
180         * UIProcess/WebPageProxy.messages.in: Ditto.
181
182         * UIProcess/WebProcessProxy.cpp:
183         (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess): If a URL is in UI process b/f
184         list, then it has been already vetted as something the Web process knows about. No need to
185         crash if it actually attempts going there.
186         (WebKit::WebProcessProxy::didReceiveInvalidMessage): Removed a useless comment (we have tons
187         of fprintfs besides this one). Fixed log message syntax.
188
189         * UIProcess/cf/WebPageProxyCF.cpp: (WebKit::WebPageProxy::restoreFromSessionStateData):
190         We no longer need to pass a sandbox extension here, we're now passing it at b/f navigation
191         bottleneck. 
192
193         * WebProcess/WebPage/WebBackForwardListProxy.cpp: (WebKit::WebBackForwardListProxy::goToItem):
194         We now get an extension here, when telling UI process that we're navigating to a b/f list item.
195
196         * WebProcess/WebPage/WebPage.cpp:
197         (WebKit::WebPage::reload): Use the extension we're getting.
198         (WebKit::WebPage::goForward): Don't use one we're not getting.
199         (WebKit::WebPage::goBack): Ditto.
200         (WebKit::WebPage::goToBackForwardItem): Ditto.
201         (WebKit::WebPage::restoreSessionAndNavigateToCurrentItem): Ditto.
202
203         * WebProcess/WebPage/WebPage.h: Adjusted signatures accordingly.
204
205         * WebProcess/WebPage/WebPage.messages.in: Ditto.
206
207 2012-02-09  Matthew Delaney  <mdelaney@apple.com>
208
209         HiDPI: WebKit2's drag images are blurry
210         https://bugs.webkit.org/show_bug.cgi?id=67779
211
212         Use the proper deviceScaleFactor() instead of accessing _intrinsicDeviceScaleFactor
213
214         Reviewed by Beth Dakin.
215
216         * UIProcess/API/mac/WKView.mm:
217         (-[WKView _setDragImage:at:linkDrag:]):
218
219 2012-02-09  Alexey Proskuryakov  <ap@apple.com>
220
221         [WK2] Allow reading some debug-only preference files
222         https://bugs.webkit.org/show_bug.cgi?id=78255
223         <rdar://problem/9382382>
224         <rdar://problem/10830558>
225
226         Reviewed by Dan Bernstein.
227
228         * WebProcess/com.apple.WebProcess.sb:
229
230 2012-02-09  Matthew Delaney  <mdelaney@apple.com>
231
232         HiDPI: WebKit2's link-dragging images are blurry
233         https://bugs.webkit.org/show_bug.cgi?id=67779
234
235         Reviewed by Beth Dakin.
236
237         Teach startDrag about the deviceScaleFactor so that it creates
238         an appropriately scaled bitmap image to ship over.
239         * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
240         (WebKit::WebDragClient::startDrag):
241         (WebKit::convertImageToBitmap):
242
243         Have setDragImage assume that it's receiving a bitmap image scaled
244         up by the deviceScaleFactor that it sees.
245         * UIProcess/API/mac/WKView.mm:
246         (-[WKView _setDragImage:at:linkDrag:]):
247
248 2012-02-09  Carlos Garcia Campos  <cgarcia@igalia.com>
249
250         [GTK] Add WebKitWebView::mouse-target-changed signal to WebKit2 GTK+ API
251         https://bugs.webkit.org/show_bug.cgi?id=78097
252
253         Reviewed by Martin Robinson.
254
255         * GNUmakefile.am: Add new files to compilation.
256         * UIProcess/API/gtk/WebKitHitTestResult.cpp: Added.
257         (webkitHitTestResultFinalize):
258         (webkitHitTestResultGetProperty):
259         (webkitHitTestResultSetProperty):
260         (webkit_hit_test_result_init):
261         (webkit_hit_test_result_class_init):
262         (webkitHitTestResultCreate): Create a new WebKitHitTestResult for
263         the given WKHitTestResult.
264         (stringIsEqualToCString): Helper function to compare String and
265         CString considering String::isEmpty() == CString.isNull().
266         (webkitHitTestResultCompare): Helper function to check whether a
267         WebKitHitTestResult contains the same information than the given
268         WKHitTestResult.
269         (webkit_hit_test_result_get_context):
270         (webkit_hit_test_result_context_is_link):
271         (webkit_hit_test_result_context_is_image):
272         (webkit_hit_test_result_context_is_media):
273         (webkit_hit_test_result_get_link_uri):
274         (webkit_hit_test_result_get_link_title):
275         (webkit_hit_test_result_get_link_label):
276         (webkit_hit_test_result_get_image_uri):
277         (webkit_hit_test_result_get_media_uri):
278         * UIProcess/API/gtk/WebKitHitTestResult.h: Added.
279         * UIProcess/API/gtk/WebKitHitTestResultPrivate.h:
280         * UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp:
281         (webkitNavigationPolicyDecisionCreate): Use
282         wkEventModifiersToGdkModifiers.
283         * UIProcess/API/gtk/WebKitPrivate.cpp:
284         (wkEventModifiersToGdkModifiers): Moved from
285         WebKitNavigationPolicyDecision and renamed to wkEventModifiersToGdkModifiers.
286         * UIProcess/API/gtk/WebKitPrivate.h:
287         * UIProcess/API/gtk/WebKitUIClient.cpp:
288         (mouseDidMoveOverElement): UI client callback that calls
289         webkitWebViewMouseTargetChanged().
290         (attachUIClientToView): Add implementation for callback
291         mouseDidMoveOverElement.
292         * UIProcess/API/gtk/WebKitWebView.cpp:
293         (webkit_web_view_class_init): Add
294         WebKitWebView::mouse-target-changed signal.
295         (webkitWebViewMouseTargetChanged): Emit
296         WebKitWebView::mouse-target-changed signal.
297         * UIProcess/API/gtk/WebKitWebView.h:
298         * UIProcess/API/gtk/WebKitWebViewPrivate.h:
299         * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add new section for
300         WebKitHitTestResult.
301         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
302         * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
303         (testWebViewMouseTarget):
304         (beforeAll):
305         * UIProcess/API/gtk/tests/WebViewTest.cpp:
306         (WebViewTest::WebViewTest):
307         (WebViewTest::~WebViewTest):
308         (parentWindowMapped):
309         (WebViewTest::showInWindowAndWaitUntilMapped): Method to add the
310         view into a popup window and show it running the main loop until
311         the window is mapped.
312         (WebViewTest::mouseMoveTo): Method to synthesize a
313         GDK_MOTION_EVENT on the given coordinates and using the given
314         modifiers.
315         * UIProcess/API/gtk/tests/WebViewTest.h:
316         * UIProcess/API/gtk/webkit2.h: Include WebKitHitTestResult.h.
317         * UIProcess/API/gtk/webkit2marshal.list:
318
319 2012-02-07  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
320
321         [Qt] Fetch the visible rect from LayerTreeHost instead of keeping a copy in each layer.
322         https://bugs.webkit.org/show_bug.cgi?id=78009
323
324         Reviewed by Noam Rosenthal.
325
326         Since WebGraphicsLayers are now accessed directly from LayerTreeHost, they don't
327         need to keep the visible rect to pass it down their child layers anymore.
328
329         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
330         (WebCore::WebGraphicsLayer::setContentsScale):
331         (WebCore::WebGraphicsLayer::tiledBackingStoreVisibleRect):
332         (WebCore::WebGraphicsLayer::adjustVisibleRect):
333         (WebCore):
334         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
335         (WebGraphicsLayerClient):
336         (WebGraphicsLayer):
337         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
338         (WebKit::LayerTreeHostQt::registerLayer):
339         (WebKit::LayerTreeHostQt::visibleContentsRect):
340         (WebKit):
341         (WebKit::LayerTreeHostQt::setVisibleContentRectAndScale):
342         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
343         (LayerTreeHostQt):
344
345 2012-02-09  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
346
347         [Qt] Control the lifetime of TiledBackingStores in WebGraphicsLayer.
348         https://bugs.webkit.org/show_bug.cgi?id=78005
349
350         Reviewed by Noam Rosenthal.
351
352         This makes sure that no empty tiles are generated for layers without contents and that
353         no interaction is made with the TiledBackingStore until we got a WebGraphicsLayerClient.
354
355         - Create the main TiledBackingStore only when the layer has drawsContent and has no
356           directly composited image
357         - Removed recreateBackingStoreIfNeeded and do the (re)creation of the backing stores
358           in updateContentBuffers
359         - Call purgeBackingStores on registered layers instead of passing it down the layer tree
360
361         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
362         (WebCore::WebGraphicsLayer::WebGraphicsLayer):
363         (WebCore::WebGraphicsLayer::~WebGraphicsLayer):
364         (WebCore::WebGraphicsLayer::setDrawsContent):
365         (WebCore::WebGraphicsLayer::setNeedsDisplayInRect):
366         (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
367         (WebCore::WebGraphicsLayer::setVisibleContentRectTrajectoryVector):
368         (WebCore::WebGraphicsLayer::tiledBackingStoreContentsRect):
369         (WebCore::WebGraphicsLayer::updateContentBuffers):
370         (WebCore::WebGraphicsLayer::purgeBackingStores):
371         (WebCore::WebGraphicsLayer::setWebGraphicsLayerClient):
372         (WebCore::WebGraphicsLayer::computeTransformedVisibleRect):
373         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
374         (WebGraphicsLayer):
375         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
376         (WebKit::LayerTreeHostQt::LayerTreeHostQt):
377         (WebKit::LayerTreeHostQt::flushPendingLayerChanges):
378         (WebKit):
379         (WebKit::LayerTreeHostQt::purgeBackingStores):
380         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
381         (LayerTreeHostQt):
382
383 2012-02-08  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
384
385         [Qt] Remove WebGraphicsLayer::updateTileBuffersRecursively
386         https://bugs.webkit.org/show_bug.cgi?id=78105
387
388         Reviewed by Kenneth Rohde Christiansen.
389
390         The method is unused.
391
392         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
393         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
394         (WebGraphicsLayer):
395
396 2012-02-08  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
397
398         [Qt] Register individual WebGraphicsLayers to LayerTreeHost instead of handling the tree as a whole.
399         https://bugs.webkit.org/show_bug.cgi?id=77976
400
401         Reviewed by Kenneth Rohde Christiansen.
402
403         The LayerTreeHost association had to be maintained between re-parented layers and it would be
404         impossible to know if the layer would be disconnected from the LayerTreeHost only for reparenting
405         or disconnected for good (in other words, that the LayerTreeHost could be deleted meanwhile).
406
407         Instead, this patch assumes that graphics layers will only be in contact with one instance of
408         LayerTreeHost, and that this association can be kept until either the graphics layer or the layer
409         tree host gets deleted.
410
411         The registered layers are kept in a set and the visible rect and scales are passed directly
412         to layers instead of down the tree, through the root layer.
413
414         This also fixes the !m_layerInfo.imageBackingStoreID ASSERT that was popping in unit tests.
415
416         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
417         (WebCore::WebGraphicsLayer::WebGraphicsLayer):
418         (WebCore::WebGraphicsLayer::~WebGraphicsLayer):
419         (WebCore::WebGraphicsLayer::setChildren):
420         (WebCore::WebGraphicsLayer::addChild):
421         (WebCore::WebGraphicsLayer::addChildAtIndex):
422         (WebCore::WebGraphicsLayer::addChildAbove):
423         (WebCore::WebGraphicsLayer::addChildBelow):
424         (WebCore::WebGraphicsLayer::replaceChild):
425         (WebCore::WebGraphicsLayer::removeFromParent):
426         (WebCore::WebGraphicsLayer::setContentsToImage):
427         (WebCore::WebGraphicsLayer::setMaskLayer):
428         (WebCore::WebGraphicsLayer::setReplicatedByLayer):
429         (WebCore::WebGraphicsLayer::syncCompositingStateForThisLayerOnly):
430         (WebCore::WebGraphicsLayer::setVisibleContentRectAndScale):
431         (WebCore::WebGraphicsLayer::tiledBackingStoreUpdatesAllowed):
432         (WebCore::WebGraphicsLayer::createTile):
433         (WebCore::WebGraphicsLayer::updateTile):
434         (WebCore::WebGraphicsLayer::removeTile):
435         (WebCore::WebGraphicsLayer::updateContentBuffers):
436         (WebCore::WebGraphicsLayer::purgeBackingStores):
437         (WebCore::WebGraphicsLayer::setWebGraphicsLayerClient):
438         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
439         (WebCore):
440         (WebGraphicsLayerClient):
441         (WebGraphicsLayer):
442         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
443         (WebKit::LayerTreeHostQt::~LayerTreeHostQt):
444         (WebKit::LayerTreeHostQt::LayerTreeHostQt):
445         (WebKit::LayerTreeHostQt::attachLayer):
446         (WebKit):
447         (WebKit::LayerTreeHostQt::detachLayer):
448         (WebKit::LayerTreeHostQt::setVisibleContentRectAndScale):
449         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
450         (LayerTreeHostQt):
451
452 2012-02-07  Andras Becsi  <andras.becsi@nokia.com>
453
454         [Qt][WK2] WebView should use Flickable instead of QScroller to handle positioning
455         https://bugs.webkit.org/show_bug.cgi?id=76275
456
457         Reviewed by Simon Hausmann and Kenneth Rohde Christiansen.
458
459         The current WebView implementation uses QScroller to manage positioning but other
460         similar items in QML (ie. ListView, GridView) use Flickable as their base class.
461         Since QScroller will be dropped from Qt5 this patch removes the QScroller code
462         and redirects pan gestures to a dynamically created encapsulated Flickable instance
463         (QtFlickProvider) which handles the positioning.
464
465         This implementation only uses public QML API and does not depend on declarative-private.
466         It propagates a small subset of the Flickable API as the public API of the WebView.
467         This minimalistic API is accessible via the experimental extension and makes it possible
468         in QML to place additional items (such as toolbars, scroll indicators and floating menus)
469         aroud the page.
470         These items can use anchoring and binding for positioning on the flickable contentItem.
471
472         The patch depends however on the automatic touch->mouse event synthetization of Qt5.
473         The touch events sent to the flickProvider are translated to mouse events automatically
474         as long as the Flickable does not handle touch events directly.
475
476         After this change QtWebKit2 does no longer depend on QtWidgets and this dependency can be
477         removed in a follow-up patch.
478
479         * Target.pri: Added QtFlickProvider source.
480         * UIProcess/API/qt/qquickwebpage.cpp:
481         (QQuickWebPagePrivate::paintToCurrentGLContext):
482         (QQuickWebPage::transformToItem):
483         (QQuickWebPagePrivate::updateSize):
484         * UIProcess/API/qt/qquickwebview.cpp:
485         (QQuickWebViewPrivate::QQuickWebViewPrivate):
486         (QQuickWebViewPrivate::pageItemPos):
487         (QQuickWebViewFlickablePrivate::pageItemPos):
488         (QQuickWebViewFlickablePrivate::updateContentsSize):
489         (QQuickWebViewFlickablePrivate::onComponentComplete):
490         (QQuickWebViewFlickablePrivate::updateViewportSize):
491         (QQuickWebViewExperimental::flickableData):
492         (QQuickWebViewExperimental::contentItem):
493         (QQuickWebViewExperimental::contentWidth):
494         (QQuickWebViewExperimental::setContentWidth):
495         (QQuickWebViewExperimental::contentHeight):
496         (QQuickWebViewExperimental::setContentHeight):
497         (QQuickWebViewExperimental::contentX):
498         (QQuickWebViewExperimental::setContentX):
499         (QQuickWebViewExperimental::contentY):
500         (QQuickWebViewExperimental::setContentY):
501         (QQuickWebView::pageItemPos):
502         (QQuickWebView::updateContentsSize):
503         * UIProcess/API/qt/qquickwebview_p.h:
504         * UIProcess/API/qt/qquickwebview_p_p.h:
505         (QQuickWebViewPrivate):
506         (QQuickWebViewPrivate::updateContentsSize):
507         (QQuickWebViewFlickablePrivate):
508         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
509         (tst_QQuickWebView::scrollRequest):
510         * UIProcess/qt/QtFlickProvider.cpp: Added.
511         (QtFlickProvider::QtFlickProvider):
512         (QtFlickProvider::handleTouchFlickEvent):
513         (QtFlickProvider::contentItem):
514         (QtFlickProvider::flickableData):
515         (QtFlickProvider::contentPos):
516         (QtFlickProvider::setContentPos):
517         (QtFlickProvider::viewportSize):
518         (QtFlickProvider::setViewportSize):
519         (QtFlickProvider::returnToBounds):
520         (QtFlickProvider::cancelFlick):
521         (QtFlickProvider::isMoving):
522         (QtFlickProvider::isDragging):
523         (QtFlickProvider::isFlicking):
524         (QtFlickProvider::contentWidth):
525         (QtFlickProvider::setContentWidth):
526         (QtFlickProvider::contentHeight):
527         (QtFlickProvider::setContentHeight):
528         (QtFlickProvider::contentX):
529         (QtFlickProvider::setContentX):
530         (QtFlickProvider::contentY):
531         (QtFlickProvider::setContentY):
532         * UIProcess/qt/QtFlickProvider.h: Added.
533         (QtFlickProvider):
534         * UIProcess/qt/QtPanGestureRecognizer.cpp:
535         (WebKit::QtPanGestureRecognizer::recognize):
536         * UIProcess/qt/QtPanGestureRecognizer.h:
537         (QtPanGestureRecognizer):
538         * UIProcess/qt/QtViewportInteractionEngine.cpp:
539         (WebKit::QtViewportInteractionEngine::QtViewportInteractionEngine):
540         (WebKit::QtViewportInteractionEngine::setItemRectVisible):
541         (WebKit::QtViewportInteractionEngine::scrollStateChanged):
542         (WebKit):
543         (WebKit::QtViewportInteractionEngine::wheelEvent):
544         (WebKit::QtViewportInteractionEngine::reset):
545         (WebKit::QtViewportInteractionEngine::applyConstraints):
546         (WebKit::QtViewportInteractionEngine::scrollAnimationActive):
547         (WebKit::QtViewportInteractionEngine::panGestureActive):
548         (WebKit::QtViewportInteractionEngine::panGestureStarted):
549         (WebKit::QtViewportInteractionEngine::panGestureRequestUpdate):
550         (WebKit::QtViewportInteractionEngine::panGestureCancelled):
551         (WebKit::QtViewportInteractionEngine::panGestureEnded):
552         (WebKit::QtViewportInteractionEngine::pinchGestureRequestUpdate):
553         (WebKit::QtViewportInteractionEngine::scaleContent):
554         * UIProcess/qt/QtViewportInteractionEngine.h:
555         (QtViewportInteractionEngine):
556         * UIProcess/qt/QtWebPageEventHandler.cpp:
557         (QtWebPageEventHandler::doneWithTouchEvent):
558
559 2012-02-08  Keunsoon Lee  <keunsoon.lee@samsung.com>
560
561         [WK2][EFL] creating dummy class derived from ResourceHandleClient for Efl download module.
562         https://bugs.webkit.org/show_bug.cgi?id=76171
563
564         Reviewed by Andreas Kling.
565
566         FileDownloaderEfl is a practical class to operate file download.
567         It communicates with Download class to start download
568         and to notify downloading states to user(e.g. client application).
569         Besides FileDownloaderEfl derives from ResourceHandleClient
570         and receives chunked data from ResourceHandle directly
571         or redirects data flow which is started from MainResourceLoader
572         by mean of exchanging ResourceHandle's existing client for FileDownloaderEfl.
573
574         This patch has only dummy functions to make easy to review.
575         Working patch will be uploaded on another bug thread.
576
577         * PlatformEfl.cmake: added new file to compile.
578         * WebProcess/Downloads/Download.h: added FileDownloaderEfl's instance as a form of OwnPtr<FileDownloaderEfl>.
579         (WebKit):
580         (Download):
581         * WebProcess/Downloads/efl/DownloadEfl.cpp:
582         (WebKit::Download::start): calling to FileDownloaderEfl::start() to start download for passing ResourceRequest.
583         * WebProcess/Downloads/efl/FileDownloaderEfl.cpp: Added. a practical class to operate file download.
584         (WebKit):
585         (WebKit::FileDownloaderEfl::create): create function, which returns PassOwnPtr<FileDownloaderEfl>.
586         (WebKit::FileDownloaderEfl::FileDownloaderEfl): constructor, which receives Download* as a parameter.
587         (WebKit::FileDownloaderEfl::~FileDownloaderEfl): deconstructor.
588         (WebKit::FileDownloaderEfl::start): a function to start downloading for passed ResourceRequest.
589         It does nothing for now, but shows how Download class can call FileDownloaderEfl's function.
590         (WebKit::FileDownloaderEfl::didReceiveResponse): virtual function for ResourceHandleClient.
591         It will receive response header information from ResourceHandle.
592         (WebKit::FileDownloaderEfl::didReceiveData): virtual function for ResourceHandleClient.
593         It will receive chunk data from ResourceHandle.
594         (WebKit::FileDownloaderEfl::didFinishLoading): virtual function for ResourceHandleClient.
595         It will be notified loading is finished from ResourceHandle.
596         (WebKit::FileDownloaderEfl::didFail): virtual function for ResourceHandleClient.
597         It will be notified loading is fail with ResourceError from ResourceHandle.
598         (WebKit::FileDownloaderEfl::shouldUseCredentialStorage): virtual function for ResourceHandleClient.
599         It returns whether to use credential storage or not.
600         (WebKit::FileDownloaderEfl::didReceiveAuthenticationChallenge): virtual function for ResourceHandleClient.
601         It will receive AuthenticationChallenge.
602         (WebKit::FileDownloaderEfl::didCancelAuthenticationChallenge): virtual function for ResourceHandleClient.
603         It will be notified AuthenticationChallenge is canceled.
604         (WebKit::FileDownloaderEfl::receivedCancellation): virtual function for ResourceHandleClient.
605         * WebProcess/Downloads/efl/FileDownloaderEfl.h: Added.
606         (WebCore):
607         (WebKit):
608         (FileDownloaderEfl):
609
610 2012-02-07  MORITA Hajime  <morrita@google.com>
611
612         Replacement text should be available from the marker.
613         https://bugs.webkit.org/show_bug.cgi?id=77934
614
615         Reviewed by Kent Tamura.
616
617         * win/WebKit2.def:
618         * win/WebKit2CFLite.def:
619
620 2012-02-08  Anders Carlsson  <andersca@apple.com>
621
622         Don't use the wheel event handler count to track if a page has horizontal scrollbars
623         https://bugs.webkit.org/show_bug.cgi?id=78192
624
625         Reviewed by Andreas Kling.
626
627         Prior to this change, we were incrementing and decrementing the wheel event handler count
628         whenever a scrollable area gained or lost a horizontal scrollbar, so we could use the count
629         to determine if Safari can handle horizontal wheel events directly or whether they have to be sent
630         to the web process first.
631
632         What this meant was that whenever a page had horizontal scrollbars we'd have to send all scroll wheel events
633         to the main thread instead of the scrolling thread, regardless of whether there were any wheel event handlers.
634         
635         After this change, we traverse the tree of scrollable areas after every layout and check if any of them
636         have a horizontal scrollbar. (We still also check if there are wheel event handlers).
637
638         If traversing the tree after every layout is deemed to slow we can go back to caching the number of horizontal scrollbars
639         in a page, but the number of subframes in a page is usually very small and the number of other scrollable areas is even smaller.
640
641         * UIProcess/WebPageProxy.cpp:
642         (WebKit::WebPageProxy::WebPageProxy):
643         (WebKit::WebPageProxy::willHandleHorizontalScrollEvents):
644         * UIProcess/WebPageProxy.h:
645         (WebKit::WebPageProxy::setCanShortCircuitHorizontalWheelEvents):
646         (WebPageProxy):
647         * UIProcess/WebPageProxy.messages.in:
648         * WebProcess/WebCoreSupport/WebChromeClient.cpp:
649         (WebKit::WebChromeClient::numWheelEventHandlersChanged):
650         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
651         (WebKit::WebFrameLoaderClient::dispatchDidLayout):
652         * WebProcess/WebPage/WebPage.cpp:
653         (WebKit::WebPage::WebPage):
654         (WebKit::WebPage::numWheelEventHandlersChanged):
655         (WebKit):
656         (WebKit::hasEnabledHorizontalScrollbar):
657         (WebKit::pageContainsAnyHorizontalScrollbars):
658         (WebKit::WebPage::recomputeShortCircuitHorizontalWheelEventsState):
659         * WebProcess/WebPage/WebPage.h:
660         (WebPage):
661
662 2012-02-08  Sheriff Bot  <webkit.review.bot@gmail.com>
663
664         Unreviewed, rolling out r106920, r106924, r106933, r106939,
665         and r107090.
666         http://trac.webkit.org/changeset/106920
667         http://trac.webkit.org/changeset/106924
668         http://trac.webkit.org/changeset/106933
669         http://trac.webkit.org/changeset/106939
670         http://trac.webkit.org/changeset/107090
671         https://bugs.webkit.org/show_bug.cgi?id=78124
672
673         Something is completely wrong this change (Requested by
674         Ossy_gardener on #webkit).
675
676         * Shared/WebProcessCreationParameters.cpp:
677         (WebKit::WebProcessCreationParameters::encode):
678         (WebKit::WebProcessCreationParameters::decode):
679         * Shared/WebProcessCreationParameters.h:
680         (WebProcessCreationParameters):
681         * UIProcess/WebContext.cpp:
682         (WebKit::WebContext::WebContext):
683         * UIProcess/qt/WebContextQt.cpp:
684         (WebKit::WebContext::platformInitializeWebProcess):
685         * WebProcess/qt/WebProcessQt.cpp:
686         (WebKit):
687         (WebKit::WebProcess::platformSetCacheModel):
688         (WebKit::WebProcess::platformInitializeWebProcess):
689
690 2012-02-08  Carlos Garcia Campos  <cgarcia@igalia.com>
691
692         [GTK] Fix a crash when WebKitWebView is created without a WebContext
693         https://bugs.webkit.org/show_bug.cgi?id=78104
694
695         Reviewed by Philippe Normand.
696
697         * UIProcess/API/gtk/WebKitWebView.cpp:
698         (webkitWebViewSetProperty): Make sure WebKitWebView:web-context
699         property is initialized to the default web context when a web
700         context is not passed to g_object_new().
701         * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
702         (testWebViewDefaultContext): Check that a web view created with
703         g_object_new has the default context.
704
705 2012-02-08  Michael Brüning  <michael.bruning@nokia.com>
706
707         [Qt][WK2] Compute and set cache capacities using the current CacheModel
708         https://bugs.webkit.org/show_bug.cgi?id=73918
709
710         Reviewed by Kenneth Rohde Christiansen.
711
712         * UIProcess/WebContext.cpp:
713         (WebKit::WebContext::WebContext): Set default cacheModel for Qt platform to
714         CacheModelPrimaryWebBrowser.
715
716 2012-02-08  Carlos Garcia Campos  <cgarcia@igalia.com>
717
718         [GTK] Fix WebKitWebView::decide-policy API documentation
719         https://bugs.webkit.org/show_bug.cgi?id=78101
720
721         Reviewed by Martin Robinson.
722
723         - It refers to WebKitPolicyClient instead of WebKitWebView
724         - Trailing ':' is missing
725         - References @decision as WebKitNavigationPolicyDecision instead
726         of WebKitPolicyDecision
727
728         * UIProcess/API/gtk/WebKitWebView.cpp:
729         (webkit_web_view_class_init):
730
731 2012-02-08  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
732
733         [Qt] Build broken if qt missing openssl
734         https://bugs.webkit.org/show_bug.cgi?id=77894
735
736         Reviewed by Chang Shu.
737
738         Build fix. No new test content. 
739
740         * WebProcess/qt/QtNetworkAccessManager.cpp:
741         (WebKit::QtNetworkAccessManager::onSslErrors):
742
743 2012-02-08  Yael Aharon  <yael.aharon@nokia.com>
744
745         [WK2] Text notifications should have an iconURL
746         https://bugs.webkit.org/show_bug.cgi?id=77968
747
748         Reviewed by Simon Hausmann.
749         
750         Per http://www.w3.org/TR/notifications simple text notifications should have an iconURL.
751         Add an iconURL to WebNotification and add a public API to access it.
752        
753         * UIProcess/API/C/WKNotification.cpp:
754         (WKNotificationCopyiconURL):
755         * UIProcess/API/C/WKNotification.h:
756         * UIProcess/Notifications/WebNotification.cpp:
757         (WebKit::WebNotification::WebNotification):
758         * UIProcess/Notifications/WebNotification.h:
759         (WebKit::WebNotification::create):
760         (WebKit::WebNotification::iconURL):
761         (WebNotification):
762         * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
763         (WebKit::WebNotificationManagerProxy::show):
764         * UIProcess/Notifications/WebNotificationManagerProxy.h:
765         (WebNotificationManagerProxy):
766         * UIProcess/WebPageProxy.cpp:
767         (WebKit::WebPageProxy::showNotification):
768         * UIProcess/WebPageProxy.h:
769         (WebPageProxy):
770         * UIProcess/WebPageProxy.messages.in:
771         * WebProcess/Notifications/WebNotificationManager.cpp:
772         (WebKit::WebNotificationManager::show):
773
774 2012-02-08  Philippe Normand  <pnormand@igalia.com>
775
776         [GTK][WK2] enable-webaudio WebSetting
777         https://bugs.webkit.org/show_bug.cgi?id=77959
778
779         Reviewed by Martin Robinson.
780
781         Add a new WebKitGTK WebSetting to enable/disable WebAudio at
782         runtime.
783
784         * UIProcess/API/gtk/WebKitSettings.cpp:
785         (webKitSettingsSetProperty):
786         (webKitSettingsGetProperty):
787         (webkit_settings_class_init):
788         (webkit_settings_get_enable_webaudio):
789         (webkit_settings_set_enable_webaudio):
790         * UIProcess/API/gtk/WebKitSettings.h:
791         * UIProcess/API/gtk/tests/TestWebKitSettings.cpp:
792         (testWebKitSettings):
793
794 2012-02-07  Martin Robinson  <mrobinson@igalia.com>
795
796         [GTK] [WK2] Add WebKitResponsePolicyDecision
797         https://bugs.webkit.org/show_bug.cgi?id=76789
798
799         Reviewed by Philippe Normand.
800
801         Add a WebKitResponsePolicyDecision GObject, use it for response
802         policy decisions and add a test.
803
804         * GNUmakefile.am: Added new source files to the list.
805         * UIProcess/API/gtk/WebKitPolicyClient.cpp:
806         (decidePolicyForResponseCallback): Added this callback which creates the request
807         and fires the signal.
808         (attachPolicyClientToPage): Added new callback to the C API policy client.
809         * UIProcess/API/gtk/WebKitResponsePolicyDecision.cpp: Added.
810         * UIProcess/API/gtk/WebKitResponsePolicyDecision.h: Added.
811         * UIProcess/API/gtk/WebKitResponsePolicyDecisionPrivate.h: Added.
812         * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Added new docs.
813         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto.
814         * UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp:
815         (testResponsePolicy): Added this test for response policy decisions.
816         (serverCallback): Added a SoupServer to test policy response policy decisions.
817         (beforeAll): Ditto.
818         (afterAll): Ditto.
819
820 2012-02-07  Timothy Hatcher  <timothy@apple.com>
821
822         Avoid making a window for the Web Inspector when it is docked.
823
824         This also makes sure the inspector WKView is in a window before the page is loaded.
825         This avoids some redundant work caused by moving it to a window later.
826
827         https://webkit.org/b/78064
828
829         Reviewed by Brian Weinstein.
830
831         * UIProcess/WebInspectorProxy.cpp:
832         (WebKit::WebInspectorProxy::createInspectorPage): Set m_isAttached here...
833         (WebKit::WebInspectorProxy::didLoadInspectorPage): ... instead of here.
834         * UIProcess/WebInspectorProxy.h:
835         (WebInspectorProxy):
836         * UIProcess/mac/WebInspectorProxyMac.mm:
837         (WebKit::WebInspectorProxy::createInspectorWindow): Added. Factored out of platformOpen.
838         (WebKit::WebInspectorProxy::updateInspectorWindowTitle): Added. Factored out of platformInspectedURLChanged.
839         (WebKit::WebInspectorProxy::platformCreateInspectorPage): Call platformAttach or createInspectorWindow.
840         (WebKit::WebInspectorProxy::platformOpen): Make the view or window visible.
841         (WebKit::WebInspectorProxy::platformDidClose): Only message m_inspectorWindow if it isn't nil.
842         (WebKit::WebInspectorProxy::platformInspectedURLChanged): Store the urlString and call updateInspectorWindowTitle.
843         (WebKit::WebInspectorProxy::inspectedViewFrameDidChange): Return early if not visible.
844         (WebKit::WebInspectorProxy::platformAttach): Start out hidden if we are not visible yet. Destroy the window.
845         (WebKit::WebInspectorProxy::platformDetach): Use createInspectorWindow to create it again.
846
847 2012-02-07  Tony Chang  <tony@chromium.org>
848
849         merge DashboardSupportCSSPropertyNames.in into CSSPropertyNames.in
850         https://bugs.webkit.org/show_bug.cgi?id=78036
851
852         Reviewed by Darin Adler.
853
854         * Configurations/FeatureDefines.xcconfig: Add ENABLE_DASHBOARD_SUPPORT to FEATURE_DEFINES.
855
856 2012-02-07  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
857
858         [CMAKE] Use *bin* and *lib* directories for executable and libraries.
859         https://bugs.webkit.org/show_bug.cgi?id=77928
860
861         Reviewed by Daniel Bates.
862
863         CMake has used *Programs* directory for executable. In addition, shared libraries are being
864         built in source directory. It is better to set common places in order to maintain executable
865         and libraries. *bin* is for executable and *lib* is for library.
866
867         * CMakeLists.txt:
868
869 2012-02-07  Timothy Hatcher  <timothy@apple.com>
870
871         Initilize the WebPageProxy intrinsicDeviceScaleFactor on creation of the WKView.
872
873         If WKView was created and loaded a page with canvas elements before beinging moved
874         to a window, the canvas elements would be locked in at a pixel ratio of 1. With this
875         change the WKView will use the main screen's pixel ratio until it moves to a window.
876
877         Reviewed by Anders Carlsson.
878
879         * UIProcess/API/mac/WKView.mm:
880         (-[WKView initWithFrame:contextRef:pageGroupRef:]): Call setIntrinsicDeviceScaleFactor.
881
882 2012-02-07  Alexey Proskuryakov  <ap@apple.com>
883
884         Keep a reference in didReceiveInvalidMessage.
885         https://bugs.webkit.org/show_bug.cgi?id=78024
886
887         Reviewed by Anders Carlsson.
888
889         * UIProcess/WebConnectionToWebProcess.cpp:
890         (WebKit::WebConnectionToWebProcess::didReceiveInvalidMessage):
891
892 2012-02-06  Anders Carlsson  <andersca@apple.com>
893
894         ScrollableAreaSet should be moved from Page to FrameView
895         https://bugs.webkit.org/show_bug.cgi?id=62762
896
897         Reviewed by Beth Dakin.
898
899         * WebProcess/Plugins/PDF/BuiltInPDFView.cpp:
900         (WebKit::BuiltInPDFView::initialize):
901         Call FrameView::addScrollableArea instead.
902
903         (WebKit::BuiltInPDFView::destroy):
904         Call FrameView::removeScrollableArea instead.
905
906         * WebProcess/Plugins/PDF/BuiltInPDFView.h:
907         Remove disconnectFromPage since it no longer exists on ScrollableArea.
908
909 2012-02-07  Carlos Garcia Campos  <cgarcia@igalia.com>
910
911         [GTK] Add cut, copy and paste methods to WebKit2 GTK+ API
912         https://bugs.webkit.org/show_bug.cgi?id=76998
913
914         Reviewed by Martin Robinson.
915
916         * GNUmakefile.am: Add WebKitEditingCommands.h.
917         * UIProcess/API/gtk/WebKitEditingCommands.h: Added.
918         * UIProcess/API/gtk/WebKitWebView.cpp:
919         (didValidateCommand): Callback called by the C API when an editor
920         command has been validated.
921         (webkit_web_view_can_execute_editing_command): Asynchronously
922         validate the given editing command.
923         (webkit_web_view_can_execute_editing_command_finish): Finish async
924         operation started by webkit_web_view_can_execute_editing_command().
925         (webkit_web_view_execute_editing_command): Execute the given
926         command.
927         * UIProcess/API/gtk/WebKitWebView.h:
928         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
929         * UIProcess/API/gtk/tests/GNUmakefile.am:
930         * UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
931         (LoadTrackingTest::provisionalLoadFailed): Do not finish the main
932         loop on load failure, now finished is always called.
933         * UIProcess/API/gtk/tests/TestBackForwardList.cpp: Use WebViewTest
934         instead of LoadTrackingTest.
935         * UIProcess/API/gtk/tests/TestWebViewEditor.cpp: Added.
936         (testWebViewEditorCutCopyPasteNonEditable):
937         (testWebViewEditorCutCopyPasteEditable):
938         (beforeAll):
939         (afterAll):
940         * UIProcess/API/gtk/tests/WebViewTest.cpp:
941         (loadChanged):
942         (WebViewTest::waitUntilLoadFinished): Run a main loop until load
943         finished.
944         * UIProcess/API/gtk/tests/WebViewTest.h: Add waitUntilLoadFinished().
945         * UIProcess/API/gtk/webkit2.h: Include WebKitEditingCommands.h.
946
947 2012-02-07  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
948
949         Encode radius, force and rotationAngle in WebPlatformTouchPoint.
950         https://bugs.webkit.org/show_bug.cgi?id=77986
951
952         Reviewed by Kenneth Rohde Christiansen.
953
954         * Shared/WebEvent.h:
955         (WebKit::WebPlatformTouchPoint::WebPlatformTouchPoint):
956         (WebPlatformTouchPoint):
957         (WebKit::WebPlatformTouchPoint::radius):
958         (WebKit::WebPlatformTouchPoint::rotationAngle):
959         (WebKit::WebPlatformTouchPoint::force):
960         * Shared/WebEventConversion.cpp:
961         (WebKit::WebKit2PlatformTouchPoint::WebKit2PlatformTouchPoint):
962         * Shared/WebPlatformTouchPoint.cpp:
963         (WebKit::WebPlatformTouchPoint::WebPlatformTouchPoint):
964         (WebKit::WebPlatformTouchPoint::encode):
965         (WebKit::WebPlatformTouchPoint::decode):
966
967 2012-02-07  Andras Becsi  <andras.becsi@nokia.com>
968
969         [Qt] [WK2] Fix the debug build after r106920
970
971         * WebProcess/qt/WebProcessQt.cpp:
972         (WebKit::WebProcess::platformSetCacheModel):
973         Remove unnecessary assert.
974
975 2012-02-03  Andras Becsi  <andras.becsi@nokia.com>
976
977         [Qt][WK2] Add the componentComplete method to WebView
978         https://bugs.webkit.org/show_bug.cgi?id=77111
979
980         Reviewed by Simon Hausmann.
981
982         Move the initialization of the interaction engine to componentComplete
983         in preparation of switching to a Flickable based content positioning
984         for the touch based WebView.
985         Suspend the page and delay the dispatch of load success on startup until
986         the component finished initialization. With this patch instantiating the
987         WebView in C++ is only possible by creating a QDeclarativeComponent as
988         the initialization depends on the componentComplete method being called.
989         Also return valid default values in the viewport info functions if the
990         interaction engine is not yet initialized because the viewport info
991         component could finish initialization earlier than the WebView, which
992         results in QML warnings during MiniBrowser startup.
993
994         * UIProcess/API/qt/qquickwebview.cpp:
995         (QQuickWebViewPrivate::initialize):
996         (QQuickWebViewPrivate::loadDidSucceed):
997         (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
998         (QQuickWebViewFlickablePrivate::initialize):
999         (QQuickWebViewFlickablePrivate::onComponentComplete):
1000         (QQuickWebViewFlickablePrivate::loadDidSucceed):
1001         (QQuickWebViewFlickablePrivate::updateViewportSize):
1002         (QQuickWebViewFlickablePrivate::_q_resume):
1003         (QQuickWebView::geometryChanged):
1004         (QQuickWebView::componentComplete):
1005         * UIProcess/API/qt/qquickwebview_p.h:
1006         * UIProcess/API/qt/qquickwebview_p_p.h:
1007         (QQuickWebViewPrivate::onComponentComplete):
1008         (QQuickWebViewPrivate):
1009         (QQuickWebViewFlickablePrivate):
1010         * UIProcess/API/qt/qwebviewportinfo.cpp:
1011         (QWebViewportInfo::currentScale):
1012         (QWebViewportInfo::devicePixelRatio):
1013         (QWebViewportInfo::initialScale):
1014         (QWebViewportInfo::minimumScale):
1015         (QWebViewportInfo::maximumScale):
1016         (QWebViewportInfo::isScalable):
1017         (QWebViewportInfo::layoutSize):
1018         * UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro:
1019         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
1020         (tst_QQuickWebView::tst_QQuickWebView):
1021         (tst_QQuickWebView::init):
1022         (tst_QQuickWebView::multipleWebViewWindows):
1023         (tst_QQuickWebView::multipleWebViews):
1024         * UIProcess/qt/QtWebPageLoadClient.cpp:
1025         (QtWebPageLoadClient::dispatchLoadSucceeded):
1026
1027 2012-02-07  YoungTaeck Song  <youngtaeck.song@samsung.com>
1028
1029         [EFL][WK2] Add ModuleEfl.cpp
1030         https://bugs.webkit.org/show_bug.cgi?id=63608
1031
1032         Reviewed by Andreas Kling.
1033
1034         Add first version of ModuleEfl.cpp including load(), unload() and platformFunctionPointer().
1035
1036         * Platform/Module.h:
1037         * Platform/efl/ModuleEfl.cpp: Added.
1038         (WebKit::Module::load):
1039         (WebKit::Module::unload):
1040         (WebKit::Module::platformFunctionPointer):
1041
1042 2012-02-07  Michael Brüning  <michael.bruning@nokia.com>
1043
1044         [Qt][WK2] Compute and set cache capacities using the current CacheModel
1045         https://bugs.webkit.org/show_bug.cgi?id=73918
1046
1047         Reviewed by Kenneth Rohde Christiansen.
1048
1049         First part of the implementation. The next steps are the implementation
1050         of the API for the Qt WebKit 2 port and the hybrid memory and disk cache.
1051
1052         * Shared/WebProcessCreationParameters.cpp:
1053         (WebKit::WebProcessCreationParameters::encode):
1054         (WebKit::WebProcessCreationParameters::decode):
1055         * Shared/WebProcessCreationParameters.h:
1056         (WebProcessCreationParameters):
1057         * UIProcess/qt/WebContextQt.cpp:
1058         (WebKit::defaultDiskCacheDirectory):
1059         (WebKit):
1060         (WebKit::WebContext::platformInitializeWebProcess):
1061         * WebProcess/qt/WebProcessQt.cpp:
1062         (WebKit::physicalMemorySizeInBytes):
1063         (WebKit):
1064         (WebKit::WebProcess::platformSetCacheModel):
1065         (WebKit::WebProcess::platformInitializeWebProcess):
1066
1067 2012-02-06  Shinya Kawanaka  <shinyak@google.com>
1068
1069         Remove Element::ensureShadowRoot export.
1070         https://bugs.webkit.org/show_bug.cgi?id=77932
1071
1072         Reviewed by Hajime Morita.
1073
1074         * win/WebKit2.def:
1075         * win/WebKit2CFLite.def:
1076
1077 2012-02-06  Martin Robinson  <mrobinson@igalia.com>
1078
1079         [GTK] Add TextureMapperGL implementation
1080         https://bugs.webkit.org/show_bug.cgi?id=75308
1081
1082         Reviewed by Alejandro G. Castro.
1083
1084         Fix the WebKit2 + AC build for GTK+.
1085
1086         * GNUmakefile.am: Add some missing source files.
1087         * UIProcess/DrawingAreaProxy.cpp:
1088         (WebKit): Add USE(TILED_BACKING_STORE) to the guard.
1089         * UIProcess/WebPageProxy.cpp:
1090         (WebKit::WebPageProxy::didReceiveMessage): Ditto.
1091         * WebProcess/WebPage/DrawingArea.h:
1092         (DrawingArea): Ditto.
1093         * WebProcess/WebPage/DrawingAreaImpl.cpp:
1094         (WebKit): Ditto.
1095         * WebProcess/WebPage/DrawingAreaImpl.h:
1096         (DrawingAreaImpl): Ditto.
1097
1098 2012-02-06  Martin Robinson  <mrobinson@igalia.com>
1099
1100         Fix some miscellaneous 'make dist' error for WebKitGTK+.
1101
1102         * GNUmakefile.am: Do not distribute generated files.
1103
1104 2012-02-06  Anders Carlsson  <andersca@apple.com>
1105
1106         Overlay scrollbars flash when window is simply activated
1107         https://bugs.webkit.org/show_bug.cgi?id=77911
1108
1109         Reviewed by Kenneth Russell.
1110
1111         * UIProcess/API/mac/WKView.mm:
1112         (-[WKView _updateWindowVisibility]):
1113         Use -[NSWindow isVisible] here, since we also want to consider the window hidden if the application itself is hidden.
1114
1115         (-[WKView _windowDidOrderOffScreen:]):
1116         (-[WKView _windowDidOrderOnScreen:]):
1117         Call -[WKView updateWindowVisibility].
1118
1119         * WebProcess/WebPage/WebPage.cpp:
1120         (WebKit::WebPage::setWindowIsVisible):
1121         Call FocusController::setContainingWindowIsVisible.
1122
1123 2012-02-06  Martin Robinson  <mrobinson@igalia.com>
1124
1125          [GTK] Fix remaining errors in GTK+ WebKit2 API
1126         https://bugs.webkit.org/show_bug.cgi?id=77890
1127
1128         Reviewed by Gustavo Noronha Silva.
1129
1130         Fix some style issues in the GTK+ WebKit2 API section of the source code.
1131
1132         * UIProcess/API/gtk/WebKitPrivate.h:
1133         * UIProcess/API/gtk/WebKitWebView.cpp:
1134         * UIProcess/API/gtk/tests/TestMain.h:
1135
1136 2012-02-06  Matthew Delaney  <mdelaney@apple.com>
1137
1138         toDataURL() uses stale data after putImageData()
1139         https://bugs.webkit.org/show_bug.cgi?id=65767
1140
1141         Reviewed by Chris Marrin.
1142
1143         * WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
1144         (InitWebCoreSystemInterface):
1145
1146 2012-02-06  Ryosuke Niwa  <rniwa@webkit.org>
1147
1148         gcc build fix after r106749.
1149
1150         * UIProcess/WebPreferences.cpp:
1151         (WebKit::WebPreferences::WebPreferences):
1152
1153 2012-02-06  Martin Robinson  <mrobinson@igalia.com>
1154
1155         [GTK] WebKitWebView does a lot of work during size_allocate when not mapped
1156         https://bugs.webkit.org/show_bug.cgi?id=77743
1157
1158         Reviewed by Gustavo Noronha Silva.
1159
1160         Instead of resizing the guts of a WebView when it's not mapped, wait
1161         until it's mapped and do one resize. This prevents unmapped WebViews
1162         from adding to a container's resize cost.
1163
1164         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
1165         (_WebKitWebViewBasePrivate): Added a new member needsResizeOnMap.
1166         (resizeWebKitWebViewBaseFromAllocation): Abstracted out this helper.
1167         (webkitWebViewBaseSizeAllocate): Wait until map to resize unmapped WebViews.
1168         (webkitWebViewBaseMap): Added this vmethod implementation.
1169         (webkit_web_view_base_class_init): Added vmethod.
1170
1171 2012-02-06  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1172
1173         WebGestureEvent can not encode delta and area.
1174         https://bugs.webkit.org/show_bug.cgi?id=77728
1175
1176         Support delta and area fields in WebGestureEvent, and send area with Qt tap gesture.
1177
1178         Reviewed by Kenneth Rohde Christiansen.
1179
1180         * Shared/WebEvent.h:
1181         (WebKit::WebGestureEvent::area):
1182         (WebKit::WebGestureEvent::delta):
1183         * Shared/WebEventConversion.cpp:
1184         (WebKit::WebKit2PlatformGestureEvent::WebKit2PlatformGestureEvent):
1185         * Shared/WebGestureEvent.cpp:
1186         (WebKit::WebGestureEvent::WebGestureEvent):
1187         (WebKit::WebGestureEvent::encode):
1188         (WebKit::WebGestureEvent::decode):
1189         * UIProcess/qt/QtWebPageEventHandler.cpp:
1190         (QtWebPageEventHandler::handleSingleTapEvent):
1191
1192 2012-02-03  Zalan Bujtas  <zbujtas@gmail.com>  and  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1193
1194         [Qt][WK2] Remove TiledDrawingArea and dependencies.
1195         https://bugs.webkit.org/show_bug.cgi?id=71681
1196
1197         Reviewed by Kenneth Rohde Christiansen.
1198
1199         Tiled drawing surface functionality got converted to LayerTree.
1200         TiledDrawingArea and its dependencies are not used by any port anymore.
1201
1202         * CMakeLists.txt:
1203         * GNUmakefile.am:
1204         * Shared/DrawingAreaInfo.h:
1205         * Target.pri:
1206         * UIProcess/API/qt/qquickwebpage.cpp:
1207         (QQuickWebPagePrivate::QQuickWebPagePrivate):
1208         * UIProcess/API/qt/qquickwebpage_p.h:
1209         * UIProcess/API/qt/qquickwebpage_p_p.h:
1210         (QQuickWebPagePrivate):
1211         * UIProcess/DrawingAreaProxy.h:
1212         * UIProcess/DrawingAreaProxy.messages.in:
1213         * UIProcess/TiledDrawingAreaProxy.cpp: Removed.
1214         * UIProcess/TiledDrawingAreaProxy.h: Removed.
1215         * UIProcess/qt/QtSGTileNode.cpp: Removed.
1216         * UIProcess/qt/QtSGTileNode.h: Removed.
1217         * UIProcess/qt/QtSGUpdateQueue.cpp: Removed.
1218         * UIProcess/qt/QtSGUpdateQueue.h: Removed.
1219         * UIProcess/qt/TiledDrawingAreaProxyQt.cpp: Removed.
1220         * WebProcess/WebPage/DrawingArea.cpp:
1221         (WebKit::DrawingArea::create):
1222         * WebProcess/WebPage/DrawingArea.h:
1223         * WebProcess/WebPage/DrawingArea.messages.in:
1224         * WebProcess/WebPage/TiledDrawingArea.cpp: Removed.
1225         * WebProcess/WebPage/TiledDrawingArea.h: Removed.
1226         * WebProcess/WebPage/WebPage.h:
1227         (WebPage):
1228
1229 2012-02-03  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1230
1231         [Qt] Don't version QtWebKit.experimental.
1232         https://bugs.webkit.org/show_bug.cgi?id=77739
1233
1234         Reviewed by Tor Arne Vestbø.
1235
1236         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_itemSelector.qml:
1237         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_messaging.qml:
1238         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_navigationRequested.qml:
1239         * UIProcess/API/qt/tests/qmltests/WebView/tst_applicationScheme.qml:
1240         * UIProcess/API/qt/tests/qmltests/WebView/tst_download.qml:
1241         * UIProcess/API/qt/tests/qmltests/WebView/tst_geopermission.qml:
1242         * UIProcess/API/qt/tests/qmltests/WebView/tst_javaScriptDialogs.qml:
1243         * UIProcess/API/qt/tests/qmltests/WebView/tst_navigationHistory.qml:
1244         * UIProcess/API/qt/tests/qmltests/WebView/tst_preferences.qml:
1245
1246 2012-02-06  Carlos Garcia Campos  <cgarcia@igalia.com>
1247
1248         [GTK] Fix several gtkdoc-fixxref warnings
1249         https://bugs.webkit.org/show_bug.cgi?id=77613
1250
1251         Reviewed by Martin Robinson.
1252
1253         * UIProcess/API/gtk/WebKitWindowProperties.cpp: Fix a typo, a
1254         colon was missing in WebKitWebView::ready-to-show.
1255
1256 2012-02-05  Dan Bernstein  <mitz@apple.com>
1257
1258         <rdar://problem/10809525> WebKit2’s WebFrameLoaderClient::shouldUseCredentialStorage() always returns true
1259         https://bugs.webkit.org/show_bug.cgi?id=77823
1260
1261         Reviewed by Anders Carlsson.
1262
1263         * WebProcess/InjectedBundle/API/c/WKBundlePage.h:
1264         * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
1265         (WebKit::InjectedBundlePageResourceLoadClient::shouldUseCredentialStorage): Added. Calls
1266         through to the client if it implements shouldUseCredentialStorage. Returns true otherwise.
1267         * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.h:
1268         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1269         (WebKit::WebFrameLoaderClient::shouldUseCredentialStorage): Changed to call the injected
1270         bundle resource load client.
1271
1272 2012-02-04  Dan Bernstein  <mitz@apple.com>
1273
1274         <rdar://problem/10660698> Clients cannot prevent caching of individual responses
1275         https://bugs.webkit.org/show_bug.cgi?id=77822
1276
1277         Reviewed by Sam Weinig.
1278
1279         * Shared/APIClientTraits.cpp: Added definition of interfaceSizesByVersion for
1280         WKBundlePageResourceLoadClient.
1281         * Shared/APIClientTraits.h: Added APIClientTraits specialization for WKBundlePageResourceLoadClient.
1282         * WebProcess/InjectedBundle/API/c/WKBundlePage.h: Added WKBundlePageShouldCacheResponseCallback
1283         typedef, added shouldCacheResponse member to WKBundlePageResourceLoadClient, and bumped
1284         kWKBundlePageResourceLoadClientCurrentVersion to 1.
1285         * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
1286         (WebKit::InjectedBundlePageResourceLoadClient::shouldCacheResponse): Added. Calls through
1287         to the client if it implements shouldCacheResponse. Returns true otherwise.
1288         * WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.h:
1289         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1290         (WebKit::WebFrameLoaderClient::willCacheResponse): Changed to call
1291         InjectedBundlePageResourceLoadClient::shouldCacheResponse() and return nil if the former
1292         returns false.
1293         (WebKit::WebFrameLoaderClient::shouldCacheResponse): Changed to call
1294         InjectedBundlePageResourceLoadClient::shouldCacheResponse().
1295
1296 2012-02-04  Sam Weinig  <sam@webkit.org>
1297
1298         Add ability to send WKURLRequests in WebKit2 API user messages
1299         https://bugs.webkit.org/show_bug.cgi?id=77819
1300
1301         Reviewed by Anders Carlsson.
1302
1303         Test: WebKit2UserMessageRoundTripTest API test.
1304
1305         * Shared/UserMessageCoders.h:
1306         (WebKit::UserMessageEncoder::baseEncode):
1307         (WebKit::UserMessageDecoder::baseDecode):
1308         Add encode/decode for WebURLRequest.
1309
1310 2012-02-04  Dan Bernstein  <mitz@apple.com>
1311
1312         <rdar://problem/10772406> WKPreferences instances cannot be copied
1313         https://bugs.webkit.org/show_bug.cgi?id=77816
1314
1315         Reviewed by Sam Weinig.
1316
1317         Test added in TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp.
1318
1319         * UIProcess/API/C/WKPreferences.cpp:
1320         (WKPreferencesCreateCopy): Added.
1321         * UIProcess/API/C/WKPreferencesPrivate.h:
1322         * UIProcess/WebPreferences.cpp:
1323         (WebKit::WebPreferences::WebPreferences): Added this constructor that copies the
1324         WebPreferencesStore of the given WebPreferences.
1325         * UIProcess/WebPreferences.h:
1326         (WebKit::WebPreferences::create): Added this create function that takes a WebPreferences
1327         instance and creates a new instance with a copy of the given instance’s store.
1328
1329 2012-02-03  Anders Carlsson  <andersca@apple.com>
1330
1331         WebKit2 should dispatch wheel events to the new ScrollingTree class
1332         https://bugs.webkit.org/show_bug.cgi?id=77795
1333
1334         Reviewed by Andreas Kling.
1335
1336         Replace all uses of ScrollingCoordinator with ScrollingTree instead.
1337         Also, don't try to handle gesture events on the scrolling thread anymore;
1338         we don't need to to that right now.
1339
1340         * WebProcess/WebPage/EventDispatcher.cpp:
1341         (WebKit::EventDispatcher::addScrollingTreeForPage):
1342         (WebKit::EventDispatcher::removeScrollingTreeForPage):
1343         (WebKit::EventDispatcher::wheelEvent):
1344         (WebKit::EventDispatcher::gestureEvent):
1345         * WebProcess/WebPage/EventDispatcher.h:
1346         (WebCore):
1347         (EventDispatcher):
1348         * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
1349         (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
1350         (WebKit::TiledCoreAnimationDrawingArea::~TiledCoreAnimationDrawingArea):
1351
1352 2012-02-03  Alexey Proskuryakov  <ap@apple.com>
1353
1354         [WK2 Mac] No need to allow access to input methods or keyboard layouts
1355         https://bugs.webkit.org/show_bug.cgi?id=77775
1356         <rdar://problem/9276253>
1357         <rdar://problem/9276268>
1358
1359         Reviewed by Dan Bernstein.
1360
1361         * WebProcess/com.apple.WebProcess.sb: These rules were likely only necessary in early days
1362         of WebKit2. If there are cases when this happens, that's likely wrong, and we need to know
1363         about that.
1364
1365 2012-02-03  Alexey Proskuryakov  <ap@apple.com>
1366
1367         [WK2] Use properly quoted string literals
1368         https://bugs.webkit.org/show_bug.cgi?id=77583
1369
1370         Reviewed by Darin Adler.
1371
1372         Also added some FIXMEs.
1373
1374         * WebProcess/com.apple.WebProcess.sb:
1375
1376 2012-02-03  Brady Eidson  <beidson@apple.com>
1377
1378         <rdar://problem/10742441> and https://bugs.webkit.org/show_bug.cgi?id=77766
1379         Need a WK2 API to filter which subframes go into WebArchives as they are created.
1380
1381         Reviewed by Darin Adler.
1382
1383         Add a new WKBundleFrame API that takes a filter callback object to allow or reject
1384         subframes from a WebArchive:
1385         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
1386         (WKBundleFrameCopyWebArchive):
1387         (WKBundleFrameCopyWebArchiveFilteringSubframes):
1388         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
1389
1390         Implement the above API by calling through to WebCore:
1391         * WebProcess/WebPage/WebFrame.cpp:
1392         (WebFrameFilter):
1393         (WebKit::WebFrameFilter::WebFrameFilter):
1394         (WebKit::WebFrameFilter::shouldIncludeSubframe):
1395         (WebKit::WebFrame::webArchiveData):
1396         * WebProcess/WebPage/WebFrame.h:
1397         (WebFrame):
1398
1399         * WebProcess/WebPage/WebPage.cpp:
1400         (WebKit::WebPage::getWebArchiveOfFrame):
1401
1402 2012-02-03  Alexey Proskuryakov  <ap@apple.com>
1403
1404         [Mac WK2] Use a minimally invasive way to fake plug-in process name
1405         https://bugs.webkit.org/show_bug.cgi?id=77682
1406
1407         Reviewed by Darin Adler.
1408
1409         * PluginProcess/PluginProcess.cpp: (WebKit::PluginProcess::netscapePluginModule):
1410         Only change the name as it's seen from within the process.
1411
1412         * Shared/Plugins/PluginQuirks.h: Fixed a typo.
1413
1414 2012-02-03  Beth Dakin  <bdakin@apple.com>
1415
1416         https://bugs.webkit.org/show_bug.cgi?id=77691
1417         Fix PlatformScreen layering violation and PlatformScreenMac's incorrect use 
1418         of device scale
1419
1420         Reviewed by Andy Estes.
1421
1422         toUserSpace() and toDeviceSpace() don't need to take device scale.
1423         * UIProcess/API/mac/WKView.mm:
1424         (-[WKView _convertToDeviceSpace:]):
1425         (-[WKView _convertToUserSpace:]):
1426
1427 2012-02-03  No'am Rosenthal  <noam.rosenthal@nokia.com>
1428
1429         [Qt][Texmap] Refactor TextureMapper API to use ImageBuffers when possible.
1430         https://bugs.webkit.org/show_bug.cgi?id=77148
1431
1432         Reviewed by Martin Robinson.
1433
1434         Use TextureMapper::create instead of creating TextureMapperGL/TextureMapperQt directly.
1435         Remove calls to unused API.
1436
1437         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
1438         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
1439         (WebKit::LayerTreeHostProxy::paintToGraphicsContext):
1440         (WebKit::LayerTreeHostProxy::createImage):
1441         (WebKit::LayerTreeHostProxy::ensureRootLayer):
1442
1443 2012-02-03  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1444
1445         [Qt] Split QQuickWebViewPrivate in two classes, for desktop and touch behavior.
1446         https://bugs.webkit.org/show_bug.cgi?id=77632
1447
1448         Reviewed by Kenneth Rohde Christiansen.
1449
1450         Replace the runtime property setting the desktop behavior on each instance
1451         by a static boolean controlling the behavior used by future created WebViews.
1452
1453         * UIProcess/API/qt/qquickwebpage.cpp:
1454         Let only setContentsSize control the size of the drawing area instead of deferring
1455         it until geometryChanged is called.
1456         (QQuickWebPagePrivate::QQuickWebPagePrivate):
1457         * UIProcess/API/qt/qquickwebpage_p.h:
1458         * UIProcess/API/qt/qquickwebpage_p_p.h:
1459         (QQuickWebPagePrivate):
1460         * UIProcess/API/qt/qquickwebview.cpp:
1461         (createPrivateObject):
1462         (QQuickWebViewPrivate::QQuickWebViewPrivate):
1463         (QQuickWebViewPrivate::~QQuickWebViewPrivate):
1464         (QQuickWebViewPrivate::initialize):
1465         (QQuickWebViewPrivate::processDidCrash):
1466         (QQuickWebViewLegacyPrivate::QQuickWebViewLegacyPrivate):
1467         (QQuickWebViewLegacyPrivate::initialize):
1468         (QQuickWebViewLegacyPrivate::updateViewportSize):
1469         (QQuickWebViewFlickablePrivate::QQuickWebViewFlickablePrivate):
1470         (QQuickWebViewFlickablePrivate::~QQuickWebViewFlickablePrivate):
1471         (QQuickWebViewFlickablePrivate::initialize):
1472         (QQuickWebViewFlickablePrivate::loadDidCommit):
1473         (QQuickWebViewFlickablePrivate::didFinishFirstNonEmptyLayout):
1474         (QQuickWebViewFlickablePrivate::didChangeViewportProperties):
1475         (QQuickWebViewFlickablePrivate::updateViewportSize):
1476         (QQuickWebViewFlickablePrivate::_q_updateVisibleContentRectAndScale):
1477         (QQuickWebViewFlickablePrivate::_q_suspend):
1478         (QQuickWebViewFlickablePrivate::_q_resume):
1479         (QQuickWebViewFlickablePrivate::pageDidRequestScroll):
1480         (QQuickWebViewFlickablePrivate::didChangeContentsSize):
1481         (QQuickWebViewFlickablePrivate::computeViewportConstraints):
1482         (QQuickWebViewFlickablePrivate::PostTransitionState::apply):
1483         (QQuickWebViewExperimental::setFlickableViewportEnabled):
1484         The switch is now a static function that has to be called before a WebView
1485         is created. The switch can have it's default defined by the deploying platform.
1486         (QQuickWebViewExperimental::flickableViewportEnabled):
1487         (QQuickWebView::QQuickWebView):
1488         On creation of QQuickWebView, the static boolean is read to know if we want
1489         a QQuickWebViewTouchPrivate or a QQuickWebViewDesktopPrivate.
1490         (QQuickWebView::geometryChanged):
1491         * UIProcess/API/qt/qquickwebview_p.h:
1492         * UIProcess/API/qt/qquickwebview_p_p.h:
1493         (QQuickWebViewPrivate):
1494         (QQuickWebViewPrivate::loadDidCommit):
1495         (QQuickWebViewPrivate::didFinishFirstNonEmptyLayout):
1496         (QQuickWebViewPrivate::didChangeViewportProperties):
1497         (QQuickWebViewPrivate::viewportInteractionEngine):
1498         (QQuickWebViewPrivate::updateViewportSize):
1499         (QQuickWebViewPrivate::_q_updateVisibleContentRectAndScale):
1500         (QQuickWebViewPrivate::_q_suspend):
1501         (QQuickWebViewPrivate::_q_resume):
1502         (QQuickWebViewPrivate::pageDidRequestScroll):
1503         (QQuickWebViewPrivate::didChangeContentsSize):
1504         (QQuickWebViewLegacyPrivate):
1505         (QQuickWebViewFlickablePrivate):
1506         (QQuickWebViewFlickablePrivate::viewportInteractionEngine):
1507         (PostTransitionState):
1508         (QQuickWebViewFlickablePrivate::PostTransitionState::PostTransitionState):
1509         * UIProcess/API/qt/qwebviewportinfo.cpp:
1510         (QWebViewportInfo::currentScale):
1511         (QWebViewportInfo::devicePixelRatio):
1512         (QWebViewportInfo::initialScale):
1513         (QWebViewportInfo::minimumScale):
1514         (QWebViewportInfo::maximumScale):
1515         (QWebViewportInfo::isScalable):
1516         (QWebViewportInfo::layoutSize):
1517         * UIProcess/API/qt/tests/publicapi/publicapi.pro:
1518         * UIProcess/API/qt/tests/qmltests/DesktopBehavior.pro: Added.
1519         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/DesktopWebView.qml: Removed.
1520         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_itemSelector.qml: Renamed
1521         from Source/WebKit2/UIProcess/API/qt/tests/qmltests/WebView/tst_itemSelector.qml.
1522         Moved to DesktopBehavior instead of using a DesktopWebView to workaround the touch event limitation.
1523         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_linkHovered.qml:
1524         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_loadHtml.qml:
1525         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_messaging.qml:
1526         * UIProcess/API/qt/tests/qmltests/DesktopBehavior/tst_navigationRequested.qml:
1527         * UIProcess/API/qt/tests/qmltests/WebView.pro: Copied
1528         from Source/WebKit2/UIProcess/API/qt/tests/qmltests/qmltests.pro.
1529         * UIProcess/API/qt/tests/qmltests/qmltests.pro:
1530         Split qmltests in two executables, tst_qmltests_DesktopBehavior and tst_qmltests_WebView.
1531         The former runs without setFlickableViewportEnabled and the later does.
1532         * UIProcess/API/qt/tests/qmltests/tst_qmltests.cpp:
1533         (main):
1534         * UIProcess/API/qt/tests/qquickwebview/qquickwebview.pro:
1535         * UIProcess/API/qt/tests/tests.pri:
1536         * UIProcess/qt/QtWebPageEventHandler.cpp:
1537         (QtWebPageEventHandler::QtWebPageEventHandler):
1538
1539 2012-02-02  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1540
1541         [Qt] Rename content* to contents* in QQuickWebPage.
1542         https://bugs.webkit.org/show_bug.cgi?id=77629
1543
1544         Reviewed by Kenneth Rohde Christiansen.
1545
1546         * UIProcess/API/qt/qquickwebpage.cpp:
1547         (QQuickWebPagePrivate::QQuickWebPagePrivate):
1548         (QQuickWebPagePrivate::paintToCurrentGLContext):
1549         (QQuickWebPage::setContentsSize):
1550         (QQuickWebPage::contentsSize):
1551         (QQuickWebPage::setContentsScale):
1552         (QQuickWebPage::contentsScale):
1553         (QQuickWebPage::transformToItem):
1554         (QQuickWebPagePrivate::updateSize):
1555         * UIProcess/API/qt/qquickwebpage_p.h:
1556         * UIProcess/API/qt/qquickwebpage_p_p.h:
1557         (QQuickWebPagePrivate):
1558         * UIProcess/API/qt/qquickwebview.cpp:
1559         (QQuickWebViewPrivate::didChangeContentsSize):
1560         (QQuickWebViewPrivate::updateVisibleContentRectAndScale):
1561         (QQuickWebViewPrivate::PostTransitionState::apply):
1562         * UIProcess/API/qt/qwebviewportinfo.cpp:
1563         (QWebViewportInfo::contentsSize):
1564         * UIProcess/API/qt/tests/qquickwebview/tst_qquickwebview.cpp:
1565         (tst_QQuickWebView::scrollRequest):
1566         * UIProcess/qt/QtViewportInteractionEngine.cpp:
1567         (WebKit::QtViewportInteractionEngine::setItemRectVisible):
1568         (WebKit::QtViewportInteractionEngine::event):
1569         (WebKit::QtViewportInteractionEngine::wheelEvent):
1570         (WebKit::QtViewportInteractionEngine::pagePositionRequest):
1571         (WebKit::QtViewportInteractionEngine::computePosRangeForItemAtScale):
1572         (WebKit::QtViewportInteractionEngine::applyConstraints):
1573         (WebKit::QtViewportInteractionEngine::currentCSSScale):
1574         (WebKit::QtViewportInteractionEngine::pinchGestureStarted):
1575         (WebKit::QtViewportInteractionEngine::scaleContent):
1576
1577 2012-02-03  Simon Hausmann  <simon.hausmann@nokia.com>
1578
1579         [Qt] Fix build when cross-compiling
1580         https://bugs.webkit.org/show_bug.cgi?id=77634
1581
1582         Reviewed by Tor Arne Vestbø.
1583
1584         * WebKit2.pri: Link in -lrt on linux mkspecs, regardless of whether gcc
1585         is in use or not. More specifically this fixes the case where the makespace
1586         is not linux-g++* but for a cross-compiling one like linux-arm-gnueabi-g++.
1587
1588 2012-02-03  Shinya Kawanaka  <shinyak@google.com>
1589
1590         Stop calling Element::ensureShadowRoot in Internals.
1591         https://bugs.webkit.org/show_bug.cgi?id=77612
1592
1593         Reviewed by Hajime Morita.
1594
1595         Exports symbols.
1596
1597         * win/WebKit2.def:
1598         * win/WebKit2CFLite.def:
1599
1600 2012-02-02  Sheriff Bot  <webkit.review.bot@gmail.com>
1601
1602         Unreviewed, rolling out r106620.
1603         http://trac.webkit.org/changeset/106620
1604         https://bugs.webkit.org/show_bug.cgi?id=77716
1605
1606         It broke non ENABLE(3D_RENDERING) builds (Requested by
1607         Ossy_morning on #webkit).
1608
1609         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
1610         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
1611         (WebKit::LayerTreeHostProxy::paintToGraphicsContext):
1612         (WebKit::LayerTreeHostProxy::createImage):
1613         (WebKit::LayerTreeHostProxy::ensureRootLayer):
1614
1615 2012-02-02  No'am Rosenthal  <noam.rosenthal@nokia.com>
1616
1617         [Qt][Texmap] Refactor TextureMapper API to use ImageBuffers when possible.
1618         https://bugs.webkit.org/show_bug.cgi?id=77148
1619
1620         Reviewed by Martin Robinson.
1621
1622         Use TextureMapper::create instead of creating TextureMapperGL/TextureMapperQt directly.
1623         Remove calls to unused API.
1624
1625         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
1626         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
1627         (WebKit::LayerTreeHostProxy::paintToGraphicsContext):
1628         (WebKit::LayerTreeHostProxy::createImage):
1629         (WebKit::LayerTreeHostProxy::ensureRootLayer):
1630
1631 2012-02-02  Jon Lee  <jonlee@apple.com>
1632
1633         Clear shown notifications when context is no longer active
1634         https://bugs.webkit.org/show_bug.cgi?id=77363
1635         <rdar://problem/10568907>
1636
1637         Reviewed by Darin Adler.
1638
1639         * WebProcess/WebCoreSupport/WebNotificationClient.cpp:
1640         (WebKit::WebNotificationClient::clearNotifications): Forward the call to
1641         WebNotificationManager.
1642         * WebProcess/WebCoreSupport/WebNotificationClient.h:
1643         (WebNotificationClient):
1644
1645         * WebProcess/Notifications/WebNotificationManager.h: Add an additional map that maps
1646         all notifications associated with a given ScriptExecutionContext instance.
1647         * WebProcess/Notifications/WebNotificationManager.cpp:
1648         (WebKit::WebNotificationManager::show): Create a map entry for the notification's
1649         context if it doesn't exist already, and note that notification's ID. Also, correct
1650         the return value of show() if notifications are not enabled, to return false.
1651         (WebKit::WebNotificationManager::didCloseNotifications): When the notification is closed,
1652         we remove that notification from the map.
1653         (WebKit::WebNotificationManager::clearNotifications): Use the map entry for the given
1654         context, and pass that along to the proxy so that all of the notifications with those IDs
1655         can be cleared. In the meantime, we remove that context's map entry.
1656
1657         * UIProcess/Notifications/WebNotificationManagerProxy.messages.in: New ClearNotifications()
1658         message.
1659         * UIProcess/Notifications/WebNotificationManagerProxy.h:
1660         * UIProcess/Notifications/WebNotificationManagerProxy.cpp:
1661         (WebKit::WebNotificationManagerProxy::clearNotifications): Forward the call to the provider.
1662         Then remove this proxy's entries for the given notification IDs.
1663
1664         * UIProcess/Notifications/WebNotificationProvider.cpp:
1665         (WebKit::WebNotificationProvider::clearNotifications): Convert the vector of IDs to a mutable
1666         array.
1667         * UIProcess/Notifications/WebNotificationProvider.h:
1668         (WebNotificationProvider):
1669
1670         * UIProcess/API/C/WKNotificationProvider.h: Add WK API to tell the platform to clear the notifications.
1671
1672         Remove the #if guard since they already exist in WebNotificationManager functions:
1673         * WebProcess/WebCoreSupport/WebNotificationClient.cpp:
1674         (WebKit::WebNotificationClient::show):
1675         (WebKit::WebNotificationClient::cancel):
1676         (WebKit::WebNotificationClient::notificationObjectDestroyed):
1677
1678 2012-02-02  Anders Carlsson  <andersca@apple.com>
1679
1680         NPAPI will not send mouse up events when mouse is outside plugin area
1681         https://bugs.webkit.org/show_bug.cgi?id=77657
1682         <rdar://problem/10160674>
1683
1684         Reviewed by Andreas Kling.
1685
1686         Use EventHandler::setCapturingMouseEventsNode to ensure we get all the mouse events when the mouse is down.
1687
1688         * WebProcess/Plugins/PluginView.cpp:
1689         (WebKit::PluginView::handleEvent):
1690
1691 2012-02-02  Claudio Saavedra  <csaavedra@igalia.com> and Martin Robinson  <mrobinson@igalia.com>
1692
1693         [GTK] WebKitWebView won't work in a GtkOffscreenWindow
1694         https://bugs.webkit.org/show_bug.cgi?id=76911
1695
1696         Reviewed by Philippe Normand.
1697
1698         * UIProcess/API/gtk/WebKitUIClient.cpp:
1699         (getWindowFrame): Use the new helper.
1700         * UIProcess/API/gtk/WebKitWebView.cpp:
1701         (webkitWebViewCreateJavaScriptDialog): Ditto
1702         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
1703         (webkitWebViewBaseRealize): Ditto.
1704         (webkitWebViewBaseSizeAllocate): Ditto.
1705         (webkitWebViewBaseFocusInEvent): Ditto.
1706
1707 2012-02-01  Philippe Normand  <pnormand@igalia.com>
1708
1709         [GStreamer] FFTFrame implementation
1710         https://bugs.webkit.org/show_bug.cgi?id=73545
1711
1712         Reviewed by Chris Rogers.
1713
1714         * GNUmakefile.am: Remove libfftw compilation flags.
1715
1716 2012-02-01  No'am Rosenthal  <noam.rosenthal@nokia.com>
1717
1718         [Texmap] Use glScissors for clipping in TextureMapperGL when possible
1719         https://bugs.webkit.org/show_bug.cgi?id=77575
1720
1721         Reviewed by Martin Robinson.
1722
1723         Instead of applying the scissor clip in QQuickWebPage, we trickle it down to
1724         TextureMapperGL, and apply it there as part of beginClip(). All direct GL operations are
1725         now cleaned out of QQuickWebPage.
1726
1727         * UIProcess/API/qt/qquickwebpage.cpp:
1728         (QQuickWebPagePrivate::paintToCurrentGLContext):
1729         * UIProcess/DrawingAreaProxy.h:
1730         (WebKit::DrawingAreaProxy::paintToCurrentGLContext):
1731         * UIProcess/DrawingAreaProxyImpl.cpp:
1732         (WebKit::DrawingAreaProxyImpl::paintToCurrentGLContext):
1733         * UIProcess/DrawingAreaProxyImpl.h:
1734         (DrawingAreaProxyImpl):
1735         * UIProcess/LayerTreeHostProxy.h:
1736         (LayerTreeHostProxy):
1737         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
1738         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
1739
1740 2012-02-01  Dan Bernstein  <mitz@apple.com>
1741
1742         WebKit2 part of <rdar://problem/10442663> Paginated display does not respect page-break-{before,after}
1743         https://bugs.webkit.org/show_bug.cgi?id=77505
1744
1745         Reviewed by Darin Adler.
1746
1747         * Shared/WebPageCreationParameters.cpp:
1748         (WebKit::WebPageCreationParameters::encode): Encode paginationBehavesLikeColumns.
1749         (WebKit::WebPageCreationParameters::decode): Decode paginationBehavesLikeColumns.
1750         * Shared/WebPageCreationParameters.h:
1751         (WebPageCreationParameters): Added paginationBehavesLikeColumns boolean.
1752         * UIProcess/API/C/WKPage.cpp:
1753         (WKPageSetPaginationBehavesLikeColumns): Added this setter.
1754         (WKPageGetPaginationBehavesLikeColumns): Added this getter.
1755         * UIProcess/API/C/WKPagePrivate.h:
1756         * UIProcess/API/mac/WKBrowsingContextController.mm:
1757         (-[WKBrowsingContextController setPaginationBehavesLikeColumns:]): Added this Objective-C
1758         wrapper around WKPageSetPaginationBehavesLikeColumns.
1759         (-[WKBrowsingContextController paginationBehavesLikeColumns]): Added this Objective-C wrapper
1760         around WKPageGetPaginationBehavesLikeColumns.
1761         * UIProcess/API/mac/WKBrowsingContextControllerPrivate.h:
1762         * UIProcess/WebPageProxy.cpp:
1763         (WebKit::WebPageProxy::WebPageProxy): Added call to setPaginationBehavesLikeColumns() with
1764         the value from the creation parameters.
1765         (WebKit::WebPageProxy::setPaginationBehavesLikeColumns): Added this setter.
1766         (WebKit::WebPageProxy::creationParameters): Populate paginationBehavesLikeColumns.
1767         * UIProcess/WebPageProxy.h:
1768         (WebKit::WebPageProxy::paginationBehavesLikeColumns): Added this getter.
1769         * WebProcess/WebPage/WebPage.cpp:
1770         (WebKit::WebPage::setPaginationBehavesLikeColumns): Added this setter.
1771         * WebProcess/WebPage/WebPage.h:
1772         * WebProcess/WebPage/WebPage.messages.in: Added SetPaginationBehavesLikeColumns message.
1773
1774 2012-02-01  Anders Carlsson  <andersca@apple.com>
1775
1776         REGRESSION (r104727): Strange graphics corruption opening a new tab in Safari
1777         https://bugs.webkit.org/show_bug.cgi?id=77578
1778         <rdar://problem/10767174>
1779
1780         Reviewed by Dan Bernstein.
1781
1782         Resizing a window will always invalidate the window backing store, so make sure to set
1783         _data->_windowHasValidBackingStore to NO whenever that happens.
1784
1785         * UIProcess/API/mac/WKView.mm:
1786         (-[WKView addWindowObserversForWindow:]):
1787         Use separate methods for the NSWindowDidMoveNotification and NSWindowDidResizeNotification notifications.
1788
1789         (-[WKView _windowDidMove:]):
1790         Call -[WKView _updateWindowAndViewFrames].
1791
1792         (-[WKView _windowDidResize:]):
1793         Call -[WKView _updateWindowAndViewFrames] and mark the window backing store as invalid.
1794
1795 2012-02-01  Beth Dakin  <bdakin@apple.com>
1796
1797         https://bugs.webkit.org/show_bug.cgi?id=77383
1798         Add a different didFirstVisuallNonEmptyLayout heuristic to experiment with
1799         -and corresponding-
1800         <rdar://problem/10709560>
1801
1802         Reviewed by Sam Weinig.
1803
1804         Machinery for didNewFirstVisuallNonEmptyLayout.
1805         * UIProcess/API/C/WKPage.h:
1806         * UIProcess/WebLoaderClient.cpp:
1807         (WebKit::WebLoaderClient::didNewFirstVisuallyNonEmptyLayout):
1808         (WebKit):
1809         * UIProcess/WebLoaderClient.h:
1810         (WebLoaderClient):
1811         * UIProcess/WebPageProxy.cpp:
1812         (WebKit::WebPageProxy::didNewFirstVisuallyNonEmptyLayout):
1813         (WebKit):
1814         * UIProcess/WebPageProxy.h:
1815         (WebPageProxy):
1816         * UIProcess/WebPageProxy.messages.in:
1817         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
1818         (WebKit::WebFrameLoaderClient::dispatchDidNewFirstVisuallyNonEmptyLayout):
1819         (WebKit):
1820         * WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
1821         (WebFrameLoaderClient):
1822
1823         This temporary API allows the client to specify the threshold for the painted 
1824         objects counter on Page. This is temporary.
1825         * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
1826         (WKBundlePageSetPaintedObjectsCounterThreshold):
1827         * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
1828         * WebProcess/WebPage/WebPage.cpp:
1829         (WebKit::WebPage::setPaintedObjectsCounterThreshold):
1830         (WebKit):
1831         * WebProcess/WebPage/WebPage.h:
1832         (WebPage):
1833
1834 2012-01-31  Alexey Proskuryakov  <ap@apple.com>
1835
1836         REGRESSION (WebKit2): event.keyCode is always zero when typing in Russian
1837         https://bugs.webkit.org/show_bug.cgi?id=77473
1838         <rdar://problem/10751357>
1839
1840         Reviewed by Darin Adler.
1841
1842         * Shared/mac/WebEventFactory.mm: Removed broken copy/pasted implementation in favor of
1843         WebCore ones.
1844
1845 2012-01-31  Alexey Proskuryakov  <ap@apple.com>
1846
1847         PluginProcess should be able to use remote open and save panels
1848         https://bugs.webkit.org/show_bug.cgi?id=77461
1849         <rdar://problem/10783615>
1850
1851         Reviewed by Mark Rowe.
1852
1853         * PluginProcess/mac/PluginProcess.entitlements: Added.
1854         * PluginProcess/mac/add-entitlements.sh: Added.
1855         * WebKit2.xcodeproj/project.pbxproj:
1856         Add appropriate entitlement, plus ad hoc binary signing for it to work.
1857
1858 2012-01-31  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1859
1860         Ensure tiles are repainted when scrolling using mouse wheel.
1861         https://bugs.webkit.org/show_bug.cgi?id=77339
1862
1863         A new slot visibleContentRectAndScaleChanged has been added
1864         that is emited by non-animated scrolling code in the
1865         QtViewportInteractionEngine.
1866
1867         Reviewed by Kenneth Rohde Christiansen.
1868
1869         * UIProcess/API/qt/qquickwebview.cpp:
1870         (QQuickWebViewPrivate::initializeDesktop):
1871         (QQuickWebViewPrivate::initializeTouch):
1872         (QQuickWebViewPrivate::_q_resume):
1873         (QQuickWebViewPrivate::_q_updateVisibleContentRectAndScale):
1874         (QQuickWebViewPrivate::updateTouchViewportSize):
1875         * UIProcess/API/qt/qquickwebview_p.h:
1876         * UIProcess/API/qt/qquickwebview_p_p.h:
1877         (QQuickWebViewPrivate):
1878         * UIProcess/qt/QtViewportInteractionEngine.cpp:
1879         (WebKit::QtViewportInteractionEngine::wheelEvent):
1880         * UIProcess/qt/QtViewportInteractionEngine.h:
1881         (QtViewportInteractionEngine):
1882
1883 2012-01-31  Zeno Albisser  <zeno@webkit.org>
1884
1885         [Qt][WK2] Make UIProcess decide about encoding of input data for application URL schemes.
1886         https://bugs.webkit.org/show_bug.cgi?id=77417
1887
1888         Make the UIProcess decide about the encoding and display
1889         a warning in case no encoding was defined.
1890         Make the QQuickNetworkReply store a QWeakPointer to the
1891         QQuickWebViewExperimental to get rid of hackish chain of parental queries.
1892
1893         Reviewed by Simon Hausmann.
1894
1895         * UIProcess/API/qt/qquicknetworkreply.cpp:
1896         (QQuickNetworkReply::send):
1897         (QQuickNetworkReply::setWebViewExperimental):
1898         * UIProcess/API/qt/qquicknetworkreply_p.h:
1899         * UIProcess/API/qt/qquickwebview.cpp:
1900         (QQuickWebViewExperimental::schemeDelegates_Append):
1901         * WebProcess/qt/QtNetworkReply.cpp:
1902         (WebKit::QtNetworkReply::QtNetworkReply):
1903         (WebKit::QtNetworkReply::setReplyData):
1904
1905 2012-01-30  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1906
1907         [Qt] Disconnect the LayerTreeHost from layers when they get removed from their parent.
1908         https://bugs.webkit.org/show_bug.cgi?id=77362
1909
1910         Reviewed by Noam Rosenthal.
1911
1912         This fixes crashes seen in layout tests under certain timing circumstances
1913         that appeared after r106109 was landed.
1914
1915         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
1916         (WebCore::WebGraphicsLayer::replaceChild):
1917         (WebCore::WebGraphicsLayer::removeFromParent):
1918
1919 2012-01-30  Beth Dakin  <bdakin@apple.com>
1920
1921         https://bugs.webkit.org/show_bug.cgi?id=77263
1922         PlatformScreenMac should not rely on NSWindow for important bits of data
1923
1924         Reviewed by Geoff Garen.
1925
1926         toUserSpace() and toDeviceSpace() now take a parameter for the 
1927         deviceScaleFactor.
1928         * UIProcess/API/mac/WKView.mm:
1929         (-[WKView _convertToDeviceSpace:]):
1930         (-[WKView _convertToUserSpace:]):
1931
1932 2012-01-26  No'am Rosenthal  <noam.rosenthal@nokia.com> and Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1933
1934         [Qt] WKTR: Use a software rendering pipiline when running tests.
1935         https://bugs.webkit.org/show_bug.cgi?id=76708
1936
1937         Reviewed by Kenneth Rohde Christiansen.
1938
1939         Animation layout tests require the graphics layers tree to be updated
1940         to pass. WebkitTestRunner doesn't show its wrapping QQuickView, which
1941         prevents the rendering pipeline to run and then in turn blocks the web
1942         process from processing further graphics layer updates.
1943
1944         This allows the tests to use a TextureMapperQt to empty the LayerTreeHost's
1945         message queue and render the layers in software on an offscreen buffer.
1946
1947         * UIProcess/API/qt/qquickwebpage.cpp:
1948         (QQuickWebPagePrivate::paint):
1949         * UIProcess/API/qt/qquickwebview.cpp:
1950         (QQuickWebViewPrivate::QQuickWebViewPrivate):
1951         (QQuickWebViewPrivate::setNeedsDisplay):
1952         (QQuickWebViewExperimental::setRenderToOffscreenBuffer):
1953         (QQuickWebViewExperimental::renderToOffscreenBuffer):
1954         * UIProcess/API/qt/qquickwebview_p.h:
1955         * UIProcess/API/qt/qquickwebview_p_p.h:
1956         (QQuickWebViewPrivate::setRenderToOffscreenBuffer):
1957         (QQuickWebViewPrivate::renderToOffscreenBuffer):
1958         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
1959         (WebKit::LayerTreeHostProxy::paintToGraphicsContext):
1960
1961 2012-01-30  Andras Becsi  <andras.becsi@nokia.com>
1962
1963         [Qt][WK2] Render layers do not get flushed when the scroll animation finishes
1964         https://bugs.webkit.org/show_bug.cgi?id=77338
1965
1966         Reviewed by Noam Rosenthal.
1967
1968         Schedule a layer flush when setting the visible content rect and scale.
1969
1970         Fixed with the help of Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
1971
1972         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
1973         (WebKit::LayerTreeHostQt::setVisibleContentRectAndScale):
1974
1975 2012-01-30  Carlos Garcia Campos  <cgarcia@igalia.com>
1976
1977         Unreviewed. Fix make distcheck.
1978
1979         * GNUmakefile.am: Add missing files.
1980         * WebProcess/WebPage/TapHighlightController.cpp: Add #if
1981         ENABLE(TOUCH_EVENTS).
1982
1983 2012-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
1984
1985         Unreviewed, rolling out r106022.
1986         http://trac.webkit.org/changeset/106022
1987         https://bugs.webkit.org/show_bug.cgi?id=77305
1988
1989         It broke Qt-WK2 API tests (Requested by Ossy_weekend on
1990         #webkit).
1991
1992         * UIProcess/API/qt/qquickwebview.cpp:
1993         (QQuickWebViewPrivate::setUseTraditionalDesktopBehaviour):
1994         (QQuickWebView::geometryChanged):
1995         * UIProcess/API/qt/qquickwebview_p.h:
1996         * UIProcess/API/qt/qwebviewportinfo.cpp:
1997         (QWebViewportInfo::currentScale):
1998         (QWebViewportInfo::devicePixelRatio):
1999         (QWebViewportInfo::initialScale):
2000         (QWebViewportInfo::minimumScale):
2001         (QWebViewportInfo::maximumScale):
2002         (QWebViewportInfo::isScalable):
2003         (QWebViewportInfo::layoutSize):
2004
2005 2012-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
2006
2007         Unreviewed, rolling out r106109.
2008         http://trac.webkit.org/changeset/106109
2009         https://bugs.webkit.org/show_bug.cgi?id=77302
2010
2011         It made tests crash (Requested by Ossy_weekend on #webkit).
2012
2013         * UIProcess/API/qt/qquickwebpage.cpp:
2014         * UIProcess/API/qt/qquickwebpage_p_p.h:
2015         (QQuickWebPagePrivate):
2016         * UIProcess/API/qt/qquickwebview.cpp:
2017         (QQuickWebViewPrivate::QQuickWebViewPrivate):
2018         * UIProcess/API/qt/qquickwebview_p.h:
2019         * UIProcess/API/qt/qquickwebview_p_p.h:
2020         (QQuickWebViewPrivate):
2021         * UIProcess/DrawingAreaProxy.h:
2022         * UIProcess/DrawingAreaProxyImpl.cpp:
2023         * UIProcess/DrawingAreaProxyImpl.h:
2024         (DrawingAreaProxyImpl):
2025         * UIProcess/LayerTreeHostProxy.h:
2026         (LayerTreeHostProxy):
2027         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2028         (WebKit::LayerTreeHostProxy::paintToCurrentGLContext):
2029         * UIProcess/qt/QtPageClient.cpp:
2030         (QtPageClient::setViewNeedsDisplay):
2031
2032 2012-01-27  Fady Samuel  <fsamuel@chromium.org>
2033
2034         Rename shouldLayoutFixedElementsRelativeToFrame and make it a setting
2035         https://bugs.webkit.org/show_bug.cgi?id=76459
2036
2037         Reviewed by Darin Fisher.
2038
2039         * win/WebKit2.def:
2040         * win/WebKit2CFLite.def:
2041
2042 2012-01-27  Martin Robinson  <mrobinson@igalia.com>
2043
2044         Fix a compilation warning in a WebKit2 GTK+ API test.
2045
2046         Reviewed by Gustavo Noronha Silva.
2047
2048         * UIProcess/API/gtk/tests/TestBackForwardList.cpp:
2049         (testBackForwardListLimitAndCache): Use an int instead of size_t
2050         because we want to print them as ints and do subtraction on them.
2051
2052 2012-01-27  Martin Robinson  <mrobinson@igalia.com>
2053
2054         [GTK] [WK2] Implement the policy client
2055         https://bugs.webkit.org/show_bug.cgi?id=76343
2056
2057         Reviewed by Gustavo Noronha Silva.
2058
2059         Implement the abstract WebKitPolicyDecision, WebKitNavigationPolicyDecision,
2060         and add the decide-policy signal to WebKitWebView.
2061
2062         * GNUmakefile.am: Add new files to the source list.
2063         * UIProcess/API/gtk/WebKitError.cpp: Use the WebCore namespace because
2064         of changes to ASSERT_MATCHING_ENUMS.
2065         * UIProcess/API/gtk/WebKitNavigationPolicyDecision.cpp: Added.
2066         * UIProcess/API/gtk/WebKitNavigationPolicyDecision.h: Added.
2067         * UIProcess/API/gtk/WebKitNavigationPolicyDecisionPrivate.h: Added.
2068         * UIProcess/API/gtk/WebKitPolicyClient.cpp: Added.
2069         * UIProcess/API/gtk/WebKitPolicyClientPrivate.h: Added.
2070         * UIProcess/API/gtk/WebKitPolicyDecision.cpp: Added.
2071         * UIProcess/API/gtk/WebKitPolicyDecision.h: Added.
2072         * UIProcess/API/gtk/WebKitPolicyDecisionPrivate.h: Added.
2073         * UIProcess/API/gtk/WebKitPrivate.h: Modify ASSERT_MATCHING_ENUMS to make
2074         it useful for non-WebCore enums.
2075         * UIProcess/API/gtk/WebKitWebView.cpp:
2076         (webkitWebViewConstructed): Attach the policy client callbacks to the page.
2077         (webkit_web_view_class_init): Add the decide-policy signal definition.
2078         (webkitWebViewMakePolicyDecision): Added this private method to fire the signal.
2079         * UIProcess/API/gtk/WebKitWebView.h: Added new signal to the list.
2080         * UIProcess/API/gtk/WebKitWebViewPrivate.h: Added new method declaration.
2081         * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Added new classes to the docs.
2082         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Ditto.
2083         * UIProcess/API/gtk/tests/GNUmakefile.am: Added new test to the source list.
2084         * UIProcess/API/gtk/tests/TestWebKitPolicyClient.cpp: Added.
2085         * UIProcess/API/gtk/webkit2marshal.list: decide-policy has a new signature.
2086
2087 2012-01-27  Ada Chan  <adachan@apple.com>
2088
2089         Add API to get the parent frame in WKBundleFrameRef
2090         https://bugs.webkit.org/show_bug.cgi?id=77161
2091
2092         Reviewed by Anders Carlsson.
2093
2094         * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
2095         (WKBundleFrameGetParentFrame): Get the parent frame by calling WebFrame::parentFrame().
2096         * WebProcess/InjectedBundle/API/c/WKBundleFrame.h:
2097         * WebProcess/WebPage/WebFrame.cpp:
2098         (WebKit::WebFrame::parentFrame): Return null if the frame does not have an owner element.
2099         Otherwise, return the owner element's frame.
2100         * WebProcess/WebPage/WebFrame.h:
2101
2102 2012-01-27  Gustavo Noronha Silva  <gns@gnome.org>
2103
2104         [GTK] Sometimes fails to build when using make -j
2105         https://bugs.webkit.org/show_bug.cgi?id=77226
2106
2107         Reviewed by Martin Robinson.
2108
2109         * GNUmakefile.am: use a different name for the scripts used to
2110         generate enum files for WebKitGTK+ and WebKit2GTK+, so they do not
2111         clash;
2112
2113 2012-01-27  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2114
2115         Fix overridePreference for WebKitHixie76WebSocketProtocolEnabled in WebKitTestRunner.
2116         https://bugs.webkit.org/show_bug.cgi?id=77220
2117
2118         Reviewed by Noam Rosenthal.
2119
2120         * WebProcess/InjectedBundle/InjectedBundle.cpp:
2121         (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): The macro already stringify TestRunnerName.
2122
2123 2012-01-27  Carlos Garcia Campos  <cgarcia@igalia.com>
2124
2125         [GTK] Add a GKeyFile especialization to GOwnPtr
2126         https://bugs.webkit.org/show_bug.cgi?id=77191
2127
2128         Reviewed by Martin Robinson.
2129
2130         * Shared/gtk/ArgumentCodersGtk.cpp:
2131         (CoreIPC::decodeGKeyFile): Use GOwnPtr for GKeyFile.
2132         (CoreIPC::encode): Ditto.
2133         (CoreIPC::decode): Ditto.
2134
2135 2012-01-27  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2136
2137         [Qt] Fade out tap highlighting when starting to pan
2138         https://bugs.webkit.org/show_bug.cgi?id=77202
2139
2140         Reviewed by Simon Hausmann.
2141
2142         Basically we need to fade out the potential tap highlighting
2143         when ever the gesture recognition fails or another gesture
2144         is recognized. We do that with this change.
2145
2146         * UIProcess/qt/QtTapGestureRecognizer.cpp:
2147         (WebKit::QtTapGestureRecognizer::QtTapGestureRecognizer):
2148         (WebKit::QtTapGestureRecognizer::recognize):
2149         (WebKit::QtTapGestureRecognizer::reset):
2150
2151             Remove reset as it does nothing but call code before the
2152             event handler is installed.
2153
2154 2012-01-26  No'am Rosenthal  <noam.rosenthal@nokia.com> and Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2155
2156         [Qt] WKTR: Use a software rendering pipiline when running tests.
2157         https://bugs.webkit.org/show_bug.cgi?id=76708
2158
2159         Reviewed by Kenneth Rohde Christiansen.
2160
2161         Animation layout tests require the graphics layers tree to be updated
2162         to pass. WebkitTestRunner doesn't show its wrapping QQuickView, which
2163         prevents the rendering pipeline to run and then in turn blocks the web
2164         process from processing further graphics layer updates.
2165
2166         This allows the tests to use a TextureMapperQt to empty the LayerTreeHost's
2167         message queue and render the layers in software on an offscreen buffer.
2168
2169         * UIProcess/API/qt/qquickwebpage.cpp:
2170         (QQuickWebPagePrivate::paint):
2171         * UIProcess/API/qt/qquickwebview.cpp:
2172         (QQuickWebViewPrivate::QQuickWebViewPrivate):
2173         (QQuickWebViewPrivate::setNeedsDisplay):
2174         (QQuickWebViewExperimental::setRenderToOffscreenBuffer):
2175         (QQuickWebViewExperimental::renderToOffscreenBuffer):
2176         * UIProcess/API/qt/qquickwebview_p.h:
2177         * UIProcess/API/qt/qquickwebview_p_p.h:
2178         (QQuickWebViewPrivate::setRenderToOffscreenBuffer):
2179         (QQuickWebViewPrivate::renderToOffscreenBuffer):
2180         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2181         (WebKit::LayerTreeHostProxy::paintToGraphicsContext):
2182
2183 2012-01-27  Simon Hausmann  <simon.hausmann@nokia.com>
2184
2185         [Qt] Re-creating QQuickWebView starts new web process every time
2186         https://bugs.webkit.org/show_bug.cgi?id=77194
2187
2188         Reviewed by Kenneth Rohde Christiansen.
2189
2190         Since the WebKit::WebContext is never fully destructed due to circular
2191         references, we should use the real shared context instead of re-creating
2192         a new WebContext every time.
2193
2194         * UIProcess/qt/QtWebContext.cpp:
2195         (WebKit::QtWebContext::defaultContext):
2196
2197 2012-01-26  Carlos Garcia Campos  <cgarcia@igalia.com>
2198
2199         [GTK] Add basic printing support to WebKit2
2200         https://bugs.webkit.org/show_bug.cgi?id=76172
2201
2202         Reviewed by Gustavo Noronha Silva.
2203
2204         * GNUmakefile.am: Add new files to compilation.
2205         * Shared/PrintInfo.cpp:
2206         (WebKit::PrintInfo::encode): Encode also GtkPrintSettings and
2207         GtkPageSetup for the GTK+ port.
2208         (WebKit::PrintInfo::decode): Decode also GtkPrintSettings and
2209         GtkPageSetup for the GTK+ port.
2210         * Shared/PrintInfo.h: Add GtkPrintSettings and GtkPageSetup member
2211         for the GTK+ port.
2212         * Shared/gtk/ArgumentCodersGtk.cpp:
2213         (CoreIPC::encodeGKeyFile): Helper function to encode a GKeyFile as
2214         a DataReference object.
2215         (CoreIPC::decodeGKeyFile): Helper function to decode a GKeyFile to
2216         a DataReference object.
2217         (CoreIPC::encode): Encode GtkPrintSettings and GtkPageSetup using
2218         the GKeyFile representation.
2219         (CoreIPC::decode): Decode GtkPrintSettings and GtkPageSetup using
2220         the GKeyFile representation.
2221         * Shared/gtk/ArgumentCodersGtk.h:
2222         * Shared/gtk/PrintInfoGtk.cpp: Copied from Source/WebKit2/Shared/PrintInfo.cpp.
2223         (WebKit::PrintInfo::PrintInfo): Add PrintInfo constructor that
2224         takes GtkPrintSettings and GtkPageSetup instances.
2225         * UIProcess/WebPageProxy.cpp:
2226         (WebKit::WebPageProxy::drawPagesForPrinting): Send
2227         DrawPagesForPrinting message to Web process to start printing.
2228         * UIProcess/WebPageProxy.h:
2229         * WebProcess/WebPage/WebPage.cpp:
2230         (WebKit::WebPage::beginPrinting): Create a WebPrintOperationGtk.
2231         (WebKit::WebPage::endPrinting): Delete the WebPrintOperationGtk
2232         object.
2233         (WebKit::WebPage::drawPagesForPrinting): Start printing pages.
2234         * WebProcess/WebPage/WebPage.h:
2235         * WebProcess/WebPage/WebPage.messages.in: Add DrawPagesForPrinting message.
2236         * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: Added.
2237         (WebKit::PrintPagesData::PrintPagesData): Struct to store all data
2238         used to render pages for printing.
2239         (WebKit::PrintPagesData::incrementPageSequence): Helper function
2240         to increment the page sequence.
2241         (WebKit::WebPrintOperationGtk::create): Create a
2242         WebPrintOperationGtkUnix or WebPrintOperationGtkWin32 depending on
2243         the platform.
2244         (WebKit::WebPrintOperationGtk::WebPrintOperationGtk):
2245         (WebKit::WebPrintOperationGtk::~WebPrintOperationGtk):
2246         (WebKit::WebPrintOperationGtk::pageCount): Return the total pages
2247         of the document to print.
2248         (WebKit::WebPrintOperationGtk::rotatePage): Helper function to
2249         transform the context according to orientation.
2250         (WebKit::WebPrintOperationGtk::renderPage): Render the given page
2251         into the printing context.
2252         (WebKit::WebPrintOperationGtk::printPagesIdle): Idle function used
2253         to print pages.
2254         (WebKit::WebPrintOperationGtk::printPagesIdleDone): Callback
2255         called when printPagesIdle finishes.
2256         (WebKit::WebPrintOperationGtk::printDone): Helper function to
2257         finish the print operation, called when all pages have been rendered.
2258         (WebKit::WebPrintOperationGtk::print): Start printing the document
2259         using the given cairo surface.
2260         * WebProcess/WebPage/gtk/WebPrintOperationGtk.h: Added.
2261         (WebKit::WebPrintOperationGtk::printSettings):
2262         (WebKit::WebPrintOperationGtk::pageSetup):
2263         (WebKit::WebPrintOperationGtk::pagesToPrint):
2264         (WebKit::WebPrintOperationGtk::pageRanges):
2265         (WebKit::WebPrintOperationGtk::pageRangesCount):
2266
2267 2012-01-26  Tim Horton  <hortont424@gmail.com>
2268
2269         3D transformed elements hide when showing the print dialog
2270         https://bugs.webkit.org/show_bug.cgi?id=45894
2271         <rdar://problem/7441593>
2272
2273         Reviewed by Andy Estes.
2274
2275         Suspend updates of the compositing layer tree while printing is taking place,
2276         preventing on-screen layers from moving to their print-mode positions.
2277
2278         * WebProcess/WebPage/WebPage.cpp:
2279         (WebKit::WebPage::beginPrinting):
2280         (WebKit::WebPage::endPrinting):
2281         * WebProcess/WebPage/ca/LayerTreeHostCA.h:
2282         * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.h:
2283         * WebProcess/WebPage/ca/mac/LayerTreeHostCAMac.mm:
2284         (WebKit::LayerTreeHostCAMac::forceRepaint):
2285         (WebKit::LayerTreeHostCAMac::flushPendingLayerChanges):
2286
2287 2012-01-26  Andras Becsi  <andras.becsi@nokia.com>
2288
2289         [Qt][WK2] Add the componentComplete method to WebView
2290         https://bugs.webkit.org/show_bug.cgi?id=77111
2291
2292         Reviewed by Kenneth Rohde Christiansen.
2293
2294         Move the touch/desktop initialization to componentComplete.
2295         Also return valid default values in the viewport info functions
2296         if the interaction engine is not yet initialized because the
2297         viewport info component could finish initialization earlier
2298         than the WebView, which results in QML warnings during MiniBrowser
2299         startup.
2300
2301         * UIProcess/API/qt/qquickwebview.cpp:
2302         (QQuickWebViewPrivate::setUseTraditionalDesktopBehaviour):
2303         (QQuickWebView::geometryChanged):
2304         (QQuickWebView::componentComplete):
2305         * UIProcess/API/qt/qquickwebview_p.h:
2306         * UIProcess/API/qt/qwebviewportinfo.cpp:
2307         (QWebViewportInfo::currentScale):
2308         (QWebViewportInfo::devicePixelRatio):
2309         (QWebViewportInfo::initialScale):
2310         (QWebViewportInfo::minimumScale):
2311         (QWebViewportInfo::maximumScale):
2312         (QWebViewportInfo::isScalable):
2313         (QWebViewportInfo::layoutSize):
2314
2315 2012-01-26  Anders Carlsson  <andersca@apple.com>
2316
2317         WebWheelEvent::Phase and PlatformWheelEvent::Phase declarations should match AppKit
2318         https://bugs.webkit.org/show_bug.cgi?id=77123
2319
2320         Reviewed by Beth Dakin.
2321
2322         * Shared/WebEvent.h:
2323         ():
2324         * Shared/mac/WebEventFactory.mm:
2325         (WebKit::phaseForEvent):
2326
2327 2012-01-26  Andras Becsi  <andras.becsi@nokia.com>
2328
2329         ASSERT(!m_overlay) reached in TapHighlightController.cpp:73
2330         https://bugs.webkit.org/show_bug.cgi?id=77117
2331
2332         Reviewed by Tor Arne Vestbø.
2333
2334         The PageOverlay does only get uninstalled after the fade-out animation finishes,
2335         so do not assert on !m_overlay after the uninstallPageOverlay call.
2336
2337         * WebProcess/WebPage/TapHighlightController.cpp:
2338         (WebKit::TapHighlightController::hideHighlight):
2339
2340 2012-01-26  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2341
2342         WebPreferencesStore: use DEFINE_STATIC_LOCAL for overrides HashMap
2343         https://bugs.webkit.org/show_bug.cgi?id=77109
2344
2345         Reviewed by Andreas Kling.
2346
2347         Fix build for Clang.
2348
2349         * Shared/WebPreferencesStore.cpp:
2350         (WebKit):
2351         (WebKit::boolTestRunnerOverridesMap):
2352         (WebKit::WebPreferencesStore::overrideBoolValueForKey):
2353         (WebKit::WebPreferencesStore::removeTestRunnerOverrides):
2354         (WebKit::WebPreferencesStore::getBoolValueForKey):
2355
2356 2012-01-26  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2357
2358         Implement overridePreference for boolean preferences in WebKitTestRunner
2359         https://bugs.webkit.org/show_bug.cgi?id=77033
2360
2361         Reviewed by Alexey Proskuryakov.
2362
2363         Implement a way to WebKitTestRunner override preferences for the pages
2364         loaded. Follows the same approach taken by
2365         overrideXSSAuditorEnabledForTestRunner() from r66551, but generalizing to many
2366         preferences.
2367
2368         Preferences are stored in the UI process using WebPreferencesStore, and when
2369         there's a change, this data is sent to Web process, triggering
2370         WebPage::preferencesDidChange(), which take a WebPreferencesStore and apply it's
2371         data to the WebCore::Settings object.
2372
2373         The overridePreference() is executed on the Web process, and set the preferences
2374         without communicating to the UI process. The overriden preferences are stored in
2375         a static map and WebPreferencesStore query this map before returning the values
2376         of each preference. This static map is used only on the Web process.
2377
2378         To clear the overrides we need to clear the map. Since WTR only sets preferences
2379         when resetting the page, we hook the clearing at WebPage::preferencesDidChange().
2380         A WKPreferences private function was exposed to WTR force the update, in case
2381         there's no effective change at UI process (all the properties remains the same).
2382
2383         This clearing could be improved by creating a proper message instead of hooking
2384         at WebPage::preferencesDidChange().
2385
2386         * Shared/WebPreferencesStore.cpp:
2387         (WebKit::WebPreferencesStore::decode):
2388         (WebKit::WebPreferencesStore::overrideBoolValueForKey):
2389         (WebKit::WebPreferencesStore::removeTestRunnerOverrides):
2390         (WebKit::WebPreferencesStore::getBoolValueForKey):
2391         * Shared/WebPreferencesStore.h:
2392         * UIProcess/API/C/WKPreferences.cpp:
2393         (WKPreferencesResetTestRunnerOverrides):
2394         * UIProcess/API/C/WKPreferencesPrivate.h:
2395         * UIProcess/WebPreferences.h:
2396         (WebKit::WebPreferences::forceUpdate):
2397         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
2398         (WKBundleOverrideBoolPreferenceForTestRunner):
2399         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
2400         * WebProcess/InjectedBundle/InjectedBundle.cpp:
2401         (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
2402         (WebKit::InjectedBundle::overrideXSSAuditorEnabledForTestRunner):
2403         * WebProcess/InjectedBundle/InjectedBundle.h:
2404
2405 2012-01-26  Carlos Garcia Campos  <cgarcia@igalia.com>
2406
2407         [GTK][WK2] Primary clipboard should be updated with the current selection in X11 platforms
2408         https://bugs.webkit.org/show_bug.cgi?id=77097
2409
2410         Reviewed by Martin Robinson.
2411
2412         * WebProcess/WebCoreSupport/WebEditorClient.cpp:
2413         (WebKit::WebEditorClient::respondToChangedSelection): Call
2414         setSelectionPrimaryClipboardIfNeeded() to update primary clipboard
2415         in X11 platforms.
2416         * WebProcess/WebCoreSupport/WebEditorClient.h:
2417         * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
2418         (WebKit::collapseSelection): Callback called when clearing
2419         clipboard contents.
2420         (WebKit::WebEditorClient::setSelectionPrimaryClipboardIfNeeded):
2421         Updaye primary clipboard with the current selection.
2422
2423 2012-01-26  Zeno Albisser  <zeno@webkit.org>
2424
2425         [Qt][WK2] Use QVariant for payload data in application URL schemes.
2426         https://bugs.webkit.org/show_bug.cgi?id=77007
2427
2428         Make application schemes use QVariant for payload data.
2429         This allows passing QByteArrays as well as simple String data.
2430
2431         Remove unneeded http header parts that were exposed in
2432         QQuickNetworkReply.
2433
2434         Add ByteArrayTestData class to allow injecting QByteArray
2435         data into an application scheme handler for testing.
2436
2437         Reviewed by Simon Hausmann.
2438
2439         * Shared/qt/QtNetworkReplyData.cpp:
2440         (WebKit::QtNetworkReplyData::QtNetworkReplyData):
2441         (WebKit::QtNetworkReplyData::encode):
2442         (WebKit::QtNetworkReplyData::decode):
2443         * Shared/qt/QtNetworkReplyData.h:
2444         * UIProcess/API/qt/qquicknetworkreply.cpp:
2445         (QQuickNetworkReply::QQuickNetworkReply):
2446         (QQuickNetworkReply::data):
2447         (QQuickNetworkReply::setData):
2448         (QQuickNetworkReply::send):
2449         * UIProcess/API/qt/qquicknetworkreply_p.h:
2450         * UIProcess/API/qt/tests/bytearraytestdata.cpp: Added.
2451         (ByteArrayTestData::ByteArrayTestData):
2452         (ByteArrayTestData::latin1Data):
2453         (ByteArrayTestData::utf8Data):
2454         * UIProcess/API/qt/tests/bytearraytestdata.h: Added.
2455         * UIProcess/API/qt/tests/qmltests/WebView/tst_applicationScheme.qml:
2456         * UIProcess/API/qt/tests/qmltests/tst_qmltests.cpp:
2457         (main):
2458         * UIProcess/API/qt/tests/tests.pri:
2459         * WebProcess/qt/QtNetworkReply.cpp:
2460         (WebKit::QtNetworkReply::setReplyData):
2461         * WebProcess/qt/QtNetworkReply.h:
2462
2463 2012-01-26  Thiago Marcos P. Santos  <tmpsantos@gmail.com>
2464
2465         [Qt] Fixed build when using force_static_libs_as_shared
2466         https://bugs.webkit.org/attachment.cgi?bugid=77082
2467
2468         Reviewed by Simon Hausmann.
2469
2470         * Target.pri:
2471
2472 2012-01-26  Nándor Huszka  <huszka.nandor@stud.u-szeged.hu>
2473
2474         [WK2] WebKitTestRunner needs layoutTestController.setGeolocationPermission
2475         https://bugs.webkit.org/show_bug.cgi?id=42545
2476
2477         Reviewed by Zoltan Herczeg.
2478
2479         Implement the setGeolocationPermission method.
2480
2481         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
2482         (WKBundleSetGeolocationPermission):
2483         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
2484         * WebProcess/InjectedBundle/InjectedBundle.cpp:
2485         (WebKit::InjectedBundle::setGeoLocationPermission):
2486         (WebKit):
2487         * WebProcess/InjectedBundle/InjectedBundle.h:
2488         (InjectedBundle):
2489
2490 2012-01-25  Mark Rowe  <mrowe@apple.com>
2491
2492         Build in to an alternate location when USE_STAGING_INSTALL_PATH is set.
2493
2494         <rdar://problem/10609417> Adopt USE_STAGING_INSTALL_PATH
2495
2496         Reviewed by David Kilzer.
2497
2498         * Configurations/BaseTarget.xcconfig: Define NORMAL_WEBKIT2_FRAMEWORKS_DIR, which contains
2499         the path where WebKit is normally installed. Update WEBKIT2_FRAMEWORKS_DIR to point to
2500         the staged frameworks directory when USE_STAGING_INSTALL_PATH is set. Update
2501         UMBRELLA_FRAMEWORKS_DIR so we can find WebCore at the top level of the staged frameworks
2502         directory when USE_STAGING_INSTALL_PATH is set, rather than finding it embedded inside of
2503         WebKit.framework.
2504         * Configurations/PluginProcess.xcconfig: Set our install path based on WEBKIT2_FRAMEWORKS_DIR.
2505         * Configurations/WebKit2.xcconfig: Set our install path based on WEBKIT2_FRAMEWORKS_DIR.
2506         Always set the framework's install name based on the normal framework location. This prevents
2507         an incorrect install name from being used when installing in to the staged frameworks directory.
2508         * Configurations/WebProcess.xcconfig: Set our install path based on WEBKIT2_FRAMEWORKS_DIR.
2509
2510 2012-01-25  No'am Rosenthal  <noam.rosenthal@nokia.com>
2511
2512         [WK2][Qt] REGRESSION: Pages with transform animations sometimes omit some of the layers since r105413
2513         https://bugs.webkit.org/show_bug.cgi?id=76886
2514
2515         Reviewed by Kenneth Rohde Christiansen.
2516
2517         We now render the whole layer if it or one if its ancestors has an active transform
2518         animations. It's possible to optimize further in the future, but not currently necessary.
2519         Also, we make sure that when a WebGraphicsLayer's property that affects transformation is
2520         changed, all its descandants layers are marked as modified so that we re-adjust their
2521         visible rect in the next pass.
2522
2523         * WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:
2524         (WebCore::WebGraphicsLayer::notifyChangeRecursively):
2525         (WebCore):
2526         (WebCore::WebGraphicsLayer::setPosition):
2527         (WebCore::WebGraphicsLayer::setAnchorPoint):
2528         (WebCore::WebGraphicsLayer::setSize):
2529         (WebCore::WebGraphicsLayer::setTransform):
2530         (WebCore::WebGraphicsLayer::setChildrenTransform):
2531         (WebCore::WebGraphicsLayer::setPreserves3D):
2532         (WebCore::WebGraphicsLayer::setMasksToBounds):
2533         (WebCore::WebGraphicsLayer::addAnimation):
2534         (WebCore::WebGraphicsLayer::removeAnimation):
2535         (WebCore::WebGraphicsLayer::tiledBackingStoreVisibleRect):
2536         (WebCore::WebGraphicsLayer::selfOrAncestorHasActiveTransformAnimations):
2537         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
2538         (WebGraphicsLayer):
2539
2540 2012-01-25  Hajime Morita  <morrita@google.com>
2541
2542         ENABLE_SHADOW_DOM should be available via build-webkit --shadow-dom
2543         https://bugs.webkit.org/show_bug.cgi?id=76863
2544
2545         Reviewed by Dimitri Glazkov.
2546
2547         Added a feature flag.
2548
2549         * Configurations/FeatureDefines.xcconfig:
2550
2551 2012-01-25  Martin Robinson  <mrobinson@igalia.com>
2552
2553         [WK2] Navigation events not triggered by a mouse event claim to be triggered by the left mouse button during policy decisions
2554         https://bugs.webkit.org/show_bug.cgi?id=76344
2555
2556         Reviewed by Sam Weinig.
2557
2558         When creating InjectedBundleNavigationActions, initialize the mouse button to NoButton.
2559         This ensures that when there is no mouse event associated with the action, when the event
2560         hits the client-API layer, the button is still NoButton.
2561
2562         * WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
2563         (WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction): Initialize m_mouseButton
2564         to WebMouseEvent::NoButton.
2565
2566 2012-01-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
2567
2568         [Qt] Implement tap feedback respecting -webkit-tap-highlight-color
2569         https://bugs.webkit.org/show_bug.cgi?id=76914
2570
2571         Reviewed by Simon Hausmann.
2572
2573         Implement tap highlighting for Qt. When a touch press is issued,
2574         which is not handled by the web page, then we highlight any
2575         activatable node below. In all otehr cases, we hide any highlights.
2576
2577         The highlighting itself is painted on an accelerated PageOverlay,
2578         on the web process side.
2579
2580         * Target.pri:
2581         * UIProcess/WebPageProxy.cpp:
2582         (WebKit::WebPageProxy::handlePotentialActivation):
2583         * UIProcess/WebPageProxy.h:
2584         * UIProcess/qt/QtTapGestureRecognizer.cpp:
2585         (WebKit::QtTapGestureRecognizer::recognize):
2586         * UIProcess/qt/QtWebPageEventHandler.cpp:
2587         (QtWebPageEventHandler::handlePotentialSingleTapEvent):
2588         * UIProcess/qt/QtWebPageEventHandler.h:
2589         * WebProcess/WebPage/TapHighlightController.cpp: Added.
2590         (WebKit::TapHighlightController::TapHighlightController):
2591         (WebKit::TapHighlightController::~TapHighlightController):
2592         (WebKit::TapHighlightController::highlight):
2593         (WebKit::TapHighlightController::hideHighlight):
2594         (WebKit::TapHighlightController::pageOverlayDestroyed):
2595         (WebKit::TapHighlightController::willMoveToWebPage):
2596         (WebKit::TapHighlightController::didMoveToWebPage):
2597         (WebKit::highlightColor):
2598         (WebKit::TapHighlightController::drawRect):
2599         (WebKit::TapHighlightController::mouseEvent):
2600         * WebProcess/WebPage/TapHighlightController.h: Added.
2601         * WebProcess/WebPage/WebPage.cpp:
2602         (WebKit::WebPage::WebPage):
2603         (WebKit::WebPage::highlightPotentialActivation):
2604         * WebProcess/WebPage/WebPage.h:
2605         (WebKit::WebPage::tapHighlightController):
2606         * WebProcess/WebPage/WebPage.messages.in:
2607
2608 2012-01-25  Nándor Huszka  <huszka.nandor@stud.u-szeged.hu>
2609
2610         [WK2] WebKitTestRunner needs layoutTestController.setPopupBlockingEnabled
2611         https://bugs.webkit.org/show_bug.cgi?id=63458
2612
2613         Reviewed by Adam Roben.
2614
2615         Implement the setPopupBlockingEnabled method.
2616
2617         * WebProcess/InjectedBundle/API/c/WKBundle.cpp:
2618         (WKBundleSetPrivateBrowsingEnabled):
2619         (WKBundleSetPopupBlockingEnabled):
2620         * WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
2621         * WebProcess/InjectedBundle/InjectedBundle.cpp:
2622         (WebKit::InjectedBundle::setPopupBlockingEnabled):
2623         * WebProcess/InjectedBundle/InjectedBundle.h:
2624
2625 2012-01-25  Yael Aharon  <yael.aharon@nokia.com>
2626
2627         [Qt] Build fix when using force_static_libs_as_shared
2628         https://bugs.webkit.org/show_bug.cgi?id=76832
2629
2630         Reviewed by Simon Hausmann.
2631
2632         Add a dependency on QtWidgets.
2633
2634         * Target.pri:
2635
2636 2012-01-24  Sergio Villar Senin  <svillar@igalia.com>
2637
2638         [WK2] FindController should not assume that ports do not want to highlight text matches
2639         https://bugs.webkit.org/show_bug.cgi?id=76921
2640
2641         Reviewed by Darin Adler.
2642
2643         FindController must obey the FindOptionsShowHighlight flag instead
2644         of assuming that ports do not want to highlight search matches.
2645
2646         * Shared/API/c/WKFindOptions.h: added kWKFindOptionsShowHighlight.
2647         * Shared/API/c/WKSharedAPICast.h:
2648         (WebKit::toFindOptions): Ditto.
2649         * Shared/WebFindOptions.h: added FindOptionsShowHighlight.
2650         * WebProcess/WebPage/FindController.cpp:
2651         (WebKit::FindController::findString):
2652
2653 2012-01-25  Carlos Garcia Campos  <cgarcia@igalia.com>
2654
2655         [GTK] Page clients don't need to be GObjects anymore in WebKit2 GTK+ API
2656         https://bugs.webkit.org/show_bug.cgi?id=76899
2657
2658         Reviewed by Martin Robinson.
2659
2660         * UIProcess/API/gtk/WebKitLoaderClient.cpp: Renamed from
2661         Source/WebKit2/UIProcess/API/gtk/WebKitWebLoaderClient.cpp.
2662         (didStartProvisionalLoadForFrame): Use clientInfo instead fo
2663         getting the view from the page.
2664         (didReceiveServerRedirectForProvisionalLoadForFrame): Ditto.
2665         (didFailProvisionalLoadWithErrorForFrame): Ditto.
2666         (didCommitLoadForFrame): Ditto.
2667         (didFinishLoadForFrame): Ditto.
2668         (didFailLoadWithErrorForFrame): Ditto.
2669         (didSameDocumentNavigationForFrame): Ditto.
2670         (didReceiveTitleForFrame): Ditto.
2671         (didChangeProgress): Ditto.
2672         (didChangeBackForwardList): Ditto.
2673         (attachLoaderClientToView): Pass WebKitWebView as clientInfo to
2674         callbacks.
2675         * UIProcess/API/gtk/WebKitLoaderClient.h: Added.
2676         * UIProcess/API/gtk/WebKitUIClient.cpp:
2677         (createNewPage): Use clientInfo instead fo getting the view from
2678         the page.
2679         (showPage): Ditto.
2680         (closePage): Ditto.
2681         (runJavaScriptAlert): Ditto.
2682         (runJavaScriptConfirm): Ditto.
2683         (runJavaScriptPrompt): Ditto.
2684         (toolbarsAreVisible): Ditto.
2685         (setToolbarsAreVisible): Ditto.
2686         (menuBarIsVisible): Ditto.
2687         (setMenuBarIsVisible): Ditto.
2688         (statusBarIsVisible): Ditto.
2689         (setStatusBarIsVisible): Ditto.
2690         (isResizable): Ditto.
2691         (setIsResizable): Ditto.
2692         (getWindowFrame): Ditto.
2693         (setWindowFrame): Ditto.
2694         (attachUIClientToView): Pass WebKitWebView as clientInfo to
2695         callbacks.
2696         * UIProcess/API/gtk/WebKitUIClient.h: Remove GObject boilerplate.
2697         * UIProcess/API/gtk/WebKitWebLoaderClient.h: Removed.
2698         * UIProcess/API/gtk/WebKitWebView.cpp:
2699         (webkitWebViewConstructed): Remove UIClient and LoaderClient
2700         objects and call attachUIClientToView() and attachLoaderClientToView().
2701         * UIProcess/API/gtk/tests/GNUmakefile.am: Rename
2702         WebKitWebLoaderClient to WebKitLoaderClient.
2703         * UIProcess/API/gtk/tests/TestLoaderClient.cpp: Renamed from
2704         Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebLoaderClient.cpp.
2705
2706 2012-01-25  Roland Steiner  <rolandsteiner@chromium.org>
2707
2708         <style scoped>: Implement registering of <style scoped> with the scoping element
2709         https://bugs.webkit.org/show_bug.cgi?id=67790
2710
2711         Add symbols for windows.internals.numberOfScopedHTMLStyleChildren
2712
2713         Reviewed by Dimitri Glazkov.
2714
2715         * win/WebKit2.def:
2716         * win/WebKit2CFLite.def:
2717
2718 2012-01-24  Beth Dakin  <bdakin@apple.com>
2719
2720         https://bugs.webkit.org/show_bug.cgi?id=76928
2721         Accelerated drawing should force compositing mode
2722         -and corresponding-
2723         <rdar://problem/10697417>
2724
2725         Reviewed by Simon Fraser.
2726
2727         * WebProcess/WebPage/WebPage.cpp:
2728         (WebKit::WebPage::updatePreferences):
2729
2730 2012-01-24  Alexis Menard  <alexis.menard@openbossa.org>
2731
2732         Unreviewed build fix for Qt.
2733
2734         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
2735         (WebKit::LayerTreeHostQt::showDebugBorders):
2736         (WebKit::LayerTreeHostQt::showRepaintCounter):
2737
2738 2012-01-23  Simon Fraser  <simon.fraser@apple.com>
2739
2740         Show layer borders for scrollbar layers
2741         https://bugs.webkit.org/show_bug.cgi?id=76888
2742
2743         Reviewed by Beth Dakin.
2744         
2745         Update for new signatures of GraphicsLayerClient::showDebugBorders()
2746         and GraphicsLayerClient::showRepaintCounter().
2747
2748         * UIProcess/LayerTreeHostProxy.h:
2749         (WebKit::LayerTreeHostProxy::showDebugBorders):
2750         (WebKit::LayerTreeHostProxy::showRepaintCounter):
2751         * WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
2752         (WebKit::LayerTreeHostCA::showDebugBorders):
2753         (WebKit::LayerTreeHostCA::showRepaintCounter):
2754         * WebProcess/WebPage/ca/LayerTreeHostCA.h:
2755         * WebProcess/WebPage/qt/LayerTreeHostQt.h:
2756
2757 2012-01-24  David Levin  <levin@chromium.org>
2758
2759         [windows] Convert usage of GetDC to HWndDC Part 3.
2760         https://bugs.webkit.org/show_bug.cgi?id=76889
2761
2762         Reviewed by Adam Roben.
2763
2764         * UIProcess/win/WebPopupMenuProxyWin.cpp:
2765         (WebKit::WebPopupMenuProxyWin::paint): Fix a dc leak and use the dellayed allocation.
2766
2767 2012-01-24  Sergio Villar Senin  <svillar@igalia.com>
2768
2769         [WK2] [GTK] TestDownloads hitting an assertion in Debug builds
2770         https://bugs.webkit.org/show_bug.cgi?id=76915
2771
2772         Reviewed by Martin Robinson.
2773
2774         No new tests required as it fixes some assertions in a unit test.
2775
2776         * WebProcess/Downloads/soup/DownloadSoup.cpp:
2777         (WebKit::Download::start):
2778         (WebKit::Download::startWithHandle):
2779
2780 2012-01-24  No'am Rosenthal  <noam.rosenthal@nokia.com>
2781
2782         [Qt][WK2] Qt's cross-process AC copies images excessively when updating tiles.
2783         https://bugs.webkit.org/show_bug.cgi?id=76877
2784
2785         Reviewed by Kenneth Rohde Christiansen.
2786
2787         Instead of copying QImages, pass a reference to the ShareableBitmap that was originally
2788         created by the web process. Also, swizzle the image's RGB in the web process, before it's
2789         transferred to the UI process.
2790
2791         Data flow before change:
2792         (Web Process) Render to image -> IPC -> (UI Process) Copy (render queue) -> Copy Swizzled RGB -> Upload
2793
2794         Data flow after change:
2795         (Web Process) Render to image -> swizzle RGB -> IPC -> (UI Process) -> Upload
2796
2797         * Shared/ShareableBitmap.h:
2798         * Shared/qt/ShareableBitmapQt.cpp:
2799         (WebKit::ShareableBitmap::swizzleRGB):
2800         * UIProcess/LayerTreeHostProxy.h:
2801         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
2802         (WebKit::LayerTreeHostProxy::updateTile):
2803         (WebKit::LayerTreeHostProxy::createImage):
2804         (WebKit::LayerTreeHostProxy::syncRemoteContent):
2805         (WebKit::LayerTreeHostProxy::updateTileForLayer):
2806         (WebKit::LayerTreeHostProxy::createDirectlyCompositedImage):
2807         (WebKit::LayerTreeHostProxy::purgeGLResources):
2808         * WebProcess/WebPage/TiledBackingStoreRemoteTile.cpp:
2809         (WebKit::TiledBackingStoreRemoteTile::updateBackBuffer):
2810         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
2811         (WebKit::LayerTreeHostQt::adoptImageBackingStore):
2812
2813 2012-01-24  Rafael Brandao  <rafael.lobo@openbossa.org>
2814
2815         [Qt][WK2] QtWebIconDatabaseClient leaves a dangling pointer on WebIconDatabase after its destruction
2816         https://bugs.webkit.org/show_bug.cgi?id=76399
2817
2818         Reviewed by Simon Hausmann.
2819
2820         Due a circular dependency between WebContext and WebProcessProxy, WebContext it not
2821         being destroyed, neither WebIconDatabase. As QtWebIconDatabaseClient's life time is the same
2822         as QtWebContext and this one is being destroyed, the remaining reference to our client
2823         on WebIconDatabase should be cleaned upon its destruction.
2824
2825         * UIProcess/qt/QtWebIconDatabaseClient.cpp:
2826         (QtWebIconDatabaseClient::QtWebIconDatabaseClient):
2827         (QtWebIconDatabaseClient::~QtWebIconDatabaseClient): Clear client pointer on WebIconDatabase.
2828         * UIProcess/qt/QtWebIconDatabaseClient.h: Make this client hold a reference to WebIconDatabase.
2829
2830 2012-01-24  Zeno Albisser  <zeno@webkit.org>
2831
2832         [Qt][WK2] Add test for application URL schemes.
2833         https://bugs.webkit.org/show_bug.cgi?id=74933
2834
2835         Add a test that checks handling of url strings.
2836         Add a test that verifies replies in case of multiple
2837         available application url schemes.
2838
2839         Reviewed by Kenneth Rohde Christiansen.
2840
2841         * UIProcess/API/qt/tests/qmltests/WebView/tst_applicationScheme.qml:
2842
2843 2012-01-24  Carlos Garcia Campos  <cgarcia@igalia.com>
2844
2845         [GTK] Fix /webkit2/WebKitWebView/reload after r105688
2846         https://bugs.webkit.org/show_bug.cgi?id=76898
2847
2848         Reviewed by Alejandro G. Castro.
2849
2850         * UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
2851         (LoadTrackingTest::reload): Add reload method that clears events
2852         and initializes progress.
2853         * UIProcess/API/gtk/tests/LoadTrackingTest.h:
2854         * UIProcess/API/gtk/tests/TestWebKitWebLoaderClient.cpp:
2855         (testWebViewReload): Use LoadTrackingTest::reload() instead of
2856         webkit_web_view_reload().
2857
2858 2012-01-24  Simon Hausmann  <simon.hausmann@nokia.com>
2859
2860         Some qmake build files must include Qt5's "quick" module.
2861         https://bugs.webkit.org/show_bug.cgi?id=76671
2862
2863         Unreviewed build fix.
2864
2865         * UIProcess/API/qt/tests/tests.pri:
2866
2867 2012-01-24  Zeno Albisser  <zeno@webkit.org>
2868
2869         [Qt][WK2] Application URL schemes cause asserts when using debug.
2870         https://bugs.webkit.org/show_bug.cgi?id=76700
2871
2872         Instances of QtNetworkRequestData / QtNetworkReplyData are meant
2873         to be used for transfering data over IPC. To allow transferring
2874         instances of these classes over IPC they need to be copyable,
2875         and it must be possible to create such instances on the stack.
2876         Because classes that inherit from RefCounted always need to be
2877         used in connection with RefPtr, QtNetworkRequestData and
2878         QtNetworkReplyData cannot inherit directly from RefCounted.
2879
2880         Deleting an object that inherits from RefCounted, without
2881         the proper sequence of ref()/deref() being called by it's
2882         RefPtr, causes asserts when running a debug version.
2883
2884         Reviewed by Simon Hausmann.
2885
2886         * Shared/qt/QtNetworkReplyData.h:
2887         (WebKit::QtRefCountedNetworkReplyData::data):
2888         * Shared/qt/QtNetworkRequestData.cpp:
2889         (WebKit::QtRefCountedNetworkRequestData::QtRefCountedNetworkRequestData):
2890         * Shared/qt/QtNetworkRequestData.h:
2891         (WebKit::QtRefCountedNetworkRequestData::data):
2892         * Target.pri:
2893         * UIProcess/API/qt/qquicknetworkreply.cpp:
2894         (QQuickNetworkReply::QQuickNetworkReply):
2895         (QQuickNetworkReply::contentType):
2896         (QQuickNetworkReply::setContentType):
2897         (QQuickNetworkReply::operation):
2898         (QQuickNetworkReply::setOperation):
2899         (QQuickNetworkReply::contentDisposition):
2900         (QQuickNetworkReply::setContentDisposition):
2901         (QQuickNetworkReply::location):
2902         (QQuickNetworkReply::setLocation):
2903         (QQuickNetworkReply::lastModified):
2904         (QQuickNetworkReply::setLastModified):
2905         (QQuickNetworkReply::cookie):
2906         (QQuickNetworkReply::setCookie):
2907         (QQuickNetworkReply::userAgent):
2908         (QQuickNetworkReply::setUserAgent):
2909         (QQuickNetworkReply::server):
2910         (QQuickNetworkReply::setServer):
2911         (QQuickNetworkReply::data):
2912         (QQuickNetworkReply::setData):
2913         (QQuickNetworkReply::send):
2914         (QQuickNetworkReply::networkRequestData):
2915         (QQuickNetworkReply::setNetworkRequestData):
2916         (QQuickNetworkReply::networkReplyData):
2917         * UIProcess/API/qt/qquicknetworkreply_p.h:
2918         * UIProcess/API/qt/qquicknetworkrequest.cpp:
2919         (QQuickNetworkRequest::QQuickNetworkRequest):
2920         (QQuickNetworkRequest::setNetworkRequestData):
2921         (QQuickNetworkRequest::url):
2922         * UIProcess/API/qt/qquicknetworkrequest_p.h:
2923         * UIProcess/API/qt/qquickwebview.cpp:
2924         (QQuickWebViewExperimental::invokeApplicationSchemeHandler):
2925         * UIProcess/API/qt/qquickwebview_p.h:
2926         * UIProcess/WebPageProxy.h:
2927         * UIProcess/qt/QtPageClient.cpp:
2928         (QtPageClient::handleApplicationSchemeRequest):
2929         * UIProcess/qt/QtPageClient.h:
2930         * UIProcess/qt/WebPageProxyQt.cpp:
2931         (WebKit::WebPageProxy::resolveApplicationSchemeRequest):
2932         (WebKit::WebPageProxy::sendApplicationSchemeReply):
2933         * WebProcess/qt/QtNetworkReply.cpp:
2934         (WebKit::QtNetworkReply::setData):
2935         (WebKit::QtNetworkReply::readData):
2936
2937 2012-01-24  Carlos Garcia Campos  <cgarcia@igalia.com>
2938
2939         [GTK] Implement DownloadClient in WebKit2 GTK+ API
2940         https://bugs.webkit.org/show_bug.cgi?id=72952
2941
2942         Reviewed by Martin Robinson.
2943
2944         * GNUmakefile.am: Add new files to compilation.
2945         * UIProcess/API/gtk/WebKitDownloadClient.cpp: Added.
2946         (didStart): Call webkitWebContextDownloadStarted().
2947         (didReceiveResponse): Call webkitDownloadSetResponse() with the
2948         received response.
2949         (didReceiveData): Call webkitDownloadNotifyProgress().
2950         (decideDestinationWithSuggestedFilename): Call
2951         webkitDownloadDecideDestinationWithSuggestedFilename().
2952         (didCreateDestination): Call webkitDownloadDestinationCreated().
2953         (didFail): Call webkitDownloadFailed() or
2954         webkitDownloadCancelled() if the download was cancelled before
2955         failing.
2956         (didCancel): Call webkitDownloadCancelled().
2957         (didFinish): Call webkitDownloadFinished().
2958         (attachDownloadClientToContext): Add
2959         implementation for download client callbacks.
2960         * UIProcess/API/gtk/WebKitDownloadClient.h: Added.
2961         * UIProcess/API/gtk/WebKitError.cpp:
2962         (webkit_download_error_quark): Add quark for download errors.
2963         * UIProcess/API/gtk/WebKitError.h:
2964         * UIProcess/API/gtk/WebKitWebContext.cpp:
2965         (webkit_web_context_class_init): Add download-started signal.
2966         (createDefaultWebContext): Initialize the download client.
2967         (downloadsMap): HashMap containing download objects for all
2968         ongoing download operations.
2969         (webkit_web_context_download_uri): Start a new download for the
2970         given URI.
2971         (webkitWebContextGetOrCreateDownload): Helper function to create a
2972         new download object or return the existing one from the downloads map.
2973         (webkitWebContextRemoveDownload): Remove the download object from
2974         the downloads map.
2975         (webkitWebContextDownloadStarted): Emit
2976         WebKitWebContext::download-started for the given download object.
2977         * UIProcess/API/gtk/WebKitWebContext.h:
2978         * UIProcess/API/gtk/WebKitWebContextPrivate.h:
2979         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
2980         * UIProcess/API/gtk/tests/GNUmakefile.am: Add new test for downloads.
2981         * UIProcess/API/gtk/tests/TestDownloads.cpp: Added.
2982         (getWebKit1TestResoucesDir):
2983         (testDownloadLocalFile):
2984         (testDownloadLocalFileError):
2985         (serverCallback):
2986         (testDownloadRemoteFile):
2987         (testDownloadRemoteFileError):
2988         (beforeAll):
2989         (afterAll):
2990
2991 2012-01-23  Carlos Garcia Campos  <cgarcia@igalia.com>
2992
2993         [GTK] Add WebKitDownload to WebKit2 GTK+ API
2994         https://bugs.webkit.org/show_bug.cgi?id=72949
2995
2996         Reviewed by Martin Robinson.
2997
2998         * GNUmakefile.am: Add new files to compilation.
2999         * UIProcess/API/gtk/WebKitDownload.cpp: Added.
3000         (webkitDownloadFinalize):
3001         (webkitDownloadGetProperty):
3002         (webkitDownloadDecideDestination):
3003         (webkit_download_init):
3004         (webkit_download_class_init):
3005         (webkitDownloadCreate): Create a new WebKitDownload for a given
3006         WKDownloadRef.
3007         (webkitDownloadSetResponse): Set the network response of the
3008         download.
3009         (webkitDownloadIsCancelled): Whether the download has been
3010         cancelled by the user.
3011         (webkitDownloadNotifyProgress): Emit notify::estimated-progress if
3012         needed.
3013         (webkitDownloadFailed): Emit WebKitDownload::failed with the given
3014         error.
3015         (webkitDownloadCancelled): Emit WebKitDownload::failed with
3016         cancelled error.
3017         (webkitDownloadFinished): Emit WebKitDownload::finished.
3018         (webkitDownloadDecideDestinationWithSuggestedFilename): Emit
3019         WebKitDownload::decide-destination.
3020         (webkitDownloadDestinationCreated): Emit
3021         WebKitDownload::created-destination.
3022         (webkit_download_get_destination): Return the destination URI of
3023         the download.
3024         (webkit_download_set_destination): Set the destination URI of the
3025         download.
3026         (webkit_download_get_response): Return the response received by
3027         the server.
3028         (webkit_download_cancel): Cancel the download.
3029         (webkit_download_get_estimated_progress): Return the estimated
3030         progress.
3031         (webkit_download_get_elapsed_time): Return the time elapsed since
3032         the download started.
3033         * UIProcess/API/gtk/WebKitDownload.h: Added.
3034         * UIProcess/API/gtk/WebKitDownloadPrivate.h: Added.
3035         * UIProcess/API/gtk/WebKitPrivate.h:
3036         * UIProcess/API/gtk/WebKitURIResponse.cpp:
3037         (webkitURIResponseGetResourceResponse):
3038         * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
3039         * UIProcess/API/gtk/docs/webkit2gtk.types: Add
3040         webkit_download_get_type().
3041         * UIProcess/API/gtk/webkit2.h: Include WebKitDownload.h.
3042         * UIProcess/API/gtk/webkit2marshal.list:
3043
3044 2012-01-23  Geoffrey Garen  <ggaren@apple.com>
3045
3046         JSValue::toString() should return a JSString* instead of a UString
3047         https://bugs.webkit.org/show_bug.cgi?id=76861
3048
3049         Reviewed by Gavin Barraclough.
3050
3051         Mechanical changes to call value() after calling toString(), to
3052         convert from "JS string" (JSString*) to "C++ string" (UString), since
3053         toString() no longer returns a "C++ string".
3054
3055         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
3056         (WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
3057
3058 2012-01-23  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
3059
3060         [Qt][WK2] QQuickWebView is initializing touch mode twice while being constructed
3061         https://bugs.webkit.org/show_bug.cgi?id=76859
3062
3063         Reviewed by Kenneth Rohde Christiansen.
3064
3065         Removing d->initializeTouch() from QQuickWebView::QQuickWebView()
3066         since in QQuickWebViewPrivate::initialize() there is a call for
3067         setUseTraditionalDesktopBehaviour(false), which will call initializeTouch.
3068
3069         * UIProcess/API/qt/qquickwebview.cpp:
3070         (QQuickWebView::QQuickWebView):
3071
3072 2012-01-23  Martin Robinson  <mrobinson@igalia.com>
3073
3074         [GTK][WK2] Make the LoadTracking and WebView test fixtures more flexible
3075         https://bugs.webkit.org/show_bug.cgi?id=76755
3076
3077         Reviewed by Alejandro G. Castro.
3078
3079         Always clear the loading events when loading new content in the load tracking
3080         test. In the WebView test correctly handle loading HTML with a URL that isn't
3081         "about:blank."
3082
3083         * UIProcess/API/gtk/tests/LoadTrackingTest.cpp:
3084         (LoadTrackingTest::loadURI): Reset the class state when starting a new load.
3085         (LoadTrackingTest::loadHtml): Ditto.
3086         (LoadTrackingTest::loadPlainText): Ditto.
3087         (LoadTrackingTest::loadRequest): Ditto.
3088         * UIProcess/API/gtk/tests/LoadTrackingTest.h: Added new method definitions.
3089         * UIProcess/API/gtk/tests/TestWebKitWebLoaderClient.cpp:
3090         (assertNormalLoadHappened): No longer clear loading events. The fixture handles that now.
3091         (testLoadHtml): Update to reflect new method name.
3092         (testLoadPlainText): Ditto.
3093         (testLoadRequest): Ditto.
3094         (testWebViewReload): Ditto.
3095         * UIProcess/API/gtk/tests/WebViewTest.cpp:
3096         (WebViewTest::loadHtml): Properly interpret the baseURL parameter.
3097         * UIProcess/API/gtk/tests/WebViewTest.h: Make loading methods virtual.
3098
3099 2012-01-23  Alexander Færøy  <alexander.faeroy@nokia.com>
3100
3101         [Qt] Implement SSL error handling QML API.
3102         https://bugs.webkit.org/show_bug.cgi?id=76793
3103
3104         Reviewed by Simon Hausmann.
3105
3106         This patch implements support for accepting or rejecting invalid SSL
3107         certificates from the QML API.
3108
3109         * UIProcess/API/qt/qquickwebview.cpp:
3110         (QQuickWebViewPrivate::QQuickWebViewPrivate):
3111         (QQuickWebViewPrivate::handleCertificateVerificationRequest):
3112         (QQuickWebViewExperimental::certificateVerificationDialog):
3113         (QQuickWebViewExperimental::setCertificateVerificationDialog):
3114         * UIProcess/API/qt/qquickwebview_p.h:
3115         * UIProcess/API/qt/qquickwebview_p_p.h:
3116         * UIProcess/PageClient.h:
3117         * UIProcess/WebPageProxy.cpp:
3118         (WebKit::WebPageProxy::certificateVerificationRequest):
3119         * UIProcess/WebPageProxy.h:
3120         * UIProcess/WebPageProxy.messages.in:
3121         * UIProcess/qt/QtDialogRunner.cpp:
3122         (CertificateVerificationDialogContextObject::CertificateVerificationDialogContextObject):
3123         (CertificateVerificationDialogContextObject::hostname):
3124         (CertificateVerificationDialogContextObject::accept):
3125         (CertificateVerificationDialogContextObject::reject):
3126         (QtDialogRunner::initForCertificateVerification):
3127         * UIProcess/qt/QtDialogRunner.h:
3128         * UIProcess/qt/QtPageClient.cpp:
3129         (QtPageClient::handleCertificateVerificationRequest):
3130         * UIProcess/qt/QtPageClient.h:
3131         * WebProcess/qt/QtNetworkAccessManager.cpp:
3132         (WebKit::QtNetworkAccessManager::QtNetworkAccessManager):
3133         (WebKit::QtNetworkAccessManager::onSslErrors):
3134         * WebProcess/qt/QtNetworkAccessManager.h:
3135
3136 2012-01-23  David Levin  <levin@chromium.org>
3137
3138         [windows] Convert usages of GetDC to HWndDC Part 2.
3139         https://bugs.webkit.org/show_bug.cgi?id=76750
3140
3141         Reviewed by Adam Roben.
3142
3143         * Shared/win/ShareableBitmapWin.cpp:
3144         (WebKit::ShareableBitmap::windowsContext): Fix incorrect usage of OwnPtr<HDC> which
3145         would do a DeleteDC instead of a ReleaseDC.
3146
3147 2012-01-23  David Levin  <levin@chromium.org>
3148
3149         [windows] Convert usages of GetDC to HWndDC Part 1.
3150         https://bugs.webkit.org/show_bug.cgi?id=76744
3151
3152         Reviewed by Adam Roben.
3153
3154         * UIProcess/win/WebView.cpp:
3155         (WebKit::WebView::flashBackingStoreUpdates): Typical conversion.
3156
3157 2012-01-21  Timothy Hatcher  <timothy@apple.com>
3158
3159         Make WebKit2 remember the height of the Web Inspector when it is docked.
3160
3161         https://webkit.org/b/76769
3162
3163         Reviewed by Dan Bernstein.
3164
3165         * Shared/WebPreferencesStore.h: Added InspectorAttachedHeight.
3166         * UIProcess/WebInspectorProxy.cpp:
3167         (WebKit::WebInspectorProxy::setAttachedWindowHeight): Call WebPreferencesStore::setInspectorAttachedHeight.
3168         * UIProcess/mac/WebInspectorProxyMac.mm:
3169         (WebKit::WebInspectorProxy::platformAttach): Set the height of the inspector's WKView to inspectorAttachedHeight.
3170         (WebKit::WebInspectorProxy::platformSetAttachedWindowHeight): Remove unneeded setNeedsDisplay: calls.
3171
3172 2012-01-20  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
3173
3174         [Qt] [WK2] Division by zero error in QtViewportInteractionEngine::setItemRectVisible
3175         https://bugs.webkit.org/show_bug.cgi?id=76674
3176
3177         Reviewed by Kenneth Rohde Christiansen.
3178
3179         Make sure that itemRect is not empty.
3180
3181         * UIProcess/qt/QtViewportInteractionEngine.cpp:
3182         (WebKit::QtViewportInteractionEngine::setItemRectVisible):
3183
3184 2012-01-20  Steve Falkenburg  <sfalken@apple.com>
3185
3186         Reviewed by Alexey Proskuryakov.
3187
3188         Drag/drop of a file into a WebView on Windows needs to allow access to that file
3189         https://bugs.webkit.org/show_bug.cgi?id=76753
3190         <rdar://problem/10731719>
3191         
3192         The Windows drag/drop code path was missing the code to open a file read exception.
3193
3194         Added code to match the Mac version, while allowing directories and multiple files to
3195         also be dragged (matching our previous behavior).
3196
3197         * UIProcess/win/WebView.cpp:
3198         (WebKit::maybeCreateSandboxExtensionFromDragData): Added.
3199         (WebKit::WebView::Drop): Add a universal read exception if we're dragging a file into a WebView to open it.
3200
3201 2012-01-20  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3202
3203         [Qt] Trigger forcing accelerated compositing from the UI process side.
3204         https://bugs.webkit.org/show_bug.cgi?id=76296
3205
3206         Reviewed by Noam Rosenthal.
3207
3208         Some messages can be sent from the web view to the LayerTreeHost before
3209         accelerated compositing is entered on the web process and signaled back.
3210         By letting the UI process decide if AC has to be forced, we can create
3211         the LayerTreeHostProxy earlier to send messages to the web process while
3212         AC is being entered there.
3213
3214         This patch also fixes the flow of DidRenderFrame and RenderNextFrame messages
3215         by setting the m_waitingForUIProcess flag properly and only send the
3216         RenderNextFrame once the painting thread on the UI process is ready to paint.
3217
3218         This fixes the first visible content rect message not being received when
3219         loading pages from the disk.
3220
3221         * Shared/WebPreferencesStore.h:
3222         * UIProcess/API/qt/qquickwebview.cpp:
3223         (QQuickWebViewPrivate::initialize):
3224         * UIProcess/DrawingAreaProxyImpl.cpp:
3225         (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
3226         * UIProcess/qt/LayerTreeHostProxyQt.cpp:
3227         (WebKit::LayerTreeHostProxy::flushLayerChanges):
3228         (WebKit::LayerTreeHostProxy::didRenderFrame):
3229         * WebProcess/WebPage/DrawingAreaImpl.cpp:
3230         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
3231         * WebProcess/WebPage/WebPage.cpp:
3232         (WebKit::WebPage::updatePreferences):
3233         * WebProcess/WebPage/qt/LayerTreeHostQt.cpp:
3234         (WebKit::LayerTreeHostQt::performScheduledLayerFlush):
3235         * WebProcess/WebPage/qt/WebPageQt.cpp:
3236         (WebKit::WebPage::platformInitialize):
3237
3238 2012-01-20  Sheriff Bot  <webkit.review.bot@gmail.com>
3239
3240         Unreviewed, rolling out r105497.
3241         http://trac.webkit.org/changeset/105497
3242         https://bugs.webkit.org/show_bug.cgi?id=76696
3243
3244         Leaking in Qt layout tests and timing out in GTK API tests.
3245         (Requested by jturcotte on #webkit).
3246
3247         * Shared/WebPreferencesStore.h:
3248         * UIProcess/API/qt/qquickwebview.cpp:
3249         (QQuickWebViewPrivate::initialize):
3250         * UIProcess/DrawingAreaProxyImpl.cpp:
3251         (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
3252         * WebProcess/WebPage/DrawingAreaImpl.cpp:
3253         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
3254         * WebProcess/WebPage/WebPage.cpp:
3255         (WebKit::WebPage::updatePreferences):
3256         * WebProcess/WebPage/qt/WebPageQt.cpp:
3257         (WebKit::WebPage::platformInitialize):
3258
3259 2012-01-20  Mario Sanchez Prada  <msanchez@igalia.com>
3260
3261         [GTK] Expose accessibility hierarchy in WebKit2 to ATK/AT-SPI based ATs
3262         https://bugs.webkit.org/show_bug.cgi?id=72589
3263
3264         Reviewed by Martin Robinson.
3265
3266         Expose the accessibility hierarchy in the multi-process
3267         architecture of WK2 through AtkSocket and AtkPlug.
3268
3269         Make the WebView widget return an AtkSocket when calling to
3270         gtk_widget_get_accessible().
3271
3272         * GNUmakefile.am: Add new files.
3273         * UIProcess/API/gtk/WebKitWebViewBase.cpp:
3274         (webkit_web_view_base_init):
3275         (webkitWebViewBaseGetAccessible):
3276         (webkit_web_view_base_class_init):
3277         * UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp: Added.
3278         (webkitWebViewBaseAccessibleWidgetFinalize):
3279         (webkitWebViewBaseAccessibleWidgetDestroyed):
3280         (webkitWebViewBaseAccessibleInitialize):
3281         (webkitWebViewBaseAccessibleRefStateSet):
3282         (webkitWebViewBaseAccessibleGetIndexInParent):
3283         (webkit_web_view_base_accessible_init):
3284         (webkit_web_view_base_accessible_class_init):
3285         (webkitWebViewBaseAccessibleNew):
3286         * UIProcess/API/gtk/WebKitWebViewBaseAccessible.h: Added.
3287
3288         Make the WebPage create an AtkPlug on its initialization and
3289         sending the ID of that plug to the UI process, so it can embed the
3290         plug in the socket.
3291
3292         Also, take care of all the needed wrapping around the WebCore's
3293         accessibility objects, exposing them in the UI process's
3294         accessibility hierarchy thanks to the socket-plug connection.
3295
3296         * UIProcess/WebPageProxy.h:
3297         (WebKit::WebPageProxy::accessibilityPlugID):
3298         * UIProcess/WebPageProxy.messages.in:
3299         * UIProcess/gtk/WebPageProxyGtk.cpp:
3300         (WebKit::WebPageProxy::bindAccessibilityTree):
3301         * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
3302         (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
3303         * WebProcess/WebPage/WebPage.cpp:
3304         (WebKit::WebPage::WebPage):
3305         * WebProcess/WebPage/gtk/WebPageAccessibilityObject.cpp: Added.
3306         (accessibilityRootObjectWrapper):
3307         (webPageAccessibilityObjectInitialize):
3308         (webPageAccessibilityObjectGetIndexInParent):
3309         (webPageAccessibilityObjectGetNChildren):
3310         (webPageAccessibilityObjectRefChild):
3311         (web_page_accessibility_object_init):
3312         (web_page_accessibility_object_class_init):
3313         (webPageAccessibilityObjectNew):
3314         (webPageAccessibilityObjectRefresh):
3315         * WebProcess/WebPage/gtk/WebPageAccessibilityObject.h: Added.
3316         * WebProcess/WebPage/gtk/WebPageGtk.cpp:
3317         (WebKit::WebPage::platformInitialize):
3318         (WebKit::WebPage::updateAccessibilityTree):
3319
3320         New unit test for checking accessibility support in WK2GTK.
3321
3322         * UIProcess/API/gtk/tests/AccessibilityTestServer.cpp: Added.
3323         (loadChangedCallback): Notify the parent process (the test)
3324         when ready.
3325         (main):
3326         * UIProcess/API/gtk/tests/GNUmakefile.am:
3327         * UIProcess/API/gtk/tests/TestWebKitAccessibility.cpp: Added.
3328         (stopTestServer):
3329         (sigAbortHandler):
3330         (testServerMonitorThreadFunc):
3331         (startTestServerMonitor):
3332         (startTestServer):
3333         (checkAtspiAccessible):
3334         (findTestServerApplication):
3335         (testAtspiBasicHierarchy):
3336         (beforeAll):
3337         (afterAll):
3338
3339 2012-01-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3340
3341         [Qt] Public API watch dog auto test.
3342         https://bugs.webkit.org/show_bug.cgi?id=73922
3343
3344         Reviewed by Simon Hausmann.
3345
3346         This test aims to prevent unintended/unapproved
3347         modifications to the public QML API.
3348
3349         * UIProcess/API/qt/tests/publicapi/publicapi.pro: Added.
3350         * UIProcess/API/qt/tests/publicapi/tst_publicapi.cpp: Added.
3351         (isCheckedEnum):
3352         (isCheckedClass):
3353         (checkKnownType):
3354         (gatherAPI):
3355         (tst_publicapi::publicAPI):
3356
3357 2012-01-13  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3358
3359         [Qt] Trigger forcing accelerated compositing from the UI process side.
3360         https://bugs.webkit.org/show_bug.cgi?id=76296
3361
3362         Reviewed by Noam Rosenthal.
3363
3364         Some messages can be sent from the web view to the LayerTreeHost before
3365         accelerated compositing is entered on the web process and signaled back.
3366         By letting the UI process decide if AC has to be forced, we can create
3367         the LayerTreeHostProxy earlier to send messages to the web process while
3368         AC is being entered there.
3369
3370         This fixes the first visible content rect message not being received when
3371         loading pages from the disk.
3372
3373         * Shared/WebPreferencesStore.h:
3374         * UIProcess/API/qt/qquickwebview.cpp:
3375         (QQuickWebViewPrivate::initialize):
3376         * UIProcess/DrawingAreaProxyImpl.cpp:
3377         (WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):
3378         * WebProcess/WebPage/DrawingAreaImpl.cpp:
3379         (WebKit::DrawingAreaImpl::DrawingAreaImpl):
3380         * WebProcess/WebPage/WebPage.cpp:
3381         (WebKit::WebPage::updatePreferences):
3382         * WebProcess/WebPage/qt/WebPageQt.cpp:
3383         (WebKit::WebPage::platformInitialize):
3384
3385 2012-01-20  Alexandru Chiculita  <achicu@adobe.com>
3386
3387         CSS Shaders: Add a Settings flag to enable/disable CSS Shaders at runtime
3388         https://bugs.webkit.org/show_bug.cgi?id=76444
3389
3390         Reviewed by Nikolas Zimmermann.
3391
3392         * Shared/WebPreferencesStore.h:
3393         * UIProcess/API/C/WKPreferences.cpp:
3394         (WKPreferencesSetCSSCustomFilterEnabled):
3395         (WKPreferencesGetCSSCustomFilterEnabled):
3396         * UIProcess/API/C/WKPreferencesPrivate.h:
3397         * WebProcess/WebPage/WebPage.cpp:
3398         (WebKit::WebPage::updatePreferences):
3399
3400 2012-01-19  Sam Weinig  <sam@webkit.org>
3401
3402         Replace improper #import with an #include.
3403
3404         * UIProcess/Plugins/PluginProcessProxy.cpp:
3405         Fixes warnings.
3406
3407 2012-01-18  Sam Weinig  <sam@webkit.org>
3408
3409         Move RunLoop to WebCore/platform
3410         https://bugs.webkit.org/show_bug.cgi?id=76471
3411
3412         Reviewed by Anders Carlsson.
3413
3414         * GNUmakefile.am:
3415         * Platform/CoreIPC/Connection.cpp:
3416         * Platform/CoreIPC/Connection.h:
3417         * Platform/CoreIPC/mac/ConnectionMac.cpp:
3418         * PluginProcess/PluginControllerProxy.h:
3419         * PluginProcess/PluginProcess.cpp:
3420         * PluginProcess/PluginProcess.h:
3421         * PluginProcess/WebProcessConnection.cpp:
3422         * PluginProcess/mac/PluginProcessMainMac.mm:
3423         * PluginProcess/qt/PluginProcessMainQt.cpp:
3424         * Shared/ChildProcess.cpp:
3425         * Shared/ChildProcess.h:
3426         * Target.pri:
3427         * UIProcess/API/mac/FindIndicatorWindow.h:
3428         * UIProcess/API/mac/WKView.mm:
3429         * UIProcess/DrawingAreaProxyImpl.h:
3430         * UIProcess/Launcher/ThreadLauncher.cpp:
3431         * UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:
3432         * UIProcess/Launcher/mac/ProcessLauncherMac.mm:
3433         * UIProcess/Launcher/mac/ThreadLauncherMac.mm:
3434         * UIProcess/Launcher/qt/ProcessLauncherQt.cpp:
3435         * UIProcess/Launcher/qt/ThreadLauncherQt.cpp:
3436         * UIProcess/Launcher/win/ProcessLauncherWin.cpp:
3437         * UIProcess/Launcher/win/ThreadLauncherWin.cpp:
3438         * UIProcess/LayerTreeHostProxy.h:
3439         * UIProcess/Plugins/PluginProcessProxy.cpp:
3440         * UIProcess/ResponsivenessTimer.cpp:
3441         * UIProcess/ResponsivenessTimer.h:
3442         * UIProcess/TiledDrawingAreaProxy.h:
3443         * UIProcess/VisitedLinkProvider.h:
3444         * UIProcess/WebConnectionToWebProcess.cpp:
3445         * UIProcess/WebConnectionToWebProcess.h:
3446         * UIProcess/WebContext.cpp:
3447         * UIProcess/win/WebView.cpp:
3448         * WebKit2.xcodeproj/project.pbxproj:
3449         * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
3450         * WebProcess/Plugins/Netscape/NetscapePlugin.h:
3451         * WebProcess/Plugins/Netscape/NetscapePluginStream.h:
3452         * WebProcess/Plugins/PluginView.h:
3453         * WebProcess/WebConnectionToUIProcess.cpp:
3454         * WebProcess/WebConnectionToUIProcess.h:
3455         * WebProcess/WebCoreSupport/WebGraphicsLayer.h:
3456         * WebProcess/WebPage/DrawingAreaImpl.h:
3457         * WebProcess/WebPage/EventDispatcher.cpp:
3458         * WebProcess/WebPage/PageOverlay.h:
3459         * WebProcess/WebPage/WebPage.cpp:
3460         * WebProcess/WebPage/WebPage.h:
3461         * WebProcess/WebProcess.cpp:
3462         * WebProcess/WebProcess.h:
3463         (WebKit::WebProcess::runLoop):
3464         * WebProcess/gtk/WebProcessMainGtk.cpp:
3465         * WebProcess/mac/WebProcessMainMac.mm: