Index: chrome/renderer/extensions/miscellaneous_bindings.cc |
diff --git a/chrome/renderer/extensions/miscellaneous_bindings.cc b/chrome/renderer/extensions/miscellaneous_bindings.cc |
index e11860804a4f5b25e35899678d939a8e68d62a62..61ad958a9e60a7305e816bb5a1d517c47d26dfef 100644 |
--- a/chrome/renderer/extensions/miscellaneous_bindings.cc |
+++ b/chrome/renderer/extensions/miscellaneous_bindings.cc |
@@ -74,22 +74,14 @@ class ExtensionImpl : public ChromeV8Extension { |
} |
~ExtensionImpl() {} |
- virtual v8::Handle<v8::FunctionTemplate> GetNativeFunction( |
- v8::Handle<v8::String> name) { |
- if (name->Equals(v8::String::New("OpenChannelToExtension"))) { |
- return v8::FunctionTemplate::New(OpenChannelToExtension); |
- } else if (name->Equals(v8::String::New("PostMessage"))) { |
- return v8::FunctionTemplate::New(PostMessage); |
- } else if (name->Equals(v8::String::New("CloseChannel"))) { |
- return v8::FunctionTemplate::New(CloseChannel); |
- } else if (name->Equals(v8::String::New("PortAddRef"))) { |
- return v8::FunctionTemplate::New(PortAddRef); |
- } else if (name->Equals(v8::String::New("PortRelease"))) { |
- return v8::FunctionTemplate::New(PortRelease); |
- } else if (name->Equals(v8::String::New("GetL10nMessage"))) { |
- return v8::FunctionTemplate::New(GetL10nMessage); |
- } |
- return ChromeV8Extension::GetNativeFunction(name); |
+ void SetNativeFunctions(v8::Handle<v8::Object> object) { |
+ RouteFunctionToStatic("OpenChannelToExtension", OpenChannelToExtension, |
+ object); |
+ RouteFunctionToStatic("PostMessage", PostMessage, object); |
+ RouteFunctionToStatic("CloseChannel", CloseChannel, object); |
+ RouteFunctionToStatic("PortAddRef", PortAddRef, object); |
+ RouteFunctionToStatic("PortRelease", PortRelease, object); |
+ RouteFunctionToStatic("GetL10nMessage", GetL10nMessage, object); |
} |
// Creates a new messaging channel to the given extension. |
@@ -252,9 +244,8 @@ class ExtensionImpl : public ChromeV8Extension { |
namespace extensions { |
-v8::Extension* MiscellaneousBindings::Get(ExtensionDispatcher* dispatcher) { |
- static v8::Extension* extension = new ExtensionImpl(dispatcher); |
- return extension; |
+ChromeV8Extension* MiscellaneousBindings::Get(ExtensionDispatcher* dispatcher) { |
+ return new ExtensionImpl(dispatcher); |
} |
void MiscellaneousBindings::DeliverMessage( |