Chromium Code Reviews| Index: chrome/browser/extensions/api/extension_action/extension_action_api.cc |
| diff --git a/chrome/browser/extensions/api/extension_action/extension_action_api.cc b/chrome/browser/extensions/api/extension_action/extension_action_api.cc |
| index 8b2ed3f19c55e1e2622b52552a3910a376a0d394..73ef15630e45ce105811da543ba0a08294d286dc 100644 |
| --- a/chrome/browser/extensions/api/extension_action/extension_action_api.cc |
| +++ b/chrome/browser/extensions/api/extension_action/extension_action_api.cc |
| @@ -671,14 +671,17 @@ bool ExtensionActionSetIconFunction::RunExtensionAction() { |
| // setIcon can take a variant argument: either a dictionary of canvas |
| // ImageData, or an icon index. |
| base::DictionaryValue* canvas_set = NULL; |
| - int icon_index; |
| if (details_->GetDictionary("imageData", &canvas_set)) { |
| gfx::ImageSkia icon; |
| // Extract icon representations from the ImageDataSet dictionary. |
| for (size_t i = 0; i < arraysize(kIconSizes); i++) { |
| - base::BinaryValue* binary; |
| - if (canvas_set->GetBinary(kIconSizes[i].size_string, &binary)) { |
| - IPC::Message pickle(binary->GetBuffer(), binary->GetSize()); |
| + std::string binary_string64; |
| + if (canvas_set->GetString(kIconSizes[i].size_string, &binary_string64)) { |
| + std::string binary_data; |
| + if (!base::Base64Decode(binary_string64, &binary_data)) |
| + return false; |
| + |
| + IPC::Message pickle(binary_data.c_str(), binary_data.length()); |
|
not at google - send to devlin
2014/08/19 00:04:43
You should only need to do this Binary -> std::str
gpdavis
2014/08/19 00:54:15
You don't think we should keep it this way so it w
not at google - send to devlin
2014/08/19 17:32:29
There are 2 things here:
(1) The serialization for
|
| PickleIterator iter(pickle); |
| SkBitmap bitmap; |
| EXTENSION_FUNCTION_VALIDATE(IPC::ReadParam(&pickle, &iter, &bitmap)); |
| @@ -689,7 +692,7 @@ bool ExtensionActionSetIconFunction::RunExtensionAction() { |
| } |
| extension_action_->SetIcon(tab_id_, gfx::Image(icon)); |
| - } else if (details_->GetInteger("iconIndex", &icon_index)) { |
| + } else if (details_->HasKey("iconIndex")) { |
| // Obsolete argument: ignore it. |
| return true; |
| } else { |