OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef GIN_PER_ISOLATE_DATA_H_ | 5 #ifndef GIN_PER_ISOLATE_DATA_H_ |
6 #define GIN_PER_ISOLATE_DATA_H_ | 6 #define GIN_PER_ISOLATE_DATA_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
11 #include "base/memory/ref_counted.h" | 11 #include "base/memory/ref_counted.h" |
12 #include "gin/gin_export.h" | 12 #include "gin/gin_export.h" |
13 #include "gin/public/wrapper_info.h" | 13 #include "gin/public/wrapper_info.h" |
14 #include "v8/include/v8.h" | 14 #include "v8/include/v8.h" |
15 | 15 |
16 namespace base { | 16 namespace base { |
17 class MessageLoopProxy; | 17 class SingleThreadTaskRunner; |
18 } | 18 } |
19 | 19 |
20 namespace gin { | 20 namespace gin { |
21 | 21 |
22 class IndexedPropertyInterceptor; | 22 class IndexedPropertyInterceptor; |
23 class NamedPropertyInterceptor; | 23 class NamedPropertyInterceptor; |
24 class WrappableBase; | 24 class WrappableBase; |
25 | 25 |
26 // There is one instance of PerIsolateData per v8::Isolate managed by Gin. This | 26 // There is one instance of PerIsolateData per v8::Isolate managed by Gin. This |
27 // class stores all the Gin-related data that varies per isolate. | 27 // class stores all the Gin-related data that varies per isolate. |
(...skipping 30 matching lines...) Expand all Loading... | |
58 IndexedPropertyInterceptor* interceptor); | 58 IndexedPropertyInterceptor* interceptor); |
59 void ClearNamedPropertyInterceptor(WrappableBase* base, | 59 void ClearNamedPropertyInterceptor(WrappableBase* base, |
60 NamedPropertyInterceptor* interceptor); | 60 NamedPropertyInterceptor* interceptor); |
61 | 61 |
62 IndexedPropertyInterceptor* GetIndexedPropertyInterceptor( | 62 IndexedPropertyInterceptor* GetIndexedPropertyInterceptor( |
63 WrappableBase* base); | 63 WrappableBase* base); |
64 NamedPropertyInterceptor* GetNamedPropertyInterceptor(WrappableBase* base); | 64 NamedPropertyInterceptor* GetNamedPropertyInterceptor(WrappableBase* base); |
65 | 65 |
66 v8::Isolate* isolate() { return isolate_; } | 66 v8::Isolate* isolate() { return isolate_; } |
67 v8::ArrayBuffer::Allocator* allocator() { return allocator_; } | 67 v8::ArrayBuffer::Allocator* allocator() { return allocator_; } |
68 base::MessageLoopProxy* message_loop_proxy() { | 68 base::SingleThreadTaskRunner* message_loop_proxy() { |
viettrungluu
2016/01/28 21:32:46
Do you want to rename the getter (and the member v
| |
69 return message_loop_proxy_.get(); | 69 return message_loop_proxy_.get(); |
70 } | 70 } |
71 | 71 |
72 private: | 72 private: |
73 typedef std::map< | 73 typedef std::map< |
74 WrapperInfo*, v8::Eternal<v8::ObjectTemplate> > ObjectTemplateMap; | 74 WrapperInfo*, v8::Eternal<v8::ObjectTemplate> > ObjectTemplateMap; |
75 typedef std::map< | 75 typedef std::map< |
76 WrapperInfo*, v8::Eternal<v8::FunctionTemplate> > FunctionTemplateMap; | 76 WrapperInfo*, v8::Eternal<v8::FunctionTemplate> > FunctionTemplateMap; |
77 typedef std::map<WrappableBase*, IndexedPropertyInterceptor*> | 77 typedef std::map<WrappableBase*, IndexedPropertyInterceptor*> |
78 IndexedPropertyInterceptorMap; | 78 IndexedPropertyInterceptorMap; |
79 typedef std::map<WrappableBase*, NamedPropertyInterceptor*> | 79 typedef std::map<WrappableBase*, NamedPropertyInterceptor*> |
80 NamedPropertyInterceptorMap; | 80 NamedPropertyInterceptorMap; |
81 | 81 |
82 // PerIsolateData doesn't actually own |isolate_|. Instead, the isolate is | 82 // PerIsolateData doesn't actually own |isolate_|. Instead, the isolate is |
83 // owned by the IsolateHolder, which also owns the PerIsolateData. | 83 // owned by the IsolateHolder, which also owns the PerIsolateData. |
84 v8::Isolate* isolate_; | 84 v8::Isolate* isolate_; |
85 v8::ArrayBuffer::Allocator* allocator_; | 85 v8::ArrayBuffer::Allocator* allocator_; |
86 ObjectTemplateMap object_templates_; | 86 ObjectTemplateMap object_templates_; |
87 FunctionTemplateMap function_templates_; | 87 FunctionTemplateMap function_templates_; |
88 IndexedPropertyInterceptorMap indexed_interceptors_; | 88 IndexedPropertyInterceptorMap indexed_interceptors_; |
89 NamedPropertyInterceptorMap named_interceptors_; | 89 NamedPropertyInterceptorMap named_interceptors_; |
90 scoped_refptr<base::MessageLoopProxy> message_loop_proxy_; | 90 scoped_refptr<base::SingleThreadTaskRunner> message_loop_proxy_; |
91 | 91 |
92 DISALLOW_COPY_AND_ASSIGN(PerIsolateData); | 92 DISALLOW_COPY_AND_ASSIGN(PerIsolateData); |
93 }; | 93 }; |
94 | 94 |
95 } // namespace gin | 95 } // namespace gin |
96 | 96 |
97 #endif // GIN_PER_ISOLATE_DATA_H_ | 97 #endif // GIN_PER_ISOLATE_DATA_H_ |
OLD | NEW |