Timeline
May 1, 2020:
- 9:57 PM Changeset in webkit [261044] by
-
- 21 edits3 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
-
- 2 edits in trunk/WebDriverTests
[WebDriver] Gardening some failures.
Unreviewed test gardening.
- TestExpectations.json:
- 7:26 PM Changeset in webkit [261042] by
-
- 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
valueattribute in input elements of type "button" and
"submit". To do this, we plumb the element through toisAttributeForTextManipulationand checkisTextButton()
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
-
- 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
-
- 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
numDescriptorstonumberOfPortDescriptorsto match variable name in sendOutgoingMessage(). - Add new
numberOfAttachmentsvariable 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
-
- 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
-
- 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
-
- 3 edits1 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 1 edit in trunk/Source/WebCore/ChangeLog
Unreviewed, amend change log entry for r260831.
- ChangeLog:
- 3:30 PM Changeset in webkit [261031] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, another build fix after r260962.
- page/Page.h:
- 3:28 PM Changeset in webkit [261030] by
-
- 1 copy in tags/Safari-610.1.11.6
Tag Safari-610.1.11.6.
- 3:16 PM Changeset in webkit [261029] by
-
- 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
-
- 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
-
- 8 edits in branches/safari-610.1.11-branch/Source
Versioning.
- 3:03 PM Changeset in webkit [261026] by
-
- 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 useuseConcurrentJIT
to ensure this status.
- stress/big-int-negate-jit.js:
- 3:00 PM Changeset in webkit [261025] by
-
- 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
-
- 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
-
- 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
-
- 1 copy in tags/Safari-610.1.11.5
Tag Safari-610.1.11.5.
- 2:43 PM Changeset in webkit [261021] by
-
- 8 edits in branches/safari-610.1.11-branch/Source
Versioning.
- 2:09 PM Changeset in webkit [261020] by
-
- 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 aWebInspectorProxyanymore.
- 1:53 PM Changeset in webkit [261019] by
-
- 3 edits2 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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 runningtest262-runner --release --save.
- test262/expectations.yaml:
- 12:12 PM Changeset in webkit [261010] by
-
- 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
-
- 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
-
- 8 edits in branches/safari-609.2.9.0-branch/Source
Versioning.
- 10:48 AM Changeset in webkit [261007] by
-
- 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
-
- 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
-
- 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
-
- 7 edits2 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): PuthasVideo()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
-
- 12 edits1 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
-
- 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
-
- 12 edits1 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
-
- 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
-
- 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
-
- 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
-
- 3 edits2 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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, ensuringclassNameequality
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
-
- 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
-
- 26 edits1 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:
- TestExpectations:
- ietestcenter/Javascript/TestCases/15.4.4.14-3-28.js:
(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
-
- 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
-
- 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
-
- 3 edits2 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
-
- 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
-
- 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
-
- 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
-
- 10 edits2 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
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix the Mac Catalyst build after r260979
The presence of
_contextMenuInteractionis conditional not only onUSE(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
-
- 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
-
- 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
-
- 4 edits2 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 whetherpreventDefault()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
-
- 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: addariaExpandedso 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
-
- 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 usingAtomString("...", AtomString::ConstructFromLiteral)instead of
static NeverDestroyed<const AtomString> ...("...", AtomString::ConstructFromLiteral). Since HTML is in the main thread, we can just usestatic NeverDestroyed<>.
This patch fixesAtomString()calls by changing them toNeverDestroyed<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
-
- 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 abool& usesFallbackparam;
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
-
- 1 copy in tags/Safari-610.1.11.4
Tag Safari-610.1.11.4.
- 4:46 PM Changeset in webkit [260974] by
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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:
- Replacing local constants with ones from FidoConstants.h;
- Merging m_assertionResponses and m_existingCredentials by replacing HashSet with Vector in Authenticator::Observer::selectAssertionResponse;
- Using Base64 encoded strings as the keys of the HashSet in produceHashSet() instead of the old casting hack;
- Invaliding the LAContext in LocalConnection::~LocalConnection() such that any displaying LocalAuthentication dialogs can be dismissed after the object is destroyed;
- Sorting existing credentials according to LRU before returning to UI clients;
- 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
-
- 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
-
- 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
-
- 2 edits in trunk/Source/WebKit
Unreviewed, add missing parenthesis
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleMediaEvent):
- 2:19 PM Changeset in webkit [260966] by
-
- 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
-
- 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
-
- 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
-
- 8 edits3 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 aTerminatedExecutionErroris thrown.
- inspector/InjectedScriptBase.cpp:
(Inspector::InjectedScriptBase::makeCall):
Report the actual error message. Check that the result has a value before attempting to make
aJSON::Valueout of it.
Source/WebCore:
Test: inspector/worker/dom-debugger-event-after-terminate-crash.html
- inspector/agents/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::willHandleEvent):
Don'tASSERT(injectedScript.hasNoValue())as it's possible for the event to be fired after
Worker.prototype.terminate, in which caseInjectedScriptManager::injectedScriptForwill
now return anInjectedScriptthat would fail thatASSERT.
Source/WebInspectorUI:
- UserInterface/Views/QuickConsole.js:
(WI.QuickConsole.prototype._handleFrameExecutionContextsCleared):
(WI.QuickConsole.prototype._handleTargetRemoved):
If aWorkeris 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 theWorkerwas 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 8 edits in branches/safari-609.2.9.0-branch/Source
Versioning.
- 9:48 AM Changeset in webkit [260953] by
-
- 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
-
- 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
-
- 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
-
- 10 edits4 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 6 edits1 copy1 move2 adds3 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
-
- 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.