Timeline



Sep 16, 2019:

11:38 PM Changeset in webkit [249943] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Move code for traversing reversed text boxes from TextIterator to TextBoxIterator
https://bugs.webkit.org/show_bug.cgi?id=201819

Reviewed by Zalan Bujtas.

Handle traversal order in TextBoxIterator.

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):
(WebCore::TextIterator::handleTextNodeFirstLetter):

  • editing/TextIterator.h:
  • rendering/line/LineLayoutInterfaceTextBoxes.cpp:

(WebCore::LineLayoutInterface::TextBox::rect const):
(WebCore::LineLayoutInterface::TextBox::logicalRect const):
(WebCore::LineLayoutInterface::TextBox::hasHyphen const):
(WebCore::LineLayoutInterface::TextBox::isLeftToRightDirection const):
(WebCore::LineLayoutInterface::TextBox::dirOverride const):
(WebCore::LineLayoutInterface::TextBox::text const):
(WebCore::LineLayoutInterface::TextBox::localStartOffset const):
(WebCore::LineLayoutInterface::TextBox::localEndOffset const):
(WebCore::LineLayoutInterface::TextBox::length const):
(WebCore::LineLayoutInterface::TextBoxIterator::TextBoxIterator):
(WebCore::LineLayoutInterface::TextBoxIterator::traverseNextInVisualOrder):
(WebCore::LineLayoutInterface::TextBoxIterator::traverseNextInTextOrder):
(WebCore::LineLayoutInterface::TextBoxIterator::operator== const):
(WebCore::LineLayoutInterface::TextBoxIterator::atEnd const):
(WebCore::LineLayoutInterface::Provider::firstTextBoxInVisualOrderFor):
(WebCore::LineLayoutInterface::Provider::firstTextBoxInTextOrderFor):
(WebCore::LineLayoutInterface::Provider::textBoxRangeFor):

  • rendering/line/LineLayoutInterfaceTextBoxes.h:

(WebCore::LineLayoutInterface::TextBoxIterator::TextBoxIterator):
(WebCore::LineLayoutInterface::TextBoxIterator::operator++):
(WebCore::LineLayoutInterface::Provider::firstTextBoxFor):

11:24 PM Changeset in webkit [249942] by Ryan Haddad
  • 10 edits in trunk/Source/WebKit

Unreviewed, rolling out r249910.

Caused layout test failures and timeouts on Catalina

Reverted changeset:

"REGRESSION(249649): Unable to open local files in MiniBrowser
on macOS"
https://bugs.webkit.org/show_bug.cgi?id=201798
https://trac.webkit.org/changeset/249910

10:39 PM Changeset in webkit [249941] by commit-queue@webkit.org
  • 23 edits in trunk

Remove "gopher" from list of special schemes in URLParser
https://bugs.webkit.org/show_bug.cgi?id=201852

Patch by Alex Christensen <achristensen@webkit.org> on 2019-09-16
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-origin-expected.txt:
  • web-platform-tests/url/a-element-origin-xhtml-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/url-constructor-expected.txt:
  • web-platform-tests/url/url-origin-expected.txt:
  • web-platform-tests/url/url-setters-expected.txt:

Source/WTF:

There is little meaningful content on gopher servers, and WebKit does not actually support gopher.
This makes WebKit match the behavior of Gecko and goes along with a change proposed at
https://github.com/whatwg/url/issues/342

  • wtf/URLParser.cpp:

(WTF::URLParser::defaultPortForProtocol):
(WTF::scheme):
(WTF::URLParser::copyURLPartsUntil):
(WTF::URLParser::parse):

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/URLParserTextEncoding.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

LayoutTests:

  • fast/url/invalid-urls-utf8-expected.txt:
  • fast/url/invalid-urls-utf8.html:
  • fast/url/segments-expected.txt:
  • fast/url/segments.html:
  • fast/url/standard-url-expected.txt:
  • fast/url/standard-url.html:
  • fetch/fetch-urls.json:
  • http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate-expected.txt:
10:28 PM Changeset in webkit [249940] by Fujii Hironori
  • 6 edits in trunk/Source

[WinCairo][curl] Don't compile unused CertificateCFWin.cpp
https://bugs.webkit.org/show_bug.cgi?id=201860

Reviewed by Alex Christensen.

Source/WebCore:

Curl port is using ResourceHandle::setClientCertificateInfo
instead of ResourceHandle::setClientCertificate.

  • PlatformWin.cmake: Added CertificateCFWin.cpp to WebCore_SOURCES only if USE_CFURLCONNECTION.
  • platform/network/ResourceHandle.h: Removed an unused method setClientCertificate.
  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::setClientCertificate): Deleted.

Source/WebKitLegacy/win:

  • WebMutableURLRequest.cpp: Include <WebCore/CertificateCFWin.h> only if USE(CFURLCONNECTION).

(WebMutableURLRequest::setClientCertificate): Don't use PCCERT_CONTEXT for curl port which is defined in WinCrypt.

8:48 PM Changeset in webkit [249939] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

Drop sessionID / websiteDataStoreID from WebPageCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=201847

Reviewed by Youenn Fablet.

Drop sessionID / websiteDataStoreID from WebPageCreationParameters now that we have
one session per WebProcess.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:

(WebKit::WebPageCreationParameters::WebPageCreationParameters): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_textAutoSizingAdjustmentTimer):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::createWebPage):

8:05 PM Changeset in webkit [249938] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[AppleWin] Assertion failure in defaultSupportedImageTypes in UTIRegistry.cpp
https://bugs.webkit.org/show_bug.cgi?id=198286

Reviewed by Brent Fulgham.

Some image types aren't supported by CG for Windows.

No new tests, covered by existing tests.

  • platform/graphics/cg/ImageSourceCGWin.cpp:

(WebCore::MIMETypeForImageType): Return the correct MIME types for
com.microsoft.cur and com.microsoft.ico.

  • platform/graphics/cg/UTIRegistry.cpp:

(WebCore::defaultSupportedImageTypes): Excluded public.jpeg-2000 and public.mpo-image if PLATFORM(WIN).

7:56 PM Changeset in webkit [249937] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[Cairo] Image::drawTiled → Cairo::drawSurface → cairo_paint_with_alpha → segfault happens in pixman
https://bugs.webkit.org/show_bug.cgi?id=201755

Reviewed by Don Olmstead.

Segmentation faults happened in pixman while painting a image. In
Cairo::drawSurface, originalSrcRect can be slightly larger than
the surface size because of floating number calculations.
Cairo::drawSurface created a subsurface which is running over the
parent surface boundaries.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawSurface): Calculated a intersection with
expandedSrcRect and the parent surface size for subsurface size.

7:29 PM Changeset in webkit [249936] by dino@apple.com
  • 4 edits in trunk/Source

Provide a prototype for AR QuickLook to trigger processing in the originating page
https://bugs.webkit.org/show_bug.cgi?id=201371

Hopefully fix the public iOS 13 build.

Source/WebCore/PAL:

  • pal/spi/ios/SystemPreviewSPI.h:

Source/WebKit:

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
6:40 PM Changeset in webkit [249935] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

Wasm StreamingParser should validate that number of functions matches number of declarations
https://bugs.webkit.org/show_bug.cgi?id=201850
<rdar://problem/55290186>

Reviewed by Yusuke Suzuki.

JSTests:

  • wasm/regress/validate-number-of-functions-match-declarations.js: Added.

(catch):

Source/JavaScriptCore:

Currently, when parsing the code section, we check that the number of functions matches the number
of declarations in the function section. However, that check is never performed if the module does
not have a code section. To fix that, we perform the check again in StreamingParser::finalize.

  • wasm/WasmStreamingParser.cpp:

(JSC::Wasm::StreamingParser::finalize):

6:25 PM Changeset in webkit [249934] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[WebAuthn] Name instance variables consistently in WKMockNFTag
<https://webkit.org/b/201845>

Reviewed by Jiewen Tan.

  • UIProcess/WebAuthentication/Mock/MockNfcService.mm:

Make all @synthesize instance variables use a leading underscore
for their name.

5:37 PM Changeset in webkit [249933] by dino@apple.com
  • 4 edits in trunk/Source

REGRESSION: iPad: Safari becomes unresponsive after context menu on 1-800-MY-APPLE phone number, tapping 'Add to Contacts'
https://bugs.webkit.org/show_bug.cgi?id=201816
<rdar://55105827>

Reviewed by Darin Adler.

Source/WebCore/PAL:

Expose kDataDetectorsSourceRectKey (and sort things while there).

  • pal/spi/ios/DataDetectorsUISPI.h:

Source/WebKit:

When generating the DataDetectorsContext for a position, we should
also provide the source rectangle for the link in root view coordinates.
This allows DataDetectors to show any modal dialogs in the right
position.

  • UIProcess/ios/WKContentViewInteraction.mm: Use either the bounds of the positionInformation

or the text bounding rectangle.
(-[WKContentView dataDetectionContextForPositionInformation:]):

5:13 PM Changeset in webkit [249932] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Shard result archives
https://bugs.webkit.org/show_bug.cgi?id=201734

Reviewed by Dewei Zhu.

Cassandra advertises being able to store up to 2 GB in a single blob-storage row.
In practice, this usually doesn't work according to the Cassandra developers,
large blobs should be broken up into shards of, at most, 10 MB.

  • resultsdbpy/resultsdbpy/model/archive_context.py:

(ArchiveContext):
(ArchiveContext.ArchiveMetaDataByCommit): Point to the archive shards by hash.
(ArchiveContext.ArchiveMetaDataByCommit.unpack):
(ArchiveContext.ArchiveChunks): Store archive shards, indexed by hash.
(ArchiveContext.init):
(ArchiveContext.register): When saving archives, save a reference hash and then
shard the actual archive data before saving.
(ArchiveContext.find_archive): Search for archive by meta-data, then reconstruct
the archive. Raise an exception if we determine that memory usage is a problem.
(ArchiveContext.ArchivesByCommit): Deleted.
(ArchiveContext.ArchivesByCommit.unpack): Deleted.

  • resultsdbpy/resultsdbpy/model/archive_context_unittest.py:

(ArchiveContextTest.init_database): Allow configuration and archive to be specified.
(ArchiveContextTest):
(ArchiveContextTest.test_large_archive): Test archive sharding.

4:59 PM Changeset in webkit [249931] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, rebaseline test after testharness.js update in r249918.

  • webgpu/whlsl/test-harness-test-expected.txt:
4:58 PM Changeset in webkit [249930] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

AX: USER: VO: Messages > Message > Shift-VO-M doesn't reveal correct actions
https://bugs.webkit.org/show_bug.cgi?id=201840

Patch by Eric Liang <ericliang@apple.com> on 2019-09-16
Reviewed by Chris Fleizach.

menuForEvent: expects event-position in window's space, but we pass the position in Core's space. In this case, we need to convert core's space to window's space.
Tested that existing tests passed with WK1 and WK2

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):

4:53 PM Changeset in webkit [249929] by Chris Dumez
  • 11 edits in trunk/LayoutTests

Unreviewed, fix several css-dark-mode tests to run properly after testharness.js update in r249918.

  • css-dark-mode/color-scheme-css-expected.txt:
  • css-dark-mode/color-scheme-css.html:
  • css-dark-mode/color-scheme-meta-expected.txt:
  • css-dark-mode/color-scheme-meta.html:
  • css-dark-mode/color-scheme-scrollbar-expected.txt:
  • css-dark-mode/color-scheme-scrollbar.html:
  • css-dark-mode/older-syntax/supported-color-schemes-css-expected.txt:
  • css-dark-mode/older-syntax/supported-color-schemes-css.html:
  • css-dark-mode/older-syntax/supported-color-schemes-meta-expected.txt:
  • css-dark-mode/older-syntax/supported-color-schemes-meta.html:
4:43 PM Changeset in webkit [249928] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_update.https.html.

This test is a flaky timeout since it was imported in r249886.

4:28 PM Changeset in webkit [249927] by jiewen_tan@apple.com
  • 5 edits in trunk

[WebAuthn] Support more than two FIDO protocol versions
https://bugs.webkit.org/show_bug.cgi?id=198408
<rdar://problem/51292176>

Reviewed by Chris Dumez.

Source/WebCore:

Covered by new API tests.

  • Modules/webauthn/fido/DeviceResponseConverter.cpp:

(fido::readCTAPGetInfoResponse):
Remove the check for the array size.

Tools:

Adds a new test case that includes a FIDO_2_1_PRE version string.

  • TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/FidoTestData.h:
4:10 PM Changeset in webkit [249926] by msaboff@apple.com
  • 5 edits
    1 add in trunk

[JSC] Perform check again when we found non-BMP characters
https://bugs.webkit.org/show_bug.cgi?id=201647

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js: Added.
  • stress/regexp-unicode-within-string.js: Updated test to eliminate the bogus print().

(testRegExpInbounds):

Source/JavaScriptCore:

We need to check for end of input for non-BMP characters when matching a character class that contains
both BMP and non-BMP characters. In advanceIndexAfterCharacterClassTermMatch() we were checking for
end of input for both BMP and non-BMP characters. For BMP characters, this check is redundant.
After moving the check to after the "is BMP check", we need to decrement index after reaching the failure
label to back out the index++ for the first surrogate of the non-BMP character.

Added the same kind of check in generateCharacterClassOnce(). In that case, we have pre-checked the
first character (surrogate) for a non-BMP codepoint, so we just need to check for end of input before
we increment for the second surrogate.

While writing tests, I found an off by one error in backtrackCharacterClassGreedy() and changed the
loop to check the count at loop top instead of loop bottom.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::advanceIndexAfterCharacterClassTermMatch):
(JSC::Yarr::YarrGenerator::generateCharacterClassOnce):
(JSC::Yarr::YarrGenerator::generateCharacterClassGreedy):
(JSC::Yarr::YarrGenerator::backtrackCharacterClassGreedy):
(JSC::Yarr::YarrGenerator::backtrackCharacterClassNonGreedy):

3:56 PM Changeset in webkit [249925] by Ross Kirsling
  • 6 edits in trunk

[JSC] Add missing syntax errors for await in function parameter default expressions
https://bugs.webkit.org/show_bug.cgi?id=201615

Reviewed by Darin Adler.

JSTests:

  • stress/async-await-reserved-word.js:
  • stress/async-await-syntax.js:

Add test cases.

  • test262/expectations.yaml:

Mark newly-passing test cases.

Source/JavaScriptCore:

This patch rectifies two oversights:

  1. We were prohibiting async function f(x = (await) => {}) {} but not async function f(x = await => {}) {} (and likewise for async arrow functions).
  2. We were not prohibiting (x = await => {}) => {} in an async context (regardless of parentheses, but note that this one *only* applies to arrow functions).
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::isArrowFunctionParameters): Fix case (1).
(JSC::Parser<LexerType>::parseFunctionInfo): Fix case (2).
(JSC::Parser<LexerType>::parseAwaitExpression): Convert unfailing check into an ASSERT.
(JSC::Parser<LexerType>::parsePrimaryExpression): Adjust error message for case (2).

3:40 PM Changeset in webkit [249924] by Jonathan Bedard
  • 8 edits in trunk/Tools

results.webkit.org: Configurations should be branch specific
https://bugs.webkit.org/show_bug.cgi?id=201561

Reviewed by Dewei Zhu.

Partition configurations by branch in both Redis and Cassandra.

  • resultsdbpy/resultsdbpy/controller/upload_controller.py:

(UploadController.suites): Allow the user to specify branches while listing suites.

  • resultsdbpy/resultsdbpy/model/archive_context.py:

(ArchiveContext.register): Register each configuration with a branch.

  • resultsdbpy/resultsdbpy/model/configuration_context.py:

(ConfigurationContext.ByPlatform): Index by branch.
(ConfigurationContext.ByPlatformAndVersion): Ditto.
(ConfigurationContext.ByArchitecture): Ditto.
(ConfigurationContext.ByModel): Ditto.
(ConfigurationContext.init): Populate Redis cache with branch.
(ConfigurationContext._convert_to_redis_key): Accept branch in Redis key.
(ConfigurationContext._register_in_redis): Register configuration with branch.
(ConfigurationContext.register_configuration): Ditto.
(ConfigurationContext.search_for_configuration): Search for configuration with branch.
(ConfigurationContext.search_for_recent_configuration): Ditto.
(ConfigurationContext.select_from_table_with_configurations): Ditto.

  • resultsdbpy/resultsdbpy/model/configuration_context_unittest.py:

(ConfigurationContextTest.register_configurations): Register with branch.
(ConfigurationContextTest.test_repopulate_recent): Construct ConfigurationContext with
CommitContext object.

  • resultsdbpy/resultsdbpy/model/upload_context.py:

(UploadContext.SuitesByConfiguration): Index by branch.
(UploadContext.upload_test_results): Register each configuration with a branch.
(UploadContext.find_suites): Pass branch to search for configurations.

  • resultsdbpy/resultsdbpy/view/static/js/drawer.js: Check for new configurations when the branch is changed.
  • resultsdbpy/resultsdbpy/view/templates/suite_results.html: Add branch to suites query.
2:52 PM Changeset in webkit [249923] by Chris Dumez
  • 10 edits in trunk/Source/WebKit

NetworkProcessConnection does not need HashMaps of sessionIDs for Service Workers and IDB
https://bugs.webkit.org/show_bug.cgi?id=201830

Reviewed by Geoffrey Garen.

NetworkProcessConnection does not need HashMaps of sessionIDs for Service Workers and IDB, since
we now have one sessionID per WebContent process.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::create):
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/WebDatabaseProvider.cpp:

(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::idbConnectionToServerForSession):
(WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession):

  • WebProcess/Network/NetworkProcessConnection.h:

(WebKit::NetworkProcessConnection::existingIDBConnectionToServer const):
(WebKit::NetworkProcessConnection::existingServiceWorkerConnectionForSession):

  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::handleFetch):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::networkProcessConnectionClosed):

2:43 PM Changeset in webkit [249922] by Alan Coon
  • 1 copy in tags/Safari-608.2.11.1.6

Tag Safari-608.2.11.1.6.

2:39 PM Changeset in webkit [249921] by Brent Fulgham
  • 14 edits in trunk/Source

[FTW] Correct lifespan of other SharedBitmaps
https://bugs.webkit.org/show_bug.cgi?id=201800

Reviewed by Dean Jackson.

The pop-up menu code creates its own SharedBitmap in the WebContent process,
which needs to release its handle before destruction, otherwise the UIProcess
will be unable to access the GPU texture (since it will have been cleaned up).

Source/WebCore:

This patch also audits other uses of SharedBitmap to make sure a similar
problem doesn't exist elsewhere.

  • platform/graphics/win/Direct2DUtilities.cpp:

(WebCore::Direct2D::toDXGIDevice): Switch to IDXGIDevice1 (since that is our
minimum target DX).
(WebCore::Direct2D::factoryForDXGIDevice): Ditto.
(WebCore::Direct2D::swapChainOfSizeForWindowAndDevice): Added.

  • platform/graphics/win/Direct2DUtilities.h:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): Correct
a very silly use-after-move in the implementation.

  • platform/graphics/win/PlatformContextDirect2D.h:

(WebCore::PlatformContextDirect2D::d3dDevice const): Added.
(WebCore::PlatformContextDirect2D::setD3DDevice):

Source/WebKit:

Since WebPopupMenuProxyWin has its own HWND and WinProc, it needs its own
swapChain to handle syncing of content to the screen.

This patch also audits other uses of SharedBitmap to make sure a similar
problem doesn't exist elsewhere.

  • Shared/ShareableBitmap.h:
  • Shared/win/ShareableBitmapDirect2D.cpp:

(WebKit::ShareableBitmap::paint):
(WebKit::ShareableBitmap::createDirect2DSurface):

  • UIProcess/win/WebPopupMenuProxyWin.cpp:

(WebKit::WebPopupMenuProxyWin::showPopupMenu): Add Direct2D code paths.
(WebKit::WebPopupMenuProxyWin::paint): Update for Direct2D.
(WebKit::WebPopupMenuProxyWin::setupSwapChain): Added.
(WebKit::WebPopupMenuProxyWin::configureBackingStore): Added.

  • UIProcess/win/WebPopupMenuProxyWin.h:
  • UIProcess/win/WebView.cpp:

(WebKit::WebView::setupSwapChain): Move some implementation code to the
Direct2DUtilities file.

  • UIProcess/win/WebView.h:

(WebKit::WebView::d3dDevice const):
(WebKit::WebView::d3dImmediateContext const):
(WebKit::WebView::d3dDevice): Deleted.

  • WebProcess/WebCoreSupport/WebPopupMenu.cpp:

(WebKit::WebPopupMenu::show):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::getImageForFindMatch): Prevent WebContent process from
destroying SharedBitmap before the UIProcess can receive it.

2:21 PM Changeset in webkit [249920] by Chris Dumez
  • 14 edits in trunk/Source

Simplify WebResourceLoadObserver now that we have one WebProcess per session
https://bugs.webkit.org/show_bug.cgi?id=201821

Reviewed by Brent Fulgham.

Source/WebCore:

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • loader/ResourceLoadObserver.h:

(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::statisticsForURL):

  • testing/Internals.cpp:

(WebCore::Internals::resourceLoadStatisticsForURL):

Source/WebKit:

Simplify WebResourceLoadObserver now that we have one WebProcess per session.
No need to pass sessionIDs around or store statistics per sessionID.
Also, only initialize the WebResourceLoadObserver if both ITP is enabled and
we're not in a WebContent process used for an ephemeral session.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::requestStorageAccessUnderOpener):
(WebKit::WebResourceLoadObserver::ensureResourceStatisticsForRegistrableDomain):
(WebKit::WebResourceLoadObserver::scheduleNotificationIfNeeded):
(WebKit::WebResourceLoadObserver::statisticsForURL):
(WebKit::WebResourceLoadObserver::takeStatistics):
(WebKit::WebResourceLoadObserver::clearState):
(WebKit::WebResourceLoadObserver::logFontLoad):
(WebKit::WebResourceLoadObserver::logCanvasRead):
(WebKit::WebResourceLoadObserver::logCanvasWriteOrMeasure):
(WebKit::WebResourceLoadObserver::logNavigatorAPIAccessed):
(WebKit::WebResourceLoadObserver::logScreenAPIAccessed):
(WebKit::WebResourceLoadObserver::logSubresourceLoading):
(WebKit::WebResourceLoadObserver::logWebSocketLoading):
(WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setWebsiteDataStoreParameters):

2:10 PM Changeset in webkit [249919] by Alan Coon
  • 7 edits in tags/Safari-609.1.4.1/Source

Versioning.

2:04 PM Changeset in webkit [249918] by Chris Dumez
  • 62 edits
    4 copies
    2 adds in trunk/LayoutTests

Update testharness.js from upstream
https://bugs.webkit.org/show_bug.cgi?id=201808

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update existing layout tests so that they are compatible with this new version
of testharness.js.

  • IndexedDB-private-browsing/idbdatabase_createObjectStore9-invalidparameters.html:
  • IndexedDB-private-browsing/idbobjectstore_deleted.html:
  • web-platform-tests/custom-elements/resources/custom-elements-helpers.js:

(create_window_in_test):

LayoutTests:

Update testharness.js from upstream 6fd5e1e086ce590a4780a30d12968.
Update existing layout tests so that they are compatible with this new version
of testharness.js.

  • TestExpectations:
  • css-custom-properties-api/length-expected.txt:
  • css-custom-properties-api/length.html:
  • css-custom-properties-api/registerProperty.html:
  • css-dark-mode/older-systems/color-scheme-css-expected.txt:
  • css-dark-mode/older-systems/color-scheme-css.html:
  • css-dark-mode/older-systems/color-scheme-meta-expected.txt:
  • css-dark-mode/older-systems/color-scheme-meta.html:
  • css3/flexbox/style-change-expected.txt:
  • fast/css/DOMQuad-serialization.html:
  • fast/css/Element-style.html:
  • fast/css/parse-justify-self-expected.txt:
  • fast/css/parse-justify-self.html:
  • fast/events/clipboard-event-constructor-expected.txt:
  • fast/events/clipboard-event-constructor.html:
  • fast/media/mq-js-update-media-expected.txt:
  • fast/media/mq-js-update-media.html:
  • fast/mediacapturefromelement/CanvasCaptureMediaStream-offscreencanvas-expected.txt:
  • fast/mediastream/captureStream/canvas2d-expected.txt:
  • fast/mediastream/captureStream/canvas2d-heavy-drawing.html:
  • fast/mediastream/captureStream/canvas2d.html:
  • fast/shadow-dom/event-path-with-window-expected.txt:
  • fast/shadow-dom/event-path-with-window.html:
  • fast/shadow-dom/offsetParent-across-shadow-boundaries-expected.txt:
  • fast/shadow-dom/offsetParent-across-shadow-boundaries.html:
  • fast/shadow-dom/slotchange-for-slot-mutation-expected.txt:
  • fast/shadow-dom/slotchange-for-slot-mutation.html:
  • fast/shadow-dom/stylesheet-title-in-shadow-tree-expected.txt:
  • fast/shadow-dom/stylesheet-title-in-shadow-tree.html:
  • http/tests/fetch/redirectmode-and-preload-expected.txt:
  • http/tests/fetch/redirectmode-and-preload.html:
  • imported/blink/editing/selection/selectstart-event-crash-expected.txt:
  • js/promises-tests/promises-in-workers-expected.txt:
  • js/promises-tests/promises-in-workers.js:
  • resources/check-layout-th.js:

(window.checkLayout):

  • resources/testharness.js:

(WindowTestEnvironment):
(WindowTestEnvironment.prototype._dispatch):
(WindowTestEnvironment.prototype._forEach_windows):
(WindowTestEnvironment.prototype.next_default_test_name):
(WorkerTestEnvironment.prototype.next_default_test_name):
(ServiceWorkerTestEnvironment.on_all_loaded):
(ServiceWorkerTestEnvironment):
(ShellTestEnvironment):
(ShellTestEnvironment.prototype.next_default_test_name):
(ShellTestEnvironment.prototype.on_new_harness_properties):
(ShellTestEnvironment.prototype.on_tests_ready):
(ShellTestEnvironment.prototype.add_on_loaded_callback):
(ShellTestEnvironment.prototype.test_timeout):
(create_test_environment):
(is_shared_worker):
(is_service_worker):
(test):
(promise_test):
(this.wait_for):
(EventWatcher):
(done):

  • streams/readable-byte-stream-controller-expected.txt:
  • streams/readable-byte-stream-controller-worker-expected.txt: Added.
  • streams/readable-byte-stream-controller-worker.html: Copied from LayoutTests/streams/readable-byte-stream-controller.html.
  • streams/readable-byte-stream-controller.html:
  • streams/readable-stream-byob-reader-expected.txt:
  • streams/readable-stream-byob-reader-worker-expected.txt: Added.
  • streams/readable-stream-byob-reader-worker.html: Copied from LayoutTests/streams/readable-stream-byob-reader.html.
  • streams/readable-stream-byob-reader.html:
  • streams/readable-stream-byob-request-expected.txt:
  • streams/readable-stream-byob-request-worker-expected.txt: Copied from LayoutTests/streams/readable-stream-byob-request-expected.txt.
  • streams/readable-stream-byob-request-worker.html: Copied from LayoutTests/streams/readable-stream-byob-request.html.
  • streams/readable-stream-byob-request.html:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
  • streams/reference-implementation/readable-stream-templated.html:
  • streams/reference-implementation/writable-stream-abort-expected.txt:
  • streams/reference-implementation/writable-stream-expected.txt:
  • webrtc/datachannel/basic-expected.txt:
  • webrtc/datachannel/basic.html:
  • webrtc/datachannel/mdns-ice-candidates-expected.txt:
  • webrtc/datachannel/mdns-ice-candidates.html:
  • webrtc/pc-detached-document-expected.txt:
  • webrtc/pc-detached-document.html:
  • webrtc/video-mute-expected.txt:
  • webrtc/video-mute-vp8-expected.txt:
  • webrtc/video-mute-vp8.html:
  • webrtc/video-mute.html:
2:00 PM Changeset in webkit [249917] by Alan Coon
  • 1 copy in tags/Safari-609.1.4.1

New tag.

1:52 PM Changeset in webkit [249916] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Fix build failure in MockNfcService.mm
<https://webkit.org/b/201839>

Patch by David Kilzer <ddkilzer@apple.com> on 2019-09-16
Reviewed by Brady Eidson.

  • UIProcess/WebAuthentication/Mock/MockNfcService.mm:

Specify instance variable names for @synthesized variables that
need to be manually released in -dealloc under MRR.

1:48 PM Changeset in webkit [249915] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

SamplingProfiler should hold API lock before reporting results
https://bugs.webkit.org/show_bug.cgi?id=201829

Reviewed by Yusuke Suzuki.

Right now, the SamplingProfiler crashes in debug builds when trying
report results if it finds a JSFunction on the stack that doesn't have
RareData. It tries to allocate the function's rare data when we call
getOwnPropertySlot in order to get the function's name, but that fails
because we are not holding the VM's API lock. We fix it by just holding
the lock before reporting the results.

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::reportDataToOptionFile):

1:29 PM Changeset in webkit [249914] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] REGRESSION (r248938): Leak of uint32_t arrays in testFastForwardCopy32()
<https://webkit.org/b/201804>

Reviewed by Saam Barati.

  • b3/testb3_8.cpp:

(testFastForwardCopy32): Allocate arrays using
WTF::makeUniqueArray<uint32_t> to fix leaks caused by continue
statements.

1:24 PM Changeset in webkit [249913] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

[ macOS ] Layout tests webgpu/*-triangle-strip.html are flaky failures.
https://bugs.webkit.org/show_bug.cgi?id=201827

Unreviewed Test Gardening.

  • platform/mac/TestExpectations:
1:03 PM Changeset in webkit [249912] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events-onerror.html as flaky on iOS.

This test was imported in r249886.

  • platform/ios-wk2/TestExpectations:
12:32 PM Changeset in webkit [249911] by sbarati@apple.com
  • 3 edits
    2 adds in trunk

JSObject::putInlineSlow should not ignore "proto" for Proxy
https://bugs.webkit.org/show_bug.cgi?id=200386
<rdar://problem/53854946>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/proxy-proto-in-prototype-chain.js: Added.
  • stress/proxy-property-replace-structure-transition.js: Added.

Source/JavaScriptCore:

We used to ignore 'proto' in putInlineSlow when the object in question
was Proxy. There is no reason for this, and it goes against the spec. So
I've removed that condition. This also has the effect that it fixes an
assertion firing inside our inline caching code which dictates that for a
property replace that the base value's structure must be equal to the
structure when we grabbed the structure prior to the put operation.
The old code caused a weird edge case where we broke this invariant.

  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):

12:15 PM Changeset in webkit [249910] by pvollan@apple.com
  • 10 edits in trunk/Source/WebKit

REGRESSION(249649): Unable to open local files in MiniBrowser on macOS
https://bugs.webkit.org/show_bug.cgi?id=201798

Reviewed by Brent Fulgham.

The commit <https://trac.webkit.org/changeset/249649> introduced a MiniBrowser regression on macOS where
MiniBrowser is not able to open local files. The change set r249649 fixed a problem where the WebContent
process PID was not ready to be used when creating a sandbox extension. This happened in the cases where
the WebContent process had not finished launching when the load started. The WebContent process is also
creating sandbox extensions for the Networking process for the files being loaded, and also needs to be
passing the PID of the Networking process when creating these. This patch is addressing this by getting
the PID of the Networking process when the WebContent process is initially getting the connection to the
Networking process. The PID is then stored in the NetworkProcessConnection class, from where it is passed
to the NetworkLoadParameters, and used when creating the sandbox extension for the Networking process.

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::~NetworkProcessProxy):
(WebKit::NetworkProcessProxy::openNetworkProcessConnection):
(WebKit::NetworkProcessProxy::networkProcessCrashed):
(WebKit::NetworkProcessProxy::didFinishLaunching):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequestWithNavigationShared):

  • UIProcess/WebProcessProxy.messages.in:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::NetworkProcessConnection):

  • WebProcess/Network/NetworkProcessConnection.h:

(WebKit::NetworkProcessConnection::create):
(WebKit::NetworkProcessConnection::networkProcessPID const):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::getNetworkProcessConnection):
(WebKit::WebProcess::ensureNetworkProcessConnection):

11:59 AM Changeset in webkit [249909] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[GTK] Remove GraphicsContext3D dependency from the outside of WebGL
https://bugs.webkit.org/show_bug.cgi?id=201748

Patch by ChangSeok Oh <ChangSeok Oh> on 2019-09-16
Reviewed by Alex Christensen.

This is a preliminary change to bring ANGLE support for WebGL to GTK port.
GraphicsContext3DANGLE has its own egl context but we want to make ANGLE egl context
for WebGL and other GL contexts (i.e., glx, gles/egl) for TextureMapper live together.
Mixed uses of GraphicsContext3D outside of WebGL code could cause unintended behaviors.
We want to make sure that only WebGL code uses it.

No new tests since no functionality changed.

  • platform/graphics/GLContext.cpp:
  • platform/graphics/GLContext.h:
  • platform/graphics/glx/GLContextGLX.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::platformLayerBuffer):
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):

  • platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp:
11:44 AM Changeset in webkit [249908] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC] Make the nested Geometry/MarginCollapse/Quirks c'tors private.
https://bugs.webkit.org/show_bug.cgi?id=201825
<rdar://problem/55403474>

Reviewed by Antti Koivisto.

The Geometry/MarginCollapse/Quirks objects should be constructed through the corresponding accessor functions.
This is also a preparation for being able to pass the layout box in to these stack objects and call geometry(layoutBox)->outOfFlowVerticalGeometry() vs. geometry()->outOfFlowVerticalGeometry(layoutBox).

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

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

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/tableformatting/TableFormattingContext.h:
11:29 AM Changeset in webkit [249907] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[WebAuthn] REGRESSION (r249059): Leak of WKMockNFTag objects and WKMockNFTag instance variables
<https://webkit.org/b/201813>

Reviewed by Darin Adler.

  • UIProcess/WebAuthentication/Mock/MockNfcService.mm:

(-[WKMockNFTag dealloc]): Add method and release instance
variables to fix leaks.
(WebKit::MockNfcService::detectTags const): Use adoptNS() to fix
leaks of WKMockNFTag objects.

10:44 AM Changeset in webkit [249906] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style: Fix warning message for std::make_unique<typename[]>
<https://webkit.org/b/201818>

Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_wtf_make_unique): Emit different error message when using
std::make_unique<>() to create an array. Personalize the error
message by including the original type name, which also
demonstrates that WTF::makeUniqueArray<>() does not need square
brackets for its typename.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_wtf_make_unique): Add test.
(WebKitStyleTest.test_wtf_make_unique_array): Ditto.

10:30 AM Changeset in webkit [249905] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Update feature status for Battery Status API, WebGL 2, and Dialog Element
https://bugs.webkit.org/show_bug.cgi?id=201469

Reviewed by Joseph Pecoraro.

  • features.json:
10:15 AM Changeset in webkit [249904] by commit-queue@webkit.org
  • 8 edits in trunk

Rename [WebAccessibilityObjectWrapper _accessibilityInsertText] to accessibilityInsertText to match accessibility client.
https://bugs.webkit.org/show_bug.cgi?id=201820

Patch by Andres Gonzalez <Andres Gonzalez> on 2019-09-16
Reviewed by Chris Fleizach.

Source/WebCore:

No new tests necessary since this is a method rename.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityInsertText:]):
(-[WebAccessibilityObjectWrapper _accessibilityInsertText:]): Deleted.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityInsertText:]):
(-[WebAccessibilityObjectWrapper _accessibilityInsertText:]): Deleted.

Tools:

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::insertText):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::insertText):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::insertText):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::insertText):

9:56 AM Changeset in webkit [249903] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC] Always provide a containing block width value to compute* functions.
https://bugs.webkit.org/show_bug.cgi?id=201809
<rdar://problem/55383153>

Reviewed by Antti Koivisto.

The caller can always make a more informative decision about the default value when the containing block width is not available.
(Currently the only case is when computing the preferred width.)

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeBorderAndPadding):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):
(WebCore::Layout::FormattingContext::Geometry::computedPadding const):
(WebCore::Layout::FormattingContext::Geometry::computedHorizontalMargin const):
(WebCore::Layout::FormattingContext::Geometry::computedVerticalMargin const):

  • layout/LayoutUnits.h:

(WebCore::Layout::UsedHorizontalValues::UsedHorizontalValues):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForReplacedInlineBox):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):

9:41 AM Changeset in webkit [249902] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r243113): Leak of multiple instance variable blocks when deallocating _WKAttributedStringNavigationDelegate
<https://webkit.org/b/201812>

Reviewed by Timothy Hatcher.

  • UIProcess/API/Cocoa/NSAttributedString.mm:

(-[_WKAttributedStringNavigationDelegate dealloc]): Add method
to release instance variable blocks to fix potential leaks.

9:26 AM Changeset in webkit [249901] by ddkilzer@apple.com
  • 6 edits in trunk/Tools

Fix leaks in DumpRenderTree and WebKitTestRunner
<https://webkit.org/b/201814>

Reviewed by Darin Adler.

  • DumpRenderTree/TestNetscapePlugIn/PluginObject.h:

(createCoreAnimationLayer): Fix signature to return CFTypeRef.
Add CF_RETURNS_RETAINED to document behavior.

  • DumpRenderTree/TestNetscapePlugIn/PluginObjectMac.mm:

(createCoreAnimationLayer): Fix signature to return CFTypeRef.

  • DumpRenderTree/mac/PixelDumpSupportMac.mm:

(takeWindowSnapshot): Add CF_RETURNS_RETAINED to document
behavior.
(createBitmapContextFromWebView): Fix leak of CGImageRef when
generating a replacement image.

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: Add @dynamic

declaration for _stableStateOverride so compiler wouldn't try to
create another instance variable for it.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(-[EventSenderSyntheticEvent initPressureEventAtLocation:globalLocation:stage:pressure:stageTransition:phase:time:eventNumber:window:]):
Release cgEvent to fix leak.

9:11 AM Changeset in webkit [249900] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin should not read containing block's width
https://bugs.webkit.org/show_bug.cgi?id=201807
<rdar://problem/55381342>

Reviewed by Antti Koivisto.

This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

9:04 AM Changeset in webkit [249899] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip a couple of new WPT tests that are timing out on the bots.

These tests were imported in r249886.

8:58 AM Changeset in webkit [249898] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, land expectations for imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_swapcache_error.https.html.

This test was imported in r249886.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/offline/application-cache-api/api_swapcache_error.https-expected.txt:

LayoutTests:

8:53 AM Changeset in webkit [249897] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/html/rendering/replaced-elements/embedded-content/video-controls-vertical-writing-mode.html as failing

This test was imported from upstream in r249886.

8:48 AM Changeset in webkit [249896] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, address flakiness of imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_update.https.html

Flaky since r249886.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/offline/application-cache-api/api_update.https-expected.txt:

LayoutTests:

7:31 AM Changeset in webkit [249895] by Antti Koivisto
  • 31 edits in trunk

LayoutTests/imported/w3c:

Eliminate separate simple line layout path from TextIterator
https://bugs.webkit.org/show_bug.cgi?id=201760

Reviewed by Zalan Bujtas.

  • web-platform-tests/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-015-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-016-expected.txt:
  • web-platform-tests/innerText/getter-expected.txt:

Two '\t' subtests flip to FAIL because this was only supported on TextIterator simple line layout path.
This can now be fixed correctly for both paths.

Source/WebCore:
Eliminate separate simple line layout path from TextIterator
https://bugs.webkit.org/show_bug.cgi?id=201760

Reviewed by Zalan Bujtas.

Use the new line layout iterator to implement linebox traversal in TextIterator.

  • WebCore.xcodeproj/project.pbxproj:
  • editing/TextIterator.cpp:

(WebCore::TextIterator::advance):
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):

InlineTextBox* -> LineLayoutInterface::TextBoxIterator
Delete the seperate simple line layout path.

(WebCore::TextIterator::handleTextNodeFirstLetter):
(WebCore::TextIterator::emitCharacter):
(WebCore::TextIterator::emitText):

  • editing/TextIterator.h:
  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):
(WebCore::write):

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::Iterator::Iterator):
(WebCore::SimpleLineLayout::RunResolver::Iterator::advanceLines):

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::RunResolver::Iterator::resolver const):
(WebCore::SimpleLineLayout::RunResolver::Iterator::inQuirksMode const):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator== const):
(WebCore::SimpleLineLayout::RunResolver::Iterator::simpleRun const):

Make RunResolver::Iterator copyable (so TextBoxIterator becomes copyable too).

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::findNextTextFragment):

  • rendering/line/LineLayoutInterfaceTextBoxes.cpp:

(WebCore::LineLayoutInterface::TextBox::rect const):
(WebCore::LineLayoutInterface::TextBox::logicalRect const):
(WebCore::LineLayoutInterface::TextBox::hasHyphen const):
(WebCore::LineLayoutInterface::TextBox::isLeftToRightDirection const):
(WebCore::LineLayoutInterface::TextBox::dirOverride const):
(WebCore::LineLayoutInterface::TextBox::text const):
(WebCore::LineLayoutInterface::TextBox::localStartOffset const):
(WebCore::LineLayoutInterface::TextBox::localEndOffset const):
(WebCore::LineLayoutInterface::TextBox::length const):

Add offset and length functions.

(WebCore::LineLayoutInterface::TextBox::iterator const):
(WebCore::LineLayoutInterface::TextBoxIterator::TextBoxIterator):
(WebCore::LineLayoutInterface::TextBoxIterator::traverseNext):
(WebCore::LineLayoutInterface::TextBoxIterator::operator== const):
(WebCore::LineLayoutInterface::TextBoxIterator::atEnd const):
(WebCore::LineLayoutInterface::Provider::firstTextBoxFor):
(WebCore::LineLayoutInterface::Provider::textBoxRangeFor):
(WebCore::LineLayoutInterface::Provider::iteratorForInlineTextBox):

Add Provider class for making iterators. It constructs and keeps SimpleLineLayout::Resolvers alive during traversal as needed.

  • rendering/line/LineLayoutInterfaceTextBoxes.h:

(WebCore::LineLayoutInterface::TextBoxIterator::TextBoxIterator):
(WebCore::LineLayoutInterface::TextBoxIterator::operator bool const):
(WebCore::LineLayoutInterface::TextBoxIterator::operator== const):
(WebCore::LineLayoutInterface::TextBoxIterator::operator!= const):
(WebCore::LineLayoutInterface::TextBoxIterator::operator* const):
(WebCore::LineLayoutInterface::TextBoxIterator::operator-> const):

Make TextBoxIterator privately inherit TextBox. This way we don't need to construct temporaries and can easily implement operator->.

(WebCore::LineLayoutInterface::TextBoxRange::TextBoxRange):
(WebCore::LineLayoutInterface::TextBoxRange::begin const):
(WebCore::LineLayoutInterface::TextBoxRange::end const):

Use separate end() type of C++17 ranges.

LayoutTests:
Eliminate separate simple line layout path from TextIterator
https://bugs.webkit.org/show_bug.cgi?id=201760

Reviewed by Zalan Bujtas.

This patch makes simple and complex line layout path results from TextIterator match, causing some whitespace changes.

  • animations/lineheight-animation-expected.txt:
  • animations/simultaneous-start-transform-expected.txt:
  • animations/width-using-ems-expected.txt:
  • compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt:
  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt:
  • fast/events/window-events-bubble-expected.txt:
  • fast/events/window-events-bubble2-expected.txt:
  • fast/tokenizer/script_extra_close-expected.txt:
  • legacy-animation-engine/animations/lineheight-animation-expected.txt:
  • legacy-animation-engine/animations/simultaneous-start-transform-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt:
5:56 AM WebKitGTK/2.26.x edited by Michael Catanzaro
(diff)
4:37 AM Changeset in webkit [249894] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • NetworkProcess/NetworkConnectionToWebProcess.h: Add missing forward

declaration of the NetworkSession class.

2:04 AM Changeset in webkit [249893] by commit-queue@webkit.org
  • 18 edits
    2 adds in trunk

Expose misspelling ranges for editable content to accessibility clients.
https://bugs.webkit.org/show_bug.cgi?id=201752
<rdar://problem/49556828>

Patch by Andres Gonzalez <Andres Gonzalez> on 2019-09-16
Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/misspelling-range.html

Added [WebAccessibilityObjectWrapper misspellingTextMarkerRange] and
underlying AccessibilityObject implementation to expose misspellings to
accessibility clients that provide an alternative user interface to
spell checking.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::getMisspellingRange const):

  • accessibility/AccessibilityObject.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper misspellingTextMarkerRange:direction:]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(accessibilityMisspellingSearchCriteriaForParameterizedAttribute):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

Tools:

Test code needed for LayoutTests/accessibility/misspelling-range.html.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::misspellingTextMarkerRange):
(WTR::AccessibilityUIElement::indexForTextMarker):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::misspellingSearchParameterizedAttributeForCriteria):
(WTR::AccessibilityUIElement::misspellingTextMarkerRange):

LayoutTests:

  • accessibility/misspelling-range-expected.txt: Added.
  • accessibility/misspelling-range.html: Added.
  • platform/ios-simulator/TestExpectations:
1:46 AM Changeset in webkit [249892] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/Source/ThirdParty/ANGLE

Remove commit.h copying build steps
https://bugs.webkit.org/show_bug.cgi?id=201785

Patch by James Darpinian <James Darpinian> on 2019-09-16
Reviewed by Alex Christensen.

  • ANGLE.xcodeproj/project.pbxproj: Remove leftover build step
  • CMakeLists.txt: Remove commit.h copying
  • src/common/version.h: Restore to upstream version
  • src/id/commit.h: Added.
  • update-angle.sh: Copy commit.h to id/commit.h at import time
1:01 AM Changeset in webkit [249891] by Chris Dumez
  • 33 edits in trunk/Source/WebKit

Store sessionID on the NetworkConnectionToWebProcess now that there is one session per WebProcess
https://bugs.webkit.org/show_bug.cgi?id=201789

Reviewed by Alex Christensen.

Store sessionID on the NetworkConnectionToWebProcess now that there is one session per WebProcess.
As a result, we no longer need to pass the sessionID in each IPC from the WebProcess to the
NetworkProcess.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::create):
(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::createSocketStream):
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
(WebKit::NetworkConnectionToWebProcess::networkSession):
(WebKit::NetworkConnectionToWebProcess::resolveBlobReferences):
(WebKit::NetworkConnectionToWebProcess::storageSession):
(WebKit::NetworkConnectionToWebProcess::startDownload):
(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):
(WebKit::NetworkConnectionToWebProcess::deleteCookie):
(WebKit::NetworkConnectionToWebProcess::registerFileBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLForSlice):
(WebKit::NetworkConnectionToWebProcess::unregisterBlobURL):
(WebKit::NetworkConnectionToWebProcess::blobSize):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
(WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame):
(WebKit::NetworkConnectionToWebProcess::clearPageSpecificDataForResourceLoadStatistics):
(WebKit::NetworkConnectionToWebProcess::logUserInteraction):
(WebKit::NetworkConnectionToWebProcess::hasStorageAccess):
(WebKit::NetworkConnectionToWebProcess::requestStorageAccess):
(WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
(WebKit::NetworkConnectionToWebProcess::startTrackingResourceLoad):
(WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer):
(WebKit::NetworkConnectionToWebProcess::unregisterSWConnection):
(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::sessionID const):
(WebKit::NetworkConnectionToWebProcess::startDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::openNetworkProcessConnection):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::sessionID const):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerFileBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):
(WebKit::BlobRegistryProxy::unregisterBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLForSlice):
(WebKit::BlobRegistryProxy::blobSize):

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::connect):

  • WebProcess/Network/WebSocketStream.cpp:

(WebKit::WebSocketStream::WebSocketStream):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::WebSWClientConnection):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::m_userAgent):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::requestStorageAccessUnderOpener):
(WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

  • WebProcess/WebPage/WebCookieJar.cpp:

(WebKit::WebCookieJar::cookies const):
(WebKit::WebCookieJar::setCookies):
(WebKit::WebCookieJar::cookiesEnabled const):
(WebKit::WebCookieJar::cookieRequestHeaderFieldValue const):
(WebKit::WebCookieJar::getRawCookies const):
(WebKit::WebCookieJar::deleteCookie):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::close):
(WebKit::WebPage::hasStorageAccess):
(WebKit::WebPage::requestStorageAccess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::createWebPage):
(WebKit::WebProcess::removeWebPage):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::sessionID const):

12:49 AM Changeset in webkit [249890] by Carlos Garcia Campos
  • 6 edits in trunk

REGRESSION(r249142): [GTK] Epiphany delayed page loads continue indefinitely
https://bugs.webkit.org/show_bug.cgi?id=201544

Reviewed by Michael Catanzaro.

Source/WebKit:

WebPageProxy::loadAlternateHTML() is an exception, because it's an API request but always sets the navigationID
to 0. We always want to reset the pending API request URL when alternate HTML load starts.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared): Check also that it's an API alternate HTML load
to reset the pending API request URL.

Tools:

Add new test cases.

  • TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:

(testWebViewActiveURI):
(testWebViewIsLoading):

  • TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp:

(loadChangedCallback):
(LoadTrackingTest::loadAlternateHTML):
(LoadTrackingTest::reset):

  • TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.h:

Sep 15, 2019:

10:51 PM Changeset in webkit [249889] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r248592): Leak of CFDictionaryRef in WebKit::NetworkRTCProvider::proxyInfoFromSession()
<https://webkit.org/b/201811>

Reviewed by Youenn Fablet.

  • NetworkProcess/webrtc/NetworkRTCProvider.mm:

(WebKit::NetworkRTCProvider::proxyInfoFromSession): Use
RetainPtr<> to fix the leak.

5:41 PM Changeset in webkit [249888] by aestes@apple.com
  • 4 edits
    6 adds in trunk/Source/WebCore

[WebIDL] Derived dictionaries should inherit their inherited dictionaries' partials
https://bugs.webkit.org/show_bug.cgi?id=201802

Reviewed by Sam Weinig.

Prior to this change, a dictionary D that inherits from dictionary B would not inherit B's
partial dictionaries. Fixed this by moving supplemental dependencies processing from
generate-bindings.pl to CodeGenerator.pm and reusing it in GetDictionaryByType.

Added new bindings tests.

  • bindings/scripts/CodeGenerator.pm:

(new):
(ProcessDocument):
(ProcessSupplementalDependencies):
(shouldPropertyBeExposed):
(GetDictionaryByType):

  • bindings/scripts/generate-bindings.pl:

(generateBindings):
(shouldPropertyBeExposed): Deleted.

  • bindings/scripts/test/JS/JSTestDerivedDictionary.cpp: Added.

(WebCore::convertDictionary<TestDerivedDictionary>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestDerivedDictionary.h: Added.
  • bindings/scripts/test/JS/JSTestInheritedDictionary.cpp: Added.

(WebCore::convertDictionary<TestInheritedDictionary>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestInheritedDictionary.h: Added.
  • bindings/scripts/test/TestDerivedDictionary.idl: Added.
  • bindings/scripts/test/TestInheritedDictionary.idl: Added.
  • bindings/scripts/test/TestSupplemental.idl:
2:43 PM Changeset in webkit [249887] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Missing call to [self init] in -[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]
<https://webkit.org/b/201806>

Reviewed by Simon Fraser.

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
Call [self init] and return early if the result is nil.

12:25 PM Changeset in webkit [249886] by Chris Dumez
  • 442 edits
    13 moves
    2115 adds
    71 deletes in trunk/LayoutTests

Re-sync HTML web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=201753

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Re-sync HTML web-platform-tests from upstream 8893b1bcfc2ca0675f4e81.

  • web-platform-tests/html/*: Updated.

LayoutTests:

  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt:
  • platform/win/TestExpectations:
  • tests-options.json:
10:17 AM Changeset in webkit [249885] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Leak of NSMapTable in -[JSVirtualMachine addManagedReference:withOwner:]
<https://webkit.org/b/201803>

Reviewed by Dan Bernstein.

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine addManagedReference:withOwner:]): Use
RetainPtr<> to fix the leak.

7:14 AM Changeset in webkit [249884] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

block-spammers should obtain credentials the same way as webkit-patch
<https://webkit.org/b/201733>

Reviewed by Lucas Forschler.

  • Scripts/block-spammers: Import Credentials from webkitpy.

Remove unused imports. Enable logging at info level to match
webkit-patch.
(get_bugzilla_token): Use Credentials module to get
bugs.webkit.org credentials.

  • Scripts/webkitpy/common/net/credentials.py:

(Credentials._run_security_tool): Change logging level from
error to info since multiple attempts are made at reading the
keychain. Fix typos in comment.
(Credentials._credentials_from_security_command): Extract common
logic from Credentials._credentials_from_keychain into new
method.
(Credentials._credentials_from_keychain): Make fallback logic
for checking for credentials in the keychain more consistent and
easier to read. Add error logging if no credentials are found.

6:30 AM Changeset in webkit [249883] by Adrian Perez de Castro
  • 2 edits in trunk

[GTK][WPE] Do not run the Bubblewrap executable when configuring for cross-compilation
https://bugs.webkit.org/show_bug.cgi?id=201340

Reviewed by Konstantin Tokarev.

  • Source/cmake/BubblewrapSandboxChecks.cmake: Do not run the

Bubblewrap executable when cross-compiling to guess its version.
Emit a warning instead and trust that valid run-time paths will
be set using the BWRAP_EXECUTABLE and DBUS_PROXY_EXECUTABLE
variables. While at it, fix the regular expression used to match
the version string in the Bubblewrap output when not cross-compiling.

Sep 14, 2019:

3:45 PM Changeset in webkit [249882] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Check for a Snap sandbox a bit harder
https://bugs.webkit.org/show_bug.cgi?id=201793

Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::isInsideSnap): Check whether the SNAP_NAME and SNAP_REVISION
environment variables are defined as well.

3:31 PM Changeset in webkit [249881] by Justin Fan
  • 11 edits in trunk/Source/WebCore

[WebGPU] Make WebGPURenderPipeline and WebGPUComputePipeline inherit from GPUObjectBase
https://bugs.webkit.org/show_bug.cgi?id=201207

Reviewed by Dean Jackson.

Make remaining WebGPU "client" classes manage their error scopes, instead of the internal classes.
Matches Web/GPUBuffer, and allows "invalid" WebGPU objects to create errors.

Covered by existing tests.

  • Modules/webgpu/WebGPUComputePipeline.cpp:

(WebCore::WebGPUComputePipeline::create):
(WebCore::WebGPUComputePipeline::WebGPUComputePipeline):

  • Modules/webgpu/WebGPUComputePipeline.h:
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createRenderPipeline const):
(WebCore::WebGPUDevice::createComputePipeline const):

  • Modules/webgpu/WebGPURenderPipeline.cpp:

(WebCore::WebGPURenderPipeline::create):
(WebCore::WebGPURenderPipeline::WebGPURenderPipeline):

  • Modules/webgpu/WebGPURenderPipeline.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/gpu/GPUComputePipeline.h:
  • platform/graphics/gpu/GPURenderPipeline.h:
  • platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:

(WebCore::GPUComputePipeline::tryCreate):
(WebCore::GPUComputePipeline::GPUComputePipeline):

  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:

(WebCore::GPURenderPipeline::tryCreate):
(WebCore::GPURenderPipeline::GPURenderPipeline):

12:36 PM Changeset in webkit [249880] by ysuzuki@apple.com
  • 26 edits in trunk/Source

Retire x86 32bit JIT support
https://bugs.webkit.org/show_bug.cgi?id=201790

Reviewed by Mark Lam.

Source/JavaScriptCore:

Now, Xcode no longer has ability to build 32bit binary, so we cannot even test it on macOS.
Fedora stops shipping x86 32bit kernel. Our x86/x86_64 JIT requires SSE2, and so such relatively modern CPUs
can use JIT by switching x86 to x86_64. And these CPUs are modern enough to run CLoop at high speed.
WebKit already disabled x86 JIT by default while the implementation exists. So literary, it is not tested.

While x86 32bit becomes less useful, x86 32bit JIT backend is very complicated and is being a major maintenance burden.
This is due to very few # of registers. Which scatters a lot of isX86 / CPU(X86) in Baseline, DFG, and Yarr.

This patch retires x86 JIT support from JavaScriptCore and CSS JIT. We still keep MacroAssembler and GPRInfo / FPRInfo,
MachineContext information since they are useful even though JIT is not supported.

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::refine const):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileExceptionHandlers):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::osrWriteBarrier):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArithMod):
(JSC::DFG::SpeculativeJIT::compileCreateRest):
(JSC::DFG::SpeculativeJIT::compileGetDirectPname):

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

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

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):

  • ftl/FTLThunks.cpp:

(JSC::FTL::slowPathCallThunkGenerator):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::debugCall):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitComputeButterflyIndexingMask):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsImpl):
(JSC::CCallHelpers::prepareForTailCallSlow):

  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::prepareForTailCall):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileExceptionHandlers):

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emit_op_mod):
(JSC::JIT::emitSlow_op_mod):

  • jit/SlowPathCall.h:

(JSC::JITSlowPathCall::call):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitModOrDiv):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generateDotStarEnclosure):
(JSC::Yarr::YarrGenerator::generateEnter):
(JSC::Yarr::YarrGenerator::generateReturn):
(JSC::Yarr::YarrGenerator::compile):

  • yarr/YarrJIT.h:

Source/WebCore:

  • cssjit/FunctionCall.h:

(WebCore::FunctionCall::callAndBranchOnBooleanReturnValue):
(WebCore::FunctionCall::swapArguments):

Source/WTF:

  • wtf/Platform.h:
11:52 AM Changeset in webkit [249879] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] FormattingContext::Geometry::inFlowPositionedPositionOffset should not read containing block's width
https://bugs.webkit.org/show_bug.cgi?id=201797
<rdar://problem/55366244>

Reviewed by Antti Koivisto.

This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):

11:05 AM Changeset in webkit [249878] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC] FormattingContext::Geometry::inlineReplacedHeightAndMargin should not read containing block's width
https://bugs.webkit.org/show_bug.cgi?id=201796
<rdar://problem/55366109>

Reviewed by Antti Koivisto.

This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):

10:23 AM Changeset in webkit [249877] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry should not read containing block's width.
https://bugs.webkit.org/show_bug.cgi?id=201794
<rdar://problem/55365669>

Reviewed by Antti Koivisto.

This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):

9:00 AM Changeset in webkit [249876] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

newController may be moved several times under SWClientConnection::notifyClientsOfControllerChange()
https://bugs.webkit.org/show_bug.cgi?id=201792
<rdar://problem/55351284>

Reviewed by Youenn Fablet.

Stop WTFMove()'ing inside the for loop.

  • workers/service/SWClientConnection.cpp:

(WebCore::SWClientConnection::notifyClientsOfControllerChange):

8:41 AM Changeset in webkit [249875] by mark.lam@apple.com
  • 2 edits in branches/safari-608.2.11.1-branch/Source/JavaScriptCore

Cherry-pick r249345. rdar://problem/55362909

2019-08-30 Mark Lam <mark.lam@apple.com>

Fix a bug in SlotVisitor::reportZappedCellAndCrash() and also capture more information.
https://bugs.webkit.org/show_bug.cgi?id=201345

Reviewed by Yusuke Suzuki.

This patch fixes a bug where SlotVisitor::reportZappedCellAndCrash() was using
the wrong pointer for capture the cell headerWord and zapReason. As a result,
we get junk for those 2 values.

Previously, we were only capturing the upper 32-bits of the cell header slot,
and the lower 32-bit of the next slot in the zapped cell. We now capture the
full 64-bits of both slots. If the second slot did not contain a zapReason as we
expect, the upper 32-bits might give us a clue as to what type of value the slot
contains.

This patch also adds capturing of the found MarkedBlock address for the zapped
cell, as well as some state bit values.

  • heap/SlotVisitor.cpp: (JSC::SlotVisitor::reportZappedCellAndCrash):
8:16 AM Changeset in webkit [249874] by mark.lam@apple.com
  • 22 edits in branches/safari-608.2.11.1-branch

Source/JavaScriptCore:
Cherry-pick r248143, r248162. rdar://problem/55362908

Also deleted an unused function. This is needed to resolve a merge conflict for
this patch.

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::zap): Deleted.

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::zap): Deleted.

2019-08-01 Mark Lam <mark.lam@apple.com>

Add crash diagnostics for debugging unexpected zapped cells.
https://bugs.webkit.org/show_bug.cgi?id=200149
<rdar://problem/53570112>

Reviewed by Yusuke Suzuki.

Add a check for zapped cells in SlotVisitor::appendToMarkStack() and
SlotVisitor::visitChildren(). If a zapped cell is detected, we will crash with
some diagnostic info.

To facilitate this, we've made the following changes:

  1. Changed FreeCell to preserve the 1st 8 bytes. This is fine to do because all cells are at least 16 bytes long.
  2. Changed HeapCell::zap() to only zap the structureID. Leave the rest of the cell header info intact (including the cell JSType).
  3. Changed HeapCell::zap() to record the reason for zapping the cell. We stash the reason immediately after the first 8 bytes. This is the same location as FreeCell::scrambledNext. However, since a cell is not expected to be zapped and on the free list at the same time, it is also fine to do this.
  4. Added a few utility functions to MarkedBlock for checking if a cell points into the block.
  5. Added VMInspector and JSDollarVM utilities to dump in-use subspace hashes.
  6. Added some comments to document the hashes of known subspaces.
  7. Added Options::dumpZappedCellCrashData() to make this check conditional. We use this option to disable this check for slower machines so that their PLT5 performance is not impacted.
  • assembler/CPU.cpp: (JSC::hwL3CacheSize): (JSC::hwPhysicalCPUMax):
  • assembler/CPU.h: (JSC::hwL3CacheSize): (JSC::hwPhysicalCPUMax):
  • heap/FreeList.h: (JSC::FreeCell::offsetOfScrambledNext):
  • heap/HeapCell.h: (JSC::HeapCell::zap): (JSC::HeapCell::isZapped const):
  • heap/MarkedBlock.cpp: (JSC::MarkedBlock::Handle::stopAllocating):
  • heap/MarkedBlock.h: (JSC::MarkedBlock::Handle::start const): (JSC::MarkedBlock::Handle::end const): (JSC::MarkedBlock::Handle::contains const):
  • heap/MarkedBlockInlines.h: (JSC::MarkedBlock::Handle::specializedSweep):
  • heap/MarkedSpace.h: (JSC::MarkedSpace::forEachSubspace):
  • heap/SlotVisitor.cpp: (JSC::SlotVisitor::appendToMarkStack): (JSC::SlotVisitor::visitChildren): (JSC::SlotVisitor::reportZappedCellAndCrash):
  • heap/SlotVisitor.h:
  • jit/AssemblyHelpers.cpp: (JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):
  • runtime/Options.cpp: (JSC::Options::initialize):
  • runtime/Options.h:
  • runtime/VM.cpp: (JSC::VM::VM):
  • tools/JSDollarVM.cpp: (JSC::functionDumpSubspaceHashes): (JSC::JSDollarVM::finishCreation):
  • tools/VMInspector.cpp: (JSC::VMInspector::dumpSubspaceHashes):
  • tools/VMInspector.h:

2019-08-02 Mark Lam <mark.lam@apple.com>

Gardening: build fix.
https://bugs.webkit.org/show_bug.cgi?id=200149
<rdar://problem/53570112>

Not reviewed.

  • assembler/CPU.cpp: (JSC::hwPhysicalCPUMax):

Source/WebCore:
Cherry-pick r248143. rdar://problem/55362908

2019-08-01 Mark Lam <mark.lam@apple.com>

Add crash diagnostics for debugging unexpected zapped cells.
https://bugs.webkit.org/show_bug.cgi?id=200149
<rdar://problem/53570112>

Reviewed by Yusuke Suzuki.

No new tests because this is a feature for debugging crashes. It has been tested
manually by modifying the code to force a crash at the point of interest.

Added some comments to document the hashes of known subspaces.

  • bindings/js/WebCoreJSClientData.cpp: (WebCore::JSVMClientData::JSVMClientData):
6:55 AM Changeset in webkit [249873] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] FormattingContext::Geometry::computedHeightValue should not read containing block's height.
https://bugs.webkit.org/show_bug.cgi?id=201791
<rdar://problem/55361695>

Reviewed by Antti Koivisto.

While sizing/positioning a particular box, we oftentimes need some containing block geometry information.
The idea here is that instead of calling formattingContext().geometry(containingBlock), these constraint values
would be pushed in to those compute* functions. It helps controlling the access to the display box tree and
prevents formatting context escaping.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):
(WebCore::Layout::FormattingContext::Geometry::computedMaxHeight const):
(WebCore::Layout::FormattingContext::Geometry::computedMinHeight const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):

  • layout/LayoutUnits.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

3:11 AM Changeset in webkit [249872] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Add release logging in WebLoaderStrategy to check that a load is going through service worker
https://bugs.webkit.org/show_bug.cgi?id=201761

Reviewed by Chris Dumez.

This allows identifying whether a load remains pending on the service worker fetch path.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

1:52 AM Changeset in webkit [249871] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

ASSERTION FAILED: !renderer() in WebCore::Text::~Text
https://bugs.webkit.org/show_bug.cgi?id=172514
<rdar://problem/32470509>

Unreviewed, this assert should be fixed now.

Unskipping imported/w3c/web-platform-tests/innerText/getter.html on debug

Sep 13, 2019:

11:23 PM Changeset in webkit [249870] by youenn@apple.com
  • 6 edits
    4 adds in trunk

WPT importer should check META global tag in .any.js files to generate the valid .html stub files
https://bugs.webkit.org/show_bug.cgi?id=201718

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/infrastructure/server/context.any.serviceworker-expected.txt: Added.
  • web-platform-tests/infrastructure/server/context.any.serviceworker.html: Added.
  • web-platform-tests/infrastructure/server/secure-context.https.any.serviceworker-expected.txt: Added.
  • web-platform-tests/infrastructure/server/secure-context.https.any.serviceworker.html: Added.

Tools:

Read meta tag information to select the environments where the any.js template tests will be run.
Added support to run service worker tests from any.js template tests.

Covered by unit test.
Since we import only a single repository nowadays, use a test config file with just one repository
to simplify the new test.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.init):
(TestImporter.readEnvironmentsForTemplateTest):
(TestImporter.write_html_files_for_templated_js_tests):

  • Scripts/webkitpy/w3c/test_importer_unittest.py:

(TestImporterTest.test_import_dir_with_no_tests_and_no_hg):
(TestImporterTest.test_import_dir_with_no_tests):
(TestImporterTest.test_import_dir_with_empty_init_py):
(TestImporterTest.test_harnesslinks_conversion):
(TestImporterTest.test_submodules_generation):
(test_checkout_directory):
(test_clean_directory_option):
(test_git_ignore_generation):
(test_initpy_generation):
(test_remove_obsolete_content):
(test_manual_slow_test):
(test_webkit_test_runner_options):
(test_webkit_test_runner_import_reftests_with_absolute_paths_download):
(test_webkit_test_runner_import_reftests_with_absolute_paths_from_source_dir):
(test_template_test):

LayoutTests:

  • platform/mac-wk1/TestExpectations:

Skipping service worker tests.

10:14 PM Changeset in webkit [249869] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

[MacOS/iOS] imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-abort.https.html is sometimes crashing in Debug
https://bugs.webkit.org/show_bug.cgi?id=201686

Reviewed by Alexey Proskuryakov.

A load might be cancelled shortly after being started in network process.
In that case, NetworkDataTaskCocoa might be destroyed, thus removed from the ID to task map
but some handlers might still be called until the NSURLSessionTask is finished cancelling.
This happens for authentication challenges.
In case where the NSURLSessionTask is cancelling, return early instead of processing the challenge.

Covered by LayoutTests/imported/w3c/web-platform-tests/service-workers/cache-storage/window/cache-abort.https.html and LayoutTests/imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-abort.https.html no longer crashing in debug.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

7:22 PM Changeset in webkit [249868] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

jsc -d stopped working.
https://bugs.webkit.org/show_bug.cgi?id=201787

Reviewed by Joseph Pecoraro.

The reason is because, in this case, the jsc shell is trying to set an option
after the VM has been instantiated. The fix is simply to move all options
initialization before the VM is instantiated.

  • jsc.cpp:

(runWithOptions):
(jscmain):

7:16 PM Changeset in webkit [249867] by Joseph Pecoraro
  • 11 edits
    13 adds in trunk

Web Inspector: HTML Formatter - XML mode
https://bugs.webkit.org/show_bug.cgi?id=201758

Reviewed by Devin Rousso.

Source/WebInspectorUI:

  • Tools/HTMLFormatter/index.html:
  • Tools/SourceMaps/index.html:

Update Tools to more easily test XML.

  • UserInterface/Proxies/FormatterWorkerProxy.js:

(WI.FormatterWorkerProxy.prototype.formatXML):

  • UserInterface/Views/TextEditor.js:

(WI.TextEditor.prototype.hasFormatter):
(WI.TextEditor.prototype._startWorkerPrettyPrint):
Allow formatting XML content.

  • UserInterface/Workers/Formatter/FormatterWorker.js:

(FormatterWorker.prototype.formatHTML):
(FormatterWorker.prototype.formatXML):
Expose "formatXML".

  • UserInterface/Workers/Formatter/HTMLFormatter.js:

(HTMLFormatter.let.dom):
(HTMLFormatter):
(HTMLFormatter.prototype._shouldHaveNoChildren):
(HTMLFormatter.prototype._before):
(HTMLFormatter.prototype._after):

  • UserInterface/Workers/Formatter/HTMLParser.js:

(HTMLParser.prototype.parseDocument):

  • UserInterface/Workers/Formatter/HTMLTreeBuilderFormatter.js:

(HTMLTreeBuilderFormatter.prototype._isEmptyNode):
Give the HTMLFormatter and related classes an XML mode that
has less of the smarts of XML.

LayoutTests:

  • inspector/formatting/formatting-xml-expected.txt: Added.
  • inspector/formatting/formatting-xml.html: Added.
  • inspector/formatting/resources/formatting-utilities.js:

(TestPage.registerInitializer.async.runFormattingTest):

  • inspector/formatting/resources/xml-tests/atom-expected.xml: Added.
  • inspector/formatting/resources/xml-tests/atom.xml: Added.
  • inspector/formatting/resources/xml-tests/basic-expected.xml: Added.
  • inspector/formatting/resources/xml-tests/basic.xml: Added.
  • inspector/formatting/resources/xml-tests/rss-expected.xml: Added.
  • inspector/formatting/resources/xml-tests/rss.xml: Added.
  • inspector/formatting/resources/xml-tests/valid-html-invalid-xml-expected.xml: Added.
  • inspector/formatting/resources/xml-tests/valid-html-invalid-xml.xml: Added.
  • inspector/formatting/resources/xml-tests/xslt-expected.xml: Added.
  • inspector/formatting/resources/xml-tests/xslt.xml: Added.
6:57 PM Changeset in webkit [249866] by Joseph Pecoraro
  • 5 edits
    6 adds in trunk

Web Inspector: HTML Formatting: Handle infinite loop for incomplete script data
https://bugs.webkit.org/show_bug.cgi?id=201769

Reviewed by Devin Rousso.

Source/WebInspectorUI:

  • UserInterface/Workers/Formatter/HTMLParser.js:

(HTMLParser):
Handle EOF in the script data's loop.
Better handle EOF at the end of text data.

LayoutTests:

  • inspector/formatting/formatting-html-expected.txt:
  • inspector/formatting/formatting-html.html:
  • inspector/formatting/resources/html-tests/eof-7-expected.html: Added.
  • inspector/formatting/resources/html-tests/eof-7.html: Added.
  • inspector/formatting/resources/html-tests/eof-8-expected.html: Added.
  • inspector/formatting/resources/html-tests/eof-8.html: Added.
  • inspector/formatting/resources/html-tests/eof-9-expected.html: Added.
  • inspector/formatting/resources/html-tests/eof-9.html: Added.
6:52 PM Changeset in webkit [249865] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

watchOS requires PageSize alignment of 16K for JSC::Config.
https://bugs.webkit.org/show_bug.cgi?id=201786
<rdar://problem/55357890>

Reviewed by Yusuke Suzuki.

  • runtime/JSCConfig.h:
6:12 PM Changeset in webkit [249864] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, follow-up fix after r249842
https://bugs.webkit.org/show_bug.cgi?id=201750

Michael reviewed this offline. When performing nearCall, we need to invalidate cache registers.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::nearCall):
(JSC::MacroAssemblerARM64::threadSafePatchableNearCall):

5:50 PM Changeset in webkit [249863] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve auto completion typing performance by avoiding global forced layouts
https://bugs.webkit.org/show_bug.cgi?id=201735

Reviewed by Devin Rousso.

  • UserInterface/Views/Main.css:

(#layout-measurement-container):

  • UserInterface/Base/Main.js:

(WI.measureElement):
Provide a helper for measuring an element in a hidden container
that helps avoid more global layout.

  • UserInterface/Views/CompletionSuggestionsView.js:

(WI.CompletionSuggestionsView.prototype.show):
Use measure element to avoid a global forced layout.

5:35 PM Changeset in webkit [249862] by dino@apple.com
  • 2 edits in trunk/Tools

Provide a prototype for AR QuickLook to trigger processing in the originating page
https://bugs.webkit.org/show_bug.cgi?id=201371
<rdar://54904781>

Disable the test for the moment.

  • TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:

(TestWebKitAPI::TEST):

5:24 PM Changeset in webkit [249861] by commit-queue@webkit.org
  • 4 edits in trunk

Date.prototype.toJSON does not execute steps 1-2
https://bugs.webkit.org/show_bug.cgi?id=105282

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-09-13
Reviewed by Ross Kirsling.

JSTests:

  • test262/expectations.yaml: Mark 2 test cases as passing.

Source/JavaScriptCore:

According to https://tc39.es/ecma262/#sec-built-in-function-objects, built-in methods must be
strict mode functions. Before this change, this value in Date.prototype.toJSON was resolved
using sloppy mode semantics, resulting in toISOString being called on global object if this
value equals null or undefined.

  • runtime/DatePrototype.cpp:

(JSC::dateProtoFuncToJSON): Resolve thisValue using strict semantics and simplify std::isfinite check.

5:12 PM Changeset in webkit [249860] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance.html is failing on iOS.
https://bugs.webkit.org/show_bug.cgi?id=201784

Unreviewed Test Gardening.

  • platform/ios/TestExpectations: Marked Test as Failing.
5:00 PM Changeset in webkit [249859] by Jonathan Bedard
  • 2 edits in trunk/Source/WTF

iOS 13: Some SPI targets 13.1
https://bugs.webkit.org/show_bug.cgi?id=201777

Reviewed by Alexey Proskuryakov.

  • wtf/Platform.h:
4:45 PM Changeset in webkit [249858] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

performJITMemcpy() should do its !Gigacage assertion on exit.
https://bugs.webkit.org/show_bug.cgi?id=201780
<rdar://problem/55354867>

Reviewed by Robin Morisset.

Re-doing previous fix.

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):
(JSC::GigacageAssertScope::GigacageAssertScope): Deleted.
(JSC::GigacageAssertScope::~GigacageAssertScope): Deleted.

4:18 PM Changeset in webkit [249857] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

performJITMemcpy() should do its !Gigacage assertion on exit.
https://bugs.webkit.org/show_bug.cgi?id=201780
<rdar://problem/55354867>

Reviewed by Robin Morisset.

  • jit/ExecutableAllocator.h:

(JSC::GigacageAssertScope::GigacageAssertScope):
(JSC::GigacageAssertScope::~GigacageAssertScope):
(JSC::performJITMemcpy):

3:06 PM Changeset in webkit [249856] by mark.lam@apple.com
  • 2 edits in trunk/Source/bmalloc

We should never fail to allocate VA for the Gigacage.
https://bugs.webkit.org/show_bug.cgi?id=201774
<rdar://problem/55352042>

Reviewed by Yusuke Suzuki.

Unfortunately, this is still not true for OS(LINUX). So, I'll leave the
GIGACAGE_ALLOCATION_CAN_FAIL code in place but disable it for everything else.

  • bmalloc/Gigacage.h:
2:43 PM Changeset in webkit [249855] by dino@apple.com
  • 29 edits
    2 adds in trunk

Provide a prototype for AR QuickLook to trigger processing in the originating page
https://bugs.webkit.org/show_bug.cgi?id=201371
<rdar://54904781>

Reviewed by Simon Fraser.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::dispatchSystemPreviewActionEvent): Create and dispatch a MessageEvent.

  • dom/Document.h:
  • html/HTMLAnchorElement.cpp: Send along the page and frame identifiers for this

object to ensure that any reply goes to the correct place.
(WebCore::HTMLAnchorElement::handleClick):

  • loader/FrameLoadRequest.h: Use the new SystemPreviewInfo type.

(WebCore::FrameLoadRequest::isSystemPreview const):
(WebCore::FrameLoadRequest::systemPreviewInfo const):
(WebCore::FrameLoadRequest::systemPreviewRect const): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):

  • loader/FrameLoaderTypes.h: Provide encoders for the type.

(WebCore::SystemPreviewInfo::encode const):
(WebCore::SystemPreviewInfo::decode):

  • platform/network/ResourceRequestBase.cpp: Use the new type.

(WebCore::ResourceRequestBase::isSystemPreview const):
(WebCore::ResourceRequestBase::systemPreviewInfo const):
(WebCore::ResourceRequestBase::setSystemPreviewInfo):
(WebCore::ResourceRequestBase::setSystemPreview): Deleted.
(WebCore::ResourceRequestBase::systemPreviewRect const): Deleted.
(WebCore::ResourceRequestBase::setSystemPreviewRect): Deleted.

  • platform/network/ResourceRequestBase.h:
  • testing/Internals.cpp: Expose the frame and page identifiers to testing.

(WebCore::Internals::frameIdentifier const):
(WebCore::Internals::pageIdentifier const):

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

Source/WebKit:

Provide a way for a Web page to know if an action in the AR scene
was performed, if and only if the system AR library calls a delegate with
particular parameters. Post a message to the originating frame so
the page can detect the action.

  • Scripts/webkit/messages.py: Include the right header for SystemPreviewInfo.
  • Shared/WebCoreArgumentCoders.cpp: Use SystemPreviewInfo.

(IPC::ArgumentCoder<ResourceRequest>::encode):
(IPC::ArgumentCoder<ResourceRequest>::decode):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _triggerSystemPreviewActionOnFrame:page:]): New helper/test function
to trigger the system preview action.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/DownloadClient.mm: Use new type.

(WebKit::DownloadClient::didStart):

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Implement the delegate so that

we can detect an action. When it happens, tell the WebPageProxy to send a message.

  • UIProcess/Downloads/DownloadProxy.h: Use SystemPreviewInfo type.

(WebKit::DownloadProxy::systemPreviewDownloadInfo const):
(WebKit::DownloadProxy::systemPreviewDownloadRect const): Deleted.

  • UIProcess/SystemPreviewController.h:

(WebKit::SystemPreviewController::previewInfo const):

  • UIProcess/WebPageProxy.cpp: Send it over to the Web Process.

(WebKit::WebPageProxy::systemPreviewActionTriggered const):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp: Check the destination still exists, and then talk

to the Document.
(WebKit::WebPage::systemPreviewActionTriggered):

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

Tools:

  • TestWebKitAPI/Tools/TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/system-preview-trigger.html: Added.
1:59 PM Changeset in webkit [249854] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under WebCore::firstPositionInNode()
https://bugs.webkit.org/show_bug.cgi?id=201764
<rdar://problem/54823754>

Reviewed by Wenson Hsieh and Geoff Garen.

Make sure to keep a Ref<> to the textNode when we call insertNodeAtTabSpanPosition()
or insertNodeAt().

Test: editing/firstPositionInNode-crash.html

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::positionInsideTextNode):

1:36 PM Changeset in webkit [249853] by youenn@apple.com
  • 24 edits in trunk

Partition processes running service workers by session ID
https://bugs.webkit.org/show_bug.cgi?id=201643

Reviewed by Chris Dumez.

Source/WebCore:

Move the creation of service worker context connection management to SWServer.
This allows to partition service worker context connections by registrable domain and sessionID.
WebKit2 is still responsible to create the IPC creation through a Function given to SWServer at construction
time.
SWServer now keeps a map of registrable domain -> context connection to use for running workers.
It also keeps a map of being-created connections.
In case a context connection is removed from the SWServer, the SWServer will notify all related worker instances
that they are not running. The SWServer will also recreate a context connection if needed.

This allows removing the global server context connection map.
Make SWServerToContextConnection no longer refcounted to simplify the lifetime management.

Covered by API test.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::SWServer):
(WebCore::SWServer::tryInstallContextData):
(WebCore::SWServer::contextConnectionCreated):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::needsContextConnectionForRegistrableDomain const):
(WebCore::SWServer::addContextConnection):
(WebCore::SWServer::removeContextConnection):
(WebCore::SWServer::createContextConnection):

  • workers/service/server/SWServer.h:

(WebCore::SWServer::contextConnectionForRegistrableDomain):

  • workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::SWServerToContextConnection):
(WebCore::SWServerToContextConnection::~SWServerToContextConnection):

  • workers/service/server/SWServerToContextConnection.h:
  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::contextConnection):

Source/WebKit:

Remove the management of server context connections from NetworkProcess.
The WebProcessPool service worker process map is now keyed by both registrable domain and sessionID.
Update WebProcessPool to only expose the number of service worker processes instead of the full map.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::swServerForSession):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::swServerForSessionIfExists):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorker):
(WebKit::WebSWServerConnection::scheduleJobInServer):
(WebKit::WebSWServerConnection::updateThrottleState):
(WebKit::WebSWServerConnection::contextConnectionCreated):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::connectionIsNoLongerNeeded):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _webPageContentProcessCount]):
(-[WKProcessPool _serviceWorkerProcessCount]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::disconnectProcess):

  • UIProcess/WebProcessPool.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::m_userAgent):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
12:48 PM Changeset in webkit [249852] by Konstantin Tokarev
  • 1 edit in trunk/LayoutTests/ChangeLog

Unreviewed, fix ChangeLog entry for r249730

12:46 PM Changeset in webkit [249851] by Nikolas Zimmermann
  • 2 edits in trunk/Tools

Re-add myself to the list of committers

Unreviewed.

  • Scripts/webkitpy/common/config/contributors.json:
12:17 PM Changeset in webkit [249850] by Chris Dumez
  • 3 edits in trunk/LayoutTests/imported/w3c

Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/getregistrations.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=201661
<rdar://problem/55240851>

Reviewed by Alex Christensen.

The last test's cleanup step was very complex (involving waiting for a promise to get resolved) and WebKit's
completion handler in testharnessreport.js was often getting called before the promise resolution, leaving
the test frame in the output when we call notifyDone(). This seems like a potential bug in testharness.js.
To address the issue for now, do the unregistration in the test's body and only remove the test frame in
the cleanup step.

  • web-platform-tests/service-workers/service-worker/getregistrations.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/getregistrations.https.html:
12:15 PM Changeset in webkit [249849] by Alan Bujtas
  • 19 edits in trunk/Source/WebCore

[LFC] Do not create FormattingContext unless the root has child boxes.
https://bugs.webkit.org/show_bug.cgi?id=201766
<rdar://problem/55344449>

Reviewed by Antti Koivisto.

Just because a box establishes a formatting context, it does not necessarily mean we need to create a formatting context object for it.
The established formatting context is responsible for laying out the descendant content. The formatting context root itself is
laid out in the formatting context it lives in. So if there's no descendent content, we don't need to construct the context objects.

<body><div style="float: left;"></div></body> <- this div establishes a block formatting context (float) but it does not have any content so laying
it out simply means sizing and positioning it in the initial block formatting context.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::FormattingContext):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):
(WebCore::Layout::FormattingContext::mapTopToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::mapLeftToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::mapRightToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):

  • layout/FormattingContext.h:

(WebCore::Layout::FormattingContext::root const):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth):

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::layoutFormattingContextSubtree):
(WebCore::Layout::LayoutState::establishedFormattingState const):
(WebCore::Layout::LayoutState::createFormattingStateForFormattingRootIfNeeded):
(WebCore::Layout::LayoutState::createFormattingContext):

  • layout/LayoutState.h:

(WebCore::Layout::LayoutState::hasFormattingState const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::BlockFormattingContext):
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider const):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::intrinsicWidthConstraints):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):

  • layout/floats/FloatingContext.h:

(WebCore::Layout::FloatingContext::root const):

  • layout/floats/FloatingState.cpp:

(WebCore::Layout::FloatingState::FloatingState):
(WebCore::Layout::FloatingState::bottom const):
(WebCore::Layout::FloatingState::top const):

  • layout/floats/FloatingState.h:

(WebCore::Layout::FloatingState::create):
(WebCore::Layout::FloatingState::root const):
(WebCore::Layout::FloatingState::leftBottom const):
(WebCore::Layout::FloatingState::rightBottom const):
(WebCore::Layout::FloatingState::bottom const):
(WebCore::Layout::FloatingState::FloatItem::isDescendantOfFormattingRoot const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::InlineFormattingContext):
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::collectInlineContent const):

  • layout/inlineformatting/InlineFormattingContext.h:

(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingRoot const):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

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

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::close):
(WebCore::Layout::Line::adjustBaselineAndLineHeight):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::TableFormattingContext):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForSections):
(WebCore::Layout::TableFormattingContext::ensureTableGrid):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):

  • layout/tableformatting/TableFormattingContext.h:
12:08 PM Changeset in webkit [249848] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Tighter autocomplete bubbles
https://bugs.webkit.org/show_bug.cgi?id=201742

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CompletionSuggestionsView.js:

(WI.CompletionSuggestionsView.prototype.show):
Eliminate the trailing space. Use bounding client rect to get
fractional widths and raise the value so we are at an even number.

12:02 PM Changeset in webkit [249847] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION: Web Inspector: Layout Timeline View does not show popover for initiator data
https://bugs.webkit.org/show_bug.cgi?id=201732
<rdar://problem/55312339>

Reviewed by Devin Rousso.

  • UserInterface/Views/LayoutTimelineDataGrid.js:

(WI.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement):
(WI.LayoutTimelineDataGrid.prototype.shouldShowCallFramePopover):
The column name was incorrect.

11:58 AM Changeset in webkit [249846] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception: null is not an object (evaluating 'Object.keys(propertyNames)​')​ (at JavaScriptRuntimeCompletionProvider.js:​244:​57)​
https://bugs.webkit.org/show_bug.cgi?id=201729

Reviewed by Devin Rousso.

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WI.JavaScriptRuntimeCompletionProvider):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded):
Don't clear the completion object group until all ongoing requests have completed.
Percision for the lifetime of the object group objects is not important, but we
surely don't want to delete an object too soon.

11:46 AM Changeset in webkit [249845] by ajuma@chromium.org
  • 3 edits
    2 adds in trunk

IntersectionObserverEntry#intersectionRatio can be larger than 1
https://bugs.webkit.org/show_bug.cgi?id=200776

Reviewed by Simon Fraser.

Source/WebCore:

When computing the intersection between a target and an intersection observer's
root, RenderBox::computeVisibleRectInContainer is used to map the target rect
up the containing block chain, clipping along the way. When a RenderBox has
a transform, this method expands the given rect to the enclosing rect in device
pixels. This is fine for the use case of computing an invalidation rect, but for
the intersection observer use case it means that it is possible for the computed
intersection rect to be slightly larger than the original target rect, resulting
in an intersection ratio greater than 1.

Fix this by performing a final intersection between the intersection rect as
computed above and the target rect.

Test: intersection-observer/intersection-clipped-to-target.html

  • dom/Document.cpp:

(WebCore::computeIntersectionState):

LayoutTests:

  • intersection-observer/intersection-clipped-to-target-expected.txt: Added.
  • intersection-observer/intersection-clipped-to-target.html: Added.
11:46 AM Changeset in webkit [249844] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test http/tests/appcache/remove-cache.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=199124

Unreviewed Test Gardening..

  • platform/mac/TestExpectations: Marked Test as Flaky.
11:21 AM Changeset in webkit [249843] by commit-queue@webkit.org
  • 8 edits
    5 adds in trunk

SMIL animations of SVG <view> element have no effect
https://bugs.webkit.org/show_bug.cgi?id=94469

Patch by Nikolas Zimmermann <zimmermann@kde.org> on 2019-09-13
Reviewed by Said Abou-Hallawa.

Source/WebCore:

SMIL animations of the attributes associated with SVGViewElement work fine, but without any
visual effect. When loading an SVG document with a given fragment identifier
(e.g. test.svg#customView) where 'customView' references to an embedded SVGViewElement, the
viewBox/preserveAspectRatio settings should be taken from the SVGViewElement. Currently
there is no link between the SVGViewElement and the SVGSVGElement. The settings from the
SVGViewElement are only pasrsed onco in SVGSVGElement::scrollToFragment(). Dynamic updates
of the 'viewBox' and 'preserveAspectRatio' attributes of the SVGViewElement thus have no
visual effect, since the SVGSVGElement does not re-evaluates its viewBox.

Store a RefPtr to the currently used SVGViewElement in SVGSVGElement, and a WeakPtr back
to the SVGSVGElement that currently references the SVGViewElement. This allows us to
propagate SVGViewElement attribute changes to SVGSVGElement and re-evaluate the viewBox
stored in SVGSVGElement and trigger visual updates.

Tests: svg/custom/animation-on-view-element.html

svg/custom/multiple-view-elements.html

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::scrollToFragment):

  • svg/SVGSVGElement.h:
  • svg/SVGViewElement.cpp:

(WebCore::SVGViewElement::svgAttributeChanged): Add missing implementation, tracked by
webkit.org/b/196554. Correctly handle SVGFitToViewBox property changes. Update the viewBox
stored in the SVGSVGElement, that references the SVGViewElement. Afterwards invalidate the
renderer associated with the SVGSVGElement, which properly triggers visual updates.

  • svg/SVGViewElement.h:

LayoutTests:

Add new layout tests to verify that dynamic modifications of the <view> element cause
visual updates. Previously SVGSVGElement was never notified about changes of the
SVGViewElement and thus did not update the stored viewBox.

  • svg/custom/animation-on-view-element-expected.html: Added.
  • svg/custom/animation-on-view-element.html: Added. This is a new reftest

demonstrating that animations of SVG <view> elements now behave as expected.

  • svg/custom/multiple-view-elements-expected.html: Added.
  • svg/custom/multiple-view-elements.html: Added.
  • svg/dom/SVGViewSpec-multiple-views-expected.txt:
  • svg/dom/SVGViewSpec-multiple-views.html: Extend to cover dynamic modifications.
11:01 AM Changeset in webkit [249842] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Micro-optimize YarrJIT's surrogate pair handling
https://bugs.webkit.org/show_bug.cgi?id=201750

Reviewed by Michael Saboff.

Optimize sequence of machine code used to get code-point with unicode flag.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::tryReadUnicodeCharImpl):

10:54 AM Changeset in webkit [249841] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

We should assert $vm is enabled on entry and exit in its functions.
https://bugs.webkit.org/show_bug.cgi?id=201762
<rdar://problem/55338742>

Rubber-stamped by Michael Saboff.

  1. Also do the same for FunctionOverrides.
  2. Added the DollarVMAssertScope and FunctionOverridesAssertScope to achieve this.
  3. Also added assertions to lambda functions in $vm.
  • tools/FunctionOverrides.cpp:

(JSC::FunctionOverridesAssertScope::FunctionOverridesAssertScope):
(JSC::FunctionOverridesAssertScope::~FunctionOverridesAssertScope):
(JSC::FunctionOverrides::overrides):
(JSC::FunctionOverrides::FunctionOverrides):
(JSC::FunctionOverrides::reinstallOverrides):
(JSC::initializeOverrideInfo):
(JSC::FunctionOverrides::initializeOverrideFor):
(JSC::parseClause):
(JSC::FunctionOverrides::parseOverridesInFile):

  • tools/JSDollarVM.cpp:

(JSC::JSDollarVMCallFrame::JSDollarVMCallFrame):
(JSC::JSDollarVMCallFrame::createStructure):
(JSC::JSDollarVMCallFrame::create):
(JSC::JSDollarVMCallFrame::finishCreation):
(JSC::JSDollarVMCallFrame::addProperty):
(JSC::Element::Element):
(JSC::Element::create):
(JSC::Element::visitChildren):
(JSC::Element::createStructure):
(JSC::Root::Root):
(JSC::Root::setElement):
(JSC::Root::create):
(JSC::Root::createStructure):
(JSC::Root::visitChildren):
(JSC::SimpleObject::SimpleObject):
(JSC::SimpleObject::create):
(JSC::SimpleObject::visitChildren):
(JSC::SimpleObject::createStructure):
(JSC::ImpureGetter::ImpureGetter):
(JSC::ImpureGetter::createStructure):
(JSC::ImpureGetter::create):
(JSC::ImpureGetter::finishCreation):
(JSC::ImpureGetter::getOwnPropertySlot):
(JSC::ImpureGetter::visitChildren):
(JSC::CustomGetter::CustomGetter):
(JSC::CustomGetter::createStructure):
(JSC::CustomGetter::create):
(JSC::CustomGetter::getOwnPropertySlot):
(JSC::CustomGetter::customGetter):
(JSC::CustomGetter::customGetterAcessor):
(JSC::RuntimeArray::create):
(JSC::RuntimeArray::destroy):
(JSC::RuntimeArray::getOwnPropertySlot):
(JSC::RuntimeArray::getOwnPropertySlotByIndex):
(JSC::RuntimeArray::createPrototype):
(JSC::RuntimeArray::createStructure):
(JSC::RuntimeArray::finishCreation):
(JSC::RuntimeArray::RuntimeArray):
(JSC::RuntimeArray::lengthGetter):
(JSC::DOMJITNode::DOMJITNode):
(JSC::DOMJITNode::createStructure):
(JSC::DOMJITNode::checkSubClassSnippet):
(JSC::DOMJITNode::create):
(JSC::DOMJITGetter::DOMJITGetter):
(JSC::DOMJITGetter::createStructure):
(JSC::DOMJITGetter::create):
(JSC::DOMJITGetter::DOMJITAttribute::slowCall):
(JSC::DOMJITGetter::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetter::customGetter):
(JSC::DOMJITGetter::finishCreation):
(JSC::DOMJITGetterComplex::DOMJITGetterComplex):
(JSC::DOMJITGetterComplex::createStructure):
(JSC::DOMJITGetterComplex::create):
(JSC::DOMJITGetterComplex::DOMJITAttribute::slowCall):
(JSC::DOMJITGetterComplex::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetterComplex::functionEnableException):
(JSC::DOMJITGetterComplex::customGetter):
(JSC::DOMJITGetterComplex::finishCreation):
(JSC::DOMJITFunctionObject::DOMJITFunctionObject):
(JSC::DOMJITFunctionObject::createStructure):
(JSC::DOMJITFunctionObject::create):
(JSC::DOMJITFunctionObject::functionWithTypeCheck):
(JSC::DOMJITFunctionObject::functionWithoutTypeCheck):
(JSC::DOMJITFunctionObject::checkSubClassSnippet):
(JSC::DOMJITFunctionObject::finishCreation):
(JSC::DOMJITCheckSubClassObject::DOMJITCheckSubClassObject):
(JSC::DOMJITCheckSubClassObject::createStructure):
(JSC::DOMJITCheckSubClassObject::create):
(JSC::DOMJITCheckSubClassObject::functionWithTypeCheck):
(JSC::DOMJITCheckSubClassObject::functionWithoutTypeCheck):
(JSC::DOMJITCheckSubClassObject::finishCreation):
(JSC::DOMJITGetterBaseJSObject::DOMJITGetterBaseJSObject):
(JSC::DOMJITGetterBaseJSObject::createStructure):
(JSC::DOMJITGetterBaseJSObject::create):
(JSC::DOMJITGetterBaseJSObject::DOMJITAttribute::slowCall):
(JSC::DOMJITGetterBaseJSObject::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetterBaseJSObject::customGetter):
(JSC::DOMJITGetterBaseJSObject::finishCreation):
(JSC::JSTestCustomGetterSetter::JSTestCustomGetterSetter):
(JSC::JSTestCustomGetterSetter::create):
(JSC::JSTestCustomGetterSetter::createStructure):
(JSC::customSetAccessor):
(JSC::customSetValue):
(JSC::JSTestCustomGetterSetter::finishCreation):
(JSC::Element::handleOwner):
(JSC::Element::finishCreation):
(JSC::WasmStreamingParser::WasmStreamingParser):
(JSC::WasmStreamingParser::create):
(JSC::WasmStreamingParser::createStructure):
(JSC::WasmStreamingParser::finishCreation):
(JSC::functionWasmStreamingParserAddBytes):
(JSC::functionWasmStreamingParserFinalize):
(JSC::functionCrash):
(JSC::functionBreakpoint):
(JSC::functionDFGTrue):
(JSC::functionFTLTrue):
(JSC::functionCpuMfence):
(JSC::functionCpuRdtsc):
(JSC::functionCpuCpuid):
(JSC::functionCpuPause):
(JSC::functionCpuClflush):
(JSC::CallerFrameJITTypeFunctor::CallerFrameJITTypeFunctor):
(JSC::getExecutableForFunction):
(JSC::functionLLintTrue):
(JSC::functionJITTrue):
(JSC::functionNoInline):
(JSC::functionGC):
(JSC::functionEdenGC):
(JSC::functionDumpSubspaceHashes):
(JSC::functionCallFrame):
(JSC::functionCodeBlockForFrame):
(JSC::codeBlockFromArg):
(JSC::functionCodeBlockFor):
(JSC::functionDumpSourceFor):
(JSC::functionDumpBytecodeFor):
(JSC::doPrint):
(JSC::functionDataLog):
(JSC::functionPrint):
(JSC::functionDumpCallFrame):
(JSC::functionDumpStack):
(JSC::functionDumpRegisters):
(JSC::functionDumpCell):
(JSC::functionIndexingMode):
(JSC::functionInlineCapacity):
(JSC::functionValue):
(JSC::functionGetPID):
(JSC::functionHaveABadTime):
(JSC::functionIsHavingABadTime):
(JSC::functionCreateGlobalObject):
(JSC::functionCreateProxy):
(JSC::functionCreateRuntimeArray):
(JSC::functionCreateNullRopeString):
(JSC::functionCreateImpureGetter):
(JSC::functionCreateCustomGetterObject):
(JSC::functionCreateDOMJITNodeObject):
(JSC::functionCreateDOMJITGetterObject):
(JSC::functionCreateDOMJITGetterComplexObject):
(JSC::functionCreateDOMJITFunctionObject):
(JSC::functionCreateDOMJITCheckSubClassObject):
(JSC::functionCreateDOMJITGetterBaseJSObject):
(JSC::functionCreateWasmStreamingParser):
(JSC::functionSetImpureGetterDelegate):
(JSC::functionCreateBuiltin):
(JSC::functionGetPrivateProperty):
(JSC::functionCreateRoot):
(JSC::functionCreateElement):
(JSC::functionGetElement):
(JSC::functionCreateSimpleObject):
(JSC::functionGetHiddenValue):
(JSC::functionSetHiddenValue):
(JSC::functionShadowChickenFunctionsOnStack):
(JSC::functionSetGlobalConstRedeclarationShouldNotThrow):
(JSC::functionFindTypeForExpression):
(JSC::functionReturnTypeFor):
(JSC::functionFlattenDictionaryObject):
(JSC::functionDumpBasicBlockExecutionRanges):
(JSC::functionHasBasicBlockExecuted):
(JSC::functionBasicBlockExecutionCount):
(JSC::functionEnableExceptionFuzz):
(JSC::changeDebuggerModeWhenIdle):
(JSC::functionEnableDebuggerModeWhenIdle):
(JSC::functionDisableDebuggerModeWhenIdle):
(JSC::functionDeleteAllCodeWhenIdle):
(JSC::functionGlobalObjectCount):
(JSC::functionGlobalObjectForObject):
(JSC::functionGetGetterSetter):
(JSC::functionLoadGetterFromGetterSetter):
(JSC::functionCreateCustomTestGetterSetter):
(JSC::functionDeltaBetweenButterflies):
(JSC::functionTotalGCTime):
(JSC::functionParseCount):
(JSC::functionIsWasmSupported):
(JSC::JSDollarVM::finishCreation):
(JSC::JSDollarVM::addFunction):
(JSC::JSDollarVM::addConstructibleFunction):

  • tools/JSDollarVM.h:

(JSC::DollarVMAssertScope::DollarVMAssertScope):
(JSC::DollarVMAssertScope::~DollarVMAssertScope):

10:30 AM Changeset in webkit [249840] by Ryan Haddad
  • 1 edit in trunk/LayoutTests/platform/ios/TestExpectations

Unreviewd test gardening after r249817.

  • platform/ios/TestExpectations: Remove failure expectation that was overriding the skip in platform/wk2/TestExpectations.
10:14 AM Changeset in webkit [249839] by Brent Fulgham
  • 8 edits in trunk/Source/WebCore

[FTW] ImageBuffer/ImageBufferData is highly inefficient
https://bugs.webkit.org/show_bug.cgi?id=201594

Reviewed by Said Abou-Hallawa.

My initial implementation of ImageBuffer and ImageBufferData for Direct2D involves too
much moving of data from GPU to CPU and back. We only need to make a renderable version
of the ImageBuffer when ImageBuffer::sinkIntoNativeImage or ImageBuffer::copyNativeImage
are called.

Currently, each ImageBuffer putData operation uploads the data to the GPU, and each
ImageBuffer getData pulls the data from the GPU.

This patch does the following:

  1. It makes the assumption that the ID2D1Bitmap it holds is under its control (i.e., external draw operations do not manipulate the bitmap without marking it dirty).
  2. It holds a CPU copy of the data from the ID2D1Bitmap originally used to create it. It uses this data for all manipulations, and uploads to the bitmap only when an ID2D1Bitmap is requested for drawing, and before a drawing operation is performed on the associated ImageBuffer context.
  3. It does not read back from the ID2D1Bitmap unless it is told that it is dirty.
  4. It does not call 'ID2D1RenderTarget::SetTags' if ASSERTS are disabled because they are costly, and don't help in release builds.
  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::fillRect): Use new 'setTags' method.
(WebCore::Direct2D::fillRoundedRect): Ditto.
(WebCore::Direct2D::fillRectWithRoundedHole): Ditto.
(WebCore::Direct2D::fillRectWithGradient): Ditto.
(WebCore::Direct2D::fillPath): Ditto.
(WebCore::Direct2D::strokeRect): Ditto.
(WebCore::Direct2D::strokePath): Ditto.
(WebCore::Direct2D::drawPath): Ditto.
(WebCore::Direct2D::drawWithShadow): Notify observers before and after we drew.
(WebCore::Direct2D::drawWithoutShadow): Ditto.
(WebCore::Direct2D::clearRect): Use new 'setTags' method.
(WebCore::Direct2D::drawGlyphs): Ditto.
(WebCore::Direct2D::drawNativeImage): Ditto.
(WebCore::Direct2D::drawRect): Ditto.
(WebCore::Direct2D::drawLine): Ditto.
(WebCore::Direct2D::fillEllipse): Ditto.
(WebCore::Direct2D::drawEllipse): Ditto.
(WebCore::Direct2D::flush): Notify observer after we drew.

  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::fill): Don't call SetTags in non-ASSERT builds.

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::ensureBackingStore const): Added.
(WebCore::ImageBufferData::getData const): Only read from the GPU if the in-memory
store is empty or out-of-sync.
(WebCore::ImageBufferData::putData): Mark the bitmap as out-of-sync, but don't
upload the data yet.
(WebCore::ImageBufferData::loadDataToBitmapIfNeeded): Helper function to upload data to the GPU.
(WebCore::ImageBufferData::compatibleBitmap): Only upload data if the relevant
bitmap is out of date.

  • platform/graphics/win/ImageBufferDataDirect2D.h:
  • platform/graphics/win/ImageBufferDirect2D.cpp:

(WebCore::ImageBuffer::ImageBuffer): Update constructor to register the ImageBufferData
lambdas as observer for draw operations.

  • platform/graphics/win/PlatformContextDirect2D.cpp:

(WebCore::PlatformContextDirect2D::PlatformContextDirect2D): Update constructor to accept
lambdas to run before and after draw operations.
(WebCore::PlatformContextDirect2D::setTags): Added.
(WebCore::PlatformContextDirect2D::notifyPreDrawObserver): Added.
(WebCore::PlatformContextDirect2D::notifyPostDrawObserver): Added.

  • platform/graphics/win/PlatformContextDirect2D.h:

(WebCore::PlatformContextDirect2D::PlatformContextDirect2D):

9:53 AM Changeset in webkit [249838] by russell_e@apple.com
  • 12 edits
    2 deletes in trunk

Unreviewed, rolling out r249709.

Layout test added in this patch has been consistently failing
since it landed.

Reverted changeset:

"Option + arrow moves caret past whitespace on iOS"
https://bugs.webkit.org/show_bug.cgi?id=201575
https://trac.webkit.org/changeset/249709

9:40 AM Changeset in webkit [249837] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC] Rename FormattingContext::layout to layoutInFlowContent()
https://bugs.webkit.org/show_bug.cgi?id=201763
<rdar://problem/55340435>

Reviewed by Antti Koivisto.

FormattingContext::layout() only takes care of the inflow content. Out-out-flow boxes are laid out through FormattingContext::layoutOutOfFlowContent.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h:
  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::layoutFormattingContextSubtree):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::layout): Deleted.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::layout): Deleted.

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
(WebCore::Layout::TableFormattingContext::layout): Deleted.

  • layout/tableformatting/TableFormattingContext.h:
9:13 AM Changeset in webkit [249836] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[iOS] TestWebKitAPI.WebKit.TLSVersionWebSocket is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=201745

Patch by Alex Christensen <achristensen@webkit.org> on 2019-09-13
Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::TEST):
The exact message isn't important. The fact that the TLS handshake failed is, which is checked by the TCPServer.

9:03 AM Changeset in webkit [249835] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

AuxiliaryProcessProxy::sendWithAsyncReply should queue up messages if sent while the process is starting like it does messages without replies
https://bugs.webkit.org/show_bug.cgi?id=201746

Reviewed by Youenn Fablet.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):
(WebKit::AuxiliaryProcessProxy::didFinishLaunching):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):

8:42 AM Changeset in webkit [249834] by Alan Bujtas
  • 19 edits in trunk/Source/WebCore

[LFC] FormattingContext::displayBoxForLayoutBox should be split into 2 functions
https://bugs.webkit.org/show_bug.cgi?id=201754
<rdar://problem/55328753>

Reviewed by Antti Koivisto.

  1. FormattingContext::geometryForBox() returns a const Display::Box. Use this function to access

already computed geometry such as the containing block's content box width.
This function can escape the current formatting context in certain cases and read geometry from parent/ancestor formatting contexts.

  1. FormattingState::displayBox() returns a non-const version of the Display::Box. Use this function to

create/get the display box of a particular layout box to set computed values. This call should never escape the
current formatting context (as no one should mutate ancestor boxes).

Normally while laying out a particular box, we need to collect some geometry information from other boxes in the tree like previous sibling, containing block.
<div style="width: 100px"><div></div></div> <- the inner div's used width is based on the outer div's width.
However we should never mutate the geometry information on those other boxes (outer div). This patch helps avoiding accidental mutation on ancestors by
returning a const version of the Display::Box.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):
(WebCore::Layout::mapHorizontalPositionToAncestor):
(WebCore::Layout::FormattingContext::mapTopToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::mapLeftToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::mapRightToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::geometryForBox const):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):
(WebCore::Layout::FormattingContext::displayBoxForLayoutBox const): Deleted.

  • layout/FormattingContext.h:

(WebCore::Layout::FormattingContext::hasDisplayBox const): Deleted.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/FormattingState.cpp:

(WebCore::Layout::FormattingState::displayBox const):

  • layout/FormattingState.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider const):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFloatClear):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition):
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::verticalPositionWithMargin const):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticVerticalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticHorizontalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

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

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::hasClearance const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithPreviousSiblingMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithSiblingMarginBeforeWithClearance const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updatePositiveNegativeMarginValues):
(WebCore::Layout::hasClearance): Deleted.

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::absoluteDisplayBoxCoordinates const):
(WebCore::Layout::FloatingContext::mapToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapTopToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::initializeMarginBorderAndPaddingForGenericInlineBox):
(WebCore::Layout::InlineFormattingContext::computeMarginBorderAndPaddingForInlineContainer):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::inlineItemWidth):
(WebCore::Layout::LineLayout::placeInlineItem):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::computedIntrinsicWidth const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

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

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::isInlineContainerConsideredEmpty):
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::inlineItemContentHeight const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layout):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
(WebCore::Layout::TableFormattingContext::positionTableCells):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForSections):
(WebCore::Layout::TableFormattingContext::computedTableWidth):

7:42 AM Changeset in webkit [249833] by Chris Dumez
  • 6 edits in trunk/LayoutTests

Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/security/appcache-in-private-browsing.html
https://bugs.webkit.org/show_bug.cgi?id=201704

Reviewed by Youenn Fablet.

Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/security/appcache-in-private-browsing.html
and use the new useEphemeralSession WKTR / DRT flag instead.

  • http/tests/security/appcache-in-private-browsing-expected.txt:
  • http/tests/security/appcache-in-private-browsing.html:
  • http/tests/security/resources/frame-for-appcache-in-private-browsing.html:
  • platform/mac-wk2/TestExpectations:
5:32 AM Changeset in webkit [249832] by youenn@apple.com
  • 36 edits in trunk/Source

Use WebProcess processIdentifier to identify Service Worker connections
https://bugs.webkit.org/show_bug.cgi?id=201459

Reviewed by Chris Dumez.

Source/WebCore:

No observable change of behavior.

  • workers/service/ServiceWorkerClient.cpp:

(WebCore::ServiceWorkerClient::postMessage):
Pass sessionID to ease NetworkProcess selection of the client process connection.

  • workers/service/ServiceWorkerTypes.h:

Mark server connection identifier be process identifier based.

  • workers/service/context/SWContextManager.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::Connection::Connection):

  • workers/service/server/SWServer.h:

Let connection identifier be set in constructor instead of generated.

Source/WebCore/PAL:

  • pal/SessionID.h:

(PAL::SessionID::SessionID):

Source/WebKit:

Make WebSWServerConnection be stored in NetworkConnectionToWebProcess.
They are now keyed by session IDs hence why WebSWClientConnection is using the session ID as message connection ID.
Creation no longer requires a sync IPC since the connection is uniquely identified by its session ID and its process ID.
These IDs are stable over network process crash.
Within NetworkProcess, a server connection is managed by a SWServer which is session ID specific.
In that case, the process identifier uniquely identifies the connection.

Move WebSWServerToContextConnection be owned by NetworkConnectionToWebProcess.
Instead of creating it when webprocess is connecting to network process, use a dedicated IPC message.
This is similar to WebSWServerConnection once WebProcess asks to create it.
This will allow existing WebProcess, in cache or running pages, to run service workers as well.
A context connection map is kept in Network Process to reuse context connections since these connections are not sessionID specific.

Migrate from a single boolean to a HashSet to track whether some connections are in the process of being created.
Previously if two requests to create connections were done shortly one after the other on different registrable
domains, the second request would not be processed.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::forEachSWServer):
(WebKit::NetworkProcess::needsServerToContextConnectionForRegistrableDomain const):
(WebKit::NetworkProcess::createServerToContextConnection):
(WebKit::NetworkProcess::postMessageToServiceWorkerClient):
(WebKit::NetworkProcess::registerSWServerConnection):
(WebKit::NetworkProcess::unregisterSWServerConnection):
(WebKit::NetworkProcess::registerSWContextConnection):
(WebKit::NetworkProcess::unregisterSWContextConnection):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::WebSWServerConnection):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::openNetworkProcessConnection):
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::establishServiceWorkerContext):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::WebSWClientConnection):
(WebKit::WebSWClientConnection::~WebSWClientConnection):
(WebKit::WebSWClientConnection::messageSenderConnection const):
(WebKit::WebSWClientConnection::scheduleJobInServer):
(WebKit::WebSWClientConnection::finishFetchingScriptInServer):
(WebKit::WebSWClientConnection::addServiceWorkerRegistrationInServer):
(WebKit::WebSWClientConnection::removeServiceWorkerRegistrationInServer):
(WebKit::WebSWClientConnection::postMessageToServiceWorker):
(WebKit::WebSWClientConnection::registerServiceWorkerClient):
(WebKit::WebSWClientConnection::unregisterServiceWorkerClient):
(WebKit::WebSWClientConnection::didResolveRegistrationPromise):
(WebKit::WebSWClientConnection::matchRegistration):
(WebKit::WebSWClientConnection::runOrDelayTaskForImport):
(WebKit::WebSWClientConnection::whenRegistrationReady):
(WebKit::WebSWClientConnection::getRegistrations):
(WebKit::WebSWClientConnection::startFetch):
(WebKit::WebSWClientConnection::cancelFetch):
(WebKit::WebSWClientConnection::continueDidReceiveFetchResponse):
(WebKit::WebSWClientConnection::connectionToServerLost):
(WebKit::WebSWClientConnection::clear):
(WebKit::WebSWClientConnection::syncTerminateWorker):
(WebKit::WebSWClientConnection::updateThrottleState):
(WebKit::WebSWClientConnection::storeRegistrationsOnDiskForTesting):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::m_userAgent):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
3:05 AM Changeset in webkit [249831] by Joseph Pecoraro
  • 33 edits
    3 copies
    2 moves
    71 adds
    1 delete in trunk

Web Inspector: Formatter: Pretty Print HTML resources (including inline <script>/<style>)
https://bugs.webkit.org/show_bug.cgi?id=201535
<rdar://problem/29119232>

Reviewed by Devin Rousso.

Source/JavaScriptCore:

  • debugger/Debugger.cpp:

(JSC::Debugger::resolveBreakpoint):
When resolving a breakpoint inside of an inline <script> we need to adjust
based on the starting position of the <script> in the HTML resource.

Source/WebInspectorUI:

Introduce HTMLFormatter, HTMLParser, and HTMLTreeBuilderFormatter.

  • HTMLParser tokenizes HTML content and passes it to a tree builder.
  • HTMLTreeBuilderFormatter uses those tokens to create a formatted dom tree of fake nodes.
  • HTMLFormatter then builds formatted content and a FormatterSourceMap from that DOM tree.

The output of HTMLFormatter is intended to just modify whitespace. So it won't be a
100% compatible DOM, but will be useful for debugging and reading inline <style>
and <script>, which is a more common debugging scenario. It also maintains original
author attribute quotations or lack therefore, because again it tries to only
change whitespace. A separate tree builder could be used for tidying content.

This introduces a few tools for working with formatting:

  • Tools/HTMLFormatter - debug the parser, tree builder, and output format
  • Tools/SourceMaps - debug formatted content and source mappings

This also:

  • renames "EsprimaFormatter" to "JSFormatter"
  • eliminates an extra trailing newline in CSSFormatter output
  • Tools/HTMLFormatter/HTMLTreeBuilderDebug.js: Added.
  • Tools/HTMLFormatter/index.html: Added.
  • Tools/HTMLFormatter/styles.css: Added.

Tool for debugging the HTML formatter components.

  • Tools/SourceMaps/.gitignore: Added.
  • Tools/SourceMaps/index.html: Added.
  • Tools/SourceMaps/setup.sh: Added.
  • Tools/SourceMaps/styles.css: Added.

Tool for debugging Formatter generated Source Maps.

  • Tools/JSFormatter/JSFormatterDebug.js: Renamed from Source/WebInspectorUI/Tools/Formatting/EsprimaFormatterDebug.js.
  • Tools/JSFormatter/codemirror-additions.css: Renamed from Source/WebInspectorUI/Tools/Formatting/codemirror-additions.css.
  • Tools/JSFormatter/index.html: Renamed from Source/WebInspectorUI/Tools/Formatting/index.html.

Renamed this tool. EsprimaFormatter => JSFormatter.

  • UserInterface/Controllers/FormatterSourceMap.js:

(WI.FormatterSourceMap.prototype.originalPositionToFormattedPosition):
(WI.FormatterSourceMap.prototype.formattedPositionToOriginalPosition):
New APIs used by tools and tests for translating "position" offsets and not line/columns.

  • UserInterface/Workers/Formatter/JSFormatter.js: Renamed from Source/WebInspectorUI/UserInterface/Workers/Formatter/EsprimaFormatter.js.

(JSFormatter):

  • UserInterface/Workers/Formatter/CSSFormatter.js:

(CSSFormatter):
Allow using a supplied builder, which is useful when formatting
inline content from HTMLFormatter (<style> / <script>).

  • UserInterface/Workers/Formatter/FormatterContentBuilder.js:

(FormatterContentBuilder.prototype.get indentString):
(FormatterContentBuilder.prototype.get originalContent):
(FormatterContentBuilder.prototype.get indentLevel):
(FormatterContentBuilder.prototype.get originalOffset):
(FormatterContentBuilder.prototype.set originalOffset):
(FormatterContentBuilder.prototype.appendNonToken):
(FormatterContentBuilder.prototype.appendToken):
(FormatterContentBuilder.prototype.appendTokenWithPossibleNewlines):
(FormatterContentBuilder.prototype.appendMapping):
(FormatterContentBuilder.prototype.indentToLevel):
(FormatterContentBuilder.prototype.finish):
Provide API for getting / setting the original offset and indent level.
This is useful when the HTMLFormatter runs the CSSFormatter/JSFormatter
in a nested context (<style> / <script>). Add a few more APIs for
conveniences when appending tokens or important positions.

  • UserInterface/Workers/Formatter/HTMLParser.js: Added.

(HTMLParser.prototype.parseDocument):
(HTMLParser.prototype._isEOF):
(HTMLParser.prototype._peek):
(HTMLParser.prototype._peekCharacterRegex):
(HTMLParser.prototype._peekString):
(HTMLParser.prototype._peekCaseInsensitiveString):
(HTMLParser.prototype._consumeWhitespace):
(HTMLParser.prototype._consumeUntilString):
(HTMLParser.prototype._consumeUntilRegex):
(HTMLParser.prototype._consumeDoubleQuotedString):
(HTMLParser):
Tokenize HTML content into nodes.

  • UserInterface/Workers/Formatter/HTMLTreeBuilderFormatter.js: Added.

(HTMLTreeBuilderFormatter.prototype.get dom):
(HTMLTreeBuilderFormatter.prototype.begin):
(HTMLTreeBuilderFormatter.prototype.pushParserNode):
(HTMLTreeBuilderFormatter.prototype.end):
(HTMLTreeBuilderFormatter.prototype._pushParserNodeTopLevel):
(HTMLTreeBuilderFormatter.prototype._pushParserNodeStack):
(HTMLTreeBuilderFormatter.prototype._isEmptyNode):
(HTMLTreeBuilderFormatter.prototype._buildDOMNodeFromOpenTag):
(HTMLTreeBuilderFormatter.prototype._buildErrorNodeFromCloseTag):
(HTMLTreeBuilderFormatter.prototype._buildSimpleNodeFromParserNode):
(HTMLTreeBuilderFormatter):
Build a simple DOM tree from parser nodes.

  • UserInterface/Workers/Formatter/HTMLFormatter.js: Added.

(HTMLFormatter.let.dom):
(HTMLFormatter):
(HTMLFormatter.prototype.get success):
(HTMLFormatter.prototype.get formattedText):
(HTMLFormatter.prototype.get sourceMapData):
(HTMLFormatter.prototype._walk):
(HTMLFormatter.prototype._walkChildren):
(HTMLFormatter.prototype._isNodeSelfClosing):
(HTMLFormatter.prototype._shouldHaveInlineContent):
(HTMLFormatter.prototype._hasMultipleNewLines):
(HTMLFormatter.prototype._buildAttributeString):
(HTMLFormatter.prototype._before):
(HTMLFormatter.prototype._after):
(HTMLFormatter.prototype._formatWithNestedFormatter):
(HTMLFormatter.prototype._formatScript):
(HTMLFormatter.prototype._formatStyle):
Output pretty printed text from a HTMLTreeBuilderFormatter dom tree.

  • UserInterface/Proxies/FormatterWorkerProxy.js:

(WI.FormatterWorkerProxy.prototype.formatHTML):

  • UserInterface/Workers/Formatter/FormatterWorker.js:

(FormatterWorker.prototype.formatJavaScript):
(FormatterWorker.prototype.formatCSS):
(FormatterWorker.prototype.formatHTML):

  • UserInterface/Views/TextEditor.js:

(WI.TextEditor.prototype.hasFormatter):
(WI.TextEditor.prototype._canUseFormatterWorker):
(WI.TextEditor.prototype._startWorkerPrettyPrint):
Allow pretty printing HTML resources.

  • UserInterface/Main.html:
  • UserInterface/Test.html:

New resources.

LayoutTests:

Mark slow test.

  • inspector/formatting/formatting-css.html:
  • inspector/formatting/formatting-html-expected.txt: Added.
  • inspector/formatting/formatting-html.html: Added.
  • inspector/formatting/formatting-javascript-expected.txt:
  • inspector/formatting/formatting-javascript.html:
  • inspector/formatting/formatting-json-expected.txt:
  • inspector/formatting/formatting-json.html:
  • inspector/formatting/resources/formatting-utilities.js: Renamed from LayoutTests/inspector/formatting/resources/utilities.js.

Update formatting tests to use new path to utilities.

  • inspector/formatting/resources/css-tests/basic-expected.css:
  • inspector/formatting/resources/css-tests/gradient-expected.css:
  • inspector/formatting/resources/css-tests/keyframes-expected.css:
  • inspector/formatting/resources/css-tests/media-query-expected.css:
  • inspector/formatting/resources/css-tests/selectors-expected.css:
  • inspector/formatting/resources/css-tests/wrapping-expected.css:
  • inspector/codemirror/resources/prettyprinting/css-tests/basic-expected.css:
  • inspector/codemirror/resources/prettyprinting/css-tests/calc-expected.css:
  • inspector/codemirror/resources/prettyprinting/css-tests/gradient-expected.css:
  • inspector/codemirror/resources/prettyprinting/css-tests/keyframes-expected.css:
  • inspector/codemirror/resources/prettyprinting/css-tests/media-query-expected.css:
  • inspector/codemirror/resources/prettyprinting/css-tests/selectors-expected.css:
  • inspector/codemirror/resources/prettyprinting/css-tests/wrapping-expected.css:

Eliminate an extra trailing newline in CSS formatted results.

  • inspector/formatting/resources/html-tests/attributes-expected.html: Added.
  • inspector/formatting/resources/html-tests/attributes.html: Added.
  • inspector/formatting/resources/html-tests/auto-close-expected.html: Added.
  • inspector/formatting/resources/html-tests/auto-close.html: Added.
  • inspector/formatting/resources/html-tests/basic-1-expected.html: Added.
  • inspector/formatting/resources/html-tests/basic-1.html: Added.
  • inspector/formatting/resources/html-tests/basic-2-expected.html: Added.
  • inspector/formatting/resources/html-tests/basic-2.html: Added.
  • inspector/formatting/resources/html-tests/comments-expected.html: Added.
  • inspector/formatting/resources/html-tests/comments.html: Added.
  • inspector/formatting/resources/html-tests/eof-1-expected.html: Added.
  • inspector/formatting/resources/html-tests/eof-1.html: Added.
  • inspector/formatting/resources/html-tests/eof-2-expected.html: Added.
  • inspector/formatting/resources/html-tests/eof-2.html: Added.
  • inspector/formatting/resources/html-tests/eof-3-expected.html: Added.
  • inspector/formatting/resources/html-tests/eof-3.html: Added.
  • inspector/formatting/resources/html-tests/eof-4-expected.html: Added.
  • inspector/formatting/resources/html-tests/eof-4.html: Added.
  • inspector/formatting/resources/html-tests/eof-5-expected.html: Added.
  • inspector/formatting/resources/html-tests/eof-5.html: Added.
  • inspector/formatting/resources/html-tests/eof-6-expected.html: Added.
  • inspector/formatting/resources/html-tests/eof-6.html: Added.
  • inspector/formatting/resources/html-tests/inline-script-expected.html: Added.
  • inspector/formatting/resources/html-tests/inline-script.html: Added.
  • inspector/formatting/resources/html-tests/inline-style-expected.html: Added.
  • inspector/formatting/resources/html-tests/inline-style.html: Added.
  • inspector/formatting/resources/html-tests/list-expected.html: Added.
  • inspector/formatting/resources/html-tests/list.html: Added.
  • inspector/formatting/resources/html-tests/not-well-formed-1-expected.html: Added.
  • inspector/formatting/resources/html-tests/not-well-formed-1.html: Added.
  • inspector/formatting/resources/html-tests/not-well-formed-2-expected.html: Added.
  • inspector/formatting/resources/html-tests/not-well-formed-2.html: Added.
  • inspector/formatting/resources/html-tests/not-well-formed-3-expected.html: Added.
  • inspector/formatting/resources/html-tests/not-well-formed-3.html: Added.
  • inspector/formatting/resources/html-tests/self-closing-expected.html: Added.
  • inspector/formatting/resources/html-tests/self-closing.html: Added.

HTMLFormatter tests.

  • inspector/formatting/resources/html-source-map-tests/1.html: Added.
  • inspector/formatting/resources/html-source-map-tests/2.html: Added.
  • inspector/formatting/resources/css-source-map-tests/1.css: Added.
  • inspector/formatting/resources/javascript-source-map-tests/1.js: Added.
  • inspector/formatting/source-map-css-1-expected.txt: Added.
  • inspector/formatting/source-map-css-1.html: Added.
  • inspector/formatting/source-map-html-1-expected.txt: Added.
  • inspector/formatting/source-map-html-1.html: Added.
  • inspector/formatting/source-map-html-2-expected.txt: Added.
  • inspector/formatting/source-map-html-2.html: Added.
  • inspector/formatting/source-map-javascript-1-expected.txt: Added.
  • inspector/formatting/source-map-javascript-1.html: Added.
  • inspector/formatting/resources/source-map-utilities.js: Added.

(TestPage.registerInitializer.logLocationWithContext):
(TestPage.registerInitializer.async.runSourceMapTest):
(TestPage.registerInitializer.):
(TestPage.registerInitializer.async.loadFormattedContentAndSourceMap):
(TestPage.registerInitializer.async.loadSourceMapTestResource):
(TestPage.registerInitializer.window.addSourceMapTest):
(TestPage.registerInitializer):
New formatter source map tests to ensure we can go back and forth reasonably
between formatted content and original content.

  • inspector/debugger/breakpoints/resolved-dump-all-inline-script-pause-locations-expected.txt: Added.
  • inspector/debugger/breakpoints/resolved-dump-all-inline-script-pause-locations.html: Added.
  • inspector/debugger/breakpoints/resources/dump-inline-scripts.html: Added.
  • inspector/debugger/breakpoints/resources/dump.js:

(TestPage.registerInitializer.window.addDumpAllPauseLocationsTestCase):
(TestPage.registerInitializer.addDumpAllPauseLocationsTestCaseForScript):
(TestPage.registerInitializer):

  • inspector/debugger/resources/log-pause-location.js:

(TestPage.registerInitializer.window.findScript):
(TestPage.registerInitializer.window.findResource):
Test for resolving breakpoints at column locations in <script> which was
not previously possible and would not have worked previously.

2:20 AM Changeset in webkit [249830] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] X86Registers.h callee-save register definition is wrong
https://bugs.webkit.org/show_bug.cgi?id=201756

Reviewed by Mark Lam.

I think nobody is using X86 JIT backend, but it is simply wrong.
edi and esi should be callee-save.

  • assembler/X86Registers.h:
1:20 AM Changeset in webkit [249829] by Fujii Hironori
  • 2 edits in trunk/Source/WebKitLegacy/win

[WinCairo][WK1] Accelerated Compositing can't be disabled by using WebPreferences::setAcceleratedCompositingEnabled
https://bugs.webkit.org/show_bug.cgi?id=201749

Reviewed by Don Olmstead.

WebPreferences::acceleratedCompositingEnabled always returned TRUE
for !USE(CA). It should reflect the pref value set by
setAcceleratedCompositingEnabled.

  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings): Set kCFBooleanTrue to WebKitAcceleratedCompositingEnabledPreferenceKey even for !USE(CG).
(WebPreferences::acceleratedCompositingEnabled): Return the pref value for !USE(CA).

1:15 AM Changeset in webkit [249828] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: [Overrides] Command-Z doesn't undo changes after page reload
https://bugs.webkit.org/show_bug.cgi?id=201698
<rdar://problem/55276645>

Reviewed by Devin Rousso.

  • UserInterface/Views/ContentViewContainer.js:

(WI.ContentViewContainer.prototype.closeAllContentViews):
Provide a filter to opt out of closing some content views.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._closeContentViewsFilter):
(WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement):
Avoid closing ContentViews for local resource overrides. This keeps the
SourceCodeTextEditor around and thus its undo/redo stack.

1:11 AM Changeset in webkit [249827] by Patrick Griffis
  • 2 edits
    1 add in trunk/Tools

[JHBuild] Fix building gst-plugins-good against glibc 2.30
https://bugs.webkit.org/show_bug.cgi?id=201715

Reviewed by Xabier Rodriguez-Calvar.

  • gstreamer/patches/gst-plugins-good-glibc-2.30-compat.patch: Added.
12:57 AM Changeset in webkit [249826] by Adrian Perez de Castro
  • 4 edits in trunk/Source/WebCore

Factor out duplicated functions from HTTPParsers.cpp and HTTPHeaderField.cpp
https://bugs.webkit.org/show_bug.cgi?id=201721

Reviewed by Don Olmstead.

No new tests needed.

  • loader/HTTPHeaderField.cpp: Remove "static" from prototypes of functions needed in HTTPParsers.cpp.

(WebCore::RFC7230::isDelimiter):
(WebCore::RFC7230::isQuotedPairSecondOctet):
(WebCore::RFC7230::isCommentText):

  • loader/HTTPHeaderField.h: Add prototypes of functions needed in HTTPParsers.cpp.
  • platform/network/HTTPParsers.cpp: Use functionality from WebCore::RFC7230 where possible.

(WebCore::skipWhile): Moved to allow implementing skipWhiteSpace() in terms of skipWhile().
(WebCore::skipWhiteSpace): Implement using skipWhile() and the RFC7230::isWhitespace() predicate.
(WebCore::isValidAcceptHeaderValue): Replace usage of isDelimiterCharacter() with RFC7230::isDelimiter().
(WebCore::isValidHTTPToken): Replace usage of isHTTPTokenCharacter() with RFC7230::isTokenCharacter().
(WebCore::skipQuotedPair): Partially reimplement in terms of RFC7230::isQuotedPairSecondOctet().
(WebCore::skipComment): Replace usage of isCommentTextCharacter() with RFC7230::isCommentText().
(WebCore::skipHTTPToken): Replace usage of isHTTPTokenCharacter() with RFC7230::isTokenCharacter().

Sep 12, 2019:

11:15 PM Changeset in webkit [249825] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed debug build fix for GLib-based ports.

  • platform/glib/UserAgentGLib.cpp: Add the HTTPParsers.h header

inclusion to bring in the isValidUserAgentHeaderValue() declaration as
required for an assertion check.

9:09 PM WPE edited by ChangSeok Oh
(diff)
7:03 PM Changeset in webkit [249824] by Fujii Hironori
  • 2 edits in trunk/Source/WebKitLegacy/win

[Win][WK1] Invert Colors inverts a part of the viewport in high DPI
https://bugs.webkit.org/show_bug.cgi?id=201719

Reviewed by Don Olmstead.

  • WebView.cpp:

(WebView::paintWithDirect2D):
(WebView::paintIntoBackingStore):
Call gc.restore() after inverting the dirty rect.

5:59 PM Changeset in webkit [249823] by achristensen@apple.com
  • 1414 edits
    346 adds
    37 deletes in trunk/Source/ThirdParty/ANGLE

Update ANGLE
https://bugs.webkit.org/show_bug.cgi?id=201156

Patch by James Darpinian <James Darpinian> on 2019-09-12
Reviewed by Alex Christensen.

Update to 2019-9-9, revision 79ad0411911b2fc84834c3705f55707be9e4b498
I merged a bunch of changes to upstream ANGLE, to minimize the changes
necessary when updating ANGLE in WebKit.

  • ANGLE.plist: Update commit hashes
  • ANGLE.txt: Removed in favor of LICENSE
  • ANGLE.xcodeproj/project.pbxproj: Updated with upstream changes Also, copy src/commit.h to id/commit.h during build
  • CMakeLists.txt: Updated with upstream changes Also, copy src/commit.h to id/commit.h during build
  • Compiler.cmake: Updated with upstream changes
  • GLESv2.cmake: Updated with upstream changes
  • adjust-angle-include-paths-rule: Support "" as well as <> for includes
  • adjust-angle-include-paths.sh: Support "" as well as <> for includes
  • changes.diff: Pared down to just legal disclaimer and warning flag changes
  • update-angle.sh: Update ANGLE.plist
  • Many other files modified/added/removed upstream
5:39 PM Changeset in webkit [249822] by commit-queue@webkit.org
  • 61 edits
    1 delete in trunk/Source/WebCore

SVGLengthValue should use two enums for 'type' and 'mode' instead of one unsigned for 'units'
https://bugs.webkit.org/show_bug.cgi?id=201663

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-12
Reviewed by Simon Fraser, Nikolas Zimmermann.

SVGLengthValue had one unsigned to store SVGLengthMode and SVGLengthType.
It used to allocate the least significant 4 bits of this unsigned to the
SVGLengthMode while it leaves the rest for SVGLengthType.

This will not be needed if SVGLengthMode and SVGLengthType are made of
size uint_8.

Also in this patch:

-- SVGLengthNegativeValuesMode is made enum class.

-- SVGLengthValue::blend() is moved to SVGLengthValue.cpp so we do not

need to include SVGLengthContext.h in SVGLengthValue.h.

-- SVGLengthType and SVGLengthMode are moved to SVGLengthValue.h. Instead

of having SVGLengthValue.h includes SVGLengthConttext.h, the opposite
will happen.

-- SVGAnimatedPropertyDescription.h is deleted. It should have been deleted

with the SVG tear off objects removal.

-- SVGPropertyTraits<SVGAngleValue> and SVGPropertyTraits<SVGLengthValue>

are deleted. They should have been deleted with SVGAnimatedType removal.

-- SVGLengthValue::lengthModeForAnimatedLengthAttribute() is deleted. It

was only called from SVGPropertyTraits<SVGLengthValue>.

  • WebCore.xcodeproj/project.pbxproj:
  • css/StyleResolver.h:
  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

  • rendering/style/SVGRenderStyle.h:

(WebCore::SVGRenderStyle::initialBaselineShiftValue):
(WebCore::SVGRenderStyle::initialKerning):

  • rendering/svg/RenderSVGEllipse.cpp:

(WebCore::RenderSVGEllipse::calculateRadiiAndCenter):

  • rendering/svg/RenderSVGRect.cpp:

(WebCore::RenderSVGRect::updateShapeFromElement):

  • rendering/svg/SVGPathData.cpp:

(WebCore::pathFromCircleElement):
(WebCore::pathFromEllipseElement):
(WebCore::pathFromRectElement):

  • rendering/svg/SVGTextLayoutEngineBaseline.cpp:

(WebCore::SVGTextLayoutEngineBaseline::calculateBaselineShift const):

  • rendering/svg/SVGTextLayoutEngineSpacing.cpp:

(WebCore::SVGTextLayoutEngineSpacing::calculateCSSKerningAndSpacing):

  • svg/LinearGradientAttributes.h:

(WebCore::LinearGradientAttributes::LinearGradientAttributes):

  • svg/RadialGradientAttributes.h:

(WebCore::RadialGradientAttributes::RadialGradientAttributes):

  • svg/SVGAngleValue.h:

(WebCore::SVGPropertyTraits<SVGAngleValue>::initialValue): Deleted.
(WebCore::SVGPropertyTraits<SVGAngleValue>::toString): Deleted.

  • svg/SVGCircleElement.cpp:

(WebCore::SVGCircleElement::parseAttribute):

  • svg/SVGCircleElement.h:
  • svg/SVGCursorElement.cpp:

(WebCore::SVGCursorElement::parseAttribute):

  • svg/SVGCursorElement.h:
  • svg/SVGEllipseElement.cpp:

(WebCore::SVGEllipseElement::parseAttribute):

  • svg/SVGEllipseElement.h:
  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::parseAttribute):

  • svg/SVGFilterElement.h:
  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):

  • svg/SVGFilterPrimitiveStandardAttributes.h:
  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::parseAttribute):

  • svg/SVGForeignObjectElement.h:
  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::parseAttribute):

  • svg/SVGImageElement.h:
  • svg/SVGLength.h:

(WebCore::SVGLength::unitType const):
(WebCore::SVGLength::setValueForBindings):
(WebCore::SVGLength::newValueSpecifiedUnits):
(WebCore::SVGLength::convertToSpecifiedUnits):
(WebCore::SVGLength::unitType): Deleted.

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::valueForLength):
(WebCore::SVGLengthContext::convertValueToUserUnits const):
(WebCore::SVGLengthContext::convertValueFromUserUnits const):
(WebCore::SVGLengthContext::convertValueFromUserUnitsToPercentage const):
(WebCore::SVGLengthContext::convertValueFromPercentageToUserUnits const):

  • svg/SVGLengthContext.h:

(): Deleted.

  • svg/SVGLengthList.h:

(WebCore::SVGLengthList::create):

  • svg/SVGLengthValue.cpp:

(WebCore::lengthTypeToString):
(WebCore::parseLengthType):
(WebCore::primitiveTypeToLengthType):
(WebCore::lengthTypeToPrimitiveType):
(WebCore::SVGLengthValue::SVGLengthValue):
(WebCore::SVGLengthValue::construct):
(WebCore::SVGLengthValue::blend):
(WebCore::SVGLengthValue::fromCSSPrimitiveValue):
(WebCore::SVGLengthValue::toCSSPrimitiveValue):
(WebCore::SVGLengthValue::setValueAsString):
(WebCore::SVGLengthValue::valueAsString const):
(WebCore::SVGLengthValue::valueForBindings const):
(WebCore::SVGLengthValue::setValue):
(WebCore::SVGLengthValue::convertToSpecifiedUnits):
(WebCore::storeUnit): Deleted.
(WebCore::extractMode): Deleted.
(WebCore::extractType): Deleted.
(WebCore::SVGLengthValue::operator== const): Deleted.
(WebCore::SVGLengthValue::operator!= const): Deleted.
(WebCore::SVGLengthValue::unitType const): Deleted.
(WebCore::SVGLengthValue::unitMode const): Deleted.
(WebCore::SVGLengthValue::valueAsPercentage const): Deleted.
(WebCore::SVGLengthValue::newValueSpecifiedUnits): Deleted.
(WebCore::SVGLengthValue::lengthModeForAnimatedLengthAttribute): Deleted.

  • svg/SVGLengthValue.h:

(WebCore::SVGLengthValue::lengthType const):
(WebCore::SVGLengthValue::lengthMode const):
(WebCore::SVGLengthValue::isZero const):
(WebCore::SVGLengthValue::isRelative const):
(WebCore::SVGLengthValue::valueAsPercentage const):
(WebCore::SVGLengthValue::valueInSpecifiedUnits const):
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::SVGLengthValue::blend const): Deleted.
(WebCore::SVGPropertyTraits<SVGLengthValue>::initialValue): Deleted.
(WebCore::SVGPropertyTraits<SVGLengthValue>::parse): Deleted.
(WebCore::SVGPropertyTraits<SVGLengthValue>::toString): Deleted.

  • svg/SVGLineElement.cpp:

(WebCore::SVGLineElement::parseAttribute):

  • svg/SVGLineElement.h:
  • svg/SVGLinearGradientElement.cpp:

(WebCore::SVGLinearGradientElement::parseAttribute):

  • svg/SVGLinearGradientElement.h:
  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::parseAttribute):

  • svg/SVGMarkerElement.h:
  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::parseAttribute):

  • svg/SVGMaskElement.h:
  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::parseAttribute):

  • svg/SVGPatternElement.h:
  • svg/SVGRadialGradientElement.cpp:

(WebCore::SVGRadialGradientElement::parseAttribute):

  • svg/SVGRadialGradientElement.h:
  • svg/SVGRectElement.cpp:

(WebCore::SVGRectElement::parseAttribute):

  • svg/SVGRectElement.h:
  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::parseAttribute):
(WebCore::SVGSVGElement::hasIntrinsicWidth const):
(WebCore::SVGSVGElement::hasIntrinsicHeight const):
(WebCore::SVGSVGElement::intrinsicWidth const):
(WebCore::SVGSVGElement::intrinsicHeight const):

  • svg/SVGSVGElement.h:
  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::parseAttribute):
(WebCore::SVGTextContentElement::textLengthAnimated):

  • svg/SVGTextContentElement.h:
  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::parseAttribute):

  • svg/SVGTextPathElement.h:
  • svg/SVGTextPositioningElement.h:
  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::parseAttribute):

  • svg/SVGUseElement.h:
  • svg/properties/SVGAnimatedPropertyAccessorImpl.h:
  • svg/properties/SVGAnimatedPropertyDescription.h: Removed.
  • svg/properties/SVGAnimationAdditiveListFunctionImpl.h:

(WebCore::SVGAnimationLengthListFunction::animate):

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:

(WebCore::SVGAnimationLengthFunction::animate):

  • svg/properties/SVGValuePropertyAnimatorImpl.h:
  • svg/properties/SVGValuePropertyListAnimatorImpl.h:
5:01 PM Changeset in webkit [249821] by Chris Dumez
  • 4 edits in trunk

Node.replaceChild()'s pre-replacement validations are not done in the right order
https://bugs.webkit.org/show_bug.cgi?id=201741

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/dom/nodes/Node-replaceChild-expected.txt:

Source/WebCore:

Node.replaceChild()'s pre-replacement validations are not done in the right order (spec order):

In particular, we do not do check 3 (If child’s parent is not parent, then throw a
"NotFoundError" DOMException.) at the right time, because we were making this check
*after* checkPreReplacementValidity(), instead of *during*.

No new tests, rebaselined existing test.

  • dom/ContainerNode.cpp:

(WebCore::checkAcceptChild):
(WebCore::ContainerNode::ensurePreInsertionValidity):
(WebCore::checkPreReplacementValidity):
(WebCore::ContainerNode::replaceChild):

4:59 PM Changeset in webkit [249820] by Ryan Haddad
  • 36 edits in trunk/Source

Unreviewed, rolling out r249801.

Caused two servier worker layout tests to become flaky.

Reverted changeset:

"Use WebProcess processIdentifier to identify Service Worker
connections"
https://bugs.webkit.org/show_bug.cgi?id=201459
https://trac.webkit.org/changeset/249801

3:55 PM Changeset in webkit [249819] by Ryan Haddad
  • 1 edit
    3 adds in trunk/LayoutTests

Unreviewed test gardening, rebaseline inspector/model/remote-object.html for WK1 after r249808.

  • platform/mac-wk1/inspector/model/remote-object-expected.txt: Added.
3:46 PM Changeset in webkit [249818] by Chris Dumez
  • 9 edits in trunk/Source/WebKit

Pass sessionID to WebProcess with other WebProcessDataStoreParameters
https://bugs.webkit.org/show_bug.cgi?id=201730

Reviewed by Alex Christensen.

Pass sessionID to WebProcess with other WebProcessDataStoreParameters and store
it on the WebProcess object. In follow-up patches, I will use this sessionID
more and leverage the fact that we have one sessionID per Webprocess to simplify
the WebKit2-layer code.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • Shared/WebProcessDataStoreParameters.h:

(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::webProcessDataStoreParameters):
(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::sendWebProcessDataStoreParameters): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setWebsiteDataStore):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setWebsiteDataStoreParameters):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::sessionID const):

3:12 PM Changeset in webkit [249817] by Chris Dumez
  • 21 edits in trunk

[WKTR] Drop TestRunner.setPrivateBrowsingEnabled_DEPRECATED()
https://bugs.webkit.org/show_bug.cgi?id=201546

Reviewed by Alex Christensen.

Drop TestRunner.setPrivateBrowsingEnabled_DEPRECATED() from WebKitTestRunner as it does not do
the right thing for WebKit2 and tests have been rewritten to not use it.

Source/WebCore:

  • page/PageGroup.cpp:

(WebCore::PageGroup::addPage):
(WebCore::PageGroup::setSessionIDForTesting): Deleted.

  • page/PageGroup.h:

(): Deleted.

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::ensureLegacyPrivateBrowsingSession): Deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleSetPrivateBrowsingEnabled): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setPrivateBrowsingEnabled): Deleted.

  • WebProcess/InjectedBundle/InjectedBundle.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureLegacyPrivateBrowsingSessionInNetworkProcess): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/WebStorage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::setSessionIDForTesting):

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPrivateBrowsingEnabled_DEPRECATED): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
2:47 PM Changeset in webkit [249816] by sbarati@apple.com
  • 3 edits in trunk/Source/WebCore

[WHLSL] Slim down WSLMatrix and inline constructors in native code
https://bugs.webkit.org/show_bug.cgi?id=201568

Reviewed by Robin Morisset.

Before, our WSL Matrix in MSL had templates to figure out how we're
constructing it. For example, with a list of elements, or a list of
columns. However, we can remove this template code since when we're
emitting Metal code, we know exactly how we're constructing the WSL
matrix. So the NativeFunctionWriter now inlines the proper stores
into the WSLMatrix elements.

This patch speeds up Metal compile times in boids by ~4ms (16%) with
a p-value of 0.0001.

Covered by existing tests.

  • Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.cpp:

(WebCore::WHLSL::Metal::metalCodePrologue):

  • Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:

(WebCore::WHLSL::Metal::inlineNativeFunction):

1:18 PM Changeset in webkit [249815] by Simon Fraser
  • 7 edits in trunk/Source

REGRESSION (iOS 13): Top fixed element on apple.com flickers in size while pinching in
https://bugs.webkit.org/show_bug.cgi?id=201668
rdar://problem/51934041

Reviewed by Frédéric Wang.

Source/WebCore:

When computing the new layout viewport rect in ScrollingTreeFrameScrollingNode, use
"StickToDocumentBounds" mode, not "StickToViewportBounds", because otherwise we'll compute
a layout viewport that has negative top/left offsets which causes fixed elements to jump outside
the viewport. The only code that should be moving things outside the viewport (a temporary effect
that happens when pinching) is the 'isBelowMinimumScale' path in WebPageProxy::computeCustomFixedPositionRect().

With this change ScrollingTreeFrameScrollingNode no longer needs m_behaviorForFixed; it can be removed later.

Not currently testable, since it involves pinching in past minimum zoom and transients state.

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition const):

Source/WebKit:

The UI process can have transient state that pushes scrolling-tree-managed layers into custom
locations while pinch-zooming. We have to apply this state both when the visible rects
in the UI process change (existing code in -[WKContentView didUpdateVisibleRect:...]) and when
we get new layers from the web process (added in RemoteLayerTreeDrawingAreaProxy::commitLayerTree()
in this patch).

Move some code into WebPageProxy to create functions that we can call from both places.

For manual testing, visit a page with fixed banners, pinch in slightly, then pinch out and,
while keeping your fingers down, move the contents around.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didUpdateVisibleRect:unobscuredRect:contentInsets:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::unconstrainedLayoutViewportRect const):
(WebKit::WebPageProxy::adjustLayersForLayoutViewport):

1:10 PM Changeset in webkit [249814] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening, rebaseline inspector/model/remote-object.html after r249808.

  • inspector/model/remote-object-expected.txt:
12:36 PM Changeset in webkit [249813] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

[Cocoa] Text indicator for an image link on the front page of apple.com looks wrong
https://bugs.webkit.org/show_bug.cgi?id=201724
<rdar://problem/54622894>

Reviewed by Tim Horton.

Source/WebCore:

When computing the bounds of the range (<a>, 0) to (<a>, 1) for a text indicator snapshot where <a> is a link
with a single non-breaking whitespace character, we currently use the text rect of the single space. This leads
to a confusing text indicator, as the resulting snapshot is a tiny blank square in the top left corner of the
link. This problem manifests when starting a drag or showing the system context menu on iOS, or force clicking
or three-finger tapping to show a preview on macOS.

To address this scenario, tweak the heuristic in the case where the text indicator option
TextIndicatorOptionUseBoundingRectAndPaintAllContentForComplexRanges is specified, such that we consider a range
containing only text with whitespaces to be "complex"; additionally, instead of falling back to the range's
bounding rect (which in this case is still tiny), fall back to the common ancestor container's bounding rect,
which encompasses not only the text inside the range but also the element containing the range (in this case,
the anchor element).

Test: fast/text-indicator/text-indicator-empty-link.html

  • page/TextIndicator.cpp:

(WebCore::containsOnlyWhiteSpaceText):

Add a helper to determine whether a Range is comprised only of rendered text that only contains whitespace
characters.

(WebCore::initializeIndicator):

See ChangeLog entry above for more detail.

LayoutTests:

Add a new layout test to exercise this scenario.

  • fast/text-indicator/text-indicator-empty-link-expected.txt: Added.
  • fast/text-indicator/text-indicator-empty-link.html: Added.
9:55 AM Changeset in webkit [249812] by beidson@apple.com
  • 4 edits in trunk

PDF exporting on iOS should include URL rects.
<rdar://problem/54900133> and https://bugs.webkit.org/show_bug.cgi?id=201693

Reviewed by Tim Horton.

Source/WebCore:

Turns out that PDF exporting on iOS works fine.

Tracking back through history it was disabled at least pre-2014.

It was almost certainly disabled because it didn't work way back then,
but it works great now.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::setURLForRect): Remove the iOS platform exclusion.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/PDFSnapshot.mm:

(TestWebKitAPI::TEST): Enable on iOS.

9:39 AM Changeset in webkit [249811] by Chris Dumez
  • 64 edits
    4 moves
    26 adds
    5 deletes in trunk/LayoutTests

Re-sync dom web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=201697

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Re-sync dom web-platform-tests from upstream ab331d317554a3ba61.

  • web-platform-tests/dom/META.yml: Added.
  • web-platform-tests/dom/OWNERS: Removed.
  • web-platform-tests/dom/abort/w3c-import.log:
  • web-platform-tests/dom/collections/HTMLCollection-as-proto-length-get-throws-expected.txt: Removed.
  • web-platform-tests/dom/collections/HTMLCollection-as-proto-length-get-throws.html: Removed.
  • web-platform-tests/dom/collections/HTMLCollection-as-prototype-expected.txt: Added.
  • web-platform-tests/dom/collections/HTMLCollection-as-prototype.html: Added.
  • web-platform-tests/dom/collections/HTMLCollection-delete-expected.txt: Added.
  • web-platform-tests/dom/collections/HTMLCollection-delete.html: Added.
  • web-platform-tests/dom/collections/w3c-import.log:
  • web-platform-tests/dom/historical-expected.txt:
  • web-platform-tests/dom/historical.html:
  • web-platform-tests/dom/idlharness.any.html: Added.
  • web-platform-tests/dom/idlharness.any.js: Added.
  • web-platform-tests/dom/idlharness.any.worker-expected.txt: Added.
  • web-platform-tests/dom/idlharness.any.worker.html: Added.
  • web-platform-tests/dom/idlharness.window-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/interfaces-expected.txt.
  • web-platform-tests/dom/idlharness.window.html: Added.
  • web-platform-tests/dom/idlharness.window.js: Added.
  • web-platform-tests/dom/interfaces.html: Removed.
  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt:
  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html:
  • web-platform-tests/dom/lists/w3c-import.log:
  • web-platform-tests/dom/nodes/Comment-Text-constructor.js:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
  • web-platform-tests/dom/nodes/Document-Element-getElementsByTagName.js:

(test_getElementsByTagName):

  • web-platform-tests/dom/nodes/Document-Element-getElementsByTagNameNS.js:

(test_getElementsByTagNameNS):

  • web-platform-tests/dom/nodes/Document-URL-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-URL.sub-expected.txt.
  • web-platform-tests/dom/nodes/Document-URL.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-URL.sub.html.
  • web-platform-tests/dom/nodes/Document-constructor-expected.txt:
  • web-platform-tests/dom/nodes/Document-constructor-svg.svg: Removed.
  • web-platform-tests/dom/nodes/Document-constructor.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-contentType/resources/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-contentType/support/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-createAttribute-expected.txt:
  • web-platform-tests/dom/nodes/Document-createAttribute.html:
  • web-platform-tests/dom/nodes/Document-createElement-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-createElement-namespace.html:
  • web-platform-tests/dom/nodes/Document-createElement.html:
  • web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElementNS.js:
  • web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt: Added.
  • web-platform-tests/dom/nodes/Document-createEvent.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.html.
  • web-platform-tests/dom/nodes/Document-getElementsByClassName-expected.txt: Added.
  • web-platform-tests/dom/nodes/Document-getElementsByClassName.html: Added.
  • web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:
  • web-platform-tests/dom/nodes/Document-getElementsByTagNameNS-expected.txt:
  • web-platform-tests/dom/nodes/Element-getElementsByClassName-expected.txt:
  • web-platform-tests/dom/nodes/Element-getElementsByClassName.html:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-expected.txt:
  • web-platform-tests/dom/nodes/Element-getElementsByTagNameNS-expected.txt:
  • web-platform-tests/dom/nodes/Element-matches-expected.txt:
  • web-platform-tests/dom/nodes/Element-webkitMatchesSelector-expected.txt:
  • web-platform-tests/dom/nodes/Node-childNodes-expected.txt:
  • web-platform-tests/dom/nodes/Node-childNodes.html:
  • web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
  • web-platform-tests/dom/nodes/Node-cloneNode.html:
  • web-platform-tests/dom/nodes/Node-insertBefore-expected.txt:
  • web-platform-tests/dom/nodes/Node-insertBefore.html:
  • web-platform-tests/dom/nodes/Node-normalize-expected.txt:
  • web-platform-tests/dom/nodes/Node-normalize.html:
  • web-platform-tests/dom/nodes/Node-replaceChild-expected.txt:
  • web-platform-tests/dom/nodes/Node-replaceChild.html:
  • web-platform-tests/dom/nodes/Node-textContent.html:
  • web-platform-tests/dom/nodes/ParentNode-children-expected.txt: Added.
  • web-platform-tests/dom/nodes/ParentNode-children.html: Added.
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All.html:
  • web-platform-tests/dom/nodes/aria-element-reflection.tentative-expected.txt: Added.
  • web-platform-tests/dom/nodes/aria-element-reflection.tentative.html: Added.
  • web-platform-tests/dom/nodes/attributes.html:
  • web-platform-tests/dom/nodes/pre-insertion-checks.js: Added.

(getNonParentNodes):
(getNonInsertableNodes):
(getNonDocumentParentNodes):
(test):

  • web-platform-tests/dom/nodes/productions.js:
  • web-platform-tests/dom/nodes/query-target-in-load-event-expected.txt: Added.
  • web-platform-tests/dom/nodes/query-target-in-load-event.html: Added.
  • web-platform-tests/dom/nodes/query-target-in-load-event.part.html: Added.
  • web-platform-tests/dom/nodes/remove-and-adopt-crash-expected.txt: Added.
  • web-platform-tests/dom/nodes/remove-and-adopt-crash.html: Added.
  • web-platform-tests/dom/nodes/rootNode-expected.txt:
  • web-platform-tests/dom/nodes/rootNode.html:
  • web-platform-tests/dom/nodes/selectors.js:
  • web-platform-tests/dom/nodes/w3c-import.log:
  • web-platform-tests/dom/ranges/Range-intersectsNode-2-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-intersectsNode-2.html: Added.
  • web-platform-tests/dom/ranges/w3c-import.log:
  • web-platform-tests/dom/w3c-import.log:

LayoutTests:

  • TestExpectations:
  • platform/mac-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
  • tests-options.json:
8:53 AM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
8:33 AM Changeset in webkit [249810] by Adrian Perez de Castro
  • 9 edits in trunk

[GTK][WPE] webkit_settings_set_user_agent() allows content forbidden in HTTP headers
https://bugs.webkit.org/show_bug.cgi?id=201077

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Add a function to validate whether a string contains a valid value
which can be used in a HTTP User-Agent header.

Covered by new WebCore API test HTTPParsers.ValidateUserAgentValues.

  • platform/glib/UserAgentGLib.cpp:

(WebCore::standardUserAgent): Assert that the returned string is a valid User-Agent.
(WebCore::standardUserAgentForURL): Ditto.

  • platform/network/HTTPParsers.cpp: Added a series of helper functions which skip over

characters of a string, which can be used to scan over the different elements of an
User-Agent value; all of them receive the position from the input string where to start
scanning, updating it to the position right after the scanned item (this follow the
convention already in use by other functions in the source file). Each of them has
been annotated with the RFC number and section which contains the definition of the
scanned item, and the corresponding BNF rules to make the code easier to follow.
(WebCore::skipWhile): Added.
(WebCore::isVisibleCharacter): Added.
(WebCore::isOctectInFieldContentCharacter): Added.
(WebCore::isCommentTextCharacter): Added.
(WebCore::isHTTPTokenCharacter): Added.
(WebCore::isValidHTTPToken): Refactored to use the new isHTTPTokenCharacter()
helper function instead of having the test inside the loop.
(WebCore::skipCharacter): Added.
(WebCore::skipQuotedPair): Added.
(WebCore::skipComment): Added.
(WebCore::skipHTTPToken): Added.
(WebCore::skipUserAgentProduct): Added.
(WebCore::isValidUserAgentHeaderValue): Added.

  • platform/network/HTTPParsers.h: Add prototype for isValidUserAgentHeaderValue().

Source/WebKit:

  • UIProcess/API/glib/WebKitSettings.cpp:

(webkit_settings_set_user_agent): Check the passed string using the new
WebCore::isValidUserAgentHeaderValue() function, and return early without
changing the setting if the string is not usable in the User-Agent HTTP
header.

Tools:

  • TestWebKitAPI/CMakeLists.txt: Add missing HTTPParsers.cpp to be built into TestWebCore.
  • TestWebKitAPI/Tests/WebCore/HTTPParsers.cpp:

(TestWebKitAPI::TEST): Add tests for WebCore::isValidUserAgentHeaderValue().

8:09 AM Changeset in webkit [249809] by Devin Rousso
  • 3 edits in trunk/LayoutTests

REGRESSION? (r249786): inspector/canvas/context-attributes.html is failing on macOS WK1
https://bugs.webkit.org/show_bug.cgi?id=201714
<rdar://problem/55290473>

Reviewed by Joseph Pecoraro.

  • inspector/canvas/context-attributes.html:
  • inspector/canvas/context-attributes-expected.txt:
8:04 AM Changeset in webkit [249808] by mark.lam@apple.com
  • 54 edits
    4 adds in trunk

Harden JSC against the abuse of runtime options.
https://bugs.webkit.org/show_bug.cgi?id=201597
<rdar://problem/55167068>

Reviewed by Filip Pizlo.

JSTests:

Remove the call to forceGCSlowPaths(). This utility function will be removed.
The modern way to set the required option is to use @ requireOptions.

  • stress/ftl-try-catch-oom-error-lazy-slow-path.js:

Source/JavaScriptCore:

Linux parts contributed by Carlos Garcia Campos <cgarcia@igalia.com>.

  1. Introduce a JSC::Config struct that will be protected as ReadOnly once the first VM instance is constructed. The end of the VM constructor calls Config::permanentlyFreeze() which will make the Config ReadOnly.

Note: this is currently only supported for OS(DARWIN) and OS(LINUX).
OS(WINDOWS) will need to implement some missing pieces before it can enable
this hardening (see FIXME in JSCConfig.cpp).

The hardening strategy here is to put immutable global values into the Config.
Any modifications that need to be made to these values must be done before the
first VM instance is done instantiating. This ensures that no script will
ever run while the Config is still writable.

Also, the policy for this hardening is that a process is opted in by default.
If there's a valid need to disable this hardening (e.g. for some test
environments), the relevant process will need to opt itself out by calling
Config::configureForTesting().

The jsc shell, WK2 UI and WebContent processes are opted in by default.
Only test processes may be opt out.

  1. Put all JSC::Options in the Config. This enforces the invariant that options can only be changed before we instantiate a VM. Once a VM is instantiated, the options are immutable.
  1. Remove functionForceGCSlowPaths() from the jsc shell. Setting Options::forceGCSlowPaths this way is no longer allowed.
  1. Re-factored the Options code (Options.h) into:
    • OptionEntry.h: the data structure that stores the option values.
    • OptionsList.h: the list of options.
    • Options.h: the Options singleton object which is the interface for accessing options.

Renamed the JSC_OPTIONS macro to FOR_EACH_JSC_OPTION, because
"FOR_EACH_JSC_OPTION(SET_OPTION_VALUE)" reads a lot better than
"JSC_OPTIONS(FOR_EACH_OPTION)".

  1. Change testapi to call Config::configureForTesting(). Parts of testapi makes use of setting options in its tests. Hence, this hardening is disabled for testapi.

Note: the jsc shell does enable this hardening.

  1. Put ExecutableAllocator's immutable globals in the Config.
  1. RELEASE_ASSERT that restrictedOptionsEnabled in order to use the FunctionOverrides test utility.
  1. RELEASE_ASSERT that Options::useDollarVM() is enabled in order to use the $vm.

We must RELEASE_ASSERT(Options::useDollarVM()) in all JSDollarVM functions
that are non-trivial at an eye's glance. This includes (but is not limited to):

constructors
create() factory
createStructure() factory
finishCreation()
HOST_CALL or operation functions
Constructors and methods of utility and test classes

The only exception are some constexpr constructors used for instantiating
globals (since these must have trivial constructors) e.g. DOMJITAttribute.
Instead, these constructors should always be ALWAYS_INLINE.

  • API/glib/JSCOptions.cpp:

(jscOptionsSetValue):
(jscOptionsGetValue):
(jsc_options_foreach):
(jsc_options_get_option_group):

  • API/tests/testapi.c:

(main):

  • API/tests/testapi.cpp:

(configureJSCForTesting):

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • jit/ExecutableAllocator.cpp:

(JSC::isJITEnabled):
(JSC::ExecutableAllocator::setJITEnabled):
(JSC::ExecutableAllocator::initializeUnderlyingAllocator):
(JSC::ExecutableAllocator::isValid const):
(JSC::ExecutableAllocator::underMemoryPressure):
(JSC::ExecutableAllocator::memoryPressureMultiplier):
(JSC::ExecutableAllocator::allocate):
(JSC::ExecutableAllocator::isValidExecutableMemory):
(JSC::ExecutableAllocator::getLock const):
(JSC::ExecutableAllocator::committedByteCount):
(JSC::ExecutableAllocator::dumpProfile):
(JSC::startOfFixedExecutableMemoryPoolImpl):
(JSC::endOfFixedExecutableMemoryPoolImpl):
(JSC::isJITPC):
(JSC::dumpJITMemory):
(JSC::ExecutableAllocator::initialize):
(JSC::ExecutableAllocator::singleton):

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionJSCOptions):
(jscmain):
(functionForceGCSlowPaths): Deleted.

  • runtime/ConfigFile.cpp:

(JSC::ConfigFile::parse):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/JSCConfig.cpp: Added.

(JSC::Config::disableFreezingForTesting):
(JSC::Config::enableRestrictedOptions):
(JSC::Config::permanentlyFreeze):

  • runtime/JSCConfig.h: Added.

(JSC::Config::configureForTesting):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::exposeDollarVM):

  • runtime/OptionEntry.h: Added.

(JSC::OptionRange::operator= ):
(JSC::OptionRange::rangeString const):

  • runtime/Options.cpp:

(JSC::Options::isAvailable):
(JSC::scaleJITPolicy):
(JSC::Options::initialize):
(JSC::Options::setOptions):
(JSC::Options::setOptionWithoutAlias):
(JSC::Options::setAliasedOption):
(JSC::Option::dump const):
(JSC::Option::operator== const):
(): Deleted.
(JSC::Options::enableRestrictedOptions): Deleted.

  • runtime/Options.h:

(JSC::Option::Option):
(JSC::Option::defaultOption const):
(JSC::Option::boolVal):
(JSC::Option::unsignedVal):
(JSC::Option::doubleVal):
(JSC::Option::int32Val):
(JSC::Option::optionRangeVal):
(JSC::Option::optionStringVal):
(JSC::Option::gcLogLevelVal):
(JSC::OptionRange::operator= ): Deleted.
(JSC::OptionRange::rangeString const): Deleted.

  • runtime/OptionsList.h: Added.

(JSC::countNumberOfJSCOptions):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • tools/FunctionOverrides.cpp:

(JSC::FunctionOverrides::FunctionOverrides):
(JSC::FunctionOverrides::reinstallOverrides):
(JSC::FunctionOverrides::initializeOverrideFor):
(JSC::FunctionOverrides::parseOverridesInFile):

  • tools/JSDollarVM.cpp:

(JSC::JSDollarVMCallFrame::JSDollarVMCallFrame):
(JSC::JSDollarVMCallFrame::createStructure):
(JSC::JSDollarVMCallFrame::create):
(JSC::JSDollarVMCallFrame::finishCreation):
(JSC::JSDollarVMCallFrame::addProperty):
(JSC::Element::Element):
(JSC::Element::create):
(JSC::Element::createStructure):
(JSC::Root::Root):
(JSC::Root::create):
(JSC::Root::createStructure):
(JSC::SimpleObject::SimpleObject):
(JSC::SimpleObject::create):
(JSC::SimpleObject::createStructure):
(JSC::ImpureGetter::ImpureGetter):
(JSC::ImpureGetter::createStructure):
(JSC::ImpureGetter::create):
(JSC::ImpureGetter::finishCreation):
(JSC::ImpureGetter::getOwnPropertySlot):
(JSC::CustomGetter::CustomGetter):
(JSC::CustomGetter::createStructure):
(JSC::CustomGetter::create):
(JSC::CustomGetter::getOwnPropertySlot):
(JSC::CustomGetter::customGetter):
(JSC::CustomGetter::customGetterAcessor):
(JSC::RuntimeArray::create):
(JSC::RuntimeArray::destroy):
(JSC::RuntimeArray::getOwnPropertySlot):
(JSC::RuntimeArray::getOwnPropertySlotByIndex):
(JSC::RuntimeArray::createPrototype):
(JSC::RuntimeArray::createStructure):
(JSC::RuntimeArray::finishCreation):
(JSC::RuntimeArray::RuntimeArray):
(JSC::RuntimeArray::lengthGetter):
(JSC::DOMJITNode::DOMJITNode):
(JSC::DOMJITNode::createStructure):
(JSC::DOMJITNode::checkSubClassSnippet):
(JSC::DOMJITNode::create):
(JSC::DOMJITGetter::DOMJITGetter):
(JSC::DOMJITGetter::createStructure):
(JSC::DOMJITGetter::create):
(JSC::DOMJITGetter::DOMJITAttribute::DOMJITAttribute):
(JSC::DOMJITGetter::DOMJITAttribute::slowCall):
(JSC::DOMJITGetter::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetter::customGetter):
(JSC::DOMJITGetter::finishCreation):
(JSC::DOMJITGetterComplex::DOMJITGetterComplex):
(JSC::DOMJITGetterComplex::createStructure):
(JSC::DOMJITGetterComplex::create):
(JSC::DOMJITGetterComplex::DOMJITAttribute::DOMJITAttribute):
(JSC::DOMJITGetterComplex::DOMJITAttribute::slowCall):
(JSC::DOMJITGetterComplex::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetterComplex::functionEnableException):
(JSC::DOMJITGetterComplex::customGetter):
(JSC::DOMJITGetterComplex::finishCreation):
(JSC::DOMJITFunctionObject::DOMJITFunctionObject):
(JSC::DOMJITFunctionObject::createStructure):
(JSC::DOMJITFunctionObject::create):
(JSC::DOMJITFunctionObject::functionWithTypeCheck):
(JSC::DOMJITFunctionObject::functionWithoutTypeCheck):
(JSC::DOMJITFunctionObject::checkSubClassSnippet):
(JSC::DOMJITFunctionObject::finishCreation):
(JSC::DOMJITCheckSubClassObject::DOMJITCheckSubClassObject):
(JSC::DOMJITCheckSubClassObject::createStructure):
(JSC::DOMJITCheckSubClassObject::create):
(JSC::DOMJITCheckSubClassObject::functionWithTypeCheck):
(JSC::DOMJITCheckSubClassObject::functionWithoutTypeCheck):
(JSC::DOMJITCheckSubClassObject::finishCreation):
(JSC::DOMJITGetterBaseJSObject::DOMJITGetterBaseJSObject):
(JSC::DOMJITGetterBaseJSObject::createStructure):
(JSC::DOMJITGetterBaseJSObject::create):
(JSC::DOMJITGetterBaseJSObject::DOMJITAttribute::DOMJITAttribute):
(JSC::DOMJITGetterBaseJSObject::DOMJITAttribute::slowCall):
(JSC::DOMJITGetterBaseJSObject::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetterBaseJSObject::customGetter):
(JSC::DOMJITGetterBaseJSObject::finishCreation):
(JSC::JSTestCustomGetterSetter::JSTestCustomGetterSetter):
(JSC::JSTestCustomGetterSetter::create):
(JSC::JSTestCustomGetterSetter::createStructure):
(JSC::customSetAccessor):
(JSC::customSetValue):
(JSC::JSTestCustomGetterSetter::finishCreation):
(JSC::Element::handleOwner):
(JSC::Element::finishCreation):
(JSC::WasmStreamingParser::WasmStreamingParser):
(JSC::WasmStreamingParser::create):
(JSC::WasmStreamingParser::createStructure):
(JSC::WasmStreamingParser::finishCreation):
(JSC::functionWasmStreamingParserAddBytes):
(JSC::functionWasmStreamingParserFinalize):
(JSC::functionCrash):
(JSC::functionBreakpoint):
(JSC::functionDFGTrue):
(JSC::functionFTLTrue):
(JSC::functionCpuMfence):
(JSC::functionCpuRdtsc):
(JSC::functionCpuCpuid):
(JSC::functionCpuPause):
(JSC::functionCpuClflush):
(JSC::CallerFrameJITTypeFunctor::CallerFrameJITTypeFunctor):
(JSC::getExecutableForFunction):
(JSC::functionLLintTrue):
(JSC::functionJITTrue):
(JSC::functionNoInline):
(JSC::functionGC):
(JSC::functionEdenGC):
(JSC::functionDumpSubspaceHashes):
(JSC::functionCallFrame):
(JSC::functionCodeBlockForFrame):
(JSC::codeBlockFromArg):
(JSC::functionCodeBlockFor):
(JSC::functionDumpSourceFor):
(JSC::functionDumpBytecodeFor):
(JSC::doPrint):
(JSC::functionDataLog):
(JSC::functionPrint):
(JSC::functionDumpCallFrame):
(JSC::functionDumpStack):
(JSC::functionDumpRegisters):
(JSC::functionDumpCell):
(JSC::functionIndexingMode):
(JSC::functionInlineCapacity):
(JSC::functionValue):
(JSC::functionGetPID):
(JSC::functionHaveABadTime):
(JSC::functionIsHavingABadTime):
(JSC::functionCreateGlobalObject):
(JSC::functionCreateProxy):
(JSC::functionCreateRuntimeArray):
(JSC::functionCreateNullRopeString):
(JSC::functionCreateImpureGetter):
(JSC::functionCreateCustomGetterObject):
(JSC::functionCreateDOMJITNodeObject):
(JSC::functionCreateDOMJITGetterObject):
(JSC::functionCreateDOMJITGetterComplexObject):
(JSC::functionCreateDOMJITFunctionObject):
(JSC::functionCreateDOMJITCheckSubClassObject):
(JSC::functionCreateDOMJITGetterBaseJSObject):
(JSC::functionCreateWasmStreamingParser):
(JSC::functionSetImpureGetterDelegate):
(JSC::functionCreateBuiltin):
(JSC::functionGetPrivateProperty):
(JSC::functionCreateRoot):
(JSC::functionCreateElement):
(JSC::functionGetElement):
(JSC::functionCreateSimpleObject):
(JSC::functionGetHiddenValue):
(JSC::functionSetHiddenValue):
(JSC::functionShadowChickenFunctionsOnStack):
(JSC::functionSetGlobalConstRedeclarationShouldNotThrow):
(JSC::functionFindTypeForExpression):
(JSC::functionReturnTypeFor):
(JSC::functionFlattenDictionaryObject):
(JSC::functionDumpBasicBlockExecutionRanges):
(JSC::functionHasBasicBlockExecuted):
(JSC::functionBasicBlockExecutionCount):
(JSC::functionEnableExceptionFuzz):
(JSC::changeDebuggerModeWhenIdle):
(JSC::functionEnableDebuggerModeWhenIdle):
(JSC::functionDisableDebuggerModeWhenIdle):
(JSC::functionDeleteAllCodeWhenIdle):
(JSC::functionGlobalObjectCount):
(JSC::functionGlobalObjectForObject):
(JSC::functionGetGetterSetter):
(JSC::functionLoadGetterFromGetterSetter):
(JSC::functionCreateCustomTestGetterSetter):
(JSC::functionDeltaBetweenButterflies):
(JSC::functionTotalGCTime):
(JSC::functionParseCount):
(JSC::functionIsWasmSupported):
(JSC::JSDollarVM::finishCreation):
(JSC::JSDollarVM::addFunction):
(JSC::JSDollarVM::addConstructibleFunction):

  • tools/JSDollarVM.h:

Source/WebCore:

No new tests. Covered by existing tests.

Enable Options::useDollarVM before we tell the JSGlobalObject to exposeDollarVM().
The $vm utility is now hardened to require that Options::useDollarVM be
enabled in order for it to be used.

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::injectInternalsObject):

Source/WebKit:

Linux parts contributed by Carlos Garcia Campos <cgarcia@igalia.com>.

  1. Add plumbing to allow WK2 tests to configureJSCForTesting().
  2. Removed the call enable Options::useBigInt in WebInspectorUI. WebInspectorUI doesn't really need it for now.
  • PluginProcess/unix/PluginProcessMainUnix.cpp:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):

  • Shared/unix/AuxiliaryProcessMain.cpp:

(WebKit::AuxiliaryProcessMainBase::parseCommandLine):

  • Shared/unix/AuxiliaryProcessMain.h:

(WebKit::AuxiliaryProcessMain):

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationSetShouldConfigureJSCForTesting):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration configureJSCForTesting]):
(-[_WKProcessPoolConfiguration setConfigureJSCForTesting:]):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::Client::shouldConfigureJSCForTesting const):

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shouldConfigureJSCForTesting const):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::WebInspectorUI):

Source/WTF:

Add a source file that was missing so that Xcode can search its contents too.

  • WTF.xcodeproj/project.pbxproj:

Tools:

Linux parts contributed by Carlos Garcia Campos <cgarcia@igalia.com>.
Windows parts contributed by Fujii Hironori <Fujii Hironori>.

Call JSC::Config::configureForTesting() in test harnesses or at the top of tests
to disable the hardening on test runs. Tests rely on setting options to enable
test features.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(dumpRenderTree):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(initialize):

  • TestWebKitAPI/PlatformUtilities.cpp:

(TestWebKitAPI::Util::createContextWithInjectedBundle):

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(main):

  • TestWebKitAPI/Tests/WebKitCocoa/ApplePay.mm:

(TestWebKitAPI::TEST):
(TestWebKitAPI::runActiveSessionTest):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewDiagnosticLogging.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • TestWebKitAPI/Tests/mac/MediaPlaybackSleepAssertion.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/WKWebViewConfigurationExtras.h:
  • TestWebKitAPI/WKWebViewConfigurationExtras.mm:

(+[WKWebViewConfiguration _test_configurationWithTestPlugInClassName:]):
(+[WKWebViewConfiguration _test_configurationWithTestPlugInClassName:configureJSCForTesting:]):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generateContextConfiguration const):

7:13 AM Changeset in webkit [249807] by Keith Rollin
  • 7 edits in trunk/Tools

Fix PDFKit references in TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=201700
<rdar://problem/55279539>

Reviewed by Youenn Fablet.

These references fail in watchOS and tvOS, so remove them on those
platforms.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/PDFSnapshot.mm:
  • TestWebKitAPI/cocoa/TestPDFDocument.h:
  • TestWebKitAPI/cocoa/TestPDFDocument.mm:
  • TestWebKitAPI/config.h:
6:52 AM Changeset in webkit [249806] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit

Fix accidental copies in NetworkLoadChecker.cpp
https://bugs.webkit.org/show_bug.cgi?id=199528

Reviewed by Youenn Fablet.

Coverity noticed that we are copying a ResourceRequest and a ContentExtensionResultOrError
in NetworkLoadChecker::checkRequest by mistake, when the intent was to move them as rvalue
references.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkRequest):

  • NetworkProcess/NetworkLoadChecker.h:
3:59 AM Changeset in webkit [249805] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebKit

Web Inspector: Crashes when intercept response continues with original content
https://bugs.webkit.org/show_bug.cgi?id=201707
<rdar://problem/55261857>

Reviewed by David Kilzer.

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveData):
Copy the data for the callback since the deferral may run it much later.

3:53 AM Changeset in webkit [249804] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Layout Test http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-invalidstaterror.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=199075

Patch by Russell Epstein <Russell Epstein> on 2019-09-12
Reviewed by Youenn Fablet.

Currently, this test includes js-test.js twice, which is causing the test to be flaky.

  • http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-invalidstaterror.html: Removed second instance.
1:47 AM Changeset in webkit [249803] by youenn@apple.com
  • 20 edits in trunk/Source

Use typed identifiers for IDB connection identifiers
https://bugs.webkit.org/show_bug.cgi?id=201682

Reviewed by Chris Dumez.

Source/WebCore:

Migrate from uint64_t to a typed identifier for IDB connection identifiers.
The identifier is reusing the process identifier type.
No change of behavior.

  • Modules/indexeddb/client/IDBConnectionProxy.h:

(WebCore::IDBClient::IDBConnectionProxy::serverConnectionIdentifier const):

  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::identifier const):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::identifier const):

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getAllDatabaseNames):
(WebCore::IDBServer::IDBServer::performGetAllDatabaseNames):
(WebCore::IDBServer::IDBServer::didGetAllDatabaseNames):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/shared/IDBRequestData.cpp:

(WebCore::IDBRequestData::serverConnectionIdentifier const):

  • Modules/indexeddb/shared/IDBRequestData.h:
  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::IDBResourceIdentifier):
(WebCore::IDBResourceIdentifier::emptyValue):
(WebCore::IDBResourceIdentifier::deletedValue):
(WebCore::IDBResourceIdentifier::isHashTableDeletedValue const):
(WebCore::IDBResourceIdentifier::loggingString const):

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:

(WebCore::IDBResourceIdentifier::hash const):
(WebCore::IDBResourceIdentifier::connectionIdentifier const):
(WTF::crossThreadCopy):

  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::identifier const):

  • Modules/indexeddb/shared/InProcessIDBServer.h:

Source/WebKit:

Remove no longer needed conversion from process identifier to idb connection identifier.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::identifier const):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
1:44 AM Changeset in webkit [249802] by cturner@igalia.com
  • 2 edits in trunk/Source/WebKit

[GTK] Allow CacheStore::destroyEngine to destroy default engine for soup.
https://bugs.webkit.org/show_bug.cgi?id=201690

Reviewed by Carlos Garcia Campos.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::destroyEngine): As we do for
NetworkProcess::destroySession, also allow destroying the engine
for the default session for the same reason.

1:18 AM Changeset in webkit [249801] by youenn@apple.com
  • 36 edits in trunk/Source

Use WebProcess processIdentifier to identify Service Worker connections
https://bugs.webkit.org/show_bug.cgi?id=201459

Reviewed by Chris Dumez.

Source/WebCore:

No observable change of behavior.

  • workers/service/ServiceWorkerClient.cpp:

(WebCore::ServiceWorkerClient::postMessage):
Pass sessionID to ease NetworkProcess selection of the client process connection.

  • workers/service/ServiceWorkerTypes.h:

Mark server connection identifier be process identifier based.

  • workers/service/context/SWContextManager.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::Connection::Connection):

  • workers/service/server/SWServer.h:

Let connection identifier be set in constructor instead of generated.

Source/WebCore/PAL:

  • pal/SessionID.h:

(PAL::SessionID::SessionID):

Source/WebKit:

Make WebSWServerConnection be stored in NetworkConnectionToWebProcess.
They are now keyed by session IDs hence why WebSWClientConnection is using the session ID as message connection ID.
Creation no longer requires a sync IPC since the connection is uniquely identified by its session ID and its process ID.
These IDs are stable over network process crash.
Within NetworkProcess, a server connection is managed by a SWServer which is session ID specific.
In that case, the process identifier uniquely identifies the connection.

Move WebSWServerToContextConnection be owned by NetworkConnectionToWebProcess.
Instead of creating it when webprocess is connecting to network process, use a dedicated IPC message.
This is similar to WebSWServerConnection once WebProcess asks to create it.
This will allow existing WebProcess, in cache or running pages, to run service workers as well.
A context connection map is kept in Network Process to reuse context connections since these connections are not sessionID specific.

Migrate from a single boolean to a HashSet to track whether some connections are in the process of being created.
Previously if two requests to create connections were done shortly one after the other on different registrable
domains, the second request would not be processed.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::forEachSWServer):
(WebKit::NetworkProcess::needsServerToContextConnectionForRegistrableDomain const):
(WebKit::NetworkProcess::createServerToContextConnection):
(WebKit::NetworkProcess::postMessageToServiceWorkerClient):
(WebKit::NetworkProcess::registerSWServerConnection):
(WebKit::NetworkProcess::unregisterSWServerConnection):
(WebKit::NetworkProcess::registerSWContextConnection):
(WebKit::NetworkProcess::unregisterSWContextConnection):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::WebSWServerConnection):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::openNetworkProcessConnection):
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::establishServiceWorkerContext):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::WebSWClientConnection):
(WebKit::WebSWClientConnection::~WebSWClientConnection):
(WebKit::WebSWClientConnection::messageSenderConnection const):
(WebKit::WebSWClientConnection::scheduleJobInServer):
(WebKit::WebSWClientConnection::finishFetchingScriptInServer):
(WebKit::WebSWClientConnection::addServiceWorkerRegistrationInServer):
(WebKit::WebSWClientConnection::removeServiceWorkerRegistrationInServer):
(WebKit::WebSWClientConnection::postMessageToServiceWorker):
(WebKit::WebSWClientConnection::registerServiceWorkerClient):
(WebKit::WebSWClientConnection::unregisterServiceWorkerClient):
(WebKit::WebSWClientConnection::didResolveRegistrationPromise):
(WebKit::WebSWClientConnection::matchRegistration):
(WebKit::WebSWClientConnection::runOrDelayTaskForImport):
(WebKit::WebSWClientConnection::whenRegistrationReady):
(WebKit::WebSWClientConnection::getRegistrations):
(WebKit::WebSWClientConnection::startFetch):
(WebKit::WebSWClientConnection::cancelFetch):
(WebKit::WebSWClientConnection::continueDidReceiveFetchResponse):
(WebKit::WebSWClientConnection::connectionToServerLost):
(WebKit::WebSWClientConnection::clear):
(WebKit::WebSWClientConnection::syncTerminateWorker):
(WebKit::WebSWClientConnection::updateThrottleState):
(WebKit::WebSWClientConnection::storeRegistrationsOnDiskForTesting):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::m_userAgent):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
12:50 AM Changeset in webkit [249800] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebInspectorUI

Uncaught Exception: TypeError: null is not an object (evaluating 'selectedTreeElement.representedObject')
https://bugs.webkit.org/show_bug.cgi?id=201716
<rdar://problem/55292615>

Reviewed by Devin Rousso.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
If a breakpoint was removed without a selection in the breakpoint tree outline
then there may be no selected tree element.

Note: See TracTimeline for information about the timeline view.