Chromium Code Reviews| 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..098e3fc3891ae59aa3815fcd2a6b10c113b1f477 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 (has_browser_plugin_manager()) |
|
Charlie Reis
2012/11/20 00:33:34
Great-- I'm glad we can avoid creating it.
Would
Fady Samuel
2012/11/20 02:04:15
Done.
|
| + browser_plugin_manager()->SetEmbedderFocus(this, enable); |
| } |
| void RenderViewImpl::PpapiPluginFocusChanged() { |