summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webplugin.h
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-04 07:06:39 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-04 07:06:39 +0000
commite15e9c49957bb309877d90442353328e1b53a0a6 (patch)
tree97701d9822f030b5939c1738441eb5e9683262c8 /webkit/glue/webplugin.h
parentd2817019145d7806d400ae70bf9fb4b5681905c8 (diff)
downloadchromium_src-e15e9c49957bb309877d90442353328e1b53a0a6.zip
chromium_src-e15e9c49957bb309877d90442353328e1b53a0a6.tar.gz
chromium_src-e15e9c49957bb309877d90442353328e1b53a0a6.tar.bz2
Another attempt at landing this patch.
The reliability tests regressions caused by this patch have been addressed by the upstream bug fix https://bugs.webkit.org/show_bug.cgi?id=27769 The IPCs for carrying data requested by plugins have been changed from synchronous IPCs to asynchronous IPCs. This fixes bug http://code.google.com/p/chromium/issues/detail?id=14323, where the Flash plugin would not render content on the page if these IPCs were processed while the plugin waited for sync calls like NPN_Evaluate to return. This CL also fixes the following bugs, which were crashes in reliability test runs when this patch was landed last time. http://code.google.com/p/chromium/issues/detail?id=18058 http://code.google.com/p/chromium/issues/detail?id=18059 The crash happens because of NPP_Write calls issued to the plugin while it is waiting for an NPN_Invoke call to return in the context of NPP_NewStream. Inspecting the safari plugin implementation revealed that they defer the resource load before calling the plugin and restore it on return. We emulate this behavior via an IPC sent from the plugin which serves as an acknowledgement. Test=covered by UI tests. Bug=14323,18058,18059 Review URL: http://codereview.chromium.org/159746 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22369 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webplugin.h')
-rw-r--r--webkit/glue/webplugin.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/webkit/glue/webplugin.h b/webkit/glue/webplugin.h
index 07d2470..074549a 100644
--- a/webkit/glue/webplugin.h
+++ b/webkit/glue/webplugin.h
@@ -131,6 +131,10 @@ class WebPlugin {
virtual void ResourceClientDeleted(
WebPluginResourceClient* resource_client) {}
+ // Defers the loading of the resource identified by resource_id. This is
+ // controlled by the defer parameter.
+ virtual void SetDeferResourceLoading(int resource_id, bool defer) = 0;
+
private:
DISALLOW_EVIL_CONSTRUCTORS(WebPlugin);
};
@@ -146,8 +150,7 @@ class WebPluginResourceClient {
const std::string& headers,
uint32 expected_length,
uint32 last_modified,
- bool request_is_seekable,
- bool* cancel) = 0;
+ bool request_is_seekable) = 0;
virtual void DidReceiveData(const char* buffer, int length,
int data_offset) = 0;
virtual void DidFinishLoading() = 0;