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

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

Issue 9386001: Implement a module system for the extension bindings JS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 10 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/chrome_v8_context.cc
diff --git a/chrome/renderer/extensions/chrome_v8_context.cc b/chrome/renderer/extensions/chrome_v8_context.cc
index 98b0c077573cf934e0882ad1b7638516bdab2707..4fa7863a3f2d07eed671bee893bdc42352305366 100644
--- a/chrome/renderer/extensions/chrome_v8_context.cc
+++ b/chrome/renderer/extensions/chrome_v8_context.cc
@@ -5,6 +5,7 @@
#include "chrome/renderer/extensions/chrome_v8_context.h"
#include "base/logging.h"
+#include "base/stl_util.h"
#include "base/string_split.h"
#include "base/values.h"
#include "chrome/common/extensions/extension_set.h"
@@ -29,6 +30,7 @@ ChromeV8Context::ChromeV8Context(v8::Handle<v8::Context> v8_context,
WebKit::WebFrame* web_frame,
const std::string& extension_id)
: v8_context_(v8::Persistent<v8::Context>::New(v8_context)),
+ natives_(v8::Persistent<v8::Object>::New(v8::Object::New())),
Aaron Boodman 2012/02/16 01:54:42 Seems like this object should be created in v8_con
web_frame_(web_frame),
extension_id_(extension_id) {
VLOG(1) << "Created context for extension\n"
@@ -40,6 +42,8 @@ ChromeV8Context::~ChromeV8Context() {
VLOG(1) << "Destroyed context for extension\n"
<< " id: " << extension_id_;
v8_context_.Dispose();
+ STLDeleteElements(&extensions_);
Aaron Boodman 2012/02/16 01:54:42 Use base/memory/linked_ptr instead of doing this m
koz (OOO until 15th September) 2012/02/27 01:06:14 Done.
+ natives_.Dispose();
}
// static
@@ -127,3 +131,8 @@ void ChromeV8Context::DispatchOnUnloadEvent() const {
v8::HandleScope handle_scope;
CallChromeHiddenMethod("dispatchOnUnload", 0, NULL, NULL);
}
+
+void ChromeV8Context::RegisterExtension(ChromeV8Extension* extension) {
+ extensions_.push_back(extension);
+ extension->SetNativeFunctions(natives_);
+}

Powered by Google App Engine
This is Rietveld 408576698