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

Unified Diff: extensions/renderer/script_context.h

Issue 995283004: Move Extension ScriptContext creation into ScriptContextSet. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix memory for real Created 5 years, 9 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
« no previous file with comments | « extensions/renderer/request_sender.cc ('k') | extensions/renderer/script_context.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/script_context.h
diff --git a/extensions/renderer/script_context.h b/extensions/renderer/script_context.h
index b6c90f2c46f765723452a0450291768c6fc3ba6f..745f522c2c4328990b44506d24ba0723a4241d83 100644
--- a/extensions/renderer/script_context.h
+++ b/extensions/renderer/script_context.h
@@ -20,6 +20,7 @@
namespace blink {
class WebFrame;
+class WebLocalFrame;
}
namespace content {
@@ -29,18 +30,27 @@ class RenderView;
namespace extensions {
class Extension;
+class ExtensionSet;
// Extensions wrapper for a v8 context.
class ScriptContext : public RequestSender::Source {
public:
ScriptContext(const v8::Handle<v8::Context>& context,
- blink::WebFrame* frame,
+ blink::WebLocalFrame* frame,
const Extension* extension,
Feature::Context context_type,
const Extension* effective_extension,
Feature::Context effective_context_type);
~ScriptContext() override;
+ // Returns whether |url| is sandboxed (as declared in any Extension in
+ // |extension_set| as sandboxed).
+ //
+ // Declared in ScriptContext for lack of a better place, but this should
+ // become unnecessary at some point as crbug.com/466373 is worked on.
+ static bool IsSandboxedPage(const ExtensionSet& extension_set,
+ const GURL& url);
+
// Clears the WebFrame for this contexts and invalidates the associated
// ModuleSystem.
void Invalidate();
@@ -59,7 +69,7 @@ class ScriptContext : public RequestSender::Source {
return effective_extension_.get();
}
- blink::WebFrame* web_frame() const { return web_frame_; }
+ blink::WebLocalFrame* web_frame() const { return web_frame_; }
Feature::Context context_type() const { return context_type_; }
@@ -114,6 +124,14 @@ class ScriptContext : public RequestSender::Source {
v8::Isolate* isolate() const { return isolate_; }
// Get the URL of this context's web frame.
+ //
+ // TODO(kalman): Remove this and replace with a GetOrigin() call which reads
+ // of WebDocument::securityOrigin():
+ // - The URL can change (e.g. pushState) but the origin cannot. Luckily it
+ // appears as though callers don't make security decisions based on the
+ // result of GetURL() so it's not a problem... yet.
+ // - Origin is the correct check to be making.
+ // - It might let us remove the about:blank resolving?
GURL GetURL() const;
// Returns whether the API |api| or any part of the API could be
@@ -157,9 +175,9 @@ class ScriptContext : public RequestSender::Source {
private:
class Runner;
- // The WebFrame associated with this context. This can be NULL because this
- // object can outlive is destroyed asynchronously.
- blink::WebFrame* web_frame_;
+ // The WebLocalFrame associated with this context. This can be NULL because
+ // this object can outlive is destroyed asynchronously.
+ blink::WebLocalFrame* web_frame_;
// The extension associated with this context, or NULL if there is none. This
// might be a hosted app in the case that this context is hosting a web URL.
« no previous file with comments | « extensions/renderer/request_sender.cc ('k') | extensions/renderer/script_context.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698