Changeset 86447 in webkit


Ignore:
Timestamp:
May 13, 2011 11:11:58 AM (13 years ago)
Author:
robert@webkit.org
Message:

2011-05-13 Robert Hogan <robert@webkit.org>

Reviewed by Benjamin Poulain.

[Qt] fix http/tests/plugins/plugin-document-has-focus.html

For some reason the platform-independent expected result has
no newline at the end of the file. The unix test plugin also
reports the event from a different line. These are harmless
differences, so create platform-specific result.

Note that nearly every platform skips this test at the moment.

https://bugs.webkit.org/show_bug.cgi?id=60722

  • platform/qt/Skipped:
  • platform/qt/http/tests/plugins/plugin-document-has-focus-expected.txt: Added.

2011-05-13 Robert Hogan <robert@webkit.org>

Reviewed by Benjamin Poulain.

[Qt] fix http/tests/plugins/plugin-document-has-focus.html
https://bugs.webkit.org/show_bug.cgi?id=60722

QWebPage::setView() will display the browser window, so
implement a private version that does just enough to
satisfy EventSender's requirement to install an event
filter on a page's web view.

  • WebCoreSupport/DumpRenderTreeSupportQt.cpp: (DumpRenderTreeSupportQt::setView):
  • WebCoreSupport/DumpRenderTreeSupportQt.h:

2011-05-13 Robert Hogan <robert@webkit.org>

Reviewed by Benjamin Poulain.

[Qt] fix http/tests/plugins/plugin-document-has-focus.html

The support for this test added to the unix test plugin here
may allow other platforms to pass it (nearly everyone
skips it). On Qt it required a bit of trickiness with
the page's EventSender object to get it working fully though,
so only unskipping Qt here.

https://bugs.webkit.org/show_bug.cgi?id=60722

  • DumpRenderTree/qt/DumpRenderTreeQt.cpp: (WebCore::WebPage::WebPage): (WebCore::WebPage::eventSender): (WebCore::DumpRenderTree::DumpRenderTree): (WebCore::DumpRenderTree::initJSObjects): (WebCore::DumpRenderTree::createWindow):
  • DumpRenderTree/qt/DumpRenderTreeQt.h:
  • DumpRenderTree/unix/TestNetscapePlugin/TestNetscapePlugin.cpp: (webkit_test_plugin_new_instance): (webkit_test_plugin_set_window): (webkit_test_plugin_handle_event):
Location:
trunk
Files:
2 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r86443 r86447  
     12011-05-13  Robert Hogan  <robert@webkit.org>
     2
     3        Reviewed by Benjamin Poulain.
     4
     5        [Qt] fix http/tests/plugins/plugin-document-has-focus.html
     6
     7        For some reason the platform-independent expected result has
     8        no newline at the end of the file. The unix test plugin also
     9        reports the event from a different line. These are harmless
     10        differences, so create platform-specific result.
     11
     12        Note that nearly every platform skips this test at the moment.
     13
     14        https://bugs.webkit.org/show_bug.cgi?id=60722
     15
     16        * platform/qt/Skipped:
     17        * platform/qt/http/tests/plugins/plugin-document-has-focus-expected.txt: Added.
     18
    1192011-05-05  Pavel Podivilov  <podivilov@chromium.org>
    220
  • trunk/LayoutTests/platform/qt/Skipped

    r86440 r86447  
    358358plugins/embed-attributes-setting.html
    359359plugins/plugin-initiate-popup-window.html
    360 # ---- to be reviewed
    361 http/tests/plugins/plugin-document-has-focus.html
    362360
    363361# [Qt] plugins/keyboard-events.html fails after r72717
  • trunk/Source/WebKit/qt/ChangeLog

    r86438 r86447  
     12011-05-13  Robert Hogan  <robert@webkit.org>
     2
     3        Reviewed by Benjamin Poulain.
     4
     5        [Qt] fix http/tests/plugins/plugin-document-has-focus.html
     6        https://bugs.webkit.org/show_bug.cgi?id=60722
     7
     8        QWebPage::setView() will display the browser window, so
     9        implement a private version that does just enough to
     10        satisfy EventSender's requirement to install an event
     11        filter on a page's web view.
     12
     13        * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
     14        (DumpRenderTreeSupportQt::setView):
     15        * WebCoreSupport/DumpRenderTreeSupportQt.h:
     16
    1172011-05-11  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
    218
  • trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp

    r86329 r86447  
    11431143}
    11441144
     1145void DumpRenderTreeSupportQt::setView(QWebPage* page, QWidget* view)
     1146{
     1147    page->d->view = view;
     1148}
     1149
    11451150// Provide a backward compatibility with previously exported private symbols as of QtWebKit 4.6 release
    11461151
  • trunk/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h

    r86329 r86447  
    108108    static void setMediaType(QWebFrame* qframe, const QString& type);
    109109    static void setDumpRenderTreeModeEnabled(bool b);
     110    static void setView(QWebPage*, QWidget* view);
    110111
    111112    static void garbageCollectorCollect();
  • trunk/Tools/ChangeLog

    r86445 r86447  
     12011-05-13  Robert Hogan  <robert@webkit.org>
     2
     3        Reviewed by Benjamin Poulain.
     4
     5        [Qt] fix http/tests/plugins/plugin-document-has-focus.html
     6
     7        The support for this test added to the unix test plugin here
     8        may allow other platforms to pass it (nearly everyone
     9        skips it). On Qt it required a bit of trickiness with
     10        the page's EventSender object to get it working fully though,
     11        so only unskipping Qt here.
     12
     13        https://bugs.webkit.org/show_bug.cgi?id=60722
     14
     15        * DumpRenderTree/qt/DumpRenderTreeQt.cpp:
     16        (WebCore::WebPage::WebPage):
     17        (WebCore::WebPage::eventSender):
     18        (WebCore::DumpRenderTree::DumpRenderTree):
     19        (WebCore::DumpRenderTree::initJSObjects):
     20        (WebCore::DumpRenderTree::createWindow):
     21        * DumpRenderTree/qt/DumpRenderTreeQt.h:
     22        * DumpRenderTree/unix/TestNetscapePlugin/TestNetscapePlugin.cpp:
     23        (webkit_test_plugin_new_instance):
     24        (webkit_test_plugin_set_window):
     25        (webkit_test_plugin_handle_event):
     26
    1272011-05-13  Adam Roben  <aroben@apple.com>
    228
  • trunk/Tools/DumpRenderTree/qt/DumpRenderTreeQt.cpp

    r85474 r86447  
    137137    : QWebPage(parent)
    138138    , m_webInspector(0)
     139    , m_eventSender(0)
    139140    , m_drt(drt)
    140141{
     
    169170    delete m_webInspector;
    170171}
     172
     173EventSender* WebPage::eventSender()
     174{
     175    if (!m_eventSender)
     176        m_eventSender = new EventSender(this);
     177    return m_eventSender;
     178}
     179
    171180
    172181QWebInspector* WebPage::webInspector()
     
    465474
    466475    connect(m_controller, SIGNAL(done()), this, SLOT(dump()));
    467     m_eventSender = new EventSender(m_page);
     476    m_eventSender = m_page->eventSender();
    468477    m_textInputController = new TextInputController(m_page);
    469478    m_plainTextController = new PlainTextController(m_page);
     
    776785    Q_ASSERT(frame);
    777786    frame->addToJavaScriptWindowObject(QLatin1String("layoutTestController"), m_controller);
    778     frame->addToJavaScriptWindowObject(QLatin1String("eventSender"), m_eventSender);
     787    frame->addToJavaScriptWindowObject(QLatin1String("eventSender"), qobject_cast<WebPage*>(frame->page())->eventSender());
    779788    frame->addToJavaScriptWindowObject(QLatin1String("textInputController"), m_textInputController);
    780789    frame->addToJavaScriptWindowObject(QLatin1String("GCController"), m_gcController);
     
    10981107    // create a QWebPage we want to return
    10991108    QWebPage* page = static_cast<QWebPage*>(new WebPage(container, this));
     1109    // QWebPage::setView() will display the page, so use a minimal version
     1110    // that is just enough to allow EventSender to interact with the page's view
     1111    DumpRenderTreeSupportQt::setView(page, m_mainView);
     1112
    11001113    // gets cleaned up in closeRemainingWindows()
    11011114    windows.append(container);
  • trunk/Tools/DumpRenderTree/qt/DumpRenderTreeQt.h

    r83137 r86447  
    9090
    9191    LayoutTestController *layoutTestController() const { return m_controller; }
    92     EventSender *eventSender() const { return m_eventSender; }
    9392    TextInputController *textInputController() const { return m_textInputController; }
    9493    QString persistentStoragePath() const { return m_persistentStoragePath; }
     
    185184    virtual ~WebPage();
    186185    QWebInspector* webInspector();
     186    EventSender* eventSender();
    187187    void closeWebInspector();
    188188
     
    217217private:
    218218    QWebInspector* m_webInspector;
     219    EventSender* m_eventSender;
    219220    QList<QWebFrame*> m_pendingGeolocationRequests;
    220221    DumpRenderTree *m_drt;
  • trunk/Tools/DumpRenderTree/unix/TestNetscapePlugin/TestNetscapePlugin.cpp

    r86086 r86447  
    9999            else if (strcasecmp(argn[i], "onSetWindow") == 0 && !obj->onSetWindow)
    100100                obj->onSetWindow = strdup(argv[i]);
     101            else if (!strcasecmp(argn[i], "src") && strstr(argv[i], "plugin-document-has-focus.pl")) {
     102                browser->setvalue(instance, NPPVpluginWindowBool, false);
     103                obj->testKeyboardFocusForPlugins = TRUE;
     104            }
    101105        }
    102106
     
    164168        }
    165169
     170        if (obj->testKeyboardFocusForPlugins) {
     171            obj->eventLogging = true;
     172            browser->setvalue(instance, NPPVpluginWindowBool, false);
     173            executeScript(obj, "eventSender.keyDown('A');");
     174        }
    166175    }
    167176
     
    293302        case KeyRelease:
    294303            pluginLog(instance, "keyUp '%c'", keyEventToChar(&evt->xkey));
     304            if (obj->testKeyboardFocusForPlugins) {
     305                obj->eventLogging = false;
     306                obj->testKeyboardFocusForPlugins = FALSE;
     307                executeScript(obj, "layoutTestController.notifyDone();");
     308            }
    295309            break;
    296310        case KeyPress:
Note: See TracChangeset for help on using the changeset viewer.