Timeline



May 1, 2020:

9:57 PM Changeset in webkit [261044] by timothy_horton@apple.com
  • 21 edits
    3 adds in trunk

Books sometimes ends up with blank pages, especially after adjusting font size
https://bugs.webkit.org/show_bug.cgi?id=211265
<rdar://problem/59898144>

Reviewed by Darin Adler.

Source/WebCore:

  • page/FrameView.cpp:

(WebCore::FrameView::setViewExposedRect):
Rename "hasRectChanged" because it only tests if the optional-state of the
rect has changed, not the actual value.

Source/WebKit:

A few problems:

  • There is short time during page creation where a WKWebView created

with _clipsToVisibleRect=YES would not yet have sent its viewExposedRect
to the Web Content process, and if we end up constructing tiles during
that time, we can make way too many, bogging down the process (or crashing).

Fix this by always keeping track of the viewExposedRect (on WebPageProxy,
instead of the somewhat-more-transient DrawingAreaProxy) and sending it
to the Web Content process in the WebPage creation parameters, to entirely
remove this window.

  • Even when the viewExposedRect successfully gets to the Web Content

process, it can still end up wildly wrong: the DrawingArea was tasked with
watching scrolling changes, applying the scroll offset to the viewExposedRect,
and pushing it to FrameView in content coordinates.

It turns out that this was all unnecessary, as we need viewExposedRect
in root view coordinates (same space as visibleContentRect, which we
intersect it with), and we just didn't notice because all clients of
_clipsToVisibleRect: expand the view to its layout size and insert
a scrolling view outside the web view, and so don't use our scrolling.

Avoid this conversion and complexity entirely; I tested Mail and Books
where there is no impact (other than fixing the original bug), and also
a custom test app with a scrollable WKWebView inside a NSScrollView,
which improved significantly.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:

Plumb view exposed rect via WebPage creation parameters.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateViewExposedRect):
Send viewExposedRect changes to WebPageProxy instead of DrawingAreaProxy.

  • UIProcess/DrawingAreaProxy.cpp:

(WebKit::DrawingAreaProxy::didChangeViewExposedRect):
(WebKit::DrawingAreaProxy::viewExposedRectChangedTimerFired):
(WebKit::DrawingAreaProxy::setViewExposedRect): Deleted.

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::viewExposedRect const): Deleted.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::didChangeViewExposedRect):
(WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation const):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
(WebKit::RemoteLayerTreeDrawingAreaProxy::setViewExposedRect): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setViewExposedRect):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::viewExposedRect const):
Maintain viewExposedRect on WebPageProxy instead of DrawingAreaProxy,
so that we can always store it even if we don't have a DrawingAreaProxy yet
(or change DrawingAreaProxies) and can send it in WebPage creation parameters.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::setViewExposedRect):
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
(WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect): Deleted.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
(WebKit::TiledCoreAnimationDrawingArea::setViewExposedRect):
(WebKit::TiledCoreAnimationDrawingArea::scroll): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect): Deleted.
Plumb viewExposedRect directly to FrameView, instead of trying to apply
the root view -> contents mapping ourselves and pushing updates.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ViewExposedRect.mm: Added.

(forceRepaintCallback):
(TEST):
Add a test for the first problem, which would previously attempt to allocate
~90TB of tiles, spinning and exploding, and now happily just allocates a few.

LayoutTests:

  • tiled-drawing/tile-coverage-scrolled-view-exposed-rect-expected.txt: Added.
  • tiled-drawing/tile-coverage-scrolled-view-exposed-rect.html: Added.

Add a test ensuring that we create the correct tiles with a
scrolled web view that also uses clipsToVisibleRect=YES.

9:21 PM Changeset in webkit [261043] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] Gardening some failures.

Unreviewed test gardening.

7:26 PM Changeset in webkit [261042] by Wenson Hsieh
  • 4 edits in trunk

Text manipulation should observe the value attribute of some input elements
https://bugs.webkit.org/show_bug.cgi?id=211307
<rdar://problem/61568528>

Reviewed by Darin Adler.

Source/WebCore:

Teach TextManipulationController to detect the value attribute in input elements of type "button" and
"submit". To do this, we plumb the element through to isAttributeForTextManipulation and check isTextButton()
if "value" attribute is being considered.

Test: TextManipulation.StartTextManipulationExtractsValuesFromButtonInputs

  • editing/TextManipulationController.cpp:

(WebCore::isAttributeForTextManipulation):
(WebCore::TextManipulationController::observeParagraphs):

Tools:

Add a new API test that covers <input type="submit"> and <input type="button">.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
5:21 PM Changeset in webkit [261041] by sbarati@apple.com
  • 7 edits in trunk/Source

Have a thread local cache for the Wasm LLInt bytecode buffer
https://bugs.webkit.org/show_bug.cgi?id=211317

Reviewed by Filip Pizlo and Mark Lam.

Source/JavaScriptCore:

One of the main things slowing down Wasm compile times is the banging
on bmalloc's global heap lock. This patch makes it so for the bytecode
instruction buffer, we keep a thread local cache with latest capacity
the thread needed to compile. This makes it so that in the average case,
we only do one malloc at the end of a compile to memcpy the final result.

We clear these thread local caches when the WasmWorklist's automatic threads
underlying machine thread is destroyed.

This is a 15% speedup in zen garden compile times on a 16-core Mac Pro.
This is a 4-5% speedup in zen garden compile times on a 6-core MBP.

  • bytecode/InstructionStream.h:

(JSC::InstructionStreamWriter::setInstructionBuffer):
(JSC::InstructionStreamWriter::finalize):

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::threadSpecificBuffer):
(JSC::Wasm::clearLLIntThreadSpecificCache):
(JSC::Wasm::LLIntGenerator::LLIntGenerator):
(JSC::Wasm::LLIntGenerator::finalize):

  • wasm/WasmLLIntGenerator.h:
  • wasm/WasmWorklist.cpp:

Source/WTF:

  • wtf/Vector.h:

(WTF::Vector::sizeInBytes const):

4:44 PM Changeset in webkit [261040] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[IPC hardening] Refactor createMessageDecoder() for clarity
<https://webkit.org/b/211322>

Reviewed by Darin Adler.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::createMessageDecoder):

  • Rename numDescriptors to numberOfPortDescriptors to match variable name in sendOutgoingMessage().
  • Add new numberOfAttachments variable to make it clear that one port descriptor is left for an out-of-line message body.
  • Add FIXME about another issue.
4:41 PM Changeset in webkit [261039] by pvollan@apple.com
  • 6 edits in trunk

[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=211324

Reviewed by Don Olmstead.

.:

Use correct target namespace.

  • Source/cmake/target/WebCore.cmake:

Source/JavaScriptCore:

Check if target WTF_CopyHeaders exists before using it.

  • CMakeLists.txt:

Source/WebKitLegacy:

Remove unknown object target and fix link errors.

  • PlatformWin.cmake:
4:38 PM Changeset in webkit [261038] by commit-queue@webkit.org
  • 20 edits in trunk

Add SPI to move localStorage to a different domain
https://bugs.webkit.org/show_bug.cgi?id=209260
<rdar://problem/60285683>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-01
Reviewed by Brady Eidson.

Source/WebKit:

Covered by an API test.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::renameDomainInWebsiteData):
(WebKit::NetworkProcess::getLocalStorageOriginDetails):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/WebStorage/LocalStorageNamespace.cpp:

(WebKit::LocalStorageNamespace::renameDomain):

  • NetworkProcess/WebStorage/LocalStorageNamespace.h:
  • NetworkProcess/WebStorage/StorageArea.cpp:

(WebKit::StorageArea::close):

  • NetworkProcess/WebStorage/StorageArea.h:
  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::renameDomain):

  • NetworkProcess/WebStorage/StorageManager.h:
  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::renameDomain):

  • NetworkProcess/WebStorage/StorageManagerSet.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _renameDomain:to:forDataOfTypes:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::renameDomainInWebsiteData):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::renameDomainInWebsiteData):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

4:12 PM Changeset in webkit [261037] by Wenson Hsieh
  • 3 edits
    1 add in trunk/Tools

Add a test for webkit.org/b/211311
https://bugs.webkit.org/show_bug.cgi?id=211319
<rdar://problem/62663459>

Reviewed by Tim Horton.

Exercise the crash fixed in r261017 with a new API test that loads a page and then uses
-[WebHTMLView attributedSubstringFromRange:] to try and grab the contents of the page as an attributed string.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/AttributedString.mm:

(TestWebKitAPI::AttributedStringTest_NewlineAtEndOfDocument::didLoadURL):
(TestWebKitAPI::AttributedStringTest_NewlineAtEndOfDocument::url const):
(TestWebKitAPI::AttributedStringTest_NewlineAtEndOfDocument::runSyncTest):

  • TestWebKitAPI/Tests/mac/attributedStringNewlineAtEndOfDocument.html: Added.
4:07 PM Changeset in webkit [261036] by Chris Dumez
  • 11 edits in trunk

Regression(r259036) Unable to post comments on Jira
https://bugs.webkit.org/show_bug.cgi?id=211122
<rdar://problem/62561879>

Unreviewed, revert r259036 as the new behavior does not match other browsers
and broke some Jira instances.

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::populateFrameLoadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::addHTTPOriginIfNeeded):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:
  • loader/NavigationScheduler.cpp:
  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::updateReferrerAndOriginHeaders):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::doesRequestNeedHTTPOriginHeader): Deleted.

  • platform/network/ResourceRequestBase.h:
4:00 PM Changeset in webkit [261035] by Russell Epstein
  • 1 copy in tags/Safari-609.2.9.0.5

Tag Safari-609.2.9.0.5.

3:57 PM Changeset in webkit [261034] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

[iOS] ProcessThrottler fails to re-take ProcessAssertion if the previous one was invalidated
https://bugs.webkit.org/show_bug.cgi?id=211297
<rdar://problem/62542463>

Reviewed by Jer Noble.

Our ProcessAssertions may get invalidated upon backgrounding of the app. When the app becomes
foreground and the ProcessThrottler tries to take a Foreground assertion as a result, it would
incorrectly think it already had such assertion and not do anything, even though the previous
one is no longer valid. As a result, the child processes would stay suspended even though the
app was foregrounded.

To address the issue, add a isValid() method to ProcessAssertion() and check it in
ProcessThrottler::setAssertionType() to determine if we need to re-take an assertion or not.
We also invalidate all pending ProcessThrottler activities upon ProcessAssertion invalidation
for good measure. This way, the holders of these activities will be able to rely on
Activity::isValid() to determine if they need to re-take their activities or not.

  • Platform/spi/ios/AssertionServicesSPI.h:
  • Platform/spi/ios/RunningBoardServicesSPI.h:
  • UIProcess/ProcessAssertion.cpp:

(WebKit::ProcessAssertion::isValid const):

  • UIProcess/ProcessAssertion.h:

(WebKit::ProcessAssertion::validity const): Deleted.

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::setAssertionType):
(WebKit::ProcessThrottler::assertionWasInvalidated):

  • UIProcess/ProcessThrottler.h:
  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::processAssertionWasInvalidated):
(WebKit::ProcessAssertion::isValid const):
(WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount):

3:55 PM Changeset in webkit [261033] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r261015.

Seems to have broken clean builds

Reverted changeset:

"[iOS] Unable to take RunningBoard process assertions in the
iOS Simulator"
https://bugs.webkit.org/show_bug.cgi?id=211254
https://trac.webkit.org/changeset/261015

3:54 PM Changeset in webkit [261032] by Jack Lee
  • 1 edit in trunk/Source/WebCore/ChangeLog

Unreviewed, amend change log entry for r260831.

  • ChangeLog:
3:30 PM Changeset in webkit [261031] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, another build fix after r260962.

  • page/Page.h:
3:28 PM Changeset in webkit [261030] by Alan Coon
  • 1 copy in tags/Safari-610.1.11.6

Tag Safari-610.1.11.6.

3:16 PM Changeset in webkit [261029] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Avoid unnecessary copying in AnimationTimeline and other clean ups
https://bugs.webkit.org/show_bug.cgi?id=211309

Reviewed by Simon Fraser.

Return animations by const lvalue ref to avoid copying the Vectors.
Default the constructor and destructor implementations. Remove an
unnessary argument name from animationsForElement() and re-arrange
decls to make class definition more idiomatic.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::AnimationTimeline): Deleted.
(WebCore::AnimationTimeline::~AnimationTimeline): Deleted.

  • animation/AnimationTimeline.h:

(WebCore::AnimationTimeline::relevantAnimations const):
(WebCore::AnimationTimeline::allAnimations const):

3:16 PM Changeset in webkit [261028] by dbates@webkit.org
  • 9 edits in trunk/Source/WebCore

Change HitTestResult::NodeSet from set of RefPtrs to set of Refs
https://bugs.webkit.org/show_bug.cgi?id=211306

Reviewed by Simon Fraser.

HitTestResult::listBasedTestResult() never returns a set with nullptrs in it.
So, change the set declaration from ListHashSet<RefPtr<Node>> to ListHashSet<Ref<Node>>.
This way people are not tempted to unnecessarily null check the nodes in the set.

As I made this change to TreeScope::elementsFromPoint() I noticed that retargetToScope(),
which is called by it, returned a Node&. So, I changed it to return a Ref<Node>. That
required me to fix up caretRangeFromPoint(), which lead me to fix up nodeFromPoint() as well.

  • dom/Document.cpp:

(WebCore::Document::caretRangeFromPoint):

  • dom/EventPath.cpp:

(WebCore::RelatedNodeRetargeter::checkConsistency):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::retargetToScope const):
(WebCore::TreeScope::nodeFromPoint):
(WebCore::TreeScope::elementFromPoint):
(WebCore::TreeScope::elementsFromPoint):

  • dom/TreeScope.h:
  • page/Page.cpp:

(WebCore::Page::editableElementsInRect const):

  • rendering/HitTestResult.cpp:

(WebCore::appendToNodeSet):
(WebCore::HitTestResult::HitTestResult):
(WebCore::HitTestResult::operator=):
(WebCore::HitTestResult::addNodeToListBasedTestResultCommon):
(WebCore::HitTestResult::append):

  • rendering/HitTestResult.h:
  • testing/Internals.cpp:

(WebCore::Internals::nodesFromRect const):

3:08 PM Changeset in webkit [261027] by Alan Coon
  • 8 edits in branches/safari-610.1.11-branch/Source

Versioning.

3:03 PM Changeset in webkit [261026] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Fix stress/big-int-negate-jit.js
https://bugs.webkit.org/show_bug.cgi?id=211321

Reviewed by Saam Barati.

This test is assuming that 100000 iteration of 2 negateBigInt calls makes negateBigInt DFG-compiled.
But this is wrong if BigInt negation is fast enough. We made BigInt faster and now this test starts
failing because running this iteration finishes earlier than DFG compilation finishes. We should use useConcurrentJIT
to ensure this status.

  • stress/big-int-negate-jit.js:
3:00 PM Changeset in webkit [261025] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix after r260962.

  • page/Page.cpp:

(WebCore::Page::setCORSDisablingPatterns):

  • page/Page.h:

(WebCore::Page::setCORSDisablingPatterns): Deleted.

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

[IPC hardening] createMessageDecoder() needs a validity check
<https://webkit.org/b/211260>
<rdar://problem/61914087>

Reviewed by Darin Adler.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::createMessageDecoder):

  • Add validity check and early return for numDescriptors.
2:52 PM Changeset in webkit [261023] by commit-queue@webkit.org
  • 178 edits in trunk

[WebGL2] Refactor texImage2D and texSubImage2D taking ImageBitmap, ImageData, Image, ArrayBufferView
https://bugs.webkit.org/show_bug.cgi?id=210766

Patch by Kenneth Russell <kbr@chromium.org> on 2020-05-01
Reviewed by Dean Jackson.

Source/WebCore:

Refactor the texture upload paths taking DOM sources and
ArrayBuffers so that texImage/texSubImage and 2D/3D textures are
handled with the same entry point. Hook up WebGL 2.0 pixel unpack
parameters for selecting sub-rectangles during texture uploads.
Refactor context initialization to support WebGL 2.0-specific code
paths.

Remove duplicate code validating the type of the ArrayBufferView
passed to readPixels that was added in the patch for Bug 209515,
and validation code subsumed by ANGLE.

With this patch, dozens more texture-related WebGL 2.0 conformance
tests are passing completely, including all of those under the
directories:

webgl/2.0.0/conformance2/textures/

canvas_sub_rectangle/
image_data/

The svg_image/ tests in this directory demonstrate browser
inconsistencies in SVG handling, and are temporarily skipped.
These will be investigated in Bug 211220.

Other conformance tests progress or change results, which is
expected until WebGL2RenderingContext is fully implemented.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::create):
(WebCore::WebGL2RenderingContext::WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::initializeNewContext):
(WebCore::WebGL2RenderingContext::resetUnpackParameters):
(WebCore::WebGL2RenderingContext::restoreUnpackParameters):
(WebCore::WebGL2RenderingContext::initializeShaderExtensions):
(WebCore::WebGL2RenderingContext::getTextureSourceSubRectangle):
(WebCore::WebGL2RenderingContext::pixelStorei):
(WebCore::WebGL2RenderingContext::texStorage2D):
(WebCore::WebGL2RenderingContext::texImage2D):
(WebCore::WebGL2RenderingContext::texImage3D):
(WebCore::WebGL2RenderingContext::texSubImage2D):
(WebCore::WebGL2RenderingContext::texSubImage3D):
(WebCore::WebGL2RenderingContext::initializeTransformFeedbackBufferCache): Deleted.
(WebCore::WebGL2RenderingContext::initializeSamplerCache): Deleted.
(WebCore::WebGL2RenderingContext::sliceTypedArrayBufferView): Deleted.

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::create):
(WebCore::WebGLRenderingContext::WebGLRenderingContext):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::ScopedUnpackParametersResetRestore::ScopedUnpackParametersResetRestore):
(WebCore::ScopedUnpackParametersResetRestore::~ScopedUnpackParametersResetRestore):
(WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::resetUnpackParameters):
(WebCore::WebGLRenderingContextBase::restoreUnpackParameters):
(WebCore::WebGLRenderingContextBase::compressedTexImage2D):
(WebCore::WebGLRenderingContextBase::compressedTexSubImage2D):
(WebCore::WebGLRenderingContextBase::validateSettableTexInternalFormat):
(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::generateMipmap):
(WebCore::WebGLRenderingContextBase::getTexParameter):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::sentinelEmptyRect):
(WebCore::WebGLRenderingContextBase::safeGetImageSize):
(WebCore::WebGLRenderingContextBase::getImageDataSize):
(WebCore::WebGLRenderingContextBase::getTexImageSourceSize):
(WebCore::WebGLRenderingContextBase::texImageSourceHelper):
(WebCore::WebGLRenderingContextBase::texImageArrayBufferViewHelper):
(WebCore::WebGLRenderingContextBase::texImageImpl):
(WebCore::WebGLRenderingContextBase::texImage2DBase):
(WebCore::WebGLRenderingContextBase::texSubImage2DBase):
(WebCore::WebGLRenderingContextBase::getTexImageFunctionName):
(WebCore::WebGLRenderingContextBase::validateTexFunc):
(WebCore::WebGLRenderingContextBase::texImage2D):
(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::validateArrayBufferType):
(WebCore::WebGLRenderingContextBase::validateTexFuncData):
(WebCore::WebGLRenderingContextBase::validateTexFuncParameters):
(WebCore::WebGLRenderingContextBase::addExtensionSupportedFormatsAndTypes):
(WebCore::WebGLRenderingContextBase::addExtensionSupportedFormatsAndTypesWebGL2):
(WebCore::WebGLRenderingContextBase::validateTexImageSourceFormatAndType):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::drawImageIntoBuffer):
(WebCore::WebGLRenderingContextBase::texParameter):
(WebCore::WebGLRenderingContextBase::getUnpackPixelStoreParams const):
(WebCore::WebGLRenderingContextBase::validateTextureBinding):
(WebCore::WebGLRenderingContextBase::validateTexImageBinding):
(WebCore::WebGLRenderingContextBase::validateTexture2DBinding):
(WebCore::WebGLRenderingContextBase::validateSize):
(WebCore::WebGLRenderingContextBase::validateImageBitmap):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::texImageSource2D): Deleted.
(WebCore::WebGLRenderingContextBase::texImage2DImpl): Deleted.
(WebCore::WebGLRenderingContextBase::texSubImage2DImpl): Deleted.

  • html/canvas/WebGLRenderingContextBase.h:

(WebCore::WebGLRenderingContextBase::getTextureSourceSize):
(WebCore::WebGLRenderingContextBase::validateTexImageSubRectangle):

  • platform/graphics/IntRect.cpp:

(WebCore::IntRect::isValid const):

  • platform/graphics/IntRect.h:

LayoutTests:

Rebaseline WebGL layout tests affected by this patch.

webgl/2.0.0/conformance2/textures/

canvas_sub_rectangle/
image_data/

are now passing completely. Some of the individual tests in these
directories were skipped in earlier patches and will be re-enabled
in a subsequent patch.

Skip webgl/2.0.0/conformance2/textures/svg_image due to possible
bugs in the tests. These failures will be investigated in Bug
211220.

Fix bug in fast/canvas/webgl/gl-enum-tests.html where
INVALID_OPERATION rather than INVALID_ENUM is possible.

Other conformance tests progress or change results, which is
expected until WebGL2RenderingContext is fully implemented.

  • TestExpectations:
  • fast/canvas/webgl/gl-enum-tests-expected.txt:
  • fast/canvas/webgl/gl-enum-tests.html:
  • webgl/2.0.0/conformance2/misc/views-with-offsets-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb16f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb32f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgb9_e5-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/gl-get-tex-parameter-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-image-with-different-data-source-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-unpack-params-expected.txt:
2:50 PM Changeset in webkit [261022] by Russell Epstein
  • 1 copy in tags/Safari-610.1.11.5

Tag Safari-610.1.11.5.

2:43 PM Changeset in webkit [261021] by Russell Epstein
  • 8 edits in branches/safari-610.1.11-branch/Source

Versioning.

2:09 PM Changeset in webkit [261020] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

Web Inspector: Browser: crash when handling disable
https://bugs.webkit.org/show_bug.cgi?id=211251

Reviewed by Daniel Bates.

  • UIProcess/Inspector/Agents/InspectorBrowserAgent.cpp:

(WebKit::InspectorBrowserAgent::disable):
If the inspected page crashed, we won't have a WebInspectorProxy anymore.

1:53 PM Changeset in webkit [261019] by Jack Lee
  • 3 edits
    2 adds in trunk

Source/WebCore:
Nullptr crash in CompositeEditCommand::cloneParagraphUnderNewElement when indent
and align a paragraph.
https://bugs.webkit.org/show_bug.cgi?id=211273
<rdar://problem/61885958>

Reviewed by Geoffrey Garen.

A load event can fire when we clone and append a paragraph. Check if the elements
are removed in the event and bail out.

Test: fast/editing/indent-then-justifyFull-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):

LayoutTests:
Nullptr crash in CompositeEditCommand::cloneParagraphUnderNewElement when indent
and align a paragraph.
https://bugs.webkit.org/show_bug.cgi?id=211273
<rdar://problem/61885958>

Reviewed by Geoffrey Garen.

Added a regression test for the crash.

  • fast/editing/indent-then-justifyFull-crash-expected.txt: Added.
  • fast/editing/indent-then-justifyFull-crash.html: Added.
1:50 PM Changeset in webkit [261018] by Jack Lee
  • 8 edits in trunk

Nullptr crash in EditCommand::EditCommand via CompositeEditCommand::removeNode
https://bugs.webkit.org/show_bug.cgi?id=207600
Source/WebCore:

<rdar://problem/56969450>

Reviewed by Geoffrey Garen.

Second part of the fix. Remove m_frame in FrameSelection so it will not be
inadvertently used and cause this crash.

No new tests, covered by existing test.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::rootViewRectForRange const):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::modify):
(WebCore::FrameSelection::selectFrameElementInParentIfFullySelected):
(WebCore::FrameSelection::setFocusedElementIfNeeded):
(WebCore::FrameSelection::shouldDeleteSelection const):
(WebCore::FrameSelection::shouldDeleteSelection):
(WebCore::FrameSelection::revealSelection):
(WebCore::FrameSelection:: shouldChangeSelection):
(WebCore::FrameSelection::shouldChangeSelection const):

  • editing/FrameSelection.h:
  • editing/atk/FrameSelectionAtk.cpp:

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

  • editing/mac/FrameSelectionMac.mm:

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):

LayoutTests:

Reviewed by Geoffrey Garen.

Reduce run time for this test case.

  • editing/inserting/insert-list-then-edit-command-crash.html:
1:46 PM Changeset in webkit [261017] by Darin Adler
  • 2 edits in trunk/Source/WebCore

REGRESSION (r260739): Crash when pasting into Mail
https://bugs.webkit.org/show_bug.cgi?id=211311

Reviewed by Wenson Hsieh.

Speculative fix. Would be much better to create a test case demonstrating it's correct.

  • editing/cocoa/HTMLConverter.mm:

(WebCore::editingAttributedString): Use container node when TextIterator::node
returns null.

1:30 PM Changeset in webkit [261016] by pvollan@apple.com
  • 8 edits in trunk

[iOS] Every running WebContent process should be granted access to frontboard services when Accessibility is enabled
https://bugs.webkit.org/show_bug.cgi?id=211238

Reviewed by Daniel Bates.

Source/WebKit:

Currently, every WebContent process is granted access to frontboard services if Accessibility is enabled at the
time of startup. However, WebContent processes running at the time when Accessibility is enabled are not granted
access, which is a bug.

API test: WebKit.AccessibilityHasFrontboardServiceAccess

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockAccessibilityServerIfNeeded):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::unblockServicesRequiredByAccessibility):
(WebKit::WebProcess::unblockAccessibilityServer): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebKit/EnableAccessibility.mm:

(TEST):

1:09 PM Changeset in webkit [261015] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[iOS] Unable to take RunningBoard process assertions in the iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=211254
<rdar://problem/62674074>

Reviewed by Tim Horton.

  • Configurations/BaseXPCService.xcconfig:

Use this directive to add our entitlements:

CODE_SIGN_ENTITLEMENTS = $(WK_PROCESSED_XCENT_FILE);

instead of using:

OTHER_CODE_SIGN_FLAGS = --entitlements $(WK_PROCESSED_XCENT_FILE);

This is important because entitlements are added differently for iOS Simulator builds,
so that they only apply inside the simulator (and not for the host system). If we use
CODE_SIGN_ENTITLEMENTS, then XCode does the right thing on all platforms.

  • Scripts/process-entitlements.sh:

Add com.apple.runningboard.assertions.webkit entitlement to iOS Simulator builds.

12:50 PM Changeset in webkit [261014] by don.olmstead@sony.com
  • 29 edits in trunk

[GTK] Add additional exports to support hidden visibility
https://bugs.webkit.org/show_bug.cgi?id=211246

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

  • API/glib/JSCContextPrivate.h:
  • API/glib/JSCValuePrivate.h:
  • inspector/remote/glib/RemoteInspectorServer.h:
  • inspector/remote/glib/RemoteInspectorUtils.h:

Source/WebCore:

  • platform/ContentType.h:
  • platform/graphics/cairo/RefPtrCairo.h:
  • platform/gtk/GtkUtilities.h:
  • platform/network/soup/CertificateInfo.h:
  • platform/network/soup/SoupNetworkSession.h:

Source/WebKit:

  • WebProcess/InjectedBundle/API/glib/WebKitWebExtensionPrivate.h:

Source/WTF:

  • wtf/ASCIICType.cpp:
  • wtf/DateMath.h:
  • wtf/FileSystem.h:
  • wtf/PrintStream.h:
  • wtf/RunLoop.h:
  • wtf/glib/GLibUtilities.h:
  • wtf/glib/GSocketMonitor.h:
  • wtf/glib/SocketConnection.h:

(WTF::SocketConnection::isClosed const):

  • wtf/linux/CurrentProcessMemoryStatus.h:

Tools:

  • DumpRenderTree/TestNetscapePlugIn/main.cpp:
  • TestWebKitAPI/InjectedBundleMain.cpp:
  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(webkit_web_extension_initialize_with_user_data):

  • TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp:

(webkit_web_extension_initialize):

  • WebKitTestRunner/InjectedBundle/InjectedBundleMain.cpp:
12:47 PM Changeset in webkit [261013] by ysuzuki@apple.com
  • 88 edits in trunk/Source

Introduce MainThreadNeverDestroyed / MainThreadLazyNeverDestroyed
https://bugs.webkit.org/show_bug.cgi?id=211264

Reviewed by Mark Lam.

Source/WebCore:

No behavior change. Adding assertions additionally.

  • Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp:

(WebCore::stringForPlaybackTargetAvailability):

  • Modules/encryptedmedia/InitDataRegistry.cpp:

(WebCore::InitDataRegistry::cencName):
(WebCore::InitDataRegistry::keyidsName):
(WebCore::InitDataRegistry::webmName):

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::automaticKeyword):
(WebCore::MediaControlsHost::forcedOnlyKeyword):
(WebCore::alwaysOnKeyword):
(WebCore::manualKeyword):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::kind const):
(WebCore::MediaStreamTrack::contentHint const):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::blobKeyword):
(WebCore::arraybufferKeyword):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::liveRegionRelevant const):

  • dom/ConstantPropertyMap.cpp:

(WebCore::ConstantPropertyMap::nameForProperty const):

  • dom/Document.cpp:

(WebCore::Document::validateCustomElementName):

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::isValidCSSContentType):

  • dom/MutationRecord.cpp:
  • dom/make_names.pl:

(printNamesHeaderFile):
(printNamesCppFile):

  • html/Autocapitalize.cpp:

(WebCore::stringForAutocapitalizeType):

  • html/Autofill.cpp:

(WebCore::isContactToken):
(WebCore::AutofillData::createFromHTMLFormControlElement):

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::fallbackValue const):

  • html/BaseChooserOnlyDateAndTimeInputType.cpp:

(WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::createShadowSubtree):

  • html/FileInputType.cpp:

(WebCore::UploadButtonElement::UploadButtonElement):

  • html/FormController.cpp:

(WebCore::FormKeyGenerator::formKey):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parseAttribute):
(WebCore::HTMLAnchorElement::isSystemPreviewLink const):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::formControlType const):

  • html/HTMLDetailsElement.cpp:

(WebCore::summarySlotName):

  • html/HTMLElement.cpp:

(WebCore::toValidDirValue):
(WebCore::trueName):
(WebCore::falseName):
(WebCore::plaintextOnlyName):
(WebCore::HTMLElement::setAutocorrect):

  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::formControlType const):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::autocomplete const):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::loadingForBindings const):

  • html/HTMLKeygenElement.cpp:

(WebCore::HTMLKeygenElement::formControlType const):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::formControlType const):

  • html/HTMLOutputElement.cpp:

(WebCore::HTMLOutputElement::formControlType const):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::partOfSnapshotOverlay const):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::formControlType const):

  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::scope const):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::formControlType const):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::directionString):
(WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability):

  • html/InputMode.cpp:

(WebCore::InputModeNames::none):
(WebCore::InputModeNames::text):
(WebCore::InputModeNames::tel):
(WebCore::InputModeNames::url):
(WebCore::InputModeNames::email):
(WebCore::InputModeNames::numeric):
(WebCore::InputModeNames::decimal):
(WebCore::InputModeNames::search):

  • html/InputTypeNames.cpp:

(WebCore::InputTypeNames::button):
(WebCore::InputTypeNames::checkbox):
(WebCore::InputTypeNames::color):
(WebCore::InputTypeNames::date):
(WebCore::InputTypeNames::datetime):
(WebCore::InputTypeNames::datetimelocal):
(WebCore::InputTypeNames::email):
(WebCore::InputTypeNames::file):
(WebCore::InputTypeNames::hidden):
(WebCore::InputTypeNames::image):
(WebCore::InputTypeNames::month):
(WebCore::InputTypeNames::number):
(WebCore::InputTypeNames::password):
(WebCore::InputTypeNames::radio):
(WebCore::InputTypeNames::range):
(WebCore::InputTypeNames::reset):
(WebCore::InputTypeNames::search):
(WebCore::InputTypeNames::submit):
(WebCore::InputTypeNames::telephone):
(WebCore::InputTypeNames::text):
(WebCore::InputTypeNames::time):
(WebCore::InputTypeNames::url):
(WebCore::InputTypeNames::week):

  • html/MediaController.cpp:

(WebCore::playbackStateWaiting):
(WebCore::playbackStatePlaying):
(WebCore::playbackStateEnded):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createShadowSubtree):

  • html/SearchInputType.cpp:

(WebCore::updateResultButtonPseudoType):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::createDataListDropdownIndicator):
(WebCore::TextFieldInputType::createContainer):
(WebCore::TextFieldInputType::createAutoFillButton):

  • html/ValidationMessage.cpp:

(WebCore::ValidationMessage::buildBubbleTree):

  • html/shadow/DetailsMarkerControl.cpp:

(WebCore::DetailsMarkerControl::DetailsMarkerControl):

  • html/shadow/MediaControlTextTrackContainerElement.cpp:

(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):

  • html/shadow/ProgressShadowElement.cpp:

(WebCore::ProgressInnerElement::create):
(WebCore::ProgressBarElement::create):
(WebCore::ProgressValueElement::create):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::resolveCustomStyle):

  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::SpinButtonElement):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlPlaceholderElement::TextControlPlaceholderElement):
(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):

  • html/shadow/YouTubeEmbedShadowElement.cpp:

(WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):

  • html/shadow/mac/ImageControlsButtonElementMac.cpp:

(WebCore::ImageControlsButtonElementMac::tryCreate):

  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElement::tryCreate):

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::alternativeKeyword):
(WebCore::AudioTrack::descriptionKeyword):
(WebCore::AudioTrack::mainKeyword):
(WebCore::AudioTrack::mainDescKeyword):
(WebCore::AudioTrack::translationKeyword):
(WebCore::AudioTrack::commentaryKeyword):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::subtitlesKeyword):
(WebCore::captionsKeyword):
(WebCore::descriptionsKeyword):
(WebCore::chaptersKeyword):
(WebCore::metadataKeyword):
(WebCore::forcedKeyword):

  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::cueShadowPseudoId):
(WebCore::TextTrackCue::cueBoxShadowPseudoId):
(WebCore::TextTrackCue::cueBackdropShadowPseudoId):
(WebCore::TextTrackCue::rebuildDisplayTree):

  • html/track/VTTRegion.cpp:

(WebCore::upKeyword):
(WebCore::VTTRegion::textTrackCueContainerScrollingClass):
(WebCore::VTTRegion::textTrackCueContainerShadowPseudoId):
(WebCore::VTTRegion::textTrackRegionShadowPseudoId):

  • html/track/VideoTrack.cpp:

(WebCore::VideoTrack::alternativeKeyword):
(WebCore::VideoTrack::captionsKeyword):
(WebCore::VideoTrack::mainKeyword):
(WebCore::VideoTrack::signKeyword):
(WebCore::VideoTrack::subtitlesKeyword):
(WebCore::VideoTrack::commentaryKeyword):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::initiatorName const):

  • page/EventHandler.cpp:

(WebCore::focusDirectionForKey):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldBypassBackForwardCache const):

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::updateKeyframeAnimations):

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::eventNameAll):

  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(WebCore::VideoFullscreenModelVideoElement::eventNameAll):

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::alternateFamilyName):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::applicationOctetStream):
(WebCore::textPlain):

  • platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:

(WebCore::CDMPrivateFairPlayStreaming::sinfName):
(WebCore::CDMPrivateFairPlayStreaming::skdName):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::metadataType):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::similarFont):
(WebCore::FontCache::platformAlternateFamilyName):

  • platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:

(WebCore::SystemFontDatabaseCoreText::systemFontParameters):

  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::effectName):

  • platform/graphics/filters/SourceGraphic.cpp:

(WebCore::SourceGraphic::effectName):

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::getCustomFallbackFont):

  • platform/graphics/texmap/TextureMapperShaderProgram.h:
  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::lastResortFallbackFont):
(WebCore::FontCache::platformAlternateFamilyName):

  • platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::extractHTTPStatusText):

  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::checkLinesForTextOverflow):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::hyphenString const):
(WebCore::RenderStyle::textEmphasisMarkString const):

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::rotateMode const):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::setCalcMode):
(WebCore::SVGAnimationElement::setAttributeType):
(WebCore::SVGAnimationElement::isAdditive const):
(WebCore::SVGAnimationElement::isAccumulated const):
(WebCore::inheritsFromProperty):

  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::type const):
(WebCore::SVGStyleElement::media const):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::parseClockValue):
(WebCore::SVGSMILElement::restart const):
(WebCore::SVGSMILElement::fill const):
(WebCore::SVGSMILElement::repeatCount const):

  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.cpp:

(WebCore::SVGAnimationColorFunction::colorFromString):

  • svg/properties/SVGPropertyAnimator.h:

(WebCore::SVGPropertyAnimator::adjustForInheritance const):

Source/WTF:

Since AtomString has thread-affinity, static NeverDestroyed<const AtomString> is basically only safe for the main-thread use.
We should ensure that this is only used in the main-thread. To do that, this patch introduces MainThreadNeverDestroyed and
MainThreadLazyNeverDestroyed. They are NeverDestroyed and LazyNeverDestroyed + main-thread assertions.

  • wtf/Forward.h:
  • wtf/NeverDestroyed.h:

(WTF::AnyThreadsAccessTraits::assertAccess):
(WTF::MainThreadAccessTraits::assertAccess):
(WTF::NeverDestroyed::NeverDestroyed):
(WTF::NeverDestroyed::storagePointer const):
(WTF::LazyNeverDestroyed::construct):
(WTF::LazyNeverDestroyed::storagePointer const):
(WTF::makeNeverDestroyed):

  • wtf/text/AtomString.cpp:
  • wtf/text/AtomString.h:
12:42 PM Changeset in webkit [261012] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

REGRESSION (r260243): [ Mac WK1 ] fast/media/mq-inverted-colors-live-update-for-listener.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211154
<rdar://problem/62555128>

Reviewed by Darin Adler.

Make MediaQueryList an ActiveDOMObject and make sure its JS wrapper stays alive as long as
it may fire change events and there is at least 1 change event listener.

No new tests, already covered by existing tests.

  • css/MediaQueryList.cpp:

(WebCore::MediaQueryList::MediaQueryList):
(WebCore::MediaQueryList::create):
(WebCore::MediaQueryList::~MediaQueryList):
(WebCore::MediaQueryList::detachFromMatcher):
(WebCore::MediaQueryList::evaluate):
(WebCore::MediaQueryList::setMatches):
(WebCore::MediaQueryList::matches):
(WebCore::MediaQueryList::eventListenersDidChange):
(WebCore::MediaQueryList::activeDOMObjectName const):
(WebCore::MediaQueryList::virtualHasPendingActivity const):

  • css/MediaQueryList.h:
  • css/MediaQueryList.idl:
  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::documentDestroyed):

12:20 PM Changeset in webkit [261011] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

REGRESSION (r260990): 8 test262 unicode tests failing
https://bugs.webkit.org/show_bug.cgi?id=211298

Reviewed by Saam Barati.

These unicode identifier tests are marked as PASS in r260990, but they are failing.
Update test262/expectations.yaml by running test262-runner --release --save.

  • test262/expectations.yaml:
12:12 PM Changeset in webkit [261010] by Pablo Saavedra
  • 2 edits in trunk/JSTests

Skip on ARM and MIPS stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js added after r260990
https://bugs.webkit.org/show_bug.cgi?id=211304

Unreviewed Gardening.

  • stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
12:09 PM Changeset in webkit [261009] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Update message filtering rules in the WebContent process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=211188
<rdar://problem/60922910>

Reviewed by Brent Fulgham.

Based on telemetry and local testing, update the message filtering rules in the WebContent process' sandbox on iOS.
Messages that have not been observed being in use, should be denied.

No new tests, covered by existing tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):

11:29 AM Changeset in webkit [261008] by Alan Coon
  • 8 edits in branches/safari-609.2.9.0-branch/Source

Versioning.

10:48 AM Changeset in webkit [261007] by don.olmstead@sony.com
  • 17 edits in trunk

Use export macros on all platforms
https://bugs.webkit.org/show_bug.cgi?id=211293

Reviewed by Michael Catanzaro.

.:

Remove explicit setting of USE_EXPORT_MACROS from all ports.

Ports that use declspec require no changes. Ports with visibility attributes
need to set that as the default in the CMake. This is already done on the
PlayStation port.

The export macros can also be overridden for different build variants if
required. For example production builds may want to override them.

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsPlayStation.cmake:

Source/bmalloc:

Always use export macros on all platforms. Remove BUSE_EXPORT_MACROS and always
define macros based on the platform. Allow overriding of BEXPORT if desired
otherwise use the defaults.

  • bmalloc/BExport.h:
  • bmalloc/BPlatform.h:

Source/JavaScriptCore:

Allow overriding of JS_EXPORT_PRIVATE if desired otherwise use the defaults.

  • runtime/JSExportMacros.h:

Source/WebCore:

  • platform/PlatformExportMacros.h:

Source/WebCore/PAL:

Allow overriding of PAL_EXPORT if desired otherwise use the defaults.

  • pal/ExportMacros.h:

Source/WTF:

Always use export macros on all platforms. Remove USE_EXPORT_MACROS and always
define macros based on the platform. Allow overriding of WTF_EXPORT_PRIVATE otherwise
use the defaults.

Remove definition of WTF_HIDDEN_DECLARATION since its not used anywhere.

  • wtf/ExportMacros.h:
  • wtf/PlatformUse.h:

Tools:

Remove uses of USE_EXPORT_MACROS from the DumpRenderTree xcode project. This
is the only xcode project that had any references to this value.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
10:25 AM Changeset in webkit [261006] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed. Non-speculative build fix for watchOS build.

  • runtime/ArrayPrototype.cpp:

(JSC::shift):
(JSC::unshift):
(JSC::arrayProtoFuncToLocaleString):
(JSC::arrayProtoFuncReverse):
(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoFuncSplice):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Stringifier):

10:10 AM Changeset in webkit [261005] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Speculative build fix for watchOS build.

  • runtime/ArrayPrototype.cpp:

(JSC::shift):

10:05 AM Changeset in webkit [261004] by eric.carlson@apple.com
  • 7 edits
    2 adds in trunk

[MSE] Audio session category is sometimes not set correctly after changing video source
https://bugs.webkit.org/show_bug.cgi?id=211252
<rdar://problem/61894737>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-source/media-source-change-source.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerActiveSourceBuffersChanged): Call checkForAudioAndVideo.
(WebCore::HTMLMediaElement::audioTrackEnabledChanged): Ditto.
(WebCore::HTMLMediaElement::videoTrackSelectedChanged): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): Ditto.
(WebCore::HTMLMediaElement::updatePlayState): Ditto.
(WebCore::HTMLMediaElement::checkForAudioAndVideo): New, update m_hasEverHadAudio and m_hasEverHadVideo
and call m_mediaSession->canProduceAudioChanged.
(WebCore::HTMLMediaElement::mediaType const): Put hasVideo() in a local variable since it
is used more than once.

  • html/HTMLMediaElement.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::updateSessionState): Iterate over the list of media
sessions once, not five times.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer): Call m_player->characteristicChanged()
rather than m_player->renderingModeChanged().

LayoutTests:

  • platform/mac/media/media-source/media-source-change-source-expected.txt: Added.
  • platform/mac/media/media-source/media-source-change-source.html: Added.
9:30 AM Changeset in webkit [261003] by Russell Epstein
  • 12 edits
    1 delete in branches/safari-610.1.11-branch/Source

Cherry-pick r260888. rdar://problem/62714948

Unreviewed, reverting r260650.
https://bugs.webkit.org/show_bug.cgi?id=211172

It is breaking internal bots (Requested by youenn on #webkit).

Reverted changeset:

"Call STDynamicActivityAttributionPublisher in the WebProcess"
https://bugs.webkit.org/show_bug.cgi?id=210772
https://trac.webkit.org/changeset/260650

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

9:18 AM Changeset in webkit [261002] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ iOS ] compositing/iframes/border-radius-composited-frame.html and compositing/iframes/border-uneven-radius-composited-frame.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=211261

Unreviewed test gardening.

  • platform/ios/TestExpectations:
9:17 AM Changeset in webkit [261001] by Peng Liu
  • 12 edits
    1 add in trunk

A PiP window doesn’t actually dismiss after the browser navigates to a different page within the same domain
https://bugs.webkit.org/show_bug.cgi?id=211257

Reviewed by Jer Noble.

Source/WebCore:

When we suspend a video element (this will happen when the browser is navigating to another page
within the same domain), we need to request the corresponding video to exit fullscreen/PiP.
The operation should be done immediately because the video element won't response to events
after it is suspended.

In r259095, we hold the start of exiting video fullscreen/PiP in HTMLMediaElement::exitFullscreen()
until the "webkitendfullscreen" event is dispatched/handled. This behavior does not work if
the video element is going to be suspended because the exiting fullscreen operation will be held
until the video element is resumed. Therefore, we need to handle that case separately by exiting
video fullscreen/PiP immediately.

API test: PictureInPicture.ExitPiPOnSuspendVideoElement

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::exitFullscreen):

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::exitFullscreen):

Source/WebKit:

Add the support of exitVideoFullscreenToModeWithoutAnimation() in iOS,
so that the Web process can request the UI process to close the PiP window
without exchanging IPC messages back and forth.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::exitFullscreenWithoutAnimationToMode):

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

Only stop the watchdog timer if it is active.

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/AGXCompilerService.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ExitPiPOnSuspendVideoElement.mm: Added.

(-[ExitPiPOnSuspendVideoElementUIDelegate _webView:hasVideoInPictureInPictureDidChange:]):
(TestWebKitAPI::TEST):

8:34 AM Changeset in webkit [261000] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Dropped connections when uploading archives shouldn't be fatal
https://bugs.webkit.org/show_bug.cgi?id=211248

Rubber-stamped by Aakash Jain.

  • Scripts/webkitpy/results/upload.py:

(Upload.upload_archive): Dropping a connection when uploading archives shouldn't
be a fatal error.

  • Scripts/webkitpy/results/upload_unittest.py:

(UploadTest.test_archive_upload):

7:52 AM Changeset in webkit [260999] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r260920.
https://bugs.webkit.org/show_bug.cgi?id=211292

Sandbox compile error is no longer an issue (Requested by
perarne on #webkit).

Reverted changeset:

"Unreviewed sandbox compile fix."
https://trac.webkit.org/changeset/260920

7:37 AM Changeset in webkit [260998] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Introduce struct RowHeight in TableFormattingContext::computeAndDistributeExtraVerticalSpace
https://bugs.webkit.org/show_bug.cgi?id=211275

Reviewed by Antti Koivisto.

This is in preparation for available space distribution across row spans.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):

7:35 AM Changeset in webkit [260997] by Antti Koivisto
  • 3 edits
    2 adds in trunk

Specific dom node order of Shadow DOM (re)projection causes crash
https://bugs.webkit.org/show_bug.cgi?id=211159
<rdar://problem/62626920>

Reviewed by Zalan Bujtas.

Source/WebCore:

ComposedTreeIterator may traverse to nodes outside its root element if it is constructed
with a starting node that has no next sibling inside a slot.

This leads to miscomputing RenderTreePosition::nextSibling() and eventual nullptr crash in
RenderTreeBuilder when adding a renderer (due to beforeChild renderer being outside the parent renderer).

Test case by Elliott Marquez.

Test: fast/shadow-dom/composed-tree-iterator-escape.html

  • dom/ComposedTreeIterator.cpp:

(WebCore::ComposedTreeIterator::Context::Context):

When findind the end iterator for a tree context we need to look for a sibling in ancestors if
the current node has no siblings.

LayoutTests:

  • fast/shadow-dom/composed-tree-iterator-escape-expected.html: Added.
  • fast/shadow-dom/composed-tree-iterator-escape.html: Added.
5:23 AM Changeset in webkit [260996] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] Move focus out of the web view when tab is pressed and there isn't a next element to focus
https://bugs.webkit.org/show_bug.cgi?id=211283

Reviewed by Adrian Perez de Castro.

Implement API::UIClient::takeFocus() that is called when WebCore wants to focus the chrome.

  • UIProcess/API/glib/WebKitUIClient.cpp:
4:26 AM Changeset in webkit [260995] by Alexey Shvayka
  • 2 edits in trunk/Source/JavaScriptCore

[WebIDL] Interface prototype objects should define @@toStringTag
https://bugs.webkit.org/show_bug.cgi?id=211020

Unreviewed follow-up to r260992.

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::JSArrayBufferPrototype::finishCreation): Revert change in attempt to fix ARMv7 test.

3:26 AM Changeset in webkit [260994] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r260214): Leak of _WKTextInputContext in -[WKContentView _isTextInputContextFocused:]
<https://webkit.org/b/211276>
<rdar://problem/62696724>

Reviewed by Daniel Bates.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _focusTextInputContext:placeCaretAt:completionHandler:]):

  • Use RetainPtr<> to pass the copy of _WKTextInputContext into the block to fix the leak.
3:26 AM Changeset in webkit [260993] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSC::PropertySlot::m_attributes is uninitialized in constructor
<https://webkit.org/b/211267>

Reviewed by Mark Lam.

  • runtime/PropertySlot.h:

(JSC::PropertySlot::PropertySlot):

  • Initialize m_attributes and m_additionalData, and make use of default initializers.
2:48 AM Changeset in webkit [260992] by Alexey Shvayka
  • 148 edits in trunk

[WebIDL] Interface prototype objects should define @@toStringTag
https://bugs.webkit.org/show_bug.cgi?id=211020

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Adjust tests for X.prototype.toString() returning "[object X]"
instead of "[object XPrototype]", where X is WebIDL interface.

  • web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any.worker-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/class-string-named-properties-object.window-expected.txt:
  • web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/window-prototype-chain.html: WPT revision: 50417942bbfe.
  • web-platform-tests/wasm/jsapi/instance/toString.any-expected.txt:
  • web-platform-tests/wasm/jsapi/instance/toString.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/toString.any-expected.txt:
  • web-platform-tests/wasm/jsapi/memory/toString.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/module/toString.any-expected.txt:
  • web-platform-tests/wasm/jsapi/module/toString.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/table/toString.any-expected.txt:
  • web-platform-tests/wasm/jsapi/table/toString.any.worker-expected.txt:

Source/JavaScriptCore:

WebIDL spec was recently updated [1] to define @@toStringTag on interface prototype objects.
This change aligns WebIDL with ECMA-262 built-ins and Blink's behavior. Gecko have also
expressed implementation commitment.

This patch implements the spec change, making X.prototype.toString() return "[object X]"
instead of "[object XPrototype]", where X is WebIDL interface. This behavior is proven to
be web compatible (shipping in Chrome since Q2 2016) and matches class strings of iterator
prototype objects [2] introduced in r253855.

We define @@toStringTag for all WebAssembly interfaces but Error subclasses since they
are not defined using WebIDL [3].

This change also introduces JSC_TO_STRING_TAG_WITHOUT_TRANSITION() macro that sets up
@@toStringTag using ClassInfo to avoid extra strings creation, ensuring className equality
between prototype and instance classes (fixing a few discrepancies), as well as correct
descriptors. It also ensures using faster jsNontrivialString() and relieves from putting
more code into CodeGeneratorJS.pm.

[1]: https://github.com/heycam/webidl/pull/357
[2]: https://heycam.github.io/webidl/#es-iterator-prototype-object
[3]: https://webassembly.github.io/spec/js-api/#error-objects

Tests: imported/w3c/web-platform-tests/wasm/jsapi/instance/toString.any.js

imported/w3c/web-platform-tests/wasm/jsapi/memory/toString.any.js
imported/w3c/web-platform-tests/wasm/jsapi/module/toString.any.js
imported/w3c/web-platform-tests/wasm/jsapi/table/toString.any.js

  • runtime/ArrayIteratorPrototype.cpp:

(JSC::ArrayIteratorPrototype::finishCreation):

  • runtime/AsyncFunctionPrototype.cpp:

(JSC::AsyncFunctionPrototype::finishCreation):

  • runtime/AsyncGeneratorFunctionPrototype.cpp:

(JSC::AsyncGeneratorFunctionPrototype::finishCreation):

  • runtime/AsyncGeneratorPrototype.cpp:

(JSC::AsyncGeneratorPrototype::finishCreation):

  • runtime/BigIntPrototype.cpp:

(JSC::BigIntPrototype::finishCreation):

  • runtime/GeneratorFunctionPrototype.cpp:

(JSC::GeneratorFunctionPrototype::finishCreation):

  • runtime/GeneratorPrototype.cpp:

(JSC::GeneratorPrototype::finishCreation):

  • runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorPrototype::finishCreation):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::finishCreation):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::finishCreation):

  • runtime/IntlPluralRulesPrototype.cpp:

(JSC::IntlPluralRulesPrototype::finishCreation):

  • runtime/IntlRelativeTimeFormatPrototype.cpp:

(JSC::IntlRelativeTimeFormatPrototype::finishCreation):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::JSArrayBufferPrototype::finishCreation):

  • runtime/JSDataViewPrototype.cpp:

(JSC::JSDataViewPrototype::finishCreation):

  • runtime/JSONObject.cpp:

(JSC::JSONObject::finishCreation):

  • runtime/JSObject.h:
  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::finishCreation):

  • runtime/MapIteratorPrototype.cpp:

(JSC::MapIteratorPrototype::finishCreation):

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):

  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • runtime/RegExpStringIteratorPrototype.cpp:

(JSC::RegExpStringIteratorPrototype::finishCreation):

  • runtime/SetIteratorPrototype.cpp:

(JSC::SetIteratorPrototype::finishCreation):

  • runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):

  • runtime/StringIteratorPrototype.cpp:

(JSC::StringIteratorPrototype::finishCreation):

  • runtime/SymbolPrototype.cpp:

(JSC::SymbolPrototype::finishCreation):

  • runtime/WeakMapPrototype.cpp:

(JSC::WeakMapPrototype::finishCreation):

  • runtime/WeakObjectRefPrototype.cpp:

(JSC::WeakObjectRefPrototype::finishCreation):

  • runtime/WeakSetPrototype.cpp:

(JSC::WeakSetPrototype::finishCreation):

  • wasm/js/WebAssemblyInstancePrototype.cpp:

(JSC::WebAssemblyInstancePrototype::finishCreation):

  • wasm/js/WebAssemblyMemoryPrototype.cpp:

(JSC::WebAssemblyMemoryPrototype::finishCreation):

  • wasm/js/WebAssemblyModulePrototype.cpp:

(JSC::WebAssemblyModulePrototype::finishCreation):

  • wasm/js/WebAssemblyTablePrototype.cpp:

(JSC::WebAssemblyTablePrototype::finishCreation):

Source/WebCore:

WebIDL spec was recently updated [1] to define @@toStringTag on interface prototype objects.
This change aligns WebIDL with ECMA-262 built-ins and Blink's behavior. Gecko have also
expressed implementation commitment.

This patch implements the spec change, making X.prototype.toString() return "[object X]"
instead of "[object XPrototype]", where X is WebIDL interface. This behavior is proven to
be web compatible (shipping in Chrome since Q2 2016) and matches class strings of iterator
prototype objects [2] introduced in r253855.

[1]: https://github.com/heycam/webidl/pull/357
[2]: https://heycam.github.io/webidl/#es-iterator-prototype-object

Tests: fast/dom/prototype-chain.html

fast/dom/wrapper-classes.html
fast/workers/DedicatedWorkerGlobalScope-prototype-chain.html
imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/class-string-interface.any.js
imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/class-string-named-properties-object.window.js

  • bindings/js/JSDOMIterator.h:

(WebCore::IteratorTraits>::finishCreation):

  • bindings/js/JSDOMWindowProperties.cpp:

(WebCore::JSDOMWindowProperties::finishCreation):

  • bindings/js/JSDOMWindowProperties.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GeneratePrototypeDeclaration):
(GenerateConstructorHelperMethods):

  • bindings/scripts/test/*: Updated.

LayoutTests:

Adjust tests for X.prototype.toString() returning "[object X]"
instead of "[object XPrototype]", where X is WebIDL interface.

  • css3/blending/background-blend-mode-property-parsing-expected.txt:
  • css3/blending/background-blend-mode-property-parsing.html:
  • css3/blending/blend-mode-property-parsing-expected.txt:
  • css3/blending/blend-mode-property-parsing.html:
  • css3/filters/backdrop/backdropfilter-property-parsing-expected.txt:
  • css3/filters/backdrop/backdropfilter-property-parsing.html:
  • css3/filters/filter-property-parsing-expected.txt:
  • css3/filters/filter-property-parsing.html:
  • fast/css/image-set-parsing-expected.txt:
  • fast/css/image-set-parsing-generated-expected.txt:
  • fast/css/image-set-parsing-generated.html:
  • fast/css/image-set-parsing.html:
  • fast/dom/DOMException/prototype-object-expected.txt:
  • fast/dom/DOMException/prototype-object.html:
  • fast/dom/prototype-chain-expected.txt:
  • fast/dom/wrapper-classes-expected.txt:
  • fast/dom/wrapper-classes.html:
  • fast/events/event-view-toString-expected.txt:
  • fast/workers/DedicatedWorkerGlobalScope-prototype-chain-expected.txt:
  • fast/workers/DedicatedWorkerGlobalScope-prototype-chain.html:
  • http/tests/xmlhttprequest/XMLHttpRequestException-expected.txt:
  • inspector/model/remote-object-get-properties-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/dom/nodes/Document-createEvent.https-expected.txt:
  • resources/idlharness.js: Remove asserts that are commented out in upstream.
  • svg/dom/svg2-inheritance.html:
  • transforms/2d/transform-value-types-expected.txt:
  • transforms/2d/transform-value-types.html:
2:48 AM Changeset in webkit [260991] by Lauro Moura
  • 2 edits in trunk/Tools

[Flatpak SDK] Honor XDG_RUNTIME_DIR when setting the document path
https://bugs.webkit.org/show_bug.cgi?id=211277

Reviewed by Philippe Normand.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): Prefer using the value of
$XDG_RUNTIME_DIR instead of the hardcoded path when setting the
document portal path mount.

1:45 AM Changeset in webkit [260990] by sbarati@apple.com
  • 26 edits
    1 add in trunk

We can't cast toLength result to unsigned
https://bugs.webkit.org/show_bug.cgi?id=211205
<rdar://problem/62625562>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/array-length-cant-get-casted-to-unsigned.js: Added.

(assert):
(testArrayPop):
(testArrayPush):
(testArrayReverse):
(testArraySplice):
(testArrayUnshift):
(testArrayLastIndexOf):
(shouldThrowTypeError):
(testJSONStringify.get let):
(testJSONStringify):

  • test262/expectations.yaml:

Source/JavaScriptCore:

toLength, according to the spec, returns a 53-bit integer. In our
implementation, we return a double. However, there were many callsites
that did something like:
`
unsigned length = toLength(obj);
`

This is bad for a few reasons:

  • Casting to unsigned from double is undefined behavior when the integer

is greater than UINT_MAX. In practice, this means that we'd have different
engine behavior depending on what architecture we'd be running on. For
example, if the length were UINT_MAX + 1, on x86, we'd treat the
length as zero. On arm64, we'd treat it as UINT_MAX. Both are wrong.

  • We weren't spec compliant. We were just ignoring that these numbers could

be 53-bit integers.

This patch addresses each bad use of the undefined behavior, and by doing so,
makes us more spec compliant.

  • dfg/DFGOperations.cpp:
  • jit/JITOperations.cpp:

(JSC::getByVal):

  • runtime/ArrayPrototype.cpp:

(JSC::getProperty):
(JSC::setLength):
(JSC::argumentClampedIndexFromStartOrEnd):
(JSC::shift):
(JSC::unshift):
(JSC::arrayProtoFuncToLocaleString):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoFuncPush):
(JSC::arrayProtoFuncReverse):
(JSC::arrayProtoFuncShift):
(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoFuncSplice):
(JSC::arrayProtoFuncUnShift):
(JSC::fastIndexOf):
(JSC::arrayProtoFuncIndexOf):
(JSC::arrayProtoFuncLastIndexOf):

  • runtime/Identifier.h:

(JSC::Identifier::from):

  • runtime/IntlObject.cpp:

(JSC::canonicalizeLocaleList):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Stringifier):
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Walker::walk):

  • runtime/JSObject.cpp:

(JSC::JSObject::hasProperty const):

  • runtime/JSObject.h:

(JSC::JSObject::putByIndexInline):
(JSC::JSObject::putDirectIndex):
(JSC::JSObject::canGetIndexQuickly const):
(JSC::JSObject::tryGetIndexQuickly const):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPropertySlot):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::get const):

  • runtime/PropertySlot.h:

(JSC::PropertySlot::getValue const):

  • tools/JSDollarVM.cpp:

(JSC::functionSetUserPreferredLanguages):

Source/WebCore:

  • bridge/NP_jsobject.cpp:

Source/WebKit:

  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::NPJSObject::hasProperty):
(WebKit::NPJSObject::getProperty):
(WebKit::NPJSObject::removeProperty):

LayoutTests:

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.14-3-29.js:

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-25.js:

(ES5Harness.registerTest.test):

  • ietestcenter/Javascript/TestCases/15.4.4.15-3-28.js:

(ES5Harness.registerTest.test):

1:32 AM Changeset in webkit [260989] by graouts@webkit.org
  • 6 edits in trunk

REGRESSION: MotionMark 1.1 regressed due to r260016
https://bugs.webkit.org/show_bug.cgi?id=211280
<rdar://problem/61898830>

Unreviewed.

Source/WebCore:

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImage):

LayoutTests:

  • fast/images/image-orientation-none-canvas.html:
1:18 AM Changeset in webkit [260988] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[GTK] File GtkVersioning.h should be excluded from the style checker
https://bugs.webkit.org/show_bug.cgi?id=211262

Reviewed by Carlos Garcia Campos.

  • Scripts/webkitpy/style/checker.py: Exclude Source/WebCore/platform/gtk/GtkVersioning.h

from style checks.

1:15 AM Changeset in webkit [260987] by Philippe Normand
  • 3 edits
    2 adds in trunk/Source/WebCore

[GStreamer] Move video frame holder to its own file
https://bugs.webkit.org/show_bug.cgi?id=211239

Reviewed by Alex Christensen.

This class implementation is big enough for a new compilation unit, IMHO.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GStreamerVideoFrameHolder.cpp: Added.

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::~GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::handoffVideoDmaBuf):
(WebCore::GstVideoFrameHolder::waitForCPUSync):
(WebCore::GstVideoFrameHolder::updateTexture):
(WebCore::GstVideoFrameHolder::platformLayerBuffer):

  • platform/graphics/gstreamer/GStreamerVideoFrameHolder.h: Added.

(WebCore::GstVideoFrameHolder::size const):
(WebCore::GstVideoFrameHolder::hasAlphaChannel const):
(WebCore::GstVideoFrameHolder::flags const):
(WebCore::GstVideoFrameHolder::textureID const):
(WebCore::GstVideoFrameHolder::hasMappedTextures const):
(WebCore::GstVideoFrameHolder::videoFrame const):
(WebCore::GstVideoFrameHolder::hasDMABuf const):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder): Deleted.
(WebCore::GstVideoFrameHolder::~GstVideoFrameHolder): Deleted.
(WebCore::GstVideoFrameHolder::handoffVideoDmaBuf): Deleted.
(WebCore::GstVideoFrameHolder::waitForCPUSync): Deleted.
(WebCore::GstVideoFrameHolder::size const): Deleted.
(WebCore::GstVideoFrameHolder::hasAlphaChannel const): Deleted.
(WebCore::GstVideoFrameHolder::flags const): Deleted.
(WebCore::GstVideoFrameHolder::textureID const): Deleted.
(WebCore::GstVideoFrameHolder::hasMappedTextures const): Deleted.
(WebCore::GstVideoFrameHolder::videoFrame const): Deleted.
(WebCore::GstVideoFrameHolder::updateTexture): Deleted.
(WebCore::GstVideoFrameHolder::platformLayerBuffer): Deleted.
(WebCore::GstVideoFrameHolder::hasDMABuf const): Deleted.

1:08 AM Changeset in webkit [260986] by Adrian Perez de Castro
  • 4 edits in trunk/Source

[GTK4] Disable arrow on context menu popover
https://bugs.webkit.org/show_bug.cgi?id=211241

Reviewed by Carlos Garcia Campos.

Source/WebCore:

No new tests needed.

  • platform/gtk/GtkVersioning.h:

(gdk_display_get_monitor_at_window): Add no-op stub for GTK3.

Source/WebKit:

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): Disable the menu popover arrow.

Apr 30, 2020:

11:50 PM Changeset in webkit [260985] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Inline reportBlockedPortFailed and reportAuthenticationChallengeBlocked
https://bugs.webkit.org/show_bug.cgi?id=211250

Patch by Rob Buis <rbuis@igalia.com> on 2020-04-30
Reviewed by Alex Christensen.

These two static methods have only one caller each, so we can just
inline them at the call site since there is nothing tying them to FrameLoader.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::reportBlockedPortFailed): Deleted.
(WebCore::FrameLoader::reportAuthenticationChallengeBlocked): Deleted.

  • loader/FrameLoader.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didBlockAuthenticationChallenge):

10:38 PM Changeset in webkit [260984] by Ross Kirsling
  • 42 edits in trunk/Source

TriState should be an enum class and use "Indeterminate" instead of "Mixed"
https://bugs.webkit.org/show_bug.cgi?id=211268

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • b3/B3Const32Value.cpp:

(JSC::B3::Const32Value::equalConstant const):
(JSC::B3::Const32Value::notEqualConstant const):
(JSC::B3::Const32Value::lessThanConstant const):
(JSC::B3::Const32Value::greaterThanConstant const):
(JSC::B3::Const32Value::lessEqualConstant const):
(JSC::B3::Const32Value::greaterEqualConstant const):
(JSC::B3::Const32Value::aboveConstant const):
(JSC::B3::Const32Value::belowConstant const):
(JSC::B3::Const32Value::aboveEqualConstant const):
(JSC::B3::Const32Value::belowEqualConstant const):

  • b3/B3Const64Value.cpp:

(JSC::B3::Const64Value::equalConstant const):
(JSC::B3::Const64Value::notEqualConstant const):
(JSC::B3::Const64Value::lessThanConstant const):
(JSC::B3::Const64Value::greaterThanConstant const):
(JSC::B3::Const64Value::lessEqualConstant const):
(JSC::B3::Const64Value::greaterEqualConstant const):
(JSC::B3::Const64Value::aboveConstant const):
(JSC::B3::Const64Value::belowConstant const):
(JSC::B3::Const64Value::aboveEqualConstant const):
(JSC::B3::Const64Value::belowEqualConstant const):

  • b3/B3ConstDoubleValue.cpp:

(JSC::B3::ConstDoubleValue::equalConstant const):
(JSC::B3::ConstDoubleValue::notEqualConstant const):
(JSC::B3::ConstDoubleValue::lessThanConstant const):
(JSC::B3::ConstDoubleValue::greaterThanConstant const):
(JSC::B3::ConstDoubleValue::lessEqualConstant const):
(JSC::B3::ConstDoubleValue::greaterEqualConstant const):
(JSC::B3::ConstDoubleValue::equalOrUnorderedConstant const):

  • b3/B3ConstFloatValue.cpp:

(JSC::B3::ConstFloatValue::equalConstant const):
(JSC::B3::ConstFloatValue::notEqualConstant const):
(JSC::B3::ConstFloatValue::lessThanConstant const):
(JSC::B3::ConstFloatValue::greaterThanConstant const):
(JSC::B3::ConstFloatValue::lessEqualConstant const):
(JSC::B3::ConstFloatValue::greaterEqualConstant const):
(JSC::B3::ConstFloatValue::equalOrUnorderedConstant const):

  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::addBoolConstant):

  • b3/B3Procedure.h:
  • b3/B3ReduceStrength.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::equalConstant const):
(JSC::B3::Value::notEqualConstant const):
(JSC::B3::Value::lessThanConstant const):
(JSC::B3::Value::greaterThanConstant const):
(JSC::B3::Value::lessEqualConstant const):
(JSC::B3::Value::greaterEqualConstant const):
(JSC::B3::Value::aboveConstant const):
(JSC::B3::Value::belowConstant const):
(JSC::B3::Value::aboveEqualConstant const):
(JSC::B3::Value::belowEqualConstant const):
(JSC::B3::Value::equalOrUnorderedConstant const):
(JSC::B3::Value::asTriState const):

  • b3/B3Value.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::thresholdForJIT):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::visitChildren):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ConstantNode::emitBytecodeInConditionContext):
(JSC::BinaryOpNode::emitBytecodeInConditionContext):
(JSC::BinaryOpNode::tryFoldToBranch):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCFGSimplificationPhase.cpp:

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

  • dfg/DFGLazyJSValue.cpp:

(JSC::DFG::equalToSingleCharacter):
(JSC::DFG::equalToStringImpl):
(JSC::DFG::LazyJSValue::strictEqual const):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileDataViewGet):
(JSC::FTL::DFG::LowerDFGToB3::compileDataViewSet):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::equal):
(JSC::FTL::Output::notEqual):
(JSC::FTL::Output::above):
(JSC::FTL::Output::aboveOrEqual):
(JSC::FTL::Output::below):
(JSC::FTL::Output::belowOrEqual):
(JSC::FTL::Output::greaterThan):
(JSC::FTL::Output::greaterThanOrEqual):
(JSC::FTL::Output::lessThan):
(JSC::FTL::Output::lessThanOrEqual):

  • jit/JITOperations.cpp:
  • runtime/CachedTypes.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • runtime/DefinePropertyAttributes.h:

(JSC::DefinePropertyAttributes::DefinePropertyAttributes):
(JSC::DefinePropertyAttributes::hasWritable const):
(JSC::DefinePropertyAttributes::writable const):
(JSC::DefinePropertyAttributes::hasConfigurable const):
(JSC::DefinePropertyAttributes::configurable const):
(JSC::DefinePropertyAttributes::hasEnumerable const):
(JSC::DefinePropertyAttributes::enumerable const):
(JSC::DefinePropertyAttributes::setWritable):
(JSC::DefinePropertyAttributes::setConfigurable):
(JSC::DefinePropertyAttributes::setEnumerable):

  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::initializeCollator):

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):

  • runtime/IntlObject.cpp:

(JSC::intlBooleanOption):

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::pureStrictEqual):
(JSC::JSValue::pureToBoolean const):

  • runtime/JSCellInlines.h:

(JSC::JSCell::pureToBoolean const):

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::queryCommandIndeterm):
(WebCore::Document::queryCommandState):

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::triStateOfStyle const):
(WebCore::EditingStyle::hasStyle):

  • editing/Editor.cpp:

(WebCore::Editor::selectionUnorderedListState const):
(WebCore::Editor::selectionOrderedListState const):

  • editing/EditorCommand.cpp:

(WebCore::isStylePresent):
(WebCore::stateStyle):
(WebCore::stateTextWritingDirection):
(WebCore::stateNone):
(WebCore::stateStyleWithCSS):
(WebCore::Editor::Command::state const):
(WebCore::Editor::Command::value const):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::validateCommand):

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::getPlatformEditorState const):

Source/WebKitLegacy/mac:

  • WebView/WebHTMLView.mm:

(kit):
(-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]):

Source/WTF:

The word "indeterminate" comes from boost::tribool.
A third state is generally not "mixed" but rather unknown.

  • wtf/TriState.h:
9:43 PM Changeset in webkit [260983] by jiewen_tan@apple.com
  • 10 edits
    2 adds in trunk

[WebAuthn] Require user gestures for LocalAuthenticator
https://bugs.webkit.org/show_bug.cgi?id=182893
<rdar://problem/43357293>

Reviewed by Brent Fulgham.

Source/WebKit:

Covered by API tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::filterTransports const):
(WebKit::AuthenticatorManager::getTransports const):
Checks UserGesture here. Since filterTransports will be overrided in mock testings,
all mock tests don't require user gestures.

  • UIProcess/WebAuthentication/WebAuthenticationRequestData.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::makeCredential):
(WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:

(WebKit::WebAuthenticatorCoordinator::makeCredential):
(WebKit::WebAuthenticatorCoordinator::getAssertion):
Adds user gesture corresponding fields.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-la-no-mock.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la-no-mock.html: Added.
8:57 PM Changeset in webkit [260982] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the Mac Catalyst build after r260979

The presence of _contextMenuInteraction is conditional not only on USE(UICONTEXTMENU), but also
HAVE(LINK_PREVIEW). Guard logic in -deferringGestureRecognizer:shouldDeferOtherGestureRecognizer: with the
latter as well.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):

8:48 PM Changeset in webkit [260981] by Simon Fraser
  • 17 edits in trunk/Source

Clean up some EventHandler coordinate-related naming and fix ScrollableArea::lastKnownMousePosition() conversions
https://bugs.webkit.org/show_bug.cgi?id=211259

Reviewed by Zalan Bujtas.

Source/WebCore:

On EventHandler, rename m_lastKnownMousePosition, m_mouseDownPos and m_mouseDown for clarity.

Rename ScrollableArea::lastKnownMousePosition() to be lastKnownMousePositionInView().
Previously, lastKnownMousePosition() would fetch it from EventHandler, which simply stashed
event.position() (which is in a coordinate system that differs between WK1 and Wk2) which
was not relative to the EventHandler's frame. This cause mouseLocationInScrollerForScrollerImp:
to give wrong answers.

Instead, lastKnownMousePositionInView() now specifically returns coordinates relative to the Frame.
This behavior change will be tested in future overlay scrollbar tests.

Document::showPlaybackTargetPicker() was using FrameView::lastKnownMousePosition(), so to avoid
changing its (probably broken) behavior, have it call frame()->eventHandler().lastKnownMousePosition().

  • dom/Document.cpp:

(WebCore::Document::showPlaybackTargetPicker):

  • page/EventHandler.cpp:

(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDraggedEvent):
(WebCore::EventHandler::updateDragSourceActionsAllowed const):
(WebCore::EventHandler::dispatchDragStartEventOnSourceElement):
(WebCore::EventHandler::handleDrag):
(WebCore::EventHandler::mouseMovementExceedsThreshold const):

  • page/EventHandler.h:
  • page/FrameView.cpp:

(WebCore::FrameView::lastKnownMousePositionInView const):
(WebCore::FrameView::lastKnownMousePosition const): Deleted.

  • page/FrameView.h:
  • platform/PlatformMouseEvent.h:
  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::lastKnownMousePositionInView const):
(WebCore::ScrollableArea::lastKnownMousePosition const): Deleted.

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollerImpPairDelegate mouseLocationInContentAreaForScrollerImpPair:]):
(-[WebScrollerImpPairDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]):
(-[WebScrollerImpDelegate mouseLocationInScrollerForScrollerImp:]):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::lastKnownMousePositionInView const):
(WebCore::RenderLayer::lastKnownMousePosition const): Deleted.

  • rendering/RenderLayer.h:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::lastKnownMousePositionInView const):
(WebCore::RenderListBox::lastKnownMousePosition const): Deleted.

  • rendering/RenderListBox.h:

Source/WebKit:

  • Shared/WebEvent.h:

(WebKit::WebMouseEvent::position const):

  • Shared/WebMouseEvent.cpp:

(WebKit::WebMouseEvent::WebMouseEvent):

  • WebProcess/Plugins/PDF/PDFPlugin.h:
8:26 PM Changeset in webkit [260980] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Fix confusing idiom for releasing _selectionRects in -[WKTextRange dealloc]
<https://webkit.org/b/211269>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKTextRange dealloc]):

  • Switch to more common idiom to release an instance variable. This fixes a false positive warning from the clang static analyzer about releasing a variable not owned by the caller.
8:01 PM Changeset in webkit [260979] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

REGRESSION: Double tap dispatches one click event on iOS 13.4 when it would dispatch two on iOS 13.3
https://bugs.webkit.org/show_bug.cgi?id=211179
<rdar://problem/62594779>

Reviewed by Tim Horton.

Source/WebKit:

https://trac.webkit.org/r253267 introduced deferring gesture recognizers as a way to handle preventable (non-
passive) touchstart events without blocking the UI process. These deferring gesture recognizers work by having
other gesture recognizers at or below WKWebView (with few exceptions) require the failure of these deferring
gestures. These gestures transition to possible state when beginning a touch inside a non-passive touch event
handling region, and transition to either failed or ended state (depending on whether preventDefault() was
called) after the web content process finished handling the touch event.

However, this means that the resulting dependency graph now has an edge between each gesture under WKWebView and
one of the deferring gesture recognizers, due to these new failure requirements. Since gestures that have been
recognized or have failed don't get reset until all other gestures in the same dependency subgraph have also
recognized or failed, some gestures (such as the synthetic single tap gesture recognizer in this bug) might not
be resetting as soon after ending as they did before, since they may be connected to other gesture recognizers
that are still in possible state by way of the failure requirements added by the new deferring gestures.

I was already aware of this problem in r253267, and attempted to solve this by bisecting the gesture dependency
graph into two subgraphs: one containing all the one-finger multi-tap gestures that are reset after a lengthy
delay, and another containing everything else. To do this, I added two different deferring gesture recognizers:
one for immediately resettable gestures (meant for gestures in the latter subgraph), and another for gestures
that are reset after a delay (meant for gestures in the former subgraph).

Unfortunately, unrelated changes around text interactions in UIKit in iOS 13.4 caused the tap-and-a-half
gesture for selecting a range of text to now have a delayed reset; this means that gestures in the "immediately
resettable" gesture subgraph are all forced to wait on the tap-and-a-half text interaction gesture before
resetting, which causes the bug here, since the synthetic single tap gesture is in this "immediately resettable"
gesture subgraph.

To mitigate this, this patch pushes the tap-and-a-half text selection gesture, along with the loupe gesture,
context menu relationship gesture, and drag lift gestures (i.e. the other gestures that are connected to the
tap-and-a-half gesture via failure requirements) out of the "immediately resettable" subgraph, and into the
"delayed" subgraph.

Test: fast/events/touch/ios/two-click-events-after-double-tap-with-touch-handler.html

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):

LayoutTests:

Add a new layout test to verify that double tapping a button with fast-clicking enabled (i.e. in a device-width
viewport) fires two click events.

  • fast/events/touch/ios/two-click-events-after-double-tap-with-touch-handler-expected.txt: Added.
  • fast/events/touch/ios/two-click-events-after-double-tap-with-touch-handler.html: Added.
7:20 PM Changeset in webkit [260978] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Computed: shouldn't display focus outline on click
https://bugs.webkit.org/show_bug.cgi?id=211118
<rdar://problem/62491002>

Reviewed by Devin Rousso.

  • CSS property view is no longer focusable.
  • Disclosure triangle is now tabbable.
  • UserInterface/Views/ComputedStyleSection.css:

(.computed-style-section .computed-property-item):
(.computed-style-section .computed-property-item.expanded):
(.computed-style-section .computed-property-item > .disclosure-button:focus):

  • UserInterface/Views/ExpandableView.js:

(WI.ExpandableView):
(WI.ExpandableView.prototype._onDisclosureButtonClick):
(WI.ExpandableView.prototype._update):
Drive-by: add ariaExpanded so VoiceOver reads whether it's expanded or collapsed.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

Remove tabIndex so we don't show any focus outline around the entire CSS property view.

6:47 PM Changeset in webkit [260977] by ysuzuki@apple.com
  • 19 edits in trunk/Source/WebCore

Some HTML element critical paths include AtomString materialization
https://bugs.webkit.org/show_bug.cgi?id=211223

Reviewed by Saam Barati.

While measuring Speedometer2, I've noticed that every time we create some type of input element, we call AtomString multiple times while it is not necessary.
It turned out that this is because some places are using AtomString("...", AtomString::ConstructFromLiteral) instead of
static NeverDestroyed<const AtomString> ...("...", AtomString::ConstructFromLiteral). Since HTML is in the main thread, we can just use static NeverDestroyed<>.
This patch fixes AtomString() calls by changing them to NeverDestroyed<const AtomString> if it is under WebCore/html directory.
And in this patch, we omit FTPDirectoryDocument, MediaDocument, and PluginDocument's fixes for now since their AtomString content has a bit different nature (some
pseudo CSS value ("-webkit-xxx") v.s. some particular CSS property value ("100%").

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::createShadowSubtree):

  • html/FileInputType.cpp:

(WebCore::UploadButtonElement::UploadButtonElement):

  • html/HTMLElement.cpp:

(WebCore::trueName):
(WebCore::falseName):
(WebCore::plaintextOnlyName):
(WebCore::HTMLElement::setContentEditable):
(WebCore::HTMLElement::setDraggable):
(WebCore::HTMLElement::setSpellcheck):
(WebCore::HTMLElement::setAutocorrect):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createShadowSubtree):

  • html/SearchInputType.cpp:

(WebCore::updateResultButtonPseudoType):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::createDataListDropdownIndicator):
(WebCore::TextFieldInputType::createContainer):
(WebCore::TextFieldInputType::createAutoFillButton):

  • html/ValidationMessage.cpp:

(WebCore::ValidationMessage::buildBubbleTree):

  • html/shadow/DetailsMarkerControl.cpp:

(WebCore::DetailsMarkerControl::DetailsMarkerControl):

  • html/shadow/MediaControlTextTrackContainerElement.cpp:

(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):

  • html/shadow/ProgressShadowElement.cpp:

(WebCore::ProgressInnerElement::create):
(WebCore::ProgressBarElement::create):
(WebCore::ProgressValueElement::create):

  • html/shadow/ProgressShadowElement.h:

(WebCore::ProgressInnerElement::create): Deleted.
(WebCore::ProgressBarElement::create): Deleted.
(WebCore::ProgressValueElement::create): Deleted.

  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::SpinButtonElement):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlPlaceholderElement::TextControlPlaceholderElement):
(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):

  • html/shadow/YouTubeEmbedShadowElement.cpp:

(WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):

  • html/shadow/mac/ImageControlsButtonElementMac.cpp:

(WebCore::ImageControlsButtonElementMac::tryCreate):

  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElement::tryCreate):

  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::rebuildDisplayTree):

6:13 PM Changeset in webkit [260976] by Ross Kirsling
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] intlBooleanOption should return TriState instead of taking an out param
https://bugs.webkit.org/show_bug.cgi?id=211256

Reviewed by Darin Adler and Mark Lam.

Boolean options for Intl constructors can have default values of true, false, or undefined.
To handle the undefined case, intlBooleanOption currently has a bool& usesFallback param;
we should have the return type simply be a TriState instead.

  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::initializeCollator):

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):

  • runtime/IntlObject.cpp:

(JSC::intlBooleanOption):

  • runtime/IntlObject.h:
5:30 PM Changeset in webkit [260975] by Alan Coon
  • 1 copy in tags/Safari-610.1.11.4

Tag Safari-610.1.11.4.

4:46 PM Changeset in webkit [260974] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION (r260932): ASSERTION FAILED: ok in webkit::SandboxExtension::consumePermanently for 3 tests
https://bugs.webkit.org/show_bug.cgi?id=211253
<rdar://problem/62673727>

Reviewed by Per Arne Vollan.

In r260932 I added an assertion to confirm that a sandbox extension was successfully consumed. This triggered three
test failures because those tests attempt to pass a sandbox extension from the WebContent process to the UIProcess.

After speaking with the Sandbox team, I learned that an unsandboxed program that attempts to consume a valid
sandbox extension will return 0. Sandboxed processes either receive -1 (for error), or a handle representing the
newly added extension (so that it can be removed when no longer needed).

Since the TestWebKitAPI (and WebKitTestRunner) processes are not sandboxed they receive a zero return value here.

We should recognize this as a valid and expected result. We should also consider making some form of sandboxed
driver for WebKit.

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtensionImpl::consume): Recognize a 0 handle as valid.

4:20 PM Changeset in webkit [260973] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ iOS ] compositing/iframes/border-radius-composited-frame.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211261

unreviewed test gardening.

  • platform/ios/TestExpectations:
4:18 PM Changeset in webkit [260972] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ iOS ] compositing/iframes/border-radius-composited-frame.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211261

Unreviewed test gardening.

  • platform/ios/TestExpectations:
3:37 PM Changeset in webkit [260971] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

TestWebKitAPI.WebKit.DefaultDisplayName and TestWebKitAPI.WebKit.CustomDisplayName are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=209993
<rdar://problem/61282602>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-30
Reviewed by Chris Dumez.

The display name for the web process is set on a low-priority background queue in WebProcess::updateProcessName()
so sometimes in our test it hasn't executed yet. If it hasn't executed yet, it will soon, so try until it succeeds.

  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:

(TestWebKitAPI::checkUntilDisplayNameIs):
(TestWebKitAPI::TEST):

3:27 PM Changeset in webkit [260970] by jiewen_tan@apple.com
  • 18 edits in trunk

[WebAuthn] Optimize LocalAuthenticator
https://bugs.webkit.org/show_bug.cgi?id=183534
<rdar://problem/43357408>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by new API tests.

  • en.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::getAssertionTouchIDPromptTitle):
(WebCore::genericTouchIDPromptTitle):

  • platform/LocalizedStrings.h:

Improving the LocalAuthentication dialog titles for iOS.

Source/WebKit:

This patch implements the following small optimizations:

  1. Replacing local constants with ones from FidoConstants.h;
  2. Merging m_assertionResponses and m_existingCredentials by replacing HashSet with Vector in Authenticator::Observer::selectAssertionResponse;
  3. Using Base64 encoded strings as the keys of the HashSet in produceHashSet() instead of the old casting hack;
  4. Invaliding the LAContext in LocalConnection::~LocalConnection() such that any displaying LocalAuthentication dialogs can be dismissed after the object is destroyed;
  5. Sorting existing credentials according to LRU before returning to UI clients;
  6. Improving the LocalAuthentication dialog titles for iOS.
  • UIProcess/WebAuthentication/Authenticator.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::selectAssertionResponse):

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::produceHashSet):
(WebKit::LocalAuthenticatorInternal::toNSData):
(WebKit::LocalAuthenticatorInternal::getExistingCredentials):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.h:

(WebKit::LocalConnection::filterResponses const):

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::WebCore::bundleName):
(WebKit::LocalConnection::~LocalConnection):
(WebKit::LocalConnection::verifyUser):
(WebKit::LocalConnection::verifyUser const): Deleted.

  • UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:

(WebKit::MockLocalConnection::verifyUser):
(WebKit::MockLocalConnection::filterResponses const):
(WebKit::MockLocalConnection::verifyUser const): Deleted.

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived):
(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):

  • UIProcess/WebAuthentication/fido/CtapAuthenticator.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(-[TestWebAuthenticationPanelDelegate panel:selectAssertionResponse:source:completionHandler:]):
(TestWebKitAPI::TEST):
Adds a new test case for the LRU.

2:58 PM Changeset in webkit [260969] by Kate Cheney
  • 2 edits in trunk/Source/WebCore

clearApplicationBundleIdentifierTestingOverride() should set the bundle identifier to a null string, not an empty string
https://bugs.webkit.org/show_bug.cgi?id=211255
<rdar://problem/62651110>

Reviewed by John Wilander.

No new tests, behavior confirmed by existing tests.

Clearing the bundle identifier during tests should reset the override
value to be a null string so that the following calls to applicationBundleIdentifier()
use the [NSBundle mainBundle] bundleIdentifier] call.

  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::clearApplicationBundleIdentifierTestingOverride):

2:39 PM Changeset in webkit [260968] by Kate Cheney
  • 4 edits in trunk

Change default of "inAppBrowserPrivacyQuirks" testing toggle to use it for tests only
https://bugs.webkit.org/show_bug.cgi?id=211209
<rdar://problem/62619659>

Reviewed by Brent Fulgham.

Source/WebKit:

No new tests, behavior confirmed by existing tests.

  • Shared/WebPreferences.yaml:

Tools:

Manually enable inAppBrowserPrivacyQuirks for certain tests which
need script evaluation to test other aspects of In-App Browser Privacy.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST):

2:28 PM Changeset in webkit [260967] by Devin Rousso
  • 2 edits in trunk/Source/WebKit

Unreviewed, add missing parenthesis

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleMediaEvent):

2:19 PM Changeset in webkit [260966] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

[iOS][WK2] Add timeout for "Client navigation" foreground assertion
https://bugs.webkit.org/show_bug.cgi?id=211202

Reviewed by Alex Christensen.

Add a 30s timeout for "Client navigation" foreground assertion. Foreground assertions do not timeout
at RunningBoard level and we thus need to make sure we release them to avoid power leaks.

  • UIProcess/API/APINavigation.cpp:

(API::Navigation::Navigation):

  • UIProcess/API/APINavigation.h:

(API::Navigation::setClientNavigationActivity):
(API::Navigation::setForegroundActivity): Deleted.

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::TimedActivity::TimedActivity):
(WebKit::ProcessThrottler::TimedActivity::operator=):
(WebKit::ProcessThrottler::TimedActivity::activityTimedOut):
(WebKit::ProcessThrottler::TimedActivity::updateTimer):

  • UIProcess/ProcessThrottler.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):

2:15 PM Changeset in webkit [260965] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Sort out certificates on Catalina
https://bugs.webkit.org/show_bug.cgi?id=202837
<rdar://problem/56177210>

Reviewed by Alex Christensen.

  • Scripts/run-javascriptcore-tests:

(uploadResults): Do not allow insecure requests.

  • Scripts/webkitpy/results/upload.py:

(Upload.upload): Verify ssl certificates.
(Upload.upload_archive): Ditto.

1:50 PM Changeset in webkit [260964] by Russell Epstein
  • 1 copy in tags/Safari-609.2.9.0.4

Tag Safari-609.2.9.0.4.

1:46 PM Changeset in webkit [260963] by Devin Rousso
  • 8 edits
    3 adds in trunk

WebKit.WebContent process crashes when web developer tools are opened in Safari
https://bugs.webkit.org/show_bug.cgi?id=210794
<rdar://problem/62214651>

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::injectedScriptFor):
Don't crash if a TerminatedExecutionError is thrown.

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeCall):
Report the actual error message. Check that the result has a value before attempting to make
a JSON::Value out of it.

Source/WebCore:

Test: inspector/worker/dom-debugger-event-after-terminate-crash.html

  • inspector/agents/InspectorDOMDebuggerAgent.cpp:

(WebCore::InspectorDOMDebuggerAgent::willHandleEvent):
Don't ASSERT(injectedScript.hasNoValue()) as it's possible for the event to be fired after
Worker.prototype.terminate, in which case InjectedScriptManager::injectedScriptFor will
now return an InjectedScript that would fail that ASSERT.

Source/WebInspectorUI:

  • UserInterface/Views/QuickConsole.js:

(WI.QuickConsole.prototype._handleFrameExecutionContextsCleared):
(WI.QuickConsole.prototype._handleTargetRemoved):
If a Worker is removed and is not the active execution context, still check to see if the
execution context picker should be hidden, such as if there is only one other execution
context (e.g. the main page execution context). Previously, the execution context picker
would only be hidden in this case if the Worker was the active execution context.

LayoutTests:

  • inspector/worker/resources/worker-echo.js: Added.
  • inspector/worker/dom-debugger-event-after-terminate-crash.html: Added.
  • inspector/worker/dom-debugger-event-after-terminate-crash-expected.txt: Added.
1:03 PM Changeset in webkit [260962] by commit-queue@webkit.org
  • 12 edits in trunk

Add SPI to change a WKWebView's CORS disabling pattern after initialization
https://bugs.webkit.org/show_bug.cgi?id=211211
<rdar://problem/61837474>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-30
Reviewed by Chris Dumez.

Source/WebCore:

  • page/Page.h:

(WebCore::Page::setCORSDisablingPatterns):

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _corsDisablingPatterns]):
(-[WKWebView _setCORSDisablingPatterns:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::corsDisablingPatterns const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::parseAndAllowAccessToCORSDisablingPatterns):
(WebKit::m_isNavigatingToAppBoundDomain):
(WebKit::WebPage::updateCORSDisablingPatterns):

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

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
12:50 PM Changeset in webkit [260961] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION: [ iOS ] http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion tests are flaky crashing, failing an timing out.
https://bugs.webkit.org/show_bug.cgi?id=211190

Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-30
Reviewed by Chris Dumez.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):
In tests that swap out the WebsiteDataStore, don't use the same paths as the other WebsiteDataStore.

12:43 PM Changeset in webkit [260960] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

WebCore::systemHasBattery() is unnecessarily expensive on iOS
https://bugs.webkit.org/show_bug.cgi?id=211240
<rdar://problem/62619971>

Reviewed by Geoffrey Garen.

Update WebCore::systemHasBattery() to return true unconditionally on
PLATFORM(IOS) and PLATFORM(WATCHOS) since iOS devices always have a
battery. Also return false unconditionally for PLATFORM(APPLETV).

  • platform/cocoa/SystemBattery.mm:

(WebCore::systemHasBattery):

12:19 PM Changeset in webkit [260959] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r176862, r210483): Leaks of BrowserWindowController in MiniBrowser/mac/AppDelegate.m
<https://webkit.org/b/211243>

Reviewed by Tim Horton.

  • MiniBrowser/mac/AppDelegate.m:

(-[BrowserAppDelegate createBrowserWindowController:]):

  • Autorelease return value to fix leak.

(-[BrowserAppDelegate newPrivateWindow:]):

  • Release controller to fix leak.
12:01 PM Changeset in webkit [260958] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r247490): Leak of MiniBrowserNSTextFinder._hideInterfaceCallback
<https://webkit.org/b/211242>

Reviewed by Tim Horton.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[MiniBrowserNSTextFinder dealloc]): Add.

  • Release _hideInterfaceCallback to fix the leak.
11:41 AM Changeset in webkit [260957] by Caio Lima
  • 2 edits in trunk/JSTests

Investigate stress/v8-bitint32-inc.js failure on mips
https://bugs.webkit.org/show_bug.cgi?id=210907

Unreviewed test gardening.

  • stress/v8-bigint32-inc.js:
11:36 AM Changeset in webkit [260956] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Disable low latency encoder on iOS
https://bugs.webkit.org/show_bug.cgi?id=211229

Reviewed by Eric Carlson.

  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:

This is not yet fully ready.

10:56 AM Changeset in webkit [260955] by Russell Epstein
  • 8 edits in branches/safari-609.2.9.0-branch/Source/WebKit

Apply patch. rdar://problem/62623152

10:52 AM Changeset in webkit [260954] by Russell Epstein
  • 8 edits in branches/safari-609.2.9.0-branch/Source

Versioning.

9:48 AM Changeset in webkit [260953] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Fix for crash in AXLogger.
https://bugs.webkit.org/show_bug.cgi?id=211236

Reviewed by Chris Fleizach.

Covered by existing tests.

Notifications may have a null AXCoreObject target, so must check for
nullity before streaming the object.

  • accessibility/AXLogger.cpp:

(WebCore::AXLogger::log):

9:01 AM Changeset in webkit [260952] by dbates@webkit.org
  • 9 edits in trunk

[iOS] Implement -markedTextRange
https://bugs.webkit.org/show_bug.cgi?id=211148
<rdar://problem/57865890>

Reviewed by Wenson Hsieh.

Source/WebKit:

Return the UITextRange-like object for the marked text range. Clients can use this range to
access the selection rects or query for the caret rect at the start or end of the range,
if desired.

  • Shared/EditorState.cpp:

(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):
Encode and decode the marked text selection rects and caret rects at the state and end
of the marked text range. This is the same information that we compute in order to
implement -selectedTextRange. I thought about collecting these details into class and
having editor state hold two instances of it: one for selected text and one for marked text.
However I decided against it because this class is unlikely to find use outside of what is
needed to implement -selectedTextRange and -markedTextRange. This is because only those
functions require such details so as to return an opaque UITextRange-derived object that
can be passed to- or its sub-objects can be passed to WKContentView's -caretRectForPosition
and -selectionRectsForRange. Literally, WKContentView does not support other UITextInput
functions that operate on UITextRange or UITextPosition. I didn't pursue fixing this in
general because 1) I don't need it to solve my problem and 2) UIWKDocumentContext SPI seems
to be the new general-purpose solution.

(WebKit::operator<<): Pretty print all the new marked text details we collect. While I am here,
use Vector::isEmpty() instead of Vector::size() to check if there are selection rects.

  • Shared/EditorState.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textFirstRect]):
(-[WKContentView textLastRect]):
Update code now that the marked text rects are in the post layout data sub-object.

(-[WKContentView _scaledCaretRectForSelectionStart:]): Extracted from -selectedTextRange.
(-[WKContentView _scaledCaretRectForSelectionEnd:]): Ditto.
(-[WKContentView selectedTextRange]): Write in terms of -_scaledCaretRectForSelectionStart
and -_scaledCaretRectForSelectionEnd. Also modernize the code while I am here.
(-[WKContentView markedTextRange]): Added.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPlatformEditorState const): Collect the marked text rects and the caret
rects at the start and end of the range.

Tools:

Add some tests.

  • TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm:

(TestWebKitAPI::applyAhemStyle): Added.
(TestWebKitAPI::TEST):

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

(-[TestWKWebView synchronouslyLoadHTMLStringAndWaitUntilAllImmediateChildFramesPaint:]): Added.

8:12 AM Changeset in webkit [260951] by cturner@igalia.com
  • 4 edits in trunk/Source/WebCore

[clang 11] fix build errors due to -WWc++11-narrowing
https://bugs.webkit.org/show_bug.cgi?id=211193

Reviewed by Adrian Perez de Castro.

Fixes the following errors,

Source/WebCore/html/MediaElementSession.cpp:1059:9: error: type 'WebCore::RenderMedia *' cannot be narrowed to 'bool' in initializer list [-Wc++11-narrowing]
m_element.renderer(),
~

Source/WebCore/style/StyleResolver.cpp:106:55: error: type 'const char [4]' cannot be narrowed to 'bool' in initializer list [-Wc++11-narrowing]
m_mediaQueryEvaluator = MediaQueryEvaluator { "all" };


Source/WebCore/style/StyleResolver.cpp:106:55: note: insert an explicit cast to silence this issue
m_mediaQueryEvaluator = MediaQueryEvaluator { "all" };


static_cast<bool>( )

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::hasRenderer const):
MediaElementSession was implicitly casting a pointer to a bool,
which is not allowed with modern Clang checks. Add a helper method
to encapsulate the now required static_cast<bool>.

  • html/MediaElementSession.cpp: Use the new helper method to see

if the HTMLMediaElement has an associated renderer.
(WebCore::MediaElementSession::updateMediaUsageIfChanged):

  • style/StyleResolver.cpp: This was calling MediaQueryEvaluator {

"all" }; and seemingly expecting to cast a const char[] to a bool,
or maybe String? It's confusing because of the MediaQueryEvaluator
API. If it was implicitly converting to bool then that could be
unintentional. Such casts are not allowed either now. The
MediaQueryEvaluator's default constructor says it returns true for
"all", which appears to be the original intent of this call, so I
replaced it with that.
(WebCore::Style::Resolver::Resolver):

7:39 AM Changeset in webkit [260950] by Simon Fraser
  • 10 edits
    4 adds in trunk

border-radius fails to clip iframe contents
https://bugs.webkit.org/show_bug.cgi?id=211199
Source/WebCore:

<rdar://problem/61945671>

Reviewed by Zalan Bujtas.

iframes need to use the same composited clipping strategy that we use for other
replaced elements with composited contents, like video and WebGL. To achieve this,
change GraphicsLayer to allow child GraphicsLayers to be parented in the contents
clipping layer, just like content layers are. (We don't want to do this unconditionally,
because it will change behavior for video with controls.)

Add GraphicsLayer::contentsRectClipsDescendants(), and used it to run code that
creates the contents clipping (and optional shape) layers even when no contents
layer is present. Fix up the sublayer list building to parent layers from
children in the contents clipping layer.

Tests: compositing/iframes/border-radius-composited-frame.html

compositing/iframes/border-uneven-radius-composited-frame.html

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::GraphicsLayer):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::contentsRectClipsDescendants const):
(WebCore::GraphicsLayer::setContentsRectClipsDescendants):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setContentsRectClipsDescendants):
(WebCore::GraphicsLayerCA::updateSublayerList):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateConfiguration):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::isCompositedSubframeRenderer):

  • rendering/RenderLayerCompositor.h:

LayoutTests:

Reviewed by Zalan Bujtas.

  • compositing/iframes/border-radius-composited-frame-expected.html: Added.
  • compositing/iframes/border-radius-composited-frame.html: Added.
  • compositing/iframes/border-uneven-radius-composited-frame-expected.html: Added.
  • compositing/iframes/border-uneven-radius-composited-frame.html: Added.
7:04 AM Changeset in webkit [260949] by Claudio Saavedra
  • 2 edits in trunk/Tools

[GTK4] Add navigation and reload buttons to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=211231

Reviewed by Adrian Perez de Castro.

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowUpdateNavigationMenu):
(webViewIsLoadingChanged):
(browserWindowSetupToolbarItem):
(browser_window_init):

6:55 AM Changeset in webkit [260948] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Adjust the available vertical space with the row span for cell layout
https://bugs.webkit.org/show_bug.cgi?id=211218

Reviewed by Antti Koivisto.

The vertical available space for a cell should include all row heights it spans.
(can't include test, current table layout logic is incompatible with LFC -and FF/Chrome.)

  • layout/tableformatting/TableFormattingContext.cpp:

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

6:38 AM Changeset in webkit [260947] by Philippe Normand
  • 8 edits in trunk

[SOUP] http/tests/media/video-accept-encoding.html fails
https://bugs.webkit.org/show_bug.cgi?id=211228

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The resource requests received by the network process always had
the accept-encoding setting enabled due to lack of IPC
(de)serialization for this boolean.

The patch also enables soup release logging, set WEBKIT_DEBUG=Network=debug.

  • platform/network/soup/ResourceRequest.h:

(WebCore::ResourceRequest::encodeWithPlatformData const):
(WebCore::ResourceRequest::decodeWithPlatformData):

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::soupLogPrinter):
(WebCore::SoupNetworkSession::setupLogger):

Tools:

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.setup_environ_for_server):

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.setup_environ_for_server):

LayoutTests:

  • platform/gtk/TestExpectations: Unflag passing tests.
5:58 AM Changeset in webkit [260946] by Carlos Garcia Campos
  • 6 edits in trunk/Source

[GTK4][X11] Add support for rendering web view contents
https://bugs.webkit.org/show_bug.cgi?id=211189

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add PlatformDisplayX11::visual() to get the X visual used for rendering.

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::visual const):

  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit:

Use GdkDisplayX11::xevent signal instead of filtering events that is no longer available in GTK4. GdkVisual no
longer exists either, so we get the X visual from the PlatformDisplay.

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::XDamageNotifier::add):
(WebKit::XDamageNotifier::remove):
(WebKit::XDamageNotifier::filterXDamageEvent):
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):
(WebKit::AcceleratedBackingStoreX11::snapshot):

  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:

(WebKit::AcceleratedSurfaceX11::AcceleratedSurfaceX11):
(WebKit::AcceleratedSurfaceX11::createPixmap):

5:57 AM Changeset in webkit [260945] by Andres Gonzalez
  • 8 edits in trunk/Source/WebCore

Add logging of AXIsolatedTree and AXNotifications.
https://bugs.webkit.org/show_bug.cgi?id=211214

Reviewed by Chris Fleizach.

  • Added operator<< implementations for AXIsolatedTree and AX notifications.
  • Added corresponding AXLogger::log overloads for the above types.
  • To set the root node and the focused node we are now always using

setRootNodeID and setFocusedNodeID respectively. Therefore, before
returning the root or the focused nodes, it is necessary to applyPendingChanges.

  • accessibility/AXLogger.cpp:

(WebCore::AXLogger::add): Used for recursive logging of the hierarchy.
(WebCore::AXLogger::log):
(WebCore::operator<<):

  • accessibility/AXLogger.h:
  • accessibility/AXObjectCache.cpp:

Added logging of the isolated tree when it's generated and before and after updates.
(WebCore::AXObjectCache::isolatedTreeFocusedObject):
(WebCore::AXObjectCache::generateIsolatedTree):
(WebCore::AXObjectCache::updateIsolatedTree):

  • accessibility/AXObjectCache.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::focusedUIElement const):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::createTreeForPageID):
(WebCore::AXIsolatedTree::removeTreeForPageID):
(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::focusedNode):
(WebCore::AXIsolatedTree::rootNode):
(WebCore::AXIsolatedTree::setRootNodeID):
(WebCore::AXIsolatedTree::setFocusedNodeID):
(WebCore::AXIsolatedTree::applyPendingChanges):
(WebCore::AXIsolatedTree::focusedUIElement): Renamed focusedNode for naming consistency.
(WebCore::AXIsolatedTree::setRootNode): Deleted. Using setRootNodeID instead,
(WebCore::AXIsolatedTree::setFocusedNode): Deleted. Use setFocusedNodeID instead.

  • accessibility/isolatedtree/AXIsolatedTree.h:

(WebCore::AXIsolatedTree::treeID const):
(WebCore::AXIsolatedTree::treeIdentifier const): renamed treeID for naming consistency.

5:52 AM Changeset in webkit [260944] by Andres Gonzalez
  • 4 edits in trunk/Tools

Fix for crashes in accessibility/accessibility-node-memory-management.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=211215

Reviewed by Chris Fleizach.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::executeOnAXThreadIfPossible):
Removed the call CFRunLoopRunInMode and instead we'll use setTimeout in
each of the tests that require to complete a spin of the main run loop.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:

(WTR::AccessibilityController::accessibleElementById):
Need to retain ObjectiveC object when it is retrieved from the secondary thread.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::getChildrenWithRange): Dito as above.

5:25 AM Changeset in webkit [260943] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

REGRESSION(r260822): Apparently broke media/track/track-cue-missing.html on Mac
https://bugs.webkit.org/show_bug.cgi?id=211194

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-30
Reviewed by Xabier Rodriguez-Calvar.

  • media/track/track-cue-missing-expected.txt:
  • media/track/track-cue-missing.html: Prospective fix, set display mode to automatic.
5:10 AM Changeset in webkit [260942] by Claudio Saavedra
  • 2 edits in trunk/Tools

[GTK4] Bring back the URI entry to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=211186

Reviewed by Carlos Garcia Campos.

GTK4 support for the URI entry added, using a GtkCenterBox
to start layouting a modern version of the toolbar.

  • MiniBrowser/gtk/BrowserWindow.c:

(activateUriEntryCallback):
(webViewURIChanged):
(updateUriEntryIcon):
(faviconChanged):
(insertLinkCommandCallback):
(browser_window_init):

4:41 AM Changeset in webkit [260941] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKitLegacy/mac

Remove -[WebView setCSSAnimationsSuspended:]
https://bugs.webkit.org/show_bug.cgi?id=211227
<rdar://problem/62439454>

Patch by Antoine Quint <Antoine Quint> on 2020-04-30
Reviewed by Antti Koivisto.

This SPI has no user and it has no equivalent for the new animation engine.

  • WebView/WebView.mm:
  • WebView/WebViewPrivate.h:
4:31 AM Changeset in webkit [260940] by chris.reid@sony.com
  • 2 edits in trunk/Source/WebInspectorUI

[CMake] Don't copy inspector resources in every incremental build
https://bugs.webkit.org/show_bug.cgi?id=211212

Reviewed by Žan Doberšek.

Moving the copy to a custom_command with a stamp so the copy isn't done each build.

  • CMakeLists.txt:
4:23 AM Changeset in webkit [260939] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK4] Add support click events
https://bugs.webkit.org/show_bug.cgi?id=211175

Reviewed by Adrian Perez de Castro.

Handle button pressed and released events using a GtkGestureClick.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(ClickCounter::currentClickCountForGdkButtonEvent):
(webkitWebViewBaseButtonPressed):
(webkitWebViewBaseButtonReleased):
(webkitWebViewBaseConstructed):
(webkitWebViewBaseResetClickCounter):

3:43 AM Changeset in webkit [260938] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, GStreamer build warning fix after r260755.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcMakeRequest): There is no need to capture src in the
closure, its protector is used instead.

1:12 AM Changeset in webkit [260937] by Philippe Normand
  • 6 edits
    1 copy
    1 move
    2 adds
    3 deletes in trunk

[GStreamer] fast/mediastream/get-user-media-device-id.html failing
https://bugs.webkit.org/show_bug.cgi?id=190576

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The test was failing due to deviceId invalid constraint, which led
me to rewrite the GStreamer Mock sources, removing various hacks
and appsrc usage, which is not needed because we rely on
audioSamplesAvailable and videoSamplesAvailable notifications.

This patch also fixes the audio mock, which was generating silence
until now.

  • platform/GStreamer.cmake:
  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(WebCore::WebKitMediaStreamTrackObserver::WebKitMediaStreamTrackObserver):

  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp: Removed.
  • platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp: Removed.
  • platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h: Removed.
  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp: Added.

(WebCore::MockRealtimeAudioSource::create):
(WebCore::MockRealtimeAudioSourceGStreamer::createForMockAudioCapturer):
(WebCore::MockRealtimeAudioSourceGStreamer::MockRealtimeAudioSourceGStreamer):
(WebCore::MockRealtimeAudioSourceGStreamer::render):
(WebCore::MockRealtimeAudioSourceGStreamer::addHum):
(WebCore::MockRealtimeAudioSourceGStreamer::reconfigure):

  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.h: Copied from Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h.
  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp: Added.

(WebCore::MockRealtimeVideoSource::create):
(WebCore::MockRealtimeVideoSourceGStreamer::createForMockDisplayCapturer):
(WebCore::MockRealtimeVideoSourceGStreamer::MockRealtimeVideoSourceGStreamer):
(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):

  • platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h: Renamed from Source/WebCore/platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h.
  • platform/mock/MockRealtimeVideoSource.h:

LayoutTests:

  • platform/gtk/TestExpectations: Unskip now-passing mediastream tests.
1:02 AM Changeset in webkit [260936] by svillar@igalia.com
  • 3 edits in trunk/LayoutTests/imported/w3c

[WebXR] Import latest changes from webxr/resources in tests
https://bugs.webkit.org/show_bug.cgi?id=211129

Reviewed by Žan Doberšek.

The code in webxr_utils.js had some engine detecting code that was not
working, and thus was unconditionally loading Chromium-only resources when
running tests with other engines (as WebKit). I fixed it upstream in
https://github.com/web-platform-tests/wpt/pull/23200 and now I'm importing it
along with a recent fix in webxr_test_constants.js.

  • web-platform-tests/webxr/resources/webxr_test_constants.js: Reverse position.
  • web-platform-tests/webxr/resources/webxr_util.js:

(xr_promise_test): Properly detect browser engines.

Apr 29, 2020:

10:30 PM Changeset in webkit [260935] by Noam Rosenthal
  • 2 edits in trunk/LayoutTests

[Mac] http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-num-chars.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=211221

Unreviewed test gardening.

  • platform/mac/TestExpectations:

Mark as flaky.

9:16 PM Changeset in webkit [260934] by Simon Fraser
  • 8 edits in trunk/Tools

Add a MiniBrowser option to inset the web view so it doesn't fill the window
https://bugs.webkit.org/show_bug.cgi?id=211216

Reviewed by Tim Horton.

Add a menu item, Debug > Inset Web View to MiniBrowser which insets the view from
the edges of the window, making it possible to debug coordinate conversion issues.

The state is stored in Settings, but unlike other Settings this one doesn't
get populated into the Settings menu because it makes more logical sense grouped
with the options to Hide and Remove the web view.

  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController toggleFullWindowWebView:]):
(-[BrowserWindowController webViewFillsWindow]):
(-[BrowserWindowController setWebViewFillsWindow:]):

  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController initWithMenu:]):
(-[SettingsController webViewFillsWindow]):
(-[SettingsController setWebViewFillsWindow:]):

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController validateMenuItem:]):
(-[WK1BrowserWindowController didChangeSettings]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController didChangeSettings]):

9:16 PM Changeset in webkit [260933] by Simon Fraser
  • 5 edits in trunk/Source

Use initializers in PlatformMouseEvent and WebEvent
https://bugs.webkit.org/show_bug.cgi?id=211217

Reviewed by Tim Horton.

Source/WebCore:

Use initializers im PlatformMouseEvent.

  • platform/PlatformMouseEvent.h:

(WebCore::PlatformMouseEvent::PlatformMouseEvent):

Source/WebKit:

Use initializers im WebEvent.

  • Shared/WebEvent.h:
  • Shared/WebMouseEvent.cpp:
8:03 PM Changeset in webkit [260932] by Brent Fulgham
  • 11 edits in trunk/Source/WebKit

Improve SandboxExtension::HandleArray to reduce boilerplate
https://bugs.webkit.org/show_bug.cgi?id=211103
<rdar://problem/62533632>

Reviewed by Per Arne Vollan.

There are a number of boilerplate patterns needed when using SandboxExtension::HandleArray.
We could make these simpler and less error prone by improving the class.

This patch:

  1. Adds convenience methods to create and consume HandleArrays.
  2. Updates uses of HandleArray to use the convenience methods.

Tested by existing tests.

  • Platform/IPC/FormDataReference.h:

(IPC::FormDataReference::decode):

  • Shared/Cocoa/SandboxExtensionCocoa.mm:

(WebKit::SandboxExtension::createHandlesForFiles):
(WebKit::SandboxExtension::createHandlesForMachLookup):
(WebKit::SandboxExtension::consumePermanently):

  • Shared/SandboxExtension.h:

(WebKit::createHandlesForFiles):
(WebKit::SandboxExtension::consumePermanently):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockPreferenceServiceIfNeeded):

  • UIProcess/WebPageProxy.cpp:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::getPathnamesForType):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::extendSandboxForFilesFromOpenPanel):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::unblockPreferenceService):

8:00 PM Changeset in webkit [260931] by Ross Kirsling
  • 13 edits in trunk/Source/JavaScriptCore

Ensure Intl classes don't have naming conflicts with unified builds
https://bugs.webkit.org/show_bug.cgi?id=211213

Reviewed by Yusuke Suzuki.

Each Intl class usually has an array named relevantExtensionsKeys and a function named localeData.
This can result in redefinition errors when unified builds put two of them into the same translation unit.
Some are already guarding against this with an internal namespace while others are not.

As a uniform approach, this patch makes each localeData function a static method and
puts each relevantExtensionsKeys array (as well as any constants for its indices) into an internal namespace.

Furthermore, since three different classes are defining an identical UFieldPositionIteratorDeleter,
this patch consolidates them into one definition in IntlObject.

  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::sortLocaleData): Renamed from JSC::sortLocaleData.
(JSC::IntlCollator::searchLocaleData): Renamed from JSC::searchLocaleData.
(JSC::IntlCollator::initializeCollator):

  • runtime/IntlCollator.h:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::localeData): Renamed from JSC::IntlDTFInternal::localeData.
(JSC::toDateTimeOptionsAnyDate): Renamed from JSC::IntlDTFInternal::toDateTimeOptionsAnyDate.
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::UFieldPositionIteratorDeleter::operator() const): Deleted.

  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::localeData): Renamed from JSC::IntlNFInternal::localeData.
(JSC::IntlNumberFormat::initializeNumberFormat):
(JSC::UFieldPositionIteratorDeleter::operator() const): Deleted.

  • runtime/IntlNumberFormat.h:
  • runtime/IntlObject.cpp:

(JSC::UFieldPositionIteratorDeleter::operator() const): Added.

  • runtime/IntlObject.h:
  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::localeData): Renamed from JSC::localeData.

  • runtime/IntlPluralRules.h:
  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::localeData): Renamed from JSC::localeData.
(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat):
(JSC::UFieldPositionIteratorDeleter::operator() const): Deleted.

  • runtime/IntlRelativeTimeFormat.h:
7:47 PM Changeset in webkit [260930] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Gardening Wayland compositing tests.

Unreviewed test gardening.

  • platform/gtk-wayland/TestExpectations:
6:35 PM Changeset in webkit [260929] by Alan Coon
  • 2 edits in branches/safari-610.1.11-branch/Source/WebKit

Cherry-pick r260920. rdar://problem/62627737

Unreviewed sandbox compile fix.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

5:50 PM Changeset in webkit [260928] by Chris Dumez
  • 11 edits in trunk

REGRESSION(r260791) Network process fails to suspend promptly
https://bugs.webkit.org/show_bug.cgi?id=211207
<rdar://problem/62620454>

Reviewed by Alex Christensen.

Source/WebKit:

After r260791, all WebResourceLoadStatisticsStore instances share a single WorkQueue.
As a result, the logic to suspend WebResourceLoadStatisticsStore's WorkQueues in
NetworkProcess::prepareToSuspend() needs to get updated to reflect this.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::suspend):
(WebKit::WebResourceLoadStatisticsStore::resume):

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

(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

5:10 PM Changeset in webkit [260927] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] Skip fast/text/text-indent-inside-float.html

Unreviewed test gardening.

  • platform/win/TestExpectations:
4:42 PM Changeset in webkit [260926] by Kate Cheney
  • 2 edits in trunk/Tools

Add better handling of an uncleared bundle identifier in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=211195
<rdar://problem/62117145>

Reviewed by Alexey Proskuryakov.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions):

4:37 PM Changeset in webkit [260925] by Alan Coon
  • 2 edits in branches/safari-610.1.11-branch/Source/WebKit

Cherry-pick r260904. rdar://problem/62622460

Set _STAttributionDisplayName to iOS WebContent Info plist
https://bugs.webkit.org/show_bug.cgi?id=210772
<rdar://problem/62075201>

Reviewed by Eric Carlson.

Set _STAttributionDisplayName to 'Website' value.

  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-iOS.plist:

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

4:37 PM Changeset in webkit [260924] by Alan Coon
  • 12 edits
    1 add in branches/safari-610.1.11-branch/Source

Cherry-pick r260650. rdar://problem/62622460

Call STDynamicActivityAttributionPublisher in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=210772
<rdar://problem/62075201>

Patch by Youenn Fablet <youenn@apple.com> and Luming Yin <luming_yin@apple.com> on 2020-04-24
Reviewed by Geoffrey Garen.

Source/WebKit:

Call STDynamicActivityAttributionPublisher in WebProcess to make use of the newly added plist entry.
Use of a sandbox extension to protect this call.

  • Configurations/WebKit.xcconfig:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Scripts/process-entitlements.sh:
  • Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode):
  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-iOS.plist:
  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/InfoPlist.strings: Added.
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

  • wtf/PlatformHave.h:

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

4:31 PM Changeset in webkit [260923] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

REGRESSION(r260889): TestContextMenu:/webkit/WebKitWebView/populate-menu no longer passes
https://bugs.webkit.org/show_bug.cgi?id=211203

Reviewed by Aakash Jain.

No new tests needed.

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): Attach the correct action
group to the popover widget, instead of a temporary which will always be empty.

4:08 PM Changeset in webkit [260922] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r246395): Leak of ARQuickLookPreviewItem and ARQuickLookWebKitItem in -[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]
<https://webkit.org/b/211197>
<rdar://problem/62612483>

Reviewed by Darin Adler.

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:

(-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]):

  • Use RetainPtr<> and adoptNS() to fix leaks.
3:45 PM Changeset in webkit [260921] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Remove the debug ASSERT in ImageDecoderAVFObjC::storeSampleBuffer()
https://bugs.webkit.org/show_bug.cgi?id=211191
<rdar://problem/62542285>

Reviewed by Said Abou-Hallawa.

r259594 added an iterator check and a RELEASE_LOG_ERROR for that check, making this ASSERT superfluous.

  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:

(WebCore::ImageDecoderAVFObjC::storeSampleBuffer):

3:37 PM Changeset in webkit [260920] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed sandbox compile fix.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:16 PM Changeset in webkit [260919] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed follow-up to r260848.
LowerDFGToB3 has its own isFunction which should NOT have been renamed.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCreateThis):
(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileIsObjectOrNull):
(JSC::FTL::DFG::LowerDFGToB3::compileIsFunction):
(JSC::FTL::DFG::LowerDFGToB3::buildTypeOf):
(JSC::FTL::DFG::LowerDFGToB3::isFunction): Renamed from isCallable.

3:13 PM Changeset in webkit [260918] by Alan Coon
  • 5 edits in branches/safari-610.1.11-branch

Cherry-pick r260408. rdar://problem/62617775

App-bound domain behavior should abide by the limitsNavigationsToAppBoundDomains argument in WKWebView configuration
https://bugs.webkit.org/show_bug.cgi?id=210769
<rdar://problem/62065241>

Reviewed by Brent Fulgham.

Source/WebKit:

Changes app-bound domain behavior to be triggered by the value of
limitsNavigationsToAppBoundDomains, a WebView configuration flag.
If the WebView has this parameter set and is currently navigating to
an app bound domain, then app-bound privileges will be granted.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setIsNavigatingToAppBoundDomainAndCheckIfPermitted): Update this function to return a boolean to indicate whether the navigation should fail. A failure should occur if a WebView has set the limitsNavigationsToAppBoundDomains flag and attempts to navigate away from an app-bound domain.

If the limitsNavigationsToAppBoundDomains value has not been set to
true, maintain non-app bound behavior regardless of whether the domain
is app-bound or not.

(WebKit::WebPageProxy::decidePolicyForNavigationAction):
Check the result of setIsNavigatingToAppBoundDomainAndCheckIfPermitted and fail the
navigation if needed, with both RELEASE logging and an appropriate
error message.

(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain): Deleted.

  • UIProcess/WebPageProxy.h: Renamed for clarity.

Tools:

Removes any tests for swapping between app-bound and non app-bound
domains as this behavior is no longer supported.

Sets the limitsNavigationsToAppBoundDomains flag for tests which should
have app-bound behavior to maintain test functionality.

Adds 5 new tests for new behavior.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm: (TEST): (-[AppBoundDomainDelegate webView:didFinishNavigation:]): (-[AppBoundDomainDelegate webView:didFailProvisionalNavigation:withError:]): (-[AppBoundDomainDelegate waitForDidFinishNavigation]): (-[AppBoundDomainDelegate waitForDidFailProvisionalNavigationError]):

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

2:57 PM Changeset in webkit [260917] by sbarati@apple.com
  • 2 edits in trunk/Tools

build-jsc should quote the value of compile flags it forwards
https://bugs.webkit.org/show_bug.cgi?id=211204

Reviewed by Mark Lam.

We should quote outgoing compile flags that have an equal in them. Before,
if build-jsc were invoked like:
$ build-jsc --release ARCHS="x86_64 i386"
It'd invoke make like:
$ make release ARCHS=x86_64 i386
leading us to try to build the "i386" target, which doesn't exist.

This patch makes us invoke make like so:
$ make release ARCHS="x86_64 i386"

  • Scripts/build-jsc:

(buildMyProject):

2:43 PM Changeset in webkit [260916] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] Skip fast/text/text-indent-inside-float.html

Unreviewed test gardening.

Apparently float sizing/ahem font produces a different result on iOS.

  • platform/ios/TestExpectations:
2:39 PM Changeset in webkit [260915] by Alexey Shvayka
  • 4 edits in trunk

AsyncFromSyncIterator methods should not pass absent values
https://bugs.webkit.org/show_bug.cgi?id=211147

Reviewed by Ross Kirsling.

JSTests:

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

Source/JavaScriptCore:

This patch implements minor spec change [1] to match async and sync iteration
from the perspective of userland next and return iterator methods.
throw method always receives an argument, yet we align with others to be
consistent and future-proof.

This change is already implemented in SpiderMonkey.

[1]: https://github.com/tc39/ecma262/pull/1776

  • builtins/AsyncFromSyncIteratorPrototype.js:
2:18 PM Changeset in webkit [260914] by commit-queue@webkit.org
  • 7 edits in trunk

Add WKNavigationDelegate API shouldAllowDeprecatedTLS
https://bugs.webkit.org/show_bug.cgi?id=210981
<rdar://problem/61742976>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-29
Reviewed by Geoffrey Garen.

Source/WebKit:

  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::shouldAllowLegacyTLS):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(-[TLSNavigationDelegate receivedShouldAllowDeprecatedTLS]):
(-[TLSNavigationDelegate webView:authenticationChallenge:shouldAllowDeprecatedTLS:]):
(TestWebKitAPI::TEST):
(-[TLSNavigationDelegate receivedShouldAllowLegacyTLS]): Deleted.
(-[TLSNavigationDelegate _webView:authenticationChallenge:shouldAllowLegacyTLS:]): Deleted.

  • TestWebKitAPI/config.h:
1:39 PM Changeset in webkit [260913] by mark.lam@apple.com
  • 4 edits in trunk/Source

Freezing of Gigacage and JSC Configs should be thread safe.
https://bugs.webkit.org/show_bug.cgi?id=211201
<rdar://problem/62597619>

Reviewed by Yusuke Suzuki.

Source/bmalloc:

  • bmalloc/Gigacage.cpp:

(Gigacage::bmalloc::permanentlyFreezeGigacageConfig):

Source/JavaScriptCore:

If a client creates multiple VM instances in different threads concurrently, the
following race can occur:

Config::permanentlyFreeze() contains the following code:

if (!g_jscConfig.isPermanentlyFrozen) Point P1

g_jscConfig.isPermanentlyFrozen = true; Point P2

Let's say there are 2 threads T1 and T2.

  1. T1 creates a VM and gets to point P1, and sees that g_jscConfig.isPermanentlyFrozen is not set. T1 is about to execute P2 when it gets pre-empted.
  1. T2 creates a VM and gets to point P1, and sees that g_jscConfig.isPermanentlyFrozen is not set. T2 proceeds to point P2 and sets g_jscConfig.isPermanentlyFrozen to true. T2 goes on to freeze the Config and makes it not writable.
  1. T1 gets to run again, and proceeds to point P2. T1 tries to set g_jscConfig.isPermanentlyFrozen to true. But because the Config has been frozen against writes, the write to g_jscConfig.isPermanentlyFrozen results in a crash.

This is a classic TOCTOU bug. The fix is simply to ensure that only one thread
can enter Config::permanentlyFreeze() at a time.

Ditto for Gigacage::permanentlyFreezeGigacageConfig().

  • runtime/JSCConfig.cpp:

(JSC::Config::permanentlyFreeze):

1:16 PM Changeset in webkit [260912] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

[iOS][WK2] Temporarily stop using RunningBoard for the foreground process assertion
https://bugs.webkit.org/show_bug.cgi?id=211196
<rdar://problem/62535822>

Reviewed by Tim Horton.

Temporarily stop using RunningBoard for the foreground process assertion. On recent iOS builds, there
are issues where this assertion can time out after 30 seconds, even though the process is still
foreground.

  • Configurations/WebKit.xcconfig:
  • UIProcess/ProcessAssertion.h:
  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::runningBoardNameForAssertionType):
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::~ProcessAssertion):

1:06 PM Changeset in webkit [260911] by Fujii Hironori
  • 2 edits in trunk/Source/WTF

[Win] Deadlock in WTF::Thread::didExit() while WebKitNetworkProcess.exe is exiting
https://bugs.webkit.org/show_bug.cgi?id=210955

Reviewed by Don Olmstead.

The thread_local object of the main thread is destructed after
Windows terminates other threads. If the terminated thread was
holding a mutex, trying to lock the mutex causes deadlock.

  • wtf/win/ThreadingWin.cpp:

(WTF::Thread::ThreadHolder::~ThreadHolder): Do nothing if the
thread is the main thread.

12:38 PM Changeset in webkit [260910] by Simon Fraser
  • 7 edits in trunk

Simplify contents clipping layer geometry
https://bugs.webkit.org/show_bug.cgi?id=211162

Reviewed by Zalan Bujtas.

Source/WebCore:

GraphicsLayerCA uses a contents clipping layer, with an optional shape layer, to support
clipping replaced elements with composited contents, like video and WebGL canvas.

A future patch will use this code path for composited subframes. To achieve this,
we need to host the layers of child GraphicsLayers under m_contentsClippingLayer, but
without the GraphicsLayer client having to do geometry math. We can do this by setting
the bounds origin of m_contentsClippingLayer to adjust for its position relative
to the GraphicsLayer origin.

This patch does that, adjusting the position of the contents layer accordingly.
The shape mask layer also needs adjusting; its position has to be at the layer's
bounds origin, and the shape itself needs to have a zero origin.

Tested by existing tests.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateSublayerList):
(WebCore::GraphicsLayerCA::updateClippingStrategy):
(WebCore::GraphicsLayerCA::updateContentsRects):

LayoutTests:

New content layer positions.

  • compositing/video/video-object-fit.html:
  • compositing/video/video-object-position-expected.txt:
  • platform/ios/compositing/video/video-object-position-expected.txt:
  • platform/mac/compositing/video/video-object-fit-expected.txt:
12:12 PM Changeset in webkit [260909] by Wenson Hsieh
  • 3 edits in trunk/LayoutTests

editing/selection/ios/selection-handles-after-touch-end.html is failing on iOS 13.4 after r260367
https://bugs.webkit.org/show_bug.cgi?id=211185
<rdar://problem/62560030>

Reviewed by Tim Horton.

Clean up a test and test expectation after r260367. Before this change, the test was trying to verify
that selection handles didn't show up before ending a long press when selecting text. However, the test
expectation in platform/ios/editing/selection/ios/selection-handles-after-touch-end-expected.txt prior
to r260367, which overrode editing/selection/ios/selection-handles-after-touch-end-expected.txt, was
verifying that selection handles showed up after making the text selection, but before ending the touch.
r260367 removed this redundant test expectation in favor of a single test expectation file in
editing/selection/ios, but did not transfer over the expectation of non-empty grabber rects before
ending the touch. This is because the version of the iOS SDK I was testing against happened to _not_
show selection handles before ending the touch.

In a more recent version of that iOS SDK, selection handles are now shown again before ending the touch,
which matches behavior expected in iOS 13.4 once again. This means that the expectation across both
versions of iOS is, once again, to show selection handles before ending the touch. As such, fix this
failing test by refactoring it to only verify that selection handles are present after ending the touch.
We can also take this opportunity to rewrite parts of the test to use more modern idioms, like the
testing facilities in js-test.js and ui-helper.js.

  • editing/selection/ios/selection-handles-after-touch-end-expected.txt:
  • editing/selection/ios/selection-handles-after-touch-end.html:
12:01 PM Changeset in webkit [260908] by commit-queue@webkit.org
  • 26 edits
    6 copies
    3 adds in trunk

REGRESSION (r256784?): Shadertoy demo no longer works in Safari
https://bugs.webkit.org/show_bug.cgi?id=210994

Patch by Kenneth Russell <kbr@chromium.org> on 2020-04-29
Reviewed by Dean Jackson.

Source/WebCore:

Certain Shadertoy examples stopped working with the ANGLE backend
for WebGL because rendering to floating-point render targets was
no longer being enabled implicitly along with the
OES_texture_float extension.

Add support for the WebGL 1.0 extensions
EXT_color_buffer_half_float and WEBGL_color_buffer_float, and the
WebGL 2.0 extension EXT_color_buffer_float. Enable these
implicitly for WebGL 1.0 in the OES_texture_float and
OES_texture_half_float extensions, restoring the previous
functionality.

Translate 32-bit floating point texture formats appropriately for
the ANGLE backend. Fix some failures in previously-skipped
conformance tests. The new code passes the more stringent
top-of-tree WebGL 1.0.4 and 2.0.1 conformance tests related to
floating-point texture renderability, which are not yet in the
WebKit repository.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • html/canvas/EXTColorBufferFloat.cpp: Copied from Source/WebCore/html/canvas/OESTextureHalfFloat.cpp.

(WebCore::EXTColorBufferFloat::EXTColorBufferFloat):
(WebCore::EXTColorBufferFloat::getName const):
(WebCore::EXTColorBufferFloat::supported):

  • html/canvas/EXTColorBufferFloat.h: Copied from Source/WebCore/html/canvas/OESTextureFloat.h.
  • html/canvas/EXTColorBufferFloat.idl: Added.
  • html/canvas/EXTColorBufferHalfFloat.cpp: Copied from Source/WebCore/html/canvas/OESTextureFloat.cpp.

(WebCore::EXTColorBufferHalfFloat::EXTColorBufferHalfFloat):
(WebCore::EXTColorBufferHalfFloat::getName const):
(WebCore::EXTColorBufferHalfFloat::supported):

  • html/canvas/EXTColorBufferHalfFloat.h: Copied from Source/WebCore/html/canvas/OESTextureFloat.h.
  • html/canvas/EXTColorBufferHalfFloat.idl: Added.
  • html/canvas/OESTextureFloat.cpp:

(WebCore::OESTextureFloat::OESTextureFloat):
(WebCore::OESTextureFloat::supported):

  • html/canvas/OESTextureFloat.h:
  • html/canvas/OESTextureHalfFloat.cpp:

(WebCore::OESTextureHalfFloat::OESTextureHalfFloat):
(WebCore::OESTextureHalfFloat::supported):

  • html/canvas/OESTextureHalfFloat.h:
  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):
(WebCore::WebGL2RenderingContext::getParameter):

  • html/canvas/WebGLColorBufferFloat.cpp: Copied from Source/WebCore/html/canvas/OESTextureFloat.cpp.

(WebCore::WebGLColorBufferFloat::WebGLColorBufferFloat):
(WebCore::WebGLColorBufferFloat::getName const):
(WebCore::WebGLColorBufferFloat::supported):

  • html/canvas/WebGLColorBufferFloat.h: Copied from Source/WebCore/html/canvas/OESTextureFloat.h.
  • html/canvas/WebGLColorBufferFloat.idl: Added.
  • html/canvas/WebGLExtension.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
(WebCore::WebGLRenderingContext::getParameter):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::extensionIsEnabled):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/angle/ExtensionsGLANGLE.cpp:

(WebCore::ExtensionsGLANGLE::adjustWebGL1TextureInternalFormat):
(WebCore::ExtensionsGLANGLE::texImage2DRobustANGLE):

  • platform/graphics/angle/ExtensionsGLANGLE.h:
  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::texImage2DDirect):

LayoutTests:

Update tex-mipmap-levels.html to top-of-tree to fix incorrect test
cases. Rebaseline layout tests which are either now all passing,
or have progressed. Temporarily skip a couple of tests, previously
skipped because of lack of the EXT_color_buffer_float extension,
which are failing because of Bug 211156.

  • TestExpectations:
  • fast/canvas/webgl/readPixels-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/copy-texture-image-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt:
  • webgl/2.0.0/resources/webgl_test_files/conformance2/textures/misc/tex-mipmap-levels.html:
11:53 AM Changeset in webkit [260907] by jer.noble@apple.com
  • 2 edits in trunk/Source/WTF

[Mac] Adopt kMTSupportNotification_ShouldPlayHDRVideoChanged notification
https://bugs.webkit.org/show_bug.cgi?id=211028
<rdar://problem/61173289>

Reviewed by Aakash Jain.

Follow-up test failure fix; correct the debug/non-debug variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE_WITH_EXPORT.

  • wtf/win/SoftLinking.h:
11:03 AM Changeset in webkit [260906] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] JSStringJoiner is missing BigInt handling
https://bugs.webkit.org/show_bug.cgi?id=211174

Reviewed by Mark Lam.

JSTests:

  • stress/bigint-to-string-in-array.js: Added.

(shouldBe):

Source/JavaScriptCore:

JSStringJoiner missed handling of BigInt (specifically BigInt32) and appending empty string incorrectly.
In debug build, assertion hits. We should support BigInt in JSStringJoiner.

  • runtime/JSStringJoiner.h:

(JSC::JSStringJoiner::appendWithoutSideEffects):

10:52 AM Changeset in webkit [260905] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Header is blank on https://nader.org
https://bugs.webkit.org/show_bug.cgi?id=205747
<rdar://problem/58305910>

Reviewed by Simon Fraser.

Source/WebCore:

Do not use stale containing block width value while computing preferred width.

Test: fast/text/text-indent-inside-float.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):

LayoutTests:

  • fast/text/text-indent-inside-float-expected.html: Added.
  • fast/text/text-indent-inside-float.html: Added.
  • platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt:
10:20 AM Changeset in webkit [260904] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Set _STAttributionDisplayName to iOS WebContent Info plist
https://bugs.webkit.org/show_bug.cgi?id=210772
<rdar://problem/62075201>

Reviewed by Eric Carlson.

Set _STAttributionDisplayName to 'Website' value.

  • WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-iOS.plist:
10:20 AM Changeset in webkit [260903] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Take row span into account when checking for missing cells
https://bugs.webkit.org/show_bug.cgi?id=211184

Reviewed by Antti Koivisto.

The tree builder looks for missing cells in the table grid and fills in the gaps with empty cells.
This patch takes row spanning into account and make sure we don't end up adding an extra, redundant cell.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildTableStructure):

9:55 AM Changeset in webkit [260902] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Update SWServer.cpp originURL after https://trac.webkit.org/changeset/260707
https://bugs.webkit.org/show_bug.cgi?id=211169

Reviewed by Alex Christensen.

  • workers/service/server/SWServer.cpp:

(WebCore::originURL):
No need to dereference port since URL::setPort takes an Optional.

9:50 AM Changeset in webkit [260901] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

http/tests/media/media-stream/device-change-event-in-iframe.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211119
<rdar://problem/62457151>

Reviewed by Eric Carlson.

Make sure duplicate ondevicechange events do not create flakiness.

  • http/tests/media/media-stream/device-change-event-in-iframe-expected.txt:
  • http/tests/media/media-stream/device-change-event-in-iframe.html:
  • http/tests/media/media-stream/resources/device-change-iframe.html:
9:17 AM Changeset in webkit [260900] by Kate Cheney
  • 27 edits
    4 adds
    4 deletes in trunk

Refactor layout tests after updates to In-App Browser Privacy
https://bugs.webkit.org/show_bug.cgi?id=211146
<rdar://problem/62524127>

Reviewed by Brent Fulgham.

Source/WebKit:

Tests: http/tests/in-app-browser-privacy/app-bound-domain-gets-app-bound-session.html

http/tests/in-app-browser-privacy/non-app-bound-domain-does-not-get-app-bound-session.html

Removes setInAppBrowserPrivacyEnabled, which is no longer needed by
layout tests. Setting this in TestOptions is enough.
getWebViewCategory is not needed because this patch deletes the only test
which uses it. Lastly, adds a new function to clear app-bound sessions
now that multiple tests are checking for them.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::clearAppBoundSession):
(WebKit::NetworkProcess::setInAppBrowserPrivacyEnabled): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::clearAppBoundSession):
(WebKit::NetworkSession::setInAppBrowserPrivacyEnabled): Deleted.

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

(WebKit::NetworkSessionCocoa::appBoundSession):
(WebKit::NetworkSessionCocoa::clearAppBoundSession):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreClearAppBoundSession):
(WKWebsiteDataStoreSetInAppBrowserPrivacyEnabled): Deleted.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _getWebViewCategoryFor:completionHandler:]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::clearAppBoundSession):
(WebKit::NetworkProcessProxy::setInAppBrowserPrivacyEnabled): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::clearAppBoundSession):
(WebKit::WebsiteDataStore::setInAppBrowserPrivacyEnabled): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

Removes two unused functions after updating the test cases.
setInAppBrowserPrivacyEnabled is no longer needed, setting this
in TestOptions is enough. getWebViewCategory is not needed because
this patch deletes the only test which uses it.

Adds a function to clear app-bound sessions between tests now that
multiple tests check for them.

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

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::getWebViewCategory): Deleted.
(WTR::TestRunner::callDidReceiveWebViewCategoryCallback): Deleted.
(WTR::TestRunner::setInAppBrowserPrivacyEnabled): Deleted.
(WTR::TestRunner::callDidSetInAppBrowserPrivacyEnabledCallback): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::resetStateToConsistentValues):
Move the call to clear the bundle id to happen in
resetStateToConsistentValues to make sure the next test can set the
value if needed (otherwise results in a call to exit(1)).

(WTR::updateTestOptionsFromTestHeader):
(WTR::TestController::clearAppBoundSession):
(WTR::TestController::getWebViewCategory): Deleted.
(WTR::TestController::setInAppBrowserPrivacyEnabled): Deleted.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didSetInAppBrowserPrivacyEnabled): Deleted.
(WTR::TestInvocation::didReceiveWebViewCategory): Deleted.

  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):
App-bound WebViews now require a special configuration argument. This
patch adds logic to enable that using a new TestOption.
(WTR::TestController::getWebViewCategory): Deleted.

LayoutTests:

Updates the test cases in 2 ways:

  1. Deletes app-bound-domain.html, which is fully and properly tested

using API tests and is unnecessary here.

  1. Splits switch-session-on-navigation-to-app-bound-domain.html into

two separate tests now that navigation between app-bound and
non-app-bound WebViews is not allowed.

  • http/tests/in-app-browser-privacy/app-bound-domain-expected.txt: Removed.
  • http/tests/in-app-browser-privacy/app-bound-domain-gets-app-bound-session-expected.txt: Added.
  • http/tests/in-app-browser-privacy/app-bound-domain-gets-app-bound-session.html: Added.
  • http/tests/in-app-browser-privacy/app-bound-domain.html: Removed.
  • http/tests/in-app-browser-privacy/non-app-bound-domain-does-not-get-app-bound-session-expected.txt: Added.
  • http/tests/in-app-browser-privacy/non-app-bound-domain-does-not-get-app-bound-session.html: Added.
  • http/tests/in-app-browser-privacy/switch-session-on-navigation-to-app-bound-domain-expected.txt: Removed.
  • http/tests/in-app-browser-privacy/switch-session-on-navigation-to-app-bound-domain.html: Removed.
9:09 AM Changeset in webkit [260899] by commit-queue@webkit.org
  • 10 edits
    7 adds in trunk

[GPUP][GTK] compile GPUProcess in GTK port
https://bugs.webkit.org/show_bug.cgi?id=208814

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-04-29
Reviewed by Don Olmstead.

Enable GPUProcess compilation in WebKitGTK as an experimental
feature

.:

  • Source/cmake/OptionsGTK.cmake: sort alphabetically WebKit

options for GTK port and enable GPU_PROCESS if experimental
features option is enabled.

Source/WebKit:

No new tests required.

  • GPUProcess/GPUConnectionToWebProcess.cpp: guard

UserMediaCaptureManagerProxy for Cocoa platform only.
(WebKit::GPUConnectionToWebProcess::dispatchMessage): guard
messages from UserMediaCaptureManagerProxy for Cocoa platform,
moving up this guard from video track messages.
(WebKit::GPUConnectionToWebProcess::mediaKeyStorageDirectory):
removed guard for this function of ENCRYPTED_MEDIA leaving only
LEGACY_ENCRYPTED_MEDIA, since it's were it is defined.
(WebKit::GPUConnectionToWebProcess::setOrientationForMediaCapture):
guard the content of this function for Cocoa platform, since it is
calling a UserMediaCaptureManagerProxy object.

  • GPUProcess/GPUProcess.cpp: Replace the included header to match

with the used symbols in file.

  • GPUProcess/gstreamer/GPUProcessGStreamer.cpp: Added.

(WebKit::GPUProcess::initializeProcess): Empty function.
(WebKit::GPUProcess::initializeProcessName): Empty function.
(WebKit::GPUProcess::initializeSandbox): Empty function.

  • GPUProcess/gstreamer/GPUProcessMainGStreamer.cpp: Added.

(WebKit::initializeAuxiliaryProcess<GPUProcess>): New function.
(WebKit::GPUProcessMain): New function.

  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp: changed guard

for this file from ENCRYPTED_MEDIA to LEGACY_ENCRYPTED_MEDIA to
match with its header file.

  • GPUProcess/media/gstreamer/RemoteMediaPlayerProxyGStreamer.cpp: Added.

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
New function that raises noImplemented()
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable):
New function that raises noImplemented()
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged):
New function that raises noImplemented()
(WebKit::RemoteMediaPlayerProxy::enterFullscreen): New function
that raises noImplemented()
(WebKit::RemoteMediaPlayerProxy::exitFullscreen): New function
that raises noImplemented()

  • PlatformGTK.cmake: add Platform/generic header directory.
  • SourcesGTK.txt: Add the new files and

GPUProcess/media/RemoteAudioDestinationManager.cpp

  • WebProcess/GPU/GPUProcessConnection.cpp: guard

UserMediaCaptureManager for Cocoa platform only.
(WebKit::GPUProcessConnection::dispatchMessage): guard messages
from UserMediaCaptureManager for Cocoa platform, moving up this
guard applied also for video track.

  • WebProcess/GPU/media/RemoteCDM.cpp: include missing header

GPUProcessConnection.h

  • WebProcess/GPU/media/gstreamer/VideoLayerRemoteGStreamer.cpp: Added.

(WebKit::createVideoLayerRemote): New function
that raises noImplemented()

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

[LFC] FormattingContext::constraintsForInFlow/OutOfFlowContent should take const ContainerBox&
https://bugs.webkit.org/show_bug.cgi?id=211161

Reviewed by Antti Koivisto.

Leaf boxes should not need to compute constraints (as by definition they don't have in/out-of-flow descendants).

  • layout/FormattingContext.cpp:

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

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

(WebCore::Layout::FormattingContext::Geometry::constraintsForOutOfFlowContent):
(WebCore::Layout::FormattingContext::Geometry::constraintsForInFlowContent):

  • layout/FormattingContextQuirks.cpp:

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

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

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

  • layout/blockformatting/PrecomputedBlockMarginCollapse.cpp:

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

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutCell):

8:25 AM Changeset in webkit [260897] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Display flaky test names in build summary when ReRunJavaScriptCoreTests passes
https://bugs.webkit.org/show_bug.cgi?id=210855

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(ReRunJavaScriptCoreTests.evaluateCommand): Display flaky test names in build summary.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests and removed extra TestReRunJavaScriptCoreTests class.
7:55 AM Changeset in webkit [260896] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove no longer used variable and the build warning below.
warning: unused variable ‘view’ [-Wunused-variable]

No new tests, no new behaviour changes.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):

7:49 AM Changeset in webkit [260895] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: don't immediately attempt to perform a search whenever the find string changes
https://bugs.webkit.org/show_bug.cgi?id=211164

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WI.updateFindString):
(WI._populateFind):

  • UserInterface/Views/ContentBrowser.js:

(WI.ContentBrowser.prototype.handlePopulateFindShortcut):
(WI.ContentBrowser.prototype.handleFindStringUpdated): Deleted.
Only update the searchQuery of the WI.FindBanner and performSearch when the find
next/previous keyboard shortcut is activated, not when the find string is populated/updated,
unless the update came from the populate find keyboard shortcut.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype.handlePopulateFindShortcut):
(WI.LogContentView.prototype.handleFindNextShortcut):
(WI.LogContentView.prototype.handleFindPreviousShortcut):
(WI.LogContentView.prototype.highlightPreviousSearchMatch):
(WI.LogContentView.prototype.highlightNextSearchMatch):
(WI.LogContentView.prototype.handleFindStringUpdated): Deleted.
Ensure that the logic for performing a search if the searchQuery of the WI.FindBanner
doesn't match the current WI.findString is also performed when in the split console.

4:47 AM Changeset in webkit [260894] by Claudio Saavedra
  • 2 edits in trunk/Source/WebKit

[GTK4] Unreviewed compile-warning fixes

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSetEnableBackForwardNavigationGesture):
(webkitWebViewBaseWillSwapWebProcess):

4:40 AM Changeset in webkit [260893] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix GTK4 build after r260891

  • MiniBrowser/gtk/BrowserWindow.c:
4:33 AM Changeset in webkit [260892] by aboya@igalia.com
  • 3 edits in trunk/Source/WebCore

PlatformMediaResourceLoader should be destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=211155

Reviewed by Xabier Rodriguez-Calvar.

PlatformMediaResourceLoader is only safe to use from the main thread.
A tricky detail is this includes its destruction. The same is true for
PlatformMediaResource.

Both classes are ThreadSafeRefCounted<> classes and therefore
WTF::DestructionThread::Main can be used to ensure destruction is run
in the correct thread with no need for additional client code.

  • platform/graphics/PlatformMediaResourceLoader.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(WebKitWebSrcPrivate::StreamingMembers::~StreamingMembers):

3:36 AM Changeset in webkit [260891] by Claudio Saavedra
  • 7 edits in trunk/Tools

[GTK] Remove deprecated GTK API calls from MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=211171

Reviewed by Carlos Garcia Campos.

In preparation to porting MiniBrowser to GTK4, remove
all deprecated API calls. Also get rid of the --geometry
command-line argument and make it a no-op.

  • MiniBrowser/gtk/BrowserDownloadsBar.c:

(browser_downloads_bar_init):
(browser_downloads_bar_new):
(actionButtonClicked):
(browser_download_init):
(downloadFinished):

  • MiniBrowser/gtk/BrowserSearchBar.c:

(doSearch):
(searchEntryMenuIconPressedCallback):
(browser_search_bar_init):

  • MiniBrowser/gtk/BrowserSettingsDialog.c:

(browser_settings_dialog_init):

  • MiniBrowser/gtk/BrowserTab.c:

(createInfoBarQuestionMessage):
(browserTabConstructed):

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowHistoryItemSelected):
(browserWindowHistoryItemActivated):
(browserWindowCreateBackForwardMenu):
(browserWindowUpdateNavigationMenu):
(backForwardlistChanged):
(updateUriEntryIcon):
(webViewIsLoadingChanged):
(browserWindowSetupEditorToolbarItem):
(browserWindowSetupEditorToolbar):
(browserWindowSwitchTab):
(browserWindowSetupToolbarItem):
(browser_window_init):
(browserWindowUpdateNavigationActions): Deleted.

  • MiniBrowser/gtk/main.c:

(main):

3:23 AM Changeset in webkit [260890] by commit-queue@webkit.org
  • 20 edits in trunk/Source

Make PolicyChecker an inner class of FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=211138

Patch by Rob Buis <rbuis@igalia.com> on 2020-04-29
Reviewed by Alex Christensen.

Source/WebCore:

PolicyChecker HistoryController an inner class of FrameLoader, this allows us to move some methods
only used by PolicyChecker out of the FrameLoader public API. Because it is not possible to forward declare
an enum class in an inner class, move ShouldContinue out of the PolicyChecker class and rename it
to ShouldContinuePolicyCheck.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):

  • loader/FrameLoader.h:
  • loader/FrameLoaderTypes.h:
  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResource::responseReceived):

  • loader/PolicyChecker.cpp:
  • loader/PolicyChecker.h:
  • platform/graphics/PlatformMediaResourceLoader.h:

(WebCore::PlatformMediaResourceClient::responseReceived):

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::PlatformResourceMediaLoader::responseReceived):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(CachedResourceStreamingClient::responseReceived):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:completionHandler:]):

Source/WebKit:

Adapt to PolicyChecker::ShouldContinue change.

  • GPUProcess/media/RemoteMediaResource.cpp:

(WebKit::RemoteMediaResource::responseReceived):

  • GPUProcess/media/RemoteMediaResource.h:
  • GPUProcess/media/RemoteMediaResourceManager.cpp:

(WebKit::RemoteMediaResourceManager::responseReceived):

  • GPUProcess/media/RemoteMediaResourceManager.h:
  • GPUProcess/media/RemoteMediaResourceManager.messages.in:
  • Scripts/webkit/messages.py:
  • WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:

(WebKit::RemoteMediaResourceProxy::responseReceived):

  • WebProcess/GPU/media/RemoteMediaResourceProxy.h:
3:06 AM Changeset in webkit [260889] by Adrian Perez de Castro
  • 12 edits in trunk

[GTK] Misplaced right click menu on web page due to deprecated gtk_menu_popup()
https://bugs.webkit.org/show_bug.cgi?id=170553

Source/WebCore:

Reviewed by Carlos Garcia Campos.

  • platform/gtk/GtkVersioning.h: Add replacements for GtkPopover functions which are no longet available in GTK4.

(gtk_popover_menu_new): Added.
(gtk_popover_bind_model): Added.
(gtk_popover_set_relative_to): Added.

Source/WebKit:

Reviewed by Carlos Garcia Campos.

Replace GtkMenuShell with a GtkPopoverMenu for context menus. The former is not available
at all in GTK4, and the later allows for simplifying the positioning code: it is enough
to provide a point in WebKitWebView widget where to place the popup, and GTK takes care
of everything. This removes the custom positioning code (as it is not needed anymore),
which did GdkScreen-relative calculations that GTK4 does not support.

No new tests needed.

  • Shared/glib/WebContextMenuItemGlib.h:
  • UIProcess/API/glib/WebKitWebView.cpp:

(contextMenuDismissed): Change parameter from GtkMenuShell to GtkMenuShell to GtkWidget.
(webkitWebViewPopulateContextMenu): Connect to the GtkPopover::closed signal instead of
GtkMenuShell::deactivate.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(activeContextMenuClosed): Renamed from activeContextMenuUnmapped(), changed parameter
from GtkMenuShell to GtkWidget, and compare with WebContextMenuProxyGtk::gtkWidget().
(activeContextMenuUnmapped): Renamed to activeContextMenuClosed().
(webkitWebViewBaseSetActiveContextMenuProxy): Connect to the GtkPopover::closed signal
instead of GtkMenuShell::deactivate.
(webkitWebViewBaseGetActiveContextMenuProxy):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:
  • UIProcess/gtk/WebContextMenuProxyGtk.cpp: Arrange to use GtkPopoverMenu instead of

GtkMenuShell.

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::populate):
(WebKit::WebContextMenuProxyGtk::showContextMenuWithItems): Simplify using
m_context.menuLocation() to obtain the location where to make the context menu popup
next to, which allows removing the ::menuPositionFunction() callback as well.
(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk):
(WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk):

  • UIProcess/gtk/WebContextMenuProxyGtk.h: Remove declarations for ::menuPositionFunction()

and ::m_popupPosition, which are now unneeded.
(WebKit::WebContextMenuProxyGtk::gtkWidget const): Renamed from ::gtkMenu(), and made it
return a GtkWidget.

Tools:

Minor adaptations needed in the API tests to account for the differences between
GtkMenuShell and GtkPopoverMenu.

Reviewed by Carlos Garcia Campos.

  • TestWebKitAPI/Tests/WebKitGtk/TestContextMenu.cpp:

(lookupWidgetsWalkChild): Added.
(lookupWidgets): Added.

2:06 AM Changeset in webkit [260888] by commit-queue@webkit.org
  • 12 edits
    1 delete in trunk/Source

Unreviewed, reverting r260650.
https://bugs.webkit.org/show_bug.cgi?id=211172

It is breaking internal bots (Requested by youenn on #webkit).

Reverted changeset:

"Call STDynamicActivityAttributionPublisher in the WebProcess"
https://bugs.webkit.org/show_bug.cgi?id=210772
https://trac.webkit.org/changeset/260650

1:23 AM Changeset in webkit [260887] by Devin Rousso
  • 6 edits in trunk/Source

Web Inspector: Uncaught Exception: SyntaxError: Unexpected identifier 'E'. Expected either a closing ']' or a ',' following an array element.
https://bugs.webkit.org/show_bug.cgi?id=211163

Reviewed by Joseph Pecoraro.

Source/WebKit:

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::updateFindString):

  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::updateFindString):
Use the newly exposed JSON::Value::escapeString to ensure that the findString will not
throw a JavaScript exception when placed in the InspectorFrontendAPI call.

Source/WTF:

  • wtf/JSONValues.h:
  • wtf/JSONValues.cpp:

(WTF::JSONImpl::appendDoubleQuotedString):
(WTF::JSONImpl::Value::escapeString): Added.
Pull out and expose the logic for escaping strings so it can be used elsewhere.

1:14 AM Changeset in webkit [260886] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Switch to audiointerleave
https://bugs.webkit.org/show_bug.cgi?id=211124

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-29
Reviewed by Xabier Rodriguez-Calvar.

The audiointerleave element is a drop-in replacement of
interleave. It should behave a bit better in live.

No new tests, existing webaudio tests cover this change.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcConstructed):
(webKitWebAudioSrcChangeState):

12:59 AM Changeset in webkit [260885] by svillar@igalia.com
  • 2 edits in trunk

Add ccls config file to the list of ignored files
https://bugs.webkit.org/show_bug.cgi?id=210426

Reviewed by Tim Horton.

  • .gitignore: ccls can read configuration options from a .ccls file in

the project root directory. Let's just ignore it.

12:57 AM Changeset in webkit [260884] by svillar@igalia.com
  • 14 edits in trunk/Source/WebCore

[WebXR][WPE] Implement XRTest::simulateDeviceConnection()
https://bugs.webkit.org/show_bug.cgi?id=210912

Reviewed by Dean Jackson.

This API gives tests the ability to spin up a simulated XR device which
is an XR device which from the point of view of the WebXR API behaves
like a normal XR device. These simulated XR devices can be controlled by
the associated FakeXRDevice object.

No new tests as this is machinery required to execute tests when
implementing the WebXR API.

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::WebXRSystem): Initialize the default inline device.
(WebCore::WebXRSystem::registerSimulatedXRDeviceForTesting): Add a newly
created simulated XR device to the list of available devices. Update
also the active immersive device and current inline device.
(WebCore::WebXRSystem::unregisterSimulatedXRDeviceForTesting): Remove
all simulated devices from the list of immersive XR devices.

  • Modules/webxr/WebXRSystem.h: New DummyInlineDevice which represents

the default inline device which must not provide pose information.

  • Modules/webxr/WebXRView.cpp:

(WebCore::WebXRView::WebXRView): Removed some methods that should be
really part of a fake XRView instance.
(WebCore::WebXRView::setProjectionMatrix): Add implementation.
(WebCore::WebXRView::eye const): Deleted.
(WebCore::WebXRView::projectionMatrix const): Deleted.
(WebCore::WebXRView::transform const): Deleted.

  • Modules/webxr/WebXRView.h:

(WebCore::WebXRView::eye const): Implemented.
(WebCore::WebXRView::projectionMatrix const): Ditto.
(WebCore::WebXRView::transform const): Ditto.
(WebCore::WebXRView::setEye): Ditto.
(WebCore::WebXRView::setTransform): Ditto.

  • Modules/webxr/XRReferenceSpaceType.h: Moved the definitions to PlatformXR.
  • platform/xr/PlatformXR.cpp:

(PlatformXR::Instance::nextDeviceId): New method which returns uniquely
defined ids for XR devices.
(PlatformXR::Device::Device):

  • platform/xr/PlatformXR.h:

(PlatformXR::Device::id const): New method.
(PlatformXR::Device::supports const): Ditto.
(PlatformXR::Device::setSupportedModes): Ditto.
(PlatformXR::Device::setEnabledFeatures): Ditto.
(PlatformXR::Device::operator== const): Ditto.

  • testing/FakeXRViewInit.h: fieldOfView is optional.
  • testing/WebFakeXRDevice.cpp:

(WebCore::FakeXRView::setFieldOfView): Implemented.
(WebCore::WebFakeXRDevice::setViews): Ditto.
(WebCore::WebFakeXRDevice::setViewerOrigin): Ditto.
(WebCore::WebFakeXRDevice::clearViewerOrigin): Ditto.
(WebCore::WebFakeXRDevice::setFloorOrigin): Ditoo.
(WebCore::WebFakeXRDevice::clearFloorOrigin): Ditto.
(WebCore::WebFakeXRDevice::parseRigidTransform): Added.
(WebCore::WebFakeXRDevice::parseView): Ditto.

  • testing/WebFakeXRDevice.h: Defined FakeXRView class which wraps a

XRView adding some associated data as the field of view and viewport.
Also defined the SimulatedXRDevice which is an PlatformXR::Device with
some additional data useful for testing purpouses.

  • testing/WebXRTest.cpp:

(WebCore::WebXRTest::simulateDeviceConnection): Create a new
FakeXRDevice with an associated simulated XR device with the data
provided by a FakeXRDeviceInit.
(WebCore::WebXRTest::disconnectAllDevices): Remove all simulated devices
from the list of immersive devices.

  • testing/WebXRTest.h: Call simulateDeviceConnection with ScriptExecutionContext.
  • testing/WebXRTest.idl: Ditto.
12:36 AM Changeset in webkit [260883] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update expectations after r260815
https://bugs.webkit.org/show_bug.cgi?id=211168

Unreviewed gardening.

  • platform/gtk/TestExpectations:
12:15 AM Changeset in webkit [260882] by sbarati@apple.com
  • 16 edits
    1 add in trunk/Source

U_STRING_NOT_TERMINATED_WARNING ICU must be handled when using the output buffer as a C string
https://bugs.webkit.org/show_bug.cgi?id=211142
<rdar://problem/62530860>

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • runtime/IntlDateTimeFormat.cpp:

(JSC::defaultTimeZone):
(JSC::canonicalizeTimeZoneName):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::format):
(JSC::IntlDateTimeFormat::formatToParts):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::format):
(JSC::IntlNumberFormat::formatToParts):

  • runtime/IntlObject.cpp:

(JSC::convertICULocaleToBCP47LanguageTag):
(JSC::canonicalizeLanguageTag):

  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::formatInternal):
(JSC::IntlRelativeTimeFormat::formatToParts):

  • runtime/StringPrototype.cpp:

(JSC::toLocaleCase):
(JSC::normalize):

Source/WebCore:

  • editing/TextIterator.cpp:

(WebCore::normalizeCharacters):

  • platform/text/LocaleICU.cpp:

(WebCore::LocaleICU::decimalSymbol):
(WebCore::LocaleICU::decimalTextAttribute):
(WebCore::getDateFormatPattern):
(WebCore::LocaleICU::createLabelVector):
(WebCore::getFormatForSkeleton):

  • platform/text/LocaleToScriptMappingICU.cpp:

(WebCore::localeToScriptCodeForFontSelection):

  • platform/text/TextCodecICU.cpp:

(WebCore::TextCodecICU::decode):
(WebCore::TextCodecICU::encode):

Source/WTF:

Most of our uses of ICU require us to produce a buffer of the correct
length. We often test if the first call to ICU API succeeds, and if it
doesn't, we grow to the required buffer size, and try again. However,
there are a few APIs that we use like this, except that they write their
output to a C string instead of a buffer.

In a couple scenarios when we were producing C strings, we were only testing
for the U_BUFFER_OVERFLOW_ERROR, instead of both U_BUFFER_OVERFLOW_ERROR and
U_STRING_NOT_TERMINATED_WARNING. This patch fixes those bugs. It also
introduces two new helper methods for testing error codes returned by ICU.

  • The first is needsToGrowToProduceBuffer, which returns true if we need to

grow the buffer and re-call into ICU to get the result.

  • The second is needsToGrowToProduceCString, which returns true if we need to

grow the buffer and re-call into ICU to produce a valid C string.

I've audited all uses of U_BUFFER_OVERFLOW_ERROR and converted them to use one
of the above helper methods instead.

The issues in our handling of U_STRING_NOT_TERMINATED_WARNING were caught on iOS JSC
tests in JSTests/stress/intl-datetimeformat.js

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/text/LineBreakIteratorPoolICU.h:

(WTF::LineBreakIteratorPool::makeLocaleWithBreakKeyword):

  • wtf/text/StringView.cpp:

(WTF::normalizedNFC):

  • wtf/unicode/icu/ICUHelpers.h: Added.

(WTF::needsToGrowToProduceCString):
(WTF::needsToGrowToProduceBuffer):

12:09 AM Changeset in webkit [260881] by Noam Rosenthal
  • 4 edits in trunk/Source

Add StringView::isAllSpecialCharacters()
https://bugs.webkit.org/show_bug.cgi?id=211150

Source/WebCore:

Reviewed by Darin Adler.

Uses new StringView::isAllSpecialCharacters() instead of creating a StringImpl.

No new tests.

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintTextOrEmphasisMarks):

Source/WTF:

This enables checking for whitespace-only strings without allocating a StringImpl wrapper.

Reviewed by Darin Adler.

  • wtf/text/StringView.h:

(WTF::isSpecialCharacter const):

Apr 28, 2020:

11:41 PM Changeset in webkit [260880] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Fix 32-bit build.

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::createFrom):
(JSC::Int32BigIntImpl::digit):

11:26 PM Changeset in webkit [260879] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac ] webgl/1.0.3/conformance/textures/texture-upload-size.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=205757

Unreviewed test gardening.

Remove flaky expectation since the test has been consistently passing for the past few weeks.

  • platform/mac/TestExpectations:
11:23 PM Changeset in webkit [260878] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r260876 and r260877.
https://bugs.webkit.org/show_bug.cgi?id=211165

Broke build (Requested by yusukesuzuki on #webkit).

Reverted changesets:

"Unreviewed, build fix on watchOS"
https://bugs.webkit.org/show_bug.cgi?id=210978
https://trac.webkit.org/changeset/260876

"Unreviewed, speculative build fix on watchOS part 2"
https://bugs.webkit.org/show_bug.cgi?id=210978
https://trac.webkit.org/changeset/260877

11:14 PM Changeset in webkit [260877] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, speculative build fix on watchOS part 2
https://bugs.webkit.org/show_bug.cgi?id=210978

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::createFrom):
(JSC::Int32BigIntImpl::digit):

  • runtime/JSBigInt.h:
11:09 PM Changeset in webkit [260876] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix on watchOS
https://bugs.webkit.org/show_bug.cgi?id=210978

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::createFrom):
(JSC::Int32BigIntImpl::digit):

  • runtime/JSBigInt.h:
11:04 PM Changeset in webkit [260875] by Ryan Haddad
  • 12 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r259880. rdar://problem/62271251

Fix failing legacy CSP tests by converting them to modern tests instead.
https://bugs.webkit.org/show_bug.cgi?id=210310

Reviewed by Daniel Bates.

Convert these tests from verifying the (now removed) X-WebKit-CSP
header to the modern Content-Security-Policy header. Since we
don't have equivalent tests for the modern CSP header and it's not
very useful to have tons of tests for a feature we no longer
support.

  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-allowed.html:
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-blocked.html:
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-default-ignored.html:
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-allowed.html:
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked.html:
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-javascript-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-javascript-blocked.html:
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked.html:

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

10:56 PM Changeset in webkit [260874] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Upgrade motionmark1.1.plan to r260656
https://bugs.webkit.org/show_bug.cgi?id=211143

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-04-28
Reviewed by Darin Adler.

r260656 includes a fix for the Multiply test.

  • Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:
10:53 PM Changeset in webkit [260873] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk1 ] fast/canvas/webgl/canvas-webgl-page-cache.html is flaky crashing in rx::GetFunctionsGL
https://bugs.webkit.org/show_bug.cgi?id=208345

Unreviewed test gardening.

Remove flaky expectation since the test has been consistently passing for the past few weeks.

  • platform/mac-wk1/TestExpectations:
10:50 PM Changeset in webkit [260872] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/LayoutTests

Unreviewed, land test expectations for rdar://62268126

10:43 PM Changeset in webkit [260871] by Ryan Haddad
  • 1 edit
    2 adds in branches/safari-609-branch/Tools

Unreviewed, cherry-pick scripts from r259811. rdar://62268126

  • BuildSlaveSupport/trigger-crash-log-submission: Added.
  • BuildSlaveSupport/wait-for-crash-collection: Added.
10:36 PM Changeset in webkit [260870] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

Rendering update steps should use Seconds for the timestamps
https://bugs.webkit.org/show_bug.cgi?id=210990

Unreviewed.

serviceRequestAnimationFrameCallbacks() should return rounded milliseconds.
This rounding was removed in r260736. So put it back.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):

10:29 PM Changeset in webkit [260869] by Carlos Garcia Campos
  • 7 edits in trunk/Source

[GTK4] Add support for key events
https://bugs.webkit.org/show_bug.cgi?id=211128

Reviewed by Adrian Perez de Castro.

Source/WebCore:

  • platform/gtk/GtkVersioning.h:

(gdk_event_get_keyval):
(gdk_event_get_keycode):

Source/WebKit:

Handle key-pressed and key-released events using a GtkEventControllerKey. To receive key events the widget needs
to be focused, so also implement GtkWidgetClass::grab_focus and handle enter and leave focus events. GTK4 needs
the widget used by the key bindings translator to be added to a parent to be able to forward key events, so it's
now added as a child internal widget of the WebKitWeViewBase.

  • Shared/gtk/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebKeyboardEvent):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewChildIsInternalWidget):
(webkitWebViewBaseContainerRemove):
(webkitWebViewBaseContainerForall):
(webkitWebViewBaseFocusEnter):
(webkitWebViewBaseFocusLeave):
(webkitWebViewBaseKeyPressed):
(webkitWebViewBaseKeyReleased):
(webkitWebViewBaseGrabFocus):
(webkitWebViewBaseConstructed):
(webkit_web_view_base_class_init):

  • UIProcess/gtk/KeyBindingTranslator.cpp:

(WebKit::KeyBindingTranslator::KeyBindingTranslator):
(WebKit::KeyBindingTranslator::~KeyBindingTranslator):
(WebKit::handleCustomKeyBindings):
(WebKit::KeyBindingTranslator::commandsForKeyEvent):

  • UIProcess/gtk/KeyBindingTranslator.h:

(WebKit::KeyBindingTranslator::widget const):
(WebKit::KeyBindingTranslator::destroyed):

10:28 PM Changeset in webkit [260868] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

storage/indexeddb/value-cursor-cycle.html is flaky failing because it incorrectly thinks our JS GC is precise.
https://bugs.webkit.org/show_bug.cgi?id=210046

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as flaky for iOS, too.
10:26 PM Changeset in webkit [260867] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[ Mac ] storage/indexeddb/result-request-cycle.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=210517

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as flaky.
  • platform/mac/TestExpectations: Ditto.
10:18 PM Changeset in webkit [260866] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[ iOS wk2 and Mac Debug wk2 ] imported/w3c/web-platform-tests/service-workers/service-worker/respond-with-body-accessed-response.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209295

Unreviewed test gardening.

Remove flaky expectations as the test has been consistently passing.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
10:16 PM Changeset in webkit [260865] by Wenson Hsieh
  • 9 edits in trunk

[Text manipulation] Add a userInfo dictionary to _WKTextManipulationToken
https://bugs.webkit.org/show_bug.cgi?id=211151
<rdar://problem/62329534>

Reviewed by Darin Adler.

Source/WebCore:

Add an extensible mechanism for the text manipulation controller to send additional
metadata for each text manipulation token through to the WebKit client, for debugging
purposes.

Test: TextManipulation.StartTextManipulationExtractsUserInfo

  • editing/TextManipulationController.cpp:

(WebCore::tokenInfo):
(WebCore::TextManipulationController::observeParagraphs):

  • editing/TextManipulationController.h:

Add TextManipulationTokenInfo, and add an optional TextManipulationTokenInfo member to
TextManipulationToken. For now, just send over the document URL, element tag name, and
the value of the role attribute.

(WebCore::TextManipulationController::ManipulationTokenInfo::encode const):
(WebCore::TextManipulationController::ManipulationTokenInfo::decode):
(WebCore::TextManipulationController::ManipulationToken::encode const):
(WebCore::TextManipulationController::ManipulationToken::decode):

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(createUserInfo):
(-[WKWebView _startTextManipulationsWithConfiguration:completion:]):
(-[WKWebView _completeTextManipulation:completion:]):
(-[WKWebView _completeTextManipulationForItems:completion:]):

  • UIProcess/API/Cocoa/_WKTextManipulationToken.h:
  • UIProcess/API/Cocoa/_WKTextManipulationToken.mm:

(-[_WKTextManipulationToken setUserInfo:]):
(-[_WKTextManipulationToken userInfo]):

Add a new userInfo dictionary to _WKTextManipulationToken, which contains several named
NSString keys.

(-[_WKTextManipulationToken isEqualToTextManipulationToken:includingContentEquality:]):
(-[_WKTextManipulationToken _descriptionPreservingPrivacy:]):

Tools:

Add a new API test to check the userInfo dictionary on text manipulation tokens.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
9:26 PM Changeset in webkit [260864] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r260407): Over-release of NSGraphicsContext in WebKit::convertPlatformImageToBitmap()
<https://webkit.org/b/211160>

Reviewed by Darin Adler.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::convertPlatformImageToBitmap): Use retainPtr() instead
of adoptNS() to fix the over-release.

8:54 PM Changeset in webkit [260863] by ysuzuki@apple.com
  • 10 edits
    1 add in trunk

[JSC] BigInt constructor should accept larger integers than safe-integers
https://bugs.webkit.org/show_bug.cgi?id=210755

Reviewed by Darin Adler.

JSTests:

  • stress/big-int-constructor.js:
  • stress/large-number-to-bigint.js: Added.

(shouldBe):
(shouldThrow):

  • test262/config.yaml:

Source/JavaScriptCore:

While our implementation of BigInt constructor only accepts safe integers, it should accept all integers.
This patch implements it by creating JSBigInt::createFrom(double). We port double bit processing part from
V8 as the same to the other part of JSBigInt.

  • runtime/BigIntConstructor.cpp:

(JSC::callBigIntConstructor):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::createFrom):

  • runtime/JSBigInt.h:
  • runtime/MathCommon.h:

(JSC::isInteger):
(JSC::isSafeInteger):

  • runtime/NumberConstructor.cpp:

(JSC::numberConstructorFuncIsSafeInteger):

  • runtime/NumberConstructor.h:
8:13 PM Changeset in webkit [260862] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Update the xcfilelists.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
8:03 PM Changeset in webkit [260861] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

IPC::Decoder::isValid() should just be a nullptr check
<https://webkit.org/b/211152>
<rdar://problem/62552699>

Reviewed by Darin Adler.

  • Platform/IPC/Decoder.h:

(IPC::Decoder::isValid const): Change to nullptr check. I
reviewed the code in Decoder.{cpp,h}, and I didn't see
m_bufferPos being set without a bounds check. Also added
WARN_UNUSED_RETURN to make sure the result is always checked.

7:59 PM Changeset in webkit [260860] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style should suggest CheckedSize for Checked<size_t, RecordOverflow>
<https://webkit.org/b/211158>

Reviewed by Darin Adler.

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

(check_wtf_checked_size): Add checker.
(check_style): Call check_wtf_checked_size() to check.
(CppChecker): Add 'runtime/wtf_checked_size'.

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

(WebKitStyleTest.test_wtf_checked_size): Add tests.

5:26 PM Changeset in webkit [260859] by Lauro Moura
  • 2 edits in trunk/Tools

[GTK] update-webkitgtk-libs: TypeError: cannot use a string pattern on a bytes-like object
https://bugs.webkit.org/show_bug.cgi?id=211144

Reviewed by Michael Catanzaro.

Unconditionally decode the output from the 'id' command to make it
work with python3.

Also check if the doc directory exists before passing it to bwrap.
Should avoid errors like these:

bwrap: Can't find source path /run/user/1000/doc: No such file or directory

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

5:12 PM Changeset in webkit [260858] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r260808): Backdrops on music.apple.com are offset
https://bugs.webkit.org/show_bug.cgi?id=211153
Source/WebCore:

<rdar://problem/62543158>

Reviewed by Zalan Bujtas.

The border-radius code path failed to offset the rounded rect by contentOffsetInCompositingLayer().

Test: compositing/filters/backdrop-filter-rect-border-radius.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):

LayoutTests:

Reviewed by Zalan Bujtas.

  • compositing/filters/backdrop-filter-rect-border-radius-expected.html: Added.
  • compositing/filters/backdrop-filter-rect-border-radius.html: Added.
5:05 PM Changeset in webkit [260857] by dbates@webkit.org
  • 8 edits in trunk/Source/WebKit

Move WebPage::textInputContextsInRect() to WebPageIOS.mm
https://bugs.webkit.org/show_bug.cgi?id=211136

Reviewed by Eric Carlson.

The function WebPage::textInputContextsInRect is very specific to a client on iOS.
Although it's tempting to keep this cross-platform because its implementation does
not make use of iOS-specific technologies it does a very specific operation, the
result of which is a list of contexts to editable elements on the page. The contexts
provide enough info for the specific iOS client, but not enough to ever be useful
to any other client. Therefore move it to WebPageIOS.mm.

Only Mac and iOS were ever using this function. The former only for testing purposes
that have since been removed.

A side effect of this change is that I also move WebPageProxy::textInputContextsInRect()
from WebPageProxy.cpp to WebPageProxyIOS.mm.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::textInputContextsInRect): Deleted; moved to WebPageProxyIOS.mm.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::textInputContextsInRect): Moved from WebPageProxy.cpp.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::textInputContextsInRect): Deleted; moved to WebPageIOS.mm.

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

(WebKit::WebPage::textInputContextsInRect): Moved from WebPage.cpp.

5:03 PM Changeset in webkit [260856] by Chris Dumez
  • 13 edits
    2 deletes in trunk/Source/WebKit

[iOS][WK2] Drop process assertion logic for holding locked files
https://bugs.webkit.org/show_bug.cgi?id=206910

Reviewed by Alex Christensen.

Drop process assertion logic for holding locked files as it is causing issues and
should no longer be needed.

The intention of this code was that the Network Process would send a
SetIsHoldingLockedFiles(bool) IPC to the UIProcess whenever there are pending
SQLite transactions and the UIProcess would then take a process assertion on behalf
of the WebProcess (or release it) to prevent / allow suspension.

This approach has some issues:

  1. It was noisy in terms of IPC
  2. Because it relies on an IPC to the UIProcess to keep running, it was inherently racy
  3. We already have logic to deal with suspension in the network / web processes. The UIProcess sends a PrepareForSuspension IPC to its child processes. In turn, those processes will make sure to suspend their database threads to prevent any further database work. The child processes would then respond to the PrepareForSuspension IPC to let the UIProcess know they are ready to suspend. The 2 approaches were conflicting, because after the PrepareForSuspension IPC is sent, the child process could process a transaction and send the SetIsHoldingLockedFiles() IPC to the UIProcess which would incorrectly cancel the suspension.
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):
(WebKit::m_messagePortChannelRegistry): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • Shared/WebSQLiteDatabaseTracker.cpp: Removed.
  • Shared/WebSQLiteDatabaseTracker.h: Removed.
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::didSetAssertionState):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles): Deleted.

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

(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::setIsHoldingLockedFiles): Deleted.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.cpp:

(WebKit::m_nonVisibleProcessCleanupTimer):
(WebKit::m_webSQLiteDatabaseTracker): Deleted.

  • WebProcess/WebProcess.h:
4:37 PM Changeset in webkit [260855] by dbates@webkit.org
  • 4 edits in trunk/Source/WebCore

Modernize EndPointsAdjustmentMode enumeration and fix misspelled enumerator
https://bugs.webkit.org/show_bug.cgi?id=211141

Reviewed by Eric Carlson.

Fix the misspelled enumerator DoNotAdjsutEndpoints. While I am here, make
EndPointsAdjustmentMode an enum class sized as a bool and simplify the naming
of its enumerators now that they have to be qualified. I also re-ordered them
so that DoNotAdjust is the first enumerator (it will have value 0). This doesn't
really matter, but I like it because it makes it so that this enumeration behaves
more like an equivalent boolean should casts be involved.

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionByMouseIfDifferent):

  • editing/FrameSelection.h:
  • page/EventHandler.cpp:

(WebCore::EventHandler::updateSelectionForMouseDrag):

4:35 PM Changeset in webkit [260854] by dbates@webkit.org
  • 5 edits in trunk/Source

[WebKitLegacy] Implement -hidePlaceholder and -showPlaceholderIfNecessary in terms of setCanShowPlaceholder()
https://bugs.webkit.org/show_bug.cgi?id=211139

Reviewed by Simon Fraser.

Source/WebCore:

Remove hidePlaceholder() and showPlaceholderIfNecessary() as they are no longer needed.
Callers should use setCanShowPlaceholder() instead.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::hidePlaceholder): Deleted.
(WebCore::HTMLTextFormControlElement::showPlaceholderIfNecessary): Deleted.

  • html/HTMLTextFormControlElement.h:

Source/WebKitLegacy/mac:

Implement -hidePlaceholder and -showPlaceholderIfNecessary in terms of setCanShowPlaceholder()
because:

  1. Unlike -hidePlaceholder and -showPlaceholderIfNecessary, setCanShowPlaceholder() does NOT of reach into the guts of the control and mutate its CSS.
  1. Because of (1), it works correctly should future code be written that modifies the structure of the guts or the CSS of the placeholder element (which is inside the guts of the control).
  1. Unlike -hidePlaceholder and -showPlaceholderIfNecessary, there is test coverage for setCanShowPlaceholder() to ensure (2).
  • DOM/WebDOMOperations.mm:

(-[DOMNode hidePlaceholder]):
(-[DOMNode showPlaceholderIfNecessary]):

3:57 PM Changeset in webkit [260853] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Debug: "Outline focused element" should also outline elements with tabIndex=0
https://bugs.webkit.org/show_bug.cgi?id=211109

Reviewed by Devin Rousso.

  • UserInterface/Debug/Bootstrap.css:

(body.focus-debug [tabindex="0"]):
(body.focus-debug *:focus):

3:42 PM Changeset in webkit [260852] by ChangSeok Oh
  • 5 edits in trunk/Source

[GTK] Fix build failures for ANGLE_WEBGL after r259589
https://bugs.webkit.org/show_bug.cgi?id=211116

Reviewed by Alex Christensen.

Source/ThirdParty/ANGLE:

The ANGLE_WEBGL is broken after ANGLE is updated in r259589. Missing sources
should be added to the build target.

  • PlatformGTK.cmake: Add libangle_gl_egl_sources and libangle_gl_egl_dl_sources.

Source/WebCore:

The compiler is unhappy with coverting GCGLint64 (long long int) to GLInt64 (long int).
Passing GCGLuint62 as GLuint64 is a similar issue.

No new tests since no new functionalities.

  • platform/graphics/angle/ExtensionsGLANGLE.cpp:

(WebCore::ExtensionsGLANGLE::getInteger64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64i_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameteri64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjecti64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectui64vRobustANGLE):

  • platform/graphics/nicosia/texmap/NicosiaGC3DLayer.cpp:

(Nicosia::GC3DLayer::swapBuffersIfNeeded): Unaccelerated -> RenderingMode::Unaccelerated

3:34 PM Changeset in webkit [260851] by Noam Rosenthal
  • 38 edits
    1 copy
    86 adds in trunk

Implement FCP (first contentful paint)
https://bugs.webkit.org/show_bug.cgi?id=208499

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Imported paint timing tests that don't require first-paint.

  • resources/import-expectations.json:
  • web-platform-tests/paint-timing: Added.
  • web-platform-tests/paint-timing/fcp-only: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-background-size-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-background-size.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-canvas-context-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-canvas-context.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-gradient-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-gradient.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-descendant-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-descendant.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-text-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-invisible-text.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-opacity-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-opacity.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-svg-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-svg.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-text-input-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-text-input.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-typographic-pseudo-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-typographic-pseudo.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-video-frame-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-video-frame.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-video-poster-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-video-poster.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-whitespace-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-whitespace.html: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-with-rtl-expected.txt: Added.
  • web-platform-tests/paint-timing/fcp-only/fcp-with-rtl.html: Added.
  • web-platform-tests/paint-timing/resources: Added.
  • web-platform-tests/paint-timing/resources/circle.svg: Added.
  • web-platform-tests/paint-timing/resources/circles.png: Added.
  • web-platform-tests/paint-timing/resources/subframe-painting.html: Added.
  • web-platform-tests/paint-timing/resources/subframe-sending-paint.html: Added.
  • web-platform-tests/paint-timing/resources/utils.js: Added.

(waitForAnimationFrames):
(async assertNoFirstContentfulPaint):
(async assertFirstContentfulPaint.return.new.Promise):
(async assertFirstContentfulPaint):
(async test_fcp):

Source/WebCore:

Added the necessary interface, extensions to the performance interface and observer, new runtime flag.
Detecting contentfulness after layout and before actual paint, by running a "dummy" paint, similar to
invalidateControlTints() / invalidateImagesWithAsyncDecodes(). Save the result to the GraphicsContext and then to the document.
This would run for every paint until we detect a contentful one.

Note that it paints the entire frame contents, as FCP is not viewport-dependent.
Also, paint timing is currently disabled for LFC (layout formatting context), and will be dealt with later.

Tests: http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-num-chars.html

http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-style.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-background-size.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-canvas-context.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-gradient.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-descendant.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-invisible-text.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-opacity.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-svg.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-text-input.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-typographic-pseudo.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-video-frame.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-video-poster.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-whitespace.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-with-rtl.html
performance-api/paint-timing/paint-timing-apis.html
performance-api/paint-timing/paint-timing-frames.html
performance-api/paint-timing/paint-timing-with-worker.html
performance-api/paint-timing/performance-observer-first-contentful-paint.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSPerformanceEntryCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/WebCoreBuiltinNames.h:

Add PerformancePaintTiming interface. https://w3c.github.io/paint-timing/#sec-PerformancePaintTiming

  • dom/Document.cpp:
  • dom/Document.h:

(WebCore::Document::supportsPaintTiming const):

We only report paint timing for document that can access the top level security origin, to avoid leakage of information to sandboxed iframes.

(WebCore::Document::enqueuePaintTimingEntryIfNeeded):

Enqueue a paint timing entry, according to https://w3c.github.io/paint-timing/#sec-reporting-paint-timing

  • page/FrameView.cpp:

(WebCore::FrameView::paintContents):

Disable FCP fake-paint in LFC mode.

  • page/Page.cpp:

(WebCore::Page::doAfterUpdateRendering):

  • page/Performance.cpp:

(WebCore::Performance::getEntries const):
(WebCore::Performance::getEntriesByType const):
(WebCore::Performance::getEntriesByName const):
(WebCore::Performance::reportFirstContentfulPaint):

  • page/Performance.h:

Support first-contentful-paint reporting.

  • page/PerformanceEntry.cpp:

(WebCore::PerformanceEntry::parseEntryTypeString):

  • page/PerformanceEntry.h:

(WebCore::PerformanceEntry::isPaint const):

  • page/PerformanceObserver.cpp:

(WebCore::PerformanceObserver::supportedEntryTypes):

  • page/PerformanceObserver.h:
  • page/PerformanceObserver.idl:
  • page/PerformancePaintTiming.h: Added.

(isType):

  • page/PerformancePaintTiming.idl: Added.

Add paint performance entry type.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setPaintTimingEnabled):
(WebCore::RuntimeEnabledFeatures::paintTimingEnabled const):

New runtime flag for paint timing.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::detectingContentfulPaint const):
(WebCore::GraphicsContext::setContentfulPaintDetected):
(WebCore::GraphicsContext::contenfulPaintDetected const):

Add a flag in GraphicsContext where different render operations can report if they're contentful.

  • rendering/ContentfulPaintChecker.cpp: Added.

(WebCore::ContentfulPaintChecker::qualifiesForContentfulPaint):

  • rendering/ContentfulPaintChecker.h: Added.

Run a "dummy" paint of the FrameView, to detect contentful elements.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderHTMLCanvas.cpp:

(WebCore::RenderHTMLCanvas::paintReplaced):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintReplaced):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::paintReplaced):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintTextOrEmphasisMarks):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::paintReplaced):

Report contentfulness when we reach anything that qualifies as contentful,
based on https://w3c.github.io/paint-timing/#contentful.

Source/WebKit:

Add an experimental runtime flag for paint-timing (paintTimingEnabled).

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetPaintTimingEnabled):
(WKPreferencesGetPaintTimingEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::updatePreferencesStore):

LayoutTests:

Added tests for some first-contentful-paint (FCP) use-cases.
Ensure that FCP works well with VNE (first paint delay until contents are visually non-empty).

  • platform/win/TestExpectations:
  • platform/mac-wk1/TestExpectations:

Disable paint timing for WebKit1.

Disable of the WPT tests.

  • http/tests/performance/paint-timing: Added.
  • http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-num-chars-expected.txt: Added.
  • http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-num-chars.html: Added.

If VNE due to number of characters blocks painting, make sure FCP is reported only after painting is unblocked.

  • http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-style-expected.txt: Added.
  • http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-style.html: Added.

If a pending stylesheet blocks painting, make sure FCP is reported only after stylesheet has loaded.

  • http/tests/performance/paint-timing/resources: Added.
  • http/tests/performance/paint-timing/resources/slowscript.php: Added.
  • http/tests/performance/paint-timing/resources/slowstyle.php: Added.
  • http/tests/performance/paint-timing/resources/style.css: Added.

(body):

  • performance-api/paint-timing: Added.
  • performance-api/paint-timing/paint-timing-apis-expected.txt: Added.
  • performance-api/paint-timing/paint-timing-apis.html: Added.
  • performance-api/paint-timing/paint-timing-frames-expected.txt: Added.
  • performance-api/paint-timing/paint-timing-frames.html: Added.
  • performance-api/paint-timing/paint-timing-with-worker-expected.txt: Added.
  • performance-api/paint-timing/paint-timing-with-worker.html: Added.

Test that FCP is not available for cross-origin frames and workers.

  • performance-api/paint-timing/performance-observer-first-contentful-paint-expected.txt: Added.
  • performance-api/paint-timing/performance-observer-first-contentful-paint.html: Added.

Test that performance observers are called for FCP.

  • performance-api/paint-timing/resources: Added.
  • performance-api/paint-timing/resources/fcp-subframe.html: Added.
  • performance-api/paint-timing/resources/paint-api-utils.js: Added.

(async waitForFCP):

  • performance-api/paint-timing/resources/paint-timing-api.js: Added.
  • performance-api/paint-timing/resources/worker.html: Added.
3:22 PM Changeset in webkit [260850] by Alan Coon
  • 8 edits in branches/safari-610.1.11-branch/Source

Versioning.

2:59 PM Changeset in webkit [260849] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

MRMediaRemoteSetNowPlayingApplicationPlaybackStateForOrigin log with no error
https://bugs.webkit.org/show_bug.cgi?id=211145

Reviewed by Jer Noble.

Don't log when MRMediaRemoteSetNowPlayingApplicationPlaybackStateForOrigin() returns 0.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):

2:51 PM Changeset in webkit [260848] by Ross Kirsling
  • 43 edits in trunk/Source

[JSC] Align upon the name isCallable instead of isFunction
https://bugs.webkit.org/show_bug.cgi?id=211140

Reviewed by Darin Adler.

Source/JavaScriptCore:

Follow-up to r260722. Usage is now cleanly separated between isFunction / getCallData,
but the name isCallable is still clearer than isFunction so let's flip that after all.

  • API/JSContextRef.cpp:

(JSGlobalContextSetUnhandledRejectionCallback):

  • API/JSObjectRef.cpp:

(JSObjectIsFunction):

  • dfg/DFGOperations.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCreateThis):
(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileIsObjectOrNull):
(JSC::FTL::DFG::LowerDFGToB3::compileIsFunction):
(JSC::FTL::DFG::LowerDFGToB3::buildTypeOf):
(JSC::FTL::DFG::LowerDFGToB3::isCallable):
(JSC::FTL::DFG::LowerDFGToB3::isFunction): Deleted.

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationTypeOfObjectAsTypeofType):

  • jsc.cpp:

(functionSetUnhandledRejectionCallback):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/ExceptionHelpers.cpp:

(JSC::errorDescriptionForValue):

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

  • runtime/InternalFunction.cpp:

(JSC::getFunctionRealm):

  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::isCallable const):
(JSC::JSValue::isFunction const): Deleted.

  • runtime/JSCell.h:
  • runtime/JSCellInlines.h:

(JSC::JSCell::isCallable):
(JSC::JSCell::isFunction): Deleted.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):

  • runtime/ObjectConstructor.cpp:

(JSC::toPropertyDescriptor):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):

  • runtime/Operations.cpp:

(JSC::jsTypeStringForValue):
(JSC::jsIsObjectTypeOrNull):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::structureForTarget):
(JSC::ProxyObject::finishCreation):

  • runtime/RuntimeType.cpp:

(JSC::runtimeTypeForValue):

  • tools/JSDollarVM.cpp:

(JSC::functionCallWithStackSize):
(JSC::functionFindTypeForExpression):
(JSC::functionReturnTypeFor):
(JSC::functionHasBasicBlockExecuted):
(JSC::functionBasicBlockExecutionCount):

  • wasm/WasmInstance.cpp:

(JSC::Wasm::Instance::setFunctionWrapper):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::operationIterateResults):
(JSC::Wasm::operationWasmRefFunc):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):

  • wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::WebAssemblyWrapperFunction::finishCreation):

Source/WebCore:

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected):

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::getCustomElementCallback):

  • bindings/js/JSDOMConvertCallbacks.h:

(WebCore::Converter<IDLCallbackFunction<T>>::convert):

  • bindings/js/JSDOMConvertScheduledAction.h:

(WebCore::Converter<IDLScheduledAction>::convert):

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DOMPromise::whenPromiseIsSettled):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::queueMicrotask):

  • bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::queueMicrotask):

  • bindings/js/ReadableStream.cpp:

(WebCore::ReadableStream::pipeTo):
(WebCore::ReadableStream::tee):

  • bindings/js/ReadableStreamDefaultController.cpp:

(WebCore::ReadableStreamDefaultController::invoke):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::callInWorld):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateOverloadDispatcher):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):

  • testing/Internals.cpp:

(WebCore::Internals::parserMetaData):
(WebCore::Internals::cloneArrayBuffer):

  • worklets/PaintWorkletGlobalScope.cpp:

(WebCore::PaintWorkletGlobalScope::registerPaint):

Source/WebKit:

  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::NPJSObject::hasMethod):

2:43 PM Changeset in webkit [260847] by Devin Rousso
  • 21 edits in trunk/Source

Web Inspector: find dialog does not populate search string from system find pasteboard
https://bugs.webkit.org/show_bug.cgi?id=113588
<rdar://problem/19281466>

Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.updateFindString): Added.

  • UserInterface/Base/Main.js:

(WI.contentLoaded):
(WI.updateFindString): Added.
(WI._populateFind):
(WI._findNext):
(WI._findPrevious):

  • UserInterface/Views/ContentBrowser.js:

(WI.ContentBrowser.prototype.handleFindStringUpdated): Added.
(WI.ContentBrowser.prototype.handlePopulateFindShortcut):
(WI.ContentBrowser.prototype.handleFindNextShortcut):
(WI.ContentBrowser.prototype.handleFindPreviousShortcut):

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype.handleFindStringUpdated): Added.
(WI.LogContentView.prototype.handlePopulateFindShortcut):
(WI.LogContentView.prototype.handleFindNextShortcut):
(WI.LogContentView.prototype.handleFindPreviousShortcut):
When the find string gets updated, tell the active view. The findNextKeyboardShortcut and
findPreviousKeyboardShortcut will also update the related WI.FindBanner when invoked if
the current search query does not match the find string.

  • UserInterface/Test/Test.js:

(WI.updateFindString): Added.

Source/WebKit:

  • UIProcess/Inspector/mac/WKInspectorWKWebView.h:
  • UIProcess/Inspector/mac/WKInspectorWKWebView.mm:

(-[WKInspectorWKWebView dealloc]): Added.
(-[WKInspectorWKWebView setInspectorWKWebViewDelegate:]):
(-[WKInspectorWKWebView becomeFirstResponder]): Added.
(-[WKInspectorWKWebView _handleWindowDidBecomeKey:]): Added.

  • UIProcess/Inspector/mac/WKInspectorViewController.h:
  • UIProcess/Inspector/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController inspectorWKWebViewDidBecomeActive:]): Added.

  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/mac/WebInspectorProxyMac.mm:

(-[WKWebInspectorProxyObjCAdapter inspectorViewControllerDidBecomeActive:]): Added.
(WebKit::WebInspectorProxy::didBecomeActive): Added.

  • UIProcess/Inspector/RemoteWebInspectorProxy.h:
  • UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:

(-[WKRemoteWebInspectorProxyObjCAdapter inspectorWKWebViewDidBecomeActive:]): Added.
(WebKit::RemoteWebInspectorProxy::didBecomeActive): Added.
Add a new delegate call chain that notifies the inspector proxy about when the inspector web
view becomes active, at which point the inspector proxy can get the current find string and
sent it to the inspector page.

  • WebProcess/Inspector/WebInspectorUI.messages.in:
  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::updateFindString): Added.

  • WebProcess/Inspector/RemoteWebInspectorUI.messages.in:
  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::updateFindString): Added.
Pass along the new find string to the frontend via InspectorFrontendAPI.updateFindString.

2:31 PM Changeset in webkit [260846] by dbates@webkit.org
  • 4 edits in trunk/Source/WebKit

Remove unused WebPage::focusTextInputContext()
https://bugs.webkit.org/show_bug.cgi?id=211135

Reviewed by Anders Carlsson.

I accidentally forgot to remove the WebPage message and WebPage implementation that
backed -_focusTextInputContext when I removed it in r260225. Now the implementation
is unused. Let's remove it.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::focusTextInputContext): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
2:15 PM Changeset in webkit [260845] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Rewrite GraphicsLayerCA::updateSublayerList()
https://bugs.webkit.org/show_bug.cgi?id=211137

Reviewed by Zalan Bujtas.

This function was hard to understand, with aliasing of a layer list to handle
the various configurations. Future patches will add a bit more complexity here.

Rewrite using lambdas, which makes it easier to follow.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateSublayerList):

1:59 PM Changeset in webkit [260844] by chris.reid@sony.com
  • 15 edits
    3 adds in trunk

[Win] Bundle Inspector Resources in Release builds
https://bugs.webkit.org/show_bug.cgi?id=210942

Reviewed by Fujii Hironori.

.:

Add ENABLE_WEBINSPECTORUI so the resource copy can be disabled
on platforms without inspector frontends.

  • CMakeLists.txt:
  • Source/CMakeLists.txt:
  • Source/PlatformWin.cmake:
  • Source/cmake/OptionsJSCOnly.cmake:
  • Source/cmake/OptionsPlayStation.cmake:

Source/WebCore:

  • CMakeLists.txt:

Source/WebInspectorUI:

Add CMake files for copying inspector resources

  • CMakeLists.txt: Added.
  • PlatformGTK.cmake: Added.
  • PlatformWin.cmake: Added.

Source/WebKit:

Move CMake logic for the inspector resource copy script to
Source/WebInspectorUI so it can be shared with Win and other platforms.

  • InspectorGResources.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:
1:41 PM Changeset in webkit [260843] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Remove downloadAttribute from DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=210493

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

Remove downloadAttribute from DocumentLoader since this
can be obtained from the NavigationAction.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::downloadAttribute const):
(WebCore::DocumentLoader::setDownloadAttribute): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadPostRequest):

  • loader/FrameLoader.h:
12:53 PM Changeset in webkit [260842] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[MacCatalyst] Add missing symlinks to WebKit.frameworks
<https://webkit.org/b/211102>
<rdar://problem/62137758>

Reviewed by Brent Fulgham.

  • WebKit.xcodeproj/project.pbxproj:

(Make Frameworks Symbolic Link):

  • Update logic to run for macOS and macCatalyst builds.
  • Add output path.

(Check For Inappropriate Objective-C Class Names):

  • Let Xcode have its way with the project file by adding a newline to the end of the script.

(Check For Weak VTables and Externals): Ditto.
(Add XPCServices symlink):

  • Update logic to run for macOS and macCatalyst builds.
12:40 PM Changeset in webkit [260841] by Kate Cheney
  • 17 edits
    3 adds in trunk

Create a mechanism to add missing ITP Database tables when the schema is updated
https://bugs.webkit.org/show_bug.cgi?id=211004
<rdar://problem/62261187>

Reviewed by John Wilander.

Source/WebKit:

This patch updates the ITP database to better handle added tables to
the schema. Currently the database store deletes and re-creates the
database when any schema change is encountered. This is simple but
would result in ITP data loss during schema updates, so this patch
searches the schema for missing tables and adds any it finds.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::createTableQueries):
Convert the tables array to a mapping of table names to their
respective CREATE TABLE queries so we can add missing tables on the
fly.
(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
Remove call to createSchema() from the constructor. It makes more
sense to base this on whether the file is new as opposed to whether
one table exists.
(WebKit::ResourceLoadStatisticsDatabaseStore::checkForMissingTablesInSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToNewTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingTablesIfNecessary):
Checks for missing tables and adds them using a best-effort approach.
Call createUniqueIndices() to call all CREATE UNIQUE INDEX queries,
even though we may not need them all. It is much simpler than to
associate each query with its table, and it doesn't hurt to call
again.

(WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary):
Add missing tables instead of deleting the old database file. Changed
the function name to reflect this. Deleted a FIXME which this patch
addresses but added a new FIXME for migrating data when adding new
columns, which this patch does not address.
(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectTableSchema): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndDropOldDatabaseIfNecessary): Deleted.

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

(WebKit::WebResourceLoadStatisticsStore::statisticsDatabaseHasAllTables):

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

(WebKit::NetworkProcess::statisticsDatabaseHasAllTables):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _statisticsDatabaseHasAllTables:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::statisticsDatabaseHasAllTables):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::statisticsDatabaseHasAllTables):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Added an SPI call to test that the database schema includes all
tables. This tests the database is not dropped when a new
table is added upon opening the database.

Tools:

Add test case which copies a database schema with a missing table into
the ITP database file, then ensures the pre-seeded data is
migrated over and that the schema now has all tables (including the
previously missing one).

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/missingTopFrameUniqueRedirectSameSiteStrictTableSchema.db: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/missingTopFrameUniqueRedirectSameSiteStrictTableSchema.db-shm: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/missingTopFrameUniqueRedirectSameSiteStrictTableSchema.db-wal: Added.
12:29 PM Changeset in webkit [260840] by pvollan@apple.com
  • 7 edits in trunk

[Cocoa] Global preferences are not accessible in the WebContent process when CFPrefs direct mode is enabled
https://bugs.webkit.org/show_bug.cgi?id=211075
Source/WebKit:

<rdar://problem/61866711>

Reviewed by Brent Fulgham.

Global preferences in the domain 'kCFPreferencesAnyApplication' are not readable in the WebContent process when CFPrefs direct mode
is enabled. Fix this by transferring a select set of global preferences to the WebContent process on startup.

API test: WebKit.GlobalPreferences

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::setGlobalPreferences):
(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

Reviewed by Brent Fulgham.

  • TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:

(TEST):

12:18 PM Changeset in webkit [260839] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: Classes toggle button has wrong outline on focus
https://bugs.webkit.org/show_bug.cgi?id=211104
<rdar://problem/62475340>

Reviewed by Devin Rousso.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:focus):

  • UserInterface/Views/Variables.css:

(:root):

12:07 PM Changeset in webkit [260838] by Peng Liu
  • 2 edits in trunk/Source/WebKit

Remove the WebKit.plist for Feature Flags
https://bugs.webkit.org/show_bug.cgi?id=210534

Unreviewed project file clean-up.

A follow-up patch for r260599. Remove the reference to the WebKit.plist from project.pbxproj.

  • WebKit.xcodeproj/project.pbxproj:
12:02 PM Changeset in webkit [260837] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: A suite running multiple times in a commit for a single configuration may overwrite upload metadata
https://bugs.webkit.org/show_bug.cgi?id=211097
<rdar://problem/62474538>

Rubber-stamped by Aakash Jain.

Create a new table for uploads which is indexed by both uuid and timestamp so that uploads which share
a configuration and uuid but not a timestamp do not collide.

  • resultsdbpy/resultsdbpy/model/upload_context.py:

(UploadContext):
(UploadContext.UploadsByConfigurationLegacy): Renamed from UploadContext.UploadsByConfiguration.
(UploadContext.UploadsByConfiguration): New database table indexed by both timestamp and uuid.
(UploadContext.UploadsByConfiguration.unpack):
(UploadContext.init):
(UploadContext.find_test_results): Search both versions of the UploadsByConfiguration table.

11:59 AM Changeset in webkit [260836] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix iOS API tests after r260790
https://bugs.webkit.org/show_bug.cgi?id=211093

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):
Only call the completion handler once.

11:57 AM Changeset in webkit [260835] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

REGRESSION(r260822): Broke media/track/track-in-band-metadata-display-order.html on Mac
https://bugs.webkit.org/show_bug.cgi?id=211133

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-28
Reviewed by Eric Carlson.

  • media/track/track-in-band-metadata-display-order.html: Ensure the caption

display mode is set to forced-only, this is a requirement for the
test.

11:04 AM Changeset in webkit [260834] by ysuzuki@apple.com
  • 25 edits
    2 adds in trunk

[JSC] NumberConstructor should accept BigInt
https://bugs.webkit.org/show_bug.cgi?id=210835

Reviewed by Mark Lam.

JSTests:

  • stress/number-constructor-bigint-dfg.js: Added.

(shouldBe):
(convert):

  • stress/number-constructor-bigint.js: Added.

(shouldBe):

  • test262/expectations.yaml:

Source/JavaScriptCore:

This patch fixes our Number constructor behavior to accept BigInt. According to the spec[1],
Number constructor should accept BigInt and should generate numbers from that.

We port V8's BigInt to double conversion code as we did for the other HeapBigInt runtime functions.

And we introduce CallNumberConstructor DFG node and handle Number constructor call with BigInt correctly
in DFG and FTL. Previously we were emitting ToNumber DFG node for Number constructor. But this is wrong
now since ToNumber does not accept BigInt and throws an error, and Number constructor should not use
ToNumber to implement its implementation. So we should introduce slightly different semantics: CallNumberConstructor
as we introduced CallStringConstructor in addition to ToString DFG node. And we add appropriate BigInt32 path
to emit efficient CallNumberConstructor machine code.

[1]: https://tc39.es/ecma262/#sec-number-constructor-number-value

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupToNumberOrToNumericOrCallNumberConstructor):
(JSC::DFG::FixupPhase::fixupToNumeric): Deleted.
(JSC::DFG::FixupPhase::fixupToNumber): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileToNumeric):
(JSC::DFG::SpeculativeJIT::compileCallNumberConstructor):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

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

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::decideRounding):
(JSC::JSBigInt::toNumberHeap):

  • runtime/JSBigInt.h:
  • runtime/NumberConstructor.cpp:

(JSC::constructNumberConstructor):
(JSC::callNumberConstructor):

11:04 AM Changeset in webkit [260833] by Alan Coon
  • 1 copy in tags/Safari-609.2.9.0.3

Tag Safari-609.2.9.0.3.

10:04 AM Changeset in webkit [260832] by jer.noble@apple.com
  • 9 edits in trunk/Source

[Mac] Adopt kMTSupportNotification_ShouldPlayHDRVideoChanged notification
https://bugs.webkit.org/show_bug.cgi?id=211028

Reviewed by Eric Carlson.

Source/WebCore/PAL:

Make MediaToolboxSoftLink fully exported from PAL.

  • pal/cf/CoreMediaSoftLink.cpp:
  • pal/cocoa/MediaToolboxSoftLink.cpp:
  • pal/cocoa/MediaToolboxSoftLink.h:

Source/WebKit:

Adopt a new notification which signals that the receiver should re-query for HDR support.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::webProcessPoolHighDynamicRangeDidChangeCallback):
(WebKit::WebProcessPool::registerHighDynamicRangeChangeCallback):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::registerHighDynamicRangeChangeCallback):
(WebKit::WebProcessPool::initializeNewWebProcess):

  • UIProcess/WebProcessPool.h:
9:36 AM Changeset in webkit [260831] by Jack Lee
  • 40 edits
    2 adds in trunk

Nullptr crash in EditCommand::EditCommand via CompositeEditCommand::removeNode
https://bugs.webkit.org/show_bug.cgi?id=207600
<rdar://problem/56969450>

Reviewed by Geoffrey Garen.

Source/WebCore:

Move FrameSelection and Editor objects from Frame to Document so when a document is detached
in nested command executions, the next EditCommand would not fail in constructor.

Test: editing/inserting/insert-list-then-edit-command-crash.html

  • dom/Document.cpp:

(WebCore::m_selection):
(WebCore::Document::prepareForDestruction):
(WebCore::m_undoManager): Deleted.

  • dom/Document.h:

(WebCore::Document::editor):
(WebCore::Document::editor const):
(WebCore::Document::selection):
(WebCore::Document::selection const):

  • dom/PositionIterator.cpp:

(WebCore::PositionIterator::isCandidate const):

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::AlternativeTextController):
(WebCore::AlternativeTextController::stopPendingCorrection):
(WebCore::AlternativeTextController::isSpellingMarkerAllowed const):
(WebCore::AlternativeTextController::applyAutocorrectionBeforeTypingIfAppropriate):
(WebCore::AlternativeTextController::respondToUnappliedSpellCorrection):
(WebCore::AlternativeTextController::timerFired):
(WebCore::AlternativeTextController::handleAlternativeTextUIResult):
(WebCore::AlternativeTextController::rootViewRectForRange const):
(WebCore::AlternativeTextController::respondToChangedSelection):
(WebCore::AlternativeTextController::respondToAppliedEditing):
(WebCore::AlternativeTextController::respondToUnappliedEditing):
(WebCore::AlternativeTextController::editorClient):
(WebCore::AlternativeTextController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand):
(WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult):
(WebCore::AlternativeTextController::respondToMarkerAtEndOfWord):
(WebCore::AlternativeTextController::alternativeTextClient):
(WebCore::AlternativeTextController::applyAlternativeTextToRange):
(WebCore::AlternativeTextController::insertDictatedText):
(WebCore::AlternativeTextController::applyDictationAlternative):

  • editing/AlternativeTextController.h:

(WebCore::AlternativeTextController::UNLESS_ENABLED):

  • editing/CompositeEditCommand.cpp:

(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
(WebCore::CompositeEditCommand::willApplyCommand):
(WebCore::CompositeEditCommand::didApplyCommand):
(WebCore::CompositeEditCommand::targetRanges const):
(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::saveTypingStyleState):
(WebCore::DeleteSelectionCommand::mergeParagraphs):
(WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
(WebCore::DeleteSelectionCommand::doApply):

  • editing/EditCommand.cpp:

(WebCore::EditCommand::EditCommand):
(WebCore::EditCommand::isEditingTextAreaOrTextInput const):
(WebCore::EditCommand::postTextStateChangeNotification):
(WebCore::EditCommand::frame): Deleted.
(WebCore::EditCommand::frame const): Deleted.

  • editing/EditCommand.h:
  • editing/Editing.cpp:

(WebCore::createDefaultParagraphElement):

  • editing/EditingStyle.cpp:

(WebCore::StyleChange::StyleChange):

  • editing/Editor.cpp:

(WebCore::ClearTextCommand::CreateAndApply):
(WebCore::TemporarySelectionChange::TemporarySelectionChange):
(WebCore::TemporarySelectionChange::~TemporarySelectionChange):
(WebCore::TemporarySelectionChange::setSelection):
(WebCore::Editor::selectionForCommand):
(WebCore::Editor::behavior const):
(WebCore::Editor::client const):
(WebCore::Editor::canEdit const):
(WebCore::Editor::canEditRichly const):
(WebCore::Editor::canDHTMLCut):
(WebCore::Editor::canDHTMLCopy):
(WebCore::Editor::canCopy const):
(WebCore::Editor::canPaste const):
(WebCore::Editor::canDelete const):
(WebCore::Editor::shouldSmartDelete):
(WebCore::Editor::deleteWithDirection):
(WebCore::Editor::deleteSelectionWithSmartDelete):
(WebCore::Editor::clearText):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::selectedRange):
(WebCore::Editor::tryDHTMLCopy):
(WebCore::Editor::tryDHTMLCut):
(WebCore::Editor::shouldInsertText const):
(WebCore::Editor::hasBidiSelection const):
(WebCore::Editor::selectionUnorderedListState const):
(WebCore::Editor::selectionOrderedListState const):
(WebCore::Editor::increaseSelectionListLevel):
(WebCore::Editor::increaseSelectionListLevelOrdered):
(WebCore::Editor::increaseSelectionListLevelUnordered):
(WebCore::Editor::decreaseSelectionListLevel):
(WebCore::Editor::findEventTargetFromSelection const):
(WebCore::Editor::applyStyle):
(WebCore::Editor::applyParagraphStyle):
(WebCore::Editor::applyStyleToSelection):
(WebCore::Editor::applyParagraphStyleToSelection):
(WebCore::Editor::selectionStartHasStyle const):
(WebCore::Editor::selectionHasStyle const):
(WebCore::Editor::selectionStartCSSPropertyValue):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::Editor):
(WebCore::Editor::clear):
(WebCore::Editor::insertText):
(WebCore::Editor::insertTextForConfirmedComposition):
(WebCore::Editor::insertTextWithoutSendingTextEvent):
(WebCore::Editor::insertLineBreak):
(WebCore::Editor::insertParagraphSeparator):
(WebCore::Editor::performCutOrCopy):
(WebCore::Editor::paste):
(WebCore::Editor::pasteAsQuotation):
(WebCore::Editor::renderLayerDidScroll):
(WebCore::Editor::setBaseWritingDirection):
(WebCore::Editor::baseWritingDirectionForSelectionStart const):
(WebCore::Editor::selectComposition):
(WebCore::SetCompositionScope::SetCompositionScope):
(WebCore::SetCompositionScope::~SetCompositionScope):
(WebCore::Editor::setComposition):
(WebCore::Editor::ignoreSpelling):
(WebCore::Editor::learnSpelling):
(WebCore::Editor::advanceToNextMisspelling):
(WebCore::Editor::misspelledWordAtCaretOrRange const):
(WebCore::Editor::isSelectionUngrammatical):
(WebCore::Editor::guessesForMisspelledWord const):
(WebCore::Editor::guessesForMisspelledOrUngrammatical):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::isSpellCheckingEnabledInFocusedNode const):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
(WebCore::Editor::markAndReplaceFor):
(WebCore::Editor::updateMarkersForWordsAffectedByEditing):
(WebCore::Editor::rangeForPoint):
(WebCore::Editor::revealSelectionAfterEditingOperation):
(WebCore::Editor::setIgnoreSelectionChanges):
(WebCore::Editor::getCompositionSelection const):
(WebCore::Editor::transpose):
(WebCore::Editor::changeSelectionAfterCommand):
(WebCore::Editor::selectedText const):
(WebCore::Editor::selectedTextForDataTransfer const):
(WebCore::Editor::insertTextPlaceholder):
(WebCore::Editor::removeTextPlaceholder):
(WebCore::Editor::shouldChangeSelection const):
(WebCore::Editor::computeAndSetTypingStyle):
(WebCore::Editor::findString):
(WebCore::Editor::countMatchesForText):
(WebCore::Editor::respondToChangedSelection):
(WebCore::Editor::shouldDetectTelephoneNumbers):
(WebCore::Editor::scanSelectionForTelephoneNumbers):
(WebCore::Editor::editorUIUpdateTimerFired):
(WebCore::Editor::selectionStartHasMarkerFor const):
(WebCore::candidateRangeForSelection):
(WebCore::Editor::stringForCandidateRequest const):
(WebCore::Editor::contextRangeForCandidateRequest const):
(WebCore::Editor::fontAttributesAtSelectionStart const):
(WebCore::Editor::notifyClientOfAttachmentUpdates):
(WebCore::Editor::handleAcceptedCandidate):
(WebCore::Editor::unifiedTextCheckerEnabled const):
(WebCore::Editor::toggleOverwriteModeEnabled):
(WebCore::Editor::fontForSelection const):
(WebCore::Editor::canCopyExcludingStandaloneImages const):
(WebCore::Editor::document const): Deleted.

  • editing/Editor.h:

(WebCore::TemporarySelectionChange::TemporarySelectionChange):
(WebCore::IgnoreSelectionChangeForScope::IgnoreSelectionChangeForScope):
(WebCore::Editor::document const):

  • editing/EditorCommand.cpp:

(WebCore::executeSwapWithMark):
(WebCore::Editor::command):
(WebCore::Editor::Command::Command):
(WebCore::Editor::Command::execute const):

  • editing/FrameSelection.cpp:

(WebCore::shouldAlwaysUseDirectionalSelection):
(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::rootEditableElementOrDocumentElement const):
(WebCore::FrameSelection::setSelectionByMouseIfDifferent):
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::setSelection):
(WebCore::updateSelectionByUpdatingLayoutOrStyle):
(WebCore::FrameSelection::setNeedsSelectionUpdate):
(WebCore::FrameSelection::updateAndRevealSelection):
(WebCore::FrameSelection::updateDataDetectorsForSelection):
(WebCore::FrameSelection::positionForPlatform const):
(WebCore::FrameSelection::nextWordPositionForPlatform):
(WebCore::FrameSelection::modifyMovingRight):
(WebCore::FrameSelection::modifyMovingLeft):
(WebCore::FrameSelection::modify):
(WebCore::FrameSelection::prepareForDestruction):
(WebCore::FrameSelection::absoluteCaretBounds):
(WebCore::FrameSelection::recomputeCaretRect):
(WebCore::FrameSelection::contains const):
(WebCore::FrameSelection::selectAll):
(WebCore::FrameSelection::focusedOrActiveStateChanged):
(WebCore::FrameSelection::isFocusedAndActive const):
(WebCore::shouldStopBlinkingDueToTypingCommand):
(WebCore::FrameSelection::updateAppearance):
(WebCore::FrameSelection::setCaretVisibility):
(WebCore::FrameSelection::setFocusedElementIfNeeded):
(WebCore::FrameSelection::shouldDeleteSelection const):
(WebCore::FrameSelection::selectionBounds const):
(WebCore::FrameSelection::getClippedVisibleTextRectangles const):
(WebCore::FrameSelection::currentForm const):
(WebCore::FrameSelection::revealSelection):
(WebCore::FrameSelection::setSelectionFromNone):
(WebCore::FrameSelection::shouldChangeSelection const):
(WebCore::FrameSelection::setShouldShowBlockCursor):
(WebCore::FrameSelection::appearanceUpdateTimerFired):
(WebCore::FrameSelection::updateAppearanceAfterLayoutOrStyleChange):
(WebCore::FrameSelection::selectRangeOnElement):
(WebCore::FrameSelection::setCaretBlinks):

  • editing/FrameSelection.h:
  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::doApply):

  • editing/InsertLineBreakCommand.cpp:

(WebCore::InsertLineBreakCommand::doApply):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::doApply):

  • editing/ReplaceRangeWithTextCommand.cpp:

(WebCore::ReplaceRangeWithTextCommand::doApply):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply):

  • editing/SetSelectionCommand.cpp:

(WebCore::SetSelectionCommand::doApply):
(WebCore::SetSelectionCommand::doUnapply):

  • editing/SpellChecker.cpp:

(WebCore::SpellChecker::SpellChecker):
(WebCore::SpellChecker::client const):
(WebCore::SpellChecker::isAsynchronousEnabled const):
(WebCore::SpellChecker::invokeRequest):
(WebCore::SpellChecker::didCheck):
(WebCore::SpellChecker::didCheckSucceed):

  • editing/SpellChecker.h:
  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::doApply):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::deleteSelection):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::TypingCommand::updateSelectionIfDifferentFromCurrentSelection):
(WebCore::TypingCommand::insertText):
(WebCore::TypingCommand::insertLineBreak):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
(WebCore::TypingCommand::insertParagraphSeparator):
(WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
(WebCore::TypingCommand::closeTyping):
(WebCore::TypingCommand::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping):
(WebCore::TypingCommand::markMisspellingsAfterTyping):
(WebCore::TypingCommand::willAddTypingToOpenCommand):
(WebCore::TypingCommand::typingAddedToOpenCommand):
(WebCore::TypingCommand::insertTextAndNotifyAccessibility):
(WebCore::TypingCommand::insertTextRunWithoutNewlines):
(WebCore::TypingCommand::insertLineBreakAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContentAndNotifyAccessibility):

  • editing/TypingCommand.h:
  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::selectionInHTMLFormat):
(WebCore::Editor::writeSelectionToPasteboard):
(WebCore::Editor::writeSelection):
(WebCore::Editor::selectionInWebArchiveFormat):
(WebCore::Editor::replaceSelectionWithAttributedString):
(WebCore::Editor::webContentFromPasteboard):
(WebCore::Editor::takeFindStringFromSelection):

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::writeSelectionToPasteboard):
(WebCore::Editor::webContentFromPasteboard):

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
(WebCore::Editor::removeUnchangeableStyles):
(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::insertDictationPhrases):
(WebCore::Editor::setDictationPhrasesAsChildOfElement):
(WebCore::Editor::setTextAsChildOfElement):
(WebCore::Editor::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping):

  • editing/libwpe/EditorLibWPE.cpp:

(WebCore::Editor::writeSelectionToPasteboard):
(WebCore::Editor::pasteWithPasteboard):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::readSelectionFromPasteboard):
(WebCore::Editor::replaceNodeFromPasteboard):
(WebCore::Editor::selectionWillChange):

  • editing/win/EditorWin.cpp:

(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::webContentFromPasteboard):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::willTransitionToCommitted):
(WebCore::FrameLoader::closeURL):
(WebCore::FrameLoader::didOpenURL):
(WebCore::FrameLoader::clear):

  • page/Frame.cpp:

(WebCore::Frame::Frame):
(WebCore::Frame::requestDOMPasteAccess):
(WebCore::Frame::setPageAndTextZoomFactors):

  • page/Frame.h:
  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):

LayoutTests:

Added a regression test for the crash.

  • editing/inserting/insert-list-then-edit-command-crash-expected.txt: Added.
  • editing/inserting/insert-list-then-edit-command-crash.html: Added.

Modify the test result. FrameSelection is being destructed along with
document so an additional selection change notification is expected.

  • platform/mac/editing/pasteboard/drag-drop-dead-frame-expected.txt:
9:23 AM Changeset in webkit [260830] by alex
  • 2 edits in trunk/LayoutTests

[GTK][WebGL] compositing/clipping/border-radius-on-webgl.html is failing since added
https://bugs.webkit.org/show_bug.cgi?id=211121

Also removed fast/mediastream/getDisplayMedia-max-constraints.html
from TestExpectations, it was removed from the repository in r260638.

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
9:15 AM Changeset in webkit [260829] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK] Unreviewed build fix for Clang 10

  • UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:

(webkitInputMethodContextImplGtkGetPreedit): Use the "f" suffix to make constants float to
prevent a narrowing double-to-float narrowing issue which Clang 10 considers an error. This
only happens with GTK4 because GdkRGBA now has float members. Using float constants is fine
with GTK3, because promoting floats to doubles never loses precision.

9:05 AM Changeset in webkit [260828] by Antti Koivisto
  • 3 edits
    2 adds in trunk

msn.com: Header flickers when scrolling articles
https://bugs.webkit.org/show_bug.cgi?id=211126
<rdar://problem/56439177>

Reviewed by Simon Fraser.

Source/WebCore:

Test: compositing/fixed-with-clip-stability.html

In case of fixed positioned elements the decision to create backing depends on clip rect.
However RenderLayer::localClipRect() tests for backing in call to clippingRootForPainting(). This creates
instability since clipping depends on backing decision, and backing decision depends on clipping.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::localClipRect const):

Specifically the result of clipExceedsBounds test here is affected by computed offsetFromRoot:
"clipRect.contains(cssClipRect)" test fails for zero sized clips with different offsets.

Compute clipExceedsBounds by looking at the clip sizes only and ignoring the position (which should match).

LayoutTests:

  • compositing/fixed-with-clip-stability-expected.txt: Added.
  • compositing/fixed-with-clip-stability.html: Added.
8:25 AM Changeset in webkit [260827] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC] Introduce FormattingContext::ConstraintsForOutOfFlowContent
https://bugs.webkit.org/show_bug.cgi?id=211125

Reviewed by Antti Koivisto.

Horizontal and vertical out-of-flow constraints are always computed and used in pairs.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

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

(WebCore::Layout::FormattingContext::Geometry::constraintsForOutOfFlowContent):
(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForOutOfFlow): Deleted.
(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForOutOfFlow): Deleted.

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

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

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

7:54 AM Changeset in webkit [260826] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

[iOS] Marked text editor state only needs to be set when layout is up-to-date
https://bugs.webkit.org/show_bug.cgi?id=211087

Patch by Daniel Bates <dabates@apple.com> on 2020-04-28
Reviewed by Darin Adler.

Organize the code to reflect reality: editor state only has marked text rects if layout is
up-to-date. So, move these fields to from EditorState to EditorState::PostLayoutData.

While I am in this area of the code I also moved the editor state originIdentifierForPasteboard
to the top of the struct as it is aesthetically more pleasing to me to have the post layout
data last. It likely also produces better bit packing though this wasn't my primary motivation.

  • Shared/EditorState.cpp:

(WebKit::EditorState::encode const):
(WebKit::EditorState::decode):
(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):
Move encoding and decoding of marked test fields from EditorState to EditorState::PostLayoutData.

(WebKit::operator<<): Fix up code now that marked text fields are in PostLayoutData.

  • Shared/EditorState.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textFirstRect]): Update code now that this data is in the post layout data struct.
(-[WKContentView textLastRect]): Ditto.
(-[WKContentView _updateChangedSelection:]): Ditto.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::convertContentToRootViewSelectionRects): Added.
(WebKit::WebPage::getPlatformEditorState const): Update now that marked text fields are in the
post layout data struct. Simplify the early return as well: only continue if we're not missing post
layout data. If we're missing post layout data then we either do not have a frame view or layout is
not up-to-data. Either way we don't want to do anything. I also stored the FrameView in a Ref<> to
future proof the code should future code cause view detachment and destruction. Note that layout
could cause this, but the code currently covers this case. So, taking a Ref<> is about future proofing.
(WebKit::WebPage::getRectsForGranularityWithSelectionOffset): Update to use convertContentToRootViewSelectionRects().
(WebKit::WebPage::getRectsAtSelectionOffsetWithText): Ditto.
(WebKit::WebPage::requestAutocorrectionData): Use Vector::map() to convert the selection rects to
from content to root view FloatRects.
(WebKit::WebPage::convertSelectionRectsToRootView): Deleted.

7:49 AM Changeset in webkit [260825] by Claudio Saavedra
  • 2 edits in trunk/Tools

[Linux] Replace --geometry with --fullscreen when using MiniBrowser for WebDriver tests
https://bugs.webkit.org/show_bug.cgi?id=211123

Reviewed by Carlos Alberto Lopez Perez.

MiniBrowser's --geometry is on its way out, so use --fullscreen
instead as it does the job.

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

(GTKMiniBrowserDriver.launch_url):

7:44 AM Changeset in webkit [260824] by Alan Bujtas
  • 15 edits in trunk/Source/WebCore

[LFC] Introduce FormattingContext::ConstraintsForInFlowContent
https://bugs.webkit.org/show_bug.cgi?id=211113

Reviewed by Antti Koivisto.

This makes the layoutInFlowContent() related code look simpler.

  • layout/FormattingContext.cpp:

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

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

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

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

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayout):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::layout):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutCell):

  • layout/tableformatting/TableFormattingContext.h:
7:34 AM Changeset in webkit [260823] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207165

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:17 AM Changeset in webkit [260822] by Philippe Normand
  • 7 edits in trunk

media/track/track-load-error-readyState.html passes only when accompanied by some other tests
https://bugs.webkit.org/show_bug.cgi?id=210976

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState): Reset caption
display mode, which might have been overriden by a previous test.

LayoutTests:

  • media/track/track-load-error-readyState-expected.txt:
  • media/track/track-load-error-readyState.html: Ensure the caption

display mode is set to automatic, this is a requirement for the
test.

  • media/track/track-mode-not-changed-by-new-track-expected.txt:
  • media/track/track-mode-not-changed-by-new-track.html: Ditto.
7:14 AM Changeset in webkit [260821] by Philippe Normand
  • 2 edits in trunk

[GStreamer][MediaStream] Doesn't build with GStreamer 1.10
https://bugs.webkit.org/show_bug.cgi?id=210271

Reviewed by Xabier Rodriguez-Calvar.

  • Source/cmake/GStreamerChecks.cmake: Require at least GStreamer

1.12 when building with WebRTC/MediaStream enabled.

6:09 AM Changeset in webkit [260820] by pvollan@apple.com
  • 11 edits
    2 adds in trunk

[iOS] Fix sandbox violation when uploading a file
https://bugs.webkit.org/show_bug.cgi?id=210937

Reviewed by Darin Adler.

Source/WebKit:

On iOS, the file chooser needs access to frontboard and icon services in the WebContent process. Create and
consume extensions for these services when choosing files. When done, the extensions should be revoked. This
patch also fixes an out-of-bounds array exception when running the test created for this patch. Additionally,
the function thumbnailSizedImageForImage should return a RetainPtr<UIImage>, since it seems unsafe to not
retain the UIImage after the image context is released in that function.

Test: fast/forms/file/open-file-panel-crash.html

  • Shared/ios/WebIconUtilities.h:
  • Shared/ios/WebIconUtilities.mm:

(WebKit::thumbnailSizedImageForImage):
(WebKit::fallbackIconForFile):
(WebKit::iconForImageFile):
(WebKit::iconForVideoFile):
(WebKit::iconForFile):

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[_WKFileUploadItem displayImage]):
(-[_WKImageFileUploadItem displayImage]):
(-[_WKVideoFileUploadItem displayImage]):
(-[WKFileUploadPanel documentPicker:didPickDocumentsAtURLs:]):
(-[WKFileUploadPanel imagePickerController:didFinishPickingMediaWithInfo:]):
(-[WKFileUploadPanel imagePickerController:didFinishPickingMultipleMediaWithInfo:]):

  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:

(WebKit::WebChromeClient::createIconForFiles):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChooseFilesForOpenPanelWithDisplayStringAndIcon):

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

LayoutTests:

  • fast/forms/file/open-file-panel-crash-expected.txt: Added.
  • fast/forms/file/open-file-panel-crash.html: Added.
  • platform/win/TestExpectations:
5:27 AM Changeset in webkit [260819] by Carlos Garcia Campos
  • 8 edits in trunk

[GTK4] Add support for motion events
https://bugs.webkit.org/show_bug.cgi?id=211073

Reviewed by Adrian Perez de Castro.

Source/WebKit:

Handle enter, leave and motion events using a GtkEventControllerMotion.

  • Shared/NativeWebMouseEvent.h:
  • Shared/gtk/NativeWebMouseEventGtk.cpp:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):

  • Shared/gtk/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebMouseEvent):

  • Shared/gtk/WebEventFactory.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseEnter):
(webkitWebViewBaseMotion):
(webkitWebViewBaseLeave):
(webkitWebViewBaseConstructed):

Tools:

Use the GtkOverlay in GTK4 too so that status label is shown when hovering elements.

  • MiniBrowser/gtk/BrowserTab.c:

(browserTabConstructed):

4:57 AM Changeset in webkit [260818] by Adrian Perez de Castro
  • 9 edits in trunk/Source

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

Unreviewed build fix.

Source/WebCore:

No new tests needed.

  • Modules/cache/DOMCacheStorage.cpp: Sprinkle DOMCacheEngine:: namespace prefixes as needed.

(WebCore::DOMCacheStorage::findCacheOrCreate):
(WebCore::DOMCacheStorage::retrieveCaches):
(WebCore::DOMCacheStorage::doOpen):
(WebCore::DOMCacheStorage::doRemove):

  • bindings/js/JSExecStateInstrumentation.h: Ditto for JSC:: namespace prefixes.

(WebCore::JSExecState::instrumentFunction):

  • dom/ScriptedAnimationController.h: Add missing ReducedResolutionSeconds.h header.
  • editing/TextCheckingHelper.h: Add missing forward declaration for Position.
  • html/URLSearchParams.h: Add missing ExceptionOr.h header.

Source/WebKit:

  • NetworkProcess/NetworkLoad.cpp: Add mising WebCoreArgumentCoders.h header.
  • WebProcess/Automation/WebAutomationDOMWindowObserver.cpp:

(WebKit::WebAutomationDOMWindowObserver::WebAutomationDOMWindowObserver): Add namespace to
WebCore::DOMWindow usage.

4:50 AM Changeset in webkit [260817] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebKit

[GTK4] Add support for scroll events
https://bugs.webkit.org/show_bug.cgi?id=211045

Reviewed by Adrian Perez de Castro.

Use an event controller to connect to scroll signal and get the GdkEvent.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseHandleWheelEvent):
(webkitWebViewBaseScroll):
(webkitWebViewBaseConstructed):

4:28 AM Changeset in webkit [260816] by Carlos Garcia Campos
  • 10 edits in trunk

[GTK4][Wayland] Add support for rendering web view contents
https://bugs.webkit.org/show_bug.cgi?id=211021

Reviewed by Adrian Perez de Castro.

Source/WebKit:

Implement GtkWidgetClass::snapshot and GtkWidgetClass::measure instead of GtkWidgetClass::draw and
GtkWidgetClass::get_preferred_width|height. Add AcceleratedBackingStore::snapshot() pure virtual to be used with
GTK4 instead of AcceleratedBackingStore::paint(), and implement it for Wayland.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSnapshot): Call AcceleratedBackingStore::snapshot().
(webkitWebViewBaseMeasure): Return the natural width/height for the WebView.
(webkit_web_view_base_class_init): Add implementations for snapshot and measure vfuncs.

  • UIProcess/gtk/AcceleratedBackingStore.h:
  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): Always try to realize the context here, since that
can fail too.
(WebKit::AcceleratedBackingStoreWayland::tryEnsureTexture): Helper to share the code to prepare the texture.
(WebKit::AcceleratedBackingStoreWayland::downloadTexture): Helper to share the code to download the texture.
(WebKit::AcceleratedBackingStoreWayland::snapshot): Use gtk_snapshot_append_texture().
(WebKit::AcceleratedBackingStoreWayland::paint): Use new helpers.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.h:
  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::snapshot):

  • UIProcess/gtk/AcceleratedBackingStoreX11.h:
  • UIProcess/gtk/HardwareAccelerationManager.cpp:

(WebKit::HardwareAccelerationManager::HardwareAccelerationManager): Force accelerated compositing mode for GTK4.

Tools:

Set vertical expand of web view to TRUE.

  • MiniBrowser/gtk/BrowserTab.c:

(browserTabConstructed):

3:58 AM Changeset in webkit [260815] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[EME][CDMProxy] Default initialize m_numDecryptorsWaitingForKey member
https://bugs.webkit.org/show_bug.cgi?id=210970

Reviewed by Xabier Rodriguez-Calvar.

This was causing non-deterministic reads of the
m_numDecryptorsWaitingForKey member. Sometimes a waiting for key
event would fail to fire and cause test failures. I thought
std::atomic<int> would default initialize to zero, but after
spec-diving I realise now I was wrong about that.

Test: encrypted-media/clearkey-mp4-waiting-for-a-key.https.html

  • platform/encryptedmedia/CDMProxy.h:
3:08 AM Changeset in webkit [260814] by youenn@apple.com
  • 7 edits
    2 adds in trunk

RTCPeerConnection should not remove its created remote MediaStream objects until getting close
https://bugs.webkit.org/show_bug.cgi?id=211070

Reviewed by Alex Christensen.

Source/WebCore:

Remove no longer needed code.
This aligns with the spec and Firefox implementation.
Test: webrtc/direction-change.html

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::transceiverBackendFromSender):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:

LayoutTests:

  • webrtc/direction-change-expected.txt: Added.
  • webrtc/direction-change.html: Added.
  • webrtc/routines.js:
  • webrtc/video-setDirection-expected.txt:
  • webrtc/video-setDirection.html:
2:57 AM Changeset in webkit [260813] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Ensure remote track event gets unmuted after the track event is fired
https://bugs.webkit.org/show_bug.cgi?id=211071

Reviewed by Alex Christensen.

This code was made obsolete by the setMuted(false) call done just after firing the track event.
Given the setMuted(false) in addPendingTrackEvent was done asynchronously and was triggering firing the muted event asynchronously,
this change should not be observable from JS.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addPendingTrackEvent):

2:11 AM Changeset in webkit [260812] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Make HistoryController an inner class of FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=211090

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

Make HistoryController an inner class of FrameLoader, this allows
us to move some methods only used by HistoryController out of the
FrameLoader public API.

  • loader/FrameLoader.h:
  • loader/HistoryController.cpp:
  • loader/HistoryController.h:

Apr 27, 2020:

11:59 PM Changeset in webkit [260811] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK][WebInspector] platformSave broken when running within the Flatpak runtime
https://bugs.webkit.org/show_bug.cgi?id=209473

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-27
Reviewed by Adrian Perez de Castro.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox): White-list the user document
folder into the sandbox. This seems needed by the file-chooser
popup, somehow.

11:41 PM Changeset in webkit [260810] by ysuzuki@apple.com
  • 10 edits
    1 add in trunk

[JSC] Throw OutOfMemoryError instead of RangeError if BigInt is too big
https://bugs.webkit.org/show_bug.cgi?id=211111

Reviewed by Saam Barati.

JSTests:

  • stress/big-int-constructor-oom.js:

(catch):

  • stress/big-int-left-shift-range-error.js:

(assertThrowRangeError):

  • stress/big-int-out-of-memory-tests.js:

(catch):

  • stress/bigint-exponential-oom.js: Added.

(shouldThrow):

  • stress/bigint-int32-min-shift.js:

(shouldThrow):

Source/JavaScriptCore:

Currently, we are throwing a RangeError if we detect that JSBigInt becomes too large. But this is not consistent with our JSString's policy.
We should throw OutOfMemoryError in this case. This also makes DFG simple since DFG allows throwing OutOfMemoryError in any places which node
is even removed.

  • dfg/DFGFixupPhase.cpp:

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

  • runtime/ExceptionHelpers.cpp:

(JSC::throwOutOfMemoryError):

  • runtime/ExceptionHelpers.h:
  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::tryCreateWithLength):
(JSC::JSBigInt::exponentiateHeap):
(JSC::JSBigInt::leftShiftByAbsolute):
(JSC::JSBigInt::allocateFor):

11:24 PM Changeset in webkit [260809] by sbarati@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

BigInt math runtime shouldn't convert BigInt32 input operands to a heap cell when doing math
https://bugs.webkit.org/show_bug.cgi?id=210978

Reviewed by Yusuke Suzuki.

This patch adds support in the runtime for doing alomst all BigInt math
operations on the inputs either being Int32, HeapBigInt, or a mixing
of both. Before, if we detected a binary operation on an Int32 and a
HeapBigInt, this would lead us to convert the Int32 operand into a HeapBigInt.

This is especially bad because we'd repeat this for all math ops. For example,
if x is a BigInt32, and all rhs are a HeapBigInt, we'd repeatedly convert x
to a HeapBigInt for each operation:
`
x + y
x * y
x - y
x >> y
x << y
etc
`

To teach the runtime how to operate both over a BigInt32 and a HeapBigInt, I
templatized the runtime math operations to work both over BigInt32 and
HeapBigInt wrapper classes that expose the same interface.

This is a ~28% speedup on microbenchmarks/sunspider-sha1-big-int.js

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compare):

  • jit/JITOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSBigInt.cpp:

(JSC::HeapBigIntImpl::HeapBigIntImpl):
(JSC::HeapBigIntImpl::isZero):
(JSC::HeapBigIntImpl::sign):
(JSC::HeapBigIntImpl::length):
(JSC::HeapBigIntImpl::digit):
(JSC::HeapBigIntImpl::toHeapBigInt):
(JSC::Int32BigIntImpl::Int32BigIntImpl):
(JSC::Int32BigIntImpl::isZero):
(JSC::Int32BigIntImpl::sign):
(JSC::Int32BigIntImpl::length):
(JSC::Int32BigIntImpl::digit):
(JSC::Int32BigIntImpl::toHeapBigInt):
(JSC::JSBigInt::ImplResult::ImplResult):
(JSC::tryConvertToBigInt32):
(JSC::JSBigInt::inplaceMultiplyAdd):
(JSC::JSBigInt::exponentiateImpl):
(JSC::JSBigInt::exponentiate):
(JSC::JSBigInt::multiplyImpl):
(JSC::JSBigInt::multiply):
(JSC::JSBigInt::divideImpl):
(JSC::JSBigInt::divide):
(JSC::JSBigInt::copy):
(JSC::JSBigInt::unaryMinusImpl):
(JSC::JSBigInt::unaryMinus):
(JSC::JSBigInt::remainderImpl):
(JSC::JSBigInt::remainder):
(JSC::JSBigInt::incImpl):
(JSC::JSBigInt::inc):
(JSC::JSBigInt::decImpl):
(JSC::JSBigInt::dec):
(JSC::JSBigInt::addImpl):
(JSC::JSBigInt::add):
(JSC::JSBigInt::subImpl):
(JSC::JSBigInt::sub):
(JSC::JSBigInt::bitwiseAndImpl):
(JSC::JSBigInt::bitwiseAnd):
(JSC::JSBigInt::bitwiseOrImpl):
(JSC::JSBigInt::bitwiseOr):
(JSC::JSBigInt::bitwiseXorImpl):
(JSC::JSBigInt::bitwiseXor):
(JSC::JSBigInt::leftShiftImpl):
(JSC::JSBigInt::leftShift):
(JSC::JSBigInt::leftShiftSlow):
(JSC::JSBigInt::signedRightShiftImpl):
(JSC::JSBigInt::signedRightShift):
(JSC::JSBigInt::bitwiseNotImpl):
(JSC::JSBigInt::bitwiseNot):
(JSC::JSBigInt::internalMultiplyAdd):
(JSC::JSBigInt::multiplyAccumulate):
(JSC::JSBigInt::absoluteCompare):
(JSC::JSBigInt::compareImpl):
(JSC::JSBigInt::compare):
(JSC::JSBigInt::absoluteAdd):
(JSC::JSBigInt::absoluteSub):
(JSC::JSBigInt::absoluteDivWithDigitDivisor):
(JSC::JSBigInt::absoluteDivWithBigIntDivisor):
(JSC::JSBigInt::absoluteLeftShiftAlwaysCopy):
(JSC::JSBigInt::absoluteBitwiseOp):
(JSC::JSBigInt::absoluteAnd):
(JSC::JSBigInt::absoluteOr):
(JSC::JSBigInt::absoluteAndNot):
(JSC::JSBigInt::absoluteXor):
(JSC::JSBigInt::absoluteAddOne):
(JSC::JSBigInt::absoluteSubOne):
(JSC::JSBigInt::leftShiftByAbsolute):
(JSC::JSBigInt::rightShiftByAbsolute):
(JSC::JSBigInt::rightShiftByMaximum):
(JSC::JSBigInt::toStringGeneric):
(JSC::JSBigInt::toShiftAmount):
(JSC::JSBigInt::exponentiateHeap): Deleted.
(JSC::JSBigInt::multiplyHeap): Deleted.
(JSC::JSBigInt::divideHeap): Deleted.
(JSC::JSBigInt::unaryMinusHeap): Deleted.
(JSC::JSBigInt::remainderHeap): Deleted.
(JSC::JSBigInt::incHeap): Deleted.
(JSC::JSBigInt::decHeap): Deleted.
(JSC::JSBigInt::addHeap): Deleted.
(JSC::JSBigInt::subHeap): Deleted.
(JSC::JSBigInt::bitwiseAndHeap): Deleted.
(JSC::JSBigInt::bitwiseOrHeap): Deleted.
(JSC::JSBigInt::bitwiseXorHeap): Deleted.
(JSC::JSBigInt::leftShiftHeap): Deleted.
(JSC::JSBigInt::signedRightShiftHeap): Deleted.
(JSC::JSBigInt::bitwiseNotHeap): Deleted.
(JSC::JSBigInt::compareToInt32): Deleted.

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

(JSC::jsAddSlowCase):

  • runtime/Operations.h:

(JSC::compareBigInt):
(JSC::compareBigInt32ToOtherPrimitive):
(JSC::arithmeticBinaryOp):
(JSC::jsSub):
(JSC::jsMul):
(JSC::jsDiv):
(JSC::jsRemainder):
(JSC::jsPow):
(JSC::jsInc):
(JSC::jsDec):
(JSC::jsBitwiseNot):
(JSC::shift):
(JSC::jsLShift):
(JSC::jsRShift):
(JSC::bitwiseBinaryOp):
(JSC::jsBitwiseAnd):
(JSC::jsBitwiseOr):
(JSC::jsBitwiseXor):

11:22 PM Changeset in webkit [260808] by Simon Fraser
  • 8 edits
    2 adds in trunk

Do correct clipping of composited replaced elements with border-radius
https://bugs.webkit.org/show_bug.cgi?id=211114

Reviewed by Zalan Bujtas.
Source/WebCore:

For replaced elements with composited content (video, WebGL), RenderLayerBacking
incorrectly used the rounded inner border rect to clip the contents. This doesn't match
painted replaced elements, which clip to the inside of the padding box.

Fix by implementing RenderReplaced::roundedContentBoxRect() and calling it from compositing
code. Also add a helper to get the rounded border box rect, and call it in various places.

Test: compositing/clipping/border-radius-on-webgl.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::roundedBorderBoxRect const):

  • rendering/RenderBox.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::updateContentsRects):
(WebCore::RenderLayerBacking::resetContentsRect):
(WebCore::RenderLayerBacking::updateChildClippingStrategy):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
(WebCore::RenderLayerBacking::updateImageContents):
(WebCore::backgroundRectForBox):

  • rendering/RenderLayerBacking.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::roundedContentBoxRect const):

  • rendering/RenderReplaced.h:

LayoutTests:

This test clips out everything but the rounded padding area. None of the red
canvas should show.

  • compositing/clipping/border-radius-on-webgl-expected.html: Added.
  • compositing/clipping/border-radius-on-webgl.html: Added.
7:47 PM Changeset in webkit [260807] by Devin Rousso
  • 6 edits in trunk

Web Inspector: Storage: can see third-party cookies
https://bugs.webkit.org/show_bug.cgi?id=211092
<rdar://problem/62469078>

Reviewed by Chris Dumez.

Source/WebKit:

Test: http/tests/inspector/page/get-cookies.html

After r259649, Web Inspector no longer incorrectly bails when attempting to get cookies if
the last resource loaded by a given frame does not have cookie access. We also need to check
whether the resource we're attempting to get cookies for is first-party or third-party so as
to reflect the current cookie policy.

  • WebProcess/WebPage/WebCookieJar.cpp:

(WebKit::shouldBlockCookies):

LayoutTests:

  • http/tests/inspector/page/get-cookies.html:
  • http/tests/inspector/page/get-cookies-expected.txt:
  • http/tests/inspector/page/resources/set-cookie.php:
6:35 PM Changeset in webkit [260806] by keith_miller@apple.com
  • 3 edits in trunk/JSTests

stress/generator-containing-for-of-on-map.js and stress/generator-containing-for-of-on-set.js timing out on debug JSC bot
https://bugs.webkit.org/show_bug.cgi?id=211095

Reviewed by Yusuke Suzuki.

Let's try making these tests shorter. Eager compilation should still be interesting with the shorter iterations.

  • stress/generator-containing-for-of-on-map.js:
  • stress/generator-containing-for-of-on-set.js:
6:33 PM Changeset in webkit [260805] by ysuzuki@apple.com
  • 8 edits
    1 add in trunk

[JSC] >>> should call ToNumeric
https://bugs.webkit.org/show_bug.cgi?id=211065

Reviewed by Ross Kirsling.

JSTests:

  • stress/bigint-urshift.js: Added.

(shouldBe):
(shouldThrow):

  • test262/expectations.yaml:

Source/JavaScriptCore:

While BigInt does not support >>> operator, >>> operator should call ToNumeric (in this case, toBigIntOrInt32) for both before throwing an error.
We call toBigIntOrInt32 for both operands, and throw an error. And after that, casting int32_t to uint32_t to perform >>> operator. This is correct
since the only difference between toUint32 and toInt32 is casting int32_t result to uint32_t.

  • dfg/DFGOperations.cpp:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/Operations.h:

(JSC::shift):
(JSC::jsURShift):

6:08 PM Changeset in webkit [260804] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening timing out host invalid values test

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
5:51 PM Changeset in webkit [260803] by keith_miller@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

OSR Exit compiler should know and print the exiting DFG node's index
https://bugs.webkit.org/show_bug.cgi?id=210998

Reviewed by Mark Lam.

The only interesting thing here is that we set the node to index 0 if there is no node.
AFAICT, we only don't have a node when we are checking arguments.

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::OSRExit):
(JSC::DFG::operationCompileOSRExit):

  • dfg/DFGOSRExitBase.h:

(JSC::DFG::OSRExitBase::OSRExitBase):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
(JSC::FTL::DFG::LowerDFGToB3::blessSpeculation):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExitDescriptor::emitOSRExit):
(JSC::FTL::OSRExitDescriptor::emitOSRExitLater):
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
(JSC::FTL::OSRExit::OSRExit):

  • ftl/FTLOSRExit.h:
  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

5:35 PM Changeset in webkit [260802] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

compilePeepHoleBigInt32Branch needs to handle all conditions
https://bugs.webkit.org/show_bug.cgi?id=211096
<rdar://problem/62469971>

Reviewed by Yusuke Suzuki.

We were falling through to the generic path for all conditions which
weren't Equal/NotEqual. The generic path does not do speculation, so
it was leading to potential miscompiles because we omitted a type check.
Defining compilePeepHoleBigInt32Branch for other conditions is trivial,
so this patch just implements that.

This failure is caught by microbenchmarks/sunspider-sha1-big-int.js

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleBigInt32Branch):

5:29 PM Changeset in webkit [260801] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Follow-up change after r260798.

Allow iOS to consume the 'com.apple.cfprefsd.agent' endpoint if issued by the UIProcess.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
5:22 PM Changeset in webkit [260800] by commit-queue@webkit.org
  • 14 edits
    2 adds in trunk

Timestamps should be the same for all rendering update steps
https://bugs.webkit.org/show_bug.cgi?id=207153

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-04-27
Reviewed by Simon Fraser.

Source/WebCore:

The HTML 5 event loop sepcs states that timestamps should be the same for
all rendering update steps.

Specs link (step 9):

https://html.spec.whatwg.org/multipage/webappapis.html#event-loop-processing-model

This patch also fixes some issues in IntersectionObserver.

Test: intersection-observer/intersection-observer-callback-timestamp.html

  • dom/Document.cpp:

(WebCore::Document::updateIntersectionObservations):
(WebCore::Document::notifyIntersectionObserversTimerFired): Deleted.

  • dom/Document.h:

-- Handle the case when two floats are areEssentiallyEqual().
-- Execute the IntersectionObserver immediately and do not wait until the

next CFRunLoop event since this does not implement the specs.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::freezeNowTimestamp):
(WebCore::DOMWindow::unfreezeNowTimestamp):
(WebCore::DOMWindow::frozenNowTimestamp const):

  • page/DOMWindow.h:

Provide a frozen now() timestamp in seconds to be used internally only.

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::nowTimestamp const):
Use the frozenNowTimestamp().

  • page/Page.cpp:

(WebCore::Page::updateRendering):
Freeze the timestamps while serving the rendering update steps.

LayoutTests:

  • animations/animation-callback-timestamp-expected.txt:
  • animations/animation-callback-timestamp.html:

Ensure the rAF callback timestamp is less than Performance.now().

  • animations/animation-multiple-callbacks-timestamp-expected.txt:
  • animations/animation-multiple-callbacks-timestamp.html:

Ensure the rAF callbacks receive the same timestamps.

  • intersection-observer/intersection-observer-callback-timestamp-expected.txt: Added.
  • intersection-observer/intersection-observer-callback-timestamp.html: Added.

A new test to ensure the IntersectionObsever and the rAF callbacks receive the same timestamps.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
5:16 PM Changeset in webkit [260799] by Jason_Lawrence
  • 9 edits in trunk/Source/JavaScriptCore

Unreviewed, reverting r260772.

This commit caused tests to start failing internally.

Reverted changeset:

"OSR Exit compiler should know and print the exiting DFG
node's index"
https://bugs.webkit.org/show_bug.cgi?id=210998
https://trac.webkit.org/changeset/260772

5:12 PM Changeset in webkit [260798] by Brent Fulgham
  • 9 edits in trunk/Source/WebKit

[MacCatalyst] Dynamic access to accessibility services is incomplete
https://bugs.webkit.org/show_bug.cgi?id=211100
<rdar://problem/62133491>

Reviewed by Darin Adler.

Testing of MacCatalyst-based apps shows that using dynamic sandbox extensions to support accessibility
features is incomplete. In addition to the 'com.apple.cfprefsd.daemon' process needed on macOS and iOS,
we also need access to 'com.apple.cfprefsd.agent'.

This can only be tested manually in a MacCatlyst build, though existing accessibility tests will
confirm no regressions in iOS and macOS.

The changes are as follows:

  1. Change WebProcessCreationParameters::preferencesExtensionHandle to a handle array.
  2. Register (and unregister) for the accessibility enabled notification in MacCatalyst.
  3. Open a connection 'com.apple.cfprefsd.agent' (in addition to the existing 'com.apple.cfprefsd.daemon') in MacCatalyst builds.
  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::unblockPreferenceServiceIfNeeded):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::unblockPreferenceService):

  • WebProcess/com.apple.WebProcess.sb.in:
4:39 PM Changeset in webkit [260797] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ macOS/iOS wk2 Debug ] webrtc/datachannel/multiple-connections.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209878

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark the test as slow for iOS, too.
4:32 PM Changeset in webkit [260796] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: A suite running multiple times in a commit for a single configuration may pre-empt processing
https://bugs.webkit.org/show_bug.cgi?id=211094
<rdar://problem/62470170>

Reviewed by Aakash Jain.

Hash collision in processing key when results only differ by upload time.

  • resultsdbpy/resultsdbpy/model/upload_context.py:

(UploadContext.process_test_results): Include upload timestamp in the hashed key.

4:06 PM Changeset in webkit [260795] by Russell Epstein
  • 6 edits in branches/safari-609.2.9.0-branch/Source/WebKit

Apply patch. rdar://problem/62377357

3:59 PM Changeset in webkit [260794] by Russell Epstein
  • 8 edits in branches/safari-609.2.9.0-branch/Source

Versioning.

3:50 PM Changeset in webkit [260793] by Wenson Hsieh
  • 6 edits in trunk/Source/WebKit

Prevent WebPasteboardProxy IPC messages from unconditionally requesting pasteboard types
https://bugs.webkit.org/show_bug.cgi?id=211061
<rdar://problem/62088185>

Reviewed by Tim Horton.

Tighten IPC message handling in WebPasteboardProxy, such that a web content process is unable to arbitrarily
request pasteboard types (and other metadata that depends on pasteboard types, such as the number of files
on the pasteboard).

This extends the mechanisms added in r259151 by distinguishing between allowing the web process to request
type information from the pasteboard, and allowing the web process to request both types and data. In the
case of drag and drop, the former is required by the web process from the moment the drag session enters
the platform web view; however, the latter is required only after a drop is performed.

We utilize this new check, canAccessPasteboardTypes, in seven existing IPC message handlers that either
directly return the list of types, or return metadata from which pasteboard types may be deduced.

See below for more details; covered by existing API and layout tests.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::grantAccessToCurrentTypes):
(WebKit::WebPasteboardProxy::grantAccessToCurrentData):

Split the pasteboard access check into two helpers: one to determine whether the web process is allowed to
request pasteboard types, and another to determine whether the web process is allowed to request pasteboard
data (in addition to types).

(WebKit::WebPasteboardProxy::grantAccess):
(WebKit::WebPasteboardProxy::revokeAccess):

Refactor these to use PasteboardAccessInformation; see below for more details.

(WebKit::WebPasteboardProxy::canAccessPasteboardTypes const):

Return true as long as the accessType is nonnull; this is because either Types or TypesAndData is
sufficient for access to pasteboard types.

(WebKit::WebPasteboardProxy::canAccessPasteboardData const):
(WebKit::WebPasteboardProxy::accessType const):

Add a private helper method to return the access type (nullopt for no access, PasteboardAccessType::Types
for access to types only, and PasteboardAccessType::TypesAndData for access to data in addition to types)
for the given named pasteboard.

(WebKit::WebPasteboardProxy::didModifyContentsOfPasteboard):

Refactor this to use PasteboardAccessInformation.

(WebKit::WebPasteboardProxy::getPasteboardTypes):
(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):

Adopt canAccessPasteboardTypes here, and update the FIXME to state that we should really be using
canAccessPasteboardData instead. This is blocked on refactoring some more drag and drop code, such
that accessing the list of file names on the pasteboard isn't necessary before the drop is handled.

(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::getNumberOfFiles):
(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):

Adopt the canAccessPasteboardTypes check in various places.

(WebKit::WebPasteboardProxy::PasteboardAccessInformation::grantAccess):
(WebKit::WebPasteboardProxy::PasteboardAccessInformation::revokeAccess):
(WebKit::WebPasteboardProxy::PasteboardAccessInformation::accessType const):

Introduce PasteboardAccessInformation, which replaces the current std::pair<uint64_t, WeakHashSet<WebProcessProxy>>
that is used to represent which web processes are allowed to access certain changeCounts, for a given pasteboard name.
Instead of maintaining a changeCount and set of processes, we now maintain a changeCount and list of (process, access
type) pairs. Each item in this list tracks whether the process that has been granted access should be allowed to read
only pasteboard types, or both types and data.

(WebKit::WebPasteboardProxy::revokeAccessToAllData): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dragEntered):
(WebKit::WebPageProxy::dragUpdated):

When updating the drag session (i.e. as the user drags over the web view), ensure that the web content
process is able to request pasteboard types.

  • UIProcess/WebPasteboardProxy.cpp:

(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):

Update these method signatures.

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:

Mark more IPC messages as WantsConnection so that we can use the IPC::Connection argument in the message handlers.

3:42 PM Changeset in webkit [260792] by Simon Fraser
  • 2 edits in trunk/LayoutTests

fast/events/wheel-event-outside-body.html sometimes fails
https://bugs.webkit.org/show_bug.cgi?id=211098

Reviewed by Tim Horton.

Remove the 100ms watchdog timer. We'll just let the test time out if it fails.

  • fast/events/wheel-event-outside-body.html:
3:33 PM Changeset in webkit [260791] by achristensen@apple.com
  • 6 edits in trunk/Source/WebKit

Stop waiting for a BinarySemaphore on the main thread in the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=211080
<rdar://problem/62377357>

Reviewed by Darin Adler and Chris Dumez.

There was an out-of-date comment suggesting we needed to use a semaphore, but we've since added these in the destructor:
RELEASE_ASSERT(!m_statisticsStore);
RELEASE_ASSERT(!m_persistentStorage);
This indicates that flushAndDestroyPersistentStore is called before the destructor, at which time it is safe to add a reference to keep it alive.
WebResourceLoadStatisticsStore is also marked as WTF::DestructionThread::Main so this should do everything we need.
We also flush these databases to disk before closing like we did cookies.

In order to keep tests working as they are, I needed to make recreateResourceLoadStatisticStore have a CompletionHandler and have all
WebResourceLoadStatisticsStores share the same queue to serialize background tasks between WebResourceLoadStatisticsStores with and without database stores
sequentially to avoid opening a SQLiteDatabase before the previous WebResourceLoadStatisticsStore had closed it.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::sharedStatisticsQueue):
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::didDestroyNetworkSession):
(WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore):
(WebKit::WebResourceLoadStatisticsStore::applicationWillTerminate): Deleted.

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

(WebKit::NetworkProcess::didClose):

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::~NetworkSession):
(WebKit::NetworkSession::destroyResourceLoadStatistics):
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
(WebKit::NetworkSession::recreateResourceLoadStatisticStore):

  • NetworkProcess/NetworkSession.h:
3:27 PM Changeset in webkit [260790] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix tests after r260764
https://bugs.webkit.org/show_bug.cgi?id=211093

Some tests were asserting in takeAsyncReplyHandler.
Calling addAsyncReplyHandler before sending the message fixes it.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::sendMessage):

3:08 PM Changeset in webkit [260789] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

getShaderPrecisionFormat returns the wrong values
https://bugs.webkit.org/show_bug.cgi?id=211013
<rdar://problem/62378056>

Reviewed by Darin Adler.

Gregg pointed out that our code hardcodes values for
getShaderPrecisionFormat. The fix is simply to call into
the underlying GL function.

Covered by the existing test: webgl/1.0.3/conformance/misc/shader-precision-format.html

However, that just tests minimum values. Devices have different
actual results.

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::getShaderPrecisionFormat):

2:57 PM Changeset in webkit [260788] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Rename scrollableAreaForScrollLayerID to scrollableAreaForScrollingNodeID
https://bugs.webkit.org/show_bug.cgi?id=211091

Reviewed by Myles C. Maxfield.

The argument to scrollableAreaForScrollLayerID() is a ScrollingNodeID, not a layerID.

  • page/FrameView.cpp:

(WebCore::FrameView::scrollableAreaForScrollingNodeID const):
(WebCore::FrameView::scrollableAreaForScrollLayerID const): Deleted.

  • page/FrameView.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::setActiveScrollSnapIndices):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::scrollableAreaForScrollingNodeID const):
(WebCore::RenderLayerCompositor::scrollableAreaForScrollLayerID const): Deleted.

  • rendering/RenderLayerCompositor.h:
2:48 PM Changeset in webkit [260787] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[iOS][WK2] Drop "com.apple.WebKit.DatabaseActivity" UIKit background activity
https://bugs.webkit.org/show_bug.cgi?id=211084

Reviewed by Geoffrey Garen.

Drop "com.apple.WebKit.DatabaseActivity" UIKit background activity in the UIProcess now that local storage
has been moved to the network process.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setUpSQLiteDatabaseTrackerClient]): Deleted.

2:37 PM Changeset in webkit [260786] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

Add some debug output for run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=210999
<rdar://problem/61353156>

This will help to address where the script get stucked

Reviewed by Jonathan Bedard.

  • Scripts/run-jsc-stress-tests:
2:32 PM Changeset in webkit [260785] by Ryan Haddad
  • 7 edits in trunk/Source

[Cocoa] stop using out arguments for document attributes when converting to attributed strings
https://bugs.webkit.org/show_bug.cgi?id=211048

Unreviewed partial revert of r260739 to remove unexpected logging that broke Catalina-Release-WK2-Perf tests.

Source/WebCore:

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::policyProperties):

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::siteForCookies):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::updateTaskWithFirstPartyForSameSiteCookies):

Source/WTF:

  • wtf/cocoa/URLCocoa.mm:

(WTF::URL::createCFURL const):

2:14 PM Changeset in webkit [260784] by ysuzuki@apple.com
  • 5 edits in trunk

[JSC] Add $vm.assertEnabled() to suppress Debug crash expected tests in release+assert build
https://bugs.webkit.org/show_bug.cgi?id=211089

Reviewed by Keith Miller.

JSTests:

We have ASSERT which only fires when DOM object is wrongly implemented to catch wrong ones.
We are using ASSERT in JSC side since we don't know all the DOM objects are correctly implemented.
If it is not correctly implemented, in Release build, JSC is returning sub-optimal but right results.
But in Debug build, we can catch the wrong ones, which allows us to fix the wrong things while avoiding
catastrophic crashes in release build.

However, the test is assuming that ASSERT is not enabled if it is not Debug build. Release & Debug builds
work, but Release+Assert does not meet this assumption.

So, skip this based on $vm.assertEnabled().

  • stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior.js:

(vm.assertEnabled.putter):
(vm.assertEnabled):
(putter): Deleted.
(not_string.toString): Deleted.

  • stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten.js:

(vm.assertEnabled):
(not_string.toString): Deleted.

Source/JavaScriptCore:

Expose ASSERT_ENABLED condition to the shell to control crash expected tests.

  • tools/JSDollarVM.cpp:

(JSC::functionAssertEnabled):
(JSC::JSDollarVM::finishCreation):

2:12 PM Changeset in webkit [260783] by Wenson Hsieh
  • 4 edits in trunk

Text manipulation should not aggregate text from different navigation anchor elements
https://bugs.webkit.org/show_bug.cgi?id=211081
<rdar://problem/59553658>

Reviewed by Megan Gardner.

Source/WebCore:

Tweak the item boundary heuristic in TextManipulationController::observeParagraphs to separate text in
links and list items under navigation elements (either nav elements, or elements with the "navigation"
accessibility role) into separate paragraphs.

Also, extend the item boundary rule for button elements to apply to elements with the "button"
accessibility role as well.

Test: TextManipulation.StartTextManipulationTreatsInlineBlockLinksAndButtonsAsParagraphs

TextManipulation.StartTextManipulationTreatsLinksInNavigationElementsAsParagraphs

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::observeParagraphs):

Tools:

Add a new API test, and augment an existing test.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
2:11 PM Changeset in webkit [260782] by Jonathan Bedard
  • 9 edits
    2 adds in trunk/Tools

results.webkit.og: Add investigation endpoint
https://bugs.webkit.org/show_bug.cgi?id=209562

Rubber-stamped by Aakash Jain.

Add an endpoint that allows users to list all test failures given some criteria, and
provide a partial list of failures in the investigation drawer.

  • resultsdbpy/resultsdbpy/view/static/js/commit.js:

(CommitTable): Link commit to investigation endpoint.
(_CommitBank.prototype.latest): Populate the CommitBank with the last x commits.
(_CommitBank.prototype.commitsDuringUuid): Renamed commitsDuring.
(_CommitBank.prototype. commitsDuring): Accept a range Uuids instead of a single Uuid.
(_CommitBank.prototype._load): Load a single commit if the before and after uuid match.

  • resultsdbpy/resultsdbpy/view/static/js/common.js:

(paramsToQuery): False should be added as a parameter, if provided.
(percentage): Moved from investigate.js.
(elapsedTime): Ditto.

  • resultsdbpy/resultsdbpy/view/static/js/configuration.js:

(Configuration.combine): Allow configurations to be combined to a single, more general, configuration.

  • resultsdbpy/resultsdbpy/view/static/js/failures.js: Added.

(Failures.prototype.fromEndpoint): Construct a failure object from the failures endpoint.
(Failures.combine): Combine two failure objects together.
(Failures):
(Failures.prototype.toParams): Convert object to parameters for other results database queries.

  • resultsdbpy/resultsdbpy/view/static/js/investigate.js:

(elapsed): Used shared time elapsed function.
(percentage): Moved to common.js.
(prioritizedFailures): Return a div with a truncated list of tests which failed.
(resultsForData): Include some number of prioritized test failures based on how many bubbles are
already displayed.
(_InvestigateDrawer.prototype.expand): Dispatch failure request.
(_InvestigateDrawer.prototype.dispatch): Start request to failures endpoint.

  • resultsdbpy/resultsdbpy/view/static/js/timeline.js:

(TimelineFromEndpoint.prototype.render.onDotEnterFactory): Add link to investigation endpoint.
(Legend): When search parameters change, we need to re-dispatch failure requests.

  • resultsdbpy/resultsdbpy/view/suite_view.py:

(SuiteView._suites_for_investigation): Filter parameters for investigation endpoint.
(SuiteView.investigate): Return investigation endpoint html template.

  • resultsdbpy/resultsdbpy/view/templates/investigate.html: Added.

(willFilterExpected): Check if the query parameters indicate that expected failures are to be ignored.
(commitsForRange): Return a list of commits for a uuid range.
(SuiteFailuresView.constructor): Abstraction to hold the investigation data for a single suite.
(SuiteFailuresView.reload): Dispatch requests to the results and failures endpoint to populate
investigation data.
(SuiteFailuresView.select): By default, failures for different configurations are collapsed into a single
view. Allows the user to iterate through each configuration that comprises the view.
(SuiteFailuresView.toString):
(populateRanges): Either convert the provided arguments to a range to search for failures and results
in, or use the most recent commit.
(reload): Force all suite views to re-dispatch results and failures requests.

  • resultsdbpy/resultsdbpy/view/templates/suite_results.html: Add space between suite content and

top bar.

  • resultsdbpy/resultsdbpy/view/view_routes.py:

(ViewRoutes.init): Add investigate endpoint.

2:04 PM Changeset in webkit [260781] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebKit

REGRESSION (r219050): Remove more code only needed for building with OS X Yosemite
<https://webkit.org/b/211088>
<rdar://problem/62452487>

Reviewed by Chris Dumez.

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::receiveSourceEventHandler):

  • Platform/mac/MachUtilities.cpp:

(setMachPortQueueLength):
(machExceptionPort): Deleted.
(setMachExceptionPort): Deleted.

  • Platform/mac/MachUtilities.h:
  • Delete unused code.
1:56 PM Changeset in webkit [260780] by graouts@webkit.org
  • 4 edits in trunk/LayoutTests

[ iOS ] REGRESSION: animations/change-keyframes-name.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211079
<rdar://problem/61486093>

Reviewed by Simon Fraser.

Rewrite this test to use the new AnimationTest helper that will non-flakily check animated values while an animation is running.

  • animations/change-keyframes-name-expected.txt:
  • animations/change-keyframes-name.html:
  • animations/resources/animation-test.js:

(AnimationTest.prototype.async recordValueAfterRunningFor):

1:54 PM Changeset in webkit [260779] by Alan Coon
  • 1 copy in tags/Safari-610.1.11.3

Tag Safari-610.1.11.3.

1:54 PM Changeset in webkit [260778] by Alan Coon
  • 1 delete in tags/Safari-610.1.11.3

Delete tag.

1:53 PM Changeset in webkit [260777] by graouts@webkit.org
  • 5 edits in trunk/Source

Clean up some useless includes of CSSAnimationController.h
https://bugs.webkit.org/show_bug.cgi?id=211066

Reviewed by Antti Koivisto.

Source/WebCore:

These files don't actually use any of the CSSAnimationController APIs.

  • page/ios/FrameIOS.mm:
  • rendering/RenderObject.cpp:

Source/WebKitLegacy/mac:

This file doesn't actually use any of the CSSAnimationController APIs.

  • WebView/WebFrame.mm:
1:50 PM Changeset in webkit [260776] by graouts@webkit.org
  • 3 edits in trunk/Source/WebKitLegacy/mac

Remove allowsNewCSSAnimationsWhileSuspended and setAllowsNewCSSAnimationsWhileSuspended WebView SPIs
https://bugs.webkit.org/show_bug.cgi?id=211067

Reviewed by Tim Horton.

There are no known clients for these SPIs.

  • WebView/WebView.mm:
  • WebView/WebViewPrivate.h:
1:50 PM Changeset in webkit [260775] by Alan Coon
  • 2 edits in branches/safari-610.1.11-branch/Source/WebKit

Cherry-pick r260763. rdar://problem/62467013

Unreviewed sandbox compile fix.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

1:47 PM Changeset in webkit [260774] by graouts@webkit.org
  • 23 edits in trunk/Source

Rename CSSAnimationController accessors from animation() to legacyAnimation()
https://bugs.webkit.org/show_bug.cgi?id=211082

Reviewed by Simon Fraser.

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::computeRenderStyleForProperty):

  • dom/Document.cpp:

(WebCore::Document::resolveStyle):
(WebCore::Document::didBecomeCurrentDocumentInFrame):
(WebCore::Document::prepareForDestruction):
(WebCore::Document::implicitClose):
(WebCore::Document::resume):

  • dom/Element.cpp:

(WebCore::Element::removedFromAncestor):

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::clearHostElement):

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::destroy):

  • page/Frame.cpp:

(WebCore::Frame::clearTimers):
(WebCore::Frame::resumeActiveDOMObjectsAndAnimations):

  • page/Frame.h:
  • page/FrameView.cpp:

(WebCore::FrameView::didDestroyRenderTree):
(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layout):

  • page/Page.cpp:

(WebCore::Page::handleLowModePowerChange):
(WebCore::Page::setIsVisibleInternal):
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):

  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationControllerPrivate::updateThrottlingState):
(WebCore::CSSAnimationControllerPrivate::suspendAnimations):
(WebCore::CSSAnimationControllerPrivate::resumeAnimations):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::currentTransform const):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::notifyAnimationStarted):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation const):
(WebCore::RenderLayerCompositor::isRunningTransformAnimation const):

  • rendering/RenderObject.h:

(WebCore::RenderObject::legacyAnimation const):
(WebCore::RenderObject::animation const): Deleted.

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderers):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

  • testing/Internals.cpp:

(WebCore::Internals::numberOfActiveAnimations const):
(WebCore::Internals::animationsAreSuspended const):
(WebCore::Internals::animationsInterval const):
(WebCore::Internals::suspendAnimations const):
(WebCore::Internals::resumeAnimations const):
(WebCore::Internals::pauseAnimationAtTimeOnElement):
(WebCore::Internals::pauseAnimationAtTimeOnPseudoElement):
(WebCore::Internals::pauseTransitionAtTimeOnElement):
(WebCore::Internals::pauseTransitionAtTimeOnPseudoElement):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

Source/WebKitLegacy/win:

  • WebFrame.cpp:

(WebFrame::resumeAnimations):
(WebFrame::suspendAnimations):
(WebFrame::pauseAnimation):
(WebFrame::pauseTransition):
(WebFrame::numberOfActiveAnimations):

1:24 PM Changeset in webkit [260773] by dino@apple.com
  • 5 edits
    2 adds in trunk

Temporarily skip GL_DEPTH_COMPONENT32_OES requirement for depth textures on iOS
https://bugs.webkit.org/show_bug.cgi?id=211055
<rdar://problem/62410499>

Reviewed by Darin Adler.

Source/ThirdParty/ANGLE:

ANGLE requires GL_DEPTH_COMPONENT32_OES be available in order to expose the
depth texture extension. However, this format is not supported on iOS.
Temporarily remove this restriction while investigating other bugs.

This also allows us to see the failing results in
fast/canvas/webgl/webgl-depth-texture.html
webgl/1.0.3/conformance/extensions/webgl-depth-texture.html

  • src/libANGLE/Caps.cpp:

(gl::DetermineDepthTextureANGLESupport):
(gl::DetermineDepthTextureOESSupport):

LayoutTests:

Unskip the fast/canvas/webgl/webgl-depth-texture.html now that
the extension is "supported". It has failing results.

  • platform/ios/TestExpectations:
  • platform/ios/fast/canvas/webgl/webgl-depth-texture-expected.txt: new results.
  • platform/ios/webgl/1.0.3/conformance/extensions/webgl-depth-texture-expected.txt: new results.
1:22 PM Changeset in webkit [260772] by keith_miller@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

OSR Exit compiler should know and print the exiting DFG node's index
https://bugs.webkit.org/show_bug.cgi?id=210998

Reviewed by Mark Lam.

The only interesting thing here is that we set the node to index 0 if there is no node.
AFAICT, we only don't have a node when we are checking arguments.

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::OSRExit):
(JSC::DFG::operationCompileOSRExit):

  • dfg/DFGOSRExitBase.h:

(JSC::DFG::OSRExitBase::OSRExitBase):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
(JSC::FTL::DFG::LowerDFGToB3::blessSpeculation):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExitDescriptor::emitOSRExit):
(JSC::FTL::OSRExitDescriptor::emitOSRExitLater):
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
(JSC::FTL::OSRExit::OSRExit):

  • ftl/FTLOSRExit.h:
  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

1:21 PM Changeset in webkit [260771] by timothy_horton@apple.com
  • 3 edits in trunk/Tools

WebKit.ResizeReversePaginatedWebView is failing (21 pages instead of 20)
https://bugs.webkit.org/show_bug.cgi?id=211001
<rdar://problem/60972357>

Reviewed by Wenson Hsieh.

  • TestWebKitAPI/Tests/WebKit/ResizeReversePaginatedWebView.cpp:
  • TestWebKitAPI/Tests/WebKit/lots-of-text-vertical-lr.html:

Use Ahem to keep the layout more stable.

1:17 PM Changeset in webkit [260770] by Alan Coon
  • 1 copy in tags/Safari-610.1.11.3

Tag Safari-610.1.11.3.

1:01 PM Changeset in webkit [260769] by pvollan@apple.com
  • 13 edits
    1 delete in trunk

[Cocoa] After r258891, r255119 can be reverted
https://bugs.webkit.org/show_bug.cgi?id=211083
Source/WebCore:

<rdar://problem/60714318>

Unreviewed revert of r255119.

Copying a MIME type map from the UI process to the WebContent process on startup is not needed anymore,
since r258891 will map the Launch Services database in the WebContent process.

  • platform/MIMETypeRegistry.cpp:

(WebCore::commonMimeTypesMap):
(WebCore::typesForCommonExtension):
(WebCore::overriddenMimeTypesMap): Deleted.

  • platform/MIMETypeRegistry.h:
  • testing/Internals.cpp:

(WebCore::Internals::mediaMIMETypeForExtension): Deleted.

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

Source/WebKit:

Unreviewed revert of r255119.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

Unreviewed revert of r255119.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/MimeTypes.mm: Removed.
11:16 AM Changeset in webkit [260768] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Unreviewed MacCatalyst build fix after r260739.

  • UIProcess/Cocoa/TextCheckingController.mm:

(WebKit::TextCheckingController::replaceRelativeToSelection):

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
10:57 AM Changeset in webkit [260767] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

storage/indexeddb/value-cursor-cycle.html is flaky failing because it incorrectly thinks our JS GC is precise.
https://bugs.webkit.org/show_bug.cgi?id=210046

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:56 AM Changeset in webkit [260766] by Darin Adler
  • 2 edits in trunk/Source/WebKit

Another try at fixing the ENABLE(PLATFORM_DRIVEN_TEXT_CHECKING) build

  • UIProcess/Cocoa/TextCheckingController.mm: (WebKit::TextCheckingController::replaceRelativeToSelection): Convert an NSAttributedString to a WebCore::AttributedString using argument list syntax.
10:42 AM Changeset in webkit [260765] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix assertion after r260709
https://bugs.webkit.org/show_bug.cgi?id=211007
<rdar://problem/62457303>

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::performJavaScriptURLRequest):
Not only did I spell javascript wrong, I should've used the special protocolIsJavaScript() method.

10:13 AM Changeset in webkit [260764] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebKit

Reduce use of WebPageProxy::VoidCallback
https://bugs.webkit.org/show_bug.cgi?id=210944

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

Use sendWithAsyncReply and CompletionHandler<void()> instead.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _executeEditCommand:argument:completion:]):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::becomeFirstResponder):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setInitialFocus):
(WebKit::WebPageProxy::executeEditCommand):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::focusNextFocusedElement):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView pasteWithCompletionHandler:]):
(-[WKContentView moveByOffset:]):
(-[WKContentView _selectPositionAtPoint:stayingWithinFocusedElement:completionHandler:]):
(-[WKContentView selectPositionAtBoundary:inDirection:fromPoint:completionHandler:]):
(-[WKContentView moveSelectionAtBoundary:inDirection:completionHandler:]):
(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
(-[WKContentView accessoryTab:]):
(-[WKContentView executeEditCommandWithCallback:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::selectTextWithGranularityAtPoint):
(WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection):
(WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection):
(WebKit::WebPageProxy::selectPositionAtPoint):
(WebKit::WebPageProxy::moveSelectionByOffset):
(WebKit::WebPageProxy::focusNextFocusedElement):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::executeEditCommandWithCallback):
(WebKit::WebPage::setInitialFocus):

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

(WebKit::WebPage::moveSelectionByOffset):
(WebKit::WebPage::selectPositionAtPoint):
(WebKit::WebPage::selectPositionAtBoundaryWithDirection):
(WebKit::WebPage::moveSelectionAtBoundaryWithDirection):
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::WebPage::focusNextFocusedElement):

10:05 AM Changeset in webkit [260763] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed sandbox compile fix.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:47 AM Changeset in webkit [260762] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Improve performance of commonInclusiveAncestor for deeply nested nodes
https://bugs.webkit.org/show_bug.cgi?id=211078

Reviewed by Antti Koivisto.

  • dom/Node.cpp:

(WebCore::depth): Added.
(WebCore::commonInclusiveAncestor): Replaced implementation that walks the
parent chain of the second node repeatedly with one that walks the parent
chain of each node twice.

9:31 AM Changeset in webkit [260761] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r258730): Web Inspector: Sidebar tabs have incorrect tabIndex
https://bugs.webkit.org/show_bug.cgi?id=211072
<rdar://problem/62445067>

Reviewed by Brian Burg.

Only selected radio button should be focusable. This matches native macOS radio buttons.

  • UserInterface/Views/RadioButtonNavigationItem.js:

(WI.RadioButtonNavigationItem.prototype.get tabbable):
This getter was incorrectly returning -1 or 0 instead of a boolean value.

9:18 AM Changeset in webkit [260760] by commit-queue@webkit.org
  • 5 edits in trunk

[GTK] ENABLE(OPENGL) remmants...
https://bugs.webkit.org/show_bug.cgi?id=211077

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-27
Reviewed by Adrian Perez de Castro.

ENABLE(OPENGL) was renamed to ENABLE(GRAPHICS_CONTEXT_GL) in
r254064 but not in all the code base...
.:

  • Source/cmake/GStreamerDependencies.cmake:
  • Source/cmake/OptionsGTK.cmake:

Source/WebKit:

  • UIProcess/gtk/HardwareAccelerationManager.cpp:

(WebKit::HardwareAccelerationManager::HardwareAccelerationManager):

9:08 AM Changeset in webkit [260759] by dbates@webkit.org
  • 7 edits in trunk

Caret may be placed in the wrong spot for text input context that is a form control
https://bugs.webkit.org/show_bug.cgi?id=210939
<rdar://problem/61943089>

Reviewed by Darin Adler.

Source/WebCore:

Add a helper function that returns the closest editable position inside an element
for a given point (if any).

  • editing/Editing.cpp:

(WebCore::closestEditablePositionInElementForAbsolutePoint): Added.

  • editing/Editing.h:

Source/WebKit:

Find the closest editable position in the element for the point using the
newly introduced closestEditablePositionInElementForAbsolutePoint().

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::focusTextInputContextAndPlaceCaret):

Tools:

Add a test.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TestWebKitAPI::TEST):

9:04 AM Changeset in webkit [260758] by ap@apple.com
  • 2 edits in trunk/Tools

Make run-safari --ios-simulator work again
https://bugs.webkit.org/show_bug.cgi?id=211008

Reviewed by Darin Adler.

While at it, removed all direct uses of device.plist, and all use of Foundation.

  • Scripts/webkitdirs.pm: Stopped exporting unused simulator related functions. New

code should be using webkitpy.
(simulatorDeviceFromJSON): Helper function for parsing simctl output.
(iOSSimulatorDevices): Use simctl instead of reading device.plist.
(createiOSSimulatorDevice): Device creation appears to be synchronous, I couldn't
find any reason for waiting and retrying.
(iosSimulatorApplicationsPath): This is part of the actual fix - runtime path built
here was incorrect; switched to one provided by simctl.
(shutDownIOSSimulatorDevice): Added an early return to avoid stderr spew.
(relaunchIOSSimulator): Another part of the actual fix: open Simulator.app before booting the
simulator to have it visible; CurrentDeviceUDID doesn't work.
(iosSimulatorDeviceByUDID): Stop using device.plist.
(runIOSWebKitAppInSimulator): Stop quitting Simulator.app, we only needed to shut down
the device.
(iOSSimulatorDevicesPath): Deleted.
(quitIOSSimulator): Deleted.

8:54 AM Changeset in webkit [260757] by Darin Adler
  • 2 edits in trunk/Source/WebKit

Fix ENABLE(PLATFORM_DRIVEN_TEXT_CHECKING) build

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h: Change "class AttributedString" to "struct AttributedString".
8:44 AM Changeset in webkit [260756] by dbates@webkit.org
  • 2 edits in trunk/Tools

Text interaction tests should ensure view is not scroll instead of looking for a zoom change
https://bugs.webkit.org/show_bug.cgi?id=211056

Reviewed by Dean Jackson.

For the text interaction sub-tests, override the scroll view's delegate so as to track
whether a scroll occurred or not instead of looking at the zoom scale. As the tests are
written looking at the zoom scale is racy. It is simpler and deterministic to detect
whether the scroll view scrolled.

The purpose of the text interaction sub-tests are to ensure that zooming to reveal
the focused element is suppressed until the interaction completes with a call to
-_didFinishTextInteractionInTextInputContext. I added some more assertions to ensure this.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(-[TextInteractionScrollDelegate scrollViewDidScroll:]):
(TestWebKitAPI::TEST):

8:30 AM Changeset in webkit [260755] by aboya@igalia.com
  • 6 edits in trunk

[GStreamer] Rework WebKitWebSrc threading
Source/WebCore:

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

Reviewed by Xabier Rodriguez-Calvar.

WebKitWebSrc as it is in master has a number of race conditions
leading to occasional starvation (due to cancelling the wrong request)
or data corruption (due to pushing data from a cancelled request).

The threading situation wasn't easy to follow, as it wasn't clear
access to what members should be protected by what mutex, in what
circumstances. Also, some parts of the design were also introducing
addicional complexity, such as the first request being sent from the
main thread whereas the rest were being sent from the streaming thread
or basesrc async start.

In response, this patch reworks all the locking in WebKitWebSrc to use
WTF::DataMutex. This ensures all accesses to its (now explicit)
protected members are locked. The two mutexes and condition variables
have been simplified into one, as there was no obvious need or benefit
for two of each in this case.

Requests have been numbered, which allows to safely and atomically
ignore results from cancelled requests, avoiding data corruption
races, and makes following them in debug logs much easier.

The conditions for making and cancelling requests have been simplified
to a simpler and safer model: There is at most only one active request
at anytime, flushes cancel the request, and the first create() call
always makes the new request (both at startup and after a flush).
Debug asserts and notes about the flow of operations during basesrc
seeks have been provided.

As this effort needed a review of the entire WebKitWebSrc, cleanups,
corrections and documentation comments have been provided where
appropriate.

This patch introduces no visible behavior changes, just stability
improvements.

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(WebKitWebSrcPrivate::~WebKitWebSrcPrivate):
(webkit_web_src_class_init):
(webkitWebSrcReset):
(webKitWebSrcConstructed):
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcSetContext):
(webKitWebSrcSendEvent):
(restartLoaderIfNeeded):
(stopLoaderIfNeeded):
(webKitWebSrcCreate):
(webKitWebSrcStart):
(webKitWebSrcMakeRequest):
(webKitWebSrcStop):
(webKitWebSrcGetSize):
(webKitWebSrcIsSeekable):
(webKitWebSrcDoSeek):
(webKitWebSrcQuery):
(webKitWebSrcUnLock):
(webKitWebSrcUnLockStop):
(webKitWebSrcSetUri):
(webKitWebSrcSetMediaPlayer):
(webKitSrcPassedCORSAccessCheck):
(CachedResourceStreamingClient::CachedResourceStreamingClient):
(CachedResourceStreamingClient::checkUpdateBlocksize):
(CachedResourceStreamingClient::responseReceived):
(CachedResourceStreamingClient::dataReceived):
(CachedResourceStreamingClient::accessControlCheckFailed):
(CachedResourceStreamingClient::loadFailed):
(CachedResourceStreamingClient::loadFinished):
(webKitSrcWouldTaintOrigin):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:

LayoutTests:

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

Reviewed by Xabier Rodriguez-Calvar.

A test improved its status in TestExpectations from the changes made
in this patch.

  • platform/gtk/TestExpectations:
8:27 AM Changeset in webkit [260754] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE] about:gpu page is incomplete
https://bugs.webkit.org/show_bug.cgi?id=211076

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-27
Reviewed by Adrian Perez de Castro.

ENABLE(OPENGL) was renamed to ENABLE(GRAPHICS_CONTEXT_GL) in
r254064 but not in all the code base...

  • UIProcess/API/glib/WebKitProtocolHandler.cpp:

(WebKit::WebKitProtocolHandler::handleGPU):

8:05 AM Changeset in webkit [260753] by Darin Adler
  • 45 edits in trunk/Source

Replace more uses of live ranges with SimpleRange
https://bugs.webkit.org/show_bug.cgi?id=211058

Reviewed by Antti Koivisto.

Source/WebCore:

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textUnderElement const): Use SimpleRange.

  • dom/BoundaryPoint.h: Moved makeBoundaryPointAfterNodeContents here so it

can be used more places.

  • dom/Node.cpp:

(WebCore::commonInclusiveAncestor): Moved the commonAncestorContainer function
here from Range, decided to use the "inclusive ancestor" naming from the
DOM specification, and used RefPtr for the result since it's part of our modern
safer design to always use smart pointers for return values.

  • dom/Node.h: Added commonInclusiveAncestor.
  • dom/Position.cpp:

(WebCore::commonShadowIncludingAncestor): Call commonInclusiveAncestor.

  • dom/Range.cpp:

(WebCore::Range::commonAncestorContainer): Deleted.
(WebCore::Range::isPointInRange): Call commonInclusiveAncestor.
(WebCore::Range::comparePoint const): Ditto.
(WebCore::Range::compareBoundaryPoints): Ditto.
(WebCore::Range::collectSelectionRectsWithoutUnionInteriorLines const): Ditto.

  • dom/Range.h:

(WebCore::Range::commonAncestorContainer const): Call commonInclusiveAncestor.

  • dom/SimpleRange.cpp:

(WebCore::makeBoundaryPointAfterNodeContents): Moved to BoundaryPoint.h.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::respondToUnappliedSpellCorrection): Use
SimpleRange instead of live range.
(WebCore::AlternativeTextController::respondToUnappliedEditing): Ditto.
(WebCore::AlternativeTextController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand): Ditto.
(WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult): Ditto.

  • editing/ChangeListTypeCommand.cpp:

(WebCore::listConversionTypeForSelection): use commonInclusiveAncestor.

  • editing/Editing.cpp:

(WebCore::isNodeVisiblyContainedWithin): Take a SimpleRange argument.

  • editing/Editing.h: Updated for the above.
  • editing/Editor.cpp:

(WebCore::Editor::addRangeToKillRing): Take a SimpleRange argument.
(WebCore::Editor::shouldDetectTelephoneNumbers const): Made this const and
tweaked coding style a bit.
(WebCore::scanForTelephoneNumbers): Moved this, made it a non-member function,
renamed from scanRangeForTelephoneNumbers, use SimpleRange.
(WebCore::extendSelection): Added. Factored out some logic from the function below.
(WebCore::Editor::scanSelectionForTelephoneNumbers): Use SimpleRange. Removed
some unnecessary code that subtracts 1 and then adds 1 again.

  • editing/Editor.h: Updated for the above.
  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace): Use commonInclusiveAncestor.

  • editing/VisibleSelection.cpp:

(WebCore::makeSearchRange): Return a SimpleRange.
(WebCore::VisibleSelection::appendTrailingWhitespace): Use SimpleRange.

  • editing/WebContentReader.h: Use SimpleRange instead of a live range.
  • editing/cocoa/DataDetection.h: Use a struct, DetectedItem, for the return value

from the detection functions. Also changed DataDetectorTypes to an enum class so
it can be forward-declared instead of having to include this header.

  • editing/cocoa/DataDetection.mm:

(WebCore::detectItem): Renamed from detectItemAtPositionWithRange. Return the
DetectedItem struct, with a SimpleRange rather than an out argument live range.
(WebCore::DataDetection::detectItemAroundHitTestResult): Ditto.
(WebCore::contains): Added a helper function for testing bits in the
DataDetectorType enum. Later we can make this better using OptionSet.
(WebCore::constructURLStringForResult): Refactored a bit, updated for the new
DataDetectorTypes enum class, and to use CFEqual instead of CFStringCompare.
(WebCore::DataDetection::detectContentInRange): Ditto.

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::webContentFromPasteboard): Use SimpleRange.

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::WebContentReader::readPlainText): Updated since context is SimpleRange.

  • editing/gtk/EditorGtk.cpp:

(WebCore::createFragmentFromPasteboardData): Use SimpleRange.
(WebCore::Editor::webContentFromPasteboard): Use SimpleRange.

  • editing/win/EditorWin.cpp:

(WebCore::Editor::webContentFromPasteboard): Use SimpleRange.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::replaceNodeFromPasteboard): Use SimpleRange.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Use SimpleRange.

  • page/EventHandler.cpp:

(WebCore::targetNodeForClickEvent): Use commonInclusiveAncestor. Also updated
to return a RefPtr.
(WebCore::EventHandler::handleMouseReleaseEvent): Updated for the above.

  • page/Settings.yaml: Changed the default for DataDetectorTypes to be the empty

string rather than a named constant.

  • page/SettingsBase.h: Forward-declare DataDetectorTypes instead of including

the DataDetection.h header.

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange): Take a SimpleRange.
(WebCore::TextIndicator::createWithSelectionInFrame): Ditto.
(WebCore::hasNonInlineOrReplacedElements): Ditto.
(WebCore::selectionRects): Ditto. Also renamed from getSelectionRectsForRange.
(WebCore::styleContainsComplexBackground): Tweaked implementation.
(WebCore::estimatedTextColorsForRange): Take a SimpleRange.
(WebCore::absoluteBoundingRectForRange): Ditto.
(WebCore::estimatedBackgroundColorForRange): Ditto.
(WebCore::containsOnlyWhiteSpaceText): Ditto.
(WebCore::initializeIndicator): Ditto.

  • page/TextIndicator.h: Updated for the above.
  • page/mac/ServicesOverlayController.h: Use SimpleRange instead of a live

range for highlights.

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::Highlight::createForSelection): Take SimpleRange.
(WebCore::ServicesOverlayController::Highlight::createForTelephoneNumber): Ditto.
(WebCore::ServicesOverlayController::Highlight::Highlight): Ditto.
(WebCore::ServicesOverlayController::buildPhoneNumberHighlights): Ditto.
(WebCore::ServicesOverlayController::buildSelectionHighlight): Ditto.
(WebCore::ServicesOverlayController::telephoneNumberRangesForFocusedFrame): Ditto.
(WebCore::ServicesOverlayController::highlightsAreEquivalent): Ditto.
(WebCore::ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight): Ditto.
(WebCore::ServicesOverlayController::handleClick): Ditto.

  • platform/ios/DragImageIOS.mm:

(WebCore::createDragImageForLink): Use SimpleRange.
(WebCore::createDragImageForSelection): Tweaked a bit.

Source/WebKit:

  • Shared/API/Cocoa/WKDataDetectorTypesInternal.h:

(fromWKDataDetectorTypes): Updated since DataDetectorTypes
is now an enum class. Also got rid of special "none" and "all" values.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm:

(-[WKWebProcessPlugInRangeHandle detectDataWithTypes:context:]): Updated
since DataDetection now takes a SimpleRange.

  • WebProcess/WebPage/ViewGestureGeometryCollector.cpp:

(WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales):
Use SimpleRange.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::detectDataInAllFrames): Ditto.

  • WebProcess/WebPage/WebPage.h: Removed unneeded include of DataDetection.h.
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performImmediateActionHitTestAtLocation): Use SimpleRange.

Source/WebKitLegacy/mac:

  • DOM/DOM.mm:

(-[DOMNode getPreviewSnapshotImage:andRects:]): Use SimpleRange.

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::imageForCurrentSharingServicePickerItem): Ditto.

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _animationControllerForDataDetectedText]):
Updated to use DetectedItem and SimpleRange.
(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):
Ditto.

6:10 AM Changeset in webkit [260752] by Carlos Garcia Campos
  • 113 edits
    4 copies
    2 moves
    2 adds in trunk

[GTK4] Make it possible to build with GTK4 without errors
https://bugs.webkit.org/show_bug.cgi?id=210967

Reviewed by Adrian Perez de Castro.

.:

Disable API tests and GObject introspection when building with GTK4.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

  • platform/PlatformPasteboard.h:
  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::createDefaultDisplayRefreshMonitor):

  • platform/graphics/gtk/DisplayRefreshMonitorGtk.cpp:
  • platform/graphics/gtk/DisplayRefreshMonitorGtk.h:
  • platform/graphics/gtk/GdkCairoUtilities.cpp:

(WebCore::getDefaultCairoFontOptions):

  • platform/gtk/CursorGtk.cpp:

(WebCore::createCustomCursor):

  • platform/gtk/DragImageGtk.cpp:

(WebCore::dissolveDragImageToFraction):

  • platform/gtk/GRefPtrGtk.cpp:
  • platform/gtk/GRefPtrGtk.h:
  • platform/gtk/GUniquePtrGtk.h:
  • platform/gtk/GtkVersioning.h:

(gdk_event_copy):
(gtk_widget_size_allocate):
(gtk_widget_queue_resize_no_redraw):
(gdk_event_get_state):
(gdk_event_get_coords):
(gdk_event_get_root_coords):
(gdk_event_is_scroll_stop_event):
(gdk_event_get_scroll_direction):
(gdk_event_get_scroll_deltas):
(gdk_event_get_button):

  • platform/gtk/PasteboardHelper.cpp:
  • platform/gtk/PasteboardHelper.h:
  • platform/gtk/PlatformKeyboardEventGtk.cpp:

(WebCore::PlatformKeyboardEvent::modifiersContainCapsLock):

  • platform/gtk/PlatformPasteboardGtk.cpp:

(WebCore::PlatformPasteboard::PlatformPasteboard):
(WebCore::PlatformPasteboard::writeToClipboard):
(WebCore::PlatformPasteboard::readFromClipboard):

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::getCurrentScreenMonitor):

Source/WebKit:

Add ifdefs when needed to make it possible to complete a build with GTK4. This way we can continue working on
every feature individually and checking it actually works. Move public headers containing API specific to GTK3
and GTK4 into their own gtk3 and gtk4 directory.

  • PlatformGTK.cmake:
  • Shared/API/glib/WebKitContextMenuItem.cpp:
  • Shared/NativeWebKeyboardEvent.h:
  • Shared/NativeWebMouseEvent.h:
  • Shared/NativeWebWheelEvent.h:
  • Shared/glib/WebContextMenuItemGlib.cpp:

(WebKit::WebContextMenuItemGlib::WebContextMenuItemGlib):
(WebKit::WebContextMenuItemGlib::buildActionName const):
(WebKit::WebContextMenuItemGlib::createActionIfNeeded):

  • Shared/glib/WebContextMenuItemGlib.h:
  • Shared/gtk/NativeWebKeyboardEventGtk.cpp:
  • Shared/gtk/NativeWebMouseEventGtk.cpp:

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):

  • Shared/gtk/NativeWebTouchEventGtk.cpp:

(WebKit::NativeWebTouchEvent::NativeWebTouchEvent):

  • Shared/gtk/NativeWebWheelEventGtk.cpp:
  • Shared/gtk/WebEventFactory.cpp:

(WebKit::buttonForEvent):
(WebKit::WebEventFactory::createWebMouseEvent):
(WebKit::WebEventFactory::createWebKeyboardEvent):
(WebKit::WebEventFactory::createWebTouchEvent):

  • Shared/gtk/WebEventFactory.h:
  • SourcesGTK.txt:
  • UIProcess/API/C/WKNativeEvent.h:
  • UIProcess/API/glib/InputMethodFilter.cpp:

(WebKit::InputMethodFilter::filterKeyEvent):

  • UIProcess/API/glib/InputMethodFilter.h:
  • UIProcess/API/glib/WebKitInstallMissingMediaPluginsPermissionRequest.cpp:

(createGstInstallPluginsContext):

  • UIProcess/API/glib/WebKitPrivate.cpp:
  • UIProcess/API/glib/WebKitUIClient.cpp:

(UIClient::setWindowFrameTimerFired):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextGetProperty):
(webkitWebContextSetProperty):
(webkit_web_context_class_init):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewRunAsModal):
(webkitWebViewPopulateContextMenu):

  • UIProcess/API/gtk/InputMethodFilterGtk.cpp:

(WebKit::InputMethodFilter::platformEventKeyIsKeyPress const):

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::setViewNeedsDisplay):
(WebKit::PageClientImpl::setCursor):
(WebKit::PageClientImpl::doneWithKeyEvent):
(WebKit::PageClientImpl::createPopupMenuProxy):
(WebKit::PageClientImpl::createDataListSuggestionsDropdown):
(WebKit::PageClientImpl::startDrag):
(WebKit::PageClientImpl::doneWithTouchEvent):
(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore):

  • UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:
  • UIProcess/API/gtk/WebKitAuthenticationDialog.h:
  • UIProcess/API/gtk/WebKitEmojiChooser.cpp:
  • UIProcess/API/gtk/WebKitEmojiChooser.h:
  • UIProcess/API/gtk/WebKitInputMethodContextGtk.cpp:

(webkit_input_method_context_filter_key_event):

  • UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:

(webkitInputMethodContextImplGtkFilterKeyEvent):
(webkitInputMethodContextImplGtkSetClientWindow):

  • UIProcess/API/gtk/WebKitPopupMenu.cpp:

(WebKit::WebKitPopupMenu::WebKitPopupMenu):
(WebKit::WebKitPopupMenu::showPopupMenu):
(WebKit::WebKitPopupMenu::hidePopupMenu):
(WebKit::WebKitPopupMenu::cancelTracking):

  • UIProcess/API/gtk/WebKitPopupMenu.h:
  • UIProcess/API/gtk/WebKitPrintOperation.cpp:
  • UIProcess/API/gtk/WebKitScriptDialogGtk.cpp:

(webkitScriptDialogAccept):
(webkitScriptDialogDismiss):
(webkitScriptDialogSetUserInput):

  • UIProcess/API/gtk/WebKitScriptDialogImpl.cpp:
  • UIProcess/API/gtk/WebKitScriptDialogImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(ClickCounter::currentClickCountForGdkButtonEvent):
(_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate):
(webkitWebViewBaseSetToplevelOnScreenWindow):
(webkitWebViewBaseRealize):
(webkitWebViewBaseContainerForall):
(webkitWebViewBaseDispose):
(webkitWebViewBaseConstructed):
(webkitWebViewBaseSizeAllocate):
(webkitWebViewBaseKeyPressEvent):
(webkitWebViewBaseKeyReleaseEvent):
(webkitWebViewBaseSetEnableBackForwardNavigationGesture):
(webkitWebViewBaseBeginBackSwipeForTesting):
(webkitWebViewBaseCompleteBackSwipeForTesting):
(webkit_web_view_base_class_init):
(webkitWebViewBaseWillSwapWebProcess):
(webkitWebViewBaseDidExitWebProcess):
(webkitWebViewBaseDidRelaunchWebProcess):
(webkitWebViewBaseTakeViewSnapshot):
(webkitWebViewBaseDidStartProvisionalLoadForMainFrame):
(webkitWebViewBaseDidFirstVisuallyNonEmptyLayoutForMainFrame):
(webkitWebViewBaseDidFinishLoadForMainFrame):
(webkitWebViewBaseDidFailLoadForMainFrame):
(webkitWebViewBaseDidSameDocumentNavigationForMainFrame):
(webkitWebViewBaseDidRestoreScrollPosition):
(webkitWebViewBaseShowEmojiChooser):
(webkitWebViewBaseRequestPointerLock):
(webkitWebViewBaseDidLosePointerLock):
(webkitWebViewBaseSynthesizeCompositionKeyPress):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/API/gtk/WebKitWebViewDialog.cpp:
  • UIProcess/API/gtk/WebKitWebViewDialog.h:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(webkitWebViewAuthenticate):
(webkitWebViewScriptDialog):
(webkitWebViewRunFileChooser):
(webkitWebViewMaximizeWindow):
(webkitWebViewMinimizeWindow):
(webkitWebViewRestoreWindow):

  • UIProcess/API/gtk3/WebKitContextMenuItem.h: Copied from Source/WebKit/UIProcess/API/gtk/WebKitContextMenuItem.h.
  • UIProcess/API/gtk3/WebKitInputMethodContext.h: Copied from Source/WebKit/UIProcess/API/gtk/WebKitInputMethodContext.h.
  • UIProcess/API/gtk4/WebKitContextMenuItem.h: Renamed from Source/WebKit/UIProcess/API/gtk/WebKitContextMenuItem.h.
  • UIProcess/API/gtk4/WebKitInputMethodContext.h: Renamed from Source/WebKit/UIProcess/API/gtk/WebKitInputMethodContext.h.
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction):
(WebKit::WebAutomationSession::platformSimulateKeySequence):

  • UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:

(WebKit::RemoteWebInspectorProxy::platformSave):

  • UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformSave):

  • UIProcess/Inspector/gtk/WebKitInspectorWindow.cpp:

(webkit_inspector_window_init):
(webkitInspectorWindowNew):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/cairo/BackingStoreCairo.cpp:

(WebKit::BackingStore::createBackend):

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext):
(WebKit::AcceleratedBackingStoreWayland::paint):

  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:

(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):

  • UIProcess/gtk/DragAndDropHandler.cpp:
  • UIProcess/gtk/DragAndDropHandler.h:
  • UIProcess/gtk/GestureController.cpp:
  • UIProcess/gtk/GestureController.h:
  • UIProcess/gtk/KeyBindingTranslator.cpp:

(WebKit::KeyBindingTranslator::KeyBindingTranslator):
(WebKit::KeyBindingTranslator::commandsForKeyEvent):

  • UIProcess/gtk/KeyBindingTranslator.h:
  • UIProcess/gtk/PointerLockManager.cpp:

(WebKit::PointerLockManager::lock):
(WebKit::PointerLockManager::unlock):

  • UIProcess/gtk/PointerLockManager.h:
  • UIProcess/gtk/PointerLockManagerWayland.cpp:

(WebKit::PointerLockManagerWayland::lock):

  • UIProcess/gtk/PointerLockManagerX11.cpp:

(WebKit::PointerLockManagerX11::didReceiveMotionEvent):

  • UIProcess/gtk/WebColorPickerGtk.cpp:
  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::show):
(WebKit::WebContextMenuProxyGtk::showContextMenuWithItems):
(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk):
(WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk):

  • UIProcess/gtk/WebContextMenuProxyGtk.h:
  • UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp:
  • UIProcess/gtk/WebDataListSuggestionsDropdownGtk.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:
  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
  • UIProcess/gtk/WebPopupMenuProxyGtk.h:
  • WebProcess/Plugins/PluginController.h:
  • WebProcess/Plugins/PluginView.cpp:
  • WebProcess/Plugins/PluginView.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::close):
(WebKit::WebPage::mainFrameDidLayout):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:

(WebKit::AcceleratedSurfaceX11::AcceleratedSurfaceX11):
(WebKit::AcceleratedSurfaceX11::createPixmap):

  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:

(WebKit::WebPrintOperationGtk::print):

Tools:

  • MiniBrowser/gtk/BrowserCellRendererVariant.c:
  • MiniBrowser/gtk/BrowserCellRendererVariant.h:
  • MiniBrowser/gtk/BrowserDownloadsBar.c:
  • MiniBrowser/gtk/BrowserDownloadsBar.h:
  • MiniBrowser/gtk/BrowserMain.c: Added.

(browser_main):
(browser_main_quit):

  • MiniBrowser/gtk/BrowserMain.h: Added.
  • MiniBrowser/gtk/BrowserSearchBar.c:
  • MiniBrowser/gtk/BrowserSearchBar.h:
  • MiniBrowser/gtk/BrowserSettingsDialog.c:
  • MiniBrowser/gtk/BrowserSettingsDialog.h:
  • MiniBrowser/gtk/BrowserTab.c:

(browserTabConstructed):
(browser_tab_start_search):
(browser_tab_stop_search):
(browser_tab_enter_fullscreen):
(browser_tab_leave_fullscreen):

  • MiniBrowser/gtk/BrowserTab.h:
  • MiniBrowser/gtk/BrowserWindow.c:

(webViewURIChanged):
(resetEntryProgress):
(webViewLoadProgressChanged):
(downloadStarted):
(browserWindowUpdateNavigationActions):
(webViewReadyToShow):
(browserWindowUpdateZoomActions):
(webViewZoomLevelChanged):
(updateUriEntryIcon):
(webViewIsLoadingChanged):
(browserWindowFinalize):
(browserWindowSetupEditorToolbar):
(browserWindowSwitchTab):
(browser_window_init):
(browser_window_class_init):
(browser_window_new):
(browser_window_append_view):
(browser_window_set_background_color):
(browser_window_get_or_create_web_view_for_automation):

  • MiniBrowser/gtk/CMakeLists.txt:
  • MiniBrowser/gtk/main.c:

(main):

  • PlatformGTK.cmake:
  • Scripts/webkitpy/style/checker.py:
  • TestWebKitAPI/glib/PlatformGTK.cmake:
5:55 AM Changeset in webkit [260751] by commit-queue@webkit.org
  • 17 edits in trunk/Source

Make loadURLIntoChildFrame private and non-exported
https://bugs.webkit.org/show_bug.cgi?id=211051

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

Source/WebCore:

Make loadURLIntoChildFrame private and non-exported to reduce the amount of public API functions
that start loads. In order to do this loadURLIntoChildFrame is being called from SubframeLoader
and SubframeLoader is made an inner class of FrameLoader. Because this simplifies createFrame (and
makes createFrame behave strictly like its name) url and referrer do not have to be passed.

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::parametersForPlugin):

  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::createFrame):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::SubframeLoader):
(WebCore::FrameLoader::SubframeLoader::clear):
(WebCore::FrameLoader::SubframeLoader::requestFrame):
(WebCore::FrameLoader::SubframeLoader::resourceWillUsePlugin):
(WebCore::FrameLoader::SubframeLoader::pluginIsLoadable):
(WebCore::FrameLoader::SubframeLoader::requestPlugin):
(WebCore::FrameLoader::SubframeLoader::requestObject):
(WebCore::FrameLoader::SubframeLoader::createJavaAppletWidget):
(WebCore::FrameLoader::SubframeLoader::loadOrRedirectSubframe):
(WebCore::FrameLoader::SubframeLoader::loadSubframe):
(WebCore::FrameLoader::SubframeLoader::shouldUsePlugin):
(WebCore::FrameLoader::SubframeLoader::loadPlugin):
(WebCore::FrameLoader::SubframeLoader::completeURL const):
(WebCore::FrameLoader::SubframeLoader::shouldConvertInvalidURLsToBlank const):
(WebCore::SubframeLoader::SubframeLoader): Deleted.
(WebCore::SubframeLoader::clear): Deleted.
(WebCore::SubframeLoader::requestFrame): Deleted.
(WebCore::SubframeLoader::resourceWillUsePlugin): Deleted.
(WebCore::SubframeLoader::pluginIsLoadable): Deleted.
(WebCore::SubframeLoader::requestPlugin): Deleted.
(WebCore::SubframeLoader::requestObject): Deleted.
(WebCore::SubframeLoader::createJavaAppletWidget): Deleted.
(WebCore::SubframeLoader::loadOrRedirectSubframe): Deleted.
(WebCore::SubframeLoader::loadSubframe): Deleted.
(WebCore::SubframeLoader::shouldUsePlugin): Deleted.
(WebCore::SubframeLoader::loadPlugin): Deleted.
(WebCore::SubframeLoader::completeURL const): Deleted.
(WebCore::SubframeLoader::shouldConvertInvalidURLsToBlank const): Deleted.

  • loader/SubframeLoader.h:

(WebCore::SubframeLoader::containsPlugins const): Deleted.

Source/WebKit:

Adapt createFrame to strictly create a subframe and
not load anything.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::createFrame):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

Adapt createFrame to strictly create a subframe and
not load anything.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::createFrame):

Source/WebKitLegacy/win:

Adapt createFrame to strictly create a subframe and
not load anything.

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::createFrame):

  • WebCoreSupport/WebFrameLoaderClient.h:
4:53 AM WebKitGTK/2.28.x edited by berto@igalia.com
(diff)
4:52 AM Changeset in webkit [260750] by berto@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK] [2.28.0] The Yelp build crashes if DISPLAY is not set
https://bugs.webkit.org/show_bug.cgi?id=209431

Reviewed by Carlos Garcia Campos.

Don't create a PlatformDisplayLibWPE as a fallback when using
Wayland or X11.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::createPlatformDisplay):

3:45 AM Changeset in webkit [260749] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

Unreviewed compile-warning fix.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):

3:24 AM Changeset in webkit [260748] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

Unreviewed, GTK LTS build fix after r260744
https://bugs.webkit.org/show_bug.cgi?id=211069

  • bindings/js/JSDOMBuiltinConstructor.h:

(WebCore::JSDOMBuiltinConstructor<JSClass>::getConstructData):

3:00 AM Changeset in webkit [260747] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Regenerate toolchains only if new updates were downloaded
https://bugs.webkit.org/show_bug.cgi?id=210804

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-27
Reviewed by Žan Doberšek.

The SDK toolchain archives are now regenerated only if an actual
update was downloaded from the Flatpak repository. Some redundant
flatpak calls were removed as well, such as the GL extension and
Debug reinstalls that were happening during webkit-flatpak
updates.

  • flatpak/flatpakutils.py:

(FlatpakObject.flatpak):
(FlatpakRepo.init):
(WebkitFlatpak.main):
(WebkitFlatpak.setup_dev_env):

2:57 AM Changeset in webkit [260746] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

unable to build from tot - linux - flatpakutils.py - TypeError: not enough arguments for format string
https://bugs.webkit.org/show_bug.cgi?id=210941

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-27
Reviewed by Žan Doberšek.

  • flatpak/flatpakutils.py:

(check_flatpak): Fix error message formating.

2:43 AM Changeset in webkit [260745] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[GTK4] GdkRGBA has float members instead of double

Unreviewed warning fix.

  • platform/graphics/gtk/ColorGtk.cpp:

(WebCore::Color::operator GdkRGBA const):

2:09 AM Changeset in webkit [260744] by Ross Kirsling
  • 108 edits in trunk/Source

[JSC] CallData/ConstructData should include CallType/ConstructType
https://bugs.webkit.org/show_bug.cgi?id=211059

Reviewed by Darin Adler.

Source/JavaScriptCore:

getCallData/getConstructData return a CallType/ConstructType and have a CallData/ConstructData out param,
and then *both* of these are passed side-by-side to call/construct, which all seems a bit silly.

This patch merges CallType/ConstructType into CallData/ConstructData such that getCallData/getConstructData
no longer need an out param and call/construct require one less overt parameter.

In so doing, it also:

  • removes ConstructData entirely as it's an exact duplicate of CallData
  • renames enum value Host to Native in alignment with CallData's union
  • API/JSCallbackConstructor.cpp:

(JSC::JSCallbackConstructor::getConstructData):

  • API/JSCallbackConstructor.h:
  • API/JSCallbackObject.h:
  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::getConstructData):
(JSC::JSCallbackObject<Parent>::getCallData):

  • API/JSObjectRef.cpp:

(JSObjectCallAsFunction):
(JSObjectCallAsConstructor):

  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptFunctionCall::call):

  • bindings/ScriptFunctionCall.h:
  • dfg/DFGOperations.cpp:
  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::createInjectedScript):

  • inspector/InspectorEnvironment.h:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):

  • interpreter/Interpreter.h:
  • jit/JITOperations.cpp:
  • jsc.cpp:

(functionDollarAgentReceiveBroadcast):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::handleHostCall):

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncToLocaleString):

  • runtime/CallData.cpp:

(JSC::call):
(JSC::profiledCall):

  • runtime/CallData.h:
  • runtime/ClassInfo.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/ConstructData.cpp:

(JSC::construct):
(JSC::profiledConstruct):

  • runtime/ConstructData.h:

(JSC::construct):
(JSC::profiledConstruct):
(): Deleted.

  • runtime/DatePrototype.cpp:

(JSC::dateProtoFuncToJSON):

  • runtime/GetterSetter.cpp:

(JSC::callGetter):
(JSC::callSetter):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::getCallData):
(JSC::InternalFunction::getConstructData):

  • runtime/InternalFunction.h:
  • runtime/IteratorOperations.cpp:

(JSC::iteratorNext):
(JSC::iteratorClose):
(JSC::hasIteratorMethod):
(JSC::iteratorMethod):
(JSC::iteratorForIterable):

  • runtime/JSBoundFunction.cpp:

(JSC::boundThisNoArgsFunctionCall):
(JSC::boundFunctionCall):
(JSC::boundThisNoArgsFunctionConstruct):
(JSC::boundFunctionConstruct):

  • runtime/JSCJSValue.h:
  • runtime/JSCell.cpp:

(JSC::JSCell::getCallData):
(JSC::JSCell::getConstructData):

  • runtime/JSCell.h:
  • runtime/JSCellInlines.h:

(JSC::JSCell::isFunction):
(JSC::JSCell::isConstructor):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::getCallData):
(JSC::JSFunction::getConstructData):

  • runtime/JSFunction.h:
  • runtime/JSInternalPromise.cpp:

(JSC::JSInternalPromise::then):

  • runtime/JSMicrotask.cpp:

(JSC::JSMicrotask::run):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::dependencyKeysIfEvaluated):
(JSC::JSModuleLoader::provideFetch):
(JSC::JSModuleLoader::loadAndEvaluateModule):
(JSC::JSModuleLoader::loadModule):
(JSC::JSModuleLoader::linkAndEvaluateModule):
(JSC::JSModuleLoader::requestImportModule):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::isCallableReplacer const):
(JSC::Stringifier::Stringifier):
(JSC::Stringifier::toJSON):
(JSC::Stringifier::appendStringifiedValue):
(JSC::Walker::Walker):
(JSC::Walker::callReviver):
(JSC::JSONProtoFuncParse):

  • runtime/JSObject.cpp:

(JSC::ordinarySetSlow):
(JSC::callToPrimitiveFunction):
(JSC::JSObject::hasInstance):
(JSC::JSObject::getMethod):

  • runtime/JSObject.h:
  • runtime/JSObjectInlines.h:

(JSC::getCallData):
(JSC::getConstructData):

  • runtime/JSPromise.cpp:

(JSC::JSPromise::createDeferredData):
(JSC::JSPromise::resolvedPromise):
(JSC::callFunction):

  • runtime/MapConstructor.cpp:

(JSC::constructMap):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToLocaleString):

  • runtime/ProxyObject.cpp:

(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::performPut):
(JSC::performProxyCall):
(JSC::ProxyObject::getCallData):
(JSC::performProxyConstruct):
(JSC::ProxyObject::getConstructData):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performPreventExtensions):
(JSC::ProxyObject::performIsExtensible):
(JSC::ProxyObject::performDefineOwnProperty):
(JSC::ProxyObject::performGetOwnPropertyNames):
(JSC::ProxyObject::performSetPrototype):
(JSC::ProxyObject::performGetPrototype):

  • runtime/ProxyObject.h:
  • runtime/ReflectObject.cpp:

(JSC::reflectObjectConstruct):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::processUnverifiedStackTraces):

  • runtime/SetConstructor.cpp:

(JSC::constructSet):

  • runtime/StringPrototype.cpp:

(JSC::replaceUsingRegExpSearch):
(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
(JSC::operationStringProtoFuncReplaceRegExpString):
(JSC::replaceUsingStringSearch):

  • runtime/VM.cpp:

(JSC::VM::callPromiseRejectionCallback):

  • runtime/WeakMapConstructor.cpp:

(JSC::constructWeakMap):

  • runtime/WeakSetConstructor.cpp:

(JSC::constructWeakSet):

  • tools/JSDollarVM.cpp:

(JSC::callWithStackSizeProbeFunction):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::evaluate):

  • wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::callWebAssemblyWrapperFunction):

Source/WebCore:

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::installReplacement):

  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::constructCustomElementSynchronously):
(WebCore::JSCustomElementInterface::upgradeElement):
(WebCore::JSCustomElementInterface::invokeCallback):

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/js/JSDOMBuiltinConstructor.h:

(WebCore::JSDOMBuiltinConstructor<JSClass>::getConstructData):

  • bindings/js/JSDOMBuiltinConstructorBase.cpp:

(WebCore::JSDOMBuiltinConstructorBase::callFunctionWithCurrentArguments):

  • bindings/js/JSDOMConstructor.h:

(WebCore::JSDOMConstructor<JSClass>::getConstructData):

  • bindings/js/JSDOMConstructorBase.cpp:

(WebCore::JSDOMConstructorBase::getCallData):

  • bindings/js/JSDOMConstructorBase.h:
  • bindings/js/JSDOMConstructorNotConstructable.h:
  • bindings/js/JSDOMIterator.h:

(WebCore::iteratorForEach):

  • bindings/js/JSDOMMapLike.cpp:

(WebCore::clearBackingMap):
(WebCore::setToBackingMap):
(WebCore::forwardFunctionCallToBackingMap):
(WebCore::forwardForEachCallToBackingMap):

  • bindings/js/JSDOMNamedConstructor.h:

(WebCore::JSDOMNamedConstructor<JSClass>::getConstructData):

  • bindings/js/JSDOMPromise.cpp:

(WebCore::DOMPromise::whenPromiseIsSettled):

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::createRejectedPromiseWithTypeError):

  • bindings/js/JSDOMSetLike.cpp:

(WebCore::clearBackingSet):
(WebCore::addToBackingSet):
(WebCore::forwardFunctionCallToBackingSet):
(WebCore::forwardForEachCallToBackingSet):

  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSExecState.cpp:

(WebCore::functionCallHandlerFromAnyThread):

  • bindings/js/JSExecState.h:

(WebCore::JSExecState::call):
(WebCore::JSExecState::profiledCall):

  • bindings/js/JSExecStateInstrumentation.h:

(WebCore::JSExecState::instrumentFunction):
(WebCore::JSExecState::instrumentFunctionInternal): Deleted.
(WebCore::JSExecState::instrumentFunctionCall): Deleted.
(WebCore::JSExecState::instrumentFunctionConstruct): Deleted.

  • bindings/js/JSNavigatorCustom.cpp:

(WebCore::JSNavigator::getUserMedia):

  • bindings/js/JSPluginElementFunctions.cpp:

(WebCore::callPlugin):
(WebCore::pluginElementCustomGetCallData):

  • bindings/js/JSPluginElementFunctions.h:
  • bindings/js/ReadableStream.cpp:

(WebCore::ReadableStream::create):
(WebCore::ReadableStreamInternal::callFunction):
(WebCore::ReadableStream::lock):

  • bindings/js/ReadableStreamDefaultController.cpp:

(WebCore::readableStreamCallFunction):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::executeFunctionInContext):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::callInWorld):
(WebCore::ScriptController::executeAsynchronousUserAgentScriptInWorld):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GeneratePluginCall):
(GenerateLegacyCallerDefinitions):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObj::getCallData):

  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::JSTestPluginInterface::getCallData):

  • bindings/scripts/test/JS/JSTestPluginInterface.h:
  • bridge/NP_jsobject.cpp:
  • bridge/objc/WebScriptObject.mm:

(-[WebScriptObject callWebScriptMethod:withArguments:]):

  • bridge/objc/objc_runtime.h:
  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcFallbackObjectImp::getCallData):

  • bridge/runtime_object.cpp:

(JSC::Bindings::RuntimeObject::getCallData):
(JSC::Bindings::RuntimeObject::getConstructData):

  • bridge/runtime_object.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot):

  • testing/Internals.cpp:

(WebCore::Internals::cloneArrayBuffer):

Source/WebKit:

  • WebProcess/Plugins/Netscape/JSNPObject.cpp:

(WebKit::JSNPObject::getCallData):
(WebKit::JSNPObject::getConstructData):

  • WebProcess/Plugins/Netscape/JSNPObject.h:
  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::NPJSObject::hasMethod):
(WebKit::NPJSObject::construct):
(WebKit::NPJSObject::invoke):

Source/WebKitLegacy/mac:

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::invoke):
(WebKit::NetscapePluginInstanceProxy::invokeDefault):
(WebKit::NetscapePluginInstanceProxy::construct):

Source/WebKitLegacy/win:

  • Plugins/PluginPackage.cpp:

(WebCore::NPN_Invoke):

12:40 AM Changeset in webkit [260743] by Diego Pino Garcia
  • 14 edits
    3 deletes in trunk

Unreviewed, reverting r260672.

[GTK] WebInspector tests are timing out after r260672

Reverted changeset:

"[Win] Bundle Inspector Resources in Release builds"
https://bugs.webkit.org/show_bug.cgi?id=210942
https://trac.webkit.org/changeset/260672

12:37 AM Changeset in webkit [260742] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebInspectorUI

Unreviewed, reverting r260728.

Build fix after r260672, no needed since r260672 is also being reverted.

Reverted changeset:

"[Win] Fix windows build with MSBuild after 260672"
https://bugs.webkit.org/show_bug.cgi?id=211047
https://trac.webkit.org/changeset/260728

12:35 AM Changeset in webkit [260741] by Diego Pino Garcia
  • 4 edits in trunk/Source

Unreviewed, reverting r260696.

Build fix after r260672, no needed since r260672 is also being reverted.

Reverted changeset:

"REGRESSION(210942): [GTK][WPE] Unreviewed, EWS build bots
fail in compile-webkit step"
https://bugs.webkit.org/show_bug.cgi?id=211014
https://trac.webkit.org/changeset/260696

12:04 AM Changeset in webkit [260740] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Build failure in WebGL2RenderingContext after r260588
https://bugs.webkit.org/show_bug.cgi?id=211057

Patch by Kenneth Russell <kbr@chromium.org> on 2020-04-27
Reviewed by Darin Adler.

Fix non-ANGLE build failure in WebGL2RenderingContext after
r260588.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::texStorage2D):

Note: See TracTimeline for information about the timeline view.