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