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

Timeline



Jul 10, 2019:

9:28 PM Changeset in webkit [247344] by Simon Fraser
  • 21 edits
    1 add in trunk

[iOS WK2] With modal overlay and body overflow:hidden, can't access all the content
https://bugs.webkit.org/show_bug.cgi?id=199693
rdar://problem/51930364

Reviewed by Tim Horton.
Source/WebCore:

A page with overflow:hidden on the root needs to be scrollable if:

  • it's zoomed
  • the visual viewport is smaller than the layout viewport (including visible keyboard)
  • scrolling is required to hide MobileSafari's squishy bars

This patch does the last two, plumbing a "visual viewport is smaller than layout viewport"
bit up from WebCore via the scrolling tree (that way, when it changes we automatically trigger
a commit), and checking for squished bars in WKWebView.

Tested by new API tests.

  • page/FrameView.cpp:

(WebCore::FrameView::updateLayoutViewport):
(WebCore::FrameView::layoutOrVisualViewportChanged): Make this not iOS-specific. It's not yet called
in all the right places (doing so has risk because it's exposed via VisualViewport resize events).
(WebCore::FrameView::didUpdateViewportOverrideRects): Deleted.

  • page/FrameView.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewVisualViewportChanged):
(WebCore::AsyncScrollingCoordinator::setFrameScrollingNodeState):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::frameViewVisualViewportChanged):

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setPropertyChangedBitsAfterReattach):
(WebCore::ScrollingStateFrameScrollingNode::setVisualViewportIsSmallerThanLayoutViewport):
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:

Source/WebKit:

A page with overflow:hidden on the root needs to be scrollable if:

  • it's zoomed
  • the visual viewport is smaller than the layout viewport (including visible keyboard)
  • scrolling is required to hide MobileSafari's squishy bars

This patch does the last two, plumbing a "visual viewport is smaller than layout viewport"
bit up from WebCore via the scrolling tree (that way, when it changes we automatically trigger
a commit), and checking for squished bars in WKWebView.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::hasScrollableMainFrame const):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::maximumUnobscuredSize const):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::updateVisibleContentRects):

Tools:

New API tests that test scrollability with various combinations of content, insets,
input accessory bars etc.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/ScrollViewScrollabilityTests.mm: Added.

(TestWebKitAPI::webViewWithAutofocusedInput):
(TestWebKitAPI::TEST):

9:20 PM Changeset in webkit [247343] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview/Safari Technology Preview 87

Added a tag for Safari Technology Preview release 87.

9:09 PM Changeset in webkit [247342] by timothy_horton@apple.com
  • 4 edits in trunk

Long pressing on attachments will crash the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=199696
<rdar://problem/52920241>

Reviewed by Dean Jackson.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::linkIndicatorPositionInformation):
(WebKit::elementPositionInformation):
(WebKit::selectionPositionInformation):
(WebKit::WebPage::positionInformation):
Instead of one-off creating a node snapshot for <attachment>, just
use TextIndicator. This way, we get an estimated background color,
paint at the right resolution, etc.

Also, hitNode was often null where we were previously calling
shareableBitmapSnapshotForNode, because it depends on the element
having click event handlers. selectionPositionInformation() re-hit-tests
more permissively to find the <attachment>, so moving this code
inside that function ensures that we don't try to snapshot a null node.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm:

(TestWebKitAPI::TEST):
Add a test that previously crashed.

7:09 PM Changeset in webkit [247341] by rmorisset@apple.com
  • 5 edits in trunk/Source/WebCore

[WHLSL] Optional<UniqueRef<T>> -> std::unique_ptr in Return/IfStatement/ForLoop
https://bugs.webkit.org/show_bug.cgi?id=199695

Reviewed by Dean Jackson.

Trivial patch that saves 8 bytes per Return/If, and 16 bytes per For loop.

No new tests as there is no intended functional change.

  • Modules/webgpu/WHLSL/AST/WHLSLForLoop.h:

(WebCore::WHLSL::AST::ForLoop::ForLoop):
(WebCore::WHLSL::AST::ForLoop::condition):
(WebCore::WHLSL::AST::ForLoop::increment):

  • Modules/webgpu/WHLSL/AST/WHLSLIfStatement.h:

(WebCore::WHLSL::AST::IfStatement::IfStatement):
(WebCore::WHLSL::AST::IfStatement::elseBody):

  • Modules/webgpu/WHLSL/AST/WHLSLReturn.h:

(WebCore::WHLSL::AST::Return::Return):
(WebCore::WHLSL::AST::Return::value):

  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parseIfStatement):
(WebCore::WHLSL::Parser::parseForLoop):
(WebCore::WHLSL::Parser::parseStatement):

6:27 PM Changeset in webkit [247340] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Safari’s context menu actions are missing options
https://bugs.webkit.org/show_bug.cgi?id=199694
<rdar://problem/52726822>

Reviewed by Tim Horton.

One of the most embarrassing errors I've ever made. I was returning
early when something existed, instead of when it didn't exist.
(*cough* tests *cough*)

  • UIProcess/ios/WKContentViewInteraction.mm:
6:18 PM Changeset in webkit [247339] by rmorisset@apple.com
  • 2 edits in trunk/Source/WebCore

[WHLSL] The recursion checker should not have quadratic complexity
https://bugs.webkit.org/show_bug.cgi?id=199688

Reviewed by Saam Barati.

I fix it by using two different hash sets, tracking which functions we have started visiting, and which we have finished visiting.
The difference are those that are currently "on the stack", and calling any of those is an error.
As a bonus, I also overrode visit(Program&), so that we only bother visiting function definitions.

On whlsl-compute.html ran 5 times, this patch reduces the time spent in the recursion checker from 26ms to 12ms.
It is likely to be a much bigger win on larger programs (since it took the complexity from quadratic to linear).

No new tests as there is no intended functional change.

  • Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp:
5:59 PM Changeset in webkit [247338] by sbarati@apple.com
  • 3 edits
    50 adds in trunk/LayoutTests

[WHLSL] Import all tests that pass without compiler changes from the JS reference test suite
https://bugs.webkit.org/show_bug.cgi?id=199595

Rubber stamped by Robin Morisset.

  • webgpu/whlsl-argument-evaluation-order-expected.txt: Added.
  • webgpu/whlsl-argument-evaluation-order.html: Added.
  • webgpu/whlsl-array-length-spec-tests-expected.txt: Added.
  • webgpu/whlsl-array-length-spec-tests.html: Added.
  • webgpu/whlsl-array-spec-tests-expected.txt:
  • webgpu/whlsl-array-spec-tests.html:
  • webgpu/whlsl-bad-add-expected.txt: Added.
  • webgpu/whlsl-bad-add.html: Added.
  • webgpu/whlsl-bools-expected.txt: Added.
  • webgpu/whlsl-bools.html: Added.
  • webgpu/whlsl-casts-expected.txt: Added.
  • webgpu/whlsl-casts.html: Added.
  • webgpu/whlsl-comment-parsing-expected.txt: Added.
  • webgpu/whlsl-comment-parsing.html: Added.
  • webgpu/whlsl-copy-expected.txt: Added.
  • webgpu/whlsl-copy.html: Added.
  • webgpu/whlsl-dereference-ordering-expected.txt: Added.
  • webgpu/whlsl-dereference-ordering.html: Added.
  • webgpu/whlsl-double-not-expected.txt: Added.
  • webgpu/whlsl-double-not.html: Added.
  • webgpu/whlsl-duplicates-expected.txt: Added.
  • webgpu/whlsl-duplicates.html: Added.
  • webgpu/whlsl-increment-decrement-expected.txt: Added.
  • webgpu/whlsl-increment-decrement.html: Added.
  • webgpu/whlsl-index-ander-expected.txt: Added.
  • webgpu/whlsl-index-ander.html: Added.
  • webgpu/whlsl-index-setter-getter-expected.txt: Added.
  • webgpu/whlsl-index-setter-getter.html: Added.
  • webgpu/whlsl-logical-negation-expected.txt: Added.
  • webgpu/whlsl-logical-negation.html: Added.
  • webgpu/whlsl-lots-of-local-variables-expected.txt: Added.
  • webgpu/whlsl-lots-of-local-variables.html: Added.
  • webgpu/whlsl-lvalues-expected.txt: Added.
  • webgpu/whlsl-lvalues.html: Added.
  • webgpu/whlsl-null-arg-expected.txt: Added.
  • webgpu/whlsl-null-arg.html: Added.
  • webgpu/whlsl-operator-overload-expected.txt: Added.
  • webgpu/whlsl-operator-overload.html: Added.
  • webgpu/whlsl-overload-expected.txt: Added.
  • webgpu/whlsl-overload.html: Added.
  • webgpu/whlsl-setter-spec-tests-expected.txt: Added.
  • webgpu/whlsl-setter-spec-tests.html: Added.
  • webgpu/whlsl-store-null-expected.txt: Added.
  • webgpu/whlsl-store-null.html: Added.
  • webgpu/whlsl-struct-expected.txt: Added.
  • webgpu/whlsl-struct.html: Added.
  • webgpu/whlsl-switch-expected.txt: Added.
  • webgpu/whlsl-switch.html: Added.
  • webgpu/whlsl-variable-shadowing-expected.txt: Added.
  • webgpu/whlsl-variable-shadowing.html: Added.
  • webgpu/whlsl-vector-syntax-expected.txt: Added.
  • webgpu/whlsl-vector-syntax.html: Added.
5:43 PM Changeset in webkit [247337] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Crash at WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator
https://bugs.webkit.org/show_bug.cgi?id=199677
<rdar://problem/52334665>

Reviewed by Alex Christensen.

Add an early return in incrementReverseIterator when setFirstInRemainingRange fails to set m_iterator. This is
in line with what we did in incrementForwardIterator.

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator):

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

Support MacCatalyst in run-webkit-app
https://bugs.webkit.org/show_bug.cgi?id=199690

Reviewed by Tim Horton.

Add a --maccatalyst option to run-webkit-app that
can launch MacCatalyst applications with a built WebKit.

  • Scripts/webkitdirs.pm:

(argumentsForConfiguration):
(determineXcodeSDK):
(xcodeSDKPlatformName):
(determineConfigurationProductDir):
(determinePortName):
(isCatalystWebKit):
(isAppleCocoaWebKit):
(willUseCatalystSDK):

5:29 PM Changeset in webkit [247335] by Alan Coon
  • 1 copy in tags/Safari-608.1.34.1.1

Tag Safari-608.1.34.1.1.

5:23 PM Changeset in webkit [247334] by Alan Coon
  • 1 copy in tags/Safari-608.1.34.0.3

Tag Safari-608.1.34.0.3.

5:06 PM Changeset in webkit [247333] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Marking webgpu/whlsl-builtin-vectors-2.html as Slow after https://trac.webkit.org/changeset/247319/webkit
https://bugs.webkit.org/show_bug.cgi?id=199651

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:36 PM Changeset in webkit [247332] by jonlee@apple.com
  • 2 edits in trunk/Source/WebKit

Opt trello.com to mobile UA
https://bugs.webkit.org/show_bug.cgi?id=199686
rdar://problem/51708119

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::desktopClassBrowsingRecommendedForRequest): Currently the desktop version
of the site prevents users from tapping cards to edit them. Opt trello into the mobile
UA for now.

4:08 PM Changeset in webkit [247331] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Stop using GenericTaskQueue from multiple threads
https://bugs.webkit.org/show_bug.cgi?id=199652

Reviewed by Eric Carlson and Geoffrey Garen.

WebCoreAVFLoaderDelegate was calling GenericTaskQueue::enqueueTask() from a background thread,
which is not safe because the implementation of enqueueTask() calls makeWeakPtr() on the
GenericTaskQueue (a main thread object).

Update WebCoreAVFLoaderDelegate to make sure it is on the main thread before it calls
GenericTaskQueue::enqueueTask().

  • platform/GenericTaskQueue.h:

Remove last template parameter which was used exclusively by WebCoreAVFLoaderDelegate to try and
make GenericTaskQueue thread-safe.

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

(-[WebCoreAVFMovieObserver metadataLoaded]):
(-[WebCoreAVFMovieObserver didEnd:]):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):

3:42 PM Changeset in webkit [247330] by Chris Fleizach
  • 5 edits in trunk

AX: VoiceOver ignored role="presentation" on <table> HTML elements
https://bugs.webkit.org/show_bug.cgi?id=199659

Reviewed by Zalan Bujtas.

Source/WebCore:

Only include a table ancestor if it's a table we care about for accessibility.

Modified Test: accessibility/ios-simulator/tables-lists.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):

LayoutTests:

  • accessibility/ios-simulator/tables-lists-expected.txt:
  • accessibility/ios-simulator/tables-lists.html:
3:33 PM Changeset in webkit [247329] by rmorisset@apple.com
  • 82 edits in trunk/Source/WebCore

[WHLSL] Track code locations correctly throughout the compiler to get good error messages
https://bugs.webkit.org/show_bug.cgi?id=199675

Reviewed by Myles Maxfield.

The basic idea is to go from having each AST node contain its own token to having each AST node contain a pair of offsets into the source,
the offset before its start and the offset after its end. This will let us get good error messages.
As a bonus, it saves a bit of memory as Tokens are larger (one extra word for their type).

The new CodeLocation class is put in Lexer.h, because it has a cyclic dependency on Token, which also has a cyclic dependency on Lexer.

No new tests as there is no intended functional change.

  • Modules/webgpu/WHLSL/AST/WHLSLArrayReferenceType.h:

(WebCore::WHLSL::AST::ArrayReferenceType::ArrayReferenceType):

  • Modules/webgpu/WHLSL/AST/WHLSLArrayType.h:

(WebCore::WHLSL::AST::ArrayType::ArrayType):

  • Modules/webgpu/WHLSL/AST/WHLSLAssignmentExpression.h:

(WebCore::WHLSL::AST::AssignmentExpression::AssignmentExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLBaseFunctionAttribute.h:

(WebCore::WHLSL::AST::BaseFunctionAttribute::BaseFunctionAttribute):

  • Modules/webgpu/WHLSL/AST/WHLSLBaseSemantic.h:

(WebCore::WHLSL::AST::BaseSemantic::BaseSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLBlock.h:

(WebCore::WHLSL::AST::Block::Block):

  • Modules/webgpu/WHLSL/AST/WHLSLBooleanLiteral.h:

(WebCore::WHLSL::AST::BooleanLiteral::BooleanLiteral):
(WebCore::WHLSL::AST::BooleanLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLBreak.h:

(WebCore::WHLSL::AST::Break::Break):

  • Modules/webgpu/WHLSL/AST/WHLSLBuiltInSemantic.h:

(WebCore::WHLSL::AST::BuiltInSemantic::BuiltInSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLCallExpression.h:

(WebCore::WHLSL::AST::CallExpression::CallExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLCommaExpression.h:

(WebCore::WHLSL::AST::CommaExpression::CommaExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLContinue.h:

(WebCore::WHLSL::AST::Continue::Continue):

  • Modules/webgpu/WHLSL/AST/WHLSLDereferenceExpression.h:

(WebCore::WHLSL::AST::DereferenceExpression::DereferenceExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLDoWhileLoop.h:

(WebCore::WHLSL::AST::DoWhileLoop::DoWhileLoop):

  • Modules/webgpu/WHLSL/AST/WHLSLDotExpression.h:

(WebCore::WHLSL::AST::DotExpression::DotExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLEffectfulExpressionStatement.h:

(WebCore::WHLSL::AST::EffectfulExpressionStatement::EffectfulExpressionStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationDefinition.h:

(WebCore::WHLSL::AST::EnumerationDefinition::EnumerationDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMember.h:

(WebCore::WHLSL::AST::EnumerationMember::EnumerationMember):
(WebCore::WHLSL::AST::EnumerationMember::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMemberLiteral.h:

(WebCore::WHLSL::AST::EnumerationMemberLiteral::EnumerationMemberLiteral):
(WebCore::WHLSL::AST::EnumerationMemberLiteral::wrap):
(WebCore::WHLSL::AST::EnumerationMemberLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLExpression.h:

(WebCore::WHLSL::AST::Expression::Expression):
(WebCore::WHLSL::AST::Expression::codeLocation const):
(WebCore::WHLSL::AST::Expression::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLFallthrough.h:

(WebCore::WHLSL::AST::Fallthrough::Fallthrough):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteral.h:

(WebCore::WHLSL::AST::FloatLiteral::FloatLiteral):
(WebCore::WHLSL::AST::FloatLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.cpp:

(WebCore::WHLSL::AST::FloatLiteralType::FloatLiteralType):
(WebCore::WHLSL::AST::FloatLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLForLoop.h:

(WebCore::WHLSL::AST::ForLoop::ForLoop):

  • Modules/webgpu/WHLSL/AST/WHLSLFunctionDeclaration.h:

(WebCore::WHLSL::AST::FunctionDeclaration::FunctionDeclaration):
(WebCore::WHLSL::AST::FunctionDeclaration::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLGlobalVariableReference.h:

(WebCore::WHLSL::AST::GlobalVariableReference::GlobalVariableReference):

  • Modules/webgpu/WHLSL/AST/WHLSLIfStatement.h:

(WebCore::WHLSL::AST::IfStatement::IfStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h:

(WebCore::WHLSL::AST::IndexExpression::IndexExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteral.h:

(WebCore::WHLSL::AST::IntegerLiteral::IntegerLiteral):
(WebCore::WHLSL::AST::IntegerLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.cpp:

(WebCore::WHLSL::AST::IntegerLiteralType::IntegerLiteralType):
(WebCore::WHLSL::AST::IntegerLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLLogicalExpression.h:

(WebCore::WHLSL::AST::LogicalExpression::LogicalExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLLogicalNotExpression.h:

(WebCore::WHLSL::AST::LogicalNotExpression::LogicalNotExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLMakeArrayReferenceExpression.h:

(WebCore::WHLSL::AST::MakeArrayReferenceExpression::MakeArrayReferenceExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLMakePointerExpression.h:

(WebCore::WHLSL::AST::MakePointerExpression::MakePointerExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLNamedType.h:

(WebCore::WHLSL::AST::NamedType::NamedType):
(WebCore::WHLSL::AST::NamedType::codeLocation const):
(WebCore::WHLSL::AST::NamedType::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:

(WebCore::WHLSL::AST::NativeTypeDeclaration::NativeTypeDeclaration):

  • Modules/webgpu/WHLSL/AST/WHLSLNullLiteral.h:

(WebCore::WHLSL::AST::NullLiteral::NullLiteral):
(WebCore::WHLSL::AST::NullLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLNumThreadsFunctionAttribute.h:

(WebCore::WHLSL::AST::NumThreadsFunctionAttribute::NumThreadsFunctionAttribute):

  • Modules/webgpu/WHLSL/AST/WHLSLPointerType.h:

(WebCore::WHLSL::AST::PointerType::PointerType):

  • Modules/webgpu/WHLSL/AST/WHLSLPropertyAccessExpression.h:

(WebCore::WHLSL::AST::PropertyAccessExpression::PropertyAccessExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h:

(WebCore::WHLSL::AST::ReadModifyWriteExpression::create):
(WebCore::WHLSL::AST::ReadModifyWriteExpression::ReadModifyWriteExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLReferenceType.h:

(WebCore::WHLSL::AST::ReferenceType::ReferenceType):

  • Modules/webgpu/WHLSL/AST/WHLSLResourceSemantic.h:

(WebCore::WHLSL::AST::ResourceSemantic::ResourceSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLReturn.h:

(WebCore::WHLSL::AST::Return::Return):

  • Modules/webgpu/WHLSL/AST/WHLSLSpecializationConstantSemantic.h:

(WebCore::WHLSL::AST::SpecializationConstantSemantic::SpecializationConstantSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLStageInOutSemantic.h:

(WebCore::WHLSL::AST::StageInOutSemantic::StageInOutSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLStatement.h:

(WebCore::WHLSL::AST::Statement::Statement):
(WebCore::WHLSL::AST::Statement::codeLocation const):
(WebCore::WHLSL::AST::Statement::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLStatementList.h:

(WebCore::WHLSL::AST::StatementList::StatementList):

  • Modules/webgpu/WHLSL/AST/WHLSLStructureDefinition.h:

(WebCore::WHLSL::AST::StructureDefinition::StructureDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLStructureElement.h:

(WebCore::WHLSL::AST::StructureElement::StructureElement):
(WebCore::WHLSL::AST::StructureElement::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLSwitchCase.h:

(WebCore::WHLSL::AST::SwitchCase::SwitchCase):

  • Modules/webgpu/WHLSL/AST/WHLSLSwitchStatement.h:

(WebCore::WHLSL::AST::SwitchStatement::SwitchStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLTernaryExpression.h:

(WebCore::WHLSL::AST::TernaryExpression::TernaryExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLTrap.h:

(WebCore::WHLSL::AST::Trap::Trap):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeDefinition.h:

(WebCore::WHLSL::AST::TypeDefinition::TypeDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.cpp:

(WebCore::WHLSL::AST::TypeReference::wrap):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.h:

(WebCore::WHLSL::AST::TypeReference::TypeReference):
(WebCore::WHLSL::AST::TypeReference::cloneTypeReference const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.h:

(WebCore::WHLSL::AST::UnnamedType::UnnamedType):
(WebCore::WHLSL::AST::UnnamedType::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteral.h:

(WebCore::WHLSL::AST::UnsignedIntegerLiteral::UnsignedIntegerLiteral):
(WebCore::WHLSL::AST::UnsignedIntegerLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.cpp:

(WebCore::WHLSL::AST::UnsignedIntegerLiteralType::UnsignedIntegerLiteralType):
(WebCore::WHLSL::AST::UnsignedIntegerLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclarationsStatement.h:

(WebCore::WHLSL::AST::VariableDeclarationsStatement::VariableDeclarationsStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLVariableReference.h:

(WebCore::WHLSL::AST::VariableReference::VariableReference):
(WebCore::WHLSL::AST::VariableReference::wrap):

  • Modules/webgpu/WHLSL/AST/WHLSLWhileLoop.h:

(WebCore::WHLSL::AST::WhileLoop::WhileLoop):

  • Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.cpp:

(WebCore::WHLSL::AutoInitialize::visit):

  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::resolveWithOperatorAnderIndexer):
(WebCore::WHLSL::resolveWithOperatorLength):
(WebCore::WHLSL::resolveWithReferenceComparator):
(WebCore::WHLSL::resolveByInstantiation):
(WebCore::WHLSL::resolveFunction):
(WebCore::WHLSL::Checker::visit):
(WebCore::WHLSL::argumentTypeForAndOverload):
(WebCore::WHLSL::Checker::finishVisiting):

  • Modules/webgpu/WHLSL/WHLSLInferTypes.cpp:

(WebCore::WHLSL::matchAndCommit):

  • Modules/webgpu/WHLSL/WHLSLLexer.cpp:

(WebCore::WHLSL::Token::typeName):
(WebCore::WHLSL::Lexer::consumeTokenFromStream):

  • Modules/webgpu/WHLSL/WHLSLLexer.h:

(WebCore::WHLSL::AST::CodeLocation::CodeLocation):
(WebCore::WHLSL::AST::CodeLocation::startOffset const):
(WebCore::WHLSL::AST::CodeLocation::endOffset const):
(WebCore::WHLSL::Token::startOffset const):
(WebCore::WHLSL::Lexer::errorString):
(WebCore::WHLSL::Token::stringView const):

  • Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:

(WebCore::WHLSL::NameResolver::visit):

  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parse):
(WebCore::WHLSL::Parser::peek):
(WebCore::WHLSL::Parser::peekFurther):
(WebCore::WHLSL::Types::includes):
(WebCore::WHLSL::Types::appendNameTo):
(WebCore::WHLSL::Types<t>::includes):
(WebCore::WHLSL::Types<t>::appendNameTo):
(WebCore::WHLSL::Parser::peekType):
(WebCore::WHLSL::Parser::tryType):
(WebCore::WHLSL::Parser::tryTypes):
(WebCore::WHLSL::Parser::consumeType):
(WebCore::WHLSL::Parser::consumeTypes):
(WebCore::WHLSL::Parser::consumeIntegralLiteral):
(WebCore::WHLSL::Parser::parseConstantExpression):
(WebCore::WHLSL::Parser::parseTypeArgument):
(WebCore::WHLSL::Parser::parseTypeArguments):
(WebCore::WHLSL::Parser::parseTypeSuffixAbbreviated):
(WebCore::WHLSL::Parser::parseTypeSuffixNonAbbreviated):
(WebCore::WHLSL::Parser::parseType):
(WebCore::WHLSL::Parser::parseTypeDefinition):
(WebCore::WHLSL::Parser::parseBuiltInSemantic):
(WebCore::WHLSL::Parser::parseResourceSemantic):
(WebCore::WHLSL::Parser::parseSpecializationConstantSemantic):
(WebCore::WHLSL::Parser::parseStageInOutSemantic):
(WebCore::WHLSL::Parser::parseSemantic):
(WebCore::WHLSL::Parser::parseQualifiers):
(WebCore::WHLSL::Parser::parseStructureElement):
(WebCore::WHLSL::Parser::parseStructureDefinition):
(WebCore::WHLSL::Parser::parseEnumerationDefinition):
(WebCore::WHLSL::Parser::parseEnumerationMember):
(WebCore::WHLSL::Parser::parseNativeTypeDeclaration):
(WebCore::WHLSL::Parser::parseNumThreadsFunctionAttribute):
(WebCore::WHLSL::Parser::parseAttributeBlock):
(WebCore::WHLSL::Parser::parseParameter):
(WebCore::WHLSL::Parser::parseParameters):
(WebCore::WHLSL::Parser::parseComputeFunctionDeclaration):
(WebCore::WHLSL::Parser::parseVertexOrFragmentFunctionDeclaration):
(WebCore::WHLSL::Parser::parseRegularFunctionDeclaration):
(WebCore::WHLSL::Parser::parseOperatorFunctionDeclaration):
(WebCore::WHLSL::Parser::parseFunctionDeclaration):
(WebCore::WHLSL::Parser::parseBlock):
(WebCore::WHLSL::Parser::parseBlockBody):
(WebCore::WHLSL::Parser::parseIfStatement):
(WebCore::WHLSL::Parser::parseSwitchStatement):
(WebCore::WHLSL::Parser::parseSwitchCase):
(WebCore::WHLSL::Parser::parseForLoop):
(WebCore::WHLSL::Parser::parseWhileLoop):
(WebCore::WHLSL::Parser::parseDoWhileLoop):
(WebCore::WHLSL::Parser::parseVariableDeclaration):
(WebCore::WHLSL::Parser::parseVariableDeclarations):
(WebCore::WHLSL::Parser::parseStatement):
(WebCore::WHLSL::Parser::parseEffectfulExpression):
(WebCore::WHLSL::Parser::parseEffectfulAssignment):
(WebCore::WHLSL::Parser::parseLimitedSuffixOperator):
(WebCore::WHLSL::Parser::parseSuffixOperator):
(WebCore::WHLSL::Parser::parseExpression):
(WebCore::WHLSL::Parser::completeTernaryConditional):
(WebCore::WHLSL::Parser::completeAssignment):
(WebCore::WHLSL::Parser::parsePossibleTernaryConditional):
(WebCore::WHLSL::Parser::completePossibleLogicalBinaryOperation):
(WebCore::WHLSL::Parser::completePossibleRelationalBinaryOperation):
(WebCore::WHLSL::Parser::completePossibleShift):
(WebCore::WHLSL::Parser::completePossibleAdd):
(WebCore::WHLSL::Parser::completePossibleMultiply):
(WebCore::WHLSL::Parser::parsePossiblePrefix):
(WebCore::WHLSL::Parser::parsePossibleSuffix):
(WebCore::WHLSL::Parser::parseCallExpression):
(WebCore::WHLSL::Parser::parseTerm):

  • Modules/webgpu/WHLSL/WHLSLParser.h:
  • Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:

(WebCore::WHLSL::anonymousToken):
(WebCore::WHLSL::PreserveLifetimes::PreserveLifetimes):
(WebCore::WHLSL::PreserveLifetimes::assignVariableIntoStruct):
(WebCore::WHLSL::preserveVariableLifetimes):

  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:

(WebCore::WHLSL::PropertyResolver::visit):
(WebCore::WHLSL::wrapAnderCallArgument):
(WebCore::WHLSL::setterCall):
(WebCore::WHLSL::getterCall):
(WebCore::WHLSL::modify):
(WebCore::WHLSL::PropertyResolver::simplifyRightValue):
(WebCore::WHLSL::LeftValueSimplifier::finishVisiting):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeArrayOperatorLength.cpp:

(WebCore::WHLSL::synthesizeArrayOperatorLength):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp:

(WebCore::WHLSL::synthesizeConstructors):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.cpp:

(WebCore::WHLSL::synthesizeEnumerationFunctions):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.cpp:

(WebCore::WHLSL::synthesizeStructureAccessors):

3:07 PM Changeset in webkit [247328] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

[iOS] Selection handles "Lollipops" can become gray and stay gray
https://bugs.webkit.org/show_bug.cgi?id=198852
<rdar://problem/51736130>

Reviewed by Wenson Hsieh.

Tell the text interaction assistant to update the selection UI when the tint color changes.
We do this by way of deactivating and activating selection.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView tintColorDidChange]):

2:12 PM Changeset in webkit [247327] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

[iOS] REGRESSION(r244851): Revealing caret sometimes fails when content inset is used
https://bugs.webkit.org/show_bug.cgi?id=199662

Reviewed by Simon Fraser.

Source/WebCore:

The bug was caused by ScrollableArea::maximumScrollPosition using ScrollableArea::visibleSize, which does not
take the content insets into account correctly, rather than FrameView::visualViewportRectExpandedByContentInsets,
which does, and is used for "viewRect" in RenderLayer::scrollRectToVisible.

Override the maximum scroll position using visualViewportRectExpandedByContentInsets in iOS to fix the issue.

Test: editing/selection/ios/autoscroll-with-top-content-inset-2.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible): Fixed the bug.

LayoutTests:

Added a regression test.

  • editing/selection/ios/autoscroll-with-top-content-inset-2-expected.txt: Added.
  • editing/selection/ios/autoscroll-with-top-content-inset-2.html: Added.
1:40 PM Changeset in webkit [247326] by dino@apple.com
  • 7 edits in trunk/Source/WebKit

Share or Copy image from context menu does not share the correct data
https://bugs.webkit.org/show_bug.cgi?id=199681
<rdar://problem/50538771>

Reviewed by Tim Horton.

The UIContextMenuInteraction calls didEndInteraction before executing the
actions of a selected menu item. This means we were assuming the interaction
had finished before performing the action triggered in the interaction, ending
up in the state where we had forgotten which element we were working with.

Rather than ask for UIKit to change, I'm just starting the interaction again
as the action is run. Thankfully we already had the location of the interaction.
There is a small risk that the page has changed in the meantime, but I'm not
sure what to do about that.

While here, I moved a method only used by us into _WKElementActionInternal,
and changed the location stored by _WKActivatedElementInfo from a CGPoint
to an WebCore::IntPoint (since it doesn't escape WebKit).

  • UIProcess/API/Cocoa/_WKActivatedElementInfo.mm: Use a WebCore::IntPoint rather than a CGPoint.

(-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:]):
(-[_WKActivatedElementInfo _initWithType:URL:imageURL:location:title:ID:rect:image:userInfo:]):
(-[_WKActivatedElementInfo _interactionLocation]):

  • UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h:
  • UIProcess/API/Cocoa/_WKElementAction.h: Move uiActionForElementInfo to Internal.
  • UIProcess/API/Cocoa/_WKElementActionInternal.h:
  • UIProcess/API/Cocoa/_WKElementAction.mm: When executing the handlers, restart the interaction

using the location in _WKActivatedElementInfo.
(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):

  • UIProcess/ios/WKContentViewInteraction.mm: Explicitly start and stop interactions at

the appropriate points in the UIContextMenu flow. This isn't really needed since we're
doing it in the handlers, but it will be correct if the UIKit delegate order changes.
(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView contextMenuInteractionDidEnd:]):

1:37 PM Changeset in webkit [247325] by Ryan Haddad
  • 82 edits in trunk/Source/WebCore

Unreviewed, rolling out r247316.

Broke Mojave build

Reverted changeset:

"[WHLSL] Track code locations correctly throughout the
compiler to get good error messages"
https://bugs.webkit.org/show_bug.cgi?id=199675
https://trac.webkit.org/changeset/247316

1:30 PM Changeset in webkit [247324] by commit-queue@webkit.org
  • 11 edits in trunk/Source

Allow CMake to build WebCore on Mac
https://bugs.webkit.org/show_bug.cgi?id=198979

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-10
Reviewed by Don Olmstead.

Source/ThirdParty/ANGLE:

  • include/GLSLANG/ShaderLang.h:

Source/WebCore:

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::validateURL):

  • PlatformMac.cmake:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:
  • platform/ios/WebItemProviderPasteboard.h:

Source/WebCore/PAL:

  • pal/PlatformMac.cmake:
1:13 PM Changeset in webkit [247323] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed, rolling out r247292.

Caused CloseWebViewDuringEnterFullscreen.VideoFullscreen API
test to time out on Mojave bots

Reverted changeset:

"Stop using GenericTaskQueue from multiple threads"
https://bugs.webkit.org/show_bug.cgi?id=199652
https://trac.webkit.org/changeset/247292

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

Crash under IPC::Connection::waitForMessage()
https://bugs.webkit.org/show_bug.cgi?id=199680
<rdar://problem/52500561>

Reviewed by Tim Horton.

IPC::Connection::waitForMessage() is crashing due to a null defererence of
m_waitingForMessage. Since m_waitingForMessage is only ever set to null in
waitForMessage(), this seems to imply we've re-entered waitForMessage().
This is in theory possible since the loop inside waitForMessage() calls
SyncMessageState::singleton().dispatchMessages() on every iteration to
process incoming synchronous IPC messages. In theory, one of these sync
IPC messages could run code which ends up calling waitForAndDispatchImmediately()
(and thus waitForMessage()).

We had a debug assertion to try and catch re-entrancy with a comment stating
"We don't support having multiple clients waiting for messages." but we
would not see those in release and we would crash with a null dereference
instead.

To address the crashes in release, return early in case of re-entrancy
(we would still hit an assertion in debug).

  • Platform/IPC/Connection.cpp:

(IPC::Connection::Connection):
(IPC::Connection::waitForMessage):

  • Platform/IPC/Connection.h:
1:04 PM Changeset in webkit [247321] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Context menus are not presented for WKWebViews that don't have UIDelegates
https://bugs.webkit.org/show_bug.cgi?id=199678

Reviewed by Dean Jackson.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView continueContextMenuInteraction:]):
Remove this unnecessary early-return if we don't have a UIDelegate.
We have a default behavior that we totally want to happen.
Also, rename completion() to continueWithContextMenuConfiguration()
to reduce confusion between completion() and completionBlock() in
this method.

1:02 PM Changeset in webkit [247320] by Alan Coon
  • 2 edits in branches/safari-608.1.34.0-branch/Source/WebKit

Cherry-pick r247185. rdar://problem/52554137

[iOS] Context Menu - Add to Reading List does nothing
https://bugs.webkit.org/show_bug.cgi?id=199504
<rdar://problem/52554137>

Reviewed by Anders Carlsson.

We were holding weak references to the _WKElementAction in
the handler provided to UIAction. By the time the handler was
called, the object had been deallocated.

  • UIProcess/API/Cocoa/_WKElementAction.mm: (-[_WKElementAction uiActionForElementInfo:]): Use strong references in handler.

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

1:01 PM Changeset in webkit [247319] by sbarati@apple.com
  • 1 edit
    23 adds in trunk/LayoutTests

[WHLSL Import more JS reference spec tests
https://bugs.webkit.org/show_bug.cgi?id=199651

Rubber stamped by Robin Morisset.

  • webgpu/whlsl-builtin-vectors-2-expected.txt: Added.
  • webgpu/whlsl-builtin-vectors-2.html: Added.
  • webgpu/whlsl-builtin-vectors-expected.txt: Added.
  • webgpu/whlsl-builtin-vectors.html: Added.
  • webgpu/whlsl-getter-setter-type-expected.txt: Added.
  • webgpu/whlsl-getter-setter-type.html: Added.
  • webgpu/whlsl-loops-spec-tests-expected.txt: Added.
  • webgpu/whlsl-loops-spec-tests.html: Added.
  • webgpu/whlsl-null-array-ref.html: Added.
  • webgpu/whlsl-override-subscript-expected.txt: Added.
  • webgpu/whlsl-override-subscript.html: Added.
  • webgpu/whlsl-plus-equals-expected.txt: Added.
  • webgpu/whlsl-plus-equals.html: Added.
  • webgpu/whlsl-recursive-structs-expected.txt: Added.
  • webgpu/whlsl-recursive-structs.html: Added.
  • webgpu/whlsl-ternary-spec-test-expected.txt: Added.
  • webgpu/whlsl-ternary-spec-test.html: Added.
  • webgpu/whlsl-wrong-argument-length-expected.txt: Added.
  • webgpu/whlsl-wrong-argument-length.html: Added.
  • webgpu/whlsl-wrong-types-expected.txt: Added.
  • webgpu/whlsl-wrong-types.html: Added.
12:58 PM Changeset in webkit [247318] by Alan Coon
  • 7 edits in branches/safari-608.1.34.0-branch/Source

Versioning.

12:46 PM Changeset in webkit [247317] by commit-queue@webkit.org
  • 7 edits
    2 deletes in trunk

Unreviewed, rolling out r247223.
https://bugs.webkit.org/show_bug.cgi?id=199679

Caused perf regression. (Requested by deanj on #webkit).

Reverted changeset:

"[iPadOS] Viewport pops while loading sohu.com, xinhuanet.com,
and various other websites"
https://bugs.webkit.org/show_bug.cgi?id=199575
https://trac.webkit.org/changeset/247223

12:44 PM Changeset in webkit [247316] by rmorisset@apple.com
  • 82 edits in trunk/Source/WebCore

[WHLSL] Track code locations correctly throughout the compiler to get good error messages
https://bugs.webkit.org/show_bug.cgi?id=199675

Reviewed by Myles Maxfield.

The basic idea is to go from having each AST node contain its own token to having each AST node contain a pair of offsets into the source,
the offset before its start and the offset after its end. This will let us get good error messages.
As a bonus, it saves a bit of memory as Tokens are larger (one extra word for their type).

The new CodeLocation class is put in Lexer.h, because it has a cyclic dependency on Token, which also has a cyclic dependency on Lexer.

No new tests as there is no intended functional change.

  • Modules/webgpu/WHLSL/AST/WHLSLArrayReferenceType.h:

(WebCore::WHLSL::AST::ArrayReferenceType::ArrayReferenceType):

  • Modules/webgpu/WHLSL/AST/WHLSLArrayType.h:

(WebCore::WHLSL::AST::ArrayType::ArrayType):

  • Modules/webgpu/WHLSL/AST/WHLSLAssignmentExpression.h:

(WebCore::WHLSL::AST::AssignmentExpression::AssignmentExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLBaseFunctionAttribute.h:

(WebCore::WHLSL::AST::BaseFunctionAttribute::BaseFunctionAttribute):

  • Modules/webgpu/WHLSL/AST/WHLSLBaseSemantic.h:

(WebCore::WHLSL::AST::BaseSemantic::BaseSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLBlock.h:

(WebCore::WHLSL::AST::Block::Block):

  • Modules/webgpu/WHLSL/AST/WHLSLBooleanLiteral.h:

(WebCore::WHLSL::AST::BooleanLiteral::BooleanLiteral):
(WebCore::WHLSL::AST::BooleanLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLBreak.h:

(WebCore::WHLSL::AST::Break::Break):

  • Modules/webgpu/WHLSL/AST/WHLSLBuiltInSemantic.h:

(WebCore::WHLSL::AST::BuiltInSemantic::BuiltInSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLCallExpression.h:

(WebCore::WHLSL::AST::CallExpression::CallExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLCommaExpression.h:

(WebCore::WHLSL::AST::CommaExpression::CommaExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLContinue.h:

(WebCore::WHLSL::AST::Continue::Continue):

  • Modules/webgpu/WHLSL/AST/WHLSLDereferenceExpression.h:

(WebCore::WHLSL::AST::DereferenceExpression::DereferenceExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLDoWhileLoop.h:

(WebCore::WHLSL::AST::DoWhileLoop::DoWhileLoop):

  • Modules/webgpu/WHLSL/AST/WHLSLDotExpression.h:

(WebCore::WHLSL::AST::DotExpression::DotExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLEffectfulExpressionStatement.h:

(WebCore::WHLSL::AST::EffectfulExpressionStatement::EffectfulExpressionStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationDefinition.h:

(WebCore::WHLSL::AST::EnumerationDefinition::EnumerationDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMember.h:

(WebCore::WHLSL::AST::EnumerationMember::EnumerationMember):
(WebCore::WHLSL::AST::EnumerationMember::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMemberLiteral.h:

(WebCore::WHLSL::AST::EnumerationMemberLiteral::EnumerationMemberLiteral):
(WebCore::WHLSL::AST::EnumerationMemberLiteral::wrap):
(WebCore::WHLSL::AST::EnumerationMemberLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLExpression.h:

(WebCore::WHLSL::AST::Expression::Expression):
(WebCore::WHLSL::AST::Expression::codeLocation const):
(WebCore::WHLSL::AST::Expression::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLFallthrough.h:

(WebCore::WHLSL::AST::Fallthrough::Fallthrough):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteral.h:

(WebCore::WHLSL::AST::FloatLiteral::FloatLiteral):
(WebCore::WHLSL::AST::FloatLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.cpp:

(WebCore::WHLSL::AST::FloatLiteralType::FloatLiteralType):
(WebCore::WHLSL::AST::FloatLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLFloatLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLForLoop.h:

(WebCore::WHLSL::AST::ForLoop::ForLoop):

  • Modules/webgpu/WHLSL/AST/WHLSLFunctionDeclaration.h:

(WebCore::WHLSL::AST::FunctionDeclaration::FunctionDeclaration):
(WebCore::WHLSL::AST::FunctionDeclaration::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLGlobalVariableReference.h:

(WebCore::WHLSL::AST::GlobalVariableReference::GlobalVariableReference):

  • Modules/webgpu/WHLSL/AST/WHLSLIfStatement.h:

(WebCore::WHLSL::AST::IfStatement::IfStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h:

(WebCore::WHLSL::AST::IndexExpression::IndexExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteral.h:

(WebCore::WHLSL::AST::IntegerLiteral::IntegerLiteral):
(WebCore::WHLSL::AST::IntegerLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.cpp:

(WebCore::WHLSL::AST::IntegerLiteralType::IntegerLiteralType):
(WebCore::WHLSL::AST::IntegerLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLIntegerLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLLogicalExpression.h:

(WebCore::WHLSL::AST::LogicalExpression::LogicalExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLLogicalNotExpression.h:

(WebCore::WHLSL::AST::LogicalNotExpression::LogicalNotExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLMakeArrayReferenceExpression.h:

(WebCore::WHLSL::AST::MakeArrayReferenceExpression::MakeArrayReferenceExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLMakePointerExpression.h:

(WebCore::WHLSL::AST::MakePointerExpression::MakePointerExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLNamedType.h:

(WebCore::WHLSL::AST::NamedType::NamedType):
(WebCore::WHLSL::AST::NamedType::codeLocation const):
(WebCore::WHLSL::AST::NamedType::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:

(WebCore::WHLSL::AST::NativeTypeDeclaration::NativeTypeDeclaration):

  • Modules/webgpu/WHLSL/AST/WHLSLNullLiteral.h:

(WebCore::WHLSL::AST::NullLiteral::NullLiteral):
(WebCore::WHLSL::AST::NullLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLNumThreadsFunctionAttribute.h:

(WebCore::WHLSL::AST::NumThreadsFunctionAttribute::NumThreadsFunctionAttribute):

  • Modules/webgpu/WHLSL/AST/WHLSLPointerType.h:

(WebCore::WHLSL::AST::PointerType::PointerType):

  • Modules/webgpu/WHLSL/AST/WHLSLPropertyAccessExpression.h:

(WebCore::WHLSL::AST::PropertyAccessExpression::PropertyAccessExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h:

(WebCore::WHLSL::AST::ReadModifyWriteExpression::create):
(WebCore::WHLSL::AST::ReadModifyWriteExpression::ReadModifyWriteExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLReferenceType.h:

(WebCore::WHLSL::AST::ReferenceType::ReferenceType):

  • Modules/webgpu/WHLSL/AST/WHLSLResourceSemantic.h:

(WebCore::WHLSL::AST::ResourceSemantic::ResourceSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLReturn.h:

(WebCore::WHLSL::AST::Return::Return):

  • Modules/webgpu/WHLSL/AST/WHLSLSpecializationConstantSemantic.h:

(WebCore::WHLSL::AST::SpecializationConstantSemantic::SpecializationConstantSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLStageInOutSemantic.h:

(WebCore::WHLSL::AST::StageInOutSemantic::StageInOutSemantic):

  • Modules/webgpu/WHLSL/AST/WHLSLStatement.h:

(WebCore::WHLSL::AST::Statement::Statement):
(WebCore::WHLSL::AST::Statement::codeLocation const):
(WebCore::WHLSL::AST::Statement::updateCodeLocation):

  • Modules/webgpu/WHLSL/AST/WHLSLStatementList.h:

(WebCore::WHLSL::AST::StatementList::StatementList):

  • Modules/webgpu/WHLSL/AST/WHLSLStructureDefinition.h:

(WebCore::WHLSL::AST::StructureDefinition::StructureDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLStructureElement.h:

(WebCore::WHLSL::AST::StructureElement::StructureElement):
(WebCore::WHLSL::AST::StructureElement::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLSwitchCase.h:

(WebCore::WHLSL::AST::SwitchCase::SwitchCase):

  • Modules/webgpu/WHLSL/AST/WHLSLSwitchStatement.h:

(WebCore::WHLSL::AST::SwitchStatement::SwitchStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLTernaryExpression.h:

(WebCore::WHLSL::AST::TernaryExpression::TernaryExpression):

  • Modules/webgpu/WHLSL/AST/WHLSLTrap.h:

(WebCore::WHLSL::AST::Trap::Trap):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeDefinition.h:

(WebCore::WHLSL::AST::TypeDefinition::TypeDefinition):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.cpp:

(WebCore::WHLSL::AST::TypeReference::wrap):

  • Modules/webgpu/WHLSL/AST/WHLSLTypeReference.h:

(WebCore::WHLSL::AST::TypeReference::TypeReference):
(WebCore::WHLSL::AST::TypeReference::cloneTypeReference const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.h:

(WebCore::WHLSL::AST::UnnamedType::UnnamedType):
(WebCore::WHLSL::AST::UnnamedType::codeLocation const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteral.h:

(WebCore::WHLSL::AST::UnsignedIntegerLiteral::UnsignedIntegerLiteral):
(WebCore::WHLSL::AST::UnsignedIntegerLiteral::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.cpp:

(WebCore::WHLSL::AST::UnsignedIntegerLiteralType::UnsignedIntegerLiteralType):
(WebCore::WHLSL::AST::UnsignedIntegerLiteralType::clone const):

  • Modules/webgpu/WHLSL/AST/WHLSLUnsignedIntegerLiteralType.h:
  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
  • Modules/webgpu/WHLSL/AST/WHLSLVariableDeclarationsStatement.h:

(WebCore::WHLSL::AST::VariableDeclarationsStatement::VariableDeclarationsStatement):

  • Modules/webgpu/WHLSL/AST/WHLSLVariableReference.h:

(WebCore::WHLSL::AST::VariableReference::VariableReference):
(WebCore::WHLSL::AST::VariableReference::wrap):

  • Modules/webgpu/WHLSL/AST/WHLSLWhileLoop.h:

(WebCore::WHLSL::AST::WhileLoop::WhileLoop):

  • Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.cpp:

(WebCore::WHLSL::AutoInitialize::visit):

  • Modules/webgpu/WHLSL/WHLSLChecker.cpp:

(WebCore::WHLSL::resolveWithOperatorAnderIndexer):
(WebCore::WHLSL::resolveWithOperatorLength):
(WebCore::WHLSL::resolveWithReferenceComparator):
(WebCore::WHLSL::resolveByInstantiation):
(WebCore::WHLSL::resolveFunction):
(WebCore::WHLSL::Checker::visit):
(WebCore::WHLSL::argumentTypeForAndOverload):
(WebCore::WHLSL::Checker::finishVisiting):

  • Modules/webgpu/WHLSL/WHLSLInferTypes.cpp:

(WebCore::WHLSL::matchAndCommit):

  • Modules/webgpu/WHLSL/WHLSLLexer.cpp:

(WebCore::WHLSL::Token::typeName):
(WebCore::WHLSL::Lexer::consumeTokenFromStream):

  • Modules/webgpu/WHLSL/WHLSLLexer.h:

(WebCore::WHLSL::AST::CodeLocation::CodeLocation):
(WebCore::WHLSL::AST::CodeLocation::startOffset const):
(WebCore::WHLSL::AST::CodeLocation::endOffset const):
(WebCore::WHLSL::Token::startOffset const):
(WebCore::WHLSL::Lexer::errorString):
(WebCore::WHLSL::Token::stringView const):

  • Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:

(WebCore::WHLSL::NameResolver::visit):

  • Modules/webgpu/WHLSL/WHLSLParser.cpp:

(WebCore::WHLSL::Parser::parse):
(WebCore::WHLSL::Parser::peek):
(WebCore::WHLSL::Parser::peekFurther):
(WebCore::WHLSL::Types::includes):
(WebCore::WHLSL::Types::appendNameTo):
(WebCore::WHLSL::Types<t>::includes):
(WebCore::WHLSL::Types<t>::appendNameTo):
(WebCore::WHLSL::Parser::peekType):
(WebCore::WHLSL::Parser::tryType):
(WebCore::WHLSL::Parser::tryTypes):
(WebCore::WHLSL::Parser::consumeType):
(WebCore::WHLSL::Parser::consumeTypes):
(WebCore::WHLSL::Parser::consumeIntegralLiteral):
(WebCore::WHLSL::Parser::parseConstantExpression):
(WebCore::WHLSL::Parser::parseTypeArgument):
(WebCore::WHLSL::Parser::parseTypeArguments):
(WebCore::WHLSL::Parser::parseTypeSuffixAbbreviated):
(WebCore::WHLSL::Parser::parseTypeSuffixNonAbbreviated):
(WebCore::WHLSL::Parser::parseType):
(WebCore::WHLSL::Parser::parseTypeDefinition):
(WebCore::WHLSL::Parser::parseBuiltInSemantic):
(WebCore::WHLSL::Parser::parseResourceSemantic):
(WebCore::WHLSL::Parser::parseSpecializationConstantSemantic):
(WebCore::WHLSL::Parser::parseStageInOutSemantic):
(WebCore::WHLSL::Parser::parseSemantic):
(WebCore::WHLSL::Parser::parseQualifiers):
(WebCore::WHLSL::Parser::parseStructureElement):
(WebCore::WHLSL::Parser::parseStructureDefinition):
(WebCore::WHLSL::Parser::parseEnumerationDefinition):
(WebCore::WHLSL::Parser::parseEnumerationMember):
(WebCore::WHLSL::Parser::parseNativeTypeDeclaration):
(WebCore::WHLSL::Parser::parseNumThreadsFunctionAttribute):
(WebCore::WHLSL::Parser::parseAttributeBlock):
(WebCore::WHLSL::Parser::parseParameter):
(WebCore::WHLSL::Parser::parseParameters):
(WebCore::WHLSL::Parser::parseComputeFunctionDeclaration):
(WebCore::WHLSL::Parser::parseVertexOrFragmentFunctionDeclaration):
(WebCore::WHLSL::Parser::parseRegularFunctionDeclaration):
(WebCore::WHLSL::Parser::parseOperatorFunctionDeclaration):
(WebCore::WHLSL::Parser::parseFunctionDeclaration):
(WebCore::WHLSL::Parser::parseBlock):
(WebCore::WHLSL::Parser::parseBlockBody):
(WebCore::WHLSL::Parser::parseIfStatement):
(WebCore::WHLSL::Parser::parseSwitchStatement):
(WebCore::WHLSL::Parser::parseSwitchCase):
(WebCore::WHLSL::Parser::parseForLoop):
(WebCore::WHLSL::Parser::parseWhileLoop):
(WebCore::WHLSL::Parser::parseDoWhileLoop):
(WebCore::WHLSL::Parser::parseVariableDeclaration):
(WebCore::WHLSL::Parser::parseVariableDeclarations):
(WebCore::WHLSL::Parser::parseStatement):
(WebCore::WHLSL::Parser::parseEffectfulExpression):
(WebCore::WHLSL::Parser::parseEffectfulAssignment):
(WebCore::WHLSL::Parser::parseLimitedSuffixOperator):
(WebCore::WHLSL::Parser::parseSuffixOperator):
(WebCore::WHLSL::Parser::parseExpression):
(WebCore::WHLSL::Parser::completeTernaryConditional):
(WebCore::WHLSL::Parser::completeAssignment):
(WebCore::WHLSL::Parser::parsePossibleTernaryConditional):
(WebCore::WHLSL::Parser::completePossibleLogicalBinaryOperation):
(WebCore::WHLSL::Parser::completePossibleRelationalBinaryOperation):
(WebCore::WHLSL::Parser::completePossibleShift):
(WebCore::WHLSL::Parser::completePossibleAdd):
(WebCore::WHLSL::Parser::completePossibleMultiply):
(WebCore::WHLSL::Parser::parsePossiblePrefix):
(WebCore::WHLSL::Parser::parsePossibleSuffix):
(WebCore::WHLSL::Parser::parseCallExpression):
(WebCore::WHLSL::Parser::parseTerm):

  • Modules/webgpu/WHLSL/WHLSLParser.h:
  • Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:

(WebCore::WHLSL::anonymousToken):
(WebCore::WHLSL::PreserveLifetimes::PreserveLifetimes):
(WebCore::WHLSL::PreserveLifetimes::assignVariableIntoStruct):
(WebCore::WHLSL::preserveVariableLifetimes):

  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:

(WebCore::WHLSL::PropertyResolver::visit):
(WebCore::WHLSL::wrapAnderCallArgument):
(WebCore::WHLSL::setterCall):
(WebCore::WHLSL::getterCall):
(WebCore::WHLSL::modify):
(WebCore::WHLSL::PropertyResolver::simplifyRightValue):
(WebCore::WHLSL::LeftValueSimplifier::finishVisiting):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeArrayOperatorLength.cpp:

(WebCore::WHLSL::synthesizeArrayOperatorLength):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp:

(WebCore::WHLSL::synthesizeConstructors):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.cpp:

(WebCore::WHLSL::synthesizeEnumerationFunctions):

  • Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.cpp:

(WebCore::WHLSL::synthesizeStructureAccessors):

11:43 AM Changeset in webkit [247315] by commit-queue@webkit.org
  • 15 edits in trunk/Source

Hook up WebGL's back buffer in ANGLE backend on macOS
https://bugs.webkit.org/show_bug.cgi?id=198982

Patch by Kenneth Russell <kbr@chromium.org> on 2019-07-10
Reviewed by Alex Christensen.

Source/ThirdParty/ANGLE:

Add source files needed to implement and call ANGLE extensions, and
export headers necessary for those extensions. Update the script which
adjusts include paths to handle the new headers.

Cherry-pick fix for ANGLE bug crbug.com/angleproject/3669 to support
antialias:true for ANGLE-backed WebGL contexts.

  • ANGLE.xcodeproj/project.pbxproj:
  • adjust-angle-include-paths.sh:
  • src/libANGLE/FramebufferAttachment.cpp:

(gl::FramebufferAttachment::getTextureImageIndex const): Deleted.

  • src/libANGLE/FramebufferAttachment.h:

(gl::FramebufferAttachment::getTextureImageIndex const):

  • src/libANGLE/validationES2.cpp:

(gl::ValidateBlitFramebufferANGLE):

Source/WebCore:

Fix a few places which were accidentally calling desktop OpenGL rather
than ANGLE. Fix some calls which were using ANGLE's OpenGL ES 3.0
entry points rather than the OpenGL ES 2.0 extension APIs, causing
them to generate errors in WebGL 1.0's backend. Change
Extensions3DANGLE to use ANGLE's requestable extension mechanism.

Fix framebuffer setup when using ANGLE for WebGL 1.0 contexts, for
both antialias:true and false.

Remove ANGLEWebKitBridge in ANGLE backend. It interfered with the
correct operation of ANGLE's internal shader compiler, and was
unnecessary given the use of ANGLE. Remove all manual shader name
hashing and mapping in ANGLE backend.

Tested with parts of the WebGL conformance suite and the San
Angeles demo, which now runs properly with WebKit's ANGLE backend
for WebGL.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::getProgramParameter):
(WebCore::WebGLRenderingContextBase::getUniformLocation):
(WebCore::WebGLRenderingContextBase::linkProgramWithoutInvalidatingAttribLocations):

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/angle/Extensions3DANGLE.cpp:

(WebCore::Extensions3DANGLE::Extensions3DANGLE):
(WebCore::Extensions3DANGLE::supports):
(WebCore::Extensions3DANGLE::ensureEnabled):
(WebCore::Extensions3DANGLE::isEnabled):
(WebCore::Extensions3DANGLE::getTranslatedShaderSourceANGLE):
(WebCore::Extensions3DANGLE::initializeAvailableExtensions):
(WebCore::Extensions3DANGLE::blitFramebuffer):
(WebCore::Extensions3DANGLE::renderbufferStorageMultisample):
(WebCore::Extensions3DANGLE::createVertexArrayOES):
(WebCore::Extensions3DANGLE::deleteVertexArrayOES):
(WebCore::Extensions3DANGLE::isVertexArrayOES):
(WebCore::Extensions3DANGLE::bindVertexArrayOES):
(WebCore::Extensions3DANGLE::supportsExtension):
(WebCore::Extensions3DANGLE::drawBuffersEXT):
(WebCore::Extensions3DANGLE::drawArraysInstanced):
(WebCore::Extensions3DANGLE::drawElementsInstanced):
(WebCore::Extensions3DANGLE::vertexAttribDivisor):

  • platform/graphics/angle/Extensions3DANGLE.h:
  • platform/graphics/angle/GraphicsContext3DANGLE.cpp:

(WebCore::GraphicsContext3D::validateAttributes):
(WebCore::GraphicsContext3D::reshapeFBOs):
(WebCore::GraphicsContext3D::attachDepthAndStencilBufferIfNeeded):
(WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary):
(WebCore::GraphicsContext3D::validateDepthStencil):
(WebCore::GraphicsContext3D::prepareTexture):
(WebCore::GraphicsContext3D::attachShader):
(WebCore::GraphicsContext3D::bindAttribLocation):
(WebCore::GraphicsContext3D::compileShader):
(WebCore::GraphicsContext3D::compileShaderDirect):
(WebCore::GraphicsContext3D::detachShader):
(WebCore::GraphicsContext3D::getActiveAttribImpl):
(WebCore::GraphicsContext3D::getActiveAttrib):
(WebCore::GraphicsContext3D::getActiveUniformImpl):
(WebCore::GraphicsContext3D::getActiveUniform):
(WebCore::GraphicsContext3D::getAttribLocation):
(WebCore::GraphicsContext3D::getAttribLocationDirect):
(WebCore::GraphicsContext3D::moveErrorsToSyntheticErrorList):
(WebCore::GraphicsContext3D::linkProgram):
(WebCore::GraphicsContext3D::shaderSource):
(WebCore::GraphicsContext3D::getUnmangledInfoLog):
(WebCore::GraphicsContext3D::getShaderiv):
(WebCore::GraphicsContext3D::getShaderInfoLog):
(WebCore::GraphicsContext3D::getUniformLocation):
(WebCore::GraphicsContext3D::createBuffer):
(WebCore::GraphicsContext3D::createFramebuffer):
(WebCore::GraphicsContext3D::createProgram):
(WebCore::GraphicsContext3D::createRenderbuffer):
(WebCore::GraphicsContext3D::createShader):
(WebCore::GraphicsContext3D::createTexture):
(WebCore::GraphicsContext3D::deleteBuffer):
(WebCore::GraphicsContext3D::deleteFramebuffer):
(WebCore::GraphicsContext3D::deleteProgram):
(WebCore::GraphicsContext3D::deleteRenderbuffer):
(WebCore::GraphicsContext3D::deleteShader):
(WebCore::GraphicsContext3D::deleteTexture):
(WebCore::GraphicsContext3D::synthesizeGLError):
(): Deleted.
(WebCore::setCurrentNameHashMapForShader): Deleted.
(WebCore::nameHashForShader): Deleted.
(WebCore::GraphicsContext3D::checkVaryingsPacking const): Deleted.
(WebCore::GraphicsContext3D::precisionsMatch const): Deleted.
(WebCore::generateHashedName): Deleted.
(WebCore::GraphicsContext3D::mappedSymbolInShaderSourceMap): Deleted.
(WebCore::GraphicsContext3D::mappedSymbolName): Deleted.
(WebCore::GraphicsContext3D::originalSymbolInShaderSourceMap): Deleted.
(WebCore::GraphicsContext3D::originalSymbolName): Deleted.
(WebCore::GraphicsContext3D::getNonBuiltInActiveSymbolCount): Deleted.
(WebCore::GraphicsContext3D::getShaderSource): Deleted.

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(WebCore::GraphicsContext3D::makeContextCurrent):
(WebCore::GraphicsContext3D::checkGPUStatus):
(WebCore::GraphicsContext3D::allocateIOSurfaceBackingStore):
(WebCore::GraphicsContext3D::updateFramebufferTextureBackingStoreFromLayer):

  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer initWithGraphicsContext3D:]):
(-[WebGLLayer copyImageSnapshotWithColorSpace:]):
(-[WebGLLayer display]):
(-[WebGLLayer setEGLDisplay:andConfig:]):
(-[WebGLLayer dealloc]):
(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]):
(-[WebGLLayer bindFramebufferToNextAvailableSurface]):

11:17 AM Changeset in webkit [247314] by youenn@apple.com
  • 3 edits
    5 adds in trunk

Disable speculative loading if cache is not to be used for the load
https://bugs.webkit.org/show_bug.cgi?id=199644

Reviewed by Chris Dumez.

Source/WebKit:

When the page is reloaded, loads are instructed to not use the cache.
It is therefore unneeded to do speculative revalidation.
Allow speculative revalidation if the cache policy is either the default HTTP policy or
if policy is to refresh all cache data.
Covered by added test.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::cachePolicyValidForSpeculativeRevalidation):
(WebKit::NetworkCache::canRequestUseSpeculativeRevalidation):

LayoutTests:

  • http/wpt/fetch/disable-speculative-for-reload-expected.txt: Added.
  • http/wpt/fetch/disable-speculative-for-reload.html: Added.
  • http/wpt/fetch/resources/iframe-with-image.py: Added.

(main):

  • http/wpt/fetch/resources/image-load-count.py: Added.

(main):

  • http/wpt/fetch/resources/image-load.py: Added.

(main):

11:09 AM Changeset in webkit [247313] by youenn@apple.com
  • 3 edits
    2 adds in trunk

openDatabase property should not be enumerable on DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=199672
<rdar://problem/52809000>

Reviewed by Chris Dumez.

Source/WebCore:

Test: storage/websql/openDatabase-deprecation.html

  • Modules/webdatabase/DOMWindowWebDatabase.idl:

LayoutTests:

  • storage/websql/openDatabase-deprecation-expected.txt: Added.
  • storage/websql/openDatabase-deprecation.html: Added.
11:09 AM Changeset in webkit [247312] by Alan Coon
  • 3 edits in tags/Safari-608.1.35/Source/WebKit

Cherry-pick r247308. rdar://problem/52390453

Fix build after Foundation changes UIEdgeInsets definition
https://bugs.webkit.org/show_bug.cgi?id=199660
<rdar://problem/52390453>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-10
Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/WKWebViewContentProvider.h:

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

11:06 AM Changeset in webkit [247311] by Alan Coon
  • 1 copy in tags/Safari-608.1.35

Tag Safari-608.1.35.

11:00 AM Changeset in webkit [247310] by Ryan Haddad
  • 2 edits in trunk/Tools

[MacOS] Filter VPA info logged to stdout
https://bugs.webkit.org/show_bug.cgi?id=199673

Reviewed by Eric Carlson.

  • Scripts/webkitpy/port/mac.py:

(MacPort.logging_patterns_to_strip):

10:34 AM Changeset in webkit [247309] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Fix unsafe usage of makeWeakPtr() in CMTimebaseEffectiveRateChangedCallback()
https://bugs.webkit.org/show_bug.cgi?id=199656

Reviewed by Eric Carlson.

CMTimebaseEffectiveRateChangedCallback() is getting called on a background thread and would call
makeWeakPtr() on the MediaPlayerPrivateMediaSourceAVFObjC object, which is not safe because
MediaPlayerPrivateMediaSourceAVFObjC is a main thread object.

To address the issue, move the logic for listening to effective rate changes to its own
Listener class which is ThreadSafeRefCounted. Instead of using makeWeakPtr() on the background
thread, we now merely ref the thread-safe listener.

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

(WebCore::EffectiveRateChangedListener::create):
(WebCore::EffectiveRateChangedListener::effectiveRateChanged):
(WebCore::CMTimebaseEffectiveRateChangedCallback):
(WebCore::EffectiveRateChangedListener::stop):
(WebCore::EffectiveRateChangedListener::EffectiveRateChangedListener):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC):

10:17 AM Changeset in webkit [247308] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Fix build after Foundation changes UIEdgeInsets definition
https://bugs.webkit.org/show_bug.cgi?id=199660
<rdar://problem/52390453>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-10
Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/WKWebViewContentProvider.h:
10:09 AM Changeset in webkit [247307] by Ryan Haddad
  • 7 edits in trunk

Unreviewed, rolling out r247286.

Caused TestWTF.WTF.StringOperators to fail on debug bots

Reverted changeset:

"Add StringBuilder member function which allows makeString()
style variadic argument construction"
https://bugs.webkit.org/show_bug.cgi?id=198997
https://trac.webkit.org/changeset/247286

10:03 AM Changeset in webkit [247306] by Antti Koivisto
  • 16 edits in trunk/Source

Remove TouchActionData
https://bugs.webkit.org/show_bug.cgi?id=199668

Reviewed by Simon Fraser.

Source/WebCore:

TouchActionData structure has been superseded by touch-action regions in EventRegion and is unused.
Remove it and the supporting code.

No functional changes.

  • dom/Document.cpp:

(WebCore::Document::nodeWillBeRemoved):
(WebCore::Document::updateTouchActionElements): Deleted.

  • dom/Document.h:

(WebCore::Document::mayHaveElementsWithNonAutoTouchAction const):
(WebCore::Document::setMayHaveElementsWithNonAutoTouchAction):

Replace touchActionElements set with a bit that covers the only remaining clients (optimizations).
Note that touchActionElements was not deleted when emptied, it had the same "may have" behavior (which
is currently needed).

(WebCore::Document::touchActionElements const): Deleted.

  • dom/Element.cpp:

(WebCore::Element::computedTouchActions const): Deleted.

  • dom/Element.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame const):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::touchActionDataAtPoint const): Deleted.

  • page/scrolling/ScrollingTree.h:
  • platform/EventTrackingRegions.cpp:

(WebCore::operator==):

  • platform/EventTrackingRegions.h:

(): Deleted.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<EventTrackingRegions>::encode):
(IPC::ArgumentCoder<EventTrackingRegions>::decode):
(IPC::ArgumentCoder<TouchActionData>::encode): Deleted.
(IPC::ArgumentCoder<TouchActionData>::decode): Deleted.

9:10 AM Changeset in webkit [247305] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Explicitly use perl or python while invoking scripts
https://bugs.webkit.org/show_bug.cgi?id=199669

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py: Explicitly added perl or python while invoking scripts.
  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests accordingly.
9:09 AM Changeset in webkit [247304] by Alan Coon
  • 2 edits in branches/safari-608.1.34.1-branch/Source/WebCore

Cherry-pick r247266. rdar://problem/49884391

Null check HistoryItems given to loadDifferentDocumentItem
https://bugs.webkit.org/show_bug.cgi?id=199596
<rdar://problem/49884391>

Reviewed by Ryosuke Niwa.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad): Under some rare and mysterious conditions we can have a null provisionalItem when loading from the cache.

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

9:09 AM Changeset in webkit [247303] by Alan Coon
  • 2 edits in branches/safari-608.1.34.1-branch/Source/WebCore

Cherry-pick r247231. rdar://problem/52640967

Prevent null dereferencing in SubresourceLoader::init's lambda
https://bugs.webkit.org/show_bug.cgi?id=199580

Reviewed by Ryosuke Niwa.

Crash logs indicate that sometimes m_documentLoader is null.
This is similar to https://bugs.webkit.org/show_bug.cgi?id=187360

  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::init):

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

9:06 AM Changeset in webkit [247302] by Alan Coon
  • 7 edits in branches/safari-608.1.34.1-branch/Source

Versioning.

9:06 AM Changeset in webkit [247301] by guijemont@igalia.com
  • 2 edits in trunk/Tools

Run tests on mips EWS
https://bugs.webkit.org/show_bug.cgi?id=196854

Reviewed by Carlos Garcia Campos.

  • Scripts/webkitpy/common/config/ews.json:
9:03 AM Changeset in webkit [247300] by Alan Coon
  • 1 copy in branches/safari-608.1.34.1-branch

New branch.

8:53 AM Changeset in webkit [247299] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant InlineFormattingContext::LineLayout members.
https://bugs.webkit.org/show_bug.cgi?id=199654
<rdar://problem/52869206>

Reviewed by Antti Koivisto.

Some of the members are actually only needed in selected functions.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layout const):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthConstraints const):

  • layout/inlineformatting/InlineFormattingContext.h:

(WebCore::Layout::InlineFormattingContext::LineLayout::layoutState const):

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::InlineFormattingContext::LineLayout::LineLayout):
(WebCore::Layout::InlineFormattingContext::LineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::LineLayout::computedIntrinsicWidth const):
(WebCore::Layout::InlineFormattingContext::LineLayout::createDisplayRuns const):
(WebCore::Layout::InlineFormattingContext::LineLayout::alignRuns const):

  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::inlineItems):
(WebCore::Layout::InlineFormattingState::inlineRuns):
(WebCore::Layout::InlineFormattingState::lineBoxes):

7:53 AM Changeset in webkit [247298] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Protect against null samples and samples with null buffers
https://bugs.webkit.org/show_bug.cgi?id=199619

Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder): Assert to enforce non-null samples.
(WebCore::GstVideoFrameHolder::updateTexture): Protect against null m_buffer and improperly mapped video frame.

4:59 AM Changeset in webkit [247297] by clopez@igalia.com
  • 23 edits
    1 copy
    72 adds in trunk

[GTK][WPE] Enable support for CSS_COMPOSITING
https://bugs.webkit.org/show_bug.cgi?id=199513

Reviewed by Michael Catanzaro.

.:

This feature is needed to support the CSS properties "mix-blend-mode" and "isolation".
Enable it for all ports except for AppleWin (doesn't build).

It has been tested that it builds on the EWS bots of all the ports enabled (for those that have an EWS).
Also, for the GTK and WPE ports it also has been tested that the feature works fine on most of the cases and that doesn't cause regressions.

  • Source/cmake/OptionsFTW.cmake: Enable the feature.
  • Source/cmake/OptionsMac.cmake: Use the new default.
  • Source/cmake/OptionsWin.cmake: Enable for WinCairo only.
  • Source/cmake/WebKitFeatures.cmake: Enable it Globally

LayoutTests:

Rebaseline the tests that pass after enabling CSS_COMPOSITING.
The feature works is most of the cases, but there are still some tests/cases not working.

There are also some new failures marked related to SVG blending (css3/blending/svg*), but those were already failing before.
So its unrelated to this change.

  • platform/gtk/TestExpectations:
  • platform/gtk/css3/blending/background-blend-mode-default-value-expected.png:
  • platform/gtk/css3/blending/background-blend-mode-different-image-formats-expected.png:
  • platform/gtk/css3/blending/background-blend-mode-image-color-expected.png:
  • platform/gtk/css3/blending/background-blend-mode-image-image-expected.png:
  • platform/gtk/css3/blending/background-blend-mode-single-layer-no-blending-expected.png:
  • platform/gtk/css3/blending/blend-mode-background-expected.png:
  • platform/gtk/css3/blending/blend-mode-background-expected.txt:
  • platform/gtk/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-overflow-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-overflow-expected.txt: Added.
  • platform/gtk/css3/blending/blend-mode-simple-expected.png: Added.
  • platform/gtk/css3/blending/blend-mode-simple-expected.txt: Added.
  • platform/gtk/css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-layer-blend-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-blend-expected.txt:
  • platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.png: Added.
  • platform/gtk/css3/blending/svg-blend-layer-clip-path-expected.txt: Added.
  • platform/gtk/css3/blending/svg-blend-layer-filter-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-filter-expected.txt:
  • platform/gtk/css3/blending/svg-blend-layer-mask-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-mask-expected.txt:
  • platform/gtk/css3/blending/svg-blend-layer-opacity-expected.png:
  • platform/gtk/css3/blending/svg-blend-layer-opacity-expected.txt:
  • platform/wpe/TestExpectations:
  • platform/wpe/css3/blending/background-blend-mode-default-value-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-default-value-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-different-image-formats-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-different-image-formats-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-gif-color-2-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-gif-color-2-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-gif-color-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-gif-color-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-image-color-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-image-color-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-image-image-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-image-image-expected.txt: Added.
  • platform/wpe/css3/blending/background-blend-mode-single-layer-no-blending-expected.png: Added.
  • platform/wpe/css3/blending/background-blend-mode-single-layer-no-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-background-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-background-expected.txt: Copied from LayoutTests/platform/gtk/css3/blending/blend-mode-background-expected.txt.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-append-non-stacking-context-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-append-stacking-context-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-remove-non-stacking-context-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-remove-stacking-context-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-remove-stacking-context-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-blending-no-isolation-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-off-stacking-context-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-blending-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-isolation-flags-turn-on-stacking-context-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-overflow-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-overflow-expected.txt: Added.
  • platform/wpe/css3/blending/blend-mode-simple-expected.png: Added.
  • platform/wpe/css3/blending/blend-mode-simple-expected.txt: Added.
  • platform/wpe/css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt: Added.
  • platform/wpe/css3/blending/svg-blend-layer-blend-expected.png: Added.
  • platform/wpe/css3/blending/svg-blend-layer-blend-expected.txt: Added.
  • platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.png: Added.
  • platform/wpe/css3/blending/svg-blend-layer-clip-path-expected.txt: Added.
  • platform/wpe/css3/blending/svg-blend-layer-filter-expected.png: Added.
  • platform/wpe/css3/blending/svg-blend-layer-filter-expected.txt: Added.
  • platform/wpe/css3/blending/svg-blend-layer-mask-expected.png: Added.
  • platform/wpe/css3/blending/svg-blend-layer-mask-expected.txt: Added.
  • platform/wpe/css3/blending/svg-blend-layer-opacity-expected.png: Added.
  • platform/wpe/css3/blending/svg-blend-layer-opacity-expected.txt: Added.
1:24 AM Changeset in webkit [247296] by Tadeu Zagallo
  • 3 edits
    2 adds in trunk

Optimize join of large empty arrays
https://bugs.webkit.org/show_bug.cgi?id=199636

Reviewed by Mark Lam.

JSTests:

  • microbenchmarks/large-empty-array-join.js: Added.
  • microbenchmarks/large-empty-array-join-resolve-rope.js: Added.

Source/JavaScriptCore:

Replicate the behavior of str.repeat(count) when performing new Array(count + 1).join(str).
I added two new microbenchmarks:

  • large-empty-array-join, which does not use the result of the join and runs ~44x faster and uses ~18x less memory.
  • large-empty-array-join-resolve-rope, which uses the result of the join and runs 2x faster.

baseline diff

large-empty-array-join 2713.9698+-72.7621 61.2335+-10.4836 definitely 44.3217x faster
large-empty-array-join-resolve-string 26.5517+-0.3995 12.9309+-0.5516 definitely 2.0533x faster

large-empty-array-join memory usage with baseline (dirty):

733012 kB current_mem
756824 kB lifetime_peak

large-empty-array-join memory usage with diff (dirty):

41904 kB current_mem
41972 kB lifetime_peak

Additionally, I ran JetStream2, sunspider and v8-spider and all were neutral.

  • runtime/ArrayPrototype.cpp:

(JSC::fastJoin):

Jul 9, 2019:

11:33 PM Changeset in webkit [247295] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

AX: HTML datalist accessibility is not exposed by WebKit
https://bugs.webkit.org/show_bug.cgi?id=196998
<rdar://problem/49962521>

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

Source/WebCore:

Input fields with datalist are exposed as having a listbox popup.

Test: accessibility/datalist.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::popupValue const):
(WebCore::AccessibilityObject::hasDatalist const):

  • accessibility/AccessibilityObject.h:

LayoutTests:

  • accessibility/datalist-expected.txt: Added.
  • accessibility/datalist.html: Added.
11:02 PM Changeset in webkit [247294] by Michael Catanzaro
  • 8 edits in trunk

[WPE][GTK] GUniqueOutPtr::release should return a raw pointer
https://bugs.webkit.org/show_bug.cgi?id=199579

Reviewed by Carlos Garcia Campos.

Source/WebKit:

  • NetworkProcess/glib/WebKitCachedResolver.cpp:

(webkitCachedResolverLookupByNameAsync):
(webkitCachedResolverLookupByNameWithFlagsAsync):

  • UIProcess/API/glib/WebKitFaviconDatabase.cpp:

(processPendingIconsForPageURL):
(webkit_favicon_database_get_favicon):

  • UIProcess/API/glib/WebKitUserContentFilterStore.cpp:

(webkit_user_content_filter_store_save_from_file):

Source/WTF:

GUniqueOutPtr::release should release to a raw pointer, rather than a GUniquePtr. If a
GUniquePtr is desired, it's trivial to construct one from the raw pointer, but all existing
callsites under Source/ would rather have a raw pointer. Currently they have to call
release().release() to get the raw pointer, which is annoying.

  • wtf/glib/GUniquePtr.h:

(WTF::GUniqueOutPtr::release):

Tools:

  • TestWebKitAPI/Tests/WTF/glib/GUniquePtr.cpp:

(TestWebKitAPI::TEST):

9:39 PM Changeset in webkit [247293] by Justin Fan
  • 54 edits in trunk/Source/WebCore

Replace old, broken WebGPU IDL spec link with the new one in IDL comments.

Rubber-stamped by Myles C. Maxfield.

No test changes or change in behavior.

  • Modules/webgpu/GPUBindGroupLayoutBinding.idl:
  • Modules/webgpu/GPUBindGroupLayoutDescriptor.idl:
  • Modules/webgpu/GPUBlendDescriptor.idl:
  • Modules/webgpu/GPUBufferDescriptor.idl:
  • Modules/webgpu/GPUBufferUsage.idl:
  • Modules/webgpu/GPUCanvasContext.idl:
  • Modules/webgpu/GPUColor.idl:
  • Modules/webgpu/GPUColorStateDescriptor.idl:
  • Modules/webgpu/GPUColorWriteBits.idl:
  • Modules/webgpu/GPUCompareFunction.idl:
  • Modules/webgpu/GPUDepthStencilStateDescriptor.idl:
  • Modules/webgpu/GPUExtent3D.idl:
  • Modules/webgpu/GPULoadOp.idl:
  • Modules/webgpu/GPUOrigin3D.idl:
  • Modules/webgpu/GPURequestAdapterOptions.idl:
  • Modules/webgpu/GPUSamplerDescriptor.idl:
  • Modules/webgpu/GPUShaderStageBit.idl:
  • Modules/webgpu/GPUStoreOp.idl:
  • Modules/webgpu/GPUTextureDescriptor.idl:
  • Modules/webgpu/GPUTextureUsage.idl:
  • Modules/webgpu/GPUVertexAttributeDescriptor.idl:
  • Modules/webgpu/GPUVertexBufferDescriptor.idl:
  • Modules/webgpu/GPUVertexInputDescriptor.idl:
  • Modules/webgpu/WebGPU.idl:
  • Modules/webgpu/WebGPUAdapter.idl:
  • Modules/webgpu/WebGPUBindGroup.idl:
  • Modules/webgpu/WebGPUBindGroupBinding.idl:
  • Modules/webgpu/WebGPUBindGroupDescriptor.idl:
  • Modules/webgpu/WebGPUBindGroupLayout.idl:
  • Modules/webgpu/WebGPUBuffer.idl:
  • Modules/webgpu/WebGPUBufferBinding.idl:
  • Modules/webgpu/WebGPUCommandBuffer.idl:
  • Modules/webgpu/WebGPUCommandEncoder.idl:
  • Modules/webgpu/WebGPUComputePassEncoder.idl:
  • Modules/webgpu/WebGPUComputePipeline.idl:
  • Modules/webgpu/WebGPUComputePipelineDescriptor.idl:
  • Modules/webgpu/WebGPUDevice.idl:
  • Modules/webgpu/WebGPUPipelineDescriptorBase.idl:
  • Modules/webgpu/WebGPUPipelineLayout.idl:
  • Modules/webgpu/WebGPUPipelineLayoutDescriptor.idl:
  • Modules/webgpu/WebGPUPipelineStageDescriptor.idl:
  • Modules/webgpu/WebGPUProgrammablePassEncoder.idl:
  • Modules/webgpu/WebGPUQueue.idl:
  • Modules/webgpu/WebGPURenderPassDescriptor.idl:
  • Modules/webgpu/WebGPURenderPassEncoder.idl:
  • Modules/webgpu/WebGPURenderPipeline.idl:
  • Modules/webgpu/WebGPURenderPipelineDescriptor.idl:
  • Modules/webgpu/WebGPUSampler.idl:
  • Modules/webgpu/WebGPUShaderModule.idl:
  • Modules/webgpu/WebGPUShaderModuleDescriptor.idl:
  • Modules/webgpu/WebGPUSwapChain.idl:
  • Modules/webgpu/WebGPUTexture.idl:
  • Modules/webgpu/WebGPUTextureView.idl:
9:19 PM Changeset in webkit [247292] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Stop using GenericTaskQueue from multiple threads
https://bugs.webkit.org/show_bug.cgi?id=199652

Reviewed by Geoffrey Garen.

WebCoreAVFLoaderDelegate was calling GenericTaskQueue::enqueueTask() from a background thread,
which is not safe because the implementation of enqueueTask() calls makeWeakPtr() on the
GenericTaskQueue (a main thread object).

Update WebCoreAVFLoaderDelegate to use callOnMainThread() instead.

  • platform/GenericTaskQueue.h:

Stop last template parameter which was used exclusively by WebCoreAVFLoaderDelegate to try and
make GenericTaskQueue thread-safe.

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

(-[WebCoreAVFMovieObserver metadataLoaded]):
(-[WebCoreAVFMovieObserver didEnd:]):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):

6:52 PM Changeset in webkit [247291] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Fixed elements appear in the middle of full page screenshots taken when scrolled
https://bugs.webkit.org/show_bug.cgi?id=199649
<rdar://problem/52476226>

Reviewed by Simon Fraser.

Source/WebCore:

  • page/FrameView.h:

Expose a getter for the layout viewport override rect.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::computePagesForPrintingAndDrawToPDF):
Temporarily expand the layout viewport to the size of the snapshotting page,
so that fixed elements sit against the bounds of the page instead of
wherever you're currently scrolled to.

6:31 PM Changeset in webkit [247290] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

[iOS WK2] Use Optional<> for two data members of WKWebView
https://bugs.webkit.org/show_bug.cgi?id=199637

Reviewed by Tim Horton.

Use Optional<CGSize> to replace _overridesViewLayoutSize/_viewLayoutSizeOverride
and _overridesMaximumUnobscuredSize/_maximumUnobscuredSizeOverride.

No behavior change.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView activeViewLayoutSize:]):
(-[WKWebView _frameOrBoundsChanged]):
(activeMaximumUnobscuredSize):
(-[WKWebView _minimumLayoutSizeOverride]):
(-[WKWebView _setViewLayoutSizeOverride:]):
(-[WKWebView _maximumUnobscuredSizeOverride]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _clearOverrideLayoutParameters]):

5:23 PM Changeset in webkit [247289] by sbarati@apple.com
  • 24 edits
    16 adds in trunk/LayoutTests

[WHLSL] Import another round of JS spec tests
https://bugs.webkit.org/show_bug.cgi?id=199647

Reviewed by Myles C. Maxfield.

This patch also removes the unneded <!-- webkit-test-runner [ experimental:WebGPUEnabled=true ] -->
comments in various tests.

  • webgpu/bind-groups.html:
  • webgpu/blit-commands.html:
  • webgpu/map-read-buffers.html:
  • webgpu/map-write-buffers.html:
  • webgpu/msl-harness-test.html:
  • webgpu/pipeline-layouts.html:
  • webgpu/queue-creation.html:
  • webgpu/render-command-encoding.html:
  • webgpu/shader-modules.html:
  • webgpu/textures-textureviews.html:
  • webgpu/whlsl-array-spec-tests.html:
  • webgpu/whlsl-bad-ander-expected.txt: Added.
  • webgpu/whlsl-bad-ander.html: Added.
  • webgpu/whlsl-bad-literals-expected.txt: Added.
  • webgpu/whlsl-bad-literals.html: Added.
  • webgpu/whlsl-bitwise-bool-ops.html:
  • webgpu/whlsl-enum-spec-tests.html:
  • webgpu/whlsl-equality.html:
  • webgpu/whlsl-float-math-expected.txt: Added.
  • webgpu/whlsl-float-math.html: Added.
  • webgpu/whlsl-index-getter-setter-expected.txt: Added.
  • webgpu/whlsl-index-getter-setter.html: Added.
  • webgpu/whlsl-int-bit-math-expected.txt: Added.
  • webgpu/whlsl-int-bit-math.html: Added.
  • webgpu/whlsl-int-literal-compare.html:
  • webgpu/whlsl-make-array-ref-spec-tests-expected.txt: Added.
  • webgpu/whlsl-make-array-ref-spec-tests.html: Added.
  • webgpu/whlsl-matrices-spec-tests.html:
  • webgpu/whlsl-pointer-spec-tests-expected.txt: Added.
  • webgpu/whlsl-pointer-spec-tests.html: Added.
  • webgpu/whlsl-postfix-prefix-expected.txt: Added.
  • webgpu/whlsl-postfix-prefix.html: Added.
  • webgpu/whlsl-return-spec-tests.html:
  • webgpu/whlsl-simple-getter-setter.html:
  • webgpu/whlsl-simple-tests.html:
  • webgpu/whlsl-simple-while-loop.html:
  • webgpu/whlsl-test-harness-test.html:
  • webgpu/whlsl-type-mismatch.html:
  • webgpu/whlsl-uint-bitwise.html:
5:13 PM Changeset in webkit [247288] by Chris Dumez
  • 6 edits in trunk

Fix integer type encoding / decoding in WKRemoteObjectCoder
https://bugs.webkit.org/show_bug.cgi?id=199643
<rdar://problem/52732342>

Reviewed by Anders Carlsson.

Source/WebKit:

As per [1], q / Q match to long long / unsigned long long, not long / unsigned long.

[1] https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtTypeEncodings.html#//apple_ref/doc/uid/TP40008048-CH100

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeInvocationArguments):
(decodeInvocationArguments):

Tools:

Update API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.h:
  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn takeUnsignedLongLong:completionHandler:]):
(-[RemoteObjectRegistryPlugIn takeLongLong:completionHandler:]):
(-[RemoteObjectRegistryPlugIn takeUnsignedLong:completionHandler:]):
(-[RemoteObjectRegistryPlugIn takeLong:completionHandler:]):

5:05 PM Changeset in webkit [247287] by Alan Coon
  • 1 copy in tags/Safari-608.1.34.0.2

Tag Safari-608.1.34.0.2.

4:54 PM Changeset in webkit [247286] by weinig@apple.com
  • 7 edits in trunk

Add StringBuilder member function which allows makeString() style variadic argument construction
https://bugs.webkit.org/show_bug.cgi?id=198997

Reviewed by Darin Adler.

Source/WTF:

Adds new StringBuilder::flexibleAppend(...) member function which allows passing one or more
string-adaptable (in the sense that there is StringTypeAdapter specialization for the
type) parameters. This re-ususes the variadic template infrastructure in StringConcatenate.h
that is used for makeString(...) allowing for improvements in one to benefit the other.

The advantage of StringBuilder::flexibleAppend(...) over calling StringBuilder::append(...)
multiple times (beyond the code sharing with makeString(...) is that it can avoid unnecessary
additional re-allocations when the StringBuilder needs to expand it's capacity. It does this
by computing the complete required length for all the passed arguments and then ensuring enough
capacity is available. It also reduces the allocation overhead versus the anti-pattern of
builder.append(makeString(...)).

Ideally, this member function should eventually just be called StringBuilder::append(...), but
the current overload set for StringBuilder::append(...) makes this complicated due to overloads
that take two arguments such as StringBuilder::append(const UChar*, unsigned). Going forward, we
should rename or remove those overloads and move to a standard interface.

  • wtf/posix/FileSystemPOSIX.cpp:

(WTF::FileSystemImpl::pathByAppendingComponents):
Adopt StringBuilder::flexibleAppend, using to combine the append of '/' and component.

  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::appendUninitialized):
(WTF::StringBuilder::appendUninitializedWithoutOverflowCheck):
Extract the part of appendUnitialized that doesn't do the overflow check
into it's own member function to allow callers that have already done the
overflow check to bypass it.

(WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForUChar):
(WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForLChar):
Added to allow template member function flexibleAppendFromAdapters to call
appendUninitializedWithoutOverflowCheck without moving it to the header.

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::flexibleAppendFromAdapters):
(WTF::StringBuilder::flexibleAppend):
Modeled on tryMakeStringFromAdapters in StringConcatenate.h, these
eagerly compute the required length, expand the buffer and then use
the existing string type adaptor accumulation functions used by makeString.

  • wtf/text/StringConcatenate.h:

(WTF::stringTypeAdapterAccumulator):
(WTF::tryMakeStringFromAdapters):
(WTF::makeStringAccumulator): Deleted.
Renames makeStringAccumulator to stringTypeAdapterAccumulator now that it is used
by more than just makeString.

Tools:

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

Add basic test showing that StringBuilder::flexibleAppend can be used to
append one or more string adaptable types.

4:20 PM Changeset in webkit [247285] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening, address TestExpectations linter warning.

the directory doesn't exist anymore.

4:05 PM Changeset in webkit [247284] by sbarati@apple.com
  • 1 edit
    14 adds in trunk/LayoutTests

[WHLSL] Add another group of WHLSL JS reference spec tests
https://bugs.webkit.org/show_bug.cgi?id=199642

Reviewed by Robin Morisset.

  • webgpu/whlsl-array-spec-tests-expected.txt: Added.
  • webgpu/whlsl-array-spec-tests.html: Added.
  • webgpu/whlsl-enum-spec-tests-expected.txt: Added.
  • webgpu/whlsl-enum-spec-tests.html: Added.
  • webgpu/whlsl-equality-expected.txt: Added.
  • webgpu/whlsl-equality.html: Added.
  • webgpu/whlsl-matrices-spec-tests-expected.txt: Added.
  • webgpu/whlsl-matrices-spec-tests.html: Added.
  • webgpu/whlsl-return-spec-tests-expected.txt: Added.
  • webgpu/whlsl-return-spec-tests.html: Added.
  • webgpu/whlsl-simple-getter-setter-expected.txt: Added.
  • webgpu/whlsl-simple-getter-setter.html: Added.
  • webgpu/whlsl-simple-while-loop-expected.txt: Added.
  • webgpu/whlsl-simple-while-loop.html: Added.
3:40 PM Changeset in webkit [247283] by Chris Dumez
  • 5 edits in trunk/Source

Cleanup uses of NetworkProcess::m_sessionByConnection
https://bugs.webkit.org/show_bug.cgi?id=199586

Reviewed by Alex Christensen.

Avoid double HashMap lookups and call add() instead of ensure() when appropriate.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::networkSessionByConnection const):
(WebKit::NetworkProcess::webPageWasAdded):
(WebKit::NetworkProcess::webProcessWasDisconnected):

3:11 PM Changeset in webkit [247282] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build after r247279
https://bugs.webkit.org/show_bug.cgi?id=199640

  • WebCore.xcodeproj/project.pbxproj:
2:49 PM Changeset in webkit [247281] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

WKObject's minimum object alignment needs to be larger
https://bugs.webkit.org/show_bug.cgi?id=199523

Patch by Saagar Jha <saagarjha@apple.com> on 2019-07-09
Reviewed by Alex Christensen.

WKObject's wrapped objects are currently constructed at addresses aligned to 8-byte boundaries, but some
classes have more stringent requirements. By querying std::aligned_storage for the alignment of an object
larger than anything we can construct, we should be able to satisfy alignment for any of WebKit's types.

  • Shared/Cocoa/APIObject.mm: Use std::aligned_storage in conjunction with alignof to determine

minimumObjectAlignment, instead of hardcoding 8.

2:45 PM Changeset in webkit [247280] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Don't strip out spaces for personalized Autocorrections
https://bugs.webkit.org/show_bug.cgi?id=199476
<rdar://problem/50782015>

Reviewed by Dean Jackson.

When inserting 'autocorrections' that are really predictive
text suggestions based on personal data, we would remove the space
before the suggestion, resulting in incorrect input.
To fix, do not remove a space when the autocorrected text and the text it is
replacing do not have any length.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applyAutocorrectionInternal):

2:30 PM Changeset in webkit [247279] by achristensen@apple.com
  • 3 edits
    2 moves in trunk/Source/WebCore

Move AutofillElements.{h,cpp} from editing/ios to editing/cocoa since they're used on macOS
https://bugs.webkit.org/show_bug.cgi?id=199640

Reviewed by Chris Dumez.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/cocoa/AutofillElements.cpp: Copied from Source/WebCore/editing/ios/AutofillElements.cpp.
  • editing/cocoa/AutofillElements.h: Copied from Source/WebCore/editing/ios/AutofillElements.h.
  • editing/ios/AutofillElements.cpp: Removed.
  • editing/ios/AutofillElements.h: Removed.
2:07 PM Changeset in webkit [247278] by Devin Rousso
  • 14 edits in trunk/Source

Web Inspector: Canvas: replace WTF::Vector with std::initializer_list in CallTracer to avoid dynamic allocations
https://bugs.webkit.org/show_bug.cgi?id=199611

Reviewed by Joseph Pecoraro.

Source/WebCore:

The number of arguments for each member function is known at build time, so there's no need
to dynamically allocate a WTF::Vector when capturing the arguments. One downside to using
a std::initializer_list is that we can no longer "flatten" WTF::Variant arguments into
a RecordCanvasActionVariant, but this is acceptable because WTF::Variant supports having
yet another WTF::Variant as one of it's types, which the InspectorCanvas can then figure
out when it finally gets the data. The same applies to nullptr/Optional checks as well.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeSetterBodyDefinition):
(GenerateImplementationFunctionCall):
(GenerateCallTracer):
(GenerateCallTracerParameter): Deleted.

  • bindings/scripts/test/JS/JSTestCallTracer.cpp:
  • bindings/js/CallTracerTypes.h:
  • bindings/js/CallTracer.h:
  • bindings/js/CallTracer.cpp:

(WebCore::CallTracer::recordCanvasAction):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::recordCanvasAction):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::recordCanvasActionImpl):

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

(WebCore::InspectorCanvasAgent::recordCanvasAction):

  • inspector/InspectorCanvas.h:
  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::buildAction):
Drive-by: handle the situation where a parameter is an array of deduplicated strings, which

would otherwise be treated as an array of numbers.

Source/WebInspectorUI:

  • UserInterface/Models/Recording.js:

(WI.Recording.prototype.async swizzle):
Drive-by: handle the situation where a parameter is an array of deduplicated strings, which

would otherwise be treated as an array of numbers.

2:01 PM Changeset in webkit [247277] by Truitt Savell
  • 2 edits in trunk/Source/WebKit

Unreviewed, rolling out r247230.

Caused storage/domstorage/localstorage/private-browsing-
affects-storage.html to crash with an assertion.

Reverted changeset:

"Cleanup uses of NetworkProcess::m_sessionByConnection"
https://bugs.webkit.org/show_bug.cgi?id=199586
https://trac.webkit.org/changeset/247230

1:44 PM Changeset in webkit [247276] by youenn@apple.com
  • 3 edits
    4 adds in trunk

XHR CORS requests logged twice in the server
https://bugs.webkit.org/show_bug.cgi?id=199492
<rdar://problem/52757558>

Reviewed by Chris Dumez.

Source/WebKit:

Disable speculative loading for XHR and fetch.
These speculative requests might have specific headers that are no longer relevant
when reloading the page. This might then confuse servers.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeStoreDecision):
(WebKit::NetworkCache::canRequestUseSpeculativeRevalidation):
(WebKit::NetworkCache::Cache::retrieve):

LayoutTests:

  • http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads-expected.txt: Added.
  • http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads.html: Added.
  • http/wpt/fetch/resources/fetch-xhr-load.py: Added.

(main):

  • http/wpt/fetch/resources/xhr-and-fetch.html: Added.
1:41 PM Changeset in webkit [247275] by Joseph Pecoraro
  • 1 edit
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add another Protocol Version (iOS 13.0)
https://bugs.webkit.org/show_bug.cgi?id=199631
<rdar://problem/47538193>

Reviewed by Devin Rousso.

  • UserInterface/Protocol/Legacy/13.0/InspectorBackendCommands.js: Added.
  • Versions/Inspector-iOS-13.0.json: Added.
1:28 PM Changeset in webkit [247274] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Fix validation of method signature in decodeInvocation()
https://bugs.webkit.org/show_bug.cgi?id=199629
<rdar://problem/52731659>

Reviewed by Dan Bernstein.

The decoder was mistakenly assigning remoteMethodSignature to localMethodSignature
before comparing remoteMethodSignature and localMethodSignature, thus making the
check useless.

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(decodeInvocation):

1:03 PM Changeset in webkit [247273] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Fix non thread-safe use of WeakPtr in DisplayRefreshMonitorMac::displayLinkFired()
https://bugs.webkit.org/show_bug.cgi?id=199626

Reviewed by Ryosuke Niwa.

Fix non thread-safe use of WeakPtr in DisplayRefreshMonitorMac::displayLinkFired().
DisplayRefreshMonitorMac gets constructed / destroyed on the main thread, it is
not thread-safe to call makeWeakPtr() on a DisplayRefreshMonitorMac object like it
was done before.

To address the issue, mark the object as ThreadSafeRefCounted and ref the object
in the lambda instead.

  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::stop):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::unregisterClient):

  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:

(WebCore::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac):
(WebCore::DisplayRefreshMonitorMac::stop):
(WebCore::DisplayRefreshMonitorMac::displayLinkFired):

  • platform/graphics/mac/DisplayRefreshMonitorMac.h:
12:56 PM Changeset in webkit [247272] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Revert conditional WebPageProxy check to grant universal file read sandbox upon correct sandbox creation
https://bugs.webkit.org/show_bug.cgi?id=199622
<rdar://problem/52357508>

Reviewed by Alex Christensen.

On iOS, the sandbox extension to '/' will usually fail, thus the universal file read sandbox is not granted.
This makes WebPageProxy cancel some file:// loads to the application own container.
As a short term fix, go back to previous behavior.
Covered by testing broken app identified in rdar://problem/52357508.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

12:38 PM Changeset in webkit [247271] by commit-queue@webkit.org
  • 3 edits
    3 deletes in trunk/LayoutTests

Remove rel=subresource tests
https://bugs.webkit.org/show_bug.cgi?id=199616

Patch by Rob Buis <rbuis@igalia.com> on 2019-07-09
Reviewed by Ryosuke Niwa.

Remove rel=subresource references by deleting or using rel=prefetch
instead.

  • TestExpectations:
  • fast/dom/HTMLLinkElement/cachedresource-types.html:
  • http/tests/misc/link-rel-prefetch-and-subresource.html: Removed.
  • webarchive/test-link-rel-subresource-beforeload-expected.webarchive: Removed.
  • webarchive/test-link-rel-subresource-beforeload.html: Removed.
12:25 PM Changeset in webkit [247270] by sihui_liu@apple.com
  • 17 edits in trunk

Only allow fetching and removing session credentials from WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=199385
<rdar://problem/52622080>

Reviewed by Alex Christensen.

Source/WebCore:

Fetch and remove only session credentials from NSURLCredentialStorage.

Modified existing API tests: WKWebsiteDataStore.FetchPersistentCredentials

  • platform/network/CredentialStorage.cpp:

(WebCore::CredentialStorage::originsWithCredentials const):
(WebCore::CredentialStorage::originsWithSessionCredentials):
(WebCore::CredentialStorage::removeSessionCredentialsWithOrigins):
(WebCore::CredentialStorage::clearSessionCredentials):
(WebCore::CredentialStorage::clearPermanentCredentialsForProtectionSpace):

  • platform/network/CredentialStorage.h:
  • platform/network/mac/CredentialStorageMac.mm:

(WebCore::CredentialStorage::originsWithSessionCredentials):
(WebCore::CredentialStorage::removeSessionCredentialsWithOrigins):
(WebCore::CredentialStorage::clearSessionCredentials):
(WebCore::CredentialStorage::clearPermanentCredentialsForProtectionSpace):
(WebCore::CredentialStorage::originsWithPersistentCredentials): Deleted.

Source/WebKit:

Stop sending an extra message to network process for fetching or removing persistent credentials.

Also introduce a new SPI for clearing persistent credentials created in test.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::clearPermanentCredentialsForProtectionSpace):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted.
(WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted.
(WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _clearPermanentCredentialsForProtectionSpace:completionHandler:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::clearPermanentCredentialsForProtectionSpace):

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

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::computeWebProcessAccessTypeForDataRemoval):
(WebKit::WebsiteDataStore::removeData):

Tools:

removeDataOfTypes will no longer remove persistent credentials. We should clear persistent credentials using
the new SPI after each test that creates persistent credentials, otherwise the later tests may use credentials
left by previous tests and didReceiveAuthenticationChallenge will not be invoked.

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

12:15 PM Changeset in webkit [247269] by achristensen@apple.com
  • 4 edits in trunk

When parsing an IPv4 address, wait until after deciding it is indeed an IPv4 address before reporting syntax violations
https://bugs.webkit.org/show_bug.cgi?id=199628

Reviewed by Brady Eidson.

Source/WTF:

Otherwise, we sometimes report syntax violations on things that are not IPv4 addresses and don't have syntax violations.
I added a unit test with one such URL that used to cause an assertion.

  • wtf/URLParser.cpp:

(WTF::URLParser::parseIPv4Host):

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::TEST_F):

12:13 PM Changeset in webkit [247268] by achristensen@apple.com
  • 4 edits in trunk

Remove invalid assertion in URLParser::domainToASCII
https://bugs.webkit.org/show_bug.cgi?id=199624

Reviewed by Brady Eidson.

Source/WTF:

When a non-ASCII domain's punycode encoding is longer than 63 characters,
the URL is supposed to fail to parse, according to https://www.unicode.org/reports/tr46/#ToASCII
We and all other browsers do this. When uidna_nameToASCII tries to punycode encode such a domain,
it can return a number larger than 63. In this case, processingDetails.errors is UIDNA_ERROR_LABEL_TOO_LONG
and we fail to parse as desired and uidna_nameToASCII did not write out of bounds, so it was just the assertion
that was wrong. I added some unit tests that would have hit the assertion and verify that we fail at the correct length.

  • wtf/URLParser.cpp:

(WTF::URLParser::domainToASCII):

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::TEST_F):

12:12 PM Changeset in webkit [247267] by achristensen@apple.com
  • 4 edits in trunk

URLParser should reserialize IPv6 addresses that end with a colon
https://bugs.webkit.org/show_bug.cgi?id=199627

Reviewed by Brady Eidson.

Source/WTF:

When an IPv6 address ends in a colon, the colon should be removed which means the
serialized output is different than the input, which the URLParser calls a syntax violation.
This matches the URL specification, and I added a unit test that used to assert.

  • wtf/URLParser.cpp:

(WTF::URLParser::parseIPv6Host):

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::TEST_F):

11:55 AM Changeset in webkit [247266] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Null check HistoryItems given to loadDifferentDocumentItem
https://bugs.webkit.org/show_bug.cgi?id=199596
<rdar://problem/49884391>

Reviewed by Ryosuke Niwa.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):
Under some rare and mysterious conditions we can have a null provisionalItem when loading from the cache.

11:43 AM Changeset in webkit [247265] by graouts@webkit.org
  • 5 edits
    2 adds in trunk

[Pointer Events] Scroll indicators should not show for scrollable content with touch-action: none
https://bugs.webkit.org/show_bug.cgi?id=199618

Reviewed by Simon Fraser.

Source/WebKit:

Even though we correctly didn't scroll when "touch-action: none" was specified on an element, we would only apply
scrolling constraints after the panning gesture was recognized and the backing UIScrollView would show its scroll
indicators. While this is correct when only "pan-x" or "pan-y" is specified, we should not show the scroll indicators
at all for "touch-action: none" since no scrolling should happen.

To do this, we add a new method to the WKTouchActionGestureRecognizerDelegate protocol to indicate whether a given
gesture recognizer may pan content in the WKWebView. If the gesture recognizer is the top-level scroll view or one
created within the page to back "overflow: scroll" content or an iframe, we correctly make that gesture recognizer
fail to recognize if neither "pan-x" nor "pan-y" is specified for this touch identifier.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizerMayPanWebView:]):

  • UIProcess/ios/WKTouchActionGestureRecognizer.h:
  • UIProcess/ios/WKTouchActionGestureRecognizer.mm:

(-[WKTouchActionGestureRecognizer canPreventGestureRecognizer:]):

LayoutTests:

Add a new test that swipes "overflow: scroll" content which would show scroll indicators without scrolling
prior to this patch.

  • pointerevents/ios/touch-action-none-no-scroll-indicators-expected.html: Added.
  • pointerevents/ios/touch-action-none-no-scroll-indicators.html: Added.
11:41 AM Changeset in webkit [247264] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Validate reply block signature in [WKRemoteObjectRegistry _invokeMethod]
https://bugs.webkit.org/show_bug.cgi?id=199584
<rdar://problem/46268249>

Reviewed by Geoffrey Garen.

Validate reply block signature in [WKRemoteObjectRegistry _invokeMethod] for robustness.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(validateReplyBlockSignature):
(-[_WKRemoteObjectRegistry _invokeMethod:]):

11:27 AM Changeset in webkit [247263] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

UserData::decode should return false when decoding an unrecognized type
https://bugs.webkit.org/show_bug.cgi?id=199598
<rdar://52735138>

Reviewed by Ryosuke Niwa.

  • Shared/UserData.cpp:

(WebKit::UserData::decode):

11:26 AM Changeset in webkit [247262] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Fix LOG_DISABLED and TREE_DEBUGGING enabled build.
https://bugs.webkit.org/show_bug.cgi?id=199623
<rdar://problem/52837648>

Reviewed by Simon Fraser.

  • rendering/RenderLayerCompositor.cpp:
10:46 AM Changeset in webkit [247261] by Alan Coon
  • 14 edits
    2 adds in branches/safari-608.1.34.0-branch

Cherry-pick r247180. rdar://problem/51597945

[iOS] Crash in WebKit::WebPage::positionInformation via Range::startPosition
https://bugs.webkit.org/show_bug.cgi?id=199503

Reviewed by Wenson Hsieh.

Source/WebCore:

  • editing/Editor.cpp: (WebCore::Editor::compositionRange const): Added a FIXME.

Source/WebKit:

The crash was caused because focusedElementPositionInformation asssumes Editor::compositionRange is not null
whenever Editor::hasComposition returns true, which is not necessary the case when Editor::m_compositionNode
contains no text (data is of length 0).

Fixed the crash by adding an early return for when Editor::compositionRange returns nullptr.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::focusedElementPositionInformation):

Tools:

Added UIScriptController.ensurePositionInformationIsUpToDateAt using the existing WKWebView SPI:
_requestActivatedElementAtPosition

  • DumpRenderTree/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::ensurePositionInformationIsUpToDateAt):
  • DumpRenderTree/mac/UIScriptControllerMac.mm: (WTR::UIScriptController::ensurePositionInformationIsUpToDateAt):
  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.cpp: (WTR::UIScriptController::ensurePositionInformationIsUpToDateAt):
  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptController::ensurePositionInformationIsUpToDateAt):
  • WebKitTestRunner/ios/UIScriptControllerMac.mm: (WTR::UIScriptController::ensurePositionInformationIsUpToDateAt):

LayoutTests:

Added a regression test for the crash.

  • editing/input/delete-text-in-composition-expected.txt: Added.
  • editing/input/delete-text-in-composition.html: Added.
  • resources/ui-helper.js: (window.UIHelper.ensurePositionInformationUpdateForElement): Added.

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

10:44 AM Changeset in webkit [247260] by Alan Coon
  • 7 edits in branches/safari-608.1.34.0-branch/Source

Versioning.

9:52 AM Changeset in webkit [247259] by cturner@igalia.com
  • 2 edits in trunk/LayoutTests

[GStreamer] HLS media test gardening
https://bugs.webkit.org/show_bug.cgi?id=199620

Unreviewed gardening commit.

  • platform/gtk/TestExpectations:
9:14 AM Changeset in webkit [247258] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews-build] Do not run unix commands for windows in PrintConfiguration
https://bugs.webkit.org/show_bug.cgi?id=199605

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:
8:29 AM Changeset in webkit [247257] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Remove InlineItem references from inline runs.
https://bugs.webkit.org/show_bug.cgi?id=199608
<rdar://problem/52812775>

Reviewed by Antti Koivisto.

Constructing the inline runs is where we stop using InlineItems in the process of processing the inline content.
InlineItems are redundant in the context of Display::Runs.
It also enables us to create temporary InlineItems to process split content.

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

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

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

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

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Content::Run::Run):
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::trailingTrimmableWidth const):
(WebCore::Layout::Line::appendNonBreakableSpace):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendHardLineBreak):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Content::Run::layoutBox const):
(WebCore::Layout::Line::Content::Run::logicalRect const):
(WebCore::Layout::Line::Content::Run::textContext const):
(WebCore::Layout::Line::Content::Run::type const):
(WebCore::Layout::Line::Content::Run::isText const):
(WebCore::Layout::Line::Content::Run::isBox const):
(WebCore::Layout::Line::Content::Run::isLineBreak const):
(WebCore::Layout::Line::Content::Run::isContainerStart const):
(WebCore::Layout::Line::Content::Run::isContainerEnd const):
(WebCore::Layout::Line::Content::Run::adjustLogicalTop):
(WebCore::Layout::Line::Content::Run::moveVertically):
(WebCore::Layout::Line::Content::Run::moveHorizontally):
(WebCore::Layout::Line::Content::Run::setTextIsCollapsed):

8:21 AM Changeset in webkit [247256] by Antti Koivisto
  • 7 edits
    2 adds in trunk

REGRESSION(r244906): Crash in WebCore::positionOffsetValue
https://bugs.webkit.org/show_bug.cgi?id=199613
<rdar://problem/51518172>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/css/getComputedStyle/sticky-scroll-container-crash.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::positionOffsetValue):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::enclosingScrollportBox const): Deleted.

The client trivally hits nullptr when this is called for element without overflow scroll parent.

Fix by removing the whole function and using shared enclosingClippingBoxForStickyPosition instead.
It does the same ancestor walk more efficiently via layer tree.

  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::enclosingClippingBoxForStickyPosition const):

Factor into function.

(WebCore::RenderBoxModelObject::computeStickyPositionConstraints const):

  • rendering/RenderBoxModelObject.h:

LayoutTests:

  • fast/css/getComputedStyle/sticky-scroll-container-crash-expected.txt: Added.
  • fast/css/getComputedStyle/sticky-scroll-container-crash.html: Added.
3:03 AM Changeset in webkit [247255] by commit-queue@webkit.org
  • 9 edits
    1 delete in trunk

Support writing-mode and direction for scrollIntoViewOptions.
https://bugs.webkit.org/show_bug.cgi?id=161611

Patch by Cathie Chen <cathiechen> on 2019-07-09
Reviewed by Frédéric Wang and Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/scrollIntoView-horizontal-tb-writing-mode-and-rtl-direction-expected.txt:
  • web-platform-tests/css/cssom-view/scrollIntoView-vertical-lr-writing-mode-and-rtl-direction-expected.txt:
  • web-platform-tests/css/cssom-view/scrollIntoView-vertical-lr-writing-mode-expected.txt:
  • web-platform-tests/css/cssom-view/scrollIntoView-vertical-rl-writing-mode-expected.txt:

Source/WebCore:

To determine which physical side to align we need to transform ScrollIntoViewOptions to scrollAlignment.
We'll translate the inline and block direction separately. The writing-mode will affect the block scrollAlignment.
While both writing-mode and CSS direction will affect the inline scrollAlignment. The argument for scrollRectToVisible
should be physical, so if !isHorizontalWritingMode(), we need to switch alignX and alignY.

For direction: rtl and writing-mode: horizontal-tb box, WebKit puts the scrollbar on the left side. The visible rect
starts from the right side of the scroll bar, so localExposeRect should also start from the right side of
scroll bar.

  • dom/Element.cpp:

(WebCore::toScrollAlignmentForInlineDirection):
(WebCore::toScrollAlignmentForBlockDirection):
(WebCore::Element::scrollIntoView):
(WebCore::toScrollAlignment): Deleted.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):

LayoutTests:

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/css/cssom-view/scrollIntoView-horizontal-tb-writing-mode-and-rtl-direction-expected.txt: Removed.
Note: See TracTimeline for information about the timeline view.