| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <queue> | 5 #include <queue> |
| 6 | 6 |
| 7 #include "base/location.h" | 7 #include "base/location.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/process/process.h" | 9 #include "base/process/process.h" |
| 10 #include "base/single_thread_task_runner.h" | 10 #include "base/single_thread_task_runner.h" |
| (...skipping 2858 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2869 DCHECK(guest); | 2869 DCHECK(guest); |
| 2870 | 2870 |
| 2871 return l10n_util::GetStringFUTF16(guest->GetTaskPrefix(), base::string16()); | 2871 return l10n_util::GetStringFUTF16(guest->GetTaskPrefix(), base::string16()); |
| 2872 } | 2872 } |
| 2873 | 2873 |
| 2874 const std::vector<task_management::WebContentsTag*>& GetTrackedTags() { | 2874 const std::vector<task_management::WebContentsTag*>& GetTrackedTags() { |
| 2875 return task_management::WebContentsTagsManager::GetInstance()-> | 2875 return task_management::WebContentsTagsManager::GetInstance()-> |
| 2876 tracked_tags(); | 2876 tracked_tags(); |
| 2877 } | 2877 } |
| 2878 | 2878 |
| 2879 bool HasExpectedGuestTask( |
| 2880 const task_management::MockWebContentsTaskManager& task_manager, |
| 2881 content::WebContents* guest_contents) { |
| 2882 bool found = false; |
| 2883 for (auto* task: task_manager.tasks()) { |
| 2884 if (task->GetType() != task_management::Task::GUEST) |
| 2885 continue; |
| 2886 EXPECT_FALSE(found); |
| 2887 found = true; |
| 2888 const base::string16 title = task->title(); |
| 2889 const base::string16 expected_prefix = GetExpectedPrefix(guest_contents); |
| 2890 EXPECT_TRUE(base::StartsWith(title, expected_prefix, |
| 2891 base::CompareCase::INSENSITIVE_ASCII)); |
| 2892 } |
| 2893 return found; |
| 2894 } |
| 2895 |
| 2879 } // namespace | 2896 } // namespace |
| 2880 | 2897 |
| 2881 // Tests that the pre-existing WebViews are provided to the task manager. | 2898 // Tests that the pre-existing WebViews are provided to the task manager. |
| 2882 IN_PROC_BROWSER_TEST_F(WebViewTest, TaskManagementPreExistingWebViews) { | 2899 IN_PROC_BROWSER_TEST_F(WebViewTest, TaskManagementPreExistingWebViews) { |
| 2883 ASSERT_TRUE(StartEmbeddedTestServer()); | 2900 ASSERT_TRUE(StartEmbeddedTestServer()); |
| 2884 | 2901 |
| 2885 // Browser tests start with a single tab. | 2902 // Browser tests start with a single tab. |
| 2886 EXPECT_EQ(1U, GetTrackedTags().size()); | 2903 EXPECT_EQ(1U, GetTrackedTags().size()); |
| 2887 | 2904 |
| 2888 content::WebContents* guest_contents = | 2905 content::WebContents* guest_contents = |
| 2889 LoadGuest("/extensions/platform_apps/web_view/task_manager/guest.html", | 2906 LoadGuest("/extensions/platform_apps/web_view/task_manager/guest.html", |
| 2890 "web_view/task_manager"); | 2907 "web_view/task_manager"); |
| 2891 | 2908 |
| 2892 task_management::MockWebContentsTaskManager task_manager; | 2909 task_management::MockWebContentsTaskManager task_manager; |
| 2893 task_manager.StartObserving(); | 2910 task_manager.StartObserving(); |
| 2894 | 2911 |
| 2895 // The pre-existing tab and guest tasks are provided. | 2912 // The pre-existing tab and guest tasks are provided. |
| 2896 // 4 tasks expected in the following order: | 2913 // 4 tasks expected. The order is arbitrary. |
| 2897 // Tab: about:blank, | 2914 // Tab: about:blank, |
| 2898 // Background Page: <webview> task manager test, | 2915 // Background Page: <webview> task manager test, |
| 2899 // App: <webview> task manager test, | 2916 // App: <webview> task manager test, |
| 2900 // Webview: WebViewed test content. | 2917 // Webview: WebViewed test content. |
| 2901 EXPECT_EQ(4U, task_manager.tasks().size()); | 2918 EXPECT_EQ(4U, task_manager.tasks().size()); |
| 2902 | 2919 EXPECT_TRUE(HasExpectedGuestTask(task_manager, guest_contents)); |
| 2903 const task_management::Task* task = task_manager.tasks().back(); | |
| 2904 EXPECT_EQ(task_management::Task::GUEST, task->GetType()); | |
| 2905 const base::string16 title = task->title(); | |
| 2906 const base::string16 expected_prefix = GetExpectedPrefix(guest_contents); | |
| 2907 EXPECT_TRUE(base::StartsWith(title, | |
| 2908 expected_prefix, | |
| 2909 base::CompareCase::INSENSITIVE_ASCII)); | |
| 2910 } | 2920 } |
| 2911 | 2921 |
| 2912 // Tests that the post-existing WebViews are provided to the task manager. | 2922 // Tests that the post-existing WebViews are provided to the task manager. |
| 2913 IN_PROC_BROWSER_TEST_F(WebViewTest, TaskManagementPostExistingWebViews) { | 2923 IN_PROC_BROWSER_TEST_F(WebViewTest, TaskManagementPostExistingWebViews) { |
| 2914 ASSERT_TRUE(StartEmbeddedTestServer()); | 2924 ASSERT_TRUE(StartEmbeddedTestServer()); |
| 2915 | 2925 |
| 2916 // Browser tests start with a single tab. | 2926 // Browser tests start with a single tab. |
| 2917 EXPECT_EQ(1U, GetTrackedTags().size()); | 2927 EXPECT_EQ(1U, GetTrackedTags().size()); |
| 2918 | 2928 |
| 2919 task_management::MockWebContentsTaskManager task_manager; | 2929 task_management::MockWebContentsTaskManager task_manager; |
| 2920 task_manager.StartObserving(); | 2930 task_manager.StartObserving(); |
| 2921 | 2931 |
| 2922 // Only the "about:blank" tab shows at the moment. | 2932 // Only the "about:blank" tab shows at the moment. |
| 2923 EXPECT_EQ(1U, task_manager.tasks().size()); | 2933 EXPECT_EQ(1U, task_manager.tasks().size()); |
| 2924 const task_management::Task* about_blank_task = task_manager.tasks().back(); | 2934 const task_management::Task* about_blank_task = task_manager.tasks().back(); |
| 2925 EXPECT_EQ(task_management::Task::RENDERER, about_blank_task->GetType()); | 2935 EXPECT_EQ(task_management::Task::RENDERER, about_blank_task->GetType()); |
| 2926 EXPECT_EQ(base::UTF8ToUTF16("Tab: about:blank"), about_blank_task->title()); | 2936 EXPECT_EQ(base::UTF8ToUTF16("Tab: about:blank"), about_blank_task->title()); |
| 2927 | 2937 |
| 2928 // Now load a guest web view. | 2938 // Now load a guest web view. |
| 2929 content::WebContents* guest_contents = | 2939 content::WebContents* guest_contents = |
| 2930 LoadGuest("/extensions/platform_apps/web_view/task_manager/guest.html", | 2940 LoadGuest("/extensions/platform_apps/web_view/task_manager/guest.html", |
| 2931 "web_view/task_manager"); | 2941 "web_view/task_manager"); |
| 2932 // 4 tasks expected in the following order: | 2942 // 4 tasks expected. The order is arbitrary. |
| 2933 // Tab: about:blank, | 2943 // Tab: about:blank, |
| 2934 // Background Page: <webview> task manager test, | 2944 // Background Page: <webview> task manager test, |
| 2935 // App: <webview> task manager test, | 2945 // App: <webview> task manager test, |
| 2936 // Webview: WebViewed test content. | 2946 // Webview: WebViewed test content. |
| 2937 EXPECT_EQ(4U, task_manager.tasks().size()); | 2947 EXPECT_EQ(4U, task_manager.tasks().size()); |
| 2938 | 2948 EXPECT_TRUE(HasExpectedGuestTask(task_manager, guest_contents)); |
| 2939 const task_management::Task* task = task_manager.tasks().back(); | |
| 2940 EXPECT_EQ(task_management::Task::GUEST, task->GetType()); | |
| 2941 const base::string16 title = task->title(); | |
| 2942 const base::string16 expected_prefix = GetExpectedPrefix(guest_contents); | |
| 2943 EXPECT_TRUE(base::StartsWith(title, | |
| 2944 expected_prefix, | |
| 2945 base::CompareCase::INSENSITIVE_ASCII)); | |
| 2946 } | 2949 } |
| 2947 | 2950 |
| 2948 #endif // defined(ENABLE_TASK_MANAGER) | 2951 #endif // defined(ENABLE_TASK_MANAGER) |
| OLD | NEW |