Timeline
Aug 17, 2019:
- 10:54 PM Changeset in webkit [248829] by
-
- 20 edits1 add in trunk
[ESNext] Implement optional chaining
https://bugs.webkit.org/show_bug.cgi?id=200199
Reviewed by Yusuke Suzuki.
JSTests:
- stress/nullish-coalescing.js:
- stress/optional-chaining.js: Added.
- stress/tail-call-recognize.js:
Source/JavaScriptCore:
Implement the optional chaining proposal, which has now reached Stage 3 at TC39.
This introduces a ?. operator which:
- guards member access when the LHS is nullish, i.e.
null?.fooandnull?.['foo']are undefined - guards function calls when the LHS is nullish, i.e.
null?.()is undefined - short-circuits over a whole access/call chain, i.e.
null?.a['b'](c++)is undefined and does not increment c
This feature can be naively viewed as a ternary in disguise, i.e.
a?.bis likea == null ? undefined : a.b.
However, since we must be sure not to double-evaluate the LHS, it's actually rather akin to a try block --
namely, we have the bytecode generator keep an early-out label for use throughout the access and call chain.
(Also note that document.all behaves as an object, so "nullish" means *strictly* equal to null or undefined.)
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::pushOptionalChainTarget): Added.
(JSC::BytecodeGenerator::popOptionalChainTarget): Added.
(JSC::BytecodeGenerator::emitOptionalCheck): Added.
- bytecompiler/BytecodeGenerator.h:
Implement early-out logic.
- bytecompiler/NodesCodegen.cpp:
(JSC::BracketAccessorNode::emitBytecode):
(JSC::DotAccessorNode::emitBytecode):
(JSC::EvalFunctionCallNode::emitBytecode): Refactor so we can emitOptionalCheck in a single location.
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode): Refactor so we can emitOptionalCheck in a single location.
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::FunctionCallDotNode::emitBytecode):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::DeleteBracketNode::emitBytecode):
(JSC::DeleteDotNode::emitBytecode):
(JSC::CoalesceNode::emitBytecode): Clean up.
(JSC::OptionalChainNode::emitBytecode): Added.
Implement ?. node and emit checks where needed.
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
Have OpIsUndefinedOrNull support constant registers.
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createOptionalChain): Added.
(JSC::ASTBuilder::makeDeleteNode):
(JSC::ASTBuilder::makeFunctionCallNode):
- parser/Lexer.cpp:
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):
- parser/NodeConstructors.h:
(JSC::OptionalChainNode::OptionalChainNode): Added.
- parser/Nodes.h:
(JSC::ExpressionNode::isOptionalChain const): Added.
(JSC::ExpressionNode::isOptionalChainBase const): Added.
(JSC::ExpressionNode::setIsOptionalChainBase): Added.
- parser/ParserTokens.h:
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::makeFunctionCallNode):
(JSC::SyntaxChecker::createOptionalChain): Added.
Introduce new token and AST node, as well as an ExpressionNode field to mark LHSes with.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseMemberExpression):
Parse optional chains by wrapping the access/call parse loop.
- runtime/ExceptionHelpers.cpp:
(JSC::functionCallBase):
Ensure that TypeError messages don't include the '?.'.
- runtime/Options.h:
Update feature flag, as ?. and ?? are a double feature of "nullish-aware" operators.
Tools:
- Scripts/run-jsc-stress-tests:
- 10:35 PM Changeset in webkit [248828] by
-
- 4 edits in trunk
Layout tests that call resizeTo() crash when run on iOS with IOSurface support enabled
https://bugs.webkit.org/show_bug.cgi?id=200866
<rdar://problem/50254021>
Reviewed by Simon Fraser.
Source/WebKit:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::convertToDeviceSpace):
(WebKit::PageClientImpl::convertToUserSpace):
Implement convertTo{Device,User}Space in PageClientImplIOS.
We don't actually do any conversion. For our purposes, the window is
"device" space, and we never allow iOS WebKit clients to resize the window...
except for in tests! So just pass the rects straight through, instead of
returning an empty rect.
Tools:
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::windowSnapshotImage):
Replace some logging with release assertions that we are snapshotting a reasonable
view and get a reasonable snapshot back. Failing to snapshot is a big deal, and
"silently" failing with just a log that will be ignored is not helpful.
- 9:33 PM Changeset in webkit [248827] by
-
- 2 edits in trunk/Tools
[WTF] ThreadGroupRemove test is flaky
https://bugs.webkit.org/show_bug.cgi?id=200763
Reviewed by Mark Lam.
ThreadGroup.ThreadGroupRemove test is flaky since its
threadRunningmodification and check in Thread are racy.
It can lead to infinite wait on waitForCompletion. We should do more idiomatic to avoid race: When notifying condition
variables, we should first take a lock, modify the condition shared and notify the condition change while taking a lock,
and releasing the lock after that.
- TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
(TestWebKitAPI::TEST):
- 7:20 PM Changeset in webkit [248826] by
-
- 4 edits1 add in trunk
[ESNext] Support hashbang.
https://bugs.webkit.org/show_bug.cgi?id=200865
Reviewed by Mark Lam.
JSTests:
- stress/hashbang.js: Added.
- test262/expectations.yaml: Mark 6 cases as passing.
Source/JavaScriptCore:
Hashbang (a.k.a. shebang) support is at Stage 3 in TC39:
https://github.com/tc39/proposal-hashbang
This allows
#!to be treated like//, but only at the very start of the source text.
- parser/Lexer.cpp:
(JSC::Lexer<T>::Lexer):
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):
- 6:50 PM Changeset in webkit [248825] by
-
- 3 edits4 adds in trunk
[JSC] DFG ToNumber should support Boolean in fixup
https://bugs.webkit.org/show_bug.cgi?id=200864
Reviewed by Mark Lam.
JSTests:
- microbenchmarks/to-number-boolean.js: Added.
(test):
- stress/to-number-boolean-int32.js: Added.
(shouldBe):
(test):
(check):
- stress/to-number-boolean.js: Added.
(shouldBe):
(test):
(check):
- stress/to-number-int32.js: Added.
(shouldBe):
(test):
(check):
Source/JavaScriptCore:
ToNumber should speculate on Boolean, or BooleanOrInt32 in fixup phase to optimize it.
ToT Patched
to-number-boolean 897.6430+-26.8843 87.4802+-5.2831 definitely 10.2611x faster
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupToNumber):
- 6:47 PM Changeset in webkit [248824] by
-
- 8 edits in trunk/Source/JavaScriptCore
[JSC] WebAssembly BBQ should switch compile mode for size of modules
https://bugs.webkit.org/show_bug.cgi?id=200807
Reviewed by Mark Lam.
Some webpages use very large Wasm module, and it exhausts all executable memory in ARM64 devices since the size of executable memory region is 128MB.
The long term solution should be introducing Wasm interpreter. But as a short term solution, we introduce heuristics switching back to BBQ B3 at
the sacrifice of start-up time, since BBQ Air bloats such lengthy code, and thereby consumes a large amount of executable memory.
Currently, I picked 10MB since the reported website is using 11MB wasm module.
- runtime/Options.h:
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::parseAndCompileAir):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompile):
- wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::compileFunctions):
- wasm/WasmModuleInformation.h:
- wasm/WasmSectionParser.cpp:
(JSC::Wasm::SectionParser::parseCode):
- wasm/WasmStreamingParser.cpp:
(JSC::Wasm::StreamingParser::parseCodeSectionSize):
- 12:13 PM Changeset in webkit [248823] by
-
- 8 edits2 adds in trunk
Source/WebKit:
Use bundlePath SPI in AccessibilitySupport for WebProcessLoader
https://bugs.webkit.org/show_bug.cgi?id=200367
Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.
- Platform/spi/ios/AccessibilitySupportSPI.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::accessibilityWebProcessLoaderBundlePath):
(WebKit::registerWithAccessibility):
Source/WTF:
Added HAVE_ACCESSIBILITY_BUNDLES_PATH
https://bugs.webkit.org/show_bug.cgi?id=200367
Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.
- wtf/Platform.h:
Tools:
Tested that accessibility WebProcessLoader bundle is loaded for the correct path.
https://bugs.webkit.org/show_bug.cgi?id=200367
Patch by Eric Liang <ericliang@apple.com> on 2019-08-17
Reviewed by Darin Adler.
Added AccessibilityTestPlugin on the web process to report whether a bundle is loaded and its path, so that it can be tested on WKContentView.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/AccessibilityTestPlugin.mm: Added.
(-[AccessibilityTestPlugin webProcessPlugIn:didCreateBrowserContextController:]):
(-[AccessibilityTestPlugin checkAccessibilityWebProcessLoaderBundleIsLoaded:]):
- TestWebKitAPI/Tests/WebKitCocoa/AccessibilityTestSupportProtocol.h: Added.
- TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:
(TestWebKitAPI::TEST):
- 11:49 AM Changeset in webkit [248822] by
-
- 16 edits in trunk
Rename StringBuilder::flexibleAppend(...) to StringBuilder::append(...)
https://bugs.webkit.org/show_bug.cgi?id=200756
Reviewed by Darin Adler.
Source/WebCore:
Update call sites for rename from StringBuilder::flexibleAppend(...) to
StringBuilder::append(...).
- Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp:
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitResourceHelperTypes):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitResourceSignature):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitBuiltInsSignature):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitMangledInputPath):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitMangledOutputPath):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitUnpackResourcesAndNamedBuiltIns):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitPack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitPack):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::emitSignature):
- Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
(WebCore::WHLSL::Metal::declareFunction):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::emitLoop):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::emitConstantExpressionString):
- Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
(WebCore::WHLSL::Metal::inlineNativeFunction):
- Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:
(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):
(WebCore::WHLSL::Metal::TypeNamer::emitNamedTypeDefinition):
- Modules/webgpu/WHLSL/WHLSLParser.cpp:
(WebCore::WHLSL::Types::appendNameTo):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):
- testing/Internals.cpp:
(WebCore::Internals::ongoingLoadsDescriptions const):
Source/WebKit:
Update call sites for rename from StringBuilder::flexibleAppend(...) to
StringBuilder::append(...).
- WebProcess/WebPage/WebPage.cpp:
(WebKit::dumpHistoryItem):
We have to explicitly access the underlying String of the URL rather than
relying on the implicit conversion since it is now ambiguous which append(...)
overload should be used.
Source/WTF:
Now that there are no remaining multi-parameter or behavior changing overloads
of StringBuilder::append(...), we can rename StringBuilder::flexibleAppend(...)
to StringBuilder::append(...).
This change leaves the existing single parameter overloads StringBuilder::append(...)
for now, and since they have specify specific types, they will continue to be prefered
in overload resolution. Once we have concluded the variadic StringBuilder::append(...)
can provide the same performance as the single parameter variant, we can remove the
single parameter variant.
- wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::pathByAppendingComponents):
- wtf/text/StringBuilder.h:
(WTF::StringBuilder::appendFromAdapters):
(WTF::StringBuilder::append):
(WTF::StringBuilder::flexibleAppendFromAdapters): Deleted.
(WTF::StringBuilder::flexibleAppend): Deleted.
Update for rename from StringBuilder::flexibleAppend(...) to StringBuilder::append(...).
Tools:
Update call sites for rename from StringBuilder::flexibleAppend(...) to
StringBuilder::append(...).
- TestWebKitAPI/Tests/WTF/StringBuilder.cpp:
(TestWebKitAPI::TEST):
- 11:12 AM Changeset in webkit [248821] by
-
- 2 edits in trunk/Source/WebKit
Web Inspector: make the initial height bigger when attached
https://bugs.webkit.org/show_bug.cgi?id=200855
Reviewed by Joseph Pecoraro.
- Shared/WebPreferences.yaml:
Increase the default attached height from
300pxto500px, which is close to the same
amount of area given a 15" MacBook Pro's aspect ratio (default attached width is750px).
- 8:27 AM Changeset in webkit [248820] by
-
- 7 edits3 adds in trunk
[iOS WK2] Scroll indicators disappear sometimes
https://bugs.webkit.org/show_bug.cgi?id=200791
Reviewed by Tim Horton.
Source/WebKit:
_web_setSubviews: replaces all of the views subviews with the supplied array, but this blows
away views not managed by WebKit, including UIScrollViews scroll indicators. Fix by having
WebKit-managed views implement the WKWebKitControlled protocol, and only removing views
implementing that protocol.
- Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(-[UIView _web_setSubviews:]):
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h:
Tools:
Tests that test that scroll indicators survive subview replacement, and that
a custom view also survives subview replacement.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/ios/OverflowScrollViewTests.mm: Added.
(TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/TestWKWebView.h:
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView performAfterLoading:]):
(-[UIView wkFirstSubviewWithClass:]):
(-[UIView wkFirstSubviewWithBoundsSize:]):
- TestWebKitAPI/ios/composited.html: Added.
- TestWebKitAPI/ios/overflow-scroll.html: Added.
- 1:50 AM Changeset in webkit [248819] by
-
- 3 edits2 adds in trunk
Content in <iframe> should override "touch-action" set in embedding document
https://bugs.webkit.org/show_bug.cgi?id=200204
<rdar://problem/54355249>
Reviewed by Antoine Quint.
Source/WebKit:
Subframes where content doesn't use any touch-action properties won't generate event region for their main layer.
As a result the touch-action property gets computed in UI process to the parent frames touch-action (instead of 'auto').
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
(WebKit::touchActionsForPoint):
If the topmost layer hit is a WKChildScrollView we know its content layer didn't have an event region.
This means we should return the default value 'auto'.
LayoutTests:
- pointerevents/ios/touch-action-none-with-frame-inside-expected.txt: Added.
- pointerevents/ios/touch-action-none-with-frame-inside.html: Added.
- 1:11 AM Changeset in webkit [248818] by
-
- 14 edits1 delete in trunk/Source/WebInspectorUI
Web Inspector: Sources: gear icons moves to 2nd line when sidebar is narrow
https://bugs.webkit.org/show_bug.cgi?id=198017
Reviewed by Joseph Pecoraro.
- UserInterface/Views/NavigationBar.js:
(WI.NavigationBar):
(WI.NavigationBar.prototype.layout):
(WI.NavigationBar.prototype.layout.forceItemHidden): Added.
(WI.NavigationBar.prototype.layout.isDivider): Added.
(WI.NavigationBar.prototype.layout.calculateVisibleItemWidth): Added.
(WI.NavigationBar.prototype.needsLayout): Deleted.
(WI.NavigationBar.prototype.sizeDidChange): Deleted.
(WI.NavigationBar.prototype._updateContent): Deleted.
(WI.NavigationBar.prototype._updateContent.forceItemHidden): Deleted.
(WI.NavigationBar.prototype._updateContent.isDivider): Deleted.
(WI.NavigationBar.prototype._updateContent.calculateVisibleItemWidth): Deleted.
Reset the cached_minimumWidthwhenever updating inlayout().
- UserInterface/Views/NavigationItem.js:
(WI.NavigationItem.prototype.get width):
(WI.NavigationItem.prototype.update): Added.
(WI.NavigationItem.prototype.updateLayout): Deleted.
(WI.NavigationItem.prototype.get totalMargin): Added.
- UserInterface/Views/ButtonNavigationItem.js:
(WI.ButtonNavigationItem.prototype.get totalMargin): Added.
- UserInterface/Views/ButtonNavigationItem.css:
- UserInterface/Views/TextNavigationItem.js:
(WI.TextNavigationItem.prototype.get totalMargin): Added.
- UserInterface/Views/TextNavigationItem.css:
Element.prototype.getBoundingClientRectdoesn't include themarginbox of an element.
Rather than create a CSS variable and parse a computed style, save the totalmarginamount
to a getter that can then be added when computing the minimum width.
- UserInterface/Views/Sidebar.js:
(WI.Sidebar):
(WI.Sidebar.prototype._recalculateWidth):
- UserInterface/Views/FlexibleSpaceNavigationItem.js:
(WI.FlexibleSpaceNavigationItem.prototype.update): Added.
(WI.FlexibleSpaceNavigationItem.prototype.updateLayout): Deleted.
- UserInterface/Views/GroupNavigationItem.js:
(WI.GroupNavigationItem.prototype.update): Added.
(WI.GroupNavigationItem.prototype.updateLayout): Deleted.
- UserInterface/Views/HierarchicalPathNavigationItem.js:
(WI.HierarchicalPathNavigationItem.prototype.update): Added.
(WI.HierarchicalPathNavigationItem.prototype.updateLayout): Deleted.
- UserInterface/Views/RadioButtonNavigationItem.js:
(WI.RadioButtonNavigationItem.prototype.update): Added.
(WI.RadioButtonNavigationItem.prototype.updateLayout): Deleted.
RenameupdateLayouttoupdateso it doesn't clash withWI.Viewnaming.
- UserInterface/Views/SidebarNavigationBar.js: Removed.
- UserInterface/Main.html:
- UserInterface/Views/NavigationBar.css:
(.navigation-bar .item): Added.
(.navigation-bar .item, .sidebar-navigation-bar > .holder .item): Deleted.
(.sidebar-navigation-bar): Deleted.
(.sidebar-navigation-bar .holder): Deleted.
Remove unnecessary class.
Aug 16, 2019:
- 10:42 PM Changeset in webkit [248817] by
-
- 16 edits2 copies in trunk/Source/WebKit
Use strongly typed identifiers for StorageArea / StorageAreaImpl
https://bugs.webkit.org/show_bug.cgi?id=200835
Reviewed by Alex Christensen.
Use strongly typed identifiers for StorageArea / StorageAreaImpl. They currently both use uint64_t
and are used in the same code, it is therefore very easy to confused the 2 types of identifiers.
- NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::StorageArea):
(WebKit::StorageArea::setItem):
(WebKit::StorageArea::removeItem):
(WebKit::StorageArea::clear):
(WebKit::StorageArea::dispatchEvents const):
- NetworkProcess/WebStorage/StorageArea.h:
(WebKit::StorageArea::identifier):
- NetworkProcess/WebStorage/StorageAreaIdentifier.h: Copied from Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.h.
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::connectToLocalStorageArea):
(WebKit::StorageManagerSet::connectToTransientLocalStorageArea):
(WebKit::StorageManagerSet::connectToSessionStorageArea):
(WebKit::StorageManagerSet::disconnectFromStorageArea):
(WebKit::StorageManagerSet::getValues):
(WebKit::StorageManagerSet::setItem):
(WebKit::StorageManagerSet::removeItem):
(WebKit::StorageManagerSet::clear):
- NetworkProcess/WebStorage/StorageManagerSet.h:
- NetworkProcess/WebStorage/StorageManagerSet.messages.in:
- Scripts/webkit/messages.py:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::registerStorageAreaMap):
(WebKit::WebProcess::unregisterStorageAreaMap):
(WebKit::WebProcess::storageAreaMap const):
- WebProcess/WebProcess.h:
- WebProcess/WebStorage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::StorageAreaImpl):
- WebProcess/WebStorage/StorageAreaImpl.h:
- WebProcess/WebStorage/StorageAreaImplIdentifier.h: Copied from Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.h.
- WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::loadValuesIfNeeded):
(WebKit::StorageAreaMap::dispatchStorageEvent):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):
(WebKit::StorageAreaMap::disconnect):
- WebProcess/WebStorage/StorageAreaMap.h:
(WebKit::StorageAreaMap::identifier const):
- WebProcess/WebStorage/StorageAreaMap.messages.in:
- 10:19 PM Changeset in webkit [248816] by
-
- 3 edits2 deletes in trunk
Unreviewed, rolling out r248772.
https://bugs.webkit.org/show_bug.cgi?id=200853
Causes timeouts in some WebGL tests (Requested by anttik on
#webkit).
Reverted changeset:
"Content in <iframe> should override "touch-action" set in
embedding document"
https://bugs.webkit.org/show_bug.cgi?id=200204
https://trac.webkit.org/changeset/248772
- 9:38 PM Changeset in webkit [248815] by
-
- 4 edits2 adds in trunk
[macOS] Emoji with variation selectors are rendered in text style, not emoji style
https://bugs.webkit.org/show_bug.cgi?id=200830
<rdar://problem/53076002>
Reviewed by Simon Fraser.
Source/WebCore:
When mapping characters to glyphs, Core Text is giving us the deleted glyph ID, which is unexpected.
We were treating it as a valid glyph ID, but it rather should be treated as an invalid glyph ID.
Test: fast/text/emoji-variation-selector.html
- platform/graphics/mac/GlyphPageMac.cpp:
(WebCore::GlyphPage::fill):
LayoutTests:
- fast/text/emoji-variation-selector-expected-mismatch.html: Added.
- fast/text/emoji-variation-selector.html: Added.
- platform/win/TestExpectations: Mark as failing on Windows, because it doesn't support variation selectors.
- 9:13 PM Changeset in webkit [248814] by
-
- 5 edits4 adds in trunk
[WHLSL] Make "operator cast" constructors native
https://bugs.webkit.org/show_bug.cgi?id=200748
Reviewed by Myles C. Maxfield.
Source/WebCore:
Tests: webgpu/whlsl/matrix-constructors.html
webgpu/whlsl/vector-constructors.html
- Modules/webgpu/WHLSL/AST/WHLSLNativeTypeDeclaration.h:
- Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
(WebCore::WHLSL::Metal::inlineNativeFunction):
- Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:
LayoutTests:
- webgpu/whlsl/matrix-constructors-expected.txt: Added.
- webgpu/whlsl/matrix-constructors.html: Added.
- webgpu/whlsl/vector-constructors-expected.txt: Added.
- webgpu/whlsl/vector-constructors.html: Added.
- 8:45 PM Changeset in webkit [248813] by
-
- 3 edits1 add in trunk/Source/ThirdParty/ANGLE
Add XCBuild support to ANGLE
https://bugs.webkit.org/show_bug.cgi?id=200836
<rdar://problem/54410420>
Reviewed by Alex Christensen.
The ANGLE Xcode project contains two Build Phases: one that copies
some headers, and another that modifies those headers. This
combination does not work with XCBuild, which gets confused when it
finds that headers that it's copied have been changed. When it detects
this, XCBuild thinks that it should recopy those headers on the next
build, causing their modification dates to change and for all
dependent files to be rebuilt. This essentially turns an incremental
rebuild into a full rebuild.
Address this problem by using a new facility in Xcode 11. This
facility supports the copying and modifying headers files in a single
step. It is achieved by first enabling the facility by setting
APPLY_RULES_IN_COPY_HEADERS to YES. Next, we add a new Build Rule that
invokes a custom script when the header files are copied. Third, we
provide this script, which can essentially be a stripped down version
of the one already used to modify the exported headers files. Finally,
we disable the use of that old script when we are using Xcode 11. In
this way, the old script that modifies the exported headers is used in
Xcode 10, and the new facility is used in Xcode 11.
See also Bug 197340 for where this process was also applied to
JavaScriptCore, WebKit, and WebKitLegacy.
- ANGLE.xcodeproj/project.pbxproj:
- Configurations/ANGLE.xcconfig:
- adjust-angle-include-paths-rule: Added.
- 8:03 PM Changeset in webkit [248812] by
-
- 3 edits2 adds in trunk
[WHLSL] Enums should be shadowed by local variables
https://bugs.webkit.org/show_bug.cgi?id=200847
Reviewed by Saam Barati.
Source/WebCore:
Only cause DotExpressions to become EnumerationMemberLiterals if they aren't valid variable names.
Test: webgpu/whlsl/structure-field-enumeration-element-clash.html
- Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:
(WebCore::WHLSL::NameResolver::visit):
LayoutTests:
- webgpu/whlsl/structure-field-enumeration-element-clash-expected.txt: Added.
- webgpu/whlsl/structure-field-enumeration-element-clash.html: Added.
- 7:56 PM Changeset in webkit [248811] by
-
- 1 edit2 adds in trunk/LayoutTests
[WHLSL] Add test for the interaction between setters and increments
https://bugs.webkit.org/show_bug.cgi?id=200848
Reviewed by Saam Barati.
As discovered by Robin in https://github.com/gpuweb/WHLSL/issues/308
- webgpu/whlsl/increment-setter-expected.txt: Added.
- webgpu/whlsl/increment-setter.html: Added.
- 7:48 PM Changeset in webkit [248810] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Syntax Highlight more CSS media queries
https://bugs.webkit.org/show_bug.cgi?id=200824
Reviewed by Devin Rousso.
- UserInterface/Views/CodeMirrorAdditions.js:
Special case CSS "error" tokenized values from CodeMirror inside @ rules
to treat some as properties.
- 6:06 PM Changeset in webkit [248809] by
-
- 12 edits in trunk/Source/WebKit
Drop StorageArea::setWorkQueue() member function
https://bugs.webkit.org/show_bug.cgi?id=200832
Reviewed by Alex Christensen.
Drop StorageArea::setWorkQueue() member function and pass the WorkQueue to the StorageArea constructor instead.
The WorkQueue can never get updated so an explicit setter is not necessary. It also makes it clearer that the
m_queue data member can never be null.
- NetworkProcess/WebStorage/LocalStorageNamespace.cpp:
(WebKit::LocalStorageNamespace::getOrCreateStorageArea):
- NetworkProcess/WebStorage/LocalStorageNamespace.h:
- NetworkProcess/WebStorage/SessionStorageNamespace.cpp:
(WebKit::SessionStorageNamespace::getOrCreateStorageArea):
- NetworkProcess/WebStorage/SessionStorageNamespace.h:
- NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::StorageArea):
(WebKit::StorageArea::clone const):
(WebKit::StorageArea::openDatabaseAndImportItemsIfNeeded const):
- NetworkProcess/WebStorage/StorageArea.h:
(WebKit::StorageArea::setWorkQueue): Deleted.
- NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::createLocalStorageArea):
(WebKit::StorageManager::createTransientLocalStorageArea):
(WebKit::StorageManager::createSessionStorageArea):
- NetworkProcess/WebStorage/StorageManager.h:
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::connectToLocalStorageArea):
(WebKit::StorageManagerSet::connectToTransientLocalStorageArea):
(WebKit::StorageManagerSet::connectToSessionStorageArea):
- NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:
(WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea):
- NetworkProcess/WebStorage/TransientLocalStorageNamespace.h:
- 6:04 PM Changeset in webkit [248808] by
-
- 8 edits in trunk/Source
LocalStorageDatabaseTracker does not need to subclass ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=200825
Reviewed by Alex Christensen.
Source/WebKit:
LocalStorageDatabaseTracker does not need to subclass ThreadSafeRefCounted. It is currently always
ref'd / deref'd from the com.apple.WebKit.WebStorage serial WorkQueue, save from inside
LocalStorageDatabaseTracker::platformMaybeExcludeFromBackup() on iOS. However, it is probably
not a good idea to set FileSystem metadata from the main thread in platformMaybeExcludeFromBackup()
anyway.
Note that I had to get rid of an old linked-on-after check since those are currently only safe
to do on the main thread. I cleared this with Brady. It has been a while since we've shipped this
behavior now and apps have had a chance to update.
- NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::databasePath const):
- NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h:
- NetworkProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm:
(WebKit::LocalStorageDatabaseTracker::platformMaybeExcludeFromBackup const):
- UIProcess/Cocoa/VersionChecks.h:
Source/WebKitLegacy/mac:
- Misc/WebKitVersionChecks.h:
- Storage/WebStorageManager.mm:
(WebKitInitializeStorageIfNecessary):
- 5:41 PM Changeset in webkit [248807] by
-
- 12 edits in trunk/Source
Don't use union to store NodeRareData* and RenderObject*
https://bugs.webkit.org/show_bug.cgi?id=200744
Reviewed by Antti Koivisto.
Source/WebCore:
This patch undoes unioning of NodeRareData* and RenderObject* in Node introduced in r133372 in order
to eliminate any possibility of type confusion bugs. Instead of re-introducing the global map, which
is known to be slow, this patch simply adds an extra pointer for NodeRareData: Node::m_rareData.
To compensate for the increased memory usage due to a new pointer type in Node, this patch also packs
the style related flags in ElementRareData, which is the most common reason for which ElementRareData
is created, into RenderObject* pointer using CompactPointerTuple as Node::m_rendererWithStyleFlags.
Unfortunately, there are 9 style related flags and they won't all fit into the single byte provided
by CompactPointerTuple. Luckily, this patch also eliminates the need for HasRareDataFlag as m_rareData
knows whether a node has rare data or not so we re-use that bitflag space for the extra one flag.
No new tests since there should be no observable behavioral change from this.
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild): Check the nullity of
m_rareData directly instead of checking HasRareDataFlag, which has been removed.
- dom/Element.cpp:
(WebCore::Element::setStyleAffectedByEmpty): Deleted.
(WebCore::Element::setStyleAffectedByFocusWithin): Deleted.
(WebCore::Element::setStyleAffectedByActive): Deleted.
(WebCore::Element::setChildrenAffectedByDrag): Deleted.
(WebCore::Element::setChildrenAffectedByForwardPositionalRules): Deleted.
(WebCore::Element::setDescendantsAffectedByForwardPositionalRules): Deleted.
(WebCore::Element::setChildrenAffectedByBackwardPositionalRules): Deleted.
(WebCore::Element::setDescendantsAffectedByBackwardPositionalRules): Deleted.
(WebCore::Element::setChildrenAffectedByPropertyBasedBackwardPositionalRules): Deleted.
(WebCore::Element::hasFlagsSetDuringStylingOfChildren const):
(WebCore::Element::resetStyleRelations): Clear the flags in m_rendererWithStyleFlags and m_nodeFlags.
(WebCore::Element::rareDataStyleAffectedByEmpty const): Deleted.
(WebCore::Element::rareDataStyleAffectedByFocusWithin const): Deleted.
(WebCore::Element::rareDataStyleAffectedByActive const): Deleted.
(WebCore::Element::rareDataChildrenAffectedByDrag const): Deleted.
(WebCore::Element::rareDataChildrenAffectedByForwardPositionalRules const): Deleted.
(WebCore::Element::rareDataDescendantsAffectedByForwardPositionalRules const): Deleted.
(WebCore::Element::rareDataChildrenAffectedByBackwardPositionalRules const): Deleted.
(WebCore::Element::rareDataDescendantsAffectedByBackwardPositionalRules const): Deleted.
(WebCore::Element::rareDataChildrenAffectedByPropertyBasedBackwardPositionalRules const): Deleted.
- dom/Element.h:
(WebCore::Element::styleAffectedByActive const): Now uses m_rendererWithStyleFlags.
(WebCore::Element::styleAffectedByEmpty const): Ditto.
(WebCore::Element::styleAffectedByFocusWithin const): Now uses m_nodeFlags.
(WebCore::Element::childrenAffectedByDrag const): Now uses m_rendererWithStyleFlags.
(WebCore::Element::childrenAffectedByForwardPositionalRules const): Ditto.
(WebCore::Element::descendantsAffectedByForwardPositionalRules const): Ditto.
(WebCore::Element::childrenAffectedByBackwardPositionalRules const): Ditto.
(WebCore::Element::descendantsAffectedByBackwardPositionalRules const): Ditto.
(WebCore::Element::childrenAffectedByPropertyBasedBackwardPositionalRules const): Ditto.
(WebCore::Element::setStyleAffectedByEmpty): Now stores into m_rendererWithStyleFlags.
(WebCore::Element::setStyleAffectedByFocusWithin): Now uses m_nodeFlags.
(WebCore::Element::setDescendantsAffectedByPreviousSibling): Removed const qualifier & useless return.
(WebCore::Element::setStyleAffectedByActive): Now stores into m_rendererWithStyleFlags.
(WebCore::Element::setChildrenAffectedByDrag): Ditto.
(WebCore::Element::setChildrenAffectedByForwardPositionalRules): Ditto.
(WebCore::Element::setDescendantsAffectedByForwardPositionalRules): Ditto.
(WebCore::Element::setChildrenAffectedByBackwardPositionalRules): Ditto.
(WebCore::Element::setDescendantsAffectedByBackwardPositionalRules): Ditto.
(WebCore::Element::setChildrenAffectedByPropertyBasedBackwardPositionalRules): Ditto.
- dom/ElementRareData.h:
(WebCore::ElementRareData::styleAffectedByActive const): Deleted.
(WebCore::ElementRareData::setStyleAffectedByActive): Deleted.
(WebCore::ElementRareData::styleAffectedByEmpty const): Deleted.
(WebCore::ElementRareData::setStyleAffectedByEmpty): Deleted.
(WebCore::ElementRareData::styleAffectedByFocusWithin const): Deleted.
(WebCore::ElementRareData::setStyleAffectedByFocusWithin): Deleted.
(WebCore::ElementRareData::childrenAffectedByDrag const): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByDrag): Deleted.
(WebCore::ElementRareData::childrenAffectedByLastChildRules const): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByLastChildRules): Deleted.
(WebCore::ElementRareData::childrenAffectedByForwardPositionalRules const): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByForwardPositionalRules): Deleted.
(WebCore::ElementRareData::descendantsAffectedByForwardPositionalRules const): Deleted.
(WebCore::ElementRareData::setDescendantsAffectedByForwardPositionalRules): Deleted.
(WebCore::ElementRareData::childrenAffectedByBackwardPositionalRules const): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByBackwardPositionalRules): Deleted.
(WebCore::ElementRareData::descendantsAffectedByBackwardPositionalRules const): Deleted.
(WebCore::ElementRareData::setDescendantsAffectedByBackwardPositionalRules): Deleted.
(WebCore::ElementRareData::childrenAffectedByPropertyBasedBackwardPositionalRules const): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByPropertyBasedBackwardPositionalRules): Deleted.
(WebCore::ElementRareData::useTypes const): Removed UseType::StyleFlags.
(WebCore::ElementRareData::ElementRareData): No longer takes RenderElement*.
(WebCore::ElementRareData::resetStyleRelations): Only re-sets child index now since that's all left.
- dom/Node.cpp:
(WebCore::stringForRareDataUseType): Removed UseType::StyleFlags since there is no style related
flags in ElementRareData.
(WebCore::Node::materializeRareData): Simplified now that m_rareData is not a union.
(WebCore::Node::clearRareData): Ditto.
- dom/Node.h:
(WebCore::NodeRareDataBase): Deleted.
(WebCore::Node::renderer const):
(WebCore::Node::rareDataMemoryOffset):
(WebCore::Node::flagHasRareData): Deleted.
(WebCore::Node::NodeFlags): Replaced HasRareDataFlag with StyleAffectedByFocusWithinFlag.
(WebCore::Node::ElementStyleFlag): Added.
(WebCore::Node::hasStyleFlag const): Added. Checks a reprense of a flag in m_rendererWithStyleFlags.
(WebCore::Node::setStyleFlag): Ditto for setting a flag.
(WebCore::Node::clearStyleFlags): Ditto for clearing all flags.
(WebCore::Node::hasRareData const): Now checks the nullity of m_rareData directly.
(WebCore::Node::rareData const):
- dom/NodeRareData.cpp: The size of NodeRareData is shrunk by one pointer.
- dom/NodeRareData.h:
(WebCore::NodeRareData::NodeRareData): No longer inherits from NodeRareDataBase which was needed to
to store RenderObject*.
(WebCore::Node::rareData const): Moved to Node.h.
- rendering/RenderObject.h:
(WebCore::Node::setRenderer): Moved from Node.h since CompactPointerTuple::setPointer has the
aforementioned static_assert which requires the definition of RenderObject.
Source/WTF:
Moved the static assert which requires the type of the object to which the pointer type points
into setPointer so that we can use CompactPointerTuple<T*, U> as a member variable
with just a forward declaration of T.
- wtf/CompactPointerTuple.h:
(WTF::CompactPointerTuple::setPointer):
- 5:17 PM Changeset in webkit [248806] by
-
- 2 edits in trunk/LayoutTests
[ContentChangeObserver] Keep track of all the visibility candidates.
https://bugs.webkit.org/show_bug.cgi?id=200777
Unreviewed test gardening.
- fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden2-expected.txt: Update baseline.
- 5:08 PM Changeset in webkit [248805] by
-
- 3 edits4 adds in trunk
[WHLSL] Add comparison operators for vectors and matrices
https://bugs.webkit.org/show_bug.cgi?id=200823
Reviewed by Myles C. Maxfield.
Source/WebCore:
Tests: webgpu/whlsl/matrix-compare.html
webgpu/whlsl/vector-compare.html
- Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:
LayoutTests:
- webgpu/whlsl/matrix-compare-expected.txt: Added.
- webgpu/whlsl/matrix-compare.html: Added.
- webgpu/whlsl/vector-compare-expected.txt: Added.
- webgpu/whlsl/vector-compare.html: Added.
- 5:04 PM Changeset in webkit [248804] by
-
- 3 edits in trunk/Source/WebKit
LocalStorageDatabase should use inline initialization for its data members
https://bugs.webkit.org/show_bug.cgi?id=200828
Reviewed by John Wilander.
- NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::LocalStorageDatabase):
- NetworkProcess/WebStorage/LocalStorageDatabase.h:
- 4:51 PM Changeset in webkit [248803] by
-
- 2 edits in trunk/Tools
Add John Wilander as WebKit Reviewer
https://bugs.webkit.org/show_bug.cgi?id=200837
Unreviewed update to contributors.json to change my status to reviewer.
See email on reviewers mailing list for proof of granted privileges.
- Scripts/webkitpy/common/config/contributors.json:
- 4:49 PM Changeset in webkit [248802] by
-
- 3 edits4 adds in trunk
More missing exception checks in string comparison operators.
https://bugs.webkit.org/show_bug.cgi?id=200844
<rdar://problem/54378684>
Reviewed by Saam Barati.
JSTests:
- stress/missing-exception-check-in-string-greater-than-compare.js: Added.
- stress/missing-exception-check-in-string-greater-than-or-equal-compare.js: Added.
- stress/missing-exception-check-in-string-less-than-compare.js: Added.
- stress/missing-exception-check-in-string-less-than-or-equal-compare.js: Added.
Source/JavaScriptCore:
- runtime/Operations.h:
(JSC::jsLess):
(JSC::jsLessEq):
- 4:02 PM Changeset in webkit [248801] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. When I rebased to land r248795, I had a bad merge in
WHLSLStandardLibrary.txt where the bool matrix constructors ended
up in the wrong section of the standard library.
- Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:
- 3:49 PM Changeset in webkit [248800] by
-
- 3 edits1 add in trunk
CodeBlock destructor should clear all of its watchpoints.
https://bugs.webkit.org/show_bug.cgi?id=200792
<rdar://problem/53947800>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/codeblock-should-clear-watchpoints-on-destruction.js: Added.
Source/JavaScriptCore:
We need to clear the watchpoints explicitly (just like we do in CodeBlock::jettison())
because the JITCode may outlive the CodeBlock for a while. For example, the JITCode
is ref'd in Interpreter::execute(JSC::CallFrameClosure&) like so:
JSValue result = closure.functionExecutable->generatedJITCodeForCall()->execute(&vm, closure.protoCallFrame);
The call to generatedJITCodeForCall() returns a Ref<JITCode> with the underlying
JITCode ref'd. Hence, while the interpreter frame is still on the stack, the
executing JITCode instance will have a non-zero refCount, and be kept alive even
though its CodeBlock may have already been destructed.
Note: the Interpreter execute() methods aren't the only ones who would ref the JITCode:
ExecutableBase also holds a RefPtr<JITCode> m_jitCodeForCall and RefPtr<JITCode>
m_jitCodeForConstruct. But a CodeBlock will be uninstalled before it gets destructed.
Hence, the uninstallation will deref the JITCode before we get to the CodeBlock
destructor. That said, we should be aware that a JITCode's refCount is not always
1 after the JIT installs it into the CodeBlock, and it should not be assumed to be so.
For this patch, I also audited all Watchpoint subclasses to ensure that we are
clearing all the relevant watchpoints in the CodeBlock destructor. Here is the
list of audited Watchpoints:
CodeBlockJettisoningWatchpoint
AdaptiveStructureWatchpoint
AdaptiveInferredPropertyValueWatchpoint
- these are held in the DFG::CommonData, and is tied to JITCode's life cycle.
- they need to be cleared eagerly in CodeBlock's destructor.
LLIntPrototypeLoadAdaptiveStructureWatchpoint
- stored in m_llintGetByIdWatchpointMap in the CodeBlock.
- this will be automatically cleared on CodeBlock destruction.
The following does not reference CodeBlock:
FunctionRareData::AllocationProfileClearingWatchpoint
- stored in FunctionRareData and will be cleared automatically on FunctionRareData destruction.
- only references the owner FunctionRareData.
ObjectToStringAdaptiveStructureWatchpoint
ObjectToStringAdaptiveInferredPropertyValueWatchpoint
- stored in StructureRareData and will be cleared automatically on StructureRareData destruction.
ObjectPropertyChangeAdaptiveWatchpoint
- stored in JSGlobalObject, and will be cleared automatically on JSGlobalObject destruction.
- only references the owner JSGlobalObject.
StructureStubClearingWatchpoint
- stored in WatchpointsOnStructureStubInfo and will be cleared automatically on WatchpointsOnStructureStubInfo destruction.
PropertyWatchpoint
StructureWatchpoint
- embedded in AdaptiveInferredPropertyValueWatchpointBase, which is extended as AdaptiveInferredPropertyValueWatchpoint, ObjectPropertyChangeAdaptiveWatchpoint, and ObjectToStringAdaptiveInferredPropertyValueWatchpoint.
- life cycle is handled by those 3 subclasses.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::~CodeBlock):
- 3:14 PM Changeset in webkit [248799] by
-
- 7 edits in trunk/Source
Versioning.
- 2:33 PM Changeset in webkit [248798] by
-
- 9 edits3 adds in trunk
Fix InBounds speculation of typed array PutByVal and add extra step to integer range optimization to search for equality relationships on the RHS value
https://bugs.webkit.org/show_bug.cgi?id=200782
Reviewed by Saam Barati.
JSTests:
- microbenchmarks/int8-out-of-bounds.js: Added.
(foo):
- microbenchmarks/memcpy-typed-loop.js: Added.
(doTest):
(let.arr1.new.Int32Array.1000.let.arr2.new.Int32Array.1000):
(arr2):
- stress/int8-repeat-in-then-out-of-bounds.js: Added.
(foo):
Source/JavaScriptCore:
Speculate that putByVals on typed arrays are in bounds initially, and add an extra rule to integer range optimization to
remove CheckInBounds when we are looping over two arrays. We do this by fixing a bug in the llint slow paths that marked
typed array accesses as out of bounds, and we also add an extra step to integer range optimization to search for equality
relationships on the RHS value.
Microbenchmarks give a 40% improvement on the memcpy loop test, and neutral on the out-of-bounds typed array test.
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- dfg/DFGOperations.cpp:
(JSC::DFG::putByVal):
- jit/JITOperations.cpp:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/JSGenericTypedArrayView.h:
- runtime/JSObject.h:
(JSC::JSObject::putByIndexInline):
(JSC::JSObject::canGetIndexQuickly const):
(JSC::JSObject::getIndexQuickly const):
(JSC::JSObject::tryGetIndexQuickly const):
(JSC::JSObject::canSetIndexQuickly):
(JSC::JSObject::setIndexQuickly):
- runtime/JSObjectInlines.h:
(JSC::JSObject::canGetIndexQuicklyForTypedArray const):
(JSC::JSObject::canSetIndexQuicklyForTypedArray const):
(JSC::JSObject::getIndexQuicklyForTypedArray const):
(JSC::JSObject::setIndexQuicklyForTypedArray):
- 2:13 PM Changeset in webkit [248797] by
-
- 41 edits in trunk/Source/WebKit
Functions with no parameters in WebKit/Shared/API/c and WebKit/UIProcess/API/C are
missing a "void" specifier in their argument list
https://bugs.webkit.org/show_bug.cgi?id=200826
Patch by Kate Cheney <Kate Cheney> on 2019-08-16
Reviewed by Chris Dumez.
Added void to indicate functions with no arguments to satisfy compiler errors.
This error came to light when fixing another patch.
- Shared/API/c/WKArray.h:
- Shared/API/c/WKConnectionRef.h:
- Shared/API/c/WKContextMenuItem.h:
- Shared/API/c/WKData.h:
- Shared/API/c/WKDictionary.h:
- Shared/API/c/WKErrorRef.h:
- Shared/API/c/WKMutableArray.h:
- Shared/API/c/WKMutableDictionary.h:
- Shared/API/c/WKNumber.h:
- Shared/API/c/WKPluginInformation.h:
- Shared/API/c/WKRenderLayer.h:
- Shared/API/c/WKRenderObject.h:
- Shared/API/c/WKSecurityOriginRef.h:
- Shared/API/c/WKSerializedScriptValue.h:
- Shared/API/c/WKString.h:
- Shared/API/c/WKURL.h:
- Shared/API/c/WKURLRequest.h:
- Shared/API/c/WKURLResponse.h:
- Shared/API/c/WKUserContentURLPattern.h:
- UIProcess/API/C/WKBackForwardListItemRef.h:
- UIProcess/API/C/WKBackForwardListRef.h:
- UIProcess/API/C/WKContext.h:
- UIProcess/API/C/WKFormSubmissionListener.h:
- UIProcess/API/C/WKFrame.h:
- UIProcess/API/C/WKFramePolicyListener.h:
- UIProcess/API/C/WKGeolocationManager.h:
- UIProcess/API/C/WKGeolocationPermissionRequest.h:
- UIProcess/API/C/WKGeolocationPosition.h:
- UIProcess/API/C/WKHitTestResult.h:
- UIProcess/API/C/WKNavigationDataRef.h:
- UIProcess/API/C/WKOpenPanelParametersRef.h:
- UIProcess/API/C/WKOpenPanelResultListener.h:
- UIProcess/API/C/WKPage.h:
- UIProcess/API/C/WKPageConfigurationRef.h:
- UIProcess/API/C/WKPageGroup.h:
- UIProcess/API/C/WKPageUIClient.h:
- UIProcess/API/C/WKPreferencesRef.h:
- UIProcess/API/C/WKUserContentControllerRef.h:
- UIProcess/API/C/WKUserMediaPermissionRequest.h:
- UIProcess/API/C/WKUserScriptRef.h:
- 2:03 PM Changeset in webkit [248796] by
-
- 4 edits1 copy in trunk
[Re-land] ProxyObject should not be allow to access its target's private properties.
https://bugs.webkit.org/show_bug.cgi?id=200739
<rdar://problem/53972768>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/proxy-should-not-be-allowed-to-access-private-properties-of-target.js: Copied from JSTests/stress/proxy-should-not-be-allowed-to-access-private-properties-of-target.js.
- stress/proxy-with-private-symbols.js:
Source/JavaScriptCore:
Re-landing this after r200829 which resolves the test262 failure uncovered by this patch.
- runtime/ProxyObject.cpp:
(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::performPut):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performDefineOwnProperty):
- 1:59 PM Changeset in webkit [248795] by
-
- 10 edits4 adds in trunk
[WHLSL] Make operator== native and add bool matrices
https://bugs.webkit.org/show_bug.cgi?id=200749
Reviewed by Myles C. Maxfield.
Source/WebCore:
This patch makes operator== native and implements them the right way
for vectors and matrices. Previously, we would just return a single
boolean indicating if all elements were equal. However, to be compatible
with HLSL, we should return a boolean vector or matrix, indicating which
elements are equal or not. This patch makes this change, and in the process,
adds a bool matrix.
This patch also:
- Lifts the requirement that all comparison operators in user code must return bool.
We no longer follow this in the standard library, and don't want to require user
code to do so. It seems reasonable to have a custom comparison operator
which returns an enum of the form { LessThan, Equal, GreaterThan, Incomparable }
- Changes the native operator inliner to no longer assume that operations on
matrices return the same type as the arguments. This was true for math, but
is not true for comparison operators.
Tests: webgpu/whlsl/bool-matrix.html
webgpu/whlsl/operator-equal-equal.html
- Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
(WebCore::WHLSL::Metal::inlineNativeFunction):
- Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.cpp:
(WebCore::WHLSL::Metal::writeNativeType):
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::checkOperatorOverload):
- Modules/webgpu/WHLSL/WHLSLIntrinsics.cpp:
(WebCore::WHLSL::Intrinsics::addMatrix):
- Modules/webgpu/WHLSL/WHLSLIntrinsics.h:
(WebCore::WHLSL::Intrinsics::WTF_ARRAY_LENGTH):
- Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:
LayoutTests:
- webgpu/whlsl/bool-matrix-expected.txt: Added.
- webgpu/whlsl/bool-matrix.html: Added.
- webgpu/whlsl/builtin-vectors.html:
- webgpu/whlsl/matrices-spec-tests.html:
- webgpu/whlsl/operator-equal-equal-expected.txt: Added.
- webgpu/whlsl/operator-equal-equal.html: Added.
- 1:56 PM Changeset in webkit [248794] by
-
- 3 edits in trunk/Source/WebKit
LocalStorageDatabase does not need to subclass ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=200822
Reviewed by Geoff Garen.
LocalStorageDatabase does not need to subclass ThreadSafeRefCounted, it is only ref'd / deref'd by the StorageArea
on the com.apple.WebKit.WebStorage serial WorkQueue, and in LocalStorageDatabase::scheduleDatabaseUpdate() on the
same WorkQueue.
- NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::LocalStorageDatabase):
(WebKit::LocalStorageDatabase::~LocalStorageDatabase):
- NetworkProcess/WebStorage/LocalStorageDatabase.h:
- 1:44 PM Changeset in webkit [248793] by
-
- 3 edits1 add in trunk
[JSC] Promise.prototype.finally should accept non-promise objects
https://bugs.webkit.org/show_bug.cgi?id=200829
Reviewed by Mark Lam.
JSTests:
- stress/promise-finally-should-accept-non-promise-objects.js: Added.
(shouldBe):
(Thenable):
(Thenable.prototype.then):
Source/JavaScriptCore:
According to the Promise.prototype.finally spec step 2[1], we should check @isObject instead of @isPromise,
since Promise.prototype.finally should accept thenable objects that are defined by user libraries (like, bluebird for example).
This patch changes this check to the specified one.
[1]: https://tc39.es/proposal-promise-finally/
- builtins/PromisePrototype.js:
(finally):
- 1:43 PM Changeset in webkit [248792] by
-
- 11 edits in trunk/Source/WebKit
Many WebStorage classes do not need to subclass ThreadSafeRefCounted
https://bugs.webkit.org/show_bug.cgi?id=200821
Reviewed by Geoffrey Garen.
Many WebStorage classes do not need to subclass ThreadSafeRefCounted. They never get ref'd or deref'd.
- NetworkProcess/WebStorage/LocalStorageNamespace.cpp:
(WebKit::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::LocalStorageNamespace::clearAllStorageAreas):
- NetworkProcess/WebStorage/LocalStorageNamespace.h:
- NetworkProcess/WebStorage/SessionStorageNamespace.cpp:
(WebKit::SessionStorageNamespace::getOrCreateStorageArea):
- NetworkProcess/WebStorage/SessionStorageNamespace.h:
- NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::clone const):
- NetworkProcess/WebStorage/StorageArea.h:
- NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::createLocalStorageArea):
(WebKit::StorageManager::createTransientLocalStorageArea):
(WebKit::StorageManager::createSessionStorageArea):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateSessionStorageNamespace):
- NetworkProcess/WebStorage/StorageManager.h:
- NetworkProcess/WebStorage/TransientLocalStorageNamespace.cpp:
(WebKit::TransientLocalStorageNamespace::getOrCreateStorageArea):
- NetworkProcess/WebStorage/TransientLocalStorageNamespace.h:
- 1:33 PM Changeset in webkit [248791] by
-
- 2 edits in trunk/Source/WebKit
Long pressing images with transparent backgrounds in dark mode causes a black background to appear around the image content
https://bugs.webkit.org/show_bug.cgi?id=200827
<rdar://53933379>
Reviewed by Tim Horton.
Set a clear color when there is no provided background.
- UIProcess/ios/WKContentViewInteraction.mm:
(createTargetedPreview):
- 1:24 PM Changeset in webkit [248790] by
-
- 4 edits2 adds in trunk
[ContentChangeObserver] Add ContentChangeObserver::elementDidBecomeHidden
https://bugs.webkit.org/show_bug.cgi?id=200819
Source/WebCore:
Reviewed by Simon Fraser.
r248750 started tracking candidate elements that become hidden through renderer destruction. This patch expands the check for other visibility style changes.
<rdar://problem/54400223>
Test: fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden3.html
- page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::rendererWillBeDestroyed):
(WebCore::ContentChangeObserver::elementDidBecomeHidden):
(WebCore::ContentChangeObserver::StyleChangeScope::~StyleChangeScope):
- page/ios/ContentChangeObserver.h:
LayoutTests:
<rdar://problem/54400223>
Reviewed by Simon Fraser.
- fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden3-expected.txt: Added.
- fast/events/touch/ios/content-observation/going-from-hidden-to-visible-and-to-hidden3.html: Added.
- 1:17 PM Changeset in webkit [248789] by
-
- 2 edits in branches/safari-608-branch/LayoutTests
Landing TestExpectation Changes for rdar://52594556 and rdar://52557916.
Unreviewed Test Gardening.
- platform/mac/TestExpectations:
- 1:12 PM Changeset in webkit [248788] by
-
- 2 edits in trunk
[Win] WebCoreTestSupport is too big to link
https://bugs.webkit.org/show_bug.cgi?id=200820
Reviewed by Don Olmstead.
- Source/cmake/OptionsWin.cmake:
As with WebCore itself, build WebCoreTestSupport as an object library when unified builds are disabled
(and we haven't explicitly asked to build it as a shared library).
- 1:09 PM Changeset in webkit [248787] by
-
- 7 edits in trunk
Promise constructor should check argument before Construct
https://bugs.webkit.org/show_bug.cgi?id=198976
Patch by Alexey Shvayka <Alexey Shvayka> on 2019-08-16
Reviewed by Ross Kirsling.
JSTests:
- stress/create-subclass-structure-may-throw-exception-when-getting-prototype.js: Fix test.
- stress/create-subclass-structure-might-throw.js: Fix test.
- test262/expectations.yaml: Mark 2 test cases as passing.
Source/JavaScriptCore:
Check if argument is a function before invoking
createSubclassStructure.
(step 2 of https://tc39.es/ecma262/#sec-promise-executor)
- builtins/PromiseOperations.js:
(globalPrivate.initializePromise): Remove typeof check.
- runtime/JSPromiseConstructor.cpp:
(JSC::constructPromise): Add isFunction check.
- 1:09 PM Changeset in webkit [248786] by
-
- 4 edits1 delete in trunk
Unreviewed, rolling out r248709.
Caused test/built-ins/Promise/prototype/finally/this-value-
non-promise.js to fail on test262 bot
Reverted changeset:
"ProxyObject should not be allow to access its target's
private properties."
https://bugs.webkit.org/show_bug.cgi?id=200739
https://trac.webkit.org/changeset/248709
- 12:50 PM Changeset in webkit [248785] by
-
- 5 edits in trunk
Web Inspector: JavaScript formatting of single statement arrow function can be poor
https://bugs.webkit.org/show_bug.cgi?id=200800
Reviewed by Ross Kirsling.
Source/WebInspectorUI:
- UserInterface/Workers/Formatter/EsprimaFormatter.js:
(EsprimaFormatter.prototype._isLikelyToHaveNewline):
(EsprimaFormatter.prototype._handleTokenAtNode):
Better heuristic for single statement arrow functions.
LayoutTests:
- inspector/formatting/resources/javascript-tests/arrow-functions-expected.js:
- inspector/formatting/resources/javascript-tests/arrow-functions.js:
Add a few additional complex single statement arrow function test cases.
- 12:43 PM Changeset in webkit [248784] by
-
- 24 edits in trunk/Source
Split tabIndex computation for DOM and the rest of WebCore
https://bugs.webkit.org/show_bug.cgi?id=200806
Reviewed by Chris Dumez.
Source/WebCore:
This patch renames Element::tabIndex to Element::tabIndexForBindings and migrates its usage in
WebCore outside JS bindings code to: tabIndexSetExplicitly, which now returns Optional<int>,
and shouldBeIgnoredInSequentialFocusNavigation which returns true whenever the old tabIndex
function used to return -1.
Instead of overriding Element::tabIndex, each subclass of element now overrides defaultTabIndex
corresponding to the concept of the default value of tabIndex IDL attribute defined at:
https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute
No new tests since there should be no observable behavior change.
- dom/Element.cpp:
(WebCore::Element::tabIndexSetExplicitly const): Now returns Optional<int> instead of bool.
(WebCore::Element::defaultTabIndex const): Added. Return -1 here. HTMLElement and SVGElement
manually override tabIndex to implement this behavior. Now MathMLElement overrides this function
to return 0 instead, which is arguably a bug.
(WebCore::Element::supportsFocus const): Convert Optional<int> to bool.
(WebCore::Element::tabIndexForBindings const): Renamed from tabIndex. Migrated the code in
HTMLElement::tabIndex and SVGElement::tabIndex here. Note all overrides of HTMLElement::tabIndex
and SVGElement::tabIndex below were skipping supportsFocus check and using 0 as the default value.
This is now accomplished by having an explicit check defaultTabIndex returning 0. MathMLElement
overrides defaultTabIndex so it continues to use the old logic. All this complexity should go away
in webkit.org/b/199606.
(WebCore::Element::setTabIndexForBindings): Renamed from setTabIndex.
(WebCore::Element::isKeyboardFocusable const): Checks shouldBeIgnoredInSequentialFocusNavigation
in lieu of calling Element::tabIndexForBindings.
- dom/Element.h:
(WebCore::Element::shouldBeIgnoredInSequentialFocusNavigation const): Added. Returns true if the
old implementation of Element::tabIndex would have returned -1 due to supportsFocus returning false.
- dom/ElementRareData.h:
(WebCore::ElementRareData::tabIndex const): Made this function return Optional<int>. Note that
ElementRareData continue to store a bit field and int for more efficient packing.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::defaultTabIndex const): Replaced tabIndex.
- html/HTMLAnchorElement.h:
- html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::isFocusable const):
- html/HTMLElement.cpp:
(WebCore::HTMLElement::tabIndex const): Deleted. The logic is now in Element::tabIndex itself.
- html/HTMLElement.h:
- html/HTMLElement.idl:
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::defaultTabIndex const): Replaced tabIndex.
- html/HTMLFormControlElement.h:
- mathml/MathMLElement.cpp:
(WebCore::MathMLElement::defaultTabIndex const): Replaced tabIndex. This is probably a bug since
this would put every MathML element in the sequential navigation order regardless of whether it
has tabIndex set or not.
- mathml/MathMLElement.h:
- page/FocusController.cpp:
(WebCore::tabIndexForElement): Added. Computes the "effective" tab index FocusController uses.
(WebCore::shadowAdjustedTabIndex):
(WebCore::nextElementWithGreaterTabIndex): This code should use shadowAdjustedTabIndex instead
but keeping the old behavior for now.
- svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultTabIndex const): Replaced tabIndex.
- svg/SVGAElement.h:
- svg/SVGElement.cpp:
(WebCore::SVGElement::tabIndex const): Deleted. The logic is now in Element::tabIndex itself.
- svg/SVGElement.h:
(WebCore::SVGElement::hasTagName const):
- svg/SVGElement.idl:
Source/WebKit:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp:
(webkit_dom_html_element_get_tab_index):
(webkit_dom_html_element_set_tab_index):
Source/WebKitLegacy/mac:
- DOM/DOMHTMLElement.mm:
(-[DOMHTMLElement tabIndex]):
(-[DOMHTMLElement setTabIndex:]):
- 12:38 PM Changeset in webkit [248783] by
-
- 11 edits in trunk/Source
Unreviewed restabilization of non-unified build.
Source/WebCore:
- Modules/indexeddb/server/IDBSerializationContext.cpp:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
- fileapi/ThreadableBlobRegistry.h:
- loader/SinkDocument.cpp:
Source/WebKit:
- NetworkProcess/NetworkCORSPreflightChecker.h:
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::StorageManagerSet):
- Shared/FrameInfoData.cpp:
(WebKit::FrameInfoData::decode):
- WebProcess/WebStorage/StorageNamespaceImpl.cpp:
- WebProcess/WebStorage/StorageNamespaceImpl.h:
- 12:35 PM Changeset in webkit [248782] by
-
- 3 edits1 copy1 move in trunk/Source/WebInspectorUI
Web Inspector: there should be an opposite icon for Eye.svg when we want to hide things instead of showing them
https://bugs.webkit.org/show_bug.cgi?id=200736
Reviewed by Joseph Pecoraro.
We currently use Eye.svg for disabling, or turning "off", Shader Programs, but it's not very
clear that clicking on the eye (which looks like "show me this", not "hide this") will do
that. Furthermore, a greyed out version also isn't clear that the Shader Program is disabled,
instead making the user think that the disable toggle is somehow "not working".
The new hide icon is clearer, as it uses a strikethrough, rather than some shading/greying.
- UserInterface/Views/ShaderProgramTreeElement.css:
(.item.shader-program .status > img):
(.item.shader-program.disabled:matches:hover .status > img): Added.
(.item.shader-program.disabled > :not(.status)): Added.
(.item.shader-program.disabled > *): Deleted.
- UserInterface/Images/Hide.svg: Added.
- UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property .getter):
- UserInterface/Images/Show.svg: Renamed from UserInterface/Images/Eye.svg.
- 12:15 PM Changeset in webkit [248781] by
-
- 2 edits in trunk/LayoutTests
Typo correction for han-quotes expectation entry.
rdar://52594556
Unreviewed Test Gardening.
- platform/mac/TestExpectations: Test is an ImageOnlyFailure, not a
text Failure. Corrected mistake.
- 11:22 AM Changeset in webkit [248780] by
-
- 4 edits in trunk/Source/WebKit
StorageManager does not need to subclass RefCounted
https://bugs.webkit.org/show_bug.cgi?id=200818
Reviewed by Geoffrey Garen.
StorageManager does not need to subclass RefCounted. It is owned by the StorageManagerSet
and is never ref'd / deref'd.
- NetworkProcess/WebStorage/StorageManager.h:
(WebKit::StorageManager::create): Deleted.
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::add):
- NetworkProcess/WebStorage/StorageManagerSet.h:
- 11:15 AM Changeset in webkit [248779] by
-
- 6 edits in trunk/Source/WebKit
Clarify StorageManagerSet / StorageManager threading model after r248734
https://bugs.webkit.org/show_bug.cgi?id=200817
Reviewed by Geoffrey Garen.
Clarify StorageManagerSet / StorageManager threading model after r248734. StorageManager is now
a background thread object but it still calls its completion handlers on the main thread, which
is very error prone. The pattern in WebKit for thread safety is that methods should always call
their completion handler of the thread / queue they were called on themselves. Doing differently
has caused so many thread-safety bugs in the past.
- NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::getSessionStorageOrigins const):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins const):
(WebKit::StorageManager::getLocalStorageOriginDetails const):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
(WebKit::StorageManager::getSessionStorageOrigins): Deleted.
(WebKit::StorageManager::getLocalStorageOrigins): Deleted.
(WebKit::StorageManager::getLocalStorageOriginDetails): Deleted.
- NetworkProcess/WebStorage/StorageManager.h:
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::getSessionStorageOrigins):
(WebKit::StorageManagerSet::deleteSessionStorage):
(WebKit::StorageManagerSet::deleteSessionStorageForOrigins):
(WebKit::StorageManagerSet::getLocalStorageOrigins):
(WebKit::StorageManagerSet::deleteLocalStorageModifiedSince):
(WebKit::StorageManagerSet::deleteLocalStorageForOrigins):
(WebKit::StorageManagerSet::getLocalStorageOriginDetails):
- 10:55 AM Changeset in webkit [248778] by
-
- 2 edits in trunk/Source/WebKit
StorageManagerSet constructor should not be public
https://bugs.webkit.org/show_bug.cgi?id=200816
Reviewed by Geoffrey Garen.
StorageManagerSet constructor should not be public since it subclasses ThreadSafeRefCounted and
has a factory method.
- NetworkProcess/WebStorage/StorageManagerSet.h:
- 10:47 AM Changeset in webkit [248777] by
-
- 2 edits in trunk/LayoutTests
rdar://52557916 (REGRESSION: fast/css/paint-order.html and fast/css/paint-order-shadow.html are failing)
Unreviewed Test Gardening.
- platform/mac/TestExpectations: Corrected typo in previous entry and
added test expectations for fast/css/paint-order.html and fast/css/paint-order-shadow.html
- 10:23 AM Changeset in webkit [248776] by
-
- 4 edits1 add in trunk
REGRESSION (r248436): WKWebView doesn’t respect isOpaque setting in NIB.
https://bugs.webkit.org/show_bug.cgi?id=200802
rdar://problem/54357818
Reviewed by Tim Horton.
Source/WebKit:
Tests: WKWebView.IsOpaqueDefault, WKWebView.SetOpaqueYes, WKWebView.SetOpaqueNo, WKWebView.IsOpaqueYesSubclassOverridden,
WKWebView.IsOpaqueNoSubclassOverridden, WKWebView.IsOpaqueYesDecodedFromArchive, WKWebView.IsOpaqueNoDecodedFromArchive,
WKWebView.IsOpaqueDrawsBackgroundYesConfiguration, WKWebView.IsOpaqueDrawsBackgroundNoConfiguration.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]): Call _setOpaqueInternal:NO instead of self.opaque = NO.
(-[WKWebView _setOpaqueInternal:]): Added. Moved code from setOpaque:.
(-[WKWebView setOpaque:]): Call _setOpaqueInternal:.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Added WKWebViewOpaque.mm.
- TestWebKitAPI/Tests/ios/WKWebViewOpaque.mm: Added.
(-[OpaqueTestWKWebView isOpaque]): Added.
(-[NonOpaqueTestWKWebView isOpaque]): Added.
(isOpaque): Added.
(TEST): Added WKWebView.IsOpaqueDefault, WKWebView.SetOpaqueYes, WKWebView.SetOpaqueNo, WKWebView.IsOpaqueYesSubclassOverridden,
WKWebView.IsOpaqueNoSubclassOverridden, WKWebView.IsOpaqueYesDecodedFromArchive, WKWebView.IsOpaqueNoDecodedFromArchive,
WKWebView.IsOpaqueDrawsBackgroundYesConfiguration, WKWebView.IsOpaqueDrawsBackgroundNoConfiguration.
- 10:17 AM Changeset in webkit [248775] by
-
- 2 edits in trunk/LayoutTests
rdar://52594556 (Layout test fast/text/international/system-language/han-quotes.html is failing)
Unreviewed Test Gardening.
- platform/mac/TestExpectations: Added expectation for fast/text/international/system-language/han-quotes.html
- 9:59 AM Changeset in webkit [248774] by
-
- 5 edits in trunk/LayoutTests
Unreviewed, fix test failure and add additional tests after r248753
- inspector/unit-tests/url-utilities.html:
- inspector/unit-tests/url-utilities-expected.txt:
Add additional tests of
WI.displayNameForURLwith paths, query strings, and fragments.
- inspector/css/add-rule.html:
- inspector/css/add-rule-expected.txt:
The
doNotCreateIfMissingparameter was removed frompreferredInspectorStyleSheetForFrame.
All the test is trying to do is check that there's not an existing Inspector Style Sheet, so
instead just check that the list of Inspector Style Sheets is empty.
- 9:54 AM Changeset in webkit [248773] by
-
- 6 edits in trunk/Source/WebInspectorUI
Web Inspector: rename "Invalid Characters" to "Invisible Characters" for clarity
https://bugs.webkit.org/show_bug.cgi?id=200808
Reviewed by Joseph Pecoraro.
- UserInterface/Base/Setting.js:
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createGeneralSettingsView):
- UserInterface/Base/Main.js:
(setInvisibleCharacterClassName): Added.
(setInvalidCharacterClassName): Deleted.
- UserInterface/Views/CodeMirrorOverrides.css:
(.show-invisible-characters .CodeMirror .cm-invalidchar): Added.
(.show-invalid-characters .CodeMirror .cm-invalidchar): Deleted.
- Localizations/en.lproj/localizedStrings.js:
- 8:48 AM Changeset in webkit [248772] by
-
- 3 edits2 adds in trunk
Content in <iframe> should override "touch-action" set in embedding document
https://bugs.webkit.org/show_bug.cgi?id=200204
<rdar://problem/54355249>
Reviewed by Antoine Quint.
Source/WebCore:
Test: pointerevents/ios/touch-action-region-frame.html
Subframes where content doesn't use any touch-action properties won't generate event region for their main layer.
As a result the touch-action property gets computed in UI process to the parent frames touch-action (instead of 'auto').
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateEventRegion):
Generate event region for the main layer of subframes.
LayoutTests:
- pointerevents/ios/touch-action-region-frame-expected.txt: Added.
- pointerevents/ios/touch-action-region-frame.html: Added.
- 8:04 AM Changeset in webkit [248771] by
-
- 7 edits1 add2 deletes in trunk/LayoutTests
Update WebGL test expectations for WebKit WPE
https://bugs.webkit.org/show_bug.cgi?id=200765
Patch by Chris Lord <Chris Lord> on 2019-08-16
Reviewed by Carlos Alberto Lopez Perez.
Establish a new baseline for WPE backend WebGL test results.
- platform/wpe/TestExpectations:
- platform/wpe/webgl/2.0.0/conformance/extensions/get-extension-expected.txt:
- platform/wpe/webgl/2.0.0/conformance/extensions/oes-texture-half-float-with-image-data-expected.txt: Removed.
- platform/wpe/webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance-expected.txt:
- platform/wpe/webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test-expected.txt:
- platform/wpe/webgl/2.0.0/conformance2/extensions/promoted-extensions-in-shaders-expected.txt:
- platform/wpe/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt: Removed.
- platform/wpe/webgl/2.0.0/conformance2/renderbuffers/multisample-with-full-sample-counts-expected.txt: Added.
- platform/wpe/webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization-expected.txt:
- 7:39 AM Changeset in webkit [248770] by
-
- 2 edits in trunk/Tools
[ews] Add build steps for Windows Factory
https://bugs.webkit.org/show_bug.cgi?id=200813
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/factories.py:
(WindowsFactory.init):
- 7:37 AM Changeset in webkit [248769] by
-
- 9 edits2 moves in trunk/Source/WebCore
[GTK][WPE] Move TextureMapperAnimation to the nicosia namespace as Nicosia::Animation
https://bugs.webkit.org/show_bug.cgi?id=200707
Reviewed by Žan Doberšek.
Move TextureMapperAnimation to Nicosia::Animation so it can be used by non TextureMapper
code paths.
- platform/TextureMapper.cmake:
- platform/graphics/nicosia/NicosiaAnimation.cpp: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.cpp.
(Nicosia::shouldReverseAnimationValue):
(Nicosia::normalizedAnimationValue):
(Nicosia::normalizedAnimationValueForFillsForwards):
(Nicosia::timingFunctionForAnimationValue):
(Nicosia::Animation::Animation):
(Nicosia::Animation::apply):
(Nicosia::Animation::applyKeepingInternalState):
(Nicosia::Animation::pause):
(Nicosia::Animation::resume):
(Nicosia::Animation::computeTotalRunningTime):
(Nicosia::Animation::isActive const):
(Nicosia::Animation::applyInternal):
(Nicosia::Animations::add):
(Nicosia::Animations::remove):
(Nicosia::Animations::pause):
(Nicosia::Animations::suspend):
(Nicosia::Animations::resume):
(Nicosia::Animations::apply):
(Nicosia::Animations::applyKeepingInternalState):
(Nicosia::Animations::hasActiveAnimationsOfType const):
(Nicosia::Animations::hasRunningAnimations const):
(Nicosia::Animations::getActiveAnimations const):
- platform/graphics/nicosia/NicosiaAnimation.h: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperAnimation.h.
(Nicosia::Animation::Animation):
(Nicosia::Animation::keyframes const):
(Nicosia::Animation::timingFunction const):
(Nicosia::Animations::animations const):
(Nicosia::Animations::animations):
- platform/graphics/nicosia/NicosiaPlatformLayer.h:
- platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::addAnimation):
- platform/graphics/texmap/GraphicsLayerTextureMapper.h:
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::setAnimations):
(WebCore::TextureMapperLayer::syncAnimations):
- platform/graphics/texmap/TextureMapperLayer.h:
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::addAnimation):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
- 7:33 AM Changeset in webkit [248768] by
-
- 3 edits in trunk/Tools
[ews] Report machine uptime in PrintConfiguration
https://bugs.webkit.org/show_bug.cgi?id=200812
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(PrintConfiguration): Added uptime command.
- BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
- 2:22 AM Changeset in webkit [248767] by
-
- 2 edits in trunk/Tools
Add shared-mime-info to WPE WebKit jhbuild
https://bugs.webkit.org/show_bug.cgi?id=200768
Patch by Chris Lord <Chris Lord> on 2019-08-16
Reviewed by Carlos Alberto Lopez Perez.
- wpe/jhbuild.modules:
- 2:14 AM Changeset in webkit [248766] by
-
- 8 edits in trunk/Source/WebInspectorUI
Web Inspector: RTL: Console should be always LTR
https://bugs.webkit.org/show_bug.cgi?id=200482
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ConsoleCommandView.js:
(WI.ConsoleCommandView.prototype.render):
- UserInterface/Views/ConsoleMessageView.css:
- UserInterface/Views/ConsoleMessageView.js:
(WI.ConsoleMessageView.prototype.render):
Make console messages always LTR.
- UserInterface/Views/LogContentView.js:
(WI.LogContentView.prototype._keyDown):
Since the console is always LTR now, we can remove code that flips left and right
arrow keys.
- UserInterface/Views/ObjectTreeView.css:
JS objects should always be LTR.
- UserInterface/Views/TreeElement.js:
Look at "direction" CSS property because Element's text direction can be LTR even
whenWI.resolvedLayoutDirection()is RTL.
(WI.TreeElement.prototype.isEventWithinDisclosureTriangle):
- UserInterface/Views/TreeOutline.css:
(body[dir=ltr] .tree-outline .item :matches(.disclosure-button, .icon),):
(body[dir=rtl] [dir=ltr] .tree-outline .item .disclosure-button):
- 1:45 AM Changeset in webkit [248765] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Elements: setting a breakpoint on a specific listener should enable the event listener
https://bugs.webkit.org/show_bug.cgi?id=200551
Reviewed by Joseph Pecoraro.
- UserInterface/Views/EventListenerSectionGroup.js:
(WI.EventListenerSectionGroup):
- 12:54 AM Changeset in webkit [248764] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, speculative build fix for WinCairo, part 2
https://bugs.webkit.org/show_bug.cgi?id=200526
- Modules/indexeddb/server/IDBSerializationContext.h:
- 12:46 AM Changeset in webkit [248763] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, speculative build fix for WinCairo
https://bugs.webkit.org/show_bug.cgi?id=200526
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.h: