Timeline



Dec 27, 2017:

2:55 PM Changeset in webkit [226303] by Dewei Zhu
  • 2 edits in trunk/Websites/perf.webkit.org

Test freshness page should use build time instead of commit time to determine the freshness of the data point.
https://bugs.webkit.org/show_bug.cgi?id=181156

Reviewed by Alexey Proskuryakov.

Build time is a better data point freshness indicator. Test freshness page is designed to highlight test failures.
Using commit time will result in including the compiling and test running time which does not quite match the
definition of data point fresshness.

  • public/v3/pages/test-freshness-page.js:

(TestFreshnessPage.prototype._fetchTestResults): Use build time instead of commit time.

9:41 AM Changeset in webkit [226302] by clopez@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

Build fix after r226299 (3)
https://bugs.webkit.org/show_bug.cgi?id=181160

Unreviewed build fix.

  • API/tests/TypedArrayCTest.cpp: fix typo in header name.
9:38 AM Changeset in webkit [226301] by clopez@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

Build fix after r226299 (2)
https://bugs.webkit.org/show_bug.cgi?id=181160

Unreviewed build fix.

  • API/tests/TypedArrayCTest.cpp: Add missing header include.
9:29 AM Changeset in webkit [226300] by clopez@igalia.com
  • 4 edits in trunk/Source

Build fix after r226299
https://bugs.webkit.org/show_bug.cgi?id=181160

Unreviewed build fix.

Source/JavaScriptCore:

  • API/tests/TypedArrayCTest.cpp:

(assertEqualsAsNumber): Disambiguate usage of isnan.

Source/WebCore:

No new tests, its a build fix.

  • platform/graphics/FontSelectionAlgorithm.h: Add missing include.
8:46 AM Changeset in webkit [226299] by clopez@igalia.com
  • 10 edits in trunk/Source

REGRESSION(r225769): Build error with constexpr std::max std::min in libdstdc++4
https://bugs.webkit.org/show_bug.cgi?id=181160

Reviewed by Myles C. Maxfield.

Source/JavaScriptCore:

Disambiguate usage of min and max (Use the version from stdlib).

  • runtime/JSArray.cpp:

(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::setLengthWithArrayStorage):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::fillArgList):
(JSC::JSArray::copyToArguments):

Source/WebCore:

No new tests, its a build fix.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::currentMediaTime const): Disambiguate usage of max (Use the version from stdlib).

  • platform/graphics/FontSelectionAlgorithm.h:

(WebCore::FontSelectionValue::clampFloat): Use WTF::min and WTF::max for constexpr result.

  • platform/graphics/win/UniscribeController.cpp:

(WebCore::UniscribeController::shapeAndPlaceItem): Disambiguate usage of min and max (Use the version from stdlib).

Source/WebKitLegacy/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::handlePost): Disambiguate usage of min (Use the version from stdlib).

Source/WTF:

In libstdc++-4 std::max and std::min are not annotated with constexpr.
This patch adds a WTF::min and WTF::max for using where a constexpr result is expected.
Related: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60271

  • wtf/StdLibExtras.h:

(WTF::min):
(WTF::max):

2:52 AM Changeset in webkit [226298] by zandobersek@gmail.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r225913): about 30 JSC test failures on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=181162

Reviewed by Michael Catanzaro.

Fast case in DFG::SpeculativeJIT::compileArraySlice() was enabled in
r225913 on all but 32-bit x86 platform. Other 32-bit platforms have the
same lack of GP registers, so the conditional is changed here to only
enable this optimization explicitly on ARM64 and x86-64.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArraySlice):

Dec 26, 2017:

6:12 PM Changeset in webkit [226297] by Matt Lewis
  • 3 edits in trunk/LayoutTests

Marked imported/w3c/web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html as failing on macOS and iOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=181167

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
5:52 PM Changeset in webkit [226296] by Matt Lewis
  • 3 edits in trunk/LayoutTests

Marked imported/w3c/web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https.html as flaky on macOS and iOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=181166

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
4:33 PM Changeset in webkit [226295] by Yusuke Suzuki
  • 13 edits in trunk/Source

[JSC] Remove std::chrono completely
https://bugs.webkit.org/show_bug.cgi?id=181165

Reviewed by Konstantin Tokarev.

Source/JavaScriptCore:

This patch removes std::chrono use completely from JSC.

  • API/JSContextRef.cpp:

(JSContextGroupSetExecutionTimeLimit):

  • API/tests/ExecutionTimeLimitTest.cpp:

(currentCPUTimeAsJSFunctionCallback):
(testExecutionTimeLimit):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):
(JSC::timeToLive):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::timeSinceCreation):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::SamplingProfiler):
(JSC::SamplingProfiler::timerLoop):
(JSC::SamplingProfiler::takeSample):
(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):

  • runtime/SamplingProfiler.h:

(JSC::SamplingProfiler::setTimingInterval):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/Watchdog.cpp:

(JSC::Watchdog::Watchdog):
(JSC::Watchdog::setTimeLimit):
(JSC::Watchdog::shouldTerminate):
(JSC::Watchdog::startTimer):
(JSC::currentWallClockTime): Deleted.

  • runtime/Watchdog.h:

Source/WTF:

WTF::currentCPUTime now returns WTF::Seconds.
We also add the implementaiton for Linux and FreeBSD.

  • wtf/CurrentTime.cpp:

(WTF::currentCPUTime):

  • wtf/CurrentTime.h:
10:54 AM Changeset in webkit [226294] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r226269): 60 JSC test failures on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=181163

Patch by Zan Dobersek <zdobersek@igalia.com> on 2017-12-26
Reviewed by Yusuke Suzuki.

In r226269, DFG::SpeculativeJIT::compile() changed behavior for the
GetDirectPname operation on non-x86 platforms, switching to using
GPRFlushedCallResult registers for the payload and tag pair of the
return value (through the JSValueRegsFlushedCallResult struct). This
tripped about 60 test cases on ARMv7.

As before this change, GPRTemporary registers should be used, but this
can now be done through a JSValueRegsTemporary object.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

10:21 AM Changeset in webkit [226293] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK test gardening

  • platform/gtk/TestExpectations:
8:24 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)

Dec 25, 2017:

3:35 PM Changeset in webkit [226292] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

[macOS] On Retina displays, icon used as drag image for large image is scaled down
https://bugs.webkit.org/show_bug.cgi?id=181154

Reviewed by Wenson Hsieh.

  • page/DragController.cpp:

(WebCore::DragController::doImageDrag): When using an icon for the drag image, also adjust

its size for the device scale factor, like we do in the not-icon case.

Dec 24, 2017:

1:34 PM Changeset in webkit [226291] by ddkilzer@apple.com
  • 12 edits in trunk/Source

WebKit fixes to enable -Wstrict-prototypes for Safari
<https://webkit.org/b/181146>

Reviewed by Dan Bernstein.

Source/WebCore:

  • platform/ios/wak/WebCoreThread.h:

(WebThreadLockFromAnyThread):
(WebThreadLockFromAnyThreadNoLog):
(WebThreadUnlockFromAnyThread):
(WebThreadUnlockGuardForMail):
(WebThreadSetShouldYield):

  • Add 'void' to C function declarations.
  • platform/ios/wak/WebCoreThread.mm:

(WebThreadLockFromAnyThread):
(WebThreadLockFromAnyThreadNoLog):
(WebThreadUnlockFromAnyThread):
(WebThreadUnlockGuardForMail):

  • Add 'void' to C function implementations.
  • platform/ios/wak/WebCoreThreadRun.cpp:

(class WebThreadBlock): Add 'void' to block declarations.
Rename 'task' to 'block' for consistency.
(_WebThreadRun): Add 'void' to block declaration. Make
argument name match declaration by changing 'task' to 'block'.
(WebThreadRun): Ditto.

  • platform/ios/wak/WebCoreThreadRun.h:

(WebThreadRun): Add 'void' to block declaration.

Source/WebKit:

  • Shared/API/c/WKGeometry.cpp:

(WKSizeGetTypeID):
(WKPointGetTypeID):
(WKRectGetTypeID):

  • Shared/API/c/WKGeometry.h:

(WKSizeGetTypeID):
(WKPointGetTypeID):
(WKRectGetTypeID):

  • Shared/API/c/WKImage.cpp:

(WKImageGetTypeID):

  • Shared/API/c/WKImage.h:

(WKImageGetTypeID):

  • Add 'void' to C function declarations and implementations as necessary.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView applyAutocorrection:toString:withCompletionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • Add 'void' to block declarations as necessary.
11:07 AM Changeset in webkit [226290] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r224313): Fix build warning when compiling WebKit.xcassets
<https://webkit.org/b/181148>

Reviewed by Dan Bernstein.

Fixes the following build warning:

Opensource/Source/WebKit/WebKit.xcassets: warning: Failed to read file attributes for "Opensource/Source/WebKit/WebKit.xcassets"

Failure Reason: No such file or directory

  • WebKit.xcodeproj/project.pbxproj: Fix relative path with

case-insensitive filesystem and repository name assumptions.

5:57 AM Changeset in webkit [226289] by graouts@webkit.org
  • 73 edits
    13 copies
    1 add
    1 delete in trunk

[Web Animations] Implement Element.animate()
https://bugs.webkit.org/show_bug.cgi?id=180402
<rdar://problem/35851353>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Rebaselining a few tests using Element.animate(). They still fail, but no longer on
the Element.animate() calls.

  • web-platform-tests/css-timing-1/cubic-bezier-timing-functions-output-expected.txt:
  • web-platform-tests/css-timing-1/frames-timing-functions-output-expected.txt:
  • web-platform-tests/css-timing-1/step-timing-functions-output-expected.txt:

Source/WebCore:

Now that we have added support for play() (webkit.org/b/178932) on Animation and parsing of multiple keyframes
(webkit.org/b/179708), we can add support Element.animate(). To support this simple task, we must add a series
of new IDL interfaces to support option parameters for Element.animate() (KeyframeAnimationOptions),
AnimationEffect (AnimationEffectTimingProperties), KeyframeEffect (KeyframeEffectOptions) and supporting
types CompositeOperation, FillMode, IterationCompositeOperation and PlaybackDirection. While we do not support
most parameters of those types, we at least define them for future support.

To support the most used form of the Element.animate() constructor across the WPT tests, we add support for
specifying the duration of an animation when constructing both a KeyframeEffect and calling Element.animate(),
either via a property on an options dictionary or as a double value.

The implementation of Element.animate() itself is relatively straightforward, we just need to create a supporting
KeyframeEffect based on the options provided, then an Animation with that effect set on it, and finally call play().

We also fix one crash that came up in WPT tests where we would try to access the DOMWindow when none was available
in http/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context.html.

  • CMakeLists.txt: Add new IDL files.
  • DerivedSources.make: Add new IDL files.
  • Sources.txt: Add new generated JS bindings.
  • WebCore.xcodeproj/project.pbxproj: Add new IDL, header and C++ files.
  • animation/Animatable.idl: Expose the animate() method.
  • animation/AnimationEffectTiming.cpp:

(WebCore::AnimationEffectTiming::setBindingsDuration): Make the duration property spec-compliant and expect the right
kind of type (unrestricted double or DOMString).

  • animation/AnimationEffectTiming.h:
  • animation/AnimationEffectTiming.idl:
  • animation/AnimationEffectTimingProperties.h: Added.
  • animation/AnimationEffectTimingProperties.idl: Added.
  • animation/CompositeOperation.h: Added.
  • animation/CompositeOperation.idl: Added.
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::currentTime): Check that there is DOMWindow before proceeding to querying the current time
through it, fixes a newly-apparent crash.

  • animation/FillMode.h: Added.
  • animation/FillMode.idl: Added.
  • animation/IterationCompositeOperation.h: Added.
  • animation/IterationCompositeOperation.idl: Added.
  • animation/KeyframeAnimationOptions.h: Added.
  • animation/KeyframeAnimationOptions.idl: Added.
  • animation/KeyframeEffect.cpp: Update types that are no longer defined under KeyframeEffect.

(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::create): Add support for duration provided either directly as a double or through KeyframeEffectOptions.

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • animation/KeyframeEffectOptions.h: Added.
  • animation/KeyframeEffectOptions.idl: Added.
  • animation/PlaybackDirection.h: Added.
  • animation/PlaybackDirection.idl: Added.
  • dom/Element.cpp:

(WebCore::Element::animate): Implement Element.animate().

  • dom/Element.h:

LayoutTests:

Turning on Element.animate() means that a ton of WPT tests that would immediately fail when Element.animate()
was used now progressed to either PASS, FAIL or TIMEOUT. We update the output to match the updated behavior
and TestExpectations for some cases of flaky outputs due to incomplete implementations that had not surfaced
until now.

We're also removing a Blink test that uses Web Animations to animate a bogus "rotate" property.

  • TestExpectations:
  • http/wpt/web-animations/animation-model/animation-types/discrete-animation-expected.txt:
  • http/wpt/web-animations/animation-model/combining-effects/effect-composition-expected.txt:
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-context-expected.txt:
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-overlapping-keyframes-expected.txt:
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance-expected.txt:
  • http/wpt/web-animations/animation-model/keyframe-effects/effect-value-visibility-expected.txt:
  • http/wpt/web-animations/interfaces/Animatable/animate-expected.txt:
  • http/wpt/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt:
  • http/wpt/web-animations/interfaces/Animatable/getAnimations-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/cancel-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/effect-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/finish-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/finished-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/id-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/oncancel-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/onfinish-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/pause-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/play-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/playState-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/playbackRate-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/ready-expected.txt:
  • http/wpt/web-animations/interfaces/Animation/startTime-expected.txt:
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/delay-expected.txt:
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/direction-expected.txt:
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/duration-expected.txt:
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/easing-expected.txt:
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/endDelay-expected.txt:
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/fill-expected.txt:
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/getAnimations-expected.txt:
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/getComputedStyle-expected.txt:
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/iterationStart-expected.txt:
  • http/wpt/web-animations/interfaces/AnimationEffectTiming/iterations-expected.txt:
  • http/wpt/web-animations/interfaces/AnimationTimeline/document-timeline-expected.txt:
  • http/wpt/web-animations/interfaces/Document/getAnimations-expected.txt:
  • http/wpt/web-animations/interfaces/KeyframeEffect/composite-expected.txt:
  • http/wpt/web-animations/interfaces/KeyframeEffect/iterationComposite-expected.txt:
  • http/wpt/web-animations/interfaces/KeyframeEffect/setTarget-expected.txt:
  • http/wpt/web-animations/timing-model/animation-effects/active-time-expected.txt:
  • http/wpt/web-animations/timing-model/animation-effects/current-iteration-expected.txt:
  • http/wpt/web-animations/timing-model/animation-effects/local-time-expected.txt:
  • http/wpt/web-animations/timing-model/animation-effects/phases-and-states-expected.txt:
  • http/wpt/web-animations/timing-model/animation-effects/simple-iteration-progress-expected.txt:
  • http/wpt/web-animations/timing-model/animations/canceling-an-animation-expected.txt:
  • http/wpt/web-animations/timing-model/animations/finishing-an-animation-expected.txt:
  • http/wpt/web-animations/timing-model/animations/pausing-an-animation-expected.txt:
  • http/wpt/web-animations/timing-model/animations/playing-an-animation-expected.txt:
  • http/wpt/web-animations/timing-model/animations/reversing-an-animation-expected.txt:
  • http/wpt/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt:
  • http/wpt/web-animations/timing-model/animations/set-the-target-effect-of-an-animation-expected.txt:
  • http/wpt/web-animations/timing-model/animations/set-the-timeline-of-an-animation-expected.txt:
  • http/wpt/web-animations/timing-model/animations/updating-the-finished-state-expected.txt:
  • http/wpt/web-animations/timing-model/time-transformations/transformed-progress-expected.txt:
  • imported/blink/virtual/threaded/animations/compositor-rotate-zero-degrees-expected.html: Removed.
  • imported/blink/virtual/threaded/animations/compositor-rotate-zero-degrees.html: Removed.

Dec 23, 2017:

7:59 PM Changeset in webkit [226288] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK layout test gardening

  • platform/gtk/TestExpectations:
8:05 AM Changeset in webkit [226287] by commit-queue@webkit.org
  • 12 edits in trunk

Add comments and improve code styles for RenderMathMLUnderOver::stretchHorizontalOperatorsAndLayoutChildren() and related functions
https://bugs.webkit.org/show_bug.cgi?id=180923

Patch by Minsheng Liu <lambda@liu.ms> on 2017-12-23
Reviewed by Frédéric Wang.

Source/WebCore:

The patch improves the code for RenderMathMLUnderOver::stretchHorizontalOperatorsAndLayoutChildren()
and related function, incorporating the following suggestions from bug 179682:

  • Remove several lines of trailing spaces.
  • Change several pointers to references.
  • Rewrite horizontalStretchyOperator() (formerly toHorizontalStretchyOperator()) to make it more conforming to WebKit's coding style.
  • Make unembellishedOperator() a const method.
  • Add comments for stretchHorizontalOperatorsAndLayoutChildren().
  • Eliminate an unnecessary call to fixLayoutAfterStretch() in stretchHorizontalOperatorsAndLayoutChildren().

Add one more case for the test "mathml/opentype/munderover-stretch-width.html"
to handle the corner case where all components of <munderover>/<munder>/<mover> are stretchy.

Since there is no behavior change, no new test is required.

  • rendering/mathml/RenderMathMLBlock.h:

(WebCore::RenderMathMLBlock::unembellishedOperator const):
(WebCore::RenderMathMLBlock::unembellishedOperator): Deleted.

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::unembellishedOperator const):
(WebCore::RenderMathMLFraction::unembellishedOperator): Deleted.

  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::resetStretchSize):

  • rendering/mathml/RenderMathMLOperator.h:
  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::unembellishedOperator const):
(WebCore::RenderMathMLScripts::unembellishedOperator): Deleted.

  • rendering/mathml/RenderMathMLScripts.h:
  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::horizontalStretchyOperator):
(WebCore::fixLayoutAfterStretch):
(WebCore::RenderMathMLUnderOver::stretchHorizontalOperatorsAndLayoutChildren):
(WebCore::RenderMathMLUnderOver::layoutBlock):
(WebCore::toHorizontalStretchyOperator): Deleted.

LayoutTests:

Add one more case for the test "mathml/opentype/munderover-stretch-width.html"
to handle the corner case where all components of <munderover>/<munder>/<mover> are stretchy.

Since there is no behavior change, no new test is required.

  • mathml/opentype/munderover-stretch-width-expected.txt:
  • mathml/opentype/munderover-stretch-width.html:
Note: See TracTimeline for information about the timeline view.