⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Apr 29, 2019:

8:27 PM Changeset in webkit [244764] by sbarati@apple.com
  • 47 edits in trunk/Source/JavaScriptCore

Make JITType an enum class
https://bugs.webkit.org/show_bug.cgi?id=197394

Reviewed by Yusuke Suzuki.

This makes the code more easily searchable.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFor):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpAssumingJITType const):
(JSC::CodeBlock::specialOSREntryBlockOrNull):
(JSC::timeToLive):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::baselineAlternative):
(JSC::CodeBlock::baselineVersion):
(JSC::CodeBlock::hasOptimizedReplacement):
(JSC::CodeBlock::noticeIncomingCall):
(JSC::CodeBlock::setOptimizationThresholdBasedOnCompilationResult):
(JSC::CodeBlock::tallyFrequentExitSites):
(JSC::CodeBlock::frameRegisterCount):
(JSC::CodeBlock::bytecodeOffsetFromCallSiteIndex):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::jitType const):
(JSC::CodeBlock::hasBaselineJITProfiling const):

  • bytecode/CodeBlockWithJITType.h:

(JSC::CodeBlockWithJITType::CodeBlockWithJITType):

  • bytecode/DeferredSourceDump.cpp:

(JSC::DeferredSourceDump::DeferredSourceDump):

  • bytecode/DeferredSourceDump.h:
  • bytecode/ExitingJITType.h:

(JSC::exitingJITTypeFor):

  • bytecode/InlineCallFrame.h:

(JSC::baselineCodeBlockForOriginAndBaselineCodeBlock):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseCodeBlock):

  • dfg/DFGDisassembler.cpp:

(JSC::DFG::Disassembler::dumpHeader):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGJITCode.cpp:

(JSC::DFG::JITCode::JITCode):
(JSC::DFG::JITCode::checkIfOptimizationThresholdReached):
(JSC::DFG::JITCode::optimizeNextInvocation):
(JSC::DFG::JITCode::dontOptimizeAnytimeSoon):
(JSC::DFG::JITCode::optimizeAfterWarmUp):
(JSC::DFG::JITCode::optimizeSoon):
(JSC::DFG::JITCode::forceOptimizationSlowPathConcurrently):
(JSC::DFG::JITCode::setOptimizationThresholdBasedOnCompilationResult):

  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::finalize):
(JSC::DFG::JITFinalizer::finalizeFunction):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):
(JSC::DFG::prepareCatchOSREntry):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::executeOSRExit):
(JSC::DFG::reifyInlinedCallFrames):
(JSC::DFG::OSRExit::compileOSRExit):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::handleExitCounts):
(JSC::DFG::reifyInlinedCallFrames):
(JSC::DFG::adjustAndJumpToTarget):

  • dfg/DFGOSRExitCompilerCommon.h:

(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):

  • dfg/DFGOperations.cpp:
  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):

  • dfg/DFGVariableEventStream.cpp:

(JSC::DFG::VariableEventStream::reconstruct const):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::JITCode):

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeCommon):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileFTLOSRExit):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::callSiteBitsAreBytecodeOffset const):
(JSC::CallFrame::callSiteBitsAreCodeOriginIndex const):

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::dump const):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::AssemblyHelpers):

  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JITCode.cpp:

(JSC::JITCode::typeName):
(WTF::printInternal):

  • jit/JITCode.h:

(JSC::JITCode::bottomTierJIT):
(JSC::JITCode::topTierJIT):
(JSC::JITCode::nextTierJIT):
(JSC::JITCode::isExecutableScript):
(JSC::JITCode::couldBeInterpreted):
(JSC::JITCode::isJIT):
(JSC::JITCode::isOptimizingJIT):
(JSC::JITCode::isBaselineCode):
(JSC::JITCode::jitTypeFor):

  • jit/JITDisassembler.cpp:

(JSC::JITDisassembler::dumpHeader):

  • jit/JITOperations.cpp:
  • jit/JITThunks.cpp:

(JSC::JITThunks::hostFunctionStub):

  • jit/JITToDFGDeferredCompilationCallback.cpp:

(JSC::JITToDFGDeferredCompilationCallback::compilationDidBecomeReadyAsynchronously):
(JSC::JITToDFGDeferredCompilationCallback::compilationDidComplete):

  • jit/JITWorklist.cpp:

(JSC::JITWorklist::compileLater):
(JSC::JITWorklist::compileNow):

  • jit/Repatch.cpp:

(JSC::readPutICCallTarget):
(JSC::ftlThunkAwareRepatchCall):

  • llint/LLIntEntrypoint.cpp:

(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setModuleProgramEntrypoint):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::processUnverifiedStackTraces):

  • runtime/SamplingProfiler.h:
  • runtime/VM.cpp:

(JSC::jitCodeForCallTrampoline):
(JSC::jitCodeForConstructTrampoline):

  • tools/CodeProfile.cpp:

(JSC::CodeProfile::sample):

  • tools/JSDollarVM.cpp:

(JSC::CallerFrameJITTypeFunctor::CallerFrameJITTypeFunctor):
(JSC::CallerFrameJITTypeFunctor::jitType):
(JSC::functionLLintTrue):
(JSC::functionJITTrue):

7:54 PM Changeset in webkit [244763] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreivewed, fix FTL implementation of r244760
https://bugs.webkit.org/show_bug.cgi?id=197362

Reviewed by Saam Barati.

Looked with Saam. ValueFromBlock from double case block was overridden by NaN thing now.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNormalizeMapKey):

4:55 PM Changeset in webkit [244762] by Truitt Savell
  • 12 edits
    6 deletes in trunk

Unreviewed, rolling out r244755.

Casued several test failures on iOS

Reverted changeset:

"Double-tapping a post to like doesn't work on Instagram.com
(needs 'dblclick' event)"
https://bugs.webkit.org/show_bug.cgi?id=197347
https://trac.webkit.org/changeset/244755

3:40 PM Changeset in webkit [244761] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[iOS] The UIProcess may get killed for trying to stay runnable in the background for more than 30 seconds
https://bugs.webkit.org/show_bug.cgi?id=197385
<rdar://problem/50001505>

Reviewed by Geoffrey Garen.

If the UIProcess holds a background assertion for itself for 30 seconds, the assertion's invalidation handler
will get called and it is our responsibility to release this assertion or the UIProcess will get killed by the
system. The logic in ProcessAssertion would normally do that but it would also happily try and re-take another
background process assertion shortly after the previous one expired (and before the UIProcess got suspended).
When doing so, the new background assertion would expire right away and we would get killed without its
invalidation handler getting called.

To address the issue, the logic in ProcessAssertion will now prevent taking a new background assertion after
one expires and until the application becomes foreground again.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager init]):
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):

3:25 PM Changeset in webkit [244760] by ysuzuki@apple.com
  • 5 edits
    2 adds in trunk

normalizeMapKey should normalize NaN to one PureNaN bit pattern to make MapHash same
https://bugs.webkit.org/show_bug.cgi?id=197362

Reviewed by Saam Barati.

JSTests:

  • stress/map-with-nan.js: Added.

(shouldBe):
(div):
(NaN1):
(NaN2):
(NaN3):
(NaN4):
(NaN1NoInline):
(NaN2NoInline):
(NaN3NoInline):
(NaN4NoInline):
(test1):
(test2):
(test3):
(test4):

  • stress/set-with-nan.js: Added.

(shouldBe):
(div):
(NaN1):
(NaN2):
(NaN3):
(NaN4):
(NaN1NoInline):
(NaN2NoInline):
(NaN3NoInline):
(NaN4NoInline):
(test2):
(test4):

Source/JavaScriptCore:

Our Map/Set's hash algorithm relies on the bit pattern of JSValue. So our Map/Set has
normalization of the key, which normalizes Int32 / Double etc. But we did not normalize
pure NaNs into one canonicalized pure NaN. So we end up having multiple different pure NaNs
in one Map/Set. This patch normalizes NaN into one jsNaN(), which uses PNaN for the representation.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNormalizeMapKey):

  • runtime/HashMapImpl.h:

(JSC::normalizeMapKey):

3:06 PM Changeset in webkit [244759] by Alan Coon
  • 7 edits in tags/Safari-608.1.19.3/Source

Versioning.

3:04 PM Changeset in webkit [244758] by Alan Coon
  • 1 copy in tags/Safari-608.1.19.3

New tag.

2:51 PM Changeset in webkit [244757] by Alan Coon
  • 29 edits in tags/Safari-608.1.19.2

Cherry-pick r244756. rdar://problem/50299396

<rdar://problem/50299396> Fix internal High Sierra build
https://bugs.webkit.org/show_bug.cgi?id=197388

Source/bmalloc:

  • Configurations/Base.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/General.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:

Source/WebCore:

  • Configurations/Base.xcconfig:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:

Source/WTF:

  • Configurations/Base.xcconfig:

Tools:

  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/Base.xcconfig:
  • MobileMiniBrowser/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:

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

2:48 PM Changeset in webkit [244756] by achristensen@apple.com
  • 29 edits in trunk

<rdar://problem/50299396> Fix internal High Sierra build
https://bugs.webkit.org/show_bug.cgi?id=197388

Source/bmalloc:

  • Configurations/Base.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/General.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:

Source/WebCore:

  • Configurations/Base.xcconfig:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:

Source/WTF:

  • Configurations/Base.xcconfig:

Tools:

  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/Base.xcconfig:
  • MobileMiniBrowser/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
2:31 PM Changeset in webkit [244755] by Alan Bujtas
  • 12 edits
    6 adds in trunk

Source/WebCore:
Double-tapping a post to like doesn't work on Instagram.com (needs 'dblclick' event)
https://bugs.webkit.org/show_bug.cgi?id=197347
<rdar://problem/49393423>

Reviewed by Wenson Hsieh.

Tests: fast/events/touch/ios/double-tap-for-double-click1.html

fast/events/touch/ios/double-tap-for-double-click2.html

  • page/Frame.h:
  • page/ios/FrameIOS.mm:

(WebCore::Frame::nodeRespondingToDoubleClickEvent):

Source/WebKit:
[iOS] Double-tapping a post to like doesn't work on Instagram.com (needs 'dblclick' event)
https://bugs.webkit.org/show_bug.cgi?id=197347
<rdar://problem/49393423>

Reviewed by Wenson Hsieh.

This patch adds support for dispatching dblclick event as the result of the double tap gesture.

  1. The new double tap gesture recognizer always fires regardless of what type of action the other, existing double gesture recognizers (double-tap to zoom) trigger.
  2. The dblclick event is dispatched on the node with registered dblclick event handler unless the node prohibits double tap gesture (touch-action != auto).
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView _doubleTapRecognizedForDoubleClick:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::handleDoubleTapForDoubleClickAtPoint):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleDoubleTapForDoubleClickAtPoint):

LayoutTests:
Double-tapping a post to like doesn't work on Instagram.com (needs 'dblclick' event)
https://bugs.webkit.org/show_bug.cgi?id=197347
<rdar://problem/49393423>

Reviewed by Wenson Hsieh.

  • fast/events/touch/ios/double-tap-for-double-click1-expected.txt: Added.
  • fast/events/touch/ios/double-tap-for-double-click1.html: Added.
  • fast/events/touch/ios/double-tap-for-double-click2-expected.txt: Added.
  • fast/events/touch/ios/double-tap-for-double-click2.html: Added.
2:05 PM Changeset in webkit [244754] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r244142): Fandango accounts tab crashes under Color()
https://bugs.webkit.org/show_bug.cgi?id=197380
<rdar://problem/50186175>

Reviewed by Megan Gardner.

  • UIProcess/API/Cocoa/WKWebView.mm:

(baseScrollViewBackgroundColor):
We now call -_updateScrollViewBackground from -setBackgroundColor:.
-setBackgroundColor: can be called from -[UIView initWithCoder:]; if it
is, WKWebView's _page is not yet initialized, so we crash. Return an invalid color.
Then, the caller falls back to WKContentView's backgroundColor. But WKContentView
isn't initialized yet either. So add a further fallback.

1:50 PM Changeset in webkit [244753] by youenn@apple.com
  • 2 edits in trunk/Tools

Remove spurious GVA printf logging
https://bugs.webkit.org/show_bug.cgi?id=197368
<rdar://problem/35975256>

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/port/mac.py:

(MacPort.logging_patterns_to_strip):

1:45 PM Changeset in webkit [244752] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r238090): animation on https://www.robotodyssey.online gets stuck; site broken
https://bugs.webkit.org/show_bug.cgi?id=197381
Source/WebCore:

Reviewed by Zalan Bujtas.

When -webkit-clip-path changes on a composited layer, we need to trigger a backing geometry update
to push the changes to GraphicsLayers.

Test: compositing/style-change/clip-path-change.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::recompositeChangeRequiresGeometryUpdate):

LayoutTests:

<rdar://problem/50308128>

Reviewed by Zalan Bujtas.

  • compositing/style-change/clip-path-change-expected.html: Added.
  • compositing/style-change/clip-path-change.html: Added.
1:34 PM Changeset in webkit [244751] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Add InteractionIsHappening to SuppressSelectionAssistantReason
https://bugs.webkit.org/show_bug.cgi?id=197375
<rdar://problem/50304986>

Reviewed by Megan Gardner.

Add a new reason for suppressing the selection assistant, to
be used in a follow-up patch.

  • UIProcess/ios/WKContentViewInteraction.h: Add InteractionIsHappening.
1:32 PM Changeset in webkit [244750] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Storage::deleteOldVersions does not need to retain Storage
https://bugs.webkit.org/show_bug.cgi?id=197336
<rdar://problem/48679972>

Reviewed by Darin Adler.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::deleteOldVersions):
Something is wrong with the lifetime of Storage, but we only need a String, not the whole Storage.

1:04 PM Changeset in webkit [244749] by youenn@apple.com
  • 17 edits
    2 adds in trunk

getDisplayMedia should be called on user gesture
https://bugs.webkit.org/show_bug.cgi?id=197356
Source/WebCore:

Reviewed by Eric Carlson.

Allow getDisplayMedia on user gesture only.
Otherwise reject the promise.
Minor refactoring to align getDisplayMedia, getUserMedia and
enumerateDevices when called with no document.

Test: fast/mediastream/screencapture-user-gesture.html

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getUserMedia const):

  • Modules/mediastream/MediaDevices.h:
  • Modules/mediastream/NavigatorMediaDevices.h:
  • page/DOMWindow.h:
  • testing/Internals.cpp:

(WebCore::Internals::setDisableGetDisplayMediaUserGestureConstraint):

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

Tools:

<rdar://problem/50296074>

Reviewed by Eric Carlson.

Update test configuration to inject internals
so that we can use it to simulate a user click to call getDisplayMedia.

  • TestWebKitAPI/Tests/WebKit/getDisplayMedia.html:
  • TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:

(TestWebKitAPI::GetDisplayMediaTest::SetUp):

LayoutTests:

Reviewed by Eric Carlson.

  • fast/mediastream/media-stream-page-muted.html:
  • fast/mediastream/screencapture-user-gesture-expected.txt: Added.
  • fast/mediastream/screencapture-user-gesture.html: Added.
  • http/tests/media/media-stream/get-display-media-iframe-allow-attribute-expected.txt:
  • http/tests/media/media-stream/get-display-media-iframe-allow-attribute.html:
  • http/tests/media/media-stream/get-display-media-prompt.html:
  • http/tests/media/media-stream/resources/get-display-media-devices-iframe.html:
  • resources/testharnessreport.js:
12:56 PM Changeset in webkit [244748] by jfernandez@igalia.com
  • 8 edits
    26 adds in trunk

line should not be broken before the first space after a word
https://bugs.webkit.org/show_bug.cgi?id=197278

Reviewed by Myles C. Maxfield.

LayoutTests/imported/w3c:

Added new Web Platform Tests to cover the cases discussed [1] with the CSS WG.

[1] https://github.com/w3c/csswg-drafts/issues/3701

  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-001-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-001.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-002-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-002.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-003-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-003.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-004-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-004.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-005-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-005.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-006-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-006.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-007-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-007.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-008-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-008.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-009-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-009.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-010-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-010.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-011-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-011.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-012-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-012.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-013-expected.html: Added.
  • web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-013.html: Added.

Source/WebCore:

The 'white-space: break-spaces' only adds breaking opportunities after
a white space character. However, it's possible to break before the
first space after a word when the feature is used in combination with
other properties, like overflow-wrap.

However, breaking before the first space should not be allowed if
there are previous opportunities. We wrongly assumed that we had to
consider these previous breaking opportunities if the proper combination
of line breaking properties is being used, so that breaking before the
first space after a word is allowed.

This wrong assumption caused several issues, like the one described in
the bug, that lead to incorrectly break before the first space even
though there are previous opportunities, either white spaces or between
letters.

Theses issues have been analyzed [1] by the CSS WG and finally agreed on a
expected behavior, represented in the Web Platform tests added in this
patch.

For the later case, of considering previous opportunities between
letters, we have a seperated issue #952254, so the tests covering such
cases will be added to the TestExpecations as Failure entries.

[1] https://github.com/w3c/csswg-drafts/issues/3701

Tests: imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-001.html

imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-002.html
imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-003.html
imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-004.html
imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-005.html
imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-006.html
imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-007.html
imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-008.html
imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-009.html
imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-010.html
imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-011.html
imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-012.html
imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-before-first-char-013.html

  • rendering/line/BreakingContext.h:

(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::trailingSpacesHang):

LayoutTests:

Added a few Skip (due to unimplemented features) and Failure (break-all related
issues) entries for some of the tests added by this patch.

12:52 PM Changeset in webkit [244747] by Brent Fulgham
  • 3 edits
    4 moves in trunk/Source/WebKit

[Cocoa] Move common sandbox files from Shared/mac to Shared/Cocoa
https://bugs.webkit.org/show_bug.cgi?id=197376
<rdar://problem/50305272>

Reviewed by Dean Jackson.

The Apple sandboxing logic currently lives in the inappropriate 'Shared/mac' directory. This is
confusing because the code is used by all Apple ports, not just macOS.

This patch just moves the relevant files from 'Shared/mac' to 'Shared/Cocoa' to avoid this confusion.

  • Shared/Cocoa/SandboxExtensionCocoa.mm: Renamed from Source/WebKit/Shared/mac/SandboxExtensionMac.mm.
  • Shared/Cocoa/SandboxInitialiationParametersCocoa.mm: Renamed from Source/WebKit/Shared/mac/SandboxInitialiationParametersMac.mm.
  • Shared/Cocoa/SandboxUtilities.h: Renamed from Source/WebKit/Shared/mac/SandboxUtilities.h.
  • Shared/Cocoa/SandboxUtilities.mm: Renamed from Source/WebKit/Shared/mac/SandboxUtilities.mm.
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
12:36 PM Changeset in webkit [244746] by don.olmstead@sony.com
  • 2 edits in trunk

[CMake] Add WEBKIT_EXECUTABLE macro
https://bugs.webkit.org/show_bug.cgi?id=197206

Unreviewed build fix.

Calls to add_dependencies were not happening.

  • Source/cmake/WebKitMacros.cmake:
12:21 PM Changeset in webkit [244745] by ysuzuki@apple.com
  • 6 edits in trunk/Source

JITStubRoutineSet wastes 180KB of HashTable capacity on can.com
https://bugs.webkit.org/show_bug.cgi?id=186732

Reviewed by Saam Barati.

Source/JavaScriptCore:

Our current mechanism of JITStubRoutineSet consumes more memory than needed. Basically we have HashMap<uintptr_t, StubRoutine*> and register
each executable address by 16 byte to this entry. So if your StubRoutine has 128bytes, it just adds 8 entries to this hash table.
In Gmail, we see a ~2MB table size.

Instead, this patch uses Vector<pair<uintptr_t, StubRoutine*>> and performs binary search onto this sorted vector. Before conservative
scanning, we sort this vector. And doing binary search with the sorted vector to find executing stub routines from the conservative roots.
This vector includes uintptr_t startAddress to make binary searching fast.

Large amount of conservative scan should be filtered by range check, so I think binary search here is OK, but we can decide based on what the
performance bots say.

  • heap/Heap.cpp:

(JSC::Heap::addCoreConstraints):

  • heap/JITStubRoutineSet.cpp:

(JSC::JITStubRoutineSet::~JITStubRoutineSet):
(JSC::JITStubRoutineSet::add):
(JSC::JITStubRoutineSet::prepareForConservativeScan):
(JSC::JITStubRoutineSet::clearMarks):
(JSC::JITStubRoutineSet::markSlow):
(JSC::JITStubRoutineSet::deleteUnmarkedJettisonedStubRoutines):
(JSC::JITStubRoutineSet::traceMarkedStubRoutines):

  • heap/JITStubRoutineSet.h:

(JSC::JITStubRoutineSet::mark):
(JSC::JITStubRoutineSet::prepareForConservativeScan):
(JSC::JITStubRoutineSet::size const): Deleted.
(JSC::JITStubRoutineSet::at const): Deleted.

Source/WTF:

  • wtf/Range.h:

(WTF::Range::contains const):

12:08 PM Changeset in webkit [244744] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

[GTK] Back/forward gesture snapshot always times out
https://bugs.webkit.org/show_bug.cgi?id=197233

Patch by Alexander Mikhaylenko <exalm7659@gmail.com> on 2019-04-29
Reviewed by Michael Catanzaro.

Delaying web process launch caused a regression where we create ViewGestureController when the
web process doesn't yet exist. The controller immediately tries to connect to it and fails,
and because of that never receives DidHitRenderTreeSizeThreshold() message, so navigation
snapshot always stays until timeout after performing the gesture.

To prevent this, create the controller in webkitWebViewBaseDidRelaunchWebProcess() instead of
webkitWebViewBaseCreateWebPage(). Additionally, since settings are now created earlier than
ViewGestureController, store the value of whether swipe gesture is enabled in WebKitWebViewBase
and immediately apply it when creating the controller.

Since there is now a point where controller is null, make webkitWebViewBaseViewGestureController()
return null and add null checks everywhere.

  • UIProcess/API/glib/WebKitWebView.cpp:

(enableBackForwardNavigationGesturesChanged):
Move the logic into webkitWebViewBaseSetEnableBackForwardNavigationGesture().

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore): Add a null check.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDraw): Ditto.
(webkitWebViewBaseScrollEvent): Ditto.
(webkitWebViewBaseSetEnableBackForwardNavigationGesture): Added. In addition to what was in
WebKitWebViewBase::enableBackForwardNavigationGesturesChanged(), store the value in a field
for the case ViewGestureController doesn't exist yet.
(webkitWebViewBaseViewGestureController): Return a pointer instead of reference.
(webkitWebViewBaseCreateWebPage): Stop creating ViewGestureController.
(webkitWebViewBaseDidRelaunchWebProcess): Move creating ViewGestureController here. Also
immediately call setSwipeGestureEnabled() with the stored value.
(webkitWebViewBaseDidStartProvisionalLoadForMainFrame): Add a null check.
(webkitWebViewBaseDidFirstVisuallyNonEmptyLayoutForMainFrame):Ditto.
(webkitWebViewBaseDidFinishLoadForMainFrame): Ditto.
(webkitWebViewBaseDidFailLoadForMainFrame): Ditto.
(webkitWebViewBaseDidSameDocumentNavigationForMainFrame): Ditto.
(webkitWebViewBaseDidRestoreScrollPosition): Ditto.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
11:40 AM Changeset in webkit [244743] by Alan Coon
  • 7 edits in tags/Safari-608.1.19.2/Source

Versioning.

11:22 AM Changeset in webkit [244742] by Chris Dumez
  • 5 edits in trunk/Source

User-facing strings should use curly quotes instead of straight
https://bugs.webkit.org/show_bug.cgi?id=197370

Reviewed by Geoffrey Garen.

Source/WebCore:

Update localizable strings.

  • en.lproj/Localizable.strings:

Source/WebKit:

Update localizable alert text that was recently added to use curly quotes instead of
straight ones, as per our guidelines.

  • UIProcess/Cocoa/WKOrientationAccessAlert.mm:

(WebKit::presentOrientationAccessAlert):

  • UIProcess/Cocoa/WKStorageAccessAlert.mm:

(WebKit::presentStorageAccessAlert):

11:18 AM Changeset in webkit [244741] by Basuke Suzuki
  • 8 edits in trunk

[Win] Add flag to enable version information stamping and disable by default.
https://bugs.webkit.org/show_bug.cgi?id=197249
<rdar://problem/50224412>

Reviewed by Ross Kirsling.

.:

This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
Then enable it by default on AppleWin.

  • Source/cmake/OptionsWin.cmake:

Source/JavaScriptCore:

This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
Then enable it by default on AppleWin.

  • CMakeLists.txt:

Source/WTF:

This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
Then enable it by default on AppleWin.

  • wtf/CMakeLists.txt:

WebKitLibraries:

Modify script not to invoke SVN command if the directory for SVN doesn't exists.

  • win/tools/scripts/auto-version.pl:
11:18 AM Changeset in webkit [244740] by Ross Kirsling
  • 2 edits in trunk/Source/WebCore

Unreviewed fix for non-unified build after r244687.

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
11:16 AM Changeset in webkit [244739] by Alan Coon
  • 4 edits in tags/Safari-608.1.19.2/Source

Cherry-pick r244696. rdar://problem/50299396

Fix internal High Sierra build after r244653
https://bugs.webkit.org/show_bug.cgi?id=197131

  • DerivedSources.make: -std=gnu++17 didn't exist yet. -std=gnu++1z did.

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

11:16 AM Changeset in webkit [244738] by Alan Coon
  • 4 edits in tags/Safari-608.1.19.2/Source

Cherry-pick r244692. rdar://problem/50299396

Fix an internal High Sierra build after r244653

https://bugs.webkit.org/show_bug.cgi?id=197131

  • DerivedSources.make: Apparently we can't use gnu++17 when preprocessing Platform.h in the makefile.

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

10:45 AM Changeset in webkit [244737] by Alan Coon
  • 1 copy in tags/Safari-608.1.19.2

New tag.

9:24 AM Changeset in webkit [244736] by youenn@apple.com
  • 8 edits in trunk

RTCTrackEvent should be delayed until the whole remote description is set
https://bugs.webkit.org/show_bug.cgi?id=196808
<rdar://problem/49802649>

Reviewed by Eric Carlson.

Source/WebCore:

As per https://w3c.github.io/webrtc-pc/#set-description,
fire events just before resolving the setRemoteDescription promise.
This ensures that the exposed stream has all necessary tracks from the beginning.
Pending track events are created in LibWebRTCMediaEndpoint and stored in PeerConnectionBackend.

Covered by updated test.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
(WebCore::PeerConnectionBackend::addPendingTrackEvent):
(WebCore::PeerConnectionBackend::stop):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
(WebCore::LibWebRTCMediaEndpoint::addPendingTrackEvent):
(WebCore::LibWebRTCMediaEndpoint::newTransceiver):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:

LayoutTests:

  • webrtc/video-addTrack.html:
7:10 AM Changeset in webkit [244735] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] [l10n] Updated Ukrainian translation of WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=197364

Patch by Yuri Chornoivan <yurchor@ukr.net> on 2019-04-29
Rubber-stamped by Michael Catanzaro.

  • uk.po:
7:08 AM Changeset in webkit [244734] by Michael Catanzaro
  • 1 edit
    1 add in trunk/Source/WebCore/platform/gtk/po

Add Danish translation
https://bugs.webkit.org/show_bug.cgi?id=194850

Patch by scootergrisen <scootergrisen@gmail.com> on 2019-04-29
Rubber-stamped by Michael Catanzaro.

  • da.po: Added.
7:02 AM Changeset in webkit [244733] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Build fix.

  • UIProcess/ios/WKActionSheet.mm:

(-[WKActionSheet updateSheetPosition]):

5:24 AM Changeset in webkit [244732] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

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

Lots of tests are crashing (Requested by KaL on #webkit).

Reverted changeset:

"[GTK] Back/forward gesture snapshot always times out"
https://bugs.webkit.org/show_bug.cgi?id=197233
https://trac.webkit.org/changeset/244648

3:14 AM Changeset in webkit [244731] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebCore

REGRESSION(r244635): [GTK] Wrong background color used in non-dark mode
https://bugs.webkit.org/show_bug.cgi?id=197276

Reviewed by Michael Catanzaro.

Since r244635, we are now getting the frame view background color from the theme. That's correct for dark mode,
but in non-dark mode we still want to use white backgrounds by default. This made a lot of tests to fail.

  • css/CSSValueKeywords.in: Add -webkit-control-background when HAVE(OS_DARK_MODE_SUPPORT).
  • css/html.css: Use -webkit-control-background instead of -apple-system-control-background.
  • page/FrameView.cpp:

(WebCore::FrameView::updateBackgroundRecursively): Use CSSValueWindow instead of CSSValueWindowframe.

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::systemColor const): Only get the window background from the theme in dark mode. Handle
also CSSValueWebkitControlBackground.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor const): Handle CSSValueWebkitControlBackground when HAVE(OS_DARK_MODE_SUPPORT).

2:14 AM Changeset in webkit [244730] by Stephanie Lewis
  • 5 edits in trunk/Tools

run-benchmarks should have an intial prep and restore env call for tasks that are too expensive to do for every iteration
https://bugs.webkit.org/show_bug.cgi?id=197339

Reviewed by Dewei Zhu.

Add two new functions prepare_inital_env and restore_env_after_all_testing around the entire
test run for setup steps that are too expensive to do every iteration.

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner._run_benchmark):

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:

(BrowserDriver):
(BrowserDriver.prepare_initial_env):
(BrowserDriver.restore_env_after_all_testing):

  • Scripts/webkitpy/benchmark_runner/browser_driver/linux_browser_driver.py:

(LinuxBrowserDriver.prepare_initial_env):
(LinuxBrowserDriver.restore_env_after_all_testing):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver.prepare_initial_env):
(OSXBrowserDriver.restore_env_after_all_testing):

1:36 AM Changeset in webkit [244729] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] window-object-cleared documentation should reference webkit_frame_get_js_context_for_script_world()
https://bugs.webkit.org/show_bug.cgi?id=197357

Reviewed by Carlos Garcia Campos.

We should recommend using the non-deprecated replacement for
webkit_frame_get_javascript_context_for_script_world().

  • WebProcess/InjectedBundle/API/glib/WebKitScriptWorld.cpp:
1:08 AM Changeset in webkit [244728] by jfernandez@igalia.com
  • 31 edits in trunk/LayoutTests

Update the CSS Text WPT test suite
https://bugs.webkit.org/show_bug.cgi?id=197326

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-007.html:
  • web-platform-tests/css/css-text/overflow-wrap/w3c-import.log:
  • web-platform-tests/css/css-text/parsing/text-transform-valid.html:
  • web-platform-tests/css/css-text/parsing/word-break-invalid-expected.txt:
  • web-platform-tests/css/css-text/parsing/word-break-invalid.html:
  • web-platform-tests/css/css-text/parsing/word-break-valid-expected.txt:
  • web-platform-tests/css/css-text/parsing/word-break-valid.html:
  • web-platform-tests/css/css-text/text-transform/w3c-import.log:
  • web-platform-tests/css/css-text/white-space/break-spaces-003-expected.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-003.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-004.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-005-expected.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-005.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-006-expected.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-006.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-007-expected.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-007.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-008-expected.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-008.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-009-expected.html:
  • web-platform-tests/css/css-text/white-space/break-spaces-009.html:
  • web-platform-tests/css/css-text/white-space/pre-wrap-008-expected.html:
  • web-platform-tests/css/css-text/white-space/pre-wrap-008.html:
  • web-platform-tests/css/css-text/white-space/pre-wrap-015.html:
  • web-platform-tests/css/css-text/white-space/pre-wrap-016.html:
  • web-platform-tests/css/css-text/white-space/textarea-break-spaces-001-expected.html:
  • web-platform-tests/css/css-text/white-space/w3c-import.log:

LayoutTests:

Apr 28, 2019:

10:17 PM Changeset in webkit [244727] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[Apple Pay] Increment the API version from 6 to 7
https://bugs.webkit.org/show_bug.cgi?id=197041
<rdar://problem/49986625>

Reviewed by Geoffrey Garen.

  • Modules/applepay/PaymentCoordinatorClient.cpp:

(WebCore::PaymentCoordinatorClient::supportsVersion):

12:28 PM Changeset in webkit [244726] by aestes@apple.com
  • 10 edits in trunk

Fix the watchOS engineering build.

.:

  • Source/Makefile: Moved libwebrtc logic into Source/ThirdParty/Makefile.

Source/ThirdParty:

  • Makefile: Started building libwebrtc on watchOS.

Source/ThirdParty/libwebrtc:

  • Makefile: Set OTHER_OPTIONS to build libwebrtc's boringssl target on watchOS, which is a

dependency for TestWebKitAPI's TCPServer.

Source/WebCore:

  • Modules/webgpu/WebGPUComputePassEncoder.cpp: Included Logging.h.

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:

(TestWebKitAPI::TEST): AVVideoPerformanceMetrics does not exist on watchOS.

12:06 PM Changeset in webkit [244725] by youenn@apple.com
  • 3 edits in trunk/LayoutTests/imported/w3c

Fix imported/w3c/web-platform-tests/fetch/api/request/request-keepalive.html assert_throws call
https://bugs.webkit.org/show_bug.cgi?id=197338

Reviewed by Darin Adler.

12:02 PM Changeset in webkit [244724] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Remove no longer needed mDNS ICE candidate resolution code
https://bugs.webkit.org/show_bug.cgi?id=197315

Reviewed by Eric Carlson.

No change of behavior.
Removed code is no longer exercised as mDNS resolution happens inside libwebrtc
using the same resolution mechanism as for TURN/STUN server names.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::addIceCandidateSucceeded):
(WebCore::PeerConnectionBackend::addIceCandidateFailed):

  • Modules/mediastream/PeerConnectionBackend.h:
Note: See TracTimeline for information about the timeline view.