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

Unified Diff: headless/test/headless_browser_test.cc

Issue 1906423003: headless: Remove old load observer API (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update headless shell. Created 4 years, 8 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
« no previous file with comments | « headless/public/headless_web_contents.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: headless/test/headless_browser_test.cc
diff --git a/headless/test/headless_browser_test.cc b/headless/test/headless_browser_test.cc
index 2424231ca312222940595fc0fbafe5710adb0c45..d81279ceff6f84598830086e826c1de1ad5b7abe 100644
--- a/headless/test/headless_browser_test.cc
+++ b/headless/test/headless_browser_test.cc
@@ -10,30 +10,49 @@
#include "base/run_loop.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/render_process_host.h"
+#include "content/public/common/url_constants.h"
#include "headless/lib/browser/headless_browser_impl.h"
#include "headless/lib/headless_content_main_delegate.h"
+#include "headless/public/domains/network.h"
+#include "headless/public/domains/page.h"
+#include "headless/public/headless_devtools_client.h"
+#include "headless/public/headless_devtools_target.h"
#include "headless/public/headless_web_contents.h"
namespace headless {
namespace {
-class WaitForNavigationObserver : public HeadlessWebContents::Observer {
+class WaitForLoadObserver : public page::Observer, public network::Observer {
public:
- WaitForNavigationObserver(HeadlessBrowserTest* browser_test,
- HeadlessWebContents* web_contents)
+ WaitForLoadObserver(HeadlessBrowserTest* browser_test,
+ HeadlessWebContents* web_contents)
: browser_test_(browser_test),
web_contents_(web_contents),
- navigation_succeeded_(false) {
- web_contents_->AddObserver(this);
+ devtools_client_(HeadlessDevToolsClient::Create()),
+ navigation_succeeded_(true) {
+ web_contents_->GetDevToolsTarget()->AttachClient(devtools_client_.get());
+ devtools_client_->GetNetwork()->AddObserver(this);
+ devtools_client_->GetNetwork()->Enable();
+ devtools_client_->GetPage()->AddObserver(this);
+ devtools_client_->GetPage()->Enable();
}
- ~WaitForNavigationObserver() override { web_contents_->RemoveObserver(this); }
+ ~WaitForLoadObserver() override {
+ devtools_client_->GetNetwork()->RemoveObserver(this);
+ devtools_client_->GetPage()->RemoveObserver(this);
+ web_contents_->GetDevToolsTarget()->DetachClient(devtools_client_.get());
+ }
- void DocumentOnLoadCompletedInMainFrame() override {
+ void OnLoadEventFired(const page::LoadEventFiredParams& params) override {
browser_test_->FinishAsynchronousTest();
}
- void DidFinishNavigation(bool success) override {
- navigation_succeeded_ = success;
+
+ void OnResponseReceived(
+ const network::ResponseReceivedParams& params) override {
+ if (params.GetResponse()->GetStatus() != 200 ||
+ params.GetResponse()->GetUrl() == content::kUnreachableWebDataURL) {
+ navigation_succeeded_ = false;
+ }
}
bool navigation_succeeded() const { return navigation_succeeded_; }
@@ -41,10 +60,11 @@ class WaitForNavigationObserver : public HeadlessWebContents::Observer {
private:
HeadlessBrowserTest* browser_test_; // Not owned.
HeadlessWebContents* web_contents_; // Not owned.
+ std::unique_ptr<HeadlessDevToolsClient> devtools_client_;
bool navigation_succeeded_;
- DISALLOW_COPY_AND_ASSIGN(WaitForNavigationObserver);
+ DISALLOW_COPY_AND_ASSIGN(WaitForLoadObserver);
};
} // namespace
@@ -90,7 +110,7 @@ HeadlessBrowser* HeadlessBrowserTest::browser() const {
}
bool HeadlessBrowserTest::WaitForLoad(HeadlessWebContents* web_contents) {
- WaitForNavigationObserver observer(this, web_contents);
+ WaitForLoadObserver observer(this, web_contents);
RunAsynchronousTest();
return observer.navigation_succeeded();
}
« no previous file with comments | « headless/public/headless_web_contents.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698