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

Timeline



Aug 16, 2020:

11:29 PM Changeset in webkit [265746] by Simon Fraser
  • 11 edits in trunk/Source/WebCore

Fix some spelling and editorial issues
https://bugs.webkit.org/show_bug.cgi?id=215553

Reviewed by Darin Adler.

"Stretches" has a t in the middle, and "padding" is singular.

  • inspector/InspectorOverlay.cpp:

(WebCore::buildRendererHighlight):

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometryForBox const):

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::adjustBaselineAndLineHeight):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):

  • rendering/RenderTableCell.cpp:
  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::layout):

6:48 PM Changeset in webkit [265745] by Wenson Hsieh
  • 4 edits in trunk/LayoutTests

Remove several unnecessary timeouts in layout tests
https://bugs.webkit.org/show_bug.cgi?id=215552

Reviewed by Darin Adler.

Remove several setTimeout(finishJSTest, s); calls in layout tests. These were probably added in the process of
developing or debugging these tests, and were not intended to be landed.

  • editing/pasteboard/data-transfer-set-data-sanitize-html-when-dragging-in-null-origin.html:
  • fast/forms/ios/show-and-dismiss-date-input.html:
  • http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html:
1:40 PM Changeset in webkit [265744] by Alexey Shvayka
  • 33 edits
    6 adds in trunk

Remove OpIsObjectOrNull from ClassExprNode::emitBytecode()
https://bugs.webkit.org/show_bug.cgi?id=214525

Reviewed by Keith Miller.

Source/JavaScriptCore:

This patch:

  1. Replaces OpIsObjectOrNull in ClassExprNode::emitBytecode() [1] with emitIsObject() + emitIsNull(), preventing DFG/FTL from throwing a TypeError if document.all is the value of superclass "prototype" property, which aligns JSC with V8 and SpiderMonkey. Also, tweaks error message to reflect that null is allowed.
  1. Renames is_object_or_null bytecode op to typeof_is_object, fixing the confusing operationObjectIsObject() name, and aligns it with typeof_is_undefined. New name offers better semantics and clearly communicates the op should be avoided when implementing new features because of typeof behavior with IsHTMLDDA objects [2].

[1]: https://tc39.es/ecma262/#sec-runtime-semantics-classdefinitionevaluation (step 5.g.ii)
[2]: https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-typeof

  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.cpp:

(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEqualityOpImpl):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ClassExprNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileTypeOfIsObject):
(JSC::DFG::SpeculativeJIT::compileIsObjectOrNull): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileTypeOfIsObject):
(JSC::FTL::DFG::LowerDFGToB3::compileIsObjectOrNull): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • llint/LowLevelInterpreter.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/Operations.cpp:

(JSC::jsTypeofIsObject):
(JSC::jsIsObjectTypeOrNull): Deleted.

  • runtime/Operations.h:

LayoutTests:

New tests are added for document.all rather than makeMasquerader() since
the latter has sufficient test coverage and takes the short path as JSFunction.

  • js/class-syntax-extends-expected.txt:
  • js/dom/document-all-class-extends-expected.txt: Added.
  • js/dom/document-all-class-extends.html: Added.
  • js/dom/document-all-typeof-is-object-fold-expected.txt: Added.
  • js/dom/document-all-typeof-is-object-fold.html: Added.
  • js/dom/script-tests/document-all-class-extends.js: Added.
  • js/dom/script-tests/document-all-typeof-is-object-fold.js: Added.
  • js/script-tests/class-syntax-extends.js:
1:16 PM Changeset in webkit [265743] by Simon Fraser
  • 6 edits in trunk/Source

Scrolling sync changes in r261985 regressed CPU usage by ~2 ms/s
https://bugs.webkit.org/show_bug.cgi?id=215529
<rdar://problem/66866163>

Reviewed by Geoff Garen.
Source/WebCore:

r261985 added two code paths that wake up the scrolling thread on every
rendering update (triggered by displayDidRefresh()). One is a ping from
the EventDispatcher thread, the other is a wake-and-block from the main
thread. If the scrolling thread isn't active (no wheel events received recently),
we can avoid both of these to reduce the number of CPU core wakeups.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::isRecentlyActive):
(WebCore::ScrollingTree::setRecentlyActive):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::willStartRenderingUpdate):
(WebCore::ThreadedScrollingTree::displayDidRefresh):

Source/WebKit:

r261985 added two code paths that wake up the scrolling thread on every
rendering update (triggered by displayDidRefresh()). One is a ping from
the EventDispatcher thread, the other is a wake-and-block from the main
thread. If the scrolling thread isn't active (no wheel events received recently),
we can avoid both of these to reduce the number of CPU core wakeups.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

12:11 PM Changeset in webkit [265742] by dino@apple.com
  • 4 edits in trunk

[AS Layout Tests] 6 WPT css-backgrounds tests consistently failing
https://bugs.webkit.org/show_bug.cgi?id=215533
rdar://66660924

Reviewed by Youenn Fablet.

Source/WebCore:

A static_cast from float to int, where the float value is larger than MAX_INT, produces
different results on x86_64 and arm64e. Unfortunately, fixing this exposed the fact
that we were accidentally passing the tests below on Intel.

This commit addresses the casting issue and marks the tests as now accurately
failing. Details on the new bug at: webkit.org/b/206753

Covered by:
imported/w3c/web-platform-tests/css/css-backgrounds/background-size/vector/tall--contain--height.html
imported/w3c/web-platform-tests/css/css-backgrounds/background-size/vector/tall--contain--width.html
imported/w3c/web-platform-tests/css/css-backgrounds/background-size/vector/wide--contain--height.html
imported/w3c/web-platform-tests/css/css-backgrounds/background-size/vector/wide--contain--width.html

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::containerSize const): Don't static_cast from float to int. Rather, use
the explicit IntSize constructor.

LayoutTests:

1:16 AM Changeset in webkit [265741] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, reduce iteration count more for non-JIT environments

If JSC does not have JIT, many iterations do not matter.

  • stress/memcpy-typed-loops.js:

Aug 15, 2020:

3:53 PM Changeset in webkit [265740] by timothy_horton@apple.com
  • 5 edits in trunk

Live Web Content processes do not respect accent color if dynamically changed to "multicolor"
https://bugs.webkit.org/show_bug.cgi?id=215523
<rdar://problem/63941133>

Reviewed by Wenson Hsieh.

Source/WebKit:

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKUserDefaults _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:]):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::setPreferenceValue):
The NSUserDefaults syncing mechanism does not propagate defaults that are
deleted or changed to nil.

Allow nil, and fix up an assert that would fire for the same reason.

Tools:

  • TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:

(deleteTestDefaults):
(TEST):
Fix some minor style issues with these tests.
Fix a bug where these tests would leak state between themselves by leaving defaults behind.
Change the NSUserDefaults key name so that it is abundantly obvious where it comes from when you see it in your defaults.
Leave a FIXME for the future that these tests should probably not be writing to the real persistent defaults.
Add a test that ensures that the observer correctly respects deletion of a default.

1:26 PM Changeset in webkit [265739] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merged r264676 - Update Chrome and Firefox versions in user agent quirks
https://bugs.webkit.org/show_bug.cgi?id=214595

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-21
Reviewed by Adrian Perez de Castro.

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::stringForQuirk):

1:26 PM Changeset in webkit [265738] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merged r264986 - [GTK] Crash in Nicosia::GC3DLayer::makeContextCurrent due to failure in EGL display creation
https://bugs.webkit.org/show_bug.cgi?id=201507

Reviewed by Carlos Garcia Campos.

Ensure that EGL context and display creation failures are always
logged using RELEASE_LOG_INFO(), even for intermediate failures for
which a fallback will be tried next, in order to ease diagnosis of
related issues. Failure to create contexts at the end of the public
methods ::createContext() and ::createSharingContext() is still
logged with WTFLogAlways() to write a notice to standard error, and
let users/developers know that something failed and checking the
complete logs (e.g. with "journalctl" on Linux) may reveal more
information.

This also replaces the chains of "if" statements with a single
"switch" on the PlatformDisplay::Type enum, which makes the code
easier to follow and should be more robust as well.

No new tests needed.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::getEGLConfig):
(WebCore::GLContextEGL::createWindowContext):
(WebCore::GLContextEGL::createSurfacelessContext):
(WebCore::GLContextEGL::createContext):
(WebCore::GLContextEGL::createSharingContext):

1:26 PM Changeset in webkit [265737] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merged r265326 - [WPE][GTK] Wrong argument order for clone syscall seccomp filter on s390x
https://bugs.webkit.org/show_bug.cgi?id=215212

Reviewed by Michael Catanzaro.

Patch based on this Flatpak pull request:
https://github.com/flatpak/flatpak/pull/3777

No new tests needed.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::setupSeccomp): Add preprocessor guard to choose the correct
clone() system call argument on S390.

1:25 PM Changeset in webkit [265736] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merged r265692 - [ARMv7][JSC] Conservative GC is not considering r7 as a root
https://bugs.webkit.org/show_bug.cgi?id=215512

Reviewed by Yusuke Suzuki.

Since r7 is a callee-saved register on ARMv7
we need to consider it as a conservative root.

See the statement "A subroutine must preserve
the contents of the registers r4-r8, r10, r11
and SP (and r9 in PCS variants that designate
r9 as v6) form page 15 of
https://developer.arm.com/documentation/ihi0042/f/.

  • heap/RegisterState.h:
1:04 PM WebKitGTK/2.28.x edited by Adrian Perez de Castro
(diff)
11:40 AM Changeset in webkit [265735] by ysuzuki@apple.com
  • 19 edits
    1 copy in trunk/Source/WTF

Use std::call_once + LazyNeverDestroyed to initialize complex data structures
https://bugs.webkit.org/show_bug.cgi?id=215535
<rdar://problem/66774266>

Reviewed by Mark Lam.

NeverDestroyed<> is not thread-safe in Darwin build since it is not using C++11 thread-safe static variable semantics.
This patch uses LazyNeverDestroyed and call_once to initialize complex data structures so that we can ensure they are
initialized atomically.

We also move some of singleton definitions from headers to cpp files. This is important since this ensures that singleton
is only one instance which is generated in one translation unit.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/FastMalloc.cpp:

(WTF::MallocCallTracker::singleton):

  • wtf/Language.cpp:

(WTF::observerMap):
(WTF::preferredLanguagesOverride):

  • wtf/Logger.cpp:

(WTF::Logger::observers):

  • wtf/Logger.h:

(WTF::Logger::observerLock):
(WTF::Logger::observers): Deleted.

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::singleton):

  • wtf/MemoryPressureHandler.h:
  • wtf/RunLoop.cpp:

(WTF::RunLoop::current):

  • wtf/Threading.cpp:

(WTF::Thread::initializeInThread):

  • wtf/URL.cpp:

(WTF::aboutBlankURL):
(WTF::aboutSrcDocURL):

  • wtf/cf/LanguageCF.cpp:

(WTF::preferredLanguages):

  • wtf/cocoa/NSURLExtras.mm:

(WTF::rangeOfURLScheme):

  • wtf/text/LineBreakIteratorPoolICU.cpp: Copied from Source/WTF/wtf/Logger.cpp.

(WTF::LineBreakIteratorPool::sharedPool):

  • wtf/text/LineBreakIteratorPoolICU.h:

(WTF::LineBreakIteratorPool::sharedPool): Deleted.

  • wtf/text/StringView.cpp:
  • wtf/text/TextBreakIterator.cpp:

(WTF::TextBreakIteratorCache::singleton):

  • wtf/text/TextBreakIterator.h:

(WTF::TextBreakIteratorCache::singleton): Deleted.

  • wtf/threads/Signals.cpp:

(WTF::activeThreads):

10:49 AM Changeset in webkit [265734] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Revert unnecessary change for https://bugs.webkit.org/show_bug.cgi?id=215521.
https://bugs.webkit.org/show_bug.cgi?id=215541

Reviewed by Chris Fleizach.

These additional checks are no longer necessary since makeSimpleRange
returns a null Optional if any of the VisiblePosition parameters is
null. Darin Adler already fixed the crasher in
https://bugs.webkit.org/show_bug.cgi?id=215521
with the patch
https://trac.webkit.org/changeset/265044/webkit.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::rangeMatchesTextNearRange):

10:29 AM Changeset in webkit [265733] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK][WPE] Add provisional expectation to http/tests to allow the bots to run

Unreviewed test gardening.

  • platform/glib/TestExpectations:
9:25 AM Changeset in webkit [265732] by youenn@apple.com
  • 9 edits in trunk

WritableStream rejected promises should be marked as handled as per spec
https://bugs.webkit.org/show_bug.cgi?id=215501

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/writable-streams/aborting.any-expected.txt:
  • web-platform-tests/streams/writable-streams/aborting.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/bad-underlying-sinks.any-expected.txt:
  • web-platform-tests/streams/writable-streams/bad-underlying-sinks.any.worker-expected.txt:
  • web-platform-tests/streams/writable-streams/close.any-expected.txt:
  • web-platform-tests/streams/writable-streams/close.any.worker-expected.txt:

Source/WebCore:

Marking promises that got rejected as handled to ensure onunhandledrejection handler is not called erroneously.
Covered by rebased tests.

  • Modules/streams/WritableStreamInternals.js:

(setUpWritableStreamDefaultWriter):
(writableStreamRejectCloseAndClosedPromiseIfNeeded):
(writableStreamDefaultWriterEnsureClosedPromiseRejected):
(writableStreamDefaultWriterEnsureReadyPromiseRejected):

6:32 AM WebKitGTK/2.30.x edited by Adrian Perez de Castro
(diff)
6:30 AM Changeset in webkit [265731] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/JavaScriptCore

Merged r265692 - [ARMv7][JSC] Conservative GC is not considering r7 as a root
https://bugs.webkit.org/show_bug.cgi?id=215512

Reviewed by Yusuke Suzuki.

Since r7 is a callee-saved register on ARMv7
we need to consider it as a conservative root.

See the statement "A subroutine must preserve
the contents of the registers r4-r8, r10, r11
and SP (and r9 in PCS variants that designate
r9 as v6) form page 15 of
https://developer.arm.com/documentation/ihi0042/f/.

  • heap/RegisterState.h:
6:22 AM Changeset in webkit [265730] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.29.90

WPE WebKit 2.29.90

6:22 AM Changeset in webkit [265729] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.30

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.29.90 release

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.29.90.
5:51 AM WebKitGTK/2.28.x edited by Adrian Perez de Castro
(diff)
5:50 AM WebKitGTK/2.30.x edited by Adrian Perez de Castro
(diff)
5:49 AM WebKitGTK/2.30.x edited by Adrian Perez de Castro
(diff)
1:39 AM Changeset in webkit [265728] by Adrian Perez de Castro
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed non-unified source build fix

  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp: Add missing OperandsInlines.h header.
Note: See TracTimeline for information about the timeline view.