Title: [97225] trunk
Revision
97225
Author
[email protected]
Date
2011-10-11 21:05:11 -0700 (Tue, 11 Oct 2011)

Log Message

Implement a WebKitTransitionEvent constructor for JSC
https://bugs.webkit.org/show_bug.cgi?id=69829

Reviewed by Adam Barth.

Source/WebCore:

There is no spec for the WebKitTransitionEvent constructor
since it is WebKit-specific. However, judging from the current
IDL of initWebKitTransitionEvent(), the constructor IDL
should be as follows.

[Constructor(DOMString type, optional WebKitTransitionEventInit eventInitDict)]
interface WebKitTransitionEvent : Event {
    ...;
}

dictionary WebKitTransitionEventInit : EventInit {
    DOMString propertyName;
    double elapsedTime;
}

Test: fast/events/constructors/webkit-transition-event-constructor.html

* bindings/generic/EventConstructors.h: Added a definition for the WebKitTransitionEvent constructor.
* bindings/js/JSEventConstructors.cpp: Added #includes for WebKitTransitionEvent.
* dom/WebKitTransitionEvent.cpp:
(WebCore::WebKitTransitionEventInit::WebKitTransitionEventInit):
(WebCore::WebKitTransitionEvent::WebKitTransitionEvent):
(WebCore::WebKitTransitionEvent::initWebKitTransitionEvent):
* dom/WebKitTransitionEvent.h: Added a definition for WebKitTransitionEventInit.
(WebCore::WebKitTransitionEvent::create):
(WebCore::WebKitTransitionEvent::isWebKitTransitionEvent):
* dom/WebKitTransitionEvent.idl: Makes WebKitTransitionEvent constructible.

LayoutTests:

webkit-transition-event-constructor.html checks the behavior of the WebKitTransitionEvent constructor.

* fast/dom/constructed-objects-prototypes-expected.txt:
* fast/events/constructors/webkit-transition-event-constructor-expected.txt: Added.
* fast/events/constructors/webkit-transition-event-constructor.html: Added.
* platform/chromium/test_expectations.txt: Skipped webkit-transition-event-constructor.html, since V8 does not yet have the WebKitTransitionEvent constructor.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (97224 => 97225)


--- trunk/LayoutTests/ChangeLog	2011-10-12 03:45:47 UTC (rev 97224)
+++ trunk/LayoutTests/ChangeLog	2011-10-12 04:05:11 UTC (rev 97225)
@@ -1,3 +1,17 @@
+2011-10-11  Kentaro Hara  <[email protected]>
+
+        Implement a WebKitTransitionEvent constructor for JSC
+        https://bugs.webkit.org/show_bug.cgi?id=69829
+
+        Reviewed by Adam Barth.
+
+        webkit-transition-event-constructor.html checks the behavior of the WebKitTransitionEvent constructor.
+
+        * fast/dom/constructed-objects-prototypes-expected.txt:
+        * fast/events/constructors/webkit-transition-event-constructor-expected.txt: Added.
+        * fast/events/constructors/webkit-transition-event-constructor.html: Added.
+        * platform/chromium/test_expectations.txt: Skipped webkit-transition-event-constructor.html, since V8 does not yet have the WebKitTransitionEvent constructor.
+
 2011-10-11  Sameer Patil  <[email protected]>
 
         :checked pseudo selector not matching selected option

Modified: trunk/LayoutTests/fast/dom/constructed-objects-prototypes-expected.txt (97224 => 97225)


--- trunk/LayoutTests/fast/dom/constructed-objects-prototypes-expected.txt	2011-10-12 03:45:47 UTC (rev 97224)
+++ trunk/LayoutTests/fast/dom/constructed-objects-prototypes-expected.txt	2011-10-12 04:05:11 UTC (rev 97225)
@@ -35,6 +35,8 @@
 PASS (new inner.ProgressEvent()).constructor.isInner is true
 PASS (new inner.WebKitAnimationEvent()).isInner is true
 PASS (new inner.WebKitAnimationEvent()).constructor.isInner is true
+PASS (new inner.WebKitTransitionEvent()).isInner is true
+PASS (new inner.WebKitTransitionEvent()).constructor.isInner is true
 PASS (new inner.WebKitCSSMatrix()).isInner is true
 PASS (new inner.WebKitCSSMatrix()).constructor.isInner is true
 PASS (new inner.WebKitPoint()).isInner is true

Added: trunk/LayoutTests/fast/events/constructors/webkit-transition-event-constructor-expected.txt (0 => 97225)


--- trunk/LayoutTests/fast/events/constructors/webkit-transition-event-constructor-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/fast/events/constructors/webkit-transition-event-constructor-expected.txt	2011-10-12 04:05:11 UTC (rev 97225)
@@ -0,0 +1,52 @@
+This tests the constructor for the WebKitTransitionEvent DOM class.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS new WebKitTransitionEvent('eventType').bubbles is false
+PASS new WebKitTransitionEvent('eventType').cancelable is false
+PASS new WebKitTransitionEvent('eventType').propertyName is ""
+PASS new WebKitTransitionEvent('eventType').elapsedTime is 0
+PASS new WebKitTransitionEvent('eventType', { bubbles: false }).bubbles is false
+PASS new WebKitTransitionEvent('eventType', { bubbles: true }).bubbles is true
+PASS new WebKitTransitionEvent('eventType', { cancelable: false }).cancelable is false
+PASS new WebKitTransitionEvent('eventType', { cancelable: true }).cancelable is true
+PASS new WebKitTransitionEvent('eventType', { propertyName: 'doremi' }).propertyName is "doremi"
+PASS new WebKitTransitionEvent('eventType', { propertyName: '' }).propertyName is ""
+PASS new WebKitTransitionEvent('eventType', { propertyName: undefined }).propertyName is "undefined"
+PASS new WebKitTransitionEvent('eventType', { propertyName: null }).propertyName is "null"
+PASS new WebKitTransitionEvent('eventType', { propertyName: false }).propertyName is "false"
+PASS new WebKitTransitionEvent('eventType', { propertyName: true }).propertyName is "true"
+PASS new WebKitTransitionEvent('eventType', { propertyName: 12345 }).propertyName is "12345"
+PASS new WebKitTransitionEvent('eventType', { propertyName: 18446744073709551615 }).propertyName is "18446744073709552000"
+PASS new WebKitTransitionEvent('eventType', { propertyName: NaN }).propertyName is "NaN"
+PASS new WebKitTransitionEvent('eventType', { propertyName: [] }).propertyName is ""
+PASS new WebKitTransitionEvent('eventType', { propertyName: [1, 2, 3] }).propertyName is "1,2,3"
+PASS new WebKitTransitionEvent('eventType', { propertyName: {doremi: 12345} }).propertyName is "[object Object]"
+PASS new WebKitTransitionEvent('eventType', { propertyName: {valueOf: function () { return 'doremi'; } } }).propertyName is "[object Object]"
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: 0 }).elapsedTime is 0
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: 123.45 }).elapsedTime is 123.45
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: -123.45 }).elapsedTime is -123.45
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: 18446744073709551615 }).elapsedTime is 18446744073709551615
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: NaN }).elapsedTime is NaN
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: Infinity }).elapsedTime is Infinity
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: -Infinity }).elapsedTime is -Infinity
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: undefined }).elapsedTime is NaN
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: null }).elapsedTime is 0
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: false }).elapsedTime is 0
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: true }).elapsedTime is 1
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: '' }).elapsedTime is 0
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: 'doremi' }).elapsedTime is NaN
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: [] }).elapsedTime is 0
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: [123.45] }).elapsedTime is 123.45
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: [123.45, 678.90] }).elapsedTime is NaN
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: {doremi: 123.45} }).elapsedTime is NaN
+PASS new WebKitTransitionEvent('eventType', { elapsedTime: {valueOf: function () { return 123.45 } } }).elapsedTime is 123.45
+PASS new WebKitTransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45 }).bubbles is true
+PASS new WebKitTransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45 }).cancelable is true
+PASS new WebKitTransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45 }).propertyName is 'doremi'
+PASS new WebKitTransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45 }).elapsedTime is 123.45
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/fast/events/constructors/webkit-transition-event-constructor.html (0 => 97225)


--- trunk/LayoutTests/fast/events/constructors/webkit-transition-event-constructor.html	                        (rev 0)
+++ trunk/LayoutTests/fast/events/constructors/webkit-transition-event-constructor.html	2011-10-12 04:05:11 UTC (rev 97225)
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link rel="stylesheet" href=""
+<script src=""
+</head>
+<body>
+<p id="description"></p>
+<div id="console"></div>
+<script>
+
+description("This tests the constructor for the WebKitTransitionEvent DOM class.");
+
+// No initializer is passed.
+shouldBe("new WebKitTransitionEvent('eventType').bubbles", "false");
+shouldBe("new WebKitTransitionEvent('eventType').cancelable", "false");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType').propertyName", "");
+shouldBe("new WebKitTransitionEvent('eventType').elapsedTime", "0");
+
+// bubbles is passed.
+shouldBe("new WebKitTransitionEvent('eventType', { bubbles: false }).bubbles", "false");
+shouldBe("new WebKitTransitionEvent('eventType', { bubbles: true }).bubbles", "true");
+
+// cancelable is passed.
+shouldBe("new WebKitTransitionEvent('eventType', { cancelable: false }).cancelable", "false");
+shouldBe("new WebKitTransitionEvent('eventType', { cancelable: true }).cancelable", "true");
+
+// propertyName is passed.
+// Strings.
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: 'doremi' }).propertyName", "doremi");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: '' }).propertyName", "");
+
+// Non-strings.
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: undefined }).propertyName", "undefined");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: null }).propertyName", "null");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: false }).propertyName", "false");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: true }).propertyName", "true");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: 12345 }).propertyName", "12345");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: 18446744073709551615 }).propertyName", "18446744073709552000");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: NaN }).propertyName", "NaN");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: [] }).propertyName", "");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: [1, 2, 3] }).propertyName", "1,2,3");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: {doremi: 12345} }).propertyName", "[object Object]");
+shouldBeEqualToString("new WebKitTransitionEvent('eventType', { propertyName: {valueOf: function () { return 'doremi'; } } }).propertyName", "[object Object]");
+
+// elapsedTime is passed.
+// Numeric values.
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: 0 }).elapsedTime", "0");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: 123.45 }).elapsedTime", "123.45");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: -123.45 }).elapsedTime", "-123.45");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: 18446744073709551615 }).elapsedTime", "18446744073709551615");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: NaN }).elapsedTime", "NaN");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: Infinity }).elapsedTime", "Infinity");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: -Infinity }).elapsedTime", "-Infinity");
+
+// Non-numeric values.
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: undefined }).elapsedTime", "NaN");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: null }).elapsedTime", "0");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: false }).elapsedTime", "0");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: true }).elapsedTime", "1");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: '' }).elapsedTime", "0");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: 'doremi' }).elapsedTime", "NaN");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: [] }).elapsedTime", "0");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: [123.45] }).elapsedTime", "123.45");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: [123.45, 678.90] }).elapsedTime", "NaN");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: {doremi: 123.45} }).elapsedTime", "NaN");
+shouldBe("new WebKitTransitionEvent('eventType', { elapsedTime: {valueOf: function () { return 123.45 } } }).elapsedTime", "123.45");
+
+// All initializers are passed.
+shouldBe("new WebKitTransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45 }).bubbles", "true");
+shouldBe("new WebKitTransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45 }).cancelable", "true");
+shouldBe("new WebKitTransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45 }).propertyName", "'doremi'");
+shouldBe("new WebKitTransitionEvent('eventType', { bubbles: true, cancelable: true, propertyName: 'doremi', elapsedTime: 123.45 }).elapsedTime", "123.45");
+
+var successfullyParsed = true;
+</script>
+<script src=""
+</body>
+</html>

Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (97224 => 97225)


--- trunk/LayoutTests/platform/chromium/test_expectations.txt	2011-10-12 03:45:47 UTC (rev 97224)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt	2011-10-12 04:05:11 UTC (rev 97225)
@@ -83,6 +83,9 @@
 // Tests for WebVTT parser for <track>.  Feature is not yet functional.
 BUGWK43668 SKIP : media/track/ = TIMEOUT
 
+// This will soon be fixed after implementing a WebKitTransitionEvent constructor for V8.
+BUGWK69829 : fast/events/constructors/webkit-transition-event-constructor.html = FAIL
+
 // Tests for MediaSource API. Feature is not yet functional.
 BUGWK64731 SKIP : http/tests/media/media-source/ = TIMEOUT
 

Modified: trunk/Source/WebCore/ChangeLog (97224 => 97225)


--- trunk/Source/WebCore/ChangeLog	2011-10-12 03:45:47 UTC (rev 97224)
+++ trunk/Source/WebCore/ChangeLog	2011-10-12 04:05:11 UTC (rev 97225)
@@ -1,3 +1,38 @@
+2011-10-11  Kentaro Hara  <[email protected]>
+
+        Implement a WebKitTransitionEvent constructor for JSC
+        https://bugs.webkit.org/show_bug.cgi?id=69829
+
+        Reviewed by Adam Barth.
+
+        There is no spec for the WebKitTransitionEvent constructor
+        since it is WebKit-specific. However, judging from the current
+        IDL of initWebKitTransitionEvent(), the constructor IDL
+        should be as follows.
+
+        [Constructor(DOMString type, optional WebKitTransitionEventInit eventInitDict)]
+        interface WebKitTransitionEvent : Event {
+            ...;
+        }
+
+        dictionary WebKitTransitionEventInit : EventInit {
+            DOMString propertyName;
+            double elapsedTime;
+        }
+
+        Test: fast/events/constructors/webkit-transition-event-constructor.html
+
+        * bindings/generic/EventConstructors.h: Added a definition for the WebKitTransitionEvent constructor.
+        * bindings/js/JSEventConstructors.cpp: Added #includes for WebKitTransitionEvent.
+        * dom/WebKitTransitionEvent.cpp:
+        (WebCore::WebKitTransitionEventInit::WebKitTransitionEventInit):
+        (WebCore::WebKitTransitionEvent::WebKitTransitionEvent):
+        (WebCore::WebKitTransitionEvent::initWebKitTransitionEvent):
+        * dom/WebKitTransitionEvent.h: Added a definition for WebKitTransitionEventInit.
+        (WebCore::WebKitTransitionEvent::create):
+        (WebCore::WebKitTransitionEvent::isWebKitTransitionEvent):
+        * dom/WebKitTransitionEvent.idl: Makes WebKitTransitionEvent constructible.
+
 2011-10-11  Sameer Patil  <[email protected]>
 
         :checked pseudo selector not matching selected option 

Modified: trunk/Source/WebCore/bindings/generic/EventConstructors.h (97224 => 97225)


--- trunk/Source/WebCore/bindings/generic/EventConstructors.h	2011-10-12 03:45:47 UTC (rev 97224)
+++ trunk/Source/WebCore/bindings/generic/EventConstructors.h	2011-10-12 04:05:11 UTC (rev 97225)
@@ -110,7 +110,15 @@
         FILL_PROPERTY(ports) \
     DICTIONARY_END(MessageEvent)
 
+#define INSTANTIATE_INITIALIZING_CONSTRUCTOR_FOR_WEBKIT_TRANSITION_EVENT(DICTIONARY_START, DICTIONARY_END, FILL_PARENT_PROPERTIES, FILL_PROPERTY) \
+    \
+    DICTIONARY_START(WebKitTransitionEvent) \
+        FILL_PARENT_PROPERTIES(Event) \
+        FILL_PROPERTY(propertyName) \
+        FILL_PROPERTY(elapsedTime) \
+    DICTIONARY_END(WebKitTransitionEvent)
 
+
 #define INSTANTIATE_ALL_EVENT_INITIALIZING_CONSTRUCTORS(DICTIONARY_START, DICTIONARY_END, FILL_PARENT_PROPERTIES, FILL_PROPERTY) \
     INSTANTIATE_INITIALIZING_CONSTRUCTOR_FOR_EVENT(DICTIONARY_START, DICTIONARY_END, FILL_PARENT_PROPERTIES, FILL_PROPERTY) \
     INSTANTIATE_INITIALIZING_CONSTRUCTOR_FOR_CUSTOM_EVENT(DICTIONARY_START, DICTIONARY_END, FILL_PARENT_PROPERTIES, FILL_PROPERTY) \
@@ -122,6 +130,7 @@
     INSTANTIATE_INITIALIZING_CONSTRUCTOR_FOR_ERROR_EVENT(DICTIONARY_START, DICTIONARY_END, FILL_PARENT_PROPERTIES, FILL_PROPERTY) \
     INSTANTIATE_INITIALIZING_CONSTRUCTOR_FOR_CLOSE_EVENT(DICTIONARY_START, DICTIONARY_END, FILL_PARENT_PROPERTIES, FILL_PROPERTY) \
     INSTANTIATE_INITIALIZING_CONSTRUCTOR_FOR_MESSAGE_EVENT(DICTIONARY_START, DICTIONARY_END, FILL_PARENT_PROPERTIES, FILL_PROPERTY) \
+    INSTANTIATE_INITIALIZING_CONSTRUCTOR_FOR_WEBKIT_TRANSITION_EVENT(DICTIONARY_START, DICTIONARY_END, FILL_PARENT_PROPERTIES, FILL_PROPERTY) \
 
 } // namespace WebCore
 

Modified: trunk/Source/WebCore/bindings/js/JSEventConstructors.cpp (97224 => 97225)


--- trunk/Source/WebCore/bindings/js/JSEventConstructors.cpp	2011-10-12 03:45:47 UTC (rev 97224)
+++ trunk/Source/WebCore/bindings/js/JSEventConstructors.cpp	2011-10-12 04:05:11 UTC (rev 97225)
@@ -42,11 +42,13 @@
 #include "JSPopStateEvent.h"
 #include "JSProgressEvent.h"
 #include "JSWebKitAnimationEvent.h"
+#include "JSWebKitTransitionEvent.h"
 #include "MessageEvent.h"
 #include "PageTransitionEvent.h"
 #include "PopStateEvent.h"
 #include "ProgressEvent.h"
 #include "WebKitAnimationEvent.h"
+#include "WebKitTransitionEvent.h"
 #include <runtime/Error.h>
 
 using namespace JSC;

Modified: trunk/Source/WebCore/dom/WebKitTransitionEvent.cpp (97224 => 97225)


--- trunk/Source/WebCore/dom/WebKitTransitionEvent.cpp	2011-10-12 03:45:47 UTC (rev 97224)
+++ trunk/Source/WebCore/dom/WebKitTransitionEvent.cpp	2011-10-12 04:05:11 UTC (rev 97225)
@@ -29,10 +29,16 @@
 #include "EventNames.h"
 
 namespace WebCore {
-        
+
+WebKitTransitionEventInit::WebKitTransitionEventInit()
+    : propertyName()
+    , elapsedTime(0)
+{
+}
+
 WebKitTransitionEvent::WebKitTransitionEvent()
     : m_propertyName()
-    , m_elapsedTime(0.0)
+    , m_elapsedTime(0)
 {
 }
 
@@ -43,6 +49,13 @@
 {
 }
 
+WebKitTransitionEvent::WebKitTransitionEvent(const AtomicString& type, const WebKitTransitionEventInit& initializer)
+    : Event(type, initializer)
+    , m_propertyName(initializer.propertyName)
+    , m_elapsedTime(initializer.elapsedTime)
+{
+}
+
 WebKitTransitionEvent::~WebKitTransitionEvent()
 {
 }
@@ -55,9 +68,9 @@
 {
     if (dispatched())
         return;
-    
+
     initEvent(type, canBubbleArg, cancelableArg);
-    
+
     m_propertyName = propertyName;
     m_elapsedTime = elapsedTime;
 }

Modified: trunk/Source/WebCore/dom/WebKitTransitionEvent.h (97224 => 97225)


--- trunk/Source/WebCore/dom/WebKitTransitionEvent.h	2011-10-12 03:45:47 UTC (rev 97224)
+++ trunk/Source/WebCore/dom/WebKitTransitionEvent.h	2011-10-12 04:05:11 UTC (rev 97225)
@@ -29,39 +29,51 @@
 #include "Event.h"
 
 namespace WebCore {
-        
-    class WebKitTransitionEvent : public Event {
-    public:
-        static PassRefPtr<WebKitTransitionEvent> create()
-        {
-            return adoptRef(new WebKitTransitionEvent);
-        }
-        static PassRefPtr<WebKitTransitionEvent> create(const AtomicString& type, const String& animationName, double elapsedTime)
-        {
-            return adoptRef(new WebKitTransitionEvent(type, animationName, elapsedTime));
-        }
 
-        virtual ~WebKitTransitionEvent();
-        
-        void initWebKitTransitionEvent(const AtomicString& type, 
-                                bool canBubbleArg,
-                                bool cancelableArg,
-                                const String& propertyName,
-                                double elapsedTime);
-                        
-        const String& propertyName() const;
-        double elapsedTime() const;
-        
-        virtual bool isWebKitTransitionEvent() const { return true; }
-        
-    private:
-        WebKitTransitionEvent();
-        WebKitTransitionEvent(const AtomicString& type, const String& propertyName, double elapsedTime);
+struct WebKitTransitionEventInit : public EventInit {
+    WebKitTransitionEventInit();
 
-        String m_propertyName;
-        double m_elapsedTime;
-    };
-    
+    String propertyName;
+    double elapsedTime;
+};
+
+class WebKitTransitionEvent : public Event {
+public:
+    static PassRefPtr<WebKitTransitionEvent> create()
+    {
+        return adoptRef(new WebKitTransitionEvent);
+    }
+    static PassRefPtr<WebKitTransitionEvent> create(const AtomicString& type, const String& propertyName, double elapsedTime)
+    {
+        return adoptRef(new WebKitTransitionEvent(type, propertyName, elapsedTime));
+    }
+    static PassRefPtr<WebKitTransitionEvent> create(const AtomicString& type, const WebKitTransitionEventInit& initializer)
+    {
+        return adoptRef(new WebKitTransitionEvent(type, initializer));
+    }
+
+    virtual ~WebKitTransitionEvent();
+
+    void initWebKitTransitionEvent(const AtomicString& type, 
+                                   bool canBubbleArg,
+                                   bool cancelableArg,
+                                   const String& propertyName,
+                                   double elapsedTime);
+
+    const String& propertyName() const;
+    double elapsedTime() const;
+
+    virtual bool isWebKitTransitionEvent() const { return true; }
+
+private:
+    WebKitTransitionEvent();
+    WebKitTransitionEvent(const AtomicString& type, const String& propertyName, double elapsedTime);
+    WebKitTransitionEvent(const AtomicString& type, const WebKitTransitionEventInit& initializer);
+
+    String m_propertyName;
+    double m_elapsedTime;
+};
+
 } // namespace WebCore
 
 #endif // WebKitTransitionEvent_h

Modified: trunk/Source/WebCore/dom/WebKitTransitionEvent.idl (97224 => 97225)


--- trunk/Source/WebCore/dom/WebKitTransitionEvent.idl	2011-10-12 03:45:47 UTC (rev 97224)
+++ trunk/Source/WebCore/dom/WebKitTransitionEvent.idl	2011-10-12 04:05:11 UTC (rev 97225)
@@ -25,14 +25,17 @@
 
 module events {
 
-    interface WebKitTransitionEvent : Event {
-     readonly attribute DOMString          propertyName;
-     readonly attribute double             elapsedTime;
-     void               initWebKitTransitionEvent(in [Optional=CallWithDefaultValue] DOMString typeArg,
-                                           in [Optional=CallWithDefaultValue] boolean canBubbleArg,
-                                           in [Optional=CallWithDefaultValue] boolean cancelableArg,
-                                           in [Optional=CallWithDefaultValue] DOMString propertyNameArg,
-                                           in [Optional=CallWithDefaultValue] double elapsedTimeArg);
+    interface [
+        CanBeConstructed,
+        JSCustomConstructor
+    ] WebKitTransitionEvent : Event {
+    readonly attribute DOMString          propertyName;
+    readonly attribute double             elapsedTime;
+    void               initWebKitTransitionEvent(in [Optional=CallWithDefaultValue] DOMString typeArg,
+                                                 in [Optional=CallWithDefaultValue] boolean canBubbleArg,
+                                                 in [Optional=CallWithDefaultValue] boolean cancelableArg,
+                                                 in [Optional=CallWithDefaultValue] DOMString propertyNameArg,
+                                                 in [Optional=CallWithDefaultValue] double elapsedTimeArg);
 };
 
 }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to