Diff
Modified: trunk/Source/WebKit2/ChangeLog (90646 => 90647)
--- trunk/Source/WebKit2/ChangeLog 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/ChangeLog 2011-07-08 18:37:38 UTC (rev 90647)
@@ -1,3 +1,34 @@
+2011-07-08 Andreas Kling <[email protected]>
+
+ [Qt][WK2] Views should expose QActions for basic navigation.
+ https://bugs.webkit.org/show_bug.cgi?id=64174
+
+ Add navigationAction() methods to the views to provide default
+ QActions for Back, Forward, Stop and Reload.
+
+ Reviewed by Benjamin Poulain.
+
+ * UIProcess/API/qt/WKView.h:
+ * UIProcess/API/qt/qdesktopwebview.cpp:
+ (QDesktopWebView::navigationAction):
+ * UIProcess/API/qt/qdesktopwebview.h:
+ * UIProcess/API/qt/qtouchwebpage.cpp:
+ (QTouchWebPage::navigationAction):
+ * UIProcess/API/qt/qtouchwebpage.h:
+ * UIProcess/API/qt/qwebkittypes.h: Added.
+ * UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp:
+ (tst_CommonViewTests::backAndForward):
+ (tst_CommonViewTests::reload):
+ (tst_CommonViewTests::stop):
+ * UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp:
+ (WebViewAbstraction::triggerNavigationAction):
+ * UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h:
+ * UIProcess/API/qt/tests/html/basic_page2.html: Added.
+ * UIProcess/qt/QtWebPageProxy.cpp:
+ (QtWebPageProxy::navigationAction):
+ * UIProcess/qt/QtWebPageProxy.h:
+ * WebKit2API.pri:
+
2011-07-08 Benjamin Poulain <[email protected]>
[Qt][WK2] Get rid of the check for TILED_BACKING_STORE in Qt
Modified: trunk/Source/WebKit2/UIProcess/API/qt/WKView.h (90646 => 90647)
--- trunk/Source/WebKit2/UIProcess/API/qt/WKView.h 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/UIProcess/API/qt/WKView.h 2011-07-08 18:37:38 UTC (rev 90647)
@@ -20,6 +20,7 @@
#ifndef WKView_h
#define WKView_h
+#include <WebKit2/qwebkittypes.h>
#include <WebKit2/qdesktopwebview.h>
#include <WebKit2/qtouchwebview.h>
#include <WebKit2/qtouchwebpage.h>
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp (90646 => 90647)
--- trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.cpp 2011-07-08 18:37:38 UTC (rev 90647)
@@ -184,6 +184,11 @@
return d->page.title();
}
+QAction* QDesktopWebView::navigationAction(QtWebKit::NavigationAction which) const
+{
+ return d->page.navigationAction(which);
+}
+
void QDesktopWebView::resizeEvent(QGraphicsSceneResizeEvent* ev)
{
d->page.setDrawingAreaSize(ev->newSize().toSize());
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.h (90646 => 90647)
--- trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.h 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qdesktopwebview.h 2011-07-08 18:37:38 UTC (rev 90647)
@@ -22,6 +22,7 @@
#define qdesktopwebview_h
#include "qwebkitglobal.h"
+#include "qwebkittypes.h"
#include <WebKit2/WKBase.h>
#include <QGraphicsWidget>
@@ -45,6 +46,8 @@
QUrl url() const;
QString title() const;
+ QAction* navigationAction(QtWebKit::NavigationAction which) const;
+
public Q_SLOTS:
void load(const QUrl&);
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.cpp (90646 => 90647)
--- trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.cpp 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.cpp 2011-07-08 18:37:38 UTC (rev 90647)
@@ -141,6 +141,11 @@
QGraphicsWidget::resizeEvent(ev);
}
+QAction* QTouchWebPage::navigationAction(QtWebKit::NavigationAction which)
+{
+ return d->page->navigationAction(which);
+}
+
QTouchWebPagePrivate::QTouchWebPagePrivate(QTouchWebPage* view)
: q(view)
, page(0)
Modified: trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.h (90646 => 90647)
--- trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.h 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qtouchwebpage.h 2011-07-08 18:37:38 UTC (rev 90647)
@@ -22,6 +22,7 @@
#define qtouchwebpage_h
#include "qwebkitglobal.h"
+#include "qwebkittypes.h"
#include <QGraphicsWidget>
#include <QSharedPointer>
@@ -48,6 +49,8 @@
Q_INVOKABLE QString title() const;
+ QAction* navigationAction(QtWebKit::NavigationAction which);
+
virtual void paint(QPainter*, const QStyleOptionGraphicsItem*, QWidget*);
virtual bool event(QEvent*);
Added: trunk/Source/WebKit2/UIProcess/API/qt/qwebkittypes.h (0 => 90647)
--- trunk/Source/WebKit2/UIProcess/API/qt/qwebkittypes.h (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/qt/qwebkittypes.h 2011-07-08 18:37:38 UTC (rev 90647)
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2011 Andreas Kling <[email protected]>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this program; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef qwebkittypes_h
+#define qwebkittypes_h
+
+namespace QtWebKit {
+
+enum NavigationAction {
+ Back,
+ Forward,
+ Stop,
+ Reload,
+
+ NavigationActionCount
+};
+
+}
+
+#endif /* qwebkittypes_h */
Modified: trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp (90646 => 90647)
--- trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/tst_commonviewtests.cpp 2011-07-08 18:37:38 UTC (rev 90647)
@@ -33,6 +33,9 @@
void loadEmptyUrl();
void loadEmptyPageViewVisible();
void loadEmptyPageViewHidden();
+ void backAndForward();
+ void reload();
+ void stop();
void show();
private:
@@ -79,6 +82,63 @@
QCOMPARE(loadStartedSpy.size(), 1);
}
+void tst_CommonViewTests::backAndForward()
+{
+ viewAbstraction->load(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html")));
+ QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
+
+ QUrl url;
+ QVERIFY(viewAbstraction->url(url));
+ QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"));
+
+ viewAbstraction->load(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/basic_page2.html")));
+ QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
+
+ QVERIFY(viewAbstraction->url(url));
+ QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page2.html"));
+
+ viewAbstraction->triggerNavigationAction(QtWebKit::Back);
+ QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
+
+ QVERIFY(viewAbstraction->url(url));
+ QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"));
+
+ viewAbstraction->triggerNavigationAction(QtWebKit::Forward);
+ QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
+
+ QVERIFY(viewAbstraction->url(url));
+ QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page2.html"));
+}
+
+void tst_CommonViewTests::reload()
+{
+ viewAbstraction->load(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html")));
+ QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
+
+ QUrl url;
+ QVERIFY(viewAbstraction->url(url));
+ QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"));
+
+ viewAbstraction->triggerNavigationAction(QtWebKit::Reload);
+ QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
+
+ QVERIFY(viewAbstraction->url(url));
+ QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"));
+}
+
+void tst_CommonViewTests::stop()
+{
+ viewAbstraction->load(QUrl::fromLocalFile(QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html")));
+ QVERIFY(waitForSignal(viewAbstraction.data(), SIGNAL(loadSucceeded())));
+
+ QUrl url;
+ QVERIFY(viewAbstraction->url(url));
+ QCOMPARE(url.path(), QLatin1String(TESTS_SOURCE_DIR "/html/basic_page.html"));
+
+ // FIXME: This test should be fleshed out. Right now it's just here to make sure we don't crash.
+ viewAbstraction->triggerNavigationAction(QtWebKit::Stop);
+}
+
void tst_CommonViewTests::show()
{
// This should not crash.
Modified: trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp (90646 => 90647)
--- trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.cpp 2011-07-08 18:37:38 UTC (rev 90647)
@@ -17,6 +17,7 @@
Boston, MA 02110-1301, USA.
*/
+#include <QAction>
#include <QApplication>
#include <QDesktopWidget>
#include "webviewabstraction.h"
@@ -76,6 +77,14 @@
return true;
}
+void WebViewAbstraction::triggerNavigationAction(QtWebKit::NavigationAction which)
+{
+ QAction* touchAction = touchWebView()->page()->navigationAction(which);
+ touchAction->trigger();
+ QAction* desktopAction = desktopWebView()->navigationAction(which);
+ desktopAction->trigger();
+}
+
void WebViewAbstraction::touchViewLoadStarted()
{
m_touchViewSignalsCounter[SIGNAL(loadStarted())]++;
Modified: trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h (90646 => 90647)
--- trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/UIProcess/API/qt/tests/commonviewtests/webviewabstraction.h 2011-07-08 18:37:38 UTC (rev 90647)
@@ -40,6 +40,8 @@
void load(const QUrl&);
bool url(QUrl&) const;
+ void triggerNavigationAction(QtWebKit::NavigationAction);
+
Q_SIGNALS:
void loadStarted();
void loadSucceeded();
Added: trunk/Source/WebKit2/UIProcess/API/qt/tests/html/basic_page2.html (0 => 90647)
--- trunk/Source/WebKit2/UIProcess/API/qt/tests/html/basic_page2.html (rev 0)
+++ trunk/Source/WebKit2/UIProcess/API/qt/tests/html/basic_page2.html 2011-07-08 18:37:38 UTC (rev 90647)
@@ -0,0 +1 @@
+<h1>Basic page 2</h1>
Modified: trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp (90646 => 90647)
--- trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp 2011-07-08 18:37:38 UTC (rev 90647)
@@ -648,6 +648,22 @@
m_webPageProxy->contextMenuItemSelected(menuItemData);
}
+QAction* QtWebPageProxy::navigationAction(QtWebKit::NavigationAction which) const
+{
+ switch (which) {
+ case QtWebKit::Back:
+ return action(QtWebPageProxy::Back);
+ case QtWebKit::Forward:
+ return action(QtWebPageProxy::Forward);
+ case QtWebKit::Reload:
+ return action(QtWebPageProxy::Reload);
+ case QtWebKit::Stop:
+ return action(QtWebPageProxy::Stop);
+ }
+
+ return 0;
+}
+
QAction* QtWebPageProxy::action(WebAction action) const
{
if (action == QtWebPageProxy::NoWebAction || action >= WebActionCount)
Modified: trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.h (90646 => 90647)
--- trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.h 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.h 2011-07-08 18:37:38 UTC (rev 90647)
@@ -25,6 +25,7 @@
#include "LayerTreeContext.h"
#include "PageClient.h"
+#include "qwebkittypes.h"
#include "ShareableBitmap.h"
#include "ViewportArguments.h"
#include "ViewInterface.h"
@@ -172,6 +173,8 @@
void setResizesToContentsUsingLayoutSize(const QSize& targetLayoutSize);
+ QAction* navigationAction(QtWebKit::NavigationAction) const;
+
QAction* action(WebAction action) const;
void triggerAction(WebAction action, bool checked = false);
void setCreateNewPageFunction(CreateNewPageFn function);
Modified: trunk/Source/WebKit2/WebKit2API.pri (90646 => 90647)
--- trunk/Source/WebKit2/WebKit2API.pri 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Source/WebKit2/WebKit2API.pri 2011-07-08 18:37:38 UTC (rev 90647)
@@ -125,6 +125,7 @@
$$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebpage_p.h \
$$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebview.h \
$$SOURCE_DIR/WebKit2/UIProcess/API/qt/qtouchwebview_p.h \
+ $$SOURCE_DIR/WebKit2/UIProcess/API/qt/qwebkittypes.h \
$$SOURCE_DIR/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h \
$$SOURCE_DIR/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h \
$$SOURCE_DIR/WebKit2/WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h \
Modified: trunk/Tools/ChangeLog (90646 => 90647)
--- trunk/Tools/ChangeLog 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Tools/ChangeLog 2011-07-08 18:37:38 UTC (rev 90647)
@@ -1,3 +1,18 @@
+2011-07-08 Andreas Kling <[email protected]>
+
+ [Qt][WK2] Views should expose QActions for basic navigation.
+ https://bugs.webkit.org/show_bug.cgi?id=64174
+
+ Reviewed by Benjamin Poulain.
+
+ Bring the toolbar in Qt's MiniBrowser back to life.
+
+ * MiniBrowser/qt/BrowserView.cpp:
+ (BrowserView::navigationAction):
+ * MiniBrowser/qt/BrowserView.h:
+ * MiniBrowser/qt/BrowserWindow.cpp:
+ (BrowserWindow::BrowserWindow):
+
2011-07-08 Adam Roben <[email protected]>
Teach TestFailures how to find test names in commit-log-editor-style commit messages
Modified: trunk/Tools/MiniBrowser/qt/BrowserView.cpp (90646 => 90647)
--- trunk/Tools/MiniBrowser/qt/BrowserView.cpp 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Tools/MiniBrowser/qt/BrowserView.cpp 2011-07-08 18:37:38 UTC (rev 90647)
@@ -88,3 +88,13 @@
{
return qobject_cast<QDesktopWebView*>(m_item);
}
+
+QAction* BrowserView::navigationAction(QtWebKit::NavigationAction which) const
+{
+ if (desktopWebView())
+ return desktopWebView()->navigationAction(which);
+ if (touchWebView())
+ return touchWebView()->page()->navigationAction(which);
+ Q_ASSERT(false);
+ return 0;
+}
Modified: trunk/Tools/MiniBrowser/qt/BrowserView.h (90646 => 90647)
--- trunk/Tools/MiniBrowser/qt/BrowserView.h 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Tools/MiniBrowser/qt/BrowserView.h 2011-07-08 18:37:38 UTC (rev 90647)
@@ -30,6 +30,7 @@
#define BrowserView_h
#include <QGraphicsView>
+#include <qwebkittypes.h>
class QDesktopWebView;
class QTouchWebView;
@@ -44,6 +45,8 @@
void load(const QString&);
QGraphicsWidget* view() const;
+ QAction* navigationAction(QtWebKit::NavigationAction which) const;
+
QTouchWebView* touchWebView() const;
QDesktopWebView* desktopWebView() const;
Modified: trunk/Tools/MiniBrowser/qt/BrowserWindow.cpp (90646 => 90647)
--- trunk/Tools/MiniBrowser/qt/BrowserWindow.cpp 2011-07-08 18:33:00 UTC (rev 90646)
+++ trunk/Tools/MiniBrowser/qt/BrowserWindow.cpp 2011-07-08 18:37:38 UTC (rev 90647)
@@ -127,12 +127,10 @@
connect(m_addressBar, SIGNAL(returnPressed()), SLOT(changeLocation()));
QToolBar* bar = addToolBar("Navigation");
-#if 0
- bar->addAction(page()->action(QWKPage::Back));
- bar->addAction(page()->action(QWKPage::Forward));
- bar->addAction(page()->action(QWKPage::Reload));
- bar->addAction(page()->action(QWKPage::Stop));
-#endif
+ bar->addAction(m_browser->navigationAction(QtWebKit::Back));
+ bar->addAction(m_browser->navigationAction(QtWebKit::Forward));
+ bar->addAction(m_browser->navigationAction(QtWebKit::Reload));
+ bar->addAction(m_browser->navigationAction(QtWebKit::Stop));
bar->addWidget(m_addressBar);
QShortcut* selectAddressBar = new QShortcut(Qt::CTRL | Qt::Key_L, this);