Changeset 85689 in webkit


Ignore:
Timestamp:
May 3, 2011 4:46:06 PM (13 years ago)
Author:
weinig@apple.com
Message:

2011-05-03 Sam Weinig <sam@webkit.org>

Reviewed by Dan Bernstein.

WebKit2 should treat API calls that start/stop loads as user gestures for responsiveness timer
https://bugs.webkit.org/show_bug.cgi?id=60083

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::reattachToWebProcessWithItem): (WebKit::WebPageProxy::tryClose): (WebKit::WebPageProxy::loadURL): (WebKit::WebPageProxy::loadURLRequest): (WebKit::WebPageProxy::loadHTMLString): (WebKit::WebPageProxy::loadAlternateHTMLString): (WebKit::WebPageProxy::loadPlainTextString): (WebKit::WebPageProxy::stopLoading): (WebKit::WebPageProxy::reload): (WebKit::WebPageProxy::goForward): (WebKit::WebPageProxy::goBack): (WebKit::WebPageProxy::goToBackForwardItem): Start responsiveness timer for load start/stop and close.
  • WebProcess/WebPage/WebPage.cpp: (WebKit::SendStopResponsivenessTimer::SendStopResponsivenessTimer): (WebKit::SendStopResponsivenessTimer::~SendStopResponsivenessTimer): Add simple RAII class to ensure the StopResponsivenessTimer is called.

(WebKit::WebPage::tryClose):
(WebKit::WebPage::loadURLRequest):
(WebKit::WebPage::loadData):
(WebKit::WebPage::stopLoading):
(WebKit::WebPage::reload):
(WebKit::WebPage::goForward):
(WebKit::WebPage::goBack):
(WebKit::WebPage::goToBackForwardItem):
Sends a message back to the UIProcess to indicate the WebProcess
is still responsive.

Location:
trunk/Source/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r85662 r85689  
     12011-05-03  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        WebKit2 should treat API calls that start/stop loads as user gestures for responsiveness timer
     6        https://bugs.webkit.org/show_bug.cgi?id=60083
     7
     8        * UIProcess/WebPageProxy.cpp:
     9        (WebKit::WebPageProxy::reattachToWebProcessWithItem):
     10        (WebKit::WebPageProxy::tryClose):
     11        (WebKit::WebPageProxy::loadURL):
     12        (WebKit::WebPageProxy::loadURLRequest):
     13        (WebKit::WebPageProxy::loadHTMLString):
     14        (WebKit::WebPageProxy::loadAlternateHTMLString):
     15        (WebKit::WebPageProxy::loadPlainTextString):
     16        (WebKit::WebPageProxy::stopLoading):
     17        (WebKit::WebPageProxy::reload):
     18        (WebKit::WebPageProxy::goForward):
     19        (WebKit::WebPageProxy::goBack):
     20        (WebKit::WebPageProxy::goToBackForwardItem):
     21        Start responsiveness timer for load start/stop and close.
     22
     23        * WebProcess/WebPage/WebPage.cpp:
     24        (WebKit::SendStopResponsivenessTimer::SendStopResponsivenessTimer):
     25        (WebKit::SendStopResponsivenessTimer::~SendStopResponsivenessTimer):
     26        Add simple RAII class to ensure the StopResponsivenessTimer is called.
     27
     28        (WebKit::WebPage::tryClose):
     29        (WebKit::WebPage::loadURLRequest):
     30        (WebKit::WebPage::loadData):
     31        (WebKit::WebPage::stopLoading):
     32        (WebKit::WebPage::reload):
     33        (WebKit::WebPage::goForward):
     34        (WebKit::WebPage::goBack):
     35        (WebKit::WebPage::goToBackForwardItem):
     36        Sends a message back to the UIProcess to indicate the WebProcess
     37        is still responsive.
     38
    1392011-05-03  Darin Adler  <darin@apple.com>
    240
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r85502 r85689  
    271271    initializeSandboxExtensionHandle(KURL(KURL(), item->url()), sandboxExtensionHandle);
    272272    process()->send(Messages::WebPage::GoToBackForwardItem(item->itemID(), sandboxExtensionHandle), m_pageID);
     273    process()->responsivenessTimer()->start();
    273274}
    274275
     
    364365
    365366    process()->send(Messages::WebPage::TryClose(), m_pageID);
     367    process()->responsivenessTimer()->start();
    366368    return false;
    367369}
     
    389391    initializeSandboxExtensionHandle(KURL(KURL(), url), sandboxExtensionHandle);
    390392    process()->send(Messages::WebPage::LoadURL(url, sandboxExtensionHandle), m_pageID);
     393    process()->responsivenessTimer()->start();
    391394}
    392395
     
    401404    initializeSandboxExtensionHandle(urlRequest->resourceRequest().url(), sandboxExtensionHandle);
    402405    process()->send(Messages::WebPage::LoadURLRequest(urlRequest->resourceRequest(), sandboxExtensionHandle), m_pageID);
     406    process()->responsivenessTimer()->start();
    403407}
    404408
     
    409413
    410414    process()->send(Messages::WebPage::LoadHTMLString(htmlString, baseURL), m_pageID);
     415    process()->responsivenessTimer()->start();
    411416}
    412417
     
    420425
    421426    process()->send(Messages::WebPage::LoadAlternateHTMLString(htmlString, baseURL, unreachableURL), m_pageID);
     427    process()->responsivenessTimer()->start();
    422428}
    423429
     
    428434
    429435    process()->send(Messages::WebPage::LoadPlainTextString(string), m_pageID);
     436    process()->responsivenessTimer()->start();
    430437}
    431438
     
    434441    if (!isValid())
    435442        return;
     443
    436444    process()->send(Messages::WebPage::StopLoading(), m_pageID);
     445    process()->responsivenessTimer()->start();
    437446}
    438447
     
    448457
    449458    process()->send(Messages::WebPage::Reload(reloadFromOrigin), m_pageID);
     459    process()->responsivenessTimer()->start();
    450460}
    451461
     
    467477    initializeSandboxExtensionHandle(KURL(KURL(), forwardItem->url()), sandboxExtensionHandle);
    468478    process()->send(Messages::WebPage::GoForward(forwardItem->itemID(), sandboxExtensionHandle), m_pageID);
     479    process()->responsivenessTimer()->start();
    469480}
    470481
     
    491502    initializeSandboxExtensionHandle(KURL(KURL(), backItem->url()), sandboxExtensionHandle);
    492503    process()->send(Messages::WebPage::GoBack(backItem->itemID(), sandboxExtensionHandle), m_pageID);
     504    process()->responsivenessTimer()->start();
    493505}
    494506
     
    510522    initializeSandboxExtensionHandle(KURL(KURL(), item->url()), sandboxExtensionHandle);
    511523    process()->send(Messages::WebPage::GoToBackForwardItem(item->itemID(), sandboxExtensionHandle), m_pageID);
     524    process()->responsivenessTimer()->start();
    512525}
    513526
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r85442 r85689  
    135135namespace WebKit {
    136136
     137class SendStopResponsivenessTimer {
     138public:
     139    SendStopResponsivenessTimer(WebPage* page)
     140        : m_page(page)
     141    {
     142    }
     143   
     144    ~SendStopResponsivenessTimer()
     145    {
     146        m_page->send(Messages::WebPageProxy::StopResponsivenessTimer());
     147    }
     148
     149private:
     150    WebPage* m_page;
     151};
     152   
    137153#ifndef NDEBUG
    138154static WTF::RefCountedLeakCounter webPageCounter("WebPage");
     
    427443void WebPage::tryClose()
    428444{
     445    SendStopResponsivenessTimer stopper(this);
     446
    429447    if (!m_mainFrame->coreFrame()->loader()->shouldClose())
    430448        return;
     
    445463void WebPage::loadURLRequest(const ResourceRequest& request, const SandboxExtension::Handle& sandboxExtensionHandle)
    446464{
     465    SendStopResponsivenessTimer stopper(this);
     466
    447467    m_sandboxExtensionTracker.beginLoad(m_mainFrame.get(), sandboxExtensionHandle);
    448468    m_mainFrame->coreFrame()->loader()->load(request, false);
     
    451471void WebPage::loadData(PassRefPtr<SharedBuffer> sharedBuffer, const String& MIMEType, const String& encodingName, const KURL& baseURL, const KURL& unreachableURL)
    452472{
     473    SendStopResponsivenessTimer stopper(this);
     474
    453475    ResourceRequest request(baseURL);
    454476    SubstituteData substituteData(sharedBuffer, MIMEType, encodingName, unreachableURL);
     
    502524void WebPage::stopLoading()
    503525{
     526    SendStopResponsivenessTimer stopper(this);
     527
    504528    m_mainFrame->coreFrame()->loader()->stopForUserCancel();
    505529}
     
    512536void WebPage::reload(bool reloadFromOrigin)
    513537{
     538    SendStopResponsivenessTimer stopper(this);
     539
    514540    m_mainFrame->coreFrame()->loader()->reload(reloadFromOrigin);
    515541}
     
    517543void WebPage::goForward(uint64_t backForwardItemID, const SandboxExtension::Handle& sandboxExtensionHandle)
    518544{
     545    SendStopResponsivenessTimer stopper(this);
     546
    519547    HistoryItem* item = WebBackForwardListProxy::itemForID(backForwardItemID);
    520548    ASSERT(item);
     
    528556void WebPage::goBack(uint64_t backForwardItemID, const SandboxExtension::Handle& sandboxExtensionHandle)
    529557{
     558    SendStopResponsivenessTimer stopper(this);
     559
    530560    HistoryItem* item = WebBackForwardListProxy::itemForID(backForwardItemID);
    531561    ASSERT(item);
     
    539569void WebPage::goToBackForwardItem(uint64_t backForwardItemID, const SandboxExtension::Handle& sandboxExtensionHandle)
    540570{
     571    SendStopResponsivenessTimer stopper(this);
     572
    541573    HistoryItem* item = WebBackForwardListProxy::itemForID(backForwardItemID);
    542574    ASSERT(item);
Note: See TracChangeset for help on using the changeset viewer.