Index: gin/runner.h |
diff --git a/gin/runner.h b/gin/runner.h |
index 943bcedba1ca8d0d6c7153f5664d6fe7f683a751..36a75d2f9563183510c7c08c0485c2b17f2464ec 100644 |
--- a/gin/runner.h |
+++ b/gin/runner.h |
@@ -10,47 +10,28 @@ |
#include "base/memory/weak_ptr.h" |
#include "gin/gin_export.h" |
#include "gin/public/context_holder.h" |
+#include "v8/include/v8.h" |
namespace gin { |
-class Runner; |
-class TryCatch; |
- |
-// Subclass RunnerDelegate to customize the behavior of |Runner|. Typical |
-// embedders will want to subclass one of the specialized RunnerDelegates, |
-// such as ModuleRunnerDelegate. |
-class GIN_EXPORT RunnerDelegate { |
- public: |
- RunnerDelegate(); |
- virtual ~RunnerDelegate(); |
- |
- // Returns the template for the global object. |
- virtual v8::Handle<v8::ObjectTemplate> GetGlobalTemplate(Runner* runner); |
- virtual void DidCreateContext(Runner* runner); |
- virtual void WillRunScript(Runner* runner); |
- virtual void DidRunScript(Runner* runner); |
- virtual void UnhandledException(Runner* runner, TryCatch& try_catch); |
-}; |
- |
-// Runner lets you run code in a v8::Context. Upon construction, Runner will |
-// create a v8::Context. Upon destruction, Runner will dispose the context. |
-class GIN_EXPORT Runner : public ContextHolder { |
+// Runner is responsible for running code in a v8::Context. |
+class GIN_EXPORT Runner { |
public: |
- Runner(RunnerDelegate* delegate, v8::Isolate* isolate); |
- ~Runner(); |
+ Runner(); |
+ virtual ~Runner(); |
// Before running script in this context, you'll need to enter the runner's |
// context by creating an instance of Runner::Scope on the stack. |
- void Run(const std::string& source, const std::string& resource_name); |
- void Run(v8::Handle<v8::Script> script); |
- |
- v8::Handle<v8::Value> Call(v8::Handle<v8::Function> function, |
- v8::Handle<v8::Value> receiver, |
- int argc, |
- v8::Handle<v8::Value> argv[]); |
- |
- v8::Handle<v8::Object> global() const { |
- return context()->Global(); |
+ virtual void Run(const std::string& source, |
+ const std::string& resource_name) = 0; |
+ virtual v8::Handle<v8::Value> Call(v8::Handle<v8::Function> function, |
+ v8::Handle<v8::Value> receiver, |
+ int argc, |
+ v8::Handle<v8::Value> argv[]) = 0; |
+ virtual ContextHolder* GetContextHolder() = 0; |
+ |
+ v8::Handle<v8::Object> global() { |
+ return GetContextHolder()->context()->Global(); |
} |
// Useful for running script in this context asynchronously. Rather than |
@@ -75,8 +56,6 @@ class GIN_EXPORT Runner : public ContextHolder { |
private: |
friend class Scope; |
- RunnerDelegate* delegate_; |
- |
base::WeakPtrFactory<Runner> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(Runner); |