| 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,
|
|
|