Timeline
Mar 29, 2020:
- 8:22 PM Changeset in webkit [259186] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Gardening some tests related to vertical text baselines
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 7:50 PM Changeset in webkit [259185] by
-
- 2 edits in trunk/LayoutTests
[WPE] Mark WebGL tests as failures while we can't create a context
Unreviewed test gardening.
- platform/wpe/TestExpectations:
- 6:06 PM Changeset in webkit [259184] by
-
- 65 edits1 add1 delete in trunk
Move TextIterator::rangeFromLocationAndLength off of live ranges
https://bugs.webkit.org/show_bug.cgi?id=209408
Source/WebCore:
Reviewed by Antti Koivisto.
- Put CharacterRange into a header, CharacterRange.h.
- Replaced CharacterOffset with direct uses of uint64_t. Because this can be a single offset into an entire document, use a 64-bit integer so we don't limit an entire document to 232 characters; in theory this makes it so we can support a document with tons of text nodes that add up to more than 232.
- Because CharacterRange uses 64-bit integers we can now convert more easily to and from NSRange and CFRange on Cocoa platforms.
- Headers.cmake: Added CharacterRange.h.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
Use CharacterRange, resolveCharacterLocation/Range.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetSpelling): Ditto.
(-[WebAccessibilityObjectWrapper _textMarkerForIndex:]): Ditto.
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::collectTextRanges): Take SimpleRange.
(WebCore::DocumentMarkerController::addMarker): Ditto.
(WebCore::DocumentMarkerController::addDictationResultMarker): Ditto.
(WebCore::DocumentMarkerController::addPlatformTextCheckingMarker): Ditto.
- dom/DocumentMarkerController.h: Updated for above changes.
- dom/Position.h: Export createLegacyEditingPosition so it can be used
outside of WebCore.
- dom/SimpleRange.cpp:
(WebCore::fastIsCharacterData): Added. Could be moved to the Node class.
(WebCore::length): Added. Could be moved to the Node class.
(WebCore::makeRangeSelectingNodeContents): Added. Analogous to the
Range::selectNodeContents function.
- dom/SimpleRange.h: Updated for the above.
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::applyAlternativeTextToRange):
Use CharacterRange, resolveCharacterLocation/Range.
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle): Ditto.
- editing/CharacterRange.h: Added.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
Use CharacterRange, resolveCharacterLocation/Range.
- editing/Editing.cpp:
(WebCore::visiblePositionForIndex): Ditto.
- editing/Editor.cpp:
(WebCore::Editor::advanceToNextMisspelling): Ditto.
(WebCore::correctSpellcheckingPreservingTextCheckingParagraph): Ditto.
(WebCore::Editor::markAndReplaceFor): Ditto.
(WebCore::Editor::changeBackToReplacedString): Ditto.
(WebCore::Editor::scanRangeForTelephoneNumbers): Ditto.
(WebCore::Editor::rangeForTextCheckingResult const): Ditto.
- editing/TextCheckingHelper.cpp:
(WebCore::findGrammaticalErrors): Ditto.
(WebCore::findMisspellings): Ditto.
(WebCore::TextCheckingParagraph::invalidateParagraphRangeValues): Ditto.
(WebCore::TextCheckingParagraph::rangeLength const): Ditto.
(WebCore::TextCheckingParagraph::subrange const): Ditto.
(WebCore::TextCheckingParagraph::offsetTo const): Ditto.
(WebCore::TextCheckingParagraph::text const): Ditto. Also use StringView.
(WebCore::TextCheckingParagraph::checkingStart const): Ditto.
(WebCore::TextCheckingParagraph::checkingEnd const): Ditto. Also compute
this by adding start and length, and don't cache it.
(WebCore::TextCheckingParagraph::checkingLength const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementStart const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementLength const): Ditto.
(WebCore::TextCheckingHelper::findFirstMisspelling): Ditto.
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar): Ditto.
(WebCore::TextCheckingHelper::findFirstGrammarDetail const): Ditto.
(WebCore::TextCheckingHelper::findFirstBadGrammar const): Ditto.
(WebCore::TextCheckingHelper::isUngrammatical const): Ditto.
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange const): Ditto.
(WebCore::TextCheckingHelper::markAllMisspellings): Ditto.
(WebCore::TextCheckingHelper::markAllBadGrammar): Ditto.
(WebCore::checkTextOfParagraph): Ditto.
- editing/TextCheckingHelper.h: Updated for the above. Also got rid of
m_checkingEnd since it's sufficient to cache the start and the length.
Should come back later and use CharacterRange instead of 2x CharacterCount.
- editing/TextIterator.cpp:
(WebCore::characterCount): Use uint64_t.
(WebCore::TextIterator::subrange): Deleted.
(WebCore::TextIterator::rangeFromLocationAndLength): Deleted.
(WebCore::clampedAdd): Added. Helps implement resolveCharacterRange in a way
that can work with any character count without concern about overflow.
(WebCore::resolveCharacterRange): Added. Replaces both subrange and
rangeFromLocationAndLength, using an algorithm close to the one from
the latter function, including workarounds it had. Replaced the boolean
"forSelectionPreservation" with the TextIteratorBehavior options, which seems
to make good sense at all the call sites.
(WebCore::resolveCharacterLocation): Added. Like resolveCharacterRange, but
instead of resolving CharacterRange to SimpleRange, resolves a character location
to a BoundaryPoint. Made a separate function for this in case we later refactor
for efficiency, but for now this simply calls resolveCharacterRange with a zero
length range.
- editing/TextIterator.h: Moved CharacterCount and CharagerRange into a
separate header. Replaced TextIterator::rangeFromLocationAndLength and
TextIterator::subrange with resolveCharacterLocation and resolveCharacterRange.
- editing/cocoa/DataDetection.mm:
(WebCore::detectItemAtPositionWithRange): Use CharacterRange,
resolveCharacterLocation/Range.
(WebCore::DataDetection::detectContentInRange): Ditto.
- editing/cocoa/DictionaryLookup.mm:
(WebCore::DictionaryLookup::rangeForSelection): Ditto.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
- editing/ios/DictationCommandIOS.cpp:
(WebCore::DictationCommandIOS::doApply): Ditto.
- editing/mac/DictionaryLookupLegacy.mm:
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
- page/EventHandler.cpp:
(WebCore::textDistance): Ditto.
- page/Page.cpp:
(WebCore::replaceRanges): Ditto.
(WebCore::Page::replaceRangesWithText): Ditto.
- platform/text/TextChecking.h: Ditto.
- testing/Internals.cpp:
(WebCore::Internals::rangeFromLocationAndLength): Ditto.
(WebCore::Internals::subrange): Ditto.
(WebCore::Internals::handleAcceptedCandidate): Ditto.
- testing/Internals.h: Made location and length unsigned rather than signed.
- testing/Internals.idl: Ditto.
Source/WebKit:
Reviewed by Antti Koivisto.
- Shared/EditingRange.cpp:
(WebKit::EditingRange::toRange): Use CharacterRange,
resolveCharacterLocation/Range.
- Shared/EditingRange.h: Added a FIXME about replacing with CharacterRange.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<CharacterRange>::encode): Added.
(IPC::ArgumentCoder<CharacterRange>::decode): Added.
(IPC::ArgumentCoder<GrammarDetail>::encode): Updated to use CharacterRange.
(IPC::ArgumentCoder<GrammarDetail>::decode): Ditto.
(IPC::ArgumentCoder<TextCheckingResult>::encode): Ditto.
(IPC::ArgumentCoder<TextCheckingResult>::decode): Ditto.
- Shared/WebCoreArgumentCoders.h: Added CharacterRange.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::textCheckingResultFromNSTextCheckingResult): Use CharacterRange,
resolveCharacterLocation/Range.
- UIProcess/WebGrammarDetail.cpp:
(WebKit::WebGrammarDetail::WebGrammarDetail): Ditto.
- UIProcess/WebGrammarDetail.h:
(WebKit::WebGrammarDetail::location const): Ditto.
(WebKit::WebGrammarDetail::length const): Ditto.
- UIProcess/gtk/TextCheckerGtk.cpp:
(WebKit::TextChecker::checkTextOfParagraph): Ditto.
- UIProcess/ios/TextCheckerIOS.mm:
(WebKit::TextChecker::checkTextOfParagraph): Ditto.
- UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::checkTextOfParagraph): Ditto.
(WebKit::TextChecker::updateSpellingUIWithGrammarString): Ditto.
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
(WebKit::TextCheckingControllerProxy::rangeAndOffsetRelativeToSelection): Ditto.
(WebKit::TextCheckingControllerProxy::replaceRelativeToSelection): Ditto.
(WebKit::TextCheckingControllerProxy::annotatedSubstringBetweenPositions): Ditto.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::deleteSurrounding): Ditto.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPlatformEditorState const): Small tweak.
(WebKit::WebPage::updateSelectionWithDelta): Ditto.
(WebKit::WebPage::requestDocumentEditingContext): Ditto.
Source/WebKitLegacy/mac:
Reviewed by Antti Koivisto.
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::checkTextOfParagraph): Use CharacterRange,
resolveCharacterLocation/Range.
(WebEditorClient::checkGrammarOfString): Ditto.
(core): Ditto.
(WebEditorClient::updateSpellingUIWithGrammarString): Ditto.
(WebEditorClient::handleAcceptedCandidateWithSoftSpaces): Ditto.
- WebView/WebFrame.mm:
(-[WebFrame _convertToDOMRange:rangeIsRelativeTo:]): Ditto.
- WebView/WebView.mm:
(textCheckingResultFromNSTextCheckingResult): Ditto.
Source/WebKitLegacy/win:
Reviewed by Antti Koivisto.
- WebCoreSupport/WebEditorClient.cpp:
(WebEditorClient::checkGrammarOfString): Use CharacterRange,
resolveCharacterLocation/Range.
(WebEditorClient::updateSpellingUIWithGrammarString): Ditto.
- WebView.cpp:
(WebView::firstRectForCharacterRangeForTesting): Ditto.
LayoutTests:
Fix Mac-specific firstrectforcharacterrange-styled.html test
https://bugs.webkit.org/show_bug.cgi?id=205314
<rdar://problem/57990717>
Reviewed by Antti Koivisto.
- accessibility/mac/textmarker-for-index-out-of-bounds-crash-expected.txt:
- accessibility/mac/textmarker-for-index-out-of-bounds-crash.html:
Updated to expect textMarkerForIndex to clamp rather than returning something invalid.
- editing/mac/input/firstrectforcharacterrange-plain-expected.txt:
- editing/mac/input/firstrectforcharacterrange-plain.html:
Updated test output to include what is being tested, not just the test result.
Updated test results to expect clamping rather than an empty rectangle, for values
that are out of bounds. Also got rid of dumping of eidting callbacks since there is
no reason to include them in this test.
- editing/mac/input/firstrectforcharacterrange-styled-expected.txt:
- editing/mac/input/firstrectforcharacterrange-styled.html:
Ditto.
- platform/mac-wk1/TestExpectations: Since our oldest supported release is Mojave, deleted
all rules with Sierra or HighSierra conditionals since those conditions are always false,
and removed any conditionals that said Sierra+, HighSierra+, or Mojave+ because those
conditions are always true. One test, firstrectforcharacterrange-styled.html, had results
checked in that were correct for Mojave but incorrect for Catalina. For that test, the
results are now correct for Catalina, so updated expectations for that.
- platform/mac-wk2/TestExpectations: Ditto. Also some tests that claimed ImageOnlyFailure
are flaky and sometimes passing, so marked them for either Pass or ImageOnlyFailure.
- platform/mac/TestExpectations: Ditto. Also some tests marked Failure were flaky and
sometimes passing, so marked them for either Pass or Failure.
- platform/mac/editing/mac/input/firstrectforcharacterrange-styled-expected.txt: Removed.
This is already a Mac-specific test; it doesn't make sense to have an additional
Mac-specific overridden result since the base result is already Mac-specific.
- platform/mac/fast/text/attributed-substring-from-range-001-expected.txt:
- platform/mac/fast/text/attributed-substring-from-range-001.html:
Updated this test to expect the empty string, not "undefined" for an out of range,
since we now clamp instead of failing in such cases.
- platform/mac/fast/text/attributed-substring-from-range-expected.txt:
- platform/mac/fast/text/attributed-substring-from-range.html:
Ditto.
- 5:48 PM Changeset in webkit [259183] by
-
- 2 edits in trunk/Source/WebKit
Attempt to fix the Mac Catalyst build after r258989
<https://bugs.webkit.org/show_bug.cgi?id=199960>
Remove code that has since been moved to WebPage::platformNeedsLayoutForEditorState().
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getPlatformEditorState const):
- 10:34 AM Changeset in webkit [259182] by
-
- 2 edits in trunk/Source/WebCore
Remove addHTTPOriginIfNeeded calls
https://bugs.webkit.org/show_bug.cgi?id=209127
Patch by Rob Buis <rbuis@igalia.com> on 2020-03-29
Reviewed by Darin Adler.
Remove unused code.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
- 10:29 AM Changeset in webkit [259181] by
-
- 3 edits in trunk/Source/WebCore
[LFC] Replace parent() calls with containingBlock() where applicable.
https://bugs.webkit.org/show_bug.cgi?id=209717
Reviewed by Antti Koivisto.
While they both return the same layout box (parent), it's more correct to call continingBlock().
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isOverflowVisible const):
- layout/tableformatting/TableGrid.cpp:
(WebCore::Layout::TableGrid::appendCell):
- 7:50 AM Changeset in webkit [259180] by
-
- 10 edits in trunk/Source/WebCore
[LFC] Layout::Box::parent() should return const ContainerBox&
https://bugs.webkit.org/show_bug.cgi?id=209400
<rdar://problem/60742432>
Reviewed by Antti Koivisto.
Layout tree is immutable during layout, so every box should be able to return a valid parent (except the ICB, but
class InitialContainingBlock deletes parent() function anyway).
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
- layout/blockformatting/BlockFormattingContextQuirks.cpp:
(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::nextInlineLevelBoxToLayout):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::containingBlock const):
(WebCore::Layout::Box::formattingContextRoot const):
(WebCore::Layout::Box::initialContainingBlock const):
(WebCore::Layout::Box::isOverflowVisible const):
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::parent const):
- layout/layouttree/LayoutIterator.h:
(WebCore::Layout::LayoutBoxTraversal::nextAncestorSibling):
(WebCore::Layout::LayoutBoxTraversal::next):
(WebCore::Layout::Traversal::firstWithin):
(WebCore::Layout::Traversal::next):
(WebCore::Layout::LayoutIterator<T>::traverseNext):
- layout/tableformatting/TableGrid.cpp:
(WebCore::Layout::TableGrid::appendCell):
- 2:58 AM Changeset in webkit [259179] by
-
- 2 edits in trunk/Source/WebCore
Windows build fix: Web Inspector: support editing cookie key/values from inspector
https://bugs.webkit.org/show_bug.cgi?id=31157#c15
<rdar://problem/19281523>
- platform/network/cf/NetworkStorageSessionCFNetWin.cpp:
(WebCore::NetworkStorageSession::setCookie):
- Add placeholder to fix build after r259173.
- 2:08 AM Changeset in webkit [259178] by
-
- 1 edit in trunk/Source/WebKit/ChangeLog
Add missing ChangeLog entry for r259177.
- 2:06 AM Changeset in webkit [259177] by
-
- 1 edit in trunk/Source/WebKit/UIProcess/Cocoa/NavigationState.mm
Build fix for: [iOS] Delay process suspension for a while after loading an app link
https://bugs.webkit.org/show_bug.cgi?id=209686#c12
<rdar://problem/60888891>
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::tryInterceptNavigation):
- Restrict call to WebPageProxy::willOpenAppLink() to PLATFORM(IOS_FAMILY) to fix the build.
- 1:52 AM Changeset in webkit [259176] by
-
- 3 edits in trunk/Source/WebKit
REGRESSION (r257867): [GPUP] Use-after-move in RemoteCDMInstance::createSession()
<https://webkit.org/b/209712>
<rdar://problem/61018795>
Reviewed by Darin Adler.
- WebProcess/GPU/media/RemoteCDMInstance.cpp:
(WebKit::RemoteCDMInstance::createSession): Fix use-after-move
by using RemoteCDMInstanceSession::identifier().
- WebProcess/GPU/media/RemoteCDMInstanceSession.h:
(RemoteCDMInstanceSession::identifier): Add getter.
Mar 28, 2020:
- 11:13 PM Changeset in webkit [259175] by
-
- 32 edits in trunk/Source/JavaScriptCore
[JSC] Use CacheableIdentifier for all ById case
https://bugs.webkit.org/show_bug.cgi?id=209698
Reviewed by Saam Barati.
StructureStubInfo & AccessCase holds CacheableIdentifier to keep cell identifiers alive.
We are assuming that operationGetById...'s identifier is always owned by CodeBlock, and
we call CacheableIdentifier::createFromIdentifierOwnedByCodeBlock for UniquedStringImpl*.
This is wrong since GetById IC can be generated with identifier which is not owned by CodeBlock.
Let's consider the following case,
- op_get_by_val gets GetById IC. CacheableIdentifier is kept by StructureStubInfo/AccessCase correctly.
- This CodeBlock gets DFG.
- DFG understand op_get_by_val and emit GetById DFG node since it only has one identifier.
- Then, DFG can generate GetById DFG code which generates GetById IC
- (4)'s GetById IC gets executed. But this IC considers that identifier is owned by CodeBlock since this is ById IC.
- New DFG CodeBlock starts compilation. And it gets feedback from (2)'s get_by_val's StructureStubInfo, so it emits GetById with non-cell CacheableIdentifier! So it does not retain the cell. It just registers desired identifier.
- While compiling (6) (after parsing bytecode), (2)'s CodeBlock's DFG code & IC gets jettisoned. And then, identifier used in (6) gets destroyed too.
- (6)'s CodeBlock finalizes its compilation, registering desired identifiers to the actual CodeBlock. And it found the identifier gets destroyed.
In this patch,
- CacheableIdentifier::createFromIdentifierOwnedByCodeBlock is called only when the creator knowns that this is owned by the CodeBlock. Typically, this is when the code generator generates IC.
- operationGetById... functions get CacheableIdentifier instead of UniquedStringImpl*. So it propagates whether the given CacheableIdentifier is created from CodeBlock's identifier or cells.
- AccessCase holds this propagated CacheableIdentifiers. If CacheableIdentifiers is created from a cell in some tier's IC, then it continues to be represented as a cell-origin CacheableIdentifiers regardless of whether the current IC is GetById / GetByVal. Then GC marks it correctly.
- This patch does the same thing to all the ICs.
- This patch extends StructureStubInfo / AccessCase to pave the way to use them in PutByVal / InByVal by introducing CacheableIdentifier for Put and In.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::fromStructureStubInfo):
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::visitAggregate):
(JSC::StructureStubInfo::setCacheType):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::identifier):
(JSC::StructureStubInfo::considerCachingBy):
(JSC::StructureStubInfo::getByIdSelfIdentifier): Deleted.
(JSC::StructureStubInfo::considerCachingById): Deleted.
(JSC::StructureStubInfo::considerCachingByVal): Deleted.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGArrayMode.cpp:
(JSC::DFG::canBecomeGetArrayLength):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::emitPutById):
(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::parseGetById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::addStringReplacePrimordialChecks):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToInById):
(JSC::DFG::Node::hasCacheableIdentifier):
(JSC::DFG::Node::cacheableIdentifier):
(JSC::DFG::Node::hasIdentifier):
(JSC::DFG::Node::OpInfoWrapper::OpInfoWrapper):
(JSC::DFG::Node::OpInfoWrapper::operator=):
- dfg/DFGOpInfo.h:
(JSC::DFG::OpInfo::OpInfo):
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileGetByIdFlush):
(JSC::DFG::SpeculativeJIT::compileInById):
(JSC::DFG::SpeculativeJIT::compilePutByIdFlush):
(JSC::DFG::SpeculativeJIT::compilePutById):
(JSC::DFG::SpeculativeJIT::compilePutByIdDirect):
(JSC::DFG::SpeculativeJIT::compilePutByIdWithThis):
(JSC::DFG::SpeculativeJIT::cachedPutById):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileDeleteById):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutById):
(JSC::FTL::DFG::LowerDFGToB3::compileDelBy):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
(JSC::FTL::DFG::LowerDFGToB3::compileInById):
(JSC::FTL::DFG::LowerDFGToB3::getById):
(JSC::FTL::DFG::LowerDFGToB3::getByIdWithThis):
- jit/JIT.h:
- jit/JITInlineCacheGenerator.cpp:
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITPutByIdGenerator::slowPathFunction):
(JSC::JITDelByIdGenerator::JITDelByIdGenerator):
(JSC::JITInByIdGenerator::JITInByIdGenerator):
- jit/JITInlineCacheGenerator.h:
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitSlow_op_del_by_id):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
(JSC::JIT::emitByValIdentifierCheck):
(JSC::JIT::privateCompilePutByValWithCachedId):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emit_op_in_by_id):
(JSC::JIT::emitSlow_op_in_by_id):
- jit/Repatch.cpp:
(JSC::appropriateGenericPutByIdFunction):
(JSC::appropriateOptimizingPutByIdFunction):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryCacheInByID):
(JSC::repatchInByID):
(JSC::resetPutByID):
- jit/Repatch.h:
- runtime/CacheableIdentifier.cpp:
(JSC::CacheableIdentifier::dump const):
- runtime/CacheableIdentifier.h:
(JSC::CacheableIdentifier::createFromRawBits):
(JSC::CacheableIdentifier::rawBits const):
(JSC::CacheableIdentifier::CacheableIdentifier):
- runtime/CacheableIdentifierInlines.h:
(JSC::CacheableIdentifier::createFromIdentifierOwnedByCodeBlock):
(JSC::CacheableIdentifier::createFromImmortalIdentifier):
(JSC::CacheableIdentifier::CacheableIdentifier):
- 9:43 PM Changeset in webkit [259174] by
-
- 6 edits in trunk/LayoutTests
Regression: fast/hidpi/image-srcset-svg-canvas-2x.html is failing consistently on iOS EWS
https://bugs.webkit.org/show_bug.cgi?id=207038
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-28
Reviewed by Darin Adler.
Disable the canvas scaling anti-aliasing by applying the CSS property
"image-rendering: pixelated;" to the <img> and the <canvas> elements.
Avoid the SVG drawing anti-aliasing entirely by replacing the <cricle>
element by a <rect> element.
- fast/hidpi/resources/relativesrcset.svg:
- fast/hidpi/resources/srcset.svg:
- fast/hidpi/resources/srcset_100px.svg:
- fast/hidpi/resources/svg_tests.css:
(.test img, .test canvas):
- platform/mac/TestExpectations:
- 8:07 PM Changeset in webkit [259173] by
-
- 22 edits4 adds in trunk
Web Inspector: support editing cookie key/values from inspector
https://bugs.webkit.org/show_bug.cgi?id=31157
<rdar://problem/19281523>
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
- inspector/protocol/Page.json:
Add a
sessionparameter toPage.Cookietype and a newPage.setCookiecommand.
Remove thesizeparameter fromPage.Cookieas this can be calculated in the frontend.
Source/WebCore:
Test: http/tests/inspector/page/setCookie.html
- inspector/agents/InspectorPageAgent.h:
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::buildObjectForCookie):
(WebCore::parseCookieObject): Added.
(WebCore::InspectorPageAgent::setCookie): Added.
- loader/CookieJar.h:
- loader/CookieJar.cpp:
(WebCore::CookieJar::setRawCookie): Added.
Source/WebInspectorUI:
- UserInterface/Models/Cookie.js:
(WI.Cookie):
(WI.Cookie.fromPayload):
(WI.Cookie.parseSetCookieResponseHeader):
(WI.Cookie.prototype.get session): Added.
(WI.Cookie.prototype.expirationDate):
(WI.Cookie.prototype.equals): Added.
(WI.Cookie.prototype.toProtocol): Added.
Addsessionvalue in addition to the existingexpiresvalue. Create helper methods for
comparingWI.Cookieobjects and for using theWI.Cookieas aPage.Cookietype when
invoking protocol commands (right now justPage.setCookie).
- UserInterface/Views/CookieStorageContentView.js:
(WI.CookieStorageContentView):
(WI.CookieStorageContentView.prototype.get navigationItems):
(WI.CookieStorageContentView.prototype.tableCellContextMenuClicked):
(WI.CookieStorageContentView.prototype.willDismissPopover): Added.
(WI.CookieStorageContentView.prototype.async _willDismissCookiePopover): Added.
(WI.CookieStorageContentView.prototype._handleSetCookieButtonClick): Added.
(WI.CookieStorageContentView.prototype._reloadCookies):
(WI.CookieStorageContentView.prototype._formatCookiePropertyForColumn):
Add a + navigation item that shows a popover for creating a new cookie. When contextmenu
clicking on a table row, add an "Edit" item that shows a popover for creating a new cookie
with the values from the existing cookie, which will "replace" (delete and set) the existing
cookie upon being dismissed.
- UserInterface/Views/ResourceCookiesContentView.js:
(WI.ResourceCookiesContentView.prototype.tablePopulateCell):
If only use theexpiresvalue ifsessionis not set.
- UserInterface/Views/CookiePopover.js: Added.
(WI.CookiePopover):
(WI.CookiePopover.prototype.get serializedData):
(WI.CookiePopover.prototype.show.createRow):
(WI.CookiePopover.prototype.show.createInputRow):
(WI.CookiePopover.prototype.show):
(WI.CookiePopover.prototype._presentOverTargetElement):
(WI.CookiePopover.prototype._defaultExpires):
(WI.CookiePopover.prototype._parseExpires):
(WI.CookiePopover.prototype._handleInputKeyDown):
- UserInterface/Views/CookiePopover.css: Added.
(.popover .cookie-popover-content):
(.popover .cookie-popover-content > table):
(.popover .cookie-popover-content > table > tr > th):
(.popover .cookie-popover-content > table > tr > td):
(.popover .cookie-popover-content > table > tr > td > input:matches([type="text"], [type="datetime-local"])):
(.popover .cookie-popover-content > table > tr > td > input:matches([type="text"], [type="datetime-local"]).invalid):
(@media (prefers-color-scheme: dark) .popover .cookie-popover-content > table > tr > th):
Show an<input>(or<select>) for each configuration option when creating a cookie.
Hide the<input>forexpiresif the<input type="checkbox">forsessionis checked.
Indicate when the value in the<input>forexpiresis not a valid date.
- UserInterface/Main.html:
- Localizations/en.lproj/localizedStrings.js:
Source/WebKit:
- WebProcess/WebPage/WebCookieJar.h:
- WebProcess/WebPage/WebCookieJar.cpp:
(WebKit::WebCookieJar::setRawCookie):
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::setRawCookie): Added.
LayoutTests:
- http/tests/inspector/page/setCookie.html: Added.
- http/tests/inspector/page/setCookie-expected.txt: Added.
- inspector/unit-tests/number-utilities.html:
- inspector/unit-tests/number-utilities-expected.txt:
Drive-by: add tests for
Number.prototype.maxDecimals.
- 8:02 PM Changeset in webkit [259172] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r258201): Use-after-move in UserMediaCaptureManager::Source::didFail()
<https://webkit.org/b/209711>
<rdar://problem/61018569>
Reviewed by Darin Adler.
- WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::Source::didFail):
- Use
m_errorMessageto fix the use-after-move.
- 7:58 PM Changeset in webkit [259171] by
-
- 9 edits in trunk
REGRESSION(r257963) UI process crashes when setting navigation delegate inside navigation delegate callbacks
https://bugs.webkit.org/show_bug.cgi?id=209705
<rdar://problem/60814765>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-28
Reviewed by Darin Adler.
Source/WebKit:
I introduced a pattern of making multiple delegate calls sequentially. This is bad because the delegate can change.
We need to go back to the WebPageProxy and get the navigation client again between calls.
I manually verified this fixes the crash in the radar.
Covered by modifying an existing API test to modify the navigation delegate in a callback.
- UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didStartProvisionalNavigation):
(API::NavigationClient::didStartProvisionalLoadForFrame):
(API::NavigationClient::didFailProvisionalNavigationWithError):
(API::NavigationClient::didFailProvisionalLoadWithErrorForFrame):
(API::NavigationClient::didCommitNavigation):
(API::NavigationClient::didCommitLoadForFrame):
(API::NavigationClient::didFinishNavigation):
(API::NavigationClient::didFinishLoadForFrame):
(API::NavigationClient::didFailNavigationWithError):
(API::NavigationClient::didFailLoadWithErrorForFrame):
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageNavigationClient):
- UIProcess/API/glib/WebKitNavigationClient.cpp:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::~NavigationState):
(WebKit::NavigationState::NavigationClient::didStartProvisionalNavigation):
(WebKit::NavigationState::NavigationClient::didStartProvisionalLoadForFrame):
(WebKit::NavigationState::NavigationClient::didFailProvisionalNavigationWithError):
(WebKit::NavigationState::NavigationClient::didFailProvisionalLoadWithErrorForFrame):
(WebKit::NavigationState::NavigationClient::didCommitNavigation):
(WebKit::NavigationState::NavigationClient::didCommitLoadForFrame):
(WebKit::NavigationState::NavigationClient::didFinishNavigation):
(WebKit::NavigationState::NavigationClient::didFinishLoadForFrame):
(WebKit::NavigationState::NavigationClient::didFailNavigationWithError):
(WebKit::NavigationState::NavigationClient::didFailLoadWithErrorForFrame):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/AsyncPolicyForNavigationResponse.mm:
(-[TestAsyncNavigationDelegate webView:didFailNavigation:withError:]):
(-[TestAsyncNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
- 7:56 PM Changeset in webkit [259170] by
-
- 11 edits6 adds in trunk
Web Inspector: CSS: create visual editor for
box-shadow
https://bugs.webkit.org/show_bug.cgi?id=208380
Reviewed by Timothy Hatcher.
Source/WebInspectorUI:
Recognize
box-shadowCSS properties in the Styles sidebar, parse the comma-separated list
value for individual box shadows, and create aWI.InlineSwatchfor each. When clicked,
show aWI.Popoverwith aWI.BoxShadowEditor, which contains a table of editors:
Offset X | <input type="text"> | [ 2D (X & Y) ]
Offset Y | <input type="text"> | [ Slider ]
Inset | <input type="checkbox"> |
Blur | <input type="text"> | <input type="range">
Spread | <input type="text"> | <input type="range">
[ ]
[ ]
[ full color picker ]
[ ]
[ ]
- UserInterface/Models/BoxShadow.js: Added.
(WI.BoxShadow):
(WI.BoxShadow.fromString):
(WI.BoxShadow.parseNumberComponent):
(WI.BoxShadow.prototype.get offsetX):
(WI.BoxShadow.prototype.get offsetY):
(WI.BoxShadow.prototype.get blurRadius):
(WI.BoxShadow.prototype.get spreadRadius):
(WI.BoxShadow.prototype.get inset):
(WI.BoxShadow.prototype.get color):
(WI.BoxShadow.prototype.copy):
(WI.BoxShadow.prototype.toString):
(WI.BoxShadow.prototype.toString.stringifyNumberComponent):
- UserInterface/Models/CSSCompletions.js:
Add a
Setof allowed CSS length units.
- UserInterface/Views/BoxShadowEditor.js: Added.
(WI.BoxShadowEditor):
(WI.BoxShadowEditor.createInputRow):
(WI.BoxShadowEditor.createSlider):
(WI.BoxShadowEditor.prototype.get element):
(WI.BoxShadowEditor.prototype.get boxShadow):
(WI.BoxShadowEditor.prototype.set boxShadow):
(WI.BoxShadowEditor.prototype.handleEvent):
(WI.BoxShadowEditor.prototype._updateBoxShadow):
(WI.BoxShadowEditor.prototype._updateBoxShadowOffsetFromSliderMouseEvent):
(WI.BoxShadowEditor.prototype._determineShiftForEvent):
(WI.BoxShadowEditor.prototype._handleOffsetSliderSVGKeyDown):
(WI.BoxShadowEditor.prototype._handleOffsetSliderSVGMouseDown):
(WI.BoxShadowEditor.prototype._handleWindowMouseMove):
(WI.BoxShadowEditor.prototype._handleWindowMouseUp):
(WI.BoxShadowEditor.prototype._handleOffsetXInputInput):
(WI.BoxShadowEditor.prototype._handleOffsetXInputKeyDown):
(WI.BoxShadowEditor.prototype._handleOffsetYInputInput):
(WI.BoxShadowEditor.prototype._handleOffsetYInputKeyDown):
(WI.BoxShadowEditor.prototype._handleBlurRadiusInputInput):
(WI.BoxShadowEditor.prototype._handleBlurRadiusInputKeyDown):
(WI.BoxShadowEditor.prototype._handleBlurRadiusSliderInput):
(WI.BoxShadowEditor.prototype._handleSpreadRadiusInputInput):
(WI.BoxShadowEditor.prototype._handleSpreadRadiusInputKeyDown):
(WI.BoxShadowEditor.prototype._handleSpreadRadiusSliderInput):
(WI.BoxShadowEditor.prototype._handleInsetCheckboxChange):
(WI.BoxShadowEditor.prototype._handleColorChanged):
- UserInterface/Views/BoxShadowEditor.css: Added.
(.box-shadow-editor):
(.box-shadow-editor > table):
(.box-shadow-editor > table > tr > th):
(.box-shadow-editor > table > tr > td):
(.box-shadow-editor > table > tr > td > input[type="text"]):
(.box-shadow-editor > table > tr > td > input[type="range"]):
(.box-shadow-editor > table > tr > td > svg):
(.box-shadow-editor > table > tr > td > svg line.axis):
(.box-shadow-editor > table > tr > td > svg line:not(.axis)):
(.box-shadow-editor > table > tr > td > svg circle):
(@media (prefers-color-scheme: dark) .box-shadow-editor > table > tr > th):
- UserInterface/Views/InlineSwatch.js:
(WI.InlineSwatch):
(WI.InlineSwatch.prototype._fallbackValue):
(WI.InlineSwatch.prototype._valueEditorValueDidChange):
- UserInterface/Views/InlineSwatch.css:
(.inline-swatch):
(.inline-swatch:not(.box-shadow), .inline-swatch.box-shadow:matches(:hover, :active)): Added.
(.inline-swatch:matches(.bezier, .box-shadow, .spring, .variable)): Added.
(.inline-swatch:not(.read-only):matches(.bezier, .box-shadow, .spring, .variable):hover): Added.
(.inline-swatch:not(.read-only):matches(.bezier, .box-shadow, .spring, .variable):active): Added.
(.inline-swatch:matches(.bezier, .box-shadow, .spring, .variable) > span): Added.
(@media (prefers-color-scheme: dark) .inline-swatch.box-shadow > svg): Added.
(.inline-swatch:not(.read-only):matches(.bezier, .spring, .variable):hover): Deleted.
(.inline-swatch:not(.read-only):matches(.bezier, .spring, .variable):active): Deleted.
(.inline-swatch:matches(.bezier, .spring, .variable) > span): Deleted.
- UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._replaceSpecialTokens):
(WI.SpreadsheetStyleProperty.prototype._addGradientTokens):
(WI.SpreadsheetStyleProperty.prototype._addColorTokens):
(WI.SpreadsheetStyleProperty.prototype._addTimingFunctionTokens):
(WI.SpreadsheetStyleProperty.prototype._addBoxShadowTokens):
(WI.SpreadsheetStyleProperty.prototype._resolveVariables):
- UserInterface/Views/Variables.css:
(:root):
- UserInterface/Views/ColorPicker.css:
(.color-picker):
Move--color-picker-widthto:rootso thatWI.BoxShadowEditorcan use it.
- UserInterface/Main.html:
- UserInterface/Test.html:
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Images/BoxShadow.svg: Added.
LayoutTests:
- inspector/model/boxShadow.html: Added.
- inspector/model/boxShadow-expected.txt: Added.
- 7:54 PM Changeset in webkit [259169] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r257759): Network: graph in Timing pane of selected resource is missing bars
https://bugs.webkit.org/show_bug.cgi?id=209525
Reviewed by Timothy Hatcher.
WI.ResourceTimingBreakdownViewuses the same CSS classes and DOM structure as the parent
WI.NetworkTableContentView, relying on the styles defined there for it's own styles.
- UserInterface/Views/NetworkTableContentView.css:
(.network-table > .table li:not(.filler, .selected) .cell:not(.current-session)): Added.
(.network-table .error): Added.
(.network-table .waterfall .block): Added.
(body[dir=ltr] .network-table .waterfall .block): Added.
(body[dir=rtl] .network-table .waterfall .block): Added.
(.network-table .waterfall .block.request,): Added.
(.network-table .waterfall .block.mouse-tracking): Added.
(.network-table .waterfall .block.filler): Added.
(.network-table .waterfall .block.redirect): Added.
(.network-table .waterfall .block.queue): Added.
(.network-table .waterfall .block.dns): Added.
(.network-table .waterfall .block.connect): Added.
(.network-table .waterfall .block.secure): Added.
(.network-table .waterfall .block.request): Added.
(.network-table .waterfall .block.response): Added.
(.network-table > .table li:not(.selected) .cell:not(.current-session)): Deleted.
(.network-table > .table .error): Deleted.
(.network-table > .table .waterfall .block): Deleted.
(body[dir=ltr] .network-table > .table .waterfall .block): Deleted.
(body[dir=rtl] .network-table > .table .waterfall .block): Deleted.
(.network-table > .table .waterfall .block.request,): Deleted.
(.network-table > .table .waterfall .block.mouse-tracking): Deleted.
(.network-table > .table .waterfall .block.filler): Deleted.
(.network-table > .table .waterfall .block.redirect): Deleted.
(.network-table > .table .waterfall .block.queue): Deleted.
(.network-table > .table .waterfall .block.dns): Deleted.
(.network-table > .table .waterfall .block.connect): Deleted.
(.network-table > .table .waterfall .block.secure): Deleted.
(.network-table > .table .waterfall .block.request): Deleted.
(.network-table > .table .waterfall .block.response): Deleted.
Drive-by: theWI.Tablefiller row should not be dimmed.
- UserInterface/Views/ResourceTimingBreakdownView.css:
(.resource-timing-breakdown .waterfall .block):
- 7:52 PM Changeset in webkit [259168] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Network: pressing RightArrow or LeftArrow unexpectedly changes panels
https://bugs.webkit.org/show_bug.cgi?id=209625
<rdar://problem/60940609>
Reviewed by Timothy Hatcher.
- UserInterface/Views/NavigationBar.js:
(WI.NavigationBar.prototype._keyDown):
- 7:50 PM Changeset in webkit [259167] by
-
- 2 edits in trunk/Source/WebKit
Use-after-move in NetworkProcess::addServiceWorkerSession()
<https://webkit.org/b/209710>
<rdar://problem/61017857>
Reviewed by Darin Adler.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::addServiceWorkerSession):
- Use
addResult.iterator->value.databasePathinstead of theserviceWorkerRegistrationDirectoryparameter to fix the use-after-move.
- 7:05 PM Changeset in webkit [259166] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Delay process suspension for a while after loading an app link
https://bugs.webkit.org/show_bug.cgi?id=209686
<rdar://problem/60888891>
Reviewed by Darin Adler.
Client apps that rely on WebKit to open app links cannot call the [WKWebView _willOpenAppLink] SPI
that was added in r259146. Instead, we need to call WebPageProxy::willOpenAppLink() in
tryInterceptNavigation() when WebKit opens the AppLink itself.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::tryInterceptNavigation):
- 5:59 PM Changeset in webkit [259165] by
-
- 13 edits in trunk/Source
Add a ScrollLatching log channel and improve some logging functionality
https://bugs.webkit.org/show_bug.cgi?id=209706
Reviewed by Darin Adler, David Kilzer.
Source/WebCore:
Add a "ScrollLatching" log channel. Make ScrollLatchingState and Node loggable.
Make a convenience template class ValueOrNull<> which makes logging a pointer type convenient.
Also change Page::pushNewLatchingState() to take the new latching state.
- dom/Node.cpp:
(WebCore::operator<<):
- dom/Node.h:
- page/EventHandler.cpp:
(WebCore::EventHandler::clearLatchedState):
- page/Page.cpp:
(WebCore::Page::pushNewLatchingState):
(WebCore::Page::popLatchingState):
(WebCore::Page::removeLatchingStateForTarget):
- page/Page.h:
(WebCore::Page::latchingStateStack const):
- page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::clearOrScheduleClearingLatchedStateIfNeeded):
(WebCore::EventHandler::platformPrepareForWheelEvents):
(WebCore::frameViewForLatchingState):
(WebCore::EventHandler::platformCompleteWheelEvent):
(WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent):
- page/scrolling/ScrollLatchingState.cpp:
(WebCore::operator<<):
- page/scrolling/ScrollLatchingState.h:
(WebCore::ScrollLatchingState::wheelEventElement const):
(WebCore::ScrollLatchingState::frame const):
(WebCore::ScrollLatchingState::previousWheelScrolledElement const):
(WebCore::ScrollLatchingState::scrollableContainer const):
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::setOrClearLatchedNode):
(WebCore::ScrollingTree::handleWheelEvent):
- platform/Logging.h:
Source/WTF:
- wtf/text/TextStream.h:
(WTF::ValueOrNull::ValueOrNull):
(WTF::operator<<):
- 3:13 PM Changeset in webkit [259164] by
-
- 2 edits in trunk/Source/WebCore
[WinCairo] Unreviewed build fix for WinCairo Debug builds
https://bugs.webkit.org/show_bug.cgi?id=209098
It's broken since r259139 (Bug 209098).
..\..\Source\WebCore\platform\graphics\texmap\TextureMapperGC3DPlatformLayer.cpp(101): error C2065: 'm_state': undeclared identifier
- platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp:
(WebCore::TextureMapperGC3DPlatformLayer::paintToTextureMapper): Replaced 'm_state' with 'm_context.m_state'.
- 11:31 AM Changeset in webkit [259163] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix the watchOS build after r259151
The declaration of Pasteboard(const String&) in Pasteboard.h is present for all PLATFORM(IOS_FAMILY), but the
implementation is guarded by ENABLE(DRAG_SUPPORT). r259151 added a codepath that calls this constructor in
IOS_FAMILY code, causing a linker error. Fix this by moving the implementation out of the ENABLE(DRAG_SUPPORT)
guard, to match the declaration in the header.
- platform/ios/PasteboardIOS.mm:
- 10:22 AM Changeset in webkit [259162] by
-
- 3 edits2 adds in trunk
Sideways jiggles when scrolling the shelves on beta.music.apple.com
https://bugs.webkit.org/show_bug.cgi?id=209696
<rdar://problem/55092050>
Reviewed by Anders Carlsson.
Source/WebCore:
If a scroll snapping animation was running, EventHandler::platformNotifyIfEndGesture() would
reset the latching state. This was added in r190423, but not longer seems necessary
according to manual testing, and the passing layout test.
platformNotifyIfEndGesture() would be called at the end of the fingers-down scroll but
before momentum, and resetting latching here would cause the momentum events to go to
a new target, triggering incorrect scrolls.
Test: tiled-drawing/scrolling/scroll-snap/scroll-snap-phase-change-relatching.html
- page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::platformNotifyIfEndGesture):
LayoutTests:
Test that sends scroll and momentum events to a vertically-scrolling overflow with snap-points,
which checked that the document didn't scroll.
- tiled-drawing/scrolling/scroll-snap/scroll-snap-phase-change-relatching-expected.txt: Added.
- tiled-drawing/scrolling/scroll-snap/scroll-snap-phase-change-relatching.html: Added.
- 10:22 AM Changeset in webkit [259161] by
-
- 1 edit in trunk/Source/WebCore/ChangeLog
Define ENABLE_WHEEL_EVENT_LATCHING and use it to wrap wheel event latching code
https://bugs.webkit.org/show_bug.cgi?id=209693
Reviewed by Zalan Bujtas.
Source/WebCore:
Replace some #if PLATFORM(MAC) with #if ENABLE(WHEEL_EVENT_LATCHING).
ENABLE_WHEEL_EVENT_LATCHING is currently only enabled on macOS, but it's possible
that it should be defined everywhere that ENABLE_KINETIC_SCROLLING is defined.
This requires testing on WPE, GTK etc.
- page/EventHandler.cpp:
(WebCore::handleWheelEventInAppropriateEnclosingBox):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::clearLatchedState):
(WebCore::EventHandler::defaultWheelEventHandler):
- page/Page.cpp:
- page/Page.h:
Source/WTF:
Define ENABLE_WHEEL_EVENT_LATCHING for macOS.
- wtf/PlatformEnable.h:
- 10:21 AM Changeset in webkit [259160] by
-
- 2 edits in trunk/Source/WebCore
[RenderTreeBuilder] Destroy the child first in RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers
https://bugs.webkit.org/show_bug.cgi?id=209695
Reviewed by Antti Koivisto.
The render tree tear down direction is usually leaf first (there are some non-trivial cases where we end up going container first).
Being able to access the ancestor chain helps with some final cleanup activities (e.g repaints).
This patch makes the renderer-inside-an-anonymous-wrapper case similar to the normal case as we destroy the leaf renderer first.
However the anonymous ancestor chain tear down is still container first (see r228606).
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):
(WebCore::isAnonymousAndSafeToDelete): Deleted.
(WebCore::findDestroyRootIncludingAnonymous): Deleted.
- 9:45 AM Changeset in webkit [259159] by
-
- 20 edits in trunk
Deprecate injected bundle page group SPI
https://bugs.webkit.org/show_bug.cgi?id=209687
Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-28
Reviewed by Timothy Hatcher.
Source/WebKit:
This old code is problematic, and the use of it is being removed in rdar://problem/60987265
- Shared/WebPageGroupData.cpp:
(WebKit::WebPageGroupData::encode const):
(WebKit::WebPageGroupData::decode):
- Shared/WebPageGroupData.h:
- UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::WebPageGroup):
- WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundleAddUserScript):
(WKBundleAddUserStyleSheet):
(WKBundleRemoveUserScript):
(WKBundleRemoveUserStyleSheet):
(WKBundleRemoveUserScripts):
(WKBundleRemoveUserStyleSheets):
(WKBundleRemoveAllUserContent):
- WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::addUserScript): Deleted.
(WebKit::InjectedBundle::addUserStyleSheet): Deleted.
(WebKit::InjectedBundle::removeUserScript): Deleted.
(WebKit::InjectedBundle::removeUserStyleSheet): Deleted.
(WebKit::InjectedBundle::removeUserScripts): Deleted.
(WebKit::InjectedBundle::removeUserStyleSheets): Deleted.
(WebKit::InjectedBundle::removeAllUserContent): Deleted.
- WebProcess/InjectedBundle/InjectedBundle.h:
- WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::WebPageGroupProxy):
(WebKit::WebPageGroupProxy::userContentController): Deleted.
- WebProcess/WebPage/WebPageGroupProxy.h:
Tools:
- TestWebKitAPI/Tests/WebKit/DOMWindowExtensionBasic_Bundle.cpp:
(TestWebKitAPI::DOMWindowExtensionBasic::didCreatePage):
(TestWebKitAPI::DOMWindowExtensionBasic::initialize): Deleted.
- TestWebKitAPI/Tests/WebKit/DOMWindowExtensionNoCache_Bundle.cpp:
(TestWebKitAPI::DOMWindowExtensionNoCache::didCreatePage):
(TestWebKitAPI::DOMWindowExtensionNoCache::initialize): Deleted.
- TestWebKitAPI/Tests/WebKit/DocumentStartUserScriptAlertCrash_Bundle.cpp:
(TestWebKitAPI::DocumentStartUserScriptAlertCrashTest::didCreatePage):
(TestWebKitAPI::DocumentStartUserScriptAlertCrashTest::initialize): Deleted.
- TestWebKitAPI/Tests/WebKit/InjectedBundleDisableOverrideBuiltinsBehavior_Bundle.cpp:
(TestWebKitAPI::InjectedBundleNoDisableOverrideBuiltinsBehaviorTest::initialize): Deleted.
(TestWebKitAPI::InjectedBundleDisableOverrideBuiltinsBehaviorTest::initialize): Deleted.
- TestWebKitAPI/Tests/WebKit/InjectedBundleMakeAllShadowRootsOpen_Bundle.cpp:
(TestWebKitAPI::InjectedBundleMakeAllShadowRootOpenTest::didCreatePage):
(TestWebKitAPI::InjectedBundleMakeAllShadowRootOpenTest::initialize): Deleted.
- 8:35 AM Changeset in webkit [259158] by
-
- 8 edits2 adds in trunk
Nullptr crash in InlineTextBox::emphasisMarkExistsAndIsAbove
https://bugs.webkit.org/show_bug.cgi?id=207034
Reviewed by Zalan Bujtas.
Source/WebCore:
Reduced test case by Zalan.
Test: editing/selection/selection-update-during-anonymous-inline-teardown.html
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::setNeedsSelectionUpdateForRenderTreeChange):
Don't clear the selection immediately, do it in updateAppearanceAfterLayoutOrStyleChange after render tree update/layout is done instead.
This is safe as selection uses WeakPtrs to reference renderers.
Renamed to emphasize the use case.
(WebCore::FrameSelection::updateAppearanceAfterLayoutOrStyleChange):
(WebCore::FrameSelection::setNeedsSelectionUpdate): Deleted.
- editing/FrameSelection.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willBeDestroyed):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::willBeDestroyed):
- rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::detachFromRenderElement):
LayoutTests:
- editing/selection/selection-update-during-anonymous-inline-teardown-expected.txt: Added.
- editing/selection/selection-update-during-anonymous-inline-teardown.html: Added.
- 8:19 AM Changeset in webkit [259157] by
-
- 2 edits in trunk/JSTests
stress/test-out-of-memory.js test gaderning
https://bugs.webkit.org/show_bug.cgi?id=209701
Unreviewed test gardening.
- stress/test-out-of-memory.js:
- 6:07 AM Changeset in webkit [259156] by
-
- 5 edits in trunk/Source/WebCore
Unreviewed, reverting r259034.
https://bugs.webkit.org/show_bug.cgi?id=209700
Break StressGC bot (Requested by yusukesuzuki on #webkit).
Reverted changeset:
"IndexedDB: destroy UniqueIDBDatabase when it's not used"
https://bugs.webkit.org/show_bug.cgi?id=209532
https://trac.webkit.org/changeset/259034
- 3:50 AM Changeset in webkit [259155] by
-
- 3 edits in trunk/Tools
[GTK] No libsystemd-devel for DNF
https://bugs.webkit.org/show_bug.cgi?id=209697
Reviewed by Philippe Normand.
Replace libsystemd-devel to systemd-devel for DNF.
- gtk/install-dependencies:
- wpe/install-dependencies: