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

Unified Diff: content/browser/frame_host/navigation_handle_impl_browsertest.cc

Issue 2345053006: Remove IsSynchronous API from NavigationHandle. (Closed)
Patch Set: Rebase. Created 4 years, 3 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: content/browser/frame_host/navigation_handle_impl_browsertest.cc
diff --git a/content/browser/frame_host/navigation_handle_impl_browsertest.cc b/content/browser/frame_host/navigation_handle_impl_browsertest.cc
index 37bfde78d157b9366bfb47323dc1f7f8674b41e6..aa4cae50ca45bb9780d1ab02b90ea2ec7f4f3e71 100644
--- a/content/browser/frame_host/navigation_handle_impl_browsertest.cc
+++ b/content/browser/frame_host/navigation_handle_impl_browsertest.cc
@@ -35,7 +35,7 @@ class NavigationHandleObserver : public WebContentsObserver {
is_main_frame_(false),
is_parent_main_frame_(false),
is_renderer_initiated_(true),
- is_synchronous_(false),
+ is_same_page_(false),
is_srcdoc_(false),
was_redirected_(false),
frame_tree_node_id_(-1),
@@ -55,7 +55,7 @@ class NavigationHandleObserver : public WebContentsObserver {
is_main_frame_ = navigation_handle->IsInMainFrame();
is_parent_main_frame_ = navigation_handle->IsParentMainFrame();
is_renderer_initiated_ = navigation_handle->IsRendererInitiated();
- is_synchronous_ = navigation_handle->IsSynchronousNavigation();
+ is_same_page_ = navigation_handle->IsSamePage();
is_srcdoc_ = navigation_handle->IsSrcdoc();
was_redirected_ = navigation_handle->WasServerRedirect();
frame_tree_node_id_ = navigation_handle->GetFrameTreeNodeId();
@@ -67,7 +67,7 @@ class NavigationHandleObserver : public WebContentsObserver {
DCHECK_EQ(is_main_frame_, navigation_handle->IsInMainFrame());
DCHECK_EQ(is_parent_main_frame_, navigation_handle->IsParentMainFrame());
- DCHECK_EQ(is_synchronous_, navigation_handle->IsSynchronousNavigation());
+ DCHECK_EQ(is_same_page_, navigation_handle->IsSamePage());
DCHECK_EQ(is_renderer_initiated_, navigation_handle->IsRendererInitiated());
DCHECK_EQ(is_srcdoc_, navigation_handle->IsSrcdoc());
DCHECK_EQ(frame_tree_node_id_, navigation_handle->GetFrameTreeNodeId());
@@ -95,7 +95,7 @@ class NavigationHandleObserver : public WebContentsObserver {
bool is_main_frame() { return is_main_frame_; }
bool is_parent_main_frame() { return is_parent_main_frame_; }
bool is_renderer_initiated() { return is_renderer_initiated_; }
- bool is_synchronous() { return is_synchronous_; }
+ bool is_same_page() { return is_same_page_; }
bool is_srcdoc() { return is_srcdoc_; }
bool was_redirected() { return was_redirected_; }
int frame_tree_node_id() { return frame_tree_node_id_; }
@@ -114,7 +114,7 @@ class NavigationHandleObserver : public WebContentsObserver {
bool is_main_frame_;
bool is_parent_main_frame_;
bool is_renderer_initiated_;
- bool is_synchronous_;
+ bool is_same_page_;
bool is_srcdoc_;
bool was_redirected_;
int frame_tree_node_id_;
@@ -518,9 +518,8 @@ IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, VerifySrcdoc) {
EXPECT_TRUE(observer.is_srcdoc());
}
-// Ensure that the IsSynchronousNavigation() method on NavigationHandle behaves
-// correctly.
-IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, VerifySynchronous) {
+// Ensure that the IsSamePage() method on NavigationHandle behaves correctly.
+IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, VerifySamePage) {
GURL url(embedded_test_server()->GetURL(
"a.com", "/cross_site_iframe_factory.html?a(a())"));
EXPECT_TRUE(NavigateToURL(shell(), url));
@@ -528,15 +527,60 @@ IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, VerifySynchronous) {
FrameTreeNode* root = static_cast<WebContentsImpl*>(shell()->web_contents())
->GetFrameTree()
->root();
+ {
+ NavigationHandleObserver observer(
+ shell()->web_contents(),
+ embedded_test_server()->GetURL("a.com", "/foo"));
+ EXPECT_TRUE(ExecuteScript(root->child_at(0),
+ "window.history.pushState({}, '', 'foo');"));
- NavigationHandleObserver observer(
- shell()->web_contents(), embedded_test_server()->GetURL("a.com", "/bar"));
- EXPECT_TRUE(ExecuteScript(root->child_at(0),
- "window.history.pushState({}, '', 'bar');"));
+ EXPECT_TRUE(observer.has_committed());
+ EXPECT_FALSE(observer.is_error());
+ EXPECT_TRUE(observer.is_same_page());
+ }
+ {
+ NavigationHandleObserver observer(
+ shell()->web_contents(),
+ embedded_test_server()->GetURL("a.com", "/bar"));
+ EXPECT_TRUE(ExecuteScript(root->child_at(0),
+ "window.history.replaceState({}, '', 'bar');"));
- EXPECT_TRUE(observer.has_committed());
- EXPECT_FALSE(observer.is_error());
- EXPECT_TRUE(observer.is_synchronous());
+ EXPECT_TRUE(observer.has_committed());
+ EXPECT_FALSE(observer.is_error());
+ EXPECT_TRUE(observer.is_same_page());
+ }
+ {
+ NavigationHandleObserver observer(
+ shell()->web_contents(),
+ embedded_test_server()->GetURL("a.com", "/bar#frag"));
+ EXPECT_TRUE(
+ ExecuteScript(root->child_at(0), "window.location.replace('#frag');"));
Charlie Reis 2016/09/20 23:35:24 Wow, subtle! I didn't realize you could location.
nasko 2016/10/27 17:26:59 I was trying to have the shortest string I can hav
+
+ EXPECT_TRUE(observer.has_committed());
+ EXPECT_FALSE(observer.is_error());
+ EXPECT_TRUE(observer.is_same_page());
+ }
+
+ GURL about_blank_url(url::kAboutBlankURL);
+ {
+ NavigationHandleObserver observer(shell()->web_contents(), about_blank_url);
+ EXPECT_TRUE(ExecuteScript(
+ root, "document.body.appendChild(document.createElement('iframe'));"));
+
+ EXPECT_TRUE(observer.has_committed());
+ EXPECT_FALSE(observer.is_error());
+ EXPECT_FALSE(observer.is_same_page());
+ EXPECT_EQ(about_blank_url, observer.last_committed_url());
+ }
+ {
+ NavigationHandleObserver observer(shell()->web_contents(), about_blank_url);
+ NavigateFrameToURL(root->child_at(0), about_blank_url);
+
+ EXPECT_TRUE(observer.has_committed());
+ EXPECT_FALSE(observer.is_error());
+ EXPECT_FALSE(observer.is_same_page());
+ EXPECT_EQ(about_blank_url, observer.last_committed_url());
+ }
}
// Ensure that a NavigationThrottle can cancel the navigation at navigation

Powered by Google App Engine
This is Rietveld 408576698