Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(51)

Side by Side Diff: Source/bindings/v8/V8AbstractEventListener.h

Issue 14334002: Delete WorldContextHandle in favor of DOMWrapperWorld (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 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 13 matching lines...) Expand all
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef V8AbstractEventListener_h 31 #ifndef V8AbstractEventListener_h
32 #define V8AbstractEventListener_h 32 #define V8AbstractEventListener_h
33 33
34 #include "DOMWrapperWorld.h"
34 #include "EventListener.h" 35 #include "EventListener.h"
35 #include "ScopedPersistent.h" 36 #include "ScopedPersistent.h"
36 #include "V8Utilities.h" 37 #include "V8Utilities.h"
37 #include "WorldContextHandle.h"
38 #include <v8.h> 38 #include <v8.h>
39 #include <wtf/PassRefPtr.h> 39 #include <wtf/PassRefPtr.h>
40 #include <wtf/RefCounted.h> 40 #include <wtf/RefCounted.h>
41 41
42 namespace WebCore { 42 namespace WebCore {
43 43
44 class Event; 44 class Event;
45 45
46 // There are two kinds of event listeners: HTML or non-HMTL. onload, 46 // There are two kinds of event listeners: HTML or non-HMTL. onload,
47 // onfocus, etc (attributes) are always HTML event handler type; Event 47 // onfocus, etc (attributes) are always HTML event handler type; Event
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 v8::Persistent<v8::Object> existingListenerObjectPersistentHandle() 98 v8::Persistent<v8::Object> existingListenerObjectPersistentHandle()
99 { 99 {
100 return m_listener.get(); 100 return m_listener.get();
101 } 101 }
102 102
103 bool hasExistingListenerObject() 103 bool hasExistingListenerObject()
104 { 104 {
105 return !m_listener.isEmpty(); 105 return !m_listener.isEmpty();
106 } 106 }
107 107
108 const WorldContextHandle& worldContext() const { return m_worldContext; } 108 DOMWrapperWorld* world() const { return m_world.get(); }
109 109
110 protected: 110 protected:
111 V8AbstractEventListener(bool isAttribute, const WorldContextHandle&, v8: :Isolate*); 111 V8AbstractEventListener(bool isAttribute, PassRefPtr<DOMWrapperWorld>, v 8::Isolate*);
112 112
113 virtual void prepareListenerObject(ScriptExecutionContext*) { } 113 virtual void prepareListenerObject(ScriptExecutionContext*) { }
114 114
115 void setListenerObject(v8::Handle<v8::Object> listener); 115 void setListenerObject(v8::Handle<v8::Object> listener);
116 116
117 void invokeEventHandler(ScriptExecutionContext*, Event*, v8::Handle<v8:: Value> jsEvent); 117 void invokeEventHandler(ScriptExecutionContext*, Event*, v8::Handle<v8:: Value> jsEvent);
118 118
119 // Get the receiver object to use for event listener call. 119 // Get the receiver object to use for event listener call.
120 v8::Local<v8::Object> getReceiverObject(ScriptExecutionContext*, Event*) ; 120 v8::Local<v8::Object> getReceiverObject(ScriptExecutionContext*, Event*) ;
121 121
122 private: 122 private:
123 static void weakEventListenerCallback(v8::Isolate*, v8::Persistent<v8::V alue>, void* parameter); 123 static void weakEventListenerCallback(v8::Isolate*, v8::Persistent<v8::V alue>, void* parameter);
124 124
125 // Implementation of EventListener function. 125 // Implementation of EventListener function.
126 virtual bool virtualisAttribute() const { return m_isAttribute; } 126 virtual bool virtualisAttribute() const { return m_isAttribute; }
127 127
128 virtual v8::Local<v8::Value> callListenerFunction(ScriptExecutionContext *, v8::Handle<v8::Value> jsevent, Event*) = 0; 128 virtual v8::Local<v8::Value> callListenerFunction(ScriptExecutionContext *, v8::Handle<v8::Value> jsevent, Event*) = 0;
129 129
130 virtual bool shouldPreventDefault(v8::Local<v8::Value> returnValue); 130 virtual bool shouldPreventDefault(v8::Local<v8::Value> returnValue);
131 131
132 ScopedPersistent<v8::Object> m_listener; 132 ScopedPersistent<v8::Object> m_listener;
133 133
134 // Indicates if this is an HTML type listener. 134 // Indicates if this is an HTML type listener.
135 bool m_isAttribute; 135 bool m_isAttribute;
136 136
137 WorldContextHandle m_worldContext; 137 RefPtr<DOMWrapperWorld> m_world;
138 v8::Isolate* m_isolate; 138 v8::Isolate* m_isolate;
139 }; 139 };
140 140
141 } // namespace WebCore 141 } // namespace WebCore
142 142
143 #endif // V8AbstractEventListener_h 143 #endif // V8AbstractEventListener_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698