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

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

Issue 11571014: Lazy load chrome.* APIs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: apitest.js Created 7 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 a9c221fefcf9cc587d2997973320b13898b53e50..3e151b081a58e5ee1aec4d9e497f27970fc1fdb6 100644
--- a/chrome/renderer/extensions/chrome_v8_context.cc
+++ b/chrome/renderer/extensions/chrome_v8_context.cc
@@ -39,7 +39,8 @@ ChromeV8Context::ChromeV8Context(v8::Handle<v8::Context> v8_context,
v8_context)),
web_frame_(web_frame),
extension_(extension),
- context_type_(context_type) {
+ context_type_(context_type),
+ available_extension_apis_initialized_(false) {
VLOG(1) << "Created context:\n"
<< " extension id: " << GetExtensionID() << "\n"
<< " frame: " << web_frame_ << "\n"
@@ -68,11 +69,11 @@ v8::Handle<v8::Value> ChromeV8Context::GetOrCreateChromeHidden(
global->SetHiddenValue(v8::String::New(kChromeHidden), hidden);
#ifndef NDEBUG
- // Tell schema_generated_bindings.js to validate callbacks and events
- // against their schema definitions.
+ // Tell bindings.js to validate callbacks and events against their schema
+ // definitions.
v8::Local<v8::Object>::Cast(hidden)->Set(
v8::String::New(kValidateCallbacks), v8::True());
- // Tell schema_generated_bindings.js to validate API for ambiguity.
+ // Tell bindings.js to validate API for ambiguity.
v8::Local<v8::Object>::Cast(hidden)->Set(
v8::String::New(kValidateAPI), v8::True());
#endif
@@ -143,15 +144,15 @@ bool ChromeV8Context::CallChromeHiddenMethod(
}
const std::set<std::string>& ChromeV8Context::GetAvailableExtensionAPIs() {
- if (!available_extension_apis_.get()) {
+ if (!available_extension_apis_initialized_) {
available_extension_apis_ =
ExtensionAPI::GetSharedInstance()->GetAPIsForContext(
context_type_,
extension_,
- UserScriptSlave::GetDataSourceURLForFrame(
- web_frame_)).Pass();
+ UserScriptSlave::GetDataSourceURLForFrame(web_frame_));
+ available_extension_apis_initialized_ = true;
}
- return *(available_extension_apis_.get());
+ return available_extension_apis_;
}
void ChromeV8Context::DispatchOnLoadEvent(bool is_incognito_process,

Powered by Google App Engine
This is Rietveld 408576698