| OLD | NEW |
| 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 "build/build_config.h" | 5 #include "build/build_config.h" |
| 6 | 6 |
| 7 #if defined(TOOLKIT_GTK) | 7 #if defined(TOOLKIT_GTK) |
| 8 #include <gtk/gtk.h> | 8 #include <gtk/gtk.h> |
| 9 #endif | 9 #endif |
| 10 | 10 |
| 11 #include "chrome/browser/chrome_notification_types.h" | 11 #include "chrome/browser/chrome_notification_types.h" |
| 12 #include "chrome/browser/extensions/browser_action_test_util.h" | 12 #include "chrome/browser/extensions/browser_action_test_util.h" |
| 13 #include "chrome/browser/extensions/dev_mode_bubble_controller.h" |
| 13 #include "chrome/browser/extensions/extension_action.h" | 14 #include "chrome/browser/extensions/extension_action.h" |
| 14 #include "chrome/browser/extensions/extension_action_icon_factory.h" | 15 #include "chrome/browser/extensions/extension_action_icon_factory.h" |
| 15 #include "chrome/browser/extensions/extension_action_manager.h" | 16 #include "chrome/browser/extensions/extension_action_manager.h" |
| 16 #include "chrome/browser/extensions/extension_apitest.h" | 17 #include "chrome/browser/extensions/extension_apitest.h" |
| 17 #include "chrome/browser/extensions/extension_service.h" | 18 #include "chrome/browser/extensions/extension_service.h" |
| 18 #include "chrome/browser/extensions/extension_tab_util.h" | 19 #include "chrome/browser/extensions/extension_tab_util.h" |
| 19 #include "chrome/browser/extensions/extension_toolbar_model.h" | 20 #include "chrome/browser/extensions/extension_toolbar_model.h" |
| 20 #include "chrome/browser/profiles/profile.h" | 21 #include "chrome/browser/profiles/profile.h" |
| 21 #include "chrome/browser/ui/browser.h" | 22 #include "chrome/browser/ui/browser.h" |
| 22 #include "chrome/browser/ui/browser_commands.h" | 23 #include "chrome/browser/ui/browser_commands.h" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 41 namespace extensions { | 42 namespace extensions { |
| 42 namespace { | 43 namespace { |
| 43 | 44 |
| 44 const char kEmptyImageDataError[] = | 45 const char kEmptyImageDataError[] = |
| 45 "The imageData property must contain an ImageData object or dictionary " | 46 "The imageData property must contain an ImageData object or dictionary " |
| 46 "of ImageData objects."; | 47 "of ImageData objects."; |
| 47 const char kEmptyPathError[] = "The path property must not be empty."; | 48 const char kEmptyPathError[] = "The path property must not be empty."; |
| 48 | 49 |
| 49 // Views implementation of browser action button will return icon whose | 50 // Views implementation of browser action button will return icon whose |
| 50 // background will be set. | 51 // background will be set. |
| 51 gfx::ImageSkia AddBackgroundForViews(const gfx::ImageSkia& icon) { | 52 gfx::ImageSkia AddBackgroundForViews(const Extension* extension, |
| 53 const gfx::ImageSkia& icon) { |
| 52 #if defined(TOOLKIT_VIEWS) | 54 #if defined(TOOLKIT_VIEWS) |
| 53 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 55 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
| 54 gfx::ImageSkia bg = *rb.GetImageSkiaNamed(IDR_BROWSER_ACTION); | 56 gfx::ImageSkia bg = *rb.GetImageSkiaNamed(IDR_BROWSER_ACTION); |
| 57 // We may have a different background than the default - see |
| 58 // BrowserActionButton::UpdateState. |
| 59 if (extensions::DevModeBubbleController::IsDevModeExtension(extension)) |
| 60 bg = *rb.GetImageSkiaNamed(IDR_BROWSER_ACTION_HIGHLIGHT); |
| 55 return gfx::ImageSkiaOperations::CreateSuperimposedImage(bg, icon); | 61 return gfx::ImageSkiaOperations::CreateSuperimposedImage(bg, icon); |
| 56 #endif | 62 #endif |
| 57 | 63 |
| 58 return icon; | 64 return icon; |
| 59 } | 65 } |
| 60 | 66 |
| 61 bool ImagesAreEqualAtScale(const gfx::ImageSkia& i1, | 67 bool ImagesAreEqualAtScale(const gfx::ImageSkia& i1, |
| 62 const gfx::ImageSkia& i2, | 68 const gfx::ImageSkia& i2, |
| 63 float scale) { | 69 float scale) { |
| 64 SkBitmap bitmap1 = i1.GetRepresentation(scale).sk_bitmap(); | 70 SkBitmap bitmap1 = i1.GetRepresentation(scale).sk_bitmap(); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 | 174 |
| 169 action_icon = icon_factory.GetIcon(0); | 175 action_icon = icon_factory.GetIcon(0); |
| 170 | 176 |
| 171 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); | 177 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); |
| 172 EXPECT_GT(action_icon_current_id, action_icon_last_id); | 178 EXPECT_GT(action_icon_current_id, action_icon_last_id); |
| 173 action_icon_last_id = action_icon_current_id; | 179 action_icon_last_id = action_icon_current_id; |
| 174 | 180 |
| 175 EXPECT_FALSE(action_icon.ToImageSkia()->HasRepresentation(2.0f)); | 181 EXPECT_FALSE(action_icon.ToImageSkia()->HasRepresentation(2.0f)); |
| 176 | 182 |
| 177 EXPECT_TRUE(ImagesAreEqualAtScale( | 183 EXPECT_TRUE(ImagesAreEqualAtScale( |
| 178 AddBackgroundForViews(*action_icon.ToImageSkia()), | 184 AddBackgroundForViews(extension, *action_icon.ToImageSkia()), |
| 179 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), | 185 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), |
| 180 1.0f)); | 186 1.0f)); |
| 181 | 187 |
| 182 // Tell the extension to update the icon using path. | 188 // Tell the extension to update the icon using path. |
| 183 GetBrowserActionsBar().Press(0); | 189 GetBrowserActionsBar().Press(0); |
| 184 ASSERT_TRUE(catcher.GetNextResult()); | 190 ASSERT_TRUE(catcher.GetNextResult()); |
| 185 | 191 |
| 186 action_icon = icon_factory.GetIcon(0); | 192 action_icon = icon_factory.GetIcon(0); |
| 187 | 193 |
| 188 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); | 194 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); |
| 189 EXPECT_GT(action_icon_current_id, action_icon_last_id); | 195 EXPECT_GT(action_icon_current_id, action_icon_last_id); |
| 190 action_icon_last_id = action_icon_current_id; | 196 action_icon_last_id = action_icon_current_id; |
| 191 | 197 |
| 192 EXPECT_FALSE( | 198 EXPECT_FALSE( |
| 193 action_icon.ToImageSkia()->HasRepresentation(2.0f)); | 199 action_icon.ToImageSkia()->HasRepresentation(2.0f)); |
| 194 | 200 |
| 195 EXPECT_TRUE(ImagesAreEqualAtScale( | 201 EXPECT_TRUE(ImagesAreEqualAtScale( |
| 196 AddBackgroundForViews(*action_icon.ToImageSkia()), | 202 AddBackgroundForViews(extension, *action_icon.ToImageSkia()), |
| 197 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), | 203 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), |
| 198 1.0f)); | 204 1.0f)); |
| 199 | 205 |
| 200 // Tell the extension to update the icon using dictionary of ImageData | 206 // Tell the extension to update the icon using dictionary of ImageData |
| 201 // objects. | 207 // objects. |
| 202 GetBrowserActionsBar().Press(0); | 208 GetBrowserActionsBar().Press(0); |
| 203 ASSERT_TRUE(catcher.GetNextResult()); | 209 ASSERT_TRUE(catcher.GetNextResult()); |
| 204 | 210 |
| 205 action_icon = icon_factory.GetIcon(0); | 211 action_icon = icon_factory.GetIcon(0); |
| 206 | 212 |
| 207 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); | 213 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); |
| 208 EXPECT_GT(action_icon_current_id, action_icon_last_id); | 214 EXPECT_GT(action_icon_current_id, action_icon_last_id); |
| 209 action_icon_last_id = action_icon_current_id; | 215 action_icon_last_id = action_icon_current_id; |
| 210 | 216 |
| 211 EXPECT_TRUE(action_icon.ToImageSkia()->HasRepresentation(2.0f)); | 217 EXPECT_TRUE(action_icon.ToImageSkia()->HasRepresentation(2.0f)); |
| 212 | 218 |
| 213 EXPECT_TRUE(ImagesAreEqualAtScale( | 219 EXPECT_TRUE(ImagesAreEqualAtScale( |
| 214 AddBackgroundForViews(*action_icon.ToImageSkia()), | 220 AddBackgroundForViews(extension, *action_icon.ToImageSkia()), |
| 215 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), | 221 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), |
| 216 1.0f)); | 222 1.0f)); |
| 217 | 223 |
| 218 // Tell the extension to update the icon using dictionary of paths. | 224 // Tell the extension to update the icon using dictionary of paths. |
| 219 GetBrowserActionsBar().Press(0); | 225 GetBrowserActionsBar().Press(0); |
| 220 ASSERT_TRUE(catcher.GetNextResult()); | 226 ASSERT_TRUE(catcher.GetNextResult()); |
| 221 | 227 |
| 222 action_icon = icon_factory.GetIcon(0); | 228 action_icon = icon_factory.GetIcon(0); |
| 223 | 229 |
| 224 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); | 230 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); |
| 225 EXPECT_GT(action_icon_current_id, action_icon_last_id); | 231 EXPECT_GT(action_icon_current_id, action_icon_last_id); |
| 226 action_icon_last_id = action_icon_current_id; | 232 action_icon_last_id = action_icon_current_id; |
| 227 | 233 |
| 228 EXPECT_TRUE(action_icon.ToImageSkia()->HasRepresentation(2.0f)); | 234 EXPECT_TRUE(action_icon.ToImageSkia()->HasRepresentation(2.0f)); |
| 229 | 235 |
| 230 EXPECT_TRUE(ImagesAreEqualAtScale( | 236 EXPECT_TRUE(ImagesAreEqualAtScale( |
| 231 AddBackgroundForViews(*action_icon.ToImageSkia()), | 237 AddBackgroundForViews(extension, *action_icon.ToImageSkia()), |
| 232 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), | 238 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), |
| 233 1.0f)); | 239 1.0f)); |
| 234 | 240 |
| 235 // Tell the extension to update the icon using dictionary of ImageData | 241 // Tell the extension to update the icon using dictionary of ImageData |
| 236 // objects, but setting only size 19. | 242 // objects, but setting only size 19. |
| 237 GetBrowserActionsBar().Press(0); | 243 GetBrowserActionsBar().Press(0); |
| 238 ASSERT_TRUE(catcher.GetNextResult()); | 244 ASSERT_TRUE(catcher.GetNextResult()); |
| 239 | 245 |
| 240 action_icon = icon_factory.GetIcon(0); | 246 action_icon = icon_factory.GetIcon(0); |
| 241 | 247 |
| 242 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); | 248 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); |
| 243 EXPECT_GT(action_icon_current_id, action_icon_last_id); | 249 EXPECT_GT(action_icon_current_id, action_icon_last_id); |
| 244 action_icon_last_id = action_icon_current_id; | 250 action_icon_last_id = action_icon_current_id; |
| 245 | 251 |
| 246 EXPECT_FALSE(action_icon.ToImageSkia()->HasRepresentation(2.0f)); | 252 EXPECT_FALSE(action_icon.ToImageSkia()->HasRepresentation(2.0f)); |
| 247 | 253 |
| 248 EXPECT_TRUE(ImagesAreEqualAtScale( | 254 EXPECT_TRUE(ImagesAreEqualAtScale( |
| 249 AddBackgroundForViews(*action_icon.ToImageSkia()), | 255 AddBackgroundForViews(extension, *action_icon.ToImageSkia()), |
| 250 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), | 256 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), |
| 251 1.0f)); | 257 1.0f)); |
| 252 | 258 |
| 253 // Tell the extension to update the icon using dictionary of paths, but | 259 // Tell the extension to update the icon using dictionary of paths, but |
| 254 // setting only size 19. | 260 // setting only size 19. |
| 255 GetBrowserActionsBar().Press(0); | 261 GetBrowserActionsBar().Press(0); |
| 256 ASSERT_TRUE(catcher.GetNextResult()); | 262 ASSERT_TRUE(catcher.GetNextResult()); |
| 257 | 263 |
| 258 action_icon = icon_factory.GetIcon(0); | 264 action_icon = icon_factory.GetIcon(0); |
| 259 | 265 |
| 260 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); | 266 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); |
| 261 EXPECT_GT(action_icon_current_id, action_icon_last_id); | 267 EXPECT_GT(action_icon_current_id, action_icon_last_id); |
| 262 action_icon_last_id = action_icon_current_id; | 268 action_icon_last_id = action_icon_current_id; |
| 263 | 269 |
| 264 EXPECT_FALSE(action_icon.ToImageSkia()->HasRepresentation(2.0f)); | 270 EXPECT_FALSE(action_icon.ToImageSkia()->HasRepresentation(2.0f)); |
| 265 | 271 |
| 266 EXPECT_TRUE(ImagesAreEqualAtScale( | 272 EXPECT_TRUE(ImagesAreEqualAtScale( |
| 267 AddBackgroundForViews(*action_icon.ToImageSkia()), | 273 AddBackgroundForViews(extension, *action_icon.ToImageSkia()), |
| 268 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), | 274 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), |
| 269 1.0f)); | 275 1.0f)); |
| 270 | 276 |
| 271 // Tell the extension to update the icon using dictionary of ImageData | 277 // Tell the extension to update the icon using dictionary of ImageData |
| 272 // objects, but setting only size 38. | 278 // objects, but setting only size 38. |
| 273 GetBrowserActionsBar().Press(0); | 279 GetBrowserActionsBar().Press(0); |
| 274 ASSERT_TRUE(catcher.GetNextResult()); | 280 ASSERT_TRUE(catcher.GetNextResult()); |
| 275 | 281 |
| 276 action_icon = icon_factory.GetIcon(0); | 282 action_icon = icon_factory.GetIcon(0); |
| 277 | 283 |
| 278 const gfx::ImageSkia* action_icon_skia = action_icon.ToImageSkia(); | 284 const gfx::ImageSkia* action_icon_skia = action_icon.ToImageSkia(); |
| 279 | 285 |
| 280 EXPECT_FALSE(action_icon_skia->HasRepresentation(1.0f)); | 286 EXPECT_FALSE(action_icon_skia->HasRepresentation(1.0f)); |
| 281 EXPECT_TRUE(action_icon_skia->HasRepresentation(2.0f)); | 287 EXPECT_TRUE(action_icon_skia->HasRepresentation(2.0f)); |
| 282 | 288 |
| 283 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); | 289 action_icon_current_id = action_icon.ToSkBitmap()->getGenerationID(); |
| 284 EXPECT_GT(action_icon_current_id, action_icon_last_id); | 290 EXPECT_GT(action_icon_current_id, action_icon_last_id); |
| 285 action_icon_last_id = action_icon_current_id; | 291 action_icon_last_id = action_icon_current_id; |
| 286 | 292 |
| 287 EXPECT_TRUE(gfx::BitmapsAreEqual( | 293 EXPECT_TRUE(gfx::BitmapsAreEqual( |
| 288 *action_icon.ToSkBitmap(), | 294 *action_icon.ToSkBitmap(), |
| 289 action_icon_skia->GetRepresentation(2.0f).sk_bitmap())); | 295 action_icon_skia->GetRepresentation(2.0f).sk_bitmap())); |
| 290 | 296 |
| 291 EXPECT_TRUE(ImagesAreEqualAtScale( | 297 EXPECT_TRUE( |
| 292 AddBackgroundForViews(*action_icon_skia), | 298 ImagesAreEqualAtScale(AddBackgroundForViews(extension, *action_icon_skia), |
| 293 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), | 299 *GetBrowserActionsBar().GetIcon(0).ToImageSkia(), |
| 294 2.0f)); | 300 2.0f)); |
| 295 | 301 |
| 296 // Try setting icon with empty dictionary of ImageData objects. | 302 // Try setting icon with empty dictionary of ImageData objects. |
| 297 GetBrowserActionsBar().Press(0); | 303 GetBrowserActionsBar().Press(0); |
| 298 ASSERT_FALSE(catcher.GetNextResult()); | 304 ASSERT_FALSE(catcher.GetNextResult()); |
| 299 EXPECT_EQ(kEmptyImageDataError, catcher.message()); | 305 EXPECT_EQ(kEmptyImageDataError, catcher.message()); |
| 300 | 306 |
| 301 // Try setting icon with empty dictionary of path objects. | 307 // Try setting icon with empty dictionary of path objects. |
| 302 GetBrowserActionsBar().Press(0); | 308 GetBrowserActionsBar().Press(0); |
| 303 ASSERT_FALSE(catcher.GetNextResult()); | 309 ASSERT_FALSE(catcher.GetNextResult()); |
| 304 EXPECT_EQ(kEmptyPathError, catcher.message()); | 310 EXPECT_EQ(kEmptyPathError, catcher.message()); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 331 EXPECT_EQ("Showing icon 2", GetBrowserActionsBar().GetTooltip(0)); | 337 EXPECT_EQ("Showing icon 2", GetBrowserActionsBar().GetTooltip(0)); |
| 332 | 338 |
| 333 // Reload that tab, default title should come back. | 339 // Reload that tab, default title should come back. |
| 334 ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); | 340 ui_test_utils::NavigateToURL(browser(), GURL("about:blank")); |
| 335 EXPECT_EQ("hi!", GetBrowserActionsBar().GetTooltip(0)); | 341 EXPECT_EQ("hi!", GetBrowserActionsBar().GetTooltip(0)); |
| 336 } | 342 } |
| 337 | 343 |
| 338 // http://code.google.com/p/chromium/issues/detail?id=70829 | 344 // http://code.google.com/p/chromium/issues/detail?id=70829 |
| 339 // Mac used to be ok, but then mac 10.5 started failing too. =( | 345 // Mac used to be ok, but then mac 10.5 started failing too. =( |
| 340 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, DISABLED_BrowserActionPopup) { | 346 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, DISABLED_BrowserActionPopup) { |
| 341 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( | 347 const Extension* extension = |
| 342 "browser_action/popup"))); | 348 LoadExtension(test_data_dir_.AppendASCII("browser_action/popup")); |
| 349 ASSERT_TRUE(extension) << message_; |
| 343 BrowserActionTestUtil actions_bar = GetBrowserActionsBar(); | 350 BrowserActionTestUtil actions_bar = GetBrowserActionsBar(); |
| 344 const Extension* extension = GetSingleLoadedExtension(); | |
| 345 ASSERT_TRUE(extension) << message_; | |
| 346 | 351 |
| 347 // The extension's popup's size grows by |growFactor| each click. | 352 // The extension's popup's size grows by |growFactor| each click. |
| 348 const int growFactor = 500; | 353 const int growFactor = 500; |
| 349 gfx::Size minSize = BrowserActionTestUtil::GetMinPopupSize(); | 354 gfx::Size minSize = BrowserActionTestUtil::GetMinPopupSize(); |
| 350 gfx::Size middleSize = gfx::Size(growFactor, growFactor); | 355 gfx::Size middleSize = gfx::Size(growFactor, growFactor); |
| 351 gfx::Size maxSize = BrowserActionTestUtil::GetMaxPopupSize(); | 356 gfx::Size maxSize = BrowserActionTestUtil::GetMaxPopupSize(); |
| 352 | 357 |
| 353 // Ensure that two clicks will exceed the maximum allowed size. | 358 // Ensure that two clicks will exceed the maximum allowed size. |
| 354 ASSERT_GT(minSize.height() + growFactor * 2, maxSize.height()); | 359 ASSERT_GT(minSize.height() + growFactor * 2, maxSize.height()); |
| 355 ASSERT_GT(minSize.width() + growFactor * 2, maxSize.width()); | 360 ASSERT_GT(minSize.width() + growFactor * 2, maxSize.width()); |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 600 | 605 |
| 601 // A click in the incognito profile should open a tab in the | 606 // A click in the incognito profile should open a tab in the |
| 602 // incognito profile. | 607 // incognito profile. |
| 603 toolbar_model->ExecuteBrowserAction(extension, incognito_browser, NULL, true); | 608 toolbar_model->ExecuteBrowserAction(extension, incognito_browser, NULL, true); |
| 604 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); | 609 ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
| 605 } | 610 } |
| 606 | 611 |
| 607 // Disabled because of failures (crashes) on ASAN bot. | 612 // Disabled because of failures (crashes) on ASAN bot. |
| 608 // See http://crbug.com/98861. | 613 // See http://crbug.com/98861. |
| 609 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, DISABLED_CloseBackgroundPage) { | 614 IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, DISABLED_CloseBackgroundPage) { |
| 610 ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII( | 615 const Extension* extension = LoadExtension( |
| 611 "browser_action/close_background"))); | 616 test_data_dir_.AppendASCII("browser_action/close_background")); |
| 612 const Extension* extension = GetSingleLoadedExtension(); | 617 ASSERT_TRUE(extension) << message_; |
| 613 | 618 |
| 614 // There is a background page and a browser action with no badge text. | 619 // There is a background page and a browser action with no badge text. |
| 615 extensions::ProcessManager* manager = | 620 extensions::ProcessManager* manager = |
| 616 extensions::ExtensionSystem::Get(browser()->profile())->process_manager(); | 621 extensions::ExtensionSystem::Get(browser()->profile())->process_manager(); |
| 617 ASSERT_TRUE(manager->GetBackgroundHostForExtension(extension->id())); | 622 ASSERT_TRUE(manager->GetBackgroundHostForExtension(extension->id())); |
| 618 ExtensionAction* action = GetBrowserAction(*extension); | 623 ExtensionAction* action = GetBrowserAction(*extension); |
| 619 ASSERT_EQ("", action->GetBadgeText(ExtensionAction::kDefaultTabId)); | 624 ASSERT_EQ("", action->GetBadgeText(ExtensionAction::kDefaultTabId)); |
| 620 | 625 |
| 621 content::WindowedNotificationObserver host_destroyed_observer( | 626 content::WindowedNotificationObserver host_destroyed_observer( |
| 622 chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED, | 627 chrome::NOTIFICATION_EXTENSION_HOST_DESTROYED, |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 723 "backgroundColor);"; | 728 "backgroundColor);"; |
| 724 std::string result; | 729 std::string result; |
| 725 const std::string frame_xpath; | 730 const std::string frame_xpath; |
| 726 EXPECT_TRUE(content::ExecuteScriptInFrameAndExtractString( | 731 EXPECT_TRUE(content::ExecuteScriptInFrameAndExtractString( |
| 727 tab, frame_xpath, script, &result)); | 732 tab, frame_xpath, script, &result)); |
| 728 EXPECT_EQ(result, "red"); | 733 EXPECT_EQ(result, "red"); |
| 729 } | 734 } |
| 730 | 735 |
| 731 } // namespace | 736 } // namespace |
| 732 } // namespace extensions | 737 } // namespace extensions |
| OLD | NEW |