summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webplugin_impl.h
diff options
context:
space:
mode:
authorananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-23 21:25:34 +0000
committerananta@chromium.org <ananta@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-10-23 21:25:34 +0000
commit3bc58e70973f637a55e3e10563b5c274b90f020f (patch)
tree0cd130ef13004f9b16dc626df46c2554ca18d3e5 /webkit/glue/webplugin_impl.h
parent68c73b083028bb08744fbb87faba45a9e2ab6614 (diff)
downloadchromium_src-3bc58e70973f637a55e3e10563b5c274b90f020f.zip
chromium_src-3bc58e70973f637a55e3e10563b5c274b90f020f.tar.gz
chromium_src-3bc58e70973f637a55e3e10563b5c274b90f020f.tar.bz2
This fixes http://code.google.com/p/chromium/issues/detail?id=3585, which is an issue with videos on sites like thedailyshow.com not showing up in Chrome. We recently made a change to send out the plugin SRC as the referrer in requests initiated by plugins.We also use the GetURLNotify codepath for requests which are initiated by us when the plugin is instantiated. It looks like the other browsers don't do the same, and only use the SRC as the referer for explicit plugin requests.Based on a reply on the PluginFutures list we emulate this behavior, which is to default to the containing frame URL as the referer for requests not initiated by plugins.
R=jam Review URL: http://codereview.chromium.org/7871 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@3862 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webplugin_impl.h')
-rw-r--r--webkit/glue/webplugin_impl.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/webkit/glue/webplugin_impl.h b/webkit/glue/webplugin_impl.h
index 70d4b89..b5473c5 100644
--- a/webkit/glue/webplugin_impl.h
+++ b/webkit/glue/webplugin_impl.h
@@ -131,7 +131,8 @@ class WebPluginImpl : public WebPlugin,
friend class WebPluginContainer;
WebPluginImpl(WebCore::Element *element, WebFrameImpl *frame,
- WebPluginDelegate* delegate, const GURL& plugin_url);
+ WebPluginDelegate* delegate, const GURL& plugin_url,
+ bool load_manually);
// WebPlugin implementation:
void SetWindow(HWND window, HANDLE pump_messages_event);
@@ -165,8 +166,8 @@ class WebPluginImpl : public WebPlugin,
// Returns true on success.
bool InitiateHTTPRequest(int resource_id, WebPluginResourceClient* client,
const char* method, const char* buf, int buf_len,
- const GURL& url,
- const char* range_info);
+ const GURL& url, const char* range_info,
+ bool use_plugin_src_as_referer);
gfx::Rect GetWindowClipRect(const gfx::Rect& rect);
@@ -280,6 +281,13 @@ class WebPluginImpl : public WebPlugin,
void HandleHttpMultipartResponse(const WebCore::ResourceResponse& response,
WebPluginResourceClient* client);
+ void HandleURLRequestInternal(const char *method, bool is_javascript_url,
+ const char* target, unsigned int len,
+ const char* buf, bool is_file_data,
+ bool notify, const char* url,
+ void* notify_data, bool popups_allowed,
+ bool use_plugin_src_as_referrer);
+
struct ClientInfo {
int id;
WebPluginResourceClient* client;
@@ -311,6 +319,12 @@ class WebPluginImpl : public WebPlugin,
// The plugin source URL.
GURL plugin_url_;
+ // Indicates if the download would be initiated by the plugin or us.
+ bool load_manually_;
+
+ // Indicates if this is the first geometry update received by the plugin.
+ bool first_geometry_update_;
+
DISALLOW_COPY_AND_ASSIGN(WebPluginImpl);
};