[webkit-changes] [230834] trunk

2018-04-19 Thread beidson
Title: [230834] trunk








Revision 230834
Author beid...@apple.com
Date 2018-04-19 21:55:32 -0700 (Thu, 19 Apr 2018)


Log Message
Make back forward cache work with process swapping.
 and https://bugs.webkit.org/show_bug.cgi?id=184793

Reviewed by Chris Dumez.

Source/WebCore:

Covered by API tests.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::loadDifferentDocumentItem):
* loader/FrameLoader.h:

Source/WebKit:

We previously saved old processes in "SuspendedPageProxy" objects.
Now we reuse them when going back or forward.

* Platform/Logging.h:

* Shared/WebBackForwardListItem.cpp:
(WebKit::WebBackForwardListItem::setSuspendedPage):
(WebKit::WebBackForwardListItem::loggingString):
* Shared/WebBackForwardListItem.h:
(WebKit::WebBackForwardListItem::suspendedPage const):

Teach Navigation objects their source WebBackForwardListItems:
* UIProcess/API/APINavigation.cpp:
(API::Navigation::Navigation):
(API::Navigation::loggingString const):
* UIProcess/API/APINavigation.h:
(API::Navigation::create):
(API::Navigation::targetItem const):
(API::Navigation::fromItem const):
(API::Navigation::backForwardListItem): Deleted.

* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

* UIProcess/SuspendedPageProxy.cpp:
(WebKit::messageNamesToIgnoreWhileSuspended):
(WebKit::SuspendedPageProxy::SuspendedPageProxy):
(WebKit::SuspendedPageProxy::~SuspendedPageProxy):
(WebKit::SuspendedPageProxy::webProcessDidClose):
(WebKit::SuspendedPageProxy::didReceiveMessage):
(WebKit::SuspendedPageProxy::loggingString const):
* UIProcess/SuspendedPageProxy.h:
(WebKit::SuspendedPageProxy::origin const):

* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::WebBackForwardList):
(WebKit::WebBackForwardList::~WebBackForwardList):
(WebKit::WebBackForwardList::pageClosed):
(WebKit::WebBackForwardList::addItem):
(WebKit::WebBackForwardList::goToItem):
(WebKit::WebBackForwardList::removeAllItems):
(WebKit::WebBackForwardList::clear):
(WebKit::WebBackForwardList::restoreFromState):
(WebKit::WebBackForwardList::filteredItemStates const):
(WebKit::WebBackForwardList::itemStates const):
(WebKit::WebBackForwardList::loggingString):
* UIProcess/WebBackForwardList.h:

* UIProcess/WebNavigationState.cpp:
(WebKit::WebNavigationState::createLoadRequestNavigation):
(WebKit::WebNavigationState::createBackForwardNavigation):
* UIProcess/WebNavigationState.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::maybeCreateSuspendedPage):
(WebKit::WebPageProxy::reattachToWebProcessWithItem):
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didCreateSubframe):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::connectionWillOpen):
(WebKit::WebPageProxy::attachToProcessForNavigation): Deleted.
* UIProcess/WebPageProxy.h:

* UIProcess/WebProcessLifetimeTracker.cpp:
(WebKit::WebProcessLifetimeTracker::webPageEnteringWebProcess):
(WebKit::WebProcessLifetimeTracker::connectionWillOpen): Deleted.
* UIProcess/WebProcessLifetimeTracker.h:

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processForNavigation):
(WebKit::WebProcessPool::registerSuspendedPageProxy):
(WebKit::WebProcessPool::unregisterSuspendedPageProxy):
* UIProcess/WebProcessPool.h:

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::suspendWebPageProxy):
(WebKit::WebProcessProxy::updateBackForwardItem):
(WebKit::WebProcessProxy::frameCreated):
* UIProcess/WebProcessProxy.h:

* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::attachDrawingArea):

* WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::addItemFromUIProcess):
(WebKit::WebBackForwardListProxy::addItem):
* WebProcess/WebPage/WebBackForwardListProxy.h:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::m_credentialsMessenger):
(WebKit::WebPage::reinitializeWebPage):
(WebKit::WebPage::goToBackForwardItem):
(WebKit::WebPage::restoreSessionInternal):
(WebKit::WebPage::restoreSession):
(WebKit::WebPage::updateBackForwardListForReattach):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):

[webkit-changes] [230833] tags/Safari-606.1.14.1/Source

2018-04-19 Thread kocsen_chung
Title: [230833] tags/Safari-606.1.14.1/Source








Revision 230833
Author kocsen_ch...@apple.com
Date 2018-04-19 20:16:34 -0700 (Thu, 19 Apr 2018)


Log Message
Versioning.

Modified Paths

tags/Safari-606.1.14.1/Source/_javascript_Core/Configurations/Version.xcconfig
tags/Safari-606.1.14.1/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig
tags/Safari-606.1.14.1/Source/WebCore/Configurations/Version.xcconfig
tags/Safari-606.1.14.1/Source/WebCore/PAL/Configurations/Version.xcconfig
tags/Safari-606.1.14.1/Source/WebInspectorUI/Configurations/Version.xcconfig
tags/Safari-606.1.14.1/Source/WebKit/Configurations/Version.xcconfig
tags/Safari-606.1.14.1/Source/WebKitLegacy/mac/Configurations/Version.xcconfig




Diff

Modified: tags/Safari-606.1.14.1/Source/_javascript_Core/Configurations/Version.xcconfig (230832 => 230833)

--- tags/Safari-606.1.14.1/Source/_javascript_Core/Configurations/Version.xcconfig	2018-04-20 03:10:09 UTC (rev 230832)
+++ tags/Safari-606.1.14.1/Source/_javascript_Core/Configurations/Version.xcconfig	2018-04-20 03:16:34 UTC (rev 230833)
@@ -24,9 +24,9 @@
 MAJOR_VERSION = 606;
 MINOR_VERSION = 1;
 TINY_VERSION = 14;
-MICRO_VERSION = 0;
+MICRO_VERSION = 1;
 NANO_VERSION = 0;
-FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);
+FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION);
 
 // The bundle version and short version string are set based on the current build configuration, see below.
 BUNDLE_VERSION = $(BUNDLE_VERSION_$(CONFIGURATION));


Modified: tags/Safari-606.1.14.1/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig (230832 => 230833)

--- tags/Safari-606.1.14.1/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig	2018-04-20 03:10:09 UTC (rev 230832)
+++ tags/Safari-606.1.14.1/Source/ThirdParty/libwebrtc/Configurations/Version.xcconfig	2018-04-20 03:16:34 UTC (rev 230833)
@@ -24,9 +24,9 @@
 MAJOR_VERSION = 606;
 MINOR_VERSION = 1;
 TINY_VERSION = 14;
-MICRO_VERSION = 0;
+MICRO_VERSION = 1;
 NANO_VERSION = 0;
-FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);
+FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION);
 
 // The bundle version and short version string are set based on the current build configuration, see below.
 BUNDLE_VERSION = $(BUNDLE_VERSION_$(CONFIGURATION));


Modified: tags/Safari-606.1.14.1/Source/WebCore/Configurations/Version.xcconfig (230832 => 230833)

--- tags/Safari-606.1.14.1/Source/WebCore/Configurations/Version.xcconfig	2018-04-20 03:10:09 UTC (rev 230832)
+++ tags/Safari-606.1.14.1/Source/WebCore/Configurations/Version.xcconfig	2018-04-20 03:16:34 UTC (rev 230833)
@@ -24,9 +24,9 @@
 MAJOR_VERSION = 606;
 MINOR_VERSION = 1;
 TINY_VERSION = 14;
-MICRO_VERSION = 0;
+MICRO_VERSION = 1;
 NANO_VERSION = 0;
-FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);
+FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION);
 
 // The bundle version and short version string are set based on the current build configuration, see below.
 BUNDLE_VERSION = $(BUNDLE_VERSION_$(CONFIGURATION));


Modified: tags/Safari-606.1.14.1/Source/WebCore/PAL/Configurations/Version.xcconfig (230832 => 230833)

--- tags/Safari-606.1.14.1/Source/WebCore/PAL/Configurations/Version.xcconfig	2018-04-20 03:10:09 UTC (rev 230832)
+++ tags/Safari-606.1.14.1/Source/WebCore/PAL/Configurations/Version.xcconfig	2018-04-20 03:16:34 UTC (rev 230833)
@@ -24,9 +24,9 @@
 MAJOR_VERSION = 606;
 MINOR_VERSION = 1;
 TINY_VERSION = 14;
-MICRO_VERSION = 0;
+MICRO_VERSION = 1;
 NANO_VERSION = 0;
-FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);
+FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION);
 
 // The bundle version and short version string are set based on the current build configuration, see below.
 BUNDLE_VERSION = $(BUNDLE_VERSION_$(CONFIGURATION));


Modified: tags/Safari-606.1.14.1/Source/WebInspectorUI/Configurations/Version.xcconfig (230832 => 230833)

--- tags/Safari-606.1.14.1/Source/WebInspectorUI/Configurations/Version.xcconfig	2018-04-20 03:10:09 UTC (rev 230832)
+++ tags/Safari-606.1.14.1/Source/WebInspectorUI/Configurations/Version.xcconfig	2018-04-20 03:16:34 UTC (rev 230833)
@@ -1,9 +1,9 @@
 MAJOR_VERSION = 606;
 MINOR_VERSION = 1;
 TINY_VERSION = 14;
-MICRO_VERSION = 0;
+MICRO_VERSION = 1;
 NANO_VERSION = 0;
-FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION);
+FULL_VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(TINY_VERSION).$(MICRO_VERSION);
 
 // The system version prefix is based on the current system version.
 SYSTEM_VERSION_PREFIX[sdk=iphone*] = 8;


Modified: tags/Safari-606.1.14.1/Source/WebKit/Configurations/Version.xcconfig (230832 => 230833)

--- tags/Safari-606.1.14.1/Source/WebKit/Configurations/Version.xcconfig	2018-04-20 03:10:09 UTC (rev 230832)
+++ tags/Safari-606.1.14.1/Source/WebKit/Configurations/Version.xcconfig	2018-04-20 03:16:34 UTC (rev 230833)
@@ 

[webkit-changes] [230832] tags/Safari-606.1.14.1/

2018-04-19 Thread kocsen_chung
Title: [230832] tags/Safari-606.1.14.1/








Revision 230832
Author kocsen_ch...@apple.com
Date 2018-04-19 20:10:09 -0700 (Thu, 19 Apr 2018)


Log Message
New tag.

Added Paths

tags/Safari-606.1.14.1/




Diff




___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [230831] trunk/Source

2018-04-19 Thread cdumez
Title: [230831] trunk/Source








Revision 230831
Author cdu...@apple.com
Date 2018-04-19 19:15:39 -0700 (Thu, 19 Apr 2018)


Log Message
Rename JSDOMWindowProxy to JSWindowProxy
https://bugs.webkit.org/show_bug.cgi?id=184797

Reviewed by Sam Weinig.

Rename JSDOMWindowProxy to JSWindowProxy for consistency with WindowProxy.

Source/WebCore:

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/IDLTypes.h:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSDOMConvertWindowProxy.h:
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::JSDOMWindowBase):
(WebCore::JSDOMWindowBase::finishCreation):
(WebCore::JSDOMWindowBase::proxy const):
(WebCore::toJSDOMWindow):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::toWrapped):
* bindings/js/JSEventTargetCustom.cpp:
(WebCore::JSEventTarget::toWrapped):
* bindings/js/JSRemoteDOMWindowBase.cpp:
(WebCore::JSRemoteDOMWindowBase::JSRemoteDOMWindowBase):
(WebCore::toJSRemoteDOMWindow):
* bindings/js/JSRemoteDOMWindowBase.h:
* bindings/js/JSWindowProxy.cpp: Renamed from Source/WebCore/bindings/js/JSDOMWindowProxy.cpp.
(WebCore::JSWindowProxy::JSWindowProxy):
(WebCore::JSWindowProxy::finishCreation):
(WebCore::JSWindowProxy::create):
(WebCore::JSWindowProxy::destroy):
(WebCore::JSWindowProxy::setWindow):
(WebCore::JSWindowProxy::attachDebugger):
(WebCore::JSWindowProxy::wrapped const):
(WebCore::JSWindowProxy::toWrapped):
(WebCore::toJS):
(WebCore::toJSWindowProxy):
* bindings/js/JSWindowProxy.h: Renamed from Source/WebCore/bindings/js/JSDOMWindowProxy.h.
(WebCore::toJS):
(WebCore::toJSWindowProxy):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::initScriptForWindowProxy):
* bindings/js/ScriptController.h:
* bindings/js/WindowProxy.cpp:
(WebCore::WindowProxy::createJSWindowProxy):
(WebCore::WindowProxy::jsWindowProxiesAsVector const):
(WebCore::WindowProxy::createJSWindowProxyWithInitializedScript):
* bindings/js/WindowProxy.h:
(WebCore::WindowProxy::jsWindowProxy):
(WebCore::WindowProxy::existingJSWindowProxy const):
* bindings/scripts/CodeGeneratorJS.pm:
(AddToIncludesForIDLType):
(GenerateHeader):
(GenerateOverloadDispatcher):
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodOverloadDispatcher):
* page/Frame.cpp:
* page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::didCreateWindowProxy const):
* page/csp/ContentSecurityPolicy.h:

Source/WebInspectorUI:

* UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
(HeapSnapshot.prototype._isNodeGlobalObject):

Source/WebKitLegacy/mac:

* DOM/DOMUtility.mm:
(createDOMWrapper):
* WebView/WebFrame.mm:
(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):

Source/WebKitLegacy/win:

* WebFrame.cpp:
(WebFrame::stringByEvaluatingJavaScriptInScriptWorld):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Sources.txt
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/bindings/IDLTypes.h
trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
trunk/Source/WebCore/bindings/js/JSDOMConvertWindowProxy.h
trunk/Source/WebCore/bindings/js/JSDOMWindowBase.cpp
trunk/Source/WebCore/bindings/js/JSDOMWindowBase.h
trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp
trunk/Source/WebCore/bindings/js/JSEventTargetCustom.cpp
trunk/Source/WebCore/bindings/js/JSRemoteDOMWindowBase.cpp
trunk/Source/WebCore/bindings/js/JSRemoteDOMWindowBase.h
trunk/Source/WebCore/bindings/js/ScriptController.cpp
trunk/Source/WebCore/bindings/js/ScriptController.h
trunk/Source/WebCore/bindings/js/WindowProxy.cpp
trunk/Source/WebCore/bindings/js/WindowProxy.h
trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.h
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.h
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.h
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.h
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.h
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.h
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializationInherit.h
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializationInheritFinal.h
trunk/Source/WebCore/page/Frame.cpp
trunk/Source/WebCore/page/csp/ContentSecurityPolicy.cpp
trunk/Source/WebCore/page/csp/ContentSecurityPolicy.h
trunk/Source/WebInspectorUI/ChangeLog
trunk/Source/WebInspectorUI/UserInterface/Workers/HeapSnapshot/HeapSnapshot.js
trunk/Source/WebKitLegacy/mac/ChangeLog
trunk/Source/WebKitLegacy/mac/DOM/DOMUtility.mm
trunk/Source/WebKitLegacy/mac/WebView/WebFrame.mm
trunk/Source/WebKitLegacy/win/ChangeLog
trunk/Source/WebKitLegacy/win/WebFrame.cpp


Added Paths

trunk/Source/WebCore/bindings/js/JSWindowProxy.cpp
trunk/Source/WebCore/bindings/js/JSWindowProxy.h


[webkit-changes] [230830] trunk/Source/WebKit

2018-04-19 Thread bburg
Title: [230830] trunk/Source/WebKit








Revision 230830
Author bb...@apple.com
Date 2018-04-19 18:45:21 -0700 (Thu, 19 Apr 2018)


Log Message
Web Automation: add support for mouse/keyboard interaction sequences
https://bugs.webkit.org/show_bug.cgi?id=184603


Reviewed by Timothy Hatcher.

Add new protocol methods and WebKit support for implementing the W3C Actions API.
This is a generic command for sending low-level mouse, key, and touch events to
test page behavior when performing drag-and-drop, gestures, or specific keydown/keyups.

To implement this functionality, this patch adds SimulatedInputDispatcher, a class
for dispatching input events asynchronously. Similar to the WebDriver specification,
this is designed as a keyframing API. Callers set up several "input sources" such
as keyboard or mouse, and then specify the states of that input source over time. The
dispatcher calculates diffs between the previous and current keyframes and generates
the appropriate events that would happen if a user caused the state transition.

For example, if a mouse input source's state changes, the dispatcher sends synthetic mousemove,
mousedown, or mouseup events depending on the pre- and post-state. This is uninteresting
and overcomplicated for simple key and mouse presses, but it's really designed with an
eye towards supporting mousemove interpolation and touch event interpolation in later patches.

The strategy for dispatching events depends on the input source type; right now, these
map directly to the existing platformSimulate{Mouse, Keyboard}Interaction methods. In
the future, the dispatch strategy may be elaborated for interpolated mousemove events.

This patch depends on support added in bug 184462.

No tests yet. When this command is hooked up to a driver, the code will be exercised by
W3C actions test suite, which is fairly complex at this point relative to end-user code.

* UIProcess/Automation/Automation.json: Add new types and commands.

* UIProcess/Automation/SimulatedInputDispatcher.h: Added.
(WebKit::SimulatedInputSourceState::emptyState):
(WebKit::SimulatedInputSource::create):
(WebKit::SimulatedInputSource::SimulatedInputSource):
(WebKit::SimulatedInputDispatcher::Client::~Client):
Add structs for input source, source state, and keyframe.
The dispatcher's client interface is implemented by WebAutomationSession.

(WebKit::SimulatedInputDispatcher::create):
* UIProcess/Automation/SimulatedInputDispatcher.cpp: Added.
(WebKit::SimulatedInputKeyFrame::SimulatedInputKeyFrame):
(WebKit::SimulatedInputKeyFrame::maximumDuration const):
(WebKit::SimulatedInputKeyFrame::keyFrameFromStateOfInputSources):
(WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources):
(WebKit::SimulatedInputDispatcher::SimulatedInputDispatcher):
(WebKit::SimulatedInputDispatcher::~SimulatedInputDispatcher):
(WebKit::SimulatedInputDispatcher::isActive const):
(WebKit::SimulatedInputDispatcher::keyFrameTransitionDurationTimerFired):
(WebKit::SimulatedInputDispatcher::isKeyFrameTransitionComplete const):
(WebKit::SimulatedInputDispatcher::transitionToNextKeyFrame):
(WebKit::SimulatedInputDispatcher::transitionToNextInputSourceState):
(WebKit::SimulatedInputDispatcher::transitionBetweenKeyFrames):
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):
(WebKit::SimulatedInputDispatcher::run):
(WebKit::SimulatedInputDispatcher::cancel):
(WebKit::SimulatedInputDispatcher::finishDispatching):
The dispatcher handles one interaction at a time. The interaction is described
by an array of keyframes, and each keyframe has an array of states. The dispatcher
transitions between keyframes by sequentially and asynchronously emitting events
that cause each input source state to transition as desired. Keyframe transitions
are additionally gated by a "maximum duration" timer. Each step that the dispatcher
executes is asynchronous, so the dispatcher keeps most state in members and uses
error argument lambdas as completion handlers for various async things.

* UIProcess/Automation/WebAutomationSession.h:
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::WebAutomationSession):
(WebKit::WebAutomationSession::inputDispatcherForPage):
(WebKit::WebAutomationSession::inputSourceForType const):
Add canonical input sources that are used to keep track of state across
interaction sequences.

(WebKit::WebAutomationSession::isSimulatingUserInteraction const):
(WebKit::WebAutomationSession::mouseEventsFlushedForPage):
(WebKit::WebAutomationSession::keyboardEventsFlushedForPage):
Remove m_simulatingUserInteraction since it can be computed based on other members.

(WebKit::WebAutomationSession::willClosePage):
If the page is being torn down, stop the dispatcher if needed and cancel any
callbacks waiting for mouse/key events to be retired.

(WebKit::WebAutomationSession::simulateMouseInteraction):
(WebKit::WebAutomationSession::simulateKeyboardInteraction):
Add easy-to-use async methods for simulating mouse and key events. 

[webkit-changes] [230829] trunk

2018-04-19 Thread commit-queue
Title: [230829] trunk








Revision 230829
Author commit-qu...@webkit.org
Date 2018-04-19 18:00:40 -0700 (Thu, 19 Apr 2018)


Log Message
Introduce SVGGeometryElement interface
https://bugs.webkit.org/show_bug.cgi?id=184768

Source/WebCore:

Patch by Dirk Schulze  on 2018-04-19
Reviewed by Antti Koivisto.

Start implementing SVGGeometryElement interface from SVG2.
https://svgwg.org/svg2-draft/types.html#InterfaceSVGGeometryElement

Start with SVGPathElement only for now. Also, just inferface gets implemented
by this patch. No new functionality like isPointInFill yet.
Fix getPointAtLength and make it more restrictive. This follows the spec and
all other implementations.

Added additional test scenarios to existing tests.

* CMakeLists.txt:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGeneratorJS.pm:
(GetGnuVTableOffsetForType):
* svg/SVGAllInOne.cpp:
* svg/SVGGeometryElement.cpp: Added.
(WebCore::SVGGeometryElement::SVGGeometryElement):
(WebCore::SVGGeometryElement::isSupportedAttribute):
(WebCore::SVGGeometryElement::parseAttribute):
(WebCore::SVGGeometryElement::svgAttributeChanged):
(WebCore::SVGGeometryElement::createElementRenderer):
* svg/SVGGeometryElement.h: Added.
* svg/SVGGeometryElement.idl: Added.
* svg/SVGGradientElement.cpp:
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::SVGPathElement):
(WebCore::SVGPathElement::parseAttribute):
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::insertedIntoAncestor):
(WebCore::SVGPathElement::removedFromAncestor):
* svg/SVGPathElement.h:
* svg/SVGPathElement.idl:

LayoutTests:

Patch by Dirk Schulze  on 2018-04-19
Reviewed by Antti Koivisto.

Start implementing SVGGeometryElement interface from SVG2.

* svg/dom/SVGPolygonElement-baseVal-list-removal-crash.html: pointAtLength requires value now.
* svg/dom/path-pointAtLength-expected.txt:
* svg/dom/path-pointAtLength.html: Added throw tests for pointAtLength.
* svg/dom/svg2-inheritance-expected.txt: Inheritance fixed for SVGPathElement only for now.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/svg/dom/SVGPolygonElement-baseVal-list-removal-crash.html
trunk/LayoutTests/svg/dom/path-pointAtLength-expected.txt
trunk/LayoutTests/svg/dom/path-pointAtLength.html
trunk/LayoutTests/svg/dom/svg2-inheritance-expected.txt
trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/DerivedSources.make
trunk/Source/WebCore/Sources.txt
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
trunk/Source/WebCore/svg/SVGAllInOne.cpp
trunk/Source/WebCore/svg/SVGGradientElement.cpp
trunk/Source/WebCore/svg/SVGPathElement.cpp
trunk/Source/WebCore/svg/SVGPathElement.h
trunk/Source/WebCore/svg/SVGPathElement.idl


Added Paths

trunk/Source/WebCore/svg/SVGGeometryElement.cpp
trunk/Source/WebCore/svg/SVGGeometryElement.h
trunk/Source/WebCore/svg/SVGGeometryElement.idl




Diff

Modified: trunk/LayoutTests/ChangeLog (230828 => 230829)

--- trunk/LayoutTests/ChangeLog	2018-04-19 23:59:50 UTC (rev 230828)
+++ trunk/LayoutTests/ChangeLog	2018-04-20 01:00:40 UTC (rev 230829)
@@ -1,3 +1,17 @@
+2018-04-19  Dirk Schulze  
+
+Introduce SVGGeometryElement interface
+https://bugs.webkit.org/show_bug.cgi?id=184768
+
+Reviewed by Antti Koivisto.
+
+Start implementing SVGGeometryElement interface from SVG2.
+
+* svg/dom/SVGPolygonElement-baseVal-list-removal-crash.html: pointAtLength requires value now.
+* svg/dom/path-pointAtLength-expected.txt:
+* svg/dom/path-pointAtLength.html: Added throw tests for pointAtLength.
+* svg/dom/svg2-inheritance-expected.txt: Inheritance fixed for SVGPathElement only for now.
+
 2018-04-19  Tadeu Zagallo  
 
 REGRESSION(r227340): ArrayBuffers were not being serialized when sent via MessagePorts


Modified: trunk/LayoutTests/svg/dom/SVGPolygonElement-baseVal-list-removal-crash.html (230828 => 230829)

--- trunk/LayoutTests/svg/dom/SVGPolygonElement-baseVal-list-removal-crash.html	2018-04-19 23:59:50 UTC (rev 230828)
+++ trunk/LayoutTests/svg/dom/SVGPolygonElement-baseVal-list-removal-crash.html	2018-04-20 01:00:40 UTC (rev 230829)
@@ -7,7 +7,7 @@
 function go() {
 var oSVGPolygon = document.createElementNS("http://www.w3.org/2000/svg", "polygon");
 var oSVGPath = document.createElementNS("http://www.w3.org/2000/svg", "path");
-var oSVGPoint1 = oSVGPath.getPointAtLength();
+var oSVGPoint1 = oSVGPath.getPointAtLength(0);
 oSVGPolygon.points.initialize(oSVGPoint1);
 oSVGPolygon.points.removeItem(-9223372036854775802);
 alert("Accessing old oSVGPoint1.x: " + oSVGPoint1.x);


Modified: trunk/LayoutTests/svg/dom/path-pointAtLength-expected.txt (230828 => 230829)

--- trunk/LayoutTests/svg/dom/path-pointAtLength-expected.txt	2018-04-19 23:59:50 UTC (rev 230828)
+++ 

[webkit-changes] [230828] trunk

2018-04-19 Thread commit-queue
Title: [230828] trunk








Revision 230828
Author commit-qu...@webkit.org
Date 2018-04-19 16:59:50 -0700 (Thu, 19 Apr 2018)


Log Message
REGRESSION(r227340): ArrayBuffers were not being serialized when sent via MessagePorts
https://bugs.webkit.org/show_bug.cgi?id=184254


Patch by Tadeu Zagallo  on 2018-04-19
Reviewed by Daniel Bates.

Source/_javascript_Core:

Expose an extra constructor of ArrayBufferContents in order to be able to decode SerializedScriptValues.

* runtime/ArrayBuffer.h:
(JSC::ArrayBufferContents::ArrayBufferContents):

Source/WebCore:

Add a new encoding method to SerializedScriptValue that includes ArrayBuffers.

Test: workers/message-port.html

* bindings/js/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::encode const):
(WebCore::SerializedScriptValue::decode):
* dom/messageports/MessageWithMessagePorts.h:
(WebCore::MessageWithMessagePorts::encode const):
(WebCore::MessageWithMessagePorts::decode):

LayoutTests:

The regression test provided with the bug report verifies that the ArrayBuffer is properly
serialized - before, the whole data object would be null.
Test case provided by Yann Cabon  as part of the bug report.

* workers/message-port-expected.txt: Added.
* workers/message-port.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/runtime/ArrayBuffer.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/bindings/js/SerializedScriptValue.cpp
trunk/Source/WebCore/bindings/js/SerializedScriptValue.h
trunk/Source/WebCore/dom/messageports/MessageWithMessagePorts.h


Added Paths

trunk/LayoutTests/workers/message-port-expected.txt
trunk/LayoutTests/workers/message-port.html




Diff

Modified: trunk/LayoutTests/ChangeLog (230827 => 230828)

--- trunk/LayoutTests/ChangeLog	2018-04-19 23:51:56 UTC (rev 230827)
+++ trunk/LayoutTests/ChangeLog	2018-04-19 23:59:50 UTC (rev 230828)
@@ -1,3 +1,18 @@
+2018-04-19  Tadeu Zagallo  
+
+REGRESSION(r227340): ArrayBuffers were not being serialized when sent via MessagePorts
+https://bugs.webkit.org/show_bug.cgi?id=184254
+
+
+Reviewed by Daniel Bates.
+
+The regression test provided with the bug report verifies that the ArrayBuffer is properly
+serialized - before, the whole data object would be null.
+Test case provided by Yann Cabon  as part of the bug report.
+
+* workers/message-port-expected.txt: Added.
+* workers/message-port.html: Added.
+
 2018-04-19  Eric Carlson  
 
 Runtime logging during GC can cause crash


Added: trunk/LayoutTests/workers/message-port-expected.txt (0 => 230828)

--- trunk/LayoutTests/workers/message-port-expected.txt	(rev 0)
+++ trunk/LayoutTests/workers/message-port-expected.txt	2018-04-19 23:59:50 UTC (rev 230828)
@@ -0,0 +1,12 @@
+Sends ArrayBuffers through MessagePorts.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS array[0] contains 3.141592653589793
+PASS successfully transferred array of length 0
+PASS successfully transferred array of length 0
+PASS successfullyParsed is true
+
+TEST COMPLETE
+


Added: trunk/LayoutTests/workers/message-port.html (0 => 230828)

--- trunk/LayoutTests/workers/message-port.html	(rev 0)
+++ trunk/LayoutTests/workers/message-port.html	2018-04-19 23:59:50 UTC (rev 230828)
@@ -0,0 +1,63 @@
+
+
+
+
+
+