Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Unified Diff: trunk/src/components/dom_distiller/content/distiller_page_web_contents_browsertest.cc

Issue 297163003: Revert 272611 "Add support for distilling current WebContents" (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: trunk/src/components/dom_distiller/content/distiller_page_web_contents_browsertest.cc
===================================================================
--- trunk/src/components/dom_distiller/content/distiller_page_web_contents_browsertest.cc (revision 272703)
+++ trunk/src/components/dom_distiller/content/distiller_page_web_contents_browsertest.cc (working copy)
@@ -7,12 +7,8 @@
#include "base/run_loop.h"
#include "base/values.h"
#include "components/dom_distiller/content/distiller_page_web_contents.h"
-#include "components/dom_distiller/content/web_contents_main_frame_observer.h"
#include "components/dom_distiller/core/distiller_page.h"
#include "content/public/browser/browser_context.h"
-#include "content/public/browser/navigation_controller.h"
-#include "content/public/browser/render_frame_host.h"
-#include "content/public/browser/web_contents_observer.h"
#include "content/public/test/content_browser_test.h"
#include "content/shell/browser/shell.h"
#include "grit/component_resources.h"
@@ -27,8 +23,6 @@
namespace dom_distiller {
-const char* kSimpleArticlePath = "/simple_article.html";
-
class DistillerPageWebContentsTest : public ContentBrowserTest {
public:
// ContentBrowserTest:
@@ -72,108 +66,18 @@
}
protected:
- void RunUseCurrentWebContentsTest(const std::string& url,
- bool expect_new_web_contents,
- bool setup_main_frame_observer,
- bool wait_for_document_loaded);
-
DistillerPageWebContents* distiller_page_;
base::Closure quit_closure_;
scoped_ptr<DistilledPageInfo> page_info_;
};
-// Use this class to be able to leak the WebContents, which is needed for when
-// the current WebContents is used for distillation.
-class TestDistillerPageWebContents : public DistillerPageWebContents {
- public:
- TestDistillerPageWebContents(
- content::BrowserContext* browser_context,
- scoped_ptr<SourcePageHandleWebContents> optional_web_contents_handle,
- bool expect_new_web_contents)
- : DistillerPageWebContents(browser_context,
- optional_web_contents_handle.Pass()),
- expect_new_web_contents_(expect_new_web_contents),
- new_web_contents_created_(false) {}
-
- virtual void CreateNewWebContents(const GURL& url) OVERRIDE {
- ASSERT_EQ(true, expect_new_web_contents_);
- new_web_contents_created_ = true;
- // DistillerPageWebContents::CreateNewWebContents resets the scoped_ptr to
- // the WebContents, so intentionally leak WebContents here, since it is
- // owned by the shell.
- content::WebContents* web_contents = web_contents_.release();
- web_contents->GetLastCommittedURL();
- DistillerPageWebContents::CreateNewWebContents(url);
- }
-
- virtual ~TestDistillerPageWebContents() {
- if (!expect_new_web_contents_) {
- // Intentionally leaking WebContents, since it is owned by the shell.
- content::WebContents* web_contents = web_contents_.release();
- web_contents->GetLastCommittedURL();
- }
- }
-
- bool new_web_contents_created() { return new_web_contents_created_; }
-
- private:
- bool expect_new_web_contents_;
- bool new_web_contents_created_;
-};
-
-// Helper class to know how far in the loading process the current WebContents
-// has come. It will call the callback either after
-// DidCommitProvisionalLoadForFrame or DocumentLoadedInFrame is called for the
-// main frame, based on the value of |wait_for_document_loaded|.
-class WebContentsMainFrameHelper : public content::WebContentsObserver {
- public:
- WebContentsMainFrameHelper(content::WebContents* web_contents,
- const base::Closure& callback,
- bool wait_for_document_loaded)
- : web_contents_(web_contents),
- callback_(callback),
- wait_for_document_loaded_(wait_for_document_loaded) {
- content::WebContentsObserver::Observe(web_contents);
- }
-
- virtual void DidCommitProvisionalLoadForFrame(
- int64 frame_id,
- const base::string16& frame_unique_name,
- bool is_main_frame,
- const GURL& url,
- content::PageTransition transition_type,
- content::RenderViewHost* render_view_host) OVERRIDE {
- if (wait_for_document_loaded_)
- return;
- if (is_main_frame)
- callback_.Run();
- }
-
- virtual void DocumentLoadedInFrame(
- int64 frame_id,
- content::RenderViewHost* render_view_host) OVERRIDE {
- if (wait_for_document_loaded_) {
- if (web_contents_ &&
- frame_id == web_contents_->GetMainFrame()->GetRoutingID()) {
- callback_.Run();
- }
- }
- }
-
- private:
- content::WebContents* web_contents_;
- base::Closure callback_;
- bool wait_for_document_loaded_;
-};
-
IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, BasicDistillationWorks) {
DistillerPageWebContents distiller_page(
- shell()->web_contents()->GetBrowserContext(),
- scoped_ptr<SourcePageHandleWebContents>());
+ shell()->web_contents()->GetBrowserContext());
distiller_page_ = &distiller_page;
base::RunLoop run_loop;
- DistillPage(run_loop.QuitClosure(), kSimpleArticlePath);
+ DistillPage(run_loop.QuitClosure(), "/simple_article.html");
run_loop.Run();
EXPECT_EQ("Test Page Title", page_info_.get()->title);
@@ -185,12 +89,11 @@
IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, HandlesRelativeLinks) {
DistillerPageWebContents distiller_page(
- shell()->web_contents()->GetBrowserContext(),
- scoped_ptr<SourcePageHandleWebContents>());
+ shell()->web_contents()->GetBrowserContext());
distiller_page_ = &distiller_page;
base::RunLoop run_loop;
- DistillPage(run_loop.QuitClosure(), kSimpleArticlePath);
+ DistillPage(run_loop.QuitClosure(), "/simple_article.html");
run_loop.Run();
// A relative link should've been updated.
@@ -202,12 +105,11 @@
IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, HandlesRelativeImages) {
DistillerPageWebContents distiller_page(
- shell()->web_contents()->GetBrowserContext(),
- scoped_ptr<SourcePageHandleWebContents>());
+ shell()->web_contents()->GetBrowserContext());
distiller_page_ = &distiller_page;
base::RunLoop run_loop;
- DistillPage(run_loop.QuitClosure(), kSimpleArticlePath);
+ DistillPage(run_loop.QuitClosure(), "/simple_article.html");
run_loop.Run();
// A relative link should've been updated.
@@ -219,8 +121,7 @@
IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest, VisibilityDetection) {
DistillerPageWebContents distiller_page(
- shell()->web_contents()->GetBrowserContext(),
- scoped_ptr<SourcePageHandleWebContents>());
+ shell()->web_contents()->GetBrowserContext());
distiller_page_ = &distiller_page;
// visble_style.html and invisible_style.html only differ by the visibility
@@ -241,92 +142,4 @@
}
}
-IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest,
- UsingCurrentWebContentsWrongUrl) {
- std::string url("/bogus");
- bool expect_new_web_contents = true;
- bool setup_main_frame_observer = true;
- bool wait_for_document_loaded = true;
- RunUseCurrentWebContentsTest(url,
- expect_new_web_contents,
- setup_main_frame_observer,
- wait_for_document_loaded);
-}
-
-IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest,
- UsingCurrentWebContentsNoMainFrameObserver) {
- std::string url(kSimpleArticlePath);
- bool expect_new_web_contents = true;
- bool setup_main_frame_observer = false;
- bool wait_for_document_loaded = true;
- RunUseCurrentWebContentsTest(url,
- expect_new_web_contents,
- setup_main_frame_observer,
- wait_for_document_loaded);
-}
-
-IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest,
- UsingCurrentWebContentsNotFinishedLoadingYet) {
- std::string url(kSimpleArticlePath);
- bool expect_new_web_contents = false;
- bool setup_main_frame_observer = true;
- bool wait_for_document_loaded = false;
- RunUseCurrentWebContentsTest(url,
- expect_new_web_contents,
- setup_main_frame_observer,
- wait_for_document_loaded);
-}
-
-IN_PROC_BROWSER_TEST_F(DistillerPageWebContentsTest,
- UsingCurrentWebContentsReadyForDistillation) {
- std::string url(kSimpleArticlePath);
- bool expect_new_web_contents = false;
- bool setup_main_frame_observer = true;
- bool wait_for_document_loaded = true;
- RunUseCurrentWebContentsTest(url,
- expect_new_web_contents,
- setup_main_frame_observer,
- wait_for_document_loaded);
-}
-
-void DistillerPageWebContentsTest::RunUseCurrentWebContentsTest(
- const std::string& url,
- bool expect_new_web_contents,
- bool setup_main_frame_observer,
- bool wait_for_document_loaded) {
- content::WebContents* current_web_contents = shell()->web_contents();
- if (setup_main_frame_observer) {
- dom_distiller::WebContentsMainFrameObserver::CreateForWebContents(
- current_web_contents);
- }
- base::RunLoop url_loaded_runner;
- WebContentsMainFrameHelper main_frame_loaded(current_web_contents,
- url_loaded_runner.QuitClosure(),
- wait_for_document_loaded);
- current_web_contents->GetController().LoadURL(
- embedded_test_server()->GetURL(url),
- content::Referrer(),
- content::PAGE_TRANSITION_TYPED,
- std::string());
- url_loaded_runner.Run();
-
- scoped_ptr<content::WebContents> old_web_contents_sptr(current_web_contents);
- scoped_ptr<SourcePageHandleWebContents> source_page_handle(
- new SourcePageHandleWebContents(old_web_contents_sptr.Pass()));
-
- TestDistillerPageWebContents distiller_page(
- shell()->web_contents()->GetBrowserContext(),
- source_page_handle.Pass(),
- expect_new_web_contents);
- distiller_page_ = &distiller_page;
-
- base::RunLoop run_loop;
- DistillPage(run_loop.QuitClosure(), kSimpleArticlePath);
- run_loop.Run();
-
- // Sanity check of distillation process.
- EXPECT_EQ(expect_new_web_contents, distiller_page.new_web_contents_created());
- EXPECT_EQ("Test Page Title", page_info_.get()->title);
-}
-
} // namespace dom_distiller

Powered by Google App Engine
This is Rietveld 408576698