WebKit-https.git
5 years agoMake it possible to test iOS select elements, and add iPhone and iPad tests for them
simon.fraser@apple.com [Tue, 16 Aug 2016 22:15:47 +0000 (22:15 +0000)]
Make it possible to test iOS select elements, and add iPhone and iPad tests for them
https://bugs.webkit.org/show_bug.cgi?id=160909

Reviewed by Enrica Casucci.

Source/WebKit2:

Hook up form-related UIScriptController functions, and plumb through the various
<select> pickers the ability to select a row.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView dismissFormAccessoryView]):
(-[WKWebView selectFormAccessoryPickerRow:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView selectFormAccessoryPickerRow:]):
* UIProcess/ios/forms/WKFormSelectControl.h:
* UIProcess/ios/forms/WKFormSelectControl.mm:
(-[WKFormSelectControl selectRow:inComponent:extendingSelection:]):
* UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKMultipleSelectPicker selectRow:inComponent:extendingSelection:]):
(-[WKSelectSinglePicker selectRow:inComponent:extendingSelection:]):
* UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectPopover selectRow:inComponent:extendingSelection:]):

Tools:

Add functions to UIScriptController to dismiss the form accessory view for iOS,
and to programmatically pick a row from a <select> picker.

* WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl:
* WebKitTestRunner/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::dismissFormAccessoryView):
(WTR::UIScriptController::selectFormAccessoryPickerRow):
* WebKitTestRunner/UIScriptContext/UIScriptController.h:
* WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::dismissFormAccessoryView):
(WTR::UIScriptController::selectFormAccessoryPickerRow):

LayoutTests:

Add iPhone and iPad tests for the <select> pickers. The iPhone test has to
use a didShowKeyboardCallback to know when to select the appropriate row,
and to dismiss the picker. The iPad test can just select the row, which also
dismisses the popover.

* fast/forms/ios/choose-select-option-expected.txt: Added.
* fast/forms/ios/choose-select-option.html: Added.
* fast/forms/ios/ipad/choose-select-option-expected.txt: Added.
* fast/forms/ios/ipad/choose-select-option.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204525 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCleanup WK2 platform gamepad handling.
beidson@apple.com [Tue, 16 Aug 2016 21:44:25 +0000 (21:44 +0000)]
Cleanup WK2 platform gamepad handling.
https://bugs.webkit.org/show_bug.cgi?id=160871

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No currently testable change in behavior).

This patch does a few things:
1 - Separates the concepts of "monitoring gamepads" and "monitoring gamepad inputs"
2 - Uses this new concept to much more cleanly handle the case where we are not currently
    monitoring gamepad inputs because an interested WKWebView is not front and center.
3 - Pre-populates the "initial set of gamepads" in WebProcesses that start listening for gamepads.

* platform/gamepad/GamepadProviderClient.h:
(WebCore::GamepadProviderClient::setInitialConnectedGamepads):

* platform/gamepad/mac/HIDGamepadProvider.cpp:
(WebCore::HIDGamepadProvider::HIDGamepadProvider):
(WebCore::HIDGamepadProvider::stopMonitoringInput):
(WebCore::HIDGamepadProvider::startMonitoringInput):
(WebCore::HIDGamepadProvider::connectionDelayTimerFired):
* platform/gamepad/mac/HIDGamepadProvider.h:

Source/WebKit2:

This patch does a few things:
1 - Separates the concepts of "monitoring gamepads" and "monitoring gamepad inputs"
2 - Uses this new concept to much more cleanly handle the case where we are not currently
    monitoring gamepad inputs because an interested WKWebView is not front and center.
3 - Pre-populates the "initial set of gamepads" in WebProcesses that start listening for gamepads.

* Platform/Logging.h:

* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::gamepadSyncTimerFired):
(WebKit::UIGamepadProvider::setInitialConnectedGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::viewBecameActive):
(WebKit::UIGamepadProvider::viewBecameInactive):
(WebKit::UIGamepadProvider::stopMonitoringGamepads):
(WebKit::UIGamepadProvider::snapshotGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringInput):
(WebKit::UIGamepadProvider::UIGamepadProvider): Deleted.
(WebKit::UIGamepadProvider::scheduleDisableGamepadMonitoring): Deleted.
(WebKit::UIGamepadProvider::disableMonitoringTimerFired): Deleted.
* UIProcess/Gamepad/UIGamepadProvider.h:

* UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp:
(WebKit::UIGamepadProvider::platformStopMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringInput):

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setInitialConnectedGamepads):
* UIProcess/WebProcessPool.h:

* WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::setInitialGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h:

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setInitialGamepads):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204524 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[iOS] Add iPad viewport and form tests, and revert the iPad-testing part of r202132
simon.fraser@apple.com [Tue, 16 Aug 2016 21:18:44 +0000 (21:18 +0000)]
[iOS] Add iPad viewport and form tests, and revert the iPad-testing part of r202132
https://bugs.webkit.org/show_bug.cgi?id=160878

Reviewed by Tim Horton.
Source/WebKit2:

Remove testing-specific "forceIPadStyleZoomOnInputFocus" behavior added in r202132
now that we have the ability to run tests in the iPad simulator.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView forceIPadStyleZoomOnInputFocus]): Deleted.
(-[WKWebView setForceIPadStyleZoomOnInputFocus:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _displayFormNodeInputView]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView inputAccessoryView]):
(-[WKContentView requiresAccessoryView:]): Deleted.
(-[WKContentView forceIPadStyleZoomOnInputFocus]): Deleted.
(-[WKContentView setForceIPadStyleZoomOnInputFocus:]): Deleted.

Tools:

Remove testing-specific "forceIPadStyleZoomOnInputFocus" behavior added in r202132
now that we have the ability to run tests in the iPad simulator.

* WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl:
* WebKitTestRunner/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::forceIPadStyleZoomOnInputFocus): Deleted.
(WTR::UIScriptController::setForceIPadStyleZoomOnInputFocus): Deleted.
* WebKitTestRunner/UIScriptContext/UIScriptController.h:
* WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues): Deleted.
* WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::forceIPadStyleZoomOnInputFocus): Deleted.
(WTR::UIScriptController::setForceIPadStyleZoomOnInputFocus): Deleted.

LayoutTests:

Move forms/ios/focus-input-via-button-ipad.html into fast/forms/ios/ipad, making it
an iPad test, which allows for the removal of the "useIPadBehavior" flag.

Add fast/viewport/ios/ipad/width-is-device-width.html with iPad-specific results.

* fast/forms/ios/ipad/focus-input-via-button-expected.txt: Renamed from LayoutTests/fast/forms/ios/focus-input-via-button-ipad-expected.txt.
* fast/forms/ios/ipad/focus-input-via-button.html: Renamed from LayoutTests/fast/forms/ios/focus-input-via-button-ipad.html.
* fast/forms/ios/resources/zooming-test-utils.js:
(testZoomAfterTap):
* fast/viewport/ios/ipad/width-is-device-width-expected.txt: Added.
* fast/viewport/ios/ipad/width-is-device-width.html: Added.
* platform/ios-simulator-wk2/TestExpectations: Enable fast/viewport/ios, because leaving
them skipped from the base TestExpectations is evil.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204523 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoquerySelector() / querySelectorAll() should always throw a SyntaxError when failing...
cdumez@apple.com [Tue, 16 Aug 2016 20:58:00 +0000 (20:58 +0000)]
querySelector() / querySelectorAll() should always throw a SyntaxError when failing to parse selector string
https://bugs.webkit.org/show_bug.cgi?id=160906

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

* web-platform-tests/dom/nodes/Element-matches-expected.txt:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:

Source/WebCore:

querySelector() / querySelectorAll() should always throw a SyntaxError
when failing to parse selector string:
- https://dom.spec.whatwg.org/#dom-parentnode-queryselector
- https://dom.spec.whatwg.org/#scope-match-a-selectors-string

In some cases, WebKit was throwing a NamespaceError instead.

No new tests, rebaselined existing tests.

* dom/SelectorQuery.cpp:
(WebCore::SelectorQueryCache::add):

LayoutTests:

Rebaseline several layout tests now that we throw a different exception type.

* fast/css/parsing-css-attribute-case-insensitive-value-1-expected.txt:
* fast/css/parsing-css-attribute-case-insensitive-value-2-expected.txt:
* fast/dom/SelectorAPI/not-supported-namespace-in-selector-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204522 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUpgrade-Insecure-Request state is improperly retained between navigations
bfulgham@apple.com [Tue, 16 Aug 2016 20:32:57 +0000 (20:32 +0000)]
Upgrade-Insecure-Request state is improperly retained between navigations
https://bugs.webkit.org/show_bug.cgi?id=160905
<rdar://problem/27075526>

Reviewed by Andy Estes.

Source/WebCore:

Correct the handling of Upgrade-Insecure-Request state to match the specification, so that
performing top-level navigation to sites that do not have the Upgrade-Insecure-Request header
does not automatically upgrade insecure loads. The same loads performed in an iframe should
be upgraded.

The iframe case was already handled in our tests, but a new test is added that models the top-level
navigation and confirms that an upgrade is not performed.

Tests: http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-uir-on-navigation.html

* dom/Document.cpp:
(WebCore::Document::initContentSecurityPolicy): Properly inherit Upgrade-Insecure-Request state for children
of existing frames.
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin): Retain the history of upgraded resources (per the specification) so that
we continue to upgrade resources that were upgraded during earlier navigations. Note that we do NOT want to
retain the state of the Upgrade-Insecure-Requests header itself.
* page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::copyStateFrom): Update to use new helper function.
(WebCore::ContentSecurityPolicy::copyUpgradeInsecureRequestStateFrom): New helper function.
* page/csp/ContentSecurityPolicy.h:

LayoutTests:

* http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-uir-on-navigation-expected.txt: Added.
* http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-uir-on-navigation.html: Added.
* http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-site.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204521 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: DOM nodes shift when hovering over them in Console
nvasilyev@apple.com [Tue, 16 Aug 2016 19:57:00 +0000 (19:57 +0000)]
Web Inspector: DOM nodes shift when hovering over them in Console
https://bugs.webkit.org/show_bug.cgi?id=160789
<rdar://problem/27815600>

Reviewed by Matt Baker.

* UserInterface/Views/FormattedValue.css:
(.formatted-node > .tree-outline.dom ol): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204520 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd an address-of operator to RetainPtr
andersca@apple.com [Tue, 16 Aug 2016 19:29:35 +0000 (19:29 +0000)]
Add an address-of operator to RetainPtr
https://bugs.webkit.org/show_bug.cgi?id=160879

Reviewed by Tim Horton.

Source/WTF:

This will make some security-related code from WebKitSystemInterface easier to port.

* wtf/HashIterators.h:
(WTF::HashTableValuesIterator::get):
* wtf/HashTable.h:
(WTF::HashTableBucketInitializer<true>::initialize):
Use std::addressof instead of &, in case & is overloaded.

* wtf/RetainPtr.h:
(WTF::RetainPtr::operator&):
Implement this.

Tools:

Test HashMap and HashSet with an object whose operator& is deleted.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
Sort the Xcode project.

* TestWebKitAPI/Tests/WTF/DeletedAddressOfOperator.h: Added.
(DeletedAddressOfOperator::DeletedAddressOfOperator):
(DeletedAddressOfOperator::value):
(DeletedAddressOfOperator::operator==):
(WTF::HashTraits<DeletedAddressOfOperator>::constructDeletedValue):
(WTF::HashTraits<DeletedAddressOfOperator>::isDeletedValue):
(WTF::DefaultHash<DeletedAddressOfOperator>::Hash::hash):
(WTF::DefaultHash<DeletedAddressOfOperator>::Hash::equal):
* TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/HashSet.cpp:
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204519 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Data grid has a double left border when the first column is hidden
nvasilyev@apple.com [Tue, 16 Aug 2016 19:25:57 +0000 (19:25 +0000)]
Web Inspector: Data grid has a double left border when the first column is hidden
https://bugs.webkit.org/show_bug.cgi?id=160723
<rdar://problem/27778081>

Reviewed by Timothy Hatcher.

This patch exploits the fact hiding columns that aren't first in DataGrid don't create double
borders.

* UserInterface/Views/DataGrid.css:
(.data-grid table.header,):
(.data-grid :matches(th, td):first-child):
(@media (-webkit-min-device-pixel-ratio: 2)):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204518 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoctx.drawImage should clip source rect if it is outside the source image
cdumez@apple.com [Tue, 16 Aug 2016 19:08:58 +0000 (19:08 +0000)]
ctx.drawImage should clip source rect if it is outside the source image
https://bugs.webkit.org/show_bug.cgi?id=160804

Reviewed by Simon Fraser.

Source/WebCore:

According to the specification [1]"
"When the source rectangle is outside the source image, the source rectangle
must be clipped to the source image and the destination rectangle must be
clipped in the same proportion."

Firefox and Chrome behave according to the specification. This patch aligns
our behavior.

[1] https://html.spec.whatwg.org/multipage/scripting.html#dom-context-2d-drawimage

Test: fast/canvas/drawImage-srcRect-clipping.html

* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):

LayoutTests:

Add layout test coverage.

* fast/canvas/drawImage-srcRect-clipping-expected.html: Added.
* fast/canvas/drawImage-srcRect-clipping.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204517 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago⛱ : Implement parsing of Media Constraints for getUserMedia algorithm in Media Captur...
commit-queue@webkit.org [Tue, 16 Aug 2016 19:04:06 +0000 (19:04 +0000)]
⛱ : Implement parsing of Media Constraints for getUserMedia algorithm in Media Capture and Streaming Spec
https://bugs.webkit.org/show_bug.cgi?id=160533
<rdar://problem/27688483>

Patch by George Ruan <gruan@apple.com> on 2016-08-16
Reviewed by Chris Dumez.

Source/WebCore:

Two getUserMedia tests have been updated to reflect changes and cover limited
testing of the parsing of media constraints when given to getUserMedia().
Current testing infrastructure doesn't support full testing of the parsing
of media constraints. Either a mock needs to be created or the selectSettings()
algorithm will need to be implemented so we can see the constraints reflected
by the settings of media stream tracks. See https://bugs.webkit.org/show_bug.cgi?id=160791.

The specification on media constraints and how they are provided to getUserMedia() and
applyConstraints() has changed. These constraints are parsed in the bindings and are
stored in a new class MediaConstraint with derived classes LongConstraint, DoubleConstraint,
BooleanConstraint, and StringConstraint, each holding their respective type of constraint
value.

* CMakeLists.txt: Add JSMediaDevicesCustom.cpp and MediaConstraints.cpp.
* Modules/mediastream/CaptureDeviceManager.cpp:
(CaptureDeviceManager::verifyConstraintsForMediaType): Make changes according
to how format of MediaConstraint was changed.
(CaptureDeviceManager::sessionSupportsConstraint): Ditto.
(CaptureDeviceManager::isSupportedFrameRate): Ditto. Also for the time being
support constraint validation with a static acceptable frame rate range of 0-60.
See relevant https://bugs.webkit.org/show_bug.cgi?id=160794 for supporting
constraint validation of frame rate dynamically.
* Modules/mediastream/CaptureDeviceManager.h: Make changes according to how
format of MediaConstraint was changed.
* Modules/mediastream/MediaConstraintsImpl.cpp: Remove code for parsing media
constraints in the legacy format with keys 'mandatory' and 'optional'. Removal
of legacy code is fine since MEDIA_STREAM feature flag is not enabled for any port.
(WebCore::MediaConstraintsImpl::create): Ditto
(WebCore::MediaConstraintsImpl::initialize): Still used by applyConstraints().
Added FIXME to remove after applyConstraints implementation is changed according
to w3c spec changes.
(WebCore::MediaConstraintsImpl::mandatoryConstraints): Make changes according to
how media constraint data is now stored.
(WebCore::MediaConstraintsImpl::advancedConstraints): Ditto.
(WebCore::MediaConstraintsImpl::getMandatoryConstraints): Deleted.
(WebCore::MediaConstraintsImpl::getOptionalConstraints): Deleted.
(WebCore::MediaConstraintsImpl::getMandatoryConstraintValue): Deleted.
(WebCore::MediaConstraintsImpl::getOptionalConstraintValue): Deleted.
* Modules/mediastream/MediaConstraintsImpl.h:
(WebCore::MediaConstraintsImpl::MediaConstraintsImpl): Add a constructor to allow
construction of MediaConstraintsImpl object based on how the custom binding code
for MediaDevices would parse the media constraints given to getUserMedia().
* Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::getUserMedia): Make changes according to how media constraint
data is now stored.
* Modules/mediastream/MediaDevices.h: Ditto.
* Modules/mediastream/MediaDevices.idl: Add custom binding to parse media constraints,
since we do not have support for automatic binding generation of sequence of dictionaries,
dictionary inheritance, dictionaries inside of dictionaries, disjunctions, or dictionaries
without an interface.
* Modules/mediastream/MediaStreamTrack.cpp: Add FIXME with related bug.
(WebCore::MediaStreamTrack::applyConstraints): Ditto.
* Modules/mediastream/UserMediaRequest.cpp: Make changes according to how media constraint
data is now parsed and stored.
(WebCore::UserMediaRequest::start): Ditto.
(WebCore::UserMediaRequest::UserMediaRequest): Ditto.
(WebCore::UserMediaRequest::didCreateStream): Ditto.
(WebCore::parseOptions): Deleted.
* Modules/mediastream/UserMediaRequest.h: Ditto.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp: Added JSMediaDevicesCustom.cpp.
* bindings/js/JSMediaDevicesCustom.cpp: Added. Custom bindings to parse media constraints.
(WebCore::initializeStringConstraintWithList): Initialize string constraint 'exact' or 'ideal'
value according to an ArrayValue.
(WebCore::createStringConstraint): Given a dictionary acting as a 'MediaTrackConstraintSet'
and a string constraint key (e.g for facingMode), creates a native StringConstraint class to hold
the data.
(WebCore::createBooleanConstraint): Ditto but for constraints of type boolean.
(WebCore::createDoubleConstraint): Ditto but for constraints of type double.
(WebCore::createIntConstraint): Ditto but for constraints of type long.
(WebCore::parseMediaTrackConstraintSetForKey): Parses a given dictionary acting as a
'MediaTrackConstraintSet' for a constraint as the key and creates the correct native object to hold
the data.
(WebCore::parseAdvancedConstraints): Parses the advanced constraints.
(WebCore::parseConstraints): Parses the constraints of a Dictionary acting as a
'MediaTrackConstraints'.
(WebCore::JSMediaDevices::getUserMedia): Parses the constraint input to getUserMedia.
* platform/mediastream/MediaConstraints.cpp: Added. Add MediaConstraint classes with derived
classes IntConstraint, DoubleConstraint, BooleanConstraint, and StringConstraint to act as
containers for the parsed data from getUserMedia().
(WebCore::MediaConstraint::create): Factory that creates the correct derived class based on the
name of a media constraint.
(WebCore::MediaConstraint::getMin): Interface for getting the min value for a constraint.
ASSERT checks are in place to prevent calling getMin with the incorrect constraint type.
(WebCore::MediaConstraint::getMax): Ditto but for max value of constraint.
(WebCore::MediaConstraint::getExact): Ditto but for exact value of constraint.
(WebCore::MediaConstraint::getIdeal): Ditto but for ideal value of constraint.
(WebCore::IntConstraint::create): Creates a long constraint.
(WebCore::IntConstraint::setMin): Sets min value of constraint.
(WebCore::IntConstraint::setMax): Sets max value of constraint.
(WebCore::IntConstraint::setExact): Sets exact value of constraint.
(WebCore::IntConstraint::setIdeal): Sets ideal value of constraint.
(WebCore::IntConstraint::getMin): Overrides interface function and gets min value of constraint.
(WebCore::IntConstraint::getMax): Ditto but for max value of constraint.
(WebCore::IntConstraint::getExact): Ditto but for exact value of constraint.
(WebCore::IntConstraint::getIdeal): Ditto but for ideal value of constraint.
(WebCore::DoubleConstraint::create): Ditto, DoubleConstraint instead of IntConstraint.
(WebCore::DoubleConstraint::setMin): Ditto.
(WebCore::DoubleConstraint::setMax): Ditto.
(WebCore::DoubleConstraint::setExact): Ditto.
(WebCore::DoubleConstraint::setIdeal): Ditto.
(WebCore::DoubleConstraint::getMin): Ditto.
(WebCore::DoubleConstraint::getMax): Ditto.
(WebCore::DoubleConstraint::getExact): Ditto.
(WebCore::DoubleConstraint::getIdeal): Ditto.
(WebCore::BooleanConstraint::create): Ditto, BooleanConstraint instead of IntConstraint.
(WebCore::BooleanConstraint::setExact): Ditto.
(WebCore::BooleanConstraint::setIdeal): Ditto.
(WebCore::BooleanConstraint::getExact): Ditto.
(WebCore::BooleanConstraint::getIdeal): Ditto.
(WebCore::StringConstraint::create): Ditto, StringConstraint instead of IntConstraint.
(WebCore::StringConstraint::setExact): Ditto.
(WebCore::StringConstraint::appendExact): Appends string to 'exact' value of StringConstraint.
(WebCore::StringConstraint::setIdeal): Ditto.
(WebCore::StringConstraint::appendIdeal): Appends string to 'ideal' value of StringConstraint.
(WebCore::StringConstraint::getExact): Ditto.
(WebCore::StringConstraint::getIdeal): Ditto.
* platform/mediastream/MediaConstraints.h: Add MediaConstraint classes with derived
classes IntConstraint, DoubleConstraint, BooleanConstraint, and StringConstraint to act as
containers for the parsed data from getUserMedia().
(WebCore::MediaConstraint::~MediaConstraint):
(WebCore::MediaConstraint::name): Get name of constraint.
(WebCore::MediaConstraint::MediaConstraint): Constructor.
(WebCore::NumericConstraint::NumericConstraint): Base class of DoubleConstraint and IntConstraint.
(WebCore::NumericConstraint::setHasMin): Sets whether object has min vlaue.
(WebCore::NumericConstraint::setHasMax): Ditto but for max.
(WebCore::NumericConstraint::setHasExact): Ditto but for exact.
(WebCore::NumericConstraint::setHasIdeal): Ditto but for ideal.
(WebCore::NumericConstraint::hasMin): Gets whether object has min value.
(WebCore::NumericConstraint::hasMax): Ditto but for max.
(WebCore::NumericConstraint::hasExact): Ditto but for exact.
(WebCore::NumericConstraint::hasIdeal): Ditto but for ideal.
* platform/mediastream/RealtimeMediaSourceCenter.h: Parameters can be reference since
lifetime is guaranteed and ownership is not taken.
* platform/mediastream/mac/AVCaptureDeviceManager.h: Ditto.
* platform/mediastream/mac/AVCaptureDeviceManager.mm: Ditto.
(WebCore::AVCaptureDeviceManager::verifyConstraintsForMediaType): Ditto.
(WebCore::AVCaptureDeviceManager::sessionSupportsConstraint): Make changes according to
how media constraint data is stored.
(WebCore::AVCaptureDeviceManager::createMediaSourceForCaptureDeviceWithConstraints):
Ditto.
(WebCore::AVCaptureDeviceManager::isSupportedFrameRate): Ditto.
* platform/mediastream/mac/AVVideoCaptureSource.h: Change frame rate from 'float' to 'double'.
* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::setFrameRateConstraint): Ditto.
(WebCore::AVVideoCaptureSource::applyConstraints): Make changes according to how media constraint
data is stored. The implementation of applyConstraints has also drastically changed, and a FIXME
is associated.
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::validateRequestConstraints):
The bindings will always pass a non-null MediaConstraints object to
getUserMedia() so a pointer MediaConstraints parameter is not necessary.
(WebCore::RealtimeMediaSourceCenterMac::createMediaStream): Ditto.
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.h: Change 'override' to 'final'
since RealtimeMediaSourceCenterMac is a 'final' class.
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.cpp: Ditto to
RealtimeMediaSourceCenterMac.
(WebCore::RealtimeMediaSourceCenterOwr::createMediaStream): Ditto.
(WebCore::RealtimeMediaSourceCenterOwr::validateRequestConstraints):
* platform/mediastream/openwebrtc/RealtimeMediaSourceCenterOwr.h: Ditto.
* platform/mock/MediaConstraintsMock.cpp: Change how constraint validation is mocked.
(WebCore::isLongMediaConstraintSatisfiable): Sets arbitrary min and max supported value to be 0 and 10,
respectively. Then checks if constraint is satisfiable.
(WebCore::isDoubleMediaConstraintSatisfiable): Ditto but with double.
(WebCore::isBooleanMediaConstraintSatisfiable): Mock a boolean constraint to only be satisfiable if the
'exact' value is true.
(WebCore::isStringMediaConstraintSatisfiable): Mock a string constraint to only be satisfiable if the
'exact' value has the string 'valid'
(WebCore::isSatisfiable): Checks if a certain constraint is satisfiable.
(WebCore::MediaConstraintsMock::verifyConstraints): Verifies if the constraints are satisfiable.
(WebCore::isSupported): Deleted.
(WebCore::isValid): Deleted.
* platform/mock/MediaConstraintsMock.h: Change argument of MediaConstraints to raw pointer.
* platform/mock/MockRealtimeMediaSourceCenter.cpp: Change arguments of MediaConstraints to a raw pointer
and make changes according to how the MediaConstraint was changed.
(WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints):
(WebCore::MockRealtimeMediaSourceCenter::createMediaStream):
* platform/mock/MockRealtimeMediaSourceCenter.h: Change argument of MediaConstraints to raw pointer.

LayoutTests:

Implementation of parsing of media constraints passed to getUserMedia has changed to meet
the current w3c standards. Three major changes have been introduced
- If the parameter in getUserMedia is missing a TypeError is thrown, according to the IDL spec
- Given a Dictionary value with neither 'audio' nor 'video' keys having dictionary values
or 'true', the promise is rejected with a TypeError
- If the constraints cannot be satisfied the promise is rejected with a DataError. This should
be changed to an OverConstrainedError in the future. See
https://bugs.webkit.org/show_bug.cgi?id=160790

* fast/mediastream/MediaDevices-getUserMedia-expected.txt:
* fast/mediastream/MediaDevices-getUserMedia.html: Added limited testing of parsing of
media constraints for getUserMedia(), this includes only testing of mandatory constraints
and whether the promise is rejected if the constraints cannot be satisfied.
* fast/mediastream/getusermedia-expected.txt:
* fast/mediastream/getusermedia.html: As format of media constraints have changed, the test
has been updated to reflect those changes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204516 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix WinCairo build after r204512.
achristensen@apple.com [Tue, 16 Aug 2016 18:11:55 +0000 (18:11 +0000)]
Fix WinCairo build after r204512.

* platform/network/curl/SocketStreamHandleImpl.h:
* platform/network/curl/SocketStreamHandleImplCurl.cpp:
(WebCore::createCopy):
(WebCore::SocketStreamHandleImpl::createCopy): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204515 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFalse crashes in fast/text/emoji-gender-* tests
commit-queue@webkit.org [Tue, 16 Aug 2016 18:03:38 +0000 (18:03 +0000)]
False crashes in fast/text/emoji-gender-* tests
https://bugs.webkit.org/show_bug.cgi?id=160779

Patch by Jonathan Bedard <jbedard@apple.com> on 2016-08-16
Reviewed by Alexey Proskuryakov.

Fix from <rdar://problem/27786762>, where timed out tests falsely report as crashed.

* Scripts/webkitpy/port/driver.py:
(Driver._check_for_driver_crash_or_unresponsiveness): Change call to ‘write’ to disable crash flag.
* Scripts/webkitpy/port/driver_unittest.py: Added 3 variable to test version of ‘write.’
* Scripts/webkitpy/port/server_process.py:
(ServerProcess.write): Allow caller to disable crash flag on exception.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204514 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Do not request Scope Chain lists if section is collapsed (mainly Globa...
commit-queue@webkit.org [Tue, 16 Aug 2016 17:26:16 +0000 (17:26 +0000)]
Web Inspector: Do not request Scope Chain lists if section is collapsed (mainly Global Variables)
https://bugs.webkit.org/show_bug.cgi?id=140567
<rdar://problem/19504745>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-08-16
Reviewed by Timothy Hatcher.

* UserInterface/Main.html:
New file name.

* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.fillSection):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties):
Avoid fetching object properties until the user expands the section.

* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
Avoid fetching scope variable properties until the user expands the section.

* UserInterface/Views/ObjectPropertiesDetailSectionRow.js: Renamed from Source/WebInspectorUI/UserInterface/Views/DetailsSectionPropertiesRow.js.
(WebInspector.ObjectPropertiesDetailSectionRow):
(WebInspector.ObjectPropertiesDetailSectionRow.prototype.get objectTree):
(WebInspector.ObjectPropertiesDetailSectionRow.prototype._detailsSectionCollapsedStateChanged):
Rename and simplify the class since it always has an ObjectTreeView.
By default the section will auto-expand the ObjectTreeView, however
if provided a details section group, it will defer expanion until
the group expands.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204513 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoClean up WebSockets
achristensen@apple.com [Tue, 16 Aug 2016 17:14:42 +0000 (17:14 +0000)]
Clean up WebSockets
https://bugs.webkit.org/show_bug.cgi?id=160889

Reviewed by Darin Adler.

Source/WebCore:

We should use size_t's instead of ints for data lengths.
SocketStreamHandleClient is now purely virtual.
A few places that will need SocketStreamHandleImpls instead of SocketStreamHandles now have them.
This patch doesn't change behavior.

* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::didCloseSocketStream):
(WebCore::WebSocketChannel::didReceiveSocketStreamData):
* Modules/websockets/WebSocketChannel.h:
* platform/network/SocketStreamHandle.cpp:
(WebCore::SocketStreamHandle::state):
(WebCore::SocketStreamHandle::send):
* platform/network/SocketStreamHandle.h:
(WebCore::SocketStreamHandle::~SocketStreamHandle):
(WebCore::SocketStreamHandle::bufferedAmount):
(WebCore::SocketStreamHandle::client): Deleted.
* platform/network/SocketStreamHandleClient.h:
(WebCore::SocketStreamHandleClient::~SocketStreamHandleClient):
(WebCore::SocketStreamHandleClient::didOpenSocketStream): Deleted.
(WebCore::SocketStreamHandleClient::didCloseSocketStream): Deleted.
(WebCore::SocketStreamHandleClient::didReceiveSocketStreamData): Deleted.
(WebCore::SocketStreamHandleClient::didUpdateBufferedAmount): Deleted.
(WebCore::SocketStreamHandleClient::didFailSocketStream): Deleted.
* platform/network/cf/SocketStreamHandleImpl.h:
(WebCore::SocketStreamHandleImpl::create):
* platform/network/cf/SocketStreamHandleImplCFNet.cpp:
(WebCore::SocketStreamHandleImpl::~SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::platformSend):
(WebCore::SocketStreamHandleImpl::platformClose):
* platform/network/curl/SocketStreamHandleImpl.h:
(WebCore::SocketStreamHandleImpl::create):
* platform/network/soup/SocketStreamHandleImpl.h:
* platform/network/soup/SocketStreamHandleImplSoup.cpp:
(WebCore::SocketStreamHandleImpl::create):

Source/WebKit2:

* UIProcess/InspectorServer/WebSocketServerConnection.cpp:
(WebKit::WebSocketServerConnection::didCloseSocketStream):
(WebKit::WebSocketServerConnection::didReceiveSocketStreamData):
* UIProcess/InspectorServer/WebSocketServerConnection.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204512 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: add "Copy Selected" context menu item to Console
commit-queue@webkit.org [Tue, 16 Aug 2016 17:05:54 +0000 (17:05 +0000)]
Web Inspector: add "Copy Selected" context menu item to Console
https://bugs.webkit.org/show_bug.cgi?id=151836

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2016-08-16
Reviewed by Timothy Hatcher.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._previousMessageRepeatCountUpdated):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._mousedown):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204511 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Visual Styles: "Text -> Content" isn't escaped
commit-queue@webkit.org [Tue, 16 Aug 2016 16:57:27 +0000 (16:57 +0000)]
Web Inspector: Visual Styles: "Text -> Content" isn't escaped
https://bugs.webkit.org/show_bug.cgi?id=158271

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2016-08-16
Reviewed by Timothy Hatcher.

* UserInterface/Base/Utilities.js:
(String.prototype.hasMatchingEscapedQuotes):
Checks that the given string has property escaped quotes (single or double).

* UserInterface/Views/VisualStyleBasicInput.js:
(WebInspector.VisualStyleBasicInput):
(WebInspector.VisualStyleBasicInput.prototype._handleInputElementInput):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204510 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, rolling out r204506.
cdumez@apple.com [Tue, 16 Aug 2016 16:57:17 +0000 (16:57 +0000)]
Unreviewed, rolling out r204506.

Broke the build

Reverted changeset:

"Cleanup WK2 platform gamepad handling."
https://bugs.webkit.org/show_bug.cgi?id=160871
http://trac.webkit.org/changeset/204506

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204509 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Cocoa] Remove dependency on Objective-C bindings in WebKit2 editing code
darin@apple.com [Tue, 16 Aug 2016 16:56:07 +0000 (16:56 +0000)]
[Cocoa] Remove dependency on Objective-C bindings in WebKit2 editing code
https://bugs.webkit.org/show_bug.cgi?id=160891

Reviewed by Anders Carlsson.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj: Removed EditorCocoa.h.

* editing/Editor.cpp: Removed member initialization for members now
initialized in the class definition.

* editing/Editor.h: Added FragmentAndResources struct, createFragment
member function, and _WebCreateFragment function. Also initialize all the
scalar data members here instead of in the constructor.

* editing/cocoa/EditorCocoa.h: Removed. This was unused.

* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::createFragment): Added. Calls through to WebKitLegacy
using soft linking for now, but later should be implemented here in WebCore.

* editing/ios/EditorIOS.mm:
(WebCore::Editor::createFragmentAndAddResources): Call createFragment.

* editing/mac/EditorMac.mm:
(WebCore::Editor::createFragmentAndAddResources): Call createFragment.

* loader/EmptyClients.h: Removed documentFragmentFromAttributedString
implementation.

* page/EditorClient.h: Removed documentFragmentFromAttributedString.
Two reasons: The first is that this is now implemented in WebCore. While
there is a call through to WebKitLegacy, it's a temporary thing and done
with soft linking. The second reason is that this returned a raw pointer,
which is not safe in general. Was safe here because it was returning a
pointer owned by an autoreleased Objective-C object.

Source/WebKit/mac:

* WebCoreSupport/WebEditorClient.h: Removed documentFragmentFromAttributedString.

* WebCoreSupport/WebEditorClient.mm:
(attributesForAttributedStringConversion): Replaced the
createExcludedElementsForAttributedStringConversion function with this one.
No good reason to keep the array around instead of the dictionary.
(_WebCreateFragment): Renamed from documentFragmentFromAttributedString.
This is now a global function exported so it can be called by WebCore with
a different way of returning its value.

* WebKit.exp: Added _WebCreateFragment.

* WebView/WebHTMLView.mm:
(-[WebHTMLView _documentFragmentFromPasteboard:forType:inContext:subresources:]):
Removed long-ago-obsolete workaround for Radar bug 5052369.

Source/WebKit2:

* WebProcess/WebCoreSupport/WebEditorClient.h: Removed documentFragmentFromAttributedString.
* WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
(WebKit::WebEditorClient::documentFragmentFromAttributedString): Deleted.
* WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
(WebKit::createExcludedElementsForAttributedStringConversion): Deleted.
(WebKit::WebEditorClient::documentFragmentFromAttributedString): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204508 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoModernize model objects simple getters
commit-queue@webkit.org [Tue, 16 Aug 2016 16:52:45 +0000 (16:52 +0000)]
Modernize model objects simple getters
https://bugs.webkit.org/show_bug.cgi?id=160863

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-08-16
Reviewed by Timothy Hatcher.

Simplify the style of many Model objects with basic accessors.
We reduce them to a single line and group them together so
that they can be more easily read at a glance.

* UserInterface/Models/AnalyzerMessage.js:
* UserInterface/Models/ApplicationCacheFrame.js:
* UserInterface/Models/ApplicationCacheManifest.js:
* UserInterface/Models/BreakpointAction.js:
* UserInterface/Models/CSSMedia.js:
* UserInterface/Models/CSSSelector.js:
* UserInterface/Models/CollectionEntry.js:
* UserInterface/Models/CollectionEntryPreview.js:
* UserInterface/Models/DOMStorageObject.js:
* UserInterface/Models/DatabaseObject.js:
* UserInterface/Models/DatabaseTableObject.js:
* UserInterface/Models/ExecutionContext.js:
* UserInterface/Models/GarbageCollection.js:
* UserInterface/Models/IndexedDatabase.js:
* UserInterface/Models/IndexedDatabaseObjectStore.js:
* UserInterface/Models/IndexedDatabaseObjectStoreIndex.js:
* UserInterface/Models/ObjectPreview.js:
* UserInterface/Models/ProbeSet.js:
* UserInterface/Models/PropertyDescriptor.js:
* UserInterface/Models/PropertyPath.js:
* UserInterface/Models/PropertyPreview.js:
* UserInterface/Models/SourceCodePosition.js:
* UserInterface/Models/SourceCodeSearchMatchObject.js:
* UserInterface/Models/SourceCodeTimeline.js:
* UserInterface/Models/StructureDescription.js:
* UserInterface/Models/TextRange.js:
* UserInterface/Models/Timeline.js:
* UserInterface/Models/TimelineRecording.js:
* UserInterface/Models/TypeDescription.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204507 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCleanup WK2 platform gamepad handling.
beidson@apple.com [Tue, 16 Aug 2016 16:27:48 +0000 (16:27 +0000)]
Cleanup WK2 platform gamepad handling.
https://bugs.webkit.org/show_bug.cgi?id=160871

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No currently testable change in behavior).

This patch does a few things:
1 - Separates the concepts of "monitoring gamepads" and "monitoring gamepad inputs"
2 - Uses this new concept to much more cleanly handle the case where we are not currently
    monitoring gamepad inputs because an interested WKWebView is not front and center.
3 - Pre-populates the "initial set of gamepads" in WebProcesses that start listening for gamepads.

* platform/gamepad/GamepadProviderClient.h:
(WebCore::GamepadProviderClient::setInitialConnectedGamepads):

* platform/gamepad/mac/HIDGamepadProvider.cpp:
(WebCore::HIDGamepadProvider::HIDGamepadProvider):
(WebCore::HIDGamepadProvider::stopMonitoringInput):
(WebCore::HIDGamepadProvider::startMonitoringInput):
(WebCore::HIDGamepadProvider::connectionDelayTimerFired):
* platform/gamepad/mac/HIDGamepadProvider.h:

Source/WebKit2:

This patch does a few things:
1 - Separates the concepts of "monitoring gamepads" and "monitoring gamepad inputs"
2 - Uses this new concept to much more cleanly handle the case where we are not currently
    monitoring gamepad inputs because an interested WKWebView is not front and center.
3 - Pre-populates the "initial set of gamepads" in WebProcesses that start listening for gamepads.

* Platform/Logging.h:

* UIProcess/Gamepad/UIGamepadProvider.cpp:
(WebKit::UIGamepadProvider::gamepadSyncTimerFired):
(WebKit::UIGamepadProvider::setInitialConnectedGamepads):
(WebKit::UIGamepadProvider::processPoolStoppedUsingGamepads):
(WebKit::UIGamepadProvider::viewBecameActive):
(WebKit::UIGamepadProvider::viewBecameInactive):
(WebKit::UIGamepadProvider::stopMonitoringGamepads):
(WebKit::UIGamepadProvider::snapshotGamepads):
(WebKit::UIGamepadProvider::platformStopMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringInput):
(WebKit::UIGamepadProvider::UIGamepadProvider): Deleted.
(WebKit::UIGamepadProvider::scheduleDisableGamepadMonitoring): Deleted.
(WebKit::UIGamepadProvider::disableMonitoringTimerFired): Deleted.
* UIProcess/Gamepad/UIGamepadProvider.h:

* UIProcess/Gamepad/mac/UIGamepadProviderHID.cpp:
(WebKit::UIGamepadProvider::platformStopMonitoringInput):
(WebKit::UIGamepadProvider::platformStartMonitoringInput):

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setInitialConnectedGamepads):
* UIProcess/WebProcessPool.h:

* WebProcess/Gamepad/WebGamepadProvider.cpp:
(WebKit::WebGamepadProvider::setInitialGamepads):
* WebProcess/Gamepad/WebGamepadProvider.h:

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setInitialGamepads):
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204506 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, rolling out r204494.
cdumez@apple.com [Tue, 16 Aug 2016 16:23:45 +0000 (16:23 +0000)]
Unreviewed, rolling out r204494.
https://bugs.webkit.org/show_bug.cgi?id=160901

Broke the iOS build (Requested by cdumez on #webkit).

Reverted changeset:

"Drop unused EventTarget::hasActiveEventListeners()"
https://bugs.webkit.org/show_bug.cgi?id=160869
http://trac.webkit.org/changeset/204494

Patch by Commit Queue <commit-queue@webkit.org> on 2016-08-16

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204505 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, rolling out r204464.
ryanhaddad@apple.com [Tue, 16 Aug 2016 15:58:31 +0000 (15:58 +0000)]
Unreviewed, rolling out r204464.

This is no longer needed after r204495.

Reverted changeset:

"Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js"
https://bugs.webkit.org/show_bug.cgi?id=160662
http://trac.webkit.org/changeset/204464

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204504 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
darin@apple.com [Tue, 16 Aug 2016 15:53:52 +0000 (15:53 +0000)]
    * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
        Regenerated results, which were affected by the sequence<T> change last night.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204503 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Win] Hardening of getLinkedFonts function.
pvollan@apple.com [Tue, 16 Aug 2016 09:43:04 +0000 (09:43 +0000)]
[Win] Hardening of getLinkedFonts function.
https://bugs.webkit.org/show_bug.cgi?id=160850

The SUCCEEDED macro should only be used for functions returning a HRESULT type.
Also, make sure a string array index will not exceed the string length.

* platform/graphics/win/FontCacheWin.cpp:
(WebCore::getLinkedFonts):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204502 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoSimplify SocketStreamError
commit-queue@webkit.org [Tue, 16 Aug 2016 07:55:12 +0000 (07:55 +0000)]
Simplify SocketStreamError
https://bugs.webkit.org/show_bug.cgi?id=160888

Patch by Alex Christensen <achristensen@webkit.org> on 2016-08-16
Reviewed by Darin Adler.

SocketStreamErrorBase and platform-specific SocketStreamError were overly complicated.
They had many functions that were never used.  There's no reason to have two separate classes.

* WebCore.xcodeproj/project.pbxproj:
* platform/network/SocketStreamError.h: Copied from Source/WebCore/platform/network/SocketStreamErrorBase.h.
(WebCore::SocketStreamError::SocketStreamError):
(WebCore::SocketStreamError::isNull):
(WebCore::SocketStreamError::errorCode):
(WebCore::SocketStreamError::failingURL):
(WebCore::SocketStreamError::localizedDescription):
(WebCore::SocketStreamErrorBase::isNull): Deleted.
(WebCore::SocketStreamErrorBase::errorCode): Deleted.
(WebCore::SocketStreamErrorBase::failingURL): Deleted.
(WebCore::SocketStreamErrorBase::localizedDescription): Deleted.
(WebCore::SocketStreamErrorBase::SocketStreamErrorBase): Deleted.
(WebCore::operator==): Deleted.
(WebCore::operator!=): Deleted.
* platform/network/SocketStreamErrorBase.cpp: Removed.
* platform/network/SocketStreamErrorBase.h: Removed.
* platform/network/cf/SocketStreamError.h: Removed.
* platform/network/curl/SocketStreamError.h: Removed.
* platform/network/soup/SocketStreamError.h: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204501 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoConversion to sequence<T> is broken for iterable objects
rniwa@webkit.org [Tue, 16 Aug 2016 06:50:58 +0000 (06:50 +0000)]
Conversion to sequence<T> is broken for iterable objects
https://bugs.webkit.org/show_bug.cgi?id=160801

Reviewed by Darin Adler.

Source/JavaScriptCore:

Export functions used to iterate over iterable objects.

* runtime/IteratorOperations.h:
(JSC::forEachInIterable):

Source/WebCore:

Added the proper iterator support for sequence<T> with one caveat that we don't check for RegExp object
per https://github.com/heycam/webidl/issues/145.

See http://heycam.github.io/webidl/#es-sequence and http://heycam.github.io/webidl/#es-overloads

Tests: bindings/scripts/test/TestOverloadedConstructorsWithSequence.idl

* bindings/js/JSDOMBinding.cpp:
(WebCore::hasIteratorMethod): Added. A helper function for checking whether a JSValue is iterable or not.
* bindings/js/JSDOMBinding.h:
(WebCore::NativeValueTraits<unsigned>::nativeValue): Removed the check for isNumber to match the spec'ed
behavior at http://heycam.github.io/webidl/#es-unsigned-long which calls ToNumber first without checking
whether the value is a number or not.
(WebCore::toRefPtrNativeArray): Replaced isJSArray check by isObject check and throw a TypeError. Deployed
forEachInIterable to support non-JSArray iterable objects. Also removed the function pointer from the third
argument since we were always calling JSCT::toWrapped.
(WebCore::toNativeArray): Ditto.
* bindings/js/JSDOMConvert.h:
(WebCore::Converter<Vector<T>>::convert): Removed the comment about toNativeArray not throwing when value
is not an object.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateOverloadedFunctionOrConstructor): Removed the check for isJSArray for sequence<T> as an iterable
object is not necessary a JSArray.
(WillConvertUndefinedToDefaultParameterValue): Don't return 1 for all sequences since toNativeArray and
toRefPtrNativeArray now throws on undefined due to isObject check.
(JSValueToNative): Removed the third argument from toRefPtrNativeArray.

* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsWithSequence.cpp: Added.
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsWithSequence.h: Added.
* bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsWithSequencePrivate.h: Added.
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceIsEmpty):
* bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: Added.
* bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h: Added.
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsPrototypeFunctionFunc):
* bindings/scripts/test/TestOverloadedConstructorsWithSequence.idl: Added.

LayoutTests:

Added test cases for converting non-JSArray objects to sequence<T> for MutationObserver, FontFaceSet, and WebSocket.

* fast/dom/MutationObserver/observe-exceptions-expected.txt:
* fast/dom/MutationObserver/observe-exceptions.html:
* fast/text/font-face-set-javascript-expected.txt:
* fast/text/font-face-set-javascript.html:
* http/tests/dom/window-open-about-webkit-org-and-access-document-expected.txt: Rebaselined due to js-test-pre.js change.
* http/tests/resources/js-test-pre.js: Merged ToT from resources/js-test-pre.js.
* http/tests/security/xssAuditor/block-does-not-leak-location-expected.txt: Rebaselined due to js-test-pre.js change.
* http/tests/security/xssAuditor/block-does-not-leak-referrer-expected.txt: Ditto.
* http/tests/websocket/tests/hybi/websocket-constructor-protocols-expected.txt: Added.
* http/tests/websocket/tests/hybi/websocket-constructor-protocols.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204500 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRename RegisteredEventListener::listener() to callback() for clarity
cdumez@apple.com [Tue, 16 Aug 2016 06:48:34 +0000 (06:48 +0000)]
Rename RegisteredEventListener::listener() to callback() for clarity
https://bugs.webkit.org/show_bug.cgi?id=160873

Reviewed by Darin Adler.

Rename RegisteredEventListener::listener() to callback() for clarity
and to match the specification:
- https://dom.spec.whatwg.org/#concept-event-listener

Always calling listener->listener() seems wrong.

* bindings/js/JSCommandLineAPIHostCustom.cpp:
(WebCore::getJSListenerFunctions):
* dom/EventListenerMap.cpp:
(WebCore::findListener):
(WebCore::removeFirstListenerCreatedFromMarkup):
(WebCore::copyListenersNotCreatedFromMarkupToTarget):
(WebCore::EventListenerIterator::nextListener):
* dom/EventTarget.cpp:
(WebCore::EventTarget::getAttributeEventListener):
(WebCore::EventTarget::fireEventListeners):
* dom/RegisteredEventListener.h:
(WebCore::RegisteredEventListener::callback):
(WebCore::RegisteredEventListener::RegisteredEventListener):
(WebCore::RegisteredEventListener::listener): Deleted.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getEventListeners):
(WebCore::InspectorDOMAgent::buildObjectForEventListener):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204499 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agowebkitpy error in TestRunResults.merge()
simon.fraser@apple.com [Tue, 16 Aug 2016 06:41:33 +0000 (06:41 +0000)]
webkitpy error in TestRunResults.merge()
https://bugs.webkit.org/show_bug.cgi?id=160882

Reviewed by Daniel Bates.

The argument to TestRunResults.merge() can be None if there are no device-specifc
initial results or retry results in Manager.run(), so just return early in that case.

* Scripts/webkitpy/layout_tests/models/test_run_results.py:
(TestRunResults.merge):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204498 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd support for dictionary members of non nullable wrapper types
cdumez@apple.com [Tue, 16 Aug 2016 06:24:39 +0000 (06:24 +0000)]
Add support for dictionary members of non nullable wrapper types
https://bugs.webkit.org/show_bug.cgi?id=160876

Reviewed by Darin Adler.

Add support for dictionary members of non nullable wrapper types. We
only supported nullable wrapper types as dictionary members so far.

No new tests, updated bindings tests.

* bindings/js/JSDOMConvert.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateDictionaryImplementationContent):
(GenerateParametersCheck):
(JSValueToNative):
(GenerateConstructorDefinition):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::construct):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorNamedConstructor::construct):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::convertDictionary<TestObj::Dictionary>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldNotTolerateNull>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldTolerateNull>):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRoot):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::constructJSTestOverloadedConstructors4):
(WebCore::constructJSTestOverloadedConstructors5):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::construct):
* bindings/scripts/test/TestObj.idl:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204497 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Large class lists are not easily discoverable with "Classes" quick...
commit-queue@webkit.org [Tue, 16 Aug 2016 05:14:17 +0000 (05:14 +0000)]
Web Inspector: Large class lists are not easily discoverable with "Classes" quick-toggle
https://bugs.webkit.org/show_bug.cgi?id=160856

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2016-08-15
Reviewed by Joseph Pecoraro.

* UserInterface/Base/DOMUtilities.js:
(WebInspector.linkifyNodeReference):
Add option to truncate the text of the linkified node.

* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content ~ .class-list-container):
Increase the max-height to partially show additional classes if many are set.

* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
Trucate the name of inherited nodes so they don't take up as much space in the sidebar.

* UserInterface/Views/VisualStyleSelectorSection.css:
(.details-section.visual-style-selector-section > .header > .current-selector): Deleted.
(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider > .titles): Deleted.
Removed since they are already inherited.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204496 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Regression 204203-204210] 32-bit ASSERTION FAILED: !m_data[index].name.isValid()
commit-queue@webkit.org [Tue, 16 Aug 2016 04:17:36 +0000 (04:17 +0000)]
[Regression 204203-204210] 32-bit ASSERTION FAILED: !m_data[index].name.isValid()
https://bugs.webkit.org/show_bug.cgi?id=160881

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-15
Reviewed by Mark Lam.

* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
We were trying to set the result of the Identity node to the same
value as the source of the Identity.
That is pretty messed up.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204495 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoDrop unused EventTarget::hasActiveEventListeners()
cdumez@apple.com [Tue, 16 Aug 2016 03:32:38 +0000 (03:32 +0000)]
Drop unused EventTarget::hasActiveEventListeners()
https://bugs.webkit.org/show_bug.cgi?id=160869

Reviewed by Alex Christensen.

* dom/EventListenerMap.cpp:
(WebCore::EventListenerMap::containsActive): Deleted.
* dom/EventListenerMap.h:
* dom/EventTarget.cpp:
(WebCore::EventTarget::hasActiveEventListeners): Deleted.
* dom/EventTarget.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204494 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoSpeed up compile times by not including wtf/Variant.h so much
commit-queue@webkit.org [Tue, 16 Aug 2016 02:27:09 +0000 (02:27 +0000)]
Speed up compile times by not including wtf/Variant.h so much
https://bugs.webkit.org/show_bug.cgi?id=160847

Patch by Sam Weinig <sam@webkit.org> on 2016-08-15
Reviewed by Alex Christensen and Saam Barati.

Source/WebCore:

"using std::experimental::variant" caused internal compiler errors in MSVC2015,
so we are just writing std::experimental where we use it for now.
We should move variant into the std::experimental namespace.

* bindings/js/JSNodeOrString.cpp:
(WebCore::toNodeOrStringVector):
* bindings/js/JSNodeOrString.h:
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::childElementCount):
(WebCore::ContainerNode::append):
(WebCore::ContainerNode::prepend):
* dom/ContainerNode.h:
* dom/Node.cpp:
(WebCore::Node::appendChild):
(WebCore::nodeSetPreTransformedFromNodeOrStringVector):
(WebCore::firstFollowingSiblingNotInNodeSet):
(WebCore::Node::convertNodesOrStringsIntoNode):
(WebCore::Node::before):
(WebCore::Node::after):
(WebCore::Node::replaceWith):
* dom/Node.h:
(WebCore::Node::setStyleChange):
(WebCore::Node::customPseudoId):

Source/WTF:

* wtf/Forward.h:
Add forward declaration of std::variant.

* wtf/StdLibExtras.h:
Remove references to std::variant. Move them to wtf/Variant.h

Tools:

* TestWebKitAPI/Tests/WTF/Variant.cpp:
(TestWebKitAPI::TEST):
Explicitly use std::experimental::variant.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204493 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoASSERTION FAILURE: [[videoLayer delegate] isKindOfClass:getUIViewClass()] in WebAVPla...
dbates@webkit.org [Tue, 16 Aug 2016 02:06:45 +0000 (02:06 +0000)]
ASSERTION FAILURE: [[videoLayer delegate] isKindOfClass:getUIViewClass()] in WebAVPlayerLayerView_videoView()
https://bugs.webkit.org/show_bug.cgi?id=160433

Reviewed by Eric Carlson.

Source/WebCore:

Early return from WebAVPlayerLayerView_videoView() if the PiP layer does not have a non-nil delegate view.

Test: media/controls/close-page-with-picture-in-picture-video-assertion-failure.html

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebAVPlayerLayerView_videoView):

LayoutTests:

Add a layout test to ensure that we do not cause an assertion failure when exiting PiP by closing the tab.

* TestExpectations: Skip media/control/ipad tests on all ports. We will re-enable these tests for iOS.
* media/controls/close-page-with-picture-in-picture-video-assertion-failure-expected.txt: Added.
* media/controls/close-page-with-picture-in-picture-video-assertion-failure.html: Added.
* media/controls/resources/picture-in-picture.html: Added.
* platform/ios-simulator/TestExpectations: Mark tests media/control/ipad  as Pass so that we run them
in the iPad simulator.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204492 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Close button on selected item in Network tab is misaligned
commit-queue@webkit.org [Tue, 16 Aug 2016 01:43:31 +0000 (01:43 +0000)]
Web Inspector: Close button on selected item in Network tab is misaligned
https://bugs.webkit.org/show_bug.cgi?id=160884

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2016-08-15
Reviewed by Matt Baker.

* UserInterface/Views/NetworkSidebarPanel.css:
(.sidebar > .panel.navigation.network .status .close.status-button):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204491 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Error/Warning icons are misplaced in the Visual sidebar
commit-queue@webkit.org [Tue, 16 Aug 2016 01:34:36 +0000 (01:34 +0000)]
Web Inspector: Error/Warning icons are misplaced in the Visual sidebar
https://bugs.webkit.org/show_bug.cgi?id=160875

Patch by Devin Rousso <dcrousso+webkit@gmail.com> on 2016-08-15
Reviewed by Matt Baker.

* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
(.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-special-property-placeholder): Deleted.
Reworked to apply more generally to editors without titles.

* UserInterface/Views/VisualStylePropertyEditor.css:
(.visual-style-property-container.missing-dependency > .visual-style-property-editor-warning):
(.visual-style-property-container.invalid-value > .visual-style-property-editor-warning):
(.visual-style-property-container:matches(.missing-dependency, .invalid-value) > *:first-child:matches(.visual-style-property-value-container)):
(.visual-style-property-container > *:first-child:matches(.visual-style-property-value-container) > .visual-style-special-property-placeholder):
(.visual-style-property-container > .visual-style-property-editor-warning.missing-dependency): Deleted.
(.visual-style-property-container > .visual-style-property-editor-warning.invalid-value): Deleted.
Reworked class names to be on the element container instead of the icon.

* UserInterface/Views/VisualStylePropertyEditor.js:
(WebInspector.VisualStylePropertyEditor.prototype.update):
(WebInspector.VisualStylePropertyEditor.prototype.updateEditorValues):
(WebInspector.VisualStylePropertyEditor.prototype._valueDidChange):
(WebInspector.VisualStylePropertyEditor.prototype._checkDependencies):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204490 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Introduce a method to enable code coverage profiler without enabling...
sbarati@apple.com [Mon, 15 Aug 2016 23:32:03 +0000 (23:32 +0000)]
Web Inspector: Introduce a method to enable code coverage profiler without enabling type profiler
https://bugs.webkit.org/show_bug.cgi?id=160750
<rdar://problem/27793469>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::disableTypeProfiler):
(Inspector::InspectorRuntimeAgent::enableControlFlowProfiler):
(Inspector::InspectorRuntimeAgent::disableControlFlowProfiler):
(Inspector::InspectorRuntimeAgent::setTypeProfilerEnabledState):
(Inspector::InspectorRuntimeAgent::setControlFlowProfilerEnabledState):
* inspector/agents/InspectorRuntimeAgent.h:
* inspector/protocol/Runtime.json:

Source/WebInspectorUI:

* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204489 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoArray.prototype.map builtin should go on the fast path when constructor===@Array
sbarati@apple.com [Mon, 15 Aug 2016 23:31:39 +0000 (23:31 +0000)]
Array.prototype.map builtin should go on the fast path when constructor===@Array
https://bugs.webkit.org/show_bug.cgi?id=160836

Reviewed by Keith Miller.

In the FTL, we were not compiling the result array in Array.prototype.map
efficiently when the result array should use the Array constructor
(which is the common case). We used to compile it as:
x: JSConstant(Array)
y: Construct(@x, ...)
instead of
y: NewArrayWithSize(...)

This patch changes the builtin to go down the fast path when certain
conditions are met. Often, the check to go down the fast path will
be constant folded because we always create a normal array from the
Array constructor.

This is around a 5% speedup on ES6 Sample Bench.

I also made similar changes for Array.prototype.filter
and Array.prototype.concat on its slow path.

* builtins/ArrayPrototype.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204488 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMake JSValue::strictEqual() handle failures to resolve JSRopeStrings.
mark.lam@apple.com [Mon, 15 Aug 2016 21:52:22 +0000 (21:52 +0000)]
Make JSValue::strictEqual() handle failures to resolve JSRopeStrings.
https://bugs.webkit.org/show_bug.cgi?id=160832
<rdar://problem/27577556>

Reviewed by Geoffrey Garen.

Currently, JSValue::strictEqualSlowCaseInline() (and peers) will blindly try to
access the StringImpl of a JSRopeString that fails to resolve its rope.  As a
result, we'll crash with null pointer dereferences.

We can fix this by introducing a JSString::equal() method that will do the
equality comparison, but is aware of the potential failures to resolve ropes.
JSValue::strictEqualSlowCaseInline() (and peers) will now call JSString::equal()
instead of accessing the underlying StringImpl directly.

Also added some exception checks.

* JavaScriptCore.xcodeproj/project.pbxproj:
* jit/JITOperations.cpp:
* runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncIndexOf):
(JSC::arrayProtoFuncLastIndexOf):
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::equalSlowCaseInline):
(JSC::JSValue::strictEqualSlowCaseInline):
* runtime/JSString.cpp:
(JSC::JSString::equalSlowCase):
* runtime/JSString.h:
* runtime/JSStringInlines.h: Added.
(JSC::JSString::equal):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204485 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoImplement WASM Parser and B3 IR generator
keith_miller@apple.com [Mon, 15 Aug 2016 21:35:07 +0000 (21:35 +0000)]
Implement WASM Parser and B3 IR generator
https://bugs.webkit.org/show_bug.cgi?id=160681

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

This patch adds the skeleton for a WebAssembly pipeline. The
pipeline is designed in order to make it easy to have as much of
the compilation process threaded as possible. The flow of the
pipeline roughly goes as follows:

1) Create a WASMPlan with the VM and a Vector of the
assembly. Currently the plan will process all the work
synchronously, however, in the future this can be offloaded to
other threads.

2) The plan will run the WASMModuleParser, which collates all the
information needed to compile each module function
independently. Since, we are still in the early phases, the only
information is the starting and ending byte of the function's
body. The module parser, however, still scans both and
semi-validates the type and the function sections.

3) Each function is decoded and compiled. In the future this
should also include a opcode validation phase. The
WASMFunctionParser is templatized so that a validator should be
able to use most of the same code the B3 IR generator does.

4) When the plan has finished it will fill a Vector of
B3::Compilation objects that correspond to the respective function
in the WASM module.

The current testing plan for the modules is to inline the the
binary generated by the spec's OCaml prototype. The inlined binary
is passed to a WASMPlan then invoked to check the result of the
function. In the future we should add a more robust testing
infrastructure.

* JavaScriptCore.xcodeproj/project.pbxproj:
* testWASM.cpp:
(printUsageStatement):
(CommandLine::parseArguments):
(invoke):
(runWASMTests):
(main):
* wasm/JSWASMModule.h:
(JSC::JSWASMModule::globalVariableTypes):
* wasm/WASMB3IRGenerator.cpp: Added.
(JSC::WASM::B3IRGenerator::B3IRGenerator):
(JSC::WASM::B3IRGenerator::addLocal):
(JSC::WASM::B3IRGenerator::binaryOp):
(JSC::WASM::B3IRGenerator::addConstant):
(JSC::WASM::B3IRGenerator::addBlock):
(JSC::WASM::B3IRGenerator::endBlock):
(JSC::WASM::B3IRGenerator::addReturn):
(JSC::WASM::B3IRGenerator::unify):
(JSC::WASM::B3IRGenerator::initializeIncommingTypes):
(JSC::WASM::B3IRGenerator::unifyValuesWithLevel):
(JSC::WASM::B3IRGenerator::stackForControlLevel):
(JSC::WASM::B3IRGenerator::blockForControlLevel):
(JSC::WASM::parseAndCompile):
* wasm/WASMB3IRGenerator.h: Copied from Source/WTF/wtf/DataLog.h.
* wasm/WASMFormat.h:
* wasm/WASMFunctionParser.h: Added.
(JSC::WASM::WASMFunctionParser<Context>::WASMFunctionParser):
(JSC::WASM::WASMFunctionParser<Context>::parse):
(JSC::WASM::WASMFunctionParser<Context>::parseBlock):
(JSC::WASM::WASMFunctionParser<Context>::parseExpression):
* wasm/WASMModuleParser.cpp: Added.
(JSC::WASM::WASMModuleParser::parse):
(JSC::WASM::WASMModuleParser::parseFunctionTypes):
(JSC::WASM::WASMModuleParser::parseFunctionSignatures):
(JSC::WASM::WASMModuleParser::parseFunctionDefinitions):
* wasm/WASMModuleParser.h: Copied from Source/WTF/wtf/DataLog.h.
(JSC::WASM::WASMModuleParser::WASMModuleParser):
(JSC::WASM::WASMModuleParser::functionInformation):
* wasm/WASMOps.h: Copied from Source/WTF/wtf/DataLog.h.
* wasm/WASMParser.h: Added.
(JSC::WASM::WASMParser::parseVarUInt32):
(JSC::WASM::WASMParser::WASMParser):
(JSC::WASM::WASMParser::consumeCharacter):
(JSC::WASM::WASMParser::consumeString):
(JSC::WASM::WASMParser::parseUInt32):
(JSC::WASM::WASMParser::parseUInt7):
(JSC::WASM::WASMParser::parseVarUInt1):
(JSC::WASM::WASMParser::parseValueType):
* wasm/WASMPlan.cpp: Copied from Source/WTF/wtf/DataLog.h.
(JSC::WASM::Plan::Plan):
* wasm/WASMPlan.h: Copied from Source/WTF/wtf/DataLog.h.
* wasm/WASMSections.cpp: Copied from Source/WTF/wtf/DataLog.h.
(JSC::WASM::WASMSections::lookup):
* wasm/WASMSections.h: Copied from Source/WTF/wtf/DataLog.h.
(JSC::WASM::WASMSections::validateOrder):

Source/WTF:

* wtf/DataLog.h:
(WTF::dataLogLn): Add a new dataLog function, dataLogLn that
automagically includes a new line at the end of the print.
* wtf/LEBDecoder.h:
(decodeUInt32):
(decodeInt32): Change the LEBDecoder to take a pointer and length
rather than a Vector.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204484 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRename SocketStreamHandleBase to SocketStreamHandle and SocketStreamHandle to SocketS...
achristensen@apple.com [Mon, 15 Aug 2016 21:23:32 +0000 (21:23 +0000)]
Rename SocketStreamHandleBase to SocketStreamHandle and SocketStreamHandle to SocketStreamHandleImpl
https://bugs.webkit.org/show_bug.cgi?id=160858

Reviewed by Brady Eidson.

Source/WebCore:

No new tests.  No change in behavior, except GTK's SocketStreamHandleImpl is now safely ThreadSafeRefCounted.
This is preparation for making a new kind of SocketStreamHandle which is a proxy that communicates with the NetworkProcess in WebKit2.

* CMakeLists.txt:
* PlatformAppleWin.cmake:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PlatformMac.cmake:
* PlatformWinCairo.cmake:
* WebCore.xcodeproj/project.pbxproj:
* page/SocketProvider.cpp:
(WebCore::SocketProvider::createSocketStreamHandle):
* platform/network/SocketStreamHandle.cpp: Copied from Source/WebCore/platform/network/SocketStreamHandleBase.cpp.
(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::state):
(WebCore::SocketStreamHandle::send):
(WebCore::SocketStreamHandle::close):
(WebCore::SocketStreamHandle::disconnect):
(WebCore::SocketStreamHandle::sendPendingData):
(WebCore::SocketStreamHandleBase::SocketStreamHandleBase): Deleted.
(WebCore::SocketStreamHandleBase::state): Deleted.
(WebCore::SocketStreamHandleBase::send): Deleted.
(WebCore::SocketStreamHandleBase::close): Deleted.
(WebCore::SocketStreamHandleBase::disconnect): Deleted.
(WebCore::SocketStreamHandleBase::sendPendingData): Deleted.
* platform/network/SocketStreamHandle.h: Copied from Source/WebCore/platform/network/SocketStreamHandleBase.h.
(WebCore::SocketStreamHandle::~SocketStreamHandle):
(WebCore::SocketStreamHandle::client):
(WebCore::SocketStreamHandleBase::~SocketStreamHandleBase): Deleted.
(WebCore::SocketStreamHandleBase::client): Deleted.
* platform/network/SocketStreamHandleBase.cpp: Removed.
* platform/network/SocketStreamHandleBase.h: Removed.
* platform/network/cf/SocketStreamHandle.h: Removed.
* platform/network/cf/SocketStreamHandleCFNet.cpp: Removed.
* platform/network/cf/SocketStreamHandleImpl.h: Copied from Source/WebCore/platform/network/cf/SocketStreamHandle.h.
(WebCore::SocketStreamHandleImpl::create):
(WebCore::SocketStreamHandle::create): Deleted.
* platform/network/cf/SocketStreamHandleImplCFNet.cpp: Copied from Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp.
(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::scheduleStreams):
(WebCore::SocketStreamHandleImpl::retainSocketStreamHandle):
(WebCore::SocketStreamHandleImpl::releaseSocketStreamHandle):
(WebCore::SocketStreamHandleImpl::copyPACExecutionDescription):
(WebCore::SocketStreamHandleImpl::pacExecutionCallback):
(WebCore::SocketStreamHandleImpl::executePACFileURL):
(WebCore::SocketStreamHandleImpl::removePACRunLoopSource):
(WebCore::SocketStreamHandleImpl::chooseProxy):
(WebCore::SocketStreamHandleImpl::chooseProxyFromArray):
(WebCore::SocketStreamHandleImpl::createStreams):
(WebCore::SocketStreamHandleImpl::getStoredCONNECTProxyCredentials):
(WebCore::authenticationSchemeFromAuthenticationMethod):
(WebCore::SocketStreamHandleImpl::addCONNECTCredentials):
(WebCore::SocketStreamHandleImpl::copyCFStreamDescription):
(WebCore::SocketStreamHandleImpl::readStreamCallback):
(WebCore::SocketStreamHandleImpl::writeStreamCallback):
(WebCore::SocketStreamHandleImpl::reportErrorToClient):
(WebCore::SocketStreamHandleImpl::~SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::platformSend):
(WebCore::SocketStreamHandleImpl::platformClose):
(WebCore::SocketStreamHandleImpl::port):
(WebCore::SocketStreamHandle::SocketStreamHandle): Deleted.
(WebCore::SocketStreamHandle::scheduleStreams): Deleted.
(WebCore::SocketStreamHandle::retainSocketStreamHandle): Deleted.
(WebCore::SocketStreamHandle::releaseSocketStreamHandle): Deleted.
(WebCore::SocketStreamHandle::copyPACExecutionDescription): Deleted.
(WebCore::SocketStreamHandle::pacExecutionCallback): Deleted.
(WebCore::SocketStreamHandle::executePACFileURL): Deleted.
(WebCore::SocketStreamHandle::removePACRunLoopSource): Deleted.
(WebCore::SocketStreamHandle::chooseProxy): Deleted.
(WebCore::SocketStreamHandle::chooseProxyFromArray): Deleted.
(WebCore::SocketStreamHandle::createStreams): Deleted.
(WebCore::SocketStreamHandle::getStoredCONNECTProxyCredentials): Deleted.
(WebCore::SocketStreamHandle::addCONNECTCredentials): Deleted.
(WebCore::SocketStreamHandle::copyCFStreamDescription): Deleted.
(WebCore::SocketStreamHandle::readStreamCallback): Deleted.
(WebCore::SocketStreamHandle::writeStreamCallback): Deleted.
(WebCore::SocketStreamHandle::reportErrorToClient): Deleted.
(WebCore::SocketStreamHandle::~SocketStreamHandle): Deleted.
(WebCore::SocketStreamHandle::platformSend): Deleted.
(WebCore::SocketStreamHandle::platformClose): Deleted.
(WebCore::SocketStreamHandle::port): Deleted.
* platform/network/curl/SocketStreamHandle.h: Removed.
* platform/network/curl/SocketStreamHandleCurl.cpp: Removed.
* platform/network/curl/SocketStreamHandleImpl.h: Copied from Source/WebCore/platform/network/curl/SocketStreamHandle.h.
(WebCore::SocketStreamHandleImpl::create):
(WebCore::SocketStreamHandle::create): Deleted.
* platform/network/curl/SocketStreamHandleImplCurl.cpp: Copied from Source/WebCore/platform/network/curl/SocketStreamHandleCurl.cpp.
(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::~SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::platformSend):
(WebCore::SocketStreamHandleImpl::platformClose):
(WebCore::SocketStreamHandleImpl::readData):
(WebCore::SocketStreamHandleImpl::sendData):
(WebCore::SocketStreamHandleImpl::waitForAvailableData):
(WebCore::SocketStreamHandleImpl::startThread):
(WebCore::SocketStreamHandleImpl::stopThread):
(WebCore::SocketStreamHandleImpl::didReceiveData):
(WebCore::SocketStreamHandleImpl::didOpenSocket):
(WebCore::SocketStreamHandleImpl::createCopy):
(WebCore::SocketStreamHandle::SocketStreamHandle): Deleted.
(WebCore::SocketStreamHandle::~SocketStreamHandle): Deleted.
(WebCore::SocketStreamHandle::platformSend): Deleted.
(WebCore::SocketStreamHandle::platformClose): Deleted.
(WebCore::SocketStreamHandle::readData): Deleted.
(WebCore::SocketStreamHandle::sendData): Deleted.
(WebCore::SocketStreamHandle::waitForAvailableData): Deleted.
(WebCore::SocketStreamHandle::startThread): Deleted.
(WebCore::SocketStreamHandle::stopThread): Deleted.
(WebCore::SocketStreamHandle::didReceiveData): Deleted.
(WebCore::SocketStreamHandle::didOpenSocket): Deleted.
(WebCore::SocketStreamHandle::createCopy): Deleted.
* platform/network/soup/SocketStreamHandle.h: Removed.
* platform/network/soup/SocketStreamHandleImpl.h: Copied from Source/WebCore/platform/network/soup/SocketStreamHandle.h.
* platform/network/soup/SocketStreamHandleImplSoup.cpp: Copied from Source/WebCore/platform/network/soup/SocketStreamHandleSoup.cpp.
(WebCore::SocketStreamHandleImpl::create):
(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::~SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::connected):
(WebCore::SocketStreamHandleImpl::connectedCallback):
(WebCore::SocketStreamHandleImpl::readBytes):
(WebCore::SocketStreamHandleImpl::readReadyCallback):
(WebCore::SocketStreamHandleImpl::didFail):
(WebCore::SocketStreamHandleImpl::writeReady):
(WebCore::SocketStreamHandleImpl::platformSend):
(WebCore::SocketStreamHandleImpl::platformClose):
(WebCore::SocketStreamHandleImpl::beginWaitingForSocketWritability):
(WebCore::SocketStreamHandleImpl::stopWaitingForSocketWritability):
(WebCore::SocketStreamHandleImpl::writeReadyCallback):
(WebCore::SocketStreamHandle::create): Deleted.
(WebCore::SocketStreamHandle::SocketStreamHandle): Deleted.
(WebCore::SocketStreamHandle::~SocketStreamHandle): Deleted.
(WebCore::SocketStreamHandle::connected): Deleted.
(WebCore::SocketStreamHandle::connectedCallback): Deleted.
(WebCore::SocketStreamHandle::readBytes): Deleted.
(WebCore::SocketStreamHandle::readReadyCallback): Deleted.
(WebCore::SocketStreamHandle::didFail): Deleted.
(WebCore::SocketStreamHandle::writeReady): Deleted.
(WebCore::SocketStreamHandle::platformSend): Deleted.
(WebCore::SocketStreamHandle::platformClose): Deleted.
(WebCore::SocketStreamHandle::beginWaitingForSocketWritability): Deleted.
(WebCore::SocketStreamHandle::stopWaitingForSocketWritability): Deleted.
(WebCore::SocketStreamHandle::writeReadyCallback): Deleted.
* platform/network/soup/SocketStreamHandleSoup.cpp: Removed.

Source/WebKit2:

* WebProcess/Network/WebSocketProvider.cpp:
(WebKit::WebSocketProvider::createSocketStreamHandle):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204483 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAnother build fix.
andersca@apple.com [Mon, 15 Aug 2016 21:11:21 +0000 (21:11 +0000)]
Another build fix.

* WebKit.exp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204482 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoExpose crypto.getRandomValues to Web Workers
jiewen_tan@apple.com [Mon, 15 Aug 2016 21:08:25 +0000 (21:08 +0000)]
Expose crypto.getRandomValues to Web Workers
https://bugs.webkit.org/show_bug.cgi?id=104851
<rdar://problem/27285714>

Reviewed by Darin Adler.

Source/WebCore:

Tests: crypto/webkitSubtle/disallowed-in-worker.html
       crypto/workers/crypto-gc-worker.html
       crypto/workers/crypto-random-values-limits-worker.html
       crypto/workers/crypto-random-values-types-worker.html
       crypto/workers/crypto-random-values-worker.html

Expose both crypto and crypto.getRandomValues to Web Workers. However, webkitSubtle is
disabled in Web Workers. This change also refactors a bit on IDLs related to Crypto
interface.

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
Introduce GlobalCrypto Interface which is used to repalace the partial IDL in both
DOMWindow and WorkerGlobalScope with sub-implememtations.
* bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::visitAdditionalChildren):
* bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::visitAdditionalChildren):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* dom/Document.idl:
Add support of GenerateIsReachable=ImplScriptExecutionContext, which allow registered
JS Objects to live as long as ScriptExecutionContext lives, i.e. Document and
WorkerGlobalScope.
* page/Crypto.cpp:
(WebCore::Crypto::Crypto):
(WebCore::Crypto::webkitSubtle):
(WebCore::Crypto::document): Deleted.
* page/Crypto.h:
(WebCore::Crypto::create):
* page/Crypto.idl:
Change the opaque root of Crypto to ScriptExecutionContext such that it perserves
the same live time in both Window and Web Worker. And disable WebKitSubtle in Web
Workers.
* page/DOMWindow.idl:
* page/GlobalCrypto.idl: Added.
Replace partial IDL to sub-implementation of crypto attribute.
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::crypto):
* workers/WorkerGlobalScope.h:
* workers/WorkerGlobalScope.idl:
Introduce crypto attribute to Web Workers.

LayoutTests:

* crypto/crypto-random-values-limits.html:
* crypto/crypto-random-values-types.html:
* crypto/crypto-random-values.html:
* crypto/webkitSubtle/disallowed-in-worker-expected.txt: Added.
* crypto/webkitSubtle/disallowed-in-worker.html: Added.
* crypto/webkitSubtle/resources/disallowed-in-worker.js: Added.
* crypto/workers/crypto-gc-worker-expected.txt: Added.
* crypto/workers/crypto-gc-worker.html: Added.
* crypto/workers/crypto-random-values-limits-worker-expected.txt: Added.
* crypto/workers/crypto-random-values-limits-worker.html: Added.
* crypto/workers/crypto-random-values-types-worker-expected.txt: Added.
* crypto/workers/crypto-random-values-types-worker.html: Added.
* crypto/workers/crypto-random-values-worker-expected.txt: Added.
* crypto/workers/crypto-random-values-worker.html: Added.
* crypto/workers/resources/crypto-gc-worker.js: Added.
(startTest):
(continueTest):
(finishTest):
* crypto/workers/resources/crypto-random-limits-worker.js: Added.
(catch):
* crypto/workers/resources/crypto-random-values-types-worker.js: Copied from LayoutTests/crypto/crypto-random-values-types.html.
(checkIntegerTypes):
(checkNonIntegerTypes):
* crypto/workers/resources/crypto-random-values-worker.js: Copied from LayoutTests/crypto/crypto-random-values.html.
(catch):
* js/dom/global-constructors-attributes-dedicated-worker-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204481 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[JSC] B3 Neg opcode should support float
commit-queue@webkit.org [Mon, 15 Aug 2016 21:04:49 +0000 (21:04 +0000)]
[JSC] B3 Neg opcode should support float
https://bugs.webkit.org/show_bug.cgi?id=160795

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-15
Reviewed by Geoffrey Garen.

This is required to implement WASM f32.neg opcode.

* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::negateFloat):
* b3/B3LowerToAir.cpp:
(JSC::B3::Air::LowerToAir::lower):
* b3/B3ReduceDoubleToFloat.cpp:
* b3/air/AirOpcode.opcodes:
* b3/testb3.cpp:
(JSC::B3::testNegDouble):
(JSC::B3::testNegFloat):
(JSC::B3::testNegFloatWithUselessDoubleConversion):
(JSC::B3::run):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204480 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUse #pragma once in inspector headers
commit-queue@webkit.org [Mon, 15 Aug 2016 20:55:16 +0000 (20:55 +0000)]
Use #pragma once in inspector headers
https://bugs.webkit.org/show_bug.cgi?id=160861

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-08-15
Reviewed by Mark Lam.

* inspector/*.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204479 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix build.
andersca@apple.com [Mon, 15 Aug 2016 20:51:16 +0000 (20:51 +0000)]
Fix build.

* Configurations/WebKitLegacy.xcconfig:
* WebKit.mac.exp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204478 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAllow a port to run tests with a custom device setup
simon.fraser@apple.com [Mon, 15 Aug 2016 20:50:13 +0000 (20:50 +0000)]
Allow a port to run tests with a custom device setup
https://bugs.webkit.org/show_bug.cgi?id=160833

Reviewed by Daniel Bates.

These changes allow the IOSSimulator port to run tests in iPad mode.

This is made possible by allowing a platform to define CUSTOM_DEVICE_CLASSES,
in this case 'ipad'. When specified, any test in a directory with a suffix that matches
a custom device will be collected into a set, and run in that device's environment after
the other tests have run.

* Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._custom_device_for_test): If the test contains a directory matching a
custom device suffix, return that custom device.
(Manager._set_up_run): Push the custom device class, if any, into options so
that the Worker can get to it.
(Manager.run): Go through the list of tests, and break it down into device-generic
tests, and tests for each device class. _run_test_subset is then called for
each collection of tests, and the results merged.
(Manager._run_test_subset): Some lines unwrapped.
(Manager._end_test_run):
(Manager._run_tests):
* Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
(SingleTestRunner.__init__): Unwrapped a line.
* Scripts/webkitpy/layout_tests/models/test_run_results.py:
(TestRunResults.merge): Add this function to merge TestRunResults
* Scripts/webkitpy/layout_tests/views/printing.py:
(Printer.print_workers_and_shards): Print the custom device, if any.
* Scripts/webkitpy/port/base.py:
(Port): Base port has empty array of custom devices.
(Port.setup_test_run): Add device_class argument.
* Scripts/webkitpy/port/driver.py:
(DriverInput.__repr__):
(Driver.check_driver.implementation):
* Scripts/webkitpy/port/efl.py:
(EflPort.setup_test_run):
* Scripts/webkitpy/port/gtk.py:
(GtkPort.setup_test_run):
* Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort): Add CUSTOM_DEVICE_CLASSES for ipad.
(IOSSimulatorPort.__init__):
(IOSSimulatorPort.simulator_device_type): Use a device name from the DEVICE_CLASS_MAP
based on the custom device class.
(IOSSimulatorPort._set_device_class):
(IOSSimulatorPort._create_simulators): Factor some code into this function.
(IOSSimulatorPort.setup_test_run):
(IOSSimulatorPort.testing_device):
(IOSSimulatorPort.reset_preferences): This used to create the simulator apps, but that
seemed wrong for this function. That was moved to setup_test_run().
(IOSSimulatorPort.check_sys_deps): This function used to create testing devices,
but this happened too early, before we knew which kind of devices to create. Devices
are now created in setup_test_run().
* Scripts/webkitpy/port/win.py:
(WinPort.setup_test_run):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204477 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove OldWebAssertions.c
andersca@apple.com [Mon, 15 Aug 2016 20:45:38 +0000 (20:45 +0000)]
Remove OldWebAssertions.c
https://bugs.webkit.org/show_bug.cgi?id=160862

Reviewed by Dan Bernstein.

Source/WebKit:

* WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

These functions were used by an old version of iWeb. The latest version of iWeb no longer uses them.

* Misc/OldWebAssertions.c: Removed.
(WebReportAssertionFailure): Deleted.
(WebReportError): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204476 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove WebKeyGenerator
andersca@apple.com [Mon, 15 Aug 2016 19:16:27 +0000 (19:16 +0000)]
Remove WebKeyGenerator
https://bugs.webkit.org/show_bug.cgi?id=160854

Reviewed by Dan Bernstein.

Source/WebKit:

* WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

This SPI class is no longer used by Safari.

* WebCoreSupport/WebKeyGenerator.h: Removed.
* WebCoreSupport/WebKeyGenerator.mm: Removed.
(+[WebKeyGenerator sharedGenerator]): Deleted.
(toWebCertificateParseResult): Deleted.
(-[WebKeyGenerator addCertificatesToKeychainFromData:]): Deleted.
* WebView/WebFrameView.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204474 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix iOS build.
andersca@apple.com [Mon, 15 Aug 2016 19:11:32 +0000 (19:11 +0000)]
Fix iOS build.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::webGLPolicyForURL):
(WebKit::WebPage::resolveWebGLPolicyForURL):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204473 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRename LOG_ALWAYS
krollin@apple.com [Mon, 15 Aug 2016 18:59:57 +0000 (18:59 +0000)]
Rename LOG_ALWAYS
https://bugs.webkit.org/show_bug.cgi?id=160768

Rename LOG_ALWAYS and friends, given that the first parameter to it is
a boolean expression that determines whether or not logging should be
performed.

Reviewed by Chris Dumez.

Source/WebCore:

No new tests. No new functionality is added. Only some macro names
have been changed.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
* platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::ReliefLogger::logMemoryUsageChange):
* platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::IOSurface):

Source/WebKit2:

* NetworkProcess/Downloads/Download.cpp:
(WebKit::Download::didReceiveResponse):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::cancelPrepareToSuspend):
(WebKit::NetworkProcess::processDidResume):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
* Platform/IPC/Connection.cpp:
(IPC::Connection::waitForSyncReply):
* Shared/ChildProcess.cpp:
(WebKit::didCloseOnConnectionWorkQueue):
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::didChangeIsLoading):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):
* UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::updateAssertionNow):
(WebKit::ProcessThrottler::updateAssertion):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateActivityToken):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::WebProcessProxy::didSetAssertionState):
(WebKit::WebProcessProxy::setIsHoldingLockedFiles):
* UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(WebKit::ProcessAssertion::ProcessAssertion):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::willSendRequest):
(WebKit::WebResourceLoader::didReceiveResponse):
(WebKit::WebResourceLoader::didReceiveData):
(WebKit::WebResourceLoader::didFinishResourceLoad):
(WebKit::WebResourceLoader::didFailResourceLoad):
(WebKit::WebResourceLoader::didReceiveResource):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::layerVolatilityTimerFired):
(WebKit::WebPage::markLayersVolatile):
(WebKit::WebPage::cancelMarkLayersVolatile):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::actualPrepareToSuspend):
(WebKit::WebProcess::processWillSuspendImminently):
(WebKit::WebProcess::prepareToSuspend):
(WebKit::WebProcess::cancelPrepareToSuspend):
(WebKit::WebProcess::markAllLayersVolatile):
(WebKit::WebProcess::processDidResume):

Source/WTF:

* wtf/Assertions.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204472 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoCannot build WebKit for iOS device using Xcode 7.3/iOS 9.3 public SDK due to missing
dbates@webkit.org [Mon, 15 Aug 2016 18:57:21 +0000 (18:57 +0000)]
Cannot build WebKit for iOS device using Xcode 7.3/iOS 9.3 public SDK due to missing
private frameworks and libraries
https://bugs.webkit.org/show_bug.cgi?id=155931
<rdar://problem/25807989>

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

Add directory WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/X to the framework search path
where X is the major version of the active iOS SDK.

* Configurations/Base.xcconfig:

Source/WebCore:

Add directory WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/X to the framework search path
where X is the major version of the active iOS SDK.

* Configurations/WebCore.xcconfig:

Source/WebKit/mac:

Add directory WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/X to the framework search path
where X is the major version of the active iOS SDK.

* Configurations/WebKitLegacy.xcconfig:

Source/WebKit2:

Add directory WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/X to the framework search path
where X is the major version of the active iOS SDK.

* Configurations/BaseTarget.xcconfig:

Tools:

Add directory WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/X to the framework search path
where X is the major version of the active iOS SDK.

* DumpRenderTree/mac/Configurations/Base.xcconfig:
* WebKitTestRunner/Configurations/Base.xcconfig:

WebKitLibraries:

Add text-based stubs for private frameworks in iOS 9 and iOS 10 beta.

* WebKitPrivateFrameworkStubs: Added.
* WebKitPrivateFrameworkStubs/iOS: Added.
* WebKitPrivateFrameworkStubs/iOS/10: Added.
* WebKitPrivateFrameworkStubs/iOS/10/AppSupport.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/10/AppSupport.framework/AppSupport.tbd: Added.
* WebKitPrivateFrameworkStubs/iOS/10/AssertionServices.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/10/AssertionServices.framework/AssertionServices.tbd: Added.
* WebKitPrivateFrameworkStubs/iOS/10/CorePDF.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/10/CorePDF.framework/CorePDF.tbd: Added.
* WebKitPrivateFrameworkStubs/iOS/10/GraphicsServices.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/10/GraphicsServices.framework/GraphicsServices.tbd: Added.
* WebKitPrivateFrameworkStubs/iOS/10/IOSurface.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/10/IOSurface.framework/IOSurface.tbd: Added.
* WebKitPrivateFrameworkStubs/iOS/9: Added.
* WebKitPrivateFrameworkStubs/iOS/9/AppSupport.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/9/AppSupport.framework/AppSupport.tbd: Added.
* WebKitPrivateFrameworkStubs/iOS/9/AssertionServices.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/9/AssertionServices.framework/AssertionServices.tbd: Added.
* WebKitPrivateFrameworkStubs/iOS/9/CorePDF.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/9/CorePDF.framework/CorePDF.tbd: Added.
* WebKitPrivateFrameworkStubs/iOS/9/GraphicsServices.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/9/GraphicsServices.framework/GraphicsServices.tbd: Added.
* WebKitPrivateFrameworkStubs/iOS/9/IOSurface.framework: Added.
* WebKitPrivateFrameworkStubs/iOS/9/IOSurface.framework/IOSurface.tbd: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204471 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoReduce includes of Debugger.h
joepeck@webkit.org [Mon, 15 Aug 2016 18:48:31 +0000 (18:48 +0000)]
Reduce includes of Debugger.h
https://bugs.webkit.org/show_bug.cgi?id=160827

Reviewed by Mark Lam.

* API/JSTypedArray.cpp:
* bytecode/UnlinkedCodeBlock.h:
* bytecode/UnlinkedFunctionExecutable.cpp:
* bytecode/UnlinkedFunctionExecutable.h:
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/NodesCodegen.cpp:
* dfg/DFGPlan.cpp:
* dfg/DFGSpeculativeJIT32_64.cpp:
* dfg/DFGSpeculativeJIT64.cpp:
* ftl/FTLJITCode.h:
* inspector/ScriptCallStackFactory.cpp:
* inspector/agents/InspectorDebuggerAgent.h:
* jit/JITOpcodes.cpp:
* jit/JITOpcodes32_64.cpp:
* jit/JITOperations.cpp:
* llint/LLIntOffsetsExtractor.cpp:
* parser/Nodes.cpp:
* parser/Parser.cpp:
* parser/Parser.h:
* runtime/Completion.cpp:
* runtime/Executable.cpp:
* runtime/Executable.h:
* runtime/FunctionConstructor.cpp:
* runtime/SamplingProfiler.cpp:
* runtime/SamplingProfiler.h:
* runtime/VMEntryScope.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204470 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd a setting and preferences to enable visual viewport mode
simon.fraser@apple.com [Mon, 15 Aug 2016 18:16:36 +0000 (18:16 +0000)]
Add a setting and preferences to enable visual viewport mode
https://bugs.webkit.org/show_bug.cgi?id=160843

Reviewed by Sam Weinig.
Source/WebCore:

Add a visualViewportEnabled setting, in the start of a group at the bottom
of the file which is intended as the future home for all runtime-enabled
settings.

* page/Settings.in:

Source/WebKit/mac:

Hook up the visualViewportEnabled setting for WebKit1.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences visualViewportEnabled]):
(-[WebPreferences setVisualViewportEnabled:]):
* WebView/WebPreferencesPrivate.h:

Source/WebKit2:

Hook up the visualViewportEnabled setting for WebKit2.

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _visualViewportEnabled]):
(-[WKPreferences _setVisualViewportEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Tools:

Pref and a menu item to toggle visualViewportEnabled for WebKits 1 and 2.

* MiniBrowser/mac/SettingsController.h:
* MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController visualViewportEnabled]):
(-[SettingsController toggleVisualViewportEnabled:]):
* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController didChangeSettings]):
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController didChangeSettings]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204469 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix WinCairo build after r204466.
achristensen@apple.com [Mon, 15 Aug 2016 17:53:26 +0000 (17:53 +0000)]
Fix WinCairo build after r204466.

* platform/network/curl/SocketStreamHandleCurl.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204468 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix GTK build after r204466.
achristensen@apple.com [Mon, 15 Aug 2016 17:37:55 +0000 (17:37 +0000)]
Fix GTK build after r204466.

* platform/gtk/DataObjectGtk.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204467 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove unused includes of wtf headers
achristensen@apple.com [Mon, 15 Aug 2016 17:21:13 +0000 (17:21 +0000)]
Remove unused includes of wtf headers
https://bugs.webkit.org/show_bug.cgi?id=160839

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-08-15
Reviewed by Alex Christensen.

Source/JavaScriptCore:

* Lots of files.

Source/WebCore:

* Lots of files.

Source/WebKit:

* Storage/StorageSyncManager.h:
* Storage/StorageThread.cpp:
* Storage/StorageThread.h:
* Storage/WebDatabaseProvider.cpp:

Source/WebKit/cf:

* WebCoreSupport/WebInspectorClientCF.cpp:

Source/WebKit/ios:

* Misc/WebGeolocationCoreLocationProvider.h:
* WebView/WebPDFViewIOS.mm:
* WebView/WebPlainWhiteView.mm:

Source/WebKit/mac:

* History/BinaryPropertyList.cpp:
* History/WebBackForwardList.mm:
* History/WebHistoryItemInternal.h:
* Misc/WebNSFileManagerExtras.mm:
* Plugins/Hosted/NetscapePluginHostProxy.h:
* WebCoreSupport/WebPlatformStrategies.mm:
* WebCoreSupport/WebSelectionServiceController.mm:
* WebCoreSupport/WebUserMediaClient.h:

Source/WebKit/win:

* WebFrame.h:

Source/WebKit2:

* Lots of files.

Source/WTF:

* wtf/BackwardsGraph.h:
* wtf/DataLog.cpp:
* wtf/WorkQueue.cpp:
* wtf/text/StringImpl.cpp:
* wtf/unicode/icu/CollatorICU.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204466 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove unused WebSocketChannel::willOpenSocketStream
achristensen@apple.com [Mon, 15 Aug 2016 17:15:21 +0000 (17:15 +0000)]
Remove unused WebSocketChannel::willOpenSocketStream
https://bugs.webkit.org/show_bug.cgi?id=160851

Reviewed by Daniel Bates.

* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::willOpenSocketStream): Deleted.
* Modules/websockets/WebSocketChannel.h:
* platform/network/SocketStreamHandleClient.h:
(WebCore::SocketStreamHandleClient::willOpenSocketStream): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204465 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoSkip failing test mozilla/ecma/LexicalConventions/7.7.3.js
ryanhaddad@apple.com [Mon, 15 Aug 2016 17:14:20 +0000 (17:14 +0000)]
Skip failing test mozilla/ecma/LexicalConventions/7.7.3.js
https://bugs.webkit.org/show_bug.cgi?id=160662

Unreviewed test gardening.

* mozilla/ecma/LexicalConventions/7.7.3.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204464 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRebaseline js/dom/global-constructors-attributes.html for mac-wk1, mark as failing...
ryanhaddad@apple.com [Mon, 15 Aug 2016 16:53:17 +0000 (16:53 +0000)]
Rebaseline js/dom/global-constructors-attributes.html for mac-wk1, mark as failing on Yosemite.

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:
* platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204463 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMove the plug-in and WebGL blacklist code to WebCore
andersca@apple.com [Mon, 15 Aug 2016 16:43:13 +0000 (16:43 +0000)]
Move the plug-in and WebGL blacklist code to WebCore
https://bugs.webkit.org/show_bug.cgi?id=160831

Reviewed by Sam Weinig.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* platform/mac/BlacklistUpdater.h: Added.
(WebCore::BlacklistUpdater::queue):
(WebCore::BlacklistUpdater::pluginBlacklist):
(WebCore::BlacklistUpdater::webGLBlacklist):
* platform/mac/BlacklistUpdater.mm: Added.
(WebCore::BlacklistUpdater::readBlacklistData):
(WebCore::BlacklistUpdater::reloadIfNecessary):
(WebCore::BlacklistUpdater::initializeQueue):
* platform/mac/PluginBlacklist.h: Added.
* platform/mac/PluginBlacklist.mm: Added.
(WebCore::PluginBlacklist::loadPolicyForPluginVersion):
(WebCore::PluginBlacklist::isPluginUpdateAvailable):
(WebCore::PluginBlacklist::create):
(WebCore::PluginBlacklist::~PluginBlacklist):
(WebCore::PluginBlacklist::splitOSVersion):
(WebCore::PluginBlacklist::loadPolicyForPlugin):
(WebCore::PluginBlacklist::isUpdateAvailable):
(WebCore::PluginBlacklist::PluginBlacklist):
* platform/mac/WebGLBlacklist.h: Added.
* platform/mac/WebGLBlacklist.mm: Added.
(WebCore::OSBuildInfo::OSBuildInfo):
(WebCore::OSBuildInfo::operator==):
(WebCore::OSBuildInfo::operator>):
(WebCore::OSBuildInfo::operator<=):
(WebCore::OSBuildInfo::operator<):
(WebCore::buildInfoFromOSBuildString):
(WebCore::WebGLBlacklist::shouldBlockWebGL):
(WebCore::WebGLBlacklist::shouldSuggestBlockingWebGL):
(WebCore::matchesGPU):
(WebCore::gpuMaskFromString):
(WebCore::matchesBuildInfo):
(WebCore::WebGLBlacklist::create):
(WebCore::WebGLBlacklist::shouldBlock):
(WebCore::WebGLBlacklist::shouldSuggestBlocking):
(WebCore::WebGLBlacklist::WebGLBlacklist):
(WebCore::WebGLBlacklist::~WebGLBlacklist):
* platform/spi/cf/CFUtilitiesSPI.h: Added.

Source/WebKit/mac:

Adopt the plug-in and WebGL blacklist code from WebCore instead of using the code from WebKitSystemInterface.

* WebCoreSupport/WebFrameLoaderClient.mm:
(shouldBlockPlugin):
(WebFrameLoaderClient::createPlugin):
(WebFrameLoaderClient::createJavaAppletWidget):
(shouldBlockWebGL):
(WebFrameLoaderClient::webGLPolicyForURL):
(WebFrameLoaderClient::resolveWebGLPolicyForURL):

Source/WebKit2:

Adopt the plug-in and WebGL blacklist code from WebCore instead of using the code from WebKitSystemInterface.

* Shared/Plugins/Netscape/mac/PluginInformationMac.mm:
(WebKit::getPlatformPluginModuleInformation):
* Shared/Plugins/PluginModuleInfo.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextIsPlugInUpdateAvailable):
(WKContextShouldBlockWebGL):
(WKContextShouldSuggestBlockWebGL):
* UIProcess/Plugins/PluginInfoStore.h:
* UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
(WebKit::shouldBlockPlugin):
(WebKit::PluginInfoStore::defaultLoadPolicyForPlugin):
(WebKit::WKPlugInModuleLoadPolicyToPluginModuleLoadPolicy): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::findPlugin):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204462 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd Sandbox profile for Enterprise support version of Flash Player
bfulgham@apple.com [Mon, 15 Aug 2016 16:10:09 +0000 (16:10 +0000)]
Add Sandbox profile for Enterprise support version of Flash Player
https://bugs.webkit.org/show_bug.cgi?id=160753
<rdar://problem/17614483>

Reviewed by Andy Estes.

* Resources/PlugInSandboxProfiles/com.macromedia.Flash Player ESR.plugin.sb: Added.
* WebKit2.xcodeproj/project.pbxproj: Add reference to new sandbox profile.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204461 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAllow using make-dist with non-GTK ports
annulen@yandex.ru [Mon, 15 Aug 2016 09:56:18 +0000 (09:56 +0000)]
Allow using make-dist with non-GTK ports
https://bugs.webkit.org/show_bug.cgi?id=160842

Reviewed by Michael Catanzaro.

This patch adds support for setting base name of tarball and argument
passed to cmake's -DPORT= via command line arguments.

* gtk/make-dist.py:
(Distcheck.configure):
(Distcheck.check):
(get_tarball_root_and_output_filename_from_arguments):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204460 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAlign the event listener firing code with the latest DOM Specification and simplify it
cdumez@apple.com [Mon, 15 Aug 2016 00:48:16 +0000 (00:48 +0000)]
Align the event listener firing code with the latest DOM Specification and simplify it
https://bugs.webkit.org/show_bug.cgi?id=160828

Reviewed by Darin Adler.

Align the event listener firing code with the latest DOM specification:
- https://dom.spec.whatwg.org/#concept-event-listener-invoke
- https://dom.spec.whatwg.org/#concept-event-listener-inner-invoke
- https://dom.spec.whatwg.org/#concept-event-listener

The following changes were made:
1. RegisteredEventListener (equivalent to "event listener" in the spec)
   is now RefCounted
2. RegisteredEventListener now has a wasRemoved flag as in specification.
3. fireEventListeners() is now iterating over a copy of the event
   listeners, as in the specification. We rely on the wasRemoved removed
   flag to avoid executing event listeners that were removed while we
   iterate.

Previously, the code was modifying the event listeners vector we were
iterating on. Doing so safely lead to complicated and error prone code.
The new code is much simpler and easier to reason about.

This change seems to be perf-neutral on Speedometer.

No new tests, no web-exposed behavior change.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCommandLineAPIHostCustom.cpp:
(WebCore::getJSListenerFunctions):
* dom/DOMAllInOne.cpp:
* dom/EventListenerMap.cpp:
(WebCore::EventListenerMap::assertNoActiveIterators):
(WebCore::EventListenerMap::containsCapturing):
(WebCore::EventListenerMap::containsActive):
(WebCore::findListener):
(WebCore::EventListenerMap::add):
(WebCore::removeListenerFromVector):
(WebCore::EventListenerMap::remove):
(WebCore::EventListenerMap::find):
(WebCore::removeFirstListenerCreatedFromMarkup):
(WebCore::copyListenersNotCreatedFromMarkupToTarget):
(WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
(WebCore::EventListenerIterator::nextListener):
(WebCore::EventListenerMap::clear): Deleted.
* dom/EventListenerMap.h:
(WebCore::EventListenerMap::contains):
(WebCore::EventListenerMap::assertNoActiveIterators):
* dom/EventTarget.cpp:
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::getAttributeEventListener):
(WebCore::FiringEventListenersScope::FiringEventListenersScope):
(WebCore::FiringEventListenersScope::~FiringEventListenersScope):
(WebCore::EventTarget::fireEventListeners):
(WebCore::EventTarget::setAttributeEventListener): Deleted.
(WebCore::EventTarget::hasActiveEventListeners): Deleted.
(WebCore::EventTarget::dispatchEventForBindings): Deleted.
(WebCore::EventTarget::getEventListeners): Deleted.
* dom/EventTarget.h:
(WebCore::EventTarget::isFiringEventListeners):
* dom/RegisteredEventListener.cpp: Removed.
* dom/RegisteredEventListener.h:
(WebCore::RegisteredEventListener::Options::Options):
(WebCore::RegisteredEventListener::create):
(WebCore::RegisteredEventListener::listener):
(WebCore::RegisteredEventListener::useCapture):
(WebCore::RegisteredEventListener::isPassive):
(WebCore::RegisteredEventListener::isOnce):
(WebCore::RegisteredEventListener::wasRemoved):
(WebCore::RegisteredEventListener::markAsRemoved):
(WebCore::RegisteredEventListener::RegisteredEventListener):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::getEventListeners):
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
* inspector/InspectorDOMAgent.h:
(WebCore::EventListenerInfo::EventListenerInfo):
* svg/SVGElement.cpp:
(WebCore::hasLoadListener):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204459 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Cocoa] Remove deprecated _WKFormDelegate
mitz@apple.com [Mon, 15 Aug 2016 00:02:31 +0000 (00:02 +0000)]
[Cocoa] Remove deprecated _WKFormDelegate
https://bugs.webkit.org/show_bug.cgi?id=160848

Reviewed by Anders Carlsson.

* Shared/API/Cocoa/WebKitPrivate.h: Removed #import.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _formDelegate]): Moved into WKBinaryCompatibilityIOS10 cateogry implementation,
  chaged type to id <_WKInputDelegate>.
(-[WKWebView _setFormDelegate:]): Ditto.
* UIProcess/API/Cocoa/WKWebViewPrivate.h: Removed property declaration.
* UIProcess/API/Cocoa/_WKFormDelegate.h: Removed.
* WebKit2.xcodeproj/project.pbxproj: Removed reference to header.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h: Fixed comment.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204458 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[2016] Set correct status for test262 after implementation of Object.values&Object...
gskachkov@gmail.com [Sun, 14 Aug 2016 23:04:50 +0000 (23:04 +0000)]
[2016] Set correct status for test262 after implementation of Object.values&Object.entries
https://bugs.webkit.org/show_bug.cgi?id=160844

Reviewed by Saam Barati.

Patch contains fix statuses of specs in the test262 test collection after implementation of
Object.values and Object.entries functions. Also patch contains small fixes in tests of the
tests for Object.values/entries functions.

* stress/object-entries.js:
(Object.getOwnPropertyDescriptor):
* stress/object-values.js:
(Object.getOwnPropertyDescriptor):
* test262.yaml:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204457 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix compiler errors when building iOS WebKit using the iOS 10 beta SDK
dbates@webkit.org [Sun, 14 Aug 2016 22:42:21 +0000 (22:42 +0000)]
Fix compiler errors when building iOS WebKit using the iOS 10 beta SDK
https://bugs.webkit.org/show_bug.cgi?id=160725

Reviewed by Sam Weinig.

Source/WebCore:

* platform/cocoa/ThemeCocoa.mm: Unconditionally include header dlfcn.h as it
exists in both the public iOS 9.3 SDK and iOS 10 beta SDK.
* platform/spi/cocoa/CoreTextSPI.h: Add SPI declarations for constants that were
used in r204107.
* platform/spi/cocoa/PassKitSPI.h: Remove unnecessary #import statements when
building with the Apple Internal SDK. Include header PassKit/PassKit.h when
building for iOS.
* platform/spi/cocoa/QuartzCoreSPI.h: No need to define CLayer.contentsFormat
when building with the iOS 10 beta SDK as it is now part of the public API.

Source/WebKit/mac:

OSAtomicCompareAndSwap32() has been deprecated as of the iOS 10 beta SDK. For now,
silence the complier warning.

* WebView/WebView.mm:
(-[WebView _dispatchTileDidDraw:]):

Source/WebKit2:

* Platform/spi/ios/UIKitSPI.h: Add SPI for UITextInputSuggestionDelegate.
* UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm: Remove unnecessary include of PKPaymentMerchantSession.h.

Source/WTF:

For now, disable OS_LOG when building with the iOS 10 beta SDK until
we have the fix for <rdar://problem/27758343>.

* wtf/Platform.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204456 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoDereferenced NULL pointer in StyleResolver
commit-queue@webkit.org [Sun, 14 Aug 2016 22:38:54 +0000 (22:38 +0000)]
Dereferenced NULL pointer in StyleResolver
https://bugs.webkit.org/show_bug.cgi?id=160823

Patch by Jonathan Bedard <jbedard@apple.com> on 2016-08-14
Reviewed by Darin Adler.

No behavior changed, new tests unneeded.

This change was initiated by a NULL pointer dereference to provide this unused argument.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::CascadedProperties::addStyleProperties): Removed unused function argument.
(WebCore::StyleResolver::CascadedProperties::addMatch): Ditto.
* css/StyleResolver.h: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204455 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Cocoa] Remove deprecated _WKVisitedLinkProvider declarations that aren’t needed
mitz@apple.com [Sun, 14 Aug 2016 21:45:49 +0000 (21:45 +0000)]
[Cocoa] Remove deprecated _WKVisitedLinkProvider declarations that aren’t needed
https://bugs.webkit.org/show_bug.cgi?id=160846

Reviewed by Darin Adler.

* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _visitedLinkProvider]): Moved into WKBinaryCompatibilityIOS10
  cateogry implementation, changed type to _WKVisitedLinkStore.
(-[WKWebViewConfiguration _setVisitedLinkProvider:]): Ditto.
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Removed property declaration.

* UIProcess/API/Cocoa/_WKVisitedLinkProvider.h: Removed.
* UIProcess/API/Cocoa/_WKVisitedLinkProvider.mm: Moved declaration in here.

* WebKit2.xcodeproj/project.pbxproj: Updated for header removal.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204454 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoFix GTK Debug bots after r204400
mmaxfield@apple.com [Sun, 14 Aug 2016 18:29:24 +0000 (18:29 +0000)]
Fix GTK Debug bots after r204400
https://bugs.webkit.org/show_bug.cgi?id=160818

Reviewed by Carlos Garcia Campos.

Because the GTK EWS bot doesn't run tests, I missed this.

No new tests because there is no behavior change.

* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::selectionRect):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204453 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoBuild fix follow-up to r204433.
mitz@apple.com [Sun, 14 Aug 2016 01:29:50 +0000 (01:29 +0000)]
Build fix follow-up to r204433.

* wtf/StdLibExtras.h:
(WTF::makeVisitor): Don’t use an auto return type.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204452 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago'compatMode' property should be on Document, not HTMLDocument
cdumez@apple.com [Sun, 14 Aug 2016 00:10:22 +0000 (00:10 +0000)]
'compatMode' property should be on Document, not HTMLDocument
https://bugs.webkit.org/show_bug.cgi?id=160819

Reviewed by Sam Weinig.

Source/WebCore:

'compatMode' property should be on Document, not HTMLDocument:
- https://dom.spec.whatwg.org/#dom-document-compatmode

WebKit had it on both. Firefox and Chrome have it on Document only.

Test: fast/dom/Document/compatMode-location.html

* html/HTMLDocument.idl:

LayoutTests:

Add layout test coverage.

* fast/dom/Document/compatMode-location-expected.txt: Added.
* fast/dom/Document/compatMode-location.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204451 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMove 'embeds' / 'plugins'/ 'scripts' attributes from HTMLDocument to Document
cdumez@apple.com [Sat, 13 Aug 2016 22:37:18 +0000 (22:37 +0000)]
Move 'embeds' / 'plugins'/ 'scripts' attributes from HTMLDocument to Document
https://bugs.webkit.org/show_bug.cgi?id=160829

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Move 'embeds' / 'plugins'/ 'scripts' attributes from HTMLDocument to Document
to match the latest specification:
- https://html.spec.whatwg.org/multipage/dom.html#the-document-object

This also matches Chrome.

No new tests, rebaselined existing test.

* dom/Document.idl:
* html/HTMLDocument.idl:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204450 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMove designMode attribute from HTMLDocument to Document
cdumez@apple.com [Sat, 13 Aug 2016 22:36:20 +0000 (22:36 +0000)]
Move designMode attribute from HTMLDocument to Document
https://bugs.webkit.org/show_bug.cgi?id=160838

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

* web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Move designMode attribute from HTMLDocument to Document to match the
latest HTML specification:
- https://html.spec.whatwg.org/multipage/interaction.html#designMode

This also matches Chrome.

No new tests, rebaselined existing test.

* dom/Document.cpp:
(WebCore::Document::designMode):
(WebCore::Document::setDesignMode):
* dom/Document.h:
* dom/Document.idl:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::bgColor): Deleted.
(WebCore::HTMLDocument::setBgColor): Deleted.
(WebCore::HTMLDocument::fgColor): Deleted.
* html/HTMLDocument.h:
* html/HTMLDocument.idl:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204449 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[GTK] Install script lacks gstreamer related dependencies
clopez@igalia.com [Sat, 13 Aug 2016 20:30:50 +0000 (20:30 +0000)]
[GTK] Install script lacks gstreamer related dependencies
https://bugs.webkit.org/show_bug.cgi?id=160814

Reviewed by Carlos Garcia Campos.

* gtk/install-dependencies: Fedora case had already listed this dependencies,
but both Arch and Debian/Ubuntu were missing them.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204448 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agomake-dist.py should not allow unknown rules in manifest
annulen@yandex.ru [Sat, 13 Aug 2016 18:59:47 +0000 (18:59 +0000)]
make-dist.py should not allow unknown rules in manifest
https://bugs.webkit.org/show_bug.cgi?id=160841

Reviewed by Carlos Garcia Campos.

* gtk/make-dist.py:
(Manifest.process_line):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204447 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Win] Warning fixes.
pvollan@apple.com [Sat, 13 Aug 2016 17:17:37 +0000 (17:17 +0000)]
[Win] Warning fixes.
https://bugs.webkit.org/show_bug.cgi?id=160803

Reviewed by Brent Fulgham.

Initialize local variables.

* jit/JIT.cpp:
(JSC::JIT::compileWithoutLinking):
* runtime/Error.cpp:
(JSC::addErrorInfoAndGetBytecodeOffset):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204446 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[EFL][GTK] Install script not working on Debian 9 (testing) and Ubuntu 16.10
clopez@igalia.com [Sat, 13 Aug 2016 15:32:43 +0000 (15:32 +0000)]
[EFL][GTK] Install script not working on Debian 9 (testing) and Ubuntu 16.10
https://bugs.webkit.org/show_bug.cgi?id=160809

Reviewed by Carlos Garcia Campos.

* efl/install-dependencies: Factorize the previous logic for handling the php5/7
case, and use it also for the new package names of libpng and libgeoclue.
* gtk/install-dependencies: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204445 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoSkip to check directories existence in build-webkit
gyuyoung.kim@webkit.org [Sat, 13 Aug 2016 06:11:49 +0000 (06:11 +0000)]
Skip to check directories existence in build-webkit
https://bugs.webkit.org/show_bug.cgi?id=160691

Reviewed by Alex Christensen.

CMake checks if directories are there itself. So CMake ports
don't need to check it in the build-webkit script.

* Scripts/build-webkit:
* Scripts/webkitdirs.pm:
(determineSourceDir):
(isCMakeBuild):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204444 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agogetElementsByTagName() should take a qualifiedName in parameter
cdumez@apple.com [Sat, 13 Aug 2016 04:20:30 +0000 (04:20 +0000)]
getElementsByTagName() should take a qualifiedName in parameter
https://bugs.webkit.org/show_bug.cgi?id=160682

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

* web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:
* web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml-expected.txt:
* web-platform-tests/dom/nodes/Element-getElementsByTagName-expected.txt:
* web-platform-tests/dom/nodes/case-expected.txt:
Rebaseline several W3C tests now that more checks are passing.

* web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml.xhtml:
Re-sync this test from upstream as it was outdated after:
- https://github.com/w3c/web-platform-tests/pull/3457

Source/WebCore:

getElementsByTagName() should take a qualifiedName in parameter, not a
localName, according to the latest DOM specification:
- https://dom.spec.whatwg.org/#dom-document-getelementsbytagname
- https://dom.spec.whatwg.org/#concept-getelementsbytagname

The new behavior matches Firefox and Edge. There is a slight
compatiblity risk but we should give it a try.

No new tests, rebaselined existing tests.

* WebCore.xcodeproj/project.pbxproj:
* dom/AllDescendantsCollection.h: Added.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByTagNameNS):
* dom/Node.cpp:
(WebCore::NodeListsNodeData::invalidateCaches):
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::addCachedTagCollectionNS):
(WebCore::NodeListsNodeData::removeCachedTagCollectionNS):
(WebCore::NodeListsNodeData::adoptDocument):
(WebCore::NodeListsNodeData::deleteThisAndUpdateNodeRareDataIfAboutToRemoveLastList):
* dom/TagCollection.cpp:
(WebCore::makeQualifiedName):
(WebCore::splitQualifiedName):
(WebCore::TagCollectionNS::TagCollectionNS):
(WebCore::TagCollectionNS::~TagCollectionNS):
(WebCore::TagCollection::TagCollection):
(WebCore::TagCollection::~TagCollection):
(WebCore::HTMLTagCollection::HTMLTagCollection):
(WebCore::HTMLTagCollection::~HTMLTagCollection):
* dom/TagCollection.h:
(WebCore::TagCollection::elementMatches):
(WebCore::TagCollectionNS::elementMatches):
(WebCore::HTMLTagCollection::elementMatches):
* html/CollectionType.h:
* html/GenericCachedHTMLCollection.cpp:
(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):
* html/HTMLCollection.cpp:
(WebCore::invalidationTypeExcludingIdAndNameAttributes):

LayoutTests:

Update existing tests to reflect behavior change.

* fast/dom/getElementsByClassName/010.xml:
* fast/dom/getElementsByClassName/011.xml:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204441 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove always true JSC::Debugger::needPauseHandling virtual method
commit-queue@webkit.org [Sat, 13 Aug 2016 03:05:34 +0000 (03:05 +0000)]
Remove always true JSC::Debugger::needPauseHandling virtual method
https://bugs.webkit.org/show_bug.cgi?id=160822

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-08-12
Reviewed by Mark Lam.

Source/JavaScriptCore:

All subclasses return true for this method. Just remove the method.

* debugger/Debugger.cpp:
(JSC::Debugger::pauseIfNeeded):
* inspector/ScriptDebugServer.h:

Source/WebKit/mac:

* WebView/WebScriptDebugger.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204440 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoInline store loop for CopyRest in DFG and FTL for certain array modes
sbarati@apple.com [Sat, 13 Aug 2016 02:14:42 +0000 (02:14 +0000)]
Inline store loop for CopyRest in DFG and FTL for certain array modes
https://bugs.webkit.org/show_bug.cgi?id=159612

Reviewed by Filip Pizlo.

JSTests:

* stress/rest-parameter-having-a-bad-time.js: Added.
* stress/rest-parameter-many-arguments.js: Added.
* stress/rest-parameter-various-types.js: Added.

Source/JavaScriptCore:

This patch changes the old copy_rest bytecode to actually allocate the rest array itself.
The bytecode is now called create_rest with an analogous CreateRest node in the DFG/FTL.
This allows the bytecode to be in control of what type of indexingType the array is allocated
with. We always allocate using ArrayWithContiguous storage unless we're havingABadTime().
This also makes allocating and writing into the array fast. On the fast path, the DFG/FTL
JIT will fast allocate the array and its storage, and we will do a memmove from the rest
region of arguments into the array's storage.

I'm seeing a 1-2% speedup on ES6SampleBench, and about a 2x speedup
on micro benchmarks that just test rest creation speed.

* bytecode/BytecodeList.json:
* bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitRestParameter):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
(JSC::DFG::CallArrayAllocatorWithVariableSizeSlowPathGenerator::CallArrayAllocatorWithVariableSizeSlowPathGenerator):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::uses):
(JSC::DFG::Graph::isWatchingHavingABadTimeWatchpoint):
(JSC::DFG::Graph::compilation):
* dfg/DFGNode.h:
(JSC::DFG::Node::numberOfArgumentsToSkip):
* dfg/DFGNodeType.h:
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCreateClonedArguments):
(JSC::DFG::SpeculativeJIT::compileCreateRest):
(JSC::DFG::SpeculativeJIT::compileGetRestLength):
(JSC::DFG::SpeculativeJIT::compileCopyRest): Deleted.
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileArithRandom):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileArithRandom):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateClonedArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateRest):
(JSC::FTL::DFG::LowerDFGToB3::compileGetRestLength):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayBuffer):
(JSC::FTL::DFG::LowerDFGToB3::compileAllocateArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileCopyRest): Deleted.
* interpreter/CallFrame.h:
(JSC::ExecState::addressOfArgumentsStart):
(JSC::ExecState::argument):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JIT.h:
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_argument_count):
(JSC::JIT::emit_op_create_rest):
(JSC::JIT::emit_op_copy_rest): Deleted.
* jit/JITOperations.h:
* llint/LowLevelInterpreter.asm:
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/CommonSlowPaths.h:

LayoutTests:

* js/regress/rest-parameter-construction-performance-expected.txt: Added.
* js/regress/rest-parameter-construction-performance.html: Added.
* js/regress/script-tests/rest-parameter-construction-performance.js: Added.
(foo):
(test1):
(test2.foo):
(test2):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204439 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd a helper class for enumerating elements in an iterable object
rniwa@webkit.org [Sat, 13 Aug 2016 02:02:04 +0000 (02:02 +0000)]
Add a helper class for enumerating elements in an iterable object
https://bugs.webkit.org/show_bug.cgi?id=160800

Reviewed by Benjamin Poulain.

Added iteratorForIterable which provides an abstraction for iterating over an iterable object,
and deployed it in the constructors of Set, WeakSet, Map, and WeakMap.

Also added a helper function iteratorForIterable, which retrieves the iterator out of an iterable object.

* runtime/IteratorOperations.cpp:
(JSC::iteratorForIterable): Added.
* runtime/IteratorOperations.h:
(JSC::forEachInIterable): Added.
* runtime/MapConstructor.cpp:
(JSC::constructMap):
* runtime/SetConstructor.cpp:
(JSC::constructSet):
* runtime/WeakMapConstructor.cpp:
(JSC::constructWeakMap):
* runtime/WeakSetConstructor.cpp:
(JSC::constructWeakSet):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204438 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Add application/vnd.api+json as a valid JSON MIME-type
timothy@apple.com [Sat, 13 Aug 2016 00:56:48 +0000 (00:56 +0000)]
Web Inspector: Add application/vnd.api+json as a valid JSON MIME-type
https://bugs.webkit.org/show_bug.cgi?id=160834
rdar://problem/27608536

Reviewed by Joseph Pecoraro.

* UserInterface/Views/CodeMirrorAdditions.js: Add Add application/vnd.api+json to extraJSONTypes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204437 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMake variant only available when compiling for C++14 or greater
commit-queue@webkit.org [Fri, 12 Aug 2016 23:35:17 +0000 (23:35 +0000)]
Make variant only available when compiling for C++14 or greater
https://bugs.webkit.org/show_bug.cgi?id=160813

Patch by Sam Weinig <sam@webkit.org> on 2016-08-12
Reviewed by Anders Carlsson.

* wtf/Compiler.h:
* wtf/StdLibExtras.h:
* wtf/Variant.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204433 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[Cocoa] Instances of WKObject subclasses don’t work correctly with CFGetTypeID()
mitz@apple.com [Fri, 12 Aug 2016 23:34:27 +0000 (23:34 +0000)]
[Cocoa] Instances of WKObject subclasses don’t work correctly with CFGetTypeID()
https://bugs.webkit.org/show_bug.cgi?id=160820
<rdar://problem/27825875>

Reviewed by Anders Carlsson.

* Shared/Cocoa/WKObject.mm:
(-[WKObject _cfTypeID]): Override this internal method and forward to the target object.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204432 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoMake URLParser work with URLs missing URL parts
achristensen@apple.com [Fri, 12 Aug 2016 23:12:46 +0000 (23:12 +0000)]
Make URLParser work with URLs missing URL parts
https://bugs.webkit.org/show_bug.cgi?id=160824

Reviewed by Brady Eidson.

Source/WebCore:

My initial implementation of URLParser didn't work correctly with URLs missing parts,
like a URL with no fragment, or a URL with no query.  This fixes and tests parsing such URLS.
Covered by new API tests.

* platform/URLParser.cpp:
(WebCore::URLParser::parse):
(WebCore::URLParser::allValuesEqual):
* platform/URLParser.h:
(WebCore::URLParser::parse):

Tools:

* TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::s):
(TestWebKitAPI::checkURL):
(TestWebKitAPI::TEST_F):
(TestWebKitAPI::eq): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204431 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd HashCountedSet API tests to TestWTFLibrary target
wilander@apple.com [Fri, 12 Aug 2016 23:08:40 +0000 (23:08 +0000)]
Add HashCountedSet API tests to TestWTFLibrary target
https://bugs.webkit.org/show_bug.cgi?id=160815

Reviewed by Alex Christensen.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
    Added HashCountedSet.cpp and sorted the file reference section
    according to UNIX sort.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204430 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRename DocumentLoadTiming and ResourceLoadTiming
commit-queue@webkit.org [Fri, 12 Aug 2016 22:53:27 +0000 (22:53 +0000)]
Rename DocumentLoadTiming and ResourceLoadTiming
https://bugs.webkit.org/show_bug.cgi?id=160821

Patch by Johan K. Jensen <johan_jensen@apple.com> on 2016-08-12
Reviewed by Alex Christensen.

Source/WebCore:

Renames ResourceLoadTiming to NetworkLoadTiming.
Renames DocumentLoadTiming to LoadTiming as well as
navigationStart() to startTime(), so it's generic for
both the main resource and subresources.

* CMakeLists.txt:
* Modules/gamepad/NavigatorGamepad.cpp:
(WebCore::NavigatorGamepad::from):
* PlatformMac.cmake:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorNetworkAgent.cpp:
(WebCore::buildObjectForTiming):
(WebCore::buildObjectForResourceResponse):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startLoadingMainResource):
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::timing):
(WebCore::DocumentLoader::resetTiming):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchUnloadEvents):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
* loader/LoadTiming.cpp: Renamed from Source/WebCore/loader/DocumentLoadTiming.cpp.
(WebCore::LoadTiming::LoadTiming):
(WebCore::LoadTiming::monotonicTimeToZeroBasedDocumentTime):
(WebCore::LoadTiming::monotonicTimeToPseudoWallTime):
(WebCore::LoadTiming::markStartTime):
(WebCore::LoadTiming::addRedirect):
* loader/LoadTiming.h: Renamed from Source/WebCore/loader/DocumentLoadTiming.h.
(WebCore::LoadTiming::markUnloadEventStart):
(WebCore::LoadTiming::markUnloadEventEnd):
(WebCore::LoadTiming::markRedirectStart):
(WebCore::LoadTiming::markRedirectEnd):
(WebCore::LoadTiming::markFetchStart):
(WebCore::LoadTiming::setResponseEnd):
(WebCore::LoadTiming::markLoadEventStart):
(WebCore::LoadTiming::markLoadEventEnd):
(WebCore::LoadTiming::setHasSameOriginAsPreviousDocument):
(WebCore::LoadTiming::startTime):
(WebCore::LoadTiming::unloadEventStart):
(WebCore::LoadTiming::unloadEventEnd):
(WebCore::LoadTiming::redirectStart):
(WebCore::LoadTiming::redirectEnd):
(WebCore::LoadTiming::redirectCount):
(WebCore::LoadTiming::fetchStart):
(WebCore::LoadTiming::responseEnd):
(WebCore::LoadTiming::loadEventStart):
(WebCore::LoadTiming::loadEventEnd):
(WebCore::LoadTiming::hasCrossOriginRedirect):
(WebCore::LoadTiming::hasSameOriginAsPreviousDocument):
(WebCore::LoadTiming::referenceMonotonicTime):
(WebCore::LoadTiming::referenceWallTime):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::dispatchLoadEvent):
* page/PerformanceNavigation.cpp:
(WebCore::PerformanceNavigation::redirectCount):
* page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::resourceTimeToDocumentMilliseconds):
* page/PerformanceResourceTiming.h:
* page/PerformanceTiming.cpp:
(WebCore::PerformanceTiming::navigationStart):
(WebCore::PerformanceTiming::unloadEventStart):
(WebCore::PerformanceTiming::unloadEventEnd):
(WebCore::PerformanceTiming::redirectStart):
(WebCore::PerformanceTiming::redirectEnd):
(WebCore::PerformanceTiming::fetchStart):
(WebCore::PerformanceTiming::domainLookupStart):
(WebCore::PerformanceTiming::domainLookupEnd):
(WebCore::PerformanceTiming::connectStart):
(WebCore::PerformanceTiming::connectEnd):
(WebCore::PerformanceTiming::secureConnectionStart):
(WebCore::PerformanceTiming::requestStart):
(WebCore::PerformanceTiming::responseStart):
(WebCore::PerformanceTiming::responseEnd):
(WebCore::PerformanceTiming::loadEventStart):
(WebCore::PerformanceTiming::loadEventEnd):
(WebCore::PerformanceTiming::loadTiming):
(WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
* page/PerformanceTiming.h:
* platform/network/NetworkLoadTiming.h: Renamed from Source/WebCore/platform/network/ResourceLoadTiming.h.
(WebCore::NetworkLoadTiming::NetworkLoadTiming):
(WebCore::NetworkLoadTiming::operator=):
(WebCore::NetworkLoadTiming::isolatedCopy):
(WebCore::NetworkLoadTiming::operator==):
(WebCore::NetworkLoadTiming::operator!=):
(WebCore::NetworkLoadTiming::encode):
(WebCore::NetworkLoadTiming::decode):
* platform/network/ResourceHandle.h:
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::crossThreadData):
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::compare):
* platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::networkLoadTiming):
(WebCore::ResourceResponseBase::encode):
(WebCore::ResourceResponseBase::decode):
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
* platform/network/cocoa/NetworkLoadTiming.mm: Renamed from Source/WebCore/platform/network/cocoa/ResourceLoadTiming.mm.
(WebCore::timingValue):
(WebCore::copyTimingData):
(WebCore::setCollectsTimingData):
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::calculateWebTimingInformations):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::getConnectionTimingData):
* platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::sendRequestCallback):
(WebCore::ResourceHandle::didStartRequest):
(WebCore::networkEventCallback):

Source/WebKit2:

Rename ResourceLoadTiming to NetworkLoadTiming.

* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204429 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Command-Shift-O causes infinite loop if web page has frames
nvasilyev@apple.com [Fri, 12 Aug 2016 22:32:55 +0000 (22:32 +0000)]
Web Inspector: Command-Shift-O causes infinite loop if web page has frames
https://bugs.webkit.org/show_bug.cgi?id=160810

Reviewed by Joseph Pecoraro.

* UserInterface/Views/OpenResourceDialog.js:
(WebInspector.OpenResourceDialog.prototype._addResourcesForFrame):
"frame" doesn't change inside the loop.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204428 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove unused includes of RefCountedLeakCounter.h
commit-queue@webkit.org [Fri, 12 Aug 2016 21:46:30 +0000 (21:46 +0000)]
Remove unused includes of RefCountedLeakCounter.h
https://bugs.webkit.org/show_bug.cgi?id=160817

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-08-12
Reviewed by Mark Lam.

Source/JavaScriptCore:

* parser/Nodes.cpp:
* runtime/Structure.cpp:

Source/WebCore:

* bindings/js/JSEventListener.cpp:
* rendering/RenderBlockLineLayout.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204424 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd mac-wk1 baseline for js/dom/global-constructors-attributes.html after r204396.
ryanhaddad@apple.com [Fri, 12 Aug 2016 21:38:59 +0000 (21:38 +0000)]
Add mac-wk1 baseline for js/dom/global-constructors-attributes.html after r204396.

Unreviewed test gardening.

* platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204423 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoASSERTION FAILED: : line >= firstLine in BytecodeGenerator::emitExpressionInfo.
bfulgham@apple.com [Fri, 12 Aug 2016 21:38:26 +0000 (21:38 +0000)]
ASSERTION FAILED: : line >= firstLine in BytecodeGenerator::emitExpressionInfo.
https://bugs.webkit.org/show_bug.cgi?id=160535
<rdar://problem/27328151>
Source/JavaScriptCore:

Patch by Pranjal Jumde <pjumde@apple.com> on 2016-08-12
Reviewed by Saam Barati.

lineNumber from the savePoint was not being restored before calling next() causing discrepancy in the offset and line for the token

* parser/Parser.h:
(JSC::Parser::restoreLexerState):

LayoutTests:

Patch by Pranjal Jumde <pjumde@apple.com> on 2016-08-12
Reviewed by Saam Barati.

lineNumber from the savePoint was not being restored before calling next() causing discrepancy in the offset and line for the token

* js/multiline-function-crash-expected.txt: Added.
* js/multiline-function-crash.html: Added.
* js/script-tests/multiline-function-crash.js: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204422 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agorun-benchmark should run JetStream 1.1 instead of 1.0.1
rniwa@webkit.org [Fri, 12 Aug 2016 21:24:40 +0000 (21:24 +0000)]
run-benchmark should run JetStream 1.1 instead of 1.0.1
https://bugs.webkit.org/show_bug.cgi?id=160816

Reviewed by Filip Pizlo.

Use the latest JetStream 1.1 in run-benchmark.

* Scripts/webkitpy/benchmark_runner/benchmark_builder.py:
(BenchmarkBuilder.__exit__):
* Scripts/webkitpy/benchmark_runner/data/patches/JetStream.patch: Updated to apply against 1.1 directory.
* Scripts/webkitpy/benchmark_runner/data/plans/jetstream.plan: Updated to use r190897, which is the last
change to JetStream directory.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204421 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoUnreviewed, rolling out r204416.
ryanhaddad@apple.com [Fri, 12 Aug 2016 21:09:48 +0000 (21:09 +0000)]
Unreviewed, rolling out r204416.

This test fails with a debug assertion

Reverted changeset:

"ASSERTION FAILED: : line >= firstLine in
BytecodeGenerator::emitExpressionInfo."
https://bugs.webkit.org/show_bug.cgi?id=160535
http://trac.webkit.org/changeset/204416

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204420 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[ES2016] Implement Object.entries
gskachkov@gmail.com [Fri, 12 Aug 2016 20:46:24 +0000 (20:46 +0000)]
[ES2016] Implement Object.entries
https://bugs.webkit.org/show_bug.cgi?id=160412

Reviewed by Saam Barati.

This patch adds entries function to Object that returns list of
key+values pairs. Patch did according to the point of
spec https://tc39.github.io/ecma262/#sec-object.entries

Source/JavaScriptCore:

* builtins/ObjectConstructor.js:
(globalPrivate.enumerableOwnProperties):
(entries):
* runtime/ObjectConstructor.cpp:

JSTests:

* stress/object-entries.js:
(compare):
(string_appeared_here.forEach):
(const.getInvokedFunctions.):
(const.getInvokedFunctions):
(Array.prototype.push):
* stress/object-values.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204419 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoWeb Inspector: Support for :lineNumber syntax in Open Resource Dialog
commit-queue@webkit.org [Fri, 12 Aug 2016 20:34:43 +0000 (20:34 +0000)]
Web Inspector: Support for :lineNumber syntax in Open Resource Dialog
https://bugs.webkit.org/show_bug.cgi?id=159732
<rdar://problem/27684491>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2016-08-12
Reviewed by Matt Baker.

Allow the Open Resource Dialog to support line/column syntax.
Other tools allow "<name>:<line>:<column>" syntax, where the
location data at the end is optional. If the <name> portion
is missing, the location can be used for the active content
view, assuming it has text data and has lines.

* UserInterface/Base/Main.js:
(WebInspector.focusedOrVisibleContentView):
Expose a function to access the current focused / visible content view.

(WebInspector.dialogWasDismissed):
Include passing on cookie data when showing a represented object.

* UserInterface/Views/Dialog.js:
(WebInspector.Dialog):
(WebInspector.Dialog.prototype.get visible):
(WebInspector.Dialog.prototype.get delegate):
(WebInspector.Dialog.prototype.get representedObject):
(WebInspector.Dialog.prototype.get cookie):
(WebInspector.Dialog.prototype.dismiss):
* UserInterface/Models/ResourceQueryResult.js:
(WebInspector.ResourceQueryResult):
(WebInspector.ResourceQueryResult.prototype.get cookie):
Include cookie data along with the represented object in matches
and dialog results.

* UserInterface/Controllers/ResourceQueryController.js:
(WebInspector.ResourceQueryController.prototype.executeQuery):
Cut off location data from a query, and stash it on the query result.
A query can be "<name>:<line>:<column>", and the line/column data
becomes cookie data for the resource.

* UserInterface/Views/OpenResourceDialog.js:
(WebInspector.OpenResourceDialog.prototype._populateResourceTreeOutline):
If the query is just ":<line>:<column>" have it jump to a location
in the current content view if applicable.

(WebInspector.OpenResourceDialog.prototype._handleKeydownEvent):
(WebInspector.OpenResourceDialog.prototype._treeSelectionDidChange):
When dismissing, include cookie data.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204418 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoInitial URLParser implementation
achristensen@apple.com [Fri, 12 Aug 2016 20:03:49 +0000 (20:03 +0000)]
Initial URLParser implementation
https://bugs.webkit.org/show_bug.cgi?id=160811

Reviewed by Brady Eidson.

Source/WebCore:

There are a lot of missing parts, but it works in one case, so I test that one case.

* platform/URLParser.cpp:
(WebCore::isC0Control):
(WebCore::isC0ControlOrSpace):
(WebCore::isTabOrNewline):
(WebCore::isASCIIDigit):
(WebCore::isASCIIAlpha):
(WebCore::isASCIIAlphanumeric):
(WebCore::isSpecialScheme):
(WebCore::URLParser::parse):

Tools:

* TestWebKitAPI/Tests/WebCore/URLParser.cpp:
(TestWebKitAPI::eq):
(TestWebKitAPI::checkURL):
(TestWebKitAPI::TEST_F):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204417 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoASSERTION FAILED: : line >= firstLine in BytecodeGenerator::emitExpressionInfo.
bfulgham@apple.com [Fri, 12 Aug 2016 18:53:51 +0000 (18:53 +0000)]
ASSERTION FAILED: : line >= firstLine in BytecodeGenerator::emitExpressionInfo.
https://bugs.webkit.org/show_bug.cgi?id=160535
<rdar://problem/27328151>

Patch by Pranjal Jumde <pjumde@apple.com> on 2016-08-12
Reviewed by Saam Barati.

lineNumber from the savePoint was not being restored before calling next() causing discrepancy in the offset and line for the token

* js/multiline-function-crash-expected.txt: Added.
* js/multiline-function-crash.html: Added.
* js/script-tests/multiline-function-crash.js: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204416 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoAdd test for fixed nullptr deref error
bfulgham@apple.com [Fri, 12 Aug 2016 18:51:16 +0000 (18:51 +0000)]
Add test for fixed nullptr deref error
https://bugs.webkit.org/show_bug.cgi?id=160807
<rdar://problem/15576693>

Unreviewed test gardening.

* mathml/row-clone-crash-expected.txt: Added.
* mathml/row-clone-crash.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@204415 268f45cc-cd09-0410-ab3c-d52691b4dbfc