Index: chrome/browser/favicon/content_favicon_driver_browsertest.cc |
diff --git a/chrome/browser/favicon/content_favicon_driver_browsertest.cc b/chrome/browser/favicon/content_favicon_driver_browsertest.cc |
index 88b785267c9a80cb6675a75ce538fabed09c0ae7..b83079f66d0f4ae4c85d713e68430cc00bd3c1ea 100644 |
--- a/chrome/browser/favicon/content_favicon_driver_browsertest.cc |
+++ b/chrome/browser/favicon/content_favicon_driver_browsertest.cc |
@@ -179,7 +179,9 @@ class ContentFaviconDriverTest : public InProcessBrowserTest, |
->HasPendingTasksForTest(); |
} |
- favicon_base::FaviconRawBitmapResult GetFaviconForPageURL(const GURL& url) { |
+ favicon_base::FaviconRawBitmapResult GetFaviconForPageURL( |
+ const GURL& url, |
+ favicon_base::IconType icon_type) { |
favicon::FaviconService* favicon_service = |
FaviconServiceFactory::GetForProfile( |
browser()->profile(), ServiceAccessType::EXPLICIT_ACCESS); |
@@ -188,7 +190,7 @@ class ContentFaviconDriverTest : public InProcessBrowserTest, |
base::CancelableTaskTracker tracker; |
base::RunLoop loop; |
favicon_service->GetFaviconForPageURL( |
- url, favicon_base::FAVICON, /*desired_size_in_dip=*/0, |
+ url, icon_type, /*desired_size_in_dip=*/0, |
base::Bind( |
[](std::vector<favicon_base::FaviconRawBitmapResult>* save_results, |
base::RunLoop* loop, |
@@ -281,6 +283,9 @@ IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, LoadIconFromWebManifest) { |
#if defined(OS_ANDROID) || defined(OS_IOS) |
EXPECT_TRUE(delegate->was_requested()); |
+ EXPECT_NE( |
+ nullptr, |
+ GetFaviconForPageURL(url, favicon_base::WEB_MANIFEST_ICON).bitmap_data); |
#else |
EXPECT_FALSE(delegate->was_requested()); |
#endif |
@@ -304,7 +309,8 @@ IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, |
ui_test_utils::BROWSER_TEST_NONE); |
waiter.Wait(); |
} |
- ASSERT_NE(nullptr, GetFaviconForPageURL(url).bitmap_data); |
+ ASSERT_NE(nullptr, |
+ GetFaviconForPageURL(url, favicon_base::FAVICON).bitmap_data); |
ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)); |
@@ -320,5 +326,30 @@ IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, |
waiter.Wait(); |
} |
- EXPECT_NE(nullptr, GetFaviconForPageURL(url).bitmap_data); |
+ EXPECT_NE(nullptr, |
+ GetFaviconForPageURL(url, favicon_base::FAVICON).bitmap_data); |
} |
+ |
+#if defined(OS_ANDROID) || defined(OS_IOS) |
+IN_PROC_BROWSER_TEST_F(ContentFaviconDriverTest, |
+ LoadIconFromWebManifestDespitePushState) { |
+ base::test::ScopedFeatureList override_features; |
+ override_features.InitAndEnableFeature(favicon::kFaviconsFromWebManifest); |
+ |
+ ASSERT_TRUE(embedded_test_server()->Start()); |
+ GURL url = |
+ embedded_test_server()->GetURL("/favicon/pushstate_with_manifest.html"); |
+ GURL pushstate_url = embedded_test_server()->GetURL( |
+ "/favicon/pushstate_with_manifest.html#pushState"); |
+ |
+ PendingTaskWaiter waiter(web_contents(), this); |
+ ui_test_utils::NavigateToURLWithDisposition( |
+ browser(), url, WindowOpenDisposition::CURRENT_TAB, |
+ ui_test_utils::BROWSER_TEST_NONE); |
pkotwicz
2017/06/21 18:48:34
You should probably wait till the JavaScript has e
|
+ waiter.Wait(); |
+ |
+ EXPECT_NE(nullptr, |
+ GetFaviconForPageURL(pushstate_url, favicon_base::WEB_MANIFEST_ICON) |
+ .bitmap_data); |
+} |
+#endif |