Changeset 74144 in webkit


Ignore:
Timestamp:
Dec 15, 2010 3:03:10 PM (13 years ago)
Author:
andersca@apple.com
Message:

2010-12-15 Anders Carlsson <andersca@apple.com>

Reviewed by Sam Weinig.

Fix assertion in plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html test
https://bugs.webkit.org/show_bug.cgi?id=51136

Ensure that a plug-in that has explicitly cancelled the manual stream won't get any more callbacks.

  • PluginProcess/PluginControllerProxy.cpp: (WebKit::PluginControllerProxy::PluginControllerProxy): (WebKit::PluginControllerProxy::cancelManualStreamLoad): (WebKit::PluginControllerProxy::manualStreamDidReceiveResponse): (WebKit::PluginControllerProxy::manualStreamDidReceiveData): (WebKit::PluginControllerProxy::manualStreamDidFinishLoading): (WebKit::PluginControllerProxy::manualStreamDidFail):
  • PluginProcess/PluginControllerProxy.h:
Location:
trunk/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebKit2/ChangeLog

    r74141 r74144  
     12010-12-15  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Sam Weinig.
     4
     5        Fix assertion in plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html test
     6        https://bugs.webkit.org/show_bug.cgi?id=51136
     7
     8        Ensure that a plug-in that has explicitly cancelled the manual stream won't get any more callbacks.
     9
     10        * PluginProcess/PluginControllerProxy.cpp:
     11        (WebKit::PluginControllerProxy::PluginControllerProxy):
     12        (WebKit::PluginControllerProxy::cancelManualStreamLoad):
     13        (WebKit::PluginControllerProxy::manualStreamDidReceiveResponse):
     14        (WebKit::PluginControllerProxy::manualStreamDidReceiveData):
     15        (WebKit::PluginControllerProxy::manualStreamDidFinishLoading):
     16        (WebKit::PluginControllerProxy::manualStreamDidFail):
     17        * PluginProcess/PluginControllerProxy.h:
     18
    1192010-12-15  Brian Weinstein  <bweinstein@apple.com>
    220
  • trunk/WebKit2/PluginProcess/PluginControllerProxy.cpp

    r74046 r74144  
    5858    , m_paintTimer(RunLoop::main(), this, &PluginControllerProxy::paint)
    5959    , m_waitingForDidUpdate(false)
     60    , m_pluginCanceledManualStreamLoad(false)
    6061#if PLATFORM(MAC)
    6162    , m_isComplexTextInputEnabled(false)
     
    170171void PluginControllerProxy::cancelManualStreamLoad()
    171172{
     173    m_pluginCanceledManualStreamLoad = true;
     174
    172175    m_connection->connection()->send(Messages::PluginProxy::CancelManualStreamLoad(), m_pluginInstanceID);
    173176}
     
    330333void PluginControllerProxy::manualStreamDidReceiveResponse(const String& responseURLString, uint32_t streamLength, uint32_t lastModifiedTime, const String& mimeType, const String& headers)
    331334{
     335    if (m_pluginCanceledManualStreamLoad)
     336        return;
     337
    332338    m_plugin->manualStreamDidReceiveResponse(KURL(ParsedURLString, responseURLString), streamLength, lastModifiedTime, mimeType, headers);
    333339}
     
    335341void PluginControllerProxy::manualStreamDidReceiveData(const CoreIPC::DataReference& data)
    336342{
     343    if (m_pluginCanceledManualStreamLoad)
     344        return;
     345
    337346    m_plugin->manualStreamDidReceiveData(reinterpret_cast<const char*>(data.data()), data.size());
    338347}
     
    340349void PluginControllerProxy::manualStreamDidFinishLoading()
    341350{
     351    if (m_pluginCanceledManualStreamLoad)
     352        return;
     353   
    342354    m_plugin->manualStreamDidFinishLoading();
    343355}
     
    345357void PluginControllerProxy::manualStreamDidFail(bool wasCancelled)
    346358{
     359    if (m_pluginCanceledManualStreamLoad)
     360        return;
     361   
    347362    m_plugin->manualStreamDidFail(wasCancelled);
    348363}
  • trunk/WebKit2/PluginProcess/PluginControllerProxy.h

    r74046 r74144  
    156156    bool m_waitingForDidUpdate;
    157157
     158    // Whether the plug-in has canceled the manual stream load.
     159    bool m_pluginCanceledManualStreamLoad;
     160
    158161#if PLATFORM(MAC)
    159162    // Whether complex text input is enabled for this plug-in.
Note: See TracChangeset for help on using the changeset viewer.