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 3 // found in the LICENSE file. 4 5 #ifndef CHROME_RENDERER_EXTENSIONS_SET_ICON_NATIVES_H_ 6 #define CHROME_RENDERER_EXTENSIONS_SET_ICON_NATIVES_H_ 7 8 #include "chrome/renderer/extensions/chrome_v8_extension.h" 9 #include "chrome/renderer/extensions/dispatcher.h" 10 11 #include "v8/include/v8.h" 12 13 namespace base { 14 class Value; 15 } 16 17 namespace extensions { 18 class RequestSender; 19 20 // Functions exposed to extension JS to implement the setIcon extension API. 21 class SetIconNatives : public ChromeV8Extension { 22 public: 23 SetIconNatives(Dispatcher* dispatcher, 24 RequestSender* request_sender, 25 ChromeV8Context* context); 26 27 private: 28 bool ConvertImageDataToBitmapValue(const v8::Local<v8::Object> image_data, 29 Value** bitmap_value); 30 bool ConvertImageDataSetToBitmapValueSet( 31 const v8::FunctionCallbackInfo<v8::Value>& args, 32 base::DictionaryValue* bitmap_value); 33 void SetIconCommon(const v8::FunctionCallbackInfo<v8::Value>& args); 34 35 RequestSender* request_sender_; 36 37 DISALLOW_COPY_AND_ASSIGN(SetIconNatives); 38 }; 39 40 } // namespace extensions 41 42 #endif // CHROME_RENDERER_EXTENSIONS_SET_ICON_NATIVES_H_ 43