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

Timeline



Aug 24, 2020:

11:15 PM Changeset in webkit [266103] by Carlos Garcia Campos
  • 6 edits in trunk/Source

[GTK] Implement rendering frames timeline panel for GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=150392
<rdar://problem/23200510>

Reviewed by Brian Burg.

Source/WebCore:

Use new RunLoop API to observe the run loop events when the GLib event loop is used.

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::InspectorTimelineAgent::internalStop):

  • inspector/agents/InspectorTimelineAgent.h:

Source/WTF:

Add API to observe RunLoop events for GLib event loop implementation.

  • wtf/RunLoop.h:
  • wtf/glib/RunLoopGLib.cpp:

(WTF::RunLoop::RunLoop): Use RunLoopSource struct and initialize the RunLoop.
(WTF::RunLoop::observe): Add the given observer to the set.
(WTF::RunLoop::notify): Notife observers of the given event.
(WTF::RunLoop::TimerBase::TimerBase): Use RunLoopSource struct and initialize the RunLoop.

10:04 PM Changeset in webkit [266102] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix TLSVersion.DefaultBehavior on Mojave
https://bugs.webkit.org/show_bug.cgi?id=215791

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

HTTPServer::Protocol::HttpsWithLegacyTLS uses tls_protocol_version_t, so this test times out on Mojave.
Enable it for newer OSes.

9:32 PM Changeset in webkit [266101] by keith_miller@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

DFG should always run CFG Simplification after Constant Folding.
https://bugs.webkit.org/show_bug.cgi?id=215286

Reviewed by Robin Morisset.

We didn't do this originally because LICM, many years ago, was
unsound if the CFG didn't have exactly the right shape around
loops. This is no longer true so we don't have to worry about
changing the CFG anymore. While, this doesn't appear to be a
speedup on JetStream 2 CFG, probably because we'd eventually
simplify the graph in B3, CFG Simplification is very cheap and
make other DFG optimizations easier in the future.

Also, remove unecessary validation rule that no exitOKs can come
before any Phi nodes in DFG. This isn't required and fails after
merging two basic blocks where the latter block has a Phi.

  • dfg/DFGCFGSimplificationPhase.cpp:

(JSC::DFG::CFGSimplificationPhase::run):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGValidate.cpp:
8:36 PM Changeset in webkit [266100] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Make TLSVersion.DefaultBehavior more robust
https://bugs.webkit.org/show_bug.cgi?id=215791

Patch by Alex Christensen <achristensen@webkit.org> on 2020-08-24
Reviewed by Darin Adler.

After r265573 sometimes it would assert, which is not a problem because it was failing the first connection
then succeeding the second connection as intended and as happens in the real internet.
Use HTTPServer which accepts a variable number of connections to keep the test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h:
  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::respondWithChallengeThenOK):
(TestWebKitAPI::HTTPServer::respondWithOK):

7:44 PM Changeset in webkit [266099] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

CrashTracer: com.apple.WebKit.WebContent at com.apple.WebKit: WebKit::PDFPlugin::createScrollbar
<rdar://problem/67473335> and https://bugs.webkit.org/show_bug.cgi?id=215787

Reviewed by Tim Horton.

To quote Tim from r264945:
No new tests; timing is such that I can't reproduce without inserting
intentional delays into the main thread hops, which is further than
I'm willing to go for a test.

This is a speculative fix due to the aforementioned reproducibility issue.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::receivedNonLinearizedPDFSentinel): Check on the main thread whenever this is called,

instead of when deciding to dispatch to the main thread.

(WebKit::PDFPlugin::threadEntry): We can't do this check on the background thread when considering the dispatch

to the main thread, as the flag might've changed by then. Let's *just* check it on the main thread.

(WebKit::PDFPlugin::adoptBackgroundThreadDocument): We can't do the check on the background thread when
(WebKit::PDFPlugin::updateScrollbars): This is where the crash itself is. All of the Obj-C code in here is

safe to do after destroy(), up until the very end when we get into pluginView() derefencing.
So it seems prudent to add another check here.

(WebKit::PDFPlugin::documentDataDidFinishLoading): In addition to receivedNonLinearizedPDFSentinel and

adoptBackgroundThreadDocument, this is the final of the (3) calls that end up calling installPDFDocument,
so for added coverage it seems like a prudent place to add the check.

7:03 PM Changeset in webkit [266098] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

Update iOS layout test results after r266087
https://bugs.webkit.org/show_bug.cgi?id=215671

  • web-platform-tests/fetch/content-encoding/bad-gzip-body.any.worker-expected.txt:

Apparently there's a newly passing test here, too.
I wonder why macOS isn't affected by this change.

7:00 PM Changeset in webkit [266097] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

[macOS Big Sur] svg/W3C-I18N/tspan-direction-rtl.svg is failing
<rdar://problem/66861801>

Unreviewed test gardening.

platform/mac-bigsur/svg/W3C-I18N/tspan-direction-rtl-expected.txt: Removed property svn:keywords.

6:53 PM Changeset in webkit [266096] by mmaxfield@apple.com
  • 1 edit in trunk/LayoutTests/ChangeLog

[macOS Big Sur] svg/W3C-I18N/tspan-direction-rtl.svg is failing
<rdar://problem/66861801>

Unreviewed test gardening.

  • platform/mac-bigsur/svg/W3C-I18N/tspan-direction-rtl-expected.txt: Removed property svn:keywords.
6:51 PM Changeset in webkit [266095] by keith_miller@apple.com
  • 22 edits
    2 deletes in trunk/Source/JavaScriptCore

Remove MovHintRemoval phase
https://bugs.webkit.org/show_bug.cgi?id=215785

Reviewed by Saam Barati.

The MovHintRemoval phase doesn't play nicely with our OSR
Availability. Specifically, it needs to do a tricky dance where it
marks all the live ranges of the ZombieHints as not
exitOK. There's also an issue because we treated unused locals as
kill in this block, which is wrong for SSA when a MovHint is
used in another block. Since removing MovHintRemoval isn't a
performance regression, we are removing it rather than fixing bugs
related to it. Relatedly, since the only place we produce
ZombieHints is MovHintRemoval this patch also removes that node
type.

  • Sources.txt:
  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:

(JSC::DFG::clobbersExitState):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGMayExit.cpp:
  • dfg/DFGMovHintRemovalPhase.cpp: Removed.
  • dfg/DFGMovHintRemovalPhase.h: Removed.
  • dfg/DFGNode.h:

(JSC::DFG::Node::containsMovHint):
(JSC::DFG::Node::hasUnlinkedOperand):

  • dfg/DFGNodeType.h:
  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):

  • dfg/DFGPhantomInsertionPhase.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileMovHint):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGVarargsForwardingPhase.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::validateAIState):
(JSC::FTL::DFG::LowerDFGToB3::compileNode):

  • runtime/OptionsList.h:
5:36 PM Changeset in webkit [266094] by Hector Lopez
  • 5 edits in trunk/LayoutTests

[ macOS ] Tests expectations changed as test passing but expected to fail
https://bugs.webkit.org/show_bug.cgi?id=215786

Unreviewed test gardening.

  • TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
5:26 PM Changeset in webkit [266093] by Alan Coon
  • 8 edits in branches/safari-610.1.28.0-branch/Source

Versioning.

WebKit-7610.1.28.0.3

5:14 PM Changeset in webkit [266092] by Karl Rackler
  • 2 edits in trunk/LayoutTests

rdar://67706887 (REGRESSION (r264950): [ iOS 13 WK2 ] imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html is a constant failure)

Unreviewed test gardening.

  • platform/ios-13/TestExpectations:
5:05 PM Changeset in webkit [266091] by keith_miller@apple.com
  • 5 edits
    11 adds in trunk/JSTests

Update test262 (mid Aug 2020 edition)
https://bugs.webkit.org/show_bug.cgi?id=215784

Rubber-stamped by Saam Barati and Yusuke Suzuki.

  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/String/prototype/split/limit-touint32-error.js: Added.

(ExpectedError):
(ExpectedError.prototype.toString):
(nonStringableSeparator.Symbol.toPrimitive):
(nonStringableSeparator.toString):
(nonStringableSeparator.valueOf):
(nonNumberableLimit.Symbol.toPrimitive):

  • test262/test/built-ins/String/prototype/split/separator-tostring-error.js: Added.

(ExpectedError):
(ExpectedError.prototype.toString):
(nonStringableSeparator.toString):

  • test262/test/built-ins/String/prototype/split/separator-undef-limit-zero.js:
  • test262/test/built-ins/String/prototype/split/this-value-tostring-error.js: Added.

(ExpectedError):
(ExpectedError.prototype.toString):
(nonStringableReceiver.toString):
(splitter.Symbol.split):
(catch):
(nonStringableSeparator.Symbol.toPrimitive):
(nonStringableSeparator.toString):
(nonStringableSeparator.valueOf):

  • test262/test/language/module-code/export-default-asyncfunction-declaration-binding-exists.js: Added.

(A):
(export.default.async A):

  • test262/test/language/module-code/export-default-asyncfunction-declaration-binding.js: Added.

(export.default.async A):

  • test262/test/language/module-code/export-default-asyncgenerator-declaration-binding-exists.js: Added.

(AG):
(export.default.async AG):

  • test262/test/language/module-code/export-default-asyncgenerator-declaration-binding.js: Added.

(export.default.async AG):

  • test262/test/language/module-code/export-default-function-declaration-binding-exists.js: Added.

(F):
(export.default.F):

  • test262/test/language/module-code/export-default-function-declaration-binding.js: Added.

(export.default.F):

  • test262/test/language/module-code/export-default-generator-declaration-binding-exists.js: Added.

(G):
(export.default.G):

  • test262/test/language/module-code/export-default-generator-declaration-binding.js: Added.

(export.default.G):

  • test262/test262-Revision.txt:
3:48 PM Changeset in webkit [266090] by Wenson Hsieh
  • 4 edits in trunk

Unreviewed, fix the internal iOS 13.4 build

Source/WebKit:

The -_selectionClipRect SPI method isn't declared in any private headers on iOS 13.4 and prior. This isn't a
problem when building with a non-internal SDK since the SPI is declared in the !USE(APPLE_INTERNAL_SDK)
section in UIKitSPI.h, but on internal builds of iOS 13.4, this declaration is absent from both the internal
SDK and UIKitSPI.h.

To fix the build, simply declare it in the IPI section — once we stop supporting iOS 13.4 as a build target,
this can be moved back into the non-internal section only.

  • Platform/spi/ios/UIKitSPI.h:

Tools:

See Source/WebKit/ChangeLog.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::clipSelectionViewRectToContentView):

3:46 PM Changeset in webkit [266089] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] enable email notifications to patch authors for build or layout test failures on their patch
https://bugs.webkit.org/show_bug.cgi?id=215776

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.analyzeResults): Send email notification to patch authors for build failure due to their patch.
(AnalyzeLayoutTestsResults.report_failure): Send email notification to patch authors for layout test failure.

3:45 PM Changeset in webkit [266088] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] set references header in email so as to group similar emails together
https://bugs.webkit.org/show_bug.cgi?id=215777

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/send_email.py:

(send_email): Add support for setting references header.
(send_email_to_patch_author):
(send_email_to_bot_watchers):

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.send_email_for_new_build_failure): Set references header appropriately.
(ReRunWebKitTests.send_email_for_flaky_failure): Ditto.
(AnalyzeLayoutTestsResults.send_email_for_flaky_failure): Ditto.
(AnalyzeLayoutTestsResults.send_email_for_pre_existing_failure): Ditto.
(AnalyzeLayoutTestsResults.send_email_for_new_test_failures): Ditto.

3:36 PM Changeset in webkit [266087] by commit-queue@webkit.org
  • 34 edits in trunk

Implement Request/Response consuming as FormData
https://bugs.webkit.org/show_bug.cgi?id=215671

Patch by Alex Christensen <achristensen@webkit.org> on 2020-08-24
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/abort/general.any-expected.txt:
  • web-platform-tests/fetch/api/abort/general.any.worker-expected.txt:
  • web-platform-tests/fetch/api/request/request-consume-empty-expected.txt:

This remaining failing test now fails similarly in all browsers.

  • web-platform-tests/fetch/api/request/request-consume-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-002-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-empty-expected.txt:

This remaining failing test now fails similarly in all browsers.

  • web-platform-tests/fetch/api/response/response-consume-expected.txt:
  • web-platform-tests/fetch/api/response/response-error-from-stream-expected.txt:

This change makes the formData failures in this file look like all the other failures in this file,
which should be fixed together in a separate patch.

  • web-platform-tests/fetch/api/response/response-init-002-expected.txt:
  • web-platform-tests/url/urlencoded-parser.any-expected.txt:
  • web-platform-tests/url/urlencoded-parser.any.worker-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-custom-response.https-expected.txt:

Source/WebCore:

Covered by many newly passing WPT tests, for most of which Safari was the only failing browser.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::formData):
(WebCore::FetchBody::consume):
(WebCore::FetchBody::consumeFormData):

  • Modules/fetch/FetchBody.h:
  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::formDataFromData):
(WebCore::resolveWithTypeAndData):
(WebCore::FetchBodyConsumer::resolve):

  • Modules/fetch/FetchBodyConsumer.h:

Source/WebKit:

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish):
Add a fast path that allows non-blob FormData responses from service workers to not hang.
This part is covered by this layout test:
imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-respond-with-custom-response.https.html

Source/WTF:

In order to be compatible with other browsers, we need a verson of String::fromUTF8 that
uses U8_NEXT_OR_FFFD instead of U8_NEXT, but changing that across the board will break other things.
Leave everything else as it is, use templates and constexpr to not add any branches, but add
String::fromUTF8ReplacingInvalidSequences to allow me to make our FormData consuming compatible with other browsers.

  • wtf/text/WTFString.cpp:

(WTF::fromUTF8Helper):
(WTF::String::fromUTF8):
(WTF::String::fromUTF8ReplacingInvalidSequences):

  • wtf/text/WTFString.h:
  • wtf/unicode/UTF8Conversion.cpp:

(WTF::Unicode::convertUTF8ToUTF16Impl):
(WTF::Unicode::convertUTF8ToUTF16):
(WTF::Unicode::convertUTF8ToUTF16ReplacingInvalidSequences):

  • wtf/unicode/UTF8Conversion.h:
2:41 PM Changeset in webkit [266086] by commit-queue@webkit.org
  • 24 edits in trunk/Source

Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to replace _WKProcessPoolConfiguration.hstsStorageDirectory
https://bugs.webkit.org/show_bug.cgi?id=213048

Patch by Alex Christensen <achristensen@webkit.org> on 2020-08-24
Reviewed by Youenn Fablet.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

This uses CFNetwork SPI introduced in rdar://problem/50109631 to allow HSTS storage per NSURLSession.
To be complete, I also deprecated our UI process HSTS state removal attempt SPIs, WKContextResetHSTSHosts and
WKContextResetHSTSHostsAddedAfterDate, which had their last use removed in rdar://problem/64220838.

I manually verified that this new SPI puts HSTS data in the specified location, and I also verified that HSTS
state querying and removal works with the new CFNetwork SPI as it did with the old one.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::hostNamesWithHSTSCache const):
(WebKit::NetworkProcess::deleteHSTSCacheForHostNames):
(WebKit::NetworkProcess::clearHSTSCache):
(WebKit::NetworkProcess::getHostNamesWithHSTSCache): Deleted.

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::hstsStorage const):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::hostNamesWithHSTSCache const):
(WebKit::NetworkProcess::deleteHSTSCacheForHostNames):
(WebKit::NetworkProcess::clearHSTSCache):
(WebKit::NetworkProcess::getHostNamesWithHSTSCache): Deleted.

  • UIProcess/API/C/mac/WKContextPrivateMac.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextResetHSTSHosts):
(WKContextResetHSTSHostsAddedAfterDate):

  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration hstsStorageDirectory]):
(-[_WKWebsiteDataStoreConfiguration setHSTSStorageDirectory:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::privateBrowsingSession): Deleted.
(WebKit::WebProcessPool::resetHSTSHosts): Deleted.
(WebKit::WebProcessPool::resetHSTSHostsAddedAfterDate): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::resolvedHSTSStorageDirectory const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

Source/WTF:

  • wtf/PlatformHave.h:
2:35 PM Changeset in webkit [266085] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Debug ] imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/moving-between-documents/before-prepare-iframe-fetch-error-external-module.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215783

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
2:06 PM Changeset in webkit [266084] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Disable unused RPC services
https://bugs.webkit.org/show_bug.cgi?id=215779

Reviewed by Alexey Proskuryakov.

  • .htaccess:
12:26 PM Changeset in webkit [266083] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] fast/overflow/horizontal-scroll-after-back.html is a flaky timeout

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

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
12:17 PM Changeset in webkit [266082] by emilio
  • 12 edits in trunk

Support quotes:auto and fix quotes serialization.
https://bugs.webkit.org/show_bug.cgi?id=215646

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-content/inheritance-expected.txt: Annotate progression.
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Ditto.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/css-content/inheritance.html

imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::Ref<CSSValue>valueForQuotes):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeQuotes):

  • rendering/style/QuotesData.h:

(WebCore::QuotesData::size const):

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertQuotes):

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Annotate progression.
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Ditto.
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt: Ditto.
11:57 AM Changeset in webkit [266081] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7611.1.1

11:53 AM Changeset in webkit [266080] by Jonathan Bedard
  • 4 edits in trunk/Tools

[resultsdbpy] Fix pip package
https://bugs.webkit.org/show_bug.cgi?id=215721
<rdar://problem/67518275>

Reviewed by Dewei Zhu.

  • Scripts/libraries/resultsdbpy/MANIFEST.in: Add html and css.
  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Include submodules.
  • Scripts/libraries/resultsdbpy/setup.py: Version bump.
11:44 AM Changeset in webkit [266079] by Russell Epstein
  • 1 copy in branches/safari-610-branch

New branch.

11:44 AM Changeset in webkit [266078] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk2 Release ] http/tests/workers/service/basic-install-event-waitUntil-reject.html is a flaky timeout

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

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:40 AM Changeset in webkit [266077] by Devin Rousso
  • 27 edits
    7 moves in trunk/Source

Web Inspector: rename ScriptDebugServer subclasses/methods
https://bugs.webkit.org/show_bug.cgi?id=215363
<rdar://problem/67310441>

Reviewed by Brian Burg.

r266074 merged Inspector::ScriptDebugServer into JSC::Debugger. All subclasses and
functions should be renamed to match this change.

Source/JavaScriptCore:

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • inspector/InspectorEnvironment.h:
  • inspector/JSGlobalObjectDebugger.h: Renamed from Source/JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.h.
  • inspector/JSGlobalObjectDebugger.cpp: Renamed from Source/JavaScriptCore/inspector/JSGlobalObjectScriptDebugServer.cpp.
  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/JSGlobalObjectInspectorController.cpp:
  • inspector/agents/InspectorAuditAgent.h:
  • inspector/agents/InspectorAuditAgent.cpp:
  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:
  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:
  • inspector/agents/InspectorScriptProfilerAgent.cpp:
  • inspector/agents/JSGlobalObjectDebuggerAgent.cpp:
  • inspector/remote/RemoteInspectionTarget.cpp:
  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:

Source/WebCore:

  • Headers.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorController.h:
  • inspector/InspectorController.cpp:
  • inspector/PageDebugger.h: Renamed from Source/WebCore/inspector/PageScriptDebugServer.h.
  • inspector/PageDebugger.cpp: Renamed from Source/WebCore/inspector/PageScriptDebugServer.cpp.
  • inspector/mac/PageDebuggerMac.mm: Renamed from Source/WebCore/inspector/mac/PageScriptDebugServerMac.mm.
  • inspector/WorkerDebugger.h: Renamed from Source/WebCore/inspector/WorkerScriptDebugServer.h.
  • inspector/WorkerDebugger.cpp: Renamed from Source/WebCore/inspector/WorkerScriptDebugServer.cpp.
  • inspector/WorkerInspectorController.h:
  • inspector/WorkerInspectorController.cpp:
  • inspector/agents/InspectorTimelineAgent.cpp:
  • inspector/agents/page/PageDebuggerAgent.cpp:
11:13 AM Changeset in webkit [266076] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: remove legacy code for replacing the Resources Tab and Debugger Tab with the Sources Tab
https://bugs.webkit.org/show_bug.cgi?id=205826

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WI.loaded):

11:06 AM Changeset in webkit [266075] by sihui_liu@apple.com
  • 4 edits in trunk

Source/WebCore:
Text manipulation should not manipulate nodes out of paragraph range
https://bugs.webkit.org/show_bug.cgi?id=215406

Reviewed by Wenson Hsieh.

TextManipulationController currently does not set correct start path for insertion. Therefore, it does not mark
the nodes on the start path but out of range correctly, and may change position of those nodes by mistake. For
example, in the newly added test, text node "zero" can be moved around even though it is not in range.

API test: TextManipulation.CompleteTextManipulationShouldOnlyChangeNodesInParagraphRange

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace):

Tools:
Text manipulationshould not manipulate nodes out of paragraph range
https://bugs.webkit.org/show_bug.cgi?id=215406

Reviewed by Wenson Hsieh.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

10:34 AM Changeset in webkit [266074] by Devin Rousso
  • 107 edits
    1 copy
    3 adds
    4 deletes in trunk

Web Inspector: allow event breakpoints to be configured
https://bugs.webkit.org/show_bug.cgi?id=215362
<rdar://problem/66932921>

Reviewed by Brian Burg.

Source/JavaScriptCore:

This allows developers to do things like:

  • only pause when window.event.type is a certain value
  • ignore the first N pauses
  • evaluate JavaScript whenever an event listener is invoked without pausing
  • inspector/protocol/DOM.json:

Add an options paramater to DOM.setBreakpointForEventListener to allow configuration.

  • inspector/protocol/DOMDebugger.json:

Add an options paramater to DOMDebugger.setEventBreakpoint to allow configuration.

  • debugger/Breakpoint.h:

(JSC::Breakpoint::id const): Added.
(JSC::Breakpoint::sourceID const): Added.
(JSC::Breakpoint::lineNumber const): Added.
(JSC::Breakpoint::columnNumber const): Added.
(JSC::Breakpoint::condition const): Added.
(JSC::Breakpoint::actions const): Added.
(JSC::Breakpoint::isAutoContinue const): Added.
(JSC::Breakpoint::resetHitCount): Added.
(JSC::Breakpoint::isLinked const): Added.
(JSC::Breakpoint::isResolved const): Added.
(JSC::BreakpointsList::~BreakpointsList): Deleted.

  • debugger/Breakpoint.cpp: Added.

(JSC::Breakpoint::Action::Action): Added.
(JSC::Breakpoint::create): Added.
(JSC::Breakpoint::Breakpoint): Added.
(JSC::Breakpoint::link): Added.
(JSC::Breakpoint::resolve): Added.
(JSC::Breakpoint::shouldPause): Added.
Unify JSC::Breakpoint and Inspector::ScriptBreakpoint.

  • debugger/DebuggerPrimitives.h:
  • debugger/Debugger.h:
  • debugger/Debugger.cpp:

(JSC::Debugger::Debugger):
(JSC::Debugger::addObserver): Added.
(JSC::Debugger::removeObserver): Added.
(JSC::Debugger::canDispatchFunctionToObservers const): Added.
(JSC::Debugger::dispatchFunctionToObservers): Added.
(JSC::Debugger::sourceParsed): Added.
(JSC::Debugger::toggleBreakpoint):
(JSC::Debugger::applyBreakpoints):
(JSC::Debugger::resolveBreakpoint):
(JSC::Debugger::setBreakpoint):
(JSC::Debugger::removeBreakpoint):
(JSC::Debugger::didHitBreakpoint): Added.
(JSC::Debugger::clearBreakpoints):
(JSC::Debugger::evaluateBreakpointCondition): Added.
(JSC::Debugger::evaluateBreakpointActions): Added.
(JSC::Debugger::schedulePauseAtNextOpportunity): Added.
(JSC::Debugger::cancelPauseAtNextOpportunity): Added.
(JSC::Debugger::schedulePauseForSpecialBreakpoint): Added.
(JSC::Debugger::cancelPauseForSpecialBreakpoint): Added.
(JSC::Debugger::continueProgram):
(JSC::Debugger::stepNextExpression):
(JSC::Debugger::stepIntoStatement):
(JSC::Debugger::stepOverStatement):
(JSC::Debugger::stepOutOfFunction):
(JSC::Debugger::pauseIfNeeded):
(JSC::Debugger::handlePause): Added.
(JSC::Debugger::exceptionOrCaughtValue): Added.
(JSC::Debugger::atExpression):
(JSC::Debugger::clearNextPauseState):
(JSC::Debugger::willRunMicrotask): Added.
(JSC::Debugger::didRunMicrotask): Added.
(JSC::Debugger::hasBreakpoint): Deleted.
(JSC::Debugger::setPauseOnNextStatement): Deleted.
Unify JSC::Debugger and Inspector::ScriptDebugServer to simplify breakpoint logic.
Introduce the concept of a "special breakpoint", which is essentially a JSC::Breakpoint
that is expected to pause at the next opportunity but isn't tied to a particular location.
As an example, whenever an event breakpoint is hit, instead of just pausing at the next
opportunity, the newly managed JSC::Breakpoint is used as a "special breakpoint", allowing
for it's configuration (ie.g. condition, ignore count, actions, auto-continue) to be used.

  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::objectGroupForBreakpointAction):
(Inspector::breakpointActionTypeForString): Added.
(Inspector::parseBreakpointOptions): Added.
(Inspector::InspectorDebuggerAgent::ProtocolBreakpoint::fromPayload): Added.
(Inspector::InspectorDebuggerAgent::ProtocolBreakpoint::ProtocolBreakpoint): Added.
(Inspector::InspectorDebuggerAgent::ProtocolBreakpoint::createDebuggerBreakpoint const): Added.
(Inspector::InspectorDebuggerAgent::ProtocolBreakpoint::matchesScriptURL const): Added.
(Inspector::InspectorDebuggerAgent::debuggerBreakpointFromPayload): Added.
(Inspector::InspectorDebuggerAgent::enable):
(Inspector::InspectorDebuggerAgent::disable):
(Inspector::InspectorDebuggerAgent::buildBreakpointPauseReason):
(Inspector::InspectorDebuggerAgent::handleConsoleAssert):
(Inspector::InspectorDebuggerAgent::didScheduleAsyncCall):
(Inspector::buildDebuggerLocation):
(Inspector::InspectorDebuggerAgent::setBreakpointByUrl):
(Inspector::InspectorDebuggerAgent::setBreakpoint):
(Inspector::InspectorDebuggerAgent::didSetBreakpoint):
(Inspector::InspectorDebuggerAgent::resolveBreakpoint):
(Inspector::InspectorDebuggerAgent::removeBreakpoint):
(Inspector::InspectorDebuggerAgent::continueToLocation):
(Inspector::InspectorDebuggerAgent::schedulePauseAtNextOpportunity): Added.
(Inspector::InspectorDebuggerAgent::cancelPauseAtNextOpportunity): Added.
(Inspector::InspectorDebuggerAgent::schedulePauseForSpecialBreakpoint): Added.
(Inspector::InspectorDebuggerAgent::cancelPauseForSpecialBreakpoint): Added.
(Inspector::InspectorDebuggerAgent::pause):
(Inspector::InspectorDebuggerAgent::resume):
(Inspector::InspectorDebuggerAgent::didBecomeIdle):
(Inspector::InspectorDebuggerAgent::sourceMapURLForScript):
(Inspector::InspectorDebuggerAgent::didParseSource):
(Inspector::InspectorDebuggerAgent::willRunMicrotask):
(Inspector::InspectorDebuggerAgent::didRunMicrotask):
(Inspector::InspectorDebuggerAgent::didPause):
(Inspector::InspectorDebuggerAgent::breakpointActionSound):
(Inspector::InspectorDebuggerAgent::breakpointActionProbe):
(Inspector::InspectorDebuggerAgent::clearInspectorBreakpointState):
(Inspector::InspectorDebuggerAgent::clearDebuggerBreakpointState):
(Inspector::matches): Deleted.
(Inspector::buildObjectForBreakpointCookie): Deleted.
(Inspector::InspectorDebuggerAgent::breakpointActionsFromProtocol): Deleted.
(Inspector::InspectorDebuggerAgent::schedulePauseOnNextStatement): Deleted.
(Inspector::InspectorDebuggerAgent::cancelPauseOnNextStatement): Deleted.
Create a private ProtocolBreakpoint class that holds the data sent by the frontend. This
is necessary because breakpoints in the frontend have a potentially one-to-many relationship
with breakpoints in the backend, as the same script can be loaded many times on a page. Each
of those scripts is independent, however, and can execute differently, meaning that the same
breakpoint for each script also needs a different state (e.g. ignore count). As such, the
ProtocolBreakpoint is effectively a template that is actualized whenever a new script is
parsed that matches the URL of the ProtocolBreakpoint to create a JSC::Breakpoint that
is used by the JSC::Debugger. ProtocolBreakpoint also parses breakpoint configurations.

  • inspector/InspectorEnvironment.h:
  • inspector/JSGlobalObjectScriptDebugServer.h:
  • inspector/JSGlobalObjectScriptDebugServer.cpp:

(Inspector::JSGlobalObjectScriptDebugServer::JSGlobalObjectScriptDebugServer):
(Inspector::JSGlobalObjectScriptDebugServer::attachDebugger):
(Inspector::JSGlobalObjectScriptDebugServer::detachDebugger):
(Inspector::JSGlobalObjectScriptDebugServer::runEventLoopWhilePaused):

  • inspector/agents/InspectorAuditAgent.h:
  • inspector/agents/InspectorAuditAgent.cpp:

(Inspector::InspectorAuditAgent::run):

  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::setPauseOnExceptionsState):
(Inspector::InspectorRuntimeAgent::evaluate):
(Inspector::InspectorRuntimeAgent::callFunctionOn):
(Inspector::InspectorRuntimeAgent::getPreview):
(Inspector::InspectorRuntimeAgent::getProperties):
(Inspector::InspectorRuntimeAgent::getDisplayableProperties):

  • inspector/agents/InspectorScriptProfilerAgent.cpp:
  • inspector/agents/JSGlobalObjectDebuggerAgent.h:

Replace Inspector::ScriptDebugServer with JSC::Debugger.

  • runtime/JSMicrotask.cpp:

(JSC::JSMicrotask::run):
Drive-by: r248894 mistakenly omitted the call to notify the debugger that the microtask ran.

  • inspector/ScriptBreakpoint.h: Removed.
  • inspector/ScriptDebugListener.h: Removed.
  • inspector/ScriptDebugServer.h: Removed.
  • inspector/ScriptDebugServer.cpp: Removed.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:

Source/WebCore:

This allows developers to do things like:

  • only pause when window.event.type is a certain value
  • ignore the first N pauses
  • evaluate JavaScript whenever an event listener is invoked without pausing

Tests: inspector/dom/breakpoint-for-event-listener.html

inspector/dom-debugger/event-animation-frame-breakpoints.html
inspector/dom-debugger/event-interval-breakpoints.html
inspector/dom-debugger/event-listener-breakpoints.html
inspector/dom-debugger/event-timeout-breakpoints.html

  • inspector/agents/InspectorDOMAgent.h:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::setBreakpointForEventListener):
(WebCore::InspectorDOMAgent::removeBreakpointForEventListener):
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
(WebCore::InspectorDOMAgent::breakpointForEventListener):
(WebCore::InspectorDOMAgent::hasBreakpointForEventListener): Deleted.

  • inspector/agents/InspectorDOMDebuggerAgent.h:
  • inspector/agents/InspectorDOMDebuggerAgent.cpp:

(WebCore::InspectorDOMDebuggerAgent::disable):
(WebCore::InspectorDOMDebuggerAgent::mainFrameNavigated):
(WebCore::InspectorDOMDebuggerAgent::setEventBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeEventBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::willHandleEvent):
(WebCore::InspectorDOMDebuggerAgent::didHandleEvent):
(WebCore::InspectorDOMDebuggerAgent::willFireTimer):
(WebCore::InspectorDOMDebuggerAgent::didFireTimer):

  • inspector/agents/page/PageDOMDebuggerAgent.h:
  • inspector/agents/page/PageDOMDebuggerAgent.cpp:

(WebCore::PageDOMDebuggerAgent::disable):
(WebCore::PageDOMDebuggerAgent::mainFrameNavigated):
(WebCore::PageDOMDebuggerAgent::willFireAnimationFrame):
(WebCore::PageDOMDebuggerAgent::didFireAnimationFrame):
(WebCore::PageDOMDebuggerAgent::setAnimationFrameBreakpoint):

  • inspector/agents/worker/WorkerDOMDebuggerAgent.h:
  • inspector/agents/worker/WorkerDOMDebuggerAgent.cpp:

(WebCore::WorkerDOMDebuggerAgent::setAnimationFrameBreakpoint):
Keep a JSC::Breakpoint for each event breakpoint instead of a simple bool, allowing for
configuration when the breakpoint is first set. When any of these breakpoints are hit, pass
it to the JSC::Debugger as a "special breakpoint", which behaves the same as "pause ASAP"
but also supports a condition, an ignore count, actions, and auto-continue. Reset the hit
count for any of these "special breakpoints" that persist across Web Inspector sessions
when the main frame navigates.

  • inspector/PageScriptDebugServer.h:
  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::PageScriptDebugServer):
(WebCore::PageScriptDebugServer::attachDebugger):
(WebCore::PageScriptDebugServer::detachDebugger):
(WebCore::PageScriptDebugServer::didPause):
(WebCore::PageScriptDebugServer::didContinue):
(WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
(WebCore::PageScriptDebugServer::runEventLoopWhilePausedInternal):
(WebCore::PageScriptDebugServer::isContentScript const):
(WebCore::PageScriptDebugServer::reportException const):

  • inspector/WorkerScriptDebugServer.h:
  • inspector/WorkerScriptDebugServer.cpp:

(WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
(WebCore::WorkerScriptDebugServer::attachDebugger):
(WebCore::WorkerScriptDebugServer::detachDebugger):
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
(WebCore::WorkerScriptDebugServer::reportException const):

  • inspector/agents/page/PageDebuggerAgent.h:
  • inspector/agents/page/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::sourceMapURLForScript):
Replace Inspector::ScriptDebugServer with JSC::Debugger.

  • inspector/TimelineRecordFactory.h:
  • inspector/TimelineRecordFactory.cpp:

(WebCore::TimelineRecordFactory::createProbeSampleData):

  • inspector/agents/InspectorTimelineAgent.h:
  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::InspectorTimelineAgent::internalStop):
(WebCore::InspectorTimelineAgent::breakpointActionProbe):
Replace Inspector::ScriptBreakpoint with JSC::Breakpoint.

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didHandleEvent):
(WebCore::InspectorInstrumentation::didFireTimer):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didHandleEventImpl):
(WebCore::InspectorInstrumentation::didFireTimerImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::didFireAnimationFrameImpl):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::innerInvokeEventListeners):

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::fired):
When notifying Web Inspector that activity did occur, include all information previously
included when notifying Web Inspector that that activity was about to occur so that Web
Inspector can know whether a pause for the "special breakpoint" for that activity is still
scheduled and if so cancel it.

Source/WebInspectorUI:

This allows developers to do things like:

  • only pause when window.event.type is a certain value
  • ignore the first N pauses
  • evaluate JavaScript whenever an event listener is invoked without pausing
  • UserInterface/Models/Breakpoint.js:

(WI.Breakpoint):
(WI.Breakpoint.prototype.toJSON):
(WI.Breakpoint.prototype.get special): Added.
(WI.Breakpoint.prototype.get removable): Added.
(WI.Breakpoint.prototype.get editable): Added.
(WI.Breakpoint.prototype.set condition):
(WI.Breakpoint.prototype.get ignoreCount):
(WI.Breakpoint.prototype.set ignoreCount):
(WI.Breakpoint.prototype.get autoContinue):
(WI.Breakpoint.prototype.set autoContinue):
(WI.Breakpoint.prototype.get actions):
(WI.Breakpoint.prototype.get probeActions):
(WI.Breakpoint.prototype.cycleToNextMode):
(WI.Breakpoint.prototype.createAction):
(WI.Breakpoint.prototype.recreateAction):
(WI.Breakpoint.prototype.removeAction):
(WI.Breakpoint.prototype.clearActions):
(WI.Breakpoint.prototype.remove): Added.
(WI.Breakpoint.prototype.optionsToProtocol): Added.
(WI.Breakpoint.prototype.breakpointActionDidChange):
(WI.Breakpoint.fromJSON): Deleted.
(WI.Breakpoint.prototype.get sourceCodeLocation): Deleted.
(WI.Breakpoint.prototype.get contentIdentifier): Deleted.
(WI.Breakpoint.prototype.get scriptIdentifier): Deleted.
(WI.Breakpoint.prototype.get target): Deleted.
(WI.Breakpoint.prototype.get identifier): Deleted.
(WI.Breakpoint.prototype.set identifier): Deleted.
(WI.Breakpoint.prototype.get resolved): Deleted.
(WI.Breakpoint.prototype.set resolved): Deleted.
(WI.Breakpoint.prototype.saveIdentityToCookie): Deleted.
(WI.Breakpoint.prototype._isSpecial): Deleted.
(WI.Breakpoint.prototype._sourceCodeLocationLocationChanged): Deleted.
(WI.Breakpoint.prototype._sourceCodeLocationDisplayLocationChanged): Deleted.

  • UserInterface/Models/DOMBreakpoint.js:

(WI.DOMBreakpoint):
(WI.DOMBreakpoint.fromJSON): Added.
(WI.DOMBreakpoint.prototype.remove): Added.
(WI.DOMBreakpoint.prototype.toJSON):
(WI.DOMBreakpoint.deserialize): Deleted.
(WI.DOMBreakpoint.prototype.get disabled): Deleted.
(WI.DOMBreakpoint.prototype.set disabled): Deleted.

  • UserInterface/Models/EventBreakpoint.js:

(WI.EventBreakpoint):
(WI.EventBreakpoint.fromJSON): Added.
(WI.EventBreakpoint.prototype.get special): Added.
(WI.EventBreakpoint.prototype.get editable): Added.
(WI.EventBreakpoint.prototype.remove): Added.
(WI.EventBreakpoint.prototype.saveIdentityToCookie):
(WI.EventBreakpoint.prototype.toJSON):
(WI.EventBreakpoint.deserialize): Deleted.
(WI.EventBreakpoint.prototype.get disabled): Deleted.
(WI.EventBreakpoint.prototype.set disabled): Deleted.

  • UserInterface/Models/JavaScriptBreakpoint.js: Copied from UserInterface/Models/Breakpoint.js.

(WI.JavaScriptBreakpoint):
(WI.JavaScriptBreakpoint.fromJSON):
(WI.JavaScriptBreakpoint.prototype.toJSON):
(WI.JavaScriptBreakpoint.prototype.get sourceCodeLocation):
(WI.JavaScriptBreakpoint.prototype.get contentIdentifier):
(WI.JavaScriptBreakpoint.prototype.get scriptIdentifier):
(WI.JavaScriptBreakpoint.prototype.get target):
(WI.JavaScriptBreakpoint.prototype.get special): Added.
(WI.JavaScriptBreakpoint.prototype.get removable): Added.
(WI.JavaScriptBreakpoint.prototype.get editable): Added.
(WI.JavaScriptBreakpoint.prototype.get identifier):
(WI.JavaScriptBreakpoint.prototype.set identifier):
(WI.JavaScriptBreakpoint.prototype.get resolved):
(WI.JavaScriptBreakpoint.prototype.set resolved):
(WI.JavaScriptBreakpoint.prototype.remove): Added.
(WI.JavaScriptBreakpoint.prototype.saveIdentityToCookie):
(WI.JavaScriptBreakpoint.prototype._isSpecial):
(WI.JavaScriptBreakpoint.prototype._sourceCodeLocationLocationChanged):
(WI.JavaScriptBreakpoint.prototype._sourceCodeLocationDisplayLocationChanged):

  • UserInterface/Models/URLBreakpoint.js:

(WI.URLBreakpoint):
(WI.URLBreakpoint.fromJSON): Added.
(WI.URLBreakpoint.prototype.get special): Added.
(WI.URLBreakpoint.prototype.remove): Added.
(WI.URLBreakpoint.prototype.toJSON):
(WI.URLBreakpoint.deserialize): Deleted.
(WI.URLBreakpoint.prototype.get disabled): Deleted.
(WI.URLBreakpoint.prototype.set disabled): Deleted.
Rename WI.Breakpoint to WI.JavaScriptBreakpoint and use WI.Breakpoint as a new common
base class for all breakpoint types, allowing more logic to be shared (e.g. disabled state).
Additionally, breakpoints are now able to

  • determine whether or not they're
    • special
    • removable
    • editable (i.e. configurable)
  • remove themselves

without the caller needing to know what manager to consult with.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager):
(WI.DOMManager.supportsEventListenerBreakpointConfiguration): Added.
(WI.DOMManager.prototype.setBreakpointForEventListener):
(WI.DOMManager.prototype.removeBreakpointForEventListener):
(WI.DOMManager.prototype._setEventBreakpoint): Added.
(WI.DOMManager.prototype._removeEventBreakpoint): Added.
(WI.DOMManager.prototype._handleEventBreakpointEditablePropertyChanged): Added.
(WI.DOMManager.prototype._handleEventBreakpointActionsChanged): Added.
(WI.DOMManager.prototype._updateEventBreakpoint): Deleted.
Keep track of configuration changes for specific listener breakpoints.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager):
(WI.DOMDebuggerManager.prototype.initializeTarget):
(WI.DOMDebuggerManager.prototype.addDOMBreakpoint):
(WI.DOMDebuggerManager.prototype.removeDOMBreakpoint):
(WI.DOMDebuggerManager.prototype.addEventBreakpoint):
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint):
(WI.DOMDebuggerManager.prototype.addURLBreakpoint):
(WI.DOMDebuggerManager.prototype.removeURLBreakpoint):
(WI.DOMDebuggerManager.prototype._commandArgumentsForEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._setEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._removeEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._handleEventBreakpointDisabledStateChanged): Added.
(WI.DOMDebuggerManager.prototype._handleEventBreakpointEditablePropertyChanged): Added.
(WI.DOMDebuggerManager.prototype._handleEventBreakpointActionsChanged): Added.
(WI.DOMDebuggerManager.prototype.isBreakpointSpecial): Deleted.
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint): Deleted.
Keep track of configuration changes for special event breakpoints.
Store special event breakpoints inside WI.objectStores.eventBreakpoints.

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager):
(WI.DebuggerManager.prototype.addBreakpoint):
(WI.DebuggerManager.prototype.removeBreakpoint):
(WI.DebuggerManager.prototype.addProbesForBreakpoint): Added.
(WI.DebuggerManager.prototype.removeProbesForBreakpoint): Added.
(WI.DebuggerManager.prototype.updateProbesForBreakpoint): Added.
(WI.DebuggerManager.prototype._setBreakpoint):
(WI.DebuggerManager.prototype._breakpointEditablePropertyDidChange):
(WI.DebuggerManager.prototype._handleBreakpointActionsDidChange):
(WI.DebuggerManager.prototype.isBreakpointRemovable): Deleted.
(WI.DebuggerManager.prototype.isBreakpointSpecial): Deleted.
(WI.DebuggerManager.prototype.isBreakpointEditable): Deleted.
(WI.DebuggerManager.prototype._debuggerBreakpointActionType): Deleted.
(WI.DebuggerManager.prototype._debuggerBreakpointOptions): Deleted.
(WI.DebuggerManager.prototype._addProbesForBreakpoint): Deleted.
(WI.DebuggerManager.prototype._removeProbesForBreakpoint): Deleted.
(WI.DebuggerManager.prototype._updateProbesForBreakpoint): Deleted.
Replace WI.Breakpoint with WI.JavaScriptBreakpoint.
Probes now support WI.EventBreakpoint in addition to WI.JavaScriptBreakpoint.

  • UserInterface/Controllers/BreakpointPopoverController.js:

(WI.BreakpointPopoverController.prototype.appendContextMenuItems):
(WI.BreakpointPopoverController.prototype._createPopoverContent):
Allow any breakpoint instead of only WI.JavaScriptBreakpoint.
Drive-by: the existing ignoreCount value wasn't being used to populate the <input>.

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement.prototype.ondelete):
(WI.BreakpointTreeElement.prototype.get listenerSet): Added.
(WI.BreakpointTreeElement.prototype.updateStatus): Added.
(WI.BreakpointTreeElement.prototype.updateTitles): Added.
(WI.BreakpointTreeElement.prototype.get breakpoint): Deleted.
(WI.BreakpointTreeElement.prototype.get filterableData): Deleted.
(WI.BreakpointTreeElement.prototype._updateTitles): Deleted.
(WI.BreakpointTreeElement.prototype._updateStatus): Deleted.
(WI.BreakpointTreeElement.prototype._breakpointLocationDidChange): Deleted.

  • UserInterface/Views/BreakpointTreeElement.css:

(.item.breakpoint .status > .status-image):
(.item.breakpoint.paused .icon): Added.
(@media (prefers-color-scheme: dark) .item.breakpoint.paused .icon): Added.
(.item.breakpoint .status > .status-image.resolved): Deleted.
(body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within .item.breakpoint.selected .status > .status-image.resolved): Deleted.
(.item.breakpoint .subtitle.formatted-location): Deleted.
(.breakpoint-debugger-statement-icon .icon): Deleted.
(.breakpoint-exception-icon .icon): Deleted.
(.breakpoint-assertion-icon .icon): Deleted.
(.breakpoint-microtask-icon .icon): Deleted.
(.breakpoint-paused-icon .icon): Deleted.
(.breakpoint-generic-line-icon .icon): Deleted.
(.breakpoint-generic-line-icon .icon > span): Deleted.
(.data-updated.breakpoint-generic-line-icon .icon > span): Deleted.
(@media (prefers-color-scheme: dark) .breakpoint-debugger-statement-icon .icon): Deleted.
(@media (prefers-color-scheme: dark) .breakpoint-exception-icon .icon): Deleted.
(@media (prefers-color-scheme: dark) .breakpoint-assertion-icon .icon): Deleted.
(@media (prefers-color-scheme: dark) .breakpoint-microtask-icon .icon): Deleted.
(@media (prefers-color-scheme: dark) .breakpoint-paused-icon .icon): Deleted.
(@media (prefers-color-scheme: dark) .breakpoint-generic-line-icon .icon): Deleted.

  • UserInterface/Views/DOMBreakpointTreeElement.js:

(WI.DOMBreakpointTreeElement):
(WI.DOMBreakpointTreeElement.prototype.onattach): Deleted.
(WI.DOMBreakpointTreeElement.prototype.ondetach): Deleted.
(WI.DOMBreakpointTreeElement.prototype.ondelete): Deleted.
(WI.DOMBreakpointTreeElement.prototype.onenter): Deleted.
(WI.DOMBreakpointTreeElement.prototype.onspace): Deleted.
(WI.DOMBreakpointTreeElement.prototype.populateContextMenu): Deleted.
(WI.DOMBreakpointTreeElement.prototype._statusImageElementClicked): Deleted.
(WI.DOMBreakpointTreeElement.prototype._statusImageElementFocused): Deleted.
(WI.DOMBreakpointTreeElement.prototype._statusImageElementMouseDown): Deleted.
(WI.DOMBreakpointTreeElement.prototype._toggleBreakpoint): Deleted.
(WI.DOMBreakpointTreeElement.prototype._updateStatus): Deleted.

  • UserInterface/Views/DOMBreakpointTreeElement.css:

(.item.breakpoint.dom.subtree-modified:not(.paused) .icon): Added.
(.item.breakpoint.dom.attribute-modified:not(.paused) .icon): Added.
(.item.breakpoint.dom.node-removed:not(.paused) .icon): Added.
(@media (prefers-color-scheme: dark) .item.breakpoint.dom.subtree-modified:not(.paused) .icon): Added.
(@media (prefers-color-scheme: dark) .item.breakpoint.dom.attribute-modified:not(.paused) .icon): Added.
(@media (prefers-color-scheme: dark) .item.breakpoint.dom.node-removed:not(.paused) .icon): Added.
(.breakpoint.dom.breakpoint-for-subtree-modified:not(.breakpoint-paused-icon) .icon): Deleted.
(.breakpoint.dom.breakpoint-for-attribute-modified:not(.breakpoint-paused-icon) .icon): Deleted.
(.breakpoint.dom.breakpoint-for-node-removed:not(.breakpoint-paused-icon) .icon): Deleted.
(@media (prefers-color-scheme: dark) .breakpoint.dom.breakpoint-for-subtree-modified:not(.breakpoint-paused-icon) .icon): Deleted.
(@media (prefers-color-scheme: dark) .breakpoint.dom.breakpoint-for-attribute-modified:not(.breakpoint-paused-icon) .icon): Deleted.
(@media (prefers-color-scheme: dark) .breakpoint.dom.breakpoint-for-node-removed:not(.breakpoint-paused-icon) .icon): Deleted.

  • UserInterface/Views/EventBreakpointTreeElement.js:

(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.onattach): Deleted.
(WI.EventBreakpointTreeElement.prototype.ondetach): Deleted.
(WI.EventBreakpointTreeElement.prototype.ondelete): Deleted.
(WI.EventBreakpointTreeElement.prototype.onenter): Deleted.
(WI.EventBreakpointTreeElement.prototype.onspace): Deleted.
(WI.EventBreakpointTreeElement.prototype.populateContextMenu): Deleted.
(WI.EventBreakpointTreeElement.prototype._statusImageElementClicked): Deleted.
(WI.EventBreakpointTreeElement.prototype._statusImageElementFocused): Deleted.
(WI.EventBreakpointTreeElement.prototype._statusImageElementMouseDown): Deleted.
(WI.EventBreakpointTreeElement.prototype._toggleBreakpoint): Deleted.
(WI.EventBreakpointTreeElement.prototype._updateStatus): Deleted.

  • UserInterface/Views/EventBreakpointTreeElement.css:

(.item.breakpoint.event.animation-frame:not(.paused) .icon): Added.
(.item.breakpoint.event.interval:not(.paused) .icon): Added.
(.item.breakpoint.event.listener:not(.paused) .icon): Added.
(.item.breakpoint.event.timeout:not(.paused) .icon): Added.
(@media(prefers-color-scheme: dark) .item.breakpoint.event.animation-frame:not(.paused) .icon): Added.
(@media(prefers-color-scheme: dark) .item.breakpoint.event.interval:not(.paused) .icon): Added.
(@media(prefers-color-scheme: dark) .item.breakpoint.event.listener:not(.paused) .icon): Added.
(@media(prefers-color-scheme: dark) .item.breakpoint.event.timeout:not(.paused) .icon): Added.
(.breakpoint.event.breakpoint-for-animation-frame:not(.breakpoint-paused-icon) .icon): Deleted.
(.breakpoint.event.breakpoint-for-interval:not(.breakpoint-paused-icon) .icon): Deleted.
(.breakpoint.event.breakpoint-for-listener:not(.breakpoint-paused-icon) .icon): Deleted.
(.breakpoint.event.breakpoint-for-timeout:not(.breakpoint-paused-icon) .icon): Deleted.
(@media(prefers-color-scheme: dark) .breakpoint.event.breakpoint-for-animation-frame:not(.breakpoint-paused-icon) .icon): Deleted.
(@media(prefers-color-scheme: dark) .breakpoint.event.breakpoint-for-interval:not(.breakpoint-paused-icon) .icon): Deleted.
(@media(prefers-color-scheme: dark) .breakpoint.event.breakpoint-for-listener:not(.breakpoint-paused-icon) .icon): Deleted.
(@media(prefers-color-scheme: dark) .breakpoint.event.breakpoint-for-timeout:not(.breakpoint-paused-icon) .icon): Deleted.

  • UserInterface/Views/JavaScriptBreakpointTreeElement.js: Copied from Source/WebInspectorUI/UserInterface/Views/BreakpointTreeElement.js.

(WI.JavaScriptBreakpointTreeElement):
(WI.JavaScriptBreakpointTreeElement.prototype.get filterableData):
(WI.JavaScriptBreakpointTreeElement.prototype.updateStatus): Added.
(WI.JavaScriptBreakpointTreeElement.prototype.updateTitles): Added.
(WI.JavaScriptBreakpointTreeElement.prototype._breakpointLocationDidChange):

  • UserInterface/Views/JavaScriptBreakpointTreeElement.css: Copied from Source/WebInspectorUI/UserInterface/Views/BreakpointTreeElement.css.

(.item.breakpoint.javascript .status > .status-image): Added.
(.item.breakpoint.javascript .status > .status-image.resolved): Added.
(body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within .item.breakpoint.javascript.selected .status > .status-image.resolved): Added.
(.item.breakpoint.javascript .subtitle.formatted-location): Added.
(.item.breakpoint.javascript.line .icon): Added.
(.item.breakpoint.javascript.line .icon > span): Added.
(.data-updated.item.breakpoint.javascript.line .icon > span): Added.
(.item.breakpoint.javascript.debugger-statement .icon): Added.
(.item.breakpoint.javascript.exception .icon): Added.
(.item.breakpoint.javascript.assertion .icon): Added.
(.item.breakpoint.javascript.microtask .icon): Added.
(@media (prefers-color-scheme: dark) .item.breakpoint.javascript.line .icon): Added.
(@media (prefers-color-scheme: dark) .item.breakpoint.javascript.debugger-statement .icon): Added.
(@media (prefers-color-scheme: dark) .item.breakpoint.javascript.exception .icon): Added.
(@media (prefers-color-scheme: dark) .item.breakpoint.javascript.assertion .icon): Added.
(@media (prefers-color-scheme: dark) .item.breakpoint.javascript.microtask .icon): Added.

  • UserInterface/Views/URLBreakpointTreeElement.js:

(WI.URLBreakpointTreeElement):
(WI.URLBreakpointTreeElement.prototype.onattach): Deleted.
(WI.URLBreakpointTreeElement.prototype.ondetach): Deleted.
(WI.URLBreakpointTreeElement.prototype.ondelete): Deleted.
(WI.URLBreakpointTreeElement.prototype.onenter): Deleted.
(WI.URLBreakpointTreeElement.prototype.onspace): Deleted.
(WI.URLBreakpointTreeElement.prototype.populateContextMenu): Deleted.
(WI.URLBreakpointTreeElement.prototype._statusImageElementClicked): Deleted.
(WI.URLBreakpointTreeElement.prototype._statusImageElementFocused): Deleted.
(WI.URLBreakpointTreeElement.prototype._statusImageElementMouseDown): Deleted.
(WI.URLBreakpointTreeElement.prototype._toggleBreakpoint): Deleted.
(WI.URLBreakpointTreeElement.prototype._updateStatus): Deleted.

  • UserInterface/Views/URLBreakpointTreeElement.css:

(.item.breakpoint.url .subtitle): Added.
(.item.breakpoint.url:not(.paused) .icon): Added.
(@media (prefers-color-scheme: dark) .item.breakpoint.url:not(.paused) .icon): Added.
(.breakpoint.url .subtitle): Deleted.
(.breakpoint.url:not(.breakpoint-paused-icon) .icon): Deleted.
(@media (prefers-color-scheme: dark) .breakpoint.url:not(.breakpoint-paused-icon) .icon): Deleted.
Rename WI.BreakpointTreeElement to WI.JavaScriptBreakpointTreeElement and use
WI.BreakpointTreeElement as a new common base class for all breakpoint tree elements,
allowing more logic and styles to be shared (e.g. disabled state).

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype.closed):
(WI.SourcesNavigationSidebarPanel.prototype._insertDebuggerTreeElement):
(WI.SourcesNavigationSidebarPanel.prototype._compareJavaScriptBreakpointTreeElements): Added.
(WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint):
(WI.SourcesNavigationSidebarPanel.prototype._removeAllBreakpoints):
(WI.SourcesNavigationSidebarPanel.prototype._breakpointsBeneathTreeElement):
(WI.SourcesNavigationSidebarPanel.prototype._addIssue):
(WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection):
(WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange):
(WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateBreakpointContextMenu.addToggleForSpecialEventBreakpoint):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateBreakpointContextMenu):
(WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange):
(WI.SourcesNavigationSidebarPanel.prototype._compareBreakpointTreeElements): Deleted.

  • UserInterface/Models/ProbeSet.js:

(WI.ProbeSet):
(WI.ProbeSet.prototype.createProbe):
(WI.ProbeSet.prototype.willRemove):

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype._processRecord):

  • UserInterface/Views/ProbeSetDetailsSection.js:

(WI.ProbeSetDetailsSection):

  • UserInterface/Views/ProbeDetailsSidebarPanel.js:

(WI.ProbeDetailsSidebarPanel.prototype.inspect):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor):
(WI.SourceCodeTextEditor.prototype.close):
(WI.SourceCodeTextEditor.prototype.textEditorBreakpointAdded):

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype.get supplementalRepresentedObjects):
(WI.TextResourceContentView.prototype._probeSetsChanged):
Probes now support WI.EventBreakpoint in addition to WI.JavaScriptBreakpoint.

  • UserInterface/Views/ContentView.js:

(WI.ContentView.createFromRepresentedObject):
(WI.ContentView.resolvedRepresentedObjectForRepresentedObject):
(WI.ContentView.isViewable):

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):
Replace WI.Breakpoint with WI.JavaScriptBreakpoint.

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView):
Replace WI.DOMBreakpoint with WI.Breakpoint.

  • UserInterface/Views/EventListenerSectionGroup.js:

(WI.EventListenerSectionGroup):

  • UserInterface/Views/EventListenerSectionGroup.css:

(.event-listener-section > .content input[type="checkbox"] + .go-to-arrow): Added.
(.event-listener-section > .content input[type="checkbox"]:not(:checked) + .go-to-arrow): Added.
Add a go-to arrow next to the Breakpoint checkbox that reveals the WI.EventBreakpoint in
the Sources Tab.

  • UserInterface/Views/BreakpointActionView.js:

(WI.BreakpointActionView.prototype._appendActionButtonClicked):
Drive-by: minor code cleanup.

  • UserInterface/Views/CallFrameTreeElement.js:

(WI.CallFrameTreeElement.prototype.populateContextMenu):
Drive-by: include source code location context menu items.

  • UserInterface/Base/Setting.js:
  • UserInterface/Main.html:
  • UserInterface/Test.html:

LayoutTests:

  • inspector/dom-debugger/resources/event-breakpoint-utilities.js:

(TestPage.registerInitializer.InspectorTest.EventBreakpoint.addBreakpointOptionsTestCases): Added.
(TestPage.registerInitializer.InspectorTest.EventBreakpoint.async teardown):
(TestPage.registerInitializer.InspectorTest.EventBreakpoint.createBreakpoint):
(TestPage.registerInitializer.InspectorTest.EventBreakpoint.removeBreakpoint):

  • inspector/dom/breakpoint-for-event-listener.html:
  • inspector/dom/breakpoint-for-event-listener-expected.txt:
  • inspector/dom-debugger/event-animation-frame-breakpoints.html:
  • inspector/dom-debugger/event-animation-frame-breakpoints-expected.txt:
  • inspector/dom-debugger/event-interval-breakpoints.html:
  • inspector/dom-debugger/event-interval-breakpoints-expected.txt:
  • inspector/dom-debugger/event-listener-breakpoints.html:
  • inspector/dom-debugger/event-listener-breakpoints-expected.txt:
  • inspector/dom-debugger/event-timeout-breakpoints.html:
  • inspector/dom-debugger/event-timeout-breakpoints-expected.txt:

Add tests for new event breakpoint configuration options.

  • http/tests/inspector/debugger/debugger-test.js:

(TestPage.registerInitializer.InspectorTest.startTracingBreakpoints):

  • http/tests/inspector/resources/probe-test.js:

(TestPage.registerInitializer.ProtocolTest.Probe.installTracingListeners):

  • inspector/debugger/breakpoint-action-eval.html:
  • inspector/debugger/breakpoint-action-log.html:
  • inspector/debugger/breakpoint-columns.html:
  • inspector/debugger/breakpoint-scope.html:
  • inspector/debugger/debugger-stack-overflow.html:
  • inspector/debugger/pause-reason.html:
  • inspector/debugger/probe-manager-add-remove-actions.html:
  • inspector/debugger/stepping/stepping-through-autoContinue-breakpoint.html:
  • inspector/debugger/tail-deleted-frames-this-value.html:
  • inspector/debugger/tail-recursion.html:
  • inspector/worker/debugger-pause.html:
  • inspector/worker/debugger-shared-breakpoint.html:

Update existing breakpoint tests to use new model objects.

10:32 AM Changeset in webkit [266073] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Regression (r266028): platform/ios/ios/fast/coordinates/range-client-rects.html
https://bugs.webkit.org/show_bug.cgi?id=215772

Unreviewwed test gardening.

  • platform/ios-wk2/TestExpectations:
10:31 AM Changeset in webkit [266072] by Devin Rousso
  • 39 edits in trunk/Source

Web Inspector: remove "extra domains" concept now that domains can be added based on the debuggable type
https://bugs.webkit.org/show_bug.cgi?id=201150
<rdar://problem/56545911>

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/scripts/codegen/objc_generator_templates.py:
  • inspector/augmentable/AugmentableInspectorController.h:
  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::connectFrontend):
(Inspector::JSGlobalObjectInspectorController::registerAlternateAgent): Added.
(Inspector::JSGlobalObjectInspectorController::appendExtraAgent): Deleted.

  • inspector/InspectorAgentRegistry.h:
  • inspector/InspectorAgentRegistry.cpp:

(Inspector::AgentRegistry::appendExtraAgent): Deleted.

  • inspector/protocol/Inspector.json:
  • inspector/agents/InspectorAgent.h:
  • inspector/agents/InspectorAgent.cpp:

(Inspector::InspectorAgent::activateExtraDomain): Deleted.
(Inspector::InspectorAgent::activateExtraDomains): Deleted.

  • inspector/scripts/tests/expected/command-targetType-matching-domain-debuggableType.json-result:
  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/definitions-with-mac-platform.json-result:
  • inspector/scripts/tests/expected/domain-debuggableTypes.json-result:
  • inspector/scripts/tests/expected/domain-targetType-matching-domain-debuggableType.json-result:
  • inspector/scripts/tests/expected/domain-targetTypes.json-result:
  • inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/expected/enum-values.json-result:
  • inspector/scripts/tests/expected/event-targetType-matching-domain-debuggableType.json-result:
  • inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:

Rebase protocol tests.

Source/WebInspectorUI:

  • UserInterface/Base/Object.js:
  • UserInterface/Protocol/InspectorObserver.js:

(WI.InspectorObserver.prototype.activateExtraDomains):

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.activateExtraDomain):

  • UserInterface/Controllers/AppController.js:

(WI.AppController.prototype.activateExtraDomains):

  • UserInterface/Controllers/AnimationManager.js:

(WI.AnimationManager.prototype.activateExtraDomain):

  • UserInterface/Controllers/ApplicationCacheManager.js:

(WI.ApplicationCacheManager.prototype.activateExtraDomain):

  • UserInterface/Controllers/CanvasManager.js:

(WI.CanvasManager.prototype.activateExtraDomain):

  • UserInterface/Controllers/DOMStorageManager.js:

(WI.DOMStorageManager.prototype.activateExtraDomain):

  • UserInterface/Controllers/DatabaseManager.js:

(WI.DatabaseManager.prototype.activateExtraDomain):

  • UserInterface/Controllers/HeapManager.js:

(WI.HeapManager.prototype.activateExtraDomain):

  • UserInterface/Controllers/IndexedDBManager.js:

(WI.IndexedDBManager.prototype.activateExtraDomain):

  • UserInterface/Controllers/MemoryManager.js:

(WI.MemoryManager.prototype.activateExtraDomain):

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype._extraDomainsActivated):

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype.activateExtraDomain):

  • UserInterface/Base/Main.js:

(WI.activateExtraDomains):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._handleExtraDomainsActivated):
Add compatibility comments.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass):
(InspectorBackend.Domain):
Add FIXMEs.

10:30 AM Changeset in webkit [266071] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: remove legacy code for replacing the Canvas Tab with the Graphics Tab
https://bugs.webkit.org/show_bug.cgi?id=205827

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WI.loaded):

10:24 AM Changeset in webkit [266070] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Styles: don't show swatches for properties that aren't used/apply
https://bugs.webkit.org/show_bug.cgi?id=215681

Reviewed by Brian Burg.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._renderValue):

10:21 AM Changeset in webkit [266069] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Styles: don't show non-inherited properties
https://bugs.webkit.org/show_bug.cgi?id=215682

Reviewed by Brian Burg.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get propertiesToRender):

10:17 AM Changeset in webkit [266068] by youenn@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

Add a test showing the difference of behavior when closing a WebSocket connection between legacy WebSocket and NSURLSession WebSocket code paths
https://bugs.webkit.org/show_bug.cgi?id=215766

Reviewed by Alex Christensen.

Add a test showing the difference of behavior at connection close time in python websocket script.
This behavior was previously covered in http/tests/websocket/tests/hybi/close-on-* tests.
The test is written so that Chrome, Firefox and NSURLSession WebSocket code path generate all PASS.
Legacy WebSocket code path generates one FAIL.

  • http/tests/websocket/tests/hybi/close-and-exceptions_wsh.py: Added.
  • http/tests/websocket/tests/hybi/close-and-server-script-exception-expected.txt: Added.
  • http/tests/websocket/tests/hybi/close-and-server-script-exception.html: Added.
  • http/tests/websocket/tests/hybi/resources/close-and-server-script-exception-iframe.html: Added.
10:13 AM Changeset in webkit [266067] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/tests/websocket/tests/hybi/client-close-2.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215773

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:11 AM Changeset in webkit [266066] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Styles: grey out properties that aren't used/apply
https://bugs.webkit.org/show_bug.cgi?id=215680

Reviewed by Brian Burg.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled, .invalid-name, .invalid-value, .other-vendor, .overridden) > .content .name:not(.editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled, .invalid-name, .invalid-value, .other-vendor, .overridden) > .content .name:not(:hover, .editing)): Added.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled, .invalid-name, .invalid-value, .other-vendor, .overridden) > .content .value:not(.editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled, .invalid-name, .invalid-value, .other-vendor, .overridden) > .content .value:not(:hover, .editing)): Added.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled):is(.invalid-name, .invalid-value, .other-vendor, .overridden) > .content > .name:not(.editing), body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled):is(.invalid-name, .invalid-value, .other-vendor, .overridden) > .content > .value-container > .value:not(.editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled):is(.invalid-name, .invalid-value, .other-vendor, .overridden) > .content > .name:not(:hover, .editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled):is(.invalid-name, .invalid-value, .other-vendor, .overridden) > .content > .value-container > .value:not(:hover, .editing)): Added.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled, .invalid-name, .invalid-value, .other-vendor, .overridden) > .content .value:not(.editing) .token-link, body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled, .invalid-name, .invalid-value, .other-vendor, .overridden) > .content .value:not(:hover, .editing) .token-link): Added.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled, .invalid-name, .invalid-value, .other-vendor, .overridden) > .content .value:not(.editing) .token-string, body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled, .invalid-name, .invalid-value, .other-vendor, .overridden) > .content .value:not(:hover, .editing) .token-string): Added.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled, .invalid-name, .invalid-value, .other-vendor, .overridden) > .content .value:not(.editing) .token-comment, body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled, .invalid-name, .invalid-value, .other-vendor, .overridden) > .content .value:not(:hover, .editing) .token-comment): Added.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content .name:not(.editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content .name:not(:hover, .editing)): Deleted.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content .value:not(.editing), body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content .value:not(:hover, .editing)): Deleted.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content .value:not(.editing) .token-link, body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content .value:not(:hover, .editing) .token-link): Deleted.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content .value:not(.editing) .token-string, body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content .value:not(:hover, .editing) .token-string): Deleted.
(body:not(.meta-key-pressed) .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content .value:not(.editing) .token-comment, body.meta-key-pressed .spreadsheet-style-declaration-editor > .property:not(.disabled) > .content .value:not(:hover, .editing) .token-comment): Deleted.
Add additional :nots to existing rules to ensure that they don't conflict with a new rule
that changes the color of the .name/.value to grey when the property is not applied/used.

10:01 AM Changeset in webkit [266065] by Hector Lopez
  • 2 edits in trunk/LayoutTests

webkit-test-runner: Add support for the reftest-wait class name
https://bugs.webkit.org/show_bug.cgi?id=186045

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:51 AM Changeset in webkit [266064] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Enable VP9D_SET_LOOP_FILTER_OPT for libvpx vp9 decoder
https://bugs.webkit.org/show_bug.cgi?id=215765
<rdar://problem/67677285>

Reviewed by Eric Carlson.

Following https://webrtc-review.googlesource.com/c/src/+/177335 upstream, let's enable VP9D_SET_LOOP_FILTER_OPT for improved performances.

  • Source/webrtc/modules/video_coding/codecs/vp9/vp9_impl.cc:
9:25 AM Changeset in webkit [266063] by Aditya Keerthi
  • 46 edits
    11 adds in trunk

[macOS] Show picker for date and datetime-local input types
https://bugs.webkit.org/show_bug.cgi?id=214946

Reviewed by Darin Adler and Wenson Hsieh.

Source/WebCore:

Date and datetime-local input types require a calendar picker to be presented when activated.
Consequently, BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent was modified to
create a DateTimeChooser and display a calendar upon activation. This object is destroyed
when the element is blurred, hiding the calendar.

There is currently no picker UI for month, week, and time input types. As a result,
handleDOMActivateEvent is a no-op on those input types.

Wrote an encoder and decoder for DateTimeChooserParameters, so that the picker can be
created with the correct values.

Tests: fast/forms/date/date-show-hide-picker.html

fast/forms/datetimelocal/datetimelocal-show-hide-picker.html

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

(WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
(WebCore::BaseChooserOnlyDateAndTimeInputType::elementDidBlur):
(WebCore::BaseChooserOnlyDateAndTimeInputType::isPresentingAttachedView const):
(WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):

  • html/BaseChooserOnlyDateAndTimeInputType.h:
  • html/HTMLInputElement.cpp:
  • html/MonthInputType.cpp:

(WebCore::MonthInputType::handleDOMActivateEvent):

  • html/MonthInputType.h:
  • html/TimeInputType.cpp:

(WebCore::TimeInputType::handleDOMActivateEvent):

  • html/TimeInputType.h:
  • html/WeekInputType.cpp:

(WebCore::WeekInputType::handleDOMActivateEvent):

  • html/WeekInputType.h:
  • loader/EmptyClients.cpp:

(WebCore::EmptyChromeClient::createDateTimeChooser):

  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::createDateTimeChooser):

  • page/Chrome.h:
  • page/ChromeClient.h:
  • platform/DateTimeChooser.h:
  • platform/DateTimeChooserClient.h:
  • platform/DateTimeChooserParameters.h: Added.

(WebCore::DateTimeChooserParameters::encode const):
(WebCore::DateTimeChooserParameters::decode):

Source/WebKit:

Created WKDateTimePicker as a wrapper around NSDatePicker. The picker is
displayed in its own NSWindow, ensuring the view is always above the page.
WebPageProxy and WKDateTimePicker communicate through WebDateTimePickerMac,
in order for the picker to be initialized with the correct initial, minimum,
and maximum date, and so that the chosen date can be sent back to the
WebProcess.

Added IPC messages to enable communication between the UIProcess and the
WebProcess necessary for showing and hiding the picker.

  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/PageClient.h:
  • UIProcess/WebDateTimePicker.cpp: Added.

(WebKit::WebDateTimePicker::WebDateTimePicker):
(WebKit::WebDateTimePicker::~WebDateTimePicker):
(WebKit::WebDateTimePicker::endPicker):

  • UIProcess/WebDateTimePicker.h: Added.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::showDateTimePicker):
(WebKit::WebPageProxy::endDateTimePicker):
(WebKit::WebPageProxy::didChooseDate):
(WebKit::WebPageProxy::didEndDateTimePicker):
(WebKit::WebPageProxy::closeOverlayedViews):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::createDateTimePicker):

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::createDateTimePicker):

  • UIProcess/mac/WebDateTimePickerMac.h: Added.
  • UIProcess/mac/WebDateTimePickerMac.mm: Added.

(WebKit::WebDateTimePickerMac::create):
(WebKit::WebDateTimePickerMac::~WebDateTimePickerMac):
(WebKit::WebDateTimePickerMac::WebDateTimePickerMac):
(WebKit::WebDateTimePickerMac::endPicker):
(WebKit::WebDateTimePickerMac::showDateTimePicker):
(WebKit::WebDateTimePickerMac::didChooseDate):
(-[WKDateTimePickerWindow initWithContentRect:styleMask:backing:defer:]):
(-[WKDateTimePickerWindow canBecomeKeyWindow]):
(-[WKDateTimePickerWindow hasKeyAppearance]):
(-[WKDateTimePickerWindow shadowOptions]):
(-[WKDateTimePicker initWithParams:inView:]):
(-[WKDateTimePicker showPicker:]):
(-[WKDateTimePicker invalidate]):
(-[WKDateTimePicker didChooseDate:]):
(-[WKDateTimePicker dateFormatStringForType:]):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createDateTimeChooser):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebDateTimeChooser.cpp: Added.

(WebKit::WebDateTimeChooser::WebDateTimeChooser):
(WebKit::WebDateTimeChooser::didChooseDate):
(WebKit::WebDateTimeChooser::didEndChooser):
(WebKit::WebDateTimeChooser::endChooser):
(WebKit::WebDateTimeChooser::showChooser):

  • WebProcess/WebCoreSupport/WebDateTimeChooser.h: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setActiveDateTimeChooser):
(WebKit::WebPage::didChooseDate):
(WebKit::WebPage::didEndDateTimePicker):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::createDateTimeChooser):

Tools:

Added isShowingDateTimePicker testing hook in order to enable testing of the visibility of
the picker.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::isShowingDateTimePicker const):

  • WebKitTestRunner/mac/UIScriptControllerMac.h:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::UIScriptControllerMac::isShowingDateTimePicker const):

LayoutTests:

Added tests to verify that the picker is correctly shown and hidden for date and
datetime-local input types.

  • fast/forms/date/date-show-hide-picker-expected.txt: Added.
  • fast/forms/date/date-show-hide-picker.html: Added.
  • fast/forms/datetimelocal/datetimelocal-show-hide-picker-expected.txt: Added.
  • fast/forms/datetimelocal/datetimelocal-show-hide-picker.html: Added.
  • platform/ios/TestExpectations:
  • resources/ui-helper.js:

(window.UIHelper.isShowingDateTimePicker):

9:22 AM Changeset in webkit [266062] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Rename LineBox::baseline to alignment baseline
https://bugs.webkit.org/show_bug.cgi?id=214784

Reviewed by Antti Koivisto.

See https://www.w3.org/TR/css-inline-3/#alignment-baseline
Use the spec term. This helps to tell the dominant and the alignment baselines apart during line building.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::LineBox::setAlignmentBaselineIfGreater):
(WebCore::Layout::LineBox::setAscentIfGreater):
(WebCore::Layout::LineBox::alignmentBaseline const):
(WebCore::Layout::LineBox::resetAlignmentBaseline):
(WebCore::Layout::LineBox::setBaselineIfGreater): Deleted.
(WebCore::Layout::LineBox::baseline const): Deleted.
(WebCore::Layout::LineBox::resetBaseline): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

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

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::baseline const):

8:50 AM Changeset in webkit [266061] by Adrian Perez de Castro
  • 7 edits in trunk/Source

Non-unified build fixes, late August 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=215768

Unreviewed build fix.

Source/WebCore:

No new tests needed.

  • Modules/webaudio/StereoPannerNode.cpp: Add missing headers AudioNodeInput.h,

AudioNodeOutput.h, and wtf/IsoMallocInlines.h.

  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::JSHTMLCanvasElement::visitAdditionalChildren):
Add JSC:: namespace to SlotVisitor parameter type.

  • dom/SimpleRange.cpp: Add missing ShadowRoot.h header.
  • history/CachedPage.cpp: Add missing FrameLoaderClient.h header.

Source/WebKit:

  • UIProcess/WebURLSchemeTask.cpp: Add missing SharedBufferDataReference.h header.
8:42 AM Changeset in webkit [266060] by Hector Lopez
  • 2 edits in trunk/LayoutTests

WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance2
https://bugs.webkit.org/show_bug.cgi?id=189672

Unreviewed test gardening.

  • platform/mac/TestExpectations:
8:02 AM Changeset in webkit [266059] by youenn@apple.com
  • 12 edits in trunk/LayoutTests

http/tests/websocket/tests/hybi/close-on-* tests are not interoperable
https://bugs.webkit.org/show_bug.cgi?id=215692

Reviewed by Darin Adler.

Before the patch, tests were not passing in Chrome, Firefox and NSURLSession WebSocket code path.
This was due to the fact the web socket script is using try/finally and the closure of the connection is not raising an exception
while it is for Chrome, Firefox and NSURLSession WebSocket code path.
Change the WebSocket server script to more reliably send the socket message at closing time of the connection.

  • http/tests/websocket/tests/hybi/close-on-navigate-new-location-expected.txt:
  • http/tests/websocket/tests/hybi/close-on-navigate-new-location.html:
  • http/tests/websocket/tests/hybi/close-on-unload-and-force-gc-expected.txt:
  • http/tests/websocket/tests/hybi/close-on-unload-and-force-gc.html:
  • http/tests/websocket/tests/hybi/close-on-unload-expected.txt:
  • http/tests/websocket/tests/hybi/close-on-unload-reference-in-parent-expected.txt:
  • http/tests/websocket/tests/hybi/close-on-unload-reference-in-parent.html:
  • http/tests/websocket/tests/hybi/close-on-unload.html:
  • http/tests/websocket/tests/hybi/close-on-unload_wsh.py:

(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/send-after-close-on-unload-expected.txt:
  • http/tests/websocket/tests/hybi/send-after-close-on-unload.html:
8:02 AM Changeset in webkit [266058] by Hector Lopez
  • 2 edits in trunk/LayoutTests

[ macOS wk1 Debug ] inspector/animation/nameChanged.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=215767

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
7:57 AM Changeset in webkit [266057] by youenn@apple.com
  • 7 edits in trunk

Cocoa WebSocketTask should expose WebSocket server extensions
https://bugs.webkit.org/show_bug.cgi?id=215696

Reviewed by Darin Adler.

Source/WebKit:

Send back to WebProcess the value of server WebSocket extensions.

  • NetworkProcess/cocoa/WebSocketTaskCocoa.mm:

(WebKit::WebSocketTask::didConnect):

LayoutTests:

Make the tests agnostic of using the legacy or standard deflate extension.
If using the standard deflate extensions, do not expect subparameters (this matches Chrome, Firefox and NSURLSession code path).

  • http/tests/websocket/tests/hybi/deflate-frame-parameter-expected.txt:
  • http/tests/websocket/tests/hybi/deflate-frame-parameter.html:
  • http/tests/websocket/tests/hybi/extensions-expected.txt:
  • http/tests/websocket/tests/hybi/extensions.html:
7:50 AM Changeset in webkit [266056] by Alan Bujtas
  • 12 edits in trunk/Source/WebCore

[LFC][IFC] Use the term 'baseline' to indicate alignment baseline
https://bugs.webkit.org/show_bug.cgi?id=214779

Reviewed by Antti Koivisto.

This patch is in preparation for decoupling the line box and the root inline box geometry.
Inline boxes have ascent/descent pairs, while line boxes have inline boxes and a baseline.

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintInlineContent):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::lineHeightConstraints const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::AscentAndDescent::height const):
(WebCore::Layout::LineBox::ascentAndDescent const):
(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::LineBox::InlineBox::InlineBox):
(WebCore::Layout::LineBox::setBaselineIfGreater):
(WebCore::Layout::LineBox::setAscentIfGreater):
(WebCore::Layout::LineBox::setDescentIfGreater):
(WebCore::Layout::LineBox::baseline const):
(WebCore::Layout::LineBox::resetBaseline):
(WebCore::Layout::LineBox::InlineBox::Baseline::height const): Deleted.
(WebCore::Layout::LineBox::setBaselineOffsetIfGreater): Deleted.
(WebCore::Layout::LineBox::baselineOffset const): Deleted.
(WebCore::Layout::LineBox::InlineBox::Baseline::Baseline): Deleted.
(WebCore::Layout::LineBox::InlineBox::Baseline::setAscent): Deleted.
(WebCore::Layout::LineBox::InlineBox::Baseline::setDescent): Deleted.
(WebCore::Layout::LineBox::InlineBox::Baseline::reset): Deleted.
(WebCore::Layout::LineBox::InlineBox::Baseline::ascent const): Deleted.
(WebCore::Layout::LineBox::InlineBox::Baseline::descent const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::alignContentVertically):
(WebCore::Layout::LineBuilder::adjustBaselineAndLineHeight):
(WebCore::Layout::LineBuilder::halfLeadingMetrics):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::baseline const):
(WebCore::Layout::LineBuilder::baselineOffset const): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForRows):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraSpace):

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::usedBaselineForCell):

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::Row::setBaseline):
(WebCore::Layout::TableGrid::Row::baseline const):
(WebCore::Layout::TableGrid::Cell::setBaseline):
(WebCore::Layout::TableGrid::Cell::baseline const):
(WebCore::Layout::TableGrid::Row::setBaselineOffset): Deleted.
(WebCore::Layout::TableGrid::Row::baselineOffset const): Deleted.
(WebCore::Layout::TableGrid::Cell::setBaselineOffset): Deleted.
(WebCore::Layout::TableGrid::Cell::baselineOffset const): Deleted.

  • layout/tableformatting/TableLayout.cpp:

(WebCore::Layout::TableFormattingContext::TableLayout::distributedVerticalSpace):

6:10 AM Changeset in webkit [266055] by Carlos Garcia Campos
  • 18 edits in trunk

Unreviewed. Fix GTK4 build

Source/WebCore:

  • SourcesGTK.txt:
  • platform/gtk/GtkUtilities.cpp:

(WebCore::monitorWorkArea):

  • platform/gtk/GtkUtilities.h:
  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::screenAvailableRect):

Source/WebKit:

  • PlatformGTK.cmake:
  • UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:

(webkitAuthenticationDialogInitialize):

  • UIProcess/API/gtk/WebKitScriptDialogImpl.cpp:

(webkitScriptDialogImplConstructed):
(webkit_script_dialog_impl_class_init):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseEvent):
(webkit_web_view_base_class_init):

  • UIProcess/API/gtk/WebKitWebViewDialog.cpp:

(webkitWebViewDialogConstructed):
(webkitWebViewDialogSetChild):

  • UIProcess/Inspector/gtk/WebKitInspectorWindow.cpp:

(webkit_inspector_window_init):

  • UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp:

(WebKit::WebDataListSuggestionsDropdownGtk::show):

  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::bindAccessibilityTree):

  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::showPopupMenu):

Tools:

  • MiniBrowser/gtk/BrowserSearchBox.c:
  • MiniBrowser/gtk/BrowserWindow.c:
5:29 AM Changeset in webkit [266054] by commit-queue@webkit.org
  • 4 edits in trunk

Make window.find not default the search string to undefined
https://bugs.webkit.org/show_bug.cgi?id=215757

Patch by Rob Buis <rbuis@igalia.com> on 2020-08-24
Reviewed by Darin Adler.

Source/WebCore:

Make window.find not default the search string to undefined, instead
use the null string. Before this change window.find() would find a
hit in a page containing the text string "undefined".

Test: fast/text/window-find.html

  • page/DOMWindow.idl:

LayoutTests:

Add tests to verify window.find() does not use "undefined"
as text string. This also fixes the logic of the test to
not always output PASS at the end.

  • fast/text/window-find.html:
2:55 AM Changeset in webkit [266053] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, ignore RangeErrors when ICU is too old

Since ICU version is different (very sad), some of tests can throw an error.

  • stress/intl-language-tag.js:

(let.shouldThrow):
(let.shouldNotThrow):
(suppressErrors):
(vm.icuVersion):
(shouldThrow): Deleted.
(shouldNotThrow): Deleted.

2:26 AM Changeset in webkit [266052] by commit-queue@webkit.org
  • 7 edits in trunk

RTCRtpSynchronizationSource.rtpTimestamp is not present
https://bugs.webkit.org/show_bug.cgi?id=215722

Patch by Justin Uberti <justin@uberti.name> on 2020-08-24
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Updated expectations file to indicate that tests checking for .rtpTimestamp now pass.

  • LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt:

Source/WebCore:

Updated expected results in LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt.

  • Modules/mediastream/RTCRtpContributingSource.idl:
  • Modules/mediastream/RTCRtpContributingSource.idl:
  • Modules/mediastream/RTCRtpSynchronizationSource.idl:

Minor modification to ensure JSRTCRtpSynchronizationSource.cpp gets regenerated.

  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp:

(WebCore::fillRTCRtpContributingSource):

Aug 23, 2020:

6:51 PM Changeset in webkit [266051] by Wenson Hsieh
  • 15 edits
    2 adds in trunk

Programmatic selection of text in a text field causes the highlight overlay to spill out
https://bugs.webkit.org/show_bug.cgi?id=215647
<rdar://problem/67404979>

Reviewed by Darin Adler.

Source/WebCore:

See WebKit ChangeLog for more detail.

  • html/HTMLTextFormControlElement.h: Export a helper function.

Source/WebKit:

UIKit consults the SPI method -_selectionClipRect on WKContentView to determine the maximum bounds in which it
is allowed to show text selection UI (i.e. the text caret view, selection highlight views, and selection
grabbers). Normally, when contentEditable elements and editable text form controls are focused, we plumb the
bounds of the focused element to the UI process via focusedElementRect in editor state's post layout data.
However, in this case, the selection is inside a readonly text field that is *not* focused; this causes us to
return CGRectNull from -_selectionClipRect, which means that UIKit selection UI is not clipped at all and
instead overflows the bounds of the input element.

To fix this, rearrange some logic in WebPage::getPlatformEditorState in WebPageIOS.mm such that we compute
and send the selection clipping rect if the selection is inside a text form control, even if it is not the
focused element. In doing this, we also rename some confusingly-named members in EditorState::PostLayoutData
(see below for more detail).

Test: editing/selection/ios/select-all-in-readonly-input-does-not-overflow.html

  • Platform/spi/ios/UIKitSPI.h:

Add a declaration for -_selectionClipRect.

  • Shared/EditorState.cpp:

(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):
(WebKit::operator<<):

  • Shared/EditorState.h:

Split the existing rect member focusedElementRect into two: selectionClipRect on iOS, and
selectionBoundingRect on macOS. Previously, focusedElementRect was set to the focused element's bounding
rect on iOS (as expected), but on macOS, we set to the bounds of the ranged or caret selection; we proceed to
use this rect to mean the bounds of the selection anyways in macOS-specific code, so it makes more sense to just
move this into the macOS-specific section.

Additionally, after the below change in WebPageIOS, focusedElementRect is no longer specific to the focused
element, so rename it instead to selectionClipRect instead. In WKContentViewInteraction.mm, this rect is
effectively only used in two ways: as the selection clip rect for UIKit, and to determine if the selection would
be completely clipped anyways (in which case we suppress UIKit text interactions), so selectionClipRect is a
name that is suitable for both purposes.

  • UIProcess/API/mac/WKWebViewTestingMac.mm:

(-[WKWebView _candidateRect]):

  • UIProcess/Cocoa/WebViewImpl.mm:

Rename focusedElementRect to selectionBoundingRect on macOS.

(WebKit::WebViewImpl::handleRequestedCandidates):

  • UIProcess/ios/WKContentViewInteraction.mm:

Rename focusedElementRect to selectionClipRect on iOS.

(WebKit::WKSelectionDrawingInfo::WKSelectionDrawingInfo):
(-[WKContentView _selectionClipRect]):

Change this to not require a focused element when returning the selection clip rect, and instead return the
editor state's selection clip rect as long as it is not empty.

(-[WKContentView _updateSelectionAssistantSuppressionState]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPlatformEditorState const):

Refactor this code to compute and send selectionClipRect as long as the selection is inside a form control or
editing host (not just when there is a focused element). Also leave a drive-by FIXME about using the focused
element (instead of the selection container node) when computing the caret color.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getPlatformEditorState const):

Tools:

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::clipSelectionViewRectToContentView):

Add a helper function to clip UIKit selection UI rects (for carets, selection grabbers, and ranged selection
highlights) to the content view's (WKContentView's) bounds, as well as the selection clip rect if it is nonnull.

(WTR::UIScriptControllerIOS::selectionStartGrabberViewRect const):
(WTR::UIScriptControllerIOS::selectionEndGrabberViewRect const):
(WTR::UIScriptControllerIOS::selectionCaretViewRect const):
(WTR::UIScriptControllerIOS::selectionRangeViewRects const):

LayoutTests:

  • editing/selection/ios/select-all-in-readonly-input-does-not-overflow-expected.txt: Added.
  • editing/selection/ios/select-all-in-readonly-input-does-not-overflow.html: Added.

Add a new layout test to verify that the width of the selection view does not exceed the width of the readonly
input containing the selected text.

  • resources/ui-helper.js:

(window.UIHelper.async waitForSelectionToAppear):

Adjust this UIHelper function to additionally resolve to the selection rects, so that it won't be necessary for
callers to ask for the selection view rects separately after waiting for selection views to appear.

6:30 PM Changeset in webkit [266050] by Fujii Hironori
  • 4 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo/TestExpectations:
  • platform/wincairo/css1/text_properties/letter_spacing-expected.txt:
  • platform/wincairo/fast/text/emphasis-expected.txt:
2:21 PM Changeset in webkit [266049] by Lauro Moura
  • 3 edits in trunk/LayoutTests

Avoid timeout when http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html fails
https://bugs.webkit.org/show_bug.cgi?id=215759

Reviewed by Darin Adler.

  • http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html:

Finish the test if the test fails because the close callback is
called.

  • platform/glib/TestExpectations: Update expectation.
10:06 AM Changeset in webkit [266048] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Introduce the root inline box
https://bugs.webkit.org/show_bug.cgi?id=214733

Reviewed by Antti Koivisto.

This is in preparation for having a dedicated line box for each line with inline boxes inside.
At this point we only use the root inline box to proxy the baseline handling.
See https://www.w3.org/TR/css-inline-3/#model

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineBox::Baseline::height const):
(WebCore::Layout::LineBox::LineBox):
(WebCore::Layout::LineBox::InlineBox::InlineBox):
(WebCore::Layout::LineBox::setLogicalHeightIfGreater):
(WebCore::Layout::LineBox::baseline const):
(WebCore::Layout::LineBox::setBaselineOffsetIfGreater):
(WebCore::Layout::LineBox::setAscentIfGreater):
(WebCore::Layout::LineBox::setDescentIfGreater):
(WebCore::Layout::LineBox::baselineOffset const):
(WebCore::Layout::LineBox::resetBaseline):
(WebCore::Layout::LineBox::InlineBox::Baseline::Baseline):
(WebCore::Layout::LineBox::InlineBox::Baseline::setAscent):
(WebCore::Layout::LineBox::InlineBox::Baseline::setDescent):
(WebCore::Layout::LineBox::InlineBox::Baseline::reset):
(WebCore::Layout::LineBox::InlineBox::Baseline::ascent const):
(WebCore::Layout::LineBox::InlineBox::Baseline::descent const):
(WebCore::Layout::InlineBox::Baseline::height const): Deleted.
(WebCore::Layout::InlineBox::logicalRect const): Deleted.
(WebCore::Layout::InlineBox::scrollableOverflow const): Deleted.
(WebCore::Layout::InlineBox::logicalLeft const): Deleted.
(WebCore::Layout::InlineBox::logicalRight const): Deleted.
(WebCore::Layout::InlineBox::logicalTop const): Deleted.
(WebCore::Layout::InlineBox::logicalBottom const): Deleted.
(WebCore::Layout::InlineBox::logicalWidth const): Deleted.
(WebCore::Layout::InlineBox::logicalHeight const): Deleted.
(WebCore::Layout::InlineBox::resetDescent): Deleted.
(WebCore::Layout::InlineBox::setLogicalHeight): Deleted.
(WebCore::Layout::InlineBox::setLogicalWidth): Deleted.
(WebCore::Layout::InlineBox::setScrollableOverflow): Deleted.
(WebCore::Layout::InlineBox::moveHorizontally): Deleted.
(WebCore::Layout::InlineBox::expandHorizontally): Deleted.
(WebCore::Layout::InlineBox::shrinkHorizontally): Deleted.
(WebCore::Layout::InlineBox::expandVertically): Deleted.
(WebCore::Layout::InlineBox::shrinkVertically): Deleted.
(WebCore::Layout::InlineBox::isConsideredEmpty const): Deleted.
(WebCore::Layout::InlineBox::setIsConsideredEmpty): Deleted.
(WebCore::Layout::InlineBox::setIsConsideredNonEmpty): Deleted.
(WebCore::Layout::InlineBox::InlineBox): Deleted.
(WebCore::Layout::InlineBox::setLogicalHeightIfGreater): Deleted.
(WebCore::Layout::InlineBox::baseline const): Deleted.
(WebCore::Layout::InlineBox::setBaselineOffsetIfGreater): Deleted.
(WebCore::Layout::InlineBox::setAscentIfGreater): Deleted.
(WebCore::Layout::InlineBox::setDescentIfGreater): Deleted.
(WebCore::Layout::InlineBox::baselineOffset const): Deleted.
(WebCore::Layout::InlineBox::resetBaseline): Deleted.
(WebCore::Layout::InlineBox::Baseline::Baseline): Deleted.
(WebCore::Layout::InlineBox::Baseline::setAscent): Deleted.
(WebCore::Layout::InlineBox::Baseline::setDescent): Deleted.
(WebCore::Layout::InlineBox::Baseline::reset): Deleted.
(WebCore::Layout::InlineBox::Baseline::ascent const): Deleted.
(WebCore::Layout::InlineBox::Baseline::descent const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::halfLeadingMetrics):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::lineBox const):

  • layout/inlineformatting/LineLayoutContext.h:
6:53 AM Changeset in webkit [266047] by Alan Bujtas
  • 14 edits in trunk/Source/WebCore

[LFC][IFC] Display::LineBox does not need ascent/descent geometry
https://bugs.webkit.org/show_bug.cgi?id=214720

Reviewed by Antti Koivisto.

Line box is just a rectangular area that contains all the inline boxes that form a single line.
It generally has a non-zero baseline (the root inline box's baseline), but it does not have ascent/descent geometry.

  • layout/displaytree/DisplayLineBox.h:

(WebCore::Display::LineBox::baseline const):
(WebCore::Display::LineBox::LineBox):
(WebCore::Display::LineBox::Baseline::height const): Deleted.
(WebCore::Display::LineBox::Baseline::ascent const): Deleted.
(WebCore::Display::LineBox::Baseline::descent const): Deleted.
(WebCore::Display::LineBox::baselineOffset const): Deleted.
(WebCore::Display::LineBox::Baseline::Baseline): Deleted.

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintInlineContent):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):

  • layout/inlineformatting/InlineLineBuilder.cpp:

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

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::firstLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::lastLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::paint):

  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::usedBaselineForCell):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::layoutFormattingContextEnabled const):
(WebCore::RuntimeEnabledFeatures::layoutFormattingContextIntegrationEnabled const):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::boundingBoxForRenderTreeDump const):

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::RunResolver::Run::baseline const):
(WebCore::SimpleLineLayout::RunResolver::Run::baselineOffset const): Deleted.

  • rendering/line/LineLayoutTraversal.h:

(WebCore::LineLayoutTraversal::Box::baseline const):
(WebCore::LineLayoutTraversal::Box::baselineOffset const): Deleted.

  • rendering/line/LineLayoutTraversalComplexPath.h:

(WebCore::LineLayoutTraversal::ComplexPath::baseline const):
(WebCore::LineLayoutTraversal::ComplexPath::baselineOffset const): Deleted.

  • rendering/line/LineLayoutTraversalDisplayRunPath.h:

(WebCore::LineLayoutTraversal::DisplayRunPath::baseline const):
(WebCore::LineLayoutTraversal::DisplayRunPath::baselineOffset const): Deleted.

  • rendering/line/LineLayoutTraversalSimplePath.h:

(WebCore::LineLayoutTraversal::SimplePath::baseline const):
(WebCore::LineLayoutTraversal::SimplePath::baselineOffset const): Deleted.

6:40 AM Changeset in webkit [266046] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Do not use undefined default param in CSSStyleDeclaration.idl
https://bugs.webkit.org/show_bug.cgi?id=215753

Patch by Rob Buis <rbuis@igalia.com> on 2020-08-23
Reviewed by Darin Adler.

Do not use undefined default parameter value in CSSStyleDeclaration.idl, instead use no explicit default
parameter at all. This means a zero length String will be used, which will be more efficient when using
the cssPropertyID helper method, as well as less error-prone.

  • css/CSSStyleDeclaration.idl:
5:45 AM Changeset in webkit [266045] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][IFC] Move all line height and baseline adjustment logic to LineBuilder::adjustBaselineAndLineHeight
https://bugs.webkit.org/show_bug.cgi?id=214474

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/inline-text-outside-of-inline-container-simple.html

  • layout/inlineformatting/InlineLineBuilder.cpp:

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

  • layout/inlineformatting/InlineLineBuilder.h:

LayoutTests:

  • fast/layoutformattingcontext/inline-text-outside-of-inline-container-simple-expected.html: Added.
  • fast/layoutformattingcontext/inline-text-outside-of-inline-container-simple.html: Added.
12:11 AM Changeset in webkit [266044] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, wrong merge resolution between r266031 and r263837
https://bugs.webkit.org/show_bug.cgi?id=209774

r263837 is landed after r266031 is configured. OSS buildbots didn't catch this since they are using old ICU headers.

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):

Note: See TracTimeline for information about the timeline view.