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

Side by Side Diff: chrome/browser/extensions/extension_crash_recovery_browsertest.cc

Issue 9473001: Extract minimal RenderViewHost interface for embedders, leaving (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to LKGR. Created 8 years, 9 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) 2011 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/process_util.h" 5 #include "base/process_util.h"
6 #include "chrome/browser/browser_process.h" 6 #include "chrome/browser/browser_process.h"
7 #include "chrome/browser/extensions/extension_browsertest.h" 7 #include "chrome/browser/extensions/extension_browsertest.h"
8 #include "chrome/browser/extensions/extension_host.h" 8 #include "chrome/browser/extensions/extension_host.h"
9 #include "chrome/browser/extensions/extension_process_manager.h" 9 #include "chrome/browser/extensions/extension_process_manager.h"
10 #include "chrome/browser/extensions/extension_service.h" 10 #include "chrome/browser/extensions/extension_service.h"
11 #include "chrome/browser/notifications/balloon_host.h" 11 #include "chrome/browser/notifications/balloon_host.h"
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 68
69 void CrashExtension(std::string extension_id) { 69 void CrashExtension(std::string extension_id) {
70 const Extension* extension = 70 const Extension* extension =
71 GetExtensionService()->extensions()->GetByID(extension_id); 71 GetExtensionService()->extensions()->GetByID(extension_id);
72 ASSERT_TRUE(extension); 72 ASSERT_TRUE(extension);
73 ExtensionHost* extension_host = GetExtensionProcessManager()-> 73 ExtensionHost* extension_host = GetExtensionProcessManager()->
74 GetBackgroundHostForExtension(extension_id); 74 GetBackgroundHostForExtension(extension_id);
75 ASSERT_TRUE(extension_host); 75 ASSERT_TRUE(extension_host);
76 76
77 content::RenderProcessHost* extension_rph = 77 content::RenderProcessHost* extension_rph =
78 extension_host->render_view_host()->process(); 78 extension_host->render_view_host()->GetProcess();
79 base::KillProcess(extension_rph->GetHandle(), content::RESULT_CODE_KILLED, 79 base::KillProcess(extension_rph->GetHandle(), content::RESULT_CODE_KILLED,
80 false); 80 false);
81 ASSERT_TRUE(WaitForExtensionCrash(extension_id)); 81 ASSERT_TRUE(WaitForExtensionCrash(extension_id));
82 ASSERT_FALSE(GetExtensionProcessManager()-> 82 ASSERT_FALSE(GetExtensionProcessManager()->
83 GetBackgroundHostForExtension(extension_id)); 83 GetBackgroundHostForExtension(extension_id));
84 } 84 }
85 85
86 void CheckExtensionConsistency(std::string extension_id) { 86 void CheckExtensionConsistency(std::string extension_id) {
87 const Extension* extension = 87 const Extension* extension =
88 GetExtensionService()->extensions()->GetByID(extension_id); 88 GetExtensionService()->extensions()->GetByID(extension_id);
89 ASSERT_TRUE(extension); 89 ASSERT_TRUE(extension);
90 ExtensionHost* extension_host = GetExtensionProcessManager()-> 90 ExtensionHost* extension_host = GetExtensionProcessManager()->
91 GetBackgroundHostForExtension(extension_id); 91 GetBackgroundHostForExtension(extension_id);
92 ASSERT_TRUE(extension_host); 92 ASSERT_TRUE(extension_host);
93 ASSERT_TRUE(GetExtensionProcessManager()->HasExtensionHost(extension_host)); 93 ASSERT_TRUE(GetExtensionProcessManager()->HasExtensionHost(extension_host));
94 ASSERT_TRUE(extension_host->IsRenderViewLive()); 94 ASSERT_TRUE(extension_host->IsRenderViewLive());
95 extensions::ProcessMap* process_map = 95 extensions::ProcessMap* process_map =
96 browser()->profile()->GetExtensionService()->process_map(); 96 browser()->profile()->GetExtensionService()->process_map();
97 ASSERT_TRUE(process_map->Contains( 97 ASSERT_TRUE(process_map->Contains(
98 extension_id, extension_host->render_view_host()->process()->GetID())); 98 extension_id,
99 extension_host->render_view_host()->GetProcess()->GetID()));
99 } 100 }
100 101
101 void LoadTestExtension() { 102 void LoadTestExtension() {
102 ExtensionBrowserTest::SetUpInProcessBrowserTestFixture(); 103 ExtensionBrowserTest::SetUpInProcessBrowserTestFixture();
103 const Extension* extension = LoadExtension( 104 const Extension* extension = LoadExtension(
104 test_data_dir_.AppendASCII("common").AppendASCII("background_page")); 105 test_data_dir_.AppendASCII("common").AppendASCII("background_page"));
105 ASSERT_TRUE(extension); 106 ASSERT_TRUE(extension);
106 first_extension_id_ = extension->id(); 107 first_extension_id_ = extension->id();
107 CheckExtensionConsistency(first_extension_id_); 108 CheckExtensionConsistency(first_extension_id_);
108 } 109 }
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 GetController())); 481 GetController()));
481 browser()->Reload(CURRENT_TAB); 482 browser()->Reload(CURRENT_TAB);
482 observer.Wait(); 483 observer.Wait();
483 } 484 }
484 // Extension should now be loaded. 485 // Extension should now be loaded.
485 SCOPED_TRACE("after reloading the tab"); 486 SCOPED_TRACE("after reloading the tab");
486 CheckExtensionConsistency(first_extension_id_); 487 CheckExtensionConsistency(first_extension_id_);
487 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size()); 488 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size());
488 ASSERT_EQ(0U, CountBalloons()); 489 ASSERT_EQ(0U, CountBalloons());
489 } 490 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_browsertests_misc.cc ('k') | chrome/browser/extensions/extension_debugger_api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698