| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <stddef.h> | 5 #include <stddef.h> |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "base/threading/thread_restrictions.h" |
| 10 #include "chrome/browser/task_manager/mock_web_contents_task_manager.h" | 11 #include "chrome/browser/task_manager/mock_web_contents_task_manager.h" |
| 11 #include "chrome/browser/task_manager/providers/web_contents/web_contents_tags_m
anager.h" | 12 #include "chrome/browser/task_manager/providers/web_contents/web_contents_tags_m
anager.h" |
| 12 #include "chrome/browser/ui/browser.h" | 13 #include "chrome/browser/ui/browser.h" |
| 13 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 14 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 14 #include "chrome/common/chrome_paths.h" | 15 #include "chrome/common/chrome_paths.h" |
| 15 #include "chrome/grit/generated_resources.h" | 16 #include "chrome/grit/generated_resources.h" |
| 16 #include "chrome/test/base/in_process_browser_test.h" | 17 #include "chrome/test/base/in_process_browser_test.h" |
| 17 #include "chrome/test/base/ui_test_utils.h" | 18 #include "chrome/test/base/ui_test_utils.h" |
| 18 #include "components/favicon/content/content_favicon_driver.h" | 19 #include "components/favicon/content/content_favicon_driver.h" |
| 19 #include "components/favicon/core/favicon_driver.h" | 20 #include "components/favicon/core/favicon_driver.h" |
| (...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 favicon::ContentFaviconDriver* favicon_driver = | 288 favicon::ContentFaviconDriver* favicon_driver = |
| 288 favicon::ContentFaviconDriver::FromWebContents( | 289 favicon::ContentFaviconDriver::FromWebContents( |
| 289 browser()->tab_strip_model()->GetActiveWebContents()); | 290 browser()->tab_strip_model()->GetActiveWebContents()); |
| 290 FaviconWaiter waiter(favicon_driver); | 291 FaviconWaiter waiter(favicon_driver); |
| 291 waiter.WaitForFaviconWithURL(GetUrlOfFile("/favicon/icon.png")); | 292 waiter.WaitForFaviconWithURL(GetUrlOfFile("/favicon/icon.png")); |
| 292 | 293 |
| 293 // Check that the task manager uses the specified favicon for the page. | 294 // Check that the task manager uses the specified favicon for the page. |
| 294 base::FilePath test_dir; | 295 base::FilePath test_dir; |
| 295 PathService::Get(chrome::DIR_TEST_DATA, &test_dir); | 296 PathService::Get(chrome::DIR_TEST_DATA, &test_dir); |
| 296 std::string favicon_string; | 297 std::string favicon_string; |
| 297 base::ReadFileToString( | 298 { |
| 298 test_dir.AppendASCII("favicon").AppendASCII("icon.png"), &favicon_string); | 299 base::ThreadRestrictions::ScopedAllowIO allow_io; |
| 300 base::ReadFileToString( |
| 301 test_dir.AppendASCII("favicon").AppendASCII("icon.png"), |
| 302 &favicon_string); |
| 303 } |
| 299 SkBitmap favicon_bitmap; | 304 SkBitmap favicon_bitmap; |
| 300 gfx::PNGCodec::Decode( | 305 gfx::PNGCodec::Decode( |
| 301 reinterpret_cast<const unsigned char*>(favicon_string.data()), | 306 reinterpret_cast<const unsigned char*>(favicon_string.data()), |
| 302 favicon_string.length(), &favicon_bitmap); | 307 favicon_string.length(), &favicon_bitmap); |
| 303 ASSERT_TRUE( | 308 ASSERT_TRUE( |
| 304 gfx::test::AreBitmapsEqual(favicon_bitmap, *task->icon().bitmap())); | 309 gfx::test::AreBitmapsEqual(favicon_bitmap, *task->icon().bitmap())); |
| 305 | 310 |
| 306 // Navigate to a page without a favicon. | 311 // Navigate to a page without a favicon. |
| 307 GURL no_favicon_page_url = GetUrlOfFile("/title1.html"); | 312 GURL no_favicon_page_url = GetUrlOfFile("/title1.html"); |
| 308 ui_test_utils::NavigateToURL(browser(), no_favicon_page_url); | 313 ui_test_utils::NavigateToURL(browser(), no_favicon_page_url); |
| 309 ASSERT_EQ(GetDefaultTitleForUrl(no_favicon_page_url), task->title()); | 314 ASSERT_EQ(GetDefaultTitleForUrl(no_favicon_page_url), task->title()); |
| 310 | 315 |
| 311 // Check that the task manager uses the default favicon for the page. | 316 // Check that the task manager uses the default favicon for the page. |
| 312 gfx::Image default_favicon_image = | 317 gfx::Image default_favicon_image = |
| 313 ResourceBundle::GetSharedInstance().GetNativeImageNamed( | 318 ResourceBundle::GetSharedInstance().GetNativeImageNamed( |
| 314 IDR_DEFAULT_FAVICON); | 319 IDR_DEFAULT_FAVICON); |
| 315 EXPECT_TRUE(gfx::test::AreImagesEqual(default_favicon_image, | 320 EXPECT_TRUE(gfx::test::AreImagesEqual(default_favicon_image, |
| 316 gfx::Image(task->icon()))); | 321 gfx::Image(task->icon()))); |
| 317 } | 322 } |
| 318 | 323 |
| 319 } // namespace task_manager | 324 } // namespace task_manager |
| OLD | NEW |