diff options
author | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-04 07:06:39 +0000 |
---|---|---|
committer | ananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-04 07:06:39 +0000 |
commit | e15e9c49957bb309877d90442353328e1b53a0a6 (patch) | |
tree | 97701d9822f030b5939c1738441eb5e9683262c8 /chrome/plugin/webplugin_proxy.h | |
parent | d2817019145d7806d400ae70bf9fb4b5681905c8 (diff) | |
download | chromium_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 'chrome/plugin/webplugin_proxy.h')
-rw-r--r-- | chrome/plugin/webplugin_proxy.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/chrome/plugin/webplugin_proxy.h b/chrome/plugin/webplugin_proxy.h index 38a3879..2b11e55 100644 --- a/chrome/plugin/webplugin_proxy.h +++ b/chrome/plugin/webplugin_proxy.h @@ -121,6 +121,8 @@ class WebPluginProxy : public WebPlugin { bool notify_needed, intptr_t notify_data); + void SetDeferResourceLoading(int resource_id, bool defer); + bool IsOffTheRecord(); void ResourceClientDeleted(WebPluginResourceClient* resource_client); |