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

Unified Diff: chrome/renderer/extensions/set_icon_natives.cc

Issue 10855154: Update browserAction.setIcon and pageAction.setIcon for hidpi (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nits Created 8 years, 4 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/extensions/set_icon_natives.cc
diff --git a/chrome/renderer/extensions/set_icon_natives.cc b/chrome/renderer/extensions/set_icon_natives.cc
index e9df10bf05a0a62bc05ef89ecc9d08b8101f1f19..a645c03c217db9c80f2cbcf65e3f3f5f115c3934 100644
--- a/chrome/renderer/extensions/set_icon_natives.cc
+++ b/chrome/renderer/extensions/set_icon_natives.cc
@@ -9,6 +9,12 @@
#include "third_party/skia/include/core/SkBitmap.h"
#include "third_party/skia/include/core/SkColor.h"
+namespace {
+
+const char* kImageSizeKeys[] = { "19", "38" };
+
+} // namespace
+
namespace extensions {
SetIconNatives::SetIconNatives(Dispatcher* dispatcher,
@@ -20,12 +26,7 @@ SetIconNatives::SetIconNatives(Dispatcher* dispatcher,
}
bool SetIconNatives::ConvertImageDataToBitmapValue(
- const v8::Arguments& args, Value** bitmap_value) {
- v8::Local<v8::Object> extension_args = args[1]->ToObject();
- v8::Local<v8::Object> details =
- extension_args->Get(v8::String::New("0"))->ToObject();
- v8::Local<v8::Object> image_data =
- details->Get(v8::String::New("imageData"))->ToObject();
+ const v8::Local<v8::Object> image_data, Value** bitmap_value) {
v8::Local<v8::Object> data =
image_data->Get(v8::String::New("data"))->ToObject();
int width = image_data->Get(v8::String::New("width"))->Int32Value();
@@ -61,10 +62,32 @@ bool SetIconNatives::ConvertImageDataToBitmapValue(
return true;
}
+bool SetIconNatives::ConvertImageDataSetToBitmapValueSet(
+ const v8::Arguments& args, DictionaryValue** bitmap_set_value) {
+ v8::Local<v8::Object> extension_args = args[1]->ToObject();
+ v8::Local<v8::Object> details =
+ extension_args->Get(v8::String::New("0"))->ToObject();
+ v8::Local<v8::Object> image_data_set =
+ details->Get(v8::String::New("imageDataSet"))->ToObject();
+
+ *bitmap_set_value = new DictionaryValue();
Jeffrey Yasskin 2012/08/17 23:20:28 This will be a memory leak if the function returns
tbarzic 2012/08/21 00:22:07 Done.
+ for (size_t i = 0; i < arraysize(kImageSizeKeys); i++) {
+ if (!image_data_set->Has(v8::String::New(kImageSizeKeys[i])))
+ continue;
+ v8::Local<v8::Object> image_data =
+ image_data_set->Get(v8::String::New(kImageSizeKeys[i]))->ToObject();
+ Value* image_data_bitmap = NULL;
+ if (!ConvertImageDataToBitmapValue(image_data, &image_data_bitmap))
+ return false;
+ (*bitmap_set_value)->Set(kImageSizeKeys[i], image_data_bitmap);
+ }
+ return true;
+}
+
v8::Handle<v8::Value> SetIconNatives::SetIconCommon(
const v8::Arguments& args) {
- Value* bitmap_value = NULL;
- if (!ConvertImageDataToBitmapValue(args, &bitmap_value))
+ DictionaryValue* bitmap_set_value = NULL;
+ if (!ConvertImageDataSetToBitmapValueSet(args, &bitmap_set_value))
return v8::Undefined();
v8::Local<v8::Object> extension_args = args[1]->ToObject();
@@ -72,7 +95,7 @@ v8::Handle<v8::Value> SetIconNatives::SetIconCommon(
extension_args->Get(v8::String::New("0"))->ToObject();
DictionaryValue* dict = new DictionaryValue();
- dict->Set("imageData", bitmap_value);
+ dict->Set("imageDataSet", bitmap_set_value);
if (details->Has(v8::String::New("tabId"))) {
dict->SetInteger("tabId",

Powered by Google App Engine
This is Rietveld 408576698