Chromium Code Reviews| Index: chrome/renderer/plugins/chrome_plugin_placeholder.cc |
| =================================================================== |
| --- chrome/renderer/plugins/chrome_plugin_placeholder.cc (revision 239602) |
| +++ chrome/renderer/plugins/chrome_plugin_placeholder.cc (working copy) |
| @@ -13,6 +13,7 @@ |
| #include "chrome/renderer/plugins/plugin_uma.h" |
| #include "content/public/common/context_menu_params.h" |
| #include "content/public/renderer/render_frame.h" |
| +#include "content/public/renderer/render_frame_observer.h" |
| #include "content/public/renderer/render_thread.h" |
| #include "content/public/renderer/render_view.h" |
| #include "grit/generated_resources.h" |
| @@ -47,6 +48,30 @@ |
| const char ChromePluginPlaceholder::kPluginPlaceholderDataURL[] = |
| "chrome://pluginplaceholderdata/"; |
| +class ChromePluginPlaceholder::RenderFrameObserver |
| + : public content::RenderFrameObserver { |
| + public: |
| + explicit RenderFrameObserver(ChromePluginPlaceholder* placeholder) |
| + : content::RenderFrameObserver(placeholder->GetRenderFrame()), |
| + placeholder_(placeholder) {} |
| + |
| + // content::RenderFrameObserver implementation: |
| + virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE { |
| + |
|
mmenke
2013/12/10 20:56:41
nit: Blank lines at the start of function bodies
jam
2013/12/10 21:14:17
Done.
|
| + // We don't swallow these messages because multiple blocked plugins have an |
| + // interest in them. |
|
mmenke
2013/12/10 20:56:41
May want to replace "multiple blocked plugins" wit
jam
2013/12/10 21:14:17
I just copied this code, but ok.
|
| + IPC_BEGIN_MESSAGE_MAP(ChromePluginPlaceholder, message) |
| + IPC_MESSAGE_FORWARD(PrerenderMsg_SetIsPrerendering, placeholder_, |
| + ChromePluginPlaceholder::OnSetIsPrerendering) |
| + IPC_END_MESSAGE_MAP() |
| + |
| + return false; |
| + } |
| + |
| + private: |
| + ChromePluginPlaceholder* placeholder_; |
| +}; |
| + |
| ChromePluginPlaceholder::ChromePluginPlaceholder( |
| content::RenderView* render_view, |
| content::RenderFrame* render_frame, |
| @@ -68,6 +93,8 @@ |
| has_host_(false), |
| context_menu_request_id_(0) { |
| RenderThread::Get()->AddObserver(this); |
| + |
| + frame_observer_.reset(new RenderFrameObserver(this)); |
| } |
| ChromePluginPlaceholder::~ChromePluginPlaceholder() { |
| @@ -213,7 +240,6 @@ |
| // interest in them. |
| IPC_BEGIN_MESSAGE_MAP(ChromePluginPlaceholder, message) |
| IPC_MESSAGE_HANDLER(ChromeViewMsg_LoadBlockedPlugins, OnLoadBlockedPlugins) |
| - IPC_MESSAGE_HANDLER(PrerenderMsg_SetIsPrerendering, OnSetIsPrerendering) |
| IPC_END_MESSAGE_MAP() |
| return false; |