chrome: Fix NavigationTest and ResourceRequestHandlerTest failures (see issue #2969)

This commit is contained in:
Marshall Greenblatt 2021-04-02 18:07:43 -04:00
parent 25701cfa6f
commit 09c6586480
3 changed files with 36 additions and 7 deletions

View File

@ -105,6 +105,7 @@ void CefBrowserContentsDelegate::LoadingStateChanged(
if (auto c = client()) {
if (auto handler = c->GetLoadHandler()) {
auto navigation_lock = browser_info_->CreateNavigationLock();
handler->OnLoadingStateChange(browser(), is_loading, can_go_back,
can_go_forward);
}
@ -507,6 +508,7 @@ void CefBrowserContentsDelegate::OnLoadEnd(CefRefPtr<CefFrame> frame,
int http_status_code) {
if (auto c = client()) {
if (auto handler = c->GetLoadHandler()) {
auto navigation_lock = browser_info_->CreateNavigationLock();
handler->OnLoadEnd(browser(), frame, http_status_code);
}
}
@ -565,6 +567,7 @@ void CefBrowserContentsDelegate::OnLoadStart(
ui::PageTransition transition_type) {
if (auto c = client()) {
if (auto handler = c->GetLoadHandler()) {
auto navigation_lock = browser_info_->CreateNavigationLock();
// On the handler that loading has started.
handler->OnLoadStart(browser(), frame,
static_cast<cef_transition_type_t>(transition_type));

View File

@ -1824,11 +1824,17 @@ class LoadNavTestHandler : public TestHandler {
EXPECT_EQ(RT_MAIN_FRAME, request->GetResourceType());
if (mode_ == LOAD || request->GetURL() == kLoadNav1) {
EXPECT_EQ(kTransitionExplicitLoad, request->GetTransitionType());
EXPECT_FALSE(user_gesture);
if (IsChromeRuntimeEnabled()) {
// With the Chrome runtime this is true on initial navigation via
// chrome::AddTabAt() and also true for clicked links.
EXPECT_TRUE(user_gesture);
} else {
EXPECT_FALSE(user_gesture);
}
} else {
EXPECT_EQ(ExpectedOpenURLTransitionType(), request->GetTransitionType());
if (mode_ == LEFT_CLICK) {
if (mode_ == LEFT_CLICK || IsChromeRuntimeEnabled()) {
EXPECT_TRUE(user_gesture);
} else {
EXPECT_FALSE(user_gesture);

View File

@ -528,7 +528,13 @@ class BasicResponseTest : public TestHandler {
}
EXPECT_TRUE(frame->IsMain());
EXPECT_FALSE(user_gesture);
if (IsChromeRuntimeEnabled()) {
// With the Chrome runtime this is true on initial navigation via
// chrome::AddTabAt() and also true for clicked links.
EXPECT_TRUE(user_gesture);
} else {
EXPECT_FALSE(user_gesture);
}
if (on_before_browse_ct_ == 0 || mode_ == RESTART_RESOURCE_RESPONSE) {
EXPECT_FALSE(is_redirect) << on_before_browse_ct_;
} else {
@ -957,7 +963,13 @@ class BasicResponseTest : public TestHandler {
EXPECT_EQ(resource_handler_created_ct_, resource_handler_destroyed_ct_);
if (IsAborted()) {
EXPECT_EQ(0, on_resource_load_complete_ct_);
if (IsChromeRuntimeEnabled()) {
// Using the Chrome runtime OnResourceLoadComplete may be called with
// UR_FAILED.
EXPECT_NEAR(0, on_resource_load_complete_ct_, 1);
} else {
EXPECT_EQ(0, on_resource_load_complete_ct_);
}
} else {
EXPECT_EQ(1, on_resource_load_complete_ct_);
}
@ -1520,16 +1532,24 @@ class SubresourceResponseTest : public RoutingTestHandler {
EXPECT_EQ(browser_id_, browser->GetIdentifier());
}
if (IsMainURL(request->GetURL())) {
const std::string& url = request->GetURL();
if (IsMainURL(url)) {
EXPECT_TRUE(frame->IsMain());
} else if (IsSubURL(request->GetURL())) {
} else if (IsSubURL(url)) {
EXPECT_FALSE(frame->IsMain());
EXPECT_TRUE(subframe_);
} else {
EXPECT_FALSE(true); // Not reached.
}
EXPECT_FALSE(user_gesture);
if (IsChromeRuntimeEnabled() && IsMainURL(url)) {
// With the Chrome runtime this is true on initial navigation via
// chrome::AddTabAt() and also true for clicked links.
EXPECT_TRUE(user_gesture);
} else {
EXPECT_FALSE(user_gesture);
}
EXPECT_FALSE(is_redirect);
on_before_browse_ct_++;