| Index: extensions/renderer/user_script_slave.h
|
| diff --git a/extensions/renderer/user_script_slave.h b/extensions/renderer/user_script_slave.h
|
| index fc3da79ae05a9223e52566cc1118043fb3b75119..4dd1029c4bcee26c0e183c5bedd402a176309c90 100644
|
| --- a/extensions/renderer/user_script_slave.h
|
| +++ b/extensions/renderer/user_script_slave.h
|
| @@ -10,12 +10,14 @@
|
| #include <string>
|
| #include <vector>
|
|
|
| +#include "base/memory/linked_ptr.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/scoped_vector.h"
|
| #include "base/memory/shared_memory.h"
|
| -#include "base/stl_util.h"
|
| #include "base/strings/string_piece.h"
|
| #include "extensions/common/user_script.h"
|
| -#include "third_party/WebKit/public/web/WebScriptSource.h"
|
| +#include "extensions/renderer/script_injection.h"
|
| +#include "third_party/WebKit/public/platform/WebString.h"
|
|
|
| class GURL;
|
|
|
| @@ -23,7 +25,9 @@ namespace blink {
|
| class WebFrame;
|
| }
|
|
|
| -using blink::WebScriptSource;
|
| +namespace content {
|
| +class RenderView;
|
| +}
|
|
|
| namespace extensions {
|
| class Extension;
|
| @@ -38,14 +42,12 @@ class UserScriptSlave {
|
| // Returns the unique set of extension IDs this UserScriptSlave knows about.
|
| void GetActiveExtensions(std::set<std::string>* extension_ids);
|
|
|
| + // Gets the extension with the given |id|, if one exists.
|
| + const Extension* GetExtension(const std::string& extension_id);
|
| +
|
| // Update the parsed scripts from shared memory.
|
| bool UpdateScripts(base::SharedMemoryHandle shared_memory);
|
|
|
| - // Inject the appropriate scripts into a frame based on its URL.
|
| - // TODO(aa): Extract a UserScriptFrame interface out of this to improve
|
| - // testability.
|
| - void InjectScripts(blink::WebFrame* frame, UserScript::RunLocation location);
|
| -
|
| // Gets the isolated world ID to use for the given |extension| in the given
|
| // |frame|. If no isolated world has been created for that extension,
|
| // one will be created and initialized.
|
| @@ -59,16 +61,23 @@ class UserScriptSlave {
|
|
|
| void RemoveIsolatedWorld(const std::string& extension_id);
|
|
|
| + // Inject the appropriate scripts into a frame based on its URL.
|
| + // TODO(aa): Extract a UserScriptFrame interface out of this to improve
|
| + // testability.
|
| + void InjectScripts(blink::WebFrame* frame, UserScript::RunLocation location);
|
| +
|
| private:
|
| + // Log the data from scripts being run, including doing UMA and notifying the
|
| + // browser.
|
| + void LogScriptsRun(blink::WebFrame* frame,
|
| + UserScript::RunLocation location,
|
| + const ScriptInjection::ScriptsRunInfo& info);
|
| +
|
| // Shared memory containing raw script data.
|
| scoped_ptr<base::SharedMemory> shared_memory_;
|
|
|
| - // Parsed script data.
|
| - std::vector<UserScript*> scripts_;
|
| - STLElementDeleter<std::vector<UserScript*> > script_deleter_;
|
| -
|
| - // Greasemonkey API source that is injected with the scripts.
|
| - base::StringPiece api_js_;
|
| + // Parsed script data, ready to inject.
|
| + ScopedVector<ScriptInjection> script_injections_;
|
|
|
| // Extension metadata.
|
| const ExtensionSet* extensions_;
|
|
|