Skip to content
Permalink
Browse files
2011-06-23 Robert Hogan <robert@webkit.org>
        Reviewed by Simon Hausmann.

        [Qt] Windowless Plugins : <input> cursor blinks even after transferring focus to plugin
        https://bugs.webkit.org/show_bug.cgi?id=30355

        Unfortunately this has to be a rendertree test, as there is no rendertext way of
        determining if a selection is still highlighted.

        * platform/chromium/plugins/mouse-click-plugin-clears-selection-expected.txt: Added.
        * platform/qt/plugins/mouse-click-plugin-clears-selection-expected.txt: Added.
        * plugins/mouse-click-plugin-clears-selection.html: Added.
2011-06-23  Robert Hogan  <robert@webkit.org>

        Reviewed by Simon Hausmann.

        [Qt] Windowless Plugins : <input> cursor blinks even after transferring focus to plugin
        https://bugs.webkit.org/show_bug.cgi?id=30355

        Test: plugins/mouse-click-plugin-clears-selection.html

        PluginView needs to use page->focusController()->setFocusedNode() when focusing a plugin
        in order to clear the FrameSelection in the currently focused node. In its platform-specific
        code Chromium already does this (WebPluginContainerImpl.cpp).

        * WebCore.exp.in: Add symbol for FocusController::setFocusedNode
        * plugins/PluginView.cpp:
        (WebCore::PluginView::focusPluginElement): Using FocusController::setFocusedNode() makes
                                                   the call to FocusController:setFocusedFrame() and Document::setFocusedNode()
                                                   redundant, since it calls both.
2011-06-23  Robert Hogan  <robert@webkit.org>

        Reviewed by Simon Hausmann.

        [Qt] Windowless Plugins : <input> cursor blinks even after transferring focus to plugin
        https://bugs.webkit.org/show_bug.cgi?id=30355

        PluginView needs to use page->focusController()->setFocusedNode() when focusing a plugin
        in order to clear the FrameSelection in the currently focused node. In its platform-specific
        code Chromium already does this (WebPluginContainerImpl.cpp).

        * WebProcess/Plugins/PluginView.cpp:
        (WebCore::PluginView::focusPluginElement): Using FocusController::setFocusedNode() makes
                                                   the call to FocusController:setFocusedFrame() redundant, since the
                                                   former calls it.

Canonical link: https://commits.webkit.org/79604@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@90338 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
Robert Hogan committed Jul 3, 2011
1 parent 4bf0071 commit 3cd129db31812dd156d4d1fa47151c41de644d1c
@@ -1,3 +1,17 @@
2011-06-23 Robert Hogan <robert@webkit.org>

Reviewed by Simon Hausmann.

[Qt] Windowless Plugins : <input> cursor blinks even after transferring focus to plugin
https://bugs.webkit.org/show_bug.cgi?id=30355

Unfortunately this has to be a rendertree test, as there is no rendertext way of
determining if a selection is still highlighted.

* platform/chromium/plugins/mouse-click-plugin-clears-selection-expected.txt: Added.
* platform/qt/plugins/mouse-click-plugin-clears-selection-expected.txt: Added.
* plugins/mouse-click-plugin-clears-selection.html: Added.

2011-07-02 Mihai Parparita <mihaip@chromium.org>

Remove failing expectation for fast/events/panScroll-click-hyperlink.html
@@ -0,0 +1,15 @@
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderBlock {HTML} at (0,0) size 800x600
RenderBody {BODY} at (8,8) size 784x584
RenderBlock (anonymous) at (0,0) size 784x126
RenderEmbeddedObject {EMBED} at (0,0) size 100x100
RenderBR {BR} at (100,100) size 0x0
RenderTextControl {INPUT} at (2,102) size 155x22 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
RenderText {#text} at (0,0) size 0x0
RenderBlock {DIV} at (0,126) size 784x0
layer at (12,113) size 151x16
RenderBlock {DIV} at (2,3) size 151x16
RenderText {#text} at (1,0) size 27x16
text run at (1,0) width 27: "hello"
@@ -0,0 +1,15 @@
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderBlock {HTML} at (0,0) size 800x600
RenderBody {BODY} at (8,8) size 784x584
RenderBlock (anonymous) at (0,0) size 784x130
RenderEmbeddedObject {EMBED} at (0,0) size 100x100
RenderBR {BR} at (100,100) size 0x0
RenderTextControl {INPUT} at (2,102) size 166x26
RenderText {#text} at (0,0) size 0x0
RenderBlock {DIV} at (0,130) size 784x0
layer at (12,112) size 162x22
RenderBlock {DIV} at (2,2) size 162x22
RenderText {#text} at (1,0) size 32x22
text run at (1,0) width 32: "hello"
@@ -0,0 +1,25 @@
<html>
<head>
<script>

function runTest() {
inputElement = document.getElementById('frame');
inputElement.focus();
inputElement.select();

if (!window.layoutTestController) {
output.textContent = "Test that clicking on a plugin clears the selection on the currently focused element. Click on the plugin; the text in the input control should no longer be highlighted. The rendertree for this test should not contain any selection information. See https://bugs.webkit.org/show_bug.cgi?id=30355";
} else {
eventSender.mouseMoveTo(60, 60);
eventSender.mouseDown();
eventSender.mouseUp();
}
}
</script>
</head>
<body onload="runTest();">
<embed id="plg" type="application/x-webkit-test-netscape" width="100" height="100" windowedplugin="false"></embed><br>
<input id="frame" value="hello"/>
<div id="output"></div>
</body>
</html>
@@ -1,3 +1,22 @@
2011-06-23 Robert Hogan <robert@webkit.org>

Reviewed by Simon Hausmann.

[Qt] Windowless Plugins : <input> cursor blinks even after transferring focus to plugin
https://bugs.webkit.org/show_bug.cgi?id=30355

Test: plugins/mouse-click-plugin-clears-selection.html

PluginView needs to use page->focusController()->setFocusedNode() when focusing a plugin
in order to clear the FrameSelection in the currently focused node. In its platform-specific
code Chromium already does this (WebPluginContainerImpl.cpp).

* WebCore.exp.in: Add symbol for FocusController::setFocusedNode
* plugins/PluginView.cpp:
(WebCore::PluginView::focusPluginElement): Using FocusController::setFocusedNode() makes
the call to FocusController:setFocusedFrame() and Document::setFocusedNode()
redundant, since it calls both.

2011-07-01 Michael Nordman <michaeln@google.com>

Reviewed by Darin Fisher.
@@ -399,6 +399,7 @@ __ZN7WebCore15DatabaseTracker8setQuotaEPNS_14SecurityOriginEy
__ZN7WebCore15DatabaseTracker9setClientEPNS_21DatabaseTrackerClientE
__ZN7WebCore15FocusController10setFocusedEb
__ZN7WebCore15FocusController15setFocusedFrameEN3WTF10PassRefPtrINS_5FrameEEE
__ZN7WebCore15FocusController14setFocusedNodeEPNS_4NodeEN3WTF10PassRefPtrINS_5FrameEEE
__ZN7WebCore15FocusController15setInitialFocusENS_14FocusDirectionEPNS_13KeyboardEventE
__ZN7WebCore15FocusController9setActiveEb
__ZN7WebCore15GraphicsContext12setFillColorERKNS_5ColorENS_10ColorSpaceE
@@ -909,8 +909,9 @@ void PluginView::focusPluginElement()
{
// Focus the plugin
if (Page* page = m_parentFrame->page())
page->focusController()->setFocusedFrame(m_parentFrame);
m_parentFrame->document()->setFocusedNode(m_element);
page->focusController()->setFocusedNode(m_element, m_parentFrame);
else
m_parentFrame->document()->setFocusedNode(m_element);
}

void PluginView::didReceiveResponse(const ResourceResponse& response)
@@ -1,3 +1,19 @@
2011-06-23 Robert Hogan <robert@webkit.org>

Reviewed by Simon Hausmann.

[Qt] Windowless Plugins : <input> cursor blinks even after transferring focus to plugin
https://bugs.webkit.org/show_bug.cgi?id=30355

PluginView needs to use page->focusController()->setFocusedNode() when focusing a plugin
in order to clear the FrameSelection in the currently focused node. In its platform-specific
code Chromium already does this (WebPluginContainerImpl.cpp).

* WebProcess/Plugins/PluginView.cpp:
(WebCore::PluginView::focusPluginElement): Using FocusController::setFocusedNode() makes
the call to FocusController:setFocusedFrame() redundant, since the
former calls it.

2011-07-02 Anders Carlsson <andersca@apple.com>

Have another go at fixing the Windows build.
@@ -681,8 +681,9 @@ void PluginView::focusPluginElement()
ASSERT(frame());

if (Page* page = frame()->page())
page->focusController()->setFocusedFrame(frame());
frame()->document()->setFocusedNode(m_pluginElement);
page->focusController()->setFocusedNode(m_pluginElement.get(), frame());
else
frame()->document()->setFocusedNode(m_pluginElement);
}

void PluginView::pendingURLRequestsTimerFired()

0 comments on commit 3cd129d

Please sign in to comment.