#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/browser_action_test_util.h"
+#include "chrome/browser/extensions/dev_mode_bubble_controller.h"
#include "chrome/browser/extensions/extension_action.h"
#include "chrome/browser/extensions/extension_action_icon_factory.h"
#include "chrome/browser/extensions/extension_action_manager.h"
#include "chrome/browser/extensions/extension_apitest.h"
#include "chrome/browser/extensions/extension_service.h"
-#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_tab_util.h"
#include "chrome/browser/extensions/extension_toolbar_model.h"
#include "chrome/browser/profiles/profile.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_test_utils.h"
+#include "extensions/browser/extension_system.h"
#include "grit/theme_resources.h"
#include "ui/base/resource/resource_bundle.h"
-#include "ui/gfx/rect.h"
-#include "ui/gfx/size.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/image/image_skia_operations.h"
+#include "ui/gfx/rect.h"
+#include "ui/gfx/size.h"
#include "ui/gfx/skia_util.h"
using content::WebContents;
// Views implementation of browser action button will return icon whose
// background will be set.
-gfx::ImageSkia AddBackgroundForViews(const gfx::ImageSkia& icon) {
+gfx::ImageSkia AddBackgroundForViews(const Extension* extension,
+ const gfx::ImageSkia& icon) {
#if defined(TOOLKIT_VIEWS)
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
gfx::ImageSkia bg = *rb.GetImageSkiaNamed(IDR_BROWSER_ACTION);
+ // We may have a different background than the default - see
+ // BrowserActionButton::UpdateState.
+ if (extensions::DevModeBubbleController::IsDevModeExtension(extension))
+ bg = *rb.GetImageSkiaNamed(IDR_BROWSER_ACTION_HIGHLIGHT);
return gfx::ImageSkiaOperations::CreateSuperimposedImage(bg, icon);
#endif
EXPECT_FALSE(action_icon.ToImageSkia()->HasRepresentation(2.0f));
EXPECT_TRUE(ImagesAreEqualAtScale(
- AddBackgroundForViews(*action_icon.ToImageSkia()),
+ AddBackgroundForViews(extension, *action_icon.ToImageSkia()),
*GetBrowserActionsBar().GetIcon(0).ToImageSkia(),
1.0f));
action_icon.ToImageSkia()->HasRepresentation(2.0f));
EXPECT_TRUE(ImagesAreEqualAtScale(
- AddBackgroundForViews(*action_icon.ToImageSkia()),
+ AddBackgroundForViews(extension, *action_icon.ToImageSkia()),
*GetBrowserActionsBar().GetIcon(0).ToImageSkia(),
1.0f));
EXPECT_TRUE(action_icon.ToImageSkia()->HasRepresentation(2.0f));
EXPECT_TRUE(ImagesAreEqualAtScale(
- AddBackgroundForViews(*action_icon.ToImageSkia()),
+ AddBackgroundForViews(extension, *action_icon.ToImageSkia()),
*GetBrowserActionsBar().GetIcon(0).ToImageSkia(),
1.0f));
EXPECT_TRUE(action_icon.ToImageSkia()->HasRepresentation(2.0f));
EXPECT_TRUE(ImagesAreEqualAtScale(
- AddBackgroundForViews(*action_icon.ToImageSkia()),
+ AddBackgroundForViews(extension, *action_icon.ToImageSkia()),
*GetBrowserActionsBar().GetIcon(0).ToImageSkia(),
1.0f));
EXPECT_FALSE(action_icon.ToImageSkia()->HasRepresentation(2.0f));
EXPECT_TRUE(ImagesAreEqualAtScale(
- AddBackgroundForViews(*action_icon.ToImageSkia()),
+ AddBackgroundForViews(extension, *action_icon.ToImageSkia()),
*GetBrowserActionsBar().GetIcon(0).ToImageSkia(),
1.0f));
EXPECT_FALSE(action_icon.ToImageSkia()->HasRepresentation(2.0f));
EXPECT_TRUE(ImagesAreEqualAtScale(
- AddBackgroundForViews(*action_icon.ToImageSkia()),
+ AddBackgroundForViews(extension, *action_icon.ToImageSkia()),
*GetBrowserActionsBar().GetIcon(0).ToImageSkia(),
1.0f));
*action_icon.ToSkBitmap(),
action_icon_skia->GetRepresentation(2.0f).sk_bitmap()));
- EXPECT_TRUE(ImagesAreEqualAtScale(
- AddBackgroundForViews(*action_icon_skia),
- *GetBrowserActionsBar().GetIcon(0).ToImageSkia(),
- 2.0f));
+ EXPECT_TRUE(
+ ImagesAreEqualAtScale(AddBackgroundForViews(extension, *action_icon_skia),
+ *GetBrowserActionsBar().GetIcon(0).ToImageSkia(),
+ 2.0f));
// Try setting icon with empty dictionary of ImageData objects.
GetBrowserActionsBar().Press(0);
// http://code.google.com/p/chromium/issues/detail?id=70829
// Mac used to be ok, but then mac 10.5 started failing too. =(
IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, DISABLED_BrowserActionPopup) {
- ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII(
- "browser_action/popup")));
- BrowserActionTestUtil actions_bar = GetBrowserActionsBar();
- const Extension* extension = GetSingleLoadedExtension();
+ const Extension* extension =
+ LoadExtension(test_data_dir_.AppendASCII("browser_action/popup"));
ASSERT_TRUE(extension) << message_;
+ BrowserActionTestUtil actions_bar = GetBrowserActionsBar();
// The extension's popup's size grows by |growFactor| each click.
const int growFactor = 500;
// Disabled because of failures (crashes) on ASAN bot.
// See http://crbug.com/98861.
IN_PROC_BROWSER_TEST_F(BrowserActionApiTest, DISABLED_CloseBackgroundPage) {
- ASSERT_TRUE(LoadExtension(test_data_dir_.AppendASCII(
- "browser_action/close_background")));
- const Extension* extension = GetSingleLoadedExtension();
+ const Extension* extension = LoadExtension(
+ test_data_dir_.AppendASCII("browser_action/close_background"));
+ ASSERT_TRUE(extension) << message_;
// There is a background page and a browser action with no badge text.
extensions::ProcessManager* manager =