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

Unified Diff: extensions/browser/guest_view/guest_view_manager.h

Issue 1066563006: GuestView: Move GuestViewManager extension dependencies to ExtensionsGuestViewManagerDelegate (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@extensions_guest_view_message_filter
Patch Set: Fixed NavigateGuest Created 5 years, 8 months 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: extensions/browser/guest_view/guest_view_manager.h
diff --git a/extensions/browser/guest_view/guest_view_manager.h b/extensions/browser/guest_view/guest_view_manager.h
index 626b583860baabf452b1839ffd78d510ecebf66c..e1fb334c184151abfb0f4a9a1ec04f21693a28b7 100644
--- a/extensions/browser/guest_view/guest_view_manager.h
+++ b/extensions/browser/guest_view/guest_view_manager.h
@@ -22,6 +22,10 @@ class BrowserContext;
class WebContents;
} // namespace content
+namespace guestview {
+class GuestViewManagerDelegate;
+} // namespace guestview
+
namespace extensions{
class GuestViewBase;
class GuestViewManagerFactory;
@@ -29,17 +33,19 @@ class GuestViewManagerFactory;
class GuestViewManager : public content::BrowserPluginGuestManager,
public base::SupportsUserData::Data {
public:
- explicit GuestViewManager(content::BrowserContext* context);
+ GuestViewManager(content::BrowserContext* context,
+ scoped_ptr<guestview::GuestViewManagerDelegate> delegate);
~GuestViewManager() override;
// Returns the GuestViewManager associated with |context|. If one isn't
// available, then it is created and returned.
- static GuestViewManager* FromBrowserContext(content::BrowserContext* context);
+ static GuestViewManager* CreateWithDelegate(
+ content::BrowserContext* context,
+ scoped_ptr<guestview::GuestViewManagerDelegate> delegate);
// Returns the GuestViewManager associated with |context|. If one isn't
// available, then nullptr is returned.
- static GuestViewManager* FromBrowserContextIfAvailable(
- content::BrowserContext* context);
+ static GuestViewManager* FromBrowserContext(content::BrowserContext* context);
// Overrides factory for testing. Default (NULL) value indicates regular
// (non-test) environment.
@@ -67,6 +73,9 @@ class GuestViewManager : public content::BrowserPluginGuestManager,
// ID if one exists.
void DetachGuest(GuestViewBase* guest);
+ // Indicates whether the |guest| is owned by an extension or Chrome App.
+ bool IsOwnedByExtension(GuestViewBase* guest);
+
int GetNextInstanceID();
int GetGuestInstanceIDForElementID(
int owner_process_id,
@@ -105,7 +114,7 @@ class GuestViewManager : public content::BrowserPluginGuestManager,
protected:
friend class GuestViewBase;
- FRIEND_TEST_ALL_PREFIXES(GuestViewManagerTest, AddRemove);
+ friend class GuestViewEvent;
// Can be overriden in tests.
virtual void AddGuest(int guest_instance_id,
@@ -123,8 +132,14 @@ class GuestViewManager : public content::BrowserPluginGuestManager,
// Indicates whether the provided |guest| can be used in the context it has
// been created.
- bool IsGuestAvailableToContext(GuestViewBase* guest,
- std::string* owner_extension_id);
+ bool IsGuestAvailableToContext(GuestViewBase* guest);
+
+ // Dispatches the event with |name| with the provided |args| to the embedder
+ // of the given |guest| with |instance_id| for routing.
+ void DispatchEvent(const std::string& event_name,
+ scoped_ptr<base::DictionaryValue> args,
+ GuestViewBase* guest,
+ int instance_id);
content::WebContents* GetGuestByInstanceID(int guest_instance_id);
@@ -189,6 +204,8 @@ class GuestViewManager : public content::BrowserPluginGuestManager,
content::BrowserContext* context_;
+ scoped_ptr<guestview::GuestViewManagerDelegate> delegate_;
+
DISALLOW_COPY_AND_ASSIGN(GuestViewManager);
};
« no previous file with comments | « extensions/browser/guest_view/guest_view_event.cc ('k') | extensions/browser/guest_view/guest_view_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698