summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webplugin_impl.h
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-10 04:43:26 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-06-10 04:43:26 +0000
commitea478a8069dec20dcbc3a8ae814386a0b444c1cb (patch)
tree9a482191c76c78be1bb888b52f985241dbf57459 /webkit/glue/webplugin_impl.h
parent86cc946579368078a3882ec3a73c5b0ab27091b4 (diff)
downloadchromium_src-ea478a8069dec20dcbc3a8ae814386a0b444c1cb.zip
chromium_src-ea478a8069dec20dcbc3a8ae814386a0b444c1cb.tar.gz
chromium_src-ea478a8069dec20dcbc3a8ae814386a0b444c1cb.tar.bz2
For lack of a better approach we now initiate the plugin src url download in a delayed task as the Flash plugin hangs if it starts receiving data before receiving valid plugin geometry.
This fixes bug http://code.google.com/p/chromium/issues/detail?id=12993 Bug=12993 TEST=Navigate to google.com/finance and open the tickers in background tabs. They should not cause the browser to hang. Review URL: http://codereview.chromium.org/118452 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@18033 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webplugin_impl.h')
-rw-r--r--webkit/glue/webplugin_impl.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/webkit/glue/webplugin_impl.h b/webkit/glue/webplugin_impl.h
index 1127a73..ab7ea8f 100644
--- a/webkit/glue/webplugin_impl.h
+++ b/webkit/glue/webplugin_impl.h
@@ -320,6 +320,9 @@ class WebPluginImpl : public WebPlugin,
static void ArrayToVector(int total_values, char** values,
std::vector<std::string>* value_vector);
+ // Delayed task for downloading the plugin source URL.
+ void OnDownloadPluginSrcUrl();
+
struct ClientInfo {
int id;
WebPluginResourceClient* client;
@@ -363,6 +366,8 @@ class WebPluginImpl : public WebPlugin,
// Holds the list of argument values passed to the plugin.
std::vector<std::string> arg_values_;
+ ScopedRunnableMethodFactory<WebPluginImpl> method_factory_;
+
DISALLOW_COPY_AND_ASSIGN(WebPluginImpl);
};