Title: [89744] trunk/Source/WebKit/qt
Revision
89744
Author
[email protected]
Date
2011-06-25 10:44:20 -0700 (Sat, 25 Jun 2011)

Log Message

2011-06-20  Robert Hogan  <[email protected]>

        Reviewed by Antonio Gomes.

        [Qt] Duplicate entry in context menu
        https://bugs.webkit.org/show_bug.cgi?id=62139

        contextMenuController()->populate() is called from
        ContextMenuController::handleContextMenuEvent() so
        QWebPage::updatePositionDependentActions() does not need
        to call it independently.

        Related changesets:
         http://trac.webkit.org/changeset/73535
         http://trac.webkit.org/changeset/32389

        * Api/qwebpage.cpp:
        (QWebPage::updatePositionDependentActions):
        * tests/qwebpage/tst_qwebpage.cpp:
        (tst_QWebPage::contextMenuCopy):
        (tst_QWebPage::contextMenuPopulatedOnce):

Modified Paths

Diff

Modified: trunk/Source/WebKit/qt/Api/qwebpage.cpp (89743 => 89744)


--- trunk/Source/WebKit/qt/Api/qwebpage.cpp	2011-06-25 17:21:26 UTC (rev 89743)
+++ trunk/Source/WebKit/qt/Api/qwebpage.cpp	2011-06-25 17:44:20 UTC (rev 89744)
@@ -3305,16 +3305,14 @@
 
     d->createMainFrame();
     WebCore::Frame* focusedFrame = d->page->focusController()->focusedOrMainFrame();
-    HitTestResult result = focusedFrame->eventHandler()->hitTestResultAtPoint(focusedFrame->view()->windowToContents(pos), /*allowShadowContent*/ false);
 
+    HitTestResult result = focusedFrame->eventHandler()->hitTestResultAtPoint(focusedFrame->view()->windowToContents(pos), /*allowShadowContent*/ false);
     if (result.scrollbar())
         d->hitTestResult = QWebHitTestResult();
     else
         d->hitTestResult = QWebHitTestResult(new QWebHitTestResultPrivate(result));
-
     d->page->contextMenuController()->setHitTestResult(result);
-    d->page->contextMenuController()->populate();
-    
+
 #if ENABLE(INSPECTOR)
     if (d->page->inspectorController()->enabled())
         d->page->contextMenuController()->addInspectElementItem();

Modified: trunk/Source/WebKit/qt/ChangeLog (89743 => 89744)


--- trunk/Source/WebKit/qt/ChangeLog	2011-06-25 17:21:26 UTC (rev 89743)
+++ trunk/Source/WebKit/qt/ChangeLog	2011-06-25 17:44:20 UTC (rev 89744)
@@ -1,3 +1,25 @@
+2011-06-20  Robert Hogan  <[email protected]>
+
+        Reviewed by Antonio Gomes.
+
+        [Qt] Duplicate entry in context menu
+        https://bugs.webkit.org/show_bug.cgi?id=62139
+
+        contextMenuController()->populate() is called from
+        ContextMenuController::handleContextMenuEvent() so
+        QWebPage::updatePositionDependentActions() does not need
+        to call it independently.
+
+        Related changesets: 
+         http://trac.webkit.org/changeset/73535
+         http://trac.webkit.org/changeset/32389
+
+        * Api/qwebpage.cpp:
+        (QWebPage::updatePositionDependentActions):
+        * tests/qwebpage/tst_qwebpage.cpp:
+        (tst_QWebPage::contextMenuCopy):
+        (tst_QWebPage::contextMenuPopulatedOnce):
+
 2011-06-24  Dominic Cooney  <[email protected]>
 
         Reviewed by Dimitri Glazkov.

Modified: trunk/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp (89743 => 89744)


--- trunk/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp	2011-06-25 17:21:26 UTC (rev 89743)
+++ trunk/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp	2011-06-25 17:44:20 UTC (rev 89744)
@@ -90,6 +90,7 @@
     void initTestCase();
     void cleanupTestCase();
     void contextMenuCopy();
+    void contextMenuPopulatedOnce();
     void acceptNavigationRequest();
     void geolocationRequestJS();
     void loadFinished();
@@ -2973,6 +2974,33 @@
     QVERIFY(index != -1);
 }
 
+// https://bugs.webkit.org/show_bug.cgi?id=62139
+void tst_QWebPage::contextMenuPopulatedOnce()
+{
+    QWebView view;
+
+    view.setHtml("<input type=\"text\">");
+
+    QWebElement link = view.page()->mainFrame()->findFirstElement("input");
+    QPoint pos(link.geometry().center());
+    QContextMenuEvent event(QContextMenuEvent::Mouse, pos);
+    view.page()->swallowContextMenuEvent(&event);
+    view.page()->updatePositionDependentActions(pos);
+
+    QList<QMenu*> contextMenus = view.findChildren<QMenu*>();
+    QVERIFY(!contextMenus.isEmpty());
+    QMenu* contextMenu = contextMenus.first();
+    QVERIFY(contextMenu);
+
+    QList<QAction *> list = contextMenu->actions();
+    QStringList entries;
+    while (!list.isEmpty()) {
+        QString entry = list.takeFirst()->text();
+        QVERIFY(!entries.contains(entry));
+        entries << entry;
+    }
+}
+
 void tst_QWebPage::deleteQWebViewTwice()
 {
     for (int i = 0; i < 2; ++i) {
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to