Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef HEADLESS_PUBLIC_HEADLESS_BROWSER_H_ | 5 #ifndef HEADLESS_PUBLIC_HEADLESS_BROWSER_H_ |
| 6 #define HEADLESS_PUBLIC_HEADLESS_BROWSER_H_ | 6 #define HEADLESS_PUBLIC_HEADLESS_BROWSER_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 #include <unordered_map> | 10 #include <unordered_map> |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 31 namespace headless { | 31 namespace headless { |
| 32 | 32 |
| 33 // This class represents the global headless browser instance. To get a pointer | 33 // This class represents the global headless browser instance. To get a pointer |
| 34 // to one, call |HeadlessBrowserMain| to initiate the browser main loop. An | 34 // to one, call |HeadlessBrowserMain| to initiate the browser main loop. An |
| 35 // instance of |HeadlessBrowser| will be passed to the callback given to that | 35 // instance of |HeadlessBrowser| will be passed to the callback given to that |
| 36 // function. | 36 // function. |
| 37 class HEADLESS_EXPORT HeadlessBrowser { | 37 class HEADLESS_EXPORT HeadlessBrowser { |
| 38 public: | 38 public: |
| 39 struct Options; | 39 struct Options; |
| 40 | 40 |
| 41 class HEADLESS_EXPORT Observer { | |
|
Sami
2016/07/04 15:28:54
Could we instead add a getter that turns a target
alex clarke (OOO till 29th)
2016/07/04 16:33:59
I only really added it for testing when I had a di
| |
| 42 public: | |
| 43 // All the following notifications will be called on browser main thread. | |
| 44 | |
| 45 virtual void HeadlessWebContentsCreated(HeadlessWebContents* web_contents) { | |
| 46 } | |
| 47 | |
| 48 // Note |web_contents| has been deleted, do not dereference. | |
| 49 virtual void HeadlessWebContentsDestroyed( | |
| 50 HeadlessWebContents* web_contents) {} | |
| 51 | |
| 52 protected: | |
| 53 Observer() {} | |
| 54 virtual ~Observer() {} | |
| 55 | |
| 56 private: | |
| 57 DISALLOW_COPY_AND_ASSIGN(Observer); | |
| 58 }; | |
| 59 | |
| 60 // Add or remove an observer to receive events from this HeadlessBrowser. | |
| 61 // |observer| must outlive this class or be removed prior to being destroyed. | |
| 62 virtual void AddObserver(Observer* observer) = 0; | |
| 63 virtual void RemoveObserver(Observer* observer) = 0; | |
| 64 | |
| 41 // Open a new tab. Returns a builder object which can be used to set | 65 // Open a new tab. Returns a builder object which can be used to set |
| 42 // properties for the new tab. | 66 // properties for the new tab. |
| 43 virtual HeadlessWebContents::Builder CreateWebContentsBuilder() = 0; | 67 virtual HeadlessWebContents::Builder CreateWebContentsBuilder() = 0; |
| 44 | 68 |
| 45 // Deprecated. Use CreateWebContentsBuilder() instead. | 69 // Deprecated. Use CreateWebContentsBuilder() instead. |
| 46 virtual HeadlessWebContents* CreateWebContents(const GURL& initial_url, | 70 virtual HeadlessWebContents* CreateWebContents(const GURL& initial_url, |
| 47 const gfx::Size& size) = 0; | 71 const gfx::Size& size) = 0; |
| 48 | 72 |
| 49 virtual std::vector<HeadlessWebContents*> GetAllWebContents() = 0; | 73 virtual std::vector<HeadlessWebContents*> GetAllWebContents() = 0; |
| 50 | 74 |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 167 // the main loop, it will only return after HeadlessBrowser::Shutdown() is | 191 // the main loop, it will only return after HeadlessBrowser::Shutdown() is |
| 168 // called, returning the exit code for the process. It is not possible to | 192 // called, returning the exit code for the process. It is not possible to |
| 169 // initialize the browser again after it has been torn down. | 193 // initialize the browser again after it has been torn down. |
| 170 int HeadlessBrowserMain( | 194 int HeadlessBrowserMain( |
| 171 HeadlessBrowser::Options options, | 195 HeadlessBrowser::Options options, |
| 172 const base::Callback<void(HeadlessBrowser*)>& on_browser_start_callback); | 196 const base::Callback<void(HeadlessBrowser*)>& on_browser_start_callback); |
| 173 | 197 |
| 174 } // namespace headless | 198 } // namespace headless |
| 175 | 199 |
| 176 #endif // HEADLESS_PUBLIC_HEADLESS_BROWSER_H_ | 200 #endif // HEADLESS_PUBLIC_HEADLESS_BROWSER_H_ |
| OLD | NEW |