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

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

Issue 5730004: Rename ExtensionsService to ExtensionService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix typo Created 10 years 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/extensions/crashed_extension_infobar.h" 6 #include "chrome/browser/extensions/crashed_extension_infobar.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/extensions_service.h" 10 #include "chrome/browser/extensions/extension_service.h"
11 #include "chrome/browser/profiles/profile.h" 11 #include "chrome/browser/profiles/profile.h"
12 #include "chrome/browser/renderer_host/render_process_host.h" 12 #include "chrome/browser/renderer_host/render_process_host.h"
13 #include "chrome/browser/renderer_host/render_view_host.h" 13 #include "chrome/browser/renderer_host/render_view_host.h"
14 #include "chrome/browser/tab_contents/infobar_delegate.h" 14 #include "chrome/browser/tab_contents/infobar_delegate.h"
15 #include "chrome/browser/tab_contents/tab_contents.h" 15 #include "chrome/browser/tab_contents/tab_contents.h"
16 #include "chrome/browser/ui/browser.h" 16 #include "chrome/browser/ui/browser.h"
17 #include "chrome/common/result_codes.h" 17 #include "chrome/common/result_codes.h"
18 #include "chrome/test/ui_test_utils.h" 18 #include "chrome/test/ui_test_utils.h"
19 19
20 class ExtensionCrashRecoveryTest : public ExtensionBrowserTest { 20 class ExtensionCrashRecoveryTest : public ExtensionBrowserTest {
21 protected: 21 protected:
22 ExtensionsService* GetExtensionsService() { 22 ExtensionService* GetExtensionService() {
23 return browser()->profile()->GetExtensionsService(); 23 return browser()->profile()->GetExtensionService();
24 } 24 }
25 25
26 ExtensionProcessManager* GetExtensionProcessManager() { 26 ExtensionProcessManager* GetExtensionProcessManager() {
27 return browser()->profile()->GetExtensionProcessManager(); 27 return browser()->profile()->GetExtensionProcessManager();
28 } 28 }
29 29
30 CrashedExtensionInfoBarDelegate* GetCrashedExtensionInfoBarDelegate( 30 CrashedExtensionInfoBarDelegate* GetCrashedExtensionInfoBarDelegate(
31 int index) { 31 int index) {
32 TabContents* current_tab = browser()->GetSelectedTabContents(); 32 TabContents* current_tab = browser()->GetSelectedTabContents();
33 EXPECT_LT(index, current_tab->infobar_delegate_count()); 33 EXPECT_LT(index, current_tab->infobar_delegate_count());
(...skipping 10 matching lines...) Expand all
44 } 44 }
45 45
46 void CancelCrashedExtensionInfobar(int index) { 46 void CancelCrashedExtensionInfobar(int index) {
47 CrashedExtensionInfoBarDelegate* infobar = 47 CrashedExtensionInfoBarDelegate* infobar =
48 GetCrashedExtensionInfoBarDelegate(index); 48 GetCrashedExtensionInfoBarDelegate(index);
49 ASSERT_TRUE(infobar); 49 ASSERT_TRUE(infobar);
50 infobar->Cancel(); 50 infobar->Cancel();
51 } 51 }
52 52
53 void CrashExtension(size_t index) { 53 void CrashExtension(size_t index) {
54 ASSERT_LT(index, GetExtensionsService()->extensions()->size()); 54 ASSERT_LT(index, GetExtensionService()->extensions()->size());
55 const Extension* extension = 55 const Extension* extension =
56 GetExtensionsService()->extensions()->at(index); 56 GetExtensionService()->extensions()->at(index);
57 ASSERT_TRUE(extension); 57 ASSERT_TRUE(extension);
58 std::string extension_id(extension->id()); 58 std::string extension_id(extension->id());
59 ExtensionHost* extension_host = 59 ExtensionHost* extension_host =
60 GetExtensionProcessManager()->GetBackgroundHostForExtension(extension); 60 GetExtensionProcessManager()->GetBackgroundHostForExtension(extension);
61 ASSERT_TRUE(extension_host); 61 ASSERT_TRUE(extension_host);
62 62
63 RenderProcessHost* extension_rph = 63 RenderProcessHost* extension_rph =
64 extension_host->render_view_host()->process(); 64 extension_host->render_view_host()->process();
65 base::KillProcess(extension_rph->GetHandle(), ResultCodes::KILLED, false); 65 base::KillProcess(extension_rph->GetHandle(), ResultCodes::KILLED, false);
66 ASSERT_TRUE(WaitForExtensionCrash(extension_id)); 66 ASSERT_TRUE(WaitForExtensionCrash(extension_id));
67 ASSERT_FALSE( 67 ASSERT_FALSE(
68 GetExtensionProcessManager()->GetBackgroundHostForExtension(extension)); 68 GetExtensionProcessManager()->GetBackgroundHostForExtension(extension));
69 } 69 }
70 70
71 void CheckExtensionConsistency(size_t index) { 71 void CheckExtensionConsistency(size_t index) {
72 ASSERT_LT(index, GetExtensionsService()->extensions()->size()); 72 ASSERT_LT(index, GetExtensionService()->extensions()->size());
73 const Extension* extension = 73 const Extension* extension =
74 GetExtensionsService()->extensions()->at(index); 74 GetExtensionService()->extensions()->at(index);
75 ASSERT_TRUE(extension); 75 ASSERT_TRUE(extension);
76 ExtensionHost* extension_host = 76 ExtensionHost* extension_host =
77 GetExtensionProcessManager()->GetBackgroundHostForExtension(extension); 77 GetExtensionProcessManager()->GetBackgroundHostForExtension(extension);
78 ASSERT_TRUE(extension_host); 78 ASSERT_TRUE(extension_host);
79 ASSERT_TRUE(GetExtensionProcessManager()->HasExtensionHost(extension_host)); 79 ASSERT_TRUE(GetExtensionProcessManager()->HasExtensionHost(extension_host));
80 ASSERT_TRUE(extension_host->IsRenderViewLive()); 80 ASSERT_TRUE(extension_host->IsRenderViewLive());
81 ASSERT_EQ(extension_host->render_view_host()->process(), 81 ASSERT_EQ(extension_host->render_view_host()->process(),
82 GetExtensionProcessManager()->GetExtensionProcess(extension->id())); 82 GetExtensionProcessManager()->GetExtensionProcess(extension->id()));
83 } 83 }
84 84
85 void LoadTestExtension() { 85 void LoadTestExtension() {
86 ExtensionBrowserTest::SetUpInProcessBrowserTestFixture(); 86 ExtensionBrowserTest::SetUpInProcessBrowserTestFixture();
87 const size_t size_before = GetExtensionsService()->extensions()->size(); 87 const size_t size_before = GetExtensionService()->extensions()->size();
88 ASSERT_TRUE(LoadExtension( 88 ASSERT_TRUE(LoadExtension(
89 test_data_dir_.AppendASCII("common").AppendASCII("background_page"))); 89 test_data_dir_.AppendASCII("common").AppendASCII("background_page")));
90 const Extension* extension = GetExtensionsService()->extensions()->back(); 90 const Extension* extension = GetExtensionService()->extensions()->back();
91 ASSERT_TRUE(extension); 91 ASSERT_TRUE(extension);
92 first_extension_id_ = extension->id(); 92 first_extension_id_ = extension->id();
93 CheckExtensionConsistency(size_before); 93 CheckExtensionConsistency(size_before);
94 } 94 }
95 95
96 void LoadSecondExtension() { 96 void LoadSecondExtension() {
97 int offset = GetExtensionsService()->extensions()->size(); 97 int offset = GetExtensionService()->extensions()->size();
98 ASSERT_TRUE(LoadExtension( 98 ASSERT_TRUE(LoadExtension(
99 test_data_dir_.AppendASCII("install").AppendASCII("install"))); 99 test_data_dir_.AppendASCII("install").AppendASCII("install")));
100 const Extension* extension = 100 const Extension* extension =
101 GetExtensionsService()->extensions()->at(offset); 101 GetExtensionService()->extensions()->at(offset);
102 ASSERT_TRUE(extension); 102 ASSERT_TRUE(extension);
103 second_extension_id_ = extension->id(); 103 second_extension_id_ = extension->id();
104 CheckExtensionConsistency(offset); 104 CheckExtensionConsistency(offset);
105 } 105 }
106 106
107 std::string first_extension_id_; 107 std::string first_extension_id_;
108 std::string second_extension_id_; 108 std::string second_extension_id_;
109 }; 109 };
110 110
111 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, Basic) { 111 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, Basic) {
112 const size_t size_before = GetExtensionsService()->extensions()->size(); 112 const size_t size_before = GetExtensionService()->extensions()->size();
113 LoadTestExtension(); 113 LoadTestExtension();
114 CrashExtension(size_before); 114 CrashExtension(size_before);
115 ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size()); 115 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
116 AcceptCrashedExtensionInfobar(0); 116 AcceptCrashedExtensionInfobar(0);
117 117
118 SCOPED_TRACE("after clicking the infobar"); 118 SCOPED_TRACE("after clicking the infobar");
119 CheckExtensionConsistency(size_before); 119 CheckExtensionConsistency(size_before);
120 } 120 }
121 121
122 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, CloseAndReload) { 122 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, CloseAndReload) {
123 const size_t size_before = GetExtensionsService()->extensions()->size(); 123 const size_t size_before = GetExtensionService()->extensions()->size();
124 LoadTestExtension(); 124 LoadTestExtension();
125 CrashExtension(size_before); 125 CrashExtension(size_before);
126 ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size()); 126 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
127 CancelCrashedExtensionInfobar(0); 127 CancelCrashedExtensionInfobar(0);
128 ReloadExtension(first_extension_id_); 128 ReloadExtension(first_extension_id_);
129 129
130 SCOPED_TRACE("after reloading"); 130 SCOPED_TRACE("after reloading");
131 CheckExtensionConsistency(size_before); 131 CheckExtensionConsistency(size_before);
132 } 132 }
133 133
134 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, ReloadIndependently) { 134 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, ReloadIndependently) {
135 const size_t size_before = GetExtensionsService()->extensions()->size(); 135 const size_t size_before = GetExtensionService()->extensions()->size();
136 LoadTestExtension(); 136 LoadTestExtension();
137 CrashExtension(size_before); 137 CrashExtension(size_before);
138 ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size()); 138 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
139 139
140 ReloadExtension(first_extension_id_); 140 ReloadExtension(first_extension_id_);
141 141
142 SCOPED_TRACE("after reloading"); 142 SCOPED_TRACE("after reloading");
143 CheckExtensionConsistency(size_before); 143 CheckExtensionConsistency(size_before);
144 144
145 TabContents* current_tab = browser()->GetSelectedTabContents(); 145 TabContents* current_tab = browser()->GetSelectedTabContents();
146 ASSERT_TRUE(current_tab); 146 ASSERT_TRUE(current_tab);
147 147
148 // The infobar should automatically hide after the extension is successfully 148 // The infobar should automatically hide after the extension is successfully
149 // reloaded. 149 // reloaded.
150 ASSERT_EQ(0, current_tab->infobar_delegate_count()); 150 ASSERT_EQ(0, current_tab->infobar_delegate_count());
151 } 151 }
152 152
153 // Make sure that when we don't do anything about the crashed extension 153 // Make sure that when we don't do anything about the crashed extension
154 // and close the browser, it doesn't crash. The browser is closed implicitly 154 // and close the browser, it doesn't crash. The browser is closed implicitly
155 // at the end of each browser test. 155 // at the end of each browser test.
156 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, ShutdownWhileCrashed) { 156 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, ShutdownWhileCrashed) {
157 const size_t size_before = GetExtensionsService()->extensions()->size(); 157 const size_t size_before = GetExtensionService()->extensions()->size();
158 LoadTestExtension(); 158 LoadTestExtension();
159 CrashExtension(size_before); 159 CrashExtension(size_before);
160 ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size()); 160 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
161 } 161 }
162 162
163 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, TwoExtensionsCrashFirst) { 163 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, TwoExtensionsCrashFirst) {
164 const size_t size_before = GetExtensionsService()->extensions()->size(); 164 const size_t size_before = GetExtensionService()->extensions()->size();
165 LoadTestExtension(); 165 LoadTestExtension();
166 LoadSecondExtension(); 166 LoadSecondExtension();
167 CrashExtension(size_before); 167 CrashExtension(size_before);
168 ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size()); 168 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size());
169 AcceptCrashedExtensionInfobar(0); 169 AcceptCrashedExtensionInfobar(0);
170 170
171 SCOPED_TRACE("after clicking the infobar"); 171 SCOPED_TRACE("after clicking the infobar");
172 CheckExtensionConsistency(size_before); 172 CheckExtensionConsistency(size_before);
173 CheckExtensionConsistency(size_before + 1); 173 CheckExtensionConsistency(size_before + 1);
174 } 174 }
175 175
176 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, TwoExtensionsCrashSecond) { 176 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, TwoExtensionsCrashSecond) {
177 const size_t size_before = GetExtensionsService()->extensions()->size(); 177 const size_t size_before = GetExtensionService()->extensions()->size();
178 LoadTestExtension(); 178 LoadTestExtension();
179 LoadSecondExtension(); 179 LoadSecondExtension();
180 CrashExtension(size_before + 1); 180 CrashExtension(size_before + 1);
181 ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size()); 181 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size());
182 AcceptCrashedExtensionInfobar(0); 182 AcceptCrashedExtensionInfobar(0);
183 183
184 SCOPED_TRACE("after clicking the infobar"); 184 SCOPED_TRACE("after clicking the infobar");
185 CheckExtensionConsistency(size_before); 185 CheckExtensionConsistency(size_before);
186 CheckExtensionConsistency(size_before + 1); 186 CheckExtensionConsistency(size_before + 1);
187 } 187 }
188 188
189 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, 189 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest,
190 TwoExtensionsCrashBothAtOnce) { 190 TwoExtensionsCrashBothAtOnce) {
191 const size_t size_before = GetExtensionsService()->extensions()->size(); 191 const size_t size_before = GetExtensionService()->extensions()->size();
192 LoadTestExtension(); 192 LoadTestExtension();
193 LoadSecondExtension(); 193 LoadSecondExtension();
194 CrashExtension(size_before); 194 CrashExtension(size_before);
195 ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size()); 195 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size());
196 CrashExtension(size_before); 196 CrashExtension(size_before);
197 ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size()); 197 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
198 198
199 { 199 {
200 SCOPED_TRACE("first infobar"); 200 SCOPED_TRACE("first infobar");
201 AcceptCrashedExtensionInfobar(0); 201 AcceptCrashedExtensionInfobar(0);
202 CheckExtensionConsistency(size_before); 202 CheckExtensionConsistency(size_before);
203 } 203 }
204 204
205 { 205 {
206 SCOPED_TRACE("second infobar"); 206 SCOPED_TRACE("second infobar");
207 AcceptCrashedExtensionInfobar(0); 207 AcceptCrashedExtensionInfobar(0);
208 CheckExtensionConsistency(size_before); 208 CheckExtensionConsistency(size_before);
209 CheckExtensionConsistency(size_before + 1); 209 CheckExtensionConsistency(size_before + 1);
210 } 210 }
211 } 211 }
212 212
213 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, TwoExtensionsOneByOne) { 213 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, TwoExtensionsOneByOne) {
214 const size_t size_before = GetExtensionsService()->extensions()->size(); 214 const size_t size_before = GetExtensionService()->extensions()->size();
215 LoadTestExtension(); 215 LoadTestExtension();
216 CrashExtension(size_before); 216 CrashExtension(size_before);
217 ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size()); 217 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
218 LoadSecondExtension(); 218 LoadSecondExtension();
219 CrashExtension(size_before); 219 CrashExtension(size_before);
220 ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size()); 220 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
221 221
222 { 222 {
223 SCOPED_TRACE("first infobar"); 223 SCOPED_TRACE("first infobar");
224 AcceptCrashedExtensionInfobar(0); 224 AcceptCrashedExtensionInfobar(0);
225 CheckExtensionConsistency(size_before); 225 CheckExtensionConsistency(size_before);
226 } 226 }
227 227
228 { 228 {
229 SCOPED_TRACE("second infobar"); 229 SCOPED_TRACE("second infobar");
230 AcceptCrashedExtensionInfobar(0); 230 AcceptCrashedExtensionInfobar(0);
231 CheckExtensionConsistency(size_before); 231 CheckExtensionConsistency(size_before);
232 CheckExtensionConsistency(size_before + 1); 232 CheckExtensionConsistency(size_before + 1);
233 } 233 }
234 } 234 }
235 235
236 // Make sure that when we don't do anything about the crashed extensions 236 // Make sure that when we don't do anything about the crashed extensions
237 // and close the browser, it doesn't crash. The browser is closed implicitly 237 // and close the browser, it doesn't crash. The browser is closed implicitly
238 // at the end of each browser test. 238 // at the end of each browser test.
239 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, 239 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest,
240 TwoExtensionsShutdownWhileCrashed) { 240 TwoExtensionsShutdownWhileCrashed) {
241 const size_t size_before = GetExtensionsService()->extensions()->size(); 241 const size_t size_before = GetExtensionService()->extensions()->size();
242 LoadTestExtension(); 242 LoadTestExtension();
243 CrashExtension(size_before); 243 CrashExtension(size_before);
244 ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size()); 244 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
245 LoadSecondExtension(); 245 LoadSecondExtension();
246 CrashExtension(size_before); 246 CrashExtension(size_before);
247 ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size()); 247 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
248 } 248 }
249 249
250 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, 250 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest,
251 TwoExtensionsIgnoreFirst) { 251 TwoExtensionsIgnoreFirst) {
252 const size_t size_before = GetExtensionsService()->extensions()->size(); 252 const size_t size_before = GetExtensionService()->extensions()->size();
253 LoadTestExtension(); 253 LoadTestExtension();
254 LoadSecondExtension(); 254 LoadSecondExtension();
255 CrashExtension(size_before); 255 CrashExtension(size_before);
256 ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size()); 256 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size());
257 CrashExtension(size_before); 257 CrashExtension(size_before);
258 ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size()); 258 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
259 259
260 CancelCrashedExtensionInfobar(0); 260 CancelCrashedExtensionInfobar(0);
261 AcceptCrashedExtensionInfobar(1); 261 AcceptCrashedExtensionInfobar(1);
262 262
263 SCOPED_TRACE("infobars done"); 263 SCOPED_TRACE("infobars done");
264 ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size()); 264 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size());
265 CheckExtensionConsistency(size_before); 265 CheckExtensionConsistency(size_before);
266 } 266 }
267 267
268 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest, 268 IN_PROC_BROWSER_TEST_F(ExtensionCrashRecoveryTest,
269 TwoExtensionsReloadIndependently) { 269 TwoExtensionsReloadIndependently) {
270 const size_t size_before = GetExtensionsService()->extensions()->size(); 270 const size_t size_before = GetExtensionService()->extensions()->size();
271 LoadTestExtension(); 271 LoadTestExtension();
272 LoadSecondExtension(); 272 LoadSecondExtension();
273 CrashExtension(size_before); 273 CrashExtension(size_before);
274 ASSERT_EQ(size_before + 1, GetExtensionsService()->extensions()->size()); 274 ASSERT_EQ(size_before + 1, GetExtensionService()->extensions()->size());
275 CrashExtension(size_before); 275 CrashExtension(size_before);
276 ASSERT_EQ(size_before, GetExtensionsService()->extensions()->size()); 276 ASSERT_EQ(size_before, GetExtensionService()->extensions()->size());
277 277
278 { 278 {
279 SCOPED_TRACE("first: reload"); 279 SCOPED_TRACE("first: reload");
280 TabContents* current_tab = browser()->GetSelectedTabContents(); 280 TabContents* current_tab = browser()->GetSelectedTabContents();
281 ASSERT_TRUE(current_tab); 281 ASSERT_TRUE(current_tab);
282 // At the beginning we should have one infobar displayed for each extension. 282 // At the beginning we should have one infobar displayed for each extension.
283 ASSERT_EQ(2, current_tab->infobar_delegate_count()); 283 ASSERT_EQ(2, current_tab->infobar_delegate_count());
284 ReloadExtension(first_extension_id_); 284 ReloadExtension(first_extension_id_);
285 // One of the infobars should hide after the extension is reloaded. 285 // One of the infobars should hide after the extension is reloaded.
286 ASSERT_EQ(1, current_tab->infobar_delegate_count()); 286 ASSERT_EQ(1, current_tab->infobar_delegate_count());
287 CheckExtensionConsistency(size_before); 287 CheckExtensionConsistency(size_before);
288 } 288 }
289 289
290 { 290 {
291 SCOPED_TRACE("second: infobar"); 291 SCOPED_TRACE("second: infobar");
292 AcceptCrashedExtensionInfobar(0); 292 AcceptCrashedExtensionInfobar(0);
293 CheckExtensionConsistency(size_before); 293 CheckExtensionConsistency(size_before);
294 CheckExtensionConsistency(size_before + 1); 294 CheckExtensionConsistency(size_before + 1);
295 } 295 }
296 } 296 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_context_menu_model.cc ('k') | chrome/browser/extensions/extension_data_deleter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698