WebKit-https.git
2 years agoUnreviewed, rolling out r223271.
ryanhaddad@apple.com [Mon, 16 Oct 2017 16:12:18 +0000 (16:12 +0000)]
Unreviewed, rolling out r223271.

This change introduced LayoutTest failures on WK1.

Reverted changeset:

"Use asynchronous ResourceHandleClient calls for WebKit1"
https://bugs.webkit.org/show_bug.cgi?id=160677
https://trac.webkit.org/changeset/223271

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

2 years agoMark animations/play-state-in-shorthand.html as flaky on Windows.
pvollan@apple.com [Mon, 16 Oct 2017 15:23:12 +0000 (15:23 +0000)]
Mark animations/play-state-in-shorthand.html as flaky on Windows.
https://bugs.webkit.org/show_bug.cgi?id=178341

Unreviewed test gardening.

* platform/win/TestExpectations:

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

2 years agoMake RealtimeIncomingVideoSources and RealtimeOutgoingVideoSources port agnostic
commit-queue@webkit.org [Mon, 16 Oct 2017 14:44:52 +0000 (14:44 +0000)]
Make RealtimeIncomingVideoSources and RealtimeOutgoingVideoSources port agnostic
https://bugs.webkit.org/show_bug.cgi?id=177869

Patch by Alejandro G. Castro <alex@igalia.com> on 2017-10-16
Reviewed by Youenn Fablet.

Refactor the RealtimeIncomingVideoSource and RealtimeOutgoingVideoSource classes,
move the cocoa specific code to a different class. This way we can use them from
other ports.

No new functionality, just a refactor.

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* platform/mediastream/RealtimeIncomingVideoSource.cpp: Moved from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h. Just the port agnostic parts.
* platform/mediastream/RealtimeIncomingVideoSource.h: Moved from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h. DItto
* platform/mediastream/RealtimeOutgoingVideoSource.cpp: Moved from Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp. Ditto
* platform/mediastream/RealtimeOutgoingVideoSource.h: Moved from Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.h. Ditto
* platform/mediastream/mac/RealtimeIncomingVideoSourceMac.cpp: Added, it adds the Cocoa specific parts from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.cpp.
(WebCore::RealtimeIncomingVideoSource::create): Moved this function from the base class, it allows avoiding the include.
* platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h: Added, cocoa dependent code from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSource.h.
(WebCore::RealtimeOutgoingVideoSource::create): Moved this funtion from the base class, now we can use the Cocoa create without including it in the base class.
* platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp: Added, cocoa dependent code.
* platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h: Added, cocoa dependent code.

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

2 years agoDon't use intrinsic width if our container's width is zero
rego@igalia.com [Mon, 16 Oct 2017 12:10:47 +0000 (12:10 +0000)]
Don't use intrinsic width if our container's width is zero
https://bugs.webkit.org/show_bug.cgi?id=178073

Reviewed by Sergio Villar Senin.

Source/WebCore:

Based on Blink r173212 by <robhogan@gmail.com>.
https://chromium.googlesource.com/chromium/src/+/1592e8a1e8e56dfa6e5d709c50b129ae659c2fad

Since at least r798 we use a replaced element's intrinsic width
if its containing block has a width of zero. As a result our rendering
of width100percent-image.html has disagreed with all other browsers
and we display replaced elements when they should be invisible.

Test: fast/replaced/container-width-zero.html

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computeReplacedLogicalWidthUsing const):
If our container has zero width then let our width be zero too.

LayoutTests:

New rebaseline for width100percent-image.html test.

* fast/replaced/container-width-zero-expected.txt: Added.
* fast/replaced/container-width-zero.html: Added.
* platform/ios/fast/replaced/width100percent-image-expected.txt:
* platform/gtk/fast/replaced/width100percent-image-expected.png:
* platform/gtk/fast/replaced/width100percent-image-expected.txt:
* platform/mac/fast/replaced/width100percent-image-expected.png:
* platform/mac/fast/replaced/width100percent-image-expected.txt:
* platform/win/TestExpectations: Skips test as it needs a rebaseline.

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

2 years agoAdd Emilio Cobos Álvarez to the contributors list.
antti@apple.com [Mon, 16 Oct 2017 10:29:06 +0000 (10:29 +0000)]
Add Emilio Cobos Álvarez to the contributors list.
https://bugs.webkit.org/show_bug.cgi?id=178334

Patch by Emilio Cobos Álvarez <emilio@crisal.io> on 2017-10-16
Reviewed by Antti Koivisto.

* Scripts/webkitpy/common/config/contributors.json:

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

2 years agoImprove --help documentation and add --list-plans to show available benchmarks.
mjs@apple.com [Mon, 16 Oct 2017 08:16:29 +0000 (08:16 +0000)]
Improve --help documentation and add --list-plans to show available benchmarks.
https://bugs.webkit.org/show_bug.cgi?id=178059

Reviewed by Ryosuke Niwa.

* Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
(BenchmarkRunner.available_plans): New function that returns the list of available plans.
(BenchmarkRunner.plan_directory): New method to centralize knowledge of where the plan files live.
(BenchmarkRunner._find_plan_file): Updated to use BenchmarkRunner.plan_directory

* Scripts/webkitpy/benchmark_runner/run_benchmark.py:

(parse_args): Help cleanup: Reordered options to put more common
ones at the top. Fixed wording. Added help for each
option. Explained default for each option that has one.

New option: --list-plans which tells you the available benchmarks.

Code cleanup: Removed use of dest where redundant, made variable
names conforming to Python coding style.

(run_benchmark_plan): Adapted for new variable names.
(list_benchmark_plans): New helper for --list-plans option.
(start): Account for --list-plans. Also use
BechmarkRunner.available_plans and use
BenchmarkRunner.plan_directory instead of duplicating
code/knowledge here.

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

2 years agoOn ToT, event.dataTransfer.getData("text/uri-list") returns an empty string when...
wenson_hsieh@apple.com [Mon, 16 Oct 2017 07:59:39 +0000 (07:59 +0000)]
On ToT, event.dataTransfer.getData("text/uri-list") returns an empty string when dragging an image
https://bugs.webkit.org/show_bug.cgi?id=178301
<rdar://problem/34990050>

Reviewed by Darin Adler.

Source/WebCore:

After r222656, we consider images on the pasteboard to be files. This causes DataTransfer.getData to return the
empty string for all types, which brings back https://bugs.webkit.org/show_bug.cgi?id=170637. To allow pages to
access the URL part of a dragged image, we exempt "text/uri-list" from our heurstics to hide pasteboard data
which may contain files, and return the URL as long as its protocol is either HTTP or HTTPS.

Tweaked an existing layout test to cover this scenario, as well as the scenario in which the dragged image links
to a file URL (in which case we should avoid exposing the data).

Test: editing/pasteboard/drag-drop-href-as-url.html
      DataInteractionTests.DataTransferGetDataWhenDroppingImageWithHTTPURL

* dom/DataTransfer.cpp:
(WebCore::DataTransfer::getDataForItem const):

When the pasteboard contains files, allow data for "text/uri-list" to be returned, as long as the URL string has
a white-listed protocol (currently, this is just http and https).

(WebCore::DataTransfer::shouldSuppressGetAndSetDataToAvoidExposingFilePaths const):
(WebCore::DataTransfer::setData):
(WebCore::DataTransfer::types const):

When the pasteboard contains files, allow "text/uri-list" to be added, alongside the "Files" type, if it would
have been exposed in the list of safe DOM types.

* dom/DataTransfer.h:
* platform/Pasteboard.cpp:
(WebCore::Pasteboard::canExposeURLToDOMWhenPasteboardContainsFiles):

Add a new helper method to determine whether it is safe to expose an URL string as "text/uri-list" to bindings,
if the pasteboard contains files. While this currently checks whether or not the URL is in the HTTP family, we
may want to consider tweaking this to blacklist the "file" protocol instead, and allow all other valid URLs by
default.

* platform/Pasteboard.h:
* platform/PlatformPasteboard.h:
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::pasteboardMayContainFilePaths):
(WebCore::PlatformPasteboard::stringForType const):

Mark stringForType as const, and also teach stringForType to return the null string for the platform URL type if
the pasteboard might contain file paths.

(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):

Before coercing a platform type to "text/uri-list" when building the list of DOM-safe types, check that the
stringForType is not the empty string, in which case we don't expose the type to the DOM at all. This ensures
that in cases where the URL might reveal a file path, we don't advertise "text/uri-list" as a type. We adopt a
similar strategy on iOS.

(WebCore::PlatformPasteboard::stringForType): Deleted.
* platform/mac/PlatformPasteboardMac.mm:
(WebCore::pasteboardMayContainFilePaths):
(WebCore::PlatformPasteboard::stringForType const):
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
(WebCore::PlatformPasteboard::stringForType): Deleted.

Tools:

Fixes issues in DumpRenderTree's LocalPasteboard to ensure that drag-drop-href-as-url.html exposes files, and
also adds a new iOS drag and drop API test.

* DumpRenderTree/mac/DumpRenderTreePasteboard.mm:
(-[LocalPasteboard addTypes:owner:]):
(-[LocalPasteboard setData:forType:]):

Fixes LocalPasteboard's implementation of changeCount to incremement when the pasteboard owner changes, rather
than every time data is changed. This is consistent with NSPasteboard behavior.

* TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):

Adds a new API test to verify that an image and HTTP URL written by the platform is correctly web exposed.

LayoutTests:

Fixes an existing test to account for asynchronous image decoding, and also rebaselines results to expect that
only the URL can be read, and not text.

* TestExpectations:
* editing/pasteboard/data-transfer-item-list-add-file-multiple-times-expected.txt:
* editing/pasteboard/drag-drop-href-as-text-data-expected.txt: Removed.
* editing/pasteboard/drag-drop-href-as-text-data.html: Removed.
* editing/pasteboard/drag-drop-href-as-url-expected.txt: Added.
* editing/pasteboard/drag-drop-href-as-url.html: Added.

Tweaks an existing drag and drop test to verify that an URL can be read back when dragging an image, but not
when if the URL is a file URL.

* editing/pasteboard/files-during-page-drags-expected.txt:
* editing/pasteboard/files-during-page-drags.html:

Fixes this test by decoding the dragged image element before starting the drag and drop simulation.

* platform/mac-wk1/TestExpectations:

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

2 years agoUse auto/nullptr in scrolling code
fred.wang@free.fr [Mon, 16 Oct 2017 07:58:15 +0000 (07:58 +0000)]
Use auto/nullptr in scrolling code
https://bugs.webkit.org/show_bug.cgi?id=178306

Patch by Frederic Wang <fwang@igalia.com> on 2017-10-16
Reviewed by Carlos Garcia Campos.

This patch modifies the scrolling code to use the auto keyword when
possible. It also replaces '0' with 'nullptr' for the return value of
ScrollingStateTree::stateNodeForID.

No new tests, behavior unchanged.

* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::frameViewForScrollingNode const):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
(WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateNodeLayer):
(WebCore::AsyncScrollingCoordinator::updateNodeViewportConstraints):
(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
(WebCore::AsyncScrollingCoordinator::updateScrollLayerPosition):
(WebCore::AsyncScrollingCoordinator::setActiveScrollSnapIndices):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView const):
(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame const):
(WebCore::ScrollingCoordinator::scrollLayerForFrameView):
(WebCore::ScrollingCoordinator::headerLayerForFrameView):
(WebCore::ScrollingCoordinator::footerLayerForFrameView):
(WebCore::ScrollingCoordinator::counterScrollingLayerForFrameView):
(WebCore::ScrollingCoordinator::insetClipLayerForFrameView):
(WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
(WebCore::ScrollingCoordinator::rootContentLayerForFrameView):
(WebCore::ScrollingCoordinator::handleWheelEventPhase):
(WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects const):
(WebCore::ScrollingCoordinator::updateSynchronousScrollingReasonsForAllFrames):
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText const):
* page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::reconcileLayerPositionForViewportRect):
* page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::reconcileLayerPositionForViewportRect):
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::nodeTypeAndParentMatch const):
(WebCore::ScrollingStateTree::attachNode):
(WebCore::ScrollingStateTree::detachNode):
(WebCore::ScrollingStateTree::removeNodeAndAllDescendants):
(WebCore::ScrollingStateTree::stateNodeForID const):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
(WebCore::ScrollingTree::commitTreeState):
(WebCore::ScrollingTree::updateTreeFromStateNode):
* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::enclosingFrameNode const):
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
(WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateNodeLayer):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateNodeViewportConstraints):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):

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

2 years agoA lot of "Can't stat WebCore/animation: No such file or directory" since r223328
commit-queue@webkit.org [Mon, 16 Oct 2017 07:48:05 +0000 (07:48 +0000)]
A lot of "Can't stat WebCore/animation: No such file or directory" since r223328
https://bugs.webkit.org/show_bug.cgi?id=178326

Unreviewed build fix

The directory WebCore/animation was removed in r223328.

No new tests because there is no behavior change.

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2017-10-16

* CMakeLists.txt: Removed animation from
WebCore_INCLUDE_DIRECTORIES and WebCore_IDL_INCLUDES.
* DerivedSources.make: Removed animation from VPATH and IDL_INCLUDES

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

2 years agoReplace some ScrollingTreeNode::nodeType() calls with is*Node()
fred.wang@free.fr [Mon, 16 Oct 2017 07:04:48 +0000 (07:04 +0000)]
Replace some ScrollingTreeNode::nodeType() calls with is*Node()
https://bugs.webkit.org/show_bug.cgi?id=178259

Patch by Frederic Wang <fwang@igalia.com> on 2017-10-16
Reviewed by Darin Adler.

No new tests, behavior unchanged.

* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewForScrollingNode const):
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::isScrollingNode const):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):
* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::enclosingFrameNode const):
* page/scrolling/ScrollingTreeNode.h:
(WebCore::ScrollingTreeNode::isScrollingNode const):

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

2 years agoWeb Inspector: Modify CSS number values with up key and down key
nvasilyev@apple.com [Mon, 16 Oct 2017 06:25:54 +0000 (06:25 +0000)]
Web Inspector: Modify CSS number values with up key and down key
https://bugs.webkit.org/show_bug.cgi?id=170779
<rdar://problem/33170633>

Reviewed by Matt Baker.

Source/WebInspectorUI:

Up key increments a number, Down key decrements it.

Holding modifier keys changes the step value:
- Option modifies the value by 0.1
- Shift modifies the value by 10
- Command modifies the value by 100

* UserInterface/Test.html:
* UserInterface/Views/EditingSupport.js:
(WI.incrementElementValue):
Abstract away incrementElementValue into a public method.

* UserInterface/Views/SpreadsheetTextField.js:
(WI.SpreadsheetTextField.prototype._handleKeyDown):

LayoutTests:

Add tests for WI.incrementElementValue defined in WebInspectorUI/UserInterface/Views/EditingSupport.js.

* inspector/unit-tests/editing-support-expected.txt: Added.
* inspector/unit-tests/editing-support.html: Added.

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

2 years agoWeb Inspector: show warning when recorded Canvas action caused no visual change
webkit@devinrousso.com [Mon, 16 Oct 2017 04:46:21 +0000 (04:46 +0000)]
Web Inspector: show warning when recorded Canvas action caused no visual change
https://bugs.webkit.org/show_bug.cgi?id=175282

Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js:

* UserInterface/Models/RecordingAction.js:
(WI.RecordingAction):
(WI.RecordingAction.prototype.get valid):
(WI.RecordingAction.prototype.get hasVisibleEffect):
(WI.RecordingAction.prototype.markInvalid):
(WI.RecordingAction.prototype.apply):
(WI.RecordingAction.prototype.async._swizzle):
If the selected action is visual, save a copy of the preview canvas' dataURL before
applying the action and compare it to its dataURL after. If there is no difference, the
action had no visual effect.

* UserInterface/Models/Recording.js:
(WI.Recording):

* UserInterface/Views/RecordingActionTreeElement.js:
(WI.RecordingActionTreeElement):
(WI.RecordingActionTreeElement.prototype._handleValidityChanged):
(WI.RecordingActionTreeElement.prototype._handleHasVisibleEffectChanged):
* UserInterface/Views/RecordingActionTreeElement.css:
(.item.action.visual.no-visible-effect:not(.invalid) > .status > .warning):

* UserInterface/Views/RecordingContentView.js:
(WI.RecordingContentView):
(WI.RecordingContentView.prototype.async._generateContentCanvas2D):
(WI.RecordingContentView.prototype._applyAction): Deleted.

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

2 years agoDataTransfer.cpp triggers -Wunused-but-set-variable
tpopela@redhat.com [Mon, 16 Oct 2017 04:16:56 +0000 (04:16 +0000)]
DataTransfer.cpp triggers -Wunused-but-set-variable
https://bugs.webkit.org/show_bug.cgi?id=178209

Reviewed by Wenson Hsieh.

Use the ASSERT_UNUSED to silence it.

* dom/DataTransfer.cpp:
(WebCore::DataTransfer::filesFromPasteboardAndItemList const):

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

2 years agoWeb Inspector: [PARITY] Styles Redesign: clicking on the go-to arrow in Computed...
nvasilyev@apple.com [Mon, 16 Oct 2017 03:42:06 +0000 (03:42 +0000)]
Web Inspector: [PARITY] Styles Redesign: clicking on the go-to arrow in Computed tab should work
https://bugs.webkit.org/show_bug.cgi?id=178286
<rdar://problem/34986379>

Reviewed by Joseph Pecoraro.

Highlight the matching property using a yellow background and focus on the property value
if the property is editable (e.g., not a User Agent style).

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
(.spreadsheet-style-declaration-editor):
(.spreadsheet-style-declaration-editor .property):
Move left padding to the property element so there's no awkward gap on the left side
when the property is highlighted.

(.spreadsheet-style-declaration-editor .property.highlighted):
(@keyframes style-property-highlight):
Use the same animation duration as we used in `.text-editor > .CodeMirror .highlighted`.
The highlight color was changed from light blue to yellow.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.highlightProperty):
Use the same logic as in WI.CSSStyleDeclarationTextEditor.prototype.highlightProperty
to find matching style property to highlight.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.highlightProperty):
Use the same logic as in WI.CSSStyleDeclarationSection.prototype.highlightProperty.

* UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.scrollToSectionAndHighlightProperty):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
Copied from WI.RulesStyleDetailsPanel.

* UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty):
(WI.SpreadsheetStyleProperty.prototype.detached):
(WI.SpreadsheetStyleProperty.prototype.highlight):

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

2 years ago[Settings] Split non-macro generated parts of Settings into SettingsBase base class
commit-queue@webkit.org [Mon, 16 Oct 2017 02:59:07 +0000 (02:59 +0000)]
[Settings] Split non-macro generated parts of Settings into SettingsBase base class
https://bugs.webkit.org/show_bug.cgi?id=178321

Patch by Sam Weinig <sam@webkit.org> on 2017-10-15
Reviewed by Darin Adler.

Working towards getting generated Settings working again, but in smaller patches, split
non-generated part off into SettingsBase as a first step.

One function, effectiveFrameFlattening(), needs to remain in Settings for now, as it directly
references a macro generated function, frameFlattening().

* CMakeLists.txt:
* WebCore.xcodeproj/project.pbxproj:
* page/Page.h:
* page/Settings.cpp:
* page/Settings.h:
* page/SettingsBase.h: Copied from Source/WebCore/page/Settings.h.
* page/cocoa/SettingsBaseCocoa.mm: Copied from Source/WebCore/page/cocoa/SettingsCocoa.mm.
* page/cocoa/SettingsCocoa.mm: Removed.

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

2 years ago[JSC] Perform module specifier validation at parsing time
utatane.tea@gmail.com [Mon, 16 Oct 2017 01:55:16 +0000 (01:55 +0000)]
[JSC] Perform module specifier validation at parsing time
https://bugs.webkit.org/show_bug.cgi?id=178256

Reviewed by Darin Adler.

Source/JavaScriptCore:

This patch make module loader's `resolve` operation synchronous. And we validate
module's requested module names when instantiating the module instead of satisfying
module's dependencies. This change is not observable to users. But this is precise
to the spec and this optimizes & simplifies the current module loader a bit by
reducing object allocations.

Previously, we have an object called pair in the module loader. This is pair of
module's name and module's record. And we use it to link one module to dependent
modules. Now, it is replaced with module's registry entry.

We also change our loader functions to take a registry entry instead of a module key.
Previous design is due to the consideration that these APIs may be exposed to users
in whatwg/loader spec. However, this won't happen. This change removes unnecessary
repeatedly hash map lookups.

* builtins/ModuleLoaderPrototype.js:
(globalPrivate.newRegistryEntry):
(requestFetch):
(requestInstantiate):
(requestSatisfy):
(link):
(moduleEvaluation):
(loadModule):
* jsc.cpp:
(GlobalObject::moduleLoaderResolve):
* runtime/AbstractModuleRecord.cpp:
(JSC::AbstractModuleRecord::finishCreation):
(JSC::AbstractModuleRecord::hostResolveImportedModule):
* runtime/JSGlobalObject.h:
* runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::resolveSync):
(JSC::JSModuleLoader::resolve):
* runtime/JSModuleLoader.h:
* runtime/ModuleLoaderPrototype.cpp:
(JSC::moduleLoaderPrototypeResolveSync):

Source/WebCore:

No behavior change in the current implementation.

* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::moduleLoaderResolve):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::resolve):
* bindings/js/ScriptModuleLoader.h:

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

2 years agoDOMTokenList shouldn't add empty attributes
cdumez@apple.com [Sun, 15 Oct 2017 21:58:42 +0000 (21:58 +0000)]
DOMTokenList shouldn't add empty attributes
https://bugs.webkit.org/show_bug.cgi?id=178280
<rdar://problem/34987431>

Reviewed by Ryosuke Niwa.

Follow-up to r223306, reverse the check conditions to avoid attribute
lookup when possible. Also use m_tokens instead of tokens() to avoid
unnecessary branch.

* html/DOMTokenList.cpp:
(WebCore::DOMTokenList::updateAssociatedAttributeFromTokens):

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

2 years agoUTF-8 decoding produces one replacement character per byte; Encoding standard require...
darin@apple.com [Sun, 15 Oct 2017 20:13:51 +0000 (20:13 +0000)]
UTF-8 decoding produces one replacement character per byte; Encoding standard requires one replacement character per illegal sequence instead
https://bugs.webkit.org/show_bug.cgi?id=178207

Reviewed by Sam Weinig.

Source/WebCore:

* platform/text/TextCodecUTF8.cpp:
(WebCore::TextCodecUTF8::create): Deleted. Use a lambda instead.
(WebCore::TextCodecUTF8::registerCodecs): Use a lambda.
(WebCore::nonASCIISequenceLength): Changed to return 0 instead of 2 for the range 80-C1 since
none of those are valid sequence leading characters.
(WebCore::decodeNonASCIISequence): Changed the length argument to be in/out so the caller
knows how much of the sequence we decoded for failure cases. Simplified the length 2 section.
(WebCore::TextCodecUTF8::handleError): Deleted.
(WebCore::TextCodecUTF8::handlePartialSequence): Changed this into a pair of plain functions
rather than two template function specializations since the two functions are rather different.
For the one-byte version, got rid of the unused arguments. For the two-byte version, got rid
of the ignored return value, stopped using the handleError function since each error case
needs to be handled differently. In each error case consume the entire incorrect sequence
instead of just one byte.
(WebCore::TextCodecUTF8::decode): Updated for the above change, and changed the non-partial
incorrect sequence to consume the entire incorrect sequence instead of just one byte. Also
use WTF prefixes explicitly so we don't  have to do "using namespace".
(WebCore::TextCodecUTF8::encode): Got rid of unneeded type punning, and added some inline
capacity to save one memory allocation when encoding shorter strings.

* platform/text/TextCodecUTF8.h: Use pragma once. Intialize m_partialSequenceSize where it
is defined and let the compiler generate the constructor. Updated for the changes above.

* platform/text/TextEncoding.h: Export a constructor now used by a unit test.
* platform/text/TextEncodingRegistry.h: Export newTextCodec, now used by a unit test.

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Added test.
* TestWebKitAPI/Tests/WebCore/TextCodec.cpp: Added.
(TestWebKitAPI::decodeHexTestBytes): Decodes a string so we can write readable tests.
(TestWebKitAPI::escapeNonPrintableASCIICharacters): Encodes a string so we can write readable tests.
(TestWebKitAPI::TEST): Added some UTF-8 tests and UTF-8 invalid sequences tests.
Would be smart to add more tests for other cases, exercising the fast ASCII loop for example, and
other encodings.

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

2 years agoRemove all Web Animations code
commit-queue@webkit.org [Sun, 15 Oct 2017 01:45:26 +0000 (01:45 +0000)]
Remove all Web Animations code
https://bugs.webkit.org/show_bug.cgi?id=178273

Patch by Antoine Quint <graouts@apple.com> on 2017-10-14
Reviewed by Sam Weinig.

Source/WebCore:

We remove all existing code related to Web Animations which does not include any functionality,
only stubs. This leaves the build and runtime flags, we'll start a complete implementation from
scratch.

* CMakeLists.txt:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* animation/Animatable.idl: Removed.
* animation/AnimationEffect.cpp: Removed.
* animation/AnimationEffect.h: Removed.
* animation/AnimationEffect.idl: Removed.
* animation/AnimationTimeline.cpp: Removed.
* animation/AnimationTimeline.h: Removed.
* animation/AnimationTimeline.idl: Removed.
* animation/DocumentAnimation.cpp: Removed.
* animation/DocumentAnimation.h: Removed.
* animation/DocumentAnimation.idl: Removed.
* animation/DocumentTimeline.cpp: Removed.
* animation/DocumentTimeline.h: Removed.
* animation/DocumentTimeline.idl: Removed.
* animation/KeyframeEffect.cpp: Removed.
* animation/KeyframeEffect.h: Removed.
* animation/KeyframeEffect.idl: Removed.
* animation/WebAnimation.cpp: Removed.
* animation/WebAnimation.h: Removed.
* animation/WebAnimation.idl: Removed.
* bindings/js/JSAnimationTimelineCustom.cpp: Removed.
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/WebCoreBuiltinNames.h:
* dom/Element.cpp:
(WebCore::Element::getAnimations): Deleted.
* dom/Element.h:
* dom/Element.idl:

LayoutTests:

Remove the only existing Web Animations test.

* webanimations/Document-expected.txt: Removed.
* webanimations/Document.html: Removed.

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

2 years agoResync tests up to c1716b039411090428e7073158b1aea081dafe71
commit-queue@webkit.org [Sun, 15 Oct 2017 01:28:10 +0000 (01:28 +0000)]
Resync tests up to c1716b039411090428e7073158b1aea081dafe71
https://bugs.webkit.org/show_bug.cgi?id=178241

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-14
Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

* resources/TestRepositories:
* resources/resource-files.json:
* web-platform-tests/IndexedDB/idb-binary-key-detached.htm:
* web-platform-tests/IndexedDB/keypath-exceptions.htm:
* web-platform-tests/WebCryptoAPI/digest/digest.js:
(run_test.):
* web-platform-tests/XMLHttpRequest/abort-after-stop-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/abort-after-stop.htm: Removed.
* web-platform-tests/XMLHttpRequest/event-error-order.sub-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/event-error-order.sub.html: Removed.
* web-platform-tests/XMLHttpRequest/event-timeout-order-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/event-timeout-order.htm: Removed.
* web-platform-tests/XMLHttpRequest/open-url-worker-origin-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/open-url-worker-origin.htm: Removed.
* web-platform-tests/XMLHttpRequest/responsetype-expected.txt:
* web-platform-tests/XMLHttpRequest/send-after-setting-document-domain-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-after-setting-document-domain.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-not-enabled-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-not-enabled.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-cors.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-repeat-no-args-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-repeat-no-args.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-basic.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-competing-names-passwords-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-authentication-competing-names-passwords.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-entity-body-basic-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-entity-body-basic.htm: Removed.
* web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt: Removed.
* web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub.htm: Removed.
* web-platform-tests/XMLHttpRequest/timeout-sync-expected.txt:
* web-platform-tests/XMLHttpRequest/w3c-import.log:
* web-platform-tests/background-fetch/interfaces-expected.txt:
* web-platform-tests/background-fetch/interfaces.idl:
* web-platform-tests/background-fetch/interfaces.worker-expected.txt:
* web-platform-tests/background-fetch/interfaces.worker.js:
* web-platform-tests/beacon/headers/header-content-type-expected.txt:
* web-platform-tests/common/vendor-prefix.js: Removed.
* web-platform-tests/common/w3c-import.log:
* web-platform-tests/css/css-grid-1/abspos/w3c-import.log:
* web-platform-tests/css/css-grid-1/support/w3c-import.log:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-image-threshold-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-004.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-margin-005.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-box-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-004.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-005.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-006.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-007.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-008.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-009.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-010.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-circle-011.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-computed-shape-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-computed-shape-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-004.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-005.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-006.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-007.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-008.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-009.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-010.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-ellipse-011.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-004.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-005.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-006.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-007.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-008.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-inset-009.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-004.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-005.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-polygon-006.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-arguments-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-arguments-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-box-pair-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-inherit-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-initial-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-none-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/shape-outside-shape-notation-000.html:
* web-platform-tests/css/css-shapes-1/shape-outside/values/support/parsing-utils.js:
(convertToPx):
(each):
(setupFonts):
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-012.html:
* web-platform-tests/css/css-shapes-1/w3c-import.log:
* web-platform-tests/css/css-ui-3/cursor-image-005-nfs.html:
* web-platform-tests/css/selectors4/w3c-import.log:
* web-platform-tests/cssom/OWNERS:
* web-platform-tests/cssom/getComputedStyle-pseudo-expected.txt:
* web-platform-tests/cssom/getComputedStyle-pseudo.html:
* web-platform-tests/cssom/style-sheet-interfaces-001-expected.txt:
* web-platform-tests/cssom/style-sheet-interfaces-001.html:
* web-platform-tests/cssom/w3c-import.log:
* web-platform-tests/custom-elements/Document-createElement-expected.txt:
* web-platform-tests/custom-elements/Document-createElement.html:
* web-platform-tests/custom-elements/parser/parser-fallsback-to-unknown-element-expected.txt:
* web-platform-tests/custom-elements/w3c-import.log:
* web-platform-tests/dom/events/Event-timestamp-safe-resolution.html:
* web-platform-tests/dom/nodes/DOMImplementation-createDocument.html:
* web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument-expected.txt:
* web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument.html:
* web-platform-tests/dom/nodes/Document-constructor.html:
* web-platform-tests/dom/nodes/Element-matches-expected.txt:
* web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
* web-platform-tests/dom/nodes/selectors.js:
* web-platform-tests/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/eventsource/eventsource-constructor-non-same-origin-expected.txt:
* web-platform-tests/eventsource/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/eventsource/resources/last-event-id.py:
(main):
* web-platform-tests/eventsource/shared-worker/eventsource-constructor-non-same-origin-expected.txt:
* web-platform-tests/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/fetch/api/basic/integrity-expected.txt:
* web-platform-tests/fetch/api/basic/integrity-worker-expected.txt:
* web-platform-tests/fetch/api/basic/integrity.js:
(integrity):
* web-platform-tests/fetch/api/headers/headers-combine-expected.txt:
* web-platform-tests/fetch/api/headers/headers-combine.html:
* web-platform-tests/fetch/api/request/request-error-expected.txt:
* web-platform-tests/fetch/api/request/request-error.js:
* web-platform-tests/fetch/api/request/request-headers-expected.txt:
* web-platform-tests/fetch/api/request/request-headers.html:
* web-platform-tests/fetch/api/request/request-idl-expected.txt:
* web-platform-tests/fetch/api/request/request-idl.html:
* web-platform-tests/fetch/api/request/request-structure-expected.txt:
* web-platform-tests/fetch/api/request/request-structure.html:
* web-platform-tests/fetch/api/request/w3c-import.log:
* web-platform-tests/fetch/api/response/response-clone-expected.txt:
* web-platform-tests/fetch/api/response/response-init-001-expected.txt:
* web-platform-tests/fetch/api/response/response-init-001.html:
* web-platform-tests/fetch/api/response/w3c-import.log:
* web-platform-tests/fonts/Ahem.ttf:
* web-platform-tests/hr-time/idlharness-expected.txt:
* web-platform-tests/hr-time/idlharness.html:
* web-platform-tests/html/README.md:
* web-platform-tests/html/browsers/browsing-the-web/history-traversal/w3c-import.log:
* web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/w3c-import.log:
* web-platform-tests/html/browsers/origin/origin-of-data-document-expected.txt:
* web-platform-tests/html/dom/interfaces.html:
* web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/not-in-shadow-tree-expected.txt:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_canplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_canplay_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_canplaythrough.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_canplaythrough_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_loadeddata.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_loadeddata_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_loadedmetadata.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_loadedmetadata_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_order_canplay_canplaythrough.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_order_canplay_playing.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_order_loadedmetadata_loadeddata.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_order_loadstart_progress.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_pause.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_play.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_playing.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_progress.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_progress_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/historical-expected.txt:
* web-platform-tests/html/semantics/embedded-content/media-elements/historical.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/srclang-expected.txt:
* web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/language-expected.txt:
* web-platform-tests/html/semantics/embedded-content/media-elements/paused_false_during_play.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_canplay.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_canplaythrough.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_loadeddata.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_loadedmetadata.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/readyState_during_playing.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/video_008.htm:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.cross-expected.txt:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect-expected.txt:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/blank.htm:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/w3c-import.log:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/form-submission-0/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-button-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-fieldset-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-form-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
* web-platform-tests/html/semantics/forms/the-progress-element/progress-expected.txt:
* web-platform-tests/html/semantics/forms/the-progress-element/w3c-import.log:
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
* web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/w3c-import.log:
* web-platform-tests/html/syntax/serializing-html-fragments/serializing-expected.txt:
* web-platform-tests/html/syntax/serializing-html-fragments/serializing.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-parse-error-expected.txt:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-expected.txt:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-throw-expected.txt:
* web-platform-tests/lint.whitelist:
* web-platform-tests/mediacapture-fromelement/capture.html:
* web-platform-tests/mediacapture-fromelement/creation.html:
* web-platform-tests/mediacapture-fromelement/ended.html:
* web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https.sub.html:
* web-platform-tests/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html:
* web-platform-tests/resource-timing/idlharness-expected.txt:
* web-platform-tests/resource-timing/idlharness.html:
* web-platform-tests/resources/idlharness.js:
(IdlInterface.prototype.test_to_json_operation):
* web-platform-tests/resources/test/tests/api-tests-1.html:
* web-platform-tests/resources/test/tests/idlharness/IdlInterface/test_to_json_operation.html:
* web-platform-tests/resources/testharness.js:
* web-platform-tests/service-workers/service-worker/fetch-event-redirect.https.html:
* web-platform-tests/service-workers/service-worker/fetch-frame-resource.https.html:
* web-platform-tests/service-workers/service-worker/fetch-request-xhr.https.html:
* web-platform-tests/service-workers/service-worker/navigation-preload/resources/redirect-scope.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/bytecheck-worker-imported-script.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/bytecheck-worker.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/fetch-event-redirect-iframe.html: Removed.
* web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html:
* web-platform-tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope1.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope2.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/update-max-aged-worker-imported-script.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/update-max-aged-worker.py:
(main):
* web-platform-tests/service-workers/service-worker/resources/w3c-import.log:
* web-platform-tests/service-workers/service-worker/w3c-import.log:
* web-platform-tests/shadow-dom/Extensions-to-Event-Interface-expected.txt:
* web-platform-tests/shadow-dom/Extensions-to-Event-Interface.html:
* web-platform-tests/shadow-dom/event-inside-shadow-tree-expected.txt:
* web-platform-tests/shadow-dom/event-with-related-target.html:
* web-platform-tests/shadow-dom/leaktests/get-elements-expected.txt:
* web-platform-tests/shadow-dom/resources/event-path-test-helpers.js:
(dispatchEventWithEventLog):
* web-platform-tests/shadow-dom/slotchange-event-expected.txt:
* web-platform-tests/shadow-dom/w3c-import.log:
* web-platform-tests/streams/piping/general-expected.txt:
* web-platform-tests/streams/readable-byte-streams/general.js:
(promise_test):
* web-platform-tests/streams/readable-byte-streams/w3c-import.log:
* web-platform-tests/streams/readable-streams/pipe-through-expected.txt: Removed.
* web-platform-tests/tools/manifest/catalog/xhtml.dtd:
* web-platform-tests/tools/manifest/sourcefile.py:
(SourceFile.references):
(SourceFile.spec_links):
* web-platform-tests/tools/manifest/tests/test_sourcefile.py:
(test_relpath_normalized):
(test_reftest_url_whitespace):
(test_spec_links_whitespace):
* web-platform-tests/tools/wptserve/tests/functional/test_handlers.py:
(TestDirectoryHandler.test_subdirectory_no_trailing_slash):
* web-platform-tests/tools/wptserve/wptserve/handlers.py:
(DirectoryHandler.__call__):
* web-platform-tests/update-built-tests.sh:
* web-platform-tests/url/a-element-expected.txt:
* web-platform-tests/url/a-element-xhtml-expected.txt:
* web-platform-tests/url/url-constructor-expected.txt:
* web-platform-tests/url/urltestdata.json:
* web-platform-tests/webrtc/RTCCertificate.html:
* web-platform-tests/webrtc/RTCConfiguration-iceServers-expected.txt:
* web-platform-tests/webrtc/RTCDTMFSender-insertDTMF.html: Removed.
* web-platform-tests/webrtc/RTCDTMFSender-ontonechange-long.html: Removed.
* web-platform-tests/webrtc/RTCDTMFSender-ontonechange.html: Removed.
* web-platform-tests/webrtc/RTCPeerConnection-addTrack.html: Removed.
* web-platform-tests/webrtc/RTCPeerConnection-getStats.html: Removed.
* web-platform-tests/webrtc/RTCPeerConnection-ontrack.html: Removed.
* web-platform-tests/webrtc/RTCPeerConnection-removeTrack.html: Removed.
* web-platform-tests/webrtc/RTCRtpReceiver-getContributingSources.html: Removed.
* web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.html: Removed.
* web-platform-tests/webrtc/historical-expected.txt:
* web-platform-tests/webrtc/historical.html:
* web-platform-tests/webrtc/simplecall-expected.txt:
* web-platform-tests/webrtc/simplecall.html:
* web-platform-tests/webrtc/w3c-import.log:

LayoutTests:

Rebasing expectations.

* TestExpectations: Skipping unsupported tests.
* http/wpt/fetch/request-clone-expected.txt:
* platform/ios-wk2/imported/w3c/web-platform-tests/beacon/headers/header-content-type-expected.txt: Added.
* platform/ios-wk2/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin-expected.txt:
* platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
* platform/mac-wk1/imported/w3c/web-platform-tests/background-fetch/interfaces-expected.txt:
* tests-options.json:

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

2 years ago[WPE] JHBuild build directory DependenciesWPE/Build is not removed by update-webkit...
aperez@igalia.com [Sun, 15 Oct 2017 00:24:32 +0000 (00:24 +0000)]
[WPE] JHBuild build directory DependenciesWPE/Build is not removed by update-webkit-libs-jhbuild
https://bugs.webkit.org/show_bug.cgi?id=178212

Reviewed by Michael Catanzaro.

* Scripts/update-webkit-libs-jhbuild:
(cleanJhbuild): The WPE JHBuild also uses a separate "Build" subdirectory, so do not skip
cleaning it when "--wpe" is passed to the script.

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

2 years agoImplement Cache API support for WPE/GTK
commit-queue@webkit.org [Sat, 14 Oct 2017 23:57:20 +0000 (23:57 +0000)]
Implement Cache API support for WPE/GTK
https://bugs.webkit.org/show_bug.cgi?id=178316

Unreviewed.

Skip tests until feature is implemented.

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-14

* platform/gtk/TestExpectations:
* platform/wpe/TestExpectations:

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

2 years agoWebRTC test gardening
commit-queue@webkit.org [Sat, 14 Oct 2017 23:55:12 +0000 (23:55 +0000)]
WebRTC test gardening
https://bugs.webkit.org/show_bug.cgi?id=178317

Unreviewed.

Updating expectations according dashboard.
Skipping tests for platforms that do not support WebRTC.

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-14

* TestExpectations:
* platform/gtk/TestExpectations:
* platform/ios/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/win/TestExpectations:

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

2 years agoREGRESSION (r223310): Web Inspector: Class list container is transparent and unreadable
nvasilyev@apple.com [Sat, 14 Oct 2017 19:18:15 +0000 (19:18 +0000)]
REGRESSION (r223310): Web Inspector: Class list container is transparent and unreadable
https://bugs.webkit.org/show_bug.cgi?id=178311

Reviewed by Devin Rousso.

* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content ~ .class-list-container):
Fix 1px hole below the class container.

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

2 years agoWeb Inspector: Canvas tab: recordings should have a unique name
mattbaker@apple.com [Sat, 14 Oct 2017 19:05:16 +0000 (19:05 +0000)]
Web Inspector: Canvas tab: recordings should have a unique name
https://bugs.webkit.org/show_bug.cgi?id=178188
<rdar://problem/34943364>

Reviewed by Devin Rousso.

* Localizations/en.lproj/localizedStrings.js:
New format string "Recording %d".

* UserInterface/Base/FileUtilities.js:
(WI.loadDataFromFile):
Pass chosen filename to callback.

* UserInterface/Controllers/CanvasManager.js:
(WI.CanvasManager.prototype.recordingFinished):
Create a unique name for the recording.

* UserInterface/Models/Recording.js:
(WI.Recording):
(WI.Recording.fromPayload):
(WI.Recording.prototype.get displayName):
(WI.Recording.prototype.createDisplayName):

* UserInterface/Views/RecordingContentView.js:
(WI.RecordingContentView.prototype.get saveData):
Use encodeURI so that special characters can be used in filenames, and
to be consistent with other `saveData` implementations.

* UserInterface/Views/RecordingNavigationSidebarPanel.js:
(WI.RecordingNavigationSidebarPanel.prototype.set recording):
(WI.RecordingNavigationSidebarPanel.prototype._importNavigationItemClicked):
Drive-by fix: wait until actions are resolved before updating UI.

* UserInterface/Views/RecordingTabContentView.js:
(WI.RecordingTabContentView.prototype._navigationSidebarImport):
Try to use the imported filename as the recording name. If the name
collides with that of another imported recording, append a unique suffix.

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

2 years agoWeb Inspector: provide a way to enable/disable event listeners
webkit@devinrousso.com [Sat, 14 Oct 2017 18:56:32 +0000 (18:56 +0000)]
Web Inspector: provide a way to enable/disable event listeners
https://bugs.webkit.org/show_bug.cgi?id=177451

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/protocol/DOM.json:
Add `setEventListenerDisabled` command that enables/disables a specific event listener
during event dispatch. When a disabled event listener is fired, the listener's callback will
not be called.

Source/WebCore:

Test: inspector/dom/setEventListenerDisabled.html

* dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
Add InspectorInstrumentation call to isEventListenerDisabled. If true, the event listener's
callback will not be called.

* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::discardBindings):
(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::setEventListenerDisabled):
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
(WebCore::InspectorDOMAgent::willRemoveEventListener):
(WebCore::InspectorDOMAgent::isEventListenerDisabled):
Introduce a mapping of `EventListener*` to `InspectorEventListener`, a struct for uniquely
identifying event listeners so they can be referenced from the frontend. We only add items
to this mapping when `getEventListenersForNode` is called, as that is when EventListener
data is sent to the frontend. This allows us to defer creating an Inspector "mirror" object
for each EventListener until it is needed. Items are removed whenever an event listener is
removed or when the document changes.

* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::isEventListenerDisabled):
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willRemoveEventListenerImpl):
(WebCore::InspectorInstrumentation::isEventListenerDisabledImpl):
Pass additional parameters to InspectorDOMAgent so it can determine if the event listener
actually exists. If not, don't dispatch an event to the frontend as nothing will change.

Source/WebInspectorUI:

* Localizations/en.lproj/localizedStrings.js:

* UserInterface/Controllers/DOMTreeManager.js:
(WI.DOMTreeManager.prototype.setEventListenerDisabled):

* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WI.DOMNodeDetailsSidebarPanel.prototype.attached):
(WI.DOMNodeDetailsSidebarPanel.prototype.detached):
(WI.DOMNodeDetailsSidebarPanel.prototype._eventListenersChanged):
(WI.DOMNodeDetailsSidebarPanel.prototype.addEventListeners): Deleted.
(WI.DOMNodeDetailsSidebarPanel.prototype.removeEventListeners): Deleted.
Listen for `WI.DOMNode.Event.EventListenersChanged` on all instances of WI.DOMNode, since we
will still want to refresh the event listeners section in the event that an event listener
is removed from a parent node.

* UserInterface/Views/EventListenerSectionGroup.js:
(WI.EventListenerSectionGroup):
(WI.EventListenerSectionGroup.prototype._eventText):
(WI.EventListenerSectionGroup.prototype._nodeTextOrLink):
(WI.EventListenerSectionGroup.prototype._createDisabledToggleElement):
(WI.EventListenerSectionGroup.prototype._createDisabledToggleElement.updateTitle):
* UserInterface/Views/EventListenerSectionGroup.css:
(.event-listener-section > .content input[type="checkbox"]):

* UserInterface/Views/DetailsSectionSimpleRow.js:
(WI.DetailsSectionSimpleRow.prototype.get label):
(WI.DetailsSectionSimpleRow.prototype.set label):

LayoutTests:

* inspector/dom/setEventListenerDisabled-expected.txt: Added.
* inspector/dom/setEventListenerDisabled.html: Added.

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

2 years agoMark fast/frames/frame-unload-navigate-and-setTimeout-assert-fail.html as a flaky...
pvollan@apple.com [Sat, 14 Oct 2017 16:56:42 +0000 (16:56 +0000)]
Mark fast/frames/frame-unload-navigate-and-setTimeout-assert-fail.html as a flaky crash on Windows.
https://bugs.webkit.org/show_bug.cgi?id=178309

Unreviewed test gardening.

* platform/win/TestExpectations:

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

2 years agoMark fast/images/animated-gif-scrolling-crash.html as flaky on Windows.
pvollan@apple.com [Sat, 14 Oct 2017 16:14:15 +0000 (16:14 +0000)]
Mark fast/images/animated-gif-scrolling-crash.html as flaky on Windows.
https://bugs.webkit.org/show_bug.cgi?id=178307

Unreviewed test gardening.

* platform/win/TestExpectations:

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

2 years agoReland "Add Above/Below comparisons for UInt32 patterns"
utatane.tea@gmail.com [Sat, 14 Oct 2017 15:35:48 +0000 (15:35 +0000)]
Reland "Add Above/Below comparisons for UInt32 patterns"
https://bugs.webkit.org/show_bug.cgi?id=177281

Reviewed by Saam Barati.

JSTests:

* stress/uint32-comparison-jump.js: Added.
(shouldBe):
(above):
(aboveOrEqual):
(below):
(belowOrEqual):
(notAbove):
(notAboveOrEqual):
(notBelow):
(notBelowOrEqual):
* stress/uint32-comparison.js: Added.
(shouldBe):
(above):
(aboveOrEqual):
(below):
(belowOrEqual):
(aboveTest):
(aboveOrEqualTest):
(belowTest):
(belowOrEqualTest):

Source/JavaScriptCore:

We reland this patch without DFGStrengthReduction change to see what causes
regression in the iOS bot.

Sometimes, we would like to have UInt32 operations in JS. While VM does
not support UInt32 nicely, VM supports efficient Int32 operations. As long
as signedness does not matter, we can just perform Int32 operations instead
and recognize its bit pattern as UInt32.

But of course, some operations respect signedness. The most frequently
used one is comparison. Octane/zlib performs UInt32 comparison by performing
`val >>> 0`. It emits op_urshift and op_unsigned. op_urshift produces
UInt32 in Int32 form. And op_unsigned will generate Double value if
the generated Int32 is < 0 (which should be UInt32).

There is a chance for optimization. The given code pattern is the following.

    op_unsigned(op_urshift(@1)) lessThan:< op_unsigned(op_urshift(@2))

This can be converted to the following.

    op_urshift(@1) below:< op_urshift(@2)

The above conversion is nice since

1. We can avoid op_unsigned. This could be unsignedness check in DFG. Since
this check depends on the value of Int32, dropping this check is not as easy as
removing Int32 edge filters.

2. We can perform unsigned comparison in Int32 form. We do not need to convert
them to DoubleRep.

Since the above comparison exists in Octane/zlib's *super* hot path, dropping
op_unsigned offers huge win.

At first, my patch attempts to convert the above thing in DFG pipeline.
However it poses several problems.

1. MovHint is not well removed. It makes UInt32ToNumber (which is for op_unsigned) live.
2. UInt32ToNumber could cause an OSR exit. So if we have the following nodes,

    2: UInt32ToNumber(@0)
    3: MovHint(@2, xxx)
    4: UInt32ToNumber(@1)
    5: MovHint(@1, xxx)

we could drop @5's MovHint. But @3 is difficult since @4 can exit.

So, instead, we start introducing a simple optimization in the bytecode compiler.
It performs pattern matching for op_urshift and comparison to drop op_unsigned.
We adds op_below and op_above families to bytecodes. They only accept Int32 and
perform unsigned comparison.

This offers 4% performance improvement in Octane/zlib.

                            baseline                  patched

zlib           x2     431.07483+-16.28434       414.33407+-9.38375         might be 1.0404x faster

* bytecode/BytecodeDumper.cpp:
(JSC::BytecodeDumper<Block>::printCompareJump):
(JSC::BytecodeDumper<Block>::dumpBytecode):
* bytecode/BytecodeDumper.h:
* bytecode/BytecodeList.json:
* bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
* bytecode/Opcode.h:
(JSC::isBranch):
* bytecode/PreciseJumpTargetsInlines.h:
(JSC::extractStoredJumpTargetsForBytecodeOffset):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitJumpIfTrue):
(JSC::BytecodeGenerator::emitJumpIfFalse):
* bytecompiler/NodesCodegen.cpp:
(JSC::BinaryOpNode::emitBytecode):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* 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/DFGIntegerRangeOptimizationPhase.cpp:
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCompareUnsigned):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGValidate.cpp:
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareBelow):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareBelowEq):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
* jit/JIT.h:
* jit/JITArithmetic.cpp:
(JSC::JIT::emit_op_below):
(JSC::JIT::emit_op_beloweq):
(JSC::JIT::emit_op_jbelow):
(JSC::JIT::emit_op_jbeloweq):
(JSC::JIT::emit_compareUnsignedAndJump):
(JSC::JIT::emit_compareUnsigned):
* jit/JITArithmetic32_64.cpp:
(JSC::JIT::emit_compareUnsignedAndJump):
(JSC::JIT::emit_compareUnsigned):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* parser/Nodes.h:
(JSC::ExpressionNode::isBinaryOpNode const):

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

2 years agoRemove HashCountedSet's copyToVector functions
commit-queue@webkit.org [Sat, 14 Oct 2017 15:07:44 +0000 (15:07 +0000)]
Remove HashCountedSet's copyToVector functions
https://bugs.webkit.org/show_bug.cgi?id=178215

Patch by Sam Weinig <sam@webkit.org> on 2017-10-14
Reviewed by Daniel Bates.

Source/WebCore:

* page/DeviceController.cpp:
(WebCore::DeviceController::dispatchDeviceEvent):
(WebCore::DeviceController::fireDeviceEvent):

    Replace use of HashCountedSet's copyToVector functions with copyToVector(hashCountedSet.values()).

Source/WTF:

* wtf/HashCountedSet.h:
(WTF::copyToVector): Deleted.

    They are replaced by either copyToVector(hashCountedSet) or copyToVector(hashCountedSet.values())

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

2 years agoAdopt type trait template aliases everywhere in WTF
commit-queue@webkit.org [Sat, 14 Oct 2017 04:45:20 +0000 (04:45 +0000)]
Adopt type trait template aliases everywhere in WTF
https://bugs.webkit.org/show_bug.cgi?id=178299

Patch by Sam Weinig <sam@webkit.org> on 2017-10-13
Reviewed by Yusuke Suzuki.

Adopt type trait template aliases (e.g. replace 'typename std::make_unsigned<Source>::type'
with 'std::make_unsigned_t<Source>'). Also adopt using over typedef consistently.

* wtf/Atomics.h:
* wtf/CagedUniquePtr.h:
* wtf/CheckedArithmetic.h:
* wtf/CompletionHandler.h:
* wtf/Function.h:
* wtf/HashCountedSet.h:
* wtf/HashFunctions.h:
* wtf/HashMap.h:
* wtf/HashSet.h:
* wtf/HashTable.h:
* wtf/HashTraits.h:
* wtf/IndexedContainerIterator.h:
* wtf/IteratorAdaptors.h:
* wtf/KeyValuePair.h:
* wtf/LEBDecoder.h:
* wtf/ListHashSet.h:
* wtf/MathExtras.h:
* wtf/NeverDestroyed.h:
* wtf/OptionSet.h:
* wtf/RetainPtr.h:
* wtf/SizeLimits.cpp:
* wtf/StdLibExtras.h:
* wtf/SystemFree.h:
* wtf/ThreadSpecific.h:
* wtf/TypeCasts.h:
* wtf/Vector.h:
* wtf/text/IntegerToStringConversion.h:

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

2 years agoPerformance: Skip texture upload if source image and destination texture haven't...
jer.noble@apple.com [Sat, 14 Oct 2017 02:38:09 +0000 (02:38 +0000)]
Performance: Skip texture upload if source image and destination texture haven't changed
https://bugs.webkit.org/show_bug.cgi?id=178254
<rdar://problem/34968181>

Reviewed by Dean Jackson.

Source/WebCore:

Update GraphicsContext3D to track which texture is bound to which texture unit, and also to
track when those bound textures have their backing stores modified. This new "seed" value
will be used to determine whether a given texture which has previously had image data
uploaded to it needs to be re-updated.

In VideoTextureCopierCV, track whether the texture's seed changed, whether the IOSurface is
the same,  whether the IOSurface's seed has changed, and whether the "flipY" parameter
changed since the last time the copier was asked to upload to the texture.

* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::textureSeed):
(WebCore::GraphicsContext3D::GraphicsContext3DState::currentBoundTexture):
(WebCore::GraphicsContext3D::GraphicsContext3DState::boundTexture):
(WebCore::GraphicsContext3D::GraphicsContext3DState::setBoundTexture):
* platform/graphics/cv/VideoTextureCopierCV.cpp:
(WebCore::VideoTextureCopierCV::copyImageToPlatformTexture):
* platform/graphics/cv/VideoTextureCopierCV.h:
(WebCore::VideoTextureCopierCV::lastTextureSeed):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::prepareTexture):
(WebCore::GraphicsContext3D::bindTexture):
(WebCore::GraphicsContext3D::texStorage2D):
(WebCore::GraphicsContext3D::texStorage3D):
(WebCore::GraphicsContext3D::framebufferTexture2D):
(WebCore::GraphicsContext3D::texSubImage2D):
(WebCore::GraphicsContext3D::compressedTexImage2D):
(WebCore::GraphicsContext3D::compressedTexSubImage2D):
(WebCore::GraphicsContext3D::createTexture):
(WebCore::GraphicsContext3D::deleteTexture):
(WebCore::GraphicsContext3D::texImage2DDirect):

Source/WTF:

Add a new class, UnsafePointer, for safely holding pointers to objects with uncontrolled lifetimes.

* WTF.xcodeproj/project.pbxproj:
* wtf/UnsafePointer.h: Added.
(WTF::UnsafePointer::UnsafePointer):
(WTF::UnsafePointer::operator== const):
(WTF::UnsafePointer::operator!= const):
(WTF::UnsafePointer::operator bool const):
(WTF::operator==):
(WTF::operator!=):

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

2 years ago[Win] When built with VS2017, MiniBrowser crashes on startup.
pvollan@apple.com [Sat, 14 Oct 2017 00:50:39 +0000 (00:50 +0000)]
[Win] When built with VS2017, MiniBrowser crashes on startup.
https://bugs.webkit.org/show_bug.cgi?id=175209

Reviewed by Daniel Bates.

Source/WebCore:

Generated StaticStringImpl objects are not initialized compile-time with VS2017.
When compiling with VS2017, the global, static, StaticStringImpl objects needs to
be defined with the constexpr specifier, in order for the objects to be initialized
at compile time. Since the StaticStringImpl objects will be const then, we need to
be able to create an AtomicString object from a const StaticStringImpl object.
This constructor has been added to the AtomicString class.

No new tests, covered by existing tests.

* bindings/scripts/StaticString.pm:
(GenerateStrings):
(GenerateStringAsserts):
* dom/QualifiedName.cpp:
(WebCore::createQualifiedName):
* dom/QualifiedName.h:
* dom/make_names.pl:
(printDefinitions):

Source/WTF:

Add AtomicString(const StaticStringImpl*) constructor. This is needed since
this patch adds constexpr to the static, global StaticStringImpl objects
generated in WebCore/bindings/scripts/StaticString.pm.

* wtf/text/AtomicString.h:
(WTF::AtomicString::AtomicString):
* wtf/text/AtomicStringImpl.cpp:
(WTF::addStatic):
(WTF::AtomicStringImpl::add):
* wtf/text/AtomicStringImpl.h:
* wtf/text/StringImpl.h:
(WTF::StringImpl::assertHashIsCorrect const):
(WTF::StringImpl::assertHashIsCorrect): Deleted.

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

2 years agoProtect FrameView during style calculations
bfulgham@apple.com [Sat, 14 Oct 2017 00:44:53 +0000 (00:44 +0000)]
Protect FrameView during style calculations
https://bugs.webkit.org/show_bug.cgi?id=178300
<rdar://problem/34869329>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Protect the FrameView during layout and style updates in case arbitrary script
is run that might clear it.

Test: fast/html/marquee-reparent-check.html

* page/FrameView.cpp:
(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):

LayoutTests:

* fast/html/marquee-reparent-check-expected.txt: Added.
* fast/html/marquee-reparent-check.html: Added.

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

2 years agoMark http/tests/cache-storage/cache-clearing-origin.https.html as flaky.
ryanhaddad@apple.com [Sat, 14 Oct 2017 00:42:56 +0000 (00:42 +0000)]
Mark http/tests/cache-storage/cache-clearing-origin.https.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=178305

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

2 years agohttp/tests/cache-storage/cache-clearing-origin.https.html is flaky on Sierra
commit-queue@webkit.org [Sat, 14 Oct 2017 00:25:02 +0000 (00:25 +0000)]
http/tests/cache-storage/cache-clearing-origin.https.html is flaky on Sierra
https://bugs.webkit.org/show_bug.cgi?id=178303

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-13

* TestExpectations: Marking test as fail.

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

2 years agoWeb Inspector: make split console full width of view
webkit@devinrousso.com [Sat, 14 Oct 2017 00:05:07 +0000 (00:05 +0000)]
Web Inspector: make split console full width of view
https://bugs.webkit.org/show_bug.cgi?id=176635

Reviewed by Timothy Hatcher.

* UserInterface/Main.html:
* UserInterface/Views/Main.css:
(#main):
(#content):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content ~ :matches(.options-container, .class-list-container)):
(.sidebar > .panel.details.css-style > .content ~ .options-container):

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

2 years agoCrash under ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData
pvollan@apple.com [Sat, 14 Oct 2017 00:02:16 +0000 (00:02 +0000)]
Crash under ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData
https://bugs.webkit.org/show_bug.cgi?id=178279

Reviewed by Alex Christensen.

Check if the connection is valid before calling ResourceHandleClient::didSendData.

No new tests, covered by existing tests.

* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):

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

2 years agoWeb Inspector: fix ESLint errors
webkit@devinrousso.com [Fri, 13 Oct 2017 23:52:34 +0000 (23:52 +0000)]
Web Inspector: fix ESLint errors
https://bugs.webkit.org/show_bug.cgi?id=175065

Reviewed by Joseph Pecoraro.

Removed trailing whitespace, extra parenthesis, and some unnecessary escape characters.
Added missing semicolons, spacing around default values for parameters, and changed `==` to
`===` where applicable.

Specific changes to each file were removed for brevity.

* .eslintrc:
Alphabetize each list of global variables and add some missing utility functions.

* UserInterface/Base/EventListener.js:
* UserInterface/Base/EventListenerSet.js:
* UserInterface/Base/Main.js:
* UserInterface/Base/Setting.js:
* UserInterface/Base/TextUtilities.js:
* UserInterface/Base/URLUtilities.js:
* UserInterface/Base/Utilities.js:
* UserInterface/Base/YieldableTask.js:
* UserInterface/Controllers/AppControllerBase.js:
* UserInterface/Controllers/CanvasManager.js:
* UserInterface/Controllers/CodeMirrorCompletionController.js:
* UserInterface/Controllers/DOMDebuggerManager.js:
* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
* UserInterface/Controllers/RuntimeManager.js:
* UserInterface/Controllers/SourceMapManager.js:
* UserInterface/Debug/DebugContentView.js:
* UserInterface/Debug/UncaughtExceptionReporter.js:
* UserInterface/Models/CSSKeywordCompletions.js:
* UserInterface/Models/DOMNode.js:
* UserInterface/Models/DOMNodeStyles.js:
* UserInterface/Models/KeyboardShortcut.js:
* UserInterface/Models/ProfileNode.js:
* UserInterface/Models/Resource.js:
* UserInterface/Models/ResourceCollection.js:
* UserInterface/Models/Script.js:
* UserInterface/Models/ScriptSyntaxTree.js:
* UserInterface/Models/ScriptTimelineRecord.js:
* UserInterface/Protocol/Connection.js:
* UserInterface/Test/FrontendTestHarness.js:
* UserInterface/Test/TestHarness.js:
* UserInterface/Views/CSSStyleDeclarationSection.js:
* UserInterface/Views/ChartDetailsSectionRow.js:
* UserInterface/Views/CodeMirrorAdditions.js:
* UserInterface/Views/CodeMirrorFormatters.js:
* UserInterface/Views/CodeMirrorRegexMode.js:
* UserInterface/Views/ContentBrowserTabContentView.js:
* UserInterface/Views/DataGrid.js:
* UserInterface/Views/DataGridNode.js:
* UserInterface/Views/FindBanner.js:
* UserInterface/Views/GroupNavigationItem.js:
* UserInterface/Views/HierarchicalPathNavigationItem.js:
* UserInterface/Views/NetworkTableContentView.js:
* UserInterface/Views/NetworkTimelineView.js:
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
* UserInterface/Views/ObjectTreeView.js:
* UserInterface/Views/RecordingContentView.js:
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
* UserInterface/Views/ResourceCookiesContentView.js:
* UserInterface/Views/ResourceDetailsSection.js:
* UserInterface/Views/ResourceHeadersContentView.js:
* UserInterface/Views/ResourceTimelineDataGridNode.js:
* UserInterface/Views/SettingEditor.js:
* UserInterface/Views/Sidebar.js:
* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
* UserInterface/Views/Table.js:
* UserInterface/Views/TextEditor.js:
* UserInterface/Views/TimelineDataGridNode.js:
* UserInterface/Views/TreeElement.js:
* UserInterface/Views/TreeOutline.js:
* UserInterface/Views/WebSocketDataGridNode.js:
* UserInterface/Workers/Formatter/EsprimaFormatter.js:
* UserInterface/Workers/Formatter/FormatterWorker.js:

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

2 years agoCMD+R / CMD+Q keyboard shortcuts are treated as user interaction with page
bfulgham@apple.com [Fri, 13 Oct 2017 23:28:01 +0000 (23:28 +0000)]
CMD+R / CMD+Q keyboard shortcuts are treated as user interaction with page
https://bugs.webkit.org/show_bug.cgi?id=178183
<rdar://problem/33327730>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Key events are granted user interaction credit (in terms of updating the last time of user
interaction), even if the key event was not handled. Instead, we should defer granting
access until the key event has been handled.

Add a new default constructor argument to UserGestureIndicator to be used when handling key
events, so we can delay a decision about whether to grant ResourceLoadStatistics
'hasHadUserInteraction' until we confirm that the event was handled by the page.

This change does not affect other aspects of user interaction.

Tests: fast/events
       http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown.html
       http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown.html

* dom/UserGestureIndicator.cpp:
(WebCore::UserGestureIndicator::UserGestureIndicator): Add check based on constructor argument.
Also: Drive by fix to avoid calling 'currentToken' when not on the main thread.
* dom/UserGestureIndicator.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::keyEvent): If the key event was handled, grant user interaction credit
for ResourceLoadStatistics processing.
(WebCore::EventHandler::internalKeyEvent): Use the new UserGestureIndicator constructor argument.

LayoutTests:

* http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown-expected.txt: Added.
* http/tests/resourceLoadStatistics/prevalent-resource-handled-keydown.html: Added.
* http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown-expected.txt: Added.
* http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown.html: Added.
* http/tests/resourceLoadStatistics/resources: Added.
* http/tests/resourceLoadStatistics/resources/onclick.html: Added.
* platform/ios/TestExpectations: Skip tests that require 'keyDown' support, since this is not
  available on iOS.

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

2 years agoDOMTokenList shouldn't add empty attributes
cdumez@apple.com [Fri, 13 Oct 2017 22:36:28 +0000 (22:36 +0000)]
DOMTokenList shouldn't add empty attributes
https://bugs.webkit.org/show_bug.cgi?id=178280

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline web-platform-test now that all checks are passing.

* web-platform-tests/dom/nodes/Element-classlist-expected.txt:

Source/WebCore:

DOMTokenList shouldn't add empty attributes after:
- https://github.com/whatwg/dom/pull/488

Firefox and Chrome follow the latest spec.

No new tests, updating existing test.

* html/DOMTokenList.cpp:
(WebCore::DOMTokenList::updateAssociatedAttributeFromTokens):
Implement the first step of https://dom.spec.whatwg.org/#concept-dtl-update

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

2 years ago[WPE] Fontconfig fails build in JHBuild with “error: conflicting types for ‘FcObjectT...
aperez@igalia.com [Fri, 13 Oct 2017 22:03:42 +0000 (22:03 +0000)]
[WPE] Fontconfig fails build in JHBuild with “error: conflicting types for ‘FcObjectTypeHash’”
https://bugs.webkit.org/show_bug.cgi?id=178283

Reviewed by Žan Doberšek.

* wpe/jhbuild.modules: Flag Fontconfig to be built inside the source directory, otherwise
compilation fails. While at it, pass "--disable-docs" to cut a bit on build time.

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

2 years agoMarked http/tests/inspector/network/resource-sizes-memory-cache.html as flaky.
jlewis3@apple.com [Fri, 13 Oct 2017 21:58:01 +0000 (21:58 +0000)]
Marked http/tests/inspector/network/resource-sizes-memory-cache.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=177687

Unreviewed test gardening.
* platform/mac-wk2/TestExpectations:

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

2 years agoImplement listing origins for which CacheStorage is storing data
commit-queue@webkit.org [Fri, 13 Oct 2017 20:31:34 +0000 (20:31 +0000)]
Implement listing origins for which CacheStorage is storing data
https://bugs.webkit.org/show_bug.cgi?id=178236

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-13
Reviewed by Chris Dumez.

Source/WebKit:

Cache storage is split on per-origin folders which name is obfuscated through salting.
To retrieve the origin for each folder, an origin file is now stored within each folder.
This file contains the actual origin.

Adding support to get the list of origin by iterating through each folder and
getting the actual origin by reading the content of the 'origin' file.

Adding C API for WebKitTestRunner.

* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::fetchEntries):
(WebKit::CacheStorage::ReadOriginsTaskCounter::create):
(WebKit::CacheStorage::ReadOriginsTaskCounter::~ReadOriginsTaskCounter):
(WebKit::CacheStorage::ReadOriginsTaskCounter::addOrigin):
(WebKit::CacheStorage::ReadOriginsTaskCounter::ReadOriginsTaskCounter):
* NetworkProcess/cache/CacheStorageEngine.h:
* NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::cachesOriginFilename):
(WebKit::CacheStorage::Caches::retrieveOriginFromDirectory):
(WebKit::CacheStorage::Caches::Caches):
(WebKit::CacheStorage::Caches::storeOrigin):
(WebKit::CacheStorage::Caches::readOrigin):
(WebKit::CacheStorage::Caches::initialize):
* NetworkProcess/cache/CacheStorageEngineCaches.h:
(WebKit::CacheStorage::Caches::origin const):
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreGetFetchCacheOrigins):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:

Tools:

Adding hasDOMCache API for checking whether origin is storing data through Cache API.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::hasDOMCache):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::FetchCacheOriginsCallbackContext::FetchCacheOriginsCallbackContext):
(WTR::fetchCacheOriginsCallback):
(WTR::TestController::hasDOMCache):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

* http/tests/cache-storage/cache-clearing-origin.https.html:

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

2 years agoUnreviewed build fix; wrap more functions in USE(IOSURFACE) so that
jer.noble@apple.com [Fri, 13 Oct 2017 20:24:28 +0000 (20:24 +0000)]
Unreviewed build fix; wrap more functions in USE(IOSURFACE) so that
they do not generate "unused function" errors.

* platform/graphics/cv/VideoTextureCopierCV.cpp:

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

2 years agoOne last unreviewed build fix; since the IOSurface APIs don't exist at
jer.noble@apple.com [Fri, 13 Oct 2017 19:55:47 +0000 (19:55 +0000)]
One last unreviewed build fix; since the IOSurface APIs don't exist at
all on the simulator, just wrap the entirety of the implementation of
copyImageToPlatformTexture() in a #if USE(IOSURFACE) check.

* platform/graphics/cv/VideoTextureCopierCV.cpp:
(WebCore::VideoTextureCopierCV::copyImageToPlatformTexture):

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

2 years ago[WPE][GTK] Provide an implementation of PAL::logLevelString()
aperez@igalia.com [Fri, 13 Oct 2017 19:04:24 +0000 (19:04 +0000)]
[WPE][GTK] Provide an implementation of PAL::logLevelString()
https://bugs.webkit.org/show_bug.cgi?id=178263

Reviewed by Carlos Alberto Lopez Perez.

Provide an implementation of PAL::logLevelString() which picks the value from the
WEBCORE_DEBUG environment variable. Logging of notImplemented() calls is always enabled,
which is the same behavior as in WebCore::logLevelString().

* pal/PlatformGTK.cmake: Add LoggingUnix.cpp to the list of sources.
* pal/PlatformWPE.cmake: Add LoggingUnix.cpp to the list of sources.
* pal/unix/LoggingUnix.cpp: Added.
(PAL::logLevelString):

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

2 years agoUnreviewed build fix for the previous build fix; use the right PAL path for IOSurface...
jer.noble@apple.com [Fri, 13 Oct 2017 18:55:39 +0000 (18:55 +0000)]
Unreviewed build fix for the previous build fix; use the right PAL path for IOSurfaceSPI.h.

* platform/graphics/cv/VideoTextureCopierCV.cpp:

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

2 years agoUnreviewed build fix; add definitions for IOSurface methods missing on some platforms.
jer.noble@apple.com [Fri, 13 Oct 2017 18:48:36 +0000 (18:48 +0000)]
Unreviewed build fix; add definitions for IOSurface methods missing on some platforms.

Source/WebCore:

* platform/graphics/cv/VideoTextureCopierCV.cpp:

Source/WebCore/PAL:

* pal/spi/cocoa/IOSurfaceSPI.h:

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

2 years agoRemove Editor::simplifyMarkup
achristensen@apple.com [Fri, 13 Oct 2017 18:23:12 +0000 (18:23 +0000)]
Remove Editor::simplifyMarkup
https://bugs.webkit.org/show_bug.cgi?id=178271

Reviewed by Wenson Hsieh.

Source/WebCore:

An API test became flaky, and it turns out this isn't used anywhere, so let's remove it!
It was used in Mountain Lion, Mavericks, and Yosemite, but not since then.
See <rdar://problem/10726177>

* editing/Editor.cpp:
(WebCore::Editor::simplifyMarkup): Deleted.
* editing/Editor.h:

Source/WebKitLegacy/mac:

* WebView/WebView.mm:
(-[WebView _simplifyMarkup:endNode:]):

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/mac/SimplifyMarkup.mm: Removed.

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

2 years agoUnreviewed build fix; forward declare the type of IOSurfaceRef.
jer.noble@apple.com [Fri, 13 Oct 2017 18:16:20 +0000 (18:16 +0000)]
Unreviewed build fix; forward declare the type of IOSurfaceRef.

* platform/cocoa/CoreVideoSoftLink.cpp:
* platform/cocoa/CoreVideoSoftLink.h:

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

2 years agohttp/tests/cache-storage/cache-origins.https.html is flaky
commit-queue@webkit.org [Fri, 13 Oct 2017 18:03:48 +0000 (18:03 +0000)]
http/tests/cache-storage/cache-origins.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=178266

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-13

* http/tests/cache-storage/cache-clearing-origin.https.html:

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

2 years agoUnreviewed build fix; add soft link macros for newly called CoreVideo methods.
jer.noble@apple.com [Fri, 13 Oct 2017 17:41:21 +0000 (17:41 +0000)]
Unreviewed build fix; add soft link macros for newly called CoreVideo methods.

* platform/cocoa/CoreVideoSoftLink.cpp:
* platform/cocoa/CoreVideoSoftLink.h:

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

2 years agoFix API tests after r223269.
achristensen@apple.com [Fri, 13 Oct 2017 17:30:50 +0000 (17:30 +0000)]
Fix API tests after r223269.
https://bugs.webkit.org/show_bug.cgi?id=178246

* UIProcess/API/APIContentRuleListStore.cpp:
(API::ContentRuleListStore::getContentRuleListSource):
Version 10 also has the ability to recover content rule list source.

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

2 years agoUnreviewed build fix; add UNUSED_PARAM macros.
jer.noble@apple.com [Fri, 13 Oct 2017 17:30:36 +0000 (17:30 +0000)]
Unreviewed build fix; add UNUSED_PARAM macros.

* platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::GraphicsContext3D::texImageIOSurface2D):

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

2 years agoModernize LayoutTests/http/tests/cache-storage/cache-clearing-*.https.html
commit-queue@webkit.org [Fri, 13 Oct 2017 17:19:06 +0000 (17:19 +0000)]
Modernize LayoutTests/http/tests/cache-storage/cache-clearing-*.https.html
https://bugs.webkit.org/show_bug.cgi?id=178245

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-13
Reviewed by Chris Dumez.

Using await/async to improve the testing.
Taking benefit of clearDOMCache to wait for completion to simplify both tests as well.

* http/tests/cache-storage/cache-clearing-all.https.html:
* http/tests/cache-storage/cache-clearing-origin.https.html:

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

2 years agoWeb Inspector: Styles Redesign: hook up autocompletion to property names and values
nvasilyev@apple.com [Fri, 13 Oct 2017 17:14:22 +0000 (17:14 +0000)]
Web Inspector: Styles Redesign: hook up autocompletion to property names and values
https://bugs.webkit.org/show_bug.cgi?id=177313
<rdar://problem/34577057>

Reviewed by Joseph Pecoraro.

- Arrow Right accept the current completion item and places the text caret after it.
- Arrow Left hides the completion popover.
- Arrow Up selects the previous completion item.
- Arrow Down selects the next completion item.
- Enter and Tab accept the current completion item and navigate to the next focusable item.
- Escape hides the completion popover, if there is one.

* UserInterface/Views/CompletionSuggestionsView.js:
(WI.CompletionSuggestionsView):
(WI.CompletionSuggestionsView.prototype._mouseDown):
Add a preventBlur option so clicking on an completion item doesn't change the focus and
doesn't cause "blur" event on the target text field.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
(.spreadsheet-style-declaration-editor .completion-hint):
* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
(WI.SpreadsheetCSSStyleDeclarationEditor):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.detached):
Call detached on every SpreadsheetTextField to hide CompletionSuggestionsView once
SpreadsheetCSSStyleDeclarationEditor is removed from the DOM.

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._addBlankProperty):
Remove index argument since it is no longer used.

* UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty):
(WI.SpreadsheetStyleProperty.prototype.detached):
(WI.SpreadsheetStyleProperty.prototype._remove):
(WI.SpreadsheetStyleProperty.prototype._update):
(WI.SpreadsheetStyleProperty.prototype._nameCompletionDataProvider):
(WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider):
Add an extra parameter to SpreadsheetTextField to pass a completion data provider.

* UserInterface/Views/SpreadsheetTextField.js:
(WI.SpreadsheetTextField):
(WI.SpreadsheetTextField.prototype.get suggestionHint):
(WI.SpreadsheetTextField.prototype.set suggestionHint):
(WI.SpreadsheetTextField.prototype.startEditing):
(WI.SpreadsheetTextField.prototype.stopEditing):
(WI.SpreadsheetTextField.prototype.detached):
(WI.SpreadsheetTextField.prototype.completionSuggestionsSelectedCompletion):
(WI.SpreadsheetTextField.prototype.completionSuggestionsClickedCompletion):
(WI.SpreadsheetTextField.prototype._getPrefix):
(WI.SpreadsheetTextField.prototype._handleBlur):
(WI.SpreadsheetTextField.prototype._handleKeyDown):
(WI.SpreadsheetTextField.prototype._handleKeyDownForSuggestionView):
(WI.SpreadsheetTextField.prototype._handleInput):
(WI.SpreadsheetTextField.prototype._updateCompletions):
(WI.SpreadsheetTextField.prototype._getCaretRect):
(WI.SpreadsheetTextField.prototype._getCompletionPrefix):
(WI.SpreadsheetTextField.prototype._applyCompletionHint):
(WI.SpreadsheetTextField.prototype._hideCompletions):
Provide text completion based on the existing CompletionSuggestionsView when completionProvider is passed to SpreadsheetTextField.

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

2 years ago[GLib] WebKitNavigationAction should tell whether it is a redirect
gns@gnome.org [Fri, 13 Oct 2017 17:07:32 +0000 (17:07 +0000)]
[GLib] WebKitNavigationAction should tell whether it is a redirect
https://bugs.webkit.org/show_bug.cgi?id=178178

Source/WebKit:

There is no good way to know whether a given navigation action has been caused
by a redirect through the glib API. This is necessary to implement some app mode
heuristics for Epiphany.

Reviewed by Carlos Garcia Campos.

* UIProcess/API/glib/WebKitNavigationAction.cpp:
(webkit_navigation_action_is_redirect): returns whether the navigation action is a redirect.
* UIProcess/API/glib/WebKitNavigationActionPrivate.h: add isRedirect to the wrapper object.
(_WebKitNavigationAction::_WebKitNavigationAction):
* UIProcess/API/gtk/WebKitNavigationAction.h: add the new API.
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: ditto.
* UIProcess/API/wpe/WebKitNavigationAction.h: ditto.

Tools:

Test that WebKitNavigationAction properly reports being a redirect.

Reviewed by Carlos Garcia Campos.

* TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp:
(testNavigationPolicy): test that loading /redirect leads to a redirect WebKitNavigationAction.
(serverCallback): add a /redirect path to the server, which causes a redirect.

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

2 years agoUnreviewed, fix webkitpy failure after r223273
cdumez@apple.com [Fri, 13 Oct 2017 17:05:38 +0000 (17:05 +0000)]
Unreviewed, fix webkitpy failure after r223273

* Scripts/webkitpy/w3c/test_importer_unittest.py:
(TestImporterTest.test_harnesslinks_conversion):

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

2 years agoPerformance: do pixel conformance and texturing in a single step.
jer.noble@apple.com [Fri, 13 Oct 2017 16:32:38 +0000 (16:32 +0000)]
Performance: do pixel conformance and texturing in a single step.
https://bugs.webkit.org/show_bug.cgi?id=178219
<rdar://problem/34937237>

Reviewed by Dean Jackson.

No new tests; performance improvements should have no behavior change.

Rather than asking the VTDecompressionSession to conform the output CVPixelBuffer into a
pixel format compatible with OpenGL (& ES), don't constrain the output at all, and only do a
conformance step if the output is not already compatible with OpenGL. This eliminates one
copy (in hardware) operation.

Move the TextureCacheCV object into VideoTextureCopierCV; it will be conditionally used to
create the texture if the pixel buffer is compatible.

Refactor copyVideoTextureToPlatformTexture(CVOpenGLTextureRef) in VideoTextureCopierCV. The
new entry point, copyImageToPlatformTexture(), will attempt to use the texture cache first,
and call a new common copyVideoTextureToPlatformTexture(Platform3DObject) with the result.

The new copyImageToPlatformTexture() will pull planar YUV frames into two textures, and combine
the two with a color transfer function when drawing to the output texture.

* platform/graphics/GraphicsContext3D.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::copyVideoTextureToPlatformTexture):
* platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::GraphicsContext3D::texImageIOSurface2D):
* platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::ensureDecompressionSessionForSample):
* platform/graphics/cv/TextureCacheCV.h:
* platform/graphics/cv/TextureCacheCV.mm:
(WebCore::TextureCacheCV::textureFromImage):
* platform/graphics/cv/VideoTextureCopierCV.cpp:
(WebCore::pixelRangeFromPixelFormat):
(WebCore::transferFunctionFromString):
(WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction):
(WebCore::VideoTextureCopierCV::~VideoTextureCopierCV):
(WebCore::VideoTextureCopierCV::initializeUVContextObjects):
(WebCore::VideoTextureCopierCV::copyImageToPlatformTexture):
(WebCore::VideoTextureCopierCV::copyVideoTextureToPlatformTexture):
* platform/graphics/cv/VideoTextureCopierCV.h:

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

2 years ago[Readable Streams API] Align queue with spec for ReadableStreamDefaultController
romain.bellessort@crf.canon.fr [Fri, 13 Oct 2017 09:22:48 +0000 (09:22 +0000)]
[Readable Streams API] Align queue with spec for ReadableStreamDefaultController
https://bugs.webkit.org/show_bug.cgi?id=178082

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

Updated test expectations for tests that were previously failing but now pass.

* web-platform-tests/streams/readable-streams/floating-point-total-queue-size-expected.txt:
* web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker-expected.txt:

Source/WebCore:

Implemented new queue behavior for dequeueValue (used by ReadableStreamDefaultController),
which fixes rounding errors (as described in https://github.com/whatwg/streams/pull/661).
Also aligned ReadableByteStreamController queue so that both queues are implemented in
the same way.

No new tests (covered by existing tests, especially WPT tests that now pass).

* Modules/streams/ReadableByteStreamInternals.js:
(privateInitializeReadableByteStreamController): Aligned queue with RSDC.
(readableByteStreamControllerCancel): Aligned queue with RSDC.
(readableByteStreamControllerError): Aligned queue with RSDC.
(readableByteStreamControllerClose): Aligned queue with RSDC.
(readableByteStreamControllerHandleQueueDrain): Aligned queue with RSDC.
(readableByteStreamControllerPull): Aligned queue with RSDC.
(readableByteStreamControllerEnqueue): Aligned queue with RSDC.
(readableByteStreamControllerEnqueueChunk): Aligned queue with RSDC.
(readableByteStreamControllerProcessPullDescriptors): Aligned queue with RSDC.
(readableByteStreamControllerFillDescriptorFromQueue): Aligned queue with RSDC.
(readableByteStreamControllerPullInto): Aligned queue with RSDC.
* Modules/streams/StreamInternals.js:
(dequeueValue): Updated to match spec.
* bindings/js/WebCoreBuiltinNames.h: Removed now useless "totalQueuedBytes".

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

2 years ago"text/html" data is not exposed when dragging and dropping across origins
wenson_hsieh@apple.com [Fri, 13 Oct 2017 07:14:29 +0000 (07:14 +0000)]
"text/html" data is not exposed when dragging and dropping across origins
https://bugs.webkit.org/show_bug.cgi?id=178253
<rdar://problem/34971203>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Minor tweak to DataTransfer::setDataFromItemList to allow "text/html" written from bindings to transfer across
origins without requiring a sanitized representation. Currently, sanitizedData is null, which limits "text/html"
to being treated as custom data, inaccessible across origins. We should instead treat markup supplied via
bindings the same way as we do "text/plain" supplied via bindings.

Modified Tests: editing/pasteboard/data-transfer-set-data-sanitize-url-when-copying-in-null-origin.html
                editing/pasteboard/data-transfer-set-data-sanitize-url-when-dragging-in-null-origin.html

* dom/DataTransfer.cpp:
(WebCore::DataTransfer::setDataFromItemList):

LayoutTests:

Renames some existing layout tests, and also augments two tests to verify that "text/html" is preserved when
copying and dragging across origins that don't match.

* TestExpectations:
* editing/pasteboard/data-transfer-set-data-ignore-copied-malformed-url-in-null-expected.txt: Renamed from LayoutTests/editing/pasteboard/data-transfer-set-data-ignore-copied-walformed-url-in-null-expected.txt.
* editing/pasteboard/data-transfer-set-data-ignore-copied-malformed-url-in-null-origin-expected.txt: Renamed from LayoutTests/editing/pasteboard/data-transfer-set-data-ignore-copied-walformed-url-in-null-origin-expected.txt.
* editing/pasteboard/data-transfer-set-data-ignore-copied-malformed-url-in-null-origin.html: Renamed from LayoutTests/editing/pasteboard/data-transfer-set-data-ignore-copied-walformed-url-in-null-origin.html.
* editing/pasteboard/data-transfer-set-data-sanitize-url-when-copying-in-null-origin-expected.txt: Renamed from LayoutTests/editing/pasteboard/data-transfer-set-data-sanitlize-url-when-copying-in-null-origin-expected.txt.
* editing/pasteboard/data-transfer-set-data-sanitize-url-when-copying-in-null-origin.html: Renamed from LayoutTests/editing/pasteboard/data-transfer-set-data-sanitlize-url-when-copying-in-null-origin.html.
* editing/pasteboard/data-transfer-set-data-sanitize-url-when-dragging-in-null-origin-expected.txt: Renamed from LayoutTests/editing/pasteboard/data-transfer-set-data-sanitlize-url-when-dragging-in-null-origin-expected.txt.
* editing/pasteboard/data-transfer-set-data-sanitize-url-when-dragging-in-null-origin.html: Renamed from LayoutTests/editing/pasteboard/data-transfer-set-data-sanitlize-url-when-dragging-in-null-origin.html.
* platform/mac-wk1/TestExpectations:

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

2 years agoSW "Hello world".
beidson@apple.com [Fri, 13 Oct 2017 06:44:47 +0000 (06:44 +0000)]
SW "Hello world".
https://bugs.webkit.org/show_bug.cgi?id=178187

Reviewed by Andy Estes.

Source/WebCore:

No new tests (Covered by changes to existing tests).

With this patch, SW scripts are actually compiled and run inside a ServiceWorkerGlobalScope environment
in the SW context process.

* WebCore.xcodeproj/project.pbxproj:

* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initScript):

* dom/EventTargetFactory.in:

* workers/WorkerGlobalScope.h:
(WebCore::WorkerGlobalScope::isServiceWorkerGlobalScope const):

* workers/service/ServiceWorkerContextData.cpp: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp.
(WebCore::ServiceWorkerContextData::isolatedCopy const):
* workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):

* workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):
(WebCore::ServiceWorkerGlobalScope::~ServiceWorkerGlobalScope):
(WebCore::ServiceWorkerGlobalScope::registration):
(WebCore::ServiceWorkerGlobalScope::eventTargetInterface const):
* workers/service/ServiceWorkerGlobalScope.h:
(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::serverConnectionIdentifier const):

* workers/service/context/SWContextManager.cpp: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp.
(WebCore::SWContextManager::singleton):
(WebCore::SWContextManager::SWContextManager):
(WebCore::SWContextManager::startServiceWorkerContext):
* workers/service/context/SWContextManager.h: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.h.

* workers/service/context/ServiceWorkerThread.cpp: Added.
(WebCore::ServiceWorkerThreadProxy::sharedDummyProxy):
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
(WebCore::m_workerObjectProxy):
(WebCore::ServiceWorkerThread::~ServiceWorkerThread):
(WebCore::ServiceWorkerThread::createWorkerGlobalScope):
(WebCore::ServiceWorkerThread::runEventLoop):
* workers/service/context/ServiceWorkerThread.h: Copied from Source/WebCore/workers/service/ServiceWorkerGlobalScope.h.
(WebCore::ServiceWorkerThread::create):
(WebCore::ServiceWorkerThread::workerObjectProxy const):

* workers/service/server/SWServer.cpp:
(WebCore::SWServer::createWorker):

Source/WebKit:

* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::startServiceWorkerContext):

LayoutTests:

* http/tests/workers/service/basic-register-exceptions-expected.txt:
* http/tests/workers/service/basic-register-expected.txt:
* http/tests/workers/service/registration-task-queue-scheduling-1-expected.txt:

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

2 years agoWebAssembly: Wasm functions should have either JSFunctionType or TypeOfShouldCallGetC...
utatane.tea@gmail.com [Fri, 13 Oct 2017 02:13:20 +0000 (02:13 +0000)]
WebAssembly: Wasm functions should have either JSFunctionType or TypeOfShouldCallGetCallData
https://bugs.webkit.org/show_bug.cgi?id=178210

Reviewed by Saam Barati.

JSTests:

* wasm/function-tests/trap-from-start-async.js:
(async.StartTrapsAsync):
* wasm/function-tests/trap-from-start.js:
(StartTraps):
* wasm/js-api/web-assembly-function.js:
(assert.eq.Object.getPrototypeOf):
* wasm/js-api/wrapper-function.js:
(return.new.WebAssembly.Module):
(assert.throws.makeInstance): Deleted.
(assert.throws.Bar): Deleted.
(assert.throws): Deleted.

Source/JavaScriptCore:

In Wasm, we have two JS functions exposed to users: WebAssemblyFunction and WebAssemblyWrapperFunction.
The former is an exported wasm function and the latter is an imported & exported function. Since they
have [[Call]], they should be categorized into "function" in typeof operation.

However, these functions do not implement our function protocol correctly. They inherit JSFunction.
But JSType of WebAssemblyFunction is WebAssemblyFunctionType, and one of WebAssemblyWrapperFunction is
ObjectType. Since both do not have TypeOfShouldCallGetCallData, they return "object" when performing
typeof operation.

In this patch, we address the above issue by the following 2 fixes.

1. We add TypeOfShouldCallGetCallData to WebAssemblyFunction. This is the same way how we implement
InternalFunction. Since WebAssemblyFunction requires WebAssemblyFunctionType for fast checking in Wasm
implementation, we cannot make this JSFunctionType.

2. On the other hand, WebAssemblyWrapperFunction does not require a specific JSType. So this patch
changes JSType of WebAssemblyWrapperFunction to JSFunctionType. JSFunctionType can be usable for derived
classes of JSFunction (e.g. JSCustomGetterSetterFunction).

* wasm/js/WebAssemblyFunction.h:
(JSC::WebAssemblyFunction::signatureIndex const): Deleted.
(JSC::WebAssemblyFunction::wasmEntrypointLoadLocation const): Deleted.
(JSC::WebAssemblyFunction::callableFunction const): Deleted.
(JSC::WebAssemblyFunction::jsEntrypoint): Deleted.
(JSC::WebAssemblyFunction::offsetOfWasmEntrypointLoadLocation): Deleted.
* wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::createStructure):
* wasm/js/WebAssemblyWrapperFunction.h:
(JSC::WebAssemblyWrapperFunction::signatureIndex const): Deleted.
(JSC::WebAssemblyWrapperFunction::wasmEntrypointLoadLocation const): Deleted.
(JSC::WebAssemblyWrapperFunction::callableFunction const): Deleted.
(JSC::WebAssemblyWrapperFunction::function): Deleted.

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

2 years agoimport-w3c-tests modifies test sources and sometimes causes them to fail
cdumez@apple.com [Fri, 13 Oct 2017 02:04:33 +0000 (02:04 +0000)]
import-w3c-tests modifies test sources and sometimes causes them to fail
https://bugs.webkit.org/show_bug.cgi?id=178234

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Resync tests now that they no longer get re-written by the importer.
Most changes are about casing and spacing.

Also note that some tests are now passing and that they have been rebaselined.

* web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html:
* web-platform-tests/IndexedDB/abort-in-initial-upgradeneeded.html:
* web-platform-tests/IndexedDB/close-in-upgradeneeded.html:
* web-platform-tests/IndexedDB/cursor-overloads.htm:
* web-platform-tests/IndexedDB/idbkeyrange_incorrect.htm:
* web-platform-tests/IndexedDB/key_invalid.htm:
* web-platform-tests/IndexedDB/key_valid.html:
* web-platform-tests/IndexedDB/keyorder.htm:
* web-platform-tests/IndexedDB/keypath.htm:
* web-platform-tests/IndexedDB/keypath_invalid.htm:
* web-platform-tests/IndexedDB/string-list-ordering.htm:
* web-platform-tests/WebIDL/current-realm.html:
* web-platform-tests/css/css-display-3/display-contents-before-after-001.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-before-after-001.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-none.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-inline-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-inline.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-none-expected.html:
* web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-none.html:
* web-platform-tests/css/css-display-3/display-contents-flex-002-expected.html:
* web-platform-tests/css/css-display-3/display-contents-flex-002.html:
* web-platform-tests/css/css-display-3/display-contents-flex-003-expected.html:
* web-platform-tests/css/css-display-3/display-contents-flex-003.html:
* web-platform-tests/css/css-display-3/display-contents-inline-flex-001-expected.html:
* web-platform-tests/css/css-display-3/display-contents-inline-flex-001.html:
* web-platform-tests/css/css-display-3/display-contents-list-001-expected.html:
* web-platform-tests/css/css-display-3/display-contents-list-001.html:
* web-platform-tests/css/css-display-3/display-contents-multicol-001-expected.html:
* web-platform-tests/css/css-display-3/display-contents-multicol-001.html:
* web-platform-tests/css/css-display-3/display-contents-table-001-expected.html:
* web-platform-tests/css/css-display-3/display-contents-table-001.html:
* web-platform-tests/css/css-display-3/display-contents-table-002-expected.html:
* web-platform-tests/css/css-display-3/display-contents-table-002.html:
* web-platform-tests/css/css-display-3/display-flow-root-001-expected.html:
* web-platform-tests/css/css-display-3/display-flow-root-001.html:
* web-platform-tests/css/css-grid-1/grid-definition/fr-unit-expected.html:
* web-platform-tests/css/css-grid-1/grid-definition/fr-unit-with-percentage-expected.html:
* web-platform-tests/css/css-grid-1/grid-definition/fr-unit-with-percentage.html:
* web-platform-tests/css/css-grid-1/grid-definition/fr-unit.html:
* web-platform-tests/css/css-grid-1/grid-items/grid-minimum-size-grid-items-021.html:
* web-platform-tests/css/css-grid-1/grid-layout-properties.html:
* web-platform-tests/css/css-grid-1/grid-model/display-grid-expected.html:
* web-platform-tests/css/css-grid-1/grid-model/display-grid.html:
* web-platform-tests/css/css-grid-1/grid-model/display-inline-grid-expected.html:
* web-platform-tests/css/css-grid-1/grid-model/display-inline-grid.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-display-grid-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-display-inline-grid-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-float-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-inline-float-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-inline-vertical-align-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-support-display-001.html:
* web-platform-tests/css/css-grid-1/grid-model/grid-vertical-align-001.html:
* web-platform-tests/css/css-grid-1/test-plan/index.html:
* web-platform-tests/css/css-pseudo-4/marker-color-expected.html:
* web-platform-tests/css/css-pseudo-4/marker-color.html:
* web-platform-tests/css/css-pseudo-4/marker-font-properties.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-circle-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-ellipse-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-ellipse-002.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-ellipse-003.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-inset-001.html:
* web-platform-tests/css/css-shapes-1/shape-outside-invalid-inset-002.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-001.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-002.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-003.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-004.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-005.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-006.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-007.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-008.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-010.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-011.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-012.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-013.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-014.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-015.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-016.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-017.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-018.html:
* web-platform-tests/css/css-shapes-1/spec-examples/shape-outside-019.html:
* web-platform-tests/css/css-shapes-1/test-plan/index.html:
* web-platform-tests/css/css-ui-3/cursor-image-001.html:
* web-platform-tests/css/css-ui-3/cursor-image-002.html:
* web-platform-tests/css/css-ui-3/cursor-image-003.html:
* web-platform-tests/css/css-ui-3/cursor-image-004.html:
* web-platform-tests/css/css-ui-3/cursor-image-005-nfs.html:
* web-platform-tests/css/css-ui-3/cursor-image-005.html:
* web-platform-tests/css/css-ui-3/cursor-image-009.html:
* web-platform-tests/css/css-ui-3/cursor-image-012.html:
* web-platform-tests/css/css-ui-3/cursor-image-png-012.html:
* web-platform-tests/css/css-ui-3/cursor-image-png-013.html:
* web-platform-tests/css/css-ui-3/cursor-image-png-027.html:
* web-platform-tests/css/css-ui-3/cursor-image-png-028.html:
* web-platform-tests/css/css-ui-3/resize-015.html:
* web-platform-tests/css/css-ui-3/resize-018.html:
* web-platform-tests/css/css-ui-3/support/cursors/woolly-64.svg:
* web-platform-tests/css/css-ui-3/support/cursors/woolly.svg:
* web-platform-tests/css/css-ui-3/text-overflow-002-expected.html:
* web-platform-tests/css/css-ui-3/text-overflow-004-expected.html:
* web-platform-tests/css/css-ui-3/text-overflow-008.html:
* web-platform-tests/css/css-ui-3/text-overflow-011.html:
* web-platform-tests/css/css-ui-3/text-overflow-012.html:
* web-platform-tests/css/css-ui-3/text-overflow-013.html:
* web-platform-tests/css/css-ui-3/text-overflow-022.html:
* web-platform-tests/css/css-ui-3/text-overflow-023.html:
* web-platform-tests/cssom-view/elementFromPoint.html:
* web-platform-tests/cssom-view/elementsFromPoint.html:
* web-platform-tests/cssom-view/interfaces.html:
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-001-expected.html:
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-001.html:
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-002-expected.html:
* web-platform-tests/cssom-view/scrollingElement-quirks-dynamic-002.html:
* web-platform-tests/cssom/cssom-fontfacerule-constructors.html:
* web-platform-tests/cssom/cssstyledeclaration-csstext.html:
* web-platform-tests/cssom/cssstyledeclaration-mutability.html:
* web-platform-tests/cssom/interfaces.html:
* web-platform-tests/cssom/medialist-interfaces-002.html:
* web-platform-tests/cssom/style-sheet-interfaces-002.html:
* web-platform-tests/cssom/ttwf-cssom-document-extension.html:
* web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html:
* web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html:
* web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument.html:
* web-platform-tests/dom/nodes/Document-adoptNode.html:
* web-platform-tests/dom/nodes/Document-characterSet-normalization.html:
* web-platform-tests/dom/nodes/Document-constructor-svg.svg:
* web-platform-tests/dom/nodes/Document-constructor-xml.xml:
* web-platform-tests/dom/nodes/Document-constructor.html:
* web-platform-tests/dom/nodes/Document-doctype.html:
* web-platform-tests/dom/nodes/Document-getElementById.html:
* web-platform-tests/dom/nodes/Element-matches.html:
* web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html:
* web-platform-tests/dom/nodes/MutationObserver-characterData-expected.txt:
* web-platform-tests/dom/nodes/MutationObserver-characterData.html:
* web-platform-tests/dom/nodes/Node-compareDocumentPosition.html:
* web-platform-tests/dom/nodes/Node-contains.html:
* web-platform-tests/dom/nodes/Node-lookupPrefix.xhtml:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-content.html:
* web-platform-tests/dom/nodes/ParentNode-querySelector-All-content.xht:
* web-platform-tests/dom/nodes/getElementsByClassName-14.htm:
* web-platform-tests/dom/nodes/getElementsByClassName-28.htm:
* web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter.html:
* web-platform-tests/dom/traversal/TreeWalker-basic.html:
* web-platform-tests/dom/traversal/TreeWalker-currentNode.html:
* web-platform-tests/dom/traversal/TreeWalker-previousNodeLastChildReject.html:
* web-platform-tests/dom/traversal/TreeWalker-previousSiblingLastChildSkip.html:
* web-platform-tests/dom/traversal/TreeWalker-traversal-reject.html:
* web-platform-tests/dom/traversal/TreeWalker-traversal-skip-most.html:
* web-platform-tests/dom/traversal/TreeWalker-traversal-skip.html:
* web-platform-tests/dom/traversal/TreeWalker-walking-outside-a-tree.html:
* web-platform-tests/encrypted-media/clearkey-check-initdata-type.html:
* web-platform-tests/encrypted-media/clearkey-events-session-closed-event.html:
* web-platform-tests/encrypted-media/clearkey-events.html:
* web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.html:
* web-platform-tests/encrypted-media/clearkey-invalid-license.html:
* web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.html:
* web-platform-tests/encrypted-media/clearkey-keystatuses.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.html:
* web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary.html:
* web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.html:
* web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.html:
* web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.html:
* web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.html:
* web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.html:
* web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.html:
* web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.html:
* web-platform-tests/encrypted-media/clearkey-mp4-update-disallowed-input.html:
* web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.html:
* web-platform-tests/encrypted-media/clearkey-not-callable-after-createsession.html:
* web-platform-tests/encrypted-media/clearkey-update-non-ascii-input.html:
* web-platform-tests/encrypted-media/drm-check-initdata-type.html:
* web-platform-tests/encrypted-media/drm-events-session-closed-event.html:
* web-platform-tests/encrypted-media/drm-events.html:
* web-platform-tests/encrypted-media/drm-expiration.html:
* web-platform-tests/encrypted-media/drm-generate-request-disallowed-input.html:
* web-platform-tests/encrypted-media/drm-invalid-license.html:
* web-platform-tests/encrypted-media/drm-keystatuses-multiple-sessions.html:
* web-platform-tests/encrypted-media/drm-keystatuses.html:
* web-platform-tests/encrypted-media/drm-mp4-onencrypted.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license-events.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record-events.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-license.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-events.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multisession.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-two-videos.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary-waitingforkey.html:
* web-platform-tests/encrypted-media/drm-mp4-playback-temporary.html:
* web-platform-tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.html:
* web-platform-tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.html:
* web-platform-tests/encrypted-media/drm-mp4-setmediakeys.html:
* web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeys.html:
* web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysession.html:
* web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.html:
* web-platform-tests/encrypted-media/drm-mp4-unique-origin.html:
* web-platform-tests/encrypted-media/drm-mp4-waiting-for-a-key.html:
* web-platform-tests/encrypted-media/drm-not-callable-after-createsession.html:
* web-platform-tests/encrypted-media/drm-temporary-license-type.html:
* web-platform-tests/encrypted-media/resources/clearkey-retrieve-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/resources/clearkey-retrieve-persistent-license.html:
* web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html:
* web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-license.html:
* web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-usage-record.html:
* web-platform-tests/encrypted-media/resources/retrieve-persistent-usage-record.html:
* web-platform-tests/eventsource/dedicated-worker/eventsource-close.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-constructor-url-bogus.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-onmesage.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-onopen.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-prototype.htm:
* web-platform-tests/eventsource/dedicated-worker/eventsource-url.htm:
* web-platform-tests/eventsource/eventsource-constructor-document-domain.htm:
* web-platform-tests/eventsource/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/eventsource/eventsource-onmessage-trusted.htm:
* web-platform-tests/eventsource/eventsource-prototype.htm:
* web-platform-tests/eventsource/format-leading-space.htm:
* web-platform-tests/eventsource/format-mime-bogus.htm:
* web-platform-tests/eventsource/format-mime-valid-bogus.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-close.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-constructor-url-bogus.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-eventtarget.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-onmesage.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-onopen.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-prototype.htm:
* web-platform-tests/eventsource/shared-worker/eventsource-url.htm:
* web-platform-tests/fetch/api/request/multi-globals/url-parsing.html:
* web-platform-tests/fetch/api/resources/basic.html:
* web-platform-tests/fetch/api/response/multi-globals/url-parsing.html:
* web-platform-tests/fetch/api/response/response-trailer.html:
* web-platform-tests/fetch/nosniff/stylesheet.html:
* web-platform-tests/html/browsers/browsing-the-web/history-traversal/unset_context_name.html:
* web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/012.html:
* web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-form-submit.html:
* web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/001.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/002.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/003.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/004.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/005.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/006.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/007.html:
* web-platform-tests/html/browsers/browsing-the-web/scroll-to-fragid/forward-triggers-hashchange.html:
* web-platform-tests/html/browsers/history/the-history-interface/008.html:
* web-platform-tests/html/browsers/history/the-location-interface/cross_origin_joined_frame.sub.html:
* web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-weird.html:
* web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html:
* web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-with-colon.sub.html:
* web-platform-tests/html/browsers/history/the-location-interface/location-tojson.html:
* web-platform-tests/html/browsers/history/the-location-interface/same_origin_frame.html:
* web-platform-tests/html/browsers/offline/resources/html/clock.html:
* web-platform-tests/html/browsers/origin/cross-origin-objects/frame.html:
* web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_null.tentative.html:
* web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_srcdoc.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-innerheight-innerwidth.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-screenx-screeny.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-top-left.html:
* web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-width-height.html:
* web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-001.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-002.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-003.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-004.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-005.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-006.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-007.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-008.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-009.html:
* web-platform-tests/html/dom/elements/global-attributes/the-lang-attribute-010.html:
* web-platform-tests/html/dom/interfaces.html:
* web-platform-tests/html/dom/self-origin.sub.html:
* web-platform-tests/html/semantics/document-metadata/the-meta-element/the-lang-attribute-012.html:
* web-platform-tests/html/semantics/embedded-content/media-elements/user-interface/muted.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.canvas.readonly.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.canvas.reference.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.exists.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.extraargs.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.shared.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.getcontext.unique.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.type.exists.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.type.extend.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.type.prototype.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.type.replace.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.arguments.missing.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.casesensitive.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.emptystring.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.unrecognised.badname.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.unrecognised.badsuffix.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.unrecognised.nullsuffix.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/context.unrecognised.unicode.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/fallback.basic.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/fallback.multiple.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/fallback.nested.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.colour.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.2dstate.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.clip.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.different.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.gradient.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.path.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.pattern.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.same.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/initial.reset.transform.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.dataURI.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.canvas.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.drawImage.image.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.fillStyle.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.strokeStyle.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.canvas.timing.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.create.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.cross.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.fillStyle.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.image.strokeStyle.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.cross.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.reset.redirect.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.default.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.idl.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.idl.set.zero.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.decimal.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.em.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.empty.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.exp.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.hex.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.junk.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.minus.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.octal.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.onlyspace.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.percent.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.plus.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.space.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.trailingjunk.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.parse.zero.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.reflect.setcontent.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.reflect.setidl.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.reflect.setidlzero.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.removed.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.decimal.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.em.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.empty.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.exp.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.hex.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.junk.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.minus.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.octal.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.onlyspace.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.percent.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.plus.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.space.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.trailingjunk.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.whitespace.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.setAttribute.zero.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/size.attributes.style.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.arguments.1.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.arguments.2.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.arguments.3.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.bogustype.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.default.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpeg.alpha.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpeg.primarycolours.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpeg.quality.basic.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpeg.quality.notnumber.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpeg.quality.outsiderange.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.jpg.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.lowercase.ascii.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.lowercase.unicode.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.nocontext.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.png.complexcolours.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.png.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.png.primarycolours.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.unrecognised.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.zeroheight.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.zerosize.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/toDataURL.zerowidth.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.delete.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.exists.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.extend.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.name.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.prototype.html:
* web-platform-tests/html/semantics/embedded-content/the-canvas-element/type.replace.html:
* web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html:
* web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_allow_top_navigation-3.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/adoption.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/non-active-document.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-iframed.sub.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/parse-a-srcset-attribute.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/srcset/select-an-image-source.html:
* web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set-expected.txt:
* web-platform-tests/html/semantics/embedded-content/the-img-element/update-the-source-set.html:
* web-platform-tests/html/semantics/forms/form-control-infrastructure/form.html:
* web-platform-tests/html/semantics/forms/the-form-element/form-elements-filter.html:
* web-platform-tests/html/semantics/forms/the-form-element/form-nameditem.html:
* web-platform-tests/html/semantics/grouping-content/the-pre-element/grouping-pre-reftest-001.html:
* web-platform-tests/html/semantics/interactive-elements/the-details-element/details.html:
* web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-iframe.sub.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/load-error-events-1.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/load-error-events-2.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-01.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-02.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/script-type-and-language-empty.html:
* web-platform-tests/html/semantics/scripting-1/the-script-element/script-type-and-language-with-params.html:
* web-platform-tests/html/semantics/selectors/pseudo-classes/checked.html:
* web-platform-tests/html/semantics/selectors/pseudo-classes/enabled.html:
* web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange.html:
* web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly.html:
* web-platform-tests/html/semantics/tabular-data/processing-model-1/span-limits.html:
* web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.text-getter-01.html:
* web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.text-setter-01.html:
* web-platform-tests/html/semantics/text-level-semantics/the-time-element/001.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-001.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-007.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-009.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-016.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-018.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-030.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-034.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-037.html:
* web-platform-tests/html/syntax/parsing-html-fragments/the-input-byte-stream-038.html:
* web-platform-tests/html/syntax/parsing/Element.getElementsByTagName-foreign-02.html:
* web-platform-tests/html/syntax/parsing/math-parse03.html:
* web-platform-tests/html/syntax/parsing/named-character-references.html:
* web-platform-tests/html/syntax/serializing-html-fragments/serializing-expected.txt:
* web-platform-tests/html/syntax/serializing-html-fragments/serializing.html:
* web-platform-tests/html/webappapis/atob/base64.html:
* web-platform-tests/html/webappapis/scripting/events/eventhandler-cancellation.html:
* web-platform-tests/html/webappapis/scripting/events/resources/compiled-event-handler-settings-objects-support.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-in-body-onerror.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-parse-error.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-throw.html:
* web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error.html:
* web-platform-tests/media-source/mediasource-activesourcebuffers.html:
* web-platform-tests/media-source/mediasource-addsourcebuffer.html:
* web-platform-tests/media-source/mediasource-append-buffer.html:
* web-platform-tests/media-source/mediasource-appendbuffer-quota-exceeded.html:
* web-platform-tests/media-source/mediasource-appendwindow.html:
* web-platform-tests/media-source/mediasource-attach-stops-delaying-load-event.html:
* web-platform-tests/media-source/mediasource-avtracks.html:
* web-platform-tests/media-source/mediasource-buffered.html:
* web-platform-tests/media-source/mediasource-closed.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-a-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-av-audio-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-av-framesize.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-av-video-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-v-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-v-framerate.html:
* web-platform-tests/media-source/mediasource-config-change-mp4-v-framesize.html:
* web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-webm-av-audio-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-webm-av-framesize.html:
* web-platform-tests/media-source/mediasource-config-change-webm-av-video-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-webm-v-bitrate.html:
* web-platform-tests/media-source/mediasource-config-change-webm-v-framerate.html:
* web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html:
* web-platform-tests/media-source/mediasource-detach.html:
* web-platform-tests/media-source/mediasource-duration-boundaryconditions.html:
* web-platform-tests/media-source/mediasource-duration.html:
* web-platform-tests/media-source/mediasource-endofstream-invaliderror.html:
* web-platform-tests/media-source/mediasource-errors.html:
* web-platform-tests/media-source/mediasource-getvideoplaybackquality.html:
* web-platform-tests/media-source/mediasource-is-type-supported.html:
* web-platform-tests/media-source/mediasource-liveseekable.html:
* web-platform-tests/media-source/mediasource-multiple-attach.html:
* web-platform-tests/media-source/mediasource-play-then-seek-back.html:
* web-platform-tests/media-source/mediasource-play.html:
* web-platform-tests/media-source/mediasource-preload.html:
* web-platform-tests/media-source/mediasource-redundant-seek.html:
* web-platform-tests/media-source/mediasource-remove.html:
* web-platform-tests/media-source/mediasource-removesourcebuffer.html:
* web-platform-tests/media-source/mediasource-seek-beyond-duration.html:
* web-platform-tests/media-source/mediasource-seek-during-pending-seek.html:
* web-platform-tests/media-source/mediasource-seekable.html:
* web-platform-tests/media-source/mediasource-sequencemode-append-buffer.html:
* web-platform-tests/media-source/mediasource-sourcebuffer-mode.html:
* web-platform-tests/media-source/mediasource-sourcebuffer-trackdefaults.html:
* web-platform-tests/media-source/mediasource-sourcebufferlist.html:
* web-platform-tests/media-source/mediasource-timestamp-offset.html:
* web-platform-tests/media-source/mediasource-trackdefault.html:
* web-platform-tests/media-source/mediasource-trackdefaultlist.html:
* web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none.https.html:
* web-platform-tests/resource-timing/resource-timing.html:
* web-platform-tests/resource-timing/resources/resource_timing_test0.xml:
* web-platform-tests/resources/test/tests/iframe-consolidate-errors.html:
* web-platform-tests/resources/test/tests/iframe-consolidate-tests.html:
* web-platform-tests/resources/test/tests/iframe-msg.html:
* web-platform-tests/service-workers/service-worker/fetch-response-taint.https.html:
* web-platform-tests/service-workers/service-worker/multi-globals/url-parsing.https.html:
* web-platform-tests/service-workers/service-worker/multiple-update.https.html:
* web-platform-tests/service-workers/service-worker/resources/appcache-ordering.is-appcached.html:
* web-platform-tests/service-workers/service-worker/resources/clients-matchall-client-types-iframe.html:
* web-platform-tests/service-workers/service-worker/update-after-oneday.https.html:
* web-platform-tests/service-workers/stub-3.1-service-worker-obj.html:
* web-platform-tests/service-workers/stub-3.1.1-service-worker-scope.html:
* web-platform-tests/service-workers/stub-3.1.2-service-worker-url.html:
* web-platform-tests/service-workers/stub-3.1.3-service-worker-state.html:
* web-platform-tests/service-workers/stub-3.1.4-service-worker-on-state-change.html:
* web-platform-tests/service-workers/stub-3.2-navigator-service-worker.html:
* web-platform-tests/service-workers/stub-3.2.1-navigator-service-worker-installing.html:
* web-platform-tests/service-workers/stub-3.2.10-navigator-service-worker-oncontrollerchange.html:
* web-platform-tests/service-workers/stub-3.2.11-navigator-service-worker-onreloadpage.html:
* web-platform-tests/service-workers/stub-3.2.12-navigator-service-worker-onerror.html:
* web-platform-tests/service-workers/stub-3.2.2-navigator-service-worker-waiting.html:
* web-platform-tests/service-workers/stub-3.2.3-navigator-service-worker-active.html:
* web-platform-tests/service-workers/stub-3.2.4-navigator-service-worker-controller.html:
* web-platform-tests/service-workers/stub-3.2.5-navigator-service-worker-ready.html:
* web-platform-tests/service-workers/stub-3.2.6-navigator-service-worker-getAll.html:
* web-platform-tests/service-workers/stub-3.2.7-navigator-service-worker-register.html:
* web-platform-tests/service-workers/stub-3.2.8-navigator-service-worker-unregister.html:
* web-platform-tests/service-workers/stub-3.2.9-navigator-service-worker-onupdatefound.html:
* web-platform-tests/service-workers/stub-4.1-service-worker-global-scope.html:
* web-platform-tests/service-workers/stub-4.1.1-service-worker-global-scope-caches.html:
* web-platform-tests/service-workers/stub-4.1.2-service-worker-global-scope-clients.html:
* web-platform-tests/service-workers/stub-4.1.3-service-worker-global-scope-scope.html:
* web-platform-tests/service-workers/stub-4.1.4-service-worker-global-scope-fetch.html:
* web-platform-tests/service-workers/stub-4.1.5-service-worker-global-scope-update.html:
* web-platform-tests/service-workers/stub-4.1.6-service-worker-global-scope-unregister.html:
* web-platform-tests/service-workers/stub-4.1.7-service-worker-global-scope-onmessage.html:
* web-platform-tests/service-workers/stub-4.2-client.html:
* web-platform-tests/service-workers/stub-4.3-service-worker-clients.html:
* web-platform-tests/service-workers/stub-4.3.1-get-serviced-method.html:
* web-platform-tests/service-workers/stub-4.3.2-reloadall-method.html:
* web-platform-tests/service-workers/stub-4.5-response-objects.html:
* web-platform-tests/service-workers/stub-4.5.2-response.html:
* web-platform-tests/service-workers/stub-4.5.4-opaque-response.html:
* web-platform-tests/service-workers/stub-4.6-cache-objects.html:
* web-platform-tests/service-workers/stub-4.6.1-cache-lifetimes.html:
* web-platform-tests/service-workers/stub-4.6.3-cache-storage.html:
* web-platform-tests/service-workers/stub-4.7.1-install-phase-event.html:
* web-platform-tests/service-workers/stub-4.7.1.1-wait-until-method.html:
* web-platform-tests/service-workers/stub-4.7.2-install-event.html:
* web-platform-tests/service-workers/stub-4.7.2.1-install-event-section.html:
* web-platform-tests/service-workers/stub-4.7.2.2-replace-method.html:
* web-platform-tests/service-workers/stub-4.7.3-activate-event.html:
* web-platform-tests/service-workers/stub-4.7.4.1-fetch-event-section.html:
* web-platform-tests/service-workers/stub-4.7.4.2-respond-with-method.html:
* web-platform-tests/service-workers/stub-4.7.4.3-default-method.html:
* web-platform-tests/service-workers/stub-4.7.4.4-is-reload-attribute.html:
* web-platform-tests/service-workers/stub-5.1-origin-relativity.html:
* web-platform-tests/service-workers/stub-5.2-cross-origin-resources.html:
* web-platform-tests/shadow-dom/leaktests/get-elements.html:
* web-platform-tests/tools/pywebsocket/src/example/arraybuffer_benchmark.html:
* web-platform-tests/tools/pywebsocket/src/example/benchmark.html:
* web-platform-tests/tools/pywebsocket/src/example/console.html:
* web-platform-tests/tools/pywebsocket/src/example/eventsource.html:
* web-platform-tests/tools/pywebsocket/src/example/xhr_benchmark.html:
* web-platform-tests/tools/pywebsocket/src/example/xhr_event_logger.html:
* web-platform-tests/url/a-element-origin-xhtml.xhtml:
* web-platform-tests/url/a-element-origin.html:
* web-platform-tests/url/a-element-xhtml.xhtml:
* web-platform-tests/url/a-element.html:
* web-platform-tests/webrtc/RTCConfiguration-iceCandidatePoolSize.html:
* web-platform-tests/webrtc/RTCPeerConnection-canTrickleIceCandidates.html:
* web-platform-tests/webrtc/RTCPeerConnection-idl.html:
* web-platform-tests/webrtc/RTCPeerConnectionIceEvent-constructor.html:
* web-platform-tests/webrtc/datachannel-emptystring.html:
* web-platform-tests/webrtc/datachannel-idlharness.html:
* web-platform-tests/webrtc/getstats.html:
* web-platform-tests/webrtc/no-media-call.html:
* web-platform-tests/webrtc/promises-call.html:
* web-platform-tests/webrtc/simplecall.html:

Tools:

Update import-w3c-tests to stop rewriting tests as this is causing some tests
to fail unexpectedly.

* Scripts/webkitpy/w3c/test_importer.py:
(TestImporter.import_tests):

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

2 years agoUse asynchronous ResourceHandleClient calls for WebKit1
achristensen@apple.com [Fri, 13 Oct 2017 01:55:24 +0000 (01:55 +0000)]
Use asynchronous ResourceHandleClient calls for WebKit1
https://bugs.webkit.org/show_bug.cgi?id=160677

Reviewed by Brady Eidson.

Source/WebCore:

Covered by existing tests.

* PlatformAppleWin.cmake:
* PlatformMac.cmake:
* WebCore.xcodeproj/project.pbxproj:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequestAsync):
(WebCore::ResourceLoader::didReceiveResponseAsync):
(WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):
* loader/ResourceLoader.h:
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didReceiveResponseAsync):
(WebCore::ApplicationCacheGroup::willSendRequestAsync):
(WebCore::ApplicationCacheGroup::canAuthenticateAgainstProtectionSpaceAsync):
(WebCore::ApplicationCacheGroup::didReceiveResponse): Deleted.
* loader/appcache/ApplicationCacheGroup.h:
* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::continueDidReceiveResponse):
(WebCore::BlobResourceHandle::getSizeForNext):
(WebCore::BlobResourceHandle::notifyResponseOnSuccess):
(WebCore::BlobResourceHandle::notifyResponseOnError):
* platform/network/PingHandle.h:
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::didReceiveResponse):
(WebCore::ResourceHandle::usesAsyncCallbacks): Deleted.
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::~ResourceHandleClient):
(WebCore::ResourceHandleClient::willSendRequest): Deleted.
(WebCore::ResourceHandleClient::willSendRequestAsync): Deleted.
(WebCore::ResourceHandleClient::didReceiveResponseAsync): Deleted.
(WebCore::ResourceHandleClient::canAuthenticateAgainstProtectionSpaceAsync): Deleted.
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandleClient::didReceiveResponse): Deleted.
(WebCore::ResourceHandleClient::usesAsyncCallbacks): Deleted.
(WebCore::ResourceHandleClient::canAuthenticateAgainstProtectionSpace): Deleted.
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::willSendRequestAsync):
(WebCore::SynchronousLoaderClient::canAuthenticateAgainstProtectionSpaceAsync):
(WebCore::SynchronousLoaderClient::didReceiveResponseAsync):
(WebCore::SynchronousLoaderClient::didFinishLoading):
(WebCore::SynchronousLoaderClient::didFail):
(WebCore::SynchronousLoaderClient::willSendRequest): Deleted.
(WebCore::SynchronousLoaderClient::canAuthenticateAgainstProtectionSpace): Deleted.
(WebCore::SynchronousLoaderClient::didReceiveResponse): Deleted.
* platform/network/SynchronousLoaderClient.h:
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::shouldUseCredentialStorage):
(WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::ResourceHandleCFURLConnectionDelegateWithOperationQueue):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::releaseHandle):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueCanAuthenticateAgainstProtectionSpace):
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp: Removed.
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h: Removed.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::schedule):
(WebCore::ResourceHandle::makeDelegate):
(WebCore::ResourceHandle::delegate):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::continueWillSendRequest):
(WebCore::ResourceHandle::continueDidReceiveResponse):
(WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueWillCacheResponse):
(WebCore::ResourceHandle::shouldUseCredentialStorage): Deleted.
* platform/network/mac/WebCoreResourceHandleAsDelegate.h: Removed.
* platform/network/mac/WebCoreResourceHandleAsDelegate.mm: Removed.
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveAuthenticationChallenge:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveData:lengthReceived:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didFailWithError:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):

Source/WebKitLegacy:

* WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::createPingHandle):

LayoutTests:

* TestExpectations:
* platform/gtk/TestExpectations:
* platform/ios-wk2/TestExpectations:
* platform/mac-wk2/TestExpectations:
* platform/wk2/TestExpectations:

http/tests/cache/iframe-304-crash.html used to deterministically record its didFinishLoading callback,
but only for WK1.  It was marked as flaky for all WK2 ports.  It is now flaky in WK1 because the order
of the testRunner.notifyDone call and the didFinishLoading logging is no longer deterministic with
asynchronous loading, but the test still verifies that there is no crash.

http/tests/security/cross-origin-modal-dialog-base.html does navigation during showModalDialog, which
probably should've never worked in WK1 and never worked in WK2.  WK1 behavior now matches WK2 behavior.
I'm not aware of any complaints about no navigation working during showModalDialog in WK2 and I imagine
nobody will be regressed by this change, but if we do find such a problem, creative use of MessageQueues
like we do with sync xhr in WK1 now could theoretically fix the problem, but we are trying to get
rid of showModalDialog anyway.  The test was written to verify that the SecurityOrigin doesn't fall back
to the wrong origin, and it certainly doesn't now.

These tests dump load delegate call order, which are less deterministic now but the tests still behave correctly.
http/tests/svg/svg-use-external.html
http/tests/loading/text-content-type-with-binary-extension.html
http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame.html

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

2 years agoRemove unnecessary includes in WebKit
achristensen@apple.com [Fri, 13 Oct 2017 01:10:13 +0000 (01:10 +0000)]
Remove unnecessary includes in WebKit
https://bugs.webkit.org/show_bug.cgi?id=178235

Reviewed by Tim Horton.

* Platform/IPC/ArgumentCoders.h:
* WebProcess/WebProcess.cpp:
* WebProcess/WebStorage/StorageAreaImpl.h:

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

2 years agoIncrement ContentRuleListStore::CurrentContentRuleListFileVersion
achristensen@apple.com [Fri, 13 Oct 2017 01:04:35 +0000 (01:04 +0000)]
Increment ContentRuleListStore::CurrentContentRuleListFileVersion
https://bugs.webkit.org/show_bug.cgi?id=178246
<rdar://problem/34890057>

Reviewed by Tim Horton.

* UIProcess/API/APIContentRuleListStore.h:
Things are crashing.  Something isn't binary reverse compatible.
Probably something related to r222602.
This is why we have a version number to update.

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

2 years agoWeb Inspector: Switch Clear navigation item back to the Trash icon (Console, Timeline...
commit-queue@webkit.org [Fri, 13 Oct 2017 00:47:51 +0000 (00:47 +0000)]
Web Inspector: Switch Clear navigation item back to the Trash icon (Console, Timelines, Network)
https://bugs.webkit.org/show_bug.cgi?id=178244
<rdar://problem/34966525>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-10-12
Reviewed by Brian Burg.

* UserInterface/Images/NavigationItemClear.svg: Removed.
* UserInterface/Images/gtk/NavigationItemClear.svg: Removed.
* UserInterface/Views/LogContentView.js:
(WI.LogContentView):
* UserInterface/Views/NetworkGridContentView.js:
(WI.NetworkGridContentView):
* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
* UserInterface/Views/TimelineRecordingContentView.js:
(WI.TimelineRecordingContentView):
Many users found the new Clear icon confusing. Revert to the Trash icon.

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

2 years agoExpose some of WKView's WebViewImpl accessors through WKWebViewPrivate
achristensen@apple.com [Fri, 13 Oct 2017 00:41:45 +0000 (00:41 +0000)]
Expose some of WKView's WebViewImpl accessors through WKWebViewPrivate
https://bugs.webkit.org/show_bug.cgi?id=178240
<rdar://problem/34962720>

Reviewed by Tim Horton.

Also renamed createFullScreenWindow to fullScreenWindow to reflect the fact that it returns
an autoreleased NSWindow so we don't make the same naming mistake in the WKWebView SPI.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _dismissContentRelativeChildWindows]):
(-[WKWebView _setFrame:andScrollBy:]):
(-[WKWebView _setTotalHeightOfBanners:]):
(-[WKWebView _totalHeightOfBanners]):
(-[WKWebView _beginDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChangesSync]):
(-[WKWebView _gestureEventWasNotHandledByWebCore:]):
(-[WKWebView _setIgnoresNonWheelEvents:]):
(-[WKWebView _ignoresNonWheelEvents]):
(-[WKWebView _setCustomSwipeViews:]):
(-[WKWebView _setCustomSwipeViewsTopContentInset:]):
(-[WKWebView _tryToSwipeWithEvent:ignoringPinnedState:]):
(-[WKWebView _setDidMoveSwipeSnapshotCallback:]):
(-[WKWebView _fullScreenPlaceholderView]):
(-[WKWebView _fullScreenWindow]):
(-[WKWebView _disableFrameSizeUpdates]):
(-[WKWebView _enableFrameSizeUpdates]):
(-[WKWebView _canChangeFrameLayout:]):
(-[WKWebView _underlayColor]):
(-[WKWebView _setUnderlayColor:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView createFullScreenWindow]):
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::fullScreenWindowController):
(WebKit::WebViewImpl::fullScreenWindow):
(WebKit::WebViewImpl::createFullScreenWindow): Deleted.

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

2 years agoAdd Expected, HashMap, HashSet, and SHA1 to wtf/Forward.h
achristensen@apple.com [Fri, 13 Oct 2017 00:39:55 +0000 (00:39 +0000)]
Add Expected, HashMap, HashSet, and SHA1 to wtf/Forward.h
https://bugs.webkit.org/show_bug.cgi?id=178243

Reviewed by Tim Horton.

* wtf/Forward.h:
* wtf/HashMap.h:
Move default parameters to Forward.h like we did with Vector.
* wtf/HashSet.h:
Also fix indentation.

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

2 years agoLayout Test http/tests/cache-storage/cache-clearing.https.html is failing
commit-queue@webkit.org [Fri, 13 Oct 2017 00:36:07 +0000 (00:36 +0000)]
Layout Test http/tests/cache-storage/cache-clearing.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=178200

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-12
Reviewed by Chris Dumez.

Source/WebKit:

Deleting only the per-origin folders inside the CacheStorage engine root folder.

* NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::clearAllCaches):
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreRemoveAllFetchCaches):
(WKWebsiteDataStoreRemoveFetchCacheForOrigin):
* UIProcess/API/C/WKWebsiteDataStoreRef.h:

Tools:

Making clearDOMCache wait for removal completion to exit.
This removes the risk to interact with the cache while deleting it which will end up be racy in tests.

* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::clearDOMCache):
* WebKitTestRunner/TestController.cpp:
(WTR::ClearDOMCacheCallbackContext::ClearDOMCacheCallbackContext):
(WTR::clearDOMCacheCallback):
(WTR::TestController::clearDOMCache):
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Splitting cache-clearing.https.html in two sub tests and marking them as Pass/Timeout for the moment.

* platform/win/TestExpectations: Skipping cache/sw tests.
* TestExpectations:
* http/tests/cache-storage/cache-clearing.https.html: Removed.
* http/tests/cache-storage/cache-clearing-all.https-expected.txt: Added.
* http/tests/cache-storage/cache-clearing-all.https.html: Added.
* http/tests/cache-storage/cache-clearing-origin.https-expected.txt: Added.
* http/tests/cache-storage/cache-clearing-origin.https.html: Added.

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

2 years ago[Mac] Add support for MouseEvent.buttons
cdumez@apple.com [Fri, 13 Oct 2017 00:24:21 +0000 (00:24 +0000)]
[Mac] Add support for MouseEvent.buttons
https://bugs.webkit.org/show_bug.cgi?id=178214

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline test now that more checks are passing.

* web-platform-tests/dom/events/Event-subclasses-constructors-expected.txt:

Source/WebCore:

Add support for MouseEvent.buttons on Mac as per:
- https://www.w3.org/TR/uievents/#ref-for-dom-mouseevent-buttons-1

This is supported by Firefox and Chrome already.

No new tests, rebaselined existing test.

* dom/Element.cpp:
(WebCore::Element::dispatchMouseEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
* dom/MouseEvent.h:
(WebCore::MouseEvent::buttons const):
* dom/MouseEvent.idl:
* dom/MouseEventInit.h:
* dom/MouseEventInit.idl:
* dom/SimulatedClick.cpp:
* dom/WheelEvent.cpp:
* page/EventHandler.cpp:
(WebCore::EventHandler::dispatchDragEvent):
* platform/PlatformMouseEvent.h:
(WebCore::PlatformMouseEvent::buttons const):
* platform/mac/PlatformEventFactoryMac.mm:
(WebCore::currentlyPressedMouseButtons):
(WebCore::PlatformMouseEventBuilder::PlatformMouseEventBuilder):

Source/WebKit:

* Shared/WebEvent.h:
(WebKit::WebMouseEvent::buttons const):
* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformMouseEvent::WebKit2PlatformMouseEvent):
* Shared/WebMouseEvent.cpp:
(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode const):
(WebKit::WebMouseEvent::decode):
* Shared/mac/WebEventFactory.mm:
(WebKit::currentlyPressedMouseButtons):
(WebKit::WebEventFactory::createWebMouseEvent):
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::showContextMenuAtPoint):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::createWebEvent const):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPage::simulateMouseDown):
(WebKit::WebPage::simulateMouseUp):
(WebKit::WebPage::simulateMouseMotion):

Source/WebKitLegacy/mac:

* WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

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

2 years agoAdd API to clean CacheStorage data
commit-queue@webkit.org [Fri, 13 Oct 2017 00:19:48 +0000 (00:19 +0000)]
Add API to clean CacheStorage data
https://bugs.webkit.org/show_bug.cgi?id=178034

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-12

* Shared/WebsiteData/WebsiteDataType.h: fixing the DOMCache value.

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

2 years ago[WinCairo] add WebProcess files for wincairo webkit
commit-queue@webkit.org [Thu, 12 Oct 2017 22:36:55 +0000 (22:36 +0000)]
[WinCairo] add WebProcess files for wincairo webkit
https://bugs.webkit.org/show_bug.cgi?id=178024

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2017-10-12
Reviewed by Alex Christensen.

* PlatformWin.cmake:
* WebProcess/Cookies/curl/WebCookieManagerCurl.cpp: Added.
(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
(WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy):
* WebProcess/InjectedBundle/win/InjectedBundleWin.cpp: Added.
(WebKit::InjectedBundle::initialize):
(WebKit::InjectedBundle::setBundleParameter):
(WebKit::InjectedBundle::setBundleParameters):
* WebProcess/Plugins/Netscape/JSNPObject.cpp:
* WebProcess/Plugins/Netscape/win/PluginProxyWin.cpp: Added.
(WebKit::PluginProxy::needsBackingStore const):
* WebProcess/WebCoreSupport/win/WebContextMenuClientWin.cpp: Added.
(WebKit::WebContextMenuClient::lookUpInDictionary):
(WebKit::WebContextMenuClient::isSpeaking):
(WebKit::WebContextMenuClient::speak):
(WebKit::WebContextMenuClient::stopSpeaking):
* WebProcess/WebCoreSupport/win/WebFrameNetworkingContext.cpp: Added.
(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession):
(WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession):
(WebKit::WebFrameNetworkingContext::WebFrameNetworkingContext):
(WebKit::WebFrameNetworkingContext::storageSession const):
(WebKit::WebFrameNetworkingContext::webFrameLoaderClient const):
(WebKit::WebFrameNetworkingContext::blockedError const):
* WebProcess/WebCoreSupport/win/WebFrameNetworkingContext.h: Added.
(WebKit::WebFrameNetworkingContext::create):
* WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp: Added.
(WebKit::WebPopupMenu::setUpPlatformData):
* WebProcess/WebPage/win/WebInspectorUIWin.cpp: Added.
(WebKit::WebInspectorUI::canSave):
(WebKit::WebInspectorUI::localizedStringsURL):
(WebKit::RemoteWebInspectorUI::localizedStringsURL):
* WebProcess/WebPage/win/WebPageWin.cpp: Added.
(WebKit::WebPage::platformInitialize):
(WebKit::WebPage::platformDetach):
(WebKit::WebPage::platformEditorState const):
(WebKit::WebPage::platformPreferencesDidChange):
(WebKit::WebPage::performDefaultBehaviorForKeyEvent):
(WebKit::WebPage::platformHasLocalDataForURL):
(WebKit::WebPage::cachedResponseMIMETypeForURL):
(WebKit::WebPage::platformCanHandleRequest):
(WebKit::WebPage::cachedSuggestedFilenameForURL):
(WebKit::WebPage::cachedResponseDataForURL):
(WebKit::WebPage::platformUserAgent const):
(WebKit::WebPage::interpretKeyEvent):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureWebToStorageProcessConnection):
* WebProcess/win/WebProcessWin.cpp: Added.
(loadResourceIntoBuffer):
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformTerminate):
(WebKit::WebProcess::platformSetCacheModel):

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

2 years ago[iOS] Fix -Wunused-lambda-capture warnings in WebCore/WebKit with new clang compiler
ddkilzer@apple.com [Thu, 12 Oct 2017 21:44:05 +0000 (21:44 +0000)]
[iOS] Fix -Wunused-lambda-capture warnings in WebCore/WebKit with new clang compiler
<https://webkit.org/b/178226>

Reviewed by Chris Fleizach.

Source/WebCore:

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityArticleAncestor]):
- Remove unused lambda variable 'self'.

Source/WebKit:

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:withFlags:]):
- Remove unused lambda variable 'touch' which was also passed as
  an argument.
(-[WKContentView changeSelectionWithTouchesFrom:to:withGesture:withState:]):
- Remove unused lambda variable 'gestureState' which was also
  passed as an argument.
(-[WKContentView _simulateLongPressActionAtLocation:]):
- Remove unused lambda variable 'location'.

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

2 years agoMark more InlineBox member functions as const
dbates@webkit.org [Thu, 12 Oct 2017 21:38:04 +0000 (21:38 +0000)]
Mark more InlineBox member functions as const
https://bugs.webkit.org/show_bug.cgi?id=178217

Reviewed by Andy Estes.

* rendering/InlineBox.cpp:
(WebCore::InlineBox::locationIncludingFlipping const): Mark as const. Also fix some style
nits while I am here.
(WebCore::InlineBox::flipForWritingMode const): Mark as const.
(WebCore::InlineBox::locationIncludingFlipping): Deleted.
(WebCore::InlineBox::flipForWritingMode): Deleted.
* rendering/InlineBox.h:

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

2 years agoTeach InlineTextBox::clampOffset() about combined text and hyphenation
dbates@webkit.org [Thu, 12 Oct 2017 21:31:36 +0000 (21:31 +0000)]
Teach InlineTextBox::clampOffset() about combined text and hyphenation
https://bugs.webkit.org/show_bug.cgi?id=178032

Reviewed by Zalan Bujtas.

Treat combined text and the last character of a word halve plus hyphen as single units.

With regards to combined text, ideally we would allow arbitrary selection inside combined
text. Currently we do not support selection of combined text. To simplify the process of
adding support for selecting combined text we treat combined text as a single unit. Once
we are confident that we correctly implemented such support we can re-evaluate allowing
arbitrary selection of combined text.

With regards to treating the last character of a word halve plus hyphen as a single unit.
This patch extends the targeted fix made for document markers in r223013 to all code that
makes use of clamped offsets as a result the selection rect for inline boxes more accurately
reflect the rectangle(s) that make up the painted selection. This is a step towards reconciling
the difference between the computation of the rectangle that represents an arbitrary
selection and the code that paints the active selection as part of <https://bugs.webkit.org/show_bug.cgi?id=138913>.

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::localSelectionRect const): Compute text run, including combined text
or hyphens due to line wrapping now that specified start and end positions are clamped with
respect to combined text and hyphens (computed earlier in this function). Only measure the
text represented by the selection if the start position > 0 or the end position is not equal
to the length of the run.
(WebCore::InlineTextBox::paint): Remove unnecessary code to fix up the selection start and
end positions based on the truncation offset as this is done by clampedOffset(), called by
selectionStartEnd().
(WebCore::InlineTextBox::clampedOffset const): Modified to adjust the clamped offset with
respect to truncation as well as treat combined text or a trailing word halve plus hyphen
as single units. Assert that we are not fully truncated because it does not make sense to
be computing the clamped offset in such a situation since nothing should be painted.
(WebCore::InlineTextBox::selectionStartEnd const): Modified to compute the end of an inside
selection using clampedOffset() to account for truncation, combined text or a hyphen. We
already are using clampedOffset() when computing the start and end position for all other
selection states.
(WebCore::InlineTextBox::paintSelection): Compute text run, including combined text
or hyphens due to line wrapping now that specified start and end positions are clamped with
respect to combined text and hyphens (computed earlier in this function). Remove unnecessary
code to adjust selection end point with respect to truncation, combined text, or an added
hyphen now that selectionStartEnd() takes care of this (via clampedOffset()).
(WebCore::InlineTextBox::paintTextSubrangeBackground): Compute text run, including combined
text or hyphens due to line wrapping now that specified start and end positions are clamped
with respect to combined text and hyphens (computed earlier in this function).
(WebCore::InlineTextBox::paintDocumentMarker): Compute text run, including combined text now
that specified start and end positions are clamped with respect to combined text (computed earlier in this function).
Also remove unnecessary code to adjust end offset of the marker with respect to truncation
and length of the text run as clampedOffset() now does this for us.

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

2 years agoAdd CompletionHandler and HashCountedSet to wtf/Forward.h
achristensen@apple.com [Thu, 12 Oct 2017 21:29:29 +0000 (21:29 +0000)]
Add CompletionHandler and HashCountedSet to wtf/Forward.h
https://bugs.webkit.org/show_bug.cgi?id=178231

Reviewed by Tim Horton.

* wtf/Forward.h:
* wtf/HashCountedSet.h:

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

2 years agoMark some xhtml tests as failing on Windows.
pvollan@apple.com [Thu, 12 Oct 2017 21:16:59 +0000 (21:16 +0000)]
Mark some xhtml tests as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=178230

Unreviewed test gardening.

* platform/win/TestExpectations:

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

2 years agoDon't assert if mix-blend-mode is set to a non-separable blend mode on a composited...
simon.fraser@apple.com [Thu, 12 Oct 2017 21:12:36 +0000 (21:12 +0000)]
Don't assert if mix-blend-mode is set to a non-separable blend mode on a composited layer
https://bugs.webkit.org/show_bug.cgi?id=178196
rdar://problem/34942337

Reviewed by Dan Bates.

Source/WebCore:

Core Animation doesn't support non-separable blend modes (hue, saturation, color, luminosity)
on layers, but don't assert if we try to use them.

Test: compositing/filters/blend-mode-saturation.html

* platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:
(PlatformCAFilters::setBlendingFiltersOnLayer):

LayoutTests:

* compositing/filters/blend-mode-saturation-expected.txt: Added.
* compositing/filters/blend-mode-saturation.html: Added.

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

2 years agoResourceLoadObserver::logFrameNavigation() should use redirectResponse.url()
wilander@apple.com [Thu, 12 Oct 2017 20:13:00 +0000 (20:13 +0000)]
ResourceLoadObserver::logFrameNavigation() should use redirectResponse.url()
https://bugs.webkit.org/show_bug.cgi?id=175257
<rdar://problem/33359866>

Reviewed by Brent Fulgham.

Source/WebCore:

This patch was joint work between Michael Specter and John Wilander.

Tests: http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html
       http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html
       http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html
       http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html
       http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html
       http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html
       http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
    Now sends redirectResponse.url() to WebCore::ResourceLoadObserver::logFrameNavigation().
* loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::logFrameNavigation):
    Now receives the redirect response URL from WebCore::DocumentLoader().
(WebCore::ResourceLoadObserver::nonNullOwnerURL const):
    New function to traverse the frame chain upward and find the first non-null URL.
* loader/ResourceLoadObserver.h:

Source/WebKit:

* UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _resourceLoadStatisticsIsRegisteredAsSubFrameUnder:topFrameHost:completionHandler:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsIsRegisteredAsRedirectingTo:hostRedirectedTo:completionHandler:]):
    Test infrastructure.
* UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsSubFrameUnder):
(WebKit::WebResourceLoadStatisticsStore::isRegisteredAsRedirectingTo):
    Test infrastructure.
* UIProcess/WebResourceLoadStatisticsStore.h:

Tools:

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::isStatisticsRegisteredAsSubFrameUnder):
(WTR::TestRunner::isStatisticsRegisteredAsRedirectingTo):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::isStatisticsRegisteredAsSubFrameUnder):
    Not implemented.
(WTR::TestController::isStatisticsRegisteredAsRedirectingTo):
    Not implemented.
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::isStatisticsRegisteredAsSubFrameUnder):
    Implemented platform-specific.
(WTR::TestController::isStatisticsRegisteredAsRedirectingTo):
    Implemented platform-specific.

LayoutTests:

* TestExpectations:
    Marked new directory as [ Skip ] since these are WK2-only.
* http/tests/resourceLoadStatistics: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/resources: Added.
* http/tests/resourceLoadStatistics/resources/iframe-report-back-loaded.html: Added.
* http/tests/resourceLoadStatistics/resources/page-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/resources/page-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/resources/page-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/resources/page-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/resources/redirect.php: Added.
* http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost-expected.txt: Added.
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html: Added.
* platform/gtk/TestExpectations:
    Marked new directory as [ Skip ].
* platform/wk2/TestExpectations:
    Marked new directory as [ Pass ].
* platform/wpe/TestExpectations:
    Marked new directory as [ Skip ].

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

2 years agoMarked imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation...
jlewis3@apple.com [Thu, 12 Oct 2017 20:01:35 +0000 (20:01 +0000)]
Marked imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation-data-url.tentative.sub.html as flaky on iOS.
https://bugs.webkit.org/show_bug.cgi?id=177547

Unreviewed test gardening.

* platform/ios/TestExpectations:

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

2 years ago[Win64] JSC compile error.
pvollan@apple.com [Thu, 12 Oct 2017 19:24:02 +0000 (19:24 +0000)]
[Win64] JSC compile error.
https://bugs.webkit.org/show_bug.cgi?id=178213

Reviewed by Alex Christensen.

Add static cast from int64 to uintptr_t.

* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::executeOSRExit):

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

2 years ago[iOS] Conditionally rename DatabaseProcess to StorageProcess when building for iOS...
aestes@apple.com [Thu, 12 Oct 2017 19:12:04 +0000 (19:12 +0000)]
[iOS] Conditionally rename DatabaseProcess to StorageProcess when building for iOS devices
https://bugs.webkit.org/show_bug.cgi?id=178181
<rdar://problem/33660282>

Reviewed by Dan Bernstein.

Source/WebKit:

* Configurations/BaseTarget.xcconfig:
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::serviceName):
* WebKit.xcodeproj/project.pbxproj:

Tools:

* WebKitTestRunner/TestController.cpp:
(WTR::TestController::databaseProcessName):

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

2 years agoEmit SPIR-V from WSL compiler (Part 1)
mmaxfield@apple.com [Thu, 12 Oct 2017 18:45:04 +0000 (18:45 +0000)]
Emit SPIR-V from WSL compiler (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=177998

Reviewed by Filip Pizlo.

This patch implements the first half of a SPIR-V codegen phase for WSL.
This includes all the operations which aren't actually emitting the contents
of functions themselves. For example, this includes things like representing
WSL types with SPIR-V types, and declaring shaders' inputs and outputs. A
future patch will actually emit the contents of functions.

There are two helper visitors here: SPIRVTypeAnalyzer which generates SPIR-V
types from WSL types, and SPIRVPrimitiveVariableAnalyzer which identifies
input and output variables from a shader (and assigns location values to
each one).

This patch is currently pursuing the "logical mode" detailed in
https://bugs.webkit.org/show_bug.cgi?id=176967. In this mode, each pointer and
array reference operation can be statically traced to the variable or array it
is operating on.

This has the interesting property where accessing a pointer inside an array is
forbidden, because the array index may be computed at runtime, so the compiler
can't know at compile time which variable the pointer operation will be
accessing. However, this isn't true for structs; the program must statically
state which struct member it is accessing. Therefore, pointers or array
references must not transitively appear within an array, but they may appear
within a struct. The same logic applies to array references; those get lowered
to just two indexes in SPIR-V (a lower bound and an upper bound).

So, outside of an array, SPIR-V types don't need to include any pointers because
any operation with the pointer doesn't need access to the runtime value of the
pointer. Inside of an array, pointers are forbidden. Therefore, SPIR-V types
will never include any pointers.

This means that, for example, WSL can represent a linked list in logical mode.
However, a WSL program cannot iterate across the list, because that would require
assigning to a pointer. So instead, a program using a linked list could only say
something like "list.ptr->ptr->ptr->value".

* WebGPUShadingLanguageRI/LateChecker.js:
(LateChecker.prototype._checkShaderType):
* WebGPUShadingLanguageRI/SPIR-V.js:
(SPIRV.OperandChecker.prototype._isStar):
(SPIRV.OperandChecker.prototype.nextComparisonType):
(SPIRV.OperandChecker.prototype.finalize):
(SPIRV.OperandChecker):
* WebGPUShadingLanguageRI/SPIRV.html:
* WebGPUShadingLanguageRI/SPIRVCodegen.js: Added.
(findEntryPoints):
(emitTypes.doEmitTypes):
(emitTypes):
(ConstantFinder.prototype.visitGenericLiteralType):
(ConstantFinder):
(generateSPIRV):
* WebGPUShadingLanguageRI/SPIRVTypeAnalyzer.js: Added.
(SPIRVTypeAnalyzer):
(SPIRVTypeAnalyzer.prototype.get program):
(SPIRVTypeAnalyzer.prototype.get typeMap):
(SPIRVTypeAnalyzer.prototype.get currentId):
(SPIRVTypeAnalyzer.prototype.get stack):
(SPIRVTypeAnalyzer.prototype.visitTypeRef):
(SPIRVTypeAnalyzer.prototype._encounterType):
(SPIRVTypeAnalyzer.prototype.visitNullType):
(SPIRVTypeAnalyzer.prototype.visitGenericLiteralType):
(SPIRVTypeAnalyzer.prototype.visitNativeType):
(SPIRVTypeAnalyzer.prototype.visitEnumType):
(SPIRVTypeAnalyzer.prototype.visitPtrType):
(SPIRVTypeAnalyzer.prototype.visitArrayRefType):
(SPIRVTypeAnalyzer.prototype.visitArrayType):
(SPIRVTypeAnalyzer.prototype.visitStructType):
* WebGPUShadingLanguageRI/SPIRVVariableAnalyzer.js: Added.
(SPIRVPrimitiveVariableAnalyzer):
(SPIRVPrimitiveVariableAnalyzer.prototype.get program):
(SPIRVPrimitiveVariableAnalyzer.prototype.get typeMap):
(SPIRVPrimitiveVariableAnalyzer.prototype.get currentId):
(SPIRVPrimitiveVariableAnalyzer.prototype.get currentLocation):
(SPIRVPrimitiveVariableAnalyzer.prototype.get nameComponents):
(SPIRVPrimitiveVariableAnalyzer.prototype.get result):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitTypeRef):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitNullType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitGenericLiteralType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitNativeType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitEnumType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitPtrType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitArrayRefType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitArrayType):
(SPIRVPrimitiveVariableAnalyzer.prototype.visitStructType):
* WebGPUShadingLanguageRI/WSL.md:
* WebGPUShadingLanguageRI/index.html:

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

2 years agoEdited expectations for http/tests/media/video-buffered-range-contains-currentTime...
jlewis3@apple.com [Thu, 12 Oct 2017 18:29:23 +0000 (18:29 +0000)]
Edited expectations for http/tests/media/video-buffered-range-contains-currentTime.html.
https://bugs.webkit.org/show_bug.cgi?id=177616

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

2 years agoCacheStorage persistent folder should be in /Library/Cache
commit-queue@webkit.org [Thu, 12 Oct 2017 18:26:33 +0000 (18:26 +0000)]
CacheStorage persistent folder should be in /Library/Cache
https://bugs.webkit.org/show_bug.cgi?id=178193

Patch by Youenn Fablet <youenn@apple.com> on 2017-10-12
Reviewed by Brady Eidson.

* UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:
(API::WebsiteDataStore::defaultCacheStorageDirectory): Making CacheStorage
directory a subfolder of Caches folder.
(API::WebsiteDataStore::defaultDataStoreConfiguration):
* UIProcess/WebProcessPool.cpp:
(WebKit::legacyWebsiteDataStoreConfiguration):
(WebKit::WebProcessPool::ensureNetworkProcess): Make sure the web site data store
has the right cache directory path. Also make sure that the quota is set even if there is no folder specified.
Quota may still be useful in case of non persistent sessions.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
* UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:
(API::WebsiteDataStore::defaultCacheStorageDirectory):

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

2 years ago[Win] Build fix after r223206
mmaxfield@apple.com [Thu, 12 Oct 2017 18:21:05 +0000 (18:21 +0000)]
[Win] Build fix after r223206
https://bugs.webkit.org/show_bug.cgi?id=171523

Unreviewed.

* pal/PlatformWin.cmake:
* pal/win/LoggingWin.cpp: Added.
(PAL::logLevelString):

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

2 years agoUse less specific cast in ScrollingTree::scrollPositionChangedViaDelegatedScrolling
fred.wang@free.fr [Thu, 12 Oct 2017 17:42:12 +0000 (17:42 +0000)]
Use less specific cast in ScrollingTree::scrollPositionChangedViaDelegatedScrolling
https://bugs.webkit.org/show_bug.cgi?id=178211

Patch by Frederic Wang <fwang@igalia.com> on 2017-10-12
Reviewed by Simon Fraser.

No new tests, behavior is not changed.

ScrollingTree::scrollPositionChangedViaDelegatedScrolling is a generic function that applies
to scrolling nodes. Casting to more specific ScrollingTreeOverflowScrollingNodes is however
not necessary to implement it. This patch moves to the least specific cast necessary so that
this function will be usable for async scrolling of non-main frames in the future. Note that
the function is currently only called from ScrollingTreeScrollingNodeDelegateIOS which in
turn is only used by the ScrollingTreeScrollingOverflowNodeIOS class and so code behavior is
not changed.

* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling): Only cast the node to
ScrollingTreeScrollingNode.

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

2 years agoEnable gigacage on iOS
fpizlo@apple.com [Thu, 12 Oct 2017 16:02:45 +0000 (16:02 +0000)]
Enable gigacage on iOS
https://bugs.webkit.org/show_bug.cgi?id=177586

Reviewed by JF Bastien.
JSTests:

Add tests for when Gigacage gets runtime disabled.

* stress/disable-gigacage-arrays.js: Added.
(foo):
* stress/disable-gigacage-strings.js: Added.
(foo):
* stress/disable-gigacage-typed-arrays.js: Added.
(foo):

Source/bmalloc:

Introduce the ability to disable gigacage at runtime if allocation fails. If any step of gigacage
allocation fails, we free all of the gigacages and turn off gigacage support.

Roll this back in after discussion.

* CMakeLists.txt:
* bmalloc.xcodeproj/project.pbxproj:
* bmalloc/Cache.cpp:
(bmalloc::Cache::scavenge):
* bmalloc/Cache.h:
(bmalloc::Cache::tryAllocate):
(bmalloc::Cache::allocate):
(bmalloc::Cache::deallocate):
(bmalloc::Cache::reallocate):
* bmalloc/Gigacage.cpp:
(Gigacage::ensureGigacage):
(Gigacage::runway):
(Gigacage::totalSize):
(Gigacage::shouldBeEnabled):
(): Deleted.
(Gigacage::Callback::Callback): Deleted.
(Gigacage::Callback::function): Deleted.
(Gigacage::PrimitiveDisableCallbacks::PrimitiveDisableCallbacks): Deleted.
* bmalloc/Gigacage.h:
(Gigacage::wasEnabled):
(Gigacage::isEnabled):
(Gigacage::runway): Deleted.
(Gigacage::totalSize): Deleted.
* bmalloc/HeapKind.cpp: Added.
(bmalloc::isActiveHeapKind):
(bmalloc::mapToActiveHeapKind):
* bmalloc/HeapKind.h:
(bmalloc::isActiveHeapKindAfterEnsuringGigacage):
(bmalloc::mapToActiveHeapKindAfterEnsuringGigacage):
* bmalloc/Scavenger.cpp:
(bmalloc::Scavenger::scavenge):
* bmalloc/bmalloc.h:
(bmalloc::api::tryLargeMemalignVirtual):
(bmalloc::api::freeLargeVirtual):
(bmalloc::api::isEnabled):

Source/JavaScriptCore:

The hardest part of enabling Gigacage on iOS is that it requires loading global variables while
executing JS, so the LLInt needs to know how to load from global variables on all platforms that
have Gigacage. So, this teaches ARM64 how to load from global variables.

Also, this makes the code handle disabling the gigacage a bit better.

* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::caged):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::cage):
(JSC::AssemblyHelpers::cageConditionally):
* offlineasm/arm64.rb:
* offlineasm/asm.rb:
* offlineasm/instructions.rb:

Tools:

Add a mode to test disabling Gigacage.

* Scripts/run-jsc-stress-tests:
* Scripts/webkitruby/jsc-stress-test-writer-default.rb:

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

2 years agoRemove out-parameter variants of copyToVector
weinig@apple.com [Thu, 12 Oct 2017 15:38:42 +0000 (15:38 +0000)]
Remove out-parameter variants of copyToVector
https://bugs.webkit.org/show_bug.cgi?id=178155

Reviewed by Tim Horton.

Source/JavaScriptCore:

* inspector/ScriptDebugServer.cpp:
(Inspector::ScriptDebugServer::dispatchBreakpointActionLog):
(Inspector::ScriptDebugServer::dispatchBreakpointActionSound):
(Inspector::ScriptDebugServer::dispatchBreakpointActionProbe):
(Inspector::ScriptDebugServer::dispatchDidParseSource):
(Inspector::ScriptDebugServer::dispatchFailedToParseSource):
(Inspector::ScriptDebugServer::dispatchFunctionToListeners):

    Replace out-parameter based copyToVector, with one that returns a Vector.

Source/WebCore:

* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::stopTimersForOneShots):
(WebCore::Geolocation::cancelAllRequests):
(WebCore::Geolocation::handleError):
(WebCore::Geolocation::makeSuccessCallbacks):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::transaction):
* Modules/indexeddb/IDBGetAllResult.cpp:
(WebCore::IDBGetAllResult::allBlobFilePaths const):
* Modules/indexeddb/server/MemoryIndex.cpp:
(WebCore::IDBServer::MemoryIndex::notifyCursorsOfValueChange):
(WebCore::IDBServer::MemoryIndex::notifyCursorsOfAllRecordsChanged):
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::dispatchInvalidationCallbacks):
* dom/Document.cpp:
(WebCore::Document::moveNodeIteratorsToNewDocument):
(WebCore::Document::resume):
(WebCore::Document::didAssociateFormControlsTimerFired):
* dom/IdTargetObserverRegistry.cpp:
(WebCore::IdTargetObserverRegistry::notifyObserversInternal):
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::notifyMutationObservers):
* dom/Node.cpp:
(WebCore::Document::invalidateNodeListAndCollectionCaches):
* dom/RadioButtonGroups.cpp:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::dispatchMessagePortEvents):
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
(WebCore::ApplicationCacheGroup::deliverDelayedMainResources):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::forEachResource):
(WebCore::MemoryCache::pruneDeadResourcesToSize):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::willDestroyCachedFrame):
(WebCore::DOMWindow::willDestroyDocumentInFrame):
(WebCore::DOMWindow::willDetachDocumentFromFrame):
(WebCore::DOMWindow::disconnectDOMWindowProperties):
(WebCore::DOMWindow::reconnectDOMWindowProperties):
* page/FrameView.cpp:
(WebCore::collectAndProtectWidgets):
* page/MemoryRelease.cpp:
(WebCore::releaseCriticalMemory):
* page/Performance.cpp:
(WebCore::Performance::queueEntry):
* platform/cocoa/PasteboardCocoa.mm:
(WebCore::Pasteboard::typesForLegacyUnsafeBindings):
* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::systemFontFamilies):
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
* platform/ios/WebCoreMotionManager.mm:
(-[WebCoreMotionManager sendAccelerometerData:]):
(-[WebCoreMotionManager sendMotionData:withHeading:]):
* platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
* platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSession invalidateAndCancel]):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::endAndCommitUpdateScrollInfoAfterLayoutTransaction):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setLogicalWidthForTextRun):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::FlexBoxIterator::next):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paintObject):

    Replace out-parameter based copyToVector, with one that returns a Vector.

Source/WebKit:

* Shared/API/Cocoa/_WKRemoteObjectInterface.mm:
(-[_WKRemoteObjectInterface debugDescription]):
* Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(WebKit::dump):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetState):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createNewWebProcess):
* UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::pendingCookies const):
* UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager _notifyClientsOfImminentSuspension]):
* WebProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::getHostnamesWithCookies):
* WebProcess/Geolocation/WebGeolocationManager.cpp:
(WebKit::WebGeolocationManager::didChangePosition):
(WebKit::WebGeolocationManager::didFailToDeterminePosition):
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::internallyFailedLoadTimerFired):

    Replace out-parameter based copyToVector, with one that returns a Vector.

Source/WebKitLegacy/ios:

* Misc/WebGeolocationProviderIOS.mm:
(-[WebGeolocationProviderIOS _handlePendingInitialPosition:]):
(-[WebGeolocationProviderIOS positionChanged:]):
(-[WebGeolocationProviderIOS errorOccurred:]):
(-[WebGeolocationProviderIOS resetGeolocation]):

    Replace out-parameter based copyToVector, with one that returns a Vector.

Source/WebKitLegacy/mac:

* Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView destroyPlugin]):
* WebView/WebHTMLRepresentation.mm:
(newArrayWithStrings):

    Replace out-parameter based copyToVector, with one that returns a Vector.

Source/WTF:

* wtf/HashMap.h:
(WTF::copyToVector): Deleted.
* wtf/HashSet.h:
(WTF::copyToVector): Deleted.

    Remove copyToVector.

* wtf/Vector.h:
(WTF::copyToVectorSpecialization):

    Add another version of copyToVector, called copyToVectorSpecialization, that allows
    you to specify the entire specialization for the Vector you want to copy to. This
    can be useful if you want your resulting Vector to have an inline capacity.

Tools:

* DumpRenderTree/JavaScriptThreading.cpp:
(stopJavaScriptThreads):

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

2 years agoSupport integrity="" on module scripts
utatane.tea@gmail.com [Thu, 12 Oct 2017 13:12:48 +0000 (13:12 +0000)]
Support integrity="" on module scripts
https://bugs.webkit.org/show_bug.cgi?id=177959

Reviewed by Sam Weinig.

Source/JavaScriptCore:

This patch adds Subresource Integrity check for module scripts. Currently,
only top-level module can be verified with integrity parameter since there
is no way to perform integrity check onto the imported modules.

In JSC side, we add `parameters` to the entry point of the module loader
pipeline. This is fetching parameters and used when fetching modules.

We separately pass this parameters to the pipeline along with the script fetcher.
The script fetcher is only one for module graph since this is the initiator of
this module graph loading. On the other hand, this parameters is for each
module fetching. While setting "integrity" parameters to this script fetcher is
sufficient to pass parameters to top-level-module's fetching, it is not enough
for the future extension.

In the future, we will investigate a way to pass parameters to each non-top-level
module. At that time, this `parameters` should be per-module. This is because
"integrity" value should be different for each module. For example, we will accept
some form of syntax to add parameters to `import`. Some proposed syntax is like
https://discourse.wicg.io/t/specifying-nonce-or-integrity-when-importing-modules/1861

import "./xxx.js" integrity "xxxxxxx"

In this case, this `parameters` will be passed to "./xxx.js" module fetching. This
`parameters` should be different from the one of top-level-module's one. That's why
we need per-module `parameters` and why this patch adds `parameters` to the module pipeline.

On the other hand, we also want to keep script fetcher. This `per-module-graph` thing
is important to offer module-graph-wide information. For example, import.meta would
have `import.meta.scriptElement`, which is the script element fetching the module graph
including this. So, we keep the both, script fetcher and parameters.
https://github.com/tc39/proposal-import-meta

This parameters will be finally used by pipeline's fetch hook, and WebCore side
can use this parameters to fetch modules.

We also further clean up the module pipeline by dropping unnecessary features.

* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* builtins/ModuleLoaderPrototype.js:
(requestFetch):
(requestInstantiate):
(requestSatisfy):
(loadModule):
(loadAndEvaluateModule):
This loadAndEvaluateModule should be implemented by just calling loadModule and
linkAndEvaluateModule. We can drop requestReady and requestLink.

(requestLink): Deleted.
(requestImportModule): Deleted.
* jsc.cpp:
(GlobalObject::moduleLoaderImportModule):
(GlobalObject::moduleLoaderFetch):
import and fetch hook takes parameters. Currently, we always pass `undefined` for
import hook. When dynamic `import()` is extended to accept additional parameters
like integrity, this parameters will be replaced with the actual value.

(functionLoadModule):
(runWithOptions):
* runtime/Completion.cpp:
(JSC::loadAndEvaluateModule):
(JSC::loadModule):
(JSC::importModule):
* runtime/Completion.h:
* runtime/JSGlobalObject.h:
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncImportModule):
* runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::loadAndEvaluateModule):
(JSC::JSModuleLoader::loadModule):
(JSC::JSModuleLoader::requestImportModule):
(JSC::JSModuleLoader::importModule):
(JSC::JSModuleLoader::fetch):
* runtime/JSModuleLoader.h:
* runtime/JSScriptFetchParameters.cpp: Added.
(JSC::JSScriptFetchParameters::destroy):
* runtime/JSScriptFetchParameters.h: Added.
(JSC::JSScriptFetchParameters::createStructure):
(JSC::JSScriptFetchParameters::create):
(JSC::JSScriptFetchParameters::parameters const):
(JSC::JSScriptFetchParameters::JSScriptFetchParameters):
Add ScriptFetchParameters' JSCell wrapper, JSScriptFetchParameters.
It is used in the module pipeline.

* runtime/JSType.h:
* runtime/ModuleLoaderPrototype.cpp:
(JSC::moduleLoaderPrototypeFetch):
* runtime/ScriptFetchParameters.h: Added.
(JSC::ScriptFetchParameters::~ScriptFetchParameters):
Add ScriptFetchParameters. We can define our own custom ScriptFetchParameters
by inheriting this class. WebCore creates ModuleFetchParameters by inheriting
this.

* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:

Source/WebCore:

This patch extends module hooks to accept fetching parameters.
When starting fetching modules, WebCore creates ModuleFetchParameters.
And this parameters is propagated to the fetch hook. Then, fetch
hook can use this parameters to fetch modules.

This parameters only contains `integrity` field. This "integrity" is
used to perform subresource integrity check in module loader pipeline.
And this error is just proparaged as errors in module pipeline, which
is the same to the other types of errors in module pipeline.

Test: http/tests/subresource-integrity/sri-module.html

* ForwardingHeaders/runtime/JSScriptFetchParameters.h: Added.
* ForwardingHeaders/runtime/ScriptFetchParameters.h: Added.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/CachedModuleScriptLoader.cpp:
(WebCore::CachedModuleScriptLoader::create):
(WebCore::CachedModuleScriptLoader::CachedModuleScriptLoader):
Take parameters, which includes "integrity".

* bindings/js/CachedModuleScriptLoader.h:
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::moduleLoaderFetch):
(WebCore::JSDOMWindowBase::moduleLoaderImportModule):
import and fetch hooks take parameters.

* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSMainThreadExecState.h:
(WebCore::JSMainThreadExecState::loadModule):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::loadModuleScriptInWorld):
(WebCore::ScriptController::loadModuleScript):
Pass parameters to the entry point of the module pipeline.

* bindings/js/ScriptController.h:
* bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::fetch):
If parameters are passed, we set them to CachedModuleScriptLoader.

(WebCore::ScriptModuleLoader::importModule):
Pass parameters to the entry point of dynamic import.

(WebCore::ScriptModuleLoader::notifyFinished):
If script loader has parameters, we perform subresource integrity check here.

* bindings/js/ScriptModuleLoader.h:
* dom/LoadableModuleScript.cpp:
(WebCore::LoadableModuleScript::create):
(WebCore::LoadableModuleScript::LoadableModuleScript):
(WebCore::LoadableModuleScript::load):
Create ModuleFetchParameters with "integrity" value.

* dom/LoadableModuleScript.h:
* dom/ModuleFetchParameters.h: Copied from Source/WebCore/bindings/js/CachedModuleScriptLoader.h.
(WebCore::ModuleFetchParameters::create):
(WebCore::ModuleFetchParameters::integrity const):
(WebCore::ModuleFetchParameters::ModuleFetchParameters):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestModuleScript):
Pass "integrity" value to the module script.

LayoutTests:

* http/tests/subresource-integrity/resources/crossorigin-anon-script-module.js: Added.
* http/tests/subresource-integrity/resources/crossorigin-creds-script-module.js: Added.
* http/tests/subresource-integrity/resources/crossorigin-ineligible-script-module.js: Added.
* http/tests/subresource-integrity/resources/matching-digest-module.js: Added.
* http/tests/subresource-integrity/resources/non-matching-digest-module.js: Added.
* http/tests/subresource-integrity/resources/sri-utilities.js:
(add_result_callback):
(SRIModuleTest):
(SRIModuleTest.prototype.execute):
* http/tests/subresource-integrity/sri-module-expected.txt: Added.
* http/tests/subresource-integrity/sri-module.html: Added.
* js/dom/modules/module-inline-ignore-integrity-expected.txt: Added.
* js/dom/modules/module-inline-ignore-integrity.html: Added.
* js/dom/modules/module-integrity-non-top-level-expected.txt: Added.
* js/dom/modules/module-integrity-non-top-level.html: Added.
* js/dom/modules/script-tests/module-integrity-non-top-level-2.js: Added.
* js/dom/modules/script-tests/module-integrity-non-top-level.js: Added.

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

2 years agoIt should be possible to iterate just the values (and not the counts) of a HashCountedSet
commit-queue@webkit.org [Thu, 12 Oct 2017 12:45:57 +0000 (12:45 +0000)]
It should be possible to iterate just the values (and not the counts) of a HashCountedSet
https://bugs.webkit.org/show_bug.cgi?id=178169

Patch by Sam Weinig <sam@webkit.org> on 2017-10-12
Reviewed by Daniel Bates.

Source/WTF:

Cleanup (fix indentation, simplify type names, adopt using), and add a values() range to
HashCountedSet. This will allow getting a Vector of all the values (and not the counts)
using the new copyToVector.

* wtf/HashCountedSet.h:

Tools:

* TestWebKitAPI/Tests/WTF/HashCountedSet.cpp:
(TestWebKitAPI::TEST):
Add test for HashCountedSet's new values() range.

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

2 years agoUnreviewed, fix compilation warning
tpopela@redhat.com [Thu, 12 Oct 2017 11:58:43 +0000 (11:58 +0000)]
Unreviewed, fix compilation warning

warning: extra tokens at end of #endif directive [-Wendif-labels]

* rendering/RenderMediaControls.h:

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

2 years agorun-safari --ios-simulator is no longer working with Xcode 9
fred.wang@free.fr [Thu, 12 Oct 2017 08:37:53 +0000 (08:37 +0000)]
run-safari --ios-simulator is no longer working with Xcode 9
https://bugs.webkit.org/show_bug.cgi?id=177595

Patch by Frederic Wang <fwang@igalia.com> on 2017-10-11
Reviewed by Daniel Bates.

In Xcode 9, the path of the simulator application is now in a new CoreSimulator subdirectory
of the iphoneOS SDK platform. This patch updates webkitdirs.pm to use the new path in
Xcode 9 or higher so that it is possible to run Safari on the iOS simulator again. It also
does some minor code refactoring to improve code reuse.

* Scripts/configure-xcode-for-ios-development: Move sdkDirectory() and sdkPlatformDirectory()
into webkitdirs.
(sdkDirectory): Deleted.
(sdkPlatformDirectory): Deleted.
* Scripts/webkitdirs.pm: Expose new sdkDirectory() and sdkPlatformDirectory().
(sdkDirectory): Moved from configure-xcode-for-ios-development.
(sdkPlatformDirectory): Ditto.
(XcodeSDKPath): Rely on sdkDirectory() to implement this function.
(iosSimulatorApplicationsPath): In Xcode 9 or higher use the new path. It is calculated
by relying on sdkPlatformDirectory().

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

2 years agoimport.meta should not be assignable
utatane.tea@gmail.com [Thu, 12 Oct 2017 06:45:23 +0000 (06:45 +0000)]
import.meta should not be assignable
https://bugs.webkit.org/show_bug.cgi?id=178202

Reviewed by Saam Barati.

JSTests:

* modules/import-meta-assignment.js: Added.
(shouldThrow):
(SyntaxError.import.meta.can.shouldThrow):

Source/JavaScriptCore:

`import.meta` cannot be used for LHS. This patch adds MetaPropertyNode
and make NewTargetNode and ImportMetaNode as derived classes of MetaPropertyNode.
We change the parser not to allow assignments for MetaPropertyNode.

* bytecompiler/NodesCodegen.cpp:
(JSC::ImportMetaNode::emitBytecode):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createImportMetaExpr):
(JSC::ASTBuilder::isMetaProperty):
(JSC::ASTBuilder::isImportMeta):
* parser/NodeConstructors.h:
(JSC::MetaPropertyNode::MetaPropertyNode):
(JSC::NewTargetNode::NewTargetNode):
(JSC::ImportMetaNode::ImportMetaNode):
* parser/Nodes.h:
(JSC::ExpressionNode::isMetaProperty const):
(JSC::ExpressionNode::isImportMeta const):
* parser/Parser.cpp:
(JSC::Parser<LexerType>::metaPropertyName):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):
* parser/Parser.h:
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createImportMetaExpr):
(JSC::SyntaxChecker::isMetaProperty):
(JSC::SyntaxChecker::isImportMeta):

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

2 years agoFix debug build
ljaehun.lim@samsung.com [Thu, 12 Oct 2017 04:31:11 +0000 (04:31 +0000)]
Fix debug build

Unreviewed.

Add ENABLE(SERVICE_WORKER) guard.

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):

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

2 years agoCorrect nullptr deref in selection handling.
bfulgham@apple.com [Thu, 12 Oct 2017 03:01:19 +0000 (03:01 +0000)]
Correct nullptr deref in selection handling.
https://bugs.webkit.org/show_bug.cgi?id=178189
<rdar://problem/33833012>

Reviewed by Ryosuke Niwa.

The VisibleSelection::toNormalizedRange returns nullptr for certain conditions (e.g., 'isNone'
and 'isOrphaned' cases). It's possible to crash the WebProcess by executing a code path with
an orphaned selection range.

The return value of 'toNormalizedRange' is checked for nullptr in many places, but not everywhere.
This patch adds those missing nullptr checks.

* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::styleAtSelectionStart):
* editing/Editor.cpp:
(WebCore::Editor::misspelledWordAtCaretOrRange const):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::containsNode const):
* page/DragController.cpp:
(WebCore::DragController::concludeEditDrag):

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

2 years agoMark http/tests/cache-storage/cache-clearing.https.html as failing on Windows.
pvollan@apple.com [Thu, 12 Oct 2017 01:35:40 +0000 (01:35 +0000)]
Mark http/tests/cache-storage/cache-clearing.https.html as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=178200

Unreviewed test gardening.

* platform/win/TestExpectations:

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