OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 22 matching lines...) Expand all Loading... | |
33 | 33 |
34 #include "bindings/core/v8/DOMWrapperWorld.h" | 34 #include "bindings/core/v8/DOMWrapperWorld.h" |
35 #include "bindings/core/v8/ScopedPersistent.h" | 35 #include "bindings/core/v8/ScopedPersistent.h" |
36 #include "bindings/core/v8/ScriptState.h" | 36 #include "bindings/core/v8/ScriptState.h" |
37 #include "platform/heap/Handle.h" | 37 #include "platform/heap/Handle.h" |
38 #include "platform/weborigin/SecurityOrigin.h" | 38 #include "platform/weborigin/SecurityOrigin.h" |
39 #include "wtf/HashMap.h" | 39 #include "wtf/HashMap.h" |
40 #include "wtf/PassRefPtr.h" | 40 #include "wtf/PassRefPtr.h" |
41 #include "wtf/RefPtr.h" | 41 #include "wtf/RefPtr.h" |
42 #include "wtf/text/AtomicString.h" | 42 #include "wtf/text/AtomicString.h" |
43 #include <map> | |
43 #include <v8.h> | 44 #include <v8.h> |
44 | 45 |
45 namespace blink { | 46 namespace blink { |
46 | 47 |
47 class Frame; | 48 class Frame; |
48 class HTMLDocument; | 49 class HTMLDocument; |
49 class SecurityOrigin; | 50 class SecurityOrigin; |
50 | 51 |
51 // WindowProxy represents all the per-global object state for a Frame that | 52 // WindowProxy represents all the per-global object state for a Frame that |
52 // persist between navigations. | 53 // persist between navigations. |
(...skipping 25 matching lines...) Expand all Loading... | |
78 | 79 |
79 void clearForNavigation(); | 80 void clearForNavigation(); |
80 void clearForClose(); | 81 void clearForClose(); |
81 | 82 |
82 v8::Local<v8::Object> globalIfNotDetached(); | 83 v8::Local<v8::Object> globalIfNotDetached(); |
83 v8::Local<v8::Object> releaseGlobal(); | 84 v8::Local<v8::Object> releaseGlobal(); |
84 void setGlobal(v8::Local<v8::Object>); | 85 void setGlobal(v8::Local<v8::Object>); |
85 | 86 |
86 DOMWrapperWorld& world() { return *m_world; } | 87 DOMWrapperWorld& world() { return *m_world; } |
87 | 88 |
89 // Global map, 'name' -> private property for all cached accessors. | |
90 typedef std::map<std::string, v8::Eternal<v8::Private>> StringPrivateMap; | |
91 static StringPrivateMap& cachedAccessors() | |
92 { | |
93 DCHECK(isMainThread()); | |
jochen (gone - plz use gerrit)
2016/09/15 08:20:51
that means that this feature is currently not avai
jochen (gone - plz use gerrit)
2016/09/15 08:20:51
that means that this feature is currently not avai
Alfonso
2016/09/16 14:21:48
Refactor to use V8PrivateProperty to expose privat
| |
94 DEFINE_STATIC_LOCAL(StringPrivateMap, map, ()); | |
haraken
2016/09/15 09:26:10
If this map is intended to be per-isolate, can you
Alfonso
2016/09/16 14:21:48
Done.
| |
95 return map; | |
96 } | |
97 | |
88 private: | 98 private: |
89 WindowProxy(Frame*, PassRefPtr<DOMWrapperWorld>, v8::Isolate*); | 99 WindowProxy(Frame*, PassRefPtr<DOMWrapperWorld>, v8::Isolate*); |
90 bool initialize(); | 100 bool initialize(); |
91 | 101 |
92 enum GlobalDetachmentBehavior { | 102 enum GlobalDetachmentBehavior { |
93 DoNotDetachGlobal, | 103 DoNotDetachGlobal, |
94 DetachGlobal | 104 DetachGlobal |
95 }; | 105 }; |
96 void disposeContext(GlobalDetachmentBehavior); | 106 void disposeContext(GlobalDetachmentBehavior); |
97 | 107 |
(...skipping 21 matching lines...) Expand all Loading... | |
119 v8::Isolate* m_isolate; | 129 v8::Isolate* m_isolate; |
120 RefPtr<ScriptState> m_scriptState; | 130 RefPtr<ScriptState> m_scriptState; |
121 RefPtr<DOMWrapperWorld> m_world; | 131 RefPtr<DOMWrapperWorld> m_world; |
122 ScopedPersistent<v8::Object> m_global; | 132 ScopedPersistent<v8::Object> m_global; |
123 ScopedPersistent<v8::Object> m_document; | 133 ScopedPersistent<v8::Object> m_document; |
124 }; | 134 }; |
125 | 135 |
126 } // namespace blink | 136 } // namespace blink |
127 | 137 |
128 #endif // WindowProxy_h | 138 #endif // WindowProxy_h |
OLD | NEW |