diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-10 01:14:23 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-10 01:14:23 +0000 |
commit | d1917365c072ea38e36e3bd728ab617d46c93cd3 (patch) | |
tree | 2921100b6d6953f49fb61fe998cfb25ceb08896b /chrome/browser/extensions/api/extension_action | |
parent | c7535d6e70afb011c81bb7fa4184d585c6634424 (diff) | |
download | chromium_src-d1917365c072ea38e36e3bd728ab617d46c93cd3.zip chromium_src-d1917365c072ea38e36e3bd728ab617d46c93cd3.tar.gz chromium_src-d1917365c072ea38e36e3bd728ab617d46c93cd3.tar.bz2 |
extensions: Fix crash on empty extension action icons
BUG=141386
Review URL: https://chromiumcodereview.appspot.com/10855090
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150962 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/api/extension_action')
-rw-r--r-- | chrome/browser/extensions/api/extension_action/extension_actions_api.cc | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/chrome/browser/extensions/api/extension_action/extension_actions_api.cc b/chrome/browser/extensions/api/extension_action/extension_actions_api.cc index 44ea5d4..7b4cd1f 100644 --- a/chrome/browser/extensions/api/extension_action/extension_actions_api.cc +++ b/chrome/browser/extensions/api/extension_action/extension_actions_api.cc @@ -104,8 +104,10 @@ void SetDefaultsFromValue(const base::DictionaryValue* dict, action->SetAppearance(kTabId, static_cast<ExtensionAction::Appearance>(int_value)); if (dict->GetString(kIconStorageKey, &str_value) && - StringToSkBitmap(str_value, &bitmap)) - action->SetIcon(kTabId, bitmap); + StringToSkBitmap(str_value, &bitmap)) { + CHECK(!bitmap.isNull()); + action->SetIcon(kTabId, gfx::Image(bitmap)); + } } // Store |action|'s default values in a DictionaryValue for use in storing to @@ -409,7 +411,8 @@ bool ExtensionActionSetIconFunction::RunExtensionAction() { PickleIterator iter(bitmap_pickle); SkBitmap bitmap; EXTENSION_FUNCTION_VALIDATE(IPC::ReadParam(&bitmap_pickle, &iter, &bitmap)); - extension_action_->SetIcon(tab_id_, bitmap); + CHECK(!bitmap.isNull()); + extension_action_->SetIcon(tab_id_, gfx::Image(bitmap)); } else if (details_->GetInteger("iconIndex", &icon_index)) { // If --enable-script-badges is on there might legitimately be an iconIndex // set. Until we decide what to do with that, ignore. @@ -421,7 +424,7 @@ bool ExtensionActionSetIconFunction::RunExtensionAction() { error_ = kIconIndexOutOfBounds; return false; } - extension_action_->SetIcon(tab_id_, SkBitmap()); + extension_action_->SetIcon(tab_id_, gfx::Image()); extension_action_->SetIconIndex(tab_id_, icon_index); } else { EXTENSION_FUNCTION_VALIDATE(false); |