Timeline
Sep 14, 2019:
- 3:45 PM Changeset in webkit [249882] by
-
- 2 edits in trunk/Source/WebKit
[GTK][WPE] Check for a Snap sandbox a bit harder
https://bugs.webkit.org/show_bug.cgi?id=201793
Reviewed by Michael Catanzaro.
- UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
(WebKit::isInsideSnap): Check whether the SNAP_NAME and SNAP_REVISION
environment variables are defined as well.
- 3:31 PM Changeset in webkit [249881] by
-
- 11 edits in trunk/Source/WebCore
[WebGPU] Make WebGPURenderPipeline and WebGPUComputePipeline inherit from GPUObjectBase
https://bugs.webkit.org/show_bug.cgi?id=201207
Reviewed by Dean Jackson.
Make remaining WebGPU "client" classes manage their error scopes, instead of the internal classes.
Matches Web/GPUBuffer, and allows "invalid" WebGPU objects to create errors.
Covered by existing tests.
- Modules/webgpu/WebGPUComputePipeline.cpp:
(WebCore::WebGPUComputePipeline::create):
(WebCore::WebGPUComputePipeline::WebGPUComputePipeline):
- Modules/webgpu/WebGPUComputePipeline.h:
- Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::createRenderPipeline const):
(WebCore::WebGPUDevice::createComputePipeline const):
- Modules/webgpu/WebGPURenderPipeline.cpp:
(WebCore::WebGPURenderPipeline::create):
(WebCore::WebGPURenderPipeline::WebGPURenderPipeline):
- Modules/webgpu/WebGPURenderPipeline.h:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/gpu/GPUComputePipeline.h:
- platform/graphics/gpu/GPURenderPipeline.h:
- platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:
(WebCore::GPUComputePipeline::tryCreate):
(WebCore::GPUComputePipeline::GPUComputePipeline):
- platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:
(WebCore::GPURenderPipeline::tryCreate):
(WebCore::GPURenderPipeline::GPURenderPipeline):
- 12:36 PM Changeset in webkit [249880] by
-
- 26 edits in trunk/Source
Retire x86 32bit JIT support
https://bugs.webkit.org/show_bug.cgi?id=201790
Reviewed by Mark Lam.
Source/JavaScriptCore:
Now, Xcode no longer has ability to build 32bit binary, so we cannot even test it on macOS.
Fedora stops shipping x86 32bit kernel. Our x86/x86_64 JIT requires SSE2, and so such relatively modern CPUs
can use JIT by switching x86 to x86_64. And these CPUs are modern enough to run CLoop at high speed.
WebKit already disabled x86 JIT by default while the implementation exists. So literary, it is not tested.
While x86 32bit becomes less useful, x86 32bit JIT backend is very complicated and is being a major maintenance burden.
This is due to very few # of registers. Which scatters a lot of isX86 / CPU(X86) in Baseline, DFG, and Yarr.
This patch retires x86 JIT support from JavaScriptCore and CSS JIT. We still keep MacroAssembler and GPRInfo / FPRInfo,
MachineContext information since they are useful even though JIT is not supported.
- dfg/DFGArrayMode.cpp:
(JSC::DFG::ArrayMode::refine const):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compileExceptionHandlers):
- dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::osrWriteBarrier):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArithMod):
(JSC::DFG::SpeculativeJIT::compileCreateRest):
(JSC::DFG::SpeculativeJIT::compileGetDirectPname):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGThunks.cpp:
(JSC::DFG::osrExitGenerationThunkGenerator):
- ftl/FTLThunks.cpp:
(JSC::FTL::slowPathCallThunkGenerator):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::debugCall):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitComputeButterflyIndexingMask):
- jit/CCallHelpers.h:
(JSC::CCallHelpers::setupArgumentsImpl):
(JSC::CCallHelpers::prepareForTailCallSlow):
- jit/CallFrameShuffler.cpp:
(JSC::CallFrameShuffler::prepareForTailCall):
- jit/JIT.cpp:
(JSC::JIT::privateCompileExceptionHandlers):
- jit/JITArithmetic32_64.cpp:
(JSC::JIT::emit_op_mod):
(JSC::JIT::emitSlow_op_mod):
- jit/SlowPathCall.h:
(JSC::JITSlowPathCall::call):
- jit/ThunkGenerators.cpp:
(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::emitModOrDiv):
- yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::generateDotStarEnclosure):
(JSC::Yarr::YarrGenerator::generateEnter):
(JSC::Yarr::YarrGenerator::generateReturn):
(JSC::Yarr::YarrGenerator::compile):
- yarr/YarrJIT.h:
Source/WebCore:
- cssjit/FunctionCall.h:
(WebCore::FunctionCall::callAndBranchOnBooleanReturnValue):
(WebCore::FunctionCall::swapArguments):
Source/WTF:
- wtf/Platform.h:
- 11:52 AM Changeset in webkit [249879] by
-
- 5 edits in trunk/Source/WebCore
[LFC] FormattingContext::Geometry::inFlowPositionedPositionOffset should not read containing block's width
https://bugs.webkit.org/show_bug.cgi?id=201797
<rdar://problem/55366244>
Reviewed by Antti Koivisto.
This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795
- layout/FormattingContext.h:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):
- 11:05 AM Changeset in webkit [249878] by
-
- 9 edits in trunk/Source/WebCore
[LFC] FormattingContext::Geometry::inlineReplacedHeightAndMargin should not read containing block's width
https://bugs.webkit.org/show_bug.cgi?id=201796
<rdar://problem/55366109>
Reviewed by Antti Koivisto.
This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795
- layout/FormattingContext.h:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
- layout/blockformatting/BlockFormattingContext.h:
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):
- 10:23 AM Changeset in webkit [249877] by
-
- 4 edits in trunk/Source/WebCore
[LFC] FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry should not read containing block's width.
https://bugs.webkit.org/show_bug.cgi?id=201794
<rdar://problem/55365669>
Reviewed by Antti Koivisto.
This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
- layout/FormattingContext.h:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
- 9:00 AM Changeset in webkit [249876] by
-
- 2 edits in trunk/Source/WebCore
newController may be moved several times under SWClientConnection::notifyClientsOfControllerChange()
https://bugs.webkit.org/show_bug.cgi?id=201792
<rdar://problem/55351284>
Reviewed by Youenn Fablet.
Stop WTFMove()'ing inside the for loop.
- workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::notifyClientsOfControllerChange):
- 8:41 AM Changeset in webkit [249875] by
-
- 2 edits in branches/safari-608.2.11.1-branch/Source/JavaScriptCore
Cherry-pick r249345. rdar://problem/55362909
2019-08-30 Mark Lam <mark.lam@apple.com>
Fix a bug in SlotVisitor::reportZappedCellAndCrash() and also capture more information.
https://bugs.webkit.org/show_bug.cgi?id=201345
Reviewed by Yusuke Suzuki.
This patch fixes a bug where SlotVisitor::reportZappedCellAndCrash() was using
the wrong pointer for capture the cell headerWord and zapReason. As a result,
we get junk for those 2 values.
Previously, we were only capturing the upper 32-bits of the cell header slot,
and the lower 32-bit of the next slot in the zapped cell. We now capture the
full 64-bits of both slots. If the second slot did not contain a zapReason as we
expect, the upper 32-bits might give us a clue as to what type of value the slot
contains.
This patch also adds capturing of the found MarkedBlock address for the zapped
cell, as well as some state bit values.
- heap/SlotVisitor.cpp: (JSC::SlotVisitor::reportZappedCellAndCrash):
- 8:16 AM Changeset in webkit [249874] by
-
- 22 edits in branches/safari-608.2.11.1-branch
Source/JavaScriptCore:
Cherry-pick r248143, r248162. rdar://problem/55362908
Also deleted an unused function. This is needed to resolve a merge conflict for
this patch.
- heap/MarkedBlock.cpp:
(JSC::MarkedBlock::Handle::zap): Deleted.
- heap/MarkedBlock.h:
(JSC::MarkedBlock::Handle::zap): Deleted.
2019-08-01 Mark Lam <mark.lam@apple.com>
Add crash diagnostics for debugging unexpected zapped cells.
https://bugs.webkit.org/show_bug.cgi?id=200149
<rdar://problem/53570112>
Reviewed by Yusuke Suzuki.
Add a check for zapped cells in SlotVisitor::appendToMarkStack() and
SlotVisitor::visitChildren(). If a zapped cell is detected, we will crash with
some diagnostic info.
To facilitate this, we've made the following changes:
- Changed FreeCell to preserve the 1st 8 bytes. This is fine to do because all cells are at least 16 bytes long.
- Changed HeapCell::zap() to only zap the structureID. Leave the rest of the cell header info intact (including the cell JSType).
- Changed HeapCell::zap() to record the reason for zapping the cell. We stash the reason immediately after the first 8 bytes. This is the same location as FreeCell::scrambledNext. However, since a cell is not expected to be zapped and on the free list at the same time, it is also fine to do this.
- Added a few utility functions to MarkedBlock for checking if a cell points into the block.
- Added VMInspector and JSDollarVM utilities to dump in-use subspace hashes.
- Added some comments to document the hashes of known subspaces.
- Added Options::dumpZappedCellCrashData() to make this check conditional. We use this option to disable this check for slower machines so that their PLT5 performance is not impacted.
- assembler/CPU.cpp: (JSC::hwL3CacheSize): (JSC::hwPhysicalCPUMax):
- assembler/CPU.h: (JSC::hwL3CacheSize): (JSC::hwPhysicalCPUMax):
- heap/FreeList.h: (JSC::FreeCell::offsetOfScrambledNext):
- heap/HeapCell.h: (JSC::HeapCell::zap): (JSC::HeapCell::isZapped const):
- heap/MarkedBlock.cpp: (JSC::MarkedBlock::Handle::stopAllocating):
- heap/MarkedBlock.h: (JSC::MarkedBlock::Handle::start const): (JSC::MarkedBlock::Handle::end const): (JSC::MarkedBlock::Handle::contains const):
- heap/MarkedBlockInlines.h: (JSC::MarkedBlock::Handle::specializedSweep):
- heap/MarkedSpace.h: (JSC::MarkedSpace::forEachSubspace):
- heap/SlotVisitor.cpp: (JSC::SlotVisitor::appendToMarkStack): (JSC::SlotVisitor::visitChildren): (JSC::SlotVisitor::reportZappedCellAndCrash):
- heap/SlotVisitor.h:
- jit/AssemblyHelpers.cpp: (JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):
- runtime/Options.cpp: (JSC::Options::initialize):
- runtime/Options.h:
- runtime/VM.cpp: (JSC::VM::VM):
- tools/JSDollarVM.cpp: (JSC::functionDumpSubspaceHashes): (JSC::JSDollarVM::finishCreation):
- tools/VMInspector.cpp: (JSC::VMInspector::dumpSubspaceHashes):
- tools/VMInspector.h:
2019-08-02 Mark Lam <mark.lam@apple.com>
Gardening: build fix.
https://bugs.webkit.org/show_bug.cgi?id=200149
<rdar://problem/53570112>
Not reviewed.
- assembler/CPU.cpp: (JSC::hwPhysicalCPUMax):
Source/WebCore:
Cherry-pick r248143. rdar://problem/55362908
2019-08-01 Mark Lam <mark.lam@apple.com>
Add crash diagnostics for debugging unexpected zapped cells.
https://bugs.webkit.org/show_bug.cgi?id=200149
<rdar://problem/53570112>
Reviewed by Yusuke Suzuki.
No new tests because this is a feature for debugging crashes. It has been tested
manually by modifying the code to force a crash at the point of interest.
Added some comments to document the hashes of known subspaces.
- bindings/js/WebCoreJSClientData.cpp: (WebCore::JSVMClientData::JSVMClientData):
- 6:55 AM Changeset in webkit [249873] by
-
- 6 edits in trunk/Source/WebCore
[LFC] FormattingContext::Geometry::computedHeightValue should not read containing block's height.
https://bugs.webkit.org/show_bug.cgi?id=201791
<rdar://problem/55361695>
Reviewed by Antti Koivisto.
While sizing/positioning a particular box, we oftentimes need some containing block geometry information.
The idea here is that instead of calling formattingContext().geometry(containingBlock), these constraint values
would be pushed in to those compute* functions. It helps controlling the access to the display box tree and
prevents formatting context escaping.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
- layout/FormattingContext.h:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):
(WebCore::Layout::FormattingContext::Geometry::computedMaxHeight const):
(WebCore::Layout::FormattingContext::Geometry::computedMinHeight const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
- layout/LayoutUnits.h:
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
- 3:11 AM Changeset in webkit [249872] by
-
- 2 edits in trunk/Source/WebKit
Add release logging in WebLoaderStrategy to check that a load is going through service worker
https://bugs.webkit.org/show_bug.cgi?id=201761
Reviewed by Chris Dumez.
This allows identifying whether a load remains pending on the service worker fetch path.
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
- 1:52 AM Changeset in webkit [249871] by
-
- 2 edits in trunk/LayoutTests
ASSERTION FAILED: !renderer() in WebCore::Text::~Text
https://bugs.webkit.org/show_bug.cgi?id=172514
<rdar://problem/32470509>
Unreviewed, this assert should be fixed now.
Unskipping imported/w3c/web-platform-tests/innerText/getter.html on debug
Sep 13, 2019:
- 11:23 PM Changeset in webkit [249870] by
-
- 6 edits4 adds in trunk
WPT importer should check META global tag in .any.js files to generate the valid .html stub files
https://bugs.webkit.org/show_bug.cgi?id=201718
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/infrastructure/server/context.any.serviceworker-expected.txt: Added.
- web-platform-tests/infrastructure/server/context.any.serviceworker.html: Added.
- web-platform-tests/infrastructure/server/secure-context.https.any.serviceworker-expected.txt: Added.
- web-platform-tests/infrastructure/server/secure-context.https.any.serviceworker.html: Added.
Tools:
Read meta tag information to select the environments where the any.js template tests will be run.
Added support to run service worker tests from any.js template tests.
Covered by unit test.
Since we import only a single repository nowadays, use a test config file with just one repository
to simplify the new test.
- Scripts/webkitpy/w3c/test_importer.py:
(TestImporter.init):
(TestImporter.readEnvironmentsForTemplateTest):
(TestImporter.write_html_files_for_templated_js_tests):
- Scripts/webkitpy/w3c/test_importer_unittest.py:
(TestImporterTest.test_import_dir_with_no_tests_and_no_hg):
(TestImporterTest.test_import_dir_with_no_tests):
(TestImporterTest.test_import_dir_with_empty_init_py):
(TestImporterTest.test_harnesslinks_conversion):
(TestImporterTest.test_submodules_generation):
(test_checkout_directory):
(test_clean_directory_option):
(test_git_ignore_generation):
(test_initpy_generation):
(test_remove_obsolete_content):
(test_manual_slow_test):
(test_webkit_test_runner_options):
(test_webkit_test_runner_import_reftests_with_absolute_paths_download):
(test_webkit_test_runner_import_reftests_with_absolute_paths_from_source_dir):
(test_template_test):
LayoutTests:
- platform/mac-wk1/TestExpectations:
Skipping service worker tests.
- 10:14 PM Changeset in webkit [249869] by
-
- 2 edits in trunk/Source/WebKit
[MacOS/iOS] imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-abort.https.html is sometimes crashing in Debug
https://bugs.webkit.org/show_bug.cgi?id=201686
Reviewed by Alexey Proskuryakov.
A load might be cancelled shortly after being started in network process.
In that case, NetworkDataTaskCocoa might be destroyed, thus removed from the ID to task map
but some handlers might still be called until the NSURLSessionTask is finished cancelling.
This happens for authentication challenges.
In case where the NSURLSessionTask is cancelling, return early instead of processing the challenge.
Covered by LayoutTests/imported/w3c/web-platform-tests/service-workers/cache-storage/window/cache-abort.https.html and LayoutTests/imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-abort.https.html no longer crashing in debug.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
- 7:22 PM Changeset in webkit [249868] by
-
- 2 edits in trunk/Source/JavaScriptCore
jsc -d stopped working.
https://bugs.webkit.org/show_bug.cgi?id=201787
Reviewed by Joseph Pecoraro.
The reason is because, in this case, the jsc shell is trying to set an option
after the VM has been instantiated. The fix is simply to move all options
initialization before the VM is instantiated.
- jsc.cpp:
(runWithOptions):
(jscmain):
- 7:16 PM Changeset in webkit [249867] by
-
- 11 edits13 adds in trunk
Web Inspector: HTML Formatter - XML mode
https://bugs.webkit.org/show_bug.cgi?id=201758
Reviewed by Devin Rousso.
Source/WebInspectorUI:
- Tools/HTMLFormatter/index.html:
- Tools/SourceMaps/index.html:
Update Tools to more easily test XML.
- UserInterface/Proxies/FormatterWorkerProxy.js:
(WI.FormatterWorkerProxy.prototype.formatXML):
- UserInterface/Views/TextEditor.js:
(WI.TextEditor.prototype.hasFormatter):
(WI.TextEditor.prototype._startWorkerPrettyPrint):
Allow formatting XML content.
- UserInterface/Workers/Formatter/FormatterWorker.js:
(FormatterWorker.prototype.formatHTML):
(FormatterWorker.prototype.formatXML):
Expose "formatXML".
- UserInterface/Workers/Formatter/HTMLFormatter.js:
(HTMLFormatter.let.dom):
(HTMLFormatter):
(HTMLFormatter.prototype._shouldHaveNoChildren):
(HTMLFormatter.prototype._before):
(HTMLFormatter.prototype._after):
- UserInterface/Workers/Formatter/HTMLParser.js:
(HTMLParser.prototype.parseDocument):
- UserInterface/Workers/Formatter/HTMLTreeBuilderFormatter.js:
(HTMLTreeBuilderFormatter.prototype._isEmptyNode):
Give the HTMLFormatter and related classes an XML mode that
has less of the smarts of XML.
LayoutTests:
- inspector/formatting/formatting-xml-expected.txt: Added.
- inspector/formatting/formatting-xml.html: Added.
- inspector/formatting/resources/formatting-utilities.js:
(TestPage.registerInitializer.async.runFormattingTest):
- inspector/formatting/resources/xml-tests/atom-expected.xml: Added.
- inspector/formatting/resources/xml-tests/atom.xml: Added.
- inspector/formatting/resources/xml-tests/basic-expected.xml: Added.
- inspector/formatting/resources/xml-tests/basic.xml: Added.
- inspector/formatting/resources/xml-tests/rss-expected.xml: Added.
- inspector/formatting/resources/xml-tests/rss.xml: Added.
- inspector/formatting/resources/xml-tests/valid-html-invalid-xml-expected.xml: Added.
- inspector/formatting/resources/xml-tests/valid-html-invalid-xml.xml: Added.
- inspector/formatting/resources/xml-tests/xslt-expected.xml: Added.
- inspector/formatting/resources/xml-tests/xslt.xml: Added.
- 6:57 PM Changeset in webkit [249866] by
-
- 5 edits6 adds in trunk
Web Inspector: HTML Formatting: Handle infinite loop for incomplete script data
https://bugs.webkit.org/show_bug.cgi?id=201769
Reviewed by Devin Rousso.
Source/WebInspectorUI:
- UserInterface/Workers/Formatter/HTMLParser.js:
(HTMLParser):
Handle EOF in the script data's loop.
Better handle EOF at the end of text data.
LayoutTests:
- inspector/formatting/formatting-html-expected.txt:
- inspector/formatting/formatting-html.html:
- inspector/formatting/resources/html-tests/eof-7-expected.html: Added.
- inspector/formatting/resources/html-tests/eof-7.html: Added.
- inspector/formatting/resources/html-tests/eof-8-expected.html: Added.
- inspector/formatting/resources/html-tests/eof-8.html: Added.
- inspector/formatting/resources/html-tests/eof-9-expected.html: Added.
- inspector/formatting/resources/html-tests/eof-9.html: Added.
- 6:52 PM Changeset in webkit [249865] by
-
- 2 edits in trunk/Source/JavaScriptCore
watchOS requires PageSize alignment of 16K for JSC::Config.
https://bugs.webkit.org/show_bug.cgi?id=201786
<rdar://problem/55357890>
Reviewed by Yusuke Suzuki.
- runtime/JSCConfig.h:
- 6:12 PM Changeset in webkit [249864] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, follow-up fix after r249842
https://bugs.webkit.org/show_bug.cgi?id=201750
Michael reviewed this offline. When performing nearCall, we need to invalidate cache registers.
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::nearCall):
(JSC::MacroAssemblerARM64::threadSafePatchableNearCall):
- 5:50 PM Changeset in webkit [249863] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Improve auto completion typing performance by avoiding global forced layouts
https://bugs.webkit.org/show_bug.cgi?id=201735
Reviewed by Devin Rousso.
- UserInterface/Views/Main.css:
(#layout-measurement-container):
- UserInterface/Base/Main.js:
(WI.measureElement):
Provide a helper for measuring an element in a hidden container
that helps avoid more global layout.
- UserInterface/Views/CompletionSuggestionsView.js:
(WI.CompletionSuggestionsView.prototype.show):
Use measure element to avoid a global forced layout.
- 5:35 PM Changeset in webkit [249862] by
-
- 2 edits in trunk/Tools
Provide a prototype for AR QuickLook to trigger processing in the originating page
https://bugs.webkit.org/show_bug.cgi?id=201371
<rdar://54904781>
Disable the test for the moment.
- TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:
(TestWebKitAPI::TEST):
- 5:24 PM Changeset in webkit [249861] by
-
- 4 edits in trunk
Date.prototype.toJSON does not execute steps 1-2
https://bugs.webkit.org/show_bug.cgi?id=105282
Patch by Alexey Shvayka <Alexey Shvayka> on 2019-09-13
Reviewed by Ross Kirsling.
JSTests:
- test262/expectations.yaml: Mark 2 test cases as passing.
Source/JavaScriptCore:
According to https://tc39.es/ecma262/#sec-built-in-function-objects, built-in methods must be
strict mode functions. Before this change,thisvalue in Date.prototype.toJSON was resolved
using sloppy mode semantics, resulting intoISOStringbeing called on global object ifthis
value equalsnullorundefined.
- runtime/DatePrototype.cpp:
(JSC::dateProtoFuncToJSON): Resolve thisValue using strict semantics and simplify std::isfinite check.
- 5:12 PM Changeset in webkit [249860] by
-
- 2 edits in trunk/LayoutTests
Layout Test webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance.html is failing on iOS.
https://bugs.webkit.org/show_bug.cgi?id=201784
Unreviewed Test Gardening.
- platform/ios/TestExpectations: Marked Test as Failing.
- 5:00 PM Changeset in webkit [249859] by
-
- 2 edits in trunk/Source/WTF
iOS 13: Some SPI targets 13.1
https://bugs.webkit.org/show_bug.cgi?id=201777
Reviewed by Alexey Proskuryakov.
- wtf/Platform.h:
- 4:45 PM Changeset in webkit [249858] by
-
- 2 edits in trunk/Source/JavaScriptCore
performJITMemcpy() should do its !Gigacage assertion on exit.
https://bugs.webkit.org/show_bug.cgi?id=201780
<rdar://problem/55354867>
Reviewed by Robin Morisset.
Re-doing previous fix.
- jit/ExecutableAllocator.h:
(JSC::performJITMemcpy):
(JSC::GigacageAssertScope::GigacageAssertScope): Deleted.
(JSC::GigacageAssertScope::~GigacageAssertScope): Deleted.
- 4:18 PM Changeset in webkit [249857] by
-
- 2 edits in trunk/Source/JavaScriptCore
performJITMemcpy() should do its !Gigacage assertion on exit.
https://bugs.webkit.org/show_bug.cgi?id=201780
<rdar://problem/55354867>
Reviewed by Robin Morisset.
- jit/ExecutableAllocator.h:
(JSC::GigacageAssertScope::GigacageAssertScope):
(JSC::GigacageAssertScope::~GigacageAssertScope):
(JSC::performJITMemcpy):
- 3:06 PM Changeset in webkit [249856] by
-
- 2 edits in trunk/Source/bmalloc
We should never fail to allocate VA for the Gigacage.
https://bugs.webkit.org/show_bug.cgi?id=201774
<rdar://problem/55352042>
Reviewed by Yusuke Suzuki.
Unfortunately, this is still not true for OS(LINUX). So, I'll leave the
GIGACAGE_ALLOCATION_CAN_FAIL code in place but disable it for everything else.
- bmalloc/Gigacage.h:
- 2:43 PM Changeset in webkit [249855] by
-
- 29 edits2 adds in trunk
Provide a prototype for AR QuickLook to trigger processing in the originating page
https://bugs.webkit.org/show_bug.cgi?id=201371
<rdar://54904781>
Reviewed by Simon Fraser.
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::dispatchSystemPreviewActionEvent): Create and dispatch a MessageEvent.
- dom/Document.h:
- html/HTMLAnchorElement.cpp: Send along the page and frame identifiers for this
object to ensure that any reply goes to the correct place.
(WebCore::HTMLAnchorElement::handleClick):
- loader/FrameLoadRequest.h: Use the new SystemPreviewInfo type.
(WebCore::FrameLoadRequest::isSystemPreview const):
(WebCore::FrameLoadRequest::systemPreviewInfo const):
(WebCore::FrameLoadRequest::systemPreviewRect const): Deleted.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
- loader/FrameLoaderTypes.h: Provide encoders for the type.
(WebCore::SystemPreviewInfo::encode const):
(WebCore::SystemPreviewInfo::decode):
- platform/network/ResourceRequestBase.cpp: Use the new type.
(WebCore::ResourceRequestBase::isSystemPreview const):
(WebCore::ResourceRequestBase::systemPreviewInfo const):
(WebCore::ResourceRequestBase::setSystemPreviewInfo):
(WebCore::ResourceRequestBase::setSystemPreview): Deleted.
(WebCore::ResourceRequestBase::systemPreviewRect const): Deleted.
(WebCore::ResourceRequestBase::setSystemPreviewRect): Deleted.
- platform/network/ResourceRequestBase.h:
- testing/Internals.cpp: Expose the frame and page identifiers to testing.
(WebCore::Internals::frameIdentifier const):
(WebCore::Internals::pageIdentifier const):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Provide a way for a Web page to know if an action in the AR scene
was performed, if and only if the system AR library calls a delegate with
particular parameters. Post a message to the originating frame so
the page can detect the action.
- Scripts/webkit/messages.py: Include the right header for SystemPreviewInfo.
- Shared/WebCoreArgumentCoders.cpp: Use SystemPreviewInfo.
(IPC::ArgumentCoder<ResourceRequest>::encode):
(IPC::ArgumentCoder<ResourceRequest>::decode):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _triggerSystemPreviewActionOnFrame:page:]): New helper/test function
to trigger the system preview action.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/DownloadClient.mm: Use new type.
(WebKit::DownloadClient::didStart):
- UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Implement the delegate so that
we can detect an action. When it happens, tell the WebPageProxy to send a message.
- UIProcess/Downloads/DownloadProxy.h: Use SystemPreviewInfo type.
(WebKit::DownloadProxy::systemPreviewDownloadInfo const):
(WebKit::DownloadProxy::systemPreviewDownloadRect const): Deleted.
- UIProcess/SystemPreviewController.h:
(WebKit::SystemPreviewController::previewInfo const):
- UIProcess/WebPageProxy.cpp: Send it over to the Web Process.
(WebKit::WebPageProxy::systemPreviewActionTriggered const):
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp: Check the destination still exists, and then talk
to the Document.
(WebKit::WebPage::systemPreviewActionTriggered):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
- TestWebKitAPI/Tools/TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/system-preview-trigger.html: Added.
- 1:59 PM Changeset in webkit [249854] by
-
- 2 edits in trunk/Source/WebCore
Crash under WebCore::firstPositionInNode()
https://bugs.webkit.org/show_bug.cgi?id=201764
<rdar://problem/54823754>
Reviewed by Wenson Hsieh and Geoff Garen.
Make sure to keep a Ref<> to the textNode when we call insertNodeAtTabSpanPosition()
or insertNodeAt().
Test: editing/firstPositionInNode-crash.html
- editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::positionInsideTextNode):
- 1:36 PM Changeset in webkit [249853] by
-
- 24 edits in trunk
Partition processes running service workers by session ID
https://bugs.webkit.org/show_bug.cgi?id=201643
Reviewed by Chris Dumez.
Source/WebCore:
Move the creation of service worker context connection management to SWServer.
This allows to partition service worker context connections by registrable domain and sessionID.
WebKit2 is still responsible to create the IPC creation through a Function given to SWServer at construction
time.
SWServer now keeps a map of registrable domain -> context connection to use for running workers.
It also keeps a map of being-created connections.
In case a context connection is removed from the SWServer, the SWServer will notify all related worker instances
that they are not running. The SWServer will also recreate a context connection if needed.
This allows removing the global server context connection map.
Make SWServerToContextConnection no longer refcounted to simplify the lifetime management.
Covered by API test.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::SWServer):
(WebCore::SWServer::tryInstallContextData):
(WebCore::SWServer::contextConnectionCreated):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::needsContextConnectionForRegistrableDomain const):
(WebCore::SWServer::addContextConnection):
(WebCore::SWServer::removeContextConnection):
(WebCore::SWServer::createContextConnection):
- workers/service/server/SWServer.h:
(WebCore::SWServer::contextConnectionForRegistrableDomain):
- workers/service/server/SWServerToContextConnection.cpp:
(WebCore::SWServerToContextConnection::SWServerToContextConnection):
(WebCore::SWServerToContextConnection::~SWServerToContextConnection):
- workers/service/server/SWServerToContextConnection.h:
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::contextConnection):
Source/WebKit:
Remove the management of server context connections from NetworkProcess.
The WebProcessPool service worker process map is now keyed by both registrable domain and sessionID.
Update WebProcessPool to only expose the number of service worker processes instead of the full map.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::swServerForSession):
- NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::swServerForSessionIfExists):
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorker):
(WebKit::WebSWServerConnection::scheduleJobInServer):
(WebKit::WebSWServerConnection::updateThrottleState):
(WebKit::WebSWServerConnection::contextConnectionCreated):
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::connectionIsNoLongerNeeded):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _webPageContentProcessCount]):
(-[WKProcessPool _serviceWorkerProcessCount]):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::disconnectProcess):
- UIProcess/WebProcessPool.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::m_userAgent):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- 12:48 PM Changeset in webkit [249852] by
-
- 1 edit in trunk/LayoutTests/ChangeLog
Unreviewed, fix ChangeLog entry for r249730
- 12:46 PM Changeset in webkit [249851] by
-
- 2 edits in trunk/Tools
Re-add myself to the list of committers
Unreviewed.
- Scripts/webkitpy/common/config/contributors.json:
- 12:17 PM Changeset in webkit [249850] by
-
- 3 edits in trunk/LayoutTests/imported/w3c
Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/getregistrations.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=201661
<rdar://problem/55240851>
Reviewed by Alex Christensen.
The last test's cleanup step was very complex (involving waiting for a promise to get resolved) and WebKit's
completion handler in testharnessreport.js was often getting called before the promise resolution, leaving
the test frame in the output when we call notifyDone(). This seems like a potential bug in testharness.js.
To address the issue for now, do the unregistration in the test's body and only remove the test frame in
the cleanup step.
- web-platform-tests/service-workers/service-worker/getregistrations.https-expected.txt:
- web-platform-tests/service-workers/service-worker/getregistrations.https.html:
- 12:15 PM Changeset in webkit [249849] by
-
- 19 edits in trunk/Source/WebCore
[LFC] Do not create FormattingContext unless the root has child boxes.
https://bugs.webkit.org/show_bug.cgi?id=201766
<rdar://problem/55344449>
Reviewed by Antti Koivisto.
Just because a box establishes a formatting context, it does not necessarily mean we need to create a formatting context object for it.
The established formatting context is responsible for laying out the descendant content. The formatting context root itself is
laid out in the formatting context it lives in. So if there's no descendent content, we don't need to construct the context objects.
<body><div style="float: left;"></div></body> <- this div establishes a block formatting context (float) but it does not have any content so laying
it out simply means sizing and positioning it in the initial block formatting context.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::FormattingContext):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):
(WebCore::Layout::FormattingContext::mapTopToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::mapLeftToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::mapRightToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):
- layout/FormattingContext.h:
(WebCore::Layout::FormattingContext::root const):
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth):
- layout/LayoutState.cpp:
(WebCore::Layout::LayoutState::layoutFormattingContextSubtree):
(WebCore::Layout::LayoutState::establishedFormattingState const):
(WebCore::Layout::LayoutState::createFormattingStateForFormattingRootIfNeeded):
(WebCore::Layout::LayoutState::createFormattingContext):
- layout/LayoutState.h:
(WebCore::Layout::LayoutState::hasFormattingState const):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::BlockFormattingContext):
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider const):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):
- layout/blockformatting/BlockFormattingContext.h:
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::intrinsicWidthConstraints):
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):
- layout/floats/FloatingContext.h:
(WebCore::Layout::FloatingContext::root const):
- layout/floats/FloatingState.cpp:
(WebCore::Layout::FloatingState::FloatingState):
(WebCore::Layout::FloatingState::bottom const):
(WebCore::Layout::FloatingState::top const):
- layout/floats/FloatingState.h:
(WebCore::Layout::FloatingState::create):
(WebCore::Layout::FloatingState::root const):
(WebCore::Layout::FloatingState::leftBottom const):
(WebCore::Layout::FloatingState::rightBottom const):
(WebCore::Layout::FloatingState::bottom const):
(WebCore::Layout::FloatingState::FloatItem::isDescendantOfFormattingRoot const):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::InlineFormattingContext):
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::collectInlineContent const):
- layout/inlineformatting/InlineFormattingContext.h:
(WebCore::Layout::InlineFormattingContext::InlineLayout::formattingRoot const):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::adjustBaselineAndLineHeight):
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::TableFormattingContext):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForSections):
(WebCore::Layout::TableFormattingContext::ensureTableGrid):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):
- layout/tableformatting/TableFormattingContext.h:
- 12:08 PM Changeset in webkit [249848] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Tighter autocomplete bubbles
https://bugs.webkit.org/show_bug.cgi?id=201742
Reviewed by Timothy Hatcher.
- UserInterface/Views/CompletionSuggestionsView.js:
(WI.CompletionSuggestionsView.prototype.show):
Eliminate the trailing space. Use bounding client rect to get
fractional widths and raise the value so we are at an even number.
- 12:02 PM Changeset in webkit [249847] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION: Web Inspector: Layout Timeline View does not show popover for initiator data
https://bugs.webkit.org/show_bug.cgi?id=201732
<rdar://problem/55312339>
Reviewed by Devin Rousso.
- UserInterface/Views/LayoutTimelineDataGrid.js:
(WI.LayoutTimelineDataGrid.prototype.callFramePopoverAnchorElement):
(WI.LayoutTimelineDataGrid.prototype.shouldShowCallFramePopover):
The column name was incorrect.
- 11:58 AM Changeset in webkit [249846] by
-
- 2 edits in trunk/Source/WebInspectorUI
Uncaught Exception: null is not an object (evaluating 'Object.keys(propertyNames)') (at JavaScriptRuntimeCompletionProvider.js:244:57)
https://bugs.webkit.org/show_bug.cgi?id=201729
Reviewed by Devin Rousso.
- UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WI.JavaScriptRuntimeCompletionProvider):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded):
Don't clear the completion object group until all ongoing requests have completed.
Percision for the lifetime of the object group objects is not important, but we
surely don't want to delete an object too soon.
- 11:46 AM Changeset in webkit [249845] by
-
- 3 edits2 adds in trunk
IntersectionObserverEntry#intersectionRatio can be larger than 1
https://bugs.webkit.org/show_bug.cgi?id=200776
Reviewed by Simon Fraser.
Source/WebCore:
When computing the intersection between a target and an intersection observer's
root, RenderBox::computeVisibleRectInContainer is used to map the target rect
up the containing block chain, clipping along the way. When a RenderBox has
a transform, this method expands the given rect to the enclosing rect in device
pixels. This is fine for the use case of computing an invalidation rect, but for
the intersection observer use case it means that it is possible for the computed
intersection rect to be slightly larger than the original target rect, resulting
in an intersection ratio greater than 1.
Fix this by performing a final intersection between the intersection rect as
computed above and the target rect.
Test: intersection-observer/intersection-clipped-to-target.html
- dom/Document.cpp:
(WebCore::computeIntersectionState):
LayoutTests:
- intersection-observer/intersection-clipped-to-target-expected.txt: Added.
- intersection-observer/intersection-clipped-to-target.html: Added.
- 11:46 AM Changeset in webkit [249844] by
-
- 2 edits in trunk/LayoutTests
Layout Test http/tests/appcache/remove-cache.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=199124
Unreviewed Test Gardening..
- platform/mac/TestExpectations: Marked Test as Flaky.
- 11:21 AM Changeset in webkit [249843] by
-
- 8 edits5 adds in trunk
SMIL animations of SVG <view> element have no effect
https://bugs.webkit.org/show_bug.cgi?id=94469
Patch by Nikolas Zimmermann <zimmermann@kde.org> on 2019-09-13
Reviewed by Said Abou-Hallawa.
Source/WebCore:
SMIL animations of the attributes associated with SVGViewElement work fine, but without any
visual effect. When loading an SVG document with a given fragment identifier
(e.g. test.svg#customView) where 'customView' references to an embedded SVGViewElement, the
viewBox/preserveAspectRatio settings should be taken from the SVGViewElement. Currently
there is no link between the SVGViewElement and the SVGSVGElement. The settings from the
SVGViewElement are only pasrsed onco in SVGSVGElement::scrollToFragment(). Dynamic updates
of the 'viewBox' and 'preserveAspectRatio' attributes of the SVGViewElement thus have no
visual effect, since the SVGSVGElement does not re-evaluates its viewBox.
Store a RefPtr to the currently used SVGViewElement in SVGSVGElement, and a WeakPtr back
to the SVGSVGElement that currently references the SVGViewElement. This allows us to
propagate SVGViewElement attribute changes to SVGSVGElement and re-evaluate the viewBox
stored in SVGSVGElement and trigger visual updates.
Tests: svg/custom/animation-on-view-element.html
svg/custom/multiple-view-elements.html
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::scrollToFragment):
- svg/SVGSVGElement.h:
- svg/SVGViewElement.cpp:
(WebCore::SVGViewElement::svgAttributeChanged): Add missing implementation, tracked by
webkit.org/b/196554. Correctly handle SVGFitToViewBox property changes. Update the viewBox
stored in the SVGSVGElement, that references the SVGViewElement. Afterwards invalidate the
renderer associated with the SVGSVGElement, which properly triggers visual updates.
- svg/SVGViewElement.h:
LayoutTests:
Add new layout tests to verify that dynamic modifications of the <view> element cause
visual updates. Previously SVGSVGElement was never notified about changes of the
SVGViewElement and thus did not update the stored viewBox.
- svg/custom/animation-on-view-element-expected.html: Added.
- svg/custom/animation-on-view-element.html: Added. This is a new reftest
demonstrating that animations of SVG <view> elements now behave as expected.
- svg/custom/multiple-view-elements-expected.html: Added.
- svg/custom/multiple-view-elements.html: Added.
- svg/dom/SVGViewSpec-multiple-views-expected.txt:
- svg/dom/SVGViewSpec-multiple-views.html: Extend to cover dynamic modifications.
- 11:01 AM Changeset in webkit [249842] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Micro-optimize YarrJIT's surrogate pair handling
https://bugs.webkit.org/show_bug.cgi?id=201750
Reviewed by Michael Saboff.
Optimize sequence of machine code used to get code-point with unicode flag.
- yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::tryReadUnicodeCharImpl):
- 10:54 AM Changeset in webkit [249841] by
-
- 4 edits in trunk/Source/JavaScriptCore
We should assert $vm is enabled on entry and exit in its functions.
https://bugs.webkit.org/show_bug.cgi?id=201762
<rdar://problem/55338742>
Rubber-stamped by Michael Saboff.
- Also do the same for FunctionOverrides.
- Added the DollarVMAssertScope and FunctionOverridesAssertScope to achieve this.
- Also added assertions to lambda functions in $vm.
- tools/FunctionOverrides.cpp:
(JSC::FunctionOverridesAssertScope::FunctionOverridesAssertScope):
(JSC::FunctionOverridesAssertScope::~FunctionOverridesAssertScope):
(JSC::FunctionOverrides::overrides):
(JSC::FunctionOverrides::FunctionOverrides):
(JSC::FunctionOverrides::reinstallOverrides):
(JSC::initializeOverrideInfo):
(JSC::FunctionOverrides::initializeOverrideFor):
(JSC::parseClause):
(JSC::FunctionOverrides::parseOverridesInFile):
- tools/JSDollarVM.cpp:
(JSC::JSDollarVMCallFrame::JSDollarVMCallFrame):
(JSC::JSDollarVMCallFrame::createStructure):
(JSC::JSDollarVMCallFrame::create):
(JSC::JSDollarVMCallFrame::finishCreation):
(JSC::JSDollarVMCallFrame::addProperty):
(JSC::Element::Element):
(JSC::Element::create):
(JSC::Element::visitChildren):
(JSC::Element::createStructure):
(JSC::Root::Root):
(JSC::Root::setElement):
(JSC::Root::create):
(JSC::Root::createStructure):
(JSC::Root::visitChildren):
(JSC::SimpleObject::SimpleObject):
(JSC::SimpleObject::create):
(JSC::SimpleObject::visitChildren):
(JSC::SimpleObject::createStructure):
(JSC::ImpureGetter::ImpureGetter):
(JSC::ImpureGetter::createStructure):
(JSC::ImpureGetter::create):
(JSC::ImpureGetter::finishCreation):
(JSC::ImpureGetter::getOwnPropertySlot):
(JSC::ImpureGetter::visitChildren):
(JSC::CustomGetter::CustomGetter):
(JSC::CustomGetter::createStructure):
(JSC::CustomGetter::create):
(JSC::CustomGetter::getOwnPropertySlot):
(JSC::CustomGetter::customGetter):
(JSC::CustomGetter::customGetterAcessor):
(JSC::RuntimeArray::create):
(JSC::RuntimeArray::destroy):
(JSC::RuntimeArray::getOwnPropertySlot):
(JSC::RuntimeArray::getOwnPropertySlotByIndex):
(JSC::RuntimeArray::createPrototype):
(JSC::RuntimeArray::createStructure):
(JSC::RuntimeArray::finishCreation):
(JSC::RuntimeArray::RuntimeArray):
(JSC::RuntimeArray::lengthGetter):
(JSC::DOMJITNode::DOMJITNode):
(JSC::DOMJITNode::createStructure):
(JSC::DOMJITNode::checkSubClassSnippet):
(JSC::DOMJITNode::create):
(JSC::DOMJITGetter::DOMJITGetter):
(JSC::DOMJITGetter::createStructure):
(JSC::DOMJITGetter::create):
(JSC::DOMJITGetter::DOMJITAttribute::slowCall):
(JSC::DOMJITGetter::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetter::customGetter):
(JSC::DOMJITGetter::finishCreation):
(JSC::DOMJITGetterComplex::DOMJITGetterComplex):
(JSC::DOMJITGetterComplex::createStructure):
(JSC::DOMJITGetterComplex::create):
(JSC::DOMJITGetterComplex::DOMJITAttribute::slowCall):
(JSC::DOMJITGetterComplex::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetterComplex::functionEnableException):
(JSC::DOMJITGetterComplex::customGetter):
(JSC::DOMJITGetterComplex::finishCreation):
(JSC::DOMJITFunctionObject::DOMJITFunctionObject):
(JSC::DOMJITFunctionObject::createStructure):
(JSC::DOMJITFunctionObject::create):
(JSC::DOMJITFunctionObject::functionWithTypeCheck):
(JSC::DOMJITFunctionObject::functionWithoutTypeCheck):
(JSC::DOMJITFunctionObject::checkSubClassSnippet):
(JSC::DOMJITFunctionObject::finishCreation):
(JSC::DOMJITCheckSubClassObject::DOMJITCheckSubClassObject):
(JSC::DOMJITCheckSubClassObject::createStructure):
(JSC::DOMJITCheckSubClassObject::create):
(JSC::DOMJITCheckSubClassObject::functionWithTypeCheck):
(JSC::DOMJITCheckSubClassObject::functionWithoutTypeCheck):
(JSC::DOMJITCheckSubClassObject::finishCreation):
(JSC::DOMJITGetterBaseJSObject::DOMJITGetterBaseJSObject):
(JSC::DOMJITGetterBaseJSObject::createStructure):
(JSC::DOMJITGetterBaseJSObject::create):
(JSC::DOMJITGetterBaseJSObject::DOMJITAttribute::slowCall):
(JSC::DOMJITGetterBaseJSObject::DOMJITAttribute::callDOMGetter):
(JSC::DOMJITGetterBaseJSObject::customGetter):
(JSC::DOMJITGetterBaseJSObject::finishCreation):
(JSC::JSTestCustomGetterSetter::JSTestCustomGetterSetter):
(JSC::JSTestCustomGetterSetter::create):
(JSC::JSTestCustomGetterSetter::createStructure):
(JSC::customSetAccessor):
(JSC::customSetValue):
(JSC::JSTestCustomGetterSetter::finishCreation):
(JSC::Element::handleOwner):
(JSC::Element::finishCreation):
(JSC::WasmStreamingParser::WasmStreamingParser):
(JSC::WasmStreamingParser::create):
(JSC::WasmStreamingParser::createStructure):
(JSC::WasmStreamingParser::finishCreation):
(JSC::functionWasmStreamingParserAddBytes):
(JSC::functionWasmStreamingParserFinalize):
(JSC::functionCrash):
(JSC::functionBreakpoint):
(JSC::functionDFGTrue):
(JSC::functionFTLTrue):
(JSC::functionCpuMfence):
(JSC::functionCpuRdtsc):
(JSC::functionCpuCpuid):
(JSC::functionCpuPause):
(JSC::functionCpuClflush):
(JSC::CallerFrameJITTypeFunctor::CallerFrameJITTypeFunctor):
(JSC::getExecutableForFunction):
(JSC::functionLLintTrue):
(JSC::functionJITTrue):
(JSC::functionNoInline):
(JSC::functionGC):
(JSC::functionEdenGC):
(JSC::functionDumpSubspaceHashes):
(JSC::functionCallFrame):
(JSC::functionCodeBlockForFrame):
(JSC::codeBlockFromArg):
(JSC::functionCodeBlockFor):
(JSC::functionDumpSourceFor):
(JSC::functionDumpBytecodeFor):
(JSC::doPrint):
(JSC::functionDataLog):
(JSC::functionPrint):
(JSC::functionDumpCallFrame):
(JSC::functionDumpStack):
(JSC::functionDumpRegisters):
(JSC::functionDumpCell):
(JSC::functionIndexingMode):
(JSC::functionInlineCapacity):
(JSC::functionValue):
(JSC::functionGetPID):
(JSC::functionHaveABadTime):
(JSC::functionIsHavingABadTime):
(JSC::functionCreateGlobalObject):
(JSC::functionCreateProxy):
(JSC::functionCreateRuntimeArray):
(JSC::functionCreateNullRopeString):
(JSC::functionCreateImpureGetter):
(JSC::functionCreateCustomGetterObject):
(JSC::functionCreateDOMJITNodeObject):
(JSC::functionCreateDOMJITGetterObject):
(JSC::functionCreateDOMJITGetterComplexObject):
(JSC::functionCreateDOMJITFunctionObject):
(JSC::functionCreateDOMJITCheckSubClassObject):
(JSC::functionCreateDOMJITGetterBaseJSObject):
(JSC::functionCreateWasmStreamingParser):
(JSC::functionSetImpureGetterDelegate):
(JSC::functionCreateBuiltin):
(JSC::functionGetPrivateProperty):
(JSC::functionCreateRoot):
(JSC::functionCreateElement):
(JSC::functionGetElement):
(JSC::functionCreateSimpleObject):
(JSC::functionGetHiddenValue):
(JSC::functionSetHiddenValue):
(JSC::functionShadowChickenFunctionsOnStack):
(JSC::functionSetGlobalConstRedeclarationShouldNotThrow):
(JSC::functionFindTypeForExpression):
(JSC::functionReturnTypeFor):
(JSC::functionFlattenDictionaryObject):
(JSC::functionDumpBasicBlockExecutionRanges):
(JSC::functionHasBasicBlockExecuted):
(JSC::functionBasicBlockExecutionCount):
(JSC::functionEnableExceptionFuzz):
(JSC::changeDebuggerModeWhenIdle):
(JSC::functionEnableDebuggerModeWhenIdle):
(JSC::functionDisableDebuggerModeWhenIdle):
(JSC::functionDeleteAllCodeWhenIdle):
(JSC::functionGlobalObjectCount):
(JSC::functionGlobalObjectForObject):
(JSC::functionGetGetterSetter):
(JSC::functionLoadGetterFromGetterSetter):
(JSC::functionCreateCustomTestGetterSetter):
(JSC::functionDeltaBetweenButterflies):
(JSC::functionTotalGCTime):
(JSC::functionParseCount):
(JSC::functionIsWasmSupported):
(JSC::JSDollarVM::finishCreation):
(JSC::JSDollarVM::addFunction):
(JSC::JSDollarVM::addConstructibleFunction):
- tools/JSDollarVM.h:
(JSC::DollarVMAssertScope::DollarVMAssertScope):
(JSC::DollarVMAssertScope::~DollarVMAssertScope):
- 10:30 AM Changeset in webkit [249840] by
-
- 1 edit in trunk/LayoutTests/platform/ios/TestExpectations
Unreviewd test gardening after r249817.
- platform/ios/TestExpectations: Remove failure expectation that was overriding the skip in platform/wk2/TestExpectations.
- 10:14 AM Changeset in webkit [249839] by
-
- 8 edits in trunk/Source/WebCore
[FTW] ImageBuffer/ImageBufferData is highly inefficient
https://bugs.webkit.org/show_bug.cgi?id=201594
Reviewed by Said Abou-Hallawa.
My initial implementation of ImageBuffer and ImageBufferData for Direct2D involves too
much moving of data from GPU to CPU and back. We only need to make a renderable version
of the ImageBuffer when ImageBuffer::sinkIntoNativeImage or ImageBuffer::copyNativeImage
are called.
Currently, each ImageBuffer putData operation uploads the data to the GPU, and each
ImageBuffer getData pulls the data from the GPU.
This patch does the following:
- It makes the assumption that the ID2D1Bitmap it holds is under its control (i.e., external draw operations do not manipulate the bitmap without marking it dirty).
- It holds a CPU copy of the data from the ID2D1Bitmap originally used to create it. It uses this data for all manipulations, and uploads to the bitmap only when an ID2D1Bitmap is requested for drawing, and before a drawing operation is performed on the associated ImageBuffer context.
- It does not read back from the ID2D1Bitmap unless it is told that it is dirty.
- It does not call 'ID2D1RenderTarget::SetTags' if ASSERTS are disabled because they are costly, and don't help in release builds.
- platform/graphics/win/Direct2DOperations.cpp:
(WebCore::Direct2D::fillRect): Use new 'setTags' method.
(WebCore::Direct2D::fillRoundedRect): Ditto.
(WebCore::Direct2D::fillRectWithRoundedHole): Ditto.
(WebCore::Direct2D::fillRectWithGradient): Ditto.
(WebCore::Direct2D::fillPath): Ditto.
(WebCore::Direct2D::strokeRect): Ditto.
(WebCore::Direct2D::strokePath): Ditto.
(WebCore::Direct2D::drawPath): Ditto.
(WebCore::Direct2D::drawWithShadow): Notify observers before and after we drew.
(WebCore::Direct2D::drawWithoutShadow): Ditto.
(WebCore::Direct2D::clearRect): Use new 'setTags' method.
(WebCore::Direct2D::drawGlyphs): Ditto.
(WebCore::Direct2D::drawNativeImage): Ditto.
(WebCore::Direct2D::drawRect): Ditto.
(WebCore::Direct2D::drawLine): Ditto.
(WebCore::Direct2D::fillEllipse): Ditto.
(WebCore::Direct2D::drawEllipse): Ditto.
(WebCore::Direct2D::flush): Notify observer after we drew.
- platform/graphics/win/GradientDirect2D.cpp:
(WebCore::Gradient::fill): Don't call SetTags in non-ASSERT builds.
- platform/graphics/win/ImageBufferDataDirect2D.cpp:
(WebCore::ImageBufferData::ensureBackingStore const): Added.
(WebCore::ImageBufferData::getData const): Only read from the GPU if the in-memory
store is empty or out-of-sync.
(WebCore::ImageBufferData::putData): Mark the bitmap as out-of-sync, but don't
upload the data yet.
(WebCore::ImageBufferData::loadDataToBitmapIfNeeded): Helper function to upload data to the GPU.
(WebCore::ImageBufferData::compatibleBitmap): Only upload data if the relevant
bitmap is out of date.
- platform/graphics/win/ImageBufferDataDirect2D.h:
- platform/graphics/win/ImageBufferDirect2D.cpp:
(WebCore::ImageBuffer::ImageBuffer): Update constructor to register the ImageBufferData
lambdas as observer for draw operations.
- platform/graphics/win/PlatformContextDirect2D.cpp:
(WebCore::PlatformContextDirect2D::PlatformContextDirect2D): Update constructor to accept
lambdas to run before and after draw operations.
(WebCore::PlatformContextDirect2D::setTags): Added.
(WebCore::PlatformContextDirect2D::notifyPreDrawObserver): Added.
(WebCore::PlatformContextDirect2D::notifyPostDrawObserver): Added.
- platform/graphics/win/PlatformContextDirect2D.h:
(WebCore::PlatformContextDirect2D::PlatformContextDirect2D):
- 9:53 AM Changeset in webkit [249838] by
-
- 12 edits2 deletes in trunk
Unreviewed, rolling out r249709.
Layout test added in this patch has been consistently failing
since it landed.
Reverted changeset:
"Option + arrow moves caret past whitespace on iOS"
https://bugs.webkit.org/show_bug.cgi?id=201575
https://trac.webkit.org/changeset/249709
- 9:40 AM Changeset in webkit [249837] by
-
- 10 edits in trunk/Source/WebCore
[LFC] Rename FormattingContext::layout to layoutInFlowContent()
https://bugs.webkit.org/show_bug.cgi?id=201763
<rdar://problem/55340435>
Reviewed by Antti Koivisto.
FormattingContext::layout() only takes care of the inflow content. Out-out-flow boxes are laid out through FormattingContext::layoutOutOfFlowContent.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):
- layout/FormattingContext.h:
- layout/LayoutState.cpp:
(WebCore::Layout::LayoutState::layoutFormattingContextSubtree):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::layout): Deleted.
- layout/blockformatting/BlockFormattingContext.h:
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::layout): Deleted.
- layout/inlineformatting/InlineFormattingContext.h:
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
(WebCore::Layout::TableFormattingContext::layout): Deleted.
- layout/tableformatting/TableFormattingContext.h:
- 9:13 AM Changeset in webkit [249836] by
-
- 2 edits in trunk/Tools
[iOS] TestWebKitAPI.WebKit.TLSVersionWebSocket is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=201745
Patch by Alex Christensen <achristensen@webkit.org> on 2019-09-13
Reviewed by Chris Dumez.
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
(TestWebKitAPI::TEST):
The exact message isn't important. The fact that the TLS handshake failed is, which is checked by the TCPServer.
- 9:03 AM Changeset in webkit [249835] by
-
- 3 edits in trunk/Source/WebKit
AuxiliaryProcessProxy::sendWithAsyncReply should queue up messages if sent while the process is starting like it does messages without replies
https://bugs.webkit.org/show_bug.cgi?id=201746
Reviewed by Youenn Fablet.
- UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::sendMessage):
(WebKit::AuxiliaryProcessProxy::didFinishLaunching):
- UIProcess/AuxiliaryProcessProxy.h:
(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):
- 8:42 AM Changeset in webkit [249834] by
-
- 19 edits in trunk/Source/WebCore
[LFC] FormattingContext::displayBoxForLayoutBox should be split into 2 functions
https://bugs.webkit.org/show_bug.cgi?id=201754
<rdar://problem/55328753>
Reviewed by Antti Koivisto.
- FormattingContext::geometryForBox() returns a const Display::Box. Use this function to access
already computed geometry such as the containing block's content box width.
This function can escape the current formatting context in certain cases and read geometry from parent/ancestor formatting contexts.
- FormattingState::displayBox() returns a non-const version of the Display::Box. Use this function to
create/get the display box of a particular layout box to set computed values. This call should never escape the
current formatting context (as no one should mutate ancestor boxes).
Normally while laying out a particular box, we need to collect some geometry information from other boxes in the tree like previous sibling, containing block.
<div style="width: 100px"><div></div></div> <- the inner div's used width is based on the outer div's width.
However we should never mutate the geometry information on those other boxes (outer div). This patch helps avoiding accidental mutation on ancestors by
returning a const version of the Display::Box.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):
(WebCore::Layout::mapHorizontalPositionToAncestor):
(WebCore::Layout::FormattingContext::mapTopToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::mapLeftToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::mapRightToFormattingContextRoot const):
(WebCore::Layout::FormattingContext::geometryForBox const):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):
(WebCore::Layout::FormattingContext::displayBoxForLayoutBox const): Deleted.
- layout/FormattingContext.h:
(WebCore::Layout::FormattingContext::hasDisplayBox const): Deleted.
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):
- layout/FormattingContextQuirks.cpp:
(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):
- layout/FormattingState.cpp:
(WebCore::Layout::FormattingState::displayBox const):
- layout/FormattingState.h:
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider const):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFloatClear):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition):
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::verticalPositionWithMargin const):
- layout/blockformatting/BlockFormattingContext.h:
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticVerticalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticHorizontalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
- layout/blockformatting/BlockFormattingContextQuirks.cpp:
(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::hasClearance const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithPreviousSiblingMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithSiblingMarginBeforeWithClearance const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updatePositiveNegativeMarginValues):
(WebCore::Layout::hasClearance): Deleted.
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::absoluteDisplayBoxCoordinates const):
(WebCore::Layout::FloatingContext::mapToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapTopToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::initializeMarginBorderAndPaddingForGenericInlineBox):
(WebCore::Layout::InlineFormattingContext::computeMarginBorderAndPaddingForInlineContainer):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::computeHorizontalMargin):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):
- layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
(WebCore::Layout::inlineItemWidth):
(WebCore::Layout::LineLayout::placeInlineItem):
(WebCore::Layout::InlineFormattingContext::InlineLayout::layout const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::computedIntrinsicWidth const):
(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::isInlineContainerConsideredEmpty):
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::inlineItemContentHeight const):
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layout):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
(WebCore::Layout::TableFormattingContext::positionTableCells):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForSections):
(WebCore::Layout::TableFormattingContext::computedTableWidth):
- 7:42 AM Changeset in webkit [249833] by
-
- 6 edits in trunk/LayoutTests
Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/security/appcache-in-private-browsing.html
https://bugs.webkit.org/show_bug.cgi?id=201704
Reviewed by Youenn Fablet.
Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/security/appcache-in-private-browsing.html
and use the new useEphemeralSession WKTR / DRT flag instead.
- http/tests/security/appcache-in-private-browsing-expected.txt:
- http/tests/security/appcache-in-private-browsing.html:
- http/tests/security/resources/frame-for-appcache-in-private-browsing.html:
- platform/mac-wk2/TestExpectations:
- 5:32 AM Changeset in webkit [249832] by
-
- 36 edits in trunk/Source
Use WebProcess processIdentifier to identify Service Worker connections
https://bugs.webkit.org/show_bug.cgi?id=201459
Reviewed by Chris Dumez.
Source/WebCore:
No observable change of behavior.
- workers/service/ServiceWorkerClient.cpp:
(WebCore::ServiceWorkerClient::postMessage):
Pass sessionID to ease NetworkProcess selection of the client process connection.
- workers/service/ServiceWorkerTypes.h:
Mark server connection identifier be process identifier based.
- workers/service/context/SWContextManager.h:
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::Connection::Connection):
- workers/service/server/SWServer.h:
Let connection identifier be set in constructor instead of generated.
Source/WebCore/PAL:
- pal/SessionID.h:
(PAL::SessionID::SessionID):
Source/WebKit:
Make WebSWServerConnection be stored in NetworkConnectionToWebProcess.
They are now keyed by session IDs hence why WebSWClientConnection is using the session ID as message connection ID.
Creation no longer requires a sync IPC since the connection is uniquely identified by its session ID and its process ID.
These IDs are stable over network process crash.
Within NetworkProcess, a server connection is managed by a SWServer which is session ID specific.
In that case, the process identifier uniquely identifies the connection.
Move WebSWServerToContextConnection be owned by NetworkConnectionToWebProcess.
Instead of creating it when webprocess is connecting to network process, use a dedicated IPC message.
This is similar to WebSWServerConnection once WebProcess asks to create it.
This will allow existing WebProcess, in cache or running pages, to run service workers as well.
A context connection map is kept in Network Process to reuse context connections since these connections are not sessionID specific.
Migrate from a single boolean to a HashSet to track whether some connections are in the process of being created.
Previously if two requests to create connections were done shortly one after the other on different registrable
domains, the second request would not be processed.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::forEachSWServer):
(WebKit::NetworkProcess::needsServerToContextConnectionForRegistrableDomain const):
(WebKit::NetworkProcess::createServerToContextConnection):
(WebKit::NetworkProcess::postMessageToServiceWorkerClient):
(WebKit::NetworkProcess::registerSWServerConnection):
(WebKit::NetworkProcess::unregisterSWServerConnection):
(WebKit::NetworkProcess::registerSWContextConnection):
(WebKit::NetworkProcess::unregisterSWContextConnection):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::WebSWServerConnection):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::~WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::openNetworkProcessConnection):
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::establishServiceWorkerContext):
- UIProcess/WebProcessProxy.h:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession):
- WebProcess/Network/NetworkProcessConnection.h:
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::WebSWClientConnection):
(WebKit::WebSWClientConnection::~WebSWClientConnection):
(WebKit::WebSWClientConnection::messageSenderConnection const):
(WebKit::WebSWClientConnection::scheduleJobInServer):
(WebKit::WebSWClientConnection::finishFetchingScriptInServer):
(WebKit::WebSWClientConnection::addServiceWorkerRegistrationInServer):
(WebKit::WebSWClientConnection::removeServiceWorkerRegistrationInServer):
(WebKit::WebSWClientConnection::postMessageToServiceWorker):
(WebKit::WebSWClientConnection::registerServiceWorkerClient):
(WebKit::WebSWClientConnection::unregisterServiceWorkerClient):
(WebKit::WebSWClientConnection::didResolveRegistrationPromise):
(WebKit::WebSWClientConnection::matchRegistration):
(WebKit::WebSWClientConnection::runOrDelayTaskForImport):
(WebKit::WebSWClientConnection::whenRegistrationReady):
(WebKit::WebSWClientConnection::getRegistrations):
(WebKit::WebSWClientConnection::startFetch):
(WebKit::WebSWClientConnection::cancelFetch):
(WebKit::WebSWClientConnection::continueDidReceiveFetchResponse):
(WebKit::WebSWClientConnection::connectionToServerLost):
(WebKit::WebSWClientConnection::clear):
(WebKit::WebSWClientConnection::syncTerminateWorker):
(WebKit::WebSWClientConnection::updateThrottleState):
(WebKit::WebSWClientConnection::storeRegistrationsOnDiskForTesting):
- WebProcess/Storage/WebSWClientConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::m_userAgent):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- 3:05 AM Changeset in webkit [249831] by
-
- 33 edits3 copies2 moves71 adds1 delete in trunk
Web Inspector: Formatter: Pretty Print HTML resources (including inline <script>/<style>)
https://bugs.webkit.org/show_bug.cgi?id=201535
<rdar://problem/29119232>
Reviewed by Devin Rousso.
Source/JavaScriptCore:
- debugger/Debugger.cpp:
(JSC::Debugger::resolveBreakpoint):
When resolving a breakpoint inside of an inline <script> we need to adjust
based on the starting position of the <script> in the HTML resource.
Source/WebInspectorUI:
Introduce HTMLFormatter, HTMLParser, and HTMLTreeBuilderFormatter.
- HTMLParser tokenizes HTML content and passes it to a tree builder.
- HTMLTreeBuilderFormatter uses those tokens to create a formatted dom tree of fake nodes.
- HTMLFormatter then builds formatted content and a FormatterSourceMap from that DOM tree.
The output of HTMLFormatter is intended to just modify whitespace. So it won't be a
100% compatible DOM, but will be useful for debugging and reading inline <style>
and <script>, which is a more common debugging scenario. It also maintains original
author attribute quotations or lack therefore, because again it tries to only
change whitespace. A separate tree builder could be used for tidying content.
This introduces a few tools for working with formatting:
- Tools/HTMLFormatter - debug the parser, tree builder, and output format
- Tools/SourceMaps - debug formatted content and source mappings
This also:
- renames "EsprimaFormatter" to "JSFormatter"
- eliminates an extra trailing newline in CSSFormatter output
- Tools/HTMLFormatter/HTMLTreeBuilderDebug.js: Added.
- Tools/HTMLFormatter/index.html: Added.
- Tools/HTMLFormatter/styles.css: Added.
Tool for debugging the HTML formatter components.
- Tools/SourceMaps/.gitignore: Added.
- Tools/SourceMaps/index.html: Added.
- Tools/SourceMaps/setup.sh: Added.
- Tools/SourceMaps/styles.css: Added.
Tool for debugging Formatter generated Source Maps.
- Tools/JSFormatter/JSFormatterDebug.js: Renamed from Source/WebInspectorUI/Tools/Formatting/EsprimaFormatterDebug.js.
- Tools/JSFormatter/codemirror-additions.css: Renamed from Source/WebInspectorUI/Tools/Formatting/codemirror-additions.css.
- Tools/JSFormatter/index.html: Renamed from Source/WebInspectorUI/Tools/Formatting/index.html.
Renamed this tool. EsprimaFormatter => JSFormatter.
- UserInterface/Controllers/FormatterSourceMap.js:
(WI.FormatterSourceMap.prototype.originalPositionToFormattedPosition):
(WI.FormatterSourceMap.prototype.formattedPositionToOriginalPosition):
New APIs used by tools and tests for translating "position" offsets and not line/columns.
- UserInterface/Workers/Formatter/JSFormatter.js: Renamed from Source/WebInspectorUI/UserInterface/Workers/Formatter/EsprimaFormatter.js.
(JSFormatter):
- UserInterface/Workers/Formatter/CSSFormatter.js:
(CSSFormatter):
Allow using a supplied builder, which is useful when formatting
inline content from HTMLFormatter (<style> / <script>).
- UserInterface/Workers/Formatter/FormatterContentBuilder.js:
(FormatterContentBuilder.prototype.get indentString):
(FormatterContentBuilder.prototype.get originalContent):
(FormatterContentBuilder.prototype.get indentLevel):
(FormatterContentBuilder.prototype.get originalOffset):
(FormatterContentBuilder.prototype.set originalOffset):
(FormatterContentBuilder.prototype.appendNonToken):
(FormatterContentBuilder.prototype.appendToken):
(FormatterContentBuilder.prototype.appendTokenWithPossibleNewlines):
(FormatterContentBuilder.prototype.appendMapping):
(FormatterContentBuilder.prototype.indentToLevel):
(FormatterContentBuilder.prototype.finish):
Provide API for getting / setting the original offset and indent level.
This is useful when the HTMLFormatter runs the CSSFormatter/JSFormatter
in a nested context (<style> / <script>). Add a few more APIs for
conveniences when appending tokens or important positions.
- UserInterface/Workers/Formatter/HTMLParser.js: Added.
(HTMLParser.prototype.parseDocument):
(HTMLParser.prototype._isEOF):
(HTMLParser.prototype._peek):
(HTMLParser.prototype._peekCharacterRegex):
(HTMLParser.prototype._peekString):
(HTMLParser.prototype._peekCaseInsensitiveString):
(HTMLParser.prototype._consumeWhitespace):
(HTMLParser.prototype._consumeUntilString):
(HTMLParser.prototype._consumeUntilRegex):
(HTMLParser.prototype._consumeDoubleQuotedString):
(HTMLParser):
Tokenize HTML content into nodes.
- UserInterface/Workers/Formatter/HTMLTreeBuilderFormatter.js: Added.
(HTMLTreeBuilderFormatter.prototype.get dom):
(HTMLTreeBuilderFormatter.prototype.begin):
(HTMLTreeBuilderFormatter.prototype.pushParserNode):
(HTMLTreeBuilderFormatter.prototype.end):
(HTMLTreeBuilderFormatter.prototype._pushParserNodeTopLevel):
(HTMLTreeBuilderFormatter.prototype._pushParserNodeStack):
(HTMLTreeBuilderFormatter.prototype._isEmptyNode):
(HTMLTreeBuilderFormatter.prototype._buildDOMNodeFromOpenTag):
(HTMLTreeBuilderFormatter.prototype._buildErrorNodeFromCloseTag):
(HTMLTreeBuilderFormatter.prototype._buildSimpleNodeFromParserNode):
(HTMLTreeBuilderFormatter):
Build a simple DOM tree from parser nodes.
- UserInterface/Workers/Formatter/HTMLFormatter.js: Added.
(HTMLFormatter.let.dom):
(HTMLFormatter):
(HTMLFormatter.prototype.get success):
(HTMLFormatter.prototype.get formattedText):
(HTMLFormatter.prototype.get sourceMapData):
(HTMLFormatter.prototype._walk):
(HTMLFormatter.prototype._walkChildren):
(HTMLFormatter.prototype._isNodeSelfClosing):
(HTMLFormatter.prototype._shouldHaveInlineContent):
(HTMLFormatter.prototype._hasMultipleNewLines):
(HTMLFormatter.prototype._buildAttributeString):
(HTMLFormatter.prototype._before):
(HTMLFormatter.prototype._after):
(HTMLFormatter.prototype._formatWithNestedFormatter):
(HTMLFormatter.prototype._formatScript):
(HTMLFormatter.prototype._formatStyle):
Output pretty printed text from a HTMLTreeBuilderFormatter dom tree.
- UserInterface/Proxies/FormatterWorkerProxy.js:
(WI.FormatterWorkerProxy.prototype.formatHTML):
- UserInterface/Workers/Formatter/FormatterWorker.js:
(FormatterWorker.prototype.formatJavaScript):
(FormatterWorker.prototype.formatCSS):
(FormatterWorker.prototype.formatHTML):
- UserInterface/Views/TextEditor.js:
(WI.TextEditor.prototype.hasFormatter):
(WI.TextEditor.prototype._canUseFormatterWorker):
(WI.TextEditor.prototype._startWorkerPrettyPrint):
Allow pretty printing HTML resources.
- UserInterface/Main.html:
- UserInterface/Test.html:
New resources.
LayoutTests:
Mark slow test.
- inspector/formatting/formatting-css.html:
- inspector/formatting/formatting-html-expected.txt: Added.
- inspector/formatting/formatting-html.html: Added.
- inspector/formatting/formatting-javascript-expected.txt:
- inspector/formatting/formatting-javascript.html:
- inspector/formatting/formatting-json-expected.txt:
- inspector/formatting/formatting-json.html:
- inspector/formatting/resources/formatting-utilities.js: Renamed from LayoutTests/inspector/formatting/resources/utilities.js.
Update formatting tests to use new path to utilities.
- inspector/formatting/resources/css-tests/basic-expected.css:
- inspector/formatting/resources/css-tests/gradient-expected.css:
- inspector/formatting/resources/css-tests/keyframes-expected.css:
- inspector/formatting/resources/css-tests/media-query-expected.css:
- inspector/formatting/resources/css-tests/selectors-expected.css:
- inspector/formatting/resources/css-tests/wrapping-expected.css:
- inspector/codemirror/resources/prettyprinting/css-tests/basic-expected.css:
- inspector/codemirror/resources/prettyprinting/css-tests/calc-expected.css:
- inspector/codemirror/resources/prettyprinting/css-tests/gradient-expected.css:
- inspector/codemirror/resources/prettyprinting/css-tests/keyframes-expected.css:
- inspector/codemirror/resources/prettyprinting/css-tests/media-query-expected.css:
- inspector/codemirror/resources/prettyprinting/css-tests/selectors-expected.css:
- inspector/codemirror/resources/prettyprinting/css-tests/wrapping-expected.css:
Eliminate an extra trailing newline in CSS formatted results.
- inspector/formatting/resources/html-tests/attributes-expected.html: Added.
- inspector/formatting/resources/html-tests/attributes.html: Added.
- inspector/formatting/resources/html-tests/auto-close-expected.html: Added.
- inspector/formatting/resources/html-tests/auto-close.html: Added.
- inspector/formatting/resources/html-tests/basic-1-expected.html: Added.
- inspector/formatting/resources/html-tests/basic-1.html: Added.
- inspector/formatting/resources/html-tests/basic-2-expected.html: Added.
- inspector/formatting/resources/html-tests/basic-2.html: Added.
- inspector/formatting/resources/html-tests/comments-expected.html: Added.
- inspector/formatting/resources/html-tests/comments.html: Added.
- inspector/formatting/resources/html-tests/eof-1-expected.html: Added.
- inspector/formatting/resources/html-tests/eof-1.html: Added.
- inspector/formatting/resources/html-tests/eof-2-expected.html: Added.
- inspector/formatting/resources/html-tests/eof-2.html: Added.
- inspector/formatting/resources/html-tests/eof-3-expected.html: Added.
- inspector/formatting/resources/html-tests/eof-3.html: Added.
- inspector/formatting/resources/html-tests/eof-4-expected.html: Added.
- inspector/formatting/resources/html-tests/eof-4.html: Added.
- inspector/formatting/resources/html-tests/eof-5-expected.html: Added.
- inspector/formatting/resources/html-tests/eof-5.html: Added.
- inspector/formatting/resources/html-tests/eof-6-expected.html: Added.
- inspector/formatting/resources/html-tests/eof-6.html: Added.
- inspector/formatting/resources/html-tests/inline-script-expected.html: Added.
- inspector/formatting/resources/html-tests/inline-script.html: Added.
- inspector/formatting/resources/html-tests/inline-style-expected.html: Added.
- inspector/formatting/resources/html-tests/inline-style.html: Added.
- inspector/formatting/resources/html-tests/list-expected.html: Added.
- inspector/formatting/resources/html-tests/list.html: Added.
- inspector/formatting/resources/html-tests/not-well-formed-1-expected.html: Added.
- inspector/formatting/resources/html-tests/not-well-formed-1.html: Added.
- inspector/formatting/resources/html-tests/not-well-formed-2-expected.html: Added.
- inspector/formatting/resources/html-tests/not-well-formed-2.html: Added.
- inspector/formatting/resources/html-tests/not-well-formed-3-expected.html: Added.
- inspector/formatting/resources/html-tests/not-well-formed-3.html: Added.
- inspector/formatting/resources/html-tests/self-closing-expected.html: Added.
- inspector/formatting/resources/html-tests/self-closing.html: Added.
HTMLFormatter tests.
- inspector/formatting/resources/html-source-map-tests/1.html: Added.
- inspector/formatting/resources/html-source-map-tests/2.html: Added.
- inspector/formatting/resources/css-source-map-tests/1.css: Added.
- inspector/formatting/resources/javascript-source-map-tests/1.js: Added.
- inspector/formatting/source-map-css-1-expected.txt: Added.
- inspector/formatting/source-map-css-1.html: Added.
- inspector/formatting/source-map-html-1-expected.txt: Added.
- inspector/formatting/source-map-html-1.html: Added.
- inspector/formatting/source-map-html-2-expected.txt: Added.
- inspector/formatting/source-map-html-2.html: Added.
- inspector/formatting/source-map-javascript-1-expected.txt: Added.
- inspector/formatting/source-map-javascript-1.html: Added.
- inspector/formatting/resources/source-map-utilities.js: Added.
(TestPage.registerInitializer.logLocationWithContext):
(TestPage.registerInitializer.async.runSourceMapTest):
(TestPage.registerInitializer.):
(TestPage.registerInitializer.async.loadFormattedContentAndSourceMap):
(TestPage.registerInitializer.async.loadSourceMapTestResource):
(TestPage.registerInitializer.window.addSourceMapTest):
(TestPage.registerInitializer):
New formatter source map tests to ensure we can go back and forth reasonably
between formatted content and original content.
- inspector/debugger/breakpoints/resolved-dump-all-inline-script-pause-locations-expected.txt: Added.
- inspector/debugger/breakpoints/resolved-dump-all-inline-script-pause-locations.html: Added.
- inspector/debugger/breakpoints/resources/dump-inline-scripts.html: Added.
- inspector/debugger/breakpoints/resources/dump.js:
(TestPage.registerInitializer.window.addDumpAllPauseLocationsTestCase):
(TestPage.registerInitializer.addDumpAllPauseLocationsTestCaseForScript):
(TestPage.registerInitializer):
- inspector/debugger/resources/log-pause-location.js:
(TestPage.registerInitializer.window.findScript):
(TestPage.registerInitializer.window.findResource):
Test for resolving breakpoints at column locations in <script> which was
not previously possible and would not have worked previously.
- 2:20 AM Changeset in webkit [249830] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] X86Registers.h callee-save register definition is wrong
https://bugs.webkit.org/show_bug.cgi?id=201756
Reviewed by Mark Lam.
I think nobody is using X86 JIT backend, but it is simply wrong.
edi and esi should be callee-save.
- assembler/X86Registers.h:
- 1:20 AM Changeset in webkit [249829] by
-
- 2 edits in trunk/Source/WebKitLegacy/win
[WinCairo][WK1] Accelerated Compositing can't be disabled by using WebPreferences::setAcceleratedCompositingEnabled
https://bugs.webkit.org/show_bug.cgi?id=201749
Reviewed by Don Olmstead.
WebPreferences::acceleratedCompositingEnabled always returned TRUE
for !USE(CA). It should reflect the pref value set by
setAcceleratedCompositingEnabled.
- WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings): Set kCFBooleanTrue to WebKitAcceleratedCompositingEnabledPreferenceKey even for !USE(CG).
(WebPreferences::acceleratedCompositingEnabled): Return the pref value for !USE(CA).
- 1:15 AM Changeset in webkit [249828] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: [Overrides] Command-Z doesn't undo changes after page reload
https://bugs.webkit.org/show_bug.cgi?id=201698
<rdar://problem/55276645>
Reviewed by Devin Rousso.
- UserInterface/Views/ContentViewContainer.js:
(WI.ContentViewContainer.prototype.closeAllContentViews):
Provide a filter to opt out of closing some content views.
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype._closeContentViewsFilter):
(WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement):
Avoid closing ContentViews for local resource overrides. This keeps the
SourceCodeTextEditor around and thus its undo/redo stack.
- 1:11 AM Changeset in webkit [249827] by
-
- 2 edits1 add in trunk/Tools
[JHBuild] Fix building gst-plugins-good against glibc 2.30
https://bugs.webkit.org/show_bug.cgi?id=201715
Reviewed by Xabier Rodriguez-Calvar.
- gstreamer/patches/gst-plugins-good-glibc-2.30-compat.patch: Added.
- 12:57 AM Changeset in webkit [249826] by
-
- 4 edits in trunk/Source/WebCore
Factor out duplicated functions from HTTPParsers.cpp and HTTPHeaderField.cpp
https://bugs.webkit.org/show_bug.cgi?id=201721
Reviewed by Don Olmstead.
No new tests needed.
- loader/HTTPHeaderField.cpp: Remove "static" from prototypes of functions needed in HTTPParsers.cpp.
(WebCore::RFC7230::isDelimiter):
(WebCore::RFC7230::isQuotedPairSecondOctet):
(WebCore::RFC7230::isCommentText):
- loader/HTTPHeaderField.h: Add prototypes of functions needed in HTTPParsers.cpp.
- platform/network/HTTPParsers.cpp: Use functionality from WebCore::RFC7230 where possible.
(WebCore::skipWhile): Moved to allow implementing skipWhiteSpace() in terms of skipWhile().
(WebCore::skipWhiteSpace): Implement using skipWhile() and the RFC7230::isWhitespace() predicate.
(WebCore::isValidAcceptHeaderValue): Replace usage of isDelimiterCharacter() with RFC7230::isDelimiter().
(WebCore::isValidHTTPToken): Replace usage of isHTTPTokenCharacter() with RFC7230::isTokenCharacter().
(WebCore::skipQuotedPair): Partially reimplement in terms of RFC7230::isQuotedPairSecondOctet().
(WebCore::skipComment): Replace usage of isCommentTextCharacter() with RFC7230::isCommentText().
(WebCore::skipHTTPToken): Replace usage of isHTTPTokenCharacter() with RFC7230::isTokenCharacter().