summaryrefslogtreecommitdiffstats
path: root/gin/per_isolate_data.h
diff options
context:
space:
mode:
authorulan <ulan@chromium.org>2015-07-20 04:32:58 -0700
committerCommit bot <commit-bot@chromium.org>2015-07-20 11:33:39 +0000
commit3cbdcd0209faa3d98a5984d5f1ec59b4ced69ae5 (patch)
treeead665e0b40fb1e4be19a07a6fe1ccdd10160c03 /gin/per_isolate_data.h
parent28218513bf9580515b03c73ab786c27844e9b40b (diff)
downloadchromium_src-3cbdcd0209faa3d98a5984d5f1ec59b4ced69ae5.zip
chromium_src-3cbdcd0209faa3d98a5984d5f1ec59b4ced69ae5.tar.gz
chromium_src-3cbdcd0209faa3d98a5984d5f1ec59b4ced69ae5.tar.bz2
Implement posting idle tasks in gin.
This CL depends on "Add IdleTask API to v8::Platform." (https://codereview.chromium.org/1225713003/) BUG=chromium:490559 Review URL: https://codereview.chromium.org/1241633002 Cr-Commit-Position: refs/heads/master@{#339433}
Diffstat (limited to 'gin/per_isolate_data.h')
-rw-r--r--gin/per_isolate_data.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/gin/per_isolate_data.h b/gin/per_isolate_data.h
index 175161c..ef44f31 100644
--- a/gin/per_isolate_data.h
+++ b/gin/per_isolate_data.h
@@ -9,7 +9,9 @@
#include "base/basictypes.h"
#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_ptr.h"
#include "gin/gin_export.h"
+#include "gin/public/v8_idle_task_runner.h"
#include "gin/public/wrapper_info.h"
#include "v8/include/v8.h"
@@ -63,9 +65,14 @@ class GIN_EXPORT PerIsolateData {
WrappableBase* base);
NamedPropertyInterceptor* GetNamedPropertyInterceptor(WrappableBase* base);
+ void EnableIdleTasks(scoped_ptr<V8IdleTaskRunner> idle_task_runner);
+
v8::Isolate* isolate() { return isolate_; }
v8::ArrayBuffer::Allocator* allocator() { return allocator_; }
base::SingleThreadTaskRunner* task_runner() { return task_runner_.get(); }
+ V8IdleTaskRunner* idle_task_runner() {
+ return idle_task_runner_.get();
+ }
private:
typedef std::map<
@@ -86,6 +93,7 @@ class GIN_EXPORT PerIsolateData {
IndexedPropertyInterceptorMap indexed_interceptors_;
NamedPropertyInterceptorMap named_interceptors_;
scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
+ scoped_ptr<V8IdleTaskRunner> idle_task_runner_;
DISALLOW_COPY_AND_ASSIGN(PerIsolateData);
};