Index: headless/lib/browser/headless_web_contents_impl.h |
diff --git a/headless/lib/browser/headless_web_contents_impl.h b/headless/lib/browser/headless_web_contents_impl.h |
index c56c50ee36c8ad49c72dd33417ee1f24ad14e92b..3d2b765436120c33e533e350552c3558832f2730 100644 |
--- a/headless/lib/browser/headless_web_contents_impl.h |
+++ b/headless/lib/browser/headless_web_contents_impl.h |
@@ -27,16 +27,25 @@ class Size; |
namespace headless { |
class HeadlessDevToolsHostImpl; |
+class HeadlessBrowserImpl; |
class WebContentsObserverAdapter; |
class HeadlessWebContentsImpl : public HeadlessWebContents, |
public HeadlessDevToolsTarget { |
public: |
- HeadlessWebContentsImpl(content::BrowserContext* context, |
- aura::Window* parent_window, |
- const gfx::Size& initial_size); |
~HeadlessWebContentsImpl() override; |
+ static std::unique_ptr<HeadlessWebContentsImpl> Create( |
+ content::BrowserContext* context, |
+ aura::Window* parent_window, |
+ const gfx::Size& initial_size, |
+ HeadlessBrowserImpl* browser); |
+ |
+ // Takes ownership of |web_contents|. |
+ static std::unique_ptr<HeadlessWebContentsImpl> CreateFromWebContents( |
+ content::WebContents* web_contents, |
+ HeadlessBrowserImpl* browser); |
+ |
// HeadlessWebContents implementation: |
void AddObserver(Observer* observer) override; |
void RemoveObserver(Observer* observer) override; |
@@ -49,12 +58,23 @@ class HeadlessWebContentsImpl : public HeadlessWebContents, |
content::WebContents* web_contents() const; |
bool OpenURL(const GURL& url); |
+ void Close() override; |
+ |
private: |
+ // Takes ownership of |web_contents|. |
+ HeadlessWebContentsImpl(content::WebContents* web_contents, |
+ HeadlessBrowserImpl* browser); |
+ |
+ void InitializeScreen(aura::Window* parent_window, |
+ const gfx::Size& initial_size); |
+ |
class Delegate; |
std::unique_ptr<Delegate> web_contents_delegate_; |
std::unique_ptr<content::WebContents> web_contents_; |
scoped_refptr<content::DevToolsAgentHost> agent_host_; |
+ HeadlessBrowserImpl* browser_; // Not owned. |
+ |
using ObserverMap = |
std::unordered_map<HeadlessWebContents::Observer*, |
std::unique_ptr<WebContentsObserverAdapter>>; |