Changeset 60784 in webkit
- Timestamp:
- Jun 7, 2010 7:47:46 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 23 added
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r60781 r60784 1 2010-06-07 Nikolas Zimmermann <nzimmermann@rim.com> 2 3 Reviewed by Sam Weinig. 4 5 Add CPP bindings generator 6 https://bugs.webkit.org/show_bug.cgi?id=38279 7 8 Add CPP bindings generator used in Olympia platform. 9 We can succesfully generate cpp bindings for all IDLs except: 10 - DOMWindow.idl / EventTarget.idl (filtered out in the IDL list in DerivedSources.make for non-jsc/v8 generators anyways, so no problem at all) 11 - inspector/ (not needed for us at all) 12 - svg/ (needs custom handling, related to animated attributes) 13 14 All generated files are free of style issues: "Total errors found: 0 in 510 files" 15 Not integrated in any build system so far, though I've successfully tested on Mac and inside Olympia, of course. 16 17 * bindings/cpp: Added. 18 * bindings/cpp/WebDOMCString.cpp: Added. 19 (WebDOMCString::reset): 20 (WebDOMCString::assign): 21 (WebDOMCString::length): 22 (WebDOMCString::data): 23 (WebDOMCString::utf16): 24 (WebDOMCString::fromUTF16): 25 (WebDOMCString::WebDOMCString): 26 (WebDOMCString::operator=): 27 (WebDOMCString::operator WTF::CString): 28 * bindings/cpp/WebDOMCString.h: Added. 29 (WebDOMCString::~WebDOMCString): 30 (WebDOMCString::WebDOMCString): 31 (WebDOMCString::operator=): 32 (WebDOMCString::isEmpty): 33 (WebDOMCString::isNull): 34 * bindings/cpp/WebDOMEventListenerCustom.cpp: Added. 35 (WebDOMEventListener::handleEvent): 36 (toWebKit): 37 * bindings/cpp/WebDOMEventTarget.cpp: Added. 38 (WebDOMEventTarget::WebDOMEventTargetPrivate::WebDOMEventTargetPrivate): 39 (WebDOMEventTarget::WebDOMEventTarget): 40 (WebDOMEventTarget::~WebDOMEventTarget): 41 (WebDOMEventTarget::impl): 42 (toWebCore): 43 (toWebKit): 44 * bindings/cpp/WebDOMEventTarget.h: Added. 45 * bindings/cpp/WebDOMHTMLDocumentCustom.cpp: Added. 46 (documentWrite): 47 (WebDOMHTMLDocument::write): 48 (WebDOMHTMLDocument::writeln): 49 * bindings/cpp/WebDOMNodeCustom.cpp: Added. 50 (WebDOMNode::insertBefore): 51 (WebDOMNode::replaceChild): 52 (WebDOMNode::removeChild): 53 (WebDOMNode::appendChild): 54 (WebDOMNode::addEventListener): 55 (WebDOMNode::removeEventListener): 56 * bindings/cpp/WebDOMObject.h: Added. 57 (WebDOMObject::WebDOMObject): 58 (WebDOMObject::~WebDOMObject): 59 * bindings/cpp/WebDOMString.cpp: Added. 60 (WebDOMString::reset): 61 (WebDOMString::assign): 62 (WebDOMString::length): 63 (WebDOMString::data): 64 (WebDOMString::utf8): 65 (WebDOMString::fromUTF8): 66 (WebDOMString::WebDOMString): 67 (WebDOMString::operator=): 68 (WebDOMString::operator WebCore::String): 69 (WebDOMString::operator WebCore::AtomicString): 70 (WebDOMString::equals): 71 * bindings/cpp/WebDOMString.h: Added. 72 (WebDOMString::~WebDOMString): 73 (WebDOMString::WebDOMString): 74 (WebDOMString::operator=): 75 (WebDOMString::isEmpty): 76 (WebDOMString::isNull): 77 * bindings/cpp/WebExceptionHandler.cpp: Added. 78 (globalExceptionHandler): 79 (webInstallExceptionHandler): 80 (webRaiseDOMException): 81 * bindings/cpp/WebExceptionHandler.h: Added. 82 (webDOMRaiseError): 83 * bindings/cpp/WebNativeEventListener.cpp: Added. 84 (WebNativeEventListener::WebNativeEventListener): 85 (WebNativeEventListener::~WebNativeEventListener): 86 (WebNativeEventListener::handleEvent): 87 (WebNativeEventListener::reportError): 88 (WebNativeEventListener::operator==): 89 * bindings/cpp/WebNativeEventListener.h: Added. 90 (WebNativeEventListener::create): 91 (WebNativeEventListener::cast): 92 * bindings/scripts/CodeGeneratorCPP.pm: Added. 93 * bindings/scripts/test/CPP: Added. 94 * bindings/scripts/test/CPP/WebDOMTestCallback.cpp: Added. 95 (WebDOMTestCallback::WebDOMTestCallbackPrivate::WebDOMTestCallbackPrivate): 96 (WebDOMTestCallback::WebDOMTestCallback): 97 (WebDOMTestCallback::impl): 98 (WebDOMTestCallback::~WebDOMTestCallback): 99 (WebDOMTestCallback::callbackWithClass1Param): 100 (WebDOMTestCallback::callbackWithClass2Param): 101 (WebDOMTestCallback::callbackWithNonBoolReturnType): 102 (toWebCore): 103 (toWebKit): 104 * bindings/scripts/test/CPP/WebDOMTestCallback.h: Added. 105 * bindings/scripts/test/CPP/WebDOMTestInterface.cpp: Added. 106 (WebDOMTestInterface::WebDOMTestInterfacePrivate::WebDOMTestInterfacePrivate): 107 (WebDOMTestInterface::WebDOMTestInterface): 108 (WebDOMTestInterface::impl): 109 (WebDOMTestInterface::~WebDOMTestInterface): 110 (toWebCore): 111 (toWebKit): 112 * bindings/scripts/test/CPP/WebDOMTestInterface.h: Added. 113 * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Added. 114 (WebDOMTestObj::WebDOMTestObjPrivate::WebDOMTestObjPrivate): 115 (WebDOMTestObj::WebDOMTestObj): 116 (WebDOMTestObj::impl): 117 (WebDOMTestObj::~WebDOMTestObj): 118 (WebDOMTestObj::readOnlyIntAttr): 119 (WebDOMTestObj::readOnlyStringAttr): 120 (WebDOMTestObj::readOnlyTestObjAttr): 121 (WebDOMTestObj::intAttr): 122 (WebDOMTestObj::setIntAttr): 123 (WebDOMTestObj::longLongAttr): 124 (WebDOMTestObj::setLongLongAttr): 125 (WebDOMTestObj::unsignedLongLongAttr): 126 (WebDOMTestObj::setUnsignedLongLongAttr): 127 (WebDOMTestObj::stringAttr): 128 (WebDOMTestObj::setStringAttr): 129 (WebDOMTestObj::testObjAttr): 130 (WebDOMTestObj::setTestObjAttr): 131 (WebDOMTestObj::attrWithException): 132 (WebDOMTestObj::setAttrWithException): 133 (WebDOMTestObj::attrWithSetterException): 134 (WebDOMTestObj::setAttrWithSetterException): 135 (WebDOMTestObj::attrWithGetterException): 136 (WebDOMTestObj::setAttrWithGetterException): 137 (WebDOMTestObj::scriptStringAttr): 138 (WebDOMTestObj::voidMethod): 139 (WebDOMTestObj::voidMethodWithArgs): 140 (WebDOMTestObj::intMethod): 141 (WebDOMTestObj::intMethodWithArgs): 142 (WebDOMTestObj::objMethod): 143 (WebDOMTestObj::objMethodWithArgs): 144 (WebDOMTestObj::methodThatRequiresAllArgs): 145 (WebDOMTestObj::methodThatRequiresAllArgsAndThrows): 146 (WebDOMTestObj::serializedValue): 147 (WebDOMTestObj::methodWithException): 148 (WebDOMTestObj::addEventListener): 149 (WebDOMTestObj::removeEventListener): 150 (WebDOMTestObj::withDynamicFrame): 151 (WebDOMTestObj::withDynamicFrameAndArg): 152 (WebDOMTestObj::withDynamicFrameAndOptionalArg): 153 (WebDOMTestObj::withScriptStateVoid): 154 (WebDOMTestObj::withScriptStateObj): 155 (WebDOMTestObj::withScriptStateVoidException): 156 (WebDOMTestObj::withScriptStateObjException): 157 (WebDOMTestObj::methodWithOptionalArg): 158 (WebDOMTestObj::methodWithNonOptionalArgAndOptionalArg): 159 (WebDOMTestObj::methodWithNonOptionalArgAndTwoOptionalArgs): 160 (toWebCore): 161 (toWebKit): 162 * bindings/scripts/test/CPP/WebDOMTestObj.h: Added. 163 * css/StyleSheet.idl: Export helper method isCSSStyleSheet() for cpp bindings only. 164 * dom/CustomEvent.idl: Disabled for cpp bindings, needs arbitary input parameter handling support ('DOMObject' type). 165 * dom/Document.idl: Ignore getCSSCanvasContext() for cpp bindings and export helper method isHTMLDocument() (cpp bindings only). 166 * dom/Event.idl: Export isMutationEvent()/isMouseEvent()/isUIEvent() helpers for cpp bindings only. 167 * dom/EventListener.h: Add CPPEventListenerType. 168 * dom/Node.idl: addEventListener/removeEventListener need [Custom] flag for cpp bindings. 169 * dom/PopStateEvent.idl: Disabled just like CustomEvent, for the same reason ("any" argument type handling). 170 * html/HTMLCanvasElement.idl: Disable getContext() method for cpp bindings, as it's done for objc bindings. 171 * html/HTMLDocument.idl: Add [NoCPPCustom] marker for open(), as we're just autogenerating it. 172 * html/HTMLInputElement.idl: Disable valueAsDate() method for cpp bindings, as we're missing native 'Date' type support. 173 * html/TextMetrics.h: Add missing PassRefPtr.h include. 174 * html/canvas/CanvasRenderingContext2D.idl: Disable methods (setLineCap, etc..) for cpp bindings whose names clash with property setters. 175 * page/AbstractView.idl: Rename 'Media' type to 'StyleMedia' - this should have been done before. 176 * page/Location.idl: Disable several methods which would need a custom implementation for the cpp bindings. 177 * page/WebKitPoint.h: Add missing PassRefPtr.h include. 178 * storage/SQLResultSet.idl: Correct type from 'long' to 'long long', for cpp bindings only though as it wouldn't build on Chromium/V8. 179 * workers/DedicatedWorkerContext.idl: Disable postMessage() for now when using cpp bindings, would need custom code for us. 180 * workers/WorkerContext.idl: Hide constructors from cpp bindings. 181 1 182 2010-06-07 Julien Chaffraix <jchaffraix@webkit.org> 2 183 -
trunk/WebCore/css/StyleSheet.idl
r52921 r60784 34 34 readonly attribute [ConvertNullStringTo=Null] DOMString title; 35 35 readonly attribute MediaList media; 36 37 #if defined(LANGUAGE_CPP) && LANGUAGE_CPP 38 // Extra WebCore methods exposed to allowe compile-time casting in C++ 39 boolean isCSSStyleSheet(); 40 #endif 41 36 42 }; 37 43 -
trunk/WebCore/dom/CustomEvent.idl
r56445 r60784 26 26 module events { 27 27 28 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 28 29 // Introduced in DOM Level 3: 29 30 interface CustomEvent : Event { … … 36 37 in DOMObject detailArg); 37 38 }; 39 #endif 38 40 39 41 } -
trunk/WebCore/dom/Document.idl
r60624 r60784 220 220 #endif 221 221 222 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 222 223 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C 223 224 [V8Custom] DOMObject getCSSCanvasContext(in DOMString contextId, in DOMString name, in long width, in long height); 225 #endif 224 226 #endif 225 227 … … 312 314 attribute [DontEnum,Conditional=TOUCH_EVENTS,EnabledAtRuntime] EventListener ontouchcancel; 313 315 #endif 316 317 #if defined(LANGUAGE_CPP) && LANGUAGE_CPP 318 // Extra WebCore methods exposed to allow compile-time casting in C++ 319 boolean isHTMLDocument(); 320 #endif 321 314 322 }; 315 323 -
trunk/WebCore/dom/Event.idl
r56195 r60784 80 80 #endif 81 81 82 #if defined(LANGUAGE_CPP) && LANGUAGE_CPP 83 // Extra WebCore methods exposed to allow compile-time casting in C++ 84 boolean isMutationEvent(); 85 boolean isMouseEvent(); 86 boolean isUIEvent(); 87 #endif 88 82 89 }; 83 90 -
trunk/WebCore/dom/EventListener.h
r60225 r60784 37 37 class EventListener : public RefCounted<EventListener> { 38 38 public: 39 enum Type { JSEventListenerType, 40 ImageEventListenerType, 41 InspectorDOMAgentType, 42 InspectorDOMStorageResourceType, 43 ObjCEventListenerType, 44 ConditionEventListenerType, 45 GObjectEventListenerType }; 46 39 enum Type { 40 JSEventListenerType, 41 ImageEventListenerType, 42 InspectorDOMAgentType, 43 InspectorDOMStorageResourceType, 44 ObjCEventListenerType, 45 CPPEventListenerType, 46 ConditionEventListenerType, 47 GObjectEventListenerType 48 }; 49 47 50 virtual ~EventListener() { } 48 51 virtual bool operator==(const EventListener&) = 0; -
trunk/WebCore/dom/Node.idl
r60023 r60784 133 133 #endif /* defined(LANGUAGE_OBJECTIVE_C) */ 134 134 135 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 135 136 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C 136 137 #if !defined(LANGUAGE_GOBJECT) || !LANGUAGE_GOBJECT … … 145 146 #endif 146 147 #endif 148 #endif 149 150 #if defined(LANGUAGE_CPP) && LANGUAGE_CPP 151 [Custom] void addEventListener(in DOMString type, 152 in EventListener listener, 153 in boolean useCapture); 154 [Custom] void removeEventListener(in DOMString type, 155 in EventListener listener, 156 in boolean useCapture); 157 boolean dispatchEvent(in Event event) 158 raises(EventException); 159 #endif 160 147 161 }; 148 162 -
trunk/WebCore/dom/PopStateEvent.idl
r58504 r60784 27 27 module events { 28 28 29 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 29 30 interface PopStateEvent : Event { 30 31 void initPopStateEvent(in DOMString typeArg, … … 35 36 readonly attribute [V8CustomGetter] any state; 36 37 }; 38 #endif 37 39 38 40 } -
trunk/WebCore/html/HTMLCanvasElement.idl
r60458 r60784 37 37 raises(DOMException); 38 38 39 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 39 40 #if !defined(LANGUAGE_OBJECTIVE_C) || !LANGUAGE_OBJECTIVE_C 40 41 // The custom binding is needed to handle context creation attributes. 41 42 [Custom] DOMObject getContext(in DOMString contextId); 43 #endif 42 44 #endif 43 45 -
trunk/WebCore/html/HTMLDocument.idl
r52921 r60784 24 24 HasOverridingNameGetter 25 25 ] HTMLDocument : Document { 26 [Custom ] void open();26 [Custom, NoCPPCustom] void open(); 27 27 void close(); 28 28 [Custom] void write(in DOMString text); -
trunk/WebCore/html/HTMLInputElement.idl
r60232 r60784 58 58 attribute [ConvertNullToNullString] DOMString useMap; 59 59 attribute [ConvertNullToNullString] DOMString value; 60 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 60 61 attribute Date valueAsDate setter raises(DOMException); 62 #endif 61 63 attribute double valueAsNumber setter raises(DOMException); 62 64 #if defined(ENABLE_DATALIST) && ENABLE_DATALIST -
trunk/WebCore/html/TextMetrics.h
r58718 r60784 27 27 #define TextMetrics_h 28 28 29 #include <wtf/PassRefPtr.h> 29 30 #include <wtf/RefCounted.h> 30 31 -
trunk/WebCore/html/canvas/CanvasRenderingContext2D.idl
r59613 r60784 91 91 void setCompositeOperation(in DOMString compositeOperation); 92 92 93 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 93 94 void setLineWidth(in float width); 94 95 void setLineCap(in DOMString cap); 95 96 void setLineJoin(in DOMString join); 96 97 void setMiterLimit(in float limit); 98 #endif 97 99 98 100 void clearShadow(); -
trunk/WebCore/page/AbstractView.idl
r58085 r60784 33 33 ] AbstractView { 34 34 readonly attribute Document document; 35 readonly attribute Media styleMedia;35 readonly attribute StyleMedia styleMedia; 36 36 }; 37 37 -
trunk/WebCore/page/Location.idl
r52534 r60784 42 42 OmitConstructor 43 43 ] Location { 44 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 44 45 attribute [DoNotCheckDomainSecurityOnSet, CustomSetter, V8DisallowShadowing] DOMString href; 46 #endif 45 47 46 48 [Custom, V8OnInstance] void assign(in DOMString url); … … 49 51 50 52 // URI decomposition attributes 53 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 51 54 attribute [CustomSetter] DOMString protocol; 52 55 attribute [CustomSetter] DOMString host; … … 56 59 attribute [CustomSetter] DOMString search; 57 60 attribute [CustomSetter] DOMString hash; 61 #endif 58 62 59 63 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT -
trunk/WebCore/page/WebKitPoint.h
r41218 r60784 27 27 #define WebKitPoint_h 28 28 29 #include <wtf/PassRefPtr.h> 29 30 #include <wtf/RefCounted.h> 30 31 -
trunk/WebCore/storage/SQLResultSet.idl
r58989 r60784 36 36 readonly attribute SQLResultSetRowList rows; 37 37 38 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 38 39 readonly attribute long insertId 39 40 getter raises(DOMException); 41 #else 42 // Explicitely choose 'long long' here to avoid a 64bit->32bit shortening warning for us. 43 readonly attribute long long insertId 44 getter raises(DOMException); 45 #endif 40 46 readonly attribute long rowsAffected; 41 47 }; -
trunk/WebCore/workers/DedicatedWorkerContext.idl
r52534 r60784 40 40 ] DedicatedWorkerContext : WorkerContext { 41 41 42 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 42 43 #if defined(LANGUAGE_JAVASCRIPT) && LANGUAGE_JAVASCRIPT 43 44 [Custom] void postMessage(in any message, in [Optional] Array messagePorts) … … 48 49 raises(DOMException); 49 50 #endif 51 #endif 52 50 53 attribute EventListener onmessage; 51 54 -
trunk/WebCore/workers/WorkerContext.idl
r59540 r60784 80 80 #endif 81 81 82 #if !defined(LANGUAGE_CPP) || !LANGUAGE_CPP 82 83 // Constructors 83 84 attribute MessageEventConstructor MessageEvent; … … 94 95 attribute [JSCCustomGetter,EnabledAtRuntime] WebSocketConstructor WebSocket; // Usable with the new operator 95 96 #endif 97 #endif 96 98 }; 97 99 -
trunk/WebKitTools/ChangeLog
r60732 r60784 1 2010-06-07 Nikolas Zimmermann <nzimmermann@rim.com> 2 3 Reviewed by Sam Weinig. 4 5 Add CPP bindings generator 6 https://bugs.webkit.org/show_bug.cgi?id=38279 7 8 Integrate CPP bindings in run-bindings-tests. 9 10 * Scripts/run-bindings-tests: 11 1 12 2010-06-04 Tony Gentilcore <tonyg@chromium.org> 2 13 -
trunk/WebKitTools/Scripts/run-bindings-tests
r58329 r60784 117 117 'ObjC', 118 118 'GObject', 119 'CPP' 119 120 ] 120 121
Note: See TracChangeset
for help on using the changeset viewer.