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); |
}; |