| Index: content/browser/browser_plugin/browser_plugin_guest_manager.h
 | 
| diff --git a/content/browser/browser_plugin/browser_plugin_guest_manager.h b/content/browser/browser_plugin/browser_plugin_guest_manager.h
 | 
| index 10c6b24ca6fe2c76e49fde33ec1972fac8bce4fd..3c157fe3c875258338ea7e08b364a9052e673ed1 100644
 | 
| --- a/content/browser/browser_plugin/browser_plugin_guest_manager.h
 | 
| +++ b/content/browser/browser_plugin/browser_plugin_guest_manager.h
 | 
| @@ -13,6 +13,7 @@
 | 
|  #include "base/supports_user_data.h"
 | 
|  #include "base/values.h"
 | 
|  #include "content/common/content_export.h"
 | 
| +#include "content/public/browser/browser_plugin_guest_manager_delegate.h"
 | 
|  #include "ipc/ipc_message.h"
 | 
|  
 | 
|  struct BrowserPluginHostMsg_Attach_Params;
 | 
| @@ -29,12 +30,12 @@ class Message;
 | 
|  
 | 
|  namespace content {
 | 
|  
 | 
| +class BrowserContext;
 | 
|  class BrowserPluginGuest;
 | 
|  class BrowserPluginHostFactory;
 | 
|  class RenderWidgetHostImpl;
 | 
|  class SiteInstance;
 | 
|  class WebContents;
 | 
| -class WebContentsImpl;
 | 
|  
 | 
|  // WARNING: All APIs should be guarded with a process ID check like
 | 
|  // CanEmbedderAccessInstanceIDMaybeKill, to prevent abuse by normal renderer
 | 
| @@ -44,7 +45,11 @@ class CONTENT_EXPORT BrowserPluginGuestManager :
 | 
|   public:
 | 
|    virtual ~BrowserPluginGuestManager();
 | 
|  
 | 
| -  static BrowserPluginGuestManager* Create();
 | 
| +  static BrowserPluginGuestManager* FromBrowserContext(BrowserContext* context);
 | 
| +
 | 
| +  BrowserPluginGuestManagerDelegate* GetDelegate() const;
 | 
| +
 | 
| +  static BrowserPluginGuestManager* Create(BrowserContext* context);
 | 
|  
 | 
|    // Overrides factory for testing. Default (NULL) value indicates regular
 | 
|    // (non-test) environment.
 | 
| @@ -52,8 +57,9 @@ class CONTENT_EXPORT BrowserPluginGuestManager :
 | 
|      content::BrowserPluginGuestManager::factory_ = factory;
 | 
|    }
 | 
|  
 | 
| -  // Gets the next available instance id.
 | 
| -  int get_next_instance_id() { return ++next_instance_id_; }
 | 
| +  // Gets the next available instance id. 0 is considered an invalid instance
 | 
| +  // ID.
 | 
| +  int GetNextInstanceID();
 | 
|  
 | 
|    // Creates a guest WebContents with the provided |instance_id| and |params|.
 | 
|    // If params.src is present, the new guest will also be navigated to the
 | 
| @@ -73,7 +79,7 @@ class CONTENT_EXPORT BrowserPluginGuestManager :
 | 
|        int embedder_render_process_id) const;
 | 
|  
 | 
|    // Adds a new |guest_web_contents| to the embedder (overridable in test).
 | 
| -  virtual void AddGuest(int instance_id, WebContentsImpl* guest_web_contents);
 | 
| +  virtual void AddGuest(int instance_id, WebContents* guest_web_contents);
 | 
|  
 | 
|    // Removes the guest with the given |instance_id| from this
 | 
|    // BrowserPluginGuestManager.
 | 
| @@ -85,7 +91,7 @@ class CONTENT_EXPORT BrowserPluginGuestManager :
 | 
|                                              int instance_id) const;
 | 
|  
 | 
|    typedef base::Callback<bool(BrowserPluginGuest*)> GuestCallback;
 | 
| -  bool ForEachGuest(WebContentsImpl* embedder_web_contents,
 | 
| +  bool ForEachGuest(WebContents* embedder_web_contents,
 | 
|                      const GuestCallback& callback);
 | 
|  
 | 
|    void OnMessageReceived(const IPC::Message& message, int render_process_id);
 | 
| @@ -93,21 +99,7 @@ class CONTENT_EXPORT BrowserPluginGuestManager :
 | 
|   private:
 | 
|    friend class TestBrowserPluginGuestManager;
 | 
|  
 | 
| -  BrowserPluginGuestManager();
 | 
| -
 | 
| -  // Returns whether the given embedder process is allowed to access the
 | 
| -  // provided |guest|.
 | 
| -  static bool CanEmbedderAccessGuest(int embedder_render_process_id,
 | 
| -                                     BrowserPluginGuest* guest);
 | 
| -
 | 
| -  // Returns whether the given embedder process is allowed to use the provided
 | 
| -  // |instance_id| or access the guest associated with the |instance_id|. If the
 | 
| -  // embedder can, the method returns true. If the guest does not exist but the
 | 
| -  // embedder can use that |instance_id|, then it returns true. If the embedder
 | 
| -  // is not permitted to use that instance ID or access the associated guest,
 | 
| -  // then it returns false.
 | 
| -  bool CanEmbedderAccessInstanceID(int embedder_render_process_id,
 | 
| -                                   int instance_id) const;
 | 
| +  explicit BrowserPluginGuestManager(BrowserContext* context);
 | 
|  
 | 
|    // Returns an existing SiteInstance if the current profile has a guest of the
 | 
|    // given |guest_site|.
 | 
| @@ -116,10 +108,8 @@ class CONTENT_EXPORT BrowserPluginGuestManager :
 | 
|    // Static factory instance (always NULL outside of tests).
 | 
|    static BrowserPluginHostFactory* factory_;
 | 
|  
 | 
| -  // Contains guests' WebContents, mapping from their instance ids.
 | 
| -  typedef std::map<int, WebContentsImpl*> GuestInstanceMap;
 | 
| -  GuestInstanceMap guest_web_contents_by_instance_id_;
 | 
| -  int next_instance_id_;
 | 
| +  // The BrowserContext in which this manager this stored.
 | 
| +  BrowserContext* context_;
 | 
|  
 | 
|    DISALLOW_COPY_AND_ASSIGN(BrowserPluginGuestManager);
 | 
|  };
 | 
| @@ -127,4 +117,3 @@ class CONTENT_EXPORT BrowserPluginGuestManager :
 | 
|  }  // namespace content
 | 
|  
 | 
|  #endif  // CONTENT_BROWSER_BROWSER_PLUGIN_BROWSER_PLUGIN_GUEST_MANAGER_H_
 | 
| -
 | 
| 
 |