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

Timeline



Dec 6, 2019:

11:50 PM Changeset in webkit [253244] by zandobersek@gmail.com
  • 6 edits in trunk/Source

[GTK][WPE] Use bmalloc's memory footprint API for JSC heap growth management
https://bugs.webkit.org/show_bug.cgi?id=204576

Reviewed by Saam Barati.

Source/JavaScriptCore:

Use the new USE(BMALLOC_MEMORY_FOOTPRINT_API) build guard to enable
bmalloc-based JSC heap growth management on iOS family ports as well
as additionally the Linux-based ports, if the configuration allows it
(i.e. system malloc enforcement kept disabled).

  • heap/Heap.cpp:

(JSC::Heap::overCriticalMemoryThreshold):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::collectIfNecessaryOrDefer):

  • heap/Heap.h:

Initialize the two member variables and fix a typo in one of them.

  • runtime/Options.cpp:

(JSC::overrideDefaults):
Also guard two default overrides with the new flag.

Source/WTF:

Add the new USE_BMALLOC_MEMORY_FOOTPRINT_API, enabled for the iOS-family
ports and the Linux ports, as long as system malloc enforcement is
disabled and bmalloc is subsequently built and used. The flag is used in
JavaScriptCore to enable usage of bmalloc's memory footprint API for
JSC heap growth control.

  • wtf/Platform.h:
10:07 PM Changeset in webkit [253243] by mark.lam@apple.com
  • 14 edits
    1 add in trunk

The compiler thread should not adjust Identifier refCounts.
https://bugs.webkit.org/show_bug.cgi?id=204919
<rdar://problem/57426861>

Reviewed by Saam Barati.

JSTests:

  • stress/compiler-thread-should-not-ref-identifiers.js: Added.

Source/JavaScriptCore:

  1. Previously, in the compiler thread, we would get a Symbol uid via Symbol::privateName().uid(). Symbol::privateName() returns a copy of its PrivateName, which in turn results in ref'ing the underlying SymbolImpl. This results in a race between the mutator and compiler threads to adjust the SymbolImpl's refCount, which may result in corruption.

This patch fixes this by adding Symbol::uid() which return the underlying
SymbolImpl without ref'ing it.

  1. Previously, in the compiler thread, we also create Box<Identifier> via its copy constructor. The original Box<Identifier> is instantiated in the mutator. The Box<Identifier> refs its internal Data, which is ThreadSafeRefCounted and shared by all Box<Identifier> for the same underlying Identifier. This ensures that the compiler thread does not ref the underlying Identifier.

However, when the Box<Identifier> is destructed, it will also check if it holds
the last ref to its internal Data. If so, it will destruct its Data, and the
Identifier that it embeds. This results in the compiler thread trying to deref
the StringImpl referenced by the Identifier in a race against the mutator.

This patch fixes this by ensuring that for any Box<Identifier> instance used
by the compiler thread, we will register another instance in the DFG::Plan
m_identifiersKeptAliveForCleanUp list, and let the mutator destruct that
Box<Identifier> later in the mutator. This ensures that the compiler thread
will never see the last reference to a Box<Identifier>'s internal Data and
avoid the race.

  1. This patch also fixes the DFG::Worklist code to ensure that a DFG::Plan is always destructed in the mutator, even if the Plan was cancelled.

This, in turn, enables us to assert that the Plan is never destructed in the
compiler thread.

  • bytecode/GetByStatus.cpp:

(JSC::GetByStatus::computeFor):
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/GetByStatus.h:
  • debugger/Debugger.cpp:

(JSC::Debugger::detach):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseGetById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::~Plan):
(JSC::DFG::Plan::computeCompileTimes const):
(JSC::DFG::Plan::cancel):

  • dfg/DFGPlan.h:

(JSC::DFG::Plan::unnukedVM const):
(JSC::DFG::Plan::keepAliveIdentifier):
(JSC::DFG::Plan::nuke):
(JSC::DFG::Plan::unnuke):

  • dfg/DFGSafepoint.cpp:

(JSC::DFG::Safepoint::cancel):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::deleteCancelledPlansForVM):
(JSC::DFG::Worklist::removeAllReadyPlansForVM):
(JSC::DFG::Worklist::removeDeadPlans):
(JSC::DFG::Worklist::removeNonCompilingPlansForVM):

  • dfg/DFGWorklist.h:
  • runtime/Symbol.h:
10:06 PM Changeset in webkit [253242] by Devin Rousso
  • 67 edits in trunk

Web Inspector: Uncaught Exception: Missing node for given nodeId
https://bugs.webkit.org/show_bug.cgi?id=204519

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

When a DOM node is removed from the main DOM tree, the InspectorDOMAgent invalidates the
DOM.NodeId that was previously assigned to that DOM node, meaning that any future commands
sent by the frontend with that DOM.NodeId will fail.

Add logic to mark WI.DOMNode as being destroyed when this happens so the frontend can
decide to not invoke any commands with that DOM.NodeId.

Many functions have also switched to expecting a WI.DOMNode instead of a DOM.NodeId or
have been moved to WI.DOMNode.prototype in order to also be able to use destroyed.

This issue will eventually be mitigated by <https://webkit.org/b/189687>.

  • UserInterface/Models/DOMNode.js:

(WI.DOMNode):
(WI.DOMNode.prototype.get destroyed): Added.
(WI.DOMNode.prototype.get attached):
(WI.DOMNode.prototype.markDestroyed): Added.
(WI.DOMNode.prototype.setNodeName):
(WI.DOMNode.prototype.setNodeValue):
(WI.DOMNode.prototype.setAttribute):
(WI.DOMNode.prototype.setAttributeValue):
(WI.DOMNode.prototype.querySelector): Added.
(WI.DOMNode.prototype.querySelectorAll): Added.
(WI.DOMNode.prototype.highlight): Added.
(WI.DOMNode.prototype.getOuterHTML):
(WI.DOMNode.prototype.setOuterHTML):
(WI.DOMNode.prototype.removeNode):
(WI.DOMNode.prototype.getEventListeners):

  • UserInterface/Base/DOMUtilities.js:

(WI.bindInteractionsForNodeToElement):

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.buildHighlightConfig):
(WI.DOMManager.wrapClientCallback):
(WI.DOMManager.prototype._loadNodeAttributes):
(WI.DOMManager.prototype._setDocument):
(WI.DOMManager.prototype._unbind):
(WI.DOMManager.prototype.highlightDOMNodeList):
(WI.DOMManager.prototype.highlightSelector):
(WI.DOMManager.prototype.hideDOMNodeHighlight):
(WI.DOMManager.prototype.highlightDOMNodeForTwoSeconds):
(WI.DOMManager.prototype.set inspectModeEnabled):
(WI.DOMManager.prototype.setInspectedNode):
(WI.DOMManager.prototype.setEventListenerDisabled):
(WI.DOMManager.prototype._wrapClientCallback): Deleted.
(WI.DOMManager.prototype.querySelector): Deleted.
(WI.DOMManager.prototype.querySelectorAll): Deleted.
(WI.DOMManager.prototype.highlightDOMNode): Deleted.
(WI.DOMManager.prototype._buildHighlightConfig): Deleted.

  • UserInterface/Models/AuditTestCaseResult.js:

(WI.AuditTestCaseResult.async fromPayload):

  • UserInterface/Models/MediaTimelineRecord.js:

(WI.MediaTimelineRecord.async fromJSON):

  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject.resolveNode):

  • UserInterface/Views/BoxModelDetailsSectionRow.js:

(WI.BoxModelDetailsSectionRow.prototype._highlightDOMNode):

  • UserInterface/Views/CanvasOverviewContentView.js:

(WI.CanvasOverviewContentView.prototype._contentViewMouseEnter):

  • UserInterface/Views/CanvasTreeElement.js:

(WI.CanvasTreeElement.prototype._handleMouseOver):

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForDOMNode):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WI.DOMNodeDetailsSidebarPanel.prototype.layout):

  • UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView.prototype._domTreeSelectionDidChange):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.get editable):
(WI.DOMTreeElement.prototype.populateDOMNodeContextMenu):

  • UserInterface/Views/DOMTreeElementPathComponent.js:

(WI.DOMTreeElementPathComponent.prototype.mouseOver):

  • UserInterface/Views/DOMTreeOutline.js:

(WI.DOMTreeOutline.prototype.get editable):
(WI.DOMTreeOutline.prototype.populateContextMenu):
(WI.DOMTreeOutline.prototype._onmousemove):
(WI.DOMTreeOutline.prototype._ondragstart):
(WI.DOMTreeOutline.prototype._ondragover):
(WI.DOMTreeOutline.prototype._ondragleave):
(WI.DOMTreeOutline.prototype._ondragend):
(WI.DOMTreeOutline.prototype._hideElements):

  • UserInterface/Views/FormattedValue.js:

(WI.FormattedValue.createElementForNodePreview):

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype.layout):

  • UserInterface/Views/LayerDetailsSidebarPanel.js:

(WI.LayerDetailsSidebarPanel.prototype._dataGridMouseMove):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WI.LayerTreeDetailsSidebarPanel.prototype.layout):
(WI.LayerTreeDetailsSidebarPanel.prototype._highlightSelectedNode):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype._highlightNodesWithSelector):

LayoutTests:

  • http/tests/inspector/dom/cross-domain-inspected-node-access.html:
  • http/tests/inspector/dom/didFireEvent.html:
  • http/tests/inspector/network/resource-initiatorNode.html:
  • inspector/console/command-line-api.html:
  • inspector/css/add-css-property.html:
  • inspector/css/css-property.html:
  • inspector/css/force-page-appearance.html:
  • inspector/css/generateCSSRuleString.html:
  • inspector/css/matched-style-properties.html:
  • inspector/css/modify-css-property-race.html:
  • inspector/css/modify-css-property.html:
  • inspector/css/modify-inline-style.html:
  • inspector/css/modify-rule-selector.html:
  • inspector/css/overridden-property.html:
  • inspector/css/pseudo-element-matches-for-pseudo-element-node.html:
  • inspector/css/pseudo-element-matches.html:
  • inspector/css/resolve-variable-value.html:
  • inspector/css/selector-dynamic-specificity.html:
  • inspector/css/selector-specificity.html:
  • inspector/css/shadow-scoped-style.html:
  • inspector/css/stylesheet-with-mutations.html:
  • inspector/dom-debugger/attribute-modified-style.html:
  • inspector/dom-debugger/dom-breakpoints.html:
  • inspector/dom/attributeModified.html:
  • inspector/dom/breakpoint-for-event-listener.html:
  • inspector/dom/csp-big5-hash.html:
  • inspector/dom/csp-hash.html:
  • inspector/dom/customElementState.html:
  • inspector/dom/domutilities-csspath.html:
  • inspector/dom/domutilities-path-dump.html:
  • inspector/dom/domutilities-xpath.html:
  • inspector/dom/event-listener-inspected-node.html:
  • inspector/dom/getEventListenersForNode.html:
  • inspector/dom/getOuterHTML.html:
  • inspector/dom/insertAdjacentHTML.html:
  • inspector/dom/pseudo-element-dynamic.html:
  • inspector/dom/pseudo-element-static.html:
  • inspector/dom/setAllowEditingUserAgentShadowTrees.html:
  • inspector/dom/setInspectedNode.html:
  • inspector/dom/setOuterHTML.html:
  • inspector/dom/shadow-and-non-shadow-children.html:
  • inspector/dom/shadowRootType.html:
  • inspector/dom/template-content.html:
  • inspector/model/dom-node.html:
  • inspector/page/hidpi-snapshot-size.html:
10:04 PM Changeset in webkit [253241] by Devin Rousso
  • 16 edits in trunk/Source/WebInspectorUI

Web Inspector: saving a file with the url "/" suggest the name "Untitled"
https://bugs.webkit.org/show_bug.cgi?id=204910

Reviewed by Timothy Hatcher.

  • UserInterface/Base/FileUtilities.js:

(WI.FileUtilities.save):
Allow callers to specify a suggestedName that is used if possible.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):
(WI.appendContextMenuItemsForDOMNode):

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype.get saveData):

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype.get saveData):
If the path of the selected source code is just "/", set the suggestedName to "index" and
use an extension derived from the MIME type (if able).

  • UserInterface/Controllers/AuditManager.js:

(WI.AuditManager.prototype.export):

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._handleContextMenu):

  • UserInterface/Views/HeapSnapshotContentView.js:

(WI.HeapSnapshotContentView.prototype._exportSnapshot):

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype.get saveData):
(WI.LogContentView.prototype._handleContextMenuEvent):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._exportHAR):

  • UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView.prototype._exportRecording):
(WI.RecordingContentView.prototype._exportReduction):

  • UserInterface/Views/ScriptContentView.js:

(WI.ScriptContentView.prototype.get saveData):

  • UserInterface/Views/ShaderProgramContentView.js:

(WI.ShaderProgramContentView.prototype.get saveData):

  • UserInterface/Views/TextContentView.js:

(WI.TextContentView.prototype.get saveData):

  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView.prototype._exportTimelineRecording):

  • UserInterface/Debug/ProtocolTrace.js:

(WI.ProtocolTrace.prototype.get saveData):
Prefer suggestedName vs WI.FileUtilities.inspectorURLForFilename, which is now always
called inside WI.FileUtilities.save anyways.

9:48 PM Changeset in webkit [253240] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Put JSModuleNamespaceObject in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=204973

Reviewed by Mark Lam.

We found that we do not need to embed AbstractModuleRecord vector inside JSModuleNamespaceObject: we can just put it
in ExportEntry. So we can make it non-variable-sized cell. Further, this patch puts it in IsoSubspace.

  • runtime/CellSize.h:

(JSC::isDynamicallySizedType):
(JSC::cellSize):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::finishCreation):
(JSC::JSModuleNamespaceObject::visitChildren):
(JSC::JSModuleNamespaceObject::getOwnPropertySlotCommon):

  • runtime/JSModuleNamespaceObject.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
9:16 PM Changeset in webkit [253239] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test http/tests/xmlhttprequest/sync-xhr-in-unload.html is failing
https://bugs.webkit.org/show_bug.cgi?id=204974

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:35 PM Changeset in webkit [253238] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Rename ContentBreak to ContentWrappingRule and ContentBreak::wrap to ContentWrappingRule::push
https://bugs.webkit.org/show_bug.cgi?id=204966
<rdar://problem/57717049>

Reviewed by Sam Weinig.

Use the term "push" instead of "wrap" to move a run to the next line without breaking it.
This is mainly to avoid spec term confusion.
ContentWrappingRule::Keep -> keep the run (or continuous runs) on the current line.
ContentWrappingRule::Split -> keep the run (or continuous runs) partially on the current line (see BreakingContext::PartialTrailingContent).
ContentWrappingRule::Push -> move the run (or continuous runs) completely to the next line.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::breakingContextForInlineContent):

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::processUncommittedContent):

8:20 PM Changeset in webkit [253237] by ysuzuki@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Put ModuleRecords in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=204972

Reviewed by Mark Lam.

This patch is putting JSModuleRecord and WebAssemblyModuleRecord in IsoSubspace.

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::destroy): Deleted.

  • runtime/AbstractModuleRecord.h:

(JSC::AbstractModuleRecord::subspaceFor):

  • runtime/JSModuleRecord.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • wasm/js/WebAssemblyModuleRecord.h:
7:50 PM Changeset in webkit [253236] by pvollan@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix. Initialize local variable.

  • API/tests/testapi.cpp:

(TestAPI::promiseUnhandledRejection):

6:49 PM Changeset in webkit [253235] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Change the format string portable by using "%" PRIx64
instead of "%llx" for uint64_t argument.

This patch removes the build warning below since r252978.

warning: format ‘%llx’ expects argument of type ‘long long unsigned int’,
but argument 3 has type ‘JSC::SpeculatedType {aka long unsigned int}’ [-Wformat=]

  • runtime/PredictionFileCreatingFuzzerAgent.cpp:

(JSC::PredictionFileCreatingFuzzerAgent::getPredictionInternal):

5:14 PM Changeset in webkit [253234] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk/Source

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

Broke the build (Requested by ap on #webkit).

Reverted changeset:

"Remove various .order files."
https://bugs.webkit.org/show_bug.cgi?id=204959
https://trac.webkit.org/changeset/253218

4:33 PM Changeset in webkit [253233] by ysuzuki@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] JSCallee should be in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=204961

Reviewed by Mark Lam.

We should put JSCallee in IsoSubspace. Currently, we are also putting JSToWasmICCallee in IsoSusbapce
since it is a derived class of JSCallee, but I think we can remove this class completely. We are tracking
it in [1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=204960

  • debugger/DebuggerScope.h:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeProgram):
(JSC::Interpreter::execute):

  • runtime/JSCallee.h:

(JSC::JSCallee::subspaceFor):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::globalCallee):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • wasm/js/JSToWasmICCallee.h:

(JSC::JSToWasmICCallee::function): Deleted.
(JSC::JSToWasmICCallee::JSToWasmICCallee): Deleted.

4:24 PM Changeset in webkit [253232] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

[IPC] MESSAGE_CHECK() parameters for AddPlugInAutoStartOriginHash / PlugInDidReceiveUserInteraction IPCs
https://bugs.webkit.org/show_bug.cgi?id=204962

Reviewed by Ryosuke Niwa.

MESSAGE_CHECK() parameters for AddPlugInAutoStartOriginHash / PlugInDidReceiveUserInteraction IPCs. Those parameters
are used as keys in HashMaps.

  • UIProcess/Plugins/PlugInAutoStartProvider.cpp:

(WebKit::PlugInAutoStartProvider::PlugInAutoStartProvider):
(WebKit::PlugInAutoStartProvider::addAutoStartOriginHash):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest):
(WebKit::PlugInAutoStartProvider::didReceiveUserInteraction):

  • UIProcess/Plugins/PlugInAutoStartProvider.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::addPlugInAutoStartOriginHash):
(WebKit::WebProcessProxy::plugInDidReceiveUserInteraction):

4:19 PM Changeset in webkit [253231] by pvollan@apple.com
  • 19 edits
    1 copy
    7 adds in trunk/Source

[iOS] Calls to device orientation API should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=204720

Reviewed by Alex Christensen.

Source/WebCore:

The device orientation API on iOS is communicating with locationd. Since mach lookup to this daemon
will be closed, the calls to this API should be moved from the WebContent process to the UI process.
This patch implements forwarding of the device orientation requests to the UI process through a new
class, DeviceOrientationUpdateProvider, which is subclassed by WebDeviceOrientationUpdateProvider in
modern WebKit. This class implements forwarding of the requests to the UI process, and receives
device orientation updates from the UI process. An instance of this class will be shared by all
device orientation clients on a page, and passed as part of the page configuration parameters. On
the UI process side, a new class WebDeviceOrientationUpdateProviderProxy attached to the Web page
proxy is taking care of calling the device orientation API through the existing WebCoreMotionManager
Objective-C class, and send device orientation updates back to the Web process. Also, use a weak
hash set of orientation clients in WebCoreMotionManager.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/DeviceOrientationClient.h:
  • dom/Document.cpp:
  • page/Page.cpp:

(WebCore::m_deviceOrientationUpdateProvider):
(WebCore::m_applicationManifest): Deleted.

  • page/Page.h:

(WebCore::Page::deviceOrientationUpdateProvider const):

  • page/PageConfiguration.h:
  • platform/ios/DeviceOrientationClientIOS.h:
  • platform/ios/DeviceOrientationClientIOS.mm:

(WebCore::DeviceOrientationClientIOS::DeviceOrientationClientIOS):
(WebCore::DeviceOrientationClientIOS::startUpdating):
(WebCore::DeviceOrientationClientIOS::stopUpdating):
(WebCore::DeviceOrientationClientIOS::deviceOrientationControllerDestroyed):

  • platform/ios/WebCoreMotionManager.h:
  • platform/ios/WebCoreMotionManager.mm:

(-[WebCoreMotionManager addOrientationClient:]):
(-[WebCoreMotionManager removeOrientationClient:]):
(-[WebCoreMotionManager checkClientStatus]):
(-[WebCoreMotionManager sendMotionData:withHeading:]):

Source/WebKit:

Add a new class, WebDeviceOrientationUpdateProviderProxy, to handle messages to start and stop updating device orientation
in the UI process. Also, add a message to update the device orientation in the WebContent process. In the UI process, the
device orientation API is called through the already existing WebCoreMotionManager class.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • UIProcess/WebPageProxy.cpp:

(WebKit::m_webDeviceOrientationUpdateProviderProxy):
(WebKit::m_resetRecentCrashCountTimer): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_overriddenMediaType):

4:11 PM Changeset in webkit [253230] by Jonathan Bedard
  • 2 edits in trunk/Tools

Python 3: Add support in webkitpy.tool (Follow-up, part 2)
https://bugs.webkit.org/show_bug.cgi?id=204838

Unreviewed follow-up fix.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py:
4:04 PM Changeset in webkit [253229] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r252652): Local Overrides: creating a local override for a resource loaded before Web Inspector was opened shows NaN for the Status Code
https://bugs.webkit.org/show_bug.cgi?id=204965

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/LocalResourceOverridePopover.js:

(WI.LocalResourceOverridePopover.prototype.show):
Make sure to update the object that holds the resource's original data in addition to the
object that holds the current edited values.
Drive-by: update the popover once all of the CodeMirrors have updated to hide scrollbars.

3:56 PM Changeset in webkit [253228] by sihui_liu@apple.com
  • 4 edits in trunk/Source/WebCore

IndexedDB: pass along error of IDBBackingStore::renameIndex
https://bugs.webkit.org/show_bug.cgi?id=204900

Reviewed by Brady Eidson.

We ignored error of IDBBackingStore::renameIndex, so the operation may fail silently. This covered up two bugs
in our code as we were unaware of the failure.
One was in MemoryIDBBackingStore that we did not update objectStoreInfo properly when createIndex/deleteIndex;
another was in IDBObjectStoreInfo that we did not copy its members correctly.

Covered by existing test: storage/indexeddbmodern/index-rename-1-private.html

  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::createIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteIndex):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performRenameIndex):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp: If some index is deleted from IDBObjectStoreInfo, then

m_maxIndexID could be bigger than maximum index ID in m_indexMap, because we don't decrease m_maxIndexID for
deletion. Therefore, the assertion here is incorrect.
(WebCore::IDBObjectStoreInfo::isolatedCopy const):

3:38 PM Changeset in webkit [253227] by don.olmstead@sony.com
  • 5 edits in trunk/Source/WebCore

[MathML] Should support conditional compilation
https://bugs.webkit.org/show_bug.cgi?id=204958

Reviewed by Ross Kirsling.

No new tests. No change in behavior.

Add missing checks for ENABLE_MATHML in the idl and cpp files.

  • bindings/js/JSElementCustom.cpp:

(WebCore::createNewElementWrapper):

  • bindings/js/JSNodeCustom.cpp:

(WebCore::createWrapperInline):

  • mathml/MathMLElement.idl:
  • mathml/MathMLMathElement.idl:
3:20 PM Changeset in webkit [253226] by Devin Rousso
  • 11 edits in trunk/Source

Web Inspector: add compiler UNLIKELY hints when checking if developer extras are enabled
https://bugs.webkit.org/show_bug.cgi?id=204875

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Move the check for whether developer extras are enabled from the agent to the client so that
when inspecting a webpage, we don't check for it twice, since InspectorInstrumentation
already checks for it too.

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

(Inspector::InspectorConsoleAgent::developerExtrasEnabled const): Added.
(Inspector::InspectorConsoleAgent::addMessageToConsole):
(Inspector::InspectorConsoleAgent::startTiming):
(Inspector::InspectorConsoleAgent::logTiming):
(Inspector::InspectorConsoleAgent::stopTiming):
(Inspector::InspectorConsoleAgent::takeHeapSnapshot):
(Inspector::InspectorConsoleAgent::count):
(Inspector::InspectorConsoleAgent::countReset):
(Inspector::InspectorConsoleAgent::addConsoleMessage):

  • inspector/JSGlobalObjectConsoleClient.cpp:

(Inspector::JSGlobalObjectConsoleClient::messageWithTypeAndLevel):
(Inspector::JSGlobalObjectConsoleClient::count):
(Inspector::JSGlobalObjectConsoleClient::countReset):
(Inspector::JSGlobalObjectConsoleClient::profile):
(Inspector::JSGlobalObjectConsoleClient::profileEnd):
(Inspector::JSGlobalObjectConsoleClient::takeHeapSnapshot):
(Inspector::JSGlobalObjectConsoleClient::time):
(Inspector::JSGlobalObjectConsoleClient::timeLog):
(Inspector::JSGlobalObjectConsoleClient::timeEnd):
(Inspector::JSGlobalObjectConsoleClient::timeStamp):
(Inspector::JSGlobalObjectConsoleClient::record):
(Inspector::JSGlobalObjectConsoleClient::recordEnd):
(Inspector::JSGlobalObjectConsoleClient::screenshot):

Source/WebCore:

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::consoleStartRecordingCanvas):
(WebCore::InspectorInstrumentation::consoleStopRecordingCanvas): Added.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::frameWindowDiscardedImpl):
(WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
(WebCore::InspectorInstrumentation::didFailLoadingImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
(WebCore::InspectorInstrumentation::consoleCountImpl):
(WebCore::InspectorInstrumentation::consoleCountResetImpl):
(WebCore::InspectorInstrumentation::startConsoleTimingImpl):
(WebCore::InspectorInstrumentation::logConsoleTimingImpl):
(WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
(WebCore::InspectorInstrumentation::consoleStopRecordingCanvasImpl): Added.

  • inspector/agents/WebConsoleAgent.cpp:

(WebCore::WebConsoleAgent::frameWindowDiscarded):
(WebCore::WebConsoleAgent::didReceiveResponse):
(WebCore::WebConsoleAgent::didFailLoading):
Remove the redundant check for whether developer extras are enabled since it's already
checked by InspectorInstrumentation.

  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::record):
(WebCore::PageConsoleClient::recordEnd):

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

(WebCore::InspectorCanvasAgent::consoleStopRecordingCanvas): Added.
Add checks for InspectorInstrumentation::hasFrontends() to avoid doing extra work when Web
Inspector isn't open.

3:17 PM Changeset in webkit [253225] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC][IFC] Use explicit 0_lu value instead of LayoutUnit { }
https://bugs.webkit.org/show_bug.cgi?id=204964
<rdar://problem/57714095>

Reviewed by Antti Koivisto.

From geometry computation point of view, it is really the 0 value and not an empty value.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::lineHeightConstraints const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::resetDescent):
(WebCore::Layout::LineBox::resetBaseline):
(WebCore::Layout::LineBox::Baseline::reset):

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
(WebCore::Layout::LineBreaker::Content::reset):
(WebCore::Layout::LineBreaker::Content::TrailingTrimmableContent::reset):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::ContinousContent::close):
(WebCore::Layout::LineBuilder::Run::Run):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::alignContentVertically):
(WebCore::Layout::LineBuilder::appendLineBreak):
(WebCore::Layout::LineBuilder::adjustBaselineAndLineHeight):
(WebCore::Layout::LineBuilder::TrimmableContent::trimTrailingRun):
(WebCore::Layout::LineBuilder::InlineItemRun::trailingLetterSpacing const):
(WebCore::Layout::LineBuilder::InlineItemRun::setCollapsesToZeroAdvanceWidth):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::TrimmableContent::reset):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::inlineItemWidth):

  • layout/inlineformatting/text/TextUtil.h:

(WebCore::Layout::TextUtil::width): Deleted.

3:02 PM Changeset in webkit [253224] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Reduce timeout for page to handle beforeunload events when trying to close a page
https://bugs.webkit.org/show_bug.cgi?id=204950
<rdar://problem/57700419>

Reviewed by Ryosuke Niwa.

Reduce timeout for page to handle beforeunload events when trying to close a page. It would previously
take up to 3 seconds to actually close a tab after the user would click on the "X" to close it. This
is because we would wait for the page to fire and handle the beforeunload events and only give up after
3 seconds. This patch reduces this timeout to something more reasonable from a user standpoint (500ms).

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_tryCloseTimeoutTimer):
(WebKit::WebPageProxy::tryClose):
(WebKit::WebPageProxy::tryCloseTimedOut):
(WebKit::WebPageProxy::closePage):
(WebKit::m_resetRecentCrashCountTimer): Deleted.

  • UIProcess/WebPageProxy.h:
3:01 PM Changeset in webkit [253223] by Alan Coon
  • 7 edits in tags/Safari-609.1.11.1/Source

Versioning.

3:00 PM Changeset in webkit [253222] by Jonathan Bedard
  • 4 edits in trunk/Tools

Python 3: Add support in webkitpy.tool (Follow-up, part 1)
https://bugs.webkit.org/show_bug.cgi?id=204838

Reviewed by Stephanie Lewis.

As I've been using webkit-patch with Python 3, I've encountered a handful of other
compatibility bugs.

  • Scripts/webkit-patch:

(ForgivingUTF8Writer): Only apple the ForgivingUTF8Writer when our string type isn't unicode.
(ForgivingUTF8Writer.write): Use standardized decoding functions.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py:

(Bugzilla.authenticate): Use byte regex.

  • Scripts/webkitpy/tool/steps/editchangelog.py:

(EditChangeLog.run): Convert map to list.

2:58 PM Changeset in webkit [253221] by Alan Coon
  • 1 copy in tags/Safari-609.1.11.1

New tag.

2:49 PM Changeset in webkit [253220] by Dewei Zhu
  • 2 edits in trunk/Websites/perf.webkit.org

Custom analysis task page should allow schedule any triggerable accepted tests.
https://bugs.webkit.org/show_bug.cgi?id=204925

Reviewed by Ryosuke Niwa.

Fix a bug that subtest will not show on custom analysis task page if both itself and parent test are
accepted by triggerable.
Order test list in alphabetical order.

  • public/v3/components/custom-analysis-task-configurator.js:

(CustomAnalysisTaskConfigurator.prototype._renderTriggerableTests):

2:45 PM Changeset in webkit [253219] by Jonathan Bedard
  • 19 edits in trunk

Python 3: Add support in webkitpy.test
https://bugs.webkit.org/show_bug.cgi?id=204952

Reviewed by Stephanie Lewis.

Source/WebKit:

Tested by test-webkitpy.

  • Scripts/webkit/messages_unittest.py: Use Python 2/3 compatible StringIO.

Tools:

  • Scripts/test-webkitpy-python3: Add webkitpy.tool.
  • Scripts/webkitpy/layout_tests/lint_test_expectations_unittest.py: Use Python 2/3

compatible StringIO objects.

  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py: Ditto.
  • Scripts/webkitpy/performance_tests/perftest_unittest.py: Ditto.
  • Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py: Ditto.
  • Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py: Ditto.
  • Scripts/webkitpy/test/finder.py:

(Finder._exclude): Convert filter to list.

  • Scripts/webkitpy/test/main.py:

(Tester._log_exception): Use Python 2/3 compatible StringIO object.
(_Loader.getTestCaseNames): Convert filter to list.

  • Scripts/webkitpy/test/main_unittest.py:

(TesterTest.test_no_tests_found): Use Python 2/3 compatible StringIO.
(TesterTest.test_integration_tests_are_found): Sort serial tests before comparing.

  • Scripts/webkitpy/test/printer.py: Use Python 2/3 compatible StringIO.
  • Scripts/webkitpy/test/runner_unittest.py: Ditto.
  • Scripts/webkitpy/test/skip.py:

(_skipped_method._skip): Fix class inspection on instance method.

  • Scripts/webkitpy/test/skip_unittest.py: Use Python 2/3 compatible StringIO.
  • Scripts/webkitpy/w3c/test_converter.py: Use Python 2/3 compatible HTMLParser.
  • Scripts/webkitpy/w3c/wpt_runner.py:

(main): Fix Python 3 syntax errors.

  • lldb/dump_class_layout_unittest.py:

(TestDumpClassLayout.setUpClass): Fix Python 3 syntax errors.

2:43 PM Changeset in webkit [253218] by keith_miller@apple.com
  • 4 edits
    4 deletes in trunk/Source

Remove various .order files.
https://bugs.webkit.org/show_bug.cgi?id=204959

Reviewed by Yusuke Suzuki.

These files are all super out of date and likely don't do anything anymore.
The signatures of the functions have changed thus the mangled name has changed.

Source/JavaScriptCore:

Source/WebCore:

  • WebCore.order: Removed.

Source/WebKit:

  • mac/WebKit2.order: Removed.

Source/WebKitLegacy/mac:

  • WebKit.order: Removed.
2:22 PM Changeset in webkit [253217] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Restrict libANGLE to link only with WebCore
https://bugs.webkit.org/show_bug.cgi?id=204957
<rdar://problem/57708644>

Reviewed by Brian Burg.

Restrict to WebCore and WebCoreTestSupport.

  • Configurations/ANGLE.xcconfig:
2:07 PM Changeset in webkit [253216] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit

Address <https://bugs.webkit.org/show_bug.cgi?id=189222#c3>

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView valueForUndefinedKey:]): Added a newline.

1:45 PM Changeset in webkit [253215] by Jonathan Bedard
  • 13 edits in trunk

Unreviewed, rolling out r253148.

This caused fast/mediastream/stream-switch.html to timeout on
Mac.

Reverted changeset:

"WPT test MediaStream-MediaElement-srcObject.https.html times
out"
https://bugs.webkit.org/show_bug.cgi?id=204762
https://trac.webkit.org/changeset/253148

1:42 PM Changeset in webkit [253214] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][IFC] Paint partial trailing run with hyphen when needed
https://bugs.webkit.org/show_bug.cgi?id=204953
<rdar://problem/57705169>

Reviewed by Antti Koivisto.

When LineBreaker comes back with a partial content that needs hyphen, we need to make sure this information
ends up in the final Display::Run so that the rendered content includes the hyphen string. Note that this only needs to
be done when the content does _not_ have the hyphen already (opportunity vs. oppor-tunity).
(This patch also renames trailingPartial to partialTrailing because the fact that it is partial run is more important than that it is trailing run.)

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::TextContext::TextContext):
(WebCore::Display::Run::TextContext::needsHyphen const):
(WebCore::Display::Run::TextContext::setNeedsHyphen):
(WebCore::Display::Run::textContext):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::wordBreakingBehavior const):

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::close):
(WebCore::Layout::LineLayoutContext::processUncommittedContent):

  • layout/inlineformatting/LineLayoutContext.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::paint):

1:05 PM Changeset in webkit [253213] by Chris Dumez
  • 8 edits
    7 adds in trunk

Prevent synchronous XHR in beforeunload / unload event handlers
https://bugs.webkit.org/show_bug.cgi?id=204912
<rdar://problem/57676394>

Reviewed by Darin Adler.

Source/WebCore:

Prevent synchronous XHR in beforeunload / unload event handlers. They are terrible for performance
and the Beacon API (or Fetch keepalive) are more efficient & supported alternatives.

In particular, this would cause hangs when trying to navigate away from a site or when closing
attempt, which would result in terrible user experience.

Chrome and Edge have expressed public support for this. Chrome has actually been testing this behavior
for a while now:
https://www.chromestatus.com/feature/4664843055398912

I added this new behavior behind an experimental feature flag, enabled by default.

Tests: http/tests/xmlhttprequest/sync-xhr-in-beforeunload.html

http/tests/xmlhttprequest/sync-xhr-in-unload.html

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):

  • loader/FrameLoader.cpp:

(WebCore::PageLevelForbidScope::PageLevelForbidScope):
(WebCore::ForbidPromptsScope::ForbidPromptsScope):
(WebCore::ForbidPromptsScope::~ForbidPromptsScope):
(WebCore::ForbidSynchronousLoadsScope::ForbidSynchronousLoadsScope):
(WebCore::ForbidSynchronousLoadsScope::~ForbidSynchronousLoadsScope):
(WebCore::FrameLoader::dispatchUnloadEvents):
(WebCore::FrameLoader::dispatchBeforeUnloadEvent):

  • page/Page.cpp:

(WebCore::Page::forbidSynchronousLoads):
(WebCore::Page::allowSynchronousLoads):
(WebCore::Page::areSynchronousLoadsAllowed):

  • page/Page.h:

LayoutTests:

Add layout test coverage.

  • http/tests/xmlhttprequest/resources/sync-xhr-in-beforeunload-window.html: Added.
  • http/tests/xmlhttprequest/resources/sync-xhr-in-unload-window.html: Added.
  • http/tests/xmlhttprequest/sync-xhr-in-beforeunload-expected.txt: Added.
  • http/tests/xmlhttprequest/sync-xhr-in-beforeunload.html: Added.
  • http/tests/xmlhttprequest/sync-xhr-in-unload-expected.txt: Added.
  • http/tests/xmlhttprequest/sync-xhr-in-unload.html: Added.
1:03 PM Changeset in webkit [253212] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Drop support for NSURLCache callbacks in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=203344

Patch by Benjamin Nham <Ben Nham> on 2019-12-06
Reviewed by Alex Christensen.

Remove the NSURLSession caching policy callback in NetworkProcess. It's no longer necessary since
we don't use NSURLCache in NetworkProcess (https://bugs.webkit.org/show_bug.cgi?id=185990).

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:willCacheResponse:completionHandler:]): Deleted.

11:34 AM Changeset in webkit [253211] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: TabActivity diagnostic event should sample the active tab uniformly
https://bugs.webkit.org/show_bug.cgi?id=204531

Reviewed by Devin Rousso.

Rewrite this class to use a uniform sampling approach. Every n seconds, a timer fires and
samples what the current tab is. If the last user interaction happened up to n seconds ago,
report a TabActivity diagnostic event. Keeping with the previous implementation, samples
are taken every n=60 seconds.

To account for bias in the initial sample when Web Inspector is open, wait m seconds for
the first sample. This accounts for the time between opening Web Inspector and choosing the
desired tab. In my testing, m=10 is enough time to load Web Inspector and switch
immediately to a different tab. In that case, the initial tab would not be sampled as the
active tab even if the last user interaction (clicking tab bar) happened while the initial
tab was displayed. If the recorder's setup() method is called some time after Web Inspector is
opened, then the initial delay will shrink to ensure at least 10s has elapsed since the frontend
finished loading.

  • UserInterface/Base/Main.js:

(WI.contentLoaded): Keep a timestamp of when the frontend finished loading.

  • UserInterface/Controllers/TabActivityDiagnosticEventRecorder.js:

(WI.TabActivityDiagnosticEventRecorder):
(WI.TabActivityDiagnosticEventRecorder.prototype.setup):
(WI.TabActivityDiagnosticEventRecorder.prototype.teardown):
(WI.TabActivityDiagnosticEventRecorder.prototype._startInitialDelayBeforeSamplingTimer):
(WI.TabActivityDiagnosticEventRecorder.prototype._stopInitialDelayBeforeSamplingTimer):
(WI.TabActivityDiagnosticEventRecorder.prototype._startEventSamplingTimer):
(WI.TabActivityDiagnosticEventRecorder.prototype._stopEventSamplingTimer):
(WI.TabActivityDiagnosticEventRecorder.prototype._sampleCurrentTabActivity):
(WI.TabActivityDiagnosticEventRecorder.prototype._didObserveUserInteraction):
(WI.TabActivityDiagnosticEventRecorder.prototype._handleWindowFocus):
(WI.TabActivityDiagnosticEventRecorder.prototype._handleWindowBlur):
(WI.TabActivityDiagnosticEventRecorder.prototype._handleWindowKeyDown):
(WI.TabActivityDiagnosticEventRecorder.prototype._handleWindowMouseDown):
(WI.TabActivityDiagnosticEventRecorder.prototype._didInteractWithTabContent): Deleted.
(WI.TabActivityDiagnosticEventRecorder.prototype._clearTabActivityTimeout): Deleted.
(WI.TabActivityDiagnosticEventRecorder.prototype._beginTabActivityTimeout): Deleted.
(WI.TabActivityDiagnosticEventRecorder.prototype._stopTrackingTabActivity): Deleted.
(WI.TabActivityDiagnosticEventRecorder.prototype._handleTabBrowserSelectedTabContentViewDidChange): Deleted.

11:18 AM Changeset in webkit [253210] by Antti Koivisto
  • 13 edits
    2 adds in trunk

Support for resolving highlight pseudo element style
https://bugs.webkit.org/show_bug.cgi?id=204937

Reviewed by Simon Fraser.

Source/WebCore:

Test: highlight/highlight-pseudo-element-style.html

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne const):

Returns always true when checked without pseudoId, so it gets added to the set of seen pseudo elements.
Match argument with the provided highlight name otherwise.

  • css/SelectorChecker.h:
  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):

  • rendering/style/RenderStyle.h:
  • style/ElementRuleCollector.cpp:

(WebCore::Style::ElementRuleCollector::ruleMatches):

  • style/ElementRuleCollector.h:

(WebCore::Style::PseudoElementRequest::PseudoElementRequest):

Add the requested highlight name.

  • style/StyleResolver.h:
  • style/StyleScope.h:
  • testing/Internals.cpp:

(WebCore::Internals::highlightPseudoElementColor):

Testing support.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • highlight/highlight-pseudo-element-style-expected.txt: Added.
  • highlight/highlight-pseudo-element-style.html: Added.
10:08 AM Changeset in webkit [253209] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Fix DisplayRunPath offsets
https://bugs.webkit.org/show_bug.cgi?id=204949

Reviewed by Zalan Bujtas.

Fixes output of tests like fast/text/system-font-zero-size.html with LFC integration enabled.

  • rendering/line/LineLayoutTraversalDisplayRunPath.h:

(WebCore::LineLayoutTraversal::DisplayRunPath::DisplayRunPath):
(WebCore::LineLayoutTraversal::DisplayRunPath::localStartOffset const):
(WebCore::LineLayoutTraversal::DisplayRunPath::localEndOffset const):

Display::Run offsets are already local.

(WebCore::LineLayoutTraversal::DisplayRunPath::length const):
(WebCore::LineLayoutTraversal::DisplayRunPath::runs const):
(WebCore::LineLayoutTraversal::DisplayRunPath::firstRun const): Deleted.

9:15 AM Changeset in webkit [253208] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Revert r253207 because it causes compile error in Mac and ios build.

  • runtime/PredictionFileCreatingFuzzerAgent.cpp:

(JSC::PredictionFileCreatingFuzzerAgent::getPredictionInternal):

9:08 AM Changeset in webkit [253207] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Remove build warning below since r252978.

warning: format ‘%llx’ expects argument of type ‘long long unsigned int’,
but argument 3 has type ‘JSC::SpeculatedType {aka long unsigned int}’ [-Wformat=]

  • runtime/PredictionFileCreatingFuzzerAgent.cpp:

(JSC::PredictionFileCreatingFuzzerAgent::getPredictionInternal):

8:06 AM Changeset in webkit [253206] by Chris Dumez
  • 5 edits in trunk/Source

Stop using reserveCapacity() / reserveInitialCapacity() in IPC decoders
https://bugs.webkit.org/show_bug.cgi?id=204930
<rdar://problem/57682737>

Reviewed by Ryosuke Niwa.

This is IPC hardening since the size we use to reserve the capacity is encoded over IPC
and cannot be trusted in some cases.

Source/WebCore:

  • page/csp/ContentSecurityPolicyResponseHeaders.h:

(WebCore::ContentSecurityPolicyResponseHeaders::decode):

Source/WebKit:

  • Platform/IPC/ArgumentCoders.h:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Vector<RefPtr<SecurityOrigin>>>::decode):

6:37 AM Changeset in webkit [253205] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

[LFC][Integration] Wire line counting functions in RenderBlockFlow
https://bugs.webkit.org/show_bug.cgi?id=204943

Reviewed by Zalan Bujtas.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::lineCount const):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::layoutRunsAndFloatsInRange):
(WebCore::ComplexLineLayout::lineCount const):
(WebCore::ComplexLineLayout::lineCountUntil const):

Move complex path specific code to ComplexLineLayout.

  • rendering/ComplexLineLayout.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustLinePositionForPagination):
(WebCore::RenderBlockFlow::lineCount const):
(WebCore::RenderBlockFlow::hasLines const):

Support all paths.

  • rendering/RenderBlockFlow.h:
6:34 AM Changeset in webkit [253204] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

[LFC][Integration] Support isLineBreak() in iterator
https://bugs.webkit.org/show_bug.cgi?id=204941

Reviewed by Zalan Bujtas.

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::isLineBreak const):

  • rendering/line/LineLayoutTraversalDisplayRunPath.h:

(WebCore::LineLayoutTraversal::DisplayRunPath::isLineBreak const):
(WebCore::LineLayoutTraversal::DisplayRunPath::traverseNextTextBoxInVisualOrder):

Also remove unneeded skipping of runs without text context. All runs generated from text nodes now have them.

1:25 AM Changeset in webkit [253203] by youenn@apple.com
  • 11 edits
    2 adds in trunk

Protect WebRTC network monitoring to wait forever in edge cases
https://bugs.webkit.org/show_bug.cgi?id=204846
Source/WebKit:

Reviewed by Eric Carlson.

We were limiting the number of IPC message sent to network process by only sending the start monitoring event for the first client.
The issue is that, if network process crashes for instance while having not yet given the list of networks, all clients will be hanging
waiting for the completion of network list.
We are now sending an IPC message for every client and the network process will ignore the ones that are not useful.
In addition, in case of network process crash, we send a signal that network list has changed to make sure clients will never hang.
They might still fail connecting, which is ok since network process crashed.

Test: webrtc/datachannel/gather-candidates-networkprocess-crash.html

  • NetworkProcess/webrtc/NetworkRTCMonitor.cpp:

(WebKit::NetworkRTCMonitor::startUpdatingIfNeeded):

  • NetworkProcess/webrtc/NetworkRTCMonitor.h:
  • NetworkProcess/webrtc/NetworkRTCMonitor.messages.in:
  • WebProcess/Network/webrtc/LibWebRTCNetwork.h:

(WebKit::LibWebRTCNetwork::networkProcessCrashed):

  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:

(WebKit::WebRTCMonitor::StartUpdating):
(WebKit::WebRTCMonitor::StopUpdating):
(WebKit::WebRTCMonitor::networksChanged):
(WebKit::WebRTCMonitor::networkProcessCrashed):

  • WebProcess/Network/webrtc/WebRTCMonitor.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::networkProcessConnectionClosed):

LayoutTests:

<rdar://problem/57618773>

Reviewed by Eric Carlson.

  • webrtc/datachannel/gather-candidates-networkprocess-crash-expected.txt: Added.
  • webrtc/datachannel/gather-candidates-networkprocess-crash.html: Added.
1:24 AM Changeset in webkit [253202] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Output libwebrtc logging from Network Process as release logging
https://bugs.webkit.org/show_bug.cgi?id=204853

Reviewed by Eric Carlson.

This will help debugging WebRTC networking issues.
No observable change of behavior.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::doReleaseLogging):
(WebKit::NetworkRTCProvider::NetworkRTCProvider):

Dec 5, 2019:

11:33 PM Changeset in webkit [253201] by sbarati@apple.com
  • 13 edits
    1 move in trunk/Source/JavaScriptCore

get_by_id ICs should have a structure history used to indicate when we should skip generating an IC
https://bugs.webkit.org/show_bug.cgi?id=204904
<rdar://problem/57631437>

Reviewed by Yusuke Suzuki and Tadeu Zagallo.

I implemented a similar policy for get_by_val for the number of unique seen
identifiers. This allows us to create a heuristic to directly call the slow
path when profiling information tells us if inline caching might not be
profitable. This patch implements a similar policy for get_by_id where we
profile the seen base value structures. If the LLInt observes enough
unique structures, we omit emitting the inline cache in the upper
tiers.

The goal here was to try to speed up Speedometer2. Local testing showed
this patch to repeatedly be 0.5% faster, but all the P values I got were
insignificant. So it appears it's either neutral or slightly faster.

This patch also adjusts the policy of seeing a non-identifier inside
the PointerHistory data structure. Instead of increasing it to reach the
limit when we see a non-identifier, we just treat each execution with
a non-identifier to increment the count by 1.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeList.rb:
  • bytecode/GetByValHistory.h: Removed.
  • bytecode/PointerHistory.h: Copied from Source/JavaScriptCore/bytecode/GetByValHistory.h.

(JSC::PointerHistory::observe):
(JSC::PointerHistory::observeNull):
(JSC::GetByValHistory::observeNonUID): Deleted.
(JSC::GetByValHistory::observe): Deleted.
(JSC::GetByValHistory::count const): Deleted.
(JSC::GetByValHistory::filter const): Deleted.
(JSC::GetByValHistory::update): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseGetById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGGraph.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetById):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):

  • generator/DSL.rb:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/OptionsList.h:
7:46 PM Changeset in webkit [253200] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix css1/basic/containment.html
https://bugs.webkit.org/show_bug.cgi?id=204931
<rdar://problem/57682871>

Reviewed by Simon Fraser.

moveToNextBreakablePosition jumped over all the positions that came back as the current position.
e.g --- <- first 2 breakable positions are at: 1 2 but we skipped over the first one.

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::moveToNextBreakablePosition):

6:14 PM Changeset in webkit [253199] by yousuke.kimoto@sony.com
  • 2 edits in trunk/Source/WebKit

[WinCairo] Improve Inspectable Target Page to adapt a long title and URL
https://bugs.webkit.org/show_bug.cgi?id=204874

Reviewed by Fujii Hironori.

Add some CSS atributes to make such long titles and URLs fit the width
of a window size. Then "Inspector" button is shown at the visible area.
No new tests, since there is no change in behavior.

  • UIProcess/socket/RemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::platformStartTask):

6:11 PM Changeset in webkit [253198] by Alan Coon
  • 1 copy in tags/Safari-608.5.0.2.1

Tag Safari-608.5.0.2.1.

6:10 PM Changeset in webkit [253197] by Alan Coon
  • 2 edits in branches/safari-608.5.0.2-branch/Source/JavaScriptCore

Cherry-pick r252674. rdar://problem/57609333

[JSC] MetadataTable::sizeInBytes should not touch m_rawBuffer in UnlinkedMetadataTable unless MetadataTable is linked to that UnlinkedMetadataTable
https://bugs.webkit.org/show_bug.cgi?id=204390

Reviewed by Mark Lam.

We have a race issue here. When calling MetadataTable::sizeInBytes, we call UnlinkedMetadataTable::sizeInBytes since we change the result based on
whether this MetadataTable is linked to this UnlinkedMetadataTable or not. The problem is that we are calling UnlinkedMetadataTable::totalSize
unconditionally in UnlinkedMetadataTable::sizeInBytes, and this is touching m_rawBuffer unconditionally. This is not correct since it is possible
that this m_rawBuffer is realloced while we are calling MetadataTable::sizeInBytes in GC thread.

  1. The GC thread is calling MetadataTable::sizeInBytes for MetadataTable "A".
  2. The main thread is destroying MetadataTable "B".
  3. MetadataTable "B" is linked to UnlinkedMetadataTable "C".
  4. MetadataTable "A" is pointing to UnlinkedMetadataTable "C".
  5. "A" is touching UnlinkedMetadataTable::m_rawBuffer in "C", called from MetadataTable::sizeInBytes.
  6. (2) destroys MetadataTable "B", and realloc UnlinkedMetadataTable::m_rawBuffer in "C".
  7. (5) can touch already freed buffer.

This patch fixes UnlinkedMetadataTable::sizeInBytes: not touching m_rawBuffer unless it is owned by the caller's MetadataTable. We need to call
UnlinkedMetadataTable::sizeInBytes anyway since we need to adjust the result based on whether the caller MetadataTable is linked to this UnlinkedMetadataTable.

  • bytecode/UnlinkedMetadataTableInlines.h: (JSC::UnlinkedMetadataTable::sizeInBytes):

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

6:07 PM Changeset in webkit [253196] by Alan Coon
  • 7 edits in branches/safari-608.5.0.2-branch/Source

Versioning.

5:58 PM Changeset in webkit [253195] by Fujii Hironori
  • 10 edits in trunk/Source/WebKit

[WebKit] Fix compilation warnings for MSVC
https://bugs.webkit.org/show_bug.cgi?id=204661

Reviewed by Don Olmstead.

No behavior changes.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsTelemetry.cpp:

(WebKit::makeDescription):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::cleanup):

  • NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp:

(WebKit::NetworkCache::IOChannel::IOChannel):

  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toDiagnosticLoggingResultType):

  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::didReceiveData):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didReceiveData):

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::registerAttachmentIdentifier):

5:54 PM Changeset in webkit [253194] by Alan Coon
  • 1 copy in branches/safari-608.5.0.2-branch

New branch.

5:53 PM Changeset in webkit [253193] by Alan Coon
  • 1 delete in branches/safari-608.5.0.2-branch

Delete tag.

5:33 PM Changeset in webkit [253192] by commit-queue@webkit.org
  • 179 edits
    1 move
    24 adds
    2 deletes in trunk/Source/ThirdParty/ANGLE

Finish ANGLE update
https://bugs.webkit.org/show_bug.cgi?id=204911

The last ANGLE update patch didn't include all the changed files.
This patch updates the rest of the files.

Patch by James Darpinian <James Darpinian> on 2019-12-05
Reviewed by Alex Christensen.

  • src/tests: Lots of changed files from upstream ANGLE.
  • src/third_party/compiler/README.chromium:
  • third_party/VK-GL-CTS/README.angle: Added.
  • third_party/deqp/README.angle: Removed.
  • third_party/googletest/README.angle: Removed.
  • third_party/libpng/BUILD.gn:
  • third_party/spirv-cross/README.angle: Added.
  • util/OSWindow.h:
  • util/egl_loader_autogen.cpp:

(angle::LoadEGL):

  • util/egl_loader_autogen.h:
  • util/fuchsia/ScenicWindow.cpp:

(ScenicWindow::resetNativeWindow):

  • util/fuchsia/ScenicWindow.h:
  • util/gles_loader_autogen.cpp:

(angle::LoadGLES):

  • util/gles_loader_autogen.h:
  • util/osx/OSXWindow.h:
  • util/osx/OSXWindow.mm:

(OSXWindow::initialize):

  • util/ozone/OzoneWindow.h:
  • util/posix/crash_handler_posix.cpp:

(angle::InitCrashHandler):

  • util/posix/test_utils_posix.cpp:

(angle::GetTempDir):
(angle::CreateTemporaryFileInDir):
(angle::DeleteFile):
(angle::LaunchProcess):
(angle::NumberOfProcessors):

  • util/shader_utils.cpp:

(CompileShaderFromFile):
(CompileProgramFromFiles):

  • util/test_utils.cpp: Added.

(angle::CreateTemporaryFile):
(angle::GetFileSize):
(angle::ReadEntireFileToString):
(angle::ProcessHandle::ProcessHandle):
(angle::ProcessHandle::~ProcessHandle):
(angle::ProcessHandle::operator=):
(angle::ProcessHandle::reset):

  • util/test_utils.h:
  • util/test_utils_unittest.cpp: Added.

(angle::NormalizeNewLines):
(angle::TEST):

  • util/test_utils_unittest_helper.cpp: Added.

(main):

  • util/test_utils_unittest_helper.h: Added.
  • util/util.gni:
  • util/windows/WGLWindow.cpp:
  • util/windows/test_utils_win.cpp:

(angle::InitCrashHandler):
(angle::TerminateCrashHandler):
(angle::LaunchProcess):
(angle::GetTempDir):
(angle::CreateTemporaryFileInDir):
(angle::DeleteFile):
(angle::NumberOfProcessors):

  • util/windows/win32/Win32Window.cpp:

(Win32Window::initialize):

  • util/windows/win32/test_utils_win32.cpp:

(angle::StabilizeCPUForBenchmarking):

  • util/x11/X11Window.h:
5:29 PM Changeset in webkit [253191] by Alan Coon
  • 1 copy in branches/safari-608.5.0.2-branch

New branch.

5:27 PM Changeset in webkit [253190] by Megan Gardner
  • 2 edits in trunk/Source/WebCore

Move member variable that should be private
https://bugs.webkit.org/show_bug.cgi?id=204913

Reviewed by Wenson Hsieh.

These member variables should be in the correct section.

No changing functionality, no tests needed.

  • page/EventHandler.h:
5:12 PM Changeset in webkit [253189] by BJ Burg
  • 3 edits in trunk/Source/WebKit

[Cocoa] _WKInspector uses wrong WKWebView in -setDiagnosticLoggingDelegate:
https://bugs.webkit.org/show_bug.cgi?id=204928

Reviewed by Timothy Hatcher.

I feel like I've made this mistake before. To make the right thing more obvious,
add a property named inspectorWebView that returns the Inspector WKWebView.

  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector inspectorWebView]):
(-[_WKInspector _setDiagnosticLoggingDelegate:]):

  • UIProcess/WebInspectorProxy.h:

(WebKit::WebInspectorProxy::inspectorPage const):

5:08 PM Changeset in webkit [253188] by Tadeu Zagallo
  • 8 edits in trunk/Source/JavaScriptCore

[WebAssembly] Fix LLIntCallee's ownership
https://bugs.webkit.org/show_bug.cgi?id=204929

Reviewed by Saam Barati.

Currently, after the LLIntPlan finished generating bytecode, the Module takes ownership of the Vector
of LLIntCallee's and passes a pointer to the Vector's storage to the CodeBlock. However, while we're
tiering up, the module might be destroyed and we'll try to access the LLIntCallee after we finish
compiling through the pointer held by the CodeBlock, which is now stale, since the Vector was owned
by the Module. In order to fix this, we move the Vector into a reference counted wrapper class, LLIntCallees,
and both the Module and the CodeBlock hold references to the wrapper.

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::work):

  • wasm/WasmCallee.h:

(JSC::Wasm::LLIntCallees::create):
(JSC::Wasm::LLIntCallees::at const):
(JSC::Wasm::LLIntCallees::data const):
(JSC::Wasm::LLIntCallees::LLIntCallees):

  • wasm/WasmCodeBlock.cpp:

(JSC::Wasm::CodeBlock::create):
(JSC::Wasm::CodeBlock::CodeBlock):

  • wasm/WasmCodeBlock.h:

(JSC::Wasm::CodeBlock::wasmEntrypointCalleeFromFunctionIndexSpace):

  • wasm/WasmModule.cpp:

(JSC::Wasm::Module::Module):
(JSC::Wasm::Module::getOrCreateCodeBlock):

  • wasm/WasmModule.h:
  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

4:35 PM Changeset in webkit [253187] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

Use sendWithAsyncReply() for WebPage::TryClose IPC
https://bugs.webkit.org/show_bug.cgi?id=204926

Reviewed by Alex Christensen.

Use sendWithAsyncReply() for WebPage::TryClose IPC, instead of 2 separate IPCs.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::closeBrowsingContext):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::tryClose):
(WebKit::WebPageProxy::closePage):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::tryClose):
(WebKit::WebPage::sendClose):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
4:34 PM Changeset in webkit [253186] by Chris Dumez
  • 2 edits in trunk/Source/WTF

[IPC] Fail ObjectIdentifier decoding if the decoded integer is not a valid ID
https://bugs.webkit.org/show_bug.cgi?id=204921
<rdar://problem/57677747>

Reviewed by Ryosuke Niwa.

  • wtf/ObjectIdentifier.h:

(WTF::ObjectIdentifier::decode):

4:26 PM Changeset in webkit [253185] by wilander@apple.com
  • 12 edits in trunk/Source

Resource Load Statistics (experimental): Add fast mode for non-cookie website data deletion
https://bugs.webkit.org/show_bug.cgi?id=204858
<rdar://problem/57639851>

Reviewed by Alex Christensen.

Source/WebCore:

This change adds two internal flags:

  • "Live-On Testing" with a one hour timeout instead of seven days.
  • "Repro Testing" with an instant timeout (bar ITP's regular delays) instead of seven days.

These internal flags should be removed once testing is complete: <rdar://problem/57673418>

No new tests. This change just adds new opt-in settings for manual testing.

  • page/Settings.yaml:
  • platform/network/NetworkStorageSession.h:

The FirstPartyWebsiteDataRemovalMode enum now has two new values:

  • AllButCookiesLiveOnTestingTimeout
  • AllButCookiesReproTestingTimeout

Source/WebKit:

The purpose of this change is to allow for dedicated testing of the change in
https://trac.webkit.org/changeset/253082/webkit. Waiting seven days just isn't a good
starting point.

This change adds two internal flags:

  • "Live-On Testing" with a one hour timeout instead of seven days.
  • "Repro Testing" with an instant timeout (bar ITP's regular delays) instead of seven days.

The change also makes sure that hasHadUnexpiredRecentUserInteraction() in
ResourceLoadStatisticsDatabaseStore and ResourceLoadStatisticsMemoryStore only
age out the user interaction timestamp if the OperatingDatesWindow is Long so
that we don't age out timestamps early with the shorter OperatingDatesWindows.

This change changes the default value of IsFirstPartyWebsiteDataRemovalEnabled to true.

These internal flags should be removed once testing is complete: <rdar://problem/57673418>

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::hasHadUnexpiredRecentUserInteraction const):
(WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveAllButCookiesFor const):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::hasStatisticsExpired const):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::setFirstPartyWebsiteDataRemovalMode):

  • NetworkProcess/NetworkProcess.messages.in:
  • Shared/WebPreferences.yaml:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

4:01 PM Changeset in webkit [253184] by Jonathan Bedard
  • 5 edits in trunk/Tools

Python 3: Add support to webkitpy.browserperfdash
https://bugs.webkit.org/show_bug.cgi?id=204887

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.browserperfdash.
  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py: Remove urlparse dependency.
  • Scripts/webkitpy/benchmark_runner/webdriver_benchmark_runner.py: Use explicit import.
  • Scripts/webkitpy/benchmark_runner/webserver_benchmark_runner.py:

(WebServerBenchmarkRunner._run_one_test): Use Python 2/3 compatible urljoin.

3:56 PM Changeset in webkit [253183] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Optimize IPC::Connection::SyncMessageState methods
https://bugs.webkit.org/show_bug.cgi?id=204890

Reviewed by Alex Christensen.

Optimize IPC::Connection::SyncMessageState methods. We are seeing lock contention on some (app launch)
benchmarks, resulting in the main thread yielding for 10ms.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState): Make constructor private since this is a singleton class.
(IPC::Connection::ConnectionAndIncomingMessage): Add convenience dispatch() method.

(IPC::Connection::SyncMessageState::processIncomingMessage):
Drop the lock as early as possible, *before* calling RunLoop::main().dispatch().

(IPC::Connection::SyncMessageState::dispatchMessages):
Drop allowedConnection parameter and simplify the code a lot as a result. Only dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection()
needed the pass an allowedConnection but having dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection() call dispatchMessages() was
inefficient since it would cause us to grab the lock in dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection() to update
m_didScheduleDispatchMessagesWorkSet, then release it, then grab the lock again in dispatchMessages() for m_messagesToDispatchWhileWaitingForSyncReply.

(IPC::Connection::SyncMessageState::dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection):
Grab the lock only once to update m_didScheduleDispatchMessagesWorkSet and m_messagesToDispatchWhileWaitingForSyncReply, instead of doing it in 2
separate steps, each one taking the lock.

(IPC::Connection::waitForMessage):
(IPC::Connection::waitForSyncReply):
(IPC::Connection::dispatchSyncMessage):
stop passing a null allowedConnection when calling dispatchMessages().

3:55 PM Changeset in webkit [253182] by Chris Dumez
  • 21 edits in trunk/Source

PageConfiguration::dragClient should use a smart pointer
https://bugs.webkit.org/show_bug.cgi?id=204816

Reviewed by Alex Christensen.

Source/WebCore:

  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

  • page/DragClient.h:
  • page/DragController.cpp:

(WebCore::DragController::DragController):
(WebCore::DragController::~DragController):
(WebCore::DragController::dragEnded):
(WebCore::DragController::performDragOperation):
(WebCore::DragController::delegateDragSourceAction):
(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::startDrag):
(WebCore::DragController::beginDrag):
(WebCore::DragController::doSystemDrag):

  • page/DragController.h:

(WebCore::DragController::client const):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/PageConfiguration.cpp:
  • page/PageConfiguration.h:
  • page/mac/DragControllerMac.mm:

(WebCore::DragController::declareAndWriteDragImage):

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_overriddenMediaType):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::initWithFrame):

3:53 PM Changeset in webkit [253181] by Chris Dumez
  • 5 edits in trunk/Source

[IPC] Fail BackForwardItemIdentifier decoding if the decoded integer is not a valid ID
https://bugs.webkit.org/show_bug.cgi?id=204920
<rdar://problem/57677453>

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • history/BackForwardItemIdentifier.h:

(WebCore::BackForwardItemIdentifier::decode):

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willGoToBackForwardListItem):
(WebKit::WebPageProxy::backForwardGoToItemShared):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::updateBackForwardItem):

3:52 PM Changeset in webkit [253180] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/PAL

[IPC] Fail PAL::SessionID decoding if the decoded integer is not a valid session ID
https://bugs.webkit.org/show_bug.cgi?id=204917
<rdar://problem/53418119>

Reviewed by Ryosuke Niwa.

Fail PAL::SessionID IPC decoding if the decoded integer is not a valid session ID.
This makes our IPC more robust to bad input and makes sure we don't try to lookup
an invalid sessionID from a HashMap as a result of a bad IPC.

  • pal/SessionID.h:

(PAL::SessionID::decode):

3:48 PM Changeset in webkit [253179] by yurys@chromium.org
  • 3 edits in trunk/LayoutTests

Web Inspector: http/tests/inspector/target/pause-on-inline-debugger-statement.html is crashing in debug
https://bugs.webkit.org/show_bug.cgi?id=204901

Reviewed by Devin Rousso.

Restructured the test to avoid inadvertent alert() when navigating to a new
process. New logs are printed after inspected page has navigated.

  • http/tests/inspector/target/pause-on-inline-debugger-statement-expected.txt:
  • http/tests/inspector/target/pause-on-inline-debugger-statement.html:
3:40 PM Changeset in webkit [253178] by sihui_liu@apple.com
  • 18 edits
    1 move
    1 add
    1 delete in trunk/Source

Move InProcessIDBServer to WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=204896

Reviewed by Brady Eidson.

Source/WebCore:

We only use InProcessIDBServer in WebKitLegacy now.

No behavior change.

  • Headers.cmake:
  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/shared/IDBRequestData.h:
  • Modules/indexeddb/shared/IDBTransactionInfo.h:
  • Modules/indexeddb/shared/InProcessIDBServer.h: Removed.
  • Modules/mediastream/MediaStreamTrack.cpp:
  • Modules/pictureinpicture/HTMLVideoElementPictureInPicture.cpp:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:
  • page/Page.cpp:

Source/WebKit:

  • WebProcess/Databases/WebDatabaseProvider.h:

Source/WebKitLegacy:

  • CMakeLists.txt:
  • Storage/InProcessIDBServer.cpp: Renamed from Source/WebCore/Modules/indexeddb/shared/InProcessIDBServer.cpp.

(InProcessIDBServer::create):
(InProcessIDBServer::quotaManager):
(storageQuotaManagerSpaceRequester):
(InProcessIDBServer::InProcessIDBServer):
(InProcessIDBServer::identifier const):
(InProcessIDBServer::connectionToServer const):
(InProcessIDBServer::connectionToClient const):
(InProcessIDBServer::deleteDatabase):
(InProcessIDBServer::didDeleteDatabase):
(InProcessIDBServer::openDatabase):
(InProcessIDBServer::didOpenDatabase):
(InProcessIDBServer::didAbortTransaction):
(InProcessIDBServer::didCommitTransaction):
(InProcessIDBServer::didCreateObjectStore):
(InProcessIDBServer::didDeleteObjectStore):
(InProcessIDBServer::didRenameObjectStore):
(InProcessIDBServer::didClearObjectStore):
(InProcessIDBServer::didCreateIndex):
(InProcessIDBServer::didDeleteIndex):
(InProcessIDBServer::didRenameIndex):
(InProcessIDBServer::didPutOrAdd):
(InProcessIDBServer::didGetRecord):
(InProcessIDBServer::didGetAllRecords):
(InProcessIDBServer::didGetCount):
(InProcessIDBServer::didDeleteRecord):
(InProcessIDBServer::didOpenCursor):
(InProcessIDBServer::didIterateCursor):
(InProcessIDBServer::abortTransaction):
(InProcessIDBServer::commitTransaction):
(InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(InProcessIDBServer::createObjectStore):
(InProcessIDBServer::deleteObjectStore):
(InProcessIDBServer::renameObjectStore):
(InProcessIDBServer::clearObjectStore):
(InProcessIDBServer::createIndex):
(InProcessIDBServer::deleteIndex):
(InProcessIDBServer::renameIndex):
(InProcessIDBServer::putOrAdd):
(InProcessIDBServer::getRecord):
(InProcessIDBServer::getAllRecords):
(InProcessIDBServer::getCount):
(InProcessIDBServer::deleteRecord):
(InProcessIDBServer::openCursor):
(InProcessIDBServer::iterateCursor):
(InProcessIDBServer::establishTransaction):
(InProcessIDBServer::fireVersionChangeEvent):
(InProcessIDBServer::didStartTransaction):
(InProcessIDBServer::didCloseFromServer):
(InProcessIDBServer::notifyOpenDBRequestBlocked):
(InProcessIDBServer::databaseConnectionPendingClose):
(InProcessIDBServer::databaseConnectionClosed):
(InProcessIDBServer::abortOpenAndUpgradeNeeded):
(InProcessIDBServer::didFireVersionChangeEvent):
(InProcessIDBServer::openDBRequestCancelled):
(InProcessIDBServer::confirmDidCloseFromServer):
(InProcessIDBServer::getAllDatabaseNames):
(InProcessIDBServer::didGetAllDatabaseNames):

  • Storage/InProcessIDBServer.h: Added.
  • Storage/WebDatabaseProvider.cpp:

(WebDatabaseProvider::idbConnectionToServerForSession):
(WebDatabaseProvider::deleteAllDatabases):

  • Storage/WebDatabaseProvider.h:
  • WebKitLegacy.xcodeproj/project.pbxproj:
3:28 PM Changeset in webkit [253177] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebKit

Add ThreadMessageReceiver to IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=204908

Reviewed by Brady Eidson.

ThreadMesageReceiver is similar to WorkQueueMessageReceiver, but it should handle messages (dispatched from IPC
thread) on a specific thread, while WorkQueueMessageReceiver may handle messages on different threads.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::addThreadMessageReceiver):
(IPC::Connection::removeThreadMessageReceiver):
(IPC::Connection::dispatchThreadMessageReceiverMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::dispatchMessageToThreadReceiver):

  • Platform/IPC/Connection.h:

(IPC::Connection::ThreadMessageReceiver::dispatchToThread):

3:28 PM Changeset in webkit [253176] by Simon Fraser
  • 6 edits in trunk/Source

Fix inspector/css test assertions after r253158
https://bugs.webkit.org/show_bug.cgi?id=204924

Reviewed by Devin Rousso.
Source/JavaScriptCore:

Teach the inspector protocol about the ::highlight pseudoelement.

  • inspector/protocol/CSS.json:

Source/WebCore:

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::protocolValueForPseudoId):

Source/WebInspectorUI:

  • UserInterface/Controllers/CSSManager.js:

(WI.CSSManager.displayNameForPseudoId):

3:24 PM Changeset in webkit [253175] by Alan Coon
  • 1 copy in tags/Safari-608.5.4

Tag Safari-608.5.4.

3:06 PM Changeset in webkit [253174] by sihui_liu@apple.com
  • 6 edits in trunk/Source/WebCore

Rename IDBDatabaseIdentifier::debugString to IDBDatabaseIdentifier::loggingString
https://bugs.webkit.org/show_bug.cgi?id=204898

Reviewed by Brady Eidson.

We use loggingString everywhere in IDB code but IDBDatabaseIdentifier, so rename it for consistency.

No behavior change.

  • Modules/indexeddb/IDBDatabaseIdentifier.cpp:

(WebCore::IDBDatabaseIdentifier::loggingString const):
(WebCore::IDBDatabaseIdentifier::debugString const): Deleted.

  • Modules/indexeddb/IDBDatabaseIdentifier.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::deleteDatabase):
(WebCore::IDBClient::IDBConnectionToServer::openDatabase):

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::deleteDatabase):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentDeleteOperation):
(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):

2:55 PM Changeset in webkit [253173] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r242604): Console: unread indicator overlaps selection background of previous scope bar item
https://bugs.webkit.org/show_bug.cgi?id=204630

Reviewed by Timothy Hatcher.

When a new message is added that is immediately filtered, such as from an existing filter or
previously selected scope bar items, rather than show a blinking circle next to the level of
the new message in the scope bar (which doesn't cover the case where there's a filter and
was often hard to notice), add a dismissable warning banner explaning that the message had
been filtered with a button to clear all filters.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView):
(WI.LogContentView.prototype.didAppendConsoleMessageView):
(WI.LogContentView.prototype._previousMessageRepeatCountUpdated):
(WI.LogContentView.prototype._logCleared):
(WI.LogContentView.prototype._messageSourceBarSelectionDidChange):
(WI.LogContentView.prototype._scopeBarSelectionDidChange):
(WI.LogContentView.prototype._filterMessageElements):
(WI.LogContentView.prototype._showHiddenMessagesBannerIfNeeded): Added.
(WI.LogContentView.prototype._markScopeBarItemUnread): Deleted.
(WI.LogContentView.prototype._markScopeBarItemForMessageLevelUnread): Deleted.

  • UserInterface/Views/LogContentView.css:

(.content-view.log):
(.content-view.log > .hidden-messages-banner): Added.
(.content-view.log > .hidden-messages-banner > button): Added.
(.content-view.log > .hidden-messages-banner > .dismiss): Added.
(body[dir=ltr] .content-view.log > .hidden-messages-banner > .dismiss): Added.
(body[dir=rtl] .content-view.log > .hidden-messages-banner > .dismiss): Added.
(.console-messages):
(.log-scope-bar > li:not(.unread) > .indicator): Deleted.
(.log-scope-bar > li.unread > .indicator): Deleted.
(.log-scope-bar > li.unread:hover > .indicator): Deleted.
(.log-scope-bar > li.unread.evaluations > .indicator): Deleted.
(.log-scope-bar > li.unread.errors > .indicator): Deleted.
(.log-scope-bar > li.unread.warnings > .indicator): Deleted.
(.log-scope-bar > li.unread.logs > .indicator): Deleted.
(@keyframes unread-background-pulse): Deleted.

  • UserInterface/Views/FindBanner.js:

(WI.FindBanner):
(WI.FindBanner.prototype.clearAndBlur): Added.
(WI.FindBanner.prototype._clearAndBlur): Deleted.
Expose a public way to clear the find banner.

  • Localizations/en.lproj/localizedStrings.js:
2:48 PM Changeset in webkit [253172] by Devin Rousso
  • 17 edits in trunk/Source/WebInspectorUI

Web Inspector: add WI.EngineeringSetting and WI.DebugSetting to avoid callsite checking
https://bugs.webkit.org/show_bug.cgi?id=204785

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Setting.js:

(WI.Setting.prototype.get defaultValue): Added.
(WI.EngineeringSetting.prototype.get value): Added.
(WI.EngineeringSetting.prototype.set value): Added.
(WI.DebugSetting.prototype.get value): Added.
(WI.DebugSetting.prototype.set value): Added.
(WI.Setting.prototype.get valueRespectingDebugUIAvailability): Deleted.
Only get/set the _value if the WI.isEngineeringBuild/WI.isDebugUIEnabled().

  • UserInterface/Base/Main.js:

(WI.resolvedLayoutDirection):

  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject.prototype.findFunctionSourceCodeLocation):

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype._updateOwnerStyleText):

  • UserInterface/Models/CSSStyleDeclaration.js:

(WI.CSSStyleDeclaration.prototype.update):

  • UserInterface/Proxies/HeapSnapshotEdgeProxy.js:

(WI.HeapSnapshotEdgeProxy.prototype.isPrivateSymbol):

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.supportsEditingUserAgentShadowTrees):

  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.get knownNonResourceScripts):
(WI.DebuggerManager.prototype.debuggerDidPause):
(WI.DebuggerManager.prototype.scriptDidParse):

  • UserInterface/Controllers/DiagnosticController.js:

(WI.DiagnosticController):
(WI.DiagnosticController.prototype._debugAutoLogDiagnosticEventsSettingDidChange):
(WI.DiagnosticController.prototype._updateRecorderStates):

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._appendLocationLink):

  • UserInterface/Views/HeapSnapshotDataGridTree.js:

(WI.HeapSnapshotInstancesDataGridTree.prototype.populateTopLevel):

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._addScriptsForTarget):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor):

  • UserInterface/Views/StackTraceView.js:

(WI.StackTraceView):

  • UserInterface/Views/View.js:

(WI.View.prototype._layoutSubtree):

  • UserInterface/Debug/UncaughtExceptionReporter.js:

(handleUncaughtExceptionRecord):

2:32 PM Changeset in webkit [253171] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r253140): Wasm::FunctionParser needs to bounds check in SetLocal/TeeLocal
https://bugs.webkit.org/show_bug.cgi?id=204909

Reviewed by Keith Miller.

When moving the code from WasmValidate.cpp to WasmFunctionParser.h, I missed that SetLocal and
TeeLocal used to call Wasm::Validate::getLocal, which would perform the bounds check. I just
added back the checks to the parser before accessing the local's type from m_locals.

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):

1:22 PM Changeset in webkit [253170] by Alan Bujtas
  • 12 edits
    1 copy in trunk/Source/WebCore

[LFC][IFC] Introduce InlineSoftLineBreakItem
https://bugs.webkit.org/show_bug.cgi?id=204905
<rdar://problem/57672472>

Reviewed by Antti Koivisto.

Preserved line breaks apparently require text-line inline boxes with position information.
This patch provides this position information by introducing InlineSoftLineBreakItem.
InlineSoftLineBreakItem is a non-text like subclass of InlineItem which is created when
the text content has a preserved line break.

<pre>text content
</pre>
-> [InlineTextItem(text)][InlineTextItem( )][InlineTextItem(content)][InlineSoftLineBreakItem]

  • WebCore.xcodeproj/project.pbxproj:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

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

  • layout/inlineformatting/InlineItem.cpp:
  • layout/inlineformatting/InlineItem.h:

(WebCore::Layout::InlineItem::isLineBreak const):
(WebCore::Layout::InlineItem::isSoftLineBreak const):
(WebCore::Layout::InlineItem::isHardLineBreak const):
(WebCore::Layout::InlineItem::isForcedLineBreak const): Deleted.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::Content::isAtContentBoundary):
(WebCore::Layout::LineBreaker::Content::append):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::alignContentVertically):
(WebCore::Layout::LineBuilder::append):
(WebCore::Layout::LineBuilder::appendLineBreak):
(WebCore::Layout::LineBuilder::adjustBaselineAndLineHeight):
(WebCore::Layout::LineBuilder::runContentHeight const):
(WebCore::Layout::LineBuilder::isVisuallyNonEmpty const):
(WebCore::Layout::LineBuilder::TrimmableContent::trim):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::Run::isLineBreak const):
(WebCore::Layout::LineBuilder::InlineItemRun::isLineBreak const):
(WebCore::Layout::LineBuilder::Run::isForcedLineBreak const): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isForcedLineBreak const): Deleted.

  • layout/inlineformatting/InlineSoftLineBreakItem.h: Copied from Source/WebCore/layout/inlineformatting/InlineItem.cpp.

(WebCore::Layout::InlineSoftLineBreakItem::position const):
(WebCore::Layout::InlineSoftLineBreakItem::createSoftLineBreakItem):
(WebCore::Layout::InlineSoftLineBreakItem::InlineSoftLineBreakItem):

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::createSegmentBreakItem): Deleted.

  • layout/inlineformatting/InlineTextItem.h:

(WebCore::Layout::InlineTextItem::isWhitespace const):
(WebCore::Layout::InlineTextItem::isCollapsible const):
(WebCore::Layout::InlineTextItem::isSegmentBreak const): Deleted.

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::inlineItemWidth):
(WebCore::Layout::LineLayoutContext::placeInlineItem):

1:18 PM Changeset in webkit [253169] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Console: copying an evaluation result shouldn't include the saved variable index
https://bugs.webkit.org/show_bug.cgi?id=204906

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype.toClipboardString):

1:05 PM Changeset in webkit [253168] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

[WebAssembly] Fix bad assertion in LLIntPlan
https://bugs.webkit.org/show_bug.cgi?id=204893

Reviewed by Mark Lam.

Before landing r253140 I introduced an assertion in Wasm::LLIntPlan that the pointer to previously
compiled callees must be non-null. However, it's perfectly valid for the pointer to be null when the
module has no functions.

  • wasm/WasmLLIntPlan.cpp:

(JSC::Wasm::LLIntPlan::LLIntPlan):

1:03 PM Changeset in webkit [253167] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements: the Classes toggle is drawn on top of other content with no other way of scrolling to it
https://bugs.webkit.org/show_bug.cgi?id=204690

Reviewed by Timothy Hatcher.

Use a vertical flexbox for the contents of sidebar panels instead of absolute positioning so
that the variable height Classes "drawer" can have it's own scroll area and doesn't take up
any space from the rest of the panel's contents.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content):
(.sidebar > .panel.details.css-style > .content ~ :matches(.options-container, .class-list-container)):
(.sidebar > .panel.details.css-style > .content ~ .options-container):
(.sidebar > .panel.details.css-style > .content ~ .class-list-container):
(.sidebar > .panel.details.css-style > .content.has-filter-bar): Deleted.

  • UserInterface/Views/Sidebar.css:

(.sidebar > .panel):
(.sidebar > .panel.selected): Deleted.

12:35 PM Changeset in webkit [253166] by yurys@chromium.org
  • 5 edits
    2 adds in trunk

Web Inspector: Avoid using Runtime.executionContextCreated to figure out the iframe's contentDocument node.
https://bugs.webkit.org/show_bug.cgi?id=122764
<rdar://problem/15222136>

Reviewed by Devin Rousso.

Source/WebCore:

Force execution context creation on frame navigation similar to what inspector already
does for all known contexts when Runtime.enable is called. This is a prerequisite for
the injected script to work.

Test: inspector/runtime/execution-context-in-scriptless-page.html

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didCommitLoadImpl):

  • inspector/agents/page/PageRuntimeAgent.cpp:

(WebCore::PageRuntimeAgent::frameNavigated):

  • inspector/agents/page/PageRuntimeAgent.h:

LayoutTests:

Test that execution context is created and reported for pages without JavaScript.

  • inspector/runtime/execution-context-in-scriptless-page-expected.txt: Added.
  • inspector/runtime/execution-context-in-scriptless-page.html: Added.
12:33 PM Changeset in webkit [253165] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Search: there should be some default content when there is no search string
https://bugs.webkit.org/show_bug.cgi?id=204631

Reviewed by Timothy Hatcher.

It's very odd to switch to the Search Tab and find it completely empty, especially if you've
never used it before.

Add basic "No Search String" and "No Search Results" text with a clickable help navigation
item that reveals and focuses the sidebar search input.

  • UserInterface/Views/SearchSidebarPanel.js:

(WI.SearchSidebarPanel.prototype.showDefaultContentView): Added.
(WI.SearchSidebarPanel.prototype.performSearch):
(WI.SearchSidebarPanel.prototype._handleDefaultContentViewSearchNavigationItemClicked): Added.

  • Localizations/en.lproj/localizedStrings.js:
12:23 PM Changeset in webkit [253164] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

computeIfUsingFuzzerAgent() is called before parsing command line arguments.
https://bugs.webkit.org/show_bug.cgi?id=204886

Reviewed by Saam Barati.

Rolling out r253015 which introduced computeIfUsingFuzzerAgent().

  • runtime/Options.cpp:

(JSC::Options::initialize):
(JSC::computeIfUsingFuzzerAgent): Deleted.

  • runtime/Options.h:

(JSC::Options::isUsingFuzzerAgent): Deleted.

  • runtime/OptionsList.h:

(JSC::OptionRange::operator bool const): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM):

12:20 PM Changeset in webkit [253163] by Chris Dumez
  • 7 edits
    1 add in trunk/Source

MESSAGE_CHECK BackForwardItemIdentifier on incoming IPC from the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=204899

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • Sources.txt:
  • history/BackForwardItemIdentifier.cpp: Added.

(WebCore::BackForwardItemIdentifier::isValid const):

  • history/BackForwardItemIdentifier.h:

(WebCore::operator!=):

Source/WebKit:

MESSAGE_CHECK BackForwardItemIdentifier on incoming IPC from the WebProcess. This is important since we use this identifier
to look up the WebBackForwardListItem in a HashMap, and looking up a bad ID could corrupt said HashMap.

  • Shared/WebBackForwardListItem.cpp:

Make sure the WebBackForwardListItem is always constructed and destroyed on the main thread, to avoid corrupting
the allItems() HashMap.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willGoToBackForwardListItem):
(WebKit::WebPageProxy::backForwardGoToItemShared):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::updateBackForwardItem):

12:18 PM Changeset in webkit [253162] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: move the "Add Breakpoint" context menu to be next to the blackboxing context menu item
https://bugs.webkit.org/show_bug.cgi?id=204833

Reviewed by Timothy Hatcher.

Both items are related to JavaScript debugging, so they should be closer together.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

12:16 PM Changeset in webkit [253161] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Support search on IndexedDB stores and indexes
https://bugs.webkit.org/show_bug.cgi?id=129208
<rdar://problem/16142046>

Reviewed by Timothy Hatcher.

Add filter bars to the navigation bars for IndexedDB, LocalStorage, and SessionStorage.

  • UserInterface/Views/StorageTabContentView.js:

(WI.StorageTabContentView.prototype.get canHandleFindEvent): Added.
(WI.StorageTabContentView.prototype.handleFindEvent): Added.

  • UserInterface/Views/DOMStorageContentView.js:

(WI.DOMStorageContentView):
(WI.DOMStorageContentView.prototype.get navigationItems): Added.
(WI.DOMStorageContentView.prototype.get canFocusFilterBar): Added.
(WI.DOMStorageContentView.prototype.focusFilterBar): Added.
(WI.DOMStorageContentView.prototype._handleFilterBarFilterDidChange): Added.

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:

(WI.IndexedDatabaseObjectStoreContentView):
(WI.IndexedDatabaseObjectStoreContentView.prototype.get navigationItems):
(WI.IndexedDatabaseObjectStoreContentView.prototype.get canFocusFilterBar): Added.
(WI.IndexedDatabaseObjectStoreContentView.prototype.focusFilterBar): Added.
(WI.IndexedDatabaseObjectStoreContentView.prototype.dataGridMatchNodeAgainstCustomFilters): Added.
(WI.IndexedDatabaseObjectStoreContentView.prototype._handleFilterBarFilterDidChange): Added.
Check against the textContent of each cell for a given WI.DataGridNode to see if it
matches the filter text as all of the pieces of data are WI.RemoteObjects.

  • UserInterface/Views/FilterBar.css:

(.filter-bar):

  • UserInterface/Views/NetworkTableContentView.css:

(.content-view.network .navigation-bar .filter-bar): Deleted.
Remove the background-color to let it match the background content.

11:55 AM Changeset in webkit [253160] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Network: pressing ⌘F when no network item is selected should focus the filter bar
https://bugs.webkit.org/show_bug.cgi?id=204862

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NetworkTabContentView.js:

(WI.NetworkTabContentView.prototype.get canHandleFindEvent): Added.
(WI.NetworkTabContentView.prototype.handleFindEvent): Added.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype.get canFocusFilterBar): Added.
(WI.NetworkTableContentView.prototype.focusFilterBar): Added.

11:53 AM Changeset in webkit [253159] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Quick Console: pressing ⌘F shows a second find banner
https://bugs.webkit.org/show_bug.cgi?id=204861

Reviewed by Timothy Hatcher.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype.get supportsCustomFindBanner):

11:26 AM Changeset in webkit [253158] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Add CSS parser support for the highlight pseudoelement
https://bugs.webkit.org/show_bug.cgi?id=204902

Reviewed by Antti Koivisto.

Add basic CSS parsing support for ::highlight(), per
https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/master/highlight/explainer.md

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::pseudoId):
(WebCore::CSSSelector::parsePseudoElementType):

  • css/CSSSelector.h:
  • css/SelectorPseudoElementTypeMap.in:
  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):

  • rendering/style/RenderStyleConstants.h:
11:26 AM Changeset in webkit [253157] by Simon Fraser
  • 6 edits in trunk/Source/WebKit

Minor RemoteLayerTree logging cleanup
https://bugs.webkit.org/show_bug.cgi?id=204865

Reviewed by Tim Horton.

Have the ::description() methods return Strings like everything else does.
Use LOG_WITH_STREAM() so we don't call description() unless the log channel is on.

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::dump const):
(WebKit::RemoteLayerTreeTransaction::description const):

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(WebKit::RemoteScrollingCoordinatorTransaction::description const):
(WebKit::RemoteScrollingCoordinatorTransaction::dump const):

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

10:56 AM Changeset in webkit [253156] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

Fix a Typo in IndexedDBInPageCache.html
https://bugs.webkit.org/show_bug.cgi?id=204897

Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBInPageCache.html:
10:29 AM Changeset in webkit [253155] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

[MSVC] WebResourceLoadStatisticsStore.h is reporting warning C4804: '/': unsafe use of type 'bool' in operation
https://bugs.webkit.org/show_bug.cgi?id=204870

Reviewed by Darin Adler.

This patch converts storageAccessGranted to a char since makeString()
does not explicitly accept bool types.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

(WebKit::ThirdPartyDataForSpecificFirstParty::toString const):

10:10 AM Changeset in webkit [253154] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Trim trailing letter-spacing at inline container boundary
https://bugs.webkit.org/show_bug.cgi?id=204895
<rdar://problem/57666898>

Reviewed by Antti Koivisto.

According to https://www.w3.org/TR/css-text-3/#letter-spacing-property, "An inline box only
includes letter spacing between characters completely contained within that element".
This patch enables this behavior by trimming the trailing letter spacing at [container end].

<div>1<span style="letter-spacing: 100px;">2</span>3</div> ->
[1][container start][2][container end][3]
vs.
[1][container start][2<-----100px----->][container end][3]

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::removeTrailingTrimmableContent):
(WebCore::Layout::LineBuilder::appendInlineContainerEnd):
(WebCore::Layout::LineBuilder::TrimmableContent::trim):
(WebCore::Layout::LineBuilder::TrimmableContent::trimTrailingRun):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::TrimmableContent::isTrailingRunPartiallyTrimmable const):

9:44 AM Changeset in webkit [253153] by youenn@apple.com
  • 18 edits
    1 copy
    4 adds in trunk

maplike should define a set method
https://bugs.webkit.org/show_bug.cgi?id=204877

Reviewed by Chris Dumez.

Source/WebCore:

maplike implementation was defining an add method instead of a set method.
Update implementation to define and use a set method.
Add an InternalsMapLike to allow testing.

Test: js/dom/maplike.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/highlight/HighlightMap.cpp:

(WebCore::HighlightMap::addFromMapLike):

  • Modules/highlight/HighlightMap.h:
  • Modules/highlight/HighlightMap.idl:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMMapLike.h:

(WebCore::DOMMapLike::set):
(WebCore::forwardSetToMapLike):

  • bindings/scripts/IDLParser.pm:

(parseMapLikeProperties):

  • bindings/scripts/test/JS/JSMapLike.cpp:

(WebCore::jsMapLikePrototypeFunctionSetBody):
(WebCore::jsMapLikePrototypeFunctionSet):
(WebCore::jsMapLikePrototypeFunctionAddBody): Deleted.
(WebCore::jsMapLikePrototypeFunctionAdd): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::createInternalsMapLike):

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/InternalsMapLike.cpp: Added.
  • testing/InternalsMapLike.h: Added.
  • testing/InternalsMapLike.idl: Added.

LayoutTests:

  • highlight/highlight-interfaces-expected.txt:
  • highlight/highlight-interfaces.html:
  • js/dom/maplike-expected.txt: Added.
  • js/dom/maplike.html: Added.
9:26 AM Changeset in webkit [253152] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Disable LFC when floats are present for now
https://bugs.webkit.org/show_bug.cgi?id=204892

Reviewed by Zalan Bujtas.

Diasable until we start synthesizing the required structures.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::canUseFor):

9:11 AM Changeset in webkit [253151] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Many render tree dump tests show 1px too narrow runs
https://bugs.webkit.org/show_bug.cgi?id=204885

Reviewed by Zalan Bujtas.

Width measurement is currently clamping the measured (float) text widths to layout units. Use rounding instead.

This doesn't solve the fundamental problem of loss of precision but it allows many more render tree dump
based layout tests to pass.

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::fixedPitchWidth):

7:33 AM Changeset in webkit [253150] by Philippe Normand
  • 2 edits in trunk/Source/WebKit

[GLib] Display GStreamer version in about:gpu page

Rubber-stamped by Carlos Garcia Campos.

  • UIProcess/API/glib/WebKitProtocolHandler.cpp:

(WebKit::WebKitProtocolHandler::handleGPU):

7:24 AM Changeset in webkit [253149] by youenn@apple.com
  • 21 edits in trunk

inspector/page/overrideSetting-MockCaptureDevicesEnabled.html is failing after removal of internals.setMockMediaCaptureDevicesEnabled API
https://bugs.webkit.org/show_bug.cgi?id=204849

Reviewed by Eric Carlson.

Source/WebCore:

Add API and internals to check which center is used in WebProcess.
Covered by updated test.

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockRealtimeMediaSourceCenter::setMockRealtimeMediaSourceCenterEnabled):
(WebCore::MockRealtimeMediaSourceCenter::mockRealtimeMediaSourceCenterEnabled):

  • platform/mock/MockRealtimeMediaSourceCenter.h:
  • testing/Internals.cpp:

(WebCore::Internals::isMockRealtimeMediaSourceCenterEnabled):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

Synchronize the center with the preferences when the value might be updated.
Add API to check which center is used in UIProcess.

  • UIProcess/API/C/WKPage.cpp:

(WKPageIsMockRealtimeMediaSourceCenterEnabled):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::UserMediaPermissionRequestManagerProxy):
(WebKit::UserMediaPermissionRequestManagerProxy::setMockCaptureDevicesEnabledOverride):

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:

(WebKit::UserMediaPermissionRequestManagerProxy::setMockCaptureDevicesEnabledOverride): Deleted.

Tools:

Add test runner API to check which center (mock or not) is used in UIProcess side.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::isMockRealtimeMediaSourceCenterEnabled):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::isMockRealtimeMediaSourceCenterEnabled const):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Update test to use center state getters.

  • inspector/page/overrideSetting-MockCaptureDevicesEnabled-expected.txt:
  • inspector/page/overrideSetting-MockCaptureDevicesEnabled.html:
6:27 AM Changeset in webkit [253148] by eric.carlson@apple.com
  • 13 edits in trunk

WPT test MediaStream-MediaElement-srcObject.https.html times out
https://bugs.webkit.org/show_bug.cgi?id=204762
<rdar://problem/57567671>

Reviewed by youenn fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-streams/MediaStream-MediaElement-firstframe.https-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html:

Source/WebCore:

No new tests, these changes fix existing tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::prepareForLoad): Check hasMediaStreamSrcObject() instead of
m_mediaStreamSrcObject so we behave correctly when a MediaStream is cleared by setting srcObject to null.
(WebCore::HTMLMediaElement::loadResource): Ditto.
(WebCore::HTMLMediaElement::seekWithTolerance): Return early if seeking isn't allowed.
(WebCore::HTMLMediaElement::defaultPlaybackRate const): Check hasMediaStreamSrcObject() instead
of m_mediaStreamSrcObject.
(WebCore::HTMLMediaElement::setDefaultPlaybackRate): Ditto.
(WebCore::HTMLMediaElement::playbackRate const): Ditto.
(WebCore::HTMLMediaElement::setPlaybackRate): Ditto.
(WebCore::HTMLMediaElement::ended const): Ditto.
(WebCore::HTMLMediaElement::preload const): Ditto.
(WebCore::HTMLMediaElement::setPreload): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Don't send an 'ended' event for a MediaStream.
(WebCore::HTMLMediaElement::clearMediaPlayer): Don't check m_settingMediaStreamSrcObject, it
is never set.

  • html/HTMLMediaElement.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: Add m_lastReportedTime.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::durationMediaTime const): Return last reported
time after the stream ends.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentMediaTime const): Ditto. Set m_lastReportedTime.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState): Don't return HaveNothing
for an inactive stream. Return HaveMetadata for an stream that has either ended or is waiting
for the first video frame.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeStatusChanged): Send duration changed when
a stream ends.

LayoutTests:

  • TestExpectations: Mark imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html

as expected to fail because the failure message logs media times as floats, so the values
logged are always different.

6:11 AM Changeset in webkit [253147] by Alan Bujtas
  • 8 edits in trunk

[LFC][IFC] Move trailing trimming logic to LineBuilder::TrimmableContent
https://bugs.webkit.org/show_bug.cgi?id=204872
<rdar://problem/57652365>

Reviewed by Antti Koivisto.

Source/WebCore:

Move trimming logic from LineBuilder::removeTrailingTrimmableContent to inside TrimmableContent.
This is also in preparation for adding partial trimming at inline container boundary.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::breakingContextForInlineContent):

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::removeTrailingTrimmableContent):
(WebCore::Layout::LineBuilder::appendTextContent):
(WebCore::Layout::LineBuilder::appendNonReplacedInlineBox):
(WebCore::Layout::LineBuilder::TrimmableContent::TrimmableContent):
(WebCore::Layout::LineBuilder::TrimmableContent::append):
(WebCore::Layout::LineBuilder::TrimmableContent::trim):

  • layout/inlineformatting/InlineLineBuilder.h:

(WebCore::Layout::LineBuilder::isTrailingRunFullyTrimmable const):
(WebCore::Layout::LineBuilder::TrimmableContent::isTrailingRunFullyTrimmable const):
(WebCore::Layout::LineBuilder::TrimmableContent::reset):
(WebCore::Layout::LineBuilder::isTrailingContentFullyTrimmable const): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::isTrailingContentFullyTrimmable const): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::clear): Deleted.

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::processUncommittedContent):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:
4:56 AM Changeset in webkit [253146] by youenn@apple.com
  • 10 edits in trunk

getStats() promise never rejects nor resolves when peer connection state is closed.
https://bugs.webkit.org/show_bug.cgi?id=204842
<rdar://problem/57617107>

Reviewed by Eric Carlson.

Source/WebCore:

Instead of closing and nulling the backend when closing the peer connection,
we only close it. This allows calling getStats to retrieve the last gathered stats from the backend.
Covered by updated test.

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::close):
(WebCore::RTCPeerConnection::stop):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::close):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::close):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:

LayoutTests:

  • webrtc/video-stats-expected.txt:
  • webrtc/video-stats.html:
Note: See TracTimeline for information about the timeline view.