Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(932)

Unified Diff: content/renderer/browser_plugin/browser_plugin_manager.h

Issue 801173002: Fix message routing for BrowserPlugin in iframe (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More cleanup Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/browser_plugin/browser_plugin_manager.h
diff --git a/content/renderer/browser_plugin/browser_plugin_manager.h b/content/renderer/browser_plugin/browser_plugin_manager.h
index 53864a3fc3801b464bb865187a84e39168340ce1..dd4cce7323163c8c5042de3419a8c463646ab435 100644
--- a/content/renderer/browser_plugin/browser_plugin_manager.h
+++ b/content/renderer/browser_plugin/browser_plugin_manager.h
@@ -6,9 +6,8 @@
#define CONTENT_RENDERER_BROWSER_PLUGIN_BROWSER_PLUGIN_MANAGER_H_
#include "base/id_map.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/weak_ptr.h"
-#include "content/public/renderer/render_view_observer.h"
+#include "base/memory/scoped_ptr.h"
+#include "content/public/renderer/render_process_observer.h"
#include "ipc/ipc_sender.h"
namespace blink {
@@ -23,14 +22,12 @@ class RenderViewImpl;
// BrowserPluginManager manages the routing of messages to the appropriate
Charlie Reis 2014/12/17 00:06:44 Since this is no longer specific to a RenderView,
Fady Samuel 2014/12/17 19:30:35 Done.
// BrowserPlugin object based on its instance ID.
-class CONTENT_EXPORT BrowserPluginManager
- : public RenderViewObserver,
- public base::RefCounted<BrowserPluginManager> {
+class CONTENT_EXPORT BrowserPluginManager : public RenderProcessObserver {
public:
- // Returns the one BrowserPluginManager for this process.
- static BrowserPluginManager* Create(RenderViewImpl* render_view);
+ static BrowserPluginManager* Get();
- explicit BrowserPluginManager(RenderViewImpl* render_view);
+ BrowserPluginManager();
+ ~BrowserPluginManager() override;
// Creates a new BrowserPlugin object.
// BrowserPlugin is responsible for associating itself with the
@@ -52,35 +49,23 @@ class CONTENT_EXPORT BrowserPluginManager
void UpdateDeviceScaleFactor();
void UpdateFocusState();
- RenderViewImpl* render_view() const { return render_view_.get(); }
// Returns a new instance ID to be used by BrowserPlugin. Instance IDs are
// unique per process.
int GetNextInstanceID();
- // RenderViewObserver override. Call on render thread.
- void DidCommitCompositorFrame() override;
- bool OnMessageReceived(const IPC::Message& message) override;
- bool Send(IPC::Message* msg) override;
+ void DidCommitCompositorFrame();
+ bool Send(IPC::Message* msg);
- // Don't destroy the BrowserPluginManager when the RenderViewImpl goes away.
- // BrowserPluginManager's lifetime is managed by a reference count. Once
- // the host RenderViewImpl and all BrowserPlugins release their references,
- // then the BrowserPluginManager will be destroyed.
- void OnDestruct() override {}
+ // RenderProcessObserver override.
+ bool OnControlMessageReceived(const IPC::Message& message) override;
private:
- // Friend RefCounted so that the dtor can be non-public.
- friend class base::RefCounted<BrowserPluginManager>;
-
- ~BrowserPluginManager() override;
-
// IPC message handlers.
void OnCompositorFrameSwappedPluginUnavailable(const IPC::Message& message);
// This map is keyed by guest instance IDs.
IDMap<BrowserPlugin> instances_;
- base::WeakPtr<RenderViewImpl> render_view_;
DISALLOW_COPY_AND_ASSIGN(BrowserPluginManager);
};

Powered by Google App Engine
This is Rietveld 408576698