Changeset 90837 in webkit


Ignore:
Timestamp:
Jul 12, 2011 11:55:41 AM (13 years ago)
Author:
andreas.kling@nokia.com
Message:

[Qt][WK2] Navigation actions should react to web process availability.
https://bugs.webkit.org/show_bug.cgi?id=64375

Reviewed by Benjamin Poulain.

When the web process is unavailable, the reload and stop actions should
behave slightly differently. Stop should always be disabled, and reload
should be enabled if there's a reloadable item in the back/forward list.

  • UIProcess/API/qt/tests/qdesktopwebview/tst_qdesktopwebview.cpp:

(tst_QDesktopWebView::navigationActionEnabledStatusAtStartup):

  • UIProcess/API/qt/tests/qtouchwebview/tst_qtouchwebview.cpp:

(tst_QTouchWebView::navigationActionEnabledStatusAtStartup):

  • UIProcess/qt/QtWebPageProxy.cpp:

(QtWebPageProxy::updateAction):
(QtWebPageProxy::didRelaunchProcess):
(QtWebPageProxy::processDidCrash):

Location:
trunk/Source/WebKit2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r90829 r90837  
     12011-07-12  Andreas Kling  <kling@webkit.org>
     2
     3        [Qt][WK2] Navigation actions should react to web process availability.
     4        https://bugs.webkit.org/show_bug.cgi?id=64375
     5
     6        Reviewed by Benjamin Poulain.
     7
     8        When the web process is unavailable, the reload and stop actions should
     9        behave slightly differently. Stop should always be disabled, and reload
     10        should be enabled if there's a reloadable item in the back/forward list.
     11
     12        * UIProcess/API/qt/tests/qdesktopwebview/tst_qdesktopwebview.cpp:
     13        (tst_QDesktopWebView::navigationActionEnabledStatusAtStartup):
     14        * UIProcess/API/qt/tests/qtouchwebview/tst_qtouchwebview.cpp:
     15        (tst_QTouchWebView::navigationActionEnabledStatusAtStartup):
     16        * UIProcess/qt/QtWebPageProxy.cpp:
     17        (QtWebPageProxy::updateAction):
     18        (QtWebPageProxy::didRelaunchProcess):
     19        (QtWebPageProxy::processDidCrash):
     20
    1212011-07-12  Andreas Kling  <kling@webkit.org>
    222
  • trunk/Source/WebKit2/UIProcess/API/qt/tests/qdesktopwebview/tst_qdesktopwebview.cpp

    r90458 r90837  
    1818*/
    1919
     20#include <QAction>
    2021#include <QScopedPointer>
    2122#include <QtTest/QtTest>
     
    2930    void init();
    3031    void cleanup();
     32
     33    void navigationActionsStatusAtStartup();
    3134
    3235private:
     
    5053}
    5154
     55void tst_QDesktopWebView::navigationActionsStatusAtStartup()
     56{
     57    QAction* backAction = webView()->navigationAction(QtWebKit::Back);
     58    QVERIFY(backAction);
     59    QCOMPARE(backAction->isEnabled(), false);
     60
     61    QAction* forwardAction = webView()->navigationAction(QtWebKit::Forward);
     62    QVERIFY(forwardAction);
     63    QCOMPARE(forwardAction->isEnabled(), false);
     64
     65    QAction* stopAction = webView()->navigationAction(QtWebKit::Stop);
     66    QVERIFY(stopAction);
     67    QCOMPARE(stopAction->isEnabled(), false);
     68
     69    QAction* reloadAction = webView()->navigationAction(QtWebKit::Reload);
     70    QVERIFY(reloadAction);
     71    QCOMPARE(reloadAction->isEnabled(), false);
     72}
     73
    5274QTEST_MAIN(tst_QDesktopWebView)
    5375
  • trunk/Source/WebKit2/UIProcess/API/qt/tests/qtouchwebview/tst_qtouchwebview.cpp

    r90458 r90837  
    1818*/
    1919
     20#include <QAction>
    2021#include <QtTest/QtTest>
    2122#include <qtouchwebpage.h>
     
    3435
    3536    void accessPage();
     37    void navigationActionsStatusAtStartup();
    3638
    3739private:
     
    6971}
    7072
     73void tst_QTouchWebView::navigationActionsStatusAtStartup()
     74{
     75    QAction* backAction = webView()->page()->navigationAction(QtWebKit::Back);
     76    QVERIFY(backAction);
     77    QCOMPARE(backAction->isEnabled(), false);
     78
     79    QAction* forwardAction = webView()->page()->navigationAction(QtWebKit::Forward);
     80    QVERIFY(forwardAction);
     81    QCOMPARE(forwardAction->isEnabled(), false);
     82
     83    QAction* stopAction = webView()->page()->navigationAction(QtWebKit::Stop);
     84    QVERIFY(stopAction);
     85    QCOMPARE(stopAction->isEnabled(), false);
     86
     87    QAction* reloadAction = webView()->page()->navigationAction(QtWebKit::Reload);
     88    QVERIFY(reloadAction);
     89    QCOMPARE(reloadAction->isEnabled(), false);
     90}
     91
     92
    7193QTEST_MAIN(tst_QTouchWebView)
    7294
  • trunk/Source/WebKit2/UIProcess/qt/QtWebPageProxy.cpp

    r90829 r90837  
    3434#include "NativeWebKeyboardEvent.h"
    3535#include "NotImplemented.h"
     36#include "WebBackForwardList.h"
    3637#include "WebContext.h"
    3738#include "WebContextMenuProxyQt.h"
     
    481482
    482483    RefPtr<WebKit::WebFrameProxy> mainFrame = m_webPageProxy->mainFrame();
    483     if (!mainFrame)
    484         return;
    485484
    486485    bool enabled = a->isEnabled();
    487     bool checked = a->isChecked();
    488486
    489487    switch (action) {
     
    495493        break;
    496494    case QtWebPageProxy::Stop:
    497         enabled = !(WebFrameProxy::LoadStateFinished == mainFrame->loadState());
     495        enabled = mainFrame && !(WebFrameProxy::LoadStateFinished == mainFrame->loadState());
    498496        break;
    499497    case QtWebPageProxy::Reload:
    500         enabled = (WebFrameProxy::LoadStateFinished == mainFrame->loadState());
     498        if (mainFrame)
     499            enabled = (WebFrameProxy::LoadStateFinished == mainFrame->loadState());
     500        else
     501            enabled = m_webPageProxy->backForwardList()->currentItem();
    501502        break;
    502503    default:
    503         break;
     504        ASSERT_NOT_REACHED();
    504505    }
    505506
    506507    a->setEnabled(enabled);
    507 
    508     if (a->isCheckable())
    509         a->setChecked(checked);
    510508}
    511509
     
    529527void QtWebPageProxy::didRelaunchProcess()
    530528{
     529    updateNavigationActions();
    531530    m_viewInterface->didRelaunchProcess();
    532531    setDrawingAreaSize(m_viewInterface->drawingAreaSize());
     
    535534void QtWebPageProxy::processDidCrash()
    536535{
     536    updateNavigationActions();
    537537    m_viewInterface->processDidCrash();
    538538}
Note: See TracChangeset for help on using the changeset viewer.