Index: headless/lib/browser/headless_browser_impl.h |
diff --git a/headless/lib/browser/headless_browser_impl.h b/headless/lib/browser/headless_browser_impl.h |
index eadeb56b64d8834a2b3930f6b944d1dd1500dd86..53bcf1385ac5ce0a380bfe692c73de955d1d1c37 100644 |
--- a/headless/lib/browser/headless_browser_impl.h |
+++ b/headless/lib/browser/headless_browser_impl.h |
@@ -8,12 +8,17 @@ |
#include "headless/public/headless_browser.h" |
#include <memory> |
+#include <unordered_map> |
#include "base/synchronization/lock.h" |
#include "headless/lib/browser/headless_web_contents_impl.h" |
namespace aura { |
class WindowTreeHost; |
+ |
+namespace client { |
+class WindowTreeClient; |
+} |
} |
namespace headless { |
@@ -29,14 +34,15 @@ class HeadlessBrowserImpl : public HeadlessBrowser { |
~HeadlessBrowserImpl() override; |
// HeadlessBrowser implementation: |
- std::unique_ptr<HeadlessWebContents> CreateWebContents( |
- const GURL& initial_url, |
- const gfx::Size& size) override; |
+ HeadlessWebContents* CreateWebContents(const GURL& initial_url, |
+ const gfx::Size& size) override; |
scoped_refptr<base::SingleThreadTaskRunner> BrowserMainThread() |
const override; |
void Shutdown() override; |
+ std::vector<HeadlessWebContents*> GetAllWebContents() override; |
+ |
void set_browser_main_parts(HeadlessBrowserMainParts* browser_main_parts); |
HeadlessBrowserMainParts* browser_main_parts() const; |
@@ -46,6 +52,12 @@ class HeadlessBrowserImpl : public HeadlessBrowser { |
const HeadlessBrowser::Options& options() const { return options_; } |
+ HeadlessWebContentsImpl* RegisterWebContents( |
+ std::unique_ptr<HeadlessWebContentsImpl> web_contents); |
+ |
+ // Close given |web_contents| and delete it. |
+ void DestroyWebContents(HeadlessWebContentsImpl* web_contents); |
+ |
// Customize the options used by this headless browser instance. Note that |
// options which take effect before the message loop has been started (e.g., |
// custom message pumps) cannot be set via this method. |
@@ -56,6 +68,10 @@ class HeadlessBrowserImpl : public HeadlessBrowser { |
HeadlessBrowser::Options options_; |
HeadlessBrowserMainParts* browser_main_parts_; // Not owned. |
std::unique_ptr<aura::WindowTreeHost> window_tree_host_; |
+ std::unique_ptr<aura::client::WindowTreeClient> window_tree_client_; |
+ |
+ std::unordered_map<HeadlessWebContents*, std::unique_ptr<HeadlessWebContents>> |
+ web_contents_; |
DISALLOW_COPY_AND_ASSIGN(HeadlessBrowserImpl); |
}; |