Timeline



May 24, 2017: Today

9:39 AM Changeset in webkit [217371] by jer.noble@apple.com
  • 14 edits
    4 moves in trunk/Source

Rename DisplaySleepDisabler -> SleepDisabler
https://bugs.webkit.org/show_bug.cgi?id=172478

Reviewed by Sam Weinig.

Source/WebCore:

Rename DisplaySleepDisabler to SleepDisabler so that different (i.e., non-Display) sleep types can be
added in a future change.

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateSleepDisabling):

  • html/HTMLMediaElement.h:
  • platform/SleepDisabler.cpp: Renamed from Source/WebCore/platform/DisplaySleepDisabler.cpp.

(WebCore::SleepDisabler::create):
(WebCore::SleepDisabler::SleepDisabler):
(WebCore::SleepDisabler::~SleepDisabler):

  • platform/SleepDisabler.h: Renamed from Source/WebCore/platform/DisplaySleepDisabler.h.
  • platform/cocoa/SleepDisablerCocoa.cpp: Renamed from Source/WebCore/platform/cocoa/DisplaySleepDisablerCocoa.cpp.

(WebCore::SleepDisabler::create):
(WebCore::SleepDisablerCocoa::SleepDisablerCocoa):
(WebCore::SleepDisablerCocoa::~SleepDisablerCocoa):

  • platform/cocoa/SleepDisablerCocoa.h: Renamed from Source/WebCore/platform/cocoa/DisplaySleepDisablerCocoa.h.
  • platform/mac/WebVideoFullscreenController.h:
  • platform/mac/WebVideoFullscreenController.mm:

(-[WebVideoFullscreenController updatePowerAssertions]):

  • CMakeLists.txt:
  • PlatformMac.cmake:
  • WebCore.order:

Source/WebKit/mac:

  • WebView/WebFullScreenController.h:

Source/WebKit2:

  • UIProcess/mac/WKFullScreenWindowController.h:
  • UIProcess/mac/WKFullScreenWindowController.mm:
9:22 AM Changeset in webkit [217370] by pvollan@apple.com
  • 8 edits in trunk

[Win] Create unique network storage session for each DRT.
https://bugs.webkit.org/show_bug.cgi?id=172540

Reviewed by Brent Fulgham.

During layout testing, each DRT instance should have its own network storage session.

Source/WebCore:

  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::switchToNewTestingSession):

Source/WebKit/win:

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferences.cpp:

(WebPreferences::switchNetworkLoaderToNewTestingSession):

  • WebPreferences.h:

Tools:

  • DumpRenderTree/win/DumpRenderTree.cpp:

(prepareConsistentTestingEnvironment):

9:08 AM Changeset in webkit [217369] by weinig@apple.com
  • 8 edits in trunk/Source/WebCore

[WebIDL] Overloaded functions unnecessarily duplicate argument checks
https://bugs.webkit.org/show_bug.cgi?id=172481

Reviewed by Chris Dumez.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GeneratePropertiesHashTable):
Update for rename of GetConditionalForFunctionConsideringOverloads.

(AreTypesDistinguishableForOverloadResolution):
Remove unnecessary subroutine isDictionary that can be replaced by
a direct call to $codeGenerator->IsDictionaryType().

(GetConditionalForFunctionConsideringOverloads):
Renamed from getConditionalForFunctionConsideringOverloads.

(GenerateOverloadDispatcher):
Renamed from GenerateOverloadedFunctionOrConstructor. Moved Constructor/Operation/LegacyCaller
specific code out, and into parameters.

(GenerateImplementation):
Moved operation generation out into its own subroutine.

(GenerateOperationDefinition): Added.
Moved from GenerateImplementation.

(GenerateLegacyCallerDefinitions):
Pass function name and signature to GenerateOverloadDispatcher.

(GenerateArgumentsCountCheck):
Don't generate an argument check if this is an overloaded function. The argument
checks happen in the overload dispatcher.

(NeedsExplicitPropagateExceptionCall):
(GenerateParametersCheck):
(GenerateImplementationFunctionCall):
Replace IsReturningPromise with more direct check.

(GenerateConstructorDefinitions):
Pass function name and signature to GenerateOverloadDispatcher.

(getConditionalForFunctionConsideringOverloads): Renamed to GetConditionalForFunctionConsideringOverloads.
(GenerateOverloadedFunctionOrConstructor): Renamed to GenerateOverloadDispatcher.
(IsReturningPromise): Deleted.

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/TestInterface.idl:

Update test results.

8:40 AM Changeset in webkit [217368] by jdiggs@igalia.com
  • 7 edits
    1 copy in trunk/LayoutTests

[ATK] Gardening needed after r217171
https://bugs.webkit.org/show_bug.cgi?id=172539

Unreviewed test gardening after r217171.

Add "PASS successfullyParsed is true" and "TEST COMPLETE" lines for
tests with platform-specific expectations.

  • accessibility/multiselect-list-reports-active-option-expected.txt:
  • accessibility/table-cells-roles-expected.txt:
  • platform/gtk/accessibility/aria-checkbox-sends-notification-expected.txt:
  • platform/gtk/accessibility/aria-switch-sends-notification-expected.txt:
  • platform/gtk/accessibility/deleting-iframe-destroys-axcache-expected.txt:
  • platform/gtk/accessibility/menu-list-sends-change-notification-expected.txt:
  • platform/gtk/accessibility/table-roles-hierarchy-expected.txt:
5:11 AM Changeset in webkit [217367] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.16.3

WebKitGTK+ 2.16.3

5:09 AM Changeset in webkit [217366] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.16

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.16.3 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.16.3.
4:17 AM Changeset in webkit [217365] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r215166 - generate-bindings-all.pl shouldn't use Perl threads
https://bugs.webkit.org/show_bug.cgi?id=170106

Patch by Fujii Hironori <Fujii Hironori> on 2017-04-09
Reviewed by Yusuke Suzuki.

The use of interpreter-based threads in Perl is officially
discouraged and not all Linux distributions and BSD compile Perl
with threads support. Use fork instead of threads to run
generate-bindings.pl in parallel.

  • bindings/scripts/generate-bindings-all.pl:

(spawnGenerateBindingsIfNeeded): Added.
(executeCommand): Removed the workaround for Cygwin Perl threads.
(spawnCommand): Added.
(worker): Deleted.

4:00 AM Changeset in webkit [217364] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r214291 - ASSERT_WITH_SECURITY_IMPLICATION hit when removing an <input type="range"> while dragging on iOS
https://bugs.webkit.org/show_bug.cgi?id=165535
<rdar://problem/29559749>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Utimately we should prevent SliderThumbElement::unregisterForTouchEvents() being called while
updating render tree. A quick fix for this is to move dispatchFormControlChangeEvent for input
from stopDragging up to the callers which really needs to dispatch this event, i.e., finishing
dragging the slider. It is clear that not every caller of stopDragging wants to
dispatchFormControlChangeEvent.

Test: fast/forms/range/range-remove-on-drag.html

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::stopDragging):
(WebCore::SliderThumbElement::defaultEventHandler):
(WebCore::SliderThumbElement::handleTouchEndAndCancel):

LayoutTests:

This test case is only enabled in iOS simulator WK2.

  • TestExpectations:
  • fast/forms/range/range-remove-on-drag-expected.txt: Added.
  • fast/forms/range/range-remove-on-drag.html: Added.
  • platform/ios-simulator-wk2/TestExpectations:
3:47 AM Changeset in webkit [217363] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r217319.
https://bugs.webkit.org/show_bug.cgi?id=172538

This patch broke iOS Simulator Debug build (Requested by fredw
on #webkit).

Reverted changeset:

"CoreAudioCaptureSource is ducking system sound"
https://bugs.webkit.org/show_bug.cgi?id=172512
http://trac.webkit.org/changeset/217319

3:26 AM Changeset in webkit [217362] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r214086 - WebGL: Improve index validation when using uint index values
https://bugs.webkit.org/show_bug.cgi?id=169798

Reviewed by Simon Fraser.

Source/WebCore:

Make sure that we test index validation with the correct type.
Also stop using -1 in WebGLBuffer to indicate non-existant values.

Test: fast/canvas/webgl/draw-elements-out-of-bounds-uint-index.html

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::validateIndexArrayConservative): Use optional<> and
unsigned values.

  • html/canvas/WebGLBuffer.cpp: Use unsigned for maxIndex (they can't be negative)

and optional<> to indicate unknown value.
(WebCore::WebGLBuffer::getCachedMaxIndex):
(WebCore::WebGLBuffer::setCachedMaxIndex):

  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::validateIndexArrayConservative): Use optional<> and
unsigned values.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateVertexAttributes): No need to check if
an unsigned value is less than zero.

LayoutTests:

  • fast/canvas/webgl/draw-elements-out-of-bounds-uint-index-expected.txt: Added.
  • fast/canvas/webgl/draw-elements-out-of-bounds-uint-index.html: Added.
3:21 AM Changeset in webkit [217361] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r214014 - Iteratively dispatch DOM events after restoring a cached page
https://bugs.webkit.org/show_bug.cgi?id=169703
<rdar://problem/31075903>

Reviewed by Brady Eidson.

Make dispatching of DOM events when restoring a page from the page cache symmetric with
dispatching of events when saving a page to the page cache.

  • history/CachedFrame.cpp:

(WebCore::CachedFrameBase::restore): Move code to dispatch events from here to FrameLoader::didRestoreFromCachedPage().

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad): Ensure that no DOM events are dispatched during
restoration of a cached page. Call didRestoreFromCachedPage() after restoring the page to
dispatch DOM events on the restored frames.
(WebCore::FrameLoader::willRestoreFromCachedPage): Renamed; formerly named prepareForCachedPageRestore().
(WebCore::FrameLoader::didRestoreFromCachedPage): Added.
(WebCore::FrameLoader::prepareForCachedPageRestore): Renamed to willRestoreFromCachedPage().

  • loader/FrameLoader.h:
  • page/FrameTree.cpp:

(WebCore::FrameTree::traverseNextInPostOrderWithWrap): Returns the next Frame* in a post-order
traversal of the frame tree optionally wrapping around to the deepest first child in the tree.
(WebCore::FrameTree::deepFirstChild): Added.

  • page/FrameTree.h:
2:50 AM Changeset in webkit [217360] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit/win

[WinCairo] AcceleratedCompositingContext.h: error C3668: 'AcceleratedCompositingContext::paintContents': method with override specifier 'override' did not override any base class methods
https://bugs.webkit.org/show_bug.cgi?id=172535

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-24
Reviewed by Konstantin Tokarev.

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::paintContents): Append the fifth argument.

  • WebCoreSupport/AcceleratedCompositingContext.h: Ditto.
2:40 AM Changeset in webkit [217359] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.16

Merge r217227 - Crash in WebCore::StyleRuleKeyframes::findKeyframeIndex
https://bugs.webkit.org/show_bug.cgi?id=170756
<rdar://problem/31573157>

Reviewed by Andreas Kling.

Source/WebCore:

Using a malformed key with CSSKeyframesRule.findRule crashes because
CSSParser::parseKeyframeKeyList returns null which is then dereferenced.

  • css/CSSKeyframesRule.cpp:

(WebCore::StyleRuleKeyframes::findKeyframeIndex): Null test.

LayoutTests:

Expand the tests to cover the malformed key case.

  • animations/keyframes-rule.html:
  • animations/unprefixed-keyframes-rule.html:
2:37 AM Changeset in webkit [217358] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Tools

Merge r217190 - [GTK] gtkdoc-fixxref needs --module argument to work
https://bugs.webkit.org/show_bug.cgi?id=172415

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2017-05-20
Reviewed by Michael Catanzaro.

  • gtk/gtkdoc.py:

(GTKDoc._run_gtkdoc_fixxref):

2:36 AM Changeset in webkit [217357] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r217172 - Do not fire load event for SVGElements that are detached or in frameless documents
https://bugs.webkit.org/show_bug.cgi?id=172289
<rdar://problem/32275689>

Reviewed by Ryosuke Niwa.

Source/WebCore:

We should not fire load event for SVGElements that are detached or in frameless
documents.

Test: svg/load-event-detached.html

  • svg/SVGElement.cpp:

(WebCore::SVGElement::sendSVGLoadEventIfPossible):

LayoutTests:

Add layout test coverage.

  • svg/load-event-detached-expected.txt: Added.
  • svg/load-event-detached.html: Added.
2:32 AM Changeset in webkit [217356] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebKit2

Merge r217219 - Add even more input validation in Connection::processMessage()
https://bugs.webkit.org/show_bug.cgi?id=171682

Reviewed by Carlos Garcia Campos.

Verify that the size of the out-of-line message body matches the size of the AttachmentInfo
that is containing it.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):

2:32 AM Changeset in webkit [217355] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebKit2

Merge r217206 - Add more input validation in Connection::readBytesFromSocket()
https://bugs.webkit.org/show_bug.cgi?id=171871

Reviewed by Michael Catanzaro.

Check the control message length is in the limits. Credit to Nathan Crandall for reporting this issue and
submitting an equivalent fix.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::readBytesFromSocket):

2:31 AM Changeset in webkit [217354] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebKit2

Merge r217126 - Add more input validation in Connection::processMessage()
https://bugs.webkit.org/show_bug.cgi?id=171682

Reviewed by Michael Catanzaro.

Check limits of attachments and message size. Credit to Nathan Crandall for reporting this issue and submitting
an equivalent fix.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):

2:27 AM Changeset in webkit [217353] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.16

Merge r217164 - Redundant ellipsis box triggers ASSERT_WITH_SECURITY_IMPLICATION in InlineBox::parent().
https://bugs.webkit.org/show_bug.cgi?id=172309
<rdar://problem/32262357>

Reviewed by Simon Fraser.

Source/WebCore:

This patch stops the redundant ellipsis box trigger ASSERT_WITH_SECURITY_IMPLICATION.

In RootInlineBox::placeEllipsis we construct an ellipsis box and append it to a static HashMap which
keeps track of the ellipsis boxes on each line. However when the line already has an ellipsis, we
re-use the existing one and this newly constructed (but redundant) box gets destroyed as we return from this function.
In InlineBox's d'tor, we let the parent know that now it has a dangling child and we assert on it
later, while accessing the children list. However this redundant ellipsis box was never added to the line,
so the assertion hits incorrectly.

Test: fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::EllipsisBox):

  • rendering/InlineBox.cpp: This needs 32bits padding.

(WebCore::InlineBox::invalidateParentChildList):

  • rendering/InlineBox.h:
  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::placeEllipsis):

LayoutTests:

  • fast/inline/redundant-ellipsis-triggers-assert-incorrectly-expected.txt: Added.
  • fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html: Added.
2:14 AM Changeset in webkit [217352] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r217079 - Redundant ellipsis box triggers ASSERT_WITH_SECURITY_IMPLICATION in InlineBox::parent().
https://bugs.webkit.org/show_bug.cgi?id=172309
<rdar://problem/32262357>

Reviewed by Simon Fraser.

Source/WebCore:

This patch stops the redundant ellipsis box trigger ASSERT_WITH_SECURITY_IMPLICATION.

In RootInlineBox::placeEllipsis we construct an ellipsis box and append it to a static HashMap which
keeps track of the ellipsis boxes on each line. However when the line already has an ellipsis, we
re-use the existing one and this newly constructed (but redundant) box gets destroyed as we return from this function.
In InlineBox's d'tor, we let the parent know that now it has a dangling child and we assert on it
later, while accessing the children list. However this redundant ellipsis box was never added to the line,
so the assertion hits incorrectly.

Test: fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::EllipsisBox):

  • rendering/InlineBox.cpp:

(WebCore::InlineBox::invalidateParentChildList):

  • rendering/InlineBox.h:
  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::placeEllipsis): Use the newly created ellipsis box instead.

LayoutTests:

  • fast/inline/redundant-ellipsis-triggers-assert-incorrectly-expected.txt: Added.
  • fast/inline/redundant-ellipsis-triggers-assert-incorrectly.html: Added.
2:08 AM Changeset in webkit [217351] by Carlos Garcia Campos
  • 8 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r217075 - Transform misplaces element 50% of the time
https://bugs.webkit.org/show_bug.cgi?id=172300
Source/WebCore:

Reviewed by Simon Fraser.

A hardware-accelerated animation of the transform property
requires layout to happen if it contains a translate operation
using percentages, otherwise it may create an incorrect
animation. The "50% of the time" comes in to play because
the layout timer may sometimes fire before the animation
timer. The test case contains a example that is much more
likely to fail without this fix.

Test: animations/needs-layout.html

  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationControllerPrivate::animationTimerFired): If
we've been told that we need a layout, and we have one pending, then
force it before doing the rest of the animation logic.
(WebCore::CSSAnimationController::updateAnimations): Check if the
CompositeAnimation depends on layout, and tell the private controller
that it should check for the necessity of a layout as the animation
timer fires.

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::animate): Ask the keyframes if this
animation depends on layout.

  • page/animation/CompositeAnimation.h:

(WebCore::CompositeAnimation::hasAnimationThatDependsOnLayout):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::computeLayoutDependency): Look at all
the keyframe properties for something that is a translation using
percentages.

  • page/animation/KeyframeAnimation.h:

LayoutTests:

<rdar://problem/29835668>

Reviewed by Simon Fraser.

A test case which has an animation that relies on
translation percentages. If all goes well, the
animating element will be completely obscured.

  • animations/needs-layout-expected.html: Added.
  • animations/needs-layout.html: Added.
2:05 AM Changeset in webkit [217350] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.16

Merge r217069 - Improve error message for Access-Control-Allow-Origin violation due to misconfigured server
https://bugs.webkit.org/show_bug.cgi?id=162819
<rdar://problem/28575938>

Reviewed by Joseph Pecoraro.

LayoutTests/imported/w3c:

Update expected result.

  • web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-worker-expected.txt:

Source/WebCore:

Inspired by Blink change:
<https://src.chromium.org/viewvc/blink?view=revision&revision=163406>

At most one Access-Control-Allow-Origin header may be in an HTTP response. Improve the
error message emitted on a CORS failure when Access-Control-Allow-Origin contains more
than one origin, indicated by the presence of a ',', as a way to help web developers/server
administrators differentiate between a misconfigured Access-Control-Allow-Origin header
and a misconfigured server.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::passesAccessControlCheck): Defined a local variable to hold the value of securityOrigin.toString()
and referenced this variable throughout the code to avoid computing the stringified security
origin more than once. Switched to using makeString() to concatenate error message when the
origin of the page does not match the value of the Access-Control-Allow-Origin header.

LayoutTests:

Add more tests when Access-Control-Allow-Origin has more than one value and group
with existing tests. Update expected results.

  • http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
  • http/tests/xmlhttprequest/resources/origin-exact-matching-iframe.html: Also extracted

the origin string for the page into a local variable called pageOrigin, making use of document.origin,
and referenced this variable instead of duplicating its value. Fixed various style nits.

2:03 AM Changeset in webkit [217349] by Carlos Garcia Campos
  • 6 edits
    7 adds in releases/WebKitGTK/webkit-2.16

Merge r217054 - REGRESSION (r209608): Cross-origin plugin document opened in child window blocked by parent
window CSP when object-src 'none' is set
https://bugs.webkit.org/show_bug.cgi?id=172038
<rdar://problem/32258262>

Reviewed by Andy Estes.

Source/WebCore:

Fixes an issue where a cross-origin plugin document opened in a child window would inherit
the Content Security Policy (CSP) of its opener. In particular, a cross-origin plugin
document opened in a child window would be blocked when the CSP of its opener disallows
plugins (e.g. object-source 'none').

Prior to r209608 a document opened in a child window never inherited the CSP from its opener
and a plugin document loaded in a subframe would unconditionally inherit the CSP from its
parent frame. So, a plugin document opened in a child window would be allowed to load
regardless of whether its opener had a CSP that prevented plugins. Following r209608 a
document opened in a child window would inherit its CSP from its opener if and only if it
would inherit the security origin from its opener (e.g. about:blank) or was a plugin
document. The latter condition makes plugin documents opened in a child window unconditionally
inherit the CSP from their opener and is the cause of this bug. It seems reasonable to exempt
cross-origin plugin documents opened in a child window from the CSP inheritance rule because
such documents cannot compromise the origin of their opener. Same-origin plugin documents
opened in a child window will continue to inherit the CSP from their opener because such
documents can compromise the origin of their opener.

Tests: http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html

http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html
http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html

  • dom/Document.cpp:

(WebCore::Document::shouldInheritContentSecurityPolicyFromOwner): Added.
(WebCore::Document::initContentSecurityPolicy):

  • dom/Document.h:

Tools:

Teach the test Netscape plugin to look for a URL that contains plugin-document-alert-and-notify-done.pl.
When it sees this URL it will show a JavaScript alert and call testRunner.notifyDone().

  • DumpRenderTree/TestNetscapePlugIn/main.cpp:

(NPP_New):

LayoutTests:

Adds tests to ensure that a same-origin- and cross-origin- plugin document opened in a child
window inherit and do not inherit the CSP of its opener, respectively. Also adds a test to
ensure that an about:blank window inherits the CSP plugin policy of its opener.

  • http/tests/plugins/resources/plugin-document-alert-and-notify-done.pl: Added.
  • http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/cross-origin-plugin-document-allowed-in-child-window.html: Added.
  • http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/plugin-blocked-in-about-blank-window.html: Added.
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/same-origin-plugin-document-blocked-in-child-window.html: Added.
  • platform/ios/TestExpectations: Skip added tests as iOS does not support plugins.
2:00 AM Changeset in webkit [217348] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168409

Unreviewed.

Remove temporary logging which prevents performance bots from reporting useful data.

Patch by Antoine Quint <Antoine Quint> on 2017-05-24

  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):

1:40 AM Changeset in webkit [217347] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216978 - getElementById can return a wrong elemnt when a matching element is removed during beforeload event
https://bugs.webkit.org/show_bug.cgi?id=171374

Patch by Ryosuke Niwa <rniwa@webkit.org> on 2017-05-17
Reviewed by Brent Fulgham.

Source/WebCore:

The bug was caused by HTMLLinkElement firing beforeload event inside insertedInto before the tree state is updated.
Delay the event dispatch to the post insertion callback.

Test: fast/html/link-element-removal-during-beforeload.html

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::insertedInto):
(WebCore::HTMLLinkElement::finishedInsertingSubtree):

  • html/HTMLLinkElement.h:

LayoutTests:

Added a regression test for calling getElementById after removing a matching element
during beforeload event of a link element.

  • fast/html/link-element-removal-during-beforeload-expected.txt: Added.
  • fast/html/link-element-removal-during-beforeload.html: Added.
1:37 AM Changeset in webkit [217346] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216968 - Remove C-style casts by using xmlDocPtr instead of void*
<https://webkit.org/b/172189>

Reviewed by Alex Christensen.

  • dom/TransformSource.h: Fix whitespace indentation.

(typedef PlatformTransformSource): Use xmlDocPtr not void*.

  • dom/TransformSourceLibxslt.cpp:

(WebCore::TransformSource::~TransformSource): Remove cast.

  • xml/XSLStyleSheetLibxslt.cpp:

(WebCore::XSLStyleSheet::document): Remove cast.

  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::xmlDocPtrFromNode): Remove casts.

  • xml/parser/XMLDocumentParser.h:

(WebCore::xmlDocPtrForString): Update declaration to return
xmlDocPtr not void*.

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::doEnd): Change type of local
variable from void* to xmlDocPtr.
(WebCore::xmlDocPtrForString): Update to return xmlDocPtr
not void*.

1:35 AM Changeset in webkit [217345] by jfernandez@igalia.com
  • 4 edits in trunk

[css-grid] Ignore collapsed tracks on content-distribution alignment
https://bugs.webkit.org/show_bug.cgi?id=172493

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

The CSS Box Alignment spec states that we should ignore the collapsed
tracks when computing the Distribution Alignment space to assign to the
different grid tracks.

No new tests, just unskipping the web-platform-tests imported to verify this use case.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::populateGridPositionsForDirection):

LayoutTests:

Unskip the web-platform-tests related to content-alignment and collapsed tracks.

1:21 AM Changeset in webkit [217344] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.16/Source/WebKit2

Merge r216915 - [SOUP] Remove LATEST_RECORD_VERSION from GnuTLS priority string
https://bugs.webkit.org/show_bug.cgi?id=172153

Based on discussion with Nikos in https://bugzilla.gnome.org/show_bug.cgi?id=782218, we
should remove LATEST_RECORD_VERSION from our GnuTLS priority string. This causes GnuTLS to
use the latest TLS record version (the record format is separate from the TLS protocol
version), which we needed a couple years ago (after dropping SSLv3) for maximum
compatibility with broken web servers. But it's not needed anymore, and is causing new
compatibility problems with other broken web servers, so let's get rid of it.

Reviewed by Carlos Garcia Campos.

  • NetworkProcess/EntryPoint/unix/NetworkProcessMain.cpp:

(main):

  • WebProcess/EntryPoint/unix/WebProcessMain.cpp:

(main):

1:18 AM Changeset in webkit [217343] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216889 - Crash in libxml2.2.dylib: xmlDictReference
<https://webkit.org/b/172086>
<rdar://problem/23643436>

Reviewed by Daniel Bates.

Speculative fix and code clean-up based on source code
inspection. The fix for the crash is in two parts that change
XSLStyleSheet::parseString():

  1. Always set m_stylesheetDoc to nullptr after freeing it via XSLStyleSheet::clearXSLStylesheetDocument().
  2. Add nullptr check before using m_stylesheetDoc from parent.

Broadly speaking, the changes are:

  • Extract code to reset m_stylesheetDoc into new private XSLStyleSheet::clearXSLStylesheetDocument() method. There is a special contract between m_stylesheetDoc and m_stylesheetDocTaken that wasn't being followed every time. See comment in XSLStyleSheet::compileStyleSheet().
  • XSLStyleSheet::clearDocuments() now calls new clearXSLStylesheetDocument() method. Previously, it was not checking or resetting m_stylesheetDocTaken, and it might have leaked an xmlDocPtr if m_stylesheetDoc was set and m_stylesheetDocTaken was false.
  • XSLStyleSheet::parseString() now calls new clearXSLStylesheetDocument() method. Previously, it did not clear m_stylesheetDoc after freeing it, and it could return early due to a failure in xmlCreateMemoryParserCtxt().
  • In XSLStyleSheet::parseString() use checked arithmetic when calculating 'size' for xmlCreateMemoryParserCtxt() and xmlCtxtReadMemory(). This code used to do an implicit unsigned -> signed integer conversion that could overflow.
  • Always iterate m_children using an 'auto& import' variable.
  • xml/XSLStyleSheet.h:

(WebCore::XSLStyleSheet::clearXSLStylesheetDocument): Add declaration.
(WebCore::XSLStyleSheet::m_disabled): Add default initializer.
(WebCore::XSLStyleSheet::m_stylesheetDoc): Ditto.
(WebCore::XSLStyleSheet::m_stylesheetDocTaken): Ditto.
(WebCore::XSLStyleSheet::m_parentStyleSheet): Ditto.

  • xml/XSLStyleSheetLibxslt.cpp:

(WebCore::XSLStyleSheet::XSLStyleSheet): Get rid of redundant
initializers. Set m_parentStyleSheet if needed.
(WebCore::XSLStyleSheet::~XSLStyleSheet): Call
clearXSLStylesheetDocument() instead of custom code. Switch
m_children fast iteration to use 'auto& import' variable.
(WebCore::XSLStyleSheet::isLoading): Switch m_children fast
iteration to use 'auto& import' variable.
(WebCore::XSLStyleSheet::clearDocuments): Call
clearXSLStylesheetDocument() instead of setting m_stylesheetDoc
to nullptr. This might fix an occasional xmlDocPtr leak.
(WebCore::XSLStyleSheet::clearXSLStylesheetDocument): Add. This
method always sets m_stylesheetDoc to nullptr (after freeing it
if necessary) and sets m_stylesheetDocTaken to false.
(WebCore::XSLStyleSheet::parseString): Call
clearXSLStylesheetDocument(). Prior to this, m_stylesheetDoc
might be left pointing to a freed value, and this method could
return early if xmlCreateMemoryParserCtxt() failed. Switch to
using Checked<> to compute required buffer size to parse XSL
stylesheet, and return early on overflow. Clean up existing
return statements to use boolean expressions. Add nullptr check
for m_parentStyleSheet->m_stylesheetDoc before using it.
(WebCore::XSLStyleSheet::loadChildSheet): Get rid of local
variable by calling loadSheet() from last array element.
(WebCore::XSLStyleSheet::compileStyleSheet): Add debug assert
that m_stylesheetDoc is not nullptr.

1:01 AM Changeset in webkit [217342] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216859 - [CAIRO] Painting an image mask with a matrix above Pixman's limit breaks internal states of Cairo
https://bugs.webkit.org/show_bug.cgi?id=169094

Reviewed by Žan Doberšek.

Source/WebCore:

It is the same problem which addressed in r212431.
In HiDPI situation, it happens easily due to the size of coordinates.
Also, if this bug happens, it will break the rendering continuously
since we are reusing graphics contexts to render webpages in same
webview.

Test: fast/hidpi/hidpi-long-page-with-inset-element.html

  • platform/graphics/cairo/PlatformContextCairo.cpp:

(WebCore::PlatformContextCairo::pushImageMask):
We can avoid the limit of the Pixman by reducing the source surface's
size, and it will create a minimal pattern matrix.

LayoutTests:

  • fast/hidpi/hidpi-long-page-with-inset-element-expected.html: Added.
  • fast/hidpi/hidpi-long-page-with-inset-element.html: Added.
12:59 AM Changeset in webkit [217341] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebKit2

Merge r216847 - Always reset the assisted node when the main frame commits a new load.
https://bugs.webkit.org/show_bug.cgi?id=172088

Reviewed by Antti Koivisto.

WebPage::m_assistedNode could extend the lifetime of the document it pointed into
if the main frame was navigated while the assisted node was in one of its subframes.
The life-supported document wouldn't be reachable from JavaScript but nevertheless
would consume memory and other resources.

This patch fixes the issue by always clearing WebPage::m_assistedNode when the main
frame commits a new load.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::resetAssistedNodeForFrame):

12:52 AM Changeset in webkit [217340] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216789 - Check existence of a page before accessing its plugins
https://bugs.webkit.org/show_bug.cgi?id=171712
<rdar://problem/32007806>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: plugins/navigator-plugin-crash.html

  • plugins/DOMPlugin.cpp:

(WebCore::DOMPlugin::item):
(WebCore::DOMPlugin::namedItem):

LayoutTests:

  • plugins/navigator-plugin-crash-expected.txt: Added.
  • plugins/navigator-plugin-crash.html: Added.
12:48 AM Changeset in webkit [217339] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.16

Merge r216759 - [GTK] ASSERTION FAILED: !m_flushingLayers
https://bugs.webkit.org/show_bug.cgi?id=172025

Reviewed by Žan Doberšek.

Source/WebCore:

The problem is that syncImageBacking() is calling didChangeLayerState(). All sync methods are called by
flushCompositingStateForThisLayerOnly() while flushing layers, so none of them should call didChange method that
will schedule a new flush while flushing.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::syncImageBacking):

LayoutTests:

  • platform/gtk/TestExpectations:
12:46 AM Changeset in webkit [217338] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216758 - [GTK] GIF images are not properly loaded the first time
https://bugs.webkit.org/show_bug.cgi?id=170432

Reviewed by Carlos Alberto Lopez Perez.

Source/WebCore:

When the GIF image is loaded for the first time, it's always read from the network, and the decoder is usually
fetched with chunks of data. Then the data is cached in disk by the network process, so that when loaded from
the cache, the whole encoded data is available to fetch the encoder. The problem is that we are failing to
decode the image when giving chunks of data, that's why it only happens the first time loaded. If the first
chunk of data provided is enough to get some metadata, including the size, but not frame contents, the load fails
in CachedImage::addIncrementalDataBuffer() because the EncodedDataStatus reported is SizeAvailable but
Image::isNull() returns true. An Image is considered to be Null when its size is empty, and the size is
calculated always using the first frame in ImageFrameCache. Since we still don't have frames, the image is
always Null in this case. It is not expected that EncodedDataStatus returns SizeAvailable and the image is Null,
that's why it's considered an error and the load finishes with a decode error. However, the non CG ImageDecoder
has a m_size member to handle this particular case, and it's when m_size is set when EncodedDataStatus changes
to SizeAvailable. We should return the ImageEncoder size as the ImageSize when we have a decoder but
not frames yet.

Test: http/tests/images/gif-progressive-load.html

  • platform/graphics/ImageFrameCache.cpp:

(WebCore::ImageFrameCache::size): Return ImageDecoder::size() without caching it, if frame list is empty.

LayoutTests:

  • http/tests/images/gif-progressive-load-expected.html: Added.
  • http/tests/images/gif-progressive-load.html: Added.
12:39 AM Changeset in webkit [217337] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebKit2

Merge r216670 - [GTK] JavaScript prompt uses title of page to be loaded rather than title of current page
https://bugs.webkit.org/show_bug.cgi?id=152690

Reviewed by Michael Catanzaro.

webkit_web_view_get_uri() returns the page to be loaded, use
internal api for this.

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewCreateJavaScriptDialog):

12:38 AM Changeset in webkit [217336] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.16

Merge r216643 - REGRESSION (r167845): ASSERT(!m_renderView.needsLayout()) in svg/custom/bug79798.html
https://bugs.webkit.org/show_bug.cgi?id=132297

Reviewed by Simon Fraser.

Source/WebCore:

We don't know why m_renderView needs layout in this case, but we know that we don't need to
assert if the client hasn't set the ScrollableInnerFrameTrigger compositing trigger.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame):

LayoutTests:

  • http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt:
  • http/tests/navigation/keyboard-events-during-provisional-subframe-navigation-expected.txt:
  • http/tests/navigation/resources/keyboard-events-test.js:

(runTest):

  • platform/ios-wk2/TestExpectations:
  • platform/wk2/TestExpectations:
12:34 AM Changeset in webkit [217335] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216631 - REGRESSION (r207372) Visibility property is not inherited when used in an animation
https://bugs.webkit.org/show_bug.cgi?id=171883
<rdar://problem/32086550>

Reviewed by Simon Fraser.

Source/WebCore:

The problem here is that our animation code is tied to renderers. We don't have renderers during
the initial style resolution so animations are not applied yet. When constructing renderers we set
their style to the initial animated style but this step can't implement inheritance.

Normally this is invisible as the first animation frame will immediately inherit the style correctly.
However in this case the animation is discrete and the first frame is the same as the initial state.
With r207372 we optimize the descendant style change away.

This patch fixes the problem by tracking that the renderer has initial animated style and inheriting
it to descendants during next style resolution even if it doesn't change.

Test: animations/animation-initial-inheritance.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::RenderElement):

  • rendering/RenderElement.h:

(WebCore::RenderElement::hasInitialAnimatedStyle):
(WebCore::RenderElement::setHasInitialAnimatedStyle):

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::createRenderer):

Set a bit on renderer indicating it has initial animated style.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

Return at least 'Inherit' for style change when updating renderer with initial animated style.

LayoutTests:

  • animations/animation-initial-inheritance-expected.html: Added.
  • animations/animation-initial-inheritance.html: Added.
12:23 AM Changeset in webkit [217334] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/JavaScriptCore

Merge r216608 - Crash in JavaScriptCore GC when using JSC on dispatch queues (thread_get_state returns NULL stack pointer).
https://bugs.webkit.org/show_bug.cgi?id=160337
<rdar://problem/27611733>

Reviewed by Filip Pizlo and Geoffrey Garen.

This is a workaround for <rdar://problem/27607384>. During thread initialization,
for some target platforms, thread state is momentarily set to 0 before being
filled in with the target thread's real register values. As a result, there's
a race condition that may result in us getting a null stackPointer during a GC scan.
This issue may manifest with workqueue threads where the OS may choose to recycle
a thread for an expired task.

The workaround is simply to indicate that there's nothing to copy and return.
This is correct because we will only ever observe a null pointer during thread
initialization. Hence, by definition, there's nothing there that we need to scan
yet, and therefore, nothing that needs to be copied.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStack):

12:23 AM Changeset in webkit [217333] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216607 - REGRESSION (r206960): Possible null pointer dereference under DOMSelection::getRangeAt()
https://bugs.webkit.org/show_bug.cgi?id=171925
<rdar://problem/29931223>

Reviewed by Wenson Hsieh.

We have evidence that selection().firstRange() can return null in DOMSelection::getRangeAt().
When this happens, we now throw an INDEX_SIZE_ERR instead of dereferencing it.

I believe this can happen if the VisibleSelection is orphaned but not none, because
rangeCount() only checks for isNone() but VisibleSelection::firstRange() can return null
if isNoneOrOrphaned().

No new tests, I do not know how to reproduce.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::getRangeAt):

12:21 AM Changeset in webkit [217332] by wenson_hsieh@apple.com
  • 5 edits
    2 adds in trunk

Respect image UTIs when writing to item providers when beginning data interaction on an image
https://bugs.webkit.org/show_bug.cgi?id=172436
<rdar://problem/31786569>

Reviewed by Beth Dakin.

Source/WebCore:

Previously, when beginning writing images to the WebItemProviderPasteboard, we would create a new UIImage and
use standard UIImage UIItemProviderWriting utilities to register the image to the pasteboard. This is lossy for
gifs, since UIImage doesn't inherently know how to represent gifs. Instead, register the raw image data directly
to the UTI type corresponding to the MIME type of the image, and use UIImage's item provider writing capability
as a fallback when the raw resourceData is unavailable.

Augments existing unit tests, and also adds a new unit test:
DataInteractionTests.ImageDoesNotUseElementSizeAsEstimatedSize

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::writeObjectRepresentations):

Tools:

Tweaks existing unit tests and adds a new test for image data interaction. See WebCore ChangeLog for more
details.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/apple.gif: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/gif-and-file-input.html: Added.

Create a new test page containing a GIF and a file input.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(checkTypeIdentifierIsRegisteredAtIndex):
(TestWebKitAPI::TEST):

12:19 AM Changeset in webkit [217331] by Carlos Garcia Campos
  • 8 edits
    2 copies in releases/WebKitGTK/webkit-2.16

Merge r216599 - Keyboard input suppression should extend to subframes
https://bugs.webkit.org/show_bug.cgi?id=171880
<rdar://problem/31201793>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: http/tests/navigation/keyboard-events-during-provisional-subframe-navigation.html

  • dom/EventDispatcher.cpp:

(WebCore::shouldSuppressEventDispatchInDOM): Changed to call shouldSuppressKeyboardInput()
on the main frame's loader.

  • editing/Editor.cpp:

(WebCore::Editor::shouldInsertText): Ditto.

LayoutTests:

  • http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt:
  • http/tests/navigation/keyboard-events-during-provisional-navigation.html:
  • http/tests/navigation/keyboard-events-during-provisional-subframe-navigation-expected.txt: Copied from LayoutTests/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt.
  • http/tests/navigation/keyboard-events-during-provisional-subframe-navigation.html: Copied from LayoutTests/http/tests/navigation/keyboard-events-during-provisional-navigation.html.
  • http/tests/navigation/resources/keyboard-events-after-navigation.html:
  • http/tests/navigation/resources/keyboard-events-test.js:

(runTest):
(waitForProvisionalNavigation.xhr.onreadystatechange):
(waitForProvisionalNavigation):

12:16 AM Changeset in webkit [217330] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.16

Merge r216593 - Null pointer dereference in WTF::RefPtr<WTF::StringImpl>::operator!() under slow_path_get_direct_pname
https://bugs.webkit.org/show_bug.cgi?id=171801

Reviewed by Michael Saboff.

JSTests:

These tests used to crash. The prefix and postfix tests cover different paths, except
postfix-ignored goes down the same path as prefix due to an optimization.

  • stress/for-in-postfix-ignored-index.js: Added.

(foo):

  • stress/for-in-postfix-index.js: Added.

(foo):

  • stress/for-in-prefix-index.js: Added.

(foo):

Source/JavaScriptCore:

This was a goofy oversight. The for-in optimization relies on the bytecode generator
to detect when the loop's index variable gets mutated. We forgot to have the hooks for
detecting this in prefix and postfix operations (++i and i++).

  • bytecompiler/NodesCodegen.cpp:

(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):

12:12 AM Changeset in webkit [217329] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebKit2

Merge r216584 - [GTK] HTTP authentication dialog should focus on first input field
https://bugs.webkit.org/show_bug.cgi?id=151349

Reviewed by Michael Catanzaro.

Setting focus on a widget before it's mapped does nothing. Move
the call to the right place.

  • UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:

(webkitAuthenticationDialogInitialize):
(webkitAuthenticationDialogMap):

12:11 AM Changeset in webkit [217328] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebInspectorUI

Merge r216562 - [GTK][Win] Web Inspector: Cann't open "Quick Open" dialog by pressing Ctrl+Shift+O
https://bugs.webkit.org/show_bug.cgi?id=171798

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-09
Reviewed by Michael Catanzaro.

PC can't input the shortcut keys Command+Shift+O and Command+P.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded): Use CommandOrControl instead of Command.

12:08 AM Changeset in webkit [217327] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/JavaScriptCore

Merge r216547 - Heap::heap() should behave gracefully for null pointers
https://bugs.webkit.org/show_bug.cgi?id=171888
<rdar://problem/32005315>

Reviewed by Mark Lam.

Some callers of Heap::heap() can pass a null cell and they will behave gracefully if we
return a null Heap. So, let's do that.

This fixes a crash and it does not hurt performance. I'm seeing a possible 0.5% regression
with 74% probability. That's a neutral result by our usual 95% standard.

  • heap/HeapInlines.h:

(JSC::Heap::heap):

May 23, 2017: Yesterday

11:43 PM Changeset in webkit [217326] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.16

Merge r217203 - [GTK] Remove Firefox user agent quirk for Google domains
https://bugs.webkit.org/show_bug.cgi?id=171941

Reviewed by Carlos Garcia Campos.

Source/WebCore:

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::urlRequiresFirefoxBrowser): Deleted.
(WebCore::UserAgentQuirks::firefoxRevisionString): Deleted.

  • platform/UserAgentQuirks.h:
  • platform/gtk/UserAgentGtk.cpp:

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk): Deleted.

11:43 PM Changeset in webkit [217325] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.16

Merge r216585 - Remove user agent quirk for Slack
https://bugs.webkit.org/show_bug.cgi?id=171869

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The user agent quirk for Slack does not seem to be necessary anymore. I am able to use Slack
without difficulty using our default user agent.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):

Tools:

Remove the corresponding test.

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

11:42 PM Changeset in webkit [217324] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216531 - Update Chrome and Firefox versions in user agent quirks
https://bugs.webkit.org/show_bug.cgi?id=171823

Reviewed by Carlos Alberto Lopez Perez.

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::UserAgentQuirks::firefoxRevisionString):

11:35 PM Changeset in webkit [217323] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.16

Merge r216440 - Text overlaps on http://www.duden.de/rechtschreibung/Acre
https://bugs.webkit.org/show_bug.cgi?id=171796
<rdar://problem/31036028>

Reviewed by Simon Fraser.

Source/WebCore:

Simple line layout pre-measures space using the primary font,
even if the space glyph requires a fallback font (and even if the string does not have a space in it at all).
When this width gets cached (see WidthCache) we might end up using it later during normal line layout and
it could produce incorrect layout.
This patch removes the space width caching from Simple line layout, since Font already caches it.

Test: fast/text/simple-line-layout-fallback-space-glyph.html

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::createLineRuns):

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::Style::Style):
(WebCore::SimpleLineLayout::TextFragmentIterator::skipToNextPosition):
(WebCore::SimpleLineLayout::TextFragmentIterator::textWidth):

  • rendering/SimpleLineLayoutTextFragmentIterator.h:

LayoutTests:

  • fast/text/simple-line-layout-fallback-space-glyph-expected.html: Added.
  • fast/text/simple-line-layout-fallback-space-glyph.html: Added.
11:27 PM Changeset in webkit [217322] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r216438 - Bail out of simple line layout when hyphen needs a fallback font.
https://bugs.webkit.org/show_bug.cgi?id=171811

Reviewed by Antti Koivisto.

With hyphen: auto is set, we don't know if the hypen string is going to be used, until
after we started laying out the content and figured that the text overflows the line.
However it's too late to bail out of simple line layout at this point, so let's just
pre-check if the hyphen string needs a fallback font.

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForStyle):

11:25 PM Changeset in webkit [217321] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] Increase test timeout for slow tests.
https://bugs.webkit.org/show_bug.cgi?id=172449

Reviewed by Alexey Proskuryakov.

Instead of using a fixed timeout of 30 seconds for all tests, we should use the
timeout member in the TestRunner class.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::setWaitToDump):

10:58 PM Changeset in webkit [217320] by jmarcell@apple.com
  • 6 edits
    2 adds in branches/safari-603-branch

Cherry-pick r217197. rdar://problem/32355285

10:39 PM Changeset in webkit [217319] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

CoreAudioCaptureSource is ducking system sound
https://bugs.webkit.org/show_bug.cgi?id=172512

Reviewed by Youenn Fablet.

Manual testing.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::defaultOutputDevice):

8:42 PM Changeset in webkit [217318] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit2

Resource Load Statistics: Don't include HSTS cache data in website data removal
https://bugs.webkit.org/show_bug.cgi?id=172525
<rdar://problem/32332704>

Reviewed by Brent Fulgham.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::initializeDataTypesToRemove):

6:09 PM Changeset in webkit [217317] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: content views are not restored on reload if its tree element is filtered out
https://bugs.webkit.org/show_bug.cgi?id=165744
<rdar://problem/27461323>

Reviewed by Devin Rousso.

By default, NavigationSidebar should get the selected represented object
from its content browser, instead of relying on the tree selection. This
allows a filtered tree selection to persist across page loads.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.get currentRepresentedObject):
(WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie):
Get the represented object from the content browser instead of relying
on the tree selection (which can be filtered out).

(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
(WebInspector.NavigationSidebarPanel.prototype._treeElementWasFiltered):
Reselect the represented object's tree element when it is shown due
to a change in the filter state.

(WebInspector.NavigationSidebarPanel.prototype.get hasSelectedElement): Deleted.
Not used.
(WebInspector.NavigationSidebarPanel.prototype.representedObjectWasFiltered): Deleted.
Not used. Replaced by _treeElementWasFiltered.

6:06 PM Changeset in webkit [217316] by said@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Speculative fix for a PLT regression
<rdar://problem/32361890>

Unreviewed.

Make sure CGImageSourceGetTypeWithData() is called with a buffer which is
32 bytes or more.

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoder::ImageDecoder):

5:33 PM Changeset in webkit [217315] by jiewen_tan@apple.com
  • 18 edits
    3 copies
    51 adds in trunk

[WebCrypto] Support RSA-PSS
https://bugs.webkit.org/show_bug.cgi?id=170869
<rdar://problem/31640672>

Reviewed by Brent Fulgham.

Source/WebCore:

This patch implements RSA-PSS according to the spec: https://www.w3.org/TR/WebCryptoAPI/#rsa-pss.
Supported operations include sign, verify, generateKey, importKey and exportKey.

Tests: crypto/subtle/rsa-pss-generate-export-key-jwk-sha1.html

crypto/subtle/rsa-pss-generate-export-key-jwk-sha224.html
crypto/subtle/rsa-pss-generate-export-key-jwk-sha256.html
crypto/subtle/rsa-pss-generate-export-key-jwk-sha384.html
crypto/subtle/rsa-pss-generate-export-key-jwk-sha512.html
crypto/subtle/rsa-pss-generate-export-key-pkcs8.html
crypto/subtle/rsa-pss-generate-export-key-spki.html
crypto/subtle/rsa-pss-generate-key.html
crypto/subtle/rsa-pss-import-jwk-private-key.html
crypto/subtle/rsa-pss-import-jwk-public-key-empty-usages.html
crypto/subtle/rsa-pss-import-jwk-public-key-sha1.html
crypto/subtle/rsa-pss-import-jwk-public-key-sha224.html
crypto/subtle/rsa-pss-import-jwk-public-key-sha256.html
crypto/subtle/rsa-pss-import-jwk-public-key-sha384.html
crypto/subtle/rsa-pss-import-jwk-public-key-sha512.html
crypto/subtle/rsa-pss-import-key-sign-large-salt.html
crypto/subtle/rsa-pss-import-key-sign.html
crypto/subtle/rsa-pss-import-key-verify.html
crypto/subtle/rsa-pss-import-pkcs8-key.html
crypto/subtle/rsa-pss-import-spki-key-empty-usages.html
crypto/subtle/rsa-pss-import-spki-key.html
crypto/workers/subtle/rsa-pss-import-key-sign.html
crypto/workers/subtle/rsa-pss-import-key-verify.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • PlatformGTK.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::normalizeCryptoAlgorithmParameters):

  • crypto/CryptoAlgorithmParameters.h:
  • crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp: Added.

(WebCore::CryptoAlgorithmRSA_PSS::create):
(WebCore::CryptoAlgorithmRSA_PSS::identifier):
(WebCore::CryptoAlgorithmRSA_PSS::sign):
(WebCore::CryptoAlgorithmRSA_PSS::verify):
(WebCore::CryptoAlgorithmRSA_PSS::generateKey):
(WebCore::CryptoAlgorithmRSA_PSS::importKey):
(WebCore::CryptoAlgorithmRSA_PSS::exportKey):

  • crypto/algorithms/CryptoAlgorithmRSA_PSS.h: Added.
  • crypto/mac/CryptoAlgorithmECDSAMac.cpp:

(WebCore::cryptoDigestAlgorithm): Deleted.
Extract function cryptoDigestAlgorithm to a separate file.

  • crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:

(WebCore::cryptoDigestAlgorithm): Deleted.
Extract function cryptoDigestAlgorithm to a separate file.

  • crypto/mac/CryptoAlgorithmRSA_PSSMac.cpp: Added.

(WebCore::signRSA_PSS):
(WebCore::verifyRSA_PSS):
(WebCore::CryptoAlgorithmRSA_PSS::platformSign):
(WebCore::CryptoAlgorithmRSA_PSS::platformVerify):

  • crypto/mac/CryptoAlgorithmRegistryMac.cpp:

(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):

  • crypto/mac/CryptoDigestAlgorithm.h: Added.

(WebCore::cryptoDigestAlgorithm):
Have cryptoDigestAlgorithm in a separate file.

  • crypto/parameters/CryptoAlgorithmRsaPssParams.h: Added.
  • crypto/parameters/RsaPssParams.idl: Added.

Source/WTF:

  • wtf/Platform.h:

Add a flag to enable RSA-PSS in the future.

LayoutTests:

Skip tests related to RSA-PSS for now.

  • crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt:
  • crypto/subtle/rsa-generate-key-malformed-parameters.html:
  • crypto/subtle/rsa-import-key-malformed-parameters-expected.txt:
  • crypto/subtle/rsa-import-key-malformed-parameters.html:
  • crypto/subtle/rsa-pss-generate-export-key-jwk-sha1-expected.txt: Added.
  • crypto/subtle/rsa-pss-generate-export-key-jwk-sha1.html: Added.
  • crypto/subtle/rsa-pss-generate-export-key-jwk-sha224-expected.txt: Added.
  • crypto/subtle/rsa-pss-generate-export-key-jwk-sha224.html: Added.
  • crypto/subtle/rsa-pss-generate-export-key-jwk-sha256-expected.txt: Added.
  • crypto/subtle/rsa-pss-generate-export-key-jwk-sha256.html: Added.
  • crypto/subtle/rsa-pss-generate-export-key-jwk-sha384-expected.txt: Added.
  • crypto/subtle/rsa-pss-generate-export-key-jwk-sha384.html: Added.
  • crypto/subtle/rsa-pss-generate-export-key-jwk-sha512-expected.txt: Added.
  • crypto/subtle/rsa-pss-generate-export-key-jwk-sha512.html: Added.
  • crypto/subtle/rsa-pss-generate-export-key-pkcs8-expected.txt: Added.
  • crypto/subtle/rsa-pss-generate-export-key-pkcs8.html: Added.
  • crypto/subtle/rsa-pss-generate-export-key-spki-expected.txt: Added.
  • crypto/subtle/rsa-pss-generate-export-key-spki.html: Added.
  • crypto/subtle/rsa-pss-generate-key-expected.txt: Added.
  • crypto/subtle/rsa-pss-generate-key.html: Added.
  • crypto/subtle/rsa-pss-import-jwk-private-key-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-jwk-private-key.html: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-empty-usages-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-empty-usages.html: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-sha1-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-sha1.html: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-sha224-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-sha224.html: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-sha256-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-sha256.html: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-sha384-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-sha384.html: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-sha512-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-jwk-public-key-sha512.html: Added.
  • crypto/subtle/rsa-pss-import-key-sign-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-key-sign-large-salt-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-key-sign-large-salt.html: Added.
  • crypto/subtle/rsa-pss-import-key-sign.html: Added.
  • crypto/subtle/rsa-pss-import-key-verify-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-key-verify.html: Added.
  • crypto/subtle/rsa-pss-import-pkcs8-key-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-pkcs8-key.html: Added.
  • crypto/subtle/rsa-pss-import-spki-key-empty-usages-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-spki-key-empty-usages.html: Added.
  • crypto/subtle/rsa-pss-import-spki-key-expected.txt: Added.
  • crypto/subtle/rsa-pss-import-spki-key.html: Added.
  • crypto/workers/subtle/resources/rsa-pss-import-key-sign.js: Added.
  • crypto/workers/subtle/resources/rsa-pss-import-key-verify.js: Added.
  • crypto/workers/subtle/rsa-pss-import-key-sign-expected.txt: Added.
  • crypto/workers/subtle/rsa-pss-import-key-sign.html: Added.
  • crypto/workers/subtle/rsa-pss-import-key-verify-expected.txt: Added.
  • crypto/workers/subtle/rsa-pss-import-key-verify.html: Added.
5:32 PM Changeset in webkit [217314] by sbarati@apple.com
  • 3 edits
    1 add in trunk

We should not mmap zero bytes for a memory in Wasm
https://bugs.webkit.org/show_bug.cgi?id=172528
<rdar://problem/32257076>

Reviewed by Mark Lam.

JSTests:

  • wasm/js-api/dont-mmap-zero-byte-memory.js: Added.

(testMems):

Source/JavaScriptCore:

This patch fixes a bug where we would call into mmap with zero bytes
when creating a slow WasmMemory with zero initial page size. This fix
is simple: if we don't have any initial bytes, we just call the constructor
in WasmMemory that's meant to handle this case.

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::create):

5:31 PM Changeset in webkit [217313] by jmarcell@apple.com
  • 7 edits in branches/safari-604.1.21-branch/Source

Versioning.

5:27 PM Changeset in webkit [217312] by Chris Dumez
  • 7 edits in trunk/LayoutTests

Some async tests ignore jsTestIsAsync when ported from js-test-pre.js / js-test-post.js to js-test.js
https://bugs.webkit.org/show_bug.cgi?id=172523

Reviewed by Ryosuke Niwa.

This test used to be flaky because jsTestIsAsync was ignored. It now consistently times out.

  • fast/dom/script-charset-update.html:

Port test to js-test.js instead of js-test-pre.js / js-test-post.js now that it works.

  • fast/mediacapturefromelement/CanvasCaptureMediaStream-webgl-events-expected.txt:

Rebaseline test now that it actually runs to the end.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

Remove expectation for a test that is now skipped in root TestExpectations file.

  • resources/js-test.js:

Call testRunner.waitUntilDone() in the DOMContentLoader event listener if jsTestIsAsync is already
set then, instead of waiting for the load event listener to do so. This is needed because some
tests may decide to complete *before* the load event has fired, such as the test updated in this
patch. We still need to call testRunner.waitUntilDone() in the load event listener as well because
some tests only set jsTestIsAsync in a load event handler.

5:07 PM Changeset in webkit [217311] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebCore

[MediaStream] Allow transition from autoplay to play when a capture stream begins.
https://bugs.webkit.org/show_bug.cgi?id=172391
<rdar://problem/32304934>

Reviewed by Youenn Fablet.

Manual testing. Regression testing to be added as a follow-up.

  • dom/Document.cpp:

(WebCore::Document::updateIsPlayingMedia): Call mediaStreamCaptureStateChanged when capture
state changes.
(WebCore::Document::registerForMediaStreamStateChangeCallbacks):
(WebCore::Document::unregisterForMediaStreamStateChangeCallbacks):
(WebCore::Document::mediaStreamCaptureStateChanged): Call all registered elements.

  • dom/Document.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::registerWithDocument): Register for capture state changes.
(WebCore::HTMLMediaElement::unregisterWithDocument): Unregister for capture state changes.
(WebCore::HTMLMediaElement::mediaStreamCaptureStateChanged): Attempt autoplay as necessary.

  • html/HTMLMediaElement.h:
5:01 PM Changeset in webkit [217310] by mrajca@apple.com
  • 10 edits
    2 adds in trunk

Replace autoplay events that fire at navigation with a DidAutoplayMediaPastThreshold event.
https://bugs.webkit.org/show_bug.cgi?id=172138

Reviewed by Alex Christensen.

Source/WebCore:

The current autoplay signals that are fired at navigation may not get delivered to the UIProcess if the WebPage is close()'ed around
this time. This patch simplifies this and just notifies clients if a media element has played past a threshold.

Updated API tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::playbackProgressTimerFired):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):
(WebCore::HTMLMediaElement::userDidInterfereWithAutoplay):

  • page/AutoplayEvent.h:

Source/WebKit2:

Updated auto-play event types.

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:

Tools:

Added API tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/js-autoplay-audio.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/silence-long.m4a: Added.
5:01 PM Changeset in webkit [217309] by Brian Burg
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r217051): Automation sessions fail to complete bootstrap
https://bugs.webkit.org/show_bug.cgi?id=172513
<rdar://problem/32338354>

Reviewed by Joseph Pecoraro.

The changes to be more strict about typechecking messages were too strict.

  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::receivedSetupMessage):
WIRAutomatically is an optional key in the setup message. In the relay, this key gets copied
into an NSDictionary as NSNull if the key isn't present in a forwarded command.
We need to revert NSNull values to nil, since it's valid to call [nil boolValue] but not
[[NSNull null] boolValue]. We also need to allow for nil in the typecheck for this key.

5:00 PM Changeset in webkit [217308] by Ryan Haddad
  • 7 edits in trunk/LayoutTests

Rebaseline tests for iOS simulator.

Unreviewed test gardening.

  • fast/events/ios/rotation/basic-rotation-expected.txt:
  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state-expected.txt:
  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state-expected.txt:
  • fast/events/touch/ios/block-without-overflow-scroll-scrolling-state-expected.txt:
  • fast/events/touch/ios/tap-with-active-touch-end-listener-expected.txt:
  • fast/visual-viewport/ios/zoomed-focus-in-fixed-expected.txt:
4:45 PM Changeset in webkit [217307] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

ASSERT(!m_timeoutTimer.isActive()) hit in BackgroundProcessResponsivenessTimer::responsivenessCheckTimerFired()
https://bugs.webkit.org/show_bug.cgi?id=172509
<rdar://problem/32251578>

Reviewed by Geoffrey Garen.

In the BackgroundProcessResponsivenessTimer class, we have 2 timers:

  • m_responsivenessCheckTimer that causes us to do an IPC handshake with the WebProcess.
  • m_timeoutTimer that is started when we send the IPC message to the WebProcess and which is stopped when we get the response from the WebProcess. If we do not get the response by the time m_timeoutTimer fires, then we mark the process as unresponsive.

As a result, of the behavior above, whenever the BackgroundProcessResponsivenessTimer
is considered "active", there should be one of the 2 timers above that
is active, and only one.

The assertion hit showed that we decided to start the m_responsivenessCheckTimer
timer even though the m_timeoutTimer timer is still active (we are still waiting
for an IPC message from the WebProcess and the process is not considered
unresponsive yet), which is wrong. The reason was that in
BackgroundProcessResponsivenessTimer::updateState(), if we should be active,
we would start the m_responsivenessCheckTimer if m_responsivenessCheckTimer is
not already active, without checking if m_timeoutTimer is active. So if
updateState() was called while the IPC handshake was in process, we would have
both timers running at the same time.

  • UIProcess/BackgroundProcessResponsivenessTimer.cpp:

(WebKit::BackgroundProcessResponsivenessTimer::updateState):
(WebKit::BackgroundProcessResponsivenessTimer::isActive):

  • UIProcess/BackgroundProcessResponsivenessTimer.h:
3:58 PM Changeset in webkit [217306] by Matt Baker
  • 5 edits in trunk

Web Inspector: Cannot delete a disabled XHR breakpoint
https://bugs.webkit.org/show_bug.cgi?id=171971
<rdar://problem/32129527>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WebInspector.DOMDebuggerManager.prototype.removeXHRBreakpoint):
Dispatch XHRBreakpointRemoved event before removing the breakpoint from
the backend. A disabled breakpoint will have already been removed, and
an enabled breakpoint that fails to get removed from the backend should
be removed from the frontend, to prevent it being resolved in the future.
Drive-by fix: remove spurious dispatch of DOMBreakpointRemoved event.

(WebInspector.DOMDebuggerManager.prototype._detachXHRBreakpoint): Deleted.
Merged with removeXHRBreakpoint to simplify implementation.

LayoutTests:

  • inspector/dom-debugger/xhr-breakpoints-expected.txt:
  • inspector/dom-debugger/xhr-breakpoints.html:
3:55 PM Changeset in webkit [217305] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip crashing css-display-3/display-contents tests.
https://bugs.webkit.org/show_bug.cgi?id=172503

Unreviewed test gardening.

3:54 PM Changeset in webkit [217304] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.21.8

Tag Safari-604.1.21.8.

2:44 PM Changeset in webkit [217303] by simon.fraser@apple.com
  • 4 edits in trunk

Stop consulting -viewsNeedDisplay when doing layer flushing in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=172522
rdar://problem/31071812

Source/WebKit/mac:

Reviewed by Tim Horton.

There's no need to consult -[NSWindow viewsNeedDisplay] on newer OSes. It was
added in r58623, and modified in r61204 for Carbon apps, but with more recent AppKit
versions this synchronization is no longer required.

  • WebView/WebView.mm:

(LayerFlushController::flushLayers):

Tools:

Reviewed by Sam Weinig.

Remove NSWindowStyleMaskFullSizeContentView which is no longer referenced in code.
We set this in the .xib file now.

  • MiniBrowser/mac/MiniBrowser_Prefix.pch:
2:33 PM Changeset in webkit [217302] by Manuel Rego Casasnovas
  • 2 edits
    35 copies
    2 adds
    1 delete in trunk/LayoutTests/imported/w3c

Move css-scoping-1 test suite to WPT
https://bugs.webkit.org/show_bug.cgi?id=172500

Reviewed by Youenn Fablet.

csswg-test repo was merged into web-platform-tests a while ago,
this patch moves the css-scoping-1 test suite to the new path.

  • csswg-test/css-scoping-1/w3c-import.log: Removed.
  • resources/import-expectations.json:
  • web-platform-tests/css/css-scoping-1/OWNERS: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/OWNERS.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-before-after.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-assigned-node-with-rules-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-rules-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-assigned-node-with-rules.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-assigned-node-with-rules.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-host-functional-rule-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-host-functional-rule-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-host-functional-rule.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-host-functional-rule.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-host-rule-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-host-rule-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-host-rule.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-host-rule.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-host-with-before-after-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-host-with-before-after-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-host-with-before-after.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-host-with-before-after.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-invisible-slot-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-invisible-slot-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-invisible-slot.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-invisible-slot.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-root-hides-children-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-root-hides-children-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-root-hides-children.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-root-hides-children.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slot-display-override-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-display-override-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slot-display-override.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-display-override.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slot-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slot-fallback-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-fallback-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slot-fallback.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-fallback.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slot-style-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slot-style.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot-style.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slot.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slot.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slotted-nested-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slotted-nested-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slotted-nested.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slotted-nested.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slotted-rule-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slotted-rule-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-slotted-rule.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-slotted-rule.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-with-outside-rules-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-with-outside-rules-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-with-outside-rules.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-with-outside-rules.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-with-rules-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-with-rules-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-with-rules-no-style-leak-expected.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-with-rules-no-style-leak-expected.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-with-rules-no-style-leak.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-with-rules-no-style-leak.html.
  • web-platform-tests/css/css-scoping-1/css-scoping-shadow-with-rules.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/css-scoping-shadow-with-rules.html.
  • web-platform-tests/css/css-scoping-1/shadow-cascade-order-001-expected.txt: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/shadow-cascade-order-001-expected.txt.
  • web-platform-tests/css/css-scoping-1/shadow-cascade-order-001.html: Renamed from LayoutTests/imported/w3c/csswg-test/css-scoping-1/shadow-cascade-order-001.html.
  • web-platform-tests/css/css-scoping-1/w3c-import.log: Added.
2:30 PM Changeset in webkit [217301] by jlewis3@apple.com
  • 2 edits in trunk/LayoutTests

Marked imported/w3c/web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-inline.html as failing.
https://bugs.webkit.org/show_bug.cgi?id=172515

Unreviewed test gardening.

2:06 PM Changeset in webkit [217300] by Chris Dumez
  • 5 edits
    3 adds in trunk/LayoutTests
Regression(r215229): ASSERTION FAILED: !m_scriptHash
m_scriptHash == m_script.impl()->hash()

https://bugs.webkit.org/show_bug.cgi?id=171091
<rdar://problem/31752046>

Reviewed by Geoffrey Garen.

  • fast/dom/resources/script-with-unicode.js: Added.
  • fast/dom/script-charset-update-expected.txt: Added.
  • fast/dom/script-charset-update.html: Added.

Add test that was consistently hitting the assertion in debug builds before
r215229 was rolled out.

  • fast/loader/cache-encoding-expected.txt:
  • fast/loader/cache-encoding.html:

Improve test to check that it is actually getting a SyntaxError the first time,
when it loads the script with the wrong encoding. Apparently this test was not
clear enough because it was updated / disabled in r215229, but was showing a
real bug.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:

Unskip test was should no longer be flaky now that r215229 has been rolled out.

1:59 PM Changeset in webkit [217299] by jlewis3@apple.com
  • 3 edits in trunk/LayoutTests

Marked imported/w3c/web-platform-tests/webrtc/getstats.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=172521

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
1:49 PM Changeset in webkit [217298] by dino@apple.com
  • 12 edits
    2 adds in trunk

checkGPUStatus needs to exercise instancing calls
https://bugs.webkit.org/show_bug.cgi?id=172520
<rdar://problem/23118395>

Reviewed by Brent Fulgham.

Source/WebCore:

The checkGPUStatus method (formerly checkGPUStatusIfNecessary) was
not being called after the drawArrays/Elements instancing calls.

I also added a test case to exercise the recovery logic.

Test: fast/canvas/webgl/lose-context-on-status-failure.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::setFailNextGPUStatusCheck): Force
the next checkGPUStatus on the GC3D to fail.

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/GraphicsContext3D.h: Rename a function, and make

the number of calls we wait before checking per instance, rather than
static (which might have meant we're only ever checking after one canvas on
a page with multiple contexts).
(WebCore::GraphicsContext3D::setFailNextGPUStatusCheck):

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::checkGPUStatus): Renamed.
(WebCore::GraphicsContext3D::checkGPUStatusIfNecessary): Deleted.

  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::GraphicsContext3D::checkGPUStatus): Improve the logic.
(WebCore::GraphicsContext3D::checkGPUStatusIfNecessary): Deleted.

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::clear):
(WebCore::GraphicsContext3D::drawArrays):
(WebCore::GraphicsContext3D::drawElements):
(WebCore::GraphicsContext3D::drawArraysInstanced): Add a call to checkGPUStatus.
(WebCore::GraphicsContext3D::drawElementsInstanced): Ditto.

  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:

(WebCore::GraphicsContext3D::checkGPUStatus):
(WebCore::GraphicsContext3D::checkGPUStatusIfNecessary): Deleted.

  • testing/Internals.cpp: Implement the internal call to cause the next

check to fail.
(WebCore::Internals::failNextGPUStatusCheck):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/canvas/webgl/lose-context-on-status-failure-expected.txt: Added.
  • fast/canvas/webgl/lose-context-on-status-failure.html: Added.
1:49 PM Changeset in webkit [217297] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[WebIDL] Further cleanup enumeration handling
https://bugs.webkit.org/show_bug.cgi?id=172516

Patch by Sam Weinig <sam@webkit.org> on 2017-05-23
Reviewed by Chris Dumez.

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePut):
(GeneratePutByIndex):
(GenerateDictionaryImplementationContent):
(GenerateParametersCheck):
(GenerateCallbackImplementationContent):
Update now that JSValueToNative doesn't have a second return value.

(GenerateImplementation):
Add enumeration special casing to attribute setting code, where it is special
cased in the standard

(PassArgumentExpression):
Stop special casing enumerations.

(IsValidContextForJSValueToNative):
Assert that enums are never passed to JSValueToNative in an attribute context.

(JSValueToNative):
Remove enumeration special case and second return value (which was always 1).

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::setJSTestObjEnumAttrFunction):
(WebCore::setJSTestObjImplementationEnumAttrFunction):
(WebCore::setJSTestObjAttributeWithReservedEnumTypeFunction):
Update results.

1:44 PM Changeset in webkit [217296] by simon.fraser@apple.com
  • 61 edits
    1 add in trunk

Snapshotting via -renderInContext: should do synchronous image decodes
https://bugs.webkit.org/show_bug.cgi?id=172485
rdar://problem/32276146

Reviewed by Tim Horton.

Source/WebCore:

When UIWebView clients snapshot the view via -renderInContext: on the UIView's layer,
WebKit should do synchronous image decodes so that the images show in the snapshot.

Fix by plumbing through a "snapshotting" paint behavior flag from two source locations:
WebSimpleLayer, used by compositing layers, and LegacyTileLayer, used for the WK1 tile cache.
On WebSimpleLayer the flag propagates through PlatformCALayer to GraphicsLayer, and on LegacyTileLayer
it sets some state on the WAKWindow, which is detected by -[WebFrame _paintBehaviorForDestinationContext:].
In both cases, the flag becomes PaintBehaviorSnapshotting which is passed down through painting
in PaintInfo.paintBehavior.

Fix code that was checking paintBehavior on the FrameView to just looking at PaintInfo.paintBehavior,
which required passing PaintInfo along in RenderImage::paintIntoRect().

We can't just use the PaintBehaviorFlattenCompositingLayers flag, because that triggers
a flattening paint of compositing layers, and we don't want that behavior for -renderInContext:,
since CoreAnimation calls -renderInContext: on each of our layers and we need to avoid double-painting.
So PaintBehaviorSnapshotting is now added to the call sites that also set PaintBehaviorFlattenCompositingLayers
in most cases.

Tested by SnapshotViaRenderInContext API test.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):

  • page/FrameView.cpp:

(WebCore::FrameView::willPaintContents):
(WebCore::FrameView::paintContentsForSnapshot):

  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::paintContents):

  • page/PageOverlayController.h:
  • page/mac/ServicesOverlayController.h:
  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::Highlight::paintContents):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::paintGraphicsLayerContents):

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/GraphicsLayerClient.h:

(WebCore::GraphicsLayerClient::paintContents):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::platformCALayerPaintContents):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/PlatformCALayerClient.h:
  • platform/graphics/ca/TileCoverageMap.cpp:

(WebCore::TileCoverageMap::platformCALayerPaintContents):

  • platform/graphics/ca/TileCoverageMap.h:
  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::platformCALayerPaintContents):

  • platform/graphics/ca/TileGrid.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayer::drawLayerContents):

  • platform/graphics/mac/WebLayer.mm:

(-[WebLayer drawInContext:]):
(-[WebSimpleLayer renderInContext:]):
(-[WebSimpleLayer drawInContext:]):

  • platform/ios/LegacyTileCache.h: Use initializers.
  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::LegacyTileCache):
(WebCore::LegacyTileCache::drawWindowContent):
(WebCore::LegacyTileCache::drawLayer):

  • platform/ios/LegacyTileLayer.h:
  • platform/ios/LegacyTileLayer.mm:

(-[LegacyTileHostLayer renderInContext:]):
(-[LegacyTileLayer renderInContext:]):
(-[LegacyTileLayer drawInContext:]):
(+[LegacyTileLayer layerBeingPainted]): Deleted. There were no callers.

  • platform/ios/wak/WAKView.mm:

(-[WAKView _drawRect:context:lockFocus:]): bool -> BOOL

  • platform/ios/wak/WAKWindow.h:
  • platform/ios/wak/WAKWindow.mm:

(-[WAKWindow setIsInSnapshottingPaint:]):
(-[WAKWindow isInSnapshottingPaint]):

  • rendering/PaintPhase.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paintMaskImages):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderImage.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintForegroundForFragments):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintContents):

  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::paintContents):

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::paintReplaced):

Source/WebKit/mac:

Remove the _setIncludesFlattenedCompositingLayersWhenDrawingToBitmap: SPI that no longer
has any callers.

  • Plugins/WebBaseNetscapePluginView.h:
  • Plugins/WebBaseNetscapePluginView.mm:

(-[WebBaseNetscapePluginView inFlatteningPaint]): Deleted.

  • WebView/WebFrame.mm:

(-[WebFrame _paintBehaviorForDestinationContext:]):
(-[WebFrame _drawRect:contentsOnly:]):
(-[WebFrame _shouldFlattenCompositingLayers:]): Deleted.

  • WebView/WebHTMLView.mm:

(imageFromRect):

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _setIncludesFlattenedCompositingLayersWhenDrawingToBitmap:]): Deleted.
(-[WebView _includesFlattenedCompositingLayersWhenDrawingToBitmap]): Deleted.

  • WebView/WebViewData.h:
  • WebView/WebViewPrivate.h:

Source/WebKit2:

Pass the PaintBehaviorSnapshotting flag in functions that do snapshotting.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::imageForRect):

  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:

(WebKit::InjectedBundleRangeHandle::renderedImage):

Tools:

New API test.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/ios/SnapshotViaRenderInContext.mm: Added.

(-[RenderInContextWebViewDelegate webViewDidFinishLoad:]):
(-[RenderInContextWebViewDelegate webView:didFailLoadWithError:]):
(TestWebKitAPI::getPixelIndex):
(TestWebKitAPI::TEST):

1:34 PM Changeset in webkit [217295] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: use initialLayout for NetworkSidebarPanel
https://bugs.webkit.org/show_bug.cgi?id=172470

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/NetworkSidebarPanel.js:

(WebInspector.NetworkSidebarPanel):
(WebInspector.NetworkSidebarPanel.prototype.showDefaultContentView):
(WebInspector.NetworkSidebarPanel.prototype.initialLayout):
Don't create NetworkGridContentView until right before it is shown.

1:31 PM Changeset in webkit [217294] by Manuel Rego Casasnovas
  • 6 edits
    109 adds in trunk/LayoutTests

[css-grid] Import css/css-grid-1/alignment/ from WPT (8df7c9c215)
https://bugs.webkit.org/show_bug.cgi?id=172494

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

This patch imports the new alignment tests for the CSS Grid Layout test suite
from WPT repository. It also needs to start importing "css/reference" folder
as some of the new tests were pointing to reference files there
and the importer wasn't able to get them.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-001-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-001.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-002-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-002.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-003-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-003.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-004-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-004.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-005-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-005.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-006-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-006.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-007-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-007.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-008-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-008.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-009-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-009.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-010-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-010.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-011-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-011.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-012-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-012.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-013-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-013.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-014-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-014.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-015-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-015.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-016-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-016.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-017-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-017.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-018-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-018.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-019-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-019.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-020-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-020.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-021-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-021.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-022-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-022.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-023-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-023.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-024-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-024.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-025-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-025.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-001-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-001.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-002-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-002.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-003-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-003.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-004-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-004.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-005-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-005.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-006-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-006.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-007-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-007.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-008-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-008.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-009-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-009.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-010-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-010.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-011-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-011.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-012-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-012.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-013-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-013.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-014-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-014.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-015-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-015.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-016-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-016.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-017-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-017.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-018-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-018.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-019-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-019.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-020-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-020.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-021-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-021.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-022-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-022.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-023-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-023.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-024-expected.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/grid-content-distribution-with-collapsed-tracks-024.html: Added.
  • web-platform-tests/css/css-grid-1/alignment/w3c-import.log: Added.
  • web-platform-tests/css/css-grid-1/grid-items/w3c-import.log:
  • web-platform-tests/css/css-grid-1/grid-model/w3c-import.log:
  • web-platform-tests/css/reference/OWNERS: Added.
  • web-platform-tests/css/reference/pass_if_filler_text_match_bold-expected.xht: Added.
  • web-platform-tests/css/reference/pass_if_filler_text_match_bold.xht: Added.
  • web-platform-tests/css/reference/pass_if_filler_text_match_smallcaps-expected.xht: Added.
  • web-platform-tests/css/reference/pass_if_filler_text_match_smallcaps.xht: Added.
  • web-platform-tests/css/reference/pass_if_filler_text_underlined-expected.html: Added.
  • web-platform-tests/css/reference/pass_if_filler_text_underlined.html: Added.
  • web-platform-tests/css/reference/w3c-import.log: Added.

LayoutTests:

1:24 PM Changeset in webkit [217293] by mmaxfield@apple.com
  • 25 edits
    3 deletes in trunk

Remove dead ENABLE(FONT_LOAD_EVENTS) code
https://bugs.webkit.org/show_bug.cgi?id=172517

Rubber-stamped by Simon Fraser.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

No new tests because there is no behavior change.

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSAllInOne.cpp:
  • css/CSSFontFaceLoadEvent.cpp: Removed.
  • css/CSSFontFaceLoadEvent.h: Removed.
  • css/CSSFontFaceLoadEvent.idl: Removed.
  • dom/EventNames.in:
  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setFontLoadEventsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::fontLoadEventsEnabled): Deleted.

Source/WebCore/PAL:

No new tests because there is no behavior change.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
1:23 PM Changeset in webkit [217292] by ap@apple.com
  • 22 edits in trunk/LayoutTests

Many editing js-tests use waitUntilDone
https://bugs.webkit.org/show_bug.cgi?id=172401

Reviewed by Ryosuke Niwa.

Corrected the use of js-test harness, updated the tests to use js-test.js instead
of js-test-pre.js where possible.

  • editing/caret/ios/absolute-caret-position-after-scroll.html:
  • editing/caret/ios/fixed-caret-position-after-scroll.html:
  • editing/input/style-change-during-input.html:
  • editing/inserting/insert-html-crash.html:
  • editing/mac/input/undo-grouping-on-text-insertion.html:
  • editing/mac/selection/context-menu-select-editability-expected.txt:
  • editing/mac/selection/context-menu-select-editability.html:
  • editing/mac/spelling/accept-candidate-undo-does-not-select.html:
  • editing/mac/spelling/autocorrection-respets-undo-expected.txt:
  • editing/mac/spelling/autocorrection-respets-undo.html:
  • editing/pasteboard/drag-and-drop-attachment-contenteditable.html:
  • editing/pasteboard/drag-and-drop-image-contenteditable.html:
  • editing/pasteboard/drag-and-drop-inputimage-contenteditable.html:
  • editing/pasteboard/drag-and-drop-objectimage-contenteditable.html:
  • editing/pasteboard/drag-link-with-data-transfer-adds-trusted-link-to-pasteboard-expected.txt:
  • editing/pasteboard/drag-link-with-data-transfer-adds-trusted-link-to-pasteboard.html:
  • editing/selection/ios/absolute-selection-after-scroll.html:
  • editing/selection/ios/fixed-selection-after-scroll.html:
  • editing/spelling/copy-paste-crash-expected.txt:
  • editing/spelling/copy-paste-crash.html:
  • editing/style/apply-style-join-child-text-nodes-crash.html:
12:51 PM Changeset in webkit [217291] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WTF

[WTF] Export additional symbols in threading
https://bugs.webkit.org/show_bug.cgi?id=171952

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-23
Reviewed by Konstantin Tokarev.

  • wtf/ThreadMessage.h:
  • wtf/threads/Signals.h:
12:46 PM Changeset in webkit [217290] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, test gardening after r217225

Gardening about imported/w3c/web-platform-tests/WebCryptoAPI/

12:39 PM Changeset in webkit [217289] by Chris Dumez
  • 15 edits in trunk

Unreviewed, roll out r215229

It caused CachedScripts in MemoryCache to be reused with different encodings
even though CachedScript potentially has already decoded data or cached hash
with a previous encoding.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-charset-01-expected.txt:

Source/WebCore:

  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::setEncoding):

  • loader/TextResourceDecoder.h:

(WebCore::TextResourceDecoder::sawError):
(WebCore::TextResourceDecoder::encodingSet): Deleted.

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::setEncoding):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::CachedResource):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::hasUnknownEncoding):
(WebCore::CachedResource::setHasUnknownEncoding):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::determineRevalidationPolicy):

LayoutTests:

  • TestExpectations:
  • fast/loader/cache-encoding-expected.txt:
  • fast/loader/cache-encoding.html:
  • http/tests/preload/preload-encoding-expected.txt:
  • http/tests/preload/preload-encoding.php:
11:58 AM Changeset in webkit [217288] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Zoom in/out is slow in Safari with large PDFs
https://bugs.webkit.org/show_bug.cgi?id=172495
<rdar://problem/32338631>

Reviewed by Simon Fraser.

No tests; just a performance improvement.

  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::computePageBoxes):
Use PDFKit instead of CGPDF to compute the first page box, so we can take
advantage of PDFKit optimizations. PDFKit also handles box fallback,
so we don't need to do that ourselves. Stop fetching all the boxes, as
we only seem to use the first one.

11:49 AM Changeset in webkit [217287] by sbarati@apple.com
  • 3 edits
    1 add in trunk

CFGSimplificationPhase should not merge a block with itself
https://bugs.webkit.org/show_bug.cgi?id=172508
<rdar://problem/28424006>

Reviewed by Keith Miller.

JSTests:

  • stress/dont-crash-in-cfg-simplification.js: Added.

(bar):
(baz):
(foo):

Source/JavaScriptCore:

CFGSimplificationPhase can run into or create IR that ends up with a
block that has a Jump to itself, and no other predecessors. It should
gracefully handle such IR. Before this patch, it would not. The only criteria
for merging 'block' with 'targetBlock' used to be that 'targetBlock.predecessors.size() == 1'.
The code is written in such a way that if we merge a block with itself, we
will infinite loop until we run out of memory.

Merging a block with itself does not make sense for a few reasons. First,
we're joining the contents of two blocks. What is the definition of joining
a block with itself? I suppose we could simply unroll this self loop
one level, but that would not be wise because this self loop is by definition
unreachable unless it's the root block in the graph (which I think is
invalid IR since we'd never generate bytecode that would do this).

This patch employs an easy fix: we can't merge a block with itself.

  • dfg/DFGCFGSimplificationPhase.cpp:

(JSC::DFG::CFGSimplificationPhase::canMergeBlocks):
(JSC::DFG::CFGSimplificationPhase::run):
(JSC::DFG::CFGSimplificationPhase::convertToJump):
(JSC::DFG::CFGSimplificationPhase::mergeBlocks):

11:37 AM Changeset in webkit [217286] by zalan@apple.com
  • 2 edits in trunk/Source/WebCore

ASSERTION FAILED: !renderer().view().needsLayout() while running media/video-main-content-autoplay.html
https://bugs.webkit.org/show_bug.cgi?id=172476

Reviewed by Simon Fraser.

This patch decouples the layout call logic from the post layout task timer setup.
Just because we are switching over to asynchronous performPostLayoutTasks() it should not stop us from
running layout on a dirty tree (we could encounter a forced layout (which sets m_postLayoutTasksTimer active)
and a subsequent tree mutation during performPostLayoutTasks()).

There are a few different ways to end up here:
root layout is done -> call performPostLayoutTasks() synchronously ->

  1. tree stays clean -> no action needed.
  2. tree gets dirty -> setup performPostLayoutTasks timer -> run nested layout -> since m_postLayoutTasksTimer is active()

we don't try to run performPostLayoutTasks() while in the nested layout and we return with a clean tree.

  • page/FrameView.cpp:

(WebCore::FrameView::layout):

11:36 AM Changeset in webkit [217285] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip LayoutTest imported/w3c/web-platform-tests/innerText/getter.html.
https://bugs.webkit.org/show_bug.cgi?id=172514

Unreviewed test gardening.

11:27 AM Changeset in webkit [217284] by wenson_hsieh@apple.com
  • 4 edits in trunk

Multiple links should be inserted separately when performing data interaction
https://bugs.webkit.org/show_bug.cgi?id=172489
<rdar://problem/31510832>

Reviewed by Dan Bernstein.

Source/WebCore:

In WebContentReader, URLs are currently always inserted inline. When inserting multiple items, this causes
adjacent links to be inserted on a single line with no break, which is undesirable. To address this, when
appending links from additional items to the existing document fragment in WebContentReader, insert a new space
prior to inserting the anchor element.

New unit test: DataInteractionTests.ExternalSourceMultipleURLsToContentEditable

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::WebContentReader::addFragment):

Tweak to add all children of the new fragment, rather than just the first child.

(WebCore::Editor::WebContentReader::readURL):

Tools:

Adds a new test that performs data interaction in a contenteditable with multiple items containing URLs.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

11:20 AM Changeset in webkit [217283] by timothy_horton@apple.com
  • 4 edits in trunk

REGRESSION: API test WebKit2.WKObject is failing
https://bugs.webkit.org/show_bug.cgi?id=172497
<rdar://problem/31694641>

Reviewed by Geoff Garen.

  • Shared/Cocoa/WKNSString.mm:

(-[WKNSString superclass]):
(-[WKNSString class]):
Pretend to be NSString instead of the more specific subclass (NSCFString)
that we actually are. There is code underneath us that assumes that if
-class returns
NSCFString, that the object is a CFStringRef, which is
not true in our case.

  • TestWebKitAPI/Tests/WebKit2Cocoa/WKObject.mm:

(TestWebKitAPI::TEST):
Add a test that ensures that we pretend to at least be *some* kind of
NSString, which my first fix would not have passed.

9:35 AM Changeset in webkit [217282] by Ryan Haddad
  • 3 edits in branches/safari-604.1.21-branch/Tools

Merge r216899. rdar://problem/32352868

9:30 AM Changeset in webkit [217281] by commit-queue@webkit.org
  • 16 edits in trunk

[WebIDL] Remove some unnecessary specialization for enum types
https://bugs.webkit.org/show_bug.cgi?id=172482

Patch by Sam Weinig <sam@webkit.org> on 2017-05-23
Reviewed by Chris Dumez.

Source/WebCore:

  • Removes convertEnumeration template function and generated specialization. convert<IDLEnumeration<T>> now does the entire check, and can have specialized exceptions.
  • Treats enums more like all other types, removing enum specific code in the generator.

Also fixes some order of exception bugs as the convertEnumeration<T> implementations
were not correctly catching exceptions thrown in parseEnumeration<T>.

  • bindings/js/JSDOMConvertEnumeration.h:

(WebCore::Converter<IDLEnumeration<T>>::convert):
Remove convertEnumeration and move implementation to convert. Add ExceptionThrower
parameter to retain argument conversion exception specialization and allow future
specialization for other contexts.

  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::jsSubtleCryptoFunctionImportKeyPromise):
(WebCore::jsSubtleCryptoFunctionExportKeyPromise):
(WebCore::jsSubtleCryptoFunctionWrapKeyPromise):
(WebCore::jsSubtleCryptoFunctionUnwrapKeyPromise):
Switch from convertEnumeration<T> to convert<IDLEnumeration<T>>.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetArgumentExceptionFunction):
Add (really move from GenerateParametersCheck) enum specific argument conversion exception.

(PassArgumentExpression):
Allow the enum specific code for attributes to remain by explicitly checking the context.
Attribute setters use parseEnumeration<T> explicitly, as WebIDL mandates slightly different
behavior, specially that they don't throw.

(GenerateEnumerationImplementationContent):
(GenerateEnumerationHeaderContent):
Remove convertEnumeration<T>.

(GenerateParametersCheck):
Remove entire branch devoted to enums. The main parameter check is now mature enough
to handle them.

(JSValueToNative):
Like in PassArgumentExpression, we need to retain the specialize behavior for attributes.
Before, JSValueToNative was only called for enums with a context of IDLAttribute or IDLDictionaryMember,
but now that we use if IDLArguments as well, it makes more sense to make this check in terms
of the odd man out, IDLAttribute.

  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
  • bindings/scripts/test/JS/JSTestCallbackInterface.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
  • bindings/scripts/test/JS/JSTestStandaloneDictionary.h:
  • bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp:
  • bindings/scripts/test/JS/JSTestStandaloneEnumeration.h:

Update test results.

LayoutTests:

  • crypto/subtle/import-key-malformed-parameters-expected.txt:
  • fast/files/blob-constructor-expected.txt:
  • fast/files/script-tests/blob-constructor.js:

Update test and results for improved order of exceptions. In this case, the conversion
to String throws before the failure to parse the enumeration (which is what the
plain TypeError was).

9:27 AM Changeset in webkit [217280] by commit-queue@webkit.org
  • 4 edits
    98 adds in trunk/LayoutTests

Import the css-display-3 css tests.
https://bugs.webkit.org/show_bug.cgi?id=172212

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-05-23
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/css/css-display-3/OWNERS: Added.
  • web-platform-tests/css/css-display-3/display-contents-alignment-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-alignment-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-alignment-002-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-alignment-002.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-before-after-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-before-after-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-before-after-002-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-before-after-002.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-block-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-block-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-block-002-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-block-002.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-computed-style-expected.txt: Added.
  • web-platform-tests/css/css-display-3/display-contents-computed-style.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-before-after-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-before-after-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-before-after-first-letter-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-before-after-first-letter-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-001-inline-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-001-inline.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-001-none-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-001-none.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-inline-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-inline.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-none-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-002-none.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-inline-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-inline.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-none-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-flex-003-none.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-inline-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-inline.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-none-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-inline-flex-001-none.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-inline-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-inline.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-none-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-list-001-none.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-inline-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-inline.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-none-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-multicol-001-none.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-inline-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-inline.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-none-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-table-001-none.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-inline-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-inline.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-none-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-dynamic-table-002-none.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-first-letter-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-first-letter-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-first-line-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-first-line-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-flex-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-flex-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-flex-002-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-flex-002.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-flex-003-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-flex-003.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-float-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-float-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-inline-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-inline-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-inline-flex-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-inline-flex-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-list-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-list-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-multicol-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-multicol-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-oof-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-oof-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-oof-002-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-oof-002.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-replaced-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-replaced-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-state-change-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-state-change-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-table-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-table-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-table-002-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-table-002.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-td-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-td-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-text-only-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-text-only-001.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-tr-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-contents-tr-001.html: Added.
  • web-platform-tests/css/css-display-3/display-flow-root-001-expected.html: Added.
  • web-platform-tests/css/css-display-3/display-flow-root-001.html: Added.
  • web-platform-tests/css/css-display-3/support/acid.css: Added.

(html, body):
(body):
(.table):
(.itable):
(.caption):
(.cell):
(.row):
(.rowg):
(.head):
(.foot):
(.col):
(.colg):
(.flex):
(.iflex):
(.li):
(.ib):
(.inline):
(.columns):
(.contents):
(.c1):
(.c2):
(.c3):
(.c4):
(.c5):
(.c6):
(.c7):
(.c8):
(.c9):
(.c10):
(.b):
(.ref .c2):
(.ref .b):
(.ref div.contents):
(.ref span.contents):

  • web-platform-tests/css/css-display-3/support/swatch-orange.png: Added.
  • web-platform-tests/css/css-display-3/support/util.js: Added.

(eachDisplayContentsElementIn):

  • web-platform-tests/css/css-display-3/support/w3c-import.log: Added.
  • web-platform-tests/css/css-display-3/w3c-import.log: Added.
9:24 AM Changeset in webkit [217279] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Readable Streams API] Align respondInClosedState with spec
https://bugs.webkit.org/show_bug.cgi?id=172288

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-05-23
Reviewed by Chris Dumez.

Two changes are implemented in this patch:

  • Change #1: An issue was reported to GH [1] while working on respondInClosedState

implementation. This issue has now been fixed, and this patch aligns implementation
with spec [2].

  • Change #2: In addition, this patch also fixes a bug that went unnoticed as code

is not yet reachable (usage of controller.@reader is not valid and is therefore
replaced by controller.@controlledReadableStream.@reader).

[1] https://github.com/whatwg/streams/issues/686
[2] https://streams.spec.whatwg.org/#readable-byte-stream-controller-respond-in-closed-state

No added test as:

  • Change #1 does not change behavior;
  • Change #2 is not testable as the code is not yet reachable.
  • Modules/streams/ReadableByteStreamInternals.js:

(readableByteStreamControllerRespondInClosedState): Aligned with spec.

9:06 AM Changeset in webkit [217278] by bfulgham@apple.com
  • 4 edits in trunk/Source/WebKit2

[WK2][iOS] Add a mach-lookup exception for 'com.apple.analyticsd'
https://bugs.webkit.org/show_bug.cgi?id=172462
<rdar://problem/32331638>

Reviewed by Alexey Proskuryakov.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
8:57 AM Changeset in webkit [217277] by bfulgham@apple.com
  • 4 edits in trunk/Source/WebKit2

[WK2][iOS] Adopt a whitelist for XPC services
https://bugs.webkit.org/show_bug.cgi?id=172182
<rdar://problem/30669445>

Reviewed by Sam Weinig.

Tell the Sandbox to block all XPC connections that are not explicitly allowed by
the sandbox profile. The default behavior is to allow everything by default.

If the restriction is set before including the standard iOS sandbox profiles, there
does not seem to be a need to white list any other services.

General web browsing on multiple devices indicate that these sandbox profiles work
properly with media, accessibility, webgl, and general web content.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
8:56 AM Changeset in webkit [217276] by commit-queue@webkit.org
  • 11 edits
    1 copy
    1 add in trunk

There should be an easy way to run HTTP/WPT served tests on a browser
https://bugs.webkit.org/show_bug.cgi?id=172068

Patch by youenn fablet <youenn@apple.com> on 2017-05-23
Reviewed by Sam Weinig.

Tools:

Adding a new script open-layout-test to open a layout-test in a
browser and making sure it is served as done through run-webkit-tests.
In case tests should be run using a server, detecting whether the
server are running. If not, calling run-webkit-httpd to run the
servers and open the URL in a browser.
Otherwise, open directly the URL.

Adding an option in run-webkit-httpd to open an URL after having
started the servers.

Adding the --no-http-servers option in run-webkit-tests to not start any HTTP server.
This allows running run-webkit-httpd once and not having to restart
servers everytime a test should be served.

Moving most of run-webkit-httpd logic in its own python file to reuse
it in open-layout-test script.

Adding routines to check whether HTTP and WPT servers are running.

  • Scripts/open-layout-test: Added.

(parse_args):
(main):

  • Scripts/run-webkit-httpd:

(main):

  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:

(LayoutTestFinder.find_tests):

  • Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:

(LayoutTestRunner.run_tests):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • Scripts/webkitpy/layout_tests/servers/http_server_base.py:

(HttpServerBase._is_server_running_on_all_ports):
(HttpServerBase):
(HttpServerBase._is_running_on_port):
(HttpServerBase._check_that_all_ports_are_available):
(is_http_server_running):

  • Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py: Copied from Tools/Scripts/run-webkit-httpd.

(parse_args):
(main):
(run_server):

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(is_wpt_server_running):

  • Scripts/webkitpy/port/base.py:

(Port.to.is_http_server_running):
(Port.to):
(Port.to.is_wpt_server_running):
(Port.to.start_web_platform_test_server):

  • Scripts/webkitpy/port/driver.py:

(DriverProxy.is_web_platform_test):
(DriverProxy):
(DriverProxy.is_webkit_specific_web_platform_test):

LayoutTests:

  • fast/harness/results.html: In case results.html is opened locallly,

open HTTP/WPT urls as served by their related servers.
Adding a check that the servers are running before opening the related test.

7:18 AM Changeset in webkit [217275] by commit-queue@webkit.org
  • 7 edits in trunk/LayoutTests

[Modern Media Controls] Turn off all tests
https://bugs.webkit.org/show_bug.cgi?id=172447

Patch by Antoine Quint <Antoine Quint> on 2017-05-23
Reviewed by Jon Lee.

Due to the high number of timeouts and random failures with the current tests, we turn off
all modern-media-controls tests while we wait on a more permanent solution.

  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
7:04 AM Changeset in webkit [217274] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests/imported/w3c

[GTK] Test gardening after r217225
https://bugs.webkit.org/show_bug.cgi?id=172498

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-05-23
Reviewed by Michael Catanzaro.

Update test expectations after r217225 resync of WPT tests.

  • web-platform-tests/streams/readable-byte-streams/general-expected.txt: Updated.
6:34 AM Changeset in webkit [217273] by commit-queue@webkit.org
  • 19 edits in trunk

Add a RuntimeEnabledFeature for display: contents, defaulted to false.
https://bugs.webkit.org/show_bug.cgi?id=171984

LayoutTests/imported/w3c:

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-05-22
Reviewed by Antti Koivisto.

  • web-platform-tests/innerText/getter-expected.txt:

Source/WebCore:

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-05-22
Reviewed by Antti Koivisto.

The "defaulted to false" is not only because there are spec issues,
but because I ran the WPT suite, and there was a fair amount of
crashes and messed render trees.

Tests: imported/w3c/web-platform-tests/innerText/getter.html

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setDisplayContentsEnabled):
(WebCore::RuntimeEnabledFeatures::displayContentsEnabled):

Source/WebKit/mac:

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-05-23
Reviewed by Antti Koivisto.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences displayContentsEnabled]):
(-[WebPreferences setDisplayContentsEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-05-23
Reviewed by Antti Koivisto.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetDisplayContentsEnabled):
(WKPreferencesGetDisplayContentsEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-05-23
Reviewed by Antti Koivisto.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

12:37 AM Changeset in webkit [217272] by mmaxfield@apple.com
  • 19 edits in trunk

Update font-style's implementation in the font selection algorithm
https://bugs.webkit.org/show_bug.cgi?id=169453

Reviewed by Simon Fraser.

Source/WebCore:

Previously, we were treating "font-style: oblique" exactly the same as "font-style: italic".
These values were parsed to the same internal data type. However, variation fonts may have two
distinct axes: 'slnt' and 'ital'. Therefore, we need to keep a bool of state which represents
which of these two axes we should be setting when we apply font variations. We can do this by
making the "font-style" parser a "custom" parser. The implementation of these custom functions
will set both the italic value on the FontDescription as well as this extra bool.

We don't, however, want to treat these values as distinct for the purposese of font selection.
The fact that we treat oblique fonts the same as italic fonts is a feature, not a bug. Therefore,
the font selection algorithm is not made aware of this distinction. This is why we don't want to
package up the bool and FontSelectionValue into a class: font selection only cares about the
FontSelectionValue, so conceptually they shouldn't be joined. (The FontSelectionValue already
exists within a collection of all the things font selection needs to know about.)

Now that there is this extra bit of state on the FontDescription, we can do a little better when
computing the result of getComputedStyle(). Previously, we were always returning "italic" even
when "oblique" was specified. Now, we can return the correct one. However, this extra bit of
state is not kept on the CSSFontFace (because it doesn't need to be), which means we can only
improve the computed style of an element, rather than the cssText of an @font-face rule.

Test: fast/text/font-style-parse.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::fontStyleFromStyleValue):
(WebCore::fontStyleFromStyle):
(WebCore::fontShorthandValueForSelectionProperties):

  • css/CSSComputedStyleDeclaration.h:
  • css/CSSFontFaceSet.h:
  • css/CSSProperties.json:
  • css/FontFace.cpp:

(WebCore::FontFace::style):

  • css/FontSelectionValueInlines.h:

(WebCore::fontStyleKeyword):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertFontStyle): Deleted.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyInitialFontStyle):
(WebCore::StyleBuilderCustom::applyInheritFontStyle):
(WebCore::StyleBuilderCustom::applyValueFontStyle):

  • platform/graphics/FontCache.h:

(WebCore::FontDescriptionKey::makeFlagsKey):

  • platform/graphics/FontDescription.cpp:

(WebCore::FontDescription::FontDescription):

  • platform/graphics/FontDescription.h:

(WebCore::FontDescription::shouldUseItalicVariationAxis):
(WebCore::FontDescription::setShouldUseItalicVariationAxis):
(WebCore::FontDescription::operator==):
(WebCore::FontCascadeDescription::initialShouldUseItalicVariationAxis):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::preparePlatformFont):
(WebCore::fontWithFamily):
(WebCore::FontCache::createFontPlatformData):
(WebCore::FontCache::systemFallbackForCharacters):

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData):

LayoutTests:

  • fast/text/font-style-parse-expected.txt:
  • fast/text/font-style-parse.html:
  • platform/mac-elcapitan/fast/text/font-style-parse-expected.txt:
12:21 AM Changeset in webkit [217271] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add a new icon DockLeft.svg
https://bugs.webkit.org/show_bug.cgi?id=172492

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-23
Reviewed by Carlos Garcia Campos.

  • UserInterface/Images/gtk/DockLeft.svg: Added.
12:17 AM Changeset in webkit [217270] by tpopela@redhat.com
  • 2 edits in trunk/Source/WTF

[WTF] Compilation fails with system malloc
https://bugs.webkit.org/show_bug.cgi?id=172445

Reviewed by Michael Catanzaro.

We are using the bmalloc even if the system malloc should be used.
Don't use bmalloc if the system malloc is requested and add the
missing implementation for computeRAMSize() on UNIX that's utilizing
the sysinfo() call.

  • wtf/RAMSize.cpp:

(WTF::computeRAMSize):

12:02 AM Changeset in webkit [217269] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add a new icon CSSVariable.svg
https://bugs.webkit.org/show_bug.cgi?id=172491

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-23
Reviewed by Carlos Garcia Campos.

  • UserInterface/Images/gtk/CSSVariable.svg: Added.

May 22, 2017:

11:50 PM Changeset in webkit [217268] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Update expectations for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=172437

Unreviewed test gardening, update test expectations for failing tests.

  • platform/win/TestExpectations:
11:03 PM Changeset in webkit [217267] by mmaxfield@apple.com
  • 3 edits
    4 adds in trunk

Support calc() in font-variation-settings and font-feature-settings
https://bugs.webkit.org/show_bug.cgi?id=171032

Reviewed by David Hyatt.

Source/WebCore:

Tests: css3/font-feature-settings-calc.html

fast/text/variations/calc.html

We can use the convenience functions in CSSPropertyParserHelpers.cpp.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontFeatureTag):
(WebCore::consumeFontVariationTag):

LayoutTests:

  • css3/font-feature-settings-calc-expected.html: Added.
  • css3/font-feature-settings-calc.html: Added.
  • fast/text/variations/calc-expected.html: Added.
  • fast/text/variations/calc.html: Added.
9:59 PM Changeset in webkit [217266] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Changes are not applied in CSS sidebar when switching to Resources tab without blurring editor
https://bugs.webkit.org/show_bug.cgi?id=172388

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype.refreshEditor):

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused):
(WebInspector.RulesStyleDetailsPanel.prototype.shown):
When showing the StyleDetailsPanel, if there is an active editor, which is now saved each
time one becomes focused, force an update of that editor's content.

8:50 PM Changeset in webkit [217265] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: New Tab contents not centered vertically
https://bugs.webkit.org/show_bug.cgi?id=172486

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2017-05-22
Reviewed by Devin Rousso.

  • UserInterface/Views/NewTabContentView.css:

(.new-tab.tab.content-view):
Use align-items instead of align-content.

7:15 PM Changeset in webkit [217264] by jmarcell@apple.com
  • 1 edit in branches/safari-603-branch/Source/WebCore/rendering/RenderElement.cpp

Build fix for rdar://problem/32278660

  • rendering/RenderElement.cpp:
6:57 PM Changeset in webkit [217263] by mcatanzaro@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, attempt to fix test runner by removing Unicode character from stderr output
https://bugs.webkit.org/show_bug.cgi?id=168409

  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):

6:51 PM Changeset in webkit [217262] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Avoid moving to the second frame of an animated image before the first frame has finished decoding
https://bugs.webkit.org/show_bug.cgi?id=172461

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-22
Reviewed by Simon Fraser.

Sometimes the frameCount of an animated image gets changed when more data
is received. The problem is we may start decoding the image as if it were
a static large image and the decoding of this first frame finishes after
the image starts animating.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::imageFrameAvailableAtIndex):

6:44 PM Changeset in webkit [217261] by jmarcell@apple.com
  • 5 edits
    2 adds in branches/safari-603-branch

Cherry-pick r216992. rdar://problem/32258716

5:50 PM Changeset in webkit [217260] by achristensen@apple.com
  • 17 edits in trunk

REGRESSION(r215686): O(n2) algorithm in CachedRawResource::addDataBuffer
https://bugs.webkit.org/show_bug.cgi?id=172406
<rdar://32109532>

Reviewed by Brady Eidson.

Source/WebCore:

CachedRawResource::calculateIncrementalDataChunk was calling SharedBuffer::data each time the data
was appended to the SharedBuffer. This causes the data to be copied from two segments to one segment,
which causes the O(n2) behavior I was worried about in r215686. These append/data/append/data calls
used to cause O(1) copies per byte which was amortized because of the exponential growth of the buffer.
After this change, there should be 0 copies per byte here, and instead a O(log(n)) binary search in the
call to std::upper_bound to find the next segment of data with a given starting location in the SharedBuffer.
We need to store the additional information of the offsets of the beginnings of the segments in a
SharedBuffer. This doesn't asymptotically increase our memory usage, but it does allow us to asymptotically
decrease the amount of time it takes to find data at a given offset in a SharedBuffer from O(n) to O(log(n)).

This allows us to complete http://speedtest.xfinity.com and new functionality in SharedBuffer is covered by API tests.

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::processNewCueData):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::calculateIncrementalDataChunk):
(WebCore::CachedRawResource::addDataBuffer):
(WebCore::CachedRawResource::finishLoading):

  • loader/cache/CachedRawResource.h:
  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::combineIntoOneSegment):
(WebCore::SharedBuffer::data):
(WebCore::SharedBuffer::getSomeData):
(WebCore::SharedBuffer::tryCreateArrayBuffer):
(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::clear):
(WebCore::SharedBuffer::copy):
(WebCore::SharedBuffer::internallyConsistent):
(WebCore::SharedBuffer::hintMemoryNotNeededSoon):
(WebCore::SharedBufferDataView::SharedBufferDataView):
(WebCore::SharedBufferDataView::size):
(WebCore::SharedBufferDataView::data):

  • platform/SharedBuffer.h:
  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::createCFData):
(WebCore::SharedBuffer::hintMemoryNotNeededSoon):
(WebCore::SharedBuffer::append):

  • platform/cocoa/SharedBufferCocoa.mm:

(WebCore::SharedBuffer::createNSData):
(WebCore::SharedBuffer::createCFData):
(WebCore::SharedBuffer::createNSDataArray):

Source/WebKit2:

  • Platform/IPC/DataReference.cpp:

(IPC::SharedBufferDataReference::encode):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::redeliverManualStream):

Tools:

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::checkBuffer):
(TestWebKitAPI::TEST_F):

5:29 PM Changeset in webkit [217259] by jmarcell@apple.com
  • 2 edits in trunk/Tools

Do not enter Subversion-specific logic when parsing Git-based Trac data.
https://bugs.webkit.org/show_bug.cgi?id=172433
<rdar://problem/32234188>

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Trac.js:

(Trac.prototype._convertCommitInfoElementToObject):

4:44 PM Changeset in webkit [217258] by Devin Rousso
  • 18 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: New CSS Rules should go into a new Stylesheet Resource that can be viewed/edited/saved
https://bugs.webkit.org/show_bug.cgi?id=138810

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/CSSStyleManager.js:

(WebInspector.CSSStyleManager):
(WebInspector.CSSStyleManager.prototype.preferredInspectorStyleSheetForFrame):
(WebInspector.CSSStyleManager.prototype._updateResourceContent.fetchedStyleSheetContent):
Manually dispatch a change event for modifications to CSSStyleSheet objects since they are
not covered by the listener for Resource changes.

  • UserInterface/Main.html:

Include WebInspector.CSSStyleSheetTreeElement.

  • UserInterface/Models/Collection.js:

(WebInspector.Collection.TypeVerifier):

  • UserInterface/Models/ResourceCollection.js:

(WebInspector.ResourceCollection.TypeVerifier.Stylesheet):
Add TypeVerifier for CSSStyleSheet.

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype._parseRulePayload):
Manually create a SourceCodeLocation object for Inspector Style Sheets.

  • UserInterface/Views/CSSStyleSheetTreeElement.js: Added.

(WebInspector.CSSStyleSheetTreeElement):

  • UserInterface/Views/ResourceIcons.css:

(:matches(.resource-icon.resource-type-stylesheet, .stylessheet-icon) .icon):

  • UserInterface/Views/FrameTreeElement.js:

(WebInspector.FrameTreeElement.forwardingConstructor):
(WebInspector.FrameTreeElement):
(WebInspector.FrameTreeElement.prototype.onattach):
(WebInspector.FrameTreeElement.prototype.ondetach):
(WebInspector.FrameTreeElement.prototype.onpopulate):
(WebInspector.FrameTreeElement.prototype._styleSheetAdded):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._styleSheetAdded):
(WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
Listen for the creation of CSSStyleSheet objects and add them to the sidebar if they are an
Inspector Style Sheet. Regular style sheets are added via their respective resources.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
Prevent CSSStyleSheetTreeElement instances from attempting to save state to a cookie.

  • UserInterface/Base/Main.js:

(WebInspector.tabContentViewClassForRepresentedObject):
(WebInspector.createSourceCodeLocationLink):

  • UserInterface/Views/ContentView.js:

(WebInspector.ContentView.createFromRepresentedObject):
(WebInspector.ContentView.isViewable):

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype.refresh):

  • UserInterface/Views/ResourcesTabContentView.js:

(WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):

  • UserInterface/Views/ResourceContentView.js:

(WebInspector.ResourceContentView):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._prepareEditorForInitialContent):
(WebInspector.SourceCodeTextEditor.prototype._looselyMatchesSourceCodeLocation):
(WebInspector.SourceCodeTextEditor.prototype._matchesSourceCodeLocation):

  • UserInterface/Views/TextResourceContentView.js:

(WebInspector.TextResourceContentView):
(WebInspector.TextResourceContentView.prototype.get supportsSave):
(WebInspector.TextResourceContentView.prototype.get saveData):
(WebInspector.TextResourceContentView.prototype._contentWillPopulate):
(WebInspector.TextResourceContentView.prototype._shouldBeEditable):
Support editing and saving an Inspector Style Sheet via its CSSStyleSheet object.

4:41 PM Changeset in webkit [217257] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark to imported/w3c/web-platform-tests/webrtc tests as failing on ios-wk2.
https://bugs.webkit.org/show_bug.cgi?id=171605

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:27 PM Changeset in webkit [217256] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Resources in cached parsed stylesheets may bypass content blockers
https://bugs.webkit.org/show_bug.cgi?id=172468
<rdar://problem/31972693>

Reviewed by Geoffrey Garen.

Resources in cached parsed stylesheets could bypass content blockers when they were in the memory cache and
they did not need revalidation.

To address the issue, I made StyleSheetContents::subresourcesAllowReuse() to check content blockers.
If a subresource in the cached stylesheet is blocked, then we return false in subresourcesAllowReuse() and
the cached parsed stylesheet will not be used.

No new tests, not currently testable.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::subresourcesAllowReuse):

  • css/StyleSheetContents.h:
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::setCSSStyleSheet):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):

  • loader/cache/CachedCSSStyleSheet.h:
4:00 PM Changeset in webkit [217255] by Chris Dumez
  • 4 edits in trunk

ASSERTION FAILED: tokens.find(item) == notFound in WebCore::DOMTokenList::replace
https://bugs.webkit.org/show_bug.cgi?id=172473

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix bad assertion in DOMTokenList::replace(). If item == replacement, then the
assertion was wrong.

No new tests, unskipped existing test.

  • html/DOMTokenList.cpp:

(WebCore::DOMTokenList::replace):

LayoutTests:

Unskip test.

3:52 PM Changeset in webkit [217254] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/loading/resourceLoadStatistics/grandfathering.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=172452

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
3:47 PM Changeset in webkit [217253] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update TestExpectations for two new WPT LayoutTests.
https://bugs.webkit.org/show_bug.cgi?id=172472

Unreviewed test gardening.

3:41 PM Changeset in webkit [217252] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Need a way to allow WKWebView to load request with ShouldOpenExternalURLsPolicy::ShouldAllow.
https://bugs.webkit.org/show_bug.cgi?id=172460

Add an new method [WKWebView _loadRequest:shouldOpenExternalURLs:] to WKWebView; a WebKit client
can use this to load request that allows opening external URLs.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2017-05-22
Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _loadRequest:shouldOpenExternalURLs:]): When calling WebPageProxy::loadRequest, also

set ShouldOpenExternalURLsPolicy based on the value of shouldOpenExternalURLs.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Add [WKWebView _loadRequest:shouldOpenExternalURLs:].
3:19 PM Changeset in webkit [217251] by commit-queue@webkit.org
  • 19 edits
    2 deletes in trunk/Source

Remove AVAudioCaptureSource
https://bugs.webkit.org/show_bug.cgi?id=172360

Patch by Youenn Fablet <youenn@apple.com> on 2017-05-22
Reviewed by Sam Weinig.

Source/WebCore:

No change of behavior, this class is no longer used by default as it does not support echo cancellation.

  • WebCore.xcodeproj/project.pbxproj:
  • page/Settings.cpp:

(WebCore::Settings::setMediaCaptureRequiresSecureConnection):
(WebCore::Settings::useAVFoundationAudioCapture): Deleted.
(WebCore::Settings::setUseAVFoundationAudioCapture): Deleted.

  • page/Settings.h:
  • platform/mediastream/mac/AVAudioCaptureSource.h: Removed.
  • platform/mediastream/mac/AVAudioCaptureSource.mm: Removed.
  • platform/mediastream/mac/AVCaptureDeviceManager.h:
  • platform/mediastream/mac/AVCaptureDeviceManager.mm:
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::defaultAudioFactory):
(WebCore::RealtimeMediaSourceCenterMac::defaultAudioCaptureDeviceManager):
(WebCore::RealtimeMediaSourceCenterMac::setUseAVFoundationAudioCapture): Deleted.

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:

Source/WebKit/mac:

Removing the handling of AVAudio/CoreAudio capture source dynamic switch.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences useAVFoundationAudioCapture]): Deleted.
(-[WebPreferences setUseAVFoundationAudioCapture:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Removing the handling of AVAudio/CoreAudio capture source dynamic switch.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetUseAVFoundationAudioCapture): Deleted.
(WKPreferencesGetUseAVFoundationAudioCapture): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::syncWithWebCorePrefs):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

3:09 PM Changeset in webkit [217250] by ap@apple.com
  • 7 edits
    1 delete in trunk/LayoutTests

Remove Java tests.

Rubber-stamped by Tim Horton.

These tests were disabled on all platforms for a long long time now.

  • TestExpectations:
  • java: Removed.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wk2/TestExpectations:
  • platform/wpe/TestExpectations:
3:08 PM Changeset in webkit [217249] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

ExplicitSnapshotsChangeUponNavigation API test often fails
https://bugs.webkit.org/show_bug.cgi?id=172475
<rdar://problem/31688322>

Reviewed by Simon Fraser.

  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView _setUpTestWindow:]):
Make TestWKWebView's window layer-backed. This is now the default,
and it's also easy to accidentally write a test that depends on it
(for example, ExplicitSnapshotsChangeUponNavigation adds an NSBox,
which becomes layer backed, just like the WKWebView, but with no
common layer-backed ancestor).

3:06 PM Changeset in webkit [217248] by Brian Burg
  • 14 edits
    2 copies in trunk

Web Inspector: webkit reload policy should match default behavior
https://bugs.webkit.org/show_bug.cgi?id=171385
<rdar://problem/31871515>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Add a new option to Page.reload that allows the test harness
to reload its test page using the old reload behavior.

The new behavior of revalidating expired cached subresources only
is the current default, since only the test harness needs the old behavior.

  • inspector/protocol/Page.json:

Source/WebCore:

Add an option to PageAgent.reload that tells the backend to use the old
behavior that revalidates unexpired cached subresources. This used by tests.

Covered by existing network/memory/disk cache tests.

  • inspector/InspectorPageAgent.h:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::reload):

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

Use PageAgent.reload.invoke to make the reload options more explicit.

  • UserInterface/Test/FrontendTestHarness.js:

(FrontendTestHarness.prototype.reloadPage):
Convert this method to take an options dictionary rather than positional
boolean arguments. Update call sites to pass correct options.

When running tests, we want to revalidate unexpired resources, as there
does not seem to be another reliable way to trigger revalidated cached
resources from a Web Inspector layout test. Make this behavior the default.

LayoutTests:

  • http/tests/inspector/replay/replay-test.js:
  • http/tests/inspector/network/resource-sizes-memory-cache.html:

Update tests to match new API.

  • http/tests/inspector/network/resource-response-source-memory-cache.html:
  • http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html:

Added. This is a copy of the above test but uses the option to do a "legacy" reload.
With this reload type, the resource returned with HTTP 200.

3:03 PM Changeset in webkit [217247] by yoav@yoav.ws
  • 17 edits
    10 adds in trunk

[preload] Add media and type attribute support.
https://bugs.webkit.org/show_bug.cgi?id=171720

Reviewed by Youenn Fablet.

Source/WebCore:

Tests: http/wpt/preload/media-attribute.html

http/wpt/preload/type-attribute.html
http/tests/preload/viewport/meta-viewport-link-headers.php

  • css/MediaQueryEvaluator.cpp: Move the mediaAttributeMatches code from HTMLResourcePreloader to a central location.

(WebCore::MediaQueryEvaluator::mediaAttributeMatches):

  • css/MediaQueryEvaluator.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement): Use isSupportedImageOrSVGMIMEType() instead of checking SVG MIME type specifically.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process): Call loadLink() with the media and type attributes.

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::pumpTokenizer): Trigger Link header based preload for links that have the media attribute.

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest): Avoid preloading link resources with non-matching type.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Collect the type attribute for link resources.

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::HTMLResourcePreloader::preload): Use MediaQueryEvaluator::mediaAttributeMatches instead of the local one.
(WebCore::mediaAttributeMatches): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::receivedFirstData): Indicate that only link preloads with no media attribute should be loaded here.

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLinksFromHeader): Load only links with or without media attributes, according to mode. Also send media and
type attributes to preloadIfNeeded().
(WebCore::LinkLoader::isSupportedType): Check if the MIME type is supported for the CachedResource::Type.
(WebCore::LinkLoader::preloadIfNeeded): Get the media and type attributes and only trigger a preload if media matches and type is supported.
(WebCore::LinkLoader::loadLink): Pass along the media and type attributes.

  • loader/LinkLoader.h:
  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isSupportedImageOrSVGMIMEType): Check if MIME type is supported for an image, or is an SVG mime type.
(WebCore::MIMETypeRegistry::isSupportedStyleSheetMIMEType): Check if MIME type is supported for a stylesheet.
(WebCore::MIMETypeRegistry::isSupportedFontMIMEType): Check if MIME type is supported for a font.
(WebCore::MIMETypeRegistry::isSupportedTextTrackMIMEType): Check if MIME type is supported for a text track.

  • platform/MIMETypeRegistry.h:

LayoutTests:

  • TestExpectations: Skip http/tests/preload/viewport as meta viewport is turned off in most platforms.
  • http/wpt/preload/media-attribute-expected.txt: Added.
  • http/wpt/preload/media-attribute.html: Added.
  • http/wpt/preload/type-attribute-expected.txt: Added.
  • http/wpt/preload/type-attribute.html: Added.
  • http/wpt/preload/resources/square.png: Added.
  • http/wpt/preload/resources/dummy.js: Added.
  • http/tests/preload/viewport/meta-viewport-link-headers-expected.txt: Added.
  • http/tests/preload/viewport/meta-viewport-link-headers.php: Added.
  • platform/ios-simulator/TestExpectations: Turn on http/tests/preload/viewport for ios-simulator.
  • platform/ios/TestExpectations: Turn on http/tests/preload/viewport for ios.
2:23 PM Changeset in webkit [217246] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebCore

[CG] Use the SPI CGImageSourceGetTypeWithData() to get the typeIdentifierHint of an image
https://bugs.webkit.org/show_bug.cgi?id=172405

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-05-22
Reviewed by Simon Fraser.

Use CGImageSourceGetTypeWithData() to get the typeIdentifierHint which will
be passed to CGImageSourceCreateIncremental(). If data is insufficient to
guess typeIdentifierHint, that means the image size is still not available.
In this case, CachedImage::addIncrementalDataBuffer() will call error()
which will call clear() which will call Image::destroyDecodedData()
which will delete the current ImageDecoder and creates a new one. So we
don't need to check the return value insufficientData.

  • platform/graphics/DecodingOptions.h: Fix the header file dependencies.
  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ensureDecoderAvailable): No need for the URL parameter.

  • platform/graphics/ImageTypes.h: Move a typedef from ImageDecoderCG.h to ImageTypes.h.
  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoder::ImageDecoder): Pass the SharedBuffer data to the constructor.

  • platform/graphics/cg/ImageDecoderCG.h:

(WebCore::ImageDecoder::create): No need for the URL argument.

  • platform/graphics/win/ImageDecoderDirect2D.h:

(WebCore::ImageDecoder::create): Remove the URL argument from the function signature.

  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::create): Remove the URL argument from the function signature.

  • platform/image-decoders/ImageDecoder.h:
  • platform/spi/cg/ImageIOSPI.h: Add the prototype of CGImageSourceGetTypeWithData().
2:13 PM Changeset in webkit [217245] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.https.html as a timeout on El Capitan.
https://bugs.webkit.org/show_bug.cgi?id=172469

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:56 PM Changeset in webkit [217244] by Brian Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: characters produced with shift modifier on QWERTY keyboard should be delivered as shift-down, char-down, char-up, shift-up events
https://bugs.webkit.org/show_bug.cgi?id=172299
<rdar://problem/32277988>

Reviewed by Joseph Pecoraro.

WebDriver tests expect some ASCII characters to be produced using the shift key,
regardless of the actual keyboard layout. Emit extra events when simulating these
keystrokes if the shift key is not already pressed.

  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:

(WebKit::characterIsProducedUsingShift):
(WebKit::WebAutomationSession::platformSimulateKeySequence):

1:49 PM Changeset in webkit [217243] by ap@apple.com
  • 81 edits in trunk/LayoutTests

Many WebAudio js-tests use waitUntilDone
https://bugs.webkit.org/show_bug.cgi?id=172398

Reviewed by Sam Weinig.

Corrected the use of js-test harness, updated the tests to use js-test.js instead
of js-test-pre.js where possible.

  • resources/js-test.js: (shouldReject): Copied some funcitonality form js-test-pre.js

that wasn't present here.

  • webaudio/analyser-exception.html:
  • webaudio/audiobuffer-neuter-expected.txt:
  • webaudio/audiobuffer-neuter.html:
  • webaudio/audiobuffersource-channels.html:
  • webaudio/audiobuffersource-ended-expected.txt:
  • webaudio/audiobuffersource-ended.html:
  • webaudio/audiobuffersource-exception.html:
  • webaudio/audiobuffersource-loop-comprehensive-expected.txt:
  • webaudio/audiobuffersource-loop-comprehensive.html:
  • webaudio/audiobuffersource-negative-playbackrate-expected.txt:
  • webaudio/audiobuffersource-negative-playbackrate-interpolated-expected.txt:
  • webaudio/audiobuffersource-negative-playbackrate-interpolated-loop-expected.txt:
  • webaudio/audiobuffersource-negative-playbackrate-interpolated-loop.html:
  • webaudio/audiobuffersource-negative-playbackrate-interpolated.html:
  • webaudio/audiobuffersource-negative-playbackrate-loop-expected.txt:
  • webaudio/audiobuffersource-negative-playbackrate-loop.html:
  • webaudio/audiobuffersource-negative-playbackrate.html:
  • webaudio/audiobuffersource-playbackState.html:
  • webaudio/audiobuffersource-start-expected.txt:
  • webaudio/audiobuffersource-start.html:
  • webaudio/audiochannelmerger-basic.html:
  • webaudio/audiochannelmerger-stereo.html:
  • webaudio/audiochannelsplitter.html:
  • webaudio/audiocontext-promise-throwing.html:
  • webaudio/audiocontext-promise.html:
  • webaudio/audiocontext-restriction-audiobuffersourcenode-start.html:
  • webaudio/audiocontext-restriction.html:
  • webaudio/audiocontext-state-interrupted.html:
  • webaudio/audiocontext-state.html:
  • webaudio/audionode-channel-rules.html:
  • webaudio/audionode-connect-order.html:
  • webaudio/audionode.html:
  • webaudio/audioparam-connect-audioratesignal.html:
  • webaudio/audioparam-summingjunction.html:
  • webaudio/audioprocessingevent.html:
  • webaudio/automatic-pull-node.html:
  • webaudio/biquad-allpass.html:
  • webaudio/biquad-bandpass.html:
  • webaudio/biquad-getFrequencyResponse.html:
  • webaudio/biquad-highpass.html:
  • webaudio/biquad-highshelf.html:
  • webaudio/biquad-lowpass.html:
  • webaudio/biquad-lowshelf.html:
  • webaudio/biquad-notch.html:
  • webaudio/biquad-peaking.html:
  • webaudio/biquadfilternode-basic.html:
  • webaudio/convolution-mono-mono.html:
  • webaudio/decode-audio-data-basic.html:
  • webaudio/decode-audio-data-too-short.html:
  • webaudio/delaynode-max-default-delay.html:
  • webaudio/delaynode-max-nondefault-delay.html:
  • webaudio/delaynode-maxdelay.html:
  • webaudio/delaynode-maxdelaylimit.html:
  • webaudio/delaynode-scheduling.html:
  • webaudio/delaynode.html:
  • webaudio/distance-exponential.html:
  • webaudio/distance-inverse.html:
  • webaudio/distance-linear.html:
  • webaudio/dynamicscompressor-basic.html:
  • webaudio/javascriptaudionode-downmix8-2channel-input.html:
  • webaudio/javascriptaudionode-upmix2-8channel-input.html:
  • webaudio/javascriptaudionode-zero-input-channels.html:
  • webaudio/javascriptaudionode.html:
  • webaudio/mediaelementaudiosourcenode.html:
  • webaudio/oscillator-basic.html:
  • webaudio/oscillator-ended-expected.txt:
  • webaudio/oscillator-ended.html:
  • webaudio/page-canstartmedia.html:
  • webaudio/panner-equalpower-stereo.html:
  • webaudio/panner-equalpower.html:
  • webaudio/panner-loop.html:
  • webaudio/pannernode-basic.html:
  • webaudio/realtimeanalyser-fft-scaling.html:
  • webaudio/realtimeanalyser-fft-sizing.html:
  • webaudio/resources/audiobuffersource-testing.js:

(checkAllTests):

  • webaudio/sample-accurate-scheduling.html:
  • webaudio/stereo2mono-down-mixing.html:
  • webaudio/test-basic.html:
  • webaudio/waveshaper.html:
1:28 PM Changeset in webkit [217242] by zalan@apple.com
  • 3 edits in trunk/Source/WebCore

SameSizeAsInlineBox mismatch on ARMV7.
https://bugs.webkit.org/show_bug.cgi?id=172459

Reviewed by Simon Fraser.

Due to the ARMV7/i386 padding behaviour mismatch, forcing m_bitfields to be 32bits does not always
produce the desired padding.
Move the bool to the end of the member list and let m_deletionSentinel (4bytes) force
padding.

  • rendering/InlineBox.cpp:
  • rendering/InlineBox.h:
1:12 PM Changeset in webkit [217241] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Enable the woff2-variations @font-face format identifier
https://bugs.webkit.org/show_bug.cgi?id=172425

Reviewed by Andreas Kling.

Source/WebCore:

We support woff2, and woff-variations, but not woff2-variations.
https://github.com/w3c/csswg-drafts/commit/5c914a8a0382734bd420090a89bc19b32e6c302d

Test: fast/text/variations/font-face-format-woff2.html

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::supportsFormat):

LayoutTests:

  • fast/text/variations/font-face-format-woff2-expected.html: Added.
  • fast/text/variations/font-face-format-woff2.html: Added.
  • platform/mac/TestExpectations:
12:48 PM Changeset in webkit [217240] by keith_miller@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

[Cocoa] An exported Objective C class’s prototype and constructor don't persist across JSContext deallocation
https://bugs.webkit.org/show_bug.cgi?id=167708

Reviewed by Geoffrey Garen.

This patch moves the Objective C wrapper map to the global object. In order to make this work the JSWrapperMap
class no longer holds a reference to the JSContext. Instead, the context must be provided when getting a wrapper.

Also, this patch fixes a "bug" where we would observe changes to the Object property on the global object when
creating a wrapper for NSObject.

  • API/APICast.h:

(toJSGlobalObject):

  • API/JSContext.mm:

(-[JSContext ensureWrapperMap]):
(-[JSContext initWithVirtualMachine:]):
(-[JSContext dealloc]):
(-[JSContext wrapperMap]):
(-[JSContext initWithGlobalContextRef:]):
(-[JSContext wrapperForObjCObject:]):
(-[JSContext wrapperForJSObject:]):

  • API/JSWrapperMap.h:
  • API/JSWrapperMap.mm:

(-[JSObjCClassInfo initForClass:]):
(-[JSObjCClassInfo allocateConstructorAndPrototypeInContext:]):
(-[JSObjCClassInfo wrapperForObject:inContext:]):
(-[JSObjCClassInfo constructorInContext:]):
(-[JSObjCClassInfo prototypeInContext:]):
(-[JSWrapperMap initWithGlobalContextRef:]):
(-[JSWrapperMap classInfoForClass:]):
(-[JSWrapperMap jsWrapperForObject:inContext:]):
(-[JSWrapperMap objcWrapperForJSValueRef:inContext:]):
(-[JSObjCClassInfo initWithContext:forClass:]): Deleted.
(-[JSObjCClassInfo allocateConstructorAndPrototype]): Deleted.
(-[JSObjCClassInfo wrapperForObject:]): Deleted.
(-[JSObjCClassInfo constructor]): Deleted.
(-[JSObjCClassInfo prototype]): Deleted.
(-[JSWrapperMap initWithContext:]): Deleted.
(-[JSWrapperMap jsWrapperForObject:]): Deleted.
(-[JSWrapperMap objcWrapperForJSValueRef:]): Deleted.

  • API/tests/JSExportTests.mm:

(wrapperLifetimeIsTiedToGlobalObject):
(runJSExportTests):

  • API/tests/testapi.mm:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::wrapperMap):
(JSC::JSGlobalObject::setWrapperMap):

12:44 PM Changeset in webkit [217239] by commit-queue@webkit.org
  • 12 edits in trunk

[mac-wk1] LayoutTest media/modern-media-controls/airplay-button/airplay-button.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168409

Patch by Antoine Quint <Antoine Quint> on 2017-05-22
Reviewed by Simon Fraser.

Remove all the custom logging code we wrote to diagnose why this specific test failed and instead
log the backtrace when the ScriptedAnimationController gets suspended, which should allow us to
identify which test actually leads to suspension and affects this particular test.

  • Modules/modern-media-controls/controls/scheduler.js:

(const.scheduler.new.prototype.scheduleLayout):
(const.scheduler.new.prototype.unscheduleLayout):
(const.scheduler.new.prototype._requestFrameIfNeeded):
(const.scheduler.new.prototype._frameDidFire):
(const.scheduler.new.prototype._layout):

  • dom/Document.cpp:

(WebCore::Document::requestAnimationFrame):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::suspend):
(WebCore::ScriptedAnimationController::resume):
(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):
(WebCore::ScriptedAnimationController::registerCallback):
(WebCore::ScriptedAnimationController::cancelCallback):
(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::dispatchLoggingEventIfRequired): Deleted.

  • dom/ScriptedAnimationController.h:
  • page/Page.cpp:

(WebCore::Page::suspendScriptedAnimations):

  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::resetToConsistentState):
(WebCore::InternalSettings::shouldDispatchRequestAnimationFrameEvents): Deleted.
(WebCore::InternalSettings::setShouldDispatchRequestAnimationFrameEvents): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:
12:43 PM Changeset in webkit [217238] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Don't unconditionally reset TextIterator::m_handledChildren for display: contents nodes.
https://bugs.webkit.org/show_bug.cgi?id=172443

This avoids an infinite hang when enabling display: contents in bug 171984.

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-05-22
Reviewed by Antti Koivisto.

No new tests. Relanding bug 171984 will add test coverage for this.

  • editing/TextIterator.cpp:

(WebCore::hasDisplayContents):
(WebCore::fullyClipsContents):
(WebCore::TextIterator::advance):

12:27 PM Changeset in webkit [217237] by commit-queue@webkit.org
  • 61 edits
    6 copies
    1 add
    2 deletes in trunk/Source

[WebIDL] Support callbacks with arbitrary return types
https://bugs.webkit.org/show_bug.cgi?id=172407

Patch by Sam Weinig <sam@webkit.org> on 2017-05-22
Reviewed by Chris Dumez.

Source/WebCore:

  • Adds and adopts CallbackResult<> template class that encapsulates a return value and status from a javascript callback.
  • Updates NodeIterator/TreeWalker to explicitly propagate exceptions thrown from a JSNodeFilter, rather than relying on the JSNodeFilter to catch them (seemingly accidentally).
  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:

Update file lists.

  • Modules/geolocation/PositionCallback.h:
  • Modules/geolocation/PositionErrorCallback.h:
  • Modules/notifications/NotificationPermissionCallback.h:
  • Modules/webaudio/AudioBufferCallback.h:
  • Modules/webdatabase/DatabaseCallback.h:
  • dom/RequestAnimationFrameCallback.h:
  • dom/StringCallback.h:
  • dom/Traversal.cpp:
  • fileapi/BlobCallback.h:
  • html/VoidCallback.h:
  • page/IntersectionObserverCallback.h:
  • page/PerformanceObserverCallback.h:
  • css/MediaQueryListListener.h:
  • Modules/webdatabase/SQLStatement.h:
  • Modules/webdatabase/SQLStatementCallback.h:
  • Modules/webdatabase/SQLStatementErrorCallback.h:
  • Modules/webdatabase/SQLTransaction.cpp:
  • Modules/webdatabase/SQLTransactionCallback.h:
  • Modules/webdatabase/SQLTransactionErrorCallback.h:
  • inspector/InspectorDatabaseAgent.cpp:

Adopt CallbackResult.

  • Modules/webdatabase/SQLStatementErrorCallback.idl:

Remove Custom extended attribute annotation.

  • Modules/webdatabase/SQLStatement.cpp:

(WebCore::SQLStatement::performCallback):
Adopt CallbackResult, migrating logic from JSSQLStatementErrorCallbackCustom
into the implementation, by way of the status enum.

  • bindings/IDLTypes.h:

Add IDLVoid type.

  • bindings/js/JSNodeFilterCustom.cpp: Removed.
  • bindings/js/JSSQLStatementErrorCallbackCustom.cpp: Removed.

Remove now unneeded custom bindings.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateIndexedGetter):
(GenerateNamedGetter):
(GenerateImplementation):
(GenerateImplementationFunctionCall):
Update for new NativeToJSValue arguments.

(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
Remove requirement of only void return types and update return type to use CallbackFunction.
Also adds necessary conversion of return value.

(GetBaseIDLType):
Add void IDL type mapping.

(IsValidContextForJSValueToNative):
Add operation as valid context, as that is what the callback return type's context is.

(NativeToJSValueUsingReferences):
(NativeToJSValueUsingPointers):
(NativeToJSValue):
Rework NativeToJSValueUsingReferences/NativeToJSValueUsingPointers to take a global object reference
accessor rather than a thisObject accessor, as a thisObject is not always available, and what the function
actually wants is the global object.

  • bindings/scripts/IDLAttributes.json:

Add new RethrowException attribute to instruct the callback function to re-throw, rather than
just report, exceptions thrown in the callback and SkipCallbackInvokeCheck which instructs the
callback function to not check canInvokeCallback() before calling. These will both be needed to retain
the behavior of NodeFilter, and should be investigated further.

  • bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunction.h:
  • bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp: Added.
  • bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.h: Added.
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.h:
  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:
  • bindings/scripts/test/JS/JSTestCallbackInterface.h:
  • bindings/scripts/test/JS/JSTestVoidCallbackFunction.cpp: Added.
  • bindings/scripts/test/JS/JSTestVoidCallbackFunction.h: Added.
  • bindings/scripts/test/TestCallbackFunction.idl:
  • bindings/scripts/test/TestCallbackInterface.idl:
  • bindings/scripts/test/TestVoidCallbackFunction.idl: Copied from Source/WebCore/bindings/scripts/test/TestCallbackFunction.idl.

Update test results and add some additional test cases for callback functions and callback interface functions that return
non-void and use the RethrowExceptions.

  • dom/CallbackResult.h: Added.

(WebCore::CallbackResult<ReturnType>::CallbackResult):
(WebCore::CallbackResult<ReturnType>::type):
(WebCore::CallbackResult<void>::CallbackResult):
(WebCore::CallbackResult<void>::type):
New class to encapsulate the return value and status of a callback function. Modeled loosely on
ExceptionOr, but is simpler since it does not need to handle complex exception objects.

  • dom/NativeNodeFilter.cpp:
  • dom/NativeNodeFilter.h:

Adopt CallbackResult, matching other NodeFiltering code by using
unsigned short rather than short, remove unused functions, and convert
condition member to a Ref, allowing us to get rid of the branch acceptNode.

  • dom/NodeFilter.h:

Adopt CallbackResult.

  • dom/NodeFilter.idl:

Replace Custom extended attribute with SkipCallbackInvokeCheck and RethrowException.

  • dom/NodeFilterCondition.cpp:
  • dom/NodeFilterCondition.h:

Modernize to take a Node reference and match other filtering code
by returning an unsigned short.

  • dom/Traversal.cpp:
  • dom/Traversal.h:

Adopt CallbackResult and match other node filtering code by using unsigned short
rather than short.

  • dom/NodeIterator.cpp:
  • dom/NodeIterator.h:
  • dom/NodeIterator.idl:
  • dom/TreeWalker.cpp:
  • dom/TreeWalker.h:
  • dom/TreeWalker.idl:

Change functions that callout to javascript via the NodeFilter to
return ExceptionOr<Node>. Check the result of CallbackResult for a
thrown exception, and bail, returning Exception { ExistingExceptionError }
which acts as an indicator to the bindings that an exception was thrown.
(In actuality, the specific exception code does not matter. All that matters
is that an ExceptionOr<> is returned, which triggers, via overload, a path
in toJS() that calls propagateException(), which in turn, checks to see if
an exception is on the stack. But, having an explicit code here helps debugging).

Source/WebKit/mac:

  • DOM/DOM.mm:

(-[DOMNodeFilter acceptNode:]):
Update for CallbackResult adoption in the base class.

  • DOM/DOMNodeIterator.mm:
  • DOM/DOMTreeWalker.mm:

Update to account for new WebCore implementation return types. We return nil
if there was an exception, since retains the existing behavior if a javascript
NodeFilter had been used (an exception would cause all nodes to be rejected,
thus returning nullptr).

  • DOM/ObjCNodeFilterCondition.h:
  • DOM/ObjCNodeFilterCondition.mm:

Update to match new interface of NodeFilterCondition.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.h:

Update to match new interface of NodeFilterCondition.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp:

Update to account for new WebCore implementation return types.

12:19 PM Changeset in webkit [217236] by simon.fraser@apple.com
  • 22 edits
    4 adds in trunk

Support transform-box to switch sizing box in SVG
https://bugs.webkit.org/show_bug.cgi?id=145783

Reviewed by Dean Jackson.

Source/WebCore:

Add support for the CSS "transform-box" property, as described at
<https://drafts.csswg.org/css-transforms/#transform-box>.

This changes the behavior of percentage values in transform-origin in SVG.
When these were added in r110532, percentage values in transform-origin were made
relative to the bounding box, but absolute values relative to the view box.
<https://github.com/w3c/csswg-drafts/issues/895> has concluded that this behavior
is confusing. The new behavior is that, for SVG elements, both absolute and
percentage values are relative to the reference box, which is specified by the
new transform-box property.

The initial value for transform-box is border-box, with the svg.css UA stylesheet
supplying a default of view-box for the relevant SVG elements per
<https://www.w3.org/TR/SVG2/styling.html#UAStyleSheet>.

For non-SVG elements, the used value is always border-box, so there is no change
in behavior.

Tests: fast/css/transform-box-parsing.html

svg/transforms/svg-transform-box.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TransformBox):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

  • css/svg.css:

(*:not(svg),):
(*): Deleted.
(html|* > svg): Deleted.

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::computeTransformedExtentViaTransformList):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::applyTransform): The transformOriginX().isPercent() tests
were added to support the weird "% values are relative to bounding box" in SVG. Now
it's up to the caller to pass a non-zero origin when that matters, and
SVGGraphicsElement::animatedLocalTransform() is the only caller that does so.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::hasTransform):
(WebCore::RenderStyle::transformBox):
(WebCore::RenderStyle::setTransformBox):
(WebCore::RenderStyle::initialTransformBox):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleTransformData.cpp:

(WebCore::StyleTransformData::StyleTransformData):
(WebCore::StyleTransformData::operator==):

  • rendering/style/StyleTransformData.h:
  • svg/SVGGraphicsElement.cpp:

(WebCore::SVGGraphicsElement::animatedLocalTransform): Consult the transform-box
style to compute the reference box as the bounding box, or the view box.

Source/WebInspectorUI:

Add transform-box to the list of autocompletions.

  • UserInterface/External/CodeMirror/css.js:

LayoutTests:

Modify tests that relied on the old "% values relative to the bounding box" behavior,
and new tests for parsing and rendering with transform-box.

  • fast/css/transform-box-parsing.html: Added.
  • svg/transforms/change-transform-origin-css.xhtml:
  • svg/transforms/change-transform-origin-presentation-attribute.xhtml:
  • svg/transforms/percent-transform-values.xhtml:
  • svg/transforms/svg-transform-box-expected.html: Added.
  • svg/transforms/svg-transform-box.html: Added.
  • svg/transforms/transform-origin-css-property.xhtml:
  • transforms/svg-vs-css.xhtml:
12:14 PM Changeset in webkit [217235] by Chris Dumez
  • 8 edits in trunk/Source/WebCore

Add support for [LegacyWindowAlias] IDL extended attribute
https://bugs.webkit.org/show_bug.cgi?id=172451

Reviewed by Sam Weinig.

Add support for [LegacyWindowAlias] IDL extended attribute as per:

Use it for our legacy window aliases, such as webKitURL.

No new tests, there should be no Web-exposed behavior change.

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttributes):

  • css/DOMMatrix.idl:
  • dom/MutationObserver.idl:
  • dom/XMLDocument.idl:
  • html/DOMURL.idl:
  • page/DOMWindow.idl:
12:02 PM Changeset in webkit [217234] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

ASSERTION FAILED: m_boundThread == currentThread() in WTF::WeakReference<WebCore::WebCoreDecompressionSession>::clear()
https://bugs.webkit.org/show_bug.cgi?id=172457
<rdar://problem/32329436>

Reviewed by Eric Carlson.

Remove vestigal WeakPtrFactory that was entirely unused.

  • platform/graphics/cocoa/WebCoreDecompressionSession.h:

(WebCore::WebCoreDecompressionSession::createWeakPtr): Deleted.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession):

11:49 AM Changeset in webkit [217233] by Brian Burg
  • 3 edits
    1 add in trunk/Source/WTF

Add a debugging macro that sleeps a thread until a debugger attaches
https://bugs.webkit.org/show_bug.cgi?id=171575

Reviewed by Mark Lam.

This is really useful for debugging early errors if for some reason you can't
launch a process directly from the debugger easily, such as Web Content processes.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Assertions.h:

Always define the WTFBreakpointTrap() macro. Still make it an error if the CPU
type isn't supported for OS(DARWIN); if used on other platforms, cause a WTFCrash()
with a comment that indicates this is not implemented.

  • wtf/DebugUtilities.h: Added.
11:38 AM Changeset in webkit [217232] by Brian Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: In Timelines > JavaScript & Events, digits for sample count are not localized
https://bugs.webkit.org/show_bug.cgi?id=171819

Reviewed by Matt Baker.

  • UserInterface/Views/ScriptTimelineDataGridNode.js:

(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):

11:36 AM Changeset in webkit [217231] by Ryan Haddad
  • 3 edits in branches/safari-603-branch/LayoutTests

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
11:29 AM Changeset in webkit [217230] by dewei_zhu@apple.com
  • 3 edits in trunk/Websites/perf.webkit.org

Fix the bug that sometimes analysis task results pane is missing.
https://bugs.webkit.org/show_bug.cgi?id=172404

Reviewed by Ryosuke Niwa.

AnalysisTaskPage._didFetchTask and AnalaysisTaskPage._fetchRelatedInfoForTaskId should be called in order.
The race between those two functions causes the analysis task results pane sometimes missing.

  • public/v3/components/analysis-results-viewer.js:

(AnalysisResultsViewer.prototype.render): Fix the bug in r217173 that commitSet can be undefined.

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskPage.prototype.updateFromSerializedState): Use arrow function to get rid of self variable.
Use const instead of var for constant variable. And call _didFetchTask before calling _fetchRelatedInfoForTaskId.
(AnalysisTaskPage.prototype._renderTaskNameAndStatus):
(AnalysisTaskPage.cssTemplate):

11:27 AM Changeset in webkit [217229] by Brian Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: Text in autocomplete popover should be aligned left
https://bugs.webkit.org/show_bug.cgi?id=171998

Patch by Nikita Vasilyev <nvasilyev@apple.com> on 2017-05-22
Reviewed by Brian Burg.

Autocomplete popover is only used for CSS and JavaScript, and
these should always be shown as LTR text.

  • UserInterface/Views/CompletionSuggestionsView.css:

(.completion-suggestions):

11:17 AM Changeset in webkit [217228] by mcatanzaro@igalia.com
  • 2 edits in trunk/Source/WebKit2

-Wreturn-type warning triggered by WKPage.cpp:2277
https://bugs.webkit.org/show_bug.cgi?id=171866

Reviewed by Žan Doberšek.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

11:16 AM Changeset in webkit [217227] by antti@apple.com
  • 7 edits in trunk

Crash in WebCore::StyleRuleKeyframes::findKeyframeIndex
https://bugs.webkit.org/show_bug.cgi?id=170756
<rdar://problem/31573157>

Reviewed by Andreas Kling.

Source/WebCore:

Using a malformed key with CSSKeyframesRule.findRule crashes because
CSSParser::parseKeyframeKeyList returns null which is then dereferenced.

  • css/CSSKeyframesRule.cpp:

(WebCore::StyleRuleKeyframes::findKeyframeIndex): Null test.

LayoutTests:

Expand the tests to cover the malformed key case.

  • animations/keyframes-rule.html:
  • animations/unprefixed-keyframes-rule.html:
11:11 AM Changeset in webkit [217226] by mcatanzaro@igalia.com
  • 2 edits in trunk/Source/WebKit2

-Wreturn-type warning triggered by WebAutomationSession.cpp:851
https://bugs.webkit.org/show_bug.cgi?id=171867

Reviewed by Žan Doberšek.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::protocolModifierToWebEventModifier):

11:07 AM Changeset in webkit [217225] by commit-queue@webkit.org
  • 521 edits
    38 moves
    298 adds
    17 deletes in trunk

Resync web-platform-tests up to 8df7c9c215678328212f232ce0b5270c505a8563
https://bugs.webkit.org/show_bug.cgi?id=172426

Patch by youenn fablet <youenn@apple.com> on 2017-05-22
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • resources/TestRepositories:
  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/FileAPI/BlobURL/support/file_test2.txt: Added.
  • web-platform-tests/FileAPI/FileReader/support/file_test1.txt: Added.
  • web-platform-tests/IndexedDB/idb_webworkers.htm:
  • web-platform-tests/IndexedDB/idbcursor-advance-continue-async.htm:
  • web-platform-tests/IndexedDB/idbcursor-advance-invalid.htm:
  • web-platform-tests/IndexedDB/idbcursor-advance.htm:
  • web-platform-tests/IndexedDB/idbcursor-continue.htm:
  • web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exception-order.htm:
  • web-platform-tests/IndexedDB/idbcursor-continuePrimaryKey-exceptions.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction-index-keyrange.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction-index.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction-objectstore-keyrange.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction-objectstore.htm:
  • web-platform-tests/IndexedDB/idbcursor-direction.htm:
  • web-platform-tests/IndexedDB/idbcursor-source.htm:
  • web-platform-tests/IndexedDB/idbcursor_iterating.htm:
  • web-platform-tests/IndexedDB/idbcursor_iterating_objectstore.htm:
  • web-platform-tests/IndexedDB/idbcursor_iterating_objectstore2.htm:
  • web-platform-tests/IndexedDB/idbdatabase_close.htm:
  • web-platform-tests/IndexedDB/idbfactory-deleteDatabase-request-success.html: Added.
  • web-platform-tests/IndexedDB/idbfactory-open-request-error.html: Added.
  • web-platform-tests/IndexedDB/idbfactory-open-request-success.html: Added.
  • web-platform-tests/IndexedDB/idbfactory_open10.htm:
  • web-platform-tests/IndexedDB/idbfactory_open11.htm:
  • web-platform-tests/IndexedDB/idbfactory_open3.htm:
  • web-platform-tests/IndexedDB/idbfactory_open6.htm:
  • web-platform-tests/IndexedDB/idbfactory_open7.htm:
  • web-platform-tests/IndexedDB/idbindex_getAll.html:
  • web-platform-tests/IndexedDB/idbindex_getAllKeys.html:
  • web-platform-tests/IndexedDB/idbobjectstore-index-finished.html: Added.
  • web-platform-tests/IndexedDB/idbobjectstore_deleteIndex.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_getAll.html:
  • web-platform-tests/IndexedDB/idbobjectstore_getAllKeys.html:
  • web-platform-tests/IndexedDB/idbobjectstore_getKey.html:
  • web-platform-tests/IndexedDB/idbobjectstore_openCursor_invalid.htm:
  • web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor.htm:
  • web-platform-tests/IndexedDB/idbrequest-onupgradeneeded.htm:
  • web-platform-tests/IndexedDB/idbtransaction-objectStore-finished.html: Added.
  • web-platform-tests/IndexedDB/idbtransaction.htm:
  • web-platform-tests/IndexedDB/idbtransaction_objectStoreNames.html:
  • web-platform-tests/IndexedDB/request-abort-ordering.html: Added.
  • web-platform-tests/IndexedDB/support.js:

(indexeddb_test):

  • web-platform-tests/IndexedDB/w3c-import.log:
  • web-platform-tests/README.md:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_hkdf.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_hkdf.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_empty.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_long.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_empty_short.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_empty.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_long.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_short.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_empty.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_long.https.html: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_short.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2.html.
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/digest/test_digest.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/digest/test_digest.html.
  • web-platform-tests/WebCryptoAPI/digest/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_cbc.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_ctr.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html.
  • web-platform-tests/WebCryptoAPI/encrypt_decrypt/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/generateKey/successes.js:

(run_test):

  • web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_aes-ctr.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CBC.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-CTR.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-GCM.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_AES-KW.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_HMAC.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CBC.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-CTR.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.html.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html.
  • web-platform-tests/WebCryptoAPI/generateKey/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/getRandomValues.any.html: Added.
  • web-platform-tests/WebCryptoAPI/getRandomValues.any.js: Added.

(test):
(string_appeared_here.test):

  • web-platform-tests/WebCryptoAPI/getRandomValues.any.worker.html: Added.
  • web-platform-tests/WebCryptoAPI/idlharness.https.html: Added.
  • web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_ec_importKey.html.
  • web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.html.
  • web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_symmetric_importKey.html.
  • web-platform-tests/WebCryptoAPI/import_export/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/secure_context/crypto-subtle-non-secure-context-not-available.sub.html: Added.
  • web-platform-tests/WebCryptoAPI/secure_context/crypto-subtle-secure-context-available.https.sub.html: Added.
  • web-platform-tests/WebCryptoAPI/secure_context/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/util/w3c-import.log.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_ecdsa.html.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_hmac.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_hmac.html.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pkcs.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pkcs.html.
  • web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pss.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pss.html.
  • web-platform-tests/WebCryptoAPI/sign_verify/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/util/helpers.js:

(allNameVariants):

  • web-platform-tests/WebCryptoAPI/util/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/util/worker-report-crypto-subtle-presence.js: Added.
  • web-platform-tests/WebCryptoAPI/w3c-import.log:
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/test_wrapKey_unwrapKey.html.
  • web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/w3c-import.log:
  • web-platform-tests/WebIDL/OWNERS: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/has-instance-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/has-instance.html:
  • web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-object.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/legacy-callback-interface-object.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/put-forwards.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/sequence-conversion.html: Added.
  • web-platform-tests/WebIDL/ecmascript-binding/w3c-import.log:
  • web-platform-tests/WebIDL/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/formdata-foreach.html:
  • web-platform-tests/XMLHttpRequest/getresponseheader-chunked-trailer.htm:
  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:
  • web-platform-tests/XMLHttpRequest/interfaces.html:
  • web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm:
  • web-platform-tests/XMLHttpRequest/resources/base.xml: Added.
  • web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/responsexml-document-properties.htm:
  • web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-data-arraybufferview.htm: Added.
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/beacon/headers/header-content-type.html: Added.
  • web-platform-tests/beacon/headers/w3c-import.log:
  • web-platform-tests/beacon/resources/content-type.py: Added.

(main):

  • web-platform-tests/beacon/resources/w3c-import.log:
  • web-platform-tests/check_stability.ini: Added.
  • web-platform-tests/check_stability.py:

(Browser.prepare_environment):
(Firefox.init):
(Chrome.init):
(Chrome.prepare_environment):
(Sauce):
(Sauce.init):
(Sauce.install):
(Sauce.install_webdriver):
(Sauce.version):
(Sauce.wptrunner_args):
(install_wptrunner):
(get_files_changed):
(_in_repo_root):
(get_affected_testfiles):
(get_affected_testfiles.affected_by_wdspec):
(format_comment_title):
(markdown_adjust):
(table):
(get_parser):
(main):

  • web-platform-tests/ci_unittest.sh: Added.
  • web-platform-tests/common/object-association.js: Added.

(window.testIsPerWindow.propertyName.async_test.t.iframe.onload.t.step_func):
(window.testIsPerWindow.propertyName.async_test.t.iframe.onload.t.step_func_done):

  • web-platform-tests/common/performance-timeline-utils.js: Added.

(wp_test):
(test_true):
(test_equals):
(test_entries):

  • web-platform-tests/common/w3c-import.log:
  • web-platform-tests/cors/access-control-expose-headers-parsing.window.js: Added.

(exposeTest):

  • web-platform-tests/cors/preflight-failure.htm:
  • web-platform-tests/cors/resources/access-control-expose-headers-parsing-2.asis: Added.
  • web-platform-tests/cors/resources/access-control-expose-headers-parsing.asis: Added.
  • web-platform-tests/cors/resources/w3c-import.log:
  • web-platform-tests/cors/w3c-import.log:
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-001-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-001.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-002-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-002.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-003-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-003.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-004-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-004.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-005-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-005.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-006-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-006.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-007-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-007.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-008-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-008.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-009-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-009.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-010-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-010.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-011-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-011.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-012-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-012.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-013-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-013.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-014-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-014.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-015-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-015.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-016-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-016.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-017-expected.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/positioned-grid-items-017.html: Added.
  • web-platform-tests/css/css-grid-1/abspos/w3c-import.log: Added.
  • web-platform-tests/css/geometry-1/support/interfaces.js: Added.

(doTest):
(promise_test):

  • web-platform-tests/css/geometry-1/support/w3c-import.log:
  • web-platform-tests/cssom-view/cssom-view-window-screen-interface.html:
  • web-platform-tests/cssom/MediaList-expected.txt:
  • web-platform-tests/cssom/w3c-import.log:
  • web-platform-tests/custom-elements/custom-element-registry/per-global.html: Added.
  • web-platform-tests/custom-elements/custom-element-registry/w3c-import.log:
  • web-platform-tests/custom-elements/microtasks-and-constructors.html: Added.
  • web-platform-tests/custom-elements/w3c-import.log:
  • web-platform-tests/dom/collections/HTMLCollection-as-proto-length-get-throws.html:
  • web-platform-tests/dom/collections/HTMLCollection-empty-name.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/collections/domstringmap-supported-property-names.html:
  • web-platform-tests/dom/collections/namednodemap-supported-property-names.html:
  • web-platform-tests/dom/events/AddEventListenerOptions-once.html:
  • web-platform-tests/dom/events/AddEventListenerOptions-passive.html:
  • web-platform-tests/dom/events/CustomEvent.html:
  • web-platform-tests/dom/events/Event-cancelBubble.html:
  • web-platform-tests/dom/events/Event-constants.html:
  • web-platform-tests/dom/events/Event-constructors.html:
  • web-platform-tests/dom/events/Event-defaultPrevented-after-dispatch.html:
  • web-platform-tests/dom/events/Event-defaultPrevented.html:
  • web-platform-tests/dom/events/Event-dispatch-bubble-canceled.html:
  • web-platform-tests/dom/events/Event-dispatch-bubbles-false.html:
  • web-platform-tests/dom/events/Event-dispatch-bubbles-true.html:
  • web-platform-tests/dom/events/Event-dispatch-click.html:
  • web-platform-tests/dom/events/Event-dispatch-detached-click.html:
  • web-platform-tests/dom/events/Event-dispatch-handlers-changed.html:
  • web-platform-tests/dom/events/Event-dispatch-multiple-cancelBubble.html:
  • web-platform-tests/dom/events/Event-dispatch-multiple-stopPropagation.html:
  • web-platform-tests/dom/events/Event-dispatch-omitted-capture.html:
  • web-platform-tests/dom/events/Event-dispatch-order.html:
  • web-platform-tests/dom/events/Event-dispatch-other-document.html:
  • web-platform-tests/dom/events/Event-dispatch-propagation-stopped.html:
  • web-platform-tests/dom/events/Event-dispatch-redispatch.html:
  • web-platform-tests/dom/events/Event-dispatch-reenter.html:
  • web-platform-tests/dom/events/Event-dispatch-target-moved.html:
  • web-platform-tests/dom/events/Event-dispatch-target-removed.html:
  • web-platform-tests/dom/events/Event-dispatch-throwing.html:
  • web-platform-tests/dom/events/Event-init-while-dispatching.html:
  • web-platform-tests/dom/events/Event-initEvent.html:
  • web-platform-tests/dom/events/Event-propagation.html:
  • web-platform-tests/dom/events/Event-subclasses-constructors.html:
  • web-platform-tests/dom/events/Event-type-empty.html:
  • web-platform-tests/dom/events/Event-type.html:
  • web-platform-tests/dom/events/EventListener-handleEvent.html:
  • web-platform-tests/dom/events/EventListener-incumbent-global-1.sub.html:
  • web-platform-tests/dom/events/EventListener-incumbent-global-2.sub.html:
  • web-platform-tests/dom/events/EventListener-invoke-legacy.html:
  • web-platform-tests/dom/events/EventListenerOptions-capture.html:
  • web-platform-tests/dom/events/EventTarget-addEventListener.html:
  • web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue.html:
  • web-platform-tests/dom/events/EventTarget-dispatchEvent.html:
  • web-platform-tests/dom/events/EventTarget-removeEventListener.html:
  • web-platform-tests/dom/historical.html:
  • web-platform-tests/dom/interface-objects.html:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/interfaces.html:
  • web-platform-tests/dom/lists/DOMTokenList-Iterable.html:
  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html:
  • web-platform-tests/dom/lists/DOMTokenList-iteration.html:
  • web-platform-tests/dom/lists/DOMTokenList-stringifier.html:
  • web-platform-tests/dom/lists/DOMTokenList-value.html:
  • web-platform-tests/dom/nodes/CharacterData-appendChild.html:
  • web-platform-tests/dom/nodes/CharacterData-appendData.html:
  • web-platform-tests/dom/nodes/CharacterData-data.html:
  • web-platform-tests/dom/nodes/CharacterData-deleteData.html:
  • web-platform-tests/dom/nodes/CharacterData-insertData.html:
  • web-platform-tests/dom/nodes/CharacterData-remove.html:
  • web-platform-tests/dom/nodes/CharacterData-replaceData.html:
  • web-platform-tests/dom/nodes/CharacterData-substringData.html:
  • web-platform-tests/dom/nodes/CharacterData-surrogates.html:
  • web-platform-tests/dom/nodes/ChildNode-after.html:
  • web-platform-tests/dom/nodes/ChildNode-before.html:
  • web-platform-tests/dom/nodes/ChildNode-replaceWith.html:
  • web-platform-tests/dom/nodes/Comment-constructor.html:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocument.html:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocumentType.html:
  • web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument.html:
  • web-platform-tests/dom/nodes/DOMImplementation-hasFeature.html:
  • web-platform-tests/dom/nodes/Document-URL.sub.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.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_bmp.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_css.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_gif.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_html.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_javascripturi.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_jpg.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_01.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_02.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_png.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_txt.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_xml.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/createDocument.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/createHTMLDocument.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/xhr_responseType_document.html:
  • web-platform-tests/dom/nodes/Document-createAttribute.html:
  • web-platform-tests/dom/nodes/Document-createComment.html:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-createElement-namespace.html:
  • web-platform-tests/dom/nodes/Document-createElement.html:
  • web-platform-tests/dom/nodes/Document-createElementNS.html:
  • web-platform-tests/dom/nodes/Document-createEvent-expected.txt:
  • web-platform-tests/dom/nodes/Document-createEvent.html:
  • web-platform-tests/dom/nodes/Document-createProcessingInstruction-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Document-createProcessingInstruction.html:
  • web-platform-tests/dom/nodes/Document-createTextNode.html:
  • web-platform-tests/dom/nodes/Document-createTreeWalker.html:
  • web-platform-tests/dom/nodes/Document-doctype.html:
  • web-platform-tests/dom/nodes/Document-getElementById.html:
  • web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Document-getElementsByTagName.html:
  • web-platform-tests/dom/nodes/Document-getElementsByTagNameNS.html:
  • web-platform-tests/dom/nodes/Document-implementation.html:
  • web-platform-tests/dom/nodes/Document-importNode.html:
  • web-platform-tests/dom/nodes/DocumentType-literal-xhtml.xhtml:
  • web-platform-tests/dom/nodes/DocumentType-literal.html:
  • web-platform-tests/dom/nodes/DocumentType-remove.html:
  • web-platform-tests/dom/nodes/Element-childElement-null-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElement-null.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-nochild-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount-nochild.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount.html:
  • web-platform-tests/dom/nodes/Element-children.html:
  • web-platform-tests/dom/nodes/Element-classlist-expected.txt:
  • web-platform-tests/dom/nodes/Element-classlist.html:
  • web-platform-tests/dom/nodes/Element-closest.html:
  • web-platform-tests/dom/nodes/Element-firstElementChild-entity-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-firstElementChild-namespace-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-firstElementChild-namespace.html:
  • web-platform-tests/dom/nodes/Element-firstElementChild-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-firstElementChild.html:
  • web-platform-tests/dom/nodes/Element-getElementsByClassName.html:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName.html:
  • web-platform-tests/dom/nodes/Element-getElementsByTagNameNS.html:
  • web-platform-tests/dom/nodes/Element-hasAttributes.html:
  • web-platform-tests/dom/nodes/Element-insertAdjacentElement.html:
  • web-platform-tests/dom/nodes/Element-insertAdjacentText.html:
  • web-platform-tests/dom/nodes/Element-lastElementChild-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-lastElementChild.html:
  • web-platform-tests/dom/nodes/Element-matches-expected.txt:
  • web-platform-tests/dom/nodes/Element-matches.html:
  • web-platform-tests/dom/nodes/Element-nextElementSibling-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-nextElementSibling.html:
  • web-platform-tests/dom/nodes/Element-previousElementSibling-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-previousElementSibling.html:
  • web-platform-tests/dom/nodes/Element-remove.html:
  • web-platform-tests/dom/nodes/Element-removeAttributeNS.html:
  • web-platform-tests/dom/nodes/Element-siblingElement-null-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-siblingElement-null.html:
  • web-platform-tests/dom/nodes/Element-tagName.html:
  • web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
  • web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html:
  • web-platform-tests/dom/nodes/MutationObserver-attributes.html:
  • web-platform-tests/dom/nodes/MutationObserver-characterData.html:
  • web-platform-tests/dom/nodes/MutationObserver-childList.html:
  • web-platform-tests/dom/nodes/MutationObserver-disconnect.html:
  • web-platform-tests/dom/nodes/MutationObserver-document.html:
  • web-platform-tests/dom/nodes/MutationObserver-inner-outer.html:
  • web-platform-tests/dom/nodes/MutationObserver-takeRecords.html:
  • web-platform-tests/dom/nodes/Node-appendChild.html:
  • web-platform-tests/dom/nodes/Node-baseURI.html:
  • web-platform-tests/dom/nodes/Node-childNodes.html:
  • web-platform-tests/dom/nodes/Node-cloneNode.html:
  • web-platform-tests/dom/nodes/Node-compareDocumentPosition.html:
  • web-platform-tests/dom/nodes/Node-constants.html:
  • web-platform-tests/dom/nodes/Node-contains-xml.xml:
  • web-platform-tests/dom/nodes/Node-contains.html:
  • web-platform-tests/dom/nodes/Node-insertBefore.html:
  • web-platform-tests/dom/nodes/Node-isConnected.html:
  • web-platform-tests/dom/nodes/Node-isEqualNode-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Node-isEqualNode.html:
  • web-platform-tests/dom/nodes/Node-isSameNode.html:
  • web-platform-tests/dom/nodes/Node-lookupNamespaceURI.html:
  • web-platform-tests/dom/nodes/Node-lookupPrefix.xhtml:
  • web-platform-tests/dom/nodes/Node-nodeName-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Node-nodeName.html:
  • web-platform-tests/dom/nodes/Node-nodeValue.html:
  • web-platform-tests/dom/nodes/Node-normalize.html:
  • web-platform-tests/dom/nodes/Node-parentElement.html:
  • web-platform-tests/dom/nodes/Node-parentNode.html:
  • web-platform-tests/dom/nodes/Node-properties.html:
  • web-platform-tests/dom/nodes/Node-removeChild.html:
  • web-platform-tests/dom/nodes/Node-replaceChild.html:
  • web-platform-tests/dom/nodes/Node-textContent.html:
  • web-platform-tests/dom/nodes/NodeList-Iterable.html:
  • web-platform-tests/dom/nodes/ParentNode-append.html:
  • web-platform-tests/dom/nodes/ParentNode-prepend.html:
  • 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/ParentNode-querySelector-All-xht.xht:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All.html:
  • web-platform-tests/dom/nodes/ProcessingInstruction-escapes-1.xhtml:
  • web-platform-tests/dom/nodes/ProcessingInstruction-literal-1.xhtml:
  • web-platform-tests/dom/nodes/ProcessingInstruction-literal-2.xhtml:
  • web-platform-tests/dom/nodes/Text-constructor.html:
  • web-platform-tests/dom/nodes/Text-splitText.html:
  • web-platform-tests/dom/nodes/append-on-Document.html:
  • web-platform-tests/dom/nodes/attributes.html:
  • web-platform-tests/dom/nodes/case.html:
  • web-platform-tests/dom/nodes/getElementsByClassName-01.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-02.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-03.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-04.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-05.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-06.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-07.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-08.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-09.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-10.xml:
  • web-platform-tests/dom/nodes/getElementsByClassName-11.xml:
  • web-platform-tests/dom/nodes/getElementsByClassName-12.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-13.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-14.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-15.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-16.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-17.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-18.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-19.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-20.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-21.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-22.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-23.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-24.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-25.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-26.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-27.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-28.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-29.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-30.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-31.htm:
  • web-platform-tests/dom/nodes/insert-adjacent.html:
  • web-platform-tests/dom/nodes/mutationobservers.js:
  • web-platform-tests/dom/nodes/prepend-on-Document.html:
  • web-platform-tests/dom/nodes/remove-unscopable.html:
  • web-platform-tests/dom/nodes/rootNode.html:
  • web-platform-tests/dom/nodes/selectors.js:
  • web-platform-tests/dom/nodes/w3c-import.log:
  • web-platform-tests/dom/ranges/Range-attributes.html:
  • web-platform-tests/dom/ranges/Range-cloneContents.html:
  • web-platform-tests/dom/ranges/Range-cloneRange.html:
  • web-platform-tests/dom/ranges/Range-collapse.html:
  • web-platform-tests/dom/ranges/Range-commonAncestorContainer-2.html:
  • web-platform-tests/dom/ranges/Range-commonAncestorContainer.html:
  • web-platform-tests/dom/ranges/Range-compareBoundaryPoints.html:
  • web-platform-tests/dom/ranges/Range-comparePoint-2.html:
  • web-platform-tests/dom/ranges/Range-comparePoint.html:
  • web-platform-tests/dom/ranges/Range-constructor.html:
  • web-platform-tests/dom/ranges/Range-deleteContents.html:
  • web-platform-tests/dom/ranges/Range-detach.html:
  • web-platform-tests/dom/ranges/Range-extractContents.html:
  • web-platform-tests/dom/ranges/Range-insertNode.html:
  • web-platform-tests/dom/ranges/Range-intersectsNode-binding.html:
  • web-platform-tests/dom/ranges/Range-intersectsNode.html:
  • web-platform-tests/dom/ranges/Range-isPointInRange.html:
  • web-platform-tests/dom/ranges/Range-mutations-appendChild.html:
  • web-platform-tests/dom/ranges/Range-mutations-appendData.html:
  • web-platform-tests/dom/ranges/Range-mutations-dataChange.html:
  • web-platform-tests/dom/ranges/Range-mutations-deleteData.html:
  • web-platform-tests/dom/ranges/Range-mutations-insertBefore.html:
  • web-platform-tests/dom/ranges/Range-mutations-insertData.html:
  • web-platform-tests/dom/ranges/Range-mutations-removeChild.html:
  • web-platform-tests/dom/ranges/Range-mutations-replaceChild.html:
  • web-platform-tests/dom/ranges/Range-mutations-replaceData.html:
  • web-platform-tests/dom/ranges/Range-mutations-splitText.html:
  • web-platform-tests/dom/ranges/Range-selectNode.html:
  • web-platform-tests/dom/ranges/Range-set.html:
  • web-platform-tests/dom/ranges/Range-stringifier.html:
  • web-platform-tests/dom/ranges/Range-surroundContents.html:
  • web-platform-tests/dom/traversal/NodeFilter-constants.html:
  • web-platform-tests/dom/traversal/NodeIterator-removal.html:
  • web-platform-tests/dom/traversal/NodeIterator.html:
  • 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/dom/traversal/TreeWalker.html:
  • web-platform-tests/domparsing/DOMParser-parseFromString-xml-internal-subset.html: Added.
  • web-platform-tests/domparsing/w3c-import.log:
  • web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-license.html:
  • web-platform-tests/encrypted-media/scripts/playback-persistent-license-events.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-license.js:

(runTest):

  • web-platform-tests/fetch/api/basic/block-mime-as-script.html: Added.
  • web-platform-tests/fetch/api/basic/request-headers.any-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:
  • web-platform-tests/fetch/api/basic/w3c-import.log:
  • web-platform-tests/fetch/api/headers/header-values-normalize-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location.js:

(redirectLocation):

  • web-platform-tests/fetch/api/request/request-consume-empty-expected.txt:
  • web-platform-tests/fetch/api/request/request-consume-empty.html:
  • web-platform-tests/fetch/api/request/request-error-expected.txt:
  • web-platform-tests/fetch/api/request/request-error.html:
  • web-platform-tests/fetch/api/request/request-init-001.sub-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-001.sub.html:
  • web-platform-tests/fetch/api/resources/script-with-header.py: Added.

(main):

  • web-platform-tests/fetch/api/resources/w3c-import.log:
  • web-platform-tests/fetch/api/response/response-consume-empty-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-empty.html:
  • web-platform-tests/fonts/CanvasTest.sfd: Removed.
  • web-platform-tests/fonts/w3c-import.log:
  • web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html:
  • web-platform-tests/html/browsers/history/the-location-interface/per-global.window.js: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log:
  • web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter.html: Added.
  • web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter_iframe.html: Added.
  • web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/w3c-import.log:
  • web-platform-tests/html/browsers/the-window-object/historical.window.js: Added.

(test):

  • web-platform-tests/html/browsers/the-window-object/security-window/window-security-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security.html:
  • web-platform-tests/html/browsers/the-window-object/w3c-import.log:
  • web-platform-tests/html/browsers/the-window-object/window-properties-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/window-properties.html:
  • web-platform-tests/html/browsers/windows/noreferrer-window-name-expected.txt:
  • web-platform-tests/html/browsers/windows/noreferrer-window-name.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-07.html: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-08.html: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log:
  • web-platform-tests/html/dom/elements-metadata.js:
  • web-platform-tests/html/dom/interfaces.html:
  • web-platform-tests/html/dom/reflection-metadata-expected.txt:
  • web-platform-tests/html/dom/resources/interfaces.idl: Removed.
  • web-platform-tests/html/dom/resources/untested-interfaces.idl: Removed.
  • web-platform-tests/html/dom/resources/w3c-import.log:
  • web-platform-tests/html/dom/self-origin.sub.html:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/resources/bad.css: Added.

(p):

  • web-platform-tests/html/semantics/document-metadata/the-link-element/resources/good.css: Added.

(p):

  • web-platform-tests/html/semantics/document-metadata/the-link-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet-change-href-expected.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet-change-href.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/imagedata.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_harness.js:

(get_test_results.):
(get_test_results):

  • web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/document-adopt-base-url-expected.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/document-adopt-base-url.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/form_attribute.html: Added.
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/form_owner_and_table.html: Added.
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/form_owner_and_table_2.html: Added.
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/w3c-import.log:
  • web-platform-tests/html/semantics/forms/resetting-a-form/reset-form-2.html: Added.
  • web-platform-tests/html/semantics/forms/resetting-a-form/w3c-import.log:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-after-content-change-expected.txt:
  • web-platform-tests/html/semantics/forms/textfieldselection/selection-after-content-change.html:
  • web-platform-tests/html/semantics/forms/the-button-element/button-click-submits.html: Added.
  • web-platform-tests/html/semantics/forms/the-button-element/button-type.html: Added.
  • web-platform-tests/html/semantics/forms/the-button-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-reflection-with-base-url.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-reflection.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-submission-with-base-url.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-submission.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-url-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-url.html: Removed.
  • web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-autocomplete.html:
  • web-platform-tests/html/semantics/forms/the-form-element/resources/form-action-url-iframe.html: Removed.
  • web-platform-tests/html/semantics/forms/the-form-element/resources/form-no-action-with-base.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/resources/form-no-action.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/resources/form-with-action-and-base.sub.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/resources/form-with-action.sub.html: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/resources/target/form-action-url-target.html:
  • web-platform-tests/html/semantics/forms/the-form-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-form-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-input-element/checkbox-click-events.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-input-cancel.html: Added.
  • web-platform-tests/html/semantics/forms/the-input-element/radio.html:
  • web-platform-tests/html/semantics/forms/the-input-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-label-element/proxy-click-to-associated-element.html: Added.
  • web-platform-tests/html/semantics/forms/the-label-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-select-element/select-multiple.html: Added.
  • web-platform-tests/html/semantics/forms/the-select-element/select-selectedOptions.html: Added.
  • web-platform-tests/html/semantics/forms/the-select-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-textarea-element/value-defaultValue-textContent.html: Added.
  • web-platform-tests/html/semantics/forms/the-textarea-element/w3c-import.log:
  • web-platform-tests/html/semantics/interactive-elements/the-menu-element/menuitem-label.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-menu-element/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/nomodule-set-on-async-classic-script.html:
  • web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.rel-getter-01.html: Added.
  • web-platform-tests/html/semantics/text-level-semantics/the-a-element/a.rel-setter-01.html: Added.
  • web-platform-tests/html/semantics/text-level-semantics/the-a-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/the-xhtml-syntax/parsing-xhtml-documents/w3c-import.log:
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-1.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-10.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-2.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-3.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-4.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-5.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-6.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-7.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-8.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-9.htm: Added.
  • web-platform-tests/html/the-xhtml-syntax/parsing-xhtml-documents/xhtml-mathml-dtd-entity-support.htm:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-dedicatedworker.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-serviceworker.https.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-sharedworker.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/canblock-window.html: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/w3c-import.log: Added.
  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-failure.js: Added.

(test):

  • web-platform-tests/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-agent-formalism/worker-that-requires-success.js: Added.

(test):

  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.html: Removed.
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.worker.js: Removed.
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator.any.html: Added.
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js.

(async_test):

  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator.any.worker.html: Added.
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/w3c-import.log:
  • web-platform-tests/images/apng.png: Added.
  • web-platform-tests/images/w3c-import.log:
  • web-platform-tests/lint:
  • web-platform-tests/lint.whitelist:
  • web-platform-tests/media/CanvasTest.ttf: Removed.
  • web-platform-tests/media/OWNERS:
  • web-platform-tests/media/w3c-import.log:
  • web-platform-tests/notifications/shownotification-resolve-manual.https.html: Added.
  • web-platform-tests/notifications/w3c-import.log:
  • web-platform-tests/resource-timing/resource-timing.js:

(assertResourceEntryInvariants):

  • web-platform-tests/resource-timing/resource_TAO_match_origin.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_match_wildcard.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_multi.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_null.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_origin.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_origin_uppercase.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_space.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_wildcard.htm: Added.
  • web-platform-tests/resource-timing/resource_TAO_zero.htm: Added.
  • web-platform-tests/resource-timing/resources/TAOResponse.py: Added.

(main):

  • web-platform-tests/resource-timing/resources/iframe_TAO_match_origin.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_match_wildcard.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_multi.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_null.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_origin.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_origin_uppercase.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_space.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_wildcard.html: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_zero.html: Added.
  • web-platform-tests/resource-timing/resources/w3c-import.log:
  • web-platform-tests/resource-timing/w3c-import.log:
  • web-platform-tests/resources/examples/apisample18.html: Added.
  • web-platform-tests/resources/examples/apisample19.html: Added.
  • web-platform-tests/resources/examples/w3c-import.log:
  • web-platform-tests/resources/idlharness.js:

(IdlArray.prototype.assert_type_is):
(IdlInterface.prototype.test_self):

  • web-platform-tests/resources/readme.md:
  • web-platform-tests/resources/w3c-import.log:
  • web-platform-tests/resources/webidl2/lib/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/invalid/idl/record-key.widl: Added.
  • web-platform-tests/resources/webidl2/test/invalid/idl/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/invalid/json/record-key.json: Added.
  • web-platform-tests/resources/webidl2/test/invalid/json/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/syntax/idl/map.widl: Removed.
  • web-platform-tests/resources/webidl2/test/syntax/idl/namespace.widl: Added.
  • web-platform-tests/resources/webidl2/test/syntax/idl/record.widl: Added.
  • web-platform-tests/resources/webidl2/test/syntax/idl/typedef-nested.widl: Removed.
  • web-platform-tests/resources/webidl2/test/syntax/idl/typedef-union.idl: Added.
  • web-platform-tests/resources/webidl2/test/syntax/idl/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/syntax/json/map.json: Removed.
  • web-platform-tests/resources/webidl2/test/syntax/json/namespace.json: Added.
  • web-platform-tests/resources/webidl2/test/syntax/json/record.json: Added.
  • web-platform-tests/resources/webidl2/test/syntax/json/typedef-nested.json: Removed.
  • web-platform-tests/resources/webidl2/test/syntax/json/typedef-union.json: Added.
  • web-platform-tests/resources/webidl2/test/syntax/json/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/syntax/opt/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/w3c-import.log:
  • web-platform-tests/resources/webidl2/test/web/w3c-import.log:
  • web-platform-tests/resources/webidl2/w3c-import.log:
  • web-platform-tests/shadow-dom/slots-fallback-in-document.html: Added.
  • web-platform-tests/shadow-dom/w3c-import.log:
  • web-platform-tests/streams/piping/close-propagation-forward-expected.txt:
  • web-platform-tests/streams/piping/flow-control-expected.txt:
  • web-platform-tests/streams/piping/flow-control.js:

(StepTracker):
(StepTracker.prototype.waitThenAdvance):
(promise_test):

  • web-platform-tests/streams/piping/general-expected.txt:
  • web-platform-tests/streams/piping/pipe-through-expected.txt:
  • web-platform-tests/streams/piping/pipe-through.dedicatedworker-expected.txt:
  • web-platform-tests/streams/piping/pipe-through.js:

(test):

  • web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/general.js:

(promise_test):

  • web-platform-tests/streams/readable-streams/floating-point-total-queue-size.dedicatedworker-expected.txt:
  • web-platform-tests/streams/readable-streams/floating-point-total-queue-size.js:
  • web-platform-tests/streams/resources/recording-streams.js:

(self.recordingWritableStream):

  • web-platform-tests/tools/html5lib/html5lib/serializer/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/treebuilders/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/treewalkers/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/trie/w3c-import.log:
  • web-platform-tests/tools/html5lib/html5lib/w3c-import.log:
  • web-platform-tests/tools/manifest/w3c-import.log:
  • web-platform-tests/tools/pytest/.github/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/mod_pywebsocket/handshake/w3c-import.log:
  • web-platform-tests/tools/pywebsocket/src/mod_pywebsocket/w3c-import.log:
  • web-platform-tests/tools/serve/w3c-import.log:
  • web-platform-tests/tools/six/w3c-import.log:
  • web-platform-tests/tools/sslutils/w3c-import.log:
  • web-platform-tests/tools/w3c-import.log:
  • web-platform-tests/tools/webdriver/webdriver/client.py:

(ActionSequence.pause):
(ActionSequence.pointer_up):
(ActionSequence.pointer_down):
(ActionSequence.click):

  • web-platform-tests/tools/webdriver/webdriver/transport.py:

(Response.from_http_response):

  • web-platform-tests/tools/wptrunner/requirements_firefox.txt:
  • web-platform-tests/tools/wptrunner/wptrunner/browsers/base.py:

(Browser.settings):
(Browser.start):
(NullBrowser.start):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/chrome.py:

(browser_kwargs):
(ChromeBrowser.start):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/edge.py:

(EdgeBrowser.start):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/firefox.py:

(get_timeout_multiplier):
(browser_kwargs):
(executor_kwargs):
(FirefoxBrowser.init):
(FirefoxBrowser):
(FirefoxBrowser.settings):
(FirefoxBrowser.start):
(FirefoxBrowser.stop):
(FirefoxBrowser.process_leaks):
(FirefoxBrowser.cleanup):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/sauce.py:

(browser_kwargs):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/servo.py:

(browser_kwargs):

  • web-platform-tests/tools/wptrunner/wptrunner/browsers/servodriver.py:

(browser_kwargs):
(ServoWebDriverBrowser.start):

  • web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py:

(MarionetteProtocol.init):
(MarionetteProtocol.setup):
(MarionetteTestharnessExecutor.init):

  • web-platform-tests/tools/wptrunner/wptrunner/manifestexpected.py:

(ExpectedManifest.leaks):
(ExpectedManifest):
(DirectoryManifest.leaks):
(DirectoryManifest):
(TestNode.leaks):
(TestNode):

  • web-platform-tests/tools/wptrunner/wptrunner/testloader.py:

(EqualTimeChunker._group_by_directory):
(PathGroupedSource.get_queue):

  • web-platform-tests/tools/wptrunner/wptrunner/testrunner.py:

(BrowserManager.init):
(BrowserManager.update_settings):
(BrowserManager.init):
(TestRunnerManager.init):
(TestRunnerManager.get_next_test):
(TestRunnerManager.run_test):

  • web-platform-tests/tools/wptrunner/wptrunner/tests/test_chunker.py:

(MockTest):

  • web-platform-tests/tools/wptrunner/wptrunner/update/sync.py:

(copy_wpt_tree):
(add_license):
(CopyWorkTree.create):

  • web-platform-tests/tools/wptrunner/wptrunner/update/tree.py:

(GitTree.paths):

  • web-platform-tests/tools/wptrunner/wptrunner/update/update.py:

(SyncFromUpstream.create):

  • web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py:

(create_parser_update):

  • web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py:

(run_tests):

  • web-platform-tests/tools/wptrunner/wptrunner/wpttest.py:

(Test):
(Test.init):
(Test.from_manifest):
(Test.leaks):
(ReftestTest.init):
(ReftestTest.from_manifest):
(WdspecTest):

  • web-platform-tests/tools/wptserve/wptserve/w3c-import.log:
  • web-platform-tests/user-timing/measure.html:
  • web-platform-tests/user-timing/measure_navigation_timing.html:
  • web-platform-tests/user-timing/resources/webperftestharness.js:
  • web-platform-tests/user-timing/test_user_timing_clear_marks-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_clear_measures-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_entry_type-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_exists-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_with_timing_attributes-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_and_measure_exception_when_invoke_without_parameter-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_exceptions-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_mark_with_name_of_navigation_timing_optional_attribute-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_measure-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_measure_exceptions-expected.txt:
  • web-platform-tests/user-timing/test_user_timing_measure_navigation_timing-expected.txt:
  • web-platform-tests/w3c-import.log:
  • web-platform-tests/webrtc/OWNERS:
  • web-platform-tests/webrtc/RTCConfiguration-iceCandidatePoolSize-expected.txt:
  • web-platform-tests/webrtc/RTCConfiguration-iceCandidatePoolSize.html:
  • web-platform-tests/webrtc/RTCIceCandidate-constructor.html: Added.
  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate.html: Added.
  • web-platform-tests/webrtc/getstats-expected.txt:
  • web-platform-tests/webrtc/getstats.html:
  • web-platform-tests/webrtc/w3c-import.log:
  • web-platform-tests/wptrun: Added.

Tools:

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.remove_deleted_files): Outputting warning when trying to delete a file that no longer exists.

LayoutTests:

11:02 AM Changeset in webkit [217224] by wenson_hsieh@apple.com
  • 7 edits in trunk/Source

Remove unused documentIsHandlingNonDefaultDrag plumbing for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=172453

Reviewed by Tim Horton.

Source/WebCore:

Removes unused plumbing that was originally added to support file uploads. No new tests, since there is no
change in behavior.

  • page/DragController.h:

(WebCore::DragController::documentIsHandlingNonDefaultDrag): Deleted.

Source/WebKit2:

Removes unused plumbing that was originally added to support file uploads.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didPerformDragControllerAction):
(WebKit::WebPageProxy::resetCurrentDragInformation):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::currentDragCaretRect):
(WebKit::WebPageProxy::documentIsHandlingNonDefaultDrag): Deleted.

  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::performDragControllerAction):

10:38 AM Changeset in webkit [217223] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Media element thinks its hidden when in PiP mode and tab is backgrounded.
https://bugs.webkit.org/show_bug.cgi?id=172221

Reviewed by Eric Carlson.

The element should not be considered hidden when in legacy fullscreen mode or PiP mode.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::visibilityStateChanged):
(WebCore::HTMLMediaElement::fullscreenModeChanged):

10:15 AM Changeset in webkit [217222] by Konstantin Tokarev
  • 2 edits in trunk/Tools

Unreviewed, change my status to reviewer and fill "expertise" field

  • Scripts/webkitpy/common/config/contributors.json:
10:14 AM Changeset in webkit [217221] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

FTL stack overflow handling should not assume that B3 never selects callee-saves in the prologue
https://bugs.webkit.org/show_bug.cgi?id=172455

Reviewed by Mark Lam.

The FTL needs to run B3's callee-save register restoration before it runs the exception
handler's callee-save register restoration. This exposes B3's callee-save register
algorithm in AssemblyHelpers so that the FTL can call it.

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generate):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower): Fix the bug.

  • heap/Subspace.cpp: Added some debugging support.

(JSC::Subspace::allocate):
(JSC::Subspace::tryAllocate):
(JSC::Subspace::didAllocate):

  • heap/Subspace.h:
  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::addressFor):
(JSC::AssemblyHelpers::emitSave):
(JSC::AssemblyHelpers::emitRestore):

9:58 AM Changeset in webkit [217220] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

NavigatorEME: null RefPtr<> dereference due to different calling conventions
https://bugs.webkit.org/show_bug.cgi?id=172352

Reviewed by Carlos Garcia Campos.

  • Modules/encryptedmedia/NavigatorEME.cpp:

(WebCore::tryNextSupportedConfiguration): Avoid crashes when constructing
the MediaKeySystemAccess::create() arguments that can occur for targets with
calling conventions that might release the implementation RefPtr<> before it's
dereferenced to retrieve the key system string. Simply acquire the reference
to the key system String object before the MediaKeySystem::create() call
expression that releases the problematic RefPtr<>.

7:28 AM Changeset in webkit [217219] by mcatanzaro@igalia.com
  • 2 edits in trunk/Source/WebKit2

Add even more input validation in Connection::processMessage()
https://bugs.webkit.org/show_bug.cgi?id=171682

Reviewed by Carlos Garcia Campos.

Verify that the size of the out-of-line message body matches the size of the AttachmentInfo
that is containing it.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):

6:46 AM Changeset in webkit [217218] by yoon@igalia.com
  • 2 edits in trunk

[CMake] Do not use a --no-keep-memory linker flag in 64bit system
https://bugs.webkit.org/show_bug.cgi?id=172429

Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsCommon.cmake:

In x86_64, cmake accidentally applies --no-keep-memory since MATCHES
uses the given value as a regex. It reduces linking performance
due to the frequent disk operations in x86_64.

6:17 AM Changeset in webkit [217217] by antti@apple.com
  • 2 edits in trunk/LayoutTests

[macOS Sierra Wk1] LayoutTest/animations/animation-initial-inheritance.html is a flaky image failure.
https://bugs.webkit.org/show_bug.cgi?id=172177
<rdar://problem/32239583>

Unreviewed.

  • animations/animation-initial-inheritance.html: Try to unflake.
5:18 AM Changeset in webkit [217216] by tpopela@redhat.com
  • 14 edits
    2 deletes in trunk

Remove some of the EFL port leftovers
https://bugs.webkit.org/show_bug.cgi?id=172440

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

  • Scripts/generate-forwarding-headers.pl:

Tools:

  • BuildSlaveSupport/built-product-archive:

(archiveBuiltProduct):
(extractBuiltProduct):

  • BuildSlaveSupport/test-result-archive:

(archiveTestResults):

  • ImageDiff/PlatformEfl.cmake: Removed.
  • Scripts/run-efl-tests: Removed.
  • Scripts/webkit-build-directory:
  • Scripts/webkitpy/common/config/contributionareas.py:
  • Scripts/webkitpy/common/config/watchlist:
  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):
(_set_up_derived_options):

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(PerfTestsRunner.init):

  • Scripts/webkitpy/style/checker.py:
  • Scripts/webkitpy/style/checker_unittest.py:

(GlobalVariablesTest.test_path_rules_specifier):

  • gtk/manifest.txt.in:
  • jhbuild/jhbuild-wrapper:
5:17 AM Changeset in webkit [217215] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/Source/WebInspectorUI

[GTK] Web Inspector: Add active call frame indicator image
https://bugs.webkit.org/show_bug.cgi?id=161987
<rdar://problem/28307419>

Patch by Fujii Hironori <Fujii Hironori> on 2017-05-22
Reviewed by Carlos Garcia Campos.

Add a free icon for the Web Inspector of GTK port.

  • UserInterface/Images/gtk/ActiveCallFrame.svg: Added.
3:54 AM Changeset in webkit [217214] by yoon@igalia.com
  • 17 edits in trunk/Source

[CoordinatedGraphics] Clear UpdateAtlases for each tests
https://bugs.webkit.org/show_bug.cgi?id=172119

Reviewed by Carlos Garcia Campos.

Source/WebCore:

  • loader/EmptyClients.h:
  • page/ChromeClient.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState): Clears update atlases
while resetting states of the test runner.

Source/WebKit2:

In Coordinated Graphics, we reuses at least one update atlas to
render root compositing layer for several tests. So if one of the
test cases breaks the internal states of Cairo's states, other
followed test cases runs on same instance of WebKitTestRunner will
be effected by broken states of Cairo. Because it increases test
flaknesses, we should drop update atlases after each tests.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp: Remove a redundant

include statement for Coordinated graphics
(WebKit::WebChromeClient::resetUpdateAtlasForTesting): Added.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::resetUpdateAtlasForTesting): Added.

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::clearUpdateAtlases): Added.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::clearUpdateAtlases): Added.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/LayerTreeHost.h:
  • WebProcess/WebPage/wpe/DrawingAreaWPE.cpp:

(WebKit::DrawingAreaWPE::resetUpdateAtlasForTesting):

  • WebProcess/WebPage/wpe/DrawingAreaWPE.h:
3:19 AM Changeset in webkit [217213] by yoon@igalia.com
  • 3 edits in trunk/Source/WebCore

[CoordinatedGraphics] BitmapTexturePool does not release textures properly
https://bugs.webkit.org/show_bug.cgi?id=172428

Reviewed by Žan Doberšek.

No new tests because no behavior change.

  • platform/graphics/texmap/BitmapTexturePool.cpp:

(WebCore::BitmapTexturePool::BitmapTexturePool):
Use the RunLoopTimer instead of Timer, because BitmapTexturePool would
run on the compositing thread in Coordinated Graphics case.
(WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
We should check not only the last used time but also the refcounts of the
texture when selecting textures to remove.

  • platform/graphics/texmap/BitmapTexturePool.h:

(WebCore::BitmapTexturePool::Entry::canBeReleased): Added.

1:50 AM Changeset in webkit [217212] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.17.3

WebKitGTK+ 2.17.3

1:49 AM Changeset in webkit [217211] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.17.3 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.17.3.
1:03 AM Changeset in webkit [217210] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Do not include WPE files in GTK+ tarballs.

  • gtk/manifest.txt.in:
12:50 AM Changeset in webkit [217209] by Carlos Garcia Campos
  • 9 edits in trunk

[GTK] Add webkit_context_menu_item_new_from_gaction
https://bugs.webkit.org/show_bug.cgi?id=159631

Reviewed by Michael Catanzaro.

Source/WebKit2:

Add new API to create a WebKitContextMenuItem from a GAction and also to get the associated GAction.

  • Shared/gtk/WebContextMenuItemGtk.cpp:

(WebKit::WebContextMenuItemGtk::WebContextMenuItemGtk): Add constructor that receives a GAction.
(WebKit::isGActionChecked): Helper to check if a stateful GAction is checked or not.
(WebKit::WebContextMenuItemGtk::createActionIfNeeded): When creating a GAction from a GtkAtion, use the
GtkAction name instead of adding a new one. Do not create the GAction if we already have one.

  • Shared/gtk/WebContextMenuItemGtk.h:

(WebKit::WebContextMenuItemGtk::gAction):
(WebKit::WebContextMenuItemGtk::gActionTarget):

  • UIProcess/API/gtk/WebKitContextMenuItem.cpp:

(webkit_context_menu_item_new_from_gaction):
(webkit_context_menu_item_get_gaction):

  • UIProcess/API/gtk/WebKitContextMenuItem.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols.
  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::contextMenuItemActivatedCallback): Update the state of the internal GAction in case of toggle menu items.
(WebKit::WebContextMenuProxyGtk::append): Pass the GAction target to g_menu_item_set_action_and_target_value. Do
not connect to activate signal of actions provided by the user.

Tools:

Update context menu tests to check the new GAction API.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestContextMenu.cpp:

(testContextMenuPopulateMenu):

12:30 AM Changeset in webkit [217208] by Carlos Garcia Campos
  • 7 edits in trunk/Source/WebCore

[WPE] Use surfaceless context for sharing and offscreen context if available
https://bugs.webkit.org/show_bug.cgi?id=172268

Reviewed by Žan Doberšek.

Like GTK+ port does, WPE should use surfaceless contexts when possible, and only create a native offscreen
context as a fallback. We don't need to do anything special in WPE port, just to make it consistent with the
Wayland and X11 implementations. We should also avoid including EGL.h in headers, we added
GLContextEGLWayland.cpp and GLContextEGLX11.cpp to avoid that. PlatformDisplayWPE::EGLOffscreenTarget is quite
simple and only used by GLContextEGLWPE, so we could move it there like we do for Wayland and X11.

  • platform/graphics/GLContext.h: Remove EGL header includes.
  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createWindowContext): Use createWindowSurfaceWPE() in WPE.
(WebCore::GLContextEGL::createContext): Use createWPEContext in WPE.
(WebCore::GLContextEGL::createSharingContext): Move the WPE code below to ensure we try
createSurfacelessContext() first.

  • platform/graphics/egl/GLContextEGL.h:
  • platform/graphics/egl/GLContextEGLWPE.cpp:

(WebCore::GLContextEGL::GLContextEGL): Add constructor for WPE that receives a struct wpe_renderer_backend_egl_offscreen_target*
(WebCore::GLContextEGL::createWindowSurfaceWPE): Added implementation here because eglCreateWindowSurface needs
the platform specific EGL includes and definitions.
(WebCore::GLContextEGL::createWPEContext): Create a GLContext using WPE backend API directly here.
(WebCore::GLContextEGL::destroyWPETarget): Add null check.

  • platform/graphics/wpe/PlatformDisplayWPE.cpp: Remove EGLOffscreenTarget.
  • platform/graphics/wpe/PlatformDisplayWPE.h:
12:15 AM Changeset in webkit [217207] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

[Win][CMake] Move MSVC compiler options to a common location
https://bugs.webkit.org/show_bug.cgi?id=172230

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-05-22
Reviewed by Yusuke Suzuki.

.:

  • Source/cmake/OptionsMSVC.cmake: Added.
  • Source/cmake/OptionsWin.cmake:

Source/WebKit:

  • PlatformWin.cmake:

May 21, 2017:

11:57 PM Changeset in webkit [217206] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Add more input validation in Connection::readBytesFromSocket()
https://bugs.webkit.org/show_bug.cgi?id=171871

Reviewed by Michael Catanzaro.

Check the control message length is in the limits. Credit to Nathan Crandall for reporting this issue and
submitting an equivalent fix.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::readBytesFromSocket):

11:55 PM Changeset in webkit [217205] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed Windows test gardening, skip tests which are timing out.

  • platform/win/TestExpectations:
11:30 PM Changeset in webkit [217204] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] Update expectations for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=172437

Unreviewed test gardening, update test expectations for failing tests.

  • platform/win/TestExpectations:
11:27 PM Changeset in webkit [217203] by mcatanzaro@igalia.com
  • 6 edits in trunk

[GTK] Remove Firefox user agent quirk for Google domains
https://bugs.webkit.org/show_bug.cgi?id=171941

Reviewed by Carlos Garcia Campos.

Source/WebCore:

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::urlRequiresFirefoxBrowser): Deleted.
(WebCore::UserAgentQuirks::firefoxRevisionString): Deleted.

  • platform/UserAgentQuirks.h:
  • platform/gtk/UserAgentGtk.cpp:

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk): Deleted.

11:24 PM Changeset in webkit [217202] by Yusuke Suzuki
  • 27 edits
    1 add in trunk

[FTL] Support GetByVal with ArrayStorage and SlowPutArrayStorage
https://bugs.webkit.org/show_bug.cgi?id=172216

Reviewed by Saam Barati.

JSTests:

  • stress/array-storage-get-by-val.js: Added.

(shouldBe):
(testOutOfBound):
(testInBound):
(testSlowPutOutOfBound):
(testSlowPutInBound):

Source/JavaScriptCore:

This patch adds GetByVal support for ArrayStorage and SlowPutArrayStorage.
To lower CheckInBounds in FTL, we add a new GetVectorLength op. It only accepts
ArrayStorage and SlowPutArrayStorage, then it produces vector length.
CheckInBounds uses this vector length to perform bound checking for ArrayStorage
and SlowPutArrayStorage.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::permitsBoundsCheckLowering):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasArrayMode):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSSALoweringPhase.cpp:

(JSC::DFG::SSALoweringPhase::lowerBoundsCheck):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLAbstractHeapRepository.h:

(JSC::FTL::AbstractHeapRepository::forIndexingType):
(JSC::FTL::AbstractHeapRepository::forArrayType):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetVectorLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitArrayStoragePutByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitArrayStorageLoad):
(JSC::JIT::emitArrayStoragePutByVal):

11:00 PM Changeset in webkit [217201] by Yusuke Suzuki
  • 2 edits in trunk/JSTests

Unreviewed, fix commented out tests
https://bugs.webkit.org/show_bug.cgi?id=172225

  • stress/get-by-val-string.js:

(object.43):
(Hello):
(Hello.prototype.get 42):
(Hello.prototype.43):
(Derived):
(shouldBe):
(throw.new.Error): Deleted.

10:47 PM Changeset in webkit [217200] by sbarati@apple.com
  • 6 edits
    1 add in trunk

We incorrectly throw a syntax error when declaring a top level for-loop iteration variable the same as a parameter
https://bugs.webkit.org/show_bug.cgi?id=171041
<rdar://problem/32082516>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/lexical-scoping-for-loop.js: Added.

(assert):
(test1):
(test2):
(test3):
(test4):
(test5):
(test6):
(let.test7):
(let.test8):
(let.test9):
(let.test10):
(let.test11):
(let.test12):

Source/JavaScriptCore:

We were treating a for-loop variable declaration potentially as a top
level statement, e.g, in a program like this:
`
function foo() {

for (let variable of expr) { }

}
`
But we should not be. This had the consequence of making this type of program
throw a syntax error:
`
function foo(arg) {

for (let arg of expr) { }

}
`
even though it should not. The fix is simple, we just need to increment the
statement depth before parsing anything inside the for loop.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseForStatement):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:
10:33 PM Changeset in webkit [217199] by Yusuke Suzuki
  • 4 edits
    1 add in trunk

[JSC] Make get_by_val & string "499" to number 499
https://bugs.webkit.org/show_bug.cgi?id=172225

Reviewed by Saam Barati.

JSTests:

  • stress/get-by-val-string.js: Added.

(shouldBe):
(shouldThrow):
(object.43):
(Hello):
(Hello.prototype.get 42):
(Hello.prototype.43):
(Derived):

Source/JavaScriptCore:

Property subscript will be converted by ToString. So JS code is not aware of
the original type of the subscript value. But our get_by_val can leverage
information if the given subscript is number. Thus, passing number instead of
string can improve the performance of get_by_val in all the tiers.

In this patch, we add BytecodeGenerator::emitNodeForProperty. It attempts to
convert the given value to Int32 index constant if the given value is a string
that can be converted to Int32.

This patch improves SixSpeed map-string.es5 by 9.8x. This accessing form can
appear in some code like accessing the result of JSON.

map-string.es5 1640.6738+-110.9182 167.4121+-23.8328 definitely 9.8002x faster

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitNodeForProperty):
(JSC::BytecodeGenerator::emitNodeForLeftHandSideForProperty):

  • bytecompiler/NodesCodegen.cpp:

(JSC::TaggedTemplateNode::emitBytecode):
(JSC::BracketAccessorNode::emitBytecode):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putByValDirect):
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::PostfixNode::emitBracket):
(JSC::PrefixNode::emitBracket):
(JSC::AssignBracketNode::emitBytecode):
(JSC::ReadModifyBracketNode::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::ObjectPatternNode::bindValue):
(JSC::AssignmentElementNode::bindValue):

2:29 PM Changeset in webkit [217198] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

We overwrite the callee save space on the stack when throwing stack overflow from wasm
https://bugs.webkit.org/show_bug.cgi?id=172316

Reviewed by Mark Lam.

When throwing a stack overflow exception, the overflow
thunk would do the following:

move fp, sp
populate argument registers
call C code

However, the C function is allowed to clobber our spilled
callee saves that live below fp. The reason I did this move is that
when we jump to this code, we've proven that sp is out of bounds on
the stack. So we're not allowed to just use its value or keep growing
the stack from that point. However, this patch revises this approach
to be the same in spirit, but actually correct. We conservatively assume
the B3 function we're coming from could have saved all callee saves.
So we emit code like this now:

add -maxNumCalleeSaveSpace, fp, sp
populate argument registers
call C code

This ensures our callee saves will not be overwritten. Note
that fp is still in a valid stack range here, since the thing
calling the wasm code did a stack check. Also note that maxNumCalleeSaveSpace
is less than our redzone size, so it's safe to decrement sp by
this amount.

The previously added wasm stack overflow test is an instance crash
without this change on arm64. It also appears that this test crashed
on some other x86 devices.

  • wasm/WasmThunks.cpp:

(JSC::Wasm::throwStackOverflowFromWasmThunkGenerator):

8:08 AM Changeset in webkit [217197] by antti@apple.com
  • 6 edits
    2 adds in trunk

matchMedia('print').addListener() fires in WK1 but never in WK2 when printing (breaks printing Google maps, QuickLooks)
https://bugs.webkit.org/show_bug.cgi?id=172361
<rdar://problem/28777408>

Reviewed by Sam Weinig.

Source/WebCore:

Test: fast/media/matchMedia-print.html

  • page/FrameView.cpp:

(WebCore::FrameView::layout):

Evaluate matchMedia queries unconditionally. No idea why it wasn't like that.

  • testing/Internals.cpp:

(WebCore::Internals::setPrinting):

Add testing support. The existing ways to do printing testing were unable to hit this bug as
they had too much additional gunk.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/media/matchMedia-print-expected.txt: Added.
  • fast/media/matchMedia-print.html: Added.
7:40 AM Changeset in webkit [217196] by zalan@apple.com
  • 2 edits in trunk/Source/WebCore

Remove redundant FrameView ref in FrameView::performPostLayoutTasks
https://bugs.webkit.org/show_bug.cgi?id=172422

Reviewed by Antti Koivisto.

This was added to protect FrameView from getting destroyed in updateEmbeddedObjects(), but r169475 changed
the embedded object update to be asynchronous.

  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks):

May 20, 2017:

11:01 PM Changeset in webkit [217195] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Correct line endings in a couple files.

  • fast/canvas/script-tests/canvas-gradient-without-path.js:
  • fast/dom/Geolocation/page-reload-cancel-permission-requests.html:
7:10 PM Changeset in webkit [217194] by Chris Dumez
  • 10 edits
    3 deletes in trunk

Drop [NoInterfaceObject] from RTCDTMFSender and RTCStatsReport
https://bugs.webkit.org/show_bug.cgi?id=172418

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

Add CommonIdentifiers that are now needed.

  • runtime/CommonIdentifiers.h:

Source/WebCore:

Drop [NoInterfaceObject] from RTCDTMFSender and RTCStatsReport to match the specification:

Firefox exposes both RTCDTMFSender and RTCStatsReport. Chrome exposes RTCStatsReport only.
RTCDTMFSender seems to be currently disabled at build time currently so the change to
its interface does not currently impact Web-exposed behavior, only the change to the
RTCStatsReport interface currently does.

No new tests, rebaselined existing test.

  • Modules/mediastream/RTCDTMFSender.idl:
  • Modules/mediastream/RTCStatsReport.idl:

Drop [NoInterfaceObject].

  • Modules/mediastream/RTCIceCandidateEvent.cpp: Removed.
  • Modules/mediastream/RTCIceCandidateEvent.h: Removed.
  • Modules/mediastream/RTCIceCandidateEvent.idl: Removed.

Drop class and IDL that are no longer used. They were not even part of any project files.
RTCIceCandidateEvent has been renamed to RTCPeerConnectionIceEvent, which we support.

LayoutTests:

Rebaseline existing test to reflect change.

  • platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
3:40 PM Changeset in webkit [217193] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, add scope.release() to propertyIsEnumerable functions.
https://bugs.webkit.org/show_bug.cgi?id=172411

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncPropertyIsEnumerable):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncPropertyIsEnumerable):

1:07 PM Changeset in webkit [217192] by Yusuke Suzuki
  • 16 edits
    2 deletes in trunk/Source/JavaScriptCore

[JSC] Drop MapBase
https://bugs.webkit.org/show_bug.cgi?id=172417

Reviewed by Sam Weinig.

MapBase is a purely additional indirection. JSMap and JSSet can directly inherit HashMapImpl.
Thus MapBase is unnecessary. This patch drops it.
It is good because we can eliminate one indirection when accessing to map implementation.
Moreover, we can drop one unnecessary allocation per Map and Set.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetMapBucket):

  • runtime/HashMapImpl.cpp:

(JSC::HashMapImpl<HashMapBucket>::estimatedSize):
(JSC::getHashMapImplKeyClassInfo): Deleted.
(JSC::getHashMapImplKeyValueClassInfo): Deleted.

  • runtime/HashMapImpl.h:

(JSC::HashMapImpl::finishCreation):
(JSC::HashMapImpl::get):
(JSC::HashMapImpl::info): Deleted.
(JSC::HashMapImpl::createStructure): Deleted.
(JSC::HashMapImpl::create): Deleted.

  • runtime/JSMap.h:

(JSC::JSMap::set):
(JSC::JSMap::get): Deleted.

  • runtime/JSMapIterator.cpp:

(JSC::JSMapIterator::finishCreation):

  • runtime/JSSet.h:

(JSC::JSSet::add): Deleted.

  • runtime/JSSetIterator.cpp:

(JSC::JSSetIterator::finishCreation):

  • runtime/MapBase.cpp: Removed.
  • runtime/MapBase.h: Removed.
  • runtime/MapPrototype.cpp:

(JSC::mapProtoFuncSize):

  • runtime/SetConstructor.cpp:

(JSC::constructSet):

  • runtime/SetPrototype.cpp:

(JSC::setProtoFuncSize):

  • runtime/VM.cpp:

(JSC::VM::VM):

1:02 PM Changeset in webkit [217191] by Yusuke Suzuki
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Speedup Object.assign for slow case by using propertyIsEnumerable
https://bugs.webkit.org/show_bug.cgi?id=172411

Reviewed by Sam Weinig.

We use @Reflect.@getOwnPropertyDescriptor() to check

  1. the descriptor exists,
  2. and the descriptor.enumrable is true

But Object::propertyIsEnumerable does the completely same thing without
allocating a new object for property descriptor.

In this patch, we add a new private function @propertyIsEnumerable, and
use it in Object.assign implementation. It does not allocate unnecessary
objects. It is good for GC-pressure and performance.

This patch improves SixSpeed object-assign.es6 by 1.7x. While this patch
does not introduce a fast path for objects that do not have accessors,
and it could speed up things further, this patch can speed up the common
slow path cases that is the current implementation of Object.assign.

object-assign.es6 1103.2487+-21.5602 621.8478+-34.9875 definitely 1.7741x faster

  • builtins/BuiltinNames.h:
  • builtins/ObjectConstructor.js:

(globalPrivate.enumerableOwnProperties):
(assign):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncPropertyIsEnumerable):

  • runtime/JSGlobalObjectFunctions.h:
12:56 PM Changeset in webkit [217190] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] gtkdoc-fixxref needs --module argument to work
https://bugs.webkit.org/show_bug.cgi?id=172415

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2017-05-20
Reviewed by Michael Catanzaro.

  • gtk/gtkdoc.py:

(GTKDoc._run_gtkdoc_fixxref):

12:25 PM Changeset in webkit [217189] by mcatanzaro@igalia.com
  • 2 edits in trunk/Source/WebKit2

-Wreturn-type warning triggered by WKNotification.cpp:77
https://bugs.webkit.org/show_bug.cgi?id=172414

Reviewed by Sam Weinig.

  • UIProcess/API/C/WKNotification.cpp:

(WKNotificationCopyDir):

12:14 PM Changeset in webkit [217188] by Chris Dumez
  • 7 edits in trunk

Value for iterator property is wrong for maplike interfaces
https://bugs.webkit.org/show_bug.cgi?id=172410

Reviewed by Sam Weinig.

Source/WebCore:

Value for iterator property was wrong for maplike interfaces. The iterator property is
supposed to have the same value as the 'entries' property but we were using the value
of the 'values' property.

Specification:

This impacts the iterator of the RTCStatsReport interface.

No new tests, updated existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSMapLike.cpp:

(WebCore::JSMapLikePrototype::finishCreation):

  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:

(WebCore::JSReadOnlyMapLikePrototype::finishCreation):

LayoutTests:

Extend test coverage to test the RTCStatsReport iterator.

  • webrtc/video-stats.html:
11:58 AM Changeset in webkit [217187] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop superfluous iterator property setting in addValueIterableMethods()
https://bugs.webkit.org/show_bug.cgi?id=172409

Reviewed by Youenn Fablet.

Drop superfluous iterator setting in addValueIterableMethods(). The bindings already take care of
adding the iterator property before calling addValueIterableMethods().

No new tests, no Web-facing behavior change.

  • bindings/js/JSDOMIterator.cpp:

(WebCore::addValueIterableMethods):

11:15 AM Changeset in webkit [217186] by ap@apple.com
  • 2 edits in trunk/Tools

make-new-script-test should create tests that use js-test.js, not js-test-pre.js
https://bugs.webkit.org/show_bug.cgi?id=172416

Reviewed by Daniel Bates.

  • Scripts/make-new-script-test:
9:55 AM Changeset in webkit [217185] by jer.noble@apple.com
  • 19 edits
    6 adds in trunk

[MSE][Mac] Support painting MSE video-element to canvas
https://bugs.webkit.org/show_bug.cgi?id=125157
<rdar://problem/23062016>

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-paint-to-canvas.html

In order to have access to decoded video data for painting, decode the encoded samples manually
instead of adding them to the AVSampleBufferDisplayLayer. To facilitate doing so, add a new
utility class WebCoreDecompressionSession, which can decode samples and store them.

For the purposes of this patch, to avoid double-decoding of video data and to avoid severe complication
of our sample delivery pipeline, we will only support painting of decoded video samples when the video is
not displayed in the DOM.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::seekToTime): Always send waitForSeekCompleted() to give private a chance to delay seek completion.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateReenqueSamples): Added.

  • Modules/mediasource/SourceBuffer.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/cf/CoreMediaSoftLink.cpp: Added new soft link macros.
  • platform/cf/CoreMediaSoftLink.h: Ditto.
  • platform/cocoa/CoreVideoSoftLink.cpp: Ditto.
  • platform/cocoa/CoreVideoSoftLink.h: Ditto.
  • platform/graphics/SourceBufferPrivateClient.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::sampleBufferDisplayLayer): Simple accessor.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::decompressionSession): Ditto.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Update whether we should be displaying in a layer or decompression session..
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVisible): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitForSeekCompleted): m_seeking is now an enum.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seeking): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted): Ditto. If waiting for a video frame, delay completing seek.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::nativeImageForCurrentTime): Call updateLastImage() and return result.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastImage): Fetch the image for the current time.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paint): Pass to paintCurrentFrameInCanvas.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext): Get a native image, and render it.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged): Create or destroy a layer or decompression session as appropriate.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer): Creates a layer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer): Destroys a layer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureDecompressionSession): Creates a decompression session.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyDecompressionSession): Destroys a decompression session.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableVideoFrame): If seek completion delayed, complete now. Ditto for ready state change.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): If waiting for a video frame, delay ready state change.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Deleted.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer): Deleted.

  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

(WebCore::MediaSourcePrivateAVFObjC::hasVideo): Promote to a class function.
(WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideo): Return whether any of the active source buffers have video and are selected.
(WebCore::MediaSourcePrivateAVFObjC::hasSelectedVideoChanged): Call setSourceBufferWithSelectedVideo().
(WebCore::MediaSourcePrivateAVFObjC::setVideoLayer): Set (or clear) the layer on the selected buffer.
(WebCore::MediaSourcePrivateAVFObjC::setDecompressionSession): Ditto for decompression session.
(WebCore::MediaSourcePrivateAVFObjC::setSourceBufferWithSelectedVideo): Remove the layer and decompression session from the unselected

buffer and add the decompression session or layer to the newly selected buffer.

(WebCore::MediaSourcePrivateAVFObjCHasVideo): Deleted.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): Clear the videoLayer and decompressionSession.
(WebCore::SourceBufferPrivateAVFObjC::hasSelectedVideo): Return whether the buffer has a selected video track.
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): The media player now manages the video layer and decompression session lifetimes.
(WebCore::SourceBufferPrivateAVFObjC::flush): Flush the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Enqueue to the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): As the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): Tell the decompression session to stop requesting data, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Request media data from the decompression session, if it exists.
(WebCore::SourceBufferPrivateAVFObjC::setVideoLayer): Added.
(WebCore::SourceBufferPrivateAVFObjC::setDecompressionSession): Added.

  • platform/graphics/cocoa/WebCoreDecompressionSession.h: Added.

(WebCore::WebCoreDecompressionSession::create):
(WebCore::WebCoreDecompressionSession::isInvalidated):
(WebCore::WebCoreDecompressionSession::createWeakPtr):

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm: Added.

(WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession): Register for media data requests.
(WebCore::WebCoreDecompressionSession::invalidate): Unregister for same.
(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaDataCallback): Pass to maybeBecomeReadyForMoreMediaData.
(WebCore::WebCoreDecompressionSession::maybeBecomeReadyForMoreMediaData): Check in-flight decodes, and decoded frame counts.
(WebCore::WebCoreDecompressionSession::enqueueSample): Pass the sample to be decoded on a background queue.
(WebCore::WebCoreDecompressionSession::decodeSample): Decode the sample.
(WebCore::WebCoreDecompressionSession::decompressionOutputCallback): Call handleDecompressionOutput.
(WebCore::WebCoreDecompressionSession::handleDecompressionOutput): Pass decoded sample to be enqueued on the main thread.
(WebCore::WebCoreDecompressionSession::getFirstVideoFrame):
(WebCore::WebCoreDecompressionSession::enqueueDecodedSample): Enqueue the frame (if it's a displayed frame).
(WebCore::WebCoreDecompressionSession::isReadyForMoreMediaData): Return whether we've hit our high water sample count.
(WebCore::WebCoreDecompressionSession::requestMediaDataWhenReady):
(WebCore::WebCoreDecompressionSession::stopRequestingMediaData): Unset the same.
(WebCore::WebCoreDecompressionSession::notifyWhenHasAvailableVideoFrame): Set a callback to notify when a decoded frame has been enqueued.
(WebCore::WebCoreDecompressionSession::imageForTime): Successively dequeue images until reaching one at or beyond the requested time.
(WebCore::WebCoreDecompressionSession::flush): Synchronously empty the producer and consumer queues.
(WebCore::WebCoreDecompressionSession::getDecodeTime): Utility method.
(WebCore::WebCoreDecompressionSession::getPresentationTime): Ditto.
(WebCore::WebCoreDecompressionSession::getDuration): Ditto.
(WebCore::WebCoreDecompressionSession::compareBuffers): Ditto.

  • platform/cocoa/VideoToolboxSoftLink.cpp: Added.
  • platform/cocoa/VideoToolboxSoftLink.h: Added.

LayoutTests:

  • media/media-source/content/test-fragmented.mp4: Add a 'edts' atom to move the presentation time for the

first sample to 0:00.

  • media/media-source/content/test-fragmented-manifest.json:
  • media/media-source/media-source-paint-to-canvas-expected.txt: Added.
  • media/media-source/media-source-paint-to-canvas.html: Added.
Note: See TracTimeline for information about the timeline view.