WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-94987-20121112085421.patch (text/plain), 62.66 KB, created by
Robert Flack
on 2012-11-12 05:56:18 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Robert Flack
Created:
2012-11-12 05:56:18 PST
Size:
62.66 KB
patch
obsolete
>Subversion Revision: 134022 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 7a29cc3f66f4348b66f597d165bd3e500212a0bc..7a29b31f120ae830680fefb73cd4b91d61079017 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,80 @@ >+2012-10-26 Robert Flack <flackr@chromium.org> >+ >+ Add systemTime to DOM events >+ https://bugs.webkit.org/show_bug.cgi?id=94987 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Adds a systemTime property to DOM events which exposes the platform event >+ timestamp consistent with Performance.now() timestamps discussed on >+ http://lists.w3.org/Archives/Public/public-web-perf/2012Oct/0046.html and >+ http://lists.webkit.org/pipermail/webkit-dev/2012-October/022574.html >+ >+ Test: platform/chromium/fast/dom/event-systemTime-basic.html >+ >+ * bindings/generic/RuntimeEnabledFeatures.cpp: >+ (WebCore): >+ * bindings/generic/RuntimeEnabledFeatures.h: >+ (RuntimeEnabledFeatures): >+ (WebCore::RuntimeEnabledFeatures::eventSystemTimeEnabled): >+ (WebCore::RuntimeEnabledFeatures::setEventSystemTimeEnabled): >+ * dom/Event.cpp: >+ (WebCore::Event::Event): >+ * dom/Event.h: >+ (WebCore::Event::systemTime): >+ (Event): >+ * dom/Event.idl: >+ * dom/KeyboardEvent.cpp: >+ (WebCore::KeyboardEvent::KeyboardEvent): >+ * dom/KeyboardEvent.h: >+ (WebCore::KeyboardEvent::create): >+ (KeyboardEvent): >+ * dom/MouseEvent.cpp: >+ (WebCore::MouseEvent::create): >+ (WebCore::MouseEvent::MouseEvent): >+ (WebCore::SimulatedMouseEvent::SimulatedMouseEvent): >+ * dom/MouseEvent.h: >+ (WebCore::MouseEvent::create): >+ (MouseEvent): >+ * dom/MouseRelatedEvent.cpp: >+ (WebCore::MouseRelatedEvent::MouseRelatedEvent): >+ * dom/MouseRelatedEvent.h: >+ (MouseRelatedEvent): >+ * dom/Node.cpp: >+ (WebCore::Node::dispatchKeyEvent): >+ (WebCore::Node::dispatchMouseEvent): >+ (WebCore::Node::dispatchWheelEvent): >+ * dom/TouchEvent.cpp: >+ (WebCore::TouchEvent::TouchEvent): >+ (WebCore::TouchEvent::initTouchEvent): >+ * dom/TouchEvent.h: >+ (WebCore::TouchEvent::create): >+ (TouchEvent): >+ * dom/UIEvent.cpp: >+ (WebCore::UIEvent::UIEvent): >+ * dom/UIEvent.h: >+ (UIEvent): >+ * dom/UIEventWithKeyState.h: >+ (WebCore::UIEventWithKeyState::UIEventWithKeyState): >+ * dom/WheelEvent.cpp: >+ (WebCore::WheelEvent::WheelEvent): >+ (WebCore::WheelEventDispatchMediator::create): >+ (WebCore::WheelEventDispatchMediator::WheelEventDispatchMediator): >+ * dom/WheelEvent.h: >+ (WebCore::WheelEvent::create): >+ (WheelEvent): >+ (WheelEventDispatchMediator): >+ * page/EventHandler.cpp: >+ (WebCore::EventHandler::dispatchDragEvent): >+ (WebCore::EventHandler::keyEvent): >+ (WebCore::EventHandler::handleTouchEvent): >+ * testing/Internals.cpp: >+ (WebCore::Internals::navigationStartTime): >+ (WebCore): >+ (WebCore::Internals::dispatchPlatformMouseEvent): >+ * testing/Internals.h: >+ * testing/Internals.idl: >+ > 2012-11-08 Sheriff Bot <webkit.review.bot@gmail.com> > > Unreviewed, rolling out r134010. >diff --git a/Source/WebKit/chromium/ChangeLog b/Source/WebKit/chromium/ChangeLog >index d586fba4322392decbb753cc4dc0b4a001481adb..dd5e1806bf64fc3f33dbd130e139d593761c69ad 100644 >--- a/Source/WebKit/chromium/ChangeLog >+++ b/Source/WebKit/chromium/ChangeLog >@@ -1,3 +1,25 @@ >+2012-10-26 Robert Flack <flackr@chromium.org> >+ >+ Add systemTime to DOM events >+ https://bugs.webkit.org/show_bug.cgi?id=94987 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Adds a systemTime property to DOM events which exposes the platform event >+ timestamp consistent with Performance.now() timestamps discussed on >+ http://lists.w3.org/Archives/Public/public-web-perf/2012Oct/0046.html and >+ http://lists.webkit.org/pipermail/webkit-dev/2012-October/022574.html >+ >+ * features.gypi: >+ * public/WebRuntimeFeatures.h: >+ (WebRuntimeFeatures): >+ * src/WebInputEventConversion.cpp: >+ (WebKit::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder): >+ * src/WebRuntimeFeatures.cpp: >+ (WebKit::WebRuntimeFeatures::enableEventSystemTime): >+ (WebKit): >+ (WebKit::WebRuntimeFeatures::isEventSystemTimeEnabled): >+ > 2012-11-08 Sheriff Bot <webkit.review.bot@gmail.com> > > Unreviewed, rolling out r134010. >diff --git a/Source/WebKit/mac/ChangeLog b/Source/WebKit/mac/ChangeLog >index 639d1029f81230e359e377d5815d22c8e0cd4e34..04c064dd9b2295c21fe2f6c26bce32ec754f9a55 100644 >--- a/Source/WebKit/mac/ChangeLog >+++ b/Source/WebKit/mac/ChangeLog >@@ -1,3 +1,18 @@ >+2012-10-26 Robert Flack <flackr@chromium.org> >+ >+ Add systemTime to DOM events >+ https://bugs.webkit.org/show_bug.cgi?id=94987 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Adds a systemTime property to DOM events which exposes the platform event >+ timestamp consistent with Performance.now() timestamps discussed on >+ http://lists.w3.org/Archives/Public/public-web-perf/2012Oct/0046.html and >+ http://lists.webkit.org/pipermail/webkit-dev/2012-October/022574.html >+ >+ * WebView/WebPDFView.mm: >+ (-[WebPDFView PDFViewWillClickOnLink:withURL:]): >+ > 2012-11-08 Timothy Hatcher <timothy@apple.com> > > Always use a textured window for the Web Inspector. >diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog >index 7ce6fcb22448e7951b8218db77bb0a3823544dbc..386d26d599a6a62bd8ecb54f720412db64a1d857 100644 >--- a/Source/WebKit2/ChangeLog >+++ b/Source/WebKit2/ChangeLog >@@ -1,3 +1,18 @@ >+2012-10-26 Robert Flack <flackr@chromium.org> >+ >+ Add systemTime to DOM events >+ https://bugs.webkit.org/show_bug.cgi?id=94987 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Adds a systemTime property to DOM events which exposes the platform event >+ timestamp consistent with Performance.now() timestamps discussed on >+ http://lists.w3.org/Archives/Public/public-web-perf/2012Oct/0046.html and >+ http://lists.webkit.org/pipermail/webkit-dev/2012-October/022574.html >+ >+ * WebProcess/WebPage/WebPage.cpp: >+ (WebKit::WebPage::linkClicked): >+ > 2012-11-08 Grzegorz Czajkowski <g.czajkowski@samsung.com> > > [EFL] Add a method to the TextCheckerEnchant class to check whether any dictionary is loaded >diff --git a/Source/WebCore/WebCore.exp.in b/Source/WebCore/WebCore.exp.in >index a5f2367ab12e554d48f8ac14552ada0ce63fa1ca..ca016f7164ed37cde4738b94c1c706b259595c8e 100644 >--- a/Source/WebCore/WebCore.exp.in >+++ b/Source/WebCore/WebCore.exp.in >@@ -71,8 +71,8 @@ __ZN7WebCore10CredentialC1ERKN3WTF6StringES4_NS_21CredentialPersistenceE > __ZN7WebCore10CredentialC1Ev > __ZN7WebCore10FloatPointC1ERKNS_8IntPointE > __ZN7WebCore10JSDocument6s_infoE >-__ZN7WebCore10MouseEvent6createERKN3WTF12AtomicStringENS1_10PassRefPtrINS_9DOMWindowEEERKNS_18PlatformMouseEventEiNS5_INS_4NodeEEE >-__ZN7WebCore10MouseEventC1ERKN3WTF12AtomicStringEbbNS1_10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEb >+__ZN7WebCore10MouseEvent6createERKN3WTF12AtomicStringENS1_10PassRefPtrINS_9DOMWindowEEERKNS_18PlatformMouseEventEiNS5_INS_4NodeEEEd >+__ZN7WebCore10MouseEventC1ERKN3WTF12AtomicStringEbbNS1_10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEbd > __ZN7WebCore10RenderView10compositorEv > __ZN7WebCore10ScrollView17setUseFixedLayoutEb > __ZN7WebCore10ScrollView18setFixedLayoutSizeERKNS_7IntSizeE >@@ -223,7 +223,7 @@ __ZN7WebCore13IdentifierRep3getEPKc > __ZN7WebCore13IdentifierRep3getEi > __ZN7WebCore13JSHTMLElement6s_infoE > __ZN7WebCore13KeyboardEventC1ERKN3WTF12AtomicStringEbbPNS_9DOMWindowERKNS1_6StringEjbbbbb >-__ZN7WebCore13KeyboardEventC1ERKNS_21PlatformKeyboardEventEPNS_9DOMWindowE >+__ZN7WebCore13KeyboardEventC1ERKNS_21PlatformKeyboardEventEPNS_9DOMWindowEd > __ZN7WebCore13ResourceErrorC1EP7NSError > __ZN7WebCore13ResourceErrorC1EP9__CFError > __ZN7WebCore13StyledElement22setInlineStylePropertyENS_13CSSPropertyIDERKN3WTF6StringEb >@@ -556,6 +556,7 @@ __ZN7WebCore20DictationAlternativeC1Ejjy > __ZN7WebCore20DictationAlternativeC1Ev > __ZN7WebCore20DisplaySleepDisablerC1EPKc > __ZN7WebCore20DisplaySleepDisablerD1Ev >+__ZN7WebCore4Node18dispatchMouseEventERKNS_18PlatformMouseEventERKN3WTF12AtomicStringEiPS0_ > __ZN7WebCore20NodeRenderingContextC1EPNS_4NodeE > __ZN7WebCore20NodeRenderingContextD1Ev > __ZN7WebCore20RenderEmbeddedObject29setPluginUnavailabilityReasonENS0_26PluginUnavailabilityReasonE >@@ -907,6 +908,7 @@ __ZN7WebCore8Document27removeMediaCanStartListenerEPNS_21MediaCanStartListenerE > __ZN7WebCore8Document36updateLayoutIgnorePendingStylesheetsEv > __ZN7WebCore8Document4headEv > __ZN7WebCore8Document8iconURLsEv >+__ZNK7WebCore8Document6loaderEv > __ZN7WebCore8FormData6createEPKvm > __ZN7WebCore8FormDataD1Ev > __ZN7WebCore8Gradient12addColorStopEfRKNS_5ColorE >diff --git a/Source/WebCore/WebCore.gypi b/Source/WebCore/WebCore.gypi >index 8bd1fc4cdc3ce4a35f663bfab845a5fb9fa56ed7..38009cb177eadf040efd0cdd12a0c692b7f2a8d6 100644 >--- a/Source/WebCore/WebCore.gypi >+++ b/Source/WebCore/WebCore.gypi >@@ -249,6 +249,7 @@ > 'page/PagePopupDriver.h', > 'page/PageSerializer.h', > 'page/PageVisibilityState.h', >+ 'page/PerformanceTiming.h', > 'page/PrintContext.h', > 'page/SecurityOrigin.h', > 'page/SecurityOriginHash.h', >diff --git a/Source/WebCore/WebCore.order b/Source/WebCore/WebCore.order >index 503ebd7313f6533d80108d8d912427c899d1ab05..4e7e9d839f99bbf98c0a89f33de5228abff0b2e8 100644 >--- a/Source/WebCore/WebCore.order >+++ b/Source/WebCore/WebCore.order >@@ -6412,7 +6412,7 @@ __ZN7WebCore9FrameView25resetDeferredRepaintDelayEv > __ZN7WebCore12EventHandler26updateMouseEventTargetNodeEPNS_4NodeERKNS_18PlatformMouseEventEb > __ZNK7WebCore17ScrollAnimatorMac23mouseEnteredContentAreaEv > __ZN7WebCore4Node18dispatchMouseEventERKNS_18PlatformMouseEventERKN3WTF12AtomicStringEiPS0_ >-__ZN7WebCore10MouseEvent6createERKN3WTF12AtomicStringENS1_10PassRefPtrINS_9DOMWindowEEERKNS_18PlatformMouseEventEiNS5_INS_4NodeEEE >+__ZN7WebCore10MouseEvent6createERKN3WTF12AtomicStringENS1_10PassRefPtrINS_9DOMWindowEEERKNS_18PlatformMouseEventEiNS5_INS_4NodeEEEd > __ZN7WebCore26MouseEventDispatchMediatorC1EN3WTF10PassRefPtrINS_10MouseEventEEE > __ZN7WebCore21EventDispatchMediatorC2EN3WTF10PassRefPtrINS_5EventEEE > __ZNK7WebCore26MouseEventDispatchMediator13dispatchEventEPNS_15EventDispatcherE >@@ -14017,8 +14017,8 @@ __ZN7WebCore12EventHandler18accessKeyModifiersEv > __ZNK7WebCore12EventHandler38needsKeyboardEventDisambiguationQuirksEv > __ZN7WebCore21PlatformKeyboardEventC2ERKS0_ > __ZN7WebCore21PlatformKeyboardEvent24disambiguateKeyDownEventENS0_4TypeEb >-__ZN7WebCore13KeyboardEventC1ERKNS_21PlatformKeyboardEventEPNS_9DOMWindowE >-__ZN7WebCore13KeyboardEventC2ERKNS_21PlatformKeyboardEventEPNS_9DOMWindowE >+__ZN7WebCore13KeyboardEventC1ERKNS_21PlatformKeyboardEventEPNS_9DOMWindowEd >+__ZN7WebCore13KeyboardEventC2ERKNS_21PlatformKeyboardEventEPNS_9DOMWindowEd > __ZN7WebCore6Editor24handleInputMethodKeydownEPNS_13KeyboardEventE > __ZNK3JSC8Bindings17ObjCRuntimeObject23getInternalObjCInstanceEv > __ZNK7WebCore13KeyboardEvent15isKeyboardEventEv >@@ -15353,8 +15353,8 @@ __ZNK7WebCore14DragController13draggableNodeEPKNS_5FrameEPNS_4NodeERKNS_8IntPoin > __ZNK7WebCore12EventHandler22dragHysteresisExceededERKNS_8IntPointE > __ZNK7WebCore12EventHandler23createDraggingClipboardEv > __ZN7WebCore12EventHandler17dispatchDragEventERKN3WTF12AtomicStringEPNS_4NodeERKNS_18PlatformMouseEventEPNS_9ClipboardE >-__ZN7WebCore10MouseEvent6createERKN3WTF12AtomicStringEbbNS1_10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEb >-__ZN7WebCore10MouseEventC1ERKN3WTF12AtomicStringEbbNS1_10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEb >+__ZN7WebCore10MouseEvent6createERKN3WTF12AtomicStringEbbNS1_10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEbd >+__ZN7WebCore10MouseEventC1ERKN3WTF12AtomicStringEbbNS1_10PassRefPtrINS_9DOMWindowEEEiiiiibbbbtNS5_INS_11EventTargetEEENS5_INS_9ClipboardEEEbd > __ZNK7WebCore9Clipboard15sourceOperationEv > __ZN7WebCoreL14dragOpFromIEOpERKN3WTF6StringE > __ZN7WebCore14DragController9startDragEPNS_5FrameERKNS_9DragStateENS_13DragOperationERKNS_18PlatformMouseEventERKNS_8IntPointE >diff --git a/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp b/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp >index 020a756abe97887757a64ebd5635f52777c02996..1de6a931b128488a403cdbc24d3320606387c6dc 100644 >--- a/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp >+++ b/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.cpp >@@ -241,6 +241,10 @@ bool RuntimeEnabledFeatures::isInputTypeWeekEnabled = true; > bool RuntimeEnabledFeatures::isDialogElementEnabled = false; > #endif > >+#if ENABLE(EVENT_SYSTEM_TIME) >+bool RuntimeEnabledFeatures::isEventSystemTimeEnabled = false; >+#endif >+ > #if ENABLE(REQUEST_AUTOCOMPLETE) > bool RuntimeEnabledFeatures::isRequestAutocompleteEnabled = false; > #endif >diff --git a/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h b/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h >index bdcd74044a3303c80194f492c31848d9accf4218..35e361fdfb4f46ded709be98aa27de202c28f721 100644 >--- a/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h >+++ b/Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h >@@ -259,6 +259,11 @@ public: > // The lang attribute support is incomplete and should only be turned on for tests. > static void setLangAttributeAwareFormControlUIEnabled(bool isEnabled) { isLangAttributeAwareFormControlUIEnabled = isEnabled; } > >+#if ENABLE(EVENT_SYSTEM_TIME) >+ static bool eventSystemTimeEnabled() { return isEventSystemTimeEnabled; } >+ static void setEventSystemTimeEnabled(bool isEnabled) { isEventSystemTimeEnabled = isEnabled; } >+#endif >+ > #if ENABLE(REQUEST_AUTOCOMPLETE) > static bool requestAutocompleteEnabled() { return isRequestAutocompleteEnabled; } > static void setRequestAutocompleteEnabled(bool isEnabled) { isRequestAutocompleteEnabled = isEnabled; } >@@ -366,6 +371,10 @@ private: > static bool isDialogElementEnabled; > #endif > >+#if ENABLE(EVENT_SYSTEM_TIME) >+ static bool isEventSystemTimeEnabled; >+#endif >+ > #if ENABLE(REQUEST_AUTOCOMPLETE) > static bool isRequestAutocompleteEnabled; > #endif >diff --git a/Source/WebCore/dom/Event.cpp b/Source/WebCore/dom/Event.cpp >index c1e609ff40a0611a72c2c7c11081512beb28dc55..2257ab662b9cbea9cdee425cb1b7a83956b8ff6f 100644 >--- a/Source/WebCore/dom/Event.cpp >+++ b/Source/WebCore/dom/Event.cpp >@@ -51,10 +51,11 @@ Event::Event() > , m_eventPhase(0) > , m_currentTarget(0) > , m_createTime(convertSecondsToDOMTimeStamp(currentTime())) >+ , m_systemTime(0) > { > } > >-Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg) >+Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, double systemTime) > : m_type(eventType) > , m_canBubble(canBubbleArg) > , m_cancelable(cancelableArg) >@@ -66,6 +67,7 @@ Event::Event(const AtomicString& eventType, bool canBubbleArg, bool cancelableAr > , m_eventPhase(0) > , m_currentTarget(0) > , m_createTime(convertSecondsToDOMTimeStamp(currentTime())) >+ , m_systemTime(systemTime) > { > } > >@@ -81,6 +83,7 @@ Event::Event(const AtomicString& eventType, const EventInit& initializer) > , m_eventPhase(0) > , m_currentTarget(0) > , m_createTime(convertSecondsToDOMTimeStamp(currentTime())) >+ , m_systemTime(0) > { > } > >diff --git a/Source/WebCore/dom/Event.h b/Source/WebCore/dom/Event.h >index 236661391ecb902e10a6a225aa8269da8cf7f7ad..2729de2b8ab57f9f1965174740993bfa355284c1 100644 >--- a/Source/WebCore/dom/Event.h >+++ b/Source/WebCore/dom/Event.h >@@ -105,6 +105,7 @@ public: > bool bubbles() const { return m_canBubble; } > bool cancelable() const { return m_cancelable; } > DOMTimeStamp timeStamp() const { return m_createTime; } >+ double systemTime() const { return m_systemTime; } > > void stopPropagation() { m_propagationStopped = true; } > void stopImmediatePropagation() { m_immediatePropagationStopped = true; } >@@ -166,7 +167,7 @@ public: > > protected: > Event(); >- Event(const AtomicString& type, bool canBubble, bool cancelable); >+ Event(const AtomicString& type, bool canBubble, bool cancelable, double systemTime = 0); > Event(const AtomicString& type, const EventInit&); > > virtual void receivedTarget(); >@@ -187,6 +188,7 @@ private: > EventTarget* m_currentTarget; > RefPtr<EventTarget> m_target; > DOMTimeStamp m_createTime; >+ double m_systemTime; > > RefPtr<Event> m_underlyingEvent; > }; >diff --git a/Source/WebCore/dom/Event.idl b/Source/WebCore/dom/Event.idl >index a9af04689e525b123d49d1448a94fb4e1464a175..3fa5a71b1d500510bbc542cac0720cb924fbb16e 100644 >--- a/Source/WebCore/dom/Event.idl >+++ b/Source/WebCore/dom/Event.idl >@@ -59,6 +59,7 @@ > [InitializedByEventConstructor] readonly attribute boolean bubbles; > [InitializedByEventConstructor] readonly attribute boolean cancelable; > readonly attribute DOMTimeStamp timeStamp; >+ [Conditional=EVENT_SYSTEM_TIME, V8EnabledAtRuntime=eventSystemTime] readonly attribute double systemTime; > > void stopPropagation(); > void preventDefault(); >diff --git a/Source/WebCore/dom/KeyboardEvent.cpp b/Source/WebCore/dom/KeyboardEvent.cpp >index 1c6119f5ba3cbe2d7b2c16368cb222200fb56d36..4198d2be83b366137e6f3f3f82f0bdbe9ff89c51 100644 >--- a/Source/WebCore/dom/KeyboardEvent.cpp >+++ b/Source/WebCore/dom/KeyboardEvent.cpp >@@ -98,9 +98,9 @@ KeyboardEvent::KeyboardEvent() > { > } > >-KeyboardEvent::KeyboardEvent(const PlatformKeyboardEvent& key, AbstractView* view) >+KeyboardEvent::KeyboardEvent(const PlatformKeyboardEvent& key, AbstractView* view, double timeStamp) > : UIEventWithKeyState(eventTypeForKeyboardEventType(key.type()), >- true, true, view, 0, key.ctrlKey(), key.altKey(), key.shiftKey(), key.metaKey()) >+ true, true, view, 0, key.ctrlKey(), key.altKey(), key.shiftKey(), key.metaKey(), timeStamp) > , m_keyEvent(adoptPtr(new PlatformKeyboardEvent(key))) > , m_keyIdentifier(key.keyIdentifier()) > , m_keyLocation(keyLocationCode(key)) >diff --git a/Source/WebCore/dom/KeyboardEvent.h b/Source/WebCore/dom/KeyboardEvent.h >index 1537410bebb60bf819b0e3a8a3012620565d8811..1c369901d6730b761920a692c68b50f009d482e4 100644 >--- a/Source/WebCore/dom/KeyboardEvent.h >+++ b/Source/WebCore/dom/KeyboardEvent.h >@@ -59,9 +59,9 @@ namespace WebCore { > { > return adoptRef(new KeyboardEvent); > } >- static PassRefPtr<KeyboardEvent> create(const PlatformKeyboardEvent& platformEvent, AbstractView* view) >+ static PassRefPtr<KeyboardEvent> create(const PlatformKeyboardEvent& platformEvent, AbstractView* view, double systemTime = 0) > { >- return adoptRef(new KeyboardEvent(platformEvent, view)); >+ return adoptRef(new KeyboardEvent(platformEvent, view, systemTime)); > } > static PassRefPtr<KeyboardEvent> create(const AtomicString& type, bool canBubble, bool cancelable, AbstractView* view, > const String& keyIdentifier, unsigned keyLocation, >@@ -99,7 +99,7 @@ namespace WebCore { > > private: > KeyboardEvent(); >- KeyboardEvent(const PlatformKeyboardEvent&, AbstractView*); >+ KeyboardEvent(const PlatformKeyboardEvent&, AbstractView*, double systemTime); > KeyboardEvent(const AtomicString& type, bool canBubble, bool cancelable, AbstractView*, > const String& keyIdentifier, unsigned keyLocation, > bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool altGraphKey); >diff --git a/Source/WebCore/dom/MouseEvent.cpp b/Source/WebCore/dom/MouseEvent.cpp >index 9e92c27136ccf90dbe3b7b260b5bb67aea4456ab..10ec8ed7ffbe6394f89ae7ec6bd36f7e838534f5 100644 >--- a/Source/WebCore/dom/MouseEvent.cpp >+++ b/Source/WebCore/dom/MouseEvent.cpp >@@ -32,7 +32,7 @@ > > namespace WebCore { > >-PassRefPtr<MouseEvent> MouseEvent::create(const AtomicString& eventType, PassRefPtr<AbstractView> view, const PlatformMouseEvent& event, int detail, PassRefPtr<Node> relatedTarget) >+PassRefPtr<MouseEvent> MouseEvent::create(const AtomicString& eventType, PassRefPtr<AbstractView> view, const PlatformMouseEvent& event, int detail, PassRefPtr<Node> relatedTarget, double systemTime) > { > ASSERT(event.type() == PlatformEvent::MouseMoved || event.button() != NoButton); > >@@ -44,7 +44,7 @@ PassRefPtr<MouseEvent> MouseEvent::create(const AtomicString& eventType, PassRef > event.movementDelta().x(), event.movementDelta().y(), > #endif > event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), event.button(), >- relatedTarget, 0, false); >+ relatedTarget, 0, false, systemTime); > } > > MouseEvent::MouseEvent() >@@ -60,13 +60,15 @@ MouseEvent::MouseEvent(const AtomicString& eventType, bool canBubble, bool cance > #endif > bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, > unsigned short button, PassRefPtr<EventTarget> relatedTarget, >- PassRefPtr<Clipboard> clipboard, bool isSimulated) >+ PassRefPtr<Clipboard> clipboard, bool isSimulated, >+ double systemTime) > : MouseRelatedEvent(eventType, canBubble, cancelable, view, detail, IntPoint(screenX, screenY), > IntPoint(pageX, pageY), > #if ENABLE(POINTER_LOCK) > IntPoint(movementX, movementY), > #endif >- ctrlKey, altKey, shiftKey, metaKey, isSimulated) >+ ctrlKey, altKey, shiftKey, metaKey, isSimulated, >+ systemTime) > , m_button(button == (unsigned short)-1 ? 0 : button) > , m_buttonDown(button != (unsigned short)-1) > , m_relatedTarget(relatedTarget) >@@ -192,7 +194,7 @@ SimulatedMouseEvent::SimulatedMouseEvent(const AtomicString& eventType, PassRefP > #if ENABLE(POINTER_LOCK) > 0, 0, > #endif >- false, false, false, false, 0, 0, 0, true) >+ false, false, false, false, 0, 0, 0, true, 0) > { > if (UIEventWithKeyState* keyStateEvent = findEventWithKeyState(underlyingEvent.get())) { > m_ctrlKey = keyStateEvent->ctrlKey(); >diff --git a/Source/WebCore/dom/MouseEvent.h b/Source/WebCore/dom/MouseEvent.h >index a1c7922b9c7d74f2b8d164e84089ecd457a8cc5e..d07da6edc5f04c348ac799cce51aea2096f823c3 100644 >--- a/Source/WebCore/dom/MouseEvent.h >+++ b/Source/WebCore/dom/MouseEvent.h >@@ -46,15 +46,15 @@ class PlatformMouseEvent; > int movementX, int movementY, > #endif > bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, unsigned short button, >- PassRefPtr<EventTarget> relatedTarget, PassRefPtr<Clipboard> clipboard = 0, bool isSimulated = false) >+ PassRefPtr<EventTarget> relatedTarget, PassRefPtr<Clipboard> clipboard = 0, bool isSimulated = false, double systemTime = 0) > { > return adoptRef(new MouseEvent(type, canBubble, cancelable, view, detail, screenX, screenY, pageX, pageY, > #if ENABLE(POINTER_LOCK) > movementX, movementY, > #endif >- ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget, clipboard, isSimulated)); >+ ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget, clipboard, isSimulated, systemTime)); > } >- static PassRefPtr<MouseEvent> create(const AtomicString& eventType, PassRefPtr<AbstractView>, const PlatformMouseEvent&, int detail, PassRefPtr<Node> relatedTarget); >+ static PassRefPtr<MouseEvent> create(const AtomicString& eventType, PassRefPtr<AbstractView>, const PlatformMouseEvent&, int detail, PassRefPtr<Node> relatedTarget, double systemTime); > > virtual ~MouseEvent(); > >@@ -92,7 +92,7 @@ class PlatformMouseEvent; > int movementX, int movementY, > #endif > bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, unsigned short button, >- PassRefPtr<EventTarget> relatedTarget, PassRefPtr<Clipboard> clipboard, bool isSimulated); >+ PassRefPtr<EventTarget> relatedTarget, PassRefPtr<Clipboard>, bool isSimulated, double systemTime); > > protected: > MouseEvent(); >diff --git a/Source/WebCore/dom/MouseRelatedEvent.cpp b/Source/WebCore/dom/MouseRelatedEvent.cpp >index 7d40f5d0685055f27b3fa082ed611c7d66e56345..d169bea96f5abc6ba4af32eefaa4ecf3eb44c0bd 100644 >--- a/Source/WebCore/dom/MouseRelatedEvent.cpp >+++ b/Source/WebCore/dom/MouseRelatedEvent.cpp >@@ -57,8 +57,8 @@ MouseRelatedEvent::MouseRelatedEvent(const AtomicString& eventType, bool canBubb > #if ENABLE(POINTER_LOCK) > const IntPoint& movementDelta, > #endif >- bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool isSimulated) >- : UIEventWithKeyState(eventType, canBubble, cancelable, abstractView, detail, ctrlKey, altKey, shiftKey, metaKey) >+ bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool isSimulated, double systemTime) >+ : UIEventWithKeyState(eventType, canBubble, cancelable, abstractView, detail, ctrlKey, altKey, shiftKey, metaKey, systemTime) > , m_screenLocation(screenLocation) > #if ENABLE(POINTER_LOCK) > , m_movementDelta(movementDelta) >diff --git a/Source/WebCore/dom/MouseRelatedEvent.h b/Source/WebCore/dom/MouseRelatedEvent.h >index a2de9a4b6aa29d6a945fd107df1dc9a1f093ad8d..1b61bc3e46f8320b8da9afadd6fe703a88954dae 100644 >--- a/Source/WebCore/dom/MouseRelatedEvent.h >+++ b/Source/WebCore/dom/MouseRelatedEvent.h >@@ -67,7 +67,7 @@ namespace WebCore { > #if ENABLE(POINTER_LOCK) > const IntPoint& movementDelta, > #endif >- bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool isSimulated = false); >+ bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool isSimulated = false, double systemTime = 0); > > void initCoordinates(); > void initCoordinates(const LayoutPoint& clientLocation); >diff --git a/Source/WebCore/dom/Node.cpp b/Source/WebCore/dom/Node.cpp >index 2dcca26ac854468da976d179c6d410f2a8473cbd..f3ff9e3edbf867bffd167197b1c94ea235cd3e2c 100644 >--- a/Source/WebCore/dom/Node.cpp >+++ b/Source/WebCore/dom/Node.cpp >@@ -45,6 +45,7 @@ > #include "DOMImplementation.h" > #include "DOMSettableTokenList.h" > #include "Document.h" >+#include "DocumentLoader.h" > #include "DocumentType.h" > #include "DynamicNodeList.h" > #include "Element.h" >@@ -76,6 +77,8 @@ > #include "NodeRareData.h" > #include "NodeRenderingContext.h" > #include "Page.h" >+#include "PerformanceTiming.h" >+#include "PlatformKeyboardEvent.h" > #include "PlatformMouseEvent.h" > #include "PlatformWheelEvent.h" > #include "ProcessingInstruction.h" >@@ -2600,13 +2603,13 @@ bool Node::dispatchDOMActivateEvent(int detail, PassRefPtr<Event> underlyingEven > > bool Node::dispatchKeyEvent(const PlatformKeyboardEvent& event) > { >- return EventDispatcher::dispatchEvent(this, KeyboardEventDispatchMediator::create(KeyboardEvent::create(event, document()->defaultView()))); >+ return EventDispatcher::dispatchEvent(this, KeyboardEventDispatchMediator::create(KeyboardEvent::create(event, document()->defaultView(), 1000.0 * document()->loader()->timing()->monotonicTimeToZeroBasedDocumentTime(event.timestamp())))); > } > > bool Node::dispatchMouseEvent(const PlatformMouseEvent& event, const AtomicString& eventType, > int detail, Node* relatedTarget) > { >- return EventDispatcher::dispatchEvent(this, MouseEventDispatchMediator::create(MouseEvent::create(eventType, document()->defaultView(), event, detail, relatedTarget))); >+ return EventDispatcher::dispatchEvent(this, MouseEventDispatchMediator::create(MouseEvent::create(eventType, document()->defaultView(), event, detail, relatedTarget, 1000.0 * document()->loader()->timing()->monotonicTimeToZeroBasedDocumentTime(event.timestamp())))); > } > > #if ENABLE(GESTURE_EVENTS) >@@ -2637,7 +2640,7 @@ bool Node::dispatchBeforeLoadEvent(const String& sourceURL) > > bool Node::dispatchWheelEvent(const PlatformWheelEvent& event) > { >- return EventDispatcher::dispatchEvent(this, WheelEventDispatchMediator::create(event, document()->defaultView())); >+ return EventDispatcher::dispatchEvent(this, WheelEventDispatchMediator::create(event, document()->defaultView(), 1000.0 * document()->loader()->timing()->monotonicTimeToZeroBasedDocumentTime(event.timestamp()))); > } > > void Node::dispatchFocusEvent(PassRefPtr<Node> oldFocusedNode) >diff --git a/Source/WebCore/dom/TouchEvent.cpp b/Source/WebCore/dom/TouchEvent.cpp >index a58f1dcc9e238ebea462cfa5b659476e1b6036b3..49fc947fbec077bc1d62ce755a529bb954c69b54 100644 >--- a/Source/WebCore/dom/TouchEvent.cpp >+++ b/Source/WebCore/dom/TouchEvent.cpp >@@ -42,13 +42,15 @@ TouchEvent::TouchEvent() > TouchEvent::TouchEvent(TouchList* touches, TouchList* targetTouches, > TouchList* changedTouches, const AtomicString& type, > PassRefPtr<AbstractView> view, int screenX, int screenY, int pageX, int pageY, >- bool ctrlKey, bool altKey, bool shiftKey, bool metaKey) >+ bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, >+ double systemTime) > : MouseRelatedEvent(type, true, true, view, 0, IntPoint(screenX, screenY), > IntPoint(pageX, pageY), > #if ENABLE(POINTER_LOCK) > IntPoint(0, 0), > #endif >- ctrlKey, altKey, shiftKey, metaKey) >+ ctrlKey, altKey, shiftKey, metaKey, false, >+ systemTime) > , m_touches(touches) > , m_targetTouches(targetTouches) > , m_changedTouches(changedTouches) >@@ -86,7 +88,6 @@ void TouchEvent::initTouchEvent(TouchList* touches, TouchList* targetTouches, > m_doubleTap = false; > m_touchHold = false; > #endif >- > } > > const AtomicString& TouchEvent::interfaceName() const >diff --git a/Source/WebCore/dom/TouchEvent.h b/Source/WebCore/dom/TouchEvent.h >index b2e5b2ee346bd800752db19d6e82814503c84c77..ee45584ad0644a14ec7a2d800e3f4172b526785a 100644 >--- a/Source/WebCore/dom/TouchEvent.h >+++ b/Source/WebCore/dom/TouchEvent.h >@@ -47,11 +47,12 @@ public: > TouchList* targetTouches, TouchList* changedTouches, > const AtomicString& type, PassRefPtr<AbstractView> view, > int screenX, int screenY, int pageX, int pageY, >- bool ctrlKey, bool altKey, bool shiftKey, bool metaKey) >+ bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, >+ double systemTime) > { > return adoptRef(new TouchEvent(touches, targetTouches, changedTouches, > type, view, screenX, screenY, pageX, pageY, >- ctrlKey, altKey, shiftKey, metaKey)); >+ ctrlKey, altKey, shiftKey, metaKey, systemTime)); > } > > void initTouchEvent(TouchList* touches, TouchList* targetTouches, >@@ -79,7 +80,8 @@ private: > TouchList* changedTouches, const AtomicString& type, > PassRefPtr<AbstractView>, int screenX, int screenY, int pageX, > int pageY, >- bool ctrlKey, bool altKey, bool shiftKey, bool metaKey); >+ bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, >+ double systemTime); > > RefPtr<TouchList> m_touches; > RefPtr<TouchList> m_targetTouches; >diff --git a/Source/WebCore/dom/UIEvent.cpp b/Source/WebCore/dom/UIEvent.cpp >index 367372670ed8dd055497e8ada4449daefd423d43..02c7e549528f6be5b2bb2a0ccbd095dce6c0fcc7 100644 >--- a/Source/WebCore/dom/UIEvent.cpp >+++ b/Source/WebCore/dom/UIEvent.cpp >@@ -35,8 +35,8 @@ UIEvent::UIEvent() > { > } > >-UIEvent::UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, PassRefPtr<AbstractView> viewArg, int detailArg) >- : Event(eventType, canBubbleArg, cancelableArg) >+UIEvent::UIEvent(const AtomicString& eventType, bool canBubbleArg, bool cancelableArg, PassRefPtr<AbstractView> viewArg, int detailArg, double systemTime) >+ : Event(eventType, canBubbleArg, cancelableArg, systemTime) > , m_view(viewArg) > , m_detail(detailArg) > { >diff --git a/Source/WebCore/dom/UIEvent.h b/Source/WebCore/dom/UIEvent.h >index 207eb7b04f6be638621abeba0c42ac85303e5aba..a2140e814bb9e965683fa6f547babd2adb073ffb 100644 >--- a/Source/WebCore/dom/UIEvent.h >+++ b/Source/WebCore/dom/UIEvent.h >@@ -65,7 +65,7 @@ namespace WebCore { > > protected: > UIEvent(); >- UIEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<AbstractView>, int detail); >+ UIEvent(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<AbstractView>, int detail, double systemTime = 0); > > private: > RefPtr<AbstractView> m_view; >diff --git a/Source/WebCore/dom/UIEventWithKeyState.h b/Source/WebCore/dom/UIEventWithKeyState.h >index 414161a7d062afae7d6350d5ca1bde0cd54f29fd..4a4f33ca5a810fcccc279aacfbe59415423d91b0 100644 >--- a/Source/WebCore/dom/UIEventWithKeyState.h >+++ b/Source/WebCore/dom/UIEventWithKeyState.h >@@ -45,8 +45,8 @@ namespace WebCore { > } > > UIEventWithKeyState(const AtomicString& type, bool canBubble, bool cancelable, PassRefPtr<AbstractView> view, >- int detail, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey) >- : UIEvent(type, canBubble, cancelable, view, detail) >+ int detail, bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, double systemTime = 0) >+ : UIEvent(type, canBubble, cancelable, view, detail, systemTime) > , m_ctrlKey(ctrlKey) > , m_altKey(altKey) > , m_shiftKey(shiftKey) >diff --git a/Source/WebCore/dom/WheelEvent.cpp b/Source/WebCore/dom/WheelEvent.cpp >index e76c33ace9e6f6f053218ef41e2ff22d2beec918..888132a1944c174602d411964fcb10e9c6a36d90 100644 >--- a/Source/WebCore/dom/WheelEvent.cpp >+++ b/Source/WebCore/dom/WheelEvent.cpp >@@ -41,14 +41,14 @@ WheelEvent::WheelEvent(const FloatPoint& wheelTicks, const FloatPoint& rawDelta, > Granularity granularity, PassRefPtr<AbstractView> view, > const IntPoint& screenLocation, const IntPoint& pageLocation, > bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, >- bool directionInvertedFromDevice) >+ bool directionInvertedFromDevice, double systemTime) > : MouseEvent(eventNames().mousewheelEvent, > true, true, view, 0, screenLocation.x(), screenLocation.y(), > pageLocation.x(), pageLocation.y(), > #if ENABLE(POINTER_LOCK) > 0, 0, > #endif >- ctrlKey, altKey, shiftKey, metaKey, 0, 0, 0, false) >+ ctrlKey, altKey, shiftKey, metaKey, 0, 0, 0, false, systemTime) > , m_wheelDelta(IntPoint(static_cast<int>(wheelTicks.x() * tickMultiplier), static_cast<int>(wheelTicks.y() * tickMultiplier))) > , m_rawDelta(roundedIntPoint(rawDelta)) > , m_granularity(granularity) >@@ -104,19 +104,19 @@ inline static WheelEvent::Granularity granularity(const PlatformWheelEvent& even > return event.granularity() == ScrollByPageWheelEvent ? WheelEvent::Page : WheelEvent::Pixel; > } > >-PassRefPtr<WheelEventDispatchMediator> WheelEventDispatchMediator::create(const PlatformWheelEvent& event, PassRefPtr<AbstractView> view) >+PassRefPtr<WheelEventDispatchMediator> WheelEventDispatchMediator::create(const PlatformWheelEvent& event, PassRefPtr<AbstractView> view, double systemTime) > { >- return adoptRef(new WheelEventDispatchMediator(event, view)); >+ return adoptRef(new WheelEventDispatchMediator(event, view, systemTime)); > } > >-WheelEventDispatchMediator::WheelEventDispatchMediator(const PlatformWheelEvent& event, PassRefPtr<AbstractView> view) >+WheelEventDispatchMediator::WheelEventDispatchMediator(const PlatformWheelEvent& event, PassRefPtr<AbstractView> view, double systemTime) > { > if (!(event.deltaX() || event.deltaY())) > return; > > setEvent(WheelEvent::create(FloatPoint(event.wheelTicksX(), event.wheelTicksY()), FloatPoint(event.deltaX(), event.deltaY()), > granularity(event), view, event.globalPosition(), event.position(), >- event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), event.directionInvertedFromDevice())); >+ event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), event.directionInvertedFromDevice(), systemTime)); > } > > WheelEvent* WheelEventDispatchMediator::event() const >diff --git a/Source/WebCore/dom/WheelEvent.h b/Source/WebCore/dom/WheelEvent.h >index 13576890d831c3e896f0be3f011375d9111fc8ce..124d92f4cdefa8d32aba35fc86b6c3cf2b0b36fe 100644 >--- a/Source/WebCore/dom/WheelEvent.h >+++ b/Source/WebCore/dom/WheelEvent.h >@@ -44,10 +44,10 @@ namespace WebCore { > static PassRefPtr<WheelEvent> create(const FloatPoint& wheelTicks, > const FloatPoint& rawDelta, Granularity granularity, PassRefPtr<AbstractView> view, > const IntPoint& screenLocation, const IntPoint& pageLocation, >- bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool directionInvertedFromDevice) >+ bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool directionInvertedFromDevice, double systemTime) > { > return adoptRef(new WheelEvent(wheelTicks, rawDelta, granularity, view, >- screenLocation, pageLocation, ctrlKey, altKey, shiftKey, metaKey, directionInvertedFromDevice)); >+ screenLocation, pageLocation, ctrlKey, altKey, shiftKey, metaKey, directionInvertedFromDevice, systemTime)); > } > > void initWheelEvent(int rawDeltaX, int rawDeltaY, PassRefPtr<AbstractView>, >@@ -77,7 +77,7 @@ namespace WebCore { > WheelEvent(const FloatPoint& wheelTicks, const FloatPoint& rawDelta, > Granularity, PassRefPtr<AbstractView>, > const IntPoint& screenLocation, const IntPoint& pageLocation, >- bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool directionInvertedFromDevice); >+ bool ctrlKey, bool altKey, bool shiftKey, bool metaKey, bool directionInvertedFromDevice, double systemTime); > > IntPoint m_wheelDelta; > IntPoint m_rawDelta; >@@ -87,9 +87,9 @@ namespace WebCore { > > class WheelEventDispatchMediator : public EventDispatchMediator { > public: >- static PassRefPtr<WheelEventDispatchMediator> create(const PlatformWheelEvent&, PassRefPtr<AbstractView>); >+ static PassRefPtr<WheelEventDispatchMediator> create(const PlatformWheelEvent&, PassRefPtr<AbstractView>, double systemTime = 0); > private: >- WheelEventDispatchMediator(const PlatformWheelEvent&, PassRefPtr<AbstractView>); >+ WheelEventDispatchMediator(const PlatformWheelEvent&, PassRefPtr<AbstractView>, double systemTime); > WheelEvent* event() const; > virtual bool dispatchEvent(EventDispatcher*) const; > }; >diff --git a/Source/WebCore/page/EventHandler.cpp b/Source/WebCore/page/EventHandler.cpp >index 07e1b73ab98232b0f834419645f38d5c965fc4aa..df8262ddf9cb499fce28016c42a96f8d912a56f8 100644 >--- a/Source/WebCore/page/EventHandler.cpp >+++ b/Source/WebCore/page/EventHandler.cpp >@@ -37,6 +37,7 @@ > #include "CursorList.h" > #include "Document.h" > #include "DocumentEventQueue.h" >+#include "DocumentLoader.h" > #include "DragController.h" > #include "DragState.h" > #include "Editor.h" >@@ -63,6 +64,7 @@ > #include "MouseEvent.h" > #include "MouseEventWithHitTestResults.h" > #include "Page.h" >+#include "PerformanceTiming.h" > #include "PlatformEvent.h" > #include "PlatformKeyboardEvent.h" > #include "PlatformWheelEvent.h" >@@ -2008,7 +2010,8 @@ bool EventHandler::dispatchDragEvent(const AtomicString& eventType, Node* dragTa > event.movementDelta().x(), event.movementDelta().y(), > #endif > event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), >- 0, 0, clipboard); >+ 0, 0, clipboard, false, >+ 1000.0 * m_frame->document()->loader()->timing()->monotonicTimeToZeroBasedDocumentTime(event.timestamp())); > > ExceptionCode ec; > dragTarget->dispatchEvent(me.get(), ec); >@@ -3051,7 +3054,7 @@ bool EventHandler::keyEvent(const PlatformKeyboardEvent& initialKeyEvent) > PlatformKeyboardEvent keyDownEvent = initialKeyEvent; > if (keyDownEvent.type() != PlatformEvent::RawKeyDown) > keyDownEvent.disambiguateKeyDownEvent(PlatformEvent::RawKeyDown, backwardCompatibilityMode); >- RefPtr<KeyboardEvent> keydown = KeyboardEvent::create(keyDownEvent, m_frame->document()->defaultView()); >+ RefPtr<KeyboardEvent> keydown = KeyboardEvent::create(keyDownEvent, m_frame->document()->defaultView(), 1000.0 * m_frame->document()->loader()->timing()->monotonicTimeToZeroBasedDocumentTime(initialKeyEvent.timestamp())); > if (matchedAnAccessKey) > keydown->setDefaultPrevented(true); > keydown->setTarget(node); >@@ -3074,7 +3077,7 @@ bool EventHandler::keyEvent(const PlatformKeyboardEvent& initialKeyEvent) > > if (handledByInputMethod) { > keyDownEvent.setWindowsVirtualKeyCode(CompositionEventKeyCode); >- keydown = KeyboardEvent::create(keyDownEvent, m_frame->document()->defaultView()); >+ keydown = KeyboardEvent::create(keyDownEvent, m_frame->document()->defaultView(), 1000.0 * m_frame->document()->loader()->timing()->monotonicTimeToZeroBasedDocumentTime(initialKeyEvent.timestamp())); > keydown->setTarget(node); > keydown->setDefaultHandled(); > } >@@ -3098,7 +3101,7 @@ bool EventHandler::keyEvent(const PlatformKeyboardEvent& initialKeyEvent) > keyPressEvent.disambiguateKeyDownEvent(PlatformEvent::Char, backwardCompatibilityMode); > if (keyPressEvent.text().isEmpty()) > return keydownResult; >- RefPtr<KeyboardEvent> keypress = KeyboardEvent::create(keyPressEvent, m_frame->document()->defaultView()); >+ RefPtr<KeyboardEvent> keypress = KeyboardEvent::create(keyPressEvent, m_frame->document()->defaultView(), 1000.0 * m_frame->document()->loader()->timing()->monotonicTimeToZeroBasedDocumentTime(initialKeyEvent.timestamp())); > keypress->setTarget(node); > if (keydownResult) > keypress->setDefaultPrevented(true); >@@ -3852,7 +3855,8 @@ bool EventHandler::handleTouchEvent(const PlatformTouchEvent& event) > RefPtr<TouchEvent> touchEvent = > TouchEvent::create(effectiveTouches.get(), targetTouches.get(), changedTouches[state].m_touches.get(), > stateName, touchEventTarget->toNode()->document()->defaultView(), >- 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey()); >+ 0, 0, 0, 0, event.ctrlKey(), event.altKey(), event.shiftKey(), event.metaKey(), >+ 1000.0 * m_frame->document()->loader()->timing()->monotonicTimeToZeroBasedDocumentTime(event.timestamp())); > ExceptionCode ec = 0; > touchEventTarget->dispatchEvent(touchEvent.get(), ec); > swallowedEvent = swallowedEvent || touchEvent->defaultPrevented() || touchEvent->defaultHandled(); >diff --git a/Source/WebCore/testing/Internals.cpp b/Source/WebCore/testing/Internals.cpp >index e4d308410a063368fcec60c2dec392bf7e2e9da7..dd9191738a73ec1705f731ed588625b28b4f9d72 100644 >--- a/Source/WebCore/testing/Internals.cpp >+++ b/Source/WebCore/testing/Internals.cpp >@@ -34,6 +34,8 @@ > #include "DOMStringList.h" > #include "DOMWindow.h" > #include "Document.h" >+#include "DocumentLoadTiming.h" >+#include "DocumentLoader.h" > #include "DocumentMarker.h" > #include "DocumentMarkerController.h" > #include "Element.h" >@@ -1455,6 +1457,24 @@ PassRefPtr<DOMStringList> Internals::getReferencedFilePaths() const > return stringList.release(); > } > >+double Internals::navigationStartTime(Document* document, ExceptionCode& ec) const >+{ >+ if (!document) { >+ ec = INVALID_ACCESS_ERR; >+ return 0; >+ } >+ return document->loader()->timing()->navigationStart(); >+} >+ >+void Internals::dispatchPlatformMouseEvent(Node* node, int x, int y, double platformTimeStamp, ExceptionCode& ec) >+{ >+ if (!node) { >+ ec = INVALID_ACCESS_ERR; >+ return; >+ } >+ node->dispatchMouseEvent(PlatformMouseEvent(IntPoint(x, y), IntPoint(x, y), WebCore::LeftButton, WebCore::PlatformEvent::MouseReleased, 1, false, false, false, false, platformTimeStamp), "click"); >+} >+ > void Internals::startTrackingRepaints(Document* document, ExceptionCode& ec) > { > if (!document || !document->view()) { >diff --git a/Source/WebCore/testing/Internals.h b/Source/WebCore/testing/Internals.h >index 21117397c811c858f3b1f49fc57d16ac25a71121..85968b434352c67f09f97271592ef0e947fd09ed 100644 >--- a/Source/WebCore/testing/Internals.h >+++ b/Source/WebCore/testing/Internals.h >@@ -239,6 +239,10 @@ public: > > PassRefPtr<DOMStringList> getReferencedFilePaths() const; > >+ double navigationStartTime(Document*, ExceptionCode&) const; >+ >+ void dispatchPlatformMouseEvent(Node*, int x, int y, double platformTimeStamp, ExceptionCode&); >+ > void startTrackingRepaints(Document*, ExceptionCode&); > void stopTrackingRepaints(Document*, ExceptionCode&); > >diff --git a/Source/WebCore/testing/Internals.idl b/Source/WebCore/testing/Internals.idl >index 7a5ab7b90edb64b650dc3437b43a1d69971b01ad..2996ba8352a3178c896c757f9d16ce8fd365f799 100644 >--- a/Source/WebCore/testing/Internals.idl >+++ b/Source/WebCore/testing/Internals.idl >@@ -206,6 +206,10 @@ > > DOMString[] getReferencedFilePaths(); > >+ double navigationStartTime(in Document document) raises (DOMException); >+ >+ void dispatchPlatformMouseEvent(in Node node, in long x, in long y, in double platformTimeStamp) raises (DOMException); >+ > // These functions both reset the tracked repaint rects. They are inteded to be used in the following order: > // startTrackingRepaints, repaintRectsAsText, stopTrackingRepaints. > void startTrackingRepaints(in Document document) raises (DOMException); >diff --git a/Source/WebKit/chromium/features.gypi b/Source/WebKit/chromium/features.gypi >index f386deb77628920af3b7ff205b9f86195cbabd1d..f78342d281d386a06adab974223f592bdb047b7d 100644 >--- a/Source/WebKit/chromium/features.gypi >+++ b/Source/WebKit/chromium/features.gypi >@@ -62,6 +62,7 @@ > 'ENABLE_DOWNLOAD_ATTRIBUTE=1', > 'ENABLE_DRAGGABLE_REGION=1', > 'ENABLE_ENCRYPTED_MEDIA=1', >+ 'ENABLE_EVENT_SYSTEM_TIME=1', > 'ENABLE_FILE_SYSTEM=1', > 'ENABLE_FILTERS=1', > 'ENABLE_FULLSCREEN_API=1', >diff --git a/Source/WebKit/chromium/public/WebRuntimeFeatures.h b/Source/WebKit/chromium/public/WebRuntimeFeatures.h >index a8082606ce3d6fe2ffc4a276eb447ff31899ba42..095cb6cdbe07b1795c4a190c3cc9d1f5e457d714 100644 >--- a/Source/WebKit/chromium/public/WebRuntimeFeatures.h >+++ b/Source/WebKit/chromium/public/WebRuntimeFeatures.h >@@ -46,6 +46,9 @@ public: > WEBKIT_EXPORT static void enableDatabase(bool); > WEBKIT_EXPORT static bool isDatabaseEnabled(); > >+ WEBKIT_EXPORT static void enableEventSystemTime(bool); >+ WEBKIT_EXPORT static bool isEventSystemTimeEnabled(); >+ > WEBKIT_EXPORT static void enableLocalStorage(bool); > WEBKIT_EXPORT static bool isLocalStorageEnabled(); > >diff --git a/Source/WebKit/chromium/src/WebInputEventConversion.cpp b/Source/WebKit/chromium/src/WebInputEventConversion.cpp >index 5cf24d0c1aa37eea6f382b0b29103f7596b2e39e..fd2c23b1b38b7faebde2d1322437ba0135d1e623 100644 >--- a/Source/WebKit/chromium/src/WebInputEventConversion.cpp >+++ b/Source/WebKit/chromium/src/WebInputEventConversion.cpp >@@ -240,6 +240,7 @@ PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder(const WebKeyboardEven > m_nativeVirtualKeyCode = e.nativeKeyCode; > m_isKeypad = (e.modifiers & WebInputEvent::IsKeyPad); > m_isSystemKey = e.isSystemKey; >+ m_timestamp = e.timeStampSeconds; > > m_modifiers = 0; > if (e.modifiers & WebInputEvent::ShiftKey) >diff --git a/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp b/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp >index 9009ff9fa29ce744edc119b20f86f4b1a714185c..f06ea0e2ec90994c1568a82d6099ee46632463b1 100644 >--- a/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp >+++ b/Source/WebKit/chromium/src/WebRuntimeFeatures.cpp >@@ -58,6 +58,22 @@ bool WebRuntimeFeatures::isDatabaseEnabled() > #endif > } > >+void WebRuntimeFeatures::enableEventSystemTime(bool enable) >+{ >+#if ENABLE(EVENT_SYSTEM_TIME) >+ RuntimeEnabledFeatures::setEventSystemTimeEnabled(enable); >+#endif >+} >+ >+bool WebRuntimeFeatures::isEventSystemTimeEnabled() >+{ >+#if ENABLE(EVENT_SYSTEM_TIME) >+ return RuntimeEnabledFeatures::eventSystemTimeEnabled(); >+#else >+ return false; >+#endif >+} >+ > // FIXME: Remove the ability to enable this feature at runtime. > void WebRuntimeFeatures::enableLocalStorage(bool enable) > { >diff --git a/Source/WebKit/mac/WebView/WebPDFView.mm b/Source/WebKit/mac/WebView/WebPDFView.mm >index 92a3f963fab0a2cf0315f069e618277d80ba189a..5f53425dff7cb3b6203d3040af898be63a70f56e 100644 >--- a/Source/WebKit/mac/WebView/WebPDFView.mm >+++ b/Source/WebKit/mac/WebView/WebPDFView.mm >@@ -58,6 +58,7 @@ > #import <WebCore/KURL.h> > #import <WebCore/KeyboardEvent.h> > #import <WebCore/MouseEvent.h> >+#import <WebCore/PerformanceTiming.h> > #import <WebCore/PlatformEventFactoryMac.h> > #import <WebCore/RuntimeApplicationChecks.h> > #import <WebCore/WebNSAttributedStringExtras.h> >@@ -943,6 +944,7 @@ static BOOL isFrameInRange(WebFrame *frame, DOMRange *range) > if (!URL) > return; > >+ Frame* frame = core([dataSource webFrame]); > NSWindow *window = [sender window]; > NSEvent *nsEvent = [window currentEvent]; > const int noButton = -1; >@@ -974,11 +976,10 @@ static BOOL isFrameInRange(WebFrame *frame, DOMRange *range) > [nsEvent modifierFlags] & NSAlternateKeyMask, > [nsEvent modifierFlags] & NSShiftKeyMask, > [nsEvent modifierFlags] & NSCommandKeyMask, >- button, 0, 0, true); >+ button, 0, 0, true, 1000.0 * frame->document()->loader()->timing()->monotonicTimeToZeroBasedDocumentTime([nsEvent timestamp])); > } > > // Call to the frame loader because this is where our security checks are made. >- Frame* frame = core([dataSource webFrame]); > frame->loader()->loadFrameRequest(FrameLoadRequest(frame->document()->securityOrigin(), ResourceRequest(URL)), false, false, event.get(), 0, MaybeSendReferrer); > } > >diff --git a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp >index 60ca6781a60fab8240461d63b0d60f3b091141e1..977f105662af86f1f00650ab22af0f495bae76e4 100644 >--- a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp >+++ b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp >@@ -103,6 +103,7 @@ > #include <WebCore/KeyboardEvent.h> > #include <WebCore/MouseEvent.h> > #include <WebCore/Page.h> >+#include <WebCore/PerformanceTiming.h> > #include <WebCore/PlatformKeyboardEvent.h> > #include <WebCore/PluginDocument.h> > #include <WebCore/PrintContext.h> >@@ -869,7 +870,7 @@ void WebPage::linkClicked(const String& url, const WebMouseEvent& event) > > RefPtr<Event> coreEvent; > if (event.type() != WebEvent::NoType) >- coreEvent = MouseEvent::create(eventNames().clickEvent, frame->document()->defaultView(), platform(event), 0, 0); >+ coreEvent = MouseEvent::create(eventNames().clickEvent, frame->document()->defaultView(), platform(event), 0, 0, 1000.0 * frame->document()->loader()->timing()->monotonicTimeToZeroBasedDocumentTime(event.timestamp())); > > frame->loader()->loadFrameRequest(FrameLoadRequest(frame->document()->securityOrigin(), ResourceRequest(url)), > false, false, coreEvent.get(), 0, MaybeSendReferrer); >diff --git a/Source/WebKit2/win/WebKit2.def b/Source/WebKit2/win/WebKit2.def >index 966282f98c4f77df1891ce1e9f1053eaa9120bf0..8ad36595def21869a1634ee19b76e994a0172b02 100644 >--- a/Source/WebKit2/win/WebKit2.def >+++ b/Source/WebKit2/win/WebKit2.def >@@ -167,6 +167,7 @@ EXPORTS > ?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@V?$PassRefPtr@VDocument@WebCore@@@4@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z > ?create@ShadowRoot@WebCore@@SA?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@PAVElement@2@AAH@Z > ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z >+ ?dispatchMouseEvent@Node@WebCore@@QAE_NABVPlatformMouseEvent@2@ABVAtomicString@WTF@@HPAV12@@Z > ?documentState@HistoryItem@WebCore@@QBEABV?$Vector@VString@WTF@@$0A@@WTF@@XZ > ?equal@WTF@@YA_NPBVStringImpl@1@PBE@Z > ?equal@WTF@@YA_NPBVStringImpl@1@0@Z >@@ -194,6 +195,7 @@ EXPORTS > ?nextSibling@ComposedShadowTreeWalker@WebCore@@QAEXXZ > ?firstChild@ComposedShadowTreeWalker@WebCore@@QAEXXZ > ?lastChild@ComposedShadowTreeWalker@WebCore@@QAEXXZ >+ ?loader@Document@WebCore@@QBEPAVDocumentLoader@2@XZ > ?next@ComposedShadowTreeWalker@WebCore@@QAEXXZ > ?previous@ComposedShadowTreeWalker@WebCore@@QAEXXZ > ?number@String@WTF@@SA?AV12@_J@Z >diff --git a/Source/WebKit2/win/WebKit2CFLite.def b/Source/WebKit2/win/WebKit2CFLite.def >index c796b60161186a114374f7d028da1385d3de6a66..32b63b4b594a246bfa2623f92a550d6679651abb 100644 >--- a/Source/WebKit2/win/WebKit2CFLite.def >+++ b/Source/WebKit2/win/WebKit2CFLite.def >@@ -160,6 +160,7 @@ EXPORTS > ?create@Range@WebCore@@SA?AV?$PassRefPtr@VRange@WebCore@@@WTF@@V?$PassRefPtr@VDocument@WebCore@@@4@V?$PassRefPtr@VNode@WebCore@@@4@H1H@Z > ?create@ShadowRoot@WebCore@@SA?AV?$PassRefPtr@VShadowRoot@WebCore@@@WTF@@PAVElement@2@AAH@Z > ?createWrapper@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNode@1@@Z >+ ?dispatchMouseEvent@Node@WebCore@@QAE_NABVPlatformMouseEvent@2@ABVAtomicString@WTF@@HPAV12@@Z > ?documentState@HistoryItem@WebCore@@QBEABV?$Vector@VString@WTF@@$0A@@WTF@@XZ > ?equal@WTF@@YA_NPBVStringImpl@1@PBE@Z > ?equal@WTF@@YA_NPBVStringImpl@1@0@Z >@@ -187,6 +188,7 @@ EXPORTS > ?nextSibling@ComposedShadowTreeWalker@WebCore@@QAEXXZ > ?firstChild@ComposedShadowTreeWalker@WebCore@@QAEXXZ > ?lastChild@ComposedShadowTreeWalker@WebCore@@QAEXXZ >+ ?loader@Document@WebCore@@QBEPAVDocumentLoader@2@XZ > ?next@ComposedShadowTreeWalker@WebCore@@QAEXXZ > ?previous@ComposedShadowTreeWalker@WebCore@@QAEXXZ > ?number@String@WTF@@SA?AV12@_J@Z >diff --git a/Source/autotools/symbols.filter b/Source/autotools/symbols.filter >index d82f1798511c26d47bf5454504fc0665fec96be9..b2af67289431b7da51686b17e835f5742f96df16 100644 >--- a/Source/autotools/symbols.filter >+++ b/Source/autotools/symbols.filter >@@ -40,6 +40,7 @@ _ZN7WebCore5Range6createEN3WTF10PassRefPtrINS_8DocumentEEENS2_INS_4NodeEEEiS6_i; > _ZN7WebCore5RangeD1Ev; > _ZN7WebCore8Document36updateLayoutIgnorePendingStylesheetsEv; > _ZN7WebCore8Document8iconURLsEv; >+_ZNK7WebCore8Document6loaderEv; > _ZN7WebCore9HTMLNames8inputTagE; > _ZN7WebCore9HTMLNames11textareaTagE; > _ZN7WebCore10JSDocument10putVirtualEPN3JSC9ExecStateERKNS1_10IdentifierENS1_7JSValueERNS1_15PutPropertySlotE; >@@ -81,6 +82,7 @@ _ZN7WebCore19InspectorController18disconnectFrontendEv; > _ZN7WebCore19InspectorController26setInspectorFrontendClientEN3WTF10PassOwnPtrINS_23InspectorFrontendClientEEE; > _ZN7WebCore19InspectorController39setResourcesDataSizeLimitsFromInternalsEii; > _ZN7WebCore20CachedResourceLoader31garbageCollectDocumentResourcesEv; >+_ZN7WebCore4Node18dispatchMouseEventERKNS_18PlatformMouseEventERKN3WTF12AtomicStringEiPS0_; > _ZN7WebCore20NodeRenderingContextC1EPNS_4NodeE; > _ZN7WebCore20NodeRenderingContextD1Ev; > _ZN7WebCore21InspectorConsoleAgent28consoleMessageArgumentCountsEv; >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index f351da781ca86b40d11e7099fbcf16e9c9cb928a..8d3a5b3011fd57e627602e90d5531f4306c038d9 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,18 @@ >+2012-10-26 Robert Flack <flackr@chromium.org> >+ >+ Add systemTime to DOM events >+ https://bugs.webkit.org/show_bug.cgi?id=94987 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Adds a systemTime property to DOM events which exposes the platform event >+ timestamp consistent with Performance.now() timestamps discussed on >+ http://lists.w3.org/Archives/Public/public-web-perf/2012Oct/0046.html and >+ http://lists.webkit.org/pipermail/webkit-dev/2012-October/022574.html >+ >+ * DumpRenderTree/chromium/WebPreferences.cpp: >+ (WebPreferences::applyTo): >+ > 2012-11-08 Sudarsana Nagineni <sudarsana.nagineni@intel.com> > > [EFL] about:blank should display the blank page >diff --git a/Tools/DumpRenderTree/chromium/WebPreferences.cpp b/Tools/DumpRenderTree/chromium/WebPreferences.cpp >index 46afbbdb26e4ee484c836b59d78c91659ef98cf8..ae8fc74ec1093a2d4e43816ff3cb140c054c967c 100644 >--- a/Tools/DumpRenderTree/chromium/WebPreferences.cpp >+++ b/Tools/DumpRenderTree/chromium/WebPreferences.cpp >@@ -31,6 +31,7 @@ > #include "config.h" > #include "WebPreferences.h" > >+#include "WebRuntimeFeatures.h" > #include "WebView.h" > > using namespace WebKit; >@@ -254,4 +255,8 @@ void WebPreferences::applyTo(WebView* webView) > settings->setValidationMessageTimerMagnification(-1); > settings->setVisualWordMovementEnabled(false); > settings->setPasswordEchoEnabled(false); >+ >+#if ENABLE(EVENT_SYSTEM_TIME) >+ WebRuntimeFeatures::enableEventSystemTime(true); >+#endif > } >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index b9fa7529b2ab0fe7f6169fe65318d098ab744713..a152a5328dc41f41f12145444727f30dccc7383c 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,18 @@ >+2012-10-26 Robert Flack <flackr@chromium.org> >+ >+ Add systemTime to DOM events >+ https://bugs.webkit.org/show_bug.cgi?id=94987 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Adds a systemTime property to DOM events which exposes the platform event >+ timestamp consistent with Performance.now() timestamps discussed on >+ http://lists.w3.org/Archives/Public/public-web-perf/2012Oct/0046.html and >+ http://lists.webkit.org/pipermail/webkit-dev/2012-October/022574.html >+ >+ * platform/chromium/fast/dom/event-systemTime-basic-expected.txt: Added. >+ * platform/chromium/fast/dom/event-systemTime-basic.html: Added. >+ > 2012-11-08 Hayato Ito <hayato@chromium.org> > > Unreviewed, update chromium-mac baselines. >diff --git a/LayoutTests/platform/chromium-linux/fast/xmlhttprequest/xmlhttprequest-get-expected.txt b/LayoutTests/platform/chromium-linux/fast/xmlhttprequest/xmlhttprequest-get-expected.txt >index ca2175c49279d78d2ba3cbb0bc1d4042e5c4c0db..d3e6e0c30088ea2990c36e8e22e625249a14a757 100644 >--- a/LayoutTests/platform/chromium-linux/fast/xmlhttprequest/xmlhttprequest-get-expected.txt >+++ b/LayoutTests/platform/chromium-linux/fast/xmlhttprequest/xmlhttprequest-get-expected.txt >@@ -59,6 +59,7 @@ returnValue : 'true' > srcElement : '[object XMLHttpRequest]' > stopImmediatePropagation : 'function stopImmediatePropagation() { [native code] }' > stopPropagation : 'function stopPropagation() { [native code] }' >+systemTime : '0' > target : '[object XMLHttpRequest]' > total : '0' > totalSize : '0' >diff --git a/LayoutTests/platform/chromium-win/fast/xmlhttprequest/xmlhttprequest-get-expected.txt b/LayoutTests/platform/chromium-win/fast/xmlhttprequest/xmlhttprequest-get-expected.txt >index ca2175c49279d78d2ba3cbb0bc1d4042e5c4c0db..d3e6e0c30088ea2990c36e8e22e625249a14a757 100644 >--- a/LayoutTests/platform/chromium-win/fast/xmlhttprequest/xmlhttprequest-get-expected.txt >+++ b/LayoutTests/platform/chromium-win/fast/xmlhttprequest/xmlhttprequest-get-expected.txt >@@ -59,6 +59,7 @@ returnValue : 'true' > srcElement : '[object XMLHttpRequest]' > stopImmediatePropagation : 'function stopImmediatePropagation() { [native code] }' > stopPropagation : 'function stopPropagation() { [native code] }' >+systemTime : '0' > target : '[object XMLHttpRequest]' > total : '0' > totalSize : '0' >diff --git a/LayoutTests/platform/chromium/fast/dom/event-systemTime-basic-expected.txt b/LayoutTests/platform/chromium/fast/dom/event-systemTime-basic-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..3bd231677f146b582349ec67332d9a8f1ea99239 >--- /dev/null >+++ b/LayoutTests/platform/chromium/fast/dom/event-systemTime-basic-expected.txt >@@ -0,0 +1,8 @@ >+PASS successfullyParsed is true >+ >+TEST COMPLETE >+PASS navigationStartTime > 0 is true >+PASS clickEvent instanceof window.Event is true >+PASS clickEvent.systemTime !== undefined is true >+PASS clickEvent.systemTime is 1500 >+ >diff --git a/LayoutTests/platform/chromium/fast/dom/event-systemTime-basic.html b/LayoutTests/platform/chromium/fast/dom/event-systemTime-basic.html >new file mode 100644 >index 0000000000000000000000000000000000000000..a3f4bc4cf0c0f27fdf5905c60b79cc8e033f7157 >--- /dev/null >+++ b/LayoutTests/platform/chromium/fast/dom/event-systemTime-basic.html >@@ -0,0 +1,42 @@ >+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> >+<html> >+<head> >+<script src="../../../../fast/js/resources/js-test-pre.js"></script> >+<script> >+ >+var clickEvent; >+var navigationStartTime; >+var eventSystemTime = 1500; >+ >+function eventListener(e) >+{ >+ clickEvent = e; >+} >+ >+function runTest() >+{ >+ window.testRunner.dumpAsText(); >+ if (document.body.addEventListener) { >+ document.body.addEventListener("click", eventListener, false); >+ } else { >+ document.body.attachEvent("onclick", eventListener); >+ } >+ >+ navigationStartTime = window.internals.navigationStartTime(document); >+ shouldBeTrue("navigationStartTime > 0"); >+ >+ var eventTime = navigationStartTime + eventSystemTime / 1000; >+ window.internals.dispatchPlatformMouseEvent(document.body, 50, 50, eventTime); >+ >+ shouldBeTrue("clickEvent instanceof window.Event"); >+ shouldBeTrue("clickEvent.systemTime !== undefined"); >+ shouldBe("clickEvent.systemTime", String(eventSystemTime)); >+} >+ >+</script> >+</head> >+<body onload="runTest();"> >+<p id="debug"></p> >+<script src="../../../../fast/js/resources/js-test-post.js"></script> >+</body> >+</html> >diff --git a/LayoutTests/platform/chromium/fast/xmlhttprequest/xmlhttprequest-get-expected.txt b/LayoutTests/platform/chromium/fast/xmlhttprequest/xmlhttprequest-get-expected.txt >index ca2175c49279d78d2ba3cbb0bc1d4042e5c4c0db..d3e6e0c30088ea2990c36e8e22e625249a14a757 100644 >--- a/LayoutTests/platform/chromium/fast/xmlhttprequest/xmlhttprequest-get-expected.txt >+++ b/LayoutTests/platform/chromium/fast/xmlhttprequest/xmlhttprequest-get-expected.txt >@@ -59,6 +59,7 @@ returnValue : 'true' > srcElement : '[object XMLHttpRequest]' > stopImmediatePropagation : 'function stopImmediatePropagation() { [native code] }' > stopPropagation : 'function stopPropagation() { [native code] }' >+systemTime : '0' > target : '[object XMLHttpRequest]' > total : '0' > totalSize : '0' >diff --git a/LayoutTests/platform/chromium/http/tests/workers/worker-importScriptsOnError-expected.txt b/LayoutTests/platform/chromium/http/tests/workers/worker-importScriptsOnError-expected.txt >index 3a7d7491d1d421111fb28f23b95ff22639e7110b..ffa40fb579fb63634914a3f4810d5053bc996f07 100644 >--- a/LayoutTests/platform/chromium/http/tests/workers/worker-importScriptsOnError-expected.txt >+++ b/LayoutTests/platform/chromium/http/tests/workers/worker-importScriptsOnError-expected.txt >@@ -38,6 +38,7 @@ returnValue: true, > srcElement: [object Worker], > stopImmediatePropagation: function stopImmediatePropagation() { [native code] }, > stopPropagation: function stopPropagation() { [native code] }, >+systemTime: 0, > target: [object Worker], > type: error >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 94987
:
160531
|
160541
|
160547
|
168415
|
170536
|
170648
|
170658
|
170659
|
170750
|
170977
|
170978
|
173044
|
173346
|
173360
|
173424
|
173633
|
174436
|
174465
|
175697
|
175826