Home | History | Annotate | Download | only in extensions
      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