Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Side by Side Diff: chrome/browser/task_manager/task_manager_browsertest_util.cc

Issue 10882071: Fixes for bunch of browser tests that are trying to load content from file: schema. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/message_loop.h" 5 #include "base/message_loop.h"
6 #include "base/stringprintf.h"
7 #include "base/utf_string_conversions.h"
6 #include "chrome/browser/browser_process.h" 8 #include "chrome/browser/browser_process.h"
7 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
8 #include "chrome/browser/task_manager/task_manager.h" 10 #include "chrome/browser/task_manager/task_manager.h"
9 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" 11 #include "chrome/browser/task_manager/task_manager_browsertest_util.h"
10 #include "chrome/browser/ui/browser.h" 12 #include "chrome/browser/ui/browser.h"
11 #include "chrome/browser/ui/browser_window.h" 13 #include "chrome/browser/ui/browser_window.h"
12 #include "chrome/common/chrome_notification_types.h" 14 #include "chrome/common/chrome_notification_types.h"
13 #include "chrome/test/base/ui_test_utils.h" 15 #include "chrome/test/base/ui_test_utils.h"
14 #include "content/public/browser/notification_source.h" 16 #include "content/public/browser/notification_source.h"
17 #include "content/public/browser/web_contents.h"
15 18
16 namespace { 19 namespace {
17 20
21 int GetWebResourceCount(const TaskManagerModel* model) {
22 int count = 0;
23 for (int i = 0; i < model->ResourceCount(); i++) {
24 TaskManager::Resource::Type type = model->GetResourceType(i);
25 // Skip system infrastructure resources.
26 if (type == TaskManager::Resource::BROWSER ||
27 type == TaskManager::Resource::NACL ||
28 type == TaskManager::Resource::GPU ||
29 type == TaskManager::Resource::UTILITY ||
30 type == TaskManager::Resource::PROFILE_IMPORT ||
31 type == TaskManager::Resource::ZYGOTE ||
32 type == TaskManager::Resource::SANDBOX_HELPER) {
33 continue;
34 }
35
36 count++;
37 }
38 return count;
39 }
40
18 class ResourceChangeObserver : public TaskManagerModelObserver { 41 class ResourceChangeObserver : public TaskManagerModelObserver {
19 public: 42 public:
20 ResourceChangeObserver(const TaskManagerModel* model, 43 ResourceChangeObserver(const TaskManagerModel* model,
21 int target_resource_count) 44 int target_resource_count)
22 : model_(model), 45 : model_(model),
23 target_resource_count_(target_resource_count) { 46 target_resource_count_(target_resource_count) {
24 } 47 }
25 48
26 virtual void OnModelChanged() OVERRIDE { 49 virtual void OnModelChanged() OVERRIDE {
27 OnResourceChange(); 50 OnResourceChange();
28 } 51 }
29 52
30 virtual void OnItemsChanged(int start, int length) OVERRIDE { 53 virtual void OnItemsChanged(int start, int length) OVERRIDE {
31 OnResourceChange(); 54 OnResourceChange();
32 } 55 }
33 56
34 virtual void OnItemsAdded(int start, int length) OVERRIDE { 57 virtual void OnItemsAdded(int start, int length) OVERRIDE {
35 OnResourceChange(); 58 OnResourceChange();
36 } 59 }
37 60
38 virtual void OnItemsRemoved(int start, int length) OVERRIDE { 61 virtual void OnItemsRemoved(int start, int length) OVERRIDE {
39 OnResourceChange(); 62 OnResourceChange();
40 } 63 }
41 64
42 private: 65 private:
43 void OnResourceChange() { 66 void OnResourceChange() {
44 if (model_->ResourceCount() == target_resource_count_) 67 if (GetWebResourceCount(model_) == target_resource_count_)
45 MessageLoopForUI::current()->Quit(); 68 MessageLoopForUI::current()->Quit();
46 } 69 }
47 70
48 const TaskManagerModel* model_; 71 const TaskManagerModel* model_;
49 const int target_resource_count_; 72 const int target_resource_count_;
50 }; 73 };
51 74
52 } // namespace 75 } // namespace
53 76
54 // static 77 // static
55 void TaskManagerBrowserTestUtil::WaitForResourceChange(int target_count) { 78 void TaskManagerBrowserTestUtil::WaitForWebResourceChange(int target_count) {
56 TaskManagerModel* model = TaskManager::GetInstance()->model(); 79 TaskManagerModel* model = TaskManager::GetInstance()->model();
57 80
58 ResourceChangeObserver observer(model, target_count); 81 ResourceChangeObserver observer(model, target_count);
59 model->AddObserver(&observer); 82 model->AddObserver(&observer);
60 83
61 // Checks that the condition has not been satisfied yet. 84 // Checks that the condition has not been satisfied yet.
62 // This check has to be placed after the installation of the observer, 85 // This check has to be placed after the installation of the observer,
63 // because resources may change before that. 86 // because resources may change before that.
64 if (model->ResourceCount() == target_count) { 87 if (GetWebResourceCount(model) == target_count) {
65 model->RemoveObserver(&observer); 88 model->RemoveObserver(&observer);
66 return; 89 return;
67 } 90 }
68 91
69 content::RunMessageLoop(); 92 content::RunMessageLoop();
70 model->RemoveObserver(&observer); 93 model->RemoveObserver(&observer);
71 } 94 }
72 95
73 // static 96 // static
74 void TaskManagerBrowserTestUtil::ShowTaskManagerAndWaitForReady( 97 void TaskManagerBrowserTestUtil::ShowTaskManagerAndWaitForReady(
75 Browser* browser) { 98 Browser* browser) {
76 #if defined(USE_AURA) 99 #if defined(USE_AURA)
77 content::WindowedNotificationObserver observer( 100 content::WindowedNotificationObserver observer(
78 chrome::NOTIFICATION_TASK_MANAGER_WINDOW_READY, 101 chrome::NOTIFICATION_TASK_MANAGER_WINDOW_READY,
79 content::Source<TaskManagerModel>(TaskManager::GetInstance()->model())); 102 content::Source<TaskManagerModel>(TaskManager::GetInstance()->model()));
80 browser->window()->ShowTaskManager(); 103 browser->window()->ShowTaskManager();
81 observer.Wait(); 104 observer.Wait();
82 #else 105 #else
83 browser->window()->ShowTaskManager(); 106 browser->window()->ShowTaskManager();
84 #endif // defined(USE_AURA) 107 #endif // defined(USE_AURA)
85 } 108 }
86 109
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698