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

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

Issue 11246005: [Panels] Fix crash when killing panel extension from TaskManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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
« no previous file with comments | « no previous file | chrome/browser/task_manager/task_manager_resource_providers.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/task_manager/task_manager.h" 5 #include "chrome/browser/task_manager/task_manager.h"
6 6
7 #include "base/file_path.h" 7 #include "base/file_path.h"
8 #include "base/stringprintf.h" 8 #include "base/stringprintf.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/api/infobars/confirm_infobar_delegate.h" 10 #include "chrome/browser/api/infobars/confirm_infobar_delegate.h"
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 TaskManager::GetInstance()->KillProcess(i); 246 TaskManager::GetInstance()->KillProcess(i);
247 found = true; 247 found = true;
248 break; 248 break;
249 } 249 }
250 } 250 }
251 ASSERT_TRUE(found); 251 ASSERT_TRUE(found);
252 TaskManagerBrowserTestUtil::WaitForWebResourceChange(1); 252 TaskManagerBrowserTestUtil::WaitForWebResourceChange(1);
253 EXPECT_EQ(0, TaskManager::GetBackgroundPageCount()); 253 EXPECT_EQ(0, TaskManager::GetBackgroundPageCount());
254 } 254 }
255 255
256 #if defined(USE_ASH)
257 // This test fails on Ash because task manager treats view type
258 // Panels differently for Ash.
259 #define MAYBE_KillPanelExtension FAILS_KillPanelExtension
260 #else
261 #define MAYBE_KillPanelExtension KillPanelExtension
262 #endif
263 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, MAYBE_KillPanelExtension) {
264 EXPECT_EQ(0, model()->ResourceCount());
265
266 // Show the task manager. This populates the model, and helps with debugging
267 // (you see the task manager).
268 browser()->window()->ShowTaskManager();
269
270 // New Tab Page.
271 TaskManagerBrowserTestUtil::WaitForWebResourceChange(1);
272 int resource_count = TaskManager::GetInstance()->model()->ResourceCount();
273
274 ASSERT_TRUE(LoadExtension(
275 test_data_dir_.AppendASCII("good").AppendASCII("Extensions")
276 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj")
277 .AppendASCII("1.0.0.0")));
278
279 // Browser, the New Tab Page and Extension background page.
280 TaskManagerBrowserTestUtil::WaitForWebResourceChange(2);
281
282 // Open a new panel to an extension url and make sure we notice that.
283 GURL url(
284 "chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/french_sentence.html");
285 PanelManager::GetInstance()->CreatePanel(
286 web_app::GenerateApplicationNameFromExtensionId(
287 last_loaded_extension_id_),
288 browser()->profile(),
289 url,
290 gfx::Rect(300, 400),
291 PanelManager::CREATE_AS_DOCKED);
292 TaskManagerBrowserTestUtil::WaitForWebResourceChange(3);
293
294 // Kill the panel extension process and verify that it disappears from the
295 // model along with its panel.
296 ASSERT_TRUE(model()->IsBackgroundResource(resource_count));
297 TaskManager::GetInstance()->KillProcess(resource_count);
298 TaskManagerBrowserTestUtil::WaitForWebResourceChange(1);
299 }
300
256 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeExtensionChanges) { 301 IN_PROC_BROWSER_TEST_F(TaskManagerBrowserTest, NoticeExtensionChanges) {
257 EXPECT_EQ(0, model()->ResourceCount()); 302 EXPECT_EQ(0, model()->ResourceCount());
258 EXPECT_EQ(0, TaskManager::GetBackgroundPageCount()); 303 EXPECT_EQ(0, TaskManager::GetBackgroundPageCount());
259 304
260 // Show the task manager. This populates the model, and helps with debugging 305 // Show the task manager. This populates the model, and helps with debugging
261 // (you see the task manager). 306 // (you see the task manager).
262 browser()->window()->ShowTaskManager(); 307 browser()->window()->ShowTaskManager();
263 308
264 // New Tab Page. 309 // New Tab Page.
265 TaskManagerBrowserTestUtil::WaitForWebResourceChange(1); 310 TaskManagerBrowserTestUtil::WaitForWebResourceChange(1);
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 TaskManagerBrowserTestUtil::WaitForWebResourceChange(2); 600 TaskManagerBrowserTestUtil::WaitForWebResourceChange(2);
556 601
557 // Check that we get some value for the cache columns. 602 // Check that we get some value for the cache columns.
558 DCHECK_NE(model()->GetResourceWebCoreImageCacheSize(resource_count), 603 DCHECK_NE(model()->GetResourceWebCoreImageCacheSize(resource_count),
559 l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT)); 604 l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT));
560 DCHECK_NE(model()->GetResourceWebCoreScriptsCacheSize(resource_count), 605 DCHECK_NE(model()->GetResourceWebCoreScriptsCacheSize(resource_count),
561 l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT)); 606 l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT));
562 DCHECK_NE(model()->GetResourceWebCoreCSSCacheSize(resource_count), 607 DCHECK_NE(model()->GetResourceWebCoreCSSCacheSize(resource_count),
563 l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT)); 608 l10n_util::GetStringUTF16(IDS_TASK_MANAGER_NA_CELL_TEXT));
564 } 609 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/task_manager/task_manager_resource_providers.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698