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

Side by Side Diff: extensions/renderer/script_context.cc

Issue 1880933002: Begin to enable extension APIs in Extension Service Worker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sync @tott Created 4 years, 7 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/renderer/script_context.h" 5 #include "extensions/renderer/script_context.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 return GetContextTypeDescriptionString(context_type_); 249 return GetContextTypeDescriptionString(context_type_);
250 } 250 }
251 251
252 std::string ScriptContext::GetEffectiveContextTypeDescription() const { 252 std::string ScriptContext::GetEffectiveContextTypeDescription() const {
253 DCHECK(thread_checker_.CalledOnValidThread()); 253 DCHECK(thread_checker_.CalledOnValidThread());
254 return GetContextTypeDescriptionString(effective_context_type_); 254 return GetContextTypeDescriptionString(effective_context_type_);
255 } 255 }
256 256
257 bool ScriptContext::IsAnyFeatureAvailableToContext(const Feature& api) { 257 bool ScriptContext::IsAnyFeatureAvailableToContext(const Feature& api) {
258 DCHECK(thread_checker_.CalledOnValidThread()); 258 DCHECK(thread_checker_.CalledOnValidThread());
259 // TODO(lazyboy): Decide what we should do for SERVICE_WORKER_CONTEXT.
260 GURL url = context_type() == Feature::SERVICE_WORKER_CONTEXT
261 ? url_
262 : GetDataSourceURLForFrame(web_frame());
259 return ExtensionAPI::GetSharedInstance()->IsAnyFeatureAvailableToContext( 263 return ExtensionAPI::GetSharedInstance()->IsAnyFeatureAvailableToContext(
260 api, extension(), context_type(), GetDataSourceURLForFrame(web_frame())); 264 api, extension(), context_type(), url);
261 } 265 }
262 266
263 // static 267 // static
264 GURL ScriptContext::GetDataSourceURLForFrame(const blink::WebFrame* frame) { 268 GURL ScriptContext::GetDataSourceURLForFrame(const blink::WebFrame* frame) {
265 // Normally we would use frame->document().url() to determine the document's 269 // Normally we would use frame->document().url() to determine the document's
266 // URL, but to decide whether to inject a content script, we use the URL from 270 // URL, but to decide whether to inject a content script, we use the URL from
267 // the data source. This "quirk" helps prevents content scripts from 271 // the data source. This "quirk" helps prevents content scripts from
268 // inadvertently adding DOM elements to the compose iframe in Gmail because 272 // inadvertently adding DOM elements to the compose iframe in Gmail because
269 // the compose iframe's dataSource URL is about:blank, but the document URL 273 // the compose iframe's dataSource URL is about:blank, but the document URL
270 // changes to match the parent document after Gmail document.writes into 274 // changes to match the parent document after Gmail document.writes into
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 v8::Local<v8::Value> argv[]) { 485 v8::Local<v8::Value> argv[]) {
482 return context_->CallFunction(function, argc, argv); 486 return context_->CallFunction(function, argc, argv);
483 } 487 }
484 488
485 gin::ContextHolder* ScriptContext::Runner::GetContextHolder() { 489 gin::ContextHolder* ScriptContext::Runner::GetContextHolder() {
486 v8::HandleScope handle_scope(context_->isolate()); 490 v8::HandleScope handle_scope(context_->isolate());
487 return gin::PerContextData::From(context_->v8_context())->context_holder(); 491 return gin::PerContextData::From(context_->v8_context())->context_holder();
488 } 492 }
489 493
490 } // namespace extensions 494 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/renderer/resources/runtime_custom_bindings.js ('k') | extensions/renderer/service_worker_data.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698