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

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

Issue 59853010: IDL compiler: [PerContextEnabled] methods (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebased Created 7 years, 1 month 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
« no previous file with comments | « Source/bindings/tests/results/V8TestObjectPython.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 5244 matching lines...) Expand 10 before | Expand all | Expand 10 after
5255 imp->notEnumerableVoidMethod(); 5255 imp->notEnumerableVoidMethod();
5256 } 5256 }
5257 5257
5258 static void notEnumerableVoidMethodMethodCallback(const v8::FunctionCallbackInfo <v8::Value>& info) 5258 static void notEnumerableVoidMethodMethodCallback(const v8::FunctionCallbackInfo <v8::Value>& info)
5259 { 5259 {
5260 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod"); 5260 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
5261 TestObjectPythonV8Internal::notEnumerableVoidMethodMethod(info); 5261 TestObjectPythonV8Internal::notEnumerableVoidMethodMethod(info);
5262 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution"); 5262 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
5263 } 5263 }
5264 5264
5265 static void perContextEnabledVoidMethodMethod(const v8::FunctionCallbackInfo<v8: :Value>& info)
5266 {
5267 TestObjectPython* imp = V8TestObjectPython::toNative(info.Holder());
5268 imp->perContextEnabledVoidMethod();
5269 }
5270
5271 static void perContextEnabledVoidMethodMethodCallback(const v8::FunctionCallback Info<v8::Value>& info)
5272 {
5273 TRACE_EVENT_SET_SAMPLING_STATE("Blink", "DOMMethod");
5274 TestObjectPythonV8Internal::perContextEnabledVoidMethodMethod(info);
5275 TRACE_EVENT_SET_SAMPLING_STATE("V8", "Execution");
5276 }
5277
5265 } // namespace TestObjectPythonV8Internal 5278 } // namespace TestObjectPythonV8Internal
5266 5279
5267 static const V8DOMConfiguration::AttributeConfiguration V8TestObjectPythonAttrib utes[] = { 5280 static const V8DOMConfiguration::AttributeConfiguration V8TestObjectPythonAttrib utes[] = {
5268 {"readonlyStringAttribute", TestObjectPythonV8Internal::readonlyStringAttrib uteAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAU LT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, 5281 {"readonlyStringAttribute", TestObjectPythonV8Internal::readonlyStringAttrib uteAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAU LT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
5269 {"readonlyTestInterfaceEmptyAttribute", TestObjectPythonV8Internal::readonly TestInterfaceEmptyAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8:: AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, 5282 {"readonlyTestInterfaceEmptyAttribute", TestObjectPythonV8Internal::readonly TestInterfaceEmptyAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8:: AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
5270 {"readonlyLongAttribute", TestObjectPythonV8Internal::readonlyLongAttributeA ttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, 5283 {"readonlyLongAttribute", TestObjectPythonV8Internal::readonlyLongAttributeA ttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
5271 {"dateAttribute", TestObjectPythonV8Internal::dateAttributeAttributeGetterCa llback, TestObjectPythonV8Internal::dateAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribut e>(v8::None), 0 /* on instance */}, 5284 {"dateAttribute", TestObjectPythonV8Internal::dateAttributeAttributeGetterCa llback, TestObjectPythonV8Internal::dateAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAttribut e>(v8::None), 0 /* on instance */},
5272 {"stringAttribute", TestObjectPythonV8Internal::stringAttributeAttributeGett erCallback, TestObjectPythonV8Internal::stringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAt tribute>(v8::None), 0 /* on instance */}, 5285 {"stringAttribute", TestObjectPythonV8Internal::stringAttributeAttributeGett erCallback, TestObjectPythonV8Internal::stringAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::PropertyAt tribute>(v8::None), 0 /* on instance */},
5273 {"readonlyDOMTimeStampAttribute", TestObjectPythonV8Internal::readonlyDOMTim eStampAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessContro l>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */}, 5286 {"readonlyDOMTimeStampAttribute", TestObjectPythonV8Internal::readonlyDOMTim eStampAttributeAttributeGetterCallback, 0, 0, 0, 0, static_cast<v8::AccessContro l>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on instance */},
5274 {"booleanAttribute", TestObjectPythonV8Internal::booleanAttributeAttributeGe tterCallback, TestObjectPythonV8Internal::booleanAttributeAttributeSetterCallbac k, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::Propert yAttribute>(v8::None), 0 /* on instance */}, 5287 {"booleanAttribute", TestObjectPythonV8Internal::booleanAttributeAttributeGe tterCallback, TestObjectPythonV8Internal::booleanAttributeAttributeSetterCallbac k, 0, 0, 0, static_cast<v8::AccessControl>(v8::DEFAULT), static_cast<v8::Propert yAttribute>(v8::None), 0 /* on instance */},
(...skipping 389 matching lines...) Expand 10 before | Expand all | Expand 10 after
5664 void V8TestObjectPython::installPerContextEnabledProperties(v8::Handle<v8::Objec t> instance, TestObjectPython* impl, v8::Isolate* isolate) 5677 void V8TestObjectPython::installPerContextEnabledProperties(v8::Handle<v8::Objec t> instance, TestObjectPython* impl, v8::Isolate* isolate)
5665 { 5678 {
5666 v8::Local<v8::Object> proto = v8::Local<v8::Object>::Cast(instance->GetProto type()); 5679 v8::Local<v8::Object> proto = v8::Local<v8::Object>::Cast(instance->GetProto type());
5667 if (ContextFeatures::featureNameEnabled(impl->document())) { 5680 if (ContextFeatures::featureNameEnabled(impl->document())) {
5668 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu ration =\ 5681 static const V8DOMConfiguration::AttributeConfiguration attributeConfigu ration =\
5669 {"perContextEnabledLongAttribute", TestObjectPythonV8Internal::perContex tEnabledLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::perCon textEnabledLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::Access Control>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on ins tance */}; 5682 {"perContextEnabledLongAttribute", TestObjectPythonV8Internal::perContex tEnabledLongAttributeAttributeGetterCallback, TestObjectPythonV8Internal::perCon textEnabledLongAttributeAttributeSetterCallback, 0, 0, 0, static_cast<v8::Access Control>(v8::DEFAULT), static_cast<v8::PropertyAttribute>(v8::None), 0 /* on ins tance */};
5670 V8DOMConfiguration::installAttribute(instance, proto, attributeConfigura tion, isolate); 5683 V8DOMConfiguration::installAttribute(instance, proto, attributeConfigura tion, isolate);
5671 } 5684 }
5672 } 5685 }
5673 5686
5687 void V8TestObjectPython::installPerContextEnabledPrototypeProperties(v8::Handle< v8::Object> proto, v8::Isolate* isolate)
5688 {
5689 UNUSED_PARAM(proto);
5690 v8::Local<v8::Signature> defaultSignature = v8::Signature::New(GetTemplate(i solate, worldType(isolate)));
5691 UNUSED_PARAM(defaultSignature);
5692
5693 ExecutionContext* context = toExecutionContext(proto->CreationContext());
5694 if (context && context->isDocument() && ContextFeatures::featureNameEnabled( toDocument(context)))
5695 proto->Set(v8::String::NewSymbol("perContextEnabledVoidMethod"), v8::Fun ctionTemplate::New(TestObjectPythonV8Internal::perContextEnabledVoidMethodMethod Callback, v8Undefined(), defaultSignature, 0)->GetFunction());
5696 }
5697
5674 v8::Handle<v8::Object> V8TestObjectPython::createWrapper(PassRefPtr<TestObjectPy thon> impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate) 5698 v8::Handle<v8::Object> V8TestObjectPython::createWrapper(PassRefPtr<TestObjectPy thon> impl, v8::Handle<v8::Object> creationContext, v8::Isolate* isolate)
5675 { 5699 {
5676 ASSERT(impl); 5700 ASSERT(impl);
5677 ASSERT(!DOMDataStore::containsWrapper<V8TestObjectPython>(impl.get(), isolat e)); 5701 ASSERT(!DOMDataStore::containsWrapper<V8TestObjectPython>(impl.get(), isolat e));
5678 if (ScriptWrappable::wrapperCanBeStoredInObject(impl.get())) { 5702 if (ScriptWrappable::wrapperCanBeStoredInObject(impl.get())) {
5679 const WrapperTypeInfo* actualInfo = ScriptWrappable::getTypeInfoFromObje ct(impl.get()); 5703 const WrapperTypeInfo* actualInfo = ScriptWrappable::getTypeInfoFromObje ct(impl.get());
5680 // Might be a XXXConstructor::wrapperTypeInfo instead of an XXX::wrapper TypeInfo. These will both have 5704 // Might be a XXXConstructor::wrapperTypeInfo instead of an XXX::wrapper TypeInfo. These will both have
5681 // the same object de-ref functions, though, so use that as the basis of the check. 5705 // the same object de-ref functions, though, so use that as the basis of the check.
5682 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(actualInfo->derefObjectFunction == wrapperTypeInfo.derefObjectFunction); 5706 RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(actualInfo->derefObjectFunction == wrapperTypeInfo.derefObjectFunction);
5683 } 5707 }
5684 5708
5685 v8::Handle<v8::Object> wrapper = V8DOMWrapper::createWrapper(creationContext , &wrapperTypeInfo, toInternalPointer(impl.get()), isolate); 5709 v8::Handle<v8::Object> wrapper = V8DOMWrapper::createWrapper(creationContext , &wrapperTypeInfo, toInternalPointer(impl.get()), isolate);
5686 if (UNLIKELY(wrapper.IsEmpty())) 5710 if (UNLIKELY(wrapper.IsEmpty()))
5687 return wrapper; 5711 return wrapper;
5688 5712
5689 installPerContextEnabledProperties(wrapper, impl.get(), isolate); 5713 installPerContextEnabledProperties(wrapper, impl.get(), isolate);
5690 V8DOMWrapper::associateObjectWithWrapper<V8TestObjectPython>(impl, &wrapperT ypeInfo, wrapper, isolate, WrapperConfiguration::Independent); 5714 V8DOMWrapper::associateObjectWithWrapper<V8TestObjectPython>(impl, &wrapperT ypeInfo, wrapper, isolate, WrapperConfiguration::Independent);
5691 return wrapper; 5715 return wrapper;
5692 } 5716 }
5693 5717
5694 void V8TestObjectPython::derefObject(void* object) 5718 void V8TestObjectPython::derefObject(void* object)
5695 { 5719 {
5696 fromInternalPointer(object)->deref(); 5720 fromInternalPointer(object)->deref();
5697 } 5721 }
5698 5722
5699 } // namespace WebCore 5723 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/bindings/tests/results/V8TestObjectPython.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698