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

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

Issue 201603002: Simplify EventTarget bindings generation (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Don't change web behavior Created 6 years, 9 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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 #include "bindings/v8/V8DOMActivityLogger.h" 56 #include "bindings/v8/V8DOMActivityLogger.h"
57 #include "bindings/v8/V8DOMConfiguration.h" 57 #include "bindings/v8/V8DOMConfiguration.h"
58 #include "bindings/v8/V8EventListenerList.h" 58 #include "bindings/v8/V8EventListenerList.h"
59 #include "bindings/v8/V8HiddenValue.h" 59 #include "bindings/v8/V8HiddenValue.h"
60 #include "bindings/v8/V8ObjectConstructor.h" 60 #include "bindings/v8/V8ObjectConstructor.h"
61 #include "bindings/v8/custom/V8Float32ArrayCustom.h" 61 #include "bindings/v8/custom/V8Float32ArrayCustom.h"
62 #include "core/css/MediaQueryListListener.h" 62 #include "core/css/MediaQueryListListener.h"
63 #include "core/dom/ContextFeatures.h" 63 #include "core/dom/ContextFeatures.h"
64 #include "core/dom/Document.h" 64 #include "core/dom/Document.h"
65 #include "core/dom/custom/CustomElementCallbackDispatcher.h" 65 #include "core/dom/custom/CustomElementCallbackDispatcher.h"
66 #include "core/frame/DOMWindow.h"
67 #include "core/frame/UseCounter.h" 66 #include "core/frame/UseCounter.h"
68 #include "platform/TraceEvent.h" 67 #include "platform/TraceEvent.h"
69 #include "wtf/GetPtr.h" 68 #include "wtf/GetPtr.h"
70 #include "wtf/RefPtr.h" 69 #include "wtf/RefPtr.h"
71 70
72 namespace WebCore { 71 namespace WebCore {
73 72
74 static void initializeScriptWrappableForInterface(TestObject* object) 73 static void initializeScriptWrappableForInterface(TestObject* object)
75 { 74 {
76 if (ScriptWrappable::wrapperCanBeStoredInObject(object)) 75 if (ScriptWrappable::wrapperCanBeStoredInObject(object))
(...skipping 3424 matching lines...) Expand 10 before | Expand all | Expand 10 after
3501 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); 3500 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
3502 } 3501 }
3503 3502
3504 static void customMethodWithArgsMethodCallback(const v8::FunctionCallbackInfo<v8 ::Value>& info) 3503 static void customMethodWithArgsMethodCallback(const v8::FunctionCallbackInfo<v8 ::Value>& info)
3505 { 3504 {
3506 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 3505 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
3507 V8TestObject::customMethodWithArgsMethodCustom(info); 3506 V8TestObject::customMethodWithArgsMethodCustom(info);
3508 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution"); 3507 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
3509 } 3508 }
3510 3509
3511 static void addEventListenerMethod(const v8::FunctionCallbackInfo<v8::Value>& in fo)
3512 {
3513 ExceptionState exceptionState(ExceptionState::ExecutionContext, "addEventLis tener", "TestObject", info.Holder(), info.GetIsolate());
3514 EventTarget* impl = V8TestObject::toNative(info.Holder());
3515 if (DOMWindow* window = impl->toDOMWindow()) {
3516 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window ->frame(), exceptionState)) {
3517 exceptionState.throwIfNeeded();
3518 return;
3519 }
3520 if (!window->document())
3521 return;
3522 }
3523 RefPtr<EventListener> listener = V8EventListenerList::getEventListener(info[ 1], false, ListenerFindOrCreate);
3524 if (listener) {
3525 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithNullCheck>, ev entName, info[0]);
3526 impl->addEventListener(eventName, listener, info[2]->BooleanValue());
3527 if (!impl->toNode())
3528 addHiddenValueToArray(info.Holder(), info[1], V8TestObject::eventLis tenerCacheIndex, info.GetIsolate());
3529 }
3530 }
3531
3532 static void addEventListenerMethodCallback(const v8::FunctionCallbackInfo<v8::Va lue>& info)
3533 {
3534 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
3535 TestObjectV8Internal::addEventListenerMethod(info);
3536 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
3537 }
3538
3539 static void removeEventListenerMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3540 {
3541 ExceptionState exceptionState(ExceptionState::ExecutionContext, "removeEvent Listener", "TestObject", info.Holder(), info.GetIsolate());
3542 EventTarget* impl = V8TestObject::toNative(info.Holder());
3543 if (DOMWindow* window = impl->toDOMWindow()) {
3544 if (!BindingSecurity::shouldAllowAccessToFrame(info.GetIsolate(), window ->frame(), exceptionState)) {
3545 exceptionState.throwIfNeeded();
3546 return;
3547 }
3548 if (!window->document())
3549 return;
3550 }
3551 RefPtr<EventListener> listener = V8EventListenerList::getEventListener(info[ 1], false, ListenerFindOnly);
3552 if (listener) {
3553 V8TRYCATCH_FOR_V8STRINGRESOURCE_VOID(V8StringResource<WithNullCheck>, ev entName, info[0]);
3554 impl->removeEventListener(eventName, listener.get(), info[2]->BooleanVal ue());
3555 if (!impl->toNode())
3556 removeHiddenValueFromArray(info.Holder(), info[1], V8TestObject::eve ntListenerCacheIndex, info.GetIsolate());
3557 }
3558 }
3559
3560 static void removeEventListenerMethodCallback(const v8::FunctionCallbackInfo<v8: :Value>& info)
3561 {
3562 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
3563 TestObjectV8Internal::removeEventListenerMethod(info);
3564 TRACE_EVENT_SET_SAMPLING_STATE("V8", "V8Execution");
3565 }
3566
3567 static void withScriptStateVoidMethod(const v8::FunctionCallbackInfo<v8::Value>& info) 3510 static void withScriptStateVoidMethod(const v8::FunctionCallbackInfo<v8::Value>& info)
3568 { 3511 {
3569 TestObject* imp = V8TestObject::toNative(info.Holder()); 3512 TestObject* imp = V8TestObject::toNative(info.Holder());
3570 ScriptState* currentState = ScriptState::current(); 3513 ScriptState* currentState = ScriptState::current();
3571 if (!currentState) 3514 if (!currentState)
3572 return; 3515 return;
3573 ScriptState& state = *currentState; 3516 ScriptState& state = *currentState;
3574 imp->withScriptStateVoid(&state); 3517 imp->withScriptStateVoid(&state);
3575 if (state.hadException()) { 3518 if (state.hadException()) {
3576 v8::Local<v8::Value> exception = state.exception(); 3519 v8::Local<v8::Value> exception = state.exception();
(...skipping 1863 matching lines...) Expand 10 before | Expand all | Expand 10 after
5440 {"methodReturningSequence", TestObjectV8Internal::methodReturningSequenceMet hodCallback, 0, 1}, 5383 {"methodReturningSequence", TestObjectV8Internal::methodReturningSequenceMet hodCallback, 0, 1},
5441 {"methodWithEnumArg", TestObjectV8Internal::methodWithEnumArgMethodCallback, 0, 1}, 5384 {"methodWithEnumArg", TestObjectV8Internal::methodWithEnumArgMethodCallback, 0, 1},
5442 {"methodThatRequiresAllArgsAndThrows", TestObjectV8Internal::methodThatRequi resAllArgsAndThrowsMethodCallback, 0, 2}, 5385 {"methodThatRequiresAllArgsAndThrows", TestObjectV8Internal::methodThatRequi resAllArgsAndThrowsMethodCallback, 0, 2},
5443 {"methodQueryListListener", TestObjectV8Internal::methodQueryListListenerMet hodCallback, 0, 1}, 5386 {"methodQueryListListener", TestObjectV8Internal::methodQueryListListenerMet hodCallback, 0, 1},
5444 {"serializedValue", TestObjectV8Internal::serializedValueMethodCallback, 0, 1}, 5387 {"serializedValue", TestObjectV8Internal::serializedValueMethodCallback, 0, 1},
5445 {"optionsObject", TestObjectV8Internal::optionsObjectMethodCallback, 0, 1}, 5388 {"optionsObject", TestObjectV8Internal::optionsObjectMethodCallback, 0, 1},
5446 {"optionsObjectList", TestObjectV8Internal::optionsObjectListMethodCallback, 0, 1}, 5389 {"optionsObjectList", TestObjectV8Internal::optionsObjectListMethodCallback, 0, 1},
5447 {"methodWithException", TestObjectV8Internal::methodWithExceptionMethodCallb ack, 0, 0}, 5390 {"methodWithException", TestObjectV8Internal::methodWithExceptionMethodCallb ack, 0, 0},
5448 {"customMethod", TestObjectV8Internal::customMethodMethodCallback, 0, 0}, 5391 {"customMethod", TestObjectV8Internal::customMethodMethodCallback, 0, 0},
5449 {"customMethodWithArgs", TestObjectV8Internal::customMethodWithArgsMethodCal lback, 0, 3}, 5392 {"customMethodWithArgs", TestObjectV8Internal::customMethodWithArgsMethodCal lback, 0, 3},
5450 {"addEventListener", TestObjectV8Internal::addEventListenerMethodCallback, 0 , 2},
5451 {"removeEventListener", TestObjectV8Internal::removeEventListenerMethodCallb ack, 0, 2},
5452 {"withScriptStateVoid", TestObjectV8Internal::withScriptStateVoidMethodCallb ack, 0, 0}, 5393 {"withScriptStateVoid", TestObjectV8Internal::withScriptStateVoidMethodCallb ack, 0, 0},
5453 {"withScriptStateObj", TestObjectV8Internal::withScriptStateObjMethodCallbac k, 0, 0}, 5394 {"withScriptStateObj", TestObjectV8Internal::withScriptStateObjMethodCallbac k, 0, 0},
5454 {"withScriptStateVoidException", TestObjectV8Internal::withScriptStateVoidEx ceptionMethodCallback, 0, 0}, 5395 {"withScriptStateVoidException", TestObjectV8Internal::withScriptStateVoidEx ceptionMethodCallback, 0, 0},
5455 {"withScriptStateObjException", TestObjectV8Internal::withScriptStateObjExce ptionMethodCallback, 0, 0}, 5396 {"withScriptStateObjException", TestObjectV8Internal::withScriptStateObjExce ptionMethodCallback, 0, 0},
5456 {"withExecutionContext", TestObjectV8Internal::withExecutionContextMethodCal lback, 0, 0}, 5397 {"withExecutionContext", TestObjectV8Internal::withExecutionContextMethodCal lback, 0, 0},
5457 {"withExecutionContextAndScriptState", TestObjectV8Internal::withExecutionCo ntextAndScriptStateMethodCallback, 0, 0}, 5398 {"withExecutionContextAndScriptState", TestObjectV8Internal::withExecutionCo ntextAndScriptStateMethodCallback, 0, 0},
5458 {"withExecutionContextAndScriptStateObjException", TestObjectV8Internal::wit hExecutionContextAndScriptStateObjExceptionMethodCallback, 0, 0}, 5399 {"withExecutionContextAndScriptStateObjException", TestObjectV8Internal::wit hExecutionContextAndScriptStateObjExceptionMethodCallback, 0, 0},
5459 {"withExecutionContextAndScriptStateWithSpaces", TestObjectV8Internal::withE xecutionContextAndScriptStateWithSpacesMethodCallback, 0, 0}, 5400 {"withExecutionContextAndScriptStateWithSpaces", TestObjectV8Internal::withE xecutionContextAndScriptStateWithSpacesMethodCallback, 0, 0},
5460 {"withActiveWindowAndFirstWindow", TestObjectV8Internal::withActiveWindowAnd FirstWindowMethodCallback, 0, 0}, 5401 {"withActiveWindowAndFirstWindow", TestObjectV8Internal::withActiveWindowAnd FirstWindowMethodCallback, 0, 0},
5461 {"methodWithOptionalArg", TestObjectV8Internal::methodWithOptionalArgMethodC allback, 0, 0}, 5402 {"methodWithOptionalArg", TestObjectV8Internal::methodWithOptionalArgMethodC allback, 0, 0},
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
5630 fromInternalPointer(object)->deref(); 5571 fromInternalPointer(object)->deref();
5631 } 5572 }
5632 5573
5633 template<> 5574 template<>
5634 v8::Handle<v8::Value> toV8NoInline(TestObject* impl, v8::Handle<v8::Object> crea tionContext, v8::Isolate* isolate) 5575 v8::Handle<v8::Value> toV8NoInline(TestObject* impl, v8::Handle<v8::Object> crea tionContext, v8::Isolate* isolate)
5635 { 5576 {
5636 return toV8(impl, creationContext, isolate); 5577 return toV8(impl, creationContext, isolate);
5637 } 5578 }
5638 5579
5639 } // namespace WebCore 5580 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/bindings/tests/idls/TestObjectPython.idl ('k') | Source/bindings/tests/results/V8TestObjectPython.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698