Index: components/dom_distiller/content/distiller_page_web_contents.h |
diff --git a/components/dom_distiller/content/distiller_page_web_contents.h b/components/dom_distiller/content/distiller_page_web_contents.h |
index 52509f502804a79ae61d2c1bb1dd08d6f621008b..aed9789cf55249188c0d0460aa68e7804e04774e 100644 |
--- a/components/dom_distiller/content/distiller_page_web_contents.h |
+++ b/components/dom_distiller/content/distiller_page_web_contents.h |
@@ -21,7 +21,18 @@ using content::RenderViewHost; |
namespace dom_distiller { |
-class DistillerContext; |
+class SourcePageHandleWebContents : public SourcePageHandle { |
+ public: |
+ explicit SourcePageHandleWebContents( |
+ scoped_ptr<content::WebContents> web_contents); |
+ virtual ~SourcePageHandleWebContents(); |
+ |
+ scoped_ptr<content::WebContents> GetWebContents(); |
+ |
+ private: |
+ // The WebContents this class owns. |
+ scoped_ptr<content::WebContents> web_contents_; |
+}; |
class DistillerPageWebContentsFactory : public DistillerPageFactory { |
public: |
@@ -31,6 +42,8 @@ class DistillerPageWebContentsFactory : public DistillerPageFactory { |
virtual ~DistillerPageWebContentsFactory() {} |
virtual scoped_ptr<DistillerPage> CreateDistillerPage() const OVERRIDE; |
+ virtual scoped_ptr<DistillerPage> CreateDistillerPageWithHandle( |
+ scoped_ptr<SourcePageHandle> handle) const OVERRIDE; |
private: |
content::BrowserContext* browser_context_; |
@@ -39,7 +52,9 @@ class DistillerPageWebContentsFactory : public DistillerPageFactory { |
class DistillerPageWebContents : public DistillerPage, |
public content::WebContentsObserver { |
public: |
- DistillerPageWebContents(content::BrowserContext* browser_context); |
+ DistillerPageWebContents( |
+ content::BrowserContext* browser_context, |
+ scoped_ptr<SourcePageHandleWebContents> optional_web_contents_handle); |
virtual ~DistillerPageWebContents(); |
// content::WebContentsObserver implementation. |
@@ -58,6 +73,8 @@ class DistillerPageWebContents : public DistillerPage, |
const std::string& script) OVERRIDE; |
private: |
+ friend class TestDistillerPageWebContents; |
+ |
enum State { |
// The page distiller is idle. |
IDLE, |
@@ -70,6 +87,10 @@ class DistillerPageWebContents : public DistillerPage, |
EXECUTING_JAVASCRIPT |
}; |
+ // Creates a new WebContents, adds |this| as an observer, and loads the |
+ // |url|. |
+ virtual void CreateNewWebContents(const GURL& url); |
+ |
// Injects and executes JavaScript in the context of a loaded page. This |
// must only be called after the page has successfully loaded. |
void ExecuteJavaScript(); |