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

Side by Side Diff: Source/bindings/tests/results/V8TestInterfaceCheckSecurity.cpp

Issue 131203009: Make event names of TRACE_EVENT_SAMPLING_STATE macros more descriptive (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 11 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) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 static void longAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Valu e>& info) 73 static void longAttributeAttributeGetter(const v8::PropertyCallbackInfo<v8::Valu e>& info)
74 { 74 {
75 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 75 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
76 v8SetReturnValueInt(info, imp->longAttribute()); 76 v8SetReturnValueInt(info, imp->longAttribute());
77 } 77 }
78 78
79 static void longAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8 ::PropertyCallbackInfo<v8::Value>& info) 79 static void longAttributeAttributeGetterCallback(v8::Local<v8::String>, const v8 ::PropertyCallbackInfo<v8::Value>& info)
80 { 80 {
81 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); 81 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
82 TestInterfaceCheckSecurityV8Internal::longAttributeAttributeGetter(info); 82 TestInterfaceCheckSecurityV8Internal::longAttributeAttributeGetter(info);
83 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 83 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
84 } 84 }
85 85
86 static void doNotCheckSecurityLongAttributeAttributeGetter(const v8::PropertyCal lbackInfo<v8::Value>& info) 86 static void doNotCheckSecurityLongAttributeAttributeGetter(const v8::PropertyCal lbackInfo<v8::Value>& info)
87 { 87 {
88 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 88 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
89 v8SetReturnValueInt(info, imp->doNotCheckSecurityLongAttribute()); 89 v8SetReturnValueInt(info, imp->doNotCheckSecurityLongAttribute());
90 } 90 }
91 91
92 static void doNotCheckSecurityLongAttributeAttributeGetterCallback(v8::Local<v8: :String>, const v8::PropertyCallbackInfo<v8::Value>& info) 92 static void doNotCheckSecurityLongAttributeAttributeGetterCallback(v8::Local<v8: :String>, const v8::PropertyCallbackInfo<v8::Value>& info)
93 { 93 {
94 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); 94 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
95 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityLongAttributeAttribu teGetter(info); 95 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityLongAttributeAttribu teGetter(info);
96 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 96 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
97 } 97 }
98 98
99 static void doNotCheckSecurityLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info) 99 static void doNotCheckSecurityLongAttributeAttributeSetter(v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
100 { 100 {
101 ExceptionState exceptionState(ExceptionState::SetterContext, "doNotCheckSecu rityLongAttribute", "TestInterfaceCheckSecurity", info.Holder(), info.GetIsolate ()); 101 ExceptionState exceptionState(ExceptionState::SetterContext, "doNotCheckSecu rityLongAttribute", "TestInterfaceCheckSecurity", info.Holder(), info.GetIsolate ());
102 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 102 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
103 V8TRYCATCH_EXCEPTION_VOID(int, cppValue, toInt32(jsValue, exceptionState), e xceptionState); 103 V8TRYCATCH_EXCEPTION_VOID(int, cppValue, toInt32(jsValue, exceptionState), e xceptionState);
104 imp->setDoNotCheckSecurityLongAttribute(cppValue); 104 imp->setDoNotCheckSecurityLongAttribute(cppValue);
105 } 105 }
106 106
107 static void doNotCheckSecurityLongAttributeAttributeSetterCallback(v8::Local<v8: :String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& in fo) 107 static void doNotCheckSecurityLongAttributeAttributeSetterCallback(v8::Local<v8: :String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& in fo)
108 { 108 {
109 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); 109 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
110 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityLongAttributeAttribu teSetter(jsValue, info); 110 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityLongAttributeAttribu teSetter(jsValue, info);
111 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 111 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
112 } 112 }
113 113
114 static void doNotCheckSecurityReadonlyLongAttributeAttributeGetter(const v8::Pro pertyCallbackInfo<v8::Value>& info) 114 static void doNotCheckSecurityReadonlyLongAttributeAttributeGetter(const v8::Pro pertyCallbackInfo<v8::Value>& info)
115 { 115 {
116 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 116 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
117 v8SetReturnValueInt(info, imp->doNotCheckSecurityReadonlyLongAttribute()); 117 v8SetReturnValueInt(info, imp->doNotCheckSecurityReadonlyLongAttribute());
118 } 118 }
119 119
120 static void doNotCheckSecurityReadonlyLongAttributeAttributeGetterCallback(v8::L ocal<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) 120 static void doNotCheckSecurityReadonlyLongAttributeAttributeGetterCallback(v8::L ocal<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
121 { 121 {
122 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); 122 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
123 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityReadonlyLongAttribut eAttributeGetter(info); 123 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityReadonlyLongAttribut eAttributeGetter(info);
124 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 124 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
125 } 125 }
126 126
127 static void doNotCheckSecurityOnSetterLongAttributeAttributeGetter(const v8::Pro pertyCallbackInfo<v8::Value>& info) 127 static void doNotCheckSecurityOnSetterLongAttributeAttributeGetter(const v8::Pro pertyCallbackInfo<v8::Value>& info)
128 { 128 {
129 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 129 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
130 v8SetReturnValueInt(info, imp->doNotCheckSecurityOnSetterLongAttribute()); 130 v8SetReturnValueInt(info, imp->doNotCheckSecurityOnSetterLongAttribute());
131 } 131 }
132 132
133 static void doNotCheckSecurityOnSetterLongAttributeAttributeGetterCallback(v8::L ocal<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) 133 static void doNotCheckSecurityOnSetterLongAttributeAttributeGetterCallback(v8::L ocal<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
134 { 134 {
135 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); 135 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
136 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityOnSetterLongAttribut eAttributeGetter(info); 136 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityOnSetterLongAttribut eAttributeGetter(info);
137 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 137 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
138 } 138 }
139 139
140 static void doNotCheckSecurityOnSetterLongAttributeAttributeSetter(v8::Local<v8: :Value> jsValue, const v8::PropertyCallbackInfo<void>& info) 140 static void doNotCheckSecurityOnSetterLongAttributeAttributeSetter(v8::Local<v8: :Value> jsValue, const v8::PropertyCallbackInfo<void>& info)
141 { 141 {
142 ExceptionState exceptionState(ExceptionState::SetterContext, "doNotCheckSecu rityOnSetterLongAttribute", "TestInterfaceCheckSecurity", info.Holder(), info.Ge tIsolate()); 142 ExceptionState exceptionState(ExceptionState::SetterContext, "doNotCheckSecu rityOnSetterLongAttribute", "TestInterfaceCheckSecurity", info.Holder(), info.Ge tIsolate());
143 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 143 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
144 V8TRYCATCH_EXCEPTION_VOID(int, cppValue, toInt32(jsValue, exceptionState), e xceptionState); 144 V8TRYCATCH_EXCEPTION_VOID(int, cppValue, toInt32(jsValue, exceptionState), e xceptionState);
145 imp->setDoNotCheckSecurityOnSetterLongAttribute(cppValue); 145 imp->setDoNotCheckSecurityOnSetterLongAttribute(cppValue);
146 } 146 }
147 147
148 static void doNotCheckSecurityOnSetterLongAttributeAttributeSetterCallback(v8::L ocal<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<v oid>& info) 148 static void doNotCheckSecurityOnSetterLongAttributeAttributeSetterCallback(v8::L ocal<v8::String>, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<v oid>& info)
149 { 149 {
150 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); 150 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
151 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityOnSetterLongAttribut eAttributeSetter(jsValue, info); 151 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityOnSetterLongAttribut eAttributeSetter(jsValue, info);
152 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 152 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
153 } 153 }
154 154
155 bool indexedSecurityCheck(v8::Local<v8::Object> host, uint32_t index, v8::Access Type type, v8::Local<v8::Value>) 155 bool indexedSecurityCheck(v8::Local<v8::Object> host, uint32_t index, v8::Access Type type, v8::Local<v8::Value>)
156 { 156 {
157 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(ho st); 157 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(ho st);
158 return BindingSecurity::shouldAllowAccessToFrame(imp->frame(), DoNotReportSe curityError); 158 return BindingSecurity::shouldAllowAccessToFrame(imp->frame(), DoNotReportSe curityError);
159 } 159 }
160 160
161 bool namedSecurityCheck(v8::Local<v8::Object> host, v8::Local<v8::Value> key, v8 ::AccessType type, v8::Local<v8::Value>) 161 bool namedSecurityCheck(v8::Local<v8::Object> host, v8::Local<v8::Value> key, v8 ::AccessType type, v8::Local<v8::Value>)
162 { 162 {
163 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(ho st); 163 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(ho st);
164 return BindingSecurity::shouldAllowAccessToFrame(imp->frame(), DoNotReportSe curityError); 164 return BindingSecurity::shouldAllowAccessToFrame(imp->frame(), DoNotReportSe curityError);
165 } 165 }
166 166
167 static void voidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info) 167 static void voidMethodMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
168 { 168 {
169 ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethod" , "TestInterfaceCheckSecurity", info.Holder(), info.GetIsolate()); 169 ExceptionState exceptionState(ExceptionState::ExecutionContext, "voidMethod" , "TestInterfaceCheckSecurity", info.Holder(), info.GetIsolate());
170 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 170 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
171 if (!BindingSecurity::shouldAllowAccessToFrame(imp->frame(), exceptionState) ) { 171 if (!BindingSecurity::shouldAllowAccessToFrame(imp->frame(), exceptionState) ) {
172 exceptionState.throwIfNeeded(); 172 exceptionState.throwIfNeeded();
173 return; 173 return;
174 } 174 }
175 imp->voidMethod(); 175 imp->voidMethod();
176 } 176 }
177 177
178 static void voidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info) 178 static void voidMethodMethodCallback(const v8::FunctionCallbackInfo<v8::Value>& info)
179 { 179 {
180 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 180 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
181 TestInterfaceCheckSecurityV8Internal::voidMethodMethod(info); 181 TestInterfaceCheckSecurityV8Internal::voidMethodMethod(info);
182 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 182 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
183 } 183 }
184 184
185 static void doNotCheckSecurityVoidMethodMethod(const v8::FunctionCallbackInfo<v8 ::Value>& info) 185 static void doNotCheckSecurityVoidMethodMethod(const v8::FunctionCallbackInfo<v8 ::Value>& info)
186 { 186 {
187 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 187 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
188 imp->doNotCheckSecurityVoidMethod(); 188 imp->doNotCheckSecurityVoidMethod();
189 } 189 }
190 190
191 static void doNotCheckSecurityVoidMethodMethodCallback(const v8::FunctionCallbac kInfo<v8::Value>& info) 191 static void doNotCheckSecurityVoidMethodMethodCallback(const v8::FunctionCallbac kInfo<v8::Value>& info)
192 { 192 {
193 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 193 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
194 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityVoidMethodMethod(inf o); 194 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityVoidMethodMethod(inf o);
195 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 195 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
196 } 196 }
197 197
198 static void doNotCheckSecurityVoidMethodOriginSafeMethodGetter(const v8::Propert yCallbackInfo<v8::Value>& info) 198 static void doNotCheckSecurityVoidMethodOriginSafeMethodGetter(const v8::Propert yCallbackInfo<v8::Value>& info)
199 { 199 {
200 // This is only for getting a unique pointer which we can pass to privateTem plate. 200 // This is only for getting a unique pointer which we can pass to privateTem plate.
201 static int privateTemplateUniqueKey; 201 static int privateTemplateUniqueKey;
202 WrapperWorldType currentWorldType = worldType(info.GetIsolate()); 202 WrapperWorldType currentWorldType = worldType(info.GetIsolate());
203 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); 203 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate());
204 v8::Handle<v8::FunctionTemplate> privateTemplate = data->privateTemplate(cur rentWorldType, &privateTemplateUniqueKey, TestInterfaceCheckSecurityV8Internal:: doNotCheckSecurityVoidMethodMethodCallback, v8Undefined(), v8::Signature::New(in fo.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate(), cu rrentWorldType)), 0); 204 v8::Handle<v8::FunctionTemplate> privateTemplate = data->privateTemplate(cur rentWorldType, &privateTemplateUniqueKey, TestInterfaceCheckSecurityV8Internal:: doNotCheckSecurityVoidMethodMethodCallback, v8Undefined(), v8::Signature::New(in fo.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsolate(), cu rrentWorldType)), 0);
205 205
(...skipping 18 matching lines...) Expand all
224 return; 224 return;
225 } 225 }
226 226
227 v8SetReturnValue(info, privateTemplate->GetFunction()); 227 v8SetReturnValue(info, privateTemplate->GetFunction());
228 } 228 }
229 229
230 static void doNotCheckSecurityVoidMethodOriginSafeMethodGetterCallback(v8::Local <v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) 230 static void doNotCheckSecurityVoidMethodOriginSafeMethodGetterCallback(v8::Local <v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
231 { 231 {
232 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); 232 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
233 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityVoidMethodOriginSafe MethodGetter(info); 233 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityVoidMethodOriginSafe MethodGetter(info);
234 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 234 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
235 } 235 }
236 236
237 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethod(const v8::Functio nCallbackInfo<v8::Value>& info) 237 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethod(const v8::Functio nCallbackInfo<v8::Value>& info)
238 { 238 {
239 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 239 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
240 imp->doNotCheckSecurityPerWorldBindingsVoidMethod(); 240 imp->doNotCheckSecurityPerWorldBindingsVoidMethod();
241 } 241 }
242 242
243 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallback(const v8: :FunctionCallbackInfo<v8::Value>& info) 243 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallback(const v8: :FunctionCallbackInfo<v8::Value>& info)
244 { 244 {
245 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 245 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
246 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodMethod(info); 246 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodMethod(info);
247 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 247 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
248 } 248 }
249 249
250 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetter(c onst v8::PropertyCallbackInfo<v8::Value>& info) 250 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetter(c onst v8::PropertyCallbackInfo<v8::Value>& info)
251 { 251 {
252 // This is only for getting a unique pointer which we can pass to privateTem plate. 252 // This is only for getting a unique pointer which we can pass to privateTem plate.
253 static int privateTemplateUniqueKey; 253 static int privateTemplateUniqueKey;
254 WrapperWorldType currentWorldType = worldType(info.GetIsolate()); 254 WrapperWorldType currentWorldType = worldType(info.GetIsolate());
255 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); 255 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate());
256 v8::Handle<v8::FunctionTemplate> privateTemplate = data->privateTemplate(cur rentWorldType, &privateTemplateUniqueKey, TestInterfaceCheckSecurityV8Internal:: doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallback, v8Undefined(), v8::S ignature::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info. GetIsolate(), currentWorldType)), 0); 256 v8::Handle<v8::FunctionTemplate> privateTemplate = data->privateTemplate(cur rentWorldType, &privateTemplateUniqueKey, TestInterfaceCheckSecurityV8Internal:: doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallback, v8Undefined(), v8::S ignature::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info. GetIsolate(), currentWorldType)), 0);
257 257
(...skipping 18 matching lines...) Expand all
276 return; 276 return;
277 } 277 }
278 278
279 v8SetReturnValue(info, privateTemplate->GetFunction()); 279 v8SetReturnValue(info, privateTemplate->GetFunction());
280 } 280 }
281 281
282 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterCa llback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) 282 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterCa llback(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
283 { 283 {
284 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); 284 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
285 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodOriginSafeMethodGetter(info); 285 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodOriginSafeMethodGetter(info);
286 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 286 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
287 } 287 }
288 288
289 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethodForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info) 289 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethodForMainWorld(const v8::FunctionCallbackInfo<v8::Value>& info)
290 { 290 {
291 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 291 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
292 imp->doNotCheckSecurityPerWorldBindingsVoidMethod(); 292 imp->doNotCheckSecurityPerWorldBindingsVoidMethod();
293 } 293 }
294 294
295 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallbackForMainWor ld(const v8::FunctionCallbackInfo<v8::Value>& info) 295 static void doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallbackForMainWor ld(const v8::FunctionCallbackInfo<v8::Value>& info)
296 { 296 {
297 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 297 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
298 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodMethodForMainWorld(info); 298 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodMethodForMainWorld(info);
299 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 299 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
300 } 300 }
301 301
302 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterFo rMainWorld(const v8::PropertyCallbackInfo<v8::Value>& info) 302 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterFo rMainWorld(const v8::PropertyCallbackInfo<v8::Value>& info)
303 { 303 {
304 // This is only for getting a unique pointer which we can pass to privateTem plate. 304 // This is only for getting a unique pointer which we can pass to privateTem plate.
305 static int privateTemplateUniqueKey; 305 static int privateTemplateUniqueKey;
306 WrapperWorldType currentWorldType = worldType(info.GetIsolate()); 306 WrapperWorldType currentWorldType = worldType(info.GetIsolate());
307 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); 307 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate());
308 v8::Handle<v8::FunctionTemplate> privateTemplate = data->privateTemplate(cur rentWorldType, &privateTemplateUniqueKey, TestInterfaceCheckSecurityV8Internal:: doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallbackForMainWorld, v8Undefi ned(), v8::Signature::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTe mplate(info.GetIsolate(), currentWorldType)), 0); 308 v8::Handle<v8::FunctionTemplate> privateTemplate = data->privateTemplate(cur rentWorldType, &privateTemplateUniqueKey, TestInterfaceCheckSecurityV8Internal:: doNotCheckSecurityPerWorldBindingsVoidMethodMethodCallbackForMainWorld, v8Undefi ned(), v8::Signature::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTe mplate(info.GetIsolate(), currentWorldType)), 0);
309 309
(...skipping 18 matching lines...) Expand all
328 return; 328 return;
329 } 329 }
330 330
331 v8SetReturnValue(info, privateTemplate->GetFunction()); 331 v8SetReturnValue(info, privateTemplate->GetFunction());
332 } 332 }
333 333
334 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterCa llbackForMainWorld(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Val ue>& info) 334 static void doNotCheckSecurityPerWorldBindingsVoidMethodOriginSafeMethodGetterCa llbackForMainWorld(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Val ue>& info)
335 { 335 {
336 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); 336 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
337 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodOriginSafeMethodGetterForMainWorld(info); 337 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityPerWorldBindingsVoid MethodOriginSafeMethodGetterForMainWorld(info);
338 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 338 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
339 } 339 }
340 340
341 static void doNotCheckSecurityReadOnlyVoidMethodMethod(const v8::FunctionCallbac kInfo<v8::Value>& info) 341 static void doNotCheckSecurityReadOnlyVoidMethodMethod(const v8::FunctionCallbac kInfo<v8::Value>& info)
342 { 342 {
343 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 343 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
344 imp->doNotCheckSecurityReadOnlyVoidMethod(); 344 imp->doNotCheckSecurityReadOnlyVoidMethod();
345 } 345 }
346 346
347 static void doNotCheckSecurityReadOnlyVoidMethodMethodCallback(const v8::Functio nCallbackInfo<v8::Value>& info) 347 static void doNotCheckSecurityReadOnlyVoidMethodMethodCallback(const v8::Functio nCallbackInfo<v8::Value>& info)
348 { 348 {
349 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 349 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
350 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityReadOnlyVoidMethodMe thod(info); 350 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityReadOnlyVoidMethodMe thod(info);
351 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 351 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
352 } 352 }
353 353
354 static void doNotCheckSecurityReadOnlyVoidMethodOriginSafeMethodGetter(const v8: :PropertyCallbackInfo<v8::Value>& info) 354 static void doNotCheckSecurityReadOnlyVoidMethodOriginSafeMethodGetter(const v8: :PropertyCallbackInfo<v8::Value>& info)
355 { 355 {
356 // This is only for getting a unique pointer which we can pass to privateTem plate. 356 // This is only for getting a unique pointer which we can pass to privateTem plate.
357 static int privateTemplateUniqueKey; 357 static int privateTemplateUniqueKey;
358 WrapperWorldType currentWorldType = worldType(info.GetIsolate()); 358 WrapperWorldType currentWorldType = worldType(info.GetIsolate());
359 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); 359 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate());
360 v8::Handle<v8::FunctionTemplate> privateTemplate = data->privateTemplate(cur rentWorldType, &privateTemplateUniqueKey, TestInterfaceCheckSecurityV8Internal:: doNotCheckSecurityReadOnlyVoidMethodMethodCallback, v8Undefined(), v8::Signature ::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsola te(), currentWorldType)), 0); 360 v8::Handle<v8::FunctionTemplate> privateTemplate = data->privateTemplate(cur rentWorldType, &privateTemplateUniqueKey, TestInterfaceCheckSecurityV8Internal:: doNotCheckSecurityReadOnlyVoidMethodMethodCallback, v8Undefined(), v8::Signature ::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIsola te(), currentWorldType)), 0);
361 361
(...skipping 18 matching lines...) Expand all
380 return; 380 return;
381 } 381 }
382 382
383 v8SetReturnValue(info, privateTemplate->GetFunction()); 383 v8SetReturnValue(info, privateTemplate->GetFunction());
384 } 384 }
385 385
386 static void doNotCheckSecurityReadOnlyVoidMethodOriginSafeMethodGetterCallback(v 8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) 386 static void doNotCheckSecurityReadOnlyVoidMethodOriginSafeMethodGetterCallback(v 8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
387 { 387 {
388 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); 388 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
389 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityReadOnlyVoidMethodOr iginSafeMethodGetter(info); 389 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityReadOnlyVoidMethodOr iginSafeMethodGetter(info);
390 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 390 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
391 } 391 }
392 392
393 static void doNotCheckSecurityUnforgeableVoidMethodMethod(const v8::FunctionCall backInfo<v8::Value>& info) 393 static void doNotCheckSecurityUnforgeableVoidMethodMethod(const v8::FunctionCall backInfo<v8::Value>& info)
394 { 394 {
395 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder()); 395 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(inf o.Holder());
396 imp->doNotCheckSecurityUnforgeableVoidMethod(); 396 imp->doNotCheckSecurityUnforgeableVoidMethod();
397 } 397 }
398 398
399 static void doNotCheckSecurityUnforgeableVoidMethodMethodCallback(const v8::Func tionCallbackInfo<v8::Value>& info) 399 static void doNotCheckSecurityUnforgeableVoidMethodMethodCallback(const v8::Func tionCallbackInfo<v8::Value>& info)
400 { 400 {
401 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 401 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
402 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityUnforgeableVoidMetho dMethod(info); 402 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityUnforgeableVoidMetho dMethod(info);
403 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 403 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
404 } 404 }
405 405
406 static void doNotCheckSecurityUnforgeableVoidMethodOriginSafeMethodGetter(const v8::PropertyCallbackInfo<v8::Value>& info) 406 static void doNotCheckSecurityUnforgeableVoidMethodOriginSafeMethodGetter(const v8::PropertyCallbackInfo<v8::Value>& info)
407 { 407 {
408 // This is only for getting a unique pointer which we can pass to privateTem plate. 408 // This is only for getting a unique pointer which we can pass to privateTem plate.
409 static int privateTemplateUniqueKey; 409 static int privateTemplateUniqueKey;
410 WrapperWorldType currentWorldType = worldType(info.GetIsolate()); 410 WrapperWorldType currentWorldType = worldType(info.GetIsolate());
411 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate()); 411 V8PerIsolateData* data = V8PerIsolateData::from(info.GetIsolate());
412 v8::Handle<v8::FunctionTemplate> privateTemplate = data->privateTemplate(cur rentWorldType, &privateTemplateUniqueKey, TestInterfaceCheckSecurityV8Internal:: doNotCheckSecurityUnforgeableVoidMethodMethodCallback, v8Undefined(), v8::Signat ure::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIs olate(), currentWorldType)), 0); 412 v8::Handle<v8::FunctionTemplate> privateTemplate = data->privateTemplate(cur rentWorldType, &privateTemplateUniqueKey, TestInterfaceCheckSecurityV8Internal:: doNotCheckSecurityUnforgeableVoidMethodMethodCallback, v8Undefined(), v8::Signat ure::New(info.GetIsolate(), V8TestInterfaceCheckSecurity::domTemplate(info.GetIs olate(), currentWorldType)), 0);
413 413
(...skipping 18 matching lines...) Expand all
432 return; 432 return;
433 } 433 }
434 434
435 v8SetReturnValue(info, privateTemplate->GetFunction()); 435 v8SetReturnValue(info, privateTemplate->GetFunction());
436 } 436 }
437 437
438 static void doNotCheckSecurityUnforgeableVoidMethodOriginSafeMethodGetterCallbac k(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info) 438 static void doNotCheckSecurityUnforgeableVoidMethodOriginSafeMethodGetterCallbac k(v8::Local<v8::String>, const v8::PropertyCallbackInfo<v8::Value>& info)
439 { 439 {
440 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter"); 440 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMGetter");
441 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityUnforgeableVoidMetho dOriginSafeMethodGetter(info); 441 TestInterfaceCheckSecurityV8Internal::doNotCheckSecurityUnforgeableVoidMetho dOriginSafeMethodGetter(info);
442 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 442 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
443 } 443 }
444 444
445 static void TestInterfaceCheckSecurityOriginSafeMethodSetter(v8::Local<v8::Strin g> name, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& inf o) 445 static void TestInterfaceCheckSecurityOriginSafeMethodSetter(v8::Local<v8::Strin g> name, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& inf o)
446 { 446 {
447 v8::Handle<v8::Object> holder = info.This()->FindInstanceInPrototypeChain(V8 TestInterfaceCheckSecurity::domTemplate(info.GetIsolate(), worldType(info.GetIso late()))); 447 v8::Handle<v8::Object> holder = info.This()->FindInstanceInPrototypeChain(V8 TestInterfaceCheckSecurity::domTemplate(info.GetIsolate(), worldType(info.GetIso late())));
448 if (holder.IsEmpty()) 448 if (holder.IsEmpty())
449 return; 449 return;
450 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der); 450 TestInterfaceCheckSecurity* imp = V8TestInterfaceCheckSecurity::toNative(hol der);
451 v8::String::Utf8Value attributeName(name); 451 v8::String::Utf8Value attributeName(name);
452 ExceptionState exceptionState(ExceptionState::SetterContext, *attributeName, "TestInterfaceCheckSecurity", info.Holder(), info.GetIsolate()); 452 ExceptionState exceptionState(ExceptionState::SetterContext, *attributeName, "TestInterfaceCheckSecurity", info.Holder(), info.GetIsolate());
453 if (!BindingSecurity::shouldAllowAccessToFrame(imp->frame(), exceptionState) ) { 453 if (!BindingSecurity::shouldAllowAccessToFrame(imp->frame(), exceptionState) ) {
454 exceptionState.throwIfNeeded(); 454 exceptionState.throwIfNeeded();
455 return; 455 return;
456 } 456 }
457 457
458 info.This()->SetHiddenValue(name, jsValue); 458 info.This()->SetHiddenValue(name, jsValue);
459 } 459 }
460 460
461 static void TestInterfaceCheckSecurityOriginSafeMethodSetterCallback(v8::Local<v 8::String> name, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<vo id>& info) 461 static void TestInterfaceCheckSecurityOriginSafeMethodSetterCallback(v8::Local<v 8::String> name, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<vo id>& info)
462 { 462 {
463 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter"); 463 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMSetter");
464 TestInterfaceCheckSecurityV8Internal::TestInterfaceCheckSecurityOriginSafeMe thodSetter(name, jsValue, info); 464 TestInterfaceCheckSecurityV8Internal::TestInterfaceCheckSecurityOriginSafeMe thodSetter(name, jsValue, info);
465 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 465 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
466 } 466 }
467 467
468 } // namespace TestInterfaceCheckSecurityV8Internal 468 } // namespace TestInterfaceCheckSecurityV8Internal
469 469
470 static const V8DOMConfiguration::AttributeConfiguration V8TestInterfaceCheckSecu rityAttributes[] = { 470 static const V8DOMConfiguration::AttributeConfiguration V8TestInterfaceCheckSecu rityAttributes[] = {
471 {"longAttribute", TestInterfaceCheckSecurityV8Internal::longAttributeAttribu teGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), stati c_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, 471 {"longAttribute", TestInterfaceCheckSecurityV8Internal::longAttributeAttribu teGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), stati c_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
472 {"doNotCheckSecurityLongAttribute", TestInterfaceCheckSecurityV8Internal::do NotCheckSecurityLongAttributeAttributeGetterCallback, TestInterfaceCheckSecurity V8Internal::doNotCheckSecurityLongAttributeAttributeSetterCallback, 0, 0, 0, sta tic_cast<v8::AccessControl>(v8::ALL_CAN_READ | v8::ALL_CAN_WRITE), static_cast<v 8::PropertyAttribute>(v8::None), 0 /* on instance */}, 472 {"doNotCheckSecurityLongAttribute", TestInterfaceCheckSecurityV8Internal::do NotCheckSecurityLongAttributeAttributeGetterCallback, TestInterfaceCheckSecurity V8Internal::doNotCheckSecurityLongAttributeAttributeSetterCallback, 0, 0, 0, sta tic_cast<v8::AccessControl>(v8::ALL_CAN_READ | v8::ALL_CAN_WRITE), static_cast<v 8::PropertyAttribute>(v8::None), 0 /* on instance */},
473 {"doNotCheckSecurityReadonlyLongAttribute", TestInterfaceCheckSecurityV8Inte rnal::doNotCheckSecurityReadonlyLongAttributeAttributeGetterCallback, 0, 0, 0, 0 , static_cast<v8::AccessControl>(v8::ALL_CAN_READ), static_cast<v8::PropertyAttr ibute>(v8::None), 0 /* on instance */}, 473 {"doNotCheckSecurityReadonlyLongAttribute", TestInterfaceCheckSecurityV8Inte rnal::doNotCheckSecurityReadonlyLongAttributeAttributeGetterCallback, 0, 0, 0, 0 , static_cast<v8::AccessControl>(v8::ALL_CAN_READ), static_cast<v8::PropertyAttr ibute>(v8::None), 0 /* on instance */},
474 {"doNotCheckSecurityOnSetterLongAttribute", TestInterfaceCheckSecurityV8Inte rnal::doNotCheckSecurityOnSetterLongAttributeAttributeGetterCallback, TestInterf aceCheckSecurityV8Internal::doNotCheckSecurityOnSetterLongAttributeAttributeSett erCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::ALL_CAN_WRITE), static_c ast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, 474 {"doNotCheckSecurityOnSetterLongAttribute", TestInterfaceCheckSecurityV8Inte rnal::doNotCheckSecurityOnSetterLongAttributeAttributeGetterCallback, TestInterf aceCheckSecurityV8Internal::doNotCheckSecurityOnSetterLongAttributeAttributeSett erCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::ALL_CAN_WRITE), static_c ast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
475 }; 475 };
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 fromInternalPointer(object)->deref(); 556 fromInternalPointer(object)->deref();
557 } 557 }
558 558
559 template<> 559 template<>
560 v8::Handle<v8::Value> toV8NoInline(TestInterfaceCheckSecurity* impl, v8::Handle< v8::Object> creationContext, v8::Isolate* isolate) 560 v8::Handle<v8::Value> toV8NoInline(TestInterfaceCheckSecurity* impl, v8::Handle< v8::Object> creationContext, v8::Isolate* isolate)
561 { 561 {
562 return toV8(impl, creationContext, isolate); 562 return toV8(impl, creationContext, isolate);
563 } 563 }
564 564
565 } // namespace WebCore 565 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/bindings/tests/results/V8TestInterface.cpp ('k') | Source/bindings/tests/results/V8TestInterfaceEventConstructor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698