Index: chrome/browser/plugin_process_host.cc |
=================================================================== |
--- chrome/browser/plugin_process_host.cc (revision 69229) |
+++ chrome/browser/plugin_process_host.cc (working copy) |
@@ -28,6 +28,7 @@ |
#include "chrome/browser/plugin_service.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/renderer_host/resource_dispatcher_host.h" |
+#include "chrome/browser/renderer_host/resource_message_filter.h" |
#include "chrome/common/chrome_paths.h" |
#include "chrome/common/chrome_plugin_lib.h" |
#include "chrome/common/chrome_switches.h" |
@@ -55,6 +56,25 @@ |
static const char kDefaultPluginFinderURL[] = |
"https://dl-ssl.google.com/edgedl/chrome/plugins/plugins2.xml"; |
+namespace { |
+ |
+// Helper class that we pass to ResourceMessageFilter so that it can find the |
+// right URLRequestContext for a request. |
+class PluginURLRequestContextOverride |
+ : public ResourceMessageFilter::URLRequestContextOverride { |
+ public: |
+ PluginURLRequestContextOverride() { |
+ } |
+ |
+ virtual URLRequestContext* GetRequestContext( |
+ uint32 request_id, ResourceType::Type resource_type) { |
+ return CPBrowsingContextManager::GetInstance()->ToURLRequestContext( |
+ request_id); |
brettw
2010/12/15 21:31:10
Indent 2 more spaces.
jam
2010/12/15 21:41:04
Done.
|
+ } |
+}; |
+ |
+} // namespace |
+ |
#if defined(OS_WIN) |
void PluginProcessHost::OnPluginWindowDestroyed(HWND window, HWND parent) { |
// The window is destroyed at this point, we just care about its parent, which |
@@ -94,7 +114,8 @@ |
PluginProcessHost::PluginProcessHost() |
: BrowserChildProcessHost( |
PLUGIN_PROCESS, |
- PluginService::GetInstance()->resource_dispatcher_host()), |
+ PluginService::GetInstance()->resource_dispatcher_host(), |
+ new PluginURLRequestContextOverride()), |
ALLOW_THIS_IN_INITIALIZER_LIST(resolve_proxy_msg_helper_(this, NULL)) |
#if defined(OS_MACOSX) |
, plugin_cursor_visible_(true) |
@@ -399,13 +420,6 @@ |
Send(reply_msg); |
} |
-URLRequestContext* PluginProcessHost::GetRequestContext( |
- uint32 request_id, |
- const ViewHostMsg_Resource_Request& request_data) { |
- return CPBrowsingContextManager::GetInstance()->ToURLRequestContext( |
- request_id); |
-} |
- |
void PluginProcessHost::RequestPluginChannel(Client* client) { |
// We can't send any sync messages from the browser because it might lead to |
// a hang. However this async messages must be answered right away by the |