Commit 90ee4c23 authored by Rakina Zata Amni's avatar Rakina Zata Amni Committed by Commit Bot

Update task_manager tests to handle same-site BrowsingInstance swap

With crrev.com/c/2121522, some main-frame same-site navigations will
result in a new BrowsingInstance, SiteInstance, RenderFrameHost,
RenderView, etc. This CL updates expectations of task_manager tests
that didn't expect a change of RenderFrameHosts etc. on same-site
navigations.

This CL does not include:
- Fixes for other tests in chrome/ content/, components/, and layout
tests (they're fixed in other CLs)

For more details, see doc: https://docs.google.com/document/d/1lHdkKLUe8H6ZP6ALwj-dsus7oYcuc93HkSCHCcerItg/edit?usp=sharing

Bug: 977562

Change-Id: I2066c4e6a96b984a899dcd0f977d2227d8c4c452
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2196105
Commit-Queue: Rakina Zata Amni <rakina@chromium.org>
Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#775043}
parent 3bc30046
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h" #include "chrome/test/base/ui_test_utils.h"
#include "content/public/test/browser_test.h" #include "content/public/test/browser_test.h"
#include "content/public/test/test_utils.h"
#include "net/test/embedded_test_server/embedded_test_server.h" #include "net/test/embedded_test_server/embedded_test_server.h"
namespace task_manager { namespace task_manager {
...@@ -111,8 +112,19 @@ IN_PROC_BROWSER_TEST_F(DevToolsTagTest, DevToolsTaskIsProvided) { ...@@ -111,8 +112,19 @@ IN_PROC_BROWSER_TEST_F(DevToolsTagTest, DevToolsTaskIsProvided) {
const int64_t task_id = task->task_id(); const int64_t task_id = task->task_id();
LoadTestPage(kTestPage2); LoadTestPage(kTestPage2);
EXPECT_EQ(2U, tags_manager()->tracked_tags().size()); EXPECT_EQ(2U, tags_manager()->tracked_tags().size());
if (content::CanSameSiteMainFrameNavigationsChangeRenderFrameHosts()) {
// When ProactivelySwapBrowsingInstance or RenderDocument is enabled on
// same-site main frame navigations, the navigation above will result in a
// new RenderFrameHost, so the DevTools task will move (but still exist
// in the tasks list).
EXPECT_NE(task_id, task_manager.tasks().back()->task_id());
EXPECT_NE(task, task_manager.tasks().back());
EXPECT_EQ(task_id, task_manager.tasks()[0]->task_id());
EXPECT_EQ(task, task_manager.tasks()[0]);
} else {
EXPECT_EQ(task_id, task_manager.tasks().back()->task_id()); EXPECT_EQ(task_id, task_manager.tasks().back()->task_id());
EXPECT_EQ(task, task_manager.tasks().back()); EXPECT_EQ(task, task_manager.tasks().back());
}
EXPECT_NE(task_manager.tasks()[0]->title(), EXPECT_NE(task_manager.tasks()[0]->title(),
task_manager.tasks()[1]->title()); task_manager.tasks()[1]->title());
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include "content/public/browser/favicon_status.h" #include "content/public/browser/favicon_status.h"
#include "content/public/browser/navigation_entry.h" #include "content/public/browser/navigation_entry.h"
#include "content/public/test/browser_test.h" #include "content/public/test/browser_test.h"
#include "content/public/test/test_utils.h"
#include "net/test/embedded_test_server/embedded_test_server.h" #include "net/test/embedded_test_server/embedded_test_server.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
#include "ui/base/page_transition_types.h" #include "ui/base/page_transition_types.h"
...@@ -313,6 +314,14 @@ IN_PROC_BROWSER_TEST_F(TabContentsTagTest, NavigateToPageNoFavicon) { ...@@ -313,6 +314,14 @@ IN_PROC_BROWSER_TEST_F(TabContentsTagTest, NavigateToPageNoFavicon) {
// Navigate to a page without a favicon. // Navigate to a page without a favicon.
GURL no_favicon_page_url = GetUrlOfFile("/title1.html"); GURL no_favicon_page_url = GetUrlOfFile("/title1.html");
ui_test_utils::NavigateToURL(browser(), no_favicon_page_url); ui_test_utils::NavigateToURL(browser(), no_favicon_page_url);
if (content::CanSameSiteMainFrameNavigationsChangeRenderFrameHosts()) {
// When ProactivelySwapBrowsingInstance or RenderDocument is enabled on
// same-site main frame navigations, we'll get a new task because we are
// changing RenderFrameHosts.
ASSERT_EQ(1U, task_manager.tasks().size());
task = task_manager.tasks().back();
}
ASSERT_EQ(GetDefaultTitleForUrl(no_favicon_page_url), task->title()); ASSERT_EQ(GetDefaultTitleForUrl(no_favicon_page_url), task->title());
// Check that the task manager uses the default favicon for the page. // Check that the task manager uses the default favicon for the page.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment