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

Side by Side Diff: chrome/renderer/extensions/chrome_private_custom_bindings.cc

Issue 9386001: Implement a module system for the extension bindings JS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/extensions/chrome_private_custom_bindings.h" 5 #include "chrome/renderer/extensions/chrome_private_custom_bindings.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
11 #include "chrome/common/extensions/extension_action.h" 11 #include "chrome/common/extensions/extension_action.h"
12 #include "chrome/renderer/extensions/extension_dispatcher.h" 12 #include "chrome/renderer/extensions/extension_dispatcher.h"
13 #include "grit/renderer_resources.h" 13 #include "grit/renderer_resources.h"
14 #include "third_party/skia/include/core/SkBitmap.h" 14 #include "third_party/skia/include/core/SkBitmap.h"
15 #include "v8/include/v8.h" 15 #include "v8/include/v8.h"
16 #include "webkit/glue/webkit_glue.h" 16 #include "webkit/glue/webkit_glue.h"
17 17
18 namespace extensions { 18 namespace extensions {
19 19
20 ChromePrivateCustomBindings::ChromePrivateCustomBindings( 20 ChromePrivateCustomBindings::ChromePrivateCustomBindings(
21 int dependency_count,
22 const char** dependencies,
23 ExtensionDispatcher* extension_dispatcher) 21 ExtensionDispatcher* extension_dispatcher)
24 : ChromeV8Extension( 22 : ChromeV8Extension(extension_dispatcher) {
25 "extensions/chrome_private_custom_bindings.js", 23 RouteStaticFunction("DecodeJPEG", &DecodeJPEG);
26 IDR_CHROME_PRIVATE_CUSTOM_BINDINGS_JS, 24 }
27 dependency_count,
28 dependencies,
29 extension_dispatcher) {}
30 25
31 // static 26 // static
32 v8::Handle<v8::Value> ChromePrivateCustomBindings::DecodeJPEG( 27 v8::Handle<v8::Value> ChromePrivateCustomBindings::DecodeJPEG(
33 const v8::Arguments& args) { 28 const v8::Arguments& args) {
34 ChromePrivateCustomBindings* v8_extension = 29 ChromePrivateCustomBindings* v8_extension =
35 GetFromArguments<ChromePrivateCustomBindings>(args); 30 GetFromArguments<ChromePrivateCustomBindings>(args);
36 const ::Extension* extension = 31 const ::Extension* extension =
37 v8_extension->GetExtensionForCurrentRenderView(); 32 v8_extension->GetExtensionForCurrentRenderView();
38 if (!extension) 33 if (!extension)
39 return v8::Undefined(); 34 return v8::Undefined();
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 // Note(mnaganov): to speed this up, you may use backing store 75 // Note(mnaganov): to speed this up, you may use backing store
81 // technique from CreateExternalArray() of v8/src/d8.cc. 76 // technique from CreateExternalArray() of v8/src/d8.cc.
82 v8::Local<v8::Array> bitmap_array(v8::Array::New(width * height)); 77 v8::Local<v8::Array> bitmap_array(v8::Array::New(width * height));
83 for (int i = 0; i != width * height; ++i) { 78 for (int i = 0; i != width * height; ++i) {
84 bitmap_array->Set(v8::Integer::New(i), 79 bitmap_array->Set(v8::Integer::New(i),
85 v8::Integer::New(pixels[i] & 0xFFFFFF)); 80 v8::Integer::New(pixels[i] & 0xFFFFFF));
86 } 81 }
87 return bitmap_array; 82 return bitmap_array;
88 } 83 }
89 84
90 v8::Handle<v8::FunctionTemplate> ChromePrivateCustomBindings::GetNativeFunction(
91 v8::Handle<v8::String> name) {
92 if (name->Equals(v8::String::New("DecodeJPEG")))
93 return v8::FunctionTemplate::New(DecodeJPEG, v8::External::New(this));
94
95 return ChromeV8Extension::GetNativeFunction(name);
96 }
97
98 } // namespace extensions 85 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/renderer/extensions/chrome_private_custom_bindings.h ('k') | chrome/renderer/extensions/chrome_v8_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698