Timeline
Jun 18, 2022:
- 9:13 PM Changeset in webkit [295661] by
-
- 4 edits in trunk/Source
Change Integrity audit logging to use OS_LOG_TYPE_ERROR.
https://bugs.webkit.org/show_bug.cgi?id=241742
Reviewed by Yusuke Suzuki.
On OS(DARWIN), Integrity audit code now uses an OSLogPrintStream to achieve this
logging with type OS_LOG_TYPE_ERROR. On other ports, we just route the logging
to WTF::dataFile() instead.
Also removed VA_ARGS support when !VA_OPT_SUPPORTED. This never worked in the first
place. Ports without VA_OPT_SUPPORTED will have to live with degraded logging.
Added WTFReportBacktraceWithPrefixAndPrintStream and WTFPrintBacktraceWithPrefixAndPrintStream
to support this new Integrity audit logging. Removed the old WTFPrintBacktraceWithPrefix
because it was never used by external clients. It was only used by as an internal support
function by other stack dumper functions.
- Source/JavaScriptCore/tools/Integrity.cpp:
(JSC::Integrity::logFile):
(JSC::Integrity::logF):
(JSC::Integrity::logLnF):
(JSC::Integrity::verifyCell):
- Source/JavaScriptCore/tools/Integrity.h:
- Source/WTF/wtf/Assertions.cpp:
- Source/WTF/wtf/Assertions.h:
Canonical link: https://commits.webkit.org/251666@main
- 9:07 PM Changeset in webkit [295660] by
-
- 12 edits1 add in trunk/Source
Introducing RawHex, a counterpart to RawPointer
https://bugs.webkit.org/show_bug.cgi?id=241743
Reviewed by Saam Barati.
RawHex is for dumping integral values in hex just like RawPointer is for dumping
pointers. And similarly, RawHex is meant to be used with PrintStream.
For example:
dataLog(RawHex(42)); prints 0x2a
dataLog(RawHex(0x42); prints 0x42
dataLog(RawHex(256)); prints 0x100
dataLog(RawHex(65536); prints 0x10000
dataLog(RawHex(4294967295); prints 0xffffffff
dataLog(RawHex(4294967296); prints 0x100000000
dataLog(RawHex(INT8_MIN); prints 0x80
dataLog(RawHex(INT16_MIN); prints 0x8000
dataLog(RawHex(INT32_MIN); prints 0x80000000
dataLog(RawHex(-1); prints 0xffffffff
dataLog(RawHex(INT64_MIN); prints 0x8000000000000000
dataLog(RawHex(INT64_MAX); prints 0x7fffffffffffffff
dataLog(RawHex(UINT64_MAX); prints 0xffffffffffffffff
Also fixed up places where we were casting integral values into pointers, and
then using RawPointer to dump them in hex.
- Source/JavaScriptCore/bytecode/BytecodeDumper.cpp:
(JSC::Wasm::BytecodeDumper::formatConstant const):
- Source/JavaScriptCore/interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::dump const):
- Source/JavaScriptCore/runtime/ExecutableBase.cpp:
(JSC::ExecutableBase::dump const):
- Source/JavaScriptCore/runtime/LazyPropertyInlines.h:
(JSC::ElementType>::dump const):
- Source/JavaScriptCore/runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::reportTopBytecodes):
- Source/JavaScriptCore/tools/Integrity.cpp:
(JSC::Integrity::Random::reloadAndCheckShouldAuditSlow):
- Source/JavaScriptCore/wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser<Context>::parseBody):
- Source/JavaScriptCore/wasm/WasmOpcodeOrigin.cpp:
(JSC::Wasm::OpcodeOrigin::dump const):
- Source/WTF/WTF.xcodeproj/project.pbxproj:
- Source/WTF/wtf/CMakeLists.txt:
- Source/WTF/wtf/PrintStream.cpp:
(WTF::printInternal):
- Source/WTF/wtf/PrintStream.h:
- Source/WTF/wtf/RawHex.h: Added.
(WTF::RawHex::RawHex):
(WTF::RawHex::ptr const):
(WTF::RawHex::is64Bit const):
(WTF::RawHex::u64 const):
Canonical link: https://commits.webkit.org/251665@main
- 3:00 AM Changeset in webkit [295659] by
-
- 1 edit in trunk/Source/JavaScriptCore/runtime/JSFunction.cpp
REGRESSION (251613@main): Missing exception check in JSFunction::put()
https://bugs.webkit.org/show_bug.cgi?id=241727
Unreviewed follow-up fix.
Adds exception check after reifyLazyPropertyIfNeeded() since it may throw.
- Source/JavaScriptCore/runtime/JSFunction.cpp:
(JSC::JSFunction::put):
Canonical link: https://commits.webkit.org/251664@main
Jun 17, 2022:
- 11:46 PM Changeset in webkit [295658] by
-
- 2 edits4 adds in trunk
[JSC] Fix iterator_next's tmp liveness and OSR exit recovery
https://bugs.webkit.org/show_bug.cgi?id=241702
Reviewed by Mark Lam.
We fix two issues in iterator_next DFG handling.
- Consider the following case,
function inlinedGetterUsedByIteratorNext()
{
if (flag)
ForceOSRExit() Terminal
...
}
And we hit ForceOSRExit and do OSR exit. We are not reporting tmp (nextResult tmp in this case) as live at
the terminal accidentally. As a result, when OSR exit is performed, it is dead.
But this is still used after "done" lookup is finished since "value" lookup also uses this nextResult. As
a result, we encounter an error since nextResult is not recovered after OSR exit.
In this patch, we report liveness of tmp in flushForTerminalImpl to recover them. Strictly speaking, this
code is slightly too conservative: for example, when OSR exit happens for inlined call of "value" getter, "value"'s
requiring tmp is not necessary since this is the last checkpoint and this llint_slow_path_checkpoint_osr_exit_from_inlined_call
is called after finishing the call => we finished all the things. For now, we align it to the other places since
this is conservatively correct. In a future patch, we can make it more precisely modeled.
- llint_slow_path_checkpoint_osr_exit_from_inlined_call should not use handleIteratorNextCheckpoint
handleIteratorNextCheckpoint is not for inlined call. Inlined call is "OSR exit during the checkpoint's call".
Thus, its checkpoint meaning is different from llint_slow_path_checkpoint_osr_exit: for example, when OSR exit
happens for inlined call of "value" getter, all the operation is already done and only thing we need to do is
storing the result value to the specified VirtualRegister position. On the other hand, in llint_slow_path_checkpoint_osr_exit,
we should perform what we need to do in the last checkpoint sequence.
This patch fixes iterator_next's definition in llint_slow_path_checkpoint_osr_exit_from_inlined_call since it
is the only incorrect case.
- JSTests/stress/osr-exit-iterator-next-get-by-id-value-access.js: Added.
(result.get value):
(result.get done):
(iterator.next):
(object.Symbol.iterator):
(test):
- JSTests/stress/osr-exit-iterator-next-get-by-id-value-exit.js: Added.
(result.get value):
(result.get done):
(iterator.next):
(object.Symbol.iterator):
(test):
- JSTests/stress/osr-exit-iterator-next-get-by-id.js: Added.
(result.get value):
(result.get done):
(iterator.next):
(object.Symbol.iterator):
(test):
- JSTests/stress/osr-exit-iterator-open-get-by-id.js: Added.
(iterator.nextImpl):
(iterator.get next):
(object.Symbol.iterator):
(test):
- Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::flushForTerminalImpl):
- Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::callerReturnPC):
(JSC::DFG::reifyInlinedCallFrames):
- Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:
(JSC::LLInt::handleIteratorNextCheckpoint):
(JSC::LLInt::llint_slow_path_checkpoint_osr_exit_from_inlined_call):
Canonical link: https://commits.webkit.org/251663@main
- 10:54 PM Changeset in webkit [295657] by
-
- 1 edit in trunk/Source/WebCore/svg/properties/SVGAnimatedProperty.h
SVGAnimatedProperty::isAnimating need not compute number of animators
https://bugs.webkit.org/show_bug.cgi?id=241732
Reviewed by Tim Horton.
We just need to know if there are any.
- Source/WebCore/svg/properties/SVGAnimatedProperty.h:
(WebCore::SVGAnimatedProperty::isAnimating const):
Canonical link: https://commits.webkit.org/251662@main
- 9:26 PM Changeset in webkit [295656] by
-
- 6 edits in trunk/Source
Enhance Options::useOSLog to accept an os log type value.
https://bugs.webkit.org/show_bug.cgi?id=241719
Reviewed by Yusuke Suzuki.
This option only applies to OS(DARWIN).
For example, we can now use any of these:
--useOSLog=default logs to OS_LOG_TYPE_DEFAULT
--useOSLog=info logs to OS_LOG_TYPE_INFO
--useOSLog=debug logs to OS_LOG_TYPE_DEBUG
--useOSLog=error logs to OS_LOG_TYPE_ERROR
--useOSLog=fault. logs to OS_LOG_TYPE_FAULT
We can still use --useOSLog=0 or false (which means do the normal dataLog) and
--useOSLog=1 or true (which means dataLog to OS_LOG_TYPE_ERROR).
Previously, when we specify --useOSLog=1, we will log to OS_LOG_TYPE_INFO. This
has been a source of friction in usage because no one ever remembers that we need
to enable OS_LOG_TYPE_INFO in the log stream to see this logging. Instead,
--useOSLog=1 will now log to OS_LOG_TYPE_ERROR, which ensures that logging will
show up in log stream. This is fine to do because the --useOSLog=1 option
indicates that the client really wants to see the logs. Otherwise, the client
can use one of the other os log types if they want something different.
Secondly, because --useOSLog=1 indicates that the client really wants to see the
logs, logging to OS_LOG_TYPE_ERROR ensures that the logging is flushed to the
file system instead of sitting in a memory buffer, and potentially not showing up
in the log stream.
Also made the following changes:
- Changed Options::dumpAllOptions to use dataLog instead of printing to stderr. This allows its output to be diverted using Options::useOSLog as well.
- Moved the call to WTF::setDataFile from Options::initialize to Options::recomputeDependentOptions. This allows Options::useOSLog to be specified using the jsc shell's --useOSLog argument instead of requiring it to be specified using the JSC_useOSLog env var in order to work.
To enable this, added a useOSLogOptionHasChanged flag that can be set in
the parser of the Options::useOSLog option. This prevents
Options::recomputeDependentOptions from calling initializeDatafileToUseOSLog()
repeatedly every time any option is set.
- Added initializeDatafileToUseOSLog() which now instantiates the appropriate OSLogPrintStream and sets it using WTF::setDataFile.
initializeDatafileToUseOSLog() also asserts that it is called at most once.
- Added an assertion in WTF::setDataFile() to ensure that it is not called more than once.
- #if out the calls to overrideAliasedOptionWithHeuristic() on PLATFORM(COCOA). They are not needed because, on PLATFORM(COCOA), we already iterate through every env var starting with JSC_ and call Options::setOption() on it. Options::setOption() will also handle aliased options.
For reference, this is an example of how we can view the logs using log stream
once --useOSLog=1 is used:
# log stream --predicate 'category == "DataLog"'
- Source/JavaScriptCore/API/glib/JSCOptions.cpp:
- Source/JavaScriptCore/jsc.cpp:
(CommandLine::parseArguments):
- Source/JavaScriptCore/runtime/Options.cpp:
(JSC::parse):
(JSC::asDarwinOSLogType):
(JSC::initializeDatafileToUseOSLog):
(JSC::asString):
(JSC::Options::recomputeDependentOptions):
(JSC::Options::initialize):
(JSC::Options::setOptionWithoutAlias):
(JSC::Options::dumpAllOptions):
(JSC::OptionReader::Option::initValue):
(JSC::OptionReader::Option::dump const):
(JSC::OptionReader::Option::operator== const):
- Source/JavaScriptCore/runtime/Options.h:
- Source/JavaScriptCore/runtime/OptionsList.h:
- Source/WTF/wtf/DataLog.cpp:
(WTF::setDataFile):
Canonical link: https://commits.webkit.org/251661@main
- 8:57 PM Changeset in webkit [295655] by
-
- 1 edit in trunk/Source/WebCore/page/FocusController.cpp
Assertion failed m_page.shouldSuppressScrollbarAnimations() in FocusController::setIsVisibleAndActiveInternal(bool)
https://bugs.webkit.org/show_bug.cgi?id=241609
Reviewed by Simon Fraser.
Revert to original assert after change in https://bugs.webkit.org/show_bug.cgi?id=238497. In the case of a scrollable
area with no scrollbars, m_scrollerImpPair is not nil, but its members _horizontalScrollerImp and _verticalScrollerImp
are nil, so presumably the NSScroller API handles this case correctly.
- Source/WebCore/page/FocusController.cpp:
(WebCore::FocusController::setIsVisibleAndActiveInternal):
Canonical link: https://commits.webkit.org/251660@main
- 8:46 PM Changeset in webkit [295654] by
-
- 1 edit in trunk/Websites/perf.webkit.org/tools/sync-commits.py
sync-commits.py should force reset to FETCH_HEAD instead.
Patch by Zhifei Fang <facetothefate@gmail.com> on 2022-06-17
Reviewed by Jonathan Bedard.
- Websites/perf.webkit.org/tools/sync-commits.py:
(GitRepository._fetch_remote):
Canonical link: https://commits.webkit.org/251659@main
- 5:50 PM Changeset in webkit [295653] by
-
- 1 edit in trunk/Websites/perf.webkit.org/tools/sync-commits.py
[sync-commit.py] Stop syncing SVN revision after a certain revision
Patch by Zhifei Fang <facetothefate@gmail.com> on 2022-06-17
Reviewed by Dewei Zhu.
- Websites/perf.webkit.org/tools/sync-commits.py:
(load_repository):
(GitRepository.init):
(GitRepository.fetch_next_commit):
(GitRepository._svn_revision_from_git_hash):
(GitRepository._git_hash_from_svn_revision_hash_mixed):
(GitRepository._revision_from_tokens):
(GitRepository._git_hash_from_svn_revision): Deleted.
Canonical link: https://commits.webkit.org/251658@main
- 5:15 PM Changeset in webkit [295652] by
-
- 1 edit in trunk/Source/WebCore/platform/audio/DenormalDisabler.h
General Protection Fault in WebKitWebProcess on 32bit CPUs
Patch by Karo <karogyoker2@gmail.com> on 2022-06-17
https://bugs.webkit.org/show_bug.cgi?id=241588
Reviewed by Yusuke Suzuki.
The DAZ flag is used unconditionally and that makes every 32 bit CPUs crash except newer steppings of Pentium 4.
- Source/WebCore/platform/audio/DenormalDisabler.h:
(WebCore::DenormalDisabler::DenormalDisabler):
(WebCore::DenormalDisabler::isDAZSupported):
Canonical link: https://commits.webkit.org/251657@main
- 4:59 PM Changeset in webkit [295651] by
-
- 8 edits in trunk
Web Inspector: Allow forcing pseudo class :target
https://bugs.webkit.org/show_bug.cgi?id=241707
Reviewed by Patrick Angle and Yusuke Suzuki.
Test: inspector/css/forcePseudoState.html
- Source/JavaScriptCore/inspector/protocol/CSS.json:
- Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::forcePseudoState):
- Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.displayNameForForceablePseudoClass):
(WI.CSSManager.prototype.canForcePseudoClass):
- Source/WebCore/css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
- Source/WebCore/cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::JSC_DEFINE_JIT_OPERATION):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsTarget):
- Source/WebCore/dom/Document.h:
(WebCore::Document::cssTargetMemoryOffset): Deleted.
Adjust the CSS JIT to also take into account Web Inspector forcibly applying:targetstyles.
- LayoutTests/inspector/css/forcePseudoState.html:
- LayoutTests/inspector/css/forcePseudoState-expected.txt:
Canonical link: https://commits.webkit.org/251656@main
- 4:56 PM Changeset in webkit [295650] by
-
- 1 edit in trunk/Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp
pas_panic_on_out_of_memory_error decoding large session state data blobs
https://bugs.webkit.org/show_bug.cgi?id=241486 and <rdar://90025974>
Reviewed by Tim Horton.
- Source/WebKit/UIProcess/mac/LegacySessionStateCoding.cpp:
(WebKit::encodeLegacySessionState): Try malloc, and gracefully handle failure.
This will result in some users losing session state blobs in large single tab use cases,
but is better than crashing the UI process.
Better handling these cases will be subject of followup work.
Canonical link: https://commits.webkit.org/251654@main
- 4:56 PM Changeset in webkit [295649] by
-
- 2 edits2 deletes in trunk
video.currentSrc should not be reset when a new load errors
https://bugs.webkit.org/show_bug.cgi?id=225451
Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-17
Reviewed by Jer Noble.
- LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-currentSrc-expected.txt:
Covered by existing test which was previously failing.
- Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad):
Media test removed since this condition is already covered by the above WPT test.
- LayoutTests/media/video-currentsrc-cleared.html: Removed.
- LayoutTests/media/video-currentsrc-cleared-expected.txt: Removed.
Canonical link: https://commits.webkit.org/251654@main
- 4:47 PM Changeset in webkit [295648] by
-
- 2 edits in trunk/Source/WebKit
Avoid using hardware JPEG decoding in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=241560
<rdar://94474188>
Reviewed by Simon Fraser.
This patch switches the file thumbnail logic in WebKit to use PNG, rather than JPEG.
This provides two benefits: (1) it uses a better image format for this use case,
and (2) it avoids attempts by CoreGraphics to perform hardware JPEG decoding in the
WebContent process, which is prohibited by the current sandbox.
- Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[WKFileUploadPanel _chooseFiles:displayString:iconImage:]): Switch to using UIImagePNGRepresentation.
- Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didChooseFilesForOpenPanelWithDisplayStringAndIcon):
Canonical link: https://commits.webkit.org/251653@main
- 4:18 PM Changeset in webkit [295647] by
-
- 1 edit2 adds in trunk
Cues displayed during end time
https://bugs.webkit.org/show_bug.cgi?id=221854
<rdar://problem/74541188>
Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-17
Reviewed by Eric Carlson.
Fixed edge case with cue intervals that had end times that coincided
with the current media time in order to follow the spec.
Test: media/track/track-cue-endtime.html
- Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
- LayoutTests/media/track/track-cue-endtime-expected.txt: Added.
- LayoutTests/media/track/track-cue-endtime.html: Added.
Canonical link: https://commits.webkit.org/251652@main
- 4:09 PM Changeset in webkit [295646] by
-
- 1 edit in trunk/Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp
Add PaymentHandler references when handling updates
https://bugs.webkit.org/show_bug.cgi?id=241726
<rdar://problem/95372332>
Reviewed by Wenson Hsieh.
- Source/WebCore/Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::PaymentRequest::paymentMethodChanged):
(WebCore::PaymentRequest::settleDetailsPromise):
(WebCore::PaymentRequest::complete):
(WebCore::PaymentRequest::retry):
Canonical link: https://commits.webkit.org/251651@main
- 3:18 PM Changeset in webkit [295645] by
-
- 2 edits in trunk
attachment elements with
-webkit-user-drag: none;should not be draggable
https://bugs.webkit.org/show_bug.cgi?id=241720
rdar://95401577
Reviewed by Tim Horton.
The logic to walk up the ancestor chain in search of draggable elements in
draggableElement()
currently ignores-webkit-user-dragforattachmentelements, and instead considers the
attachment draggable as long as it's either the only element in the selection range, or the
selection range does not encompass the hit-tested attachment element.
Fix this by only proceeding with the single-attachment-drag codepath (
DragSourceAction::Attachment)
in the case where the dragged attachment has a-webkit-user-dragvalue that isn't"none".
Test: WKAttachmentTests.UserDragNonePreventsDragOnAttachmentElement
- Source/WebCore/page/DragController.cpp:
(WebCore::DragController::draggableElement const):
- Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST):
Canonical link: https://commits.webkit.org/251650@main
- 2:42 PM Changeset in webkit [295644] by
-
- 1 edit in trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in
Remove some sandbox telemetry
https://bugs.webkit.org/show_bug.cgi?id=241725
Reviewed by Geoffrey Garen.
Remove some sandbox telemetry in the WebContent process on iOS to make room for other telemetry.
- Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
Canonical link: https://commits.webkit.org/251649@main
- 1:33 PM Changeset in webkit [295643] by
-
- 4 edits in trunk
[git-webkit] Add WebKit-security remote
https://bugs.webkit.org/show_bug.cgi?id=241647
<rdar://problem/95235184>
Reviewed by Stephanie Lewis.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.github): Don't add remote postfix if repo name already has the remote postfix.
- metadata/git_config_extension: Add WebKit-security remote.
Canonical link: https://commits.webkit.org/251648@main
- 12:06 PM Changeset in webkit [295642] by
-
- 1 edit in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm
New test: [macOS/iOS arm64] TestWebKitAPI.WKContentRuleListStoreTest.CrossOriginCookieBlocking is crashing
https://bugs.webkit.org/show_bug.cgi?id=241653
Reviewed by Yusuke Suzuki.
- Tools/TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm:
(TEST_F):
Canonical link: https://commits.webkit.org/251647@main
- 11:57 AM Changeset in webkit [295641] by
-
- 1 edit in trunk/Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm
[WebAuthn] Upgrading a legacy platform credential to a passkey does not delete the legacy credential
https://bugs.webkit.org/show_bug.cgi?id=241608
rdar://95059952
Reviewed by Brent Fulgham.
- Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::deleteDuplicateCredential const):
Query credentials by user handle, regardless of sync status to properly remove
legacy credentials.
Canonical link: https://commits.webkit.org/251646@main
- 11:03 AM Changeset in webkit [295640] by
-
- 1 edit in trunk/Source/WebInspectorUI/UserInterface/Base/Main.js
Inspector window goes into an inactive state when extension tab is selected.
https://bugs.webkit.org/show_bug.cgi?id=241652
rdar://91768323
Reviewed by Devin Rousso.
- Source/WebInspectorUI/UserInterface/Base/Main.js:
(WI.contentLoaded): Update event listeners to use a single _updateWindowInactiveState
and listen to visibilitychange.
(WI._updateWindowInactiveState): Combined from WI._windowFocused and WI._windowBlurred.
Use document.hasFocus() to check for an active window, which works for child frames too.
When an iframe is the active element, we will not get any more focus or blur events for
the main window, so use a 250ms timeout to keep checking while the iframe is focused.
Canonical link: https://commits.webkit.org/251645@main
- 10:42 AM Changeset in webkit [295639] by
-
- 2 edits in trunk/Source/WTF
[Cocoa] Rename WebM Experiment to Alternate WebM Player
https://bugs.webkit.org/show_bug.cgi?id=241695
<rdar://problem/95322406>
Patch by Youssef Soliman <youssefdevelops@gmail.com> on 2022-06-17
Reviewed by Eric Carlson.
Renamed the WebM Experiment to a more legible name and fixed flag to
show up in internal debug menu.
- Source/WTF/Scripts/Preferences/WebPreferencesInternal.yaml:
- Source/WTF/wtf/PlatformEnableCocoa.h:
Canonical link: https://commits.webkit.org/251644@main
- 10:23 AM Changeset in webkit [295638] by
-
- 9 edits4 adds in trunk/LayoutTests/imported/w3c
Update Intersection Observer WPTs
https://bugs.webkit.org/show_bug.cgi?id=241708
Reviewed by Antoine Quint.
Update Intersection Observer WPTs from 93a98d6ac4785d3c78b57845d91c78e2bf12c6eb
- LayoutTests/imported/w3c/resources/import-expectations.json:
- LayoutTests/imported/w3c/resources/resource-files.json:
- LayoutTests/imported/w3c/web-platform-tests/intersection-observer/display-none-expected.txt:
- LayoutTests/imported/w3c/web-platform-tests/intersection-observer/display-none.html:
- LayoutTests/imported/w3c/web-platform-tests/intersection-observer/intersection-ratio-ib-split.html:
- LayoutTests/imported/w3c/web-platform-tests/intersection-observer/intersection-ratio-with-fractional-bounds-2-expected.txt: Added.
- LayoutTests/imported/w3c/web-platform-tests/intersection-observer/intersection-ratio-with-fractional-bounds-2.html: Added.
- LayoutTests/imported/w3c/web-platform-tests/intersection-observer/intersection-ratio-with-fractional-bounds-expected.txt: Added.
- LayoutTests/imported/w3c/web-platform-tests/intersection-observer/intersection-ratio-with-fractional-bounds.html: Added.
- LayoutTests/imported/w3c/web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js:
(return.new.Promise.):
(return.new.Promise):
(waitForNotification):
(waitForFrame): Deleted.
(runTestCycle): Deleted.
- LayoutTests/imported/w3c/web-platform-tests/intersection-observer/v2/simple-occlusion-svg-foreign-object.html:
- LayoutTests/imported/w3c/web-platform-tests/intersection-observer/w3c-import.log:
- LayoutTests/imported/w3c/web-platform-tests/intersection-observer/zero-area-element-visible.html:
Canonical link: https://commits.webkit.org/251643@main
- 9:23 AM Changeset in webkit [295637] by
-
- 3 edits in trunk/Tools/CISupport/ews-build
[ews-build.webkit.org] Seperate authentication for EWS and Merge-Queue
https://bugs.webkit.org/show_bug.cgi?id=241698
<rdar://problem/95328651>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/events.py:
(Events.sendDataToGitHub): Allow caller to pick a different set of GitHub credentials.
(Events.buildFinishedGitHub): Pick GitHub credentials specific to builder.
(Events.stepStartedGitHub): Ditto.
- Tools/CISupport/ews-build/steps.py:
(GitHub):
(GitHub.user_for_queue): Map buildername to GitHub user.
(GitHub.credentials): Allow caller to pick a different set of GitHub credentials.
(GitHubMixin.fetch_data_from_url_with_authentication_github): Pick GitHub credentials
specific to builder.
(GitHubMixin.add_label): Ditto.
(GitHubMixin.remove_labels): Ditto.
(GitHubMixin.comment_on_pr): Ditto.
(GitHubMixin.update_pr): Ditto.
(GitHubMixin.close_pr): Ditto.
(CheckOutPullRequest.run): Ditto.
(PushPullRequestBranch.start): Ditto.
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/251642@main
- 8:45 AM Changeset in webkit [295636] by
-
- 4 edits3 adds in trunk
AX ITM: Crash in com.apple.WebKit.WebContent at Recursion :: com.apple.WebCore: WebCore::AXIsolatedTree::collectNodeChangesForSubtree.
https://bugs.webkit.org/show_bug.cgi?id=241571
Test: accessibility/deep-tree.html
Reviewed by Chris Fleizach.
Added a limit for recursive calls to AXIsolatedTree::collectNodeChangesForSubtree. The limit is obtained from the DOM maximum tree depth.
In addition, added a sanity check during parent-child traversal, that none of the children can be equal to the parent. This will not cover all possible circular relations that can cause an infinite recursion, but may catch some pathological cases.
- Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::collectNodeChangesForSubtree):
(WebCore::AXIsolatedTree::updateNode):
- Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
- LayoutTests/accessibility/deep-tree-expected.txt: Added.
- LayoutTests/accessibility/deep-tree.html: Added.
- LayoutTests/platform/glib/accessibility/deep-tree-expected.txt: Added.
Canonical link: https://commits.webkit.org/251641@main
- 8:43 AM Changeset in webkit [295635] by
-
- 1 edit in trunk/Source/JavaScriptCore/runtime/JSONObject.cpp
Speed up JSON.stringify by cutting down on reference count churn, etc.
https://bugs.webkit.org/show_bug.cgi?id=241533
Reviewed by Ross Kirsling and Yusuke Suzuki.
- Source/JavaScriptCore/runtime/JSONObject.cpp:
(JSC::unwrapBoxedPrimitive): Break out object check so we can host it
into the caller in some cases.
(JSC::PropertyNameForFunctionCall::PropertyNameForFunctionCall): Use
PropertyName instead of Identifier to avoid reference count churn.
(JSC::PropertyNameForFunctionCall::value const): Ditto.
(JSC::Stringifier::stringify): Update to use PropertyName.
(JSC::Stringifier::appendStringifiedValue): Use ASCIILiteral when
appending literals to StringBuilder, for possible future optimization,
no benefit for now. Move exception check inside isObject clause so we
don't do it for non-object values like strings.
(JSC::Stringifier::indent): Use StringView instead of String for
m_indent to avoid reference count churn.
(JSC::Stringifier::unindent): Ditto.
(JSC::Stringifier::startNewLine const): Use a single call to append
instead of two separate ones. Also twweak coding style.
(JSC::Stringifier::Holder::appendNextProperty): Use PropertyName
instead of Identifier.
Canonical link: https://commits.webkit.org/251640@main
- 8:22 AM Changeset in webkit [295634] by
-
- 2 edits in trunk/Tools/CISupport/ews-build
[ews-build.webkit.org] Support periods in reviewer name
https://bugs.webkit.org/show_bug.cgi?id=241706
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(ValidateCommitMessage):
(ValidateCommitMessage.extract_reviewers): Support reviewers with periods in their name.
- Tools/CISupport/ews-build/steps_unittest.py:
(mock_load_contributors):
Canonical link: https://commits.webkit.org/251639@main
- 6:35 AM Changeset in webkit [295633] by
-
- 5 edits2 adds in trunk
Remove redundant logical right computation for grid items in RenderBlock::computeOverflow
https://bugs.webkit.org/show_bug.cgi?id=241689
Reviewed by Simon Fraser.
If the grid content produces layout overflow, we should not need to re-compute it again by looping through the grid items.
- Decouple "include padding end" and "include child's margin end" logic
- Decouple "include padding after" and "include padding end" logic.
- Restore RenderFlexibleBox and RenderGrid computeOverflow calls to pre-r282463 (when clientLogicalRightAndBottomAfterRepositioning was introduced)
- LayoutTests/fast/overflow/grid-horizontal-overflow-with-padding-end-expected.html: Added.
- LayoutTests/fast/overflow/grid-horizontal-overflow-with-padding-end.html: Added.
- Source/WebCore/rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeOverflow):
(WebCore::RenderBlock::layoutOverflowLogicalBottom):
(WebCore::RenderBlock::clientLogicalRightAndBottomAfterRepositioning const): Deleted.
- Source/WebCore/rendering/RenderBlock.h:
- Source/WebCore/rendering/RenderBox.cpp:
(WebCore::RenderBox::layoutOverflowRectForPropagation const):
- Source/WebCore/rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
- Source/WebCore/rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
Canonical link: https://commits.webkit.org/251638@main
- 4:57 AM Changeset in webkit [295632] by
-
- 2 edits2 adds in trunk/LayoutTests/imported/w3c/web-platform-tests
css/css-transitions/before-load-001.html is a unique failure
https://bugs.webkit.org/show_bug.cgi?id=235131
<rdar://87785218>
Patch by Antoine Quint <Antoine Quint> on 2022-06-17
Unreviewed WPT import (https://github.com/web-platform-tests/wpt/pull/34463) and rebaseline.
- LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/before-load-001-expected.txt:
- LayoutTests/imported/w3c/web-platform-tests/css/css-transitions/before-load-001.html:
- LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event-until-move-to-empty-source-expected.txt: Added.
- LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/delay-load-event-until-move-to-empty-source.html: Added.
Canonical link: https://commits.webkit.org/251637@main
- 12:23 AM Changeset in webkit [295631] by
-
- 1 edit in trunk/metadata/contributors.json
Change contributor status of Jean-Yves Avenard from committer to reviewer
Unreviewed change.
- metadata/contributors.json:
Canonical link: https://commits.webkit.org/251636@main