Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index 1fd96d45e429c87a9f05899a621aa9a250519122..2a9e2be4dbd20e361583f3d9e57fd00e0341a7a6 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -62,6 +62,7 @@ |
#include "content/public/renderer/render_view_visitor.h" |
#include "content/renderer/browser_plugin/browser_plugin.h" |
#include "content/renderer/browser_plugin/browser_plugin_manager.h" |
+#include "content/renderer/browser_plugin/browser_plugin_manager_impl.h" |
#include "content/renderer/device_orientation_dispatcher.h" |
#include "content/renderer/devtools_agent.h" |
#include "content/renderer/disambiguation_popup_helper.h" |
@@ -576,6 +577,7 @@ RenderViewImpl::RenderViewImpl(RenderViewImplParams* params) |
speech_recognition_dispatcher_(NULL), |
device_orientation_dispatcher_(NULL), |
media_stream_dispatcher_(NULL), |
+ browser_plugin_manager_(NULL), |
media_stream_impl_(NULL), |
devtools_agent_(NULL), |
accessibility_mode_(AccessibilityModeOff), |
@@ -2454,8 +2456,7 @@ WebPlugin* RenderViewImpl::createPlugin(WebFrame* frame, |
} |
if (UTF16ToASCII(params.mimeType) == kBrowserPluginMimeType) { |
- return BrowserPluginManager::Get()-> |
- CreateBrowserPlugin(this, frame, params); |
+ return browser_plugin_manager()->CreateBrowserPlugin(this, frame, params); |
} |
webkit::WebPluginInfo info; |
@@ -3864,6 +3865,12 @@ void RenderViewImpl::SendUpdatedFrameTree( |
// in place. |
} |
+BrowserPluginManager* RenderViewImpl::browser_plugin_manager() { |
+ if (!browser_plugin_manager_) |
+ browser_plugin_manager_ = BrowserPluginManager::Create(this); |
+ return browser_plugin_manager_; |
+} |
+ |
void RenderViewImpl::CreateFrameTree(WebKit::WebFrame* frame, |
DictionaryValue* frame_tree) { |
// TODO(nasko): Remove once http://crbug.com/153701 is fixed. |
@@ -5807,7 +5814,8 @@ void RenderViewImpl::OnSetFocus(bool enable) { |
// Notify all Pepper plugins. |
pepper_delegate_.OnSetFocus(enable); |
// Notify all BrowserPlugins of the RenderView's focus state. |
- BrowserPluginManager::Get()->SetEmbedderFocus(this, enable); |
+ if (browser_plugin_manager_) |
+ browser_plugin_manager()->SetEmbedderFocus(this, enable); |
} |
void RenderViewImpl::PpapiPluginFocusChanged() { |