Timeline



Sep 10, 2019:

11:34 PM Changeset in webkit [249756] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

11:06 PM Changeset in webkit [249755] by Fujii Hironori
  • 3 edits in trunk/Source/WebKitLegacy/win

[Win][WebKitLegacy][Clang] WebKit.h warning: 'IWebEditingDelegate2::shouldInsertNode' hides overloaded virtual function [-Woverloaded-virtual]
https://bugs.webkit.org/show_bug.cgi?id=192581
<rdar://problem/46651605>

Reviewed by Alex Christensen.

WebKitLegacy COM interfaces have same name methods within the old
and new interfaces. For example, both IWebEditingDelegate and
IWebEditingDelegate2 interfaces have 'shouldInsertNode' method.
This is a part of public API, can't be renamed.

  • Interfaces/IWebEditingDelegate.idl:
  • Interfaces/IWebViewPrivate.idl:

Added #pragma to ignore the warning.

9:51 PM Changeset in webkit [249754] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r233780): After swiping to navigate back, pinching to zoom in on webcontent snaps back to zoomed out when letting go
https://bugs.webkit.org/show_bug.cgi?id=201671
<rdar://problem/50488372>

Reviewed by Simon Fraser.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCommitLoad):
Reset m_lastTransactionIDWithScaleChange, since it is not guaranteed
to only march forward. Otherwise, we can get stuck with a very large
m_lastTransactionIDWithScaleChange, and will not allow stable-state
user-driven zooms until the current transactionID exceeds it.

9:34 PM Changeset in webkit [249753] by Devin Rousso
  • 38 edits
    4 moves
    12 adds
    8 deletes in trunk

Web Inspector: Canvas: instrument WebGPUDevice instead of GPUCanvasContext
https://bugs.webkit.org/show_bug.cgi?id=201650

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Most of the actual "work" done with Web GPU actually uses a WebGPUDevice.

A GPUCanvasContext is basically just a display "client" of the device, and isn't even
required (e.g. compute pipeline). We should treat the GPUCanvasContext almost like a
-webkit-canvas client of a WebGPUDevice.

  • inspector/protocol/Canvas.json:
    • Add powerPreference key to ContextAttributes type.
    • Rename requestCSSCanvasClientNodes command to requestClientNodes for the above reason.
    • Rename cssCanvasClientNodesChanged event to clientNodesChanged for the above reason.
    • Rename resolveCanvasContext command to resolveContext since a WebGPUDevice isn't really a "canvas".

Source/WebCore:

Most of the actual "work" done with Web GPU actually uses a WebGPUDevice.

A GPUCanvasContext is basically just a display "client" of the device, and isn't even
required (e.g. compute pipeline). We should treat the GPUCanvasContext almost like a
-webkit-canvas client of a WebGPUDevice.

Tests: inspector/canvas/create-context-webgpu.html

inspector/canvas/requestClientNodes-webgpu.html
inspector/canvas/resolveContext-webgpu.html

  • Modules/webgpu/WebGPUAdapter.cpp:

(WebCore::WebGPUAdapter::requestDevice const):
Notify web inspector after a device is created.

  • Modules/webgpu/WebGPUDevice.idl:
  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::instances): Added.
(WebCore::WebGPUDevice::instancesMutex): Added.
(WebCore::WebGPUDevice::~WebGPUDevice): Added.
Notify web inspector when the device is about to be destructed.

  • Modules/webgpu/GPUCanvasContext.h:
  • Modules/webgpu/GPUCanvasContext.cpp:

(WebCore::GPUCanvasContext::create):
(WebCore::GPUCanvasContext::configureSwapChain):

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

(WebCore::canvasIfContextMatchesDevice): Added.
(WebCore::InspectorCanvas::create):
(WebCore::InspectorCanvas::InspectorCanvas):
(WebCore::InspectorCanvas::canvasContext const): Added.
(WebCore::InspectorCanvas::canvasElement const): Added.
(WebCore::InspectorCanvas::isDeviceForCanvasContext const): Added.
(WebCore::InspectorCanvas::deviceContext const): Added.
(WebCore::InspectorCanvas::scriptExecutionContext const): Added.
(WebCore::InspectorCanvas::resolveContext const): Added.
(WebCore::InspectorCanvas::clientNodes const): Added.
(WebCore::InspectorCanvas::canvasChanged):
(WebCore::InspectorCanvas::resetRecordingData):
(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::buildObjectForCanvas):
(WebCore::InspectorCanvas::releaseObjectForRecording):
(WebCore::InspectorCanvas::getCanvasContentAsDataURL):
(WebCore::InspectorCanvas::buildInitialState):
(WebCore::InspectorCanvas::canvasElement): Deleted.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didCreateWebGPUDeviceImpl): Added.
(WebCore::InspectorInstrumentation::willDestroyWebGPUDeviceImpl): Added.
(WebCore::InspectorInstrumentation::willConfigureSwapChainImpl): Added.

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didCreateWebGPUDevice): Added.
(WebCore::InspectorInstrumentation::willDestroyWebGPUDevice): Added.
(WebCore::InspectorInstrumentation::willConfigureSwapChain): Added.

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

(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::requestClientNodes): Added.
(WebCore::InspectorCanvasAgent::resolveContext): Added.
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::stopRecording):
(WebCore::InspectorCanvasAgent::frameNavigated):
(WebCore::InspectorCanvasAgent::didChangeCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::didChangeCanvasMemory):
(WebCore::InspectorCanvasAgent::canvasDestroyed):
(WebCore::InspectorCanvasAgent::recordCanvasAction):
(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
(WebCore::InspectorCanvasAgent::didCreateWebGPUDevice): Added.
(WebCore::InspectorCanvasAgent::willDestroyWebGPUDevice): Added.
(WebCore::InspectorCanvasAgent::willConfigureSwapChain): Added.
(WebCore::InspectorCanvasAgent::clearCanvasData):
(WebCore::InspectorCanvasAgent::bindCanvas):
(WebCore::InspectorCanvasAgent::unbindCanvas):
(WebCore::InspectorCanvasAgent::findInspectorCanvas):
(WebCore::InspectorCanvasAgent::requestCSSCanvasClientNodes): Deleted.
(WebCore::contextAsScriptValue): Deleted.
(WebCore::InspectorCanvasAgent::resolveCanvasContext): Deleted.

  • inspector/InspectorShaderProgram.cpp:

(WebCore::InspectorShaderProgram::context const):

Source/WebInspectorUI:

Most of the actual "work" done with Web GPU actually uses a WebGPUDevice.

A GPUCanvasContext is basically just a display "client" of the device, and isn't even
required (e.g. compute pipeline). We should treat the GPUCanvasContext almost like a
-webkit-canvas client of a WebGPUDevice.

  • UserInterface/Protocol/CanvasObserver.js:

(WI.CanvasObserver.prototype.clientNodesChanged): Added.
(WI.CanvasObserver.prototype.cssCanvasClientNodesChanged):

  • UserInterface/Controllers/CanvasManager.js:

(WI.CanvasManager.prototype.clientNodesChanged): Added.
(WI.CanvasManager.prototype.cssCanvasClientNodesChanged): Deleted.

  • UserInterface/Models/Canvas.js:

(WI.Canvas.resetUniqueDisplayNameNumbers):
(WI.Canvas.prototype.get displayName):
(WI.Canvas.prototype.requestNode):
(WI.Canvas.prototype.requestClientNodes): Added.
(WI.Canvas.prototype.requestSize):
(WI.Canvas.prototype.clientNodesChanged): Added.
(WI.Canvas.prototype.requestCSSCanvasClientNodes): Deleted.
(WI.Canvas.prototype.cssCanvasClientNodesChanged): Deleted.

  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject.resolveCanvasContext):

  • UserInterface/Views/CanvasContentView.js:

(WI.CanvasContentView.prototype.attached):
(WI.CanvasContentView.prototype._refreshPixelSize):

  • UserInterface/Views/CanvasDetailsSidebarPanel.js:

(WI.CanvasDetailsSidebarPanel.prototype.set canvas):
(WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WI.CanvasDetailsSidebarPanel.prototype.layout):
(WI.CanvasDetailsSidebarPanel.prototype._refreshSourceSection):
(WI.CanvasDetailsSidebarPanel.prototype._refreshClientsSection): Added.
(WI.CanvasDetailsSidebarPanel.prototype._refreshCSSCanvasSection): Deleted.

  • UserInterface/Views/CanvasOverviewContentView.js:

(WI.CanvasOverviewContentView.prototype._contentViewMouseEnter):

  • UserInterface/Views/CanvasTreeElement.js:

(WI.CanvasTreeElement.prototype._handleMouseOver):

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • inspector/canvas/create-context-webgpu.html:
  • inspector/canvas/create-context-webgpu-expected.txt:
  • inspector/canvas/resources/create-context-utilities.js:

(createDetachedCanvas):
(createCSSCanvas):
(destroyCanvases):

  • inspector/canvas/requestClientNodes.html: Added.
  • inspector/canvas/requestClientNodes-expected.txt: Added.
  • inspector/canvas/requestClientNodes-css.html: Renamed from LayoutTests/inspector/canvas/css-canvas-clients.html.
  • inspector/canvas/requestClientNodes-css-expected.txt: Renamed from LayoutTests/inspector/canvas/css-canvas-clients-expected.txt.
  • inspector/canvas/requestClientNodes-webgpu.html: Added.
  • inspector/canvas/requestClientNodes-webgpu-expected.txt: Added.
  • inspector/canvas/resolveContext-2d.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-2d.html.
  • inspector/canvas/resolveContext-2d-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-2d-expected.txt.
  • inspector/canvas/resolveContext-bitmaprenderer.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-bitmaprenderer.html.
  • inspector/canvas/resolveContext-bitmaprenderer-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-bitmaprenderer-expected.txt.
  • inspector/canvas/resolveContext-webgl.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl.html.
  • inspector/canvas/resolveContext-webgl-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl-expected.txt.
  • inspector/canvas/resolveContext-webgl2.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl2.html.
  • inspector/canvas/resolveContext-webgl2-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgl2-expected.txt.
  • inspector/canvas/resolveContext-webgpu.html: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu.html.
  • inspector/canvas/resolveContext-webgpu-expected.txt: Renamed from LayoutTests/inspector/canvas/resolveCanvasContext-webgpu-expected.txt.
  • inspector/canvas/context-attributes-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wpe/TestExpectations:
9:15 PM Changeset in webkit [249752] by dino@apple.com
  • 2 edits in trunk/Tools

setup-git-clone is using http not https
https://bugs.webkit.org/show_bug.cgi?id=201658

Reviewed by Sam Weinig.

  • Scripts/webkitpy/tool/commands/setupgitclone.py:

(SetupGitClone.execute):

9:01 PM Changeset in webkit [249751] by Joseph Pecoraro
  • 7 edits
    4 deletes in trunk

Web Inspector: Remove legacy CodeMirror based pretty printers
https://bugs.webkit.org/show_bug.cgi?id=201624

Reviewed by Devin Rousso.

Source/WebInspectorUI:

  • Tools/PrettyPrinting/FormatterDebug.js: Removed.
  • Tools/PrettyPrinting/Utilities.js: Removed.
  • Tools/PrettyPrinting/codemirror-additions.css: Removed.
  • Tools/PrettyPrinting/index.html: Removed.
  • Tools/PrettyPrinting/populate/apple.css: Removed.
  • UserInterface/Controllers/Formatter.js: Removed.
  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/Views/CodeMirrorFormatters.js: Removed.
  • UserInterface/Views/TextEditor.js:

(WI.TextEditor.prototype.prettyPrint):
(WI.TextEditor.prototype._canUseFormatterWorker): Deleted.
(WI.TextEditor.prototype._startCodeMirrorPrettyPrint): Deleted.

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

LayoutTests:

  • inspector/codemirror/prettyprinting-css-expected.txt: Removed.
  • inspector/codemirror/prettyprinting-css.html: Removed.
  • inspector/codemirror/prettyprinting-javascript-expected.txt: Removed.
  • inspector/codemirror/prettyprinting-javascript.html: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/basic-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/basic.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/calc-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/calc.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/gradient-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/gradient.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/keyframes-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/keyframes.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/media-query-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/media-query.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/selectors-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/selectors.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/wrapping-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-tests/wrapping.css: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/block-comment-expected.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/block-comment.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-loop-expected.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-loop.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-within-if-expected.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/do-while-within-if.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/if-followed-by-while-expected.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/if-followed-by-while.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/if-while-within-do-while-expected.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/if-while-within-do-while.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/single-statement-blocks-expected.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/single-statement-blocks.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/switch-case-default-expected.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/switch-case-default.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/unary-binary-operators-expected.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/unary-binary-operators.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/while-within-do-while-expected.js: Removed.
  • inspector/codemirror/resources/prettyprinting/javascript-tests/while-within-do-while.js: Removed.
  • inspector/codemirror/resources/prettyprinting/utilities.js: Removed.
6:57 PM Changeset in webkit [249750] by Fujii Hironori
  • 2 edits in trunk/Source/WebKitLegacy

Unreviewed, rolling out r239097.

This is not a right fix. DumpRenderTree, MiniBrowser and
TestWebKitAPI are still reporting the same warning.

Reverted changeset:

"[Win][WebKitLegacy][Clang] WebKit.h warning:
'IWebEditingDelegate2::shouldInsertNode' hides overloaded
virtual function [-Woverloaded-virtual]"
https://bugs.webkit.org/show_bug.cgi?id=192581
https://trac.webkit.org/changeset/239097

6:12 PM Changeset in webkit [249749] by Matt Lewis
  • 4 edits
    2 adds in trunk/Tools

run-webkit-test: Allow results to be uploaded without scm checkout
https://bugs.webkit.org/show_bug.cgi?id=200787

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/checkout/scm/detection.py:

(SCMDetector.detect_scm_system): Added in detection of stub repository.

  • Scripts/webkitpy/common/checkout/scm/stub_repository.py: Added.

(StubRepository):
(StubRepository.init):
(StubRepository._find_parent_path_matching_callback_condition): Checks up the path given to
find the directory containing the checkout_information.json of the stub repository.
(StubRepository.in_working_directory): Required functions to be implemented.
(StubRepository.svn_revision): Required functions to be implemented.
(StubRepository.native_revision): Required functions to be implemented.
(StubRepository.native_branch): Required functions to be implemented.
(StubRepository._decode_json): Decodes checkout_information.json.
(StubRepository.find_checkout_root): Required functions to be implemented.

  • Scripts/webkitpy/common/checkout/scm/stub_repository_unittest.py: Added.

(StubRepositoryTest): Unit test for stub_repository SCM.
(StubRepositoryTest.mock_host_for_stub_repository):
(StubRepositoryTest.test_in_working_directory):
(StubRepositoryTest.test_native_revision):
(StubRepositoryTest.test_native_branch):
(StubRepositoryTest.test_svn_revision):
(StubRepositoryTest.test_find_checkout_root):

  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:

(JSONResultsGenerator._get_svn_revision): Removed unnecessary scm initialization.

  • Scripts/webkitpy/port/base.py:

(Port.commits_for_upload): Removed unnecessary scm initialization.

5:54 PM Changeset in webkit [249748] by Chris Dumez
  • 10 edits in trunk/Source

Nullptr crash in Page::sessionID() via WebKit::WebFrameLoaderClient::detachedFromParent2()
https://bugs.webkit.org/show_bug.cgi?id=201625

Reviewed by Ryosuke Niwa.

This is based on a patch from Ryosuke Niwa.

Source/WebCore:

Drop setHasFrameSpecificStorageAccess() in WebCore and call it from the WebKit layer instead.

  • dom/DocumentStorageAccess.cpp:

(WebCore::DocumentStorageAccess::requestStorageAccess):
(WebCore::DocumentStorageAccess::setHasFrameSpecificStorageAccess): Deleted.

  • dom/DocumentStorageAccess.h:
  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:

Source/WebKit:

The crash was caused by WebFrameLoaderClient::sessionID() calling WebPage::sessionID() without
checking the nullity of WebPage::m_page which can be null. Added a null check.

Because passing a wrong session to RemoveStorageAccessForFrame could result in a leak, this patch
also replaces m_hasFrameSpecificStorageAccess boolean with an optioanl struct which stores
session ID, frame ID, and page ID even after WebCore::Frame or WebCore::Page had been cleared
or before WebFrameLoaderClient::m_frame is set.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::sessionID const):
(WebKit::WebFrameLoaderClient::setHasFrameSpecificStorageAccess):
(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebFrame.h:

(WebKit::WebFrame::frameLoaderClient const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestStorageAccess):

5:46 PM Changeset in webkit [249747] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] 32bit bitwide operation with all-one (-1) is wrong in B3
https://bugs.webkit.org/show_bug.cgi?id=201634

Reviewed by Mark Lam and Robin Morisset.

This patch includes two things. One is fixing 32bit bitwise operation with allOne constants. Another is fixing the existing bug in BitAnd strength reduction.

  1. 32bit bitwise operation with allOne constants

Accidentally, the B3::Value is ConstInt32(-1), value->isInt(std::numeric_limits<uint32_t>::max()) returns false!
For example, in BitAnd strength reduction,

1034 Turn this: BitAnd(value, all-ones)
1035
Into this: value.
1036 if ((m_value->type() == Int64 && m_value->child(1)->isInt(std::numeric_limits<uint64_t>::max()))

1037
(m_value->type() == Int32 && m_value->child(1)->isInt(std::numeric_limits<uint32_t>::max()))) {

1038 replaceWithIdentity(m_value->child(0));
1039 break;
1040 }

We use m_value->child(1)->isInt(std::numeric_limits<uint32_t>::max()). However, Value::isInt is,

262 inline bool Value::isInt(int64_t value) const
263 {
264 return hasInt() && asInt() == value;
265 }

So, UINT32_MAX is expanded to int64_t, but it is not -1 since UINT32_MAX can be representable in int64_t. And Value::asInt implementation is,

257 inline int64_t Value::asInt() const
258 {
259 return hasInt32() ? asInt32() : asInt64();
260 }

So, we perform static_cast<int64_t>(-1) == static_cast<int64_t>(UINT32_MAX). This is false, but this comparison is not what we want!
We should use isInt32 and isInt64 for bit patterns (like, operands for Bitwise opcodes).

  1. BitAnd and BitOr strength reduction bug

We also fix the following optimization.

Turn this: BitAnd(Op(value, constant1), constant2)
where !(constant1 & constant2)
and Op is BitOr or BitXor
into this: BitAnd(value, constant2)

Since we stop further optimization when we match if (m_value->child(1)->hasInt()), the following optimization is never taken.

Turn this: BitAnd(BitXor(x, allOnes), c)
Into this: BitXor(BitOr(x, ~c), allOnes)

And we also found that this not-used optimization has a bug not inserting a newly produced constant B3::Value. This patch also fixes it.

For both, this patch adds tests. And (2) fix can be ensured that the testb3 does not crash with validate-graph option.

  • b3/B3LowerToAir.cpp:
  • b3/B3ReduceStrength.cpp:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testBitAndNotNot32):
(testBitAndNotImm):
(testBitAndNotImm32):
(testBitOrAndAndArgs32):
(testBitOrAndSameArgs32):
(testBitOrNotNot32):
(testBitOrNotImm32):
(addBitTests):

  • b3/testb3_3.cpp:

(testBitXorAndAndArgs32):
(testBitXorAndSameArgs32):

5:35 PM Changeset in webkit [249746] by Chris Dumez
  • 7 edits
    2 adds in trunk

Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/cookies/private-cookie-storage.html
https://bugs.webkit.org/show_bug.cgi?id=201648

Reviewed by Alex Christensen.

Use testRunner.setShouldSwapToEphemeralSessionOnNextNavigation() / setShouldSwapToDefaultSessionOnNextNavigation() to
truly switch session on WebKit2 instead of using the testRunner.setPrivateBrowsingEnabled_DEPRECATED() hack.

  • http/tests/cookies/private-cookie-storage-expected.txt:
  • http/tests/cookies/private-cookie-storage.html:
  • http/tests/cookies/resources/cookies-test-pre.js:

(testCookies):

5:30 PM Changeset in webkit [249745] by Alan Coon
  • 1 copy in tags/Safari-608.3.2

Tag Safari-608.3.2.

5:26 PM Changeset in webkit [249744] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/registration-mime-types.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=201190

Unreviewed test gardening.

  • platform/ios/TestExpectations:
5:17 PM Changeset in webkit [249743] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

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

Discovering existing bug (Requested by yusukesuzuki on
#webkit).

Reverted changeset:

"[JSC] 32bit bitwide operation with all-one (-1) is wrong in
B3"
https://bugs.webkit.org/show_bug.cgi?id=201634
https://trac.webkit.org/changeset/249721

Patch by Commit Queue <commit-queue@webkit.org> on 2019-09-10

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

Tag Safari-608.2.11.1.4.

5:02 PM Changeset in webkit [249741] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video.https.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=201665

Unreviewed test gardening.

This test was unskipped as part of r249716, but it is still frequently failing.

4:18 PM Changeset in webkit [249740] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] CodeBlock::calleeSaveRegisters should not see half-baked JITData
https://bugs.webkit.org/show_bug.cgi?id=201664
<rdar://problem/52126927>

Reviewed by Tadeu Zagallo.

We are hitting the crash accessing invalid-pointer as CodeBlock::calleeSaveRegisters result.
This is because concurrent Baseline JIT compiler can access m_jitData without taking a lock through CodeBlock::calleeSaveRegisters.
Since m_jitData can be initialized in the main thread while calling CodeBlock::calleeSaveRegisters from concurrent Baseline JIT compiler thread,
we can see half-baked JITData structure which holds garbage pointers.

But we do not want to make CodeBlock::calleeSaveRegisters() call with CodeBlock::m_lock due to several reasons.

  1. This function is very primitive one and it is called from various AssemblyHelpers functions and other code-generation functions. Some of these functions are called while taking this exact same lock, so dead-lock can happen.
  2. JITData::m_calleeSaveRegisters is filled only for DFG and FTL CodeBlock. And DFG and FTL code accesses these field after initializing properly. For Baseline JIT compiler case, only thing we should do is that JITData should say m_calleeSaveRegisters is nullptr and it won't be filled for this CodeBlock.

Instead of guarding CodeBlock::calleeSaveRegisters() function with CodeBlock::m_lock, this patch inserts WTF::storeStoreFence when filling m_jitData. This ensures that
JITData::m_calleeSaveRegisters is initialized with nullptr when this JITData pointer is exposed to concurrent Baseline JIT compiler thread.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::ensureJITDataSlow):

4:12 PM Changeset in webkit [249739] by beidson@apple.com
  • 26 edits
    3 adds in trunk

Add SPI to save a PDF from the contents of a WKWebView.
<rdar://problem/48955900> and https://bugs.webkit.org/show_bug.cgi?id=195765

Reviewed by Tim Horton.

Source/WebCore:

Covered by API tests.

  • page/FrameView.cpp:

(WebCore::FrameView::paintContents): Don't paint the debug color outside of the FrameRect.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::setURLForRect):

  • rendering/PaintPhase.h: Add "AnnotateLinks" option to always gather and annotation links.
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::hasOutlineAnnotation const): Also return true when the PaintOptions include "AnnotateLinks"

Source/WebKit:

This is refactoring a combination of "snapshotFirstPage" PDF printing code and the
"takeSnapshot" API code to capture the on-screen visible page to a PDF at full fidelity.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::drawToPDF):
(WebKit::WebPageProxy::drawToPDFCallback):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _wk_pageCountForPrintFormatter:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::drawToPDFCallback): Move to cross platform WebPageProxy.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::pdfSnapshotAtSize):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::pdfSnapshotAtSize): Instead of assuming 1 page capped at 200 inches,

paginate every 200 inches.

(WebKit::WebPage::drawToPDF):
(WebKit::paintSnapshotAtSize): Deleted.
(WebKit::WebPage::pdfSnapshotAtSize): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

-Add an "Export to PDF..." menu option to MiniBrowser.
-Add API tests for the API itself.

  • MiniBrowser/MiniBrowser.entitlements:
  • MiniBrowser/mac/BrowserWindowController.h:
  • MiniBrowser/mac/BrowserWindowController.m:

(-[BrowserWindowController forceRepaint:]):
(-[BrowserWindowController saveAsPDF:]):

  • MiniBrowser/mac/MainMenu.xib:
  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController validateMenuItem:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController saveAsPDF:]):

  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/PDFSnapshot.mm: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestPDFDocument.h: Added.
  • TestWebKitAPI/cocoa/TestPDFDocument.mm: Added.

(TestWebKitAPI::toCGRect):
(TestWebKitAPI::toPlatformPoint):
(TestWebKitAPI::TestPDFAnnotation::TestPDFAnnotation):
(TestWebKitAPI::TestPDFAnnotation::isLink const):
(TestWebKitAPI::TestPDFAnnotation::bounds const):
(TestWebKitAPI::TestPDFAnnotation::linkURL const):
(TestWebKitAPI::TestPDFPage::create):
(TestWebKitAPI::TestPDFPage::TestPDFPage):
(TestWebKitAPI::TestPDFPage::annotations):
(TestWebKitAPI::TestPDFPage::characterCount const):
(TestWebKitAPI::TestPDFPage::text const):
(TestWebKitAPI::TestPDFPage::rectForCharacterAtIndex const):
(TestWebKitAPI::TestPDFPage::characterIndexAtPoint const):
(TestWebKitAPI::TestPDFPage::bounds const):
(TestWebKitAPI::TestPDFPage::colorAtPoint const):
(TestWebKitAPI::TestPDFDocument::createFromData):
(TestWebKitAPI::TestPDFDocument::TestPDFDocument):
(TestWebKitAPI::TestPDFDocument::pageCount const):
(TestWebKitAPI::TestPDFDocument::page):

3:48 PM Changeset in webkit [249738] by Keith Rollin
  • 2 edits in trunk/Tools

Remove SSL-based TLSDeprecation.mm contents
https://bugs.webkit.org/show_bug.cgi?id=201657
<rdar://problem/55237678>

Reviewed by Alex Christensen.

This file does not build on watchOS due to references to SSL
facilities. Conditionalize out the contents on HAVE_SSL.

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
3:28 PM Changeset in webkit [249737] by jiewen_tan@apple.com
  • 5 edits in trunk

REGRESSION: [ Catalina WK2 ] http/wpt/webauthn/public-key-credential-create-success-u2f.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=201620
<rdar://problem/51524958>

Reviewed by Alex Christensen.

Source/WebCore:

Covered by existing tests.

  • Modules/webauthn/fido/U2fResponseConverter.cpp:

(fido::WebCore::createAttestedCredentialDataFromU2fRegisterResponse):
Change the way how the aaguid is initialized to see if that fixes the issue.

LayoutTests:

  • http/wpt/webauthn/public-key-credential-create-success-u2f.https.html:

Remove the timeout value given those tests should never time out.

  • platform/mac-wk2/TestExpectations:

Change the test expectation to Pass.

3:07 PM Changeset in webkit [249736] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] ResultType implementation is wrong for bit ops, and ends up making ArithDiv take the DFG Int32 fast path even if Baseline constantly produces Double result
https://bugs.webkit.org/show_bug.cgi?id=198253

Reviewed by Mark Lam.

ResultType of bitwise operation needs to include TypeMaybeNumber. TypeInt32 is something like a flag indicating the number looks like a int32.
When it is specified, TypeMaybeNumber must exist too. This issue compiles op_div in JetStream2/async-fs slow-path. And eventually DFG first mis-compiles
it with Int32 ArithDiv while that div always produces double. And unnecessary OSR exit happens.

In this patch, we add TypeMaybeNumber to bigIntOrInt32Type correctly.

  • parser/ResultType.h:

(JSC::ResultType::bigIntOrInt32Type):

3:03 PM Changeset in webkit [249735] by Ryan Haddad
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, rebaseline imported/w3c/web-platform-tests/css/cssom/interfaces.html after r249672.

Unreviewed test gardening.

  • web-platform-tests/css/cssom/interfaces-expected.txt:
2:59 PM Changeset in webkit [249734] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Attempt to make this test not flakey.
https://bugs.webkit.org/show_bug.cgi?id=201482

  • legacy-animation-engine/compositing/transitions/add-remove-transition.html:
2:43 PM Changeset in webkit [249733] by Chris Dumez
  • 4 edits in trunk

Add missing origin check for Service-Worker-Allowed header
https://bugs.webkit.org/show_bug.cgi?id=201653

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/service-workers/service-worker/Service-Worker-Allowed-header.https-expected.txt:

Source/WebCore:

Add missing origin check for Service-Worker-Allowed header:

  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::didReceiveResponse):

1:37 PM Changeset in webkit [249732] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

REGRESSION (r249460): LayoutTests/webgpu/viewport-scissor-rect-triangle-strip.html is Failing
https://bugs.webkit.org/show_bug.cgi?id=201478

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-10
Reviewed by Simon Fraser.

-- Revert r249460 which changed drawGreenAndBlueCheckerboardInSoftware().
-- Remove the orientation bit from webgpu/resources/blue-checkered.png

so drawing it is not affected by r249364.

  • webgpu/js/webgpu-functions.js:

(drawGreenAndBlueCheckerboardInSoftware):

  • webgpu/resources/blue-checkered.png:
1:14 PM Changeset in webkit [249731] by Chris Dumez
  • 57 edits
    93 adds in trunk/LayoutTests/imported/w3c

Re-sync web-platform-tests IDL interfaces from upstream
https://bugs.webkit.org/show_bug.cgi?id=201630

Reviewed by Alex Christensen.

Re-sync web-platform-tests IDL interfaces from upstream 603a271948a7162.

  • web-platform-tests/interfaces/BackgroundSync.idl: Added.
  • web-platform-tests/interfaces/CSP.idl: Added.
  • web-platform-tests/interfaces/CSS-Parser-API.idl: Added.
  • web-platform-tests/interfaces/DOM-Parsing.idl:
  • web-platform-tests/interfaces/FileAPI.idl:
  • web-platform-tests/interfaces/IndexedDB.idl:
  • web-platform-tests/interfaces/InputDeviceCapabilities.idl: Added.
  • web-platform-tests/interfaces/META.yml: Added.
  • web-platform-tests/interfaces/README.md: Added.
  • web-platform-tests/interfaces/SRI.idl: Added.
  • web-platform-tests/interfaces/WebCryptoAPI.idl:
  • web-platform-tests/interfaces/accelerometer.idl:
  • web-platform-tests/interfaces/ambient-light.idl:
  • web-platform-tests/interfaces/animation-worklet.idl: Added.
  • web-platform-tests/interfaces/appmanifest.idl: Added.
  • web-platform-tests/interfaces/audio-output.idl: Added.
  • web-platform-tests/interfaces/background-fetch.idl:
  • web-platform-tests/interfaces/battery-status.idl: Added.
  • web-platform-tests/interfaces/beacon.idl: Added.
  • web-platform-tests/interfaces/clipboard-apis.idl:
  • web-platform-tests/interfaces/compat.idl: Added.
  • web-platform-tests/interfaces/console.idl:
  • web-platform-tests/interfaces/cookie-store.idl:
  • web-platform-tests/interfaces/cors-rfc1918.idl: Added.
  • web-platform-tests/interfaces/csp-embedded-enforcement.idl: Added.
  • web-platform-tests/interfaces/css-animations.idl: Added.
  • web-platform-tests/interfaces/css-conditional.idl: Added.
  • web-platform-tests/interfaces/css-counter-styles.idl: Added.
  • web-platform-tests/interfaces/css-device-adapt.idl: Added.
  • web-platform-tests/interfaces/css-font-loading.idl: Added.
  • web-platform-tests/interfaces/css-fonts.idl: Added.
  • web-platform-tests/interfaces/css-images.idl: Added.
  • web-platform-tests/interfaces/css-layout-api.idl: Added.
  • web-platform-tests/interfaces/css-masking.idl: Added.
  • web-platform-tests/interfaces/css-paint-api.idl: Added.
  • web-platform-tests/interfaces/css-regions.idl: Added.
  • web-platform-tests/interfaces/css-transitions.idl: Added.
  • web-platform-tests/interfaces/css-typed-om.idl:
  • web-platform-tests/interfaces/element-timing.idl: Added.
  • web-platform-tests/interfaces/encoding.idl:
  • web-platform-tests/interfaces/encrypted-media.idl:
  • web-platform-tests/interfaces/entries-api.idl:
  • web-platform-tests/interfaces/event-timing.idl: Added.
  • web-platform-tests/interfaces/feature-policy.idl: Added.
  • web-platform-tests/interfaces/fetch.idl:
  • web-platform-tests/interfaces/filter-effects.idl: Added.
  • web-platform-tests/interfaces/font-metrics-api.idl: Added.
  • web-platform-tests/interfaces/fullscreen.idl:
  • web-platform-tests/interfaces/gamepad.idl:
  • web-platform-tests/interfaces/generic-sensor.idl: Added.
  • web-platform-tests/interfaces/geolocation-API.idl: Added.
  • web-platform-tests/interfaces/geolocation-sensor.idl:
  • web-platform-tests/interfaces/geometry.idl:
  • web-platform-tests/interfaces/gyroscope.idl:
  • web-platform-tests/interfaces/hr-time.idl:
  • web-platform-tests/interfaces/html-media-capture.idl: Added.
  • web-platform-tests/interfaces/image-capture.idl: Added.
  • web-platform-tests/interfaces/input-events.idl: Added.
  • web-platform-tests/interfaces/intersection-observer.idl:
  • web-platform-tests/interfaces/keyboard-lock.idl: Added.
  • web-platform-tests/interfaces/keyboard-map.idl: Added.
  • web-platform-tests/interfaces/largest-contentful-paint.idl: Added.
  • web-platform-tests/interfaces/layout-instability.idl: Added.
  • web-platform-tests/interfaces/longtasks.idl: Added.
  • web-platform-tests/interfaces/magnetometer.idl:
  • web-platform-tests/interfaces/media-capabilities.idl: Added.
  • web-platform-tests/interfaces/media-playback-quality.idl: Added.
  • web-platform-tests/interfaces/media-source.idl: Added.
  • web-platform-tests/interfaces/mediacapture-depth.idl: Added.
  • web-platform-tests/interfaces/mediacapture-fromelement.idl: Added.
  • web-platform-tests/interfaces/mediasession.idl: Added.
  • web-platform-tests/interfaces/mediastream-recording.idl: Added.
  • web-platform-tests/interfaces/mst-content-hint.idl: Added.
  • web-platform-tests/interfaces/navigation-timing.idl: Added.
  • web-platform-tests/interfaces/netinfo.idl: Added.
  • web-platform-tests/interfaces/notifications.idl: Added.
  • web-platform-tests/interfaces/orientation-event.idl: Added.
  • web-platform-tests/interfaces/orientation-sensor.idl:
  • web-platform-tests/interfaces/page-visibility.idl: Added.
  • web-platform-tests/interfaces/paint-timing.idl: Added.
  • web-platform-tests/interfaces/payment-handler.idl:
  • web-platform-tests/interfaces/payment-method-basic-card.idl: Added.
  • web-platform-tests/interfaces/payment-request.idl:
  • web-platform-tests/interfaces/permissions.idl: Added.
  • web-platform-tests/interfaces/picture-in-picture.idl: Added.
  • web-platform-tests/interfaces/pointerevents-extension.idl: Added.
  • web-platform-tests/interfaces/pointerevents.idl: Added.
  • web-platform-tests/interfaces/pointerlock.idl: Added.
  • web-platform-tests/interfaces/presentation-api.idl: Added.
  • web-platform-tests/interfaces/proximity.idl:
  • web-platform-tests/interfaces/push-api.idl: Added.
  • web-platform-tests/interfaces/remote-playback.idl: Added.
  • web-platform-tests/interfaces/reporting.idl: Added.
  • web-platform-tests/interfaces/requestidlecallback.idl: Added.
  • web-platform-tests/interfaces/resize-observer.idl: Added.
  • web-platform-tests/interfaces/screen-capture.idl: Added.
  • web-platform-tests/interfaces/screen-orientation.idl:
  • web-platform-tests/interfaces/scroll-animations.idl: Added.
  • web-platform-tests/interfaces/secure-contexts.idl: Added.
  • web-platform-tests/interfaces/selection-api.idl:
  • web-platform-tests/interfaces/server-timing.idl: Added.
  • web-platform-tests/interfaces/shape-detection-api.idl: Added.
  • web-platform-tests/interfaces/speech-api.idl: Added.
  • web-platform-tests/interfaces/storage.idl:
  • web-platform-tests/interfaces/touch-events.idl: Added.
  • web-platform-tests/interfaces/trusted-types.tentative.idl: Added.
  • web-platform-tests/interfaces/uievents.idl:
  • web-platform-tests/interfaces/url.idl:
  • web-platform-tests/interfaces/user-timing.idl: Added.
  • web-platform-tests/interfaces/vibration.idl: Added.
  • web-platform-tests/interfaces/wai-aria.idl: Added.
  • web-platform-tests/interfaces/wake-lock.idl:
  • web-platform-tests/interfaces/wasm-js-api.idl: Added.
  • web-platform-tests/interfaces/wasm-web-api.idl: Added.
  • web-platform-tests/interfaces/web-animations.idl: Added.
  • web-platform-tests/interfaces/web-bluetooth.idl: Added.
  • web-platform-tests/interfaces/web-nfc.idl:
  • web-platform-tests/interfaces/web-share.idl:
  • web-platform-tests/interfaces/webaudio.idl: Added.
  • web-platform-tests/interfaces/webauthn.idl:
  • web-platform-tests/interfaces/webdriver.idl: Added.
  • web-platform-tests/interfaces/webgl1.idl: Added.
  • web-platform-tests/interfaces/webgl2.idl: Added.
  • web-platform-tests/interfaces/webidl.idl:
  • web-platform-tests/interfaces/webmidi.idl: Added.
  • web-platform-tests/interfaces/webrtc-dscp.idl: Added.
  • web-platform-tests/interfaces/webrtc-stats.idl: Added.
  • web-platform-tests/interfaces/webusb.idl:
  • web-platform-tests/interfaces/webvtt.idl: Added.
  • web-platform-tests/interfaces/webxr.idl:
  • web-platform-tests/interfaces/worklets.idl: Added.
  • web-platform-tests/interfaces/xhr.idl:
  • web-platform-tests/interfaces/xslt.tentative.idl: Added.
12:57 PM Changeset in webkit [249730] by commit-queue@webkit.org
  • 1 edit
    3 adds in trunk/LayoutTests

SMIL animations of SVG <view> element have no effect
https://bugs.webkit.org/show_bug.cgi?id=201536

Patch by Nikolas Zimmermann <zimmermann@kde.org> on 2019-09-10
Reviewed by Rob Buis.

Added a new layout test to verify that navigating to different anchors within the same
external SVG does not cause reloads. Instead scrollToAnchor() is used which causes an
in-place navigation in the same document. The new test verifies that the SVGSVGElement
is preserved when navigating between anchors, which indicates that no new document was
created. Verify that the SVGViewSpec API works as intended, across navigations.

  • svg/dom/SVGViewSpec-multiple-views-expected.txt: Added.
  • svg/dom/SVGViewSpec-multiple-views.html: Added.
  • svg/dom/resources/multiple-view-elements.svg: Added.
12:42 PM Changeset in webkit [249729] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

IndexedDB: cache prepared SQLiteStatement in SQLiteIDBCursor
https://bugs.webkit.org/show_bug.cgi?id=201548

Reviewed by Alex Christensen.

This should be a performance improvement as we don't compile the same SQLiteStatement everytime it is used.

No new tests, no behavior change.

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:
12:07 PM Changeset in webkit [249728] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, re-skip service worker test that was unskipped in r249716.

This test is still flaky.

12:03 PM Changeset in webkit [249727] by Alan Coon
  • 1 edit in branches/safari-608-branch/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp

Unreviewed build fix. rdar://problem/55198064

12:01 PM Changeset in webkit [249726] by Alan Coon
  • 12 edits in branches/safari-608.2.11.1-branch/Source/bmalloc

Cherry-pick r249670. rdar://problem/55225974

Revert to pre-r243144 scavenging behavior for macOS
https://bugs.webkit.org/show_bug.cgi?id=201555

Reviewed by Saam Barati.

The change in r243144 regressed internal power metrics for some Mac models.

  • bmalloc/Heap.cpp: (bmalloc::Heap::scavenge): (bmalloc::Heap::scavengeToHighWatermark): (bmalloc::Heap::allocateSmallChunk): (bmalloc::Heap::allocateSmallPage): (bmalloc::Heap::allocateLarge):
  • bmalloc/Heap.h:
  • bmalloc/IsoDirectory.h:
  • bmalloc/IsoDirectoryInlines.h: (bmalloc::passedNumPages>::takeFirstEligible): (bmalloc::passedNumPages>::scavenge): (bmalloc::passedNumPages>::scavengeToHighWatermark):
  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h: (bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):
  • bmalloc/LargeMap.cpp: (bmalloc::LargeMap::add):
  • bmalloc/LargeRange.h: (bmalloc::LargeRange::LargeRange): (bmalloc::merge):
  • bmalloc/Scavenger.cpp: (bmalloc::Scavenger::Scavenger): (bmalloc::Scavenger::timeSinceLastPartialScavenge): (bmalloc::Scavenger::scavenge): (bmalloc::Scavenger::partialScavenge): (bmalloc::Scavenger::threadRunLoop):
  • bmalloc/Scavenger.h:
  • bmalloc/SmallPage.h:

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

11:43 AM Changeset in webkit [249725] by Chris Dumez
  • 3 edits
    93 deletes in trunk/LayoutTests

Unreviewed, rolling out r249724.

Patch included a lot more changes than intended

Reverted changeset:

"Unreviewed, re-skip service worker test that was unskipped in
r249716."
https://trac.webkit.org/changeset/249724

11:18 AM Changeset in webkit [249724] by Chris Dumez
  • 2 edits
    93 adds in trunk/LayoutTests

Unreviewed, re-skip service worker test that was unskipped in r249716.

This test is still flaky.

11:14 AM Changeset in webkit [249723] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Hangs on Swiss.com due to the web process being blocked on StorageAreaMap::LoadValuesIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=201644
<rdar://problem/54942761>

Reviewed by Geoffrey Garen.

Mark the StorageManagerSet::GetValues sync IPC from the WebContent process to the Network
process with a UnboundedSynchronousIPCScope so that it will process critical sync IPC
from the UIProcess (such as WebPage::GetPositionInformation) while waiting for a reply.

  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::loadValuesIfNeeded):

10:41 AM Changeset in webkit [249722] by youenn@apple.com
  • 9 edits in trunk/Source/WebCore

RTCPeerConnection can only be instantiated in documents
https://bugs.webkit.org/show_bug.cgi?id=201639

Reviewed by Alex Christensen.

Make it clear that RTCDataChannel expects Document since peer connections
and data channels can only be instantiated in document environments.
We keep one downcast in RTCPeerConnection constructor due to a limitation
in binding generator for JS built-ins.
No change of behavior.

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):

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

(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::certificatesFromConfiguration):
(WebCore::RTCPeerConnection::createDataChannel):
(WebCore::RTCPeerConnection::document):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::channelEvent):

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

(WebCore::LibWebRTCMediaEndpoint::OnDataChannel):

10:07 AM Changeset in webkit [249721] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] 32bit bitwide operation with all-one (-1) is wrong in B3
https://bugs.webkit.org/show_bug.cgi?id=201634

Reviewed by Mark Lam.

Accidentally, the B3::Value is ConstInt32(-1), value->isInt(std::numeric_limits<uint32_t>::max()) returns false!
For example, in BitAnd strength reduction,

1034 Turn this: BitAnd(value, all-ones)
1035
Into this: value.
1036 if ((m_value->type() == Int64 && m_value->child(1)->isInt(std::numeric_limits<uint64_t>::max()))

1037
(m_value->type() == Int32 && m_value->child(1)->isInt(std::numeric_limits<uint32_t>::max()))) {

1038 replaceWithIdentity(m_value->child(0));
1039 break;
1040 }

We use m_value->child(1)->isInt(std::numeric_limits<uint32_t>::max()). However, Value::isInt is,

262 inline bool Value::isInt(int64_t value) const
263 {
264 return hasInt() && asInt() == value;
265 }

So, UINT32_MAX is expanded to int64_t, but it is not -1 since UINT32_MAX can be representable in int64_t. And Value::asInt implementation is,

257 inline int64_t Value::asInt() const
258 {
259 return hasInt32() ? asInt32() : asInt64();
260 }

So, we perform static_cast<int64_t>(-1) == static_cast<int64_t>(UINT32_MAX). This is false, but this comparison is not what we want!
We should use isInt32 and isInt64 for bit patterns (like, operands for Bitwise opcodes).

We also fix the following optimization.

Turn this: BitAnd(Op(value, constant1), constant2)
where !(constant1 & constant2)
and Op is BitOr or BitXor
into this: BitAnd(value, constant2)

Since we stop further optimization when we match if (m_value->child(1)->hasInt()), the following optimization is never taken.

Turn this: BitAnd(BitXor(x, allOnes), c)
Into this: BitXor(BitOr(x, ~c), allOnes)

We add 32bit version of B3 tests for these optimizations.

  • b3/B3LowerToAir.cpp:
  • b3/B3ReduceStrength.cpp:
  • b3/testb3.h:
  • b3/testb3_2.cpp:

(testBitAndNotNot32):
(testBitAndNotImm):
(testBitAndNotImm32):
(testBitOrAndAndArgs32):
(testBitOrAndSameArgs32):
(testBitOrNotNot32):
(testBitOrNotImm32):
(addBitTests):

  • b3/testb3_3.cpp:

(testBitXorAndAndArgs32):
(testBitXorAndSameArgs32):

9:56 AM Changeset in webkit [249720] by david_quesada@apple.com
  • 2 edits in trunk/Source/WebKit

Remove a leftover reference to the StorageProcess
https://bugs.webkit.org/show_bug.cgi?id=192759

Reviewed by Alex Christensen.

  • WebKit.xcodeproj/project.pbxproj:

Remove com.apple.WebKit.Storage.sb as an input file to the "Copy iOS Sandbox Profiles
for Manual Sandboxing" build phase. The file no longer exists.

9:42 AM Changeset in webkit [249719] by Chris Dumez
  • 143 edits
    23 copies
    5 moves
    251 adds
    14 deletes in trunk/LayoutTests

Re-sync workers web platform tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=201629

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Re-sync workers web platform tests from upstream 603a271948a7162.

  • web-platform-tests/workers/META.yml: Added.
  • web-platform-tests/workers/OWNERS: Removed.
  • web-platform-tests/workers/README.md:
  • web-platform-tests/workers/SharedWorker-constructor-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-constructor.html: Added.
  • web-platform-tests/workers/SharedWorker-detach-frame-in-error-event-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-detach-frame-in-error-event.html: Added.
  • web-platform-tests/workers/SharedWorker-exception-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-exception-propagation-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-exception-propagation.html: Added.
  • web-platform-tests/workers/SharedWorker-exception.html: Added.
  • web-platform-tests/workers/SharedWorker-script-error-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-script-error.html: Added.
  • web-platform-tests/workers/SharedWorker-simple-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-simple.html: Added.
  • web-platform-tests/workers/SharedWorkerPerformanceNow-expected.txt: Added.
  • web-platform-tests/workers/SharedWorkerPerformanceNow.html: Added.
  • web-platform-tests/workers/SharedWorker_dataUrl-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker_dataUrl.html: Added.
  • web-platform-tests/workers/Worker-call.worker-expected.txt: Added.
  • web-platform-tests/workers/Worker-call.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/Worker-call.worker.js: Added.

(test):

  • web-platform-tests/workers/Worker-messageport-expected.txt: Added.
  • web-platform-tests/workers/Worker-messageport.html: Added.
  • web-platform-tests/workers/Worker-multi-port-expected.txt: Added.
  • web-platform-tests/workers/Worker-multi-port.html: Added.
  • web-platform-tests/workers/Worker-nested-importScripts-error-expected.txt: Added.
  • web-platform-tests/workers/Worker-nested-importScripts-error.html: Added.
  • web-platform-tests/workers/Worker-simultaneous-errors-expected.txt: Added.
  • web-platform-tests/workers/Worker-simultaneous-errors.html: Added.
  • web-platform-tests/workers/Worker-structure-message-expected.txt: Added.
  • web-platform-tests/workers/Worker-structure-message.html: Added.
  • web-platform-tests/workers/Worker-terminate-forever-expected.txt: Added.
  • web-platform-tests/workers/Worker-terminate-forever.html: Added.
  • web-platform-tests/workers/Worker-termination-with-port-messages-expected.txt: Added.
  • web-platform-tests/workers/Worker-termination-with-port-messages.html: Added.
  • web-platform-tests/workers/Worker-timeout-cancel-order-expected.txt: Added.
  • web-platform-tests/workers/Worker-timeout-cancel-order.html: Added.
  • web-platform-tests/workers/Worker-timeout-decreasing-order-expected.txt: Added.
  • web-platform-tests/workers/Worker-timeout-decreasing-order.html: Added.
  • web-platform-tests/workers/Worker-timeout-increasing-order-expected.txt: Added.
  • web-platform-tests/workers/Worker-timeout-increasing-order.html: Added.
  • web-platform-tests/workers/WorkerGlobalScope-close-expected.txt: Added.
  • web-platform-tests/workers/WorkerGlobalScope-close.html: Added.
  • web-platform-tests/workers/WorkerGlobalScope_close-expected.txt: Removed.
  • web-platform-tests/workers/WorkerGlobalScope_close.htm: Removed.
  • web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker-expected.txt: Added.
  • web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker.js: Added.
  • web-platform-tests/workers/WorkerLocation-origin.sub.window.js: Removed.
  • web-platform-tests/workers/WorkerPerformanceNow-expected.txt: Added.
  • web-platform-tests/workers/WorkerPerformanceNow.html: Added.
  • web-platform-tests/workers/Worker_cross_origin_security_err.htm:
  • web-platform-tests/workers/baseurl/alpha/import-in-moduleworker-expected.txt: Added.
  • web-platform-tests/workers/baseurl/alpha/import-in-moduleworker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/importScripts.html.
  • web-platform-tests/workers/baseurl/alpha/importScripts-in-sharedworker-expected.txt: Added.
  • web-platform-tests/workers/baseurl/alpha/importScripts-in-sharedworker.html: Added.
  • web-platform-tests/workers/baseurl/alpha/importScripts-in-worker-expected.txt: Added.
  • web-platform-tests/workers/baseurl/alpha/importScripts-in-worker.html: Added.
  • web-platform-tests/workers/baseurl/alpha/sharedworker-in-worker-expected.txt: Added.
  • web-platform-tests/workers/baseurl/alpha/sharedworker-in-worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/sharedworker.html.
  • web-platform-tests/workers/baseurl/alpha/w3c-import.log:
  • web-platform-tests/workers/baseurl/alpha/worker-in-worker-expected.txt: Added.
  • web-platform-tests/workers/baseurl/alpha/worker-in-worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/worker.html.
  • web-platform-tests/workers/baseurl/alpha/xhr-in-moduleworker-expected.txt: Added.
  • web-platform-tests/workers/baseurl/alpha/xhr-in-moduleworker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/xhr.html.
  • web-platform-tests/workers/baseurl/alpha/xhr-in-sharedworker-expected.txt: Added.
  • web-platform-tests/workers/baseurl/alpha/xhr-in-sharedworker.html: Added.
  • web-platform-tests/workers/baseurl/alpha/xhr-in-worker-expected.txt: Added.
  • web-platform-tests/workers/baseurl/alpha/xhr-in-worker.html: Added.
  • web-platform-tests/workers/baseurl/beta/import.py: Added.

(main):

  • web-platform-tests/workers/baseurl/beta/script.js:
  • web-platform-tests/workers/baseurl/beta/w3c-import.log:
  • web-platform-tests/workers/baseurl/beta/xhr-worker.py: Added.

(main):

  • web-platform-tests/workers/baseurl/gamma/import.js: Added.
  • web-platform-tests/workers/baseurl/gamma/importScripts.js:

(test):

  • web-platform-tests/workers/baseurl/gamma/script-module.js: Added.
  • web-platform-tests/workers/baseurl/gamma/script.js:
  • web-platform-tests/workers/baseurl/gamma/w3c-import.log:
  • web-platform-tests/workers/baseurl/gamma/xhr-worker.js: Added.
  • web-platform-tests/workers/constructors/SharedWorker/connect-event.html:
  • web-platform-tests/workers/constructors/SharedWorker/connect-event.js: Added.

(onconnect):

  • web-platform-tests/workers/constructors/SharedWorker/dummy-name.html:
  • web-platform-tests/workers/constructors/SharedWorker/dummy-shared-worker.html:
  • web-platform-tests/workers/constructors/SharedWorker/dummy-shared-worker.js: Added.
  • web-platform-tests/workers/constructors/SharedWorker/empty-name.html:
  • web-platform-tests/workers/constructors/SharedWorker/empty.js: Added.
  • web-platform-tests/workers/constructors/SharedWorker/global-members.html:
  • web-platform-tests/workers/constructors/SharedWorker/global-members.js: Added.

(onconnect):

  • web-platform-tests/workers/constructors/SharedWorker/interface-objects.html:
  • web-platform-tests/workers/constructors/SharedWorker/interface-objects.js: Added.

(handleCall):
(onconnect):

  • web-platform-tests/workers/constructors/SharedWorker/name.html:
  • web-platform-tests/workers/constructors/SharedWorker/name.js: Added.

(onconnect):

  • web-platform-tests/workers/constructors/SharedWorker/port-onmessage.html:
  • web-platform-tests/workers/constructors/SharedWorker/port-onmessage.js: Added.

(onconnect):

  • web-platform-tests/workers/constructors/SharedWorker/port-properties.html:
  • web-platform-tests/workers/constructors/SharedWorker/port-readonly.html:
  • web-platform-tests/workers/constructors/SharedWorker/same-origin.html:
  • web-platform-tests/workers/constructors/SharedWorker/unexpected-global-properties.html:
  • web-platform-tests/workers/constructors/SharedWorker/unexpected-global-properties.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/constructors/SharedWorker/unexpected-global-properties.html.

(onconnect):

  • web-platform-tests/workers/constructors/SharedWorker/w3c-import.log:
  • web-platform-tests/workers/constructors/Worker/AbstractWorker.onerror-expected.txt:
  • web-platform-tests/workers/constructors/Worker/AbstractWorker.onerror.html:
  • web-platform-tests/workers/constructors/Worker/AbstractWorker.onerror.js: Added.
  • web-platform-tests/workers/constructors/Worker/Worker-constructor-expected.txt: Added.
  • web-platform-tests/workers/constructors/Worker/Worker-constructor.html: Added.
  • web-platform-tests/workers/constructors/Worker/no-arguments-ctor-expected.txt: Removed.
  • web-platform-tests/workers/constructors/Worker/no-arguments-ctor.html: Removed.
  • web-platform-tests/workers/constructors/Worker/resolve-empty-string-expected.txt: Removed.
  • web-platform-tests/workers/constructors/Worker/resolve-empty-string.html: Removed.
  • web-platform-tests/workers/constructors/Worker/same-origin.html:
  • web-platform-tests/workers/constructors/Worker/sample_worker/w3c-import.log:
  • web-platform-tests/workers/constructors/Worker/terminate.html:
  • web-platform-tests/workers/constructors/Worker/terminate.js: Added.

(f):

  • web-platform-tests/workers/constructors/Worker/unresolvable-url-expected.txt: Removed.
  • web-platform-tests/workers/constructors/Worker/unresolvable-url.html: Removed.
  • web-platform-tests/workers/constructors/Worker/w3c-import.log:
  • web-platform-tests/workers/dedicated-worker-from-blob-url.window-expected.txt: Added.
  • web-platform-tests/workers/dedicated-worker-from-blob-url.window.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/dedicated-worker-from-blob-url.window.js: Added.

(message_from_port):

  • web-platform-tests/workers/examples/fetch_tests_from_worker-expected.txt: Added.
  • web-platform-tests/workers/examples/fetch_tests_from_worker.html: Added.
  • web-platform-tests/workers/examples/fetch_tests_from_worker.js: Added.

(test):

  • web-platform-tests/workers/examples/general.worker-expected.txt: Added.
  • web-platform-tests/workers/examples/general.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/examples/general.worker.js: Added.

(test):

  • web-platform-tests/workers/examples/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/baseurl/alpha/w3c-import.log.
  • web-platform-tests/workers/interfaces.worker-expected.txt: Removed.
  • web-platform-tests/workers/interfaces.worker.js: Removed.
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/event-ports-dedicated.html:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/event-ports-dedicated.js: Added.

(onmessage):

  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/imagedata-cloned-canvas-in-array.html:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/imagedata-cloned-canvas-in-array.js: Added.

(onmessage):

  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary-expected.txt: Added.
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.html.
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary.js: Added.

(onmessage):

  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-expected.txt:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.html:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-in-array.js: Added.

(catch):

  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null.html:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null.js: Added.

(catch):

  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-undefined.html:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-undefined.js: Added.

(catch):

  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/setting-postMessage.html:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/setting-postMessage.js: Added.
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-imagedata.html:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-imagedata.js: Added.

(onmessage):

  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.html:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/structured-clone-message.js: Added.

(i.catch):

  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/w3c-import.log:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/w3c-import.log:
  • web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/getting.html:
  • web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/getting.js: Added.

(switch):

  • web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/setting.html:
  • web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/setting.js: Added.
  • web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/name/w3c-import.log:
  • web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/onconnect.html:
  • web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/onconnect.js: Added.

(catch):
(try.self.onconnect.handleEvent):
(f):

  • web-platform-tests/workers/interfaces/SharedWorkerGlobalScope/w3c-import.log:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/close/incoming-message.js: Added.

(onmessage):

  • web-platform-tests/workers/interfaces/WorkerGlobalScope/close/sending-messages.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/close/sending-messages.js: Added.
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setInterval.js: Added.

(interval1.setInterval):
(interval2.setInterval):

  • web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/close/setTimeout.js: Added.

(x):

  • web-platform-tests/workers/interfaces/WorkerGlobalScope/close/w3c-import.log:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/members.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/members.js: Added.
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-module-expected.txt: Added.
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-module.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect.html.
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-sharedworker-expected.txt: Added.
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-sharedworker.html: Added.
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect.js: Added.
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/returns-same-object.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/returns-same-object.js: Added.
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/setting-members.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/setting-members.js: Added.

(catch):

  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/w3c-import.log:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/exception-in-onerror-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/exception-in-onerror.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/exception-in-onerror.js: Added.

(onerror):
(x):

  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/handled.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/handled.js: Added.

(onerror):
(x):

  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/not-handled.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/not-handled.js: Added.

(onerror):
(x):

  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/propagate-to-window-onerror.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/propagate-to-window-onerror.js: Added.

(x):

  • web-platform-tests/workers/interfaces/WorkerGlobalScope/onerror/w3c-import.log:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/self.html:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/self.js: Added.

(check):

  • web-platform-tests/workers/interfaces/WorkerGlobalScope/w3c-import.log:
  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/001.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/001.js: Added.

(setTimeout):

  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/002.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/002.js: Added.

(t.setTimeout):

  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/003.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/003.js: Added.

(setInterval):

  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/004.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/004.js: Added.

(t.setInterval):

  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/005-expected.txt: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/005.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/001.html.
  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/005.js: Added.

(t.setInterval):

  • web-platform-tests/workers/interfaces/WorkerUtils/WindowTimers/w3c-import.log:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/003.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/003.js: Added.

(catch):

  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/004.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/004.js: Added.

(catch):

  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/005.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/005.js: Added.

(catch):

  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/006.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/006.js: Added.

(catch):

  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/007.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/007.js: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/008.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/008.js: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/009.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/009.js: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/010.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/010.js: Added.

(catch):

  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/011.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/011.js: Added.

(catch):

  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/012.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/012.js: Added.

(catch):

  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/1.headers: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/null.headers: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/undefined.headers: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/w3c-import.log:
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/002.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/002.js: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/003.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/003.js: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/004.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/004.js: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/005.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/005.js: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/006.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/006.js: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/007.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/007.js: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/language.html:
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/language.js: Added.
  • web-platform-tests/workers/interfaces/WorkerUtils/navigator/w3c-import.log:
  • web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.js: Added.

(import_blob_url_test):

  • web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.worker-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/modules/dedicated-worker-import-csp-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import-csp.html: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import-data-url.any-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.js: Added.

(import_data_url_test):

  • web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.worker-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import-data-url.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/modules/dedicated-worker-import-failure-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import-failure.html: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import-meta-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import-meta.html: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import-referrer-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import-referrer.html: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import.any-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import.any.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/modules/dedicated-worker-import.any.js: Added.

(import_test):

  • web-platform-tests/workers/modules/dedicated-worker-import.any.worker-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-import.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/modules/dedicated-worker-options-credentials-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-options-credentials.html: Added.
  • web-platform-tests/workers/modules/dedicated-worker-options-credentials.html.headers: Added.
  • web-platform-tests/workers/modules/dedicated-worker-options-type-expected.txt: Added.
  • web-platform-tests/workers/modules/dedicated-worker-options-type.html: Added.
  • web-platform-tests/workers/modules/resources/credentials.py: Added.

(main):

  • web-platform-tests/workers/modules/resources/dynamic-import-and-then-static-import-worker.js: Added.
  • web-platform-tests/workers/modules/resources/dynamic-import-given-url-worker.js: Added.
  • web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-credentials-checker-worker.sub.js: Added.
  • web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-referrer-checker-worker.sub.js: Added.
  • web-platform-tests/workers/modules/resources/dynamic-import-remote-origin-script-worker.sub.js: Added.
  • web-platform-tests/workers/modules/resources/dynamic-import-same-origin-credentials-checker-worker.js: Added.
  • web-platform-tests/workers/modules/resources/dynamic-import-same-origin-referrer-checker-worker.js: Added.
  • web-platform-tests/workers/modules/resources/dynamic-import-worker.js: Added.
  • web-platform-tests/workers/modules/resources/empty-worker.js: Added.
  • web-platform-tests/workers/modules/resources/eval-dynamic-import-worker.js: Added.
  • web-platform-tests/workers/modules/resources/export-on-dynamic-import-script.js: Added.
  • web-platform-tests/workers/modules/resources/export-on-dynamic-import-script.js.headers: Added.
  • web-platform-tests/workers/modules/resources/export-on-load-script.js: Added.
  • web-platform-tests/workers/modules/resources/export-on-load-script.js.headers: Added.
  • web-platform-tests/workers/modules/resources/export-on-static-import-script.js: Added.
  • web-platform-tests/workers/modules/resources/export-on-static-import-script.js.headers: Added.
  • web-platform-tests/workers/modules/resources/import-meta-url-worker.js: Added.
  • web-platform-tests/workers/modules/resources/import-scripts-worker.js: Added.

(catch):

  • web-platform-tests/workers/modules/resources/import-test-cases.js: Added.
  • web-platform-tests/workers/modules/resources/nested-dynamic-import-worker.js: Added.
  • web-platform-tests/workers/modules/resources/nested-static-import-worker.js: Added.
  • web-platform-tests/workers/modules/resources/new-worker-window.html: Added.
  • web-platform-tests/workers/modules/resources/post-message-on-load-worker.js: Added.
  • web-platform-tests/workers/modules/resources/referrer-checker.py: Added.

(main):

  • web-platform-tests/workers/modules/resources/static-import-and-then-dynamic-import-worker.js: Added.
  • web-platform-tests/workers/modules/resources/static-import-non-existent-script-worker.js: Added.
  • web-platform-tests/workers/modules/resources/static-import-remote-origin-credentials-checker-worker.sub.js: Added.
  • web-platform-tests/workers/modules/resources/static-import-remote-origin-referrer-checker-worker.sub.js: Added.
  • web-platform-tests/workers/modules/resources/static-import-remote-origin-script-worker.sub.js: Added.
  • web-platform-tests/workers/modules/resources/static-import-same-origin-credentials-checker-worker.js: Added.
  • web-platform-tests/workers/modules/resources/static-import-same-origin-referrer-checker-worker.js: Added.
  • web-platform-tests/workers/modules/resources/static-import-worker.js: Added.
  • web-platform-tests/workers/modules/resources/w3c-import.log: Added.
  • web-platform-tests/workers/modules/w3c-import.log: Added.
  • web-platform-tests/workers/name-property-expected.txt:
  • web-platform-tests/workers/name-property.html:
  • web-platform-tests/workers/nested_worker.worker.js:

(async_test):

  • web-platform-tests/workers/nested_worker_close_from_parent_worker-expected.txt: Added.
  • web-platform-tests/workers/nested_worker_close_from_parent_worker.html: Added.
  • web-platform-tests/workers/nested_worker_close_self.worker-expected.txt: Added.
  • web-platform-tests/workers/nested_worker_close_self.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/nested_worker_close_self.worker.js: Added.

(async_test):

  • web-platform-tests/workers/nested_worker_importScripts.worker-expected.txt: Added.
  • web-platform-tests/workers/nested_worker_importScripts.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/nested_worker_importScripts.worker.js: Added.

(async_test):

  • web-platform-tests/workers/nested_worker_sync_xhr.worker-expected.txt: Added.
  • web-platform-tests/workers/nested_worker_sync_xhr.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/nested_worker_sync_xhr.worker.js: Added.

(async_test):

  • web-platform-tests/workers/nested_worker_terminate_from_document-expected.txt: Added.
  • web-platform-tests/workers/nested_worker_terminate_from_document.html: Added.
  • web-platform-tests/workers/non-automated/navigator-onLine.html:
  • web-platform-tests/workers/non-automated/navigator-onLine.js: Added.

(string_appeared_here.in.self.onmessage):
(else.e.ports.0.onmessage):
(else.onconnect):

  • web-platform-tests/workers/non-automated/w3c-import.log:
  • web-platform-tests/workers/opaque-origin.html:
  • web-platform-tests/workers/semantics/encodings/001.html:
  • web-platform-tests/workers/semantics/encodings/001.html.headers: Removed.
  • web-platform-tests/workers/semantics/encodings/001.js: Added.
  • web-platform-tests/workers/semantics/encodings/001.js.headers: Added.
  • web-platform-tests/workers/semantics/encodings/002.html:
  • web-platform-tests/workers/semantics/encodings/002.html.headers: Removed.
  • web-platform-tests/workers/semantics/encodings/002.js: Added.

(onconnect):

  • web-platform-tests/workers/semantics/encodings/002.js.headers: Added.
  • web-platform-tests/workers/semantics/encodings/003.html:
  • web-platform-tests/workers/semantics/encodings/003.js: Added.
  • web-platform-tests/workers/semantics/encodings/004.html:
  • web-platform-tests/workers/semantics/encodings/004.js: Added.

(onconnect):

  • web-platform-tests/workers/semantics/encodings/w3c-import.log:
  • web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:
  • web-platform-tests/workers/semantics/interface-objects/001.worker.js:
  • web-platform-tests/workers/semantics/interface-objects/002.worker-expected.txt:
  • web-platform-tests/workers/semantics/interface-objects/002.worker.js:
  • web-platform-tests/workers/semantics/interface-objects/003.html:
  • web-platform-tests/workers/semantics/interface-objects/003.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/interface-objects/003.html.

(onconnect):

  • web-platform-tests/workers/semantics/interface-objects/004.html:
  • web-platform-tests/workers/semantics/interface-objects/004.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/interface-objects/004.html.

(onconnect):

  • web-platform-tests/workers/semantics/interface-objects/w3c-import.log:
  • web-platform-tests/workers/semantics/multiple-workers/001.html:
  • web-platform-tests/workers/semantics/multiple-workers/001.js: Added.

(string_appeared_here.in.self.onmessage):
(else.e.ports.0.onmessage):
(else.onconnect):

  • web-platform-tests/workers/semantics/multiple-workers/002.html:
  • web-platform-tests/workers/semantics/multiple-workers/002.js: Added.
  • web-platform-tests/workers/semantics/multiple-workers/003.html:
  • web-platform-tests/workers/semantics/multiple-workers/003.js: Added.

(location.hash.string_appeared_here.w2.onmessage):
(else.w3.onmessage):
(else):

  • web-platform-tests/workers/semantics/multiple-workers/004-expected.txt:
  • web-platform-tests/workers/semantics/multiple-workers/004.html:
  • web-platform-tests/workers/semantics/multiple-workers/005.html:
  • web-platform-tests/workers/semantics/multiple-workers/006.html:
  • web-platform-tests/workers/semantics/multiple-workers/007.html:
  • web-platform-tests/workers/semantics/multiple-workers/008-1.html:
  • web-platform-tests/workers/semantics/multiple-workers/008.html:
  • web-platform-tests/workers/semantics/multiple-workers/008.js: Added.

(onconnect):

  • web-platform-tests/workers/semantics/multiple-workers/w3c-import.log:
  • web-platform-tests/workers/semantics/navigation/001-1.html:
  • web-platform-tests/workers/semantics/navigation/001-1.js: Added.

(setInterval):

  • web-platform-tests/workers/semantics/navigation/w3c-import.log:
  • web-platform-tests/workers/semantics/reporting-errors/001.html:
  • web-platform-tests/workers/semantics/reporting-errors/001.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/reporting-errors/001.html.

(onerror):
(onconnect):

  • web-platform-tests/workers/semantics/reporting-errors/002.html:
  • web-platform-tests/workers/semantics/reporting-errors/002.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/reporting-errors/002.html.

(onconnect):

  • web-platform-tests/workers/semantics/reporting-errors/003.html:
  • web-platform-tests/workers/semantics/reporting-errors/003.js: Added.

(onconnect):

  • web-platform-tests/workers/semantics/reporting-errors/004-1.html:
  • web-platform-tests/workers/semantics/reporting-errors/004.html:
  • web-platform-tests/workers/semantics/reporting-errors/004.js: Added.

(onconnect):

  • web-platform-tests/workers/semantics/reporting-errors/w3c-import.log:
  • web-platform-tests/workers/semantics/run-a-worker/001.html:
  • web-platform-tests/workers/semantics/run-a-worker/001.js: Added.
  • web-platform-tests/workers/semantics/run-a-worker/002.html:
  • web-platform-tests/workers/semantics/run-a-worker/002.js: Added.

(onconnect):

  • web-platform-tests/workers/semantics/run-a-worker/003.html:
  • web-platform-tests/workers/semantics/run-a-worker/w3c-import.log:
  • web-platform-tests/workers/semantics/structured-clone/w3c-import.log:
  • web-platform-tests/workers/semantics/xhr/001.html:
  • web-platform-tests/workers/semantics/xhr/001.js: Added.

(xhr.onreadystatechange):

  • web-platform-tests/workers/semantics/xhr/002.html:
  • web-platform-tests/workers/semantics/xhr/002.js: Added.
  • web-platform-tests/workers/semantics/xhr/003.html:
  • web-platform-tests/workers/semantics/xhr/003.js: Copied from LayoutTests/imported/w3c/web-platform-tests/workers/semantics/xhr/003.html.

(xhr.onreadystatechange):
(onconnect):

  • web-platform-tests/workers/semantics/xhr/004.html:
  • web-platform-tests/workers/semantics/xhr/004.js: Added.

(onconnect):

  • web-platform-tests/workers/semantics/xhr/support/w3c-import.log:
  • web-platform-tests/workers/semantics/xhr/w3c-import.log:
  • web-platform-tests/workers/shared-worker-from-blob-url.window-expected.txt: Added.
  • web-platform-tests/workers/shared-worker-from-blob-url.window.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/workers/interfaces.worker.html.
  • web-platform-tests/workers/shared-worker-from-blob-url.window.js: Added.

(message_from_port):

  • web-platform-tests/workers/support/SharedWorker-common.js: Added.

(generateError):
(event.ports.0.onmessage):
(onconnect):
(handleMessage):

  • web-platform-tests/workers/support/SharedWorker-create-common.js: Added.

(createWorker.worker.port.onmessage):
(createWorker.worker.postMessage):
(createWorker):

  • web-platform-tests/workers/support/SharedWorker-script-error.js: Added.

(event.ports.0.onmessage):
(onconnect):
(else.onerror):
(handleMessage):

  • web-platform-tests/workers/support/Worker-common.js: Added.

(onmessage):

  • web-platform-tests/workers/support/Worker-create-common.js: Added.

(createWorker):

  • web-platform-tests/workers/support/Worker-messageport.js: Added.

(onmessage):
(pingBack):

  • web-platform-tests/workers/support/Worker-run-forever.js: Added.
  • web-platform-tests/workers/support/Worker-structure-message.js: Added.

(self.onmessage):

  • web-platform-tests/workers/support/Worker-termination-with-port-messages.js: Added.

(echo):
(onmessage):

  • web-platform-tests/workers/support/Worker-thread-multi-port.js: Added.

(onmessage):
(testPassed):
(testFailed):

  • web-platform-tests/workers/support/Worker-timeout-cancel-order.js: Added.

(t1.setTimeout):
(setTimeout):

  • web-platform-tests/workers/support/Worker-timeout-decreasing-order.js: Added.

(setTimeout):

  • web-platform-tests/workers/support/Worker-timeout-increasing-order.js: Added.

(setTimeout):

  • web-platform-tests/workers/support/WorkerGlobalScope-close.js: Added.

(else.messagePort.onmessage):
(onmessage):

  • web-platform-tests/workers/support/WorkerSendingPerformanceNow.js: Added.

(calcResponse):
(self.onmessage):
(port.onmessage):

  • web-platform-tests/workers/support/iframe_sw_dataUrl.html: Added.
  • web-platform-tests/workers/support/importScripts-1.js: Added.
  • web-platform-tests/workers/support/importScripts-2.js: Added.
  • web-platform-tests/workers/support/importScripts-3.js: Added.
  • web-platform-tests/workers/support/imported_script.py: Added.

(main):

  • web-platform-tests/workers/support/invalidScript.js: Added.
  • web-platform-tests/workers/support/name.js:

(test):

  • web-platform-tests/workers/support/parent_of_nested_worker.js: Added.

(try.worker.onmessage):
(catch):

  • web-platform-tests/workers/support/sync_xhr.js: Added.

(catch):

  • web-platform-tests/workers/support/sync_xhr_target.xml: Added.
  • web-platform-tests/workers/support/throw-on-message-Worker.js: Added.

(self.onerror):
(self.onmessage):

  • web-platform-tests/workers/support/w3c-import.log:
  • web-platform-tests/workers/w3c-import.log:
  • web-platform-tests/workers/worker-performance.worker-expected.txt:

LayoutTests:

9:06 AM Changeset in webkit [249718] by youenn@apple.com
  • 11 edits in trunk

Remove MediaStreamPrivate::scheduleDeferredTask
https://bugs.webkit.org/show_bug.cgi?id=200975
LayoutTests/imported/w3c:

Reviewed by Eric Carlson.

  • web-platform-tests/mediacapture-streams/MediaStream-finished-add.https-expected.txt:

Source/WebCore:

Reviewed by Eric Carlson.

All calls to scheduleDeferredTask are done on the main thread.
This was initially done to trigger less reconfiguration.
But this makes the implementation significantly more complex.

For instance, we have to wait for the document to update its media state
and send it to UIProcess before calling the allow completion handler.

Covered by existing tests.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::MediaStream):
Make sure to update the document media state once the tracks have been added, similarly to the other constructor.
This ensures the document media state is computed with the new MediaStreamTrack.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::isMediaStreamCorrectlyStarted):
(WebCore::UserMediaRequest::allow):
(WebCore::UserMediaRequest::stop):
(WebCore::UserMediaRequest::mediaStreamDidFail):

  • Modules/mediastream/UserMediaRequest.h:
  • page/MediaProducer.h:

(WebCore::MediaProducer::isCapturing):
Make sure to include getDisplayMedia as part of capture check.

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::trackMutedChanged):
(WebCore::MediaStreamPrivate::trackEnabledChanged):
(WebCore::MediaStreamPrivate::trackStarted):
(WebCore::MediaStreamPrivate::trackEnded):

  • platform/mediastream/MediaStreamPrivate.h:

LayoutTests:

<rdar://problem/55113418>

Reviewed by Eric Carlson.

  • fast/mediastream/media-stream-track-source-failure.html:

page mediaState may be updated synchronously.
Get it just before failing a capture track to verify that the state is being updated after the track is stopped.

9:06 AM Changeset in webkit [249717] by Alan Coon
  • 1 edit in branches/safari-608.2.11.1-branch/Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp

Unreviewed build fix. rdar://problem/55198064

8:42 AM Changeset in webkit [249716] by Chris Dumez
  • 20 edits in trunk/LayoutTests

Unreviewed, unskip / rebaseline a few service worker tests
https://bugs.webkit.org/show_bug.cgi?id=201626

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/client-navigate.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/embed-and-object-are-not-intercepted.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video-cache.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video-with-range-request.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/import-module-scripts.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/import-scripts-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/multipart-image.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/performance-timeline.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ready.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/respond-with-body-accessed-response.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/sandboxed-iframe-fetch-event.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update-not-allowed.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-client-id.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-in-sandboxed-iframe-by-csp-fetch-event.https-expected.txt:

LayoutTests:

8:27 AM Changeset in webkit [249715] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Audio sometimes fail to capture in WebRTC
https://bugs.webkit.org/show_bug.cgi?id=180748
<rdar://problem/36032346>

Reviewed by Eric Carlson.

In some cases, Safari is not receiving unsuspend notifications.
In that case, the capture unit might stay in suspend state forever.
To work around that, we force to unsuspend whenever there is a new capture happening.
This will make it so that reloading the page will unsuspend the page.

Manually tested by triggering Siri, starting to use the microphone and quickly going back to a capturing page.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioSharedUnit::provideSpeakerData):
When suspension happens, the buffer size might change.
Since this is only an issue if there are some references data, we now do not fail the capture when there
is no reference data.
(WebCore::CoreAudioSharedUnit::resume):
(WebCore::CoreAudioSharedUnit::prepareForNewCapture):
Make sure to start with a clean slate by setting suspend state to false for the shared unit.
And failing all previous sources in case we are going back from suspension.
(WebCore::CoreAudioSharedUnit::startInternal):
(WebCore::CoreAudioCaptureSourceFactory::audioCaptureDeviceManager):
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource):

8:10 AM Changeset in webkit [249714] by Adrian Perez de Castro
  • 8 edits in trunk/Source

[GTK][WPE] Fixes for non-unified builds after r249022
https://bugs.webkit.org/show_bug.cgi?id=201610

Reviewed by Joseph Pecoraro.

Source/WebCore:

No new tests needed.

  • fileapi/NetworkSendQueue.h: Add missing inclusion of wtf/WeakPtr.h; add the namespace to WTF::WeakPtr

which is needed because there is no "using" clause.

  • inspector/InspectorInstrumentation.cpp: Add missing inclusion of the PageDOMDebuggerAgent.h header.
  • inspector/agents/WebDebuggerAgent.cpp: Add missing inclusion of the ScriptExecutionContext.h header.
  • inspector/agents/page/PageDOMDebuggerAgent.cpp: Add missing inclusion of the InstrumentingAgents.h header.

Source/WebKit:

  • NetworkProcess/NetworkCORSPreflightChecker.h: Add missing inclusion of the WebPageProxyIdentifier.h header.
  • NetworkProcess/NetworkLoadChecker.h: Add missing inclusion of the WebPageProxyIdentifier.h header.
7:45 AM Changeset in webkit [249713] by commit-queue@webkit.org
  • 4 edits
    13 adds in trunk/LayoutTests

Ensure tests for legacy features are in LayoutTests/mathml
https://bugs.webkit.org/show_bug.cgi?id=201604

Patch by Frederic Wang <fwang@igalia.com> on 2019-09-10
Reviewed by Rob Buis.

This patch copies MathML WPT tests verifying legacy support for features removed from MathML
Core. These tests will be overriden or removed in a future WPT synchronization, so we need
to keep local copies to check these legacy features when the "MathML Core" option is
disabled.

  • TestExpectations: Copy expectation.
  • mathml/non-core/frac-linethickness-001-expected.html: Added.
  • mathml/non-core/frac-linethickness-001.html: Added.
  • mathml/non-core/frac-linethickness-002-expected.html: Added.
  • mathml/non-core/frac-linethickness-002.html: Added.
  • mathml/non-core/frac-numalign-denomalign-001-expected.html: Added.
  • mathml/non-core/frac-numalign-denomalign-001.html: Added.
  • mathml/non-core/lengths-1-expected.html: Added.
  • mathml/non-core/lengths-1.html: Added.
  • mathml/non-core/lengths-2-expected.html: Added.
  • mathml/non-core/lengths-2.html: Added.
  • mathml/non-core/lengths-3-expected.txt: Added.
  • mathml/non-core/lengths-3.html: Added.
  • platform/gtk/TestExpectations: Copy expectation.
  • platform/win/TestExpectations: Add failure expectations.
6:52 AM Changeset in webkit [249712] by youenn@apple.com
  • 4 edits in trunk/Source/WebKit

UserMediaProcessManager is revoking sandbox extensions too aggressively
https://bugs.webkit.org/show_bug.cgi?id=201638

Reviewed by Eric Carlson.

Sandbox revocation was sometimes happening when a page is being closed while another page from the same process is starting capture.
In that case, revocation might happen while it should not.
To prevent this, we do not revoke sandbox extensions if there are pending captures for a page of the process.
Whenever a page does not have any pending capture, sandbox extensions may be revoked.

Covered by OnDeviceChangeCrash API test in debug mode.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:

(WebKit::UserMediaPermissionRequestManagerProxy::hasPendingCapture const):

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::revokeSandboxExtensionsIfNeeded):

5:47 AM Changeset in webkit [249711] by Michael Catanzaro
  • 2 edits in trunk/Tools

Unreviewed, remove myself from watchlists

  • Scripts/webkitpy/common/config/watchlist:
5:04 AM Changeset in webkit [249710] by youenn@apple.com
  • 5 edits
    2 adds in trunk

Add support to RTCDataChannel.send(Blob)
https://bugs.webkit.org/show_bug.cgi?id=201377

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCDataChannel-send-blob-order-expected.txt: Added.
  • web-platform-tests/webrtc/RTCDataChannel-send-blob-order.html: Added.
  • web-platform-tests/webrtc/RTCDataChannel-send-expected.txt:

Source/WebCore:

Make use of NetworkSendQueue to enqueue and send properly messages.
Test: imported/w3c/web-platform-tests/webrtc/RTCDataChannel-send-blob-order.html

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::createMessageQueue):
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::RTCDataChannel::send):
(WebCore::RTCDataChannel::close):

  • Modules/mediastream/RTCDataChannel.h:
3:53 AM Changeset in webkit [249709] by rniwa@webkit.org
  • 12 edits
    2 adds in trunk

Option + arrow moves caret past whitespace on iOS
https://bugs.webkit.org/show_bug.cgi?id=201575

Reviewed by Wenson Hsieh.

Source/WebCore:

The bug was caused by findNextWordFromIndex on iOS behaving differently from macOS and UIKit by skipping
trailing whitespace after a word when moving forward and not skipping leading whitespace when moving backward.

This patch introduces a new mode (StopAfterWord) of findNextWordFromIndex in iOS that better matches
the behavior of findNextWordFromIndex on macOS and UIKit, and use it in various modify* functions of
FrameSelection when the selection update is triggered by user.

The legacy mode (LegacyStopBeforeWord) is used in all other call sites as well as when modify* functions
are invoked from author scripts.

Test: editing/selection/ios/move-by-word-with-keyboard.html

  • editing/FrameSelection.cpp:

(WebCore::nextWordWhitespaceModeInIOS): Added. A helper to convert EUserTriggered to NextWordModeInIOS.
(WebCore::FrameSelection::nextWordPositionForPlatform):
(WebCore::FrameSelection::modifyExtendingRight):
(WebCore::FrameSelection::modifyExtendingForward):
(WebCore::FrameSelection::modifyMovingRight):
(WebCore::FrameSelection::modifyMovingForward):
(WebCore::FrameSelection::modifyExtendingLeft):
(WebCore::FrameSelection::modifyExtendingBackward):
(WebCore::FrameSelection::modifyMovingLeft):
(WebCore::FrameSelection::modifyMovingBackward):
(WebCore::FrameSelection::modify):
(WebCore::FrameSelection::updateAppearance):

  • editing/FrameSelection.h:
  • editing/TextIterator.cpp:

(WebCore::SearchBuffer::isWordStartMatch const):

  • editing/VisibleUnits.cpp:

(WebCore::previousWordPositionBoundary):
(WebCore::previousWordPosition):
(WebCore::nextWordPositionBoundary):
(WebCore::nextWordPosition):

  • editing/VisibleUnits.h:
  • platform/text/TextBoundaries.cpp:

(WebCore::findNextWordFromIndex):

  • platform/text/TextBoundaries.h:
  • platform/text/mac/TextBoundaries.mm:

(WebCore::findNextWordFromIndex): Added a new mode.

LayoutTests:

Added a new test for moving caret by word granularity on iOS.

  • editing/selection/ios/move-by-word-with-keyboard-expected.txt: Added.
  • editing/selection/ios/move-by-word-with-keyboard.html: Added.
  • editing/selection/ios/select-non-editable-text-using-keyboard-expected.txt: Rebaselined.
  • editing/selection/ios/select-non-editable-text-using-keyboard.html: Updated the expected

selection string due to the behavior change. Also fixed a bug that some test cases were
not waiting for a secondary selectionchange event that happens after an extra selection
update with character granularity introduced in r247524.

2:42 AM Changeset in webkit [249708] by ysuzuki@apple.com
  • 20 edits
    2 deletes in trunk

[WebAssembly] Use StreamingParser in existing Wasm::BBQPlan
https://bugs.webkit.org/show_bug.cgi?id=189043

Reviewed by Keith Miller.

JSTests:

The offset performing the validation becomes a bit different.
The offset 0 is nice since it is the starting offset of the Module header signature compared to the offset 8.

  • wasm/js-api/version.js:

Source/JavaScriptCore:

This patch integrates Wasm::StreamingParser into the existing Wasm::BBQPlan.
And remove Wasm::ModuleParser. This patch paves the way to implementing Wasm streaming features by
using Wasm::StreamingParser.

Currently, we are not using streaming feature of StreamingParser. In a subsequent patch, we will
create a mechanism to pipe a chunk of data to streaming parser to enable WebAssembly.compileStreaming
and instantiateStreaming.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • tools/JSDollarVM.cpp:

(JSC::WasmStreamingParser::WasmStreamingParser):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::parseAndCompileAir):

  • wasm/WasmAirIRGenerator.h:
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompile): Use FunctionData, it is good since it is more strongly typed.

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::BBQPlan):
(JSC::Wasm::BBQPlan::didReceiveFunctionData): Add a callback, which invokes validation.
(JSC::Wasm::BBQPlan::parseAndValidateModule): Use StreamingParser instead of old ModuleParser.
(JSC::Wasm::BBQPlan::compileFunctions):
(JSC::Wasm::BBQPlan::complete):

  • wasm/WasmBBQPlan.h:
  • wasm/WasmModuleParser.cpp: Removed.
  • wasm/WasmModuleParser.h: Removed.
  • wasm/WasmOMGForOSREntryPlan.cpp:

(JSC::Wasm::OMGForOSREntryPlan::work):

  • wasm/WasmOMGPlan.cpp:

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

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::fail): Make fail function callable multiple times. The first error will be used.

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseCode): Since the Code section is specially handled in StreamingParser, this code is never used.

  • wasm/WasmStreamingParser.cpp:

(JSC::Wasm::StreamingParser::StreamingParser):
(JSC::Wasm::StreamingParser::parseCodeSectionSize):
(JSC::Wasm::StreamingParser::parseFunctionPayload):
(JSC::Wasm::StreamingParser::parseSectionPayload):
(JSC::Wasm::StreamingParser::finalize): Call client's callbacks at appropriate timings.

  • wasm/WasmStreamingParser.h:

(JSC::Wasm::StreamingParserClient::didReceiveSectionData):
(JSC::Wasm::StreamingParserClient::didReceiveFunctionData):
(JSC::Wasm::StreamingParserClient::didFinishParsing): Add StreamingParserClient,
which has 3 callbacks right now. StreamingParser gets this client and call these callbacks
at appropriate timings.

  • wasm/WasmValidate.cpp:

(JSC::Wasm::validateFunction):

  • wasm/WasmValidate.h: Use FunctionData, it is good since it is more strongly typed.

Sep 9, 2019:

10:30 PM Changeset in webkit [249707] by Alan Coon
  • 8 edits
    3 adds in branches/safari-608-branch

Cherry-pick r249535. rdar://problem/55183140

10:03 PM Changeset in webkit [249706] by ysuzuki@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] CodeBlock::m_constantRegisters should be guarded by ConcurrentJSLock when Vector reallocate memory
https://bugs.webkit.org/show_bug.cgi?id=201622

Reviewed by Mark Lam.

CodeBlock::visitChildren takes ConcurrentJSLock while iterating m_constantRegisters, some of the places reallocate
this Vector without taking a lock. If a Vector memory is reallocated while iterating it in concurrent collector,
the concurrent collector can see a garbage. This patch guards m_constantRegisters reallocation with ConcurrentJSLock.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantRegisters):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::addConstant):
(JSC::CodeBlock::addConstantLazily):

  • dfg/DFGDesiredWatchpoints.cpp:

(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):
(JSC::DFG::SymbolTableAdaptor::add):
(JSC::DFG::FunctionExecutableAdaptor::add):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::registerFrozenValues):

  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::finalizeCommon):

  • dfg/DFGLazyJSValue.cpp:

(JSC::DFG::LazyJSValue::emit const):

9:51 PM Changeset in webkit [249705] by achristensen@apple.com
  • 2 edits in trunk/Tools

Rebase API test after r249675
https://bugs.webkit.org/show_bug.cgi?id=201596

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[WebsitePoliciesWebsiteDataStoreDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
We removed the restriction on WebsitePolicies with non-default persistent sessions.
We needed to change the expectations of the test that exercised that code path.

9:30 PM Changeset in webkit [249704] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix iOS API tests after r249684
https://bugs.webkit.org/show_bug.cgi?id=201573

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::getWebSocketEventWebKitLegacy):
(TestWebKitAPI::TEST):
The web thread still exists :(
That makes iOS immediate failure results more like WK2, which is fine.
The point is that the connection fails somehow and the server sees a TLS failure, which the test verifies.

9:24 PM Changeset in webkit [249703] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

[iOS] We sometimes attempt to use a terminated prewarmed WebContent process
https://bugs.webkit.org/show_bug.cgi?id=201614
<rdar://problem/54714507>

Reviewed by Geoffrey Garen.

On iOS, it is possible for our processes to get terminated (e.g. jetsammed) while the UIProcess
is suspended. Upon resuming, it takes a little while for the UIProcess to get the notification
that the mac connection to its child process has been severed and the UIProcess may try to use
it for a load. This is especially problematic for prewarmed process because the client will end
up showing a crash banner and reloading when we could have used a new process rather the prewarmed
one if we had known it was dead.

This patch makes 2 improvements:

  1. It makes AuxiliaryProcessProxy::state() return Terminated if we still have a connection but the PID is not the PID of a running process. I also added a check in tryTakePrewarmedProcess() to not use the prewarmed process if it state() is Terminated.
  2. When the UIProcess is about to get suspended, have the process pools terminate their non-critical processes (i.e. prewarmed + the ones used for PageCache). This makes WebKit friendlier with other apps on the system when suspended with regards to memory. Also, it makes it less likely useful WebContent processes will get jetsammed.
  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::state const):
(WebKit::AuxiliaryProcessProxy::isRunningProcessPID):

  • UIProcess/AuxiliaryProcessProxy.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::applicationIsAboutToSuspend):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::tryTakePrewarmedProcess):

  • UIProcess/WebProcessPool.h:
  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager init]):
(-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):

9:06 PM Changeset in webkit [249702] by Chris Dumez
  • 15 edits in trunk

REGRESSION: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html is frequently timing out on iOS EWS bots
https://bugs.webkit.org/show_bug.cgi?id=201550

Reviewed by Alex Christensen.

Source/WebCore:

  • loader/ResourceLoadObserver.h:

(WebCore::ResourceLoadObserver::hasStatistics const):

Source/WebKit:

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleResourceLoadStatisticsNotifyObserver):

  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:

Tools:

Update testRunner.statisticsNotifyObserver() to return a boolean indicating if it did
anything or not.

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

(WTR::InjectedBundle::statisticsNotifyObserver):

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

(WTR::TestRunner::statisticsNotifyObserver):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

LayoutTests:

Update test to do checks on a timer if its call to testRunner.statisticsNotifyObserver() is a no-op
due to having no statistics to send to the network process.

  • http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html:
8:50 PM Changeset in webkit [249701] by timothy@apple.com
  • 4 edits
    1 add in trunk

Tap and hold on Facebook sometimes creates a tall empty selection.
https://bugs.webkit.org/show_bug.cgi?id=201618
rdar://53630145

Reviewed by Megan Gardner.

Source/WebCore:

API Test: SelectionTests.ByWordAtEndOfDocument

  • editing/VisibleUnits.cpp:

(WebCore::wordRangeFromPosition):
Remove special case code for the possibility of an empty paragraph and at the end
of the document. This is no longer needed and was causing a large selection to be
created on Facebook due to large areas of non-selectable content on the page.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/SelectionByWord.mm: Added.
8:20 PM Changeset in webkit [249700] by Alan Coon
  • 6 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r249649. rdar://problem/55198071

[macOS] Pid is sometimes invalid when creating sandbox extensions by pid.
https://bugs.webkit.org/show_bug.cgi?id=201543
<rdar://problem/54733465>

Reviewed by Brent Fulgham.

There is a race condition when starting a load of a local file, where the WebContent process has not finished
launching yet, and its pid is not available. When we try to create a sandbox extension by using the pid of the
WebContent process, it is not available in the cases where the WebContent process has just launched and has not
finished launching yet. This patch creates a new dummy Web page message, 'LoadRequestWaitingForPID', which will
be sent instead of a normal 'LoadRequest' message, and only when the WebContent process has not finished
launching. When the WebContent process has finished launching, and we are about to actually send the pending
messages, we can detect that a 'LoadRequestWaitingForPID' has been appended for sending, and replace it with a
normal 'LoadReqest' message where we have created the sandbox extension issue with a valid pid. The message
'LoadRequestWaitingForPID' is never intended to reach the WebContent process, it is just there to replace with
a normal 'LoadRequest' message with a new sandbox extension. In the implementation of the message handler on
the WebContent process side, we assert that the method is never called. This patch makes sure the ordering of
the Web page messages are the same, even when we modify the message.

  • UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::didFinishLaunching):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): (WebKit::WebPageProxy::loadRequestWithNavigationShared): (WebKit::WebPageProxy::loadFile):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::fileLoadRequest):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

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

8:20 PM Changeset in webkit [249699] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r249624. rdar://problem/55202935

Marking up a note on iOS results in a PDF with no contents
https://bugs.webkit.org/show_bug.cgi?id=201530
<rdar://problem/53686019>

Unreviewed follow-up.

  • UIProcess/ios/WKContentView.mm: (-[WKContentView _waitForDrawToPDFCallback]): Remove an ASSERT_NOT_REACHED that fires if the synchronous wait for printing times out. This is a totally legitimite situation that can occur if the process crashes; there's no need for an assert there.

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

8:20 PM Changeset in webkit [249698] by Alan Coon
  • 16 edits
    5 adds in branches/safari-608-branch

Cherry-pick r249605. rdar://problem/55182896

Incorrect selection rect revealed after pasting images in a contenteditable element
https://bugs.webkit.org/show_bug.cgi?id=201549
<rdar://problem/50956429>

Reviewed by Simon Fraser.

Source/WebCore:

Editor::replaceSelectionWithFragment currently scrolls to reveal the selection after inserting the given
DocumentFragment. However, this scrolling occurs before any inserted images have loaded yet, which causes the
wrong caret rect to be revealed, since all image elements inserted during paste will be empty.

To fix this, we defer revealing the selection after inserting the fragment until after all images that have
been inserted are done loading. While waiting for images to load, if any layers which may be scrolled as a
result of revealing the selection are scrolled, we additionally cancel the deferred selection reveal. See
comments below for more detail.

Tests: editing/pasteboard/do-not-reveal-selection-after-programmatic-scroll.html

editing/pasteboard/reveal-selection-after-pasting-images.html
PasteImage.RevealSelectionAfterPastingImage

  • editing/Editing.cpp: (WebCore::visibleImageElementsInRangeWithNonLoadedImages):

Add a new helper to iterate through a range and collect all image elements in that range, that contain cached
images that have not finished loading yet.

  • editing/Editing.h:
  • editing/Editor.cpp: (WebCore::Editor::replaceSelectionWithFragment):

Instead of always immediately revealing the selection after applying the ReplaceSelectionCommand, collect the
image elements that were just inserted, and avoid immediately revealing the selection if any of these images
have non-null cached images, but are not loaded yet. Instead, hold on to these images in a set, remove them once
they finish loading using the new method below, and once all images are removed, reveal the selection.

(WebCore::Editor::revealSelectionIfNeededAfterLoadingImageForElement):
(WebCore::Editor::renderLayerDidScroll):

Called whenever a scrollable RenderLayer is scrolled (or in the case of FrameView, the root layer). In the case
where Editor is waiting to reveal the selection, we check to see if the scrolled layer is an ancestor of the
layer enclosing the start of the selection.

(WebCore::Editor::respondToChangedSelection):

If the selection changes between pasting and waiting for pasted images to load, just cancel waiting to reveal
the selection after pasting.

  • editing/Editor.h:
  • editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::insertedContentRange const):

Add a helper method to grab the Range of content inserted after applying the command.

  • editing/ReplaceSelectionCommand.h:
  • page/FrameView.cpp: (WebCore::FrameView::scrollPositionChanged):
  • page/FrameView.h:
  • page/Page.cpp: (WebCore::Page::didFinishLoadingImageForElement):

Notify Editor after an image finishes loading.

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollTo):

Source/WebKit:

Tweak some existing logic to use the new visibleImageElementsInRangeWithNonLoadedImages helper function. See
WebCore for more details.

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

Tools:

Add an API test to exercise the scenario where we scroll to reveal the selection after pasting an image that was
directly written to the pasteboard.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:

LayoutTests:

Add a couple of new layout tests.

  • editing/pasteboard/do-not-reveal-selection-after-programmatic-scroll-expected.txt: Added.
  • editing/pasteboard/do-not-reveal-selection-after-programmatic-scroll.html: Added.

This test verifies that we don't try to scroll to reveal the caret after pasting, if the scroll position was
changed before the images finished loading.

  • editing/pasteboard/reveal-selection-after-pasting-images-expected.txt: Added.
  • editing/pasteboard/reveal-selection-after-pasting-images.html: Added.
  • platform/ios/editing/pasteboard/reveal-selection-after-pasting-images-expected.txt: Added.

This test verifies that we reveal the caret after loading multiple pasted images in a selection, and dispatch a
scroll event in the process.

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

8:19 PM Changeset in webkit [249697] by Alan Coon
  • 6 edits
    1 add in branches/safari-608-branch

Cherry-pick r249584. rdar://problem/55202935

Marking up a note on iOS results in a PDF with no contents
https://bugs.webkit.org/show_bug.cgi?id=201530
<rdar://problem/53686019>

Reviewed by Andy Estes.

Source/WebKit:

  • Platform/IPC/Connection.cpp: (IPC::Connection::Connection): (IPC::Connection::waitForMessage): (IPC::Connection::connectionDidClose):
  • Platform/IPC/Connection.h: If the main thread is blocked when the Web Content process dies, and something eventually calls waitForAndDispatchImmediately without returning control to the main run loop, we will wait for the full timeout, because a) the code to mark the connection invalid is dispatched to the main thread, and b) the secondary thread that is informed of the Web Content process dying did not yet have a "waiting for" message to mark as interrupted (because it wasn't waiting yet).

Fix this race by adding a bit that is set under the waitForMessage lock
on the secondary thread when the connection is invalidated, identically
to m_shouldWaitForSyncReplies, which solves the same problem for sync
messages.

Read the new bit when we are about to start waiting, and bail if it is set.
It's OK to not read it inside the loop because we are guaranteed to have
waitForMessage set at that point, so the normal interruption bit will work.

  • UIProcess/ios/WKContentView.mm: (-[WKContentView _processDidExit]): Reset _isPrintingToPDF; the Web Content process is never going to get back to us if it crashes.

(-[WKContentView _wk_pageCountForPrintFormatter:]):
Do not bail from starting a printing operation if one is already occurring.
This fixes the original bug, because Markup ends up invalidating the page
count at least one extra time before asking for the printed document.
Instead of maintaining the fragile requirement that you cannot recompute
the page count while printing, just let it happen. In order to make this
work safely, synchronously wait for the previous printed result before
continuing with the next print.

We could do more coalescing here if need be, but calls to -_recalcPageCount
are not high in volume.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewPrintFormatter.mm: Add some tests for WKWebViewPrintFormatter; specifically that it is possible to _recalcPageCount twice in quick succession, and that we don't hang if we start painting the printed content immediately after a Web Content process crash.

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

8:19 PM Changeset in webkit [249696] by Alan Coon
  • 4 edits
    2 adds in branches/safari-608-branch

Cherry-pick r249581. rdar://problem/55202922

REGRESSION (iOS 13): If an overflow:hidden with a non-zero scroll position is toggled to overflow:scroll, some other scroll causes its scroll position to get reset
https://bugs.webkit.org/show_bug.cgi?id=201528
rdar://problem/55044885

Reviewed by Frédéric Wang.
Source/WebCore:

If, when an overflow scrolling node is created, the scroller has non-zero scroll
position (for example, via toggling to overflow:hidden, setting scrollTop, then toggling
to overflow:scroll), then on the next update its scroll position will reset back to zero.

The bug was that newly created ScrollingTreeScrollingNodes didn't set m_currentScrollPosition
to the scroll position coming from the state node, so a subsequent update could cause
the 0,0 currentScrollPosition to get applied. If we're making a new node, and there's no
requestedScrollPosition, then initialize m_currentScrollPosition.

Test: scrollingcoordinator/ios/scroller-initial-scroll-position.html

  • page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren): (WebCore::ScrollingTreeScrollingNode::commitStateAfterChildren):
  • page/scrolling/ScrollingTreeScrollingNode.h:

LayoutTests:

  • scrollingcoordinator/ios/scroller-initial-scroll-position-expected.html: Added.
  • scrollingcoordinator/ios/scroller-initial-scroll-position.html: Added.

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

8:19 PM Changeset in webkit [249695] by Alan Coon
  • 5 edits in branches/safari-608-branch

Cherry-pick r249565. rdar://problem/55113261

AccessibilityRenderObject::setSelectedTextRange fails to set the selection passed an empty line.
https://bugs.webkit.org/show_bug.cgi?id=201518
<rdar://problem/54835122>

Patch by Andres Gonzalez <Andres Gonzalez> on 2019-09-06
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: accessibility/set-selected-text-range-after-newline.html

In the case of an empty line, the CharacterIterator range start and end
were not equal, thus we were not advancing the iterator and returning
the iterator range end, which is not correct. With this change we are
always advancing the iterator if its text is just '\n'. This covers all
the cases we fixed before plus empty lines.

  • editing/Editing.cpp: (WebCore::visiblePositionForIndexUsingCharacterIterator):

LayoutTests:

Extended this test to set the selection range passed an empty line.

  • accessibility/set-selected-text-range-after-newline-expected.txt:
  • accessibility/set-selected-text-range-after-newline.html:

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

8:19 PM Changeset in webkit [249694] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r249534. rdar://problem/55183098

AX: children cache are not re-computed if tab index is removed
https://bugs.webkit.org/show_bug.cgi?id=201502

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: accessibility/tabindex-removed.html

If the tabindex changes, it can potentially affect whether an element is accessible. If we don't update the children cache
information can be stale and lead to incorrect navigation with VoiceOver.

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::handleAttributeChange):

LayoutTests:

  • accessibility/tabindex-removed-expected.txt: Added.
  • accessibility/tabindex-removed.html: Added.

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

8:19 PM Changeset in webkit [249693] by Alan Coon
  • 5 edits in branches/safari-608-branch

Cherry-pick r249514. rdar://problem/55182886

MobileSafari may crash when invoking the C++ lambda in -[WKContentView _shareForWebView:]
https://bugs.webkit.org/show_bug.cgi?id=201479
<rdar://problem/51511834>

Reviewed by Tim Horton.

Source/WebKit:

Fix the crash by making -_shareForWebView: robust in the case where there are no selection rects
known in the UI process when -[WKContentView _share:] is invoked.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _shareForWebView:]):

Tools:

Add a test to verify that the UI process doesn't crash when invoking _share: while there's no selection.

  • TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:
  • TestWebKitAPI/ios/UIKitSPI.h:

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

8:19 PM Changeset in webkit [249692] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r249493. rdar://problem/55182906

[iPadOS] Unable to change sheets on Airtable.com
https://bugs.webkit.org/show_bug.cgi?id=201456
<rdar://problem/51557377>

Patch by Antoine Quint <Antoine Quint> on 2019-09-04
Reviewed by Dean Jackson.

Simulated mouse events are required to be able to manipulate cells and and columns on Airtable.com. However, dispatching a "mousedown" event on
tabs allowing to pick a different sheet ends up calling preventDefault() and prevent "click" events from being dispatched, which makes it
impossible to change sheet. We now limit the dispatch of simulated mouse events to the grid.

  • page/Quirks.cpp: (WebCore::Quirks::simulatedMouseEventTypeForTarget const):

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

8:19 PM Changeset in webkit [249691] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r249454. rdar://problem/55198071

[macOS] Unable to open local file from favorites bar
https://bugs.webkit.org/show_bug.cgi?id=201444

Reviewed by Brent Fulgham.

The sandbox extension handle should be created providing the pid of the receiving process.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

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

8:19 PM Changeset in webkit [249690] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r249444. rdar://problem/55093558

Null deref under -[WKWebView _addUpdateVisibleContentRectPreCommitHandler]'s handler block
https://bugs.webkit.org/show_bug.cgi?id=201436
<rdar://problem/40640475>

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView dealloc]): (-[WKWebView _addUpdateVisibleContentRectPreCommitHandler]): We crash sending a message to a deallocated WKWebView inside the handler block passed to +[CATransaction addCommitHandler:]. This seems impossible, because we carefully retain it, but it's possible that it could be the result of the handler block being installed under -dealloc (in which case retaining the WKWebView wouldn't actually extend its lifetime). -[WKWebView dealloc] is fairly sizable, and it's hard to follow all paths from it, so instead add a RELEASE_LOG_FAULT, so we'll get simulated crash logs, and bail, so we'll stop actually crashing (if this is the cause).

This is just a speculative fix, but a hopeful one, since intentionally calling
-_addUpdateVisibleContentRectPreCommitHandler: from dealloc yields a similar-looking
crash under the handler block.

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

8:19 PM Changeset in webkit [249689] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r248170. rdar://problem/55183128

[iOS] Directly use RealtimeMediaSourceCenter to compute the media capture state
https://bugs.webkit.org/show_bug.cgi?id=200368
<rdar://problem/53191450>

Unreviewed.
Build fix by guarding with MEDIA_STREAM in addition to IOS.

  • dom/Document.cpp: (WebCore::Document::updateIsPlayingMedia): (WebCore::Document::pageMutedStateDidChange):

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

8:19 PM Changeset in webkit [249688] by Alan Coon
  • 4 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r248161. rdar://problem/55183128

[iOS] Directly use RealtimeMediaSourceCenter to compute the media capture state
https://bugs.webkit.org/show_bug.cgi?id=200368
<rdar://problem/53191450>

Reviewed by Eric Carlson.

Instead of registering a MediaStreamTrack as a media producer to compute capture state,
go directly to the sources from the RealtimeMediaSourceCenter.
Do the same when requested to mute capture tracks.

No observable change of behavior.
Covered by manual test on iOS and existing tests.

  • Modules/mediastream/MediaStreamTrack.cpp: (WebCore::MediaStreamTrack::MediaStreamTrack): (WebCore::MediaStreamTrack::~MediaStreamTrack): (WebCore::MediaStreamTrack::mediaState const): (WebCore::sourceCaptureState): (WebCore::MediaStreamTrack::captureState): (WebCore::MediaStreamTrack::muteCapture):
  • Modules/mediastream/MediaStreamTrack.h:
  • dom/Document.cpp: (WebCore::Document::updateIsPlayingMedia): (WebCore::Document::pageMutedStateDidChange):

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

7:12 PM Changeset in webkit [249687] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[EWS] Watchlist doesn't work sometimes
https://bugs.webkit.org/show_bug.cgi?id=201433

Reviewed by Michael Catanzaro.

  • Scripts/webkitpy/common/config/watchlist: Updated the email addresses to the one associated with

corresponding Bugzilla accounts.

6:57 PM Changeset in webkit [249686] by jh718.park@samsung.com
  • 48 edits
    10 adds in trunk

getComputedStyle for line-height: normal should return the keyword instead of a length
https://bugs.webkit.org/show_bug.cgi?id=201296

LayoutTests/imported/w3c:

Reviewed by Ryosuke Niwa.

Per https://github.com/w3c/csswg-drafts/issues/3749,
Gecko and Blink has this behavior already.

This patch makes WebKit has the same behavior with them.

  • web-platform-tests/css/css-inline/parsing/line-height-computed-expected.txt: Added.
  • web-platform-tests/css/css-inline/parsing/line-height-computed.html: Added.
  • web-platform-tests/css/cssom/getComputedStyle-line-height-expected.txt: Added.
  • web-platform-tests/css/cssom/getComputedStyle-line-height.html: Added.
  • web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-line-height-expected.html: Added.
  • web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-line-height.html: Added.

Source/WebCore:

Reviewed by Ryosuke Niwa.

Per https://github.com/w3c/csswg-drafts/issues/3749,
Gecko and Blink has this behavior already.

This patch makes WebKit has the same behavior with them.

Tests: imported/w3c/web-platform-tests/css/css-inline/parsing/line-height-computed.html

imported/w3c/web-platform-tests/css/cssom/getComputedStyle-line-height.html
imported/w3c/web-platform-tests/html/rendering/replaced-elements/the-select-element/select-1-line-height.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::lineHeightFromStyle):

LayoutTests:

Reviewed by Ryosuke Niwa.

Per https://github.com/w3c/csswg-drafts/issues/3749,
Gecko and Blink has this behavior already.

This patch makes WebKit has the same behavior with them.

  • css3/calc/line-height-expected.txt:
  • fast/css/font-calculated-value-expected.txt:
  • fast/css/font-calculated-value.html:
  • fast/css/font-shorthand-from-longhands-expected.txt:
  • fast/css/font-shorthand-from-longhands.html:
  • fast/css/font-shorthand-line-height-expected.txt:
  • fast/css/font-shorthand-line-height.html:
  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-font-expected.txt:
  • fast/css/getComputedStyle/computed-style-font.html:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/ruby/ruby-line-height-expected.txt:
  • fast/ruby/ruby-line-height.html:
  • fast/text-autosizing/ios/idempotentmode/line-height-boosting-expected.txt:
  • fast/text-autosizing/ios/idempotentmode/line-height-boosting.html:
  • fast/text-autosizing/ios/line-height-text-autosizing-expected.txt:
  • fast/text-autosizing/ios/line-height-text-autosizing.html:
  • media/track/track-cue-rendering-on-resize-expected.txt:
  • media/track/track-cue-rendering-on-resize.html:
  • platform/gtk/fast/css/css2-system-fonts-expected.txt:
  • platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/gtk/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
  • platform/ios/TestExpectations:
  • platform/ios/css3/calc/line-height-expected.txt:
  • platform/ios/fast/css/css2-system-fonts-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac/fast/css/css2-system-fonts-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/fast/text-autosizing/ios/line-height-text-autosizing-expected.txt:
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt:
  • platform/wincairo/css3/calc/line-height-expected.txt:
  • platform/wincairo/fast/css/css2-system-fonts-expected.txt:
  • platform/wpe/fast/css/css2-system-fonts-expected.txt:
  • platform/wpe/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/wpe/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/wpe/svg/css/getComputedStyle-basic-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
6:39 PM Changeset in webkit [249685] by Justin Fan
  • 11 edits
    4 adds in trunk/Websites/webkit.org

[WebGPU] Upload Babylon.js, WSL compile, and MotionMark links to demo page
https://bugs.webkit.org/show_bug.cgi?id=201621

Reviewed by Dean Jackson.

Add new demos to the WebGPU demo collection.
Ensure error alerts/divs display properly if WebGPU is not enabled.

  • demos/webgpu/babylon/oneHelmetWebGPU.html:
  • demos/webgpu/babylon/oneSphereWebGPU.html:
  • demos/webgpu/compute-blur.html:
  • demos/webgpu/compute-boids-compile.html:
  • demos/webgpu/compute-boids.html:
  • demos/webgpu/hello-cube.html:
  • demos/webgpu/hello-triangle.html:
  • demos/webgpu/index.html:
  • demos/webgpu/resources/babylon-helmet.png: Added.
  • demos/webgpu/resources/babylon-sphere.png: Added.
  • demos/webgpu/resources/motionmark.jpeg: Added.
  • demos/webgpu/resources/webkit-logo.png: Added.
  • demos/webgpu/scripts/compute-boids-compile.js:
  • demos/webgpu/textured-cube.html:
6:39 PM Changeset in webkit [249684] by achristensen@apple.com
  • 21 edits
    1 add in trunk

Disable TLS 1.0 and 1.1 in WebSockets
https://bugs.webkit.org/show_bug.cgi?id=201573

Reviewed by Youenn Fablet.

Source/WebCore:

This expands on what I started in r249019 when I disabled legacy TLS for our use of NSURLSession.
Since our WebSocket implementation uses a different network interface, disable legacy TLS for them, too.
I use the same temporary default to re-enable legacy TLS. I also add a unit test for both WebSockets and NSURLSession use.

  • platform/network/cf/SocketStreamHandleImpl.h:
  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::Function<bool):
(WebCore::SocketStreamHandleImpl::setLegacyTLSEnabledCheck):
(WebCore::SocketStreamHandleImpl::createStreams):

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _allowAnyTLSCertificateForWebSocketTesting]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Tools:

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TCPServer.cpp:

(sk_CRYPTO_BUFFER_num):
(sk_CRYPTO_BUFFER_value):
(TestWebKitAPI::deleter<CRYPTO_BUFFER>::operator()):
(TestWebKitAPI::TCPServer::TCPServer):
(TestWebKitAPI::TCPServer::listenForConnections):
(TestWebKitAPI::deleter<X509>::operator()): Deleted.
(TestWebKitAPI::deleter<uint8_t::operator()): Deleted.

  • TestWebKitAPI/TCPServer.h:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm: Added.

(-[WebSocketDelegate waitForMessage]):
(-[WebSocketDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestNavigationDelegate.h:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:

(-[TestNavigationDelegate webView:didReceiveAuthenticationChallenge:completionHandler:]):
(-[TestNavigationDelegate waitForDidFailProvisionalNavigation]):

6:31 PM Changeset in webkit [249683] by Fujii Hironori
  • 13 edits in trunk/Tools

[Win][MiniBrowser] WebKitLegacyBrowserWindow is leaked by circular references
https://bugs.webkit.org/show_bug.cgi?id=201600

Reviewed by Brent Fulgham.

There were some circular references between
WebKitLegacyBrowserWindow and its delegation classes. For
example, WebKitLegacyBrowserWindow has a reference of
WebDownloadDelegate, and WebDownloadDelegate shares the ref
counter with WebKitLegacyBrowserWindow.

WebNotificationObserver was leaked because it wasn't unregistered
from the default notification center by using
IWebNotificationCenter::removeObserver.

If a new legacy window was created by mouse right click a link,
WebView was released twice because
PrintWebUIDelegate::createWebViewWithRequest didn't AddRef the
WebView.

This change does:

  1. Make delegation classes have own ref-counter to avoid circular references
  2. Do removeObserver notification observers
  3. AddRef WebView in PrintWebUIDelegate::createWebViewWithRequest
  • MiniBrowser/win/AccessibilityDelegate.cpp:

(AccessibilityDelegate::AddRef):
(AccessibilityDelegate::Release):

  • MiniBrowser/win/AccessibilityDelegate.h: Added m_refCount.
  • MiniBrowser/win/MiniBrowserWebHost.cpp:

(MiniBrowserWebHost::QueryInterface):
(MiniBrowserWebHost::AddRef):
(MiniBrowserWebHost::Release):

  • MiniBrowser/win/MiniBrowserWebHost.h: Added m_refCount.
  • MiniBrowser/win/PrintWebUIDelegate.cpp:

(PrintWebUIDelegate::createWebViewWithRequest): Do AddRef for the returned IWebView.
(PrintWebUIDelegate::AddRef):
(PrintWebUIDelegate::Release):

  • MiniBrowser/win/PrintWebUIDelegate.h: Added m_refCount.
  • MiniBrowser/win/ResourceLoadDelegate.cpp:

(ResourceLoadDelegate::AddRef):
(ResourceLoadDelegate::Release):

  • MiniBrowser/win/ResourceLoadDelegate.h: Added m_refCount.
  • MiniBrowser/win/WebDownloadDelegate.cpp:

(WebDownloadDelegate::AddRef):
(WebDownloadDelegate::Release):

  • MiniBrowser/win/WebDownloadDelegate.h: Added m_refCount.
  • MiniBrowser/win/WebKitLegacyBrowserWindow.cpp:

(WebKitLegacyBrowserWindow::~WebKitLegacyBrowserWindow): Do removeObserver notification observers.
(WebKitLegacyBrowserWindow::init):
(WebKitLegacyBrowserWindow::setUIDelegate):
(WebKitLegacyBrowserWindow::setAccessibilityDelegate):
(WebKitLegacyBrowserWindow::setResourceLoadDelegate):
(WebKitLegacyBrowserWindow::setDownloadDelegate):
(WebKitLegacyBrowserWindow::AddRef): Deleted.
(WebKitLegacyBrowserWindow::Release): Deleted.
(WebKitLegacyBrowserWindow::setFrameLoadDelegate): Deleted.
(WebKitLegacyBrowserWindow::setFrameLoadDelegatePrivate): Deleted.

  • MiniBrowser/win/WebKitLegacyBrowserWindow.h:
6:28 PM Changeset in webkit [249682] by Fujii Hironori
  • 2 edits in trunk/Source/WebKitLegacy/win

[Win][WebKitLegacy] WebKitDLL.h(53,37): warning: 'gClassNameCount' has C-linkage specified, but returns user-defined type 'HashCountedSet<WTF::String> &' which is incompatible with C [-Wreturn-type-c-linkage]
https://bugs.webkit.org/show_bug.cgi?id=201601

Reviewed by Ross Kirsling.

Fixed a clang-cl warning. Names which aren't dllexport-ed don't
need to be in a extern "C" scope because they aren't exported to
other DLLs.

  • WebKitDLL.h: Moved some variables and gClassNameCount() out of extern "C" scope.
6:01 PM Changeset in webkit [249681] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Clarify some macCatalyst feature flags
https://bugs.webkit.org/show_bug.cgi?id=201619
<rdar://problem/54615618>

Reviewed by Megan Gardner.

Source/WebKit:

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

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView _showShareSheet:inRect:completionHandler:]):
We prefer specific flags over platform checks.

Source/WTF:

  • wtf/Platform.h:

We prefer specific flags over platform checks.

5:45 PM Changeset in webkit [249680] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening, update test expectations for rdar://problem/51229282.

  • platform/mac-wk1/TestExpectations:
5:38 PM Changeset in webkit [249679] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening, update test expectations for rdar://problem/51766135.

  • platform/ios/TestExpectations:
5:32 PM Changeset in webkit [249678] by Ryan Haddad
  • 2 edits in trunk/LayoutTests
REGRESSION(r236540-r236595): ASSERTION FAILED: !frameView
!frameView->isPainting() on plugins/window-open.html

https://bugs.webkit.org/show_bug.cgi?id=199089

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Skip the test.
5:23 PM Changeset in webkit [249677] by rmorisset@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Air] highOrderAdjacents in AbstractColoringAllocator::conservativeHeuristic should be some kind of array
https://bugs.webkit.org/show_bug.cgi?id=197305

Reviewed by Keith Miller.

Currently it is a HashSet, but it only ever holds at most registerCount() items. And linear search tends to be faster on such a small collection than hashing + searching in a HashSet.
Further benefits include avoiding the allocation of the HashSet, not actually adding the nodes adjacent to V (since there are no duplicates in the adjacency lists).

This patch also contains a trivial optimization: if the remaining number of nodes to consider + the number of highOrderAdjacents already seen is smaller than registerCount() we can return true directly.
Apart from that, the patch got some trivial cleanup of GraphColoringRegisterAllocation::allocateOnBank() (that for example was only logging the number of iterations for FP registers, and not the more interesting number for GP registers).

The time spent in the register allocator throughout JetStream2 on this MacBook Pro moves from 3767 / 3710 / 3785 ms to 3551 / 3454 / 3503 ms.
So about a 6% speedup for that phase, and between 1 and 1.5% speedup for FTL/OMG compilation overall.

No new tests as there is no intended change to the code being generated, and this was already tested by running testb3 + JetStream2.

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
4:51 PM Changeset in webkit [249676] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

4:35 PM Changeset in webkit [249675] by Chris Dumez
  • 16 edits
    1 move in trunk

Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html
https://bugs.webkit.org/show_bug.cgi?id=201596

Reviewed by Alex Christensen.

Source/WebKit:

Allow WKFramePolicyListenerUseWithPolicies() C API to switch to a persistent non-default session.
This is important since WebKitTestRunner is not using the default session anymore and I need to
be able to switch it back to its normal session after going to an ephemeral one.

  • UIProcess/API/C/WKFramePolicyListener.cpp:

(useWithPolicies):

Tools:

Add new testRunner.setShouldSwapToEphemeralSessionOnNextNavigation() / testRunner.setShouldSwapToDefaultSessionOnNextNavigation()
test functions to support dynamic switching between ephemeral and default/persistent session in layout tests. The new methods
do the right thing for WebKit2 and truly switch session, unlike setPrivateBrowsingEnabled_DEPRECATED() which was merely making
the WebCore::Document think it changed session.

  • DumpRenderTree/TestRunner.cpp:

(setShouldSwapToEphemeralSessionOnNextNavigationCallback):
(setShouldSwapToDefaultSessionOnNextNavigationCallback):
(TestRunner::staticFunctions):
(TestRunner::willNavigate):

  • DumpRenderTree/TestRunner.h:

(TestRunner::setShouldSwapToEphemeralSessionOnNextNavigation):
(TestRunner::setShouldSwapToDefaultSessionOnNextNavigation):

  • DumpRenderTree/mac/FrameLoadDelegate.mm:

(-[FrameLoadDelegate webView:didStartProvisionalLoadForFrame:]):

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

(WTR::TestRunner::setShouldSwapToEphemeralSessionOnNextNavigation):
(WTR::TestRunner::setShouldSwapToDefaultSessionOnNextNavigation):

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

(WTR::TestController::decidePolicyForNavigationAction):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::setShouldSwapToEphemeralSessionOnNextNavigation):
(WTR::TestController::setShouldSwapToDefaultSessionOnNextNavigation):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Update layout test to use testRunner.setShouldSwapToEphemeralSessionOnNextNavigation() &
testRunner.setShouldSwapToDefaultSessionOnNextNavigation() instead of the legacy
testRunner.setPrivateBrowsingEnabled_DEPRECATED(). The test needed some extra steps to
navigate whenever we switch session but it is a lot more realistic and is really switching
session on WebKit2. The testRunner.setPrivateBrowsingEnabled_DEPRECATED() was not truly
switching session, just making the document think it did.

  • http/tests/adClickAttribution/conversion-disabled-in-ephemeral-session.html:
4:23 PM Changeset in webkit [249674] by Alan Coon
  • 6 edits in branches/safari-608.2.11.1-branch/Source/WebKit

Cherry-pick r249649. rdar://problem/55198064

[macOS] Pid is sometimes invalid when creating sandbox extensions by pid.
https://bugs.webkit.org/show_bug.cgi?id=201543
<rdar://problem/54733465>

Reviewed by Brent Fulgham.

There is a race condition when starting a load of a local file, where the WebContent process has not finished
launching yet, and its pid is not available. When we try to create a sandbox extension by using the pid of the
WebContent process, it is not available in the cases where the WebContent process has just launched and has not
finished launching yet. This patch creates a new dummy Web page message, 'LoadRequestWaitingForPID', which will
be sent instead of a normal 'LoadRequest' message, and only when the WebContent process has not finished
launching. When the WebContent process has finished launching, and we are about to actually send the pending
messages, we can detect that a 'LoadRequestWaitingForPID' has been appended for sending, and replace it with a
normal 'LoadReqest' message where we have created the sandbox extension issue with a valid pid. The message
'LoadRequestWaitingForPID' is never intended to reach the WebContent process, it is just there to replace with
a normal 'LoadRequest' message with a new sandbox extension. In the implementation of the message handler on
the WebContent process side, we assert that the method is never called. This patch makes sure the ordering of
the Web page messages are the same, even when we modify the message.

  • UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::didFinishLaunching):
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): (WebKit::WebPageProxy::loadRequestWithNavigationShared): (WebKit::WebPageProxy::loadFile):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::fileLoadRequest):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

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

4:23 PM Changeset in webkit [249673] by Alan Coon
  • 2 edits in branches/safari-608.2.11.1-branch/Source/WebKit

Cherry-pick r249454. rdar://problem/55198064

[macOS] Unable to open local file from favorites bar
https://bugs.webkit.org/show_bug.cgi?id=201444

Reviewed by Brent Fulgham.

The sandbox extension handle should be created providing the pid of the receiving process.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):

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

4:14 PM Changeset in webkit [249672] by Chris Dumez
  • 87 edits
    26 adds
    10 deletes in trunk/LayoutTests

Resync service workers WPT tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=201589

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync service workers WPT tests from upstream 820f0f86047e6e26401e.

  • web-platform-tests/service-workers/service-worker/Service-Worker-Allowed-header.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/Service-Worker-Allowed-header.https.html:
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/postmessage.https.html:
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html:
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html:
  • web-platform-tests/service-workers/service-worker/about-blank-replacement.https.html:
  • web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https.html:
  • web-platform-tests/service-workers/service-worker/activation-after-registration.https.html:
  • web-platform-tests/service-workers/service-worker/activation.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/activation.https.html:
  • web-platform-tests/service-workers/service-worker/appcache-ordering-main.https.html:
  • web-platform-tests/service-workers/service-worker/claim-fetch-with-appcache.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/claim-fetch-with-appcache.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/claim-fetch.https.html:
  • web-platform-tests/service-workers/service-worker/claim-not-using-registration.https.html:
  • web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html:
  • web-platform-tests/service-workers/service-worker/claim-using-registration.https.html:
  • web-platform-tests/service-workers/service-worker/claim-worker-fetch.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-worker-fetch.https.html:
  • web-platform-tests/service-workers/service-worker/client-id.https.html:
  • web-platform-tests/service-workers/service-worker/clients-get-client-types.https.html:
  • web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/clients-get.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-get.https.html:
  • web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html:
  • web-platform-tests/service-workers/service-worker/clients-matchall-exact-controller.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall-exact-controller.https.html:
  • web-platform-tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https.html:
  • web-platform-tests/service-workers/service-worker/clients-matchall-order.https.html:
  • web-platform-tests/service-workers/service-worker/clients-matchall.https.html:
  • web-platform-tests/service-workers/service-worker/controller-on-disconnect.https.html:
  • web-platform-tests/service-workers/service-worker/controller-on-load.https.html:
  • web-platform-tests/service-workers/service-worker/controller-on-reload.https.html:
  • web-platform-tests/service-workers/service-worker/data-transfer-files.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/data-transfer-files.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/detached-context.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/detached-context.https.html:
  • web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https.html:
  • web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/fetch-audio-tainting.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-double-write.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-double-write.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video-cache.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-video.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-csp.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-event-network-error.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-event-referrer-policy.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-referrer-policy.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-body-loaded-in-chunk.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-event-throws-after-respond-with.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-frame-resource.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-header-visibility.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-request-css-base-url.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-css-base-url.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-request-css-images.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-request-html-imports.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-html-imports.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-request-xhr-sync.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-response-xhr.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https.html:
  • web-platform-tests/service-workers/service-worker/getregistration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/getregistration.https.html:
  • web-platform-tests/service-workers/service-worker/import-module-scripts.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/import-module-scripts.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/import-scripts-mime-types.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/import-scripts-mime-types.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/import-scripts-resource-map.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/import-scripts-resource-map.https.html:
  • web-platform-tests/service-workers/service-worker/interfaces-window.https.html:
  • web-platform-tests/service-workers/service-worker/invalid-blobtype.https.html:
  • web-platform-tests/service-workers/service-worker/invalid-header.https.html:
  • web-platform-tests/service-workers/service-worker/iso-latin1-header.https.html:
  • web-platform-tests/service-workers/service-worker/multiple-update.https.html:
  • web-platform-tests/service-workers/service-worker/navigation-redirect.https.html:
  • web-platform-tests/service-workers/service-worker/onactivate-script-error.https.html:
  • web-platform-tests/service-workers/service-worker/performance-timeline.https.html:
  • web-platform-tests/service-workers/service-worker/postmessage-from-waiting-serviceworker.https.html:
  • web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/postmessage-to-client.https.html:
  • web-platform-tests/service-workers/service-worker/postmessage.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/postmessage.https.html:
  • web-platform-tests/service-workers/service-worker/ready.https.html:
  • web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/redirected-response.https.html:
  • web-platform-tests/service-workers/service-worker/referer.https.html:
  • web-platform-tests/service-workers/service-worker/register-default-scope.https.html:
  • web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https.html:
  • web-platform-tests/service-workers/service-worker/registration-end-to-end.https.html:
  • web-platform-tests/service-workers/service-worker/registration-events.https.html:
  • web-platform-tests/service-workers/service-worker/registration-mime-types.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-mime-types.https.html:
  • web-platform-tests/service-workers/service-worker/registration-schedule-job.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/registration-schedule-job.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/registration-scope.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-security-error.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-service-worker-attributes.https.html:
  • web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html:
  • web-platform-tests/service-workers/service-worker/resource-timing.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resource-timing.sub.https.html.
  • web-platform-tests/service-workers/service-worker/resource-timing.sub.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/resources/about-blank-replacement-ping-frame.py:
  • web-platform-tests/service-workers/service-worker/resources/appcache-ordering.manifest:
  • web-platform-tests/service-workers/service-worker/resources/claim-worker.js:
  • web-platform-tests/service-workers/service-worker/resources/classic-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/clients-get-cross-origin-frame.html:
  • web-platform-tests/service-workers/service-worker/resources/clients-get-resultingClientId-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/clients-get-worker.js:

(self.onmessage):

  • web-platform-tests/service-workers/service-worker/resources/enable-client-message-queue.html: Removed.
  • web-platform-tests/service-workers/service-worker/resources/extendable-event-async-waituntil.js:

(switch):
(event.request.url.indexOf):
(else.event.request.url.indexOf):

  • web-platform-tests/service-workers/service-worker/resources/fetch-canvas-tainting-double-write-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/fetch-cors-xhr-iframe.html:
  • web-platform-tests/service-workers/service-worker/resources/fetch-event-async-respond-with-worker.js:

(setTimeout):

  • web-platform-tests/service-workers/service-worker/resources/fetch-event-network-fallback-worker.js:
  • web-platform-tests/service-workers/service-worker/resources/fetch-event-test-worker.js:
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-css-base-url-iframe.html:
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-css-base-url-worker.js:

(self.onmessage):
(url.indexOf):
(else.url.indexOf):

  • web-platform-tests/service-workers/service-worker/resources/get-resultingClientId-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/import-relative.xsl: Removed.
  • web-platform-tests/service-workers/service-worker/resources/import-scripts-diff-resource-map-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/import-scripts-get.py: Removed.
  • web-platform-tests/service-workers/service-worker/resources/import-scripts-mime-types-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/imported-classic-script.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/imported-module-script.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/message-vs-microtask.html: Removed.
  • web-platform-tests/service-workers/service-worker/resources/module-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/navigation-redirect-other-origin.html:
  • web-platform-tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py:
  • web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope1.py:
  • web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope2.py:
  • web-platform-tests/service-workers/service-worker/resources/nested-iframe-parent.html: Removed.
  • web-platform-tests/service-workers/service-worker/resources/performance-timeline-worker.js:

(promise_test.):
(promise_test):

  • web-platform-tests/service-workers/service-worker/resources/postmessage-echo-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/redirect-worker.js:

(event.waitUntil.Promise.all.waitUntilPromiseList.then):
(then):
(waitUntilPromise.caches.open.cacheName.then):
(event.respondWith.waitUntilPromise.then):

  • web-platform-tests/service-workers/service-worker/resources/registration-tests-mime-types.js:

(registration_tests_mime_types):

  • web-platform-tests/service-workers/service-worker/resources/registration-tests-scope.js:

(registration_tests_scope):

  • web-platform-tests/service-workers/service-worker/resources/registration-tests-security-error.js:

(registration_tests_security_error):

  • web-platform-tests/service-workers/service-worker/resources/resource-timing-iframe.sub.html:
  • web-platform-tests/service-workers/service-worker/resources/service-worker-csp-worker.py:
  • web-platform-tests/service-workers/service-worker/resources/service-worker-header.py:

(main):

  • web-platform-tests/service-workers/service-worker/resources/skip-waiting-installed-worker.js:

(event.waitUntil.self.skipWaiting.then):

  • web-platform-tests/service-workers/service-worker/resources/stalling-service-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/test-helpers.sub.js:

(wait_for_update):
(async.wait_for_activation_on_dummy_scope):

  • web-platform-tests/service-workers/service-worker/resources/test-request-headers-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/test-request-headers-worker.py: Removed.
  • web-platform-tests/service-workers/service-worker/resources/trickle.py: Removed.
  • web-platform-tests/service-workers/service-worker/resources/update-during-installation-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/update-during-installation-worker.py: Removed.
  • web-platform-tests/service-workers/service-worker/resources/update-fetch-worker.py: Removed.
  • web-platform-tests/service-workers/service-worker/resources/update-missing-import-scripts-imported-worker.py: Removed.
  • web-platform-tests/service-workers/service-worker/resources/update-missing-import-scripts-main-worker.py: Removed.
  • web-platform-tests/service-workers/service-worker/resources/update-registration-with-type.py: Removed.
  • web-platform-tests/service-workers/service-worker/resources/w3c-import.log:
  • web-platform-tests/service-workers/service-worker/resources/worker-interception-iframe.https.html:
  • web-platform-tests/service-workers/service-worker/resources/worker-load-interceptor.js:

(self.onfetch):

  • web-platform-tests/service-workers/service-worker/resources/worker-testharness.js:

(create_temporary_cache):

  • web-platform-tests/service-workers/service-worker/resources/xhr-iframe.html: Removed.
  • web-platform-tests/service-workers/service-worker/resources/xhr-response-url-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/xsl-base-url-iframe.xml: Removed.
  • web-platform-tests/service-workers/service-worker/resources/xsl-base-url-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/xslt-pass.xsl: Removed.
  • web-platform-tests/service-workers/service-worker/service-worker-csp-connect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/service-worker-csp-default.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/service-worker-csp-script.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/service-worker-header.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/service-worker-header.https.html:
  • web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https.html:
  • web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html:
  • web-platform-tests/service-workers/service-worker/skip-waiting-installed.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html:
  • web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https.html:
  • web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https.html:
  • web-platform-tests/service-workers/service-worker/skip-waiting.https.html:
  • web-platform-tests/service-workers/service-worker/state.https.html:
  • web-platform-tests/service-workers/service-worker/synced-state.https.html:
  • web-platform-tests/service-workers/service-worker/uncontrolled-page.https.html:
  • web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https.html:
  • web-platform-tests/service-workers/service-worker/unregister-then-register.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-then-register.https.html:
  • web-platform-tests/service-workers/service-worker/update-after-navigation-redirect.https.html:
  • web-platform-tests/service-workers/service-worker/update-after-oneday.https.html:
  • web-platform-tests/service-workers/service-worker/update-bytecheck.https.html:
  • web-platform-tests/service-workers/service-worker/update-missing-import-scripts.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/update-missing-import-scripts.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/update-not-allowed.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/update-not-allowed.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/update-on-navigation.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/update-on-navigation.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/update-recovery.https.html:
  • web-platform-tests/service-workers/service-worker/update-registration-with-type.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/update-registration-with-type.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/w3c-import.log:
  • web-platform-tests/service-workers/service-worker/websocket.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/websocket.https.html:
  • web-platform-tests/service-workers/service-worker/windowclient-navigate.https.html:
  • web-platform-tests/service-workers/service-worker/worker-client-id.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-interception.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-interception.https.html:
  • web-platform-tests/service-workers/service-worker/xhr-response-url.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/xhr-response-url.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/xsl-base-url.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/xsl-base-url.https.html: Removed.

LayoutTests:

3:45 PM Changeset in webkit [249671] by achristensen@apple.com
  • 10 edits in trunk/Source/WebKit

Deprecate unused SPI to preconnect to a server
https://bugs.webkit.org/show_bug.cgi?id=201558

Reviewed by Youenn Fablet.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKContext.cpp:

(WKContextPreconnectToServer):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _preconnectToServer:]):

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

(WebKit::WebProcessPool::preconnectToServer): Deleted.

  • UIProcess/WebProcessPool.h:
3:38 PM Changeset in webkit [249670] by msaboff@apple.com
  • 12 edits in trunk/Source/bmalloc

Revert to pre-r243144 scavenging behavior for macOS
https://bugs.webkit.org/show_bug.cgi?id=201555

Reviewed by Saam Barati.

The change in r243144 regressed internal power metrics for some Mac models.

  • bmalloc/Heap.cpp:

(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeToHighWatermark):
(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateLarge):

  • bmalloc/Heap.h:
  • bmalloc/IsoDirectory.h:
  • bmalloc/IsoDirectoryInlines.h:

(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::scavenge):
(bmalloc::passedNumPages>::scavengeToHighWatermark):

  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h:

(bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):

  • bmalloc/LargeMap.cpp:

(bmalloc::LargeMap::add):

  • bmalloc/LargeRange.h:

(bmalloc::LargeRange::LargeRange):
(bmalloc::merge):

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::Scavenger):
(bmalloc::Scavenger::timeSinceLastPartialScavenge):
(bmalloc::Scavenger::scavenge):
(bmalloc::Scavenger::partialScavenge):
(bmalloc::Scavenger::threadRunLoop):

  • bmalloc/Scavenger.h:
  • bmalloc/SmallPage.h:
3:17 PM Changeset in webkit [249669] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed Windows build fix.

  • WebProcess/WebPage/WebPage.h:
2:38 PM Changeset in webkit [249668] by ysuzuki@apple.com
  • 6 edits
    1 add in trunk

[JSC] Use metadata table to iterate specific bytecode metadata instead of propertyAccessInstructions vector
https://bugs.webkit.org/show_bug.cgi?id=201613

Reviewed by Mark Lam.

We do not need to maintain propertyAccessInstructions vector to access metadata tied to a specific bytecode opcode
since we have MetadataTable::forEach<Op> feature. This removes propertyAccessInstructions entirely, and fixes the
issue that op_create_promise missed propertyAccessInstructions registration (a name "propertyAccessInstructions" is
misleading, it is like "instructions-requires-llint-finalize").

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeLLIntInlineCaches):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::applyModification):
(JSC::UnlinkedCodeBlock::shrinkToFit):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::addPropertyAccessInstruction): Deleted.
(JSC::UnlinkedCodeBlock::numberOfPropertyAccessInstructions const): Deleted.
(JSC::UnlinkedCodeBlock::propertyAccessInstructions const): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitGetFromScope):
(JSC::BytecodeGenerator::emitPutToScope):
(JSC::BytecodeGenerator::emitGetById):
(JSC::BytecodeGenerator::emitDirectGetById):
(JSC::BytecodeGenerator::emitPutById):
(JSC::BytecodeGenerator::emitDirectPutById):
(JSC::BytecodeGenerator::emitCreateThis):
(JSC::BytecodeGenerator::emitToThis):

  • runtime/CachedTypes.cpp:

(JSC::CachedCodeBlock<CodeBlockType>::decode const):
(JSC::CachedCodeBlock<CodeBlockType>::encode):

2:20 PM Changeset in webkit [249667] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

EWS testtube emoji doesn't exist on macOS Mojave
https://bugs.webkit.org/show_bug.cgi?id=201532

Reviewed by Simon Fraser.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble): Change the emoji to microscope emoji.

2:15 PM Changeset in webkit [249666] by jonlee@apple.com
  • 1 edit
    11 adds in trunk/Websites/webkit.org

Add Babylon demos
https://bugs.webkit.org/show_bug.cgi?id=201611

Rubber-stamped by Justin Fan.

  • demos/webgpu/babylon/LICENSE: Added.
  • demos/webgpu/babylon/babylonWebGpu.max.js: Added.
  • demos/webgpu/babylon/logo.svg: Added.
  • demos/webgpu/babylon/oneHelmetWebGPU.html: Added.
  • demos/webgpu/babylon/oneHelmetWebGPUGLSLShaders.js: Added.
  • demos/webgpu/babylon/oneHelmetWebGPUWSLShaders.js: Added.
  • demos/webgpu/babylon/oneSphereWebGPU.html: Added.
  • demos/webgpu/babylon/oneSphereWebGPUGLSLShaders.js: Added.
  • demos/webgpu/babylon/oneSphereWebGPUWSLShaders.js: Added.
  • demos/webgpu/babylon/vertexShaderGLSL1.glsl: Added.
2:07 PM Changeset in webkit [249665] by jonlee@apple.com
  • 1 edit
    3 adds in trunk/Websites/webkit.org

Add boids time test
https://bugs.webkit.org/show_bug.cgi?id=201612

Rubber-stamped by Justin Fan.

  • demos/webgpu/compute-boids-compile.html: Added.
  • demos/webgpu/scripts/compute-boids-compile.js: Added.
  • demos/webgpu/scripts/compute-boids-utils.js: Added.
1:54 PM Changeset in webkit [249664] by sbarati@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed follow up to r249630. We need padding for ADDRESS32 CPUs to allow replaceWith to work on the intended types.

  • Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h:
1:36 PM Changeset in webkit [249663] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[EWS] API testers can go in an infinite RETRY loop when there is build failure in trunk
https://bugs.webkit.org/show_bug.cgi?id=201607

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeAPITestsResults.analyzeResults): Do not RETRY when clean_tree_results are missing.
(AnalyzeAPITestsResults.analyzeResults.getAPITestFailures): Gracefully handle None result.

1:32 PM Changeset in webkit [249662] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.25.91

WPE WebKit 2.25.91

1:32 PM Changeset in webkit [249661] by keith_miller@apple.com
  • 11 edits
    10 adds in trunk

OSR entry into wasm misses some contexts
https://bugs.webkit.org/show_bug.cgi?id=201569

Reviewed by Yusuke Suzuki.

JSTests:

Add a new harness and wast and the generated wasm file for
testing. The idea long term is to make it easy to test by creating
a C file and converting it to a wast then modify that to produce a
test.

  • wasm.yaml:
  • wasm/wast-tests/harness.js: Added.

(async.runWasmFile):

  • wasm/wast-tests/osr-entry-inner-loop-branch-above-no-consts.wasm: Added.
  • wasm/wast-tests/osr-entry-inner-loop-branch-above-no-consts.wast: Added.
  • wasm/wast-tests/osr-entry-inner-loop-branch-above.wasm: Added.
  • wasm/wast-tests/osr-entry-inner-loop-branch-above.wast: Added.
  • wasm/wast-tests/osr-entry-inner-loop.wasm: Added.
  • wasm/wast-tests/osr-entry-inner-loop.wast: Added.
  • wasm/wast-tests/osr-entry-multiple-enclosed-contexts.wasm: Added.
  • wasm/wast-tests/osr-entry-multiple-enclosed-contexts.wast: Added.

Source/JavaScriptCore:

This patch fixes an issue where we could fail to capture some of
our contexts when OSR entering into wasm code. Before we would
only capture the state of the block immediately surrounding the
entrance loop block header. We actually need to capture all
enclosed stacks.

Additionally, we don't need to use variables for all the captured
values. We can use a Phi and insert an upsilon just below the
captured value.

  • interpreter/CallFrame.h:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionCallerIsOMGCompiled):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addLoop):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::createStack):
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::addConstant):
(JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::B3IRGenerator::addLoop):
(JSC::Wasm::B3IRGenerator::addEndToUnreachable):
(JSC::Wasm::dumpExpressionStack):
(JSC::Wasm::B3IRGenerator::dump):
(JSC::Wasm::B3IRGenerator::Stack::Stack): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::append): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::takeLast): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::last): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::size const): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::isEmpty const): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::convertToExpressionList): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::at const): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::variableAt const): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::shrink): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::swap): Deleted.
(JSC::Wasm::B3IRGenerator::Stack::dump const): Deleted.

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser::controlStack):

Tools:

Add new test harness mode for tests created from wast files.

  • Scripts/run-jsc-stress-tests:
1:32 PM Changeset in webkit [249660] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.26

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.25.91 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.25.91.
1:29 PM Changeset in webkit [249659] by Alan Coon
  • 7 edits in trunk/Source

Versioning.

1:23 PM Changeset in webkit [249658] by Alan Coon
  • 7 edits in branches/safari-608.2.11.1-branch/Source

Versioning.

12:30 PM Changeset in webkit [249657] by jonlee@apple.com
  • 7 edits
    2 copies
    2 moves
    2 adds in trunk

Upload triangles tests for 3D suite in MotionMark
https://bugs.webkit.org/show_bug.cgi?id=201606

Reviewed by Simon Fraser.

PerformanceTests:

  • MotionMark/resources/debug-runner/motionmark.css:
  • MotionMark/resources/debug-runner/tests.js:
  • MotionMark/tests/3d/resources/webgl.js:
  • MotionMark/tests/3d/resources/webgpu.js: Added.
  • MotionMark/tests/3d/triangles-webgl.html: Renamed from Websites/browserbench.org/MotionMark1.1/tests/3d/webgl.html.
  • MotionMark/tests/3d/triangles-webgpu.html: Copied from PerformanceTests/MotionMark/tests/3d/webgl.html.

Websites/browserbench.org:

  • MotionMark1.1/resources/debug-runner/tests.js:
  • MotionMark1.1/tests/3d/resources/webgl.js:
  • MotionMark1.1/tests/3d/resources/webgpu.js: Added.
  • MotionMark1.1/tests/3d/triangles-webgl.html: Copied from PerformanceTests/MotionMark/tests/3d/webgl.html.
  • MotionMark1.1/tests/3d/triangles-webgpu.html: Renamed from PerformanceTests/MotionMark/tests/3d/webgl.html.
12:16 PM Changeset in webkit [249656] by jiewen_tan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=198810

Reviewed by Dewei Zhu.

  • http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https.html:

Removed the timeout value given these tests should report the exception immediately.

12:02 PM Changeset in webkit [249655] by Joseph Pecoraro
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: Overview Timeline View has jarring white box-shadows in dark mode
https://bugs.webkit.org/show_bug.cgi?id=201442
<rdar://problem/54999794>

Reviewed by Devin Rousso.

  • UserInterface/Views/DataGrid.css:

(.data-grid:not(.variable-height-rows) table.data):
(.data-grid:not(.variable-height-rows) table.data.even-first-zebra-stripe):
(.data-grid.variable-height-rows.even-first-zebra-stripe table.data tr:nth-child(odd)):
(.data-grid.variable-height-rows.even-first-zebra-stripe table.data tr:nth-child(even)):
(.data-grid:not(.variable-height-rows) table.data.odd-first-zebra-stripe): Deleted.
(.data-grid.variable-height-rows.odd-first-zebra-stripe table.data tr:nth-child(odd)): Deleted.
(.data-grid.variable-height-rows.odd-first-zebra-stripe table.data tr:nth-child(even)): Deleted.

  • UserInterface/Views/DataGrid.js:

(WI.DataGrid.prototype.updateVisibleRows):

  • UserInterface/Views/Table.css:

(.table > .data-container > .data-list):
(.table > .data-container > .data-list.even-first-zebra-stripe):
(.table > .data-container > .data-list.odd-first-zebra-stripe): Deleted.

  • UserInterface/Views/Table.js:

In the gradients "even" was mistakenly first. Fix these so that "odd" is first and the
unusual case would be having "even" first. This allows us to line up with nth-of-type(even).

  • UserInterface/Views/Main.css:

(:root):
(@media (prefers-color-scheme: dark)):
Flip even and odd so we maintain the same styles for gradients.

  • UserInterface/Views/OverviewTimelineView.css:

(.timeline-view.overview > .data-grid tr):
(.timeline-view.overview > .data-grid tr:nth-child(even)):
(.timeline-view.overview > .data-grid tr.parent:not(.expanded) td.graph-column .timeline-record-bar:not(.has-inactive-segment) > .segment):
(.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar:not(.has-inactive-segment) > .segment):
(.timeline-view.overview > .data-grid tr.parent:not(.expanded) td.graph-column .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(.timeline-view.overview > .data-grid tr.parent:not(.expanded).selected td.graph-column .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(@media (prefers-color-scheme: dark)):
(WI.Table.prototype._updateVisibleRows):

  • UserInterface/Views/Variables.css:
12:01 PM Changeset in webkit [249654] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC][TFC] Introduce cell spacing.
https://bugs.webkit.org/show_bug.cgi?id=201605
<rdar://problem/55184009>

Reviewed by Antti Koivisto.

This patch adds support for horizontal and vertical cell spacing (border-spacing). Now LFC matches table geometry for simple table content with multiple columns and rows.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const): Now we can use the generic, check the inflow content logic for table height.

  • layout/LayoutUnits.h:

(WebCore::Layout::HorizontalEdges::width const):
(WebCore::Layout::VerticalEdges::height const):

  • layout/Verification.cpp:

(WebCore::Layout::verifyAndOutputSubtree):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layout):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
(WebCore::Layout::TableFormattingContext::positionTableCells):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForSections):
(WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::TableFormattingContext::ensureTableGrid):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):
(WebCore::Layout::TableFormattingContext::computedTableWidth):
(WebCore::Layout::TableFormattingContext::useAsContentLogicalWidth):

  • layout/tableformatting/TableFormattingContext.h:
  • layout/tableformatting/TableFormattingContextGeometry.cpp:

(WebCore::Layout::TableFormattingContext::Geometry::tableCellHeightAndMargin const):

  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::appendCell):
(WebCore::Layout::TableGrid::widthConstraints const):
(WebCore::Layout::TableGrid::ColumnsContext::useAsLogicalWidth): Deleted.

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::setHorizontalSpacing):
(WebCore::Layout::TableGrid::horizontalSpacing const):
(WebCore::Layout::TableGrid::setVerticalSpacing):
(WebCore::Layout::TableGrid::verticalSpacing const):
(WebCore::Layout::TableGrid::ColumnsContext::logicalWidth const):

11:56 AM Changeset in webkit [249653] by dbates@webkit.org
  • 2 edits in trunk/Tools

Remove all selection view animations before dumping results
https://bugs.webkit.org/show_bug.cgi?id=199241

Reviewed by Wenson Hsieh.

On iOS the selection UI uses a few animations, including fading in the grabbers. We have many
historical tests that were written for Mac and expect Mac's lack of animations that we run on
iOS and are flaky. Let's try to remove all selection view animations before dumping results and
see if this makes tests on iOS less flaky. A future enhancement to this is to expose a uiController
API for a test to remove selection animations at any time during the run.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::notifyDone):

11:29 AM Changeset in webkit [249652] by Jonathan Bedard
  • 4 edits in trunk/Tools

run-webkit-tests: Report results archive to results.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=201321

Reviewed by Aakash Jain.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.run): After all tests are finish, upload the results archive for each
configuration.

  • Scripts/webkitpy/results/upload.py:

(Upload):
(Upload.init): Automatically define timestamp.
(Upload.upload_archive): Upload an archive associated with the test run.

  • Scripts/webkitpy/results/upload_unittest.py:

(UploadTest.test_buildbot):
(UploadTest):
(UploadTest.test_archive_upload):

10:52 AM Changeset in webkit [249651] by Ryan Haddad
  • 9 edits in trunk

Unreviewed, rolling out r249574.

Caused fast/mediastream/media-stream-track-source-failure.html
to become flaky.

Reverted changeset:

"Remove MediaStreamPrivate::scheduleDeferredTask"
https://bugs.webkit.org/show_bug.cgi?id=200975
https://trac.webkit.org/changeset/249574

10:52 AM Changeset in webkit [249650] by ysuzuki@apple.com
  • 8 edits
    1 add in trunk

[JSC] Promise resolve/reject functions should be created more efficiently
https://bugs.webkit.org/show_bug.cgi?id=201488

Reviewed by Mark Lam.

JSTests:

  • microbenchmarks/promise-creation-many.js: Added.

(executor):

Source/JavaScriptCore:

While r246553 fixed an important issue, it makes anonymous-builtin-function creation costly since it enforces FunctionRareData allocations.
Unfortunately, anonymous-builtin-function function can be created frequently since this type of function is used
for resolve and reject arguments of Promise's executor (e.g. new Promise((resolve, reject) => ...)'s resolve and reject).
Since we are now always creating FunctionRareData for these functions, this additional allocation makes promise creation slower.

In this patch, we use isAnonymousBuiltinFunction information for hasReifiedName correctly. And we propagate isAnonymousBuiltinFunction information
to FunctionRareData to initialize m_hasReifiedName correctly. Then we can avoid unnecessary FunctionRareData allocation, which makes
anonymous-builtin-function creation faster.

We can ensure that this patch does not revert r246553's fix by running JSTests/stress/builtin-private-function-name.js test.
The simple microbenchmark shows 1.7x improvement.

ToT Patched

promise-creation-many 45.6701+-0.1488 26.8663+-1.8336 definitely 1.6999x faster

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):

  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::create):
(JSC::FunctionRareData::FunctionRareData):

  • runtime/FunctionRareData.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::finishCreation):
(JSC::JSFunction::allocateRareData):
(JSC::JSFunction::allocateAndInitializeRareData):

  • runtime/JSFunctionInlines.h:

(JSC::JSFunction::hasReifiedName const):

10:44 AM Changeset in webkit [249649] by pvollan@apple.com
  • 6 edits in trunk/Source/WebKit

[macOS] Pid is sometimes invalid when creating sandbox extensions by pid.
https://bugs.webkit.org/show_bug.cgi?id=201543
<rdar://problem/54733465>

Reviewed by Brent Fulgham.

There is a race condition when starting a load of a local file, where the WebContent process has not finished
launching yet, and its pid is not available. When we try to create a sandbox extension by using the pid of the
WebContent process, it is not available in the cases where the WebContent process has just launched and has not
finished launching yet. This patch creates a new dummy Web page message, 'LoadRequestWaitingForPID', which will
be sent instead of a normal 'LoadRequest' message, and only when the WebContent process has not finished
launching. When the WebContent process has finished launching, and we are about to actually send the pending
messages, we can detect that a 'LoadRequestWaitingForPID' has been appended for sending, and replace it with a
normal 'LoadReqest' message where we have created the sandbox extension issue with a valid pid. The message
'LoadRequestWaitingForPID' is never intended to reach the WebContent process, it is just there to replace with
a normal 'LoadRequest' message with a new sandbox extension. In the implementation of the message handler on
the WebContent process side, we assert that the method is never called. This patch makes sure the ordering of
the Web page messages are the same, even when we modify the message.

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::didFinishLaunching):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::fileLoadRequest):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
10:18 AM Changeset in webkit [249648] by Chris Dumez
  • 5 edits
    1 copy
    1 add in trunk

Stop using testRunner.setPrivateBrowsingEnabled_DEPRECATED() in http/tests/workers/service/basic-register.html
https://bugs.webkit.org/show_bug.cgi?id=201590

Reviewed by Youenn Fablet.

Tools:

Add a new API test to check that if the default session registers a service worker, the
hasServiceWorkerRegistration flag is still false in an ephemeral session.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

LayoutTests:

Split the layout test in 2 to test both the default and the ephemeral session without relying on the
testRunner.setPrivateBrowsingEnabled_DEPRECATED() hack.

  • http/tests/workers/service/basic-register-expected.txt:
  • http/tests/workers/service/basic-register-private-expected.txt: Copied from LayoutTests/http/tests/workers/service/basic-register-expected.txt.
  • http/tests/workers/service/basic-register-private.html: Added.
  • http/tests/workers/service/resources/basic-register.js:

(async.test):

10:02 AM Changeset in webkit [249647] by youenn@apple.com
  • 11 edits
    2 deletes in trunk/Source/WebKit

Remove ServiceWorkerProcessProxy
https://bugs.webkit.org/show_bug.cgi?id=201506

Reviewed by Chris Dumez.

Instead of using a specific ServiceWorkerProcessProxy, move the logic directly in WebProcessProxy.
This will allow us in the future to run a service worker in a process that already runs a web page,
thus saving the need to spin off a new process.

This patch adds a new WebProcessProxy::createForServiceWorkers method instead of creating a
ServiceWorkerProcessProxy. The behavior is then similar: a process running a service worker cannot run a page.

  • Sources.txt:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _hasRegisteredServiceWorker]):

  • UIProcess/BackgroundProcessResponsivenessTimer.cpp:

(WebKit::BackgroundProcessResponsivenessTimer::shouldBeActive const):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::openNetworkProcessConnection):

  • UIProcess/ServiceWorkerProcessProxy.cpp: Removed.
  • UIProcess/ServiceWorkerProcessProxy.h: Removed.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::updateServiceWorkerUserAgent):
(WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers):
(WebKit::WebProcessPool::updateProcessAssertions):
(WebKit::WebProcessPool::isServiceWorkerPageID const):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createForServiceWorkers):
(WebKit::WebProcessProxy::getLaunchOptions):
(WebKit::WebProcessProxy::didBecomeUnresponsive):
(WebKit::WebProcessProxy::canBeAddedToWebProcessCache const):
(WebKit::WebProcessProxy::didSetAssertionState):
(WebKit::WebProcessProxy::didExceedCPULimit):
(WebKit::WebProcessProxy::establishServiceWorkerContext):
(WebKit::WebProcessProxy::setServiceWorkerUserAgent):
(WebKit::WebProcessProxy::updateServiceWorkerPreferencesStore):

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::isRunningServiceWorkers const):
(WebKit::WebProcessProxy::hasServiceWorkerPageProxy):

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebKit.xcodeproj/project.pbxproj:
8:35 AM Changeset in webkit [249646] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: mobile-sidebar-control should override button
https://bugs.webkit.org/show_bug.cgi?id=201566

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:

(@media screen and (min-width: 600px)):
(.mobile-sidebar-control):
(.mobile-sidebar-control.display):

8:21 AM Changeset in webkit [249645] by commit-queue@webkit.org
  • 9 edits
    2 adds in trunk

[GTK][WPE] Remove attributes deprecated from MathML3
https://bugs.webkit.org/show_bug.cgi?id=197492

Patch by Rob Buis <rbuis@igalia.com> on 2019-09-09
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

Import relevant WPT test.

  • web-platform-tests/mathml/relations/css-styling/attribute-mapping-001-expected.txt: Added.
  • web-platform-tests/mathml/relations/css-styling/attribute-mapping-001.html: Added.

Source/WebCore:

Remove some MathML3 deprecated attributes:
https://github.com/mathml-refresh/mathml/issues/5#issuecomment-475506856

This change also maps the dir attribute to direction for MathML Core.

Test: imported/w3c/web-platform-tests/mathml/relations/css-styling/attribute-mapping-001.html

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::collectStyleForPresentationAttribute):

LayoutTests:

Disable the MathML Core flag for tests assuming MathML3 behavior.

  • mathml/presentation/attributes-background-color-expected.html:
  • mathml/presentation/attributes-background-color.html:
  • mathml/presentation/attributes-mathvariant.html:
  • mathml/presentation/direction-overall.html:
  • mathml/presentation/mstyle-css-attributes.html:
5:58 AM Changeset in webkit [249644] by zandobersek@gmail.com
  • 2 edits in trunk/JSTests

Unreviewed JSC test gardening.

  • stress/constructFunctionSkippingEvalEnabledCheck-should-throw-out-of-memory-error.js:

This test allocates a 2GB string before it goes out and tests
out-of-memory exception when appending other strings to it. As such,
skip the test on memory-limited platforms.

2:44 AM Changeset in webkit [249643] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. Bump GTK version numbers

  • Source/cmake/OptionsGTK.cmake:
2:21 AM Changeset in webkit [249642] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.26.0

WebKitGTK 2.26.0

2:20 AM Changeset in webkit [249641] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.26

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.26.0 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.26.0.
2:08 AM Changeset in webkit [249640] by youenn@apple.com
  • 13 edits in trunk/Source

Use WebProcess processIdentifier to identify IDB connections between WebProcess and NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=201419

Reviewed by Alex Christensen.

We change from an identifier generated by NetworkProcess to WebProcess identifier.
A WebProcess identifier is unique globally and is stable even in case of NetworkProcess crash.
This removes the need for a sync IPC and makes things more easy to handle in case of NetworkProcess crash.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::create):
(WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::getAllDatabaseNames):

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::identifier const):
(WebKit::WebIDBConnectionToServer::coreConnectionToServer):
(WebKit::WebIDBConnectionToServer::getAllDatabaseNames):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::idbConnectionToServerForSession):

  • WebProcess/Network/NetworkProcessConnection.h:

(WebKit::NetworkProcessConnection::existingIDBConnectionToServer const):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::networkProcessConnectionClosed):

1:54 AM WebKitGTK/2.26.x edited by Carlos Garcia Campos
(diff)
1:51 AM Changeset in webkit [249639] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r249569 - [GTK][WPE] Do not enable the sandbox in Snap
https://bugs.webkit.org/show_bug.cgi?id=201486

Reviewed by Carlos Garcia Campos.

Running inside of Snap adds its own complications and is simply
not supported for now.

Also update isInsideFlatpak() for consistency.

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::isInsideFlatpak):
(WebKit::isInsideSnap):
(WebKit::ProcessLauncher::launchProcess):

1:51 AM Changeset in webkit [249638] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r249487 - [WPE][GTK] Fix sandbox parsing DISPLAY on X11
https://bugs.webkit.org/show_bug.cgi?id=201462

Reviewed by Michael Catanzaro.

On some setups the DISPLAY env var was incorrectly parsed.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindX11):

1:50 AM Changeset in webkit [249637] by youenn@apple.com
  • 17 edits
    2 deletes in trunk/Source

Move checkProcessLocalPortForActivity from provider to registry
https://bugs.webkit.org/show_bug.cgi?id=201400

Reviewed by Alex Christensen.

Source/WebCore:

Update the registry to take a callback that is used to implement checkProcessLocalPortForActivity.
This allows WK1 and WK2 to have their own implementation.

Make the call to checkProcessLocalPortForActivity directly on the registry.
Remove unneeded worker checkProcessLocalPortForActivity method.
No change of behavior.

  • dom/messageports/MessagePortChannel.cpp:

(WebCore::MessagePortChannel::checkRemotePortForActivity):

  • dom/messageports/MessagePortChannelProvider.h:
  • dom/messageports/MessagePortChannelProviderImpl.cpp:

(WebCore::createMessagePortChannelRegistry):
(WebCore::MessagePortChannelProviderImpl::MessagePortChannelProviderImpl):
(WebCore::MessagePortChannelProviderImpl::checkProcessLocalPortForActivity): Deleted.

  • dom/messageports/MessagePortChannelProviderImpl.h:
  • dom/messageports/MessagePortChannelRegistry.cpp:

(WebCore::MessagePortChannelRegistry::MessagePortChannelRegistry):
(WebCore::MessagePortChannelRegistry::checkProcessLocalPortForActivity):

  • dom/messageports/MessagePortChannelRegistry.h:

(WebCore::MessagePortChannelRegistry::provider): Deleted.

  • dom/messageports/WorkerMessagePortChannelProvider.cpp:

(WebCore::WorkerMessagePortChannelProvider::checkProcessLocalPortForActivity): Deleted.

  • dom/messageports/WorkerMessagePortChannelProvider.h:

Source/WebKit:

Implement registry callback at NetworkProcess level.
Remove NetworkMessagePortChannelProvider since only a registry is now needed.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:
  • NetworkProcess/NetworkMessagePortChannelProvider.cpp: Removed.
  • NetworkProcess/NetworkMessagePortChannelProvider.h: Removed.
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::createMessagePortChannelRegistry):
(WebKit::m_messagePortChannelRegistry):
(WebKit::m_messagePortChannelProvider): Deleted.

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::messagePortChannelRegistry):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:

(WebKit::WebMessagePortChannelProvider::checkProcessLocalPortForActivity): Deleted.

  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h:
1:43 AM Changeset in webkit [249636] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore/platform/gtk/po

Merged r249633 - [l10n] [pt_BR] Updated Brazilian Portuguese translation
https://bugs.webkit.org/show_bug.cgi?id=201592

Patch by Rafael Fontenelle <rafaelff@gnome.org> on 2019-09-09
Rubber-stamped by Carlos Garcia Campos.

  • pt_BR.po:
1:41 AM Changeset in webkit [249635] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore/platform/gtk/po

Merged r249634 - Updated German translation
https://bugs.webkit.org/show_bug.cgi?id=201582

Patch by Christian Kirbach <Christian.Kirbach@googlemail.com> on 2019-09-07
Rubber-stamped by Adrian Perez de Castro.

  • de.po:
1:37 AM Changeset in webkit [249634] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated German translation
https://bugs.webkit.org/show_bug.cgi?id=201582

Patch by Christian Kirbach <Christian.Kirbach@googlemail.com> on 2019-09-07
Rubber-stamped by Adrian Perez de Castro.

  • de.po:
1:29 AM Changeset in webkit [249633] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[l10n] [pt_BR] Updated Brazilian Portuguese translation
https://bugs.webkit.org/show_bug.cgi?id=201592

Patch by Rafael Fontenelle <rafaelff@gnome.org> on 2019-09-09
Rubber-stamped by Carlos Garcia Campos.

  • pt_BR.po:

Sep 8, 2019:

11:41 PM Changeset in webkit [249632] by david_quesada@apple.com
  • 2 edits in trunk/Source/WebKit

Remove some unused constants in VersionChecks.h
https://bugs.webkit.org/show_bug.cgi?id=201599

Reviewed by Youenn Fablet.

  • UIProcess/Cocoa/VersionChecks.h:

Remove two macros that are unused as of r244512.

9:04 PM Changeset in webkit [249631] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[macCatalyst] The last typed character in password fields shouldn't be echoed
https://bugs.webkit.org/show_bug.cgi?id=201595
<rdar://problem/55166367>

Reviewed by Tim Horton.

Disable password echoing on macCatalyst, to better match behavior on macOS.

  • Shared/WebPreferencesDefaultValues.h:
8:23 PM Changeset in webkit [249630] by sbarati@apple.com
  • 9 edits
    2 adds in trunk

[WHLSL] Add back a version of the property resolver
https://bugs.webkit.org/show_bug.cgi?id=201251

Reviewed by Robin Morisset.

Source/WebCore:

This patch adds back the property resolver to aid in how we emit metal code.
The goal of the new property resolver phase is to allow two things:

  1. For property access expressions, metal codegen should be allowed to evaluate

the base, and if it's an index expression, the index, as many times as needed.
So this patch ensures that if Metal evaluates such things, effects aren't performed
more than once.

  1. For ReadModifyWrite expressions, metal codegen should be able to evaluate the

leftValueExpression as many times as it'd like without performing the effects of
leftValueExpression more than once.

Here are a couple examples of this transformation:
a()[b()] -> (temp1 = a(), temp2 = b(), temp1[temp2])
(*a())[b()] += 42; -> (temp1 = &*a(), temp2 = b(), (*temp1)[temp2] += 42)

The interesting rules break down like:

  • When the base is an lvalue, we take its address and replace the old base

with a dereference of the new pointer variable.

  • When the base is an rvalue, we evaluate it and store it in a temporary

variable, and switch the base to be a reference of that variable.

  • All indices are evaluated before the property access instruction and

replaced with a reference to the temporary variable.

Test: webgpu/whlsl/property-evaluation-order.html

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

(WebCore::WHLSL::AST::Expression::mayBeEffectful const):

  • Modules/webgpu/WHLSL/AST/WHLSLExpression.h:
  • Modules/webgpu/WHLSL/AST/WHLSLIndexExpression.h:
  • Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h:
  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):

  • Modules/webgpu/WHLSL/WHLSLHighZombieFinder.cpp:

(WebCore::WHLSL::findHighZombies):

  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:

(WebCore::WHLSL::PropertyResolver::handleLeftHandSideBase):
(WebCore::WHLSL::PropertyResolver::handlePropertyAccess):
(WebCore::WHLSL::resolveProperties):

LayoutTests:

  • webgpu/whlsl/property-evaluation-order-expected.txt: Added.
  • webgpu/whlsl/property-evaluation-order.html: Added.

Sep 7, 2019:

11:10 PM Changeset in webkit [249629] by Chris Dumez
  • 15 edits in trunk

Add support for postMessage buffering between the service worker and window
https://bugs.webkit.org/show_bug.cgi?id=201169

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/service-workers/service-worker/postmessage-to-client-message-queue.https-expected.txt:

Source/WebCore:

As per the Service Worker specification, a service worker client's message
queue is initially disabled and only gets enabled after:

  • The DOMContentLoaded event has been fired

or

  • The client sets the navigator.serviceWorker.onmessage event handler

or

  • navigator.serviceWorker.startMessages() is called

While the message queue is disabled, messages posted by the service worker
to the client simply get queued and only get processed once the queue gets
enabled.

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::finishedParsing):
Call startMessages() on the ServiceWorkerContainer once the DOMContentLoaded event has
been fired.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::ensureServiceWorkerContainer):

  • dom/ScriptExecutionContext.h:
  • workers/service/SWClientConnection.cpp:

(WebCore::SWClientConnection::postMessageToServiceWorkerClient):
Fix a bug where a service worker would not be able to post a message to a client until
that client has accessed navigator.serviceWorker (since the ServiceWorkerContainer is
lazy initialized). To address the issue, we now initialize the ServiceWorkerContainer
when a message is received from the service worker. Previously, messages were just
getting dropped.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::ServiceWorkerContainer):
When the ServiceWorkerContainer is constructed, suspend its message queue if its context
document is still parsing.

(WebCore::ServiceWorkerContainer::startMessages):
Resume the message queue when startMessages() is called.

(WebCore::ServiceWorkerContainer::postMessage):
Enqueue the event instead of firing it right away.

(WebCore::ServiceWorkerContainer::addEventListener):
if navigator.serviceWorker.onmessage event handler gets set by the JavaScript, call
startMessages().

  • workers/service/ServiceWorkerContainer.h:

LayoutTests:

Unskip test that is no longer timing out.

  • resources/testharnessreport.js:

(self.testRunner.add_completion_callback):
Use testRunner.forceImmediateCompletion() instead of notifyDone() for WPT tests.
testRunner.notifyDone() does not work in case of load error or when the load
does not finish. The WPT test was timing out because the load does not finish for
testing purposes.

10:57 PM Changeset in webkit [249628] by david_quesada@apple.com
  • 3 edits in trunk/Source/WTF

REGRESSION(r248533): Unable to use WTF::RefCounted when building in a debug configuration against a non-debug WebKit
https://bugs.webkit.org/show_bug.cgi?id=201585
rdar://problem/55153369

Reviewed by Chris Dumez.

Export WTF::RefCountedBase::areThreadingChecksEnabledGlobally regardless of whether or not assertions
are enabled for the WTF being built. This allows WebKit-based projects to use RefCounted for their own
objects in a debug configuration without requiring a debug build of WebKit.

  • wtf/RefCounted.cpp:
  • wtf/RefCounted.h:
10:42 PM Changeset in webkit [249627] by Chris Dumez
  • 15 edits in trunk

[Service Workers] Drop support for registration resurrection
https://bugs.webkit.org/show_bug.cgi?id=201584

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Re-sync a couple of outdated WPT tests from upstream 820f0f86047e6e.

  • web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https.html:
  • web-platform-tests/service-workers/service-worker/unregister-then-register.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-then-register.https.html:

Source/WebCore:

Drop support for registration resurrection (Unregistering then quickly re-registering would resurrect
the original registration instead of creating a new one). This behavior is no longer in the
specification (No more "isUninstalling" flag on the registration, and the registration is removed
from the "scope to registration map" right away upon unregistering).

This resurrection behavior was causing a lot of flakiness in the tests so it is likely we will be able
to unskip some tests. This is also what was causing the flakiness that caused Bug 201169 to be rolled
out.

No new tests, updated existing tests.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::activeWorkerFromRegistrationID):
(WebCore::SWServer::getRegistration):
(WebCore::SWServer::addRegistration):
(WebCore::SWServer::removeRegistration):
(WebCore::SWServer::getRegistrations):
(WebCore::SWServer::clearAll):
(WebCore::SWServer::clear):
(WebCore::SWServer::terminatePreinstallationWorker):
(WebCore::SWServer::didFinishActivation):
(WebCore::SWServer::claim):
(WebCore::SWServer::addClientServiceWorkerRegistration):
(WebCore::SWServer::removeClientServiceWorkerRegistration):
(WebCore::SWServer::installContextData):
(WebCore::SWServer::runServiceWorker):
(WebCore::SWServer::doRegistrationMatching):
(WebCore::SWServer::registrationFromServiceWorkerIdentifier):
(WebCore::SWServer::registerServiceWorkerClient):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::removeFromScopeToRegistrationMap):
(WebCore::SWServer::performGetOriginsWithRegistrationsCallbacks):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::runRegisterJob):
(WebCore::SWServerJobQueue::runUnregisterJob):
(WebCore::SWServerJobQueue::runUpdateJob):

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::clear):
(WebCore::SWServerRegistration::handleClientUnload):
(WebCore::SWServerRegistration::isUnregistered const):

  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::scopeURLWithoutFragment const):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::SWServerWorker):
(WebCore::m_scriptResourceMap):
(WebCore::SWServerWorker::contextData const):
(WebCore::SWServerWorker::skipWaiting):
(WebCore::SWServerWorker::setHasPendingEvents):
(WebCore::SWServerWorker::setState):
(WebCore::SWServerWorker::registration const):

  • workers/service/server/SWServerWorker.h:
10:26 PM Changeset in webkit [249626] by Chris Dumez
  • 6 edits
    3 deletes in trunk

Rewrite http/tests/workers/service/serviceworker-private-browsing.https.html as an API test
https://bugs.webkit.org/show_bug.cgi?id=201574

Reviewed by Alex Christensen.

Source/WebKit:

Update Service Workers so that they obey the "secureContextChecksEnabled" preference.
This was needed to allow my service worker to access self.caches in my API test.

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::updatePreferencesStore):

Tools:

Rewrite http/tests/workers/service/serviceworker-private-browsing.https.html as an API test so that
we truly test private browsing. testRunner.setPrivateBrowsingEnabled_DEPRECATED() is a hack which
does not work well for WK2.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

LayoutTests:

Drop legacy test which was replaced by an API test.

  • http/tests/workers/service/serviceworker-private-browsing-worker.js: Removed.
  • http/tests/workers/service/serviceworker-private-browsing.https-expected.txt: Removed.
  • http/tests/workers/service/serviceworker-private-browsing.https.html: Removed.
10:11 PM Changeset in webkit [249625] by Chris Dumez
  • 5 edits
    4 deletes in trunk

Rewrite storage/domstorage/localstorage/private-browsing-affects-storage.html as an API test
https://bugs.webkit.org/show_bug.cgi?id=201547

Reviewed by Alex Christensen.

Tools:

Rewrite storage/domstorage/localstorage/private-browsing-affects-storage.html as an API test so
it can use a true ephemeral session instead of the testRunner.setPrivateBrowsingEnabled_DEPRECATED()
hack.

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm:

(-[LocalStorageNavigationDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[LocalStorageNavigationDelegate webView:didFinishNavigation:]):
(TEST):

LayoutTests:

Drop outdated test.

  • storage/domstorage/localstorage/private-browsing-affects-storage.html: Removed.
  • storage/domstorage/localstorage/resources/private-browsing-1.html: Removed.
  • storage/domstorage/localstorage/resources/private-browsing-2.html: Removed.
9:17 PM Changeset in webkit [249624] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Marking up a note on iOS results in a PDF with no contents
https://bugs.webkit.org/show_bug.cgi?id=201530
<rdar://problem/53686019>

Unreviewed follow-up.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _waitForDrawToPDFCallback]):
Remove an ASSERT_NOT_REACHED that fires if the synchronous wait for printing
times out. This is a totally legitimite situation that can occur if the process
crashes; there's no need for an assert there.

8:58 PM Changeset in webkit [249623] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Null check m_client in NetworkDataTask::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=201587
<rdar://problem/54743444>

Reviewed by Chris Dumez.

clearClient can be called at any time. We null check it everyhere else we use it,
and we are seeing crashes at this call site. Let's not crash.

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::didReceiveResponse):

7:29 PM Changeset in webkit [249622] by achristensen@apple.com
  • 17 edits in trunk

Remove WebsiteDataStore::legacyDefaultDataStoreConfiguration
https://bugs.webkit.org/show_bug.cgi?id=200054

Reviewed by Carlos Garcia Campos.

Source/WebKit:

Its last needed use was removed in rdar://problem/47030981
This changes WKContextConfigurationCreateWithLegacyOptions to be equal to WKContextConfigurationCreate,
but it has no remaining clients so it is only being retained for binary compabibility.
This also changes WKContextCreateWithInjectedBundlePath and WKContextCreate to be equal to WKContextCreateWithConfiguration,
and after rdar://problem/47030981 there are no meaningful clients of those functions, also.
There is one existing client of WKContextCreateWithInjectedBundlePath in rdar://problem/50323967 but our current implementation
is compatible enough for them because it uses their injected bundle still.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):
(API::ProcessPoolConfiguration::createWithLegacyOptions): Deleted.

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::createLegacy): Deleted.
(API::WebsiteDataStore::legacyDefaultDataStoreConfiguration): Deleted.

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextCreate):
(WKContextCreateWithInjectedBundlePath):
(WKContextGetWebsiteDataStore):

  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCreate):
(WKContextConfigurationCreateWithLegacyOptions):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultDeviceIdHashSaltsStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): Deleted.

  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(-[WKProcessGroup initWithInjectedBundleURL:]):

  • UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:

(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultDeviceIdHashSaltsStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): Deleted.

  • UIProcess/API/win/APIWebsiteDataStoreWin.cpp:

(API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultNetworkCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultWebSQLDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultIndexedDBDatabaseDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultLocalStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaCacheDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultMediaKeysStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultDeviceIdHashSaltsStorageDirectory): Deleted.
(API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): Deleted.

  • UIProcess/WebInspectorUtilities.cpp:

(WebKit::inspectorProcessPool):

  • UIProcess/WebProcessPool.cpp:

(WebKit::m_webProcessCache):
(WebKit::legacyWebsiteDataStoreConfiguration): Deleted.

  • UIProcess/WebProcessPool.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

This test relied on the default data store having been instantiated.

6:19 PM Changeset in webkit [249621] by mark.lam@apple.com
  • 2 edits in trunk/Source/bmalloc

[Follow up fix] Harden protection of the Gigacage Config parameters.
https://bugs.webkit.org/show_bug.cgi?id=201570
<rdar://problem/55134229>

Reviewed by Saam Barati.

The previously landed hardening measures is failing the assertion in
forbidDisablingPrimitiveGigacage() when a replacement heap (e.g. gmalloc) is
used.

  1. forbidDisablingPrimitiveGigacage() should just ensureGigacage() so that we know that the Gigacage is properly configured (whether enabled or disabled).
  2. Strengthen the assertion in forbidDisablingPrimitiveGigacage() to ensure that we have already determined if the Gigacage should be enabled.
  • bmalloc/Gigacage.cpp:

(Gigacage::forbidDisablingPrimitiveGigacage):

3:56 PM Changeset in webkit [249620] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix Windows build
https://bugs.webkit.org/show_bug.cgi?id=201517

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:
3:54 PM Changeset in webkit [249619] by achristensen@apple.com
  • 8 edits in trunk

Remove calls to WKContextGetWebsiteDataStore missed in r249614
https://bugs.webkit.org/show_bug.cgi?id=200050

Source/WebKit:

It turns out I didn't need to introduce another way of clearing all cookies between tests.
I just needed to make the call to WKHTTPCookieStoreDeleteAllCookies use the right WebsiteDataStore.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::clearCachedCredentials):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::clearCredentials):
(WebKit::NetworkSession::clearCookies): Deleted.

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::clearCookies): Deleted.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::invoke):

3:45 PM Changeset in webkit [249618] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix Windows build.
https://bugs.webkit.org/show_bug.cgi?id=200050

  • PlatformWin.cmake:
3:26 PM Changeset in webkit [249617] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix Windows build.
https://bugs.webkit.org/show_bug.cgi?id=201517

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:
2:45 PM Changeset in webkit [249616] by achristensen@apple.com
  • 2 edits in trunk/Tools

Remove invalid assertion added in r249614
https://bugs.webkit.org/show_bug.cgi?id=200050

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaResetStateToConsistentValues):
Something is instantiating the default data store, which is no problem right now.

1:20 PM Changeset in webkit [249615] by Ryan Haddad
  • 16 edits in trunk

Unreviewed, rolling out r249353.

The test for this change is a flaky failure.

Reverted changeset:

"Add support for postMessage buffering between the service
worker and window"
https://bugs.webkit.org/show_bug.cgi?id=201169
https://trac.webkit.org/changeset/249353

9:04 AM Changeset in webkit [249614] by achristensen@apple.com
  • 33 edits
    2 adds in trunk

Deprecate WKContextGetWebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=200050

Reviewed by Geoff Garen.

Source/WebCore:

  • platform/network/CacheValidation.cpp:

(WebCore::collectVaryingRequestHeaders):
(WebCore::verifyVaryingRequestHeaders):

  • platform/network/CacheValidation.h:

Replace a few NetworkStorageSession& with NetworkStorageSession*
so I can replace defaultStorageSession with the correct NetworkStorageSession in NetworkCache.cpp.

Source/WebKit:

The last use of it was removed in rdar://problem/47030981
In order to remove its use in WebKitTestRunner, I needed to make WKWebsiteDataStoreConfigurationRef
to replace the WKContextConfigurationRef members that should've been associated with the WebsiteDataStore the whole time.
There is one use of WKContextGetWebsiteDataStore in TestWebKitAPI still I'll investigate later.

  • Shared/API/c/WKBase.h:
  • Sources.txt:
  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::create):

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextGetApplicationCacheManager):
(WKContextGetKeyValueStorageManager):
(WKContextGetResourceCacheManager):

  • UIProcess/API/C/WKContext.h:
  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyDiskCacheDirectory):
(WKContextConfigurationSetDiskCacheDirectory):
(WKContextConfigurationCopyApplicationCacheDirectory):
(WKContextConfigurationSetApplicationCacheDirectory):
(WKContextConfigurationCopyIndexedDBDatabaseDirectory):
(WKContextConfigurationSetIndexedDBDatabaseDirectory):
(WKContextConfigurationCopyLocalStorageDirectory):
(WKContextConfigurationSetLocalStorageDirectory):
(WKContextConfigurationCopyWebSQLDatabaseDirectory):
(WKContextConfigurationSetWebSQLDatabaseDirectory):
(WKContextConfigurationCopyMediaKeysStorageDirectory):
(WKContextConfigurationSetMediaKeysStorageDirectory):
(WKContextConfigurationCopyResourceLoadStatisticsDirectory):
(WKContextConfigurationSetResourceLoadStatisticsDirectory):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp: Added.

(WKWebsiteDataStoreConfigurationGetTypeID):
(WKWebsiteDataStoreConfigurationCreate):
(WKWebsiteDataStoreConfigurationCopyApplicationCacheDirectory):
(WKWebsiteDataStoreConfigurationSetApplicationCacheDirectory):
(WKWebsiteDataStoreConfigurationCopyNetworkCacheDirectory):
(WKWebsiteDataStoreConfigurationSetNetworkCacheDirectory):
(WKWebsiteDataStoreConfigurationCopyIndexedDBDatabaseDirectory):
(WKWebsiteDataStoreConfigurationSetIndexedDBDatabaseDirectory):
(WKWebsiteDataStoreConfigurationCopyLocalStorageDirectory):
(WKWebsiteDataStoreConfigurationSetLocalStorageDirectory):
(WKWebsiteDataStoreConfigurationCopyWebSQLDatabaseDirectory):
(WKWebsiteDataStoreConfigurationSetWebSQLDatabaseDirectory):
(WKWebsiteDataStoreConfigurationCopyMediaKeysStorageDirectory):
(WKWebsiteDataStoreConfigurationSetMediaKeysStorageDirectory):
(WKWebsiteDataStoreConfigurationCopyResourceLoadStatisticsDirectory):
(WKWebsiteDataStoreConfigurationSetResourceLoadStatisticsDirectory):

  • UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h: Added.
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreCreateWithConfiguration):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(WebKitBrowserWindow::updateProxySettings):

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generateContextConfiguration const):
(WTR::TestController::websiteDataStore):
(WTR::TestController::generatePageConfiguration):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::platformAdjustContext):
(WTR::TestController::clearServiceWorkerRegistrations):
(WTR::TestController::clearDOMCache):
(WTR::TestController::clearDOMCaches):
(WTR::TestController::ClearIndexedDatabases):
(WTR::TestController::hasDOMCache):
(WTR::TestController::domCacheSize):
(WTR::TestController::setStatisticsDebugMode):
(WTR::TestController::setStatisticsPrevalentResourceForDebugMode):
(WTR::TestController::setStatisticsLastSeen):
(WTR::TestController::setStatisticsPrevalentResource):
(WTR::TestController::setStatisticsVeryPrevalentResource):
(WTR::TestController::dumpResourceLoadStatistics):
(WTR::TestController::isStatisticsPrevalentResource):
(WTR::TestController::isStatisticsVeryPrevalentResource):
(WTR::TestController::isStatisticsRegisteredAsSubresourceUnder):
(WTR::TestController::isStatisticsRegisteredAsSubFrameUnder):
(WTR::TestController::isStatisticsRegisteredAsRedirectingTo):
(WTR::TestController::setStatisticsHasHadUserInteraction):
(WTR::TestController::isStatisticsHasHadUserInteraction):
(WTR::TestController::setStatisticsGrandfathered):
(WTR::TestController::isStatisticsGrandfathered):
(WTR::TestController::setStatisticsSubframeUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUniqueRedirectTo):
(WTR::TestController::setStatisticsSubresourceUniqueRedirectFrom):
(WTR::TestController::setStatisticsTopFrameUniqueRedirectTo):
(WTR::TestController::setStatisticsTopFrameUniqueRedirectFrom):
(WTR::TestController::setStatisticsCrossSiteLoadWithLinkDecoration):
(WTR::TestController::setStatisticsTimeToLiveUserInteraction):
(WTR::TestController::statisticsProcessStatisticsAndDataRecords):
(WTR::TestController::statisticsUpdateCookieBlocking):
(WTR::TestController::statisticsSubmitTelemetry):
(WTR::TestController::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WTR::TestController::setStatisticsIsRunningTest):
(WTR::TestController::setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WTR::TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured):
(WTR::TestController::setStatisticsMinimumTimeBetweenDataRecordsRemoval):
(WTR::TestController::setStatisticsGrandfatheringTime):
(WTR::TestController::setStatisticsMaxStatisticsEntries):
(WTR::TestController::setStatisticsPruneEntriesDownTo):
(WTR::TestController::statisticsClearInMemoryAndPersistentStore):
(WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
(WTR::TestController::statisticsClearThroughWebsiteDataRemoval):
(WTR::TestController::statisticsDeleteCookiesForHost):
(WTR::TestController::isStatisticsHasLocalStorage):
(WTR::TestController::setStatisticsCacheMaxAgeCap):
(WTR::TestController::statisticsResetToConsistentState):
(WTR::TestController::setWebAuthenticationMockConfiguration):
(WTR::TestController::clearAdClickAttributionsThroughWebsiteDataRemoval):

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

LayoutTests:

Rebase some accessibility tests that were printing the SessionID since we're using SessionID 2 for testing now.

  • accessibility/mac/document-attributes-expected.txt:
  • platform/mac/accessibility/parent-delete-expected.txt:
8:01 AM Changeset in webkit [249613] by mark.lam@apple.com
  • 7 edits in trunk/Source

performJITMemcpy() source buffer should not be in the Gigacage.
https://bugs.webkit.org/show_bug.cgi?id=201577
<rdar://problem/55142606>

Reviewed by Michael Saboff.

Source/bmalloc:

  1. Add the Gigacage start address and totalSize to the Config.
  2. Add a contains() function that uses the start address and totalSize to check if a given pointer is in the Gigacage's address range.
  • bmalloc/Gigacage.cpp:

(Gigacage::ensureGigacage):
(Gigacage::verifyGigacageIsEnabled):

  • bmalloc/Gigacage.h:

(Gigacage::contains):

Source/JavaScriptCore:

Add a RELEASE_ASSERT in performJITMemcpy() to ensure that the passed in source
buffer is not in the Gigacage.

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):

Source/WTF:

  • wtf/Gigacage.h:

(Gigacage::contains):

7:53 AM Changeset in webkit [249612] by mark.lam@apple.com
  • 6 edits in trunk

The jsc shell should allow disabling of the Gigacage for testing purposes.
https://bugs.webkit.org/show_bug.cgi?id=201579

Reviewed by Michael Saboff.

JSTests:

Unskip the tests now.

  • stress/disable-gigacage-arrays.js:
  • stress/disable-gigacage-strings.js:
  • stress/disable-gigacage-typed-arrays.js:

Source/JavaScriptCore:

Check for the same GIGACAGE_ENABLED env var that is checked by Gigacage code. If
this env var is present and it has a falsy value, then do not
forbidDisablingPrimitiveGigacage() in the jsc shell.

  • jsc.cpp:

(jscmain):

3:13 AM Changeset in webkit [249611] by mark.lam@apple.com
  • 4 edits in trunk/JSTests

Gardening: temporarily skipping these tests until the fix can be reviewed and landed.

Not reviewed.

See https://bugs.webkit.org/show_bug.cgi?id=201579 for the fix.

  • stress/disable-gigacage-arrays.js:
  • stress/disable-gigacage-strings.js:
  • stress/disable-gigacage-typed-arrays.js:
2:50 AM Changeset in webkit [249610] by mark.lam@apple.com
  • 2 edits in trunk/JSTests

Gardening: speculative test fix to green bots [attempt #2].
https://bugs.webkit.org/show_bug.cgi?id=201529
<rdar://problem/53935772>

Not reviewed.

  • stress/test-out-of-memory.js:

Sep 6, 2019:

10:59 PM Changeset in webkit [249609] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

[FTW] Minor cleanups to avoid crashes during web browsing
https://bugs.webkit.org/show_bug.cgi?id=201572

Reviewed by Alexey Proskuryakov.

This patch addresses a few crashes seen when doing general web browsing using
the FTW build of WebKit:

  1. ImageBuffer::sinkIntoImage was attempting to use a render target after WTFMoving it elsewhere.
  2. ImageBuffer::copyNativeImage was not properly checking the type of the render target to make sure it was suitable for Bitmap operations.
  3. BackingStoreBackendDirect2DImpl::scroll would crash if the scroll offset was outside the bounds of the current view. In that case, it would attempt to allocate a zero-size texture, which triggered a crash.
  • platform/graphics/win/BackingStoreBackendDirect2DImpl.cpp:

(WebCore::BackingStoreBackendDirect2DImpl::scroll):

  • platform/graphics/win/ImageBufferDirect2D.cpp:

(WebCore::ImageBuffer::sinkIntoImage):
(WebCore::ImageBuffer::copyNativeImage const):

10:42 PM Changeset in webkit [249608] by mark.lam@apple.com
  • 11 edits in trunk/Source

Harden protection of the Gigacage Config parameters.
https://bugs.webkit.org/show_bug.cgi?id=201570
<rdar://problem/55134229>

Reviewed by Saam Barati.

Source/bmalloc:

  1. Rename protectGigacageBasePtrs() and unprotectGigacageBasePtrs() to freezeGigacageConfig() and unfreezeGigacageConfig() respectively.

Also move the alignment check in protectGigacageBasePtrs() into ensureGigacage().
There's no need to check it more than once.

  1. Introduce permanentlyFreezeGigacageConfig() which permanently makes the Config ReadOnly. Once invoked, the Config cannot be made writable again.

This is made possible by using vm_protect with a true set_maximum argument.
We also add a g_gigacageConfig.isPermanentlyFrozen flag that we assert.
Note: this permanence is only true for OS(DARWIN) since vm_protect is Mach API.

  1. Rename disableDisablingPrimitiveGigacageIfShouldBeEnabled() to forbidDisablingPrimitiveGigacage() because "disablingDisabling" is a tongue twister.

Also, we don't want to make it conditional on "IfShouldBeEnabled". We want
forbidDisablingPrimitiveGigacage() to be irreversible. It is up to the client
to ensure that the Gigacage is already initialized (if possible) before
invoking forbidDisablingPrimitiveGigacage(). Conceptually, the forbidding
isn't about guaranteeing that the Gigacage is enabled. It only takes away the
option to disable it.

That said, forbidDisablingPrimitiveGigacage() is only invoked by clients that
care about keeping the Gigacage enabled. So, it does a sanity check (with an
assertion) that if !GIGACAGE_ALLOCATION_CAN_FAIL, then the Gigacage should be
have been initialized and enabled before invoking it.

We also make sure that forbidDisablingPrimitiveGigacage() calls
permanentlyFreezeGigacageConfig() unconditionally. It is safe to call it more
than once. This guarantees that the Config is permanently frozen after this,
even if a bug should inadvertantly set the
g_gigacageConfig.disablingPrimitiveGigacageIsForbidden flag before
forbidDisablingPrimitiveGigacage() is invoked.

  1. Assert that ensureGigacage() is only called once.
  1. Assert that shouldBeEnabled() is only called once. Also moved its cached result into the Config so that it can be frozen.
  • bmalloc/Gigacage.cpp:

(Gigacage::bmalloc::freezeGigacageConfig):
(Gigacage::bmalloc::unfreezeGigacageConfig):
(Gigacage::bmalloc::permanentlyFreezeGigacageConfig):
(Gigacage::bmalloc::UnfreezeGigacageConfigScope::UnfreezeGigacageConfigScope):
(Gigacage::bmalloc::UnfreezeGigacageConfigScope::~UnfreezeGigacageConfigScope):
(Gigacage::ensureGigacage):
(Gigacage::disablePrimitiveGigacage):
(Gigacage::verifyGigacageIsEnabled):
(Gigacage::forbidDisablingPrimitiveGigacage):
(Gigacage::isDisablingPrimitiveGigacageForbidden):
(Gigacage::shouldBeEnabled):
(Gigacage::bmalloc::protectGigacageBasePtrs): Deleted.
(Gigacage::bmalloc::unprotectGigacageBasePtrs): Deleted.
(Gigacage::bmalloc::UnprotectGigacageBasePtrsScope::UnprotectGigacageBasePtrsScope): Deleted.
(Gigacage::bmalloc::UnprotectGigacageBasePtrsScope::~UnprotectGigacageBasePtrsScope): Deleted.
(Gigacage::primitiveGigacageDisabled): Deleted.
(Gigacage::disableDisablingPrimitiveGigacageIfShouldBeEnabled): Deleted.
(Gigacage::isDisablingPrimitiveGigacageDisabled): Deleted.

  • bmalloc/Gigacage.h:

(Gigacage::isPrimitiveGigacagePermanentlyEnabled):
(Gigacage::canPrimitiveGigacageBeDisabled):
(Gigacage::forbidDisablingPrimitiveGigacage):
(Gigacage::disableDisablingPrimitiveGigacageIfShouldBeEnabled): Deleted.

Source/JavaScriptCore:

Just renaming some function names here.

  • assembler/testmasm.cpp:

(JSC::testCagePreservesPACFailureBit):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::cageConditionally):

  • jsc.cpp:

(jscmain):

Source/WebKit:

Just renaming a function name here.

  • WebProcess/WebProcess.cpp:

Source/WTF:

Just renaming some function names here.

  • wtf/Gigacage.h:

(Gigacage::forbidDisablingPrimitiveGigacage):
(Gigacage::isDisablingPrimitiveGigacageForbidden):
(Gigacage::disableDisablingPrimitiveGigacageIfShouldBeEnabled): Deleted.
(Gigacage::isDisablingPrimitiveGigacageDisabled): Deleted.

9:19 PM Changeset in webkit [249607] by Devin Rousso
  • 5 edits in trunk

Web Inspector: CSS Formatter: the closing } of nested @media aren't indented
https://bugs.webkit.org/show_bug.cgi?id=201560

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Workers/Formatter/FormatterContentBuilder.js:

(FormatterContentBuilder.prototype.removeLastNewline):
It's possible that there were multiple newlines in a row, so we should update _startOfLine
to be true if the previous line was empty.

LayoutTests:

  • inspector/formatting/resources/css-tests/media-query.css:
  • inspector/formatting/resources/css-tests/media-query-expected.css:
8:19 PM Changeset in webkit [249606] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.2.11.1.3

Tag Safari-608.2.11.1.3.

7:58 PM Changeset in webkit [249605] by Wenson Hsieh
  • 16 edits
    5 adds in trunk

Incorrect selection rect revealed after pasting images in a contenteditable element
https://bugs.webkit.org/show_bug.cgi?id=201549
<rdar://problem/50956429>

Reviewed by Simon Fraser.

Source/WebCore:

Editor::replaceSelectionWithFragment currently scrolls to reveal the selection after inserting the given
DocumentFragment. However, this scrolling occurs before any inserted images have loaded yet, which causes the
wrong caret rect to be revealed, since all image elements inserted during paste will be empty.

To fix this, we defer revealing the selection after inserting the fragment until after all images that have
been inserted are done loading. While waiting for images to load, if any layers which may be scrolled as a
result of revealing the selection are scrolled, we additionally cancel the deferred selection reveal. See
comments below for more detail.

Tests: editing/pasteboard/do-not-reveal-selection-after-programmatic-scroll.html

editing/pasteboard/reveal-selection-after-pasting-images.html
PasteImage.RevealSelectionAfterPastingImage

  • editing/Editing.cpp:

(WebCore::visibleImageElementsInRangeWithNonLoadedImages):

Add a new helper to iterate through a range and collect all image elements in that range, that contain cached
images that have not finished loading yet.

  • editing/Editing.h:
  • editing/Editor.cpp:

(WebCore::Editor::replaceSelectionWithFragment):

Instead of always immediately revealing the selection after applying the ReplaceSelectionCommand, collect the
image elements that were just inserted, and avoid immediately revealing the selection if any of these images
have non-null cached images, but are not loaded yet. Instead, hold on to these images in a set, remove them once
they finish loading using the new method below, and once all images are removed, reveal the selection.

(WebCore::Editor::revealSelectionIfNeededAfterLoadingImageForElement):
(WebCore::Editor::renderLayerDidScroll):

Called whenever a scrollable RenderLayer is scrolled (or in the case of FrameView, the root layer). In the case
where Editor is waiting to reveal the selection, we check to see if the scrolled layer is an ancestor of the
layer enclosing the start of the selection.

(WebCore::Editor::respondToChangedSelection):

If the selection changes between pasting and waiting for pasted images to load, just cancel waiting to reveal
the selection after pasting.

  • editing/Editor.h:
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::insertedContentRange const):

Add a helper method to grab the Range of content inserted after applying the command.

  • editing/ReplaceSelectionCommand.h:
  • page/FrameView.cpp:

(WebCore::FrameView::scrollPositionChanged):

  • page/FrameView.h:
  • page/Page.cpp:

(WebCore::Page::didFinishLoadingImageForElement):

Notify Editor after an image finishes loading.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo):

Source/WebKit:

Tweak some existing logic to use the new visibleImageElementsInRangeWithNonLoadedImages helper function. See
WebCore for more details.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::didConcludeEditDrag):

Tools:

Add an API test to exercise the scenario where we scroll to reveal the selection after pasting an image that was
directly written to the pasteboard.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:

LayoutTests:

Add a couple of new layout tests.

  • editing/pasteboard/do-not-reveal-selection-after-programmatic-scroll-expected.txt: Added.
  • editing/pasteboard/do-not-reveal-selection-after-programmatic-scroll.html: Added.

This test verifies that we don't try to scroll to reveal the caret after pasting, if the scroll position was
changed before the images finished loading.

  • editing/pasteboard/reveal-selection-after-pasting-images-expected.txt: Added.
  • editing/pasteboard/reveal-selection-after-pasting-images.html: Added.
  • platform/ios/editing/pasteboard/reveal-selection-after-pasting-images-expected.txt: Added.

This test verifies that we reveal the caret after loading multiple pasted images in a selection, and dispatch a
scroll event in the process.

7:39 PM Changeset in webkit [249604] by Brent Fulgham
  • 5 edits in trunk/Source/WebCore

PathDirect2D Cleanups
https://bugs.webkit.org/show_bug.cgi?id=201534

Reviewed by Fujii Hironori.

  1. Add a COMPtr<> move operator.
  2. Reduce copying ID2D1Geometry objects.
  3. Protect against using the ID2D1PathGeometry after the ID2D1GeometrySink's Close operation is used.
  4. Add a debug-only 'refCount' function to COMPtr to help track down memory errors.
  • platform/graphics/Path.h:

(WebCore::Path::activePath const): Deleted.

  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::fillPath):
(WebCore::Direct2D::drawPath):

  • platform/graphics/win/PathDirect2D.cpp:
  • platform/win/COMPtr.h:

(COMPtr::COMPtr):
(=):
(refCount):

6:53 PM Changeset in webkit [249603] by Chris Dumez
  • 11 edits
    1 copy
    1 add in trunk/Source

Move the ResourceLoadObserver logic to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=201517

Reviewed by Brent Fulgham.

Move the ResourceLoadObserver logic to WebKit2 since it is not used by WebKit1. This allows us to simplify
code.

In a follow-up patch, I will simplify the code even further by leveraging the fact that a WebContent process
is always associated with a single WebsiteDataStore / sessionID:

  • No need for a HashMap of sessionIDs
  • No need to even allocate the ResourceLoadObserver if the WebProcess is associated with an ephemeral session.

Source/WebCore:

  • dom/Document.h:
  • loader/ResourceLoadObserver.cpp:

(WebCore::sharedObserver):
(WebCore::ResourceLoadObserver::setShared):
(WebCore::ResourceLoadObserver::shared):

  • loader/ResourceLoadObserver.h:

(WebCore::ResourceLoadObserver::~ResourceLoadObserver):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::logFontLoad):
(WebCore::ResourceLoadObserver::logCanvasRead):
(WebCore::ResourceLoadObserver::logCanvasWriteOrMeasure):
(WebCore::ResourceLoadObserver::logNavigatorAPIAccessed):
(WebCore::ResourceLoadObserver::logScreenAPIAccessed):
(WebCore::ResourceLoadObserver::statisticsForURL):
(WebCore::ResourceLoadObserver::updateCentralStatisticsStore):
(WebCore::ResourceLoadObserver::clearState):
(WebCore::ResourceLoadObserver::setShouldLogUserInteraction):

  • page/DeprecatedGlobalSettings.h:

Source/WebKit:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: Copied from Source/WebCore/loader/ResourceLoadObserver.cpp.

(WebKit::is3xxRedirect):
(WebKit::WebResourceLoadObserver::WebResourceLoadObserver):
(WebKit::WebResourceLoadObserver::shouldLog const):
(WebKit::WebResourceLoadObserver::requestStorageAccessUnderOpener):
(WebKit::WebResourceLoadObserver::ensureResourceStatisticsForRegistrableDomain):
(WebKit::WebResourceLoadObserver::scheduleNotificationIfNeeded):
(WebKit::WebResourceLoadObserver::updateCentralStatisticsStore):
(WebKit::WebResourceLoadObserver::statisticsForURL):
(WebKit::WebResourceLoadObserver::takeStatistics):
(WebKit::WebResourceLoadObserver::clearState):
(WebKit::WebResourceLoadObserver::nonNullOwnerURL const):
(WebKit::WebResourceLoadObserver::logFontLoad):
(WebKit::WebResourceLoadObserver::logCanvasRead):
(WebKit::WebResourceLoadObserver::logCanvasWriteOrMeasure):
(WebKit::WebResourceLoadObserver::logNavigatorAPIAccessed):
(WebKit::WebResourceLoadObserver::logScreenAPIAccessed):
(WebKit::WebResourceLoadObserver::logSubresourceLoading):
(WebKit::WebResourceLoadObserver::logWebSocketLoading):
(WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h: Added.
  • WebProcess/WebProcess.cpp:
5:42 PM Changeset in webkit [249602] by Matt Lewis
  • 4 edits
    2 deletes in trunk/Tools

Unreviewed, rolling out r249582.

This caused results.html fail to be created on internal
testers.

Reverted changeset:

"run-webkit-test: Allow results to be uploaded without scm
checkout"
https://bugs.webkit.org/show_bug.cgi?id=200787
https://trac.webkit.org/changeset/249582

5:24 PM Changeset in webkit [249601] by Justin Fan
  • 117 edits
    8 moves in trunk

[WebGPU] Update several interface and enum names to match spec
https://bugs.webkit.org/show_bug.cgi?id=201564

Reviewed by Dean Jackson.

Rename GPUShaderStageBit -> GPUShaderStage.
Rename GPUColorWriteBits -> GPUColorWrite.
Rename TRANSFER_SRC/DST -> COPY_SRC/DST.
Source/WebCore:

Rename GPUPipelineStageDescriptor -> GPUProgrammableStageDescriptor.

Existing tests trivially updated to match.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webgpu/GPUBindGroupLayoutBinding.h:
  • Modules/webgpu/GPUBufferUsage.idl:
  • Modules/webgpu/GPUColorStateDescriptor.idl:
  • Modules/webgpu/GPUColorWrite.idl: Renamed from Source/WebCore/Modules/webgpu/GPUColorWriteBits.idl.
  • Modules/webgpu/GPUShaderStage.h: Renamed from Source/WebCore/Modules/webgpu/GPUShaderStageBit.h.
  • Modules/webgpu/GPUShaderStage.idl: Renamed from Source/WebCore/Modules/webgpu/GPUShaderStageBit.idl.
  • Modules/webgpu/GPUTextureUsage.idl:
  • Modules/webgpu/WebGPUComputePipelineDescriptor.cpp:

(WebCore::WebGPUComputePipelineDescriptor::tryCreateGPUComputePipelineDescriptor const):

  • Modules/webgpu/WebGPUComputePipelineDescriptor.h:
  • Modules/webgpu/WebGPUComputePipelineDescriptor.idl:
  • Modules/webgpu/WebGPUDevice.cpp:
  • Modules/webgpu/WebGPUProgrammableStageDescriptor.cpp: Renamed from Source/WebCore/Modules/webgpu/WebGPUPipelineStageDescriptor.cpp.

(WebCore::WebGPUProgrammableStageDescriptor::tryCreateGPUProgrammableStageDescriptor const):

  • Modules/webgpu/WebGPUProgrammableStageDescriptor.h: Renamed from Source/WebCore/Modules/webgpu/WebGPUPipelineStageDescriptor.h.
  • Modules/webgpu/WebGPUProgrammableStageDescriptor.idl: Renamed from Source/WebCore/Modules/webgpu/WebGPUPipelineStageDescriptor.idl.
  • Modules/webgpu/WebGPURenderPipelineDescriptor.cpp:

(WebCore::WebGPURenderPipelineDescriptor::tryCreateGPURenderPipelineDescriptor const):

  • Modules/webgpu/WebGPURenderPipelineDescriptor.h:
  • Modules/webgpu/WebGPURenderPipelineDescriptor.idl:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • platform/graphics/gpu/GPUBuffer.h:

(WebCore::GPUBuffer::isCopySource const):
(WebCore::GPUBuffer::isCopyDestination const):
(WebCore::GPUBuffer::isTransferSource const): Deleted.
(WebCore::GPUBuffer::isTransferDestination const): Deleted.

  • platform/graphics/gpu/GPUBufferUsage.h:
  • platform/graphics/gpu/GPUColorStateDescriptor.h:
  • platform/graphics/gpu/GPUColorWrite.h: Renamed from Source/WebCore/platform/graphics/gpu/GPUColorWriteBits.h.
  • platform/graphics/gpu/GPUComputePipelineDescriptor.h:

(WebCore::GPUComputePipelineDescriptor::GPUComputePipelineDescriptor):

  • platform/graphics/gpu/GPUPipelineDescriptorBase.h:
  • platform/graphics/gpu/GPUProgrammableStageDescriptor.h: Renamed from Source/WebCore/platform/graphics/gpu/GPUPipelineStageDescriptor.h.

(WebCore::GPUProgrammableStageDescriptor::GPUProgrammableStageDescriptor):

  • platform/graphics/gpu/GPURenderPipelineDescriptor.h:

(WebCore::GPURenderPipelineDescriptor::GPURenderPipelineDescriptor):

  • platform/graphics/gpu/GPUTexture.h:

(WebCore::GPUTexture::isCopySource const):
(WebCore::GPUTexture::isCopyDestination const):
(WebCore::GPUTexture::isReadOnly const):
(WebCore::GPUTexture::isTransferSource const): Deleted.
(WebCore::GPUTexture::isTransferDestination const): Deleted.

  • platform/graphics/gpu/GPUTextureUsage.h:
  • platform/graphics/gpu/cocoa/GPUBindGroupLayoutMetal.mm:

(WebCore::GPUBindGroupLayout::tryCreate):

  • platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:

(WebCore::GPUBindGroup::tryCreate):

  • platform/graphics/gpu/cocoa/GPUBufferMetal.mm:
  • platform/graphics/gpu/cocoa/GPUCommandBufferMetal.mm:

(WebCore::GPUCommandBuffer::copyBufferToBuffer):
(WebCore::GPUCommandBuffer::copyBufferToTexture):
(WebCore::GPUCommandBuffer::copyTextureToBuffer):
(WebCore::GPUCommandBuffer::copyTextureToTexture):

  • platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:

(WebCore::trySetFunctions):

  • platform/graphics/gpu/cocoa/GPUPipelineMetalConvertLayout.cpp:

(WebCore::convertShaderStageFlags):

  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:

(WebCore::mtlColorWriteMaskForGPUColorWriteFlags):
(WebCore::trySetFunctions):

  • platform/graphics/gpu/cocoa/GPUTextureMetal.mm:

(WebCore::mtlTextureUsageForGPUTextureUsageFlags):

LayoutTests:

  • webgpu/bind-groups.html:
  • webgpu/blend-color-triangle-strip.html:
  • webgpu/blit-commands.html:
  • webgpu/buffer-errors.html:
  • webgpu/color-write-mask-triangle-strip.html:
  • webgpu/pipeline-layouts.html:
  • webgpu/render-pipelines.html:
  • webgpu/texture-triangle-strip.html:
  • webgpu/textures-textureviews.html:
  • webgpu/whlsl/arbitrary-vertex-attribute-locations.html:
  • webgpu/whlsl/buffer-fragment.html:
  • webgpu/whlsl/buffer-length.html:
  • webgpu/whlsl/buffer-vertex.html:
  • webgpu/whlsl/checker-should-set-type-of-read-modify-write-variables.html:
  • webgpu/whlsl/compute.html:
  • webgpu/whlsl/dereference-pointer-should-type-check.html:
  • webgpu/whlsl/device-proper-type-checker.html:
  • webgpu/whlsl/do-while-loop-break.html:
  • webgpu/whlsl/do-while-loop-continue.html:
  • webgpu/whlsl/do-while-loop.html:
  • webgpu/whlsl/dont-crash-parsing-enum.html:
  • webgpu/whlsl/dot-expressions.html:
  • webgpu/whlsl/duplicate-types-should-not-produce-duplicate-ctors.html:
  • webgpu/whlsl/ensure-proper-variable-lifetime-2.html:
  • webgpu/whlsl/ensure-proper-variable-lifetime-3.html:
  • webgpu/whlsl/ensure-proper-variable-lifetime.html:
  • webgpu/whlsl/huge-array.html:
  • webgpu/whlsl/js/test-harness.js:

(Harness.prototype.async.callTypedFunction):
(Harness.prototype._clearResults):
(Harness.prototype._setUpArguments):

  • webgpu/whlsl/loops-break.html:
  • webgpu/whlsl/loops-continue.html:
  • webgpu/whlsl/loops.html:
  • webgpu/whlsl/make-array-reference.html:
  • webgpu/whlsl/matrix-2.html:
  • webgpu/whlsl/matrix-alignment.html:
  • webgpu/whlsl/matrix-memory-layout.html:
  • webgpu/whlsl/matrix.html:
  • webgpu/whlsl/nested-dot-expression-rvalue.html:
  • webgpu/whlsl/nested-loop.html:
  • webgpu/whlsl/oob-access.html:
  • webgpu/whlsl/read-modify-write-high-zombies.html:
  • webgpu/whlsl/return-local-variable.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-10.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-11.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-12.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-13.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-14.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-15.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-16.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-17.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-18.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-19.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-2.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-20.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-21.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-22.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-23.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-24.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-25.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-26.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-27.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-3.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-4.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-5.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-6.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-8.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules-9.html:
  • webgpu/whlsl/separate-shader-modules/separate-shader-modules.html:
  • webgpu/whlsl/simple-arrays.html:
  • webgpu/whlsl/store-to-property-updates-properly.html:
  • webgpu/whlsl/textures-load.html:
  • webgpu/whlsl/textures-sample-bias.html:
  • webgpu/whlsl/textures-sample-grad.html:
  • webgpu/whlsl/textures-sample-level.html:
  • webgpu/whlsl/textures-sample.html:
  • webgpu/whlsl/two-dimensional-array.html:
  • webgpu/whlsl/while-loop-break.html:
  • webgpu/whlsl/while-loop-continue.html:
  • webgpu/whlsl/whlsl.html:
  • webgpu/whlsl/zero-initialize-values-2.html:
  • webgpu/whlsl/zero-initialize-values.html:
5:08 PM Changeset in webkit [249600] by jiewen_tan@apple.com
  • 4 edits in trunk/Source/WebKit

[WebAuthn] Make WebAuthn default off and let clients turn it on at will
https://bugs.webkit.org/show_bug.cgi?id=201439
<rdar://problem/54998154>

Reviewed by Youenn Fablet.

This patch makes WebAuthn default off such that clients that have the right entitlements
could turn it on and we don't risk at turning on a Web API that does nothing by default.

This patch doesn't add any SPI to turn the feature on as it is currently doable via

  • [WKPreferencesPrivate _setEnabled:forExperimentalFeature:].
  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultWebAuthenticationEnabled): Deleted.

  • Shared/WebPreferencesDefaultValues.h:
4:09 PM Changeset in webkit [249599] by mark.lam@apple.com
  • 2 edits in trunk/JSTests

Gardening: speculative test fix to green bots.
https://bugs.webkit.org/show_bug.cgi?id=201529
<rdar://problem/53935772>

Not reviewed.

  • stress/test-out-of-memory.js:
3:59 PM Changeset in webkit [249598] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Status bubble should only display important messages in pop-over - part 2
https://bugs.webkit.org/show_bug.cgi?id=201557

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py:

(StatusBubble): Add few more strings to STEPS_TO_HIDE.

3:49 PM Changeset in webkit [249597] by Ross Kirsling
  • 8 edits in trunk

Math.round() produces wrong result for value prior to 0.5
https://bugs.webkit.org/show_bug.cgi?id=185115

Reviewed by Saam Barati.

JSTests:

  • stress/math-round-basics.js:

Add positive/negative test cases.

  • test262/expectations.yaml:

Mark test passing.

Source/JavaScriptCore:

Our Math.round implementation goes in the wrong direction for double values like 0.49999999999999994.
This requires just a subtle adjustment for three of our four versions; only baseline JIT needed a full rewrite.

Specifically:

  • While 0.49999999999999994 is representable, 1 - 0.49999999999999994 is not (it turns into 0.5), so taking the difference between ceil(value) and value` is problematic.
  • The baseline implementation was doing floor(x + 0.5) for positive doubles and slowpathing negative ones (by falling back to jsRound). This patch gives baseline a legitimate implementation too.
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithRounding):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArithRound):

  • jit/ThunkGenerators.cpp:

(JSC::roundThunkGenerator):

  • runtime/MathCommon.cpp:
3:34 PM Changeset in webkit [249596] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS Formatter: links to CSS resources don't map to the right line after pretty printing if the line is after a multiline comment
https://bugs.webkit.org/show_bug.cgi?id=201559

Reviewed by Joseph Pecoraro.

Newlines in multiline comments weren't added as line endings, so they weren't considered
when a source code location updated after pretty printing.

  • UserInterface/Workers/Formatter/CSSFormatter.js:

(CSSFormatter.prototype._format):

3:23 PM Changeset in webkit [249595] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html is frequently timing out on iOS EWS bots
https://bugs.webkit.org/show_bug.cgi?id=201550

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Mark the test as flaky to speed up EWS while we investigate the root cause.
3:15 PM Changeset in webkit [249594] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

REGRESSION (r249367): m_decodingPromises grows indefinitely until ImageLoader destruction
https://bugs.webkit.org/show_bug.cgi?id=201402

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-06
Reviewed by Youenn Fablet and Daniel Bates.

Source/WebCore:

Add the static functions resolvePromises() and rejectPromises(). These
functions take an lvalue reference to a Vector of promises. Inside them,
the lvalue reference argument are exchanged with an empty Vector of
promises then the promises are processed. This clears m_decodingPromises
and fixes the leak.

Add an internal API which returns the count of the pending promises of
an HTMLImageElement. This internal API will be used in the attached test.

Test: fast/images/decode-resolve-reject-no-leak.html

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::pendingDecodePromisesCountForTesting const):

  • loader/ImageLoader.cpp:

(WebCore::resolvePromises):
ImageLoader::decode() calls BitmapImage::decode() and moves m_decodingPromises
in capture. When decoding finishes, this function is called to resolve the
promises. But ImageLoader might get deleted before the image decoding
finishes. So this function has to be static.

(WebCore::rejectPromises):
(WebCore::ImageLoader::resolveDecodePromises):
(WebCore::ImageLoader::rejectDecodePromises):
(WebCore::ImageLoader::notifyFinished):
(WebCore::ImageLoader::decode):
(WebCore::resolveDecodePromises): Deleted.
(WebCore::rejectDecodePromises): Deleted.

  • loader/ImageLoader.h:

(WebCore::ImageLoader::pendingDecodePromisesCountForTesting const):

  • testing/Internals.cpp:

(WebCore::Internals::imagePendingDecodePromisesCountForTesting):

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

LayoutTests:

  • fast/images/decode-resolve-reject-no-leak-expected.txt: Added.
  • fast/images/decode-resolve-reject-no-leak.html: Added.
2:57 PM Changeset in webkit [249593] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Prefer null namespace 'href' over 'xlink:href' on SVG elements
https://bugs.webkit.org/show_bug.cgi?id=195802

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-09-06
Reviewed by Youenn Fablet.

Source/WebCore:

-- When the attribute "href" is set, its value is always reflected in

SVGURIReference::m_href.

-- When the attribute "href" is removed, the value of the attribute

"xlink:href" is always reflected in SVGURIReference::m_href.

-- When the "xlink:href" is set, its value is reflected in

SVGURIReference::m_href only if the attribute "href" is not set.

Tests: svg/custom/href-xlink-href-gradient-element-expected.svg

svg/custom/href-xlink-href-gradient-element.svg
svg/custom/href-xlink-href-use-element-expected.svg
svg/custom/href-xlink-href-use-element.svg

  • svg/SVGURIReference.cpp:

(WebCore::SVGURIReference::parseAttribute):

LayoutTests:

  • svg/custom/href-xlink-href-gradient-element-expected.svg: Added.
  • svg/custom/href-xlink-href-gradient-element.svg: Added.
  • svg/custom/href-xlink-href-use-element-expected.svg: Added.
  • svg/custom/href-xlink-href-use-element.svg: Added.
2:19 PM Changeset in webkit [249592] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Better position for Sources tab when enabling the experimental setting
https://bugs.webkit.org/show_bug.cgi?id=201539

Reviewed by Devin Rousso.

  • UserInterface/Views/SettingsTabContentView.js:

Place the Sources tab where the Debugger tab was.

2:08 PM Changeset in webkit [249591] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Set computed row width.
https://bugs.webkit.org/show_bug.cgi?id=201533
<rdar://problem/55098828>

Reviewed by Antti Koivisto.

Decouple cell box layout/display box setup and set the computed row width.

  • layout/Verification.cpp:

(WebCore::Layout::LayoutState::verifyAndOutputMismatchingLayoutTree const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layout):

1:51 PM Changeset in webkit [249590] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] A formatting context root is always a containing block for relative: static boxes.
https://bugs.webkit.org/show_bug.cgi?id=201554
<rdar://problem/55123295>

Reviewed by Antti Koivisto.

"For other elements, if the element's position is 'relative' or 'static', the containing block is formed by the content
edge of the nearest ancestor box that is a block container or which establishes a formatting context."

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::containingBlock const):

  • page/FrameViewLayoutContext.cpp:

(WebCore::layoutUsingFormattingContext):

1:42 PM Changeset in webkit [249589] by achristensen@apple.com
  • 26 edits
    2 adds
    1 delete in trunk

Deprecate all WKCookieManagerRef functions
https://bugs.webkit.org/show_bug.cgi?id=201473

Reviewed by Chris Dumez.

Source/WebKit:

Their use was removed in rdar://problem/55039275
Created replacement C API that more closely resembles the public ObjC API for WebKitTestRunner.

  • Shared/API/c/WKBase.h:
  • Sources.txt:
  • UIProcess/API/APIHTTPCookieStore.cpp:

(API::HTTPCookieStore::deleteAllCookies):
(API::HTTPCookieStore::setHTTPCookieAcceptPolicy):
(API::HTTPCookieStore::deleteCookiesInDefaultUIProcessCookieStore):
(API::HTTPCookieStore::setHTTPCookieAcceptPolicyInDefaultUIProcessCookieStore):

  • UIProcess/API/APIHTTPCookieStore.h:
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetStorageAccessAPIEnabled):

  • UIProcess/API/C/WKContext.h:
  • UIProcess/API/C/WKCookieManager.cpp:

(WKCookieManagerGetTypeID):
(WKCookieManagerSetClient):
(WKCookieManagerGetHostnamesWithCookies):
(WKCookieManagerDeleteCookiesForHostname):
(WKCookieManagerDeleteAllCookies):
(WKCookieManagerDeleteAllCookiesModifiedAfterDate):
(WKCookieManagerSetHTTPCookieAcceptPolicy):
(WKCookieManagerGetHTTPCookieAcceptPolicy):
(WKCookieManagerSetStorageAccessAPIEnabled):
(WKCookieManagerStartObservingCookieChanges):
(WKCookieManagerStopObservingCookieChanges):

  • UIProcess/API/C/WKCookieManager.h:
  • UIProcess/API/C/WKHTTPCookieStoreRef.cpp: Added.

(WKHTTPCookieStoreGetTypeID):
(WKHTTPCookieStoreDeleteAllCookies):
(WKHTTPCookieStoreSetHTTPCookieAcceptPolicy):

  • UIProcess/API/C/WKHTTPCookieStoreRef.h: Added.
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreGetHTTPCookieStore):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/API/Cocoa/APIHTTPCookieStoreCocoa.mm:

(API::HTTPCookieStore::deleteCookiesInDefaultUIProcessCookieStore):
(API::toNSHTTPCookieAcceptPolicy):
(API::HTTPCookieStore::setHTTPCookieAcceptPolicyInDefaultUIProcessCookieStore):

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::setStorageAccessAPIEnabled): Deleted.

  • UIProcess/WebCookieManagerProxy.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Adopt replacement C API in WebKitTestRunner.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/CookieManager.cpp: Removed, because the functions it tests were removed.
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::invoke):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

1:23 PM Changeset in webkit [249588] by mark.lam@apple.com
  • 4 edits in trunk/Source/bmalloc

Use FailureAction everywhere in bmalloc instead of a crashOnFailure boolean.
https://bugs.webkit.org/show_bug.cgi?id=201553

Reviewed by Yusuke Suzuki.

  • bmalloc/Cache.cpp:

(bmalloc::Cache::tryAllocateSlowCaseNullCache):
(bmalloc::Cache::allocateSlowCaseNullCache):
(bmalloc::Cache::tryReallocateSlowCaseNullCache):
(bmalloc::Cache::reallocateSlowCaseNullCache):

  • bmalloc/DebugHeap.cpp:

(bmalloc::DebugHeap::malloc):
(bmalloc::DebugHeap::memalign):
(bmalloc::DebugHeap::realloc):

  • bmalloc/DebugHeap.h:
1:08 PM Changeset in webkit [249587] by mark.lam@apple.com
  • 1 edit
    1 move in trunk/JSTests

Move web-assembly-constructors-should-not-override-global-object-property.js below JSTests/wasm/stress.
https://bugs.webkit.org/show_bug.cgi?id=201551

Reviewed by Tadeu Zagallo.

Ports that don't support WASM will always fail this test if it stays in JSTests/stress.

  • stress/web-assembly-constructors-should-not-override-global-object-property.js: Removed.
  • wasm/stress/web-assembly-constructors-should-not-override-global-object-property.js: Copied from JSTests/stress/web-assembly-constructors-should-not-override-global-object-property.js.
12:11 PM Changeset in webkit [249586] by Joseph Pecoraro
  • 5 edits
    2 copies
    2 moves
    17 adds
    4 deletes in trunk

Tail Deleted Frames shown in Web Inspector are sometimes incorrect (Shadow Chicken)
https://bugs.webkit.org/show_bug.cgi?id=201366

Reviewed by Saam Barati.

Source/JavaScriptCore:

It is possible for the log buffer to be full right as someone is trying to
log a function prologue. In such a case the machine stack has already been
updated to include the new JavaScript call frame, but the prologue packet
cannot be included in the update because the log is full. This would mean
that the update fails to rationalize the machine stack with the shadow
log / stack. Namely, the current JavaScript call frame is unable to
find a matching prologue (the one we are holding to include after the update)
and inserts a questionable value into the stack; and in the process
missing and removing real potential tail calls.

For example:

"use strict";
function third() { return 1; }
function second() { return third(); }
function first() { return second(); }
function start() { return first(); }

If the the log fills up just as we are entering b then we may have a list
full log of packets looking like:

Shadow Log:

...
{ prologue-packet: entering start ... }
{ prologue-packet: entering first ... }
{ tail-packet: leaving first with a tail call }

Incoming Packet:

{ prologue-packet: entering second ... }

Current JS Stack:

second
start

Since the Current JavaScript stack already has second, if we process the
log without the prologue for second then we push a confused entry on the
shadow stack and clear the log such that we eventually lose the tail-call
information for first to second.

This patch solves this issue by providing enough extra space in the log
to always process the incoming packet when that forces an update. This way
clients can continue to behave exactly as they are.

--

We also document a corner case in some circumstances where the shadow
log may currently be insufficient to know how to reconcile:

For example:

"use strict";
function third() { return 1; }
function second() { return third(); }
function first() { return second(); }
function doNothingTail() { return Math.random() }
function start() {

for (i=0;i<1000;++i) doNothingTail();
return first();

}

In this case the ShadowChicken log may be processed multiple times due
to the many calls to doNothingTail / Math.random(). When calling the
Native function no prologue packet is emitted, so it is unclear that we
temporarly go deeper and come back out on the stack, so the log appears
to have lots of doNothingTail calls reusing the same frame:

Shadow Log:

...
, [123] {callee = 0x72a21aee0, frame = 0x7ffeef897270, callerFrame = 0x7ffeef8972e0, name = start}
, [124] {callee = 0x72a21af10, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = doNothingTail}
, [125] tail-packet:{frame = 0x7ffeef8971f0}
, [126] {callee = 0x72a21af10, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = doNothingTail}
, [127] tail-packet:{frame = 0x7ffeef8971f0}
...
, [140] {callee = 0x72a21af10, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = doNothingTail}
, [141] tail-packet:{frame = 0x7ffeef8971f0}
, [142] {callee = 0x72a21af10, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = doNothingTail}
, [143] tail-packet:{frame = 0x7ffeef8971f0}
, [144] {callee = 0x72a21aeb0, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = first}
, [145] tail-packet:{frame = 0x7ffeef8971f0}
, [146] {callee = 0x72a21ae80, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = second}
...

This log would seem to be indistinguishable from real tail recursion, such as:

"use strict";
function third() { return 1; }
function second() { return third(); }
function first() { return second(); }
function doNothingTail(n) {

return n ? doNothingTail(n-1) : first();

}
function start() {

return doNothingTail(1000);

}

Likewise there are more cases where the shadow log appears to be ambiguous with determining
the appropriate parent call frame with intermediate function calls. In practice this may
not be too problematic, as this is a best effort reconstruction of tail deleted frames.
It seems likely we would only show additional frames that did in fact happen serially
between JavaScript call frames, but may not actually be the proper parent frames
heirachy in the stack.

  • interpreter/ShadowChicken.cpp:

(JSC::ShadowChicken::Packet::dump const):
(JSC::ShadowChicken::Frame::dump const):
(JSC::ShadowChicken::dump const):
Improved debugging output. Especially for functions.

(JSC::ShadowChicken::ShadowChicken):
Make space in the log for 1 additional packet to process when we slow log.

(JSC::ShadowChicken::log):
Include this packet in our update.

(JSC::ShadowChicken::update):
Address an edge case where we can eliminate tail-deleted frames that don't make sense.

LayoutTests:

  • inspector/debugger/tail-deleted-frames-expected.txt: Removed.
  • inspector/debugger/tail-deleted-frames-from-vm-entry-expected.txt: Removed.
  • inspector/debugger/tail-deleted-frames-from-vm-entry.html: Removed.
  • inspector/debugger/tail-deleted-frames-this-value-expected.txt: Removed.
  • inspector/debugger/tail-deleted-frames-this-value.html: Removed.
  • inspector/debugger/tail-deleted-frames.html: Removed.

Remove legacy tests that are difficult to read.

  • inspector/debugger/tail-deleted-frames/resources/stack-trace-utilities.js: Added.

(TestPage.registerInitializer.window.getAsyncStackTrace):
(TestPage.registerInitializer.async.logThisObject):
(TestPage.registerInitializer.async.logScope):
(TestPage.registerInitializer.async.logCallFrame):
(TestPage.registerInitializer):

  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-frames.js: Added.
  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-native-tail-deleted-calls.js: Added.
  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-tail-deleted-frames.js: Added.
  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-scopes.js: Added.
  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-this-value.js: Added.
  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-vm-entry.js: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames.html: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-tail-deleted-frames-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-tail-deleted-frames.html: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-scopes-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-scopes.html: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value.html: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-vm-entry-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-vm-entry.html: Added.

Include modern tests that are easier to read.

  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-native-tail-deleted-calls-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-native-tail-deleted-calls.html: Added.

Include a test that is known to produce bad output, since we have reproductive steps.

  • platform/mac/TestExpectations:

Updated pathes.

12:03 PM Changeset in webkit [249585] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(iOS 12): Keyboard dismissal leaves WKWebView viewport-fit=cover content offscreen
https://bugs.webkit.org/show_bug.cgi?id=192564

Patch by Darryl Pogue <darryl@dpogue.ca> on 2019-09-06
Reviewed by Tim Horton.

Source/WebKit:

The new keyboard height was being read into a variable after the scrollview had already been
adjusted. This worked when the keyboard was opening, because the scrollview is adjusted with
the correct value a second time when the keyboard animation has finished. However, when the
keyboard is closed, the adjustment was being made before the correct height was stored,
leading to the scrollview being positioned as if the keyboard were still open.

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView _adjustForAutomaticKeyboardInfo:animated:lastAdjustment:]):

LayoutTests:

Added tests to verify scrolling properly adapts to the keyboard insets on iOS.

  • fast/scrolling/ios/scrollview-adjusts-to-keyboard-insets-expected.txt: Added.
  • fast/scrolling/ios/scrollview-adjusts-to-keyboard-insets.html: Added.
11:46 AM Changeset in webkit [249584] by timothy_horton@apple.com
  • 6 edits
    1 add in trunk

Marking up a note on iOS results in a PDF with no contents
https://bugs.webkit.org/show_bug.cgi?id=201530
<rdar://problem/53686019>

Reviewed by Andy Estes.

Source/WebKit:

  • Platform/IPC/Connection.cpp:

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

  • Platform/IPC/Connection.h:

If the main thread is blocked when the Web Content process dies, and
something eventually calls waitForAndDispatchImmediately without
returning control to the main run loop, we will wait for the full timeout,
because a) the code to mark the connection invalid is dispatched
to the main thread, and b) the secondary thread that is informed of
the Web Content process dying did not yet have a "waiting for" message
to mark as interrupted (because it wasn't waiting yet).

Fix this race by adding a bit that is set under the waitForMessage lock
on the secondary thread when the connection is invalidated, identically
to m_shouldWaitForSyncReplies, which solves the same problem for sync
messages.

Read the new bit when we are about to start waiting, and bail if it is set.
It's OK to not read it inside the loop because we are guaranteed to have
waitForMessage set at that point, so the normal interruption bit will work.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _processDidExit]):
Reset _isPrintingToPDF; the Web Content process is never going to get
back to us if it crashes.

(-[WKContentView _wk_pageCountForPrintFormatter:]):
Do not bail from starting a printing operation if one is already occurring.
This fixes the original bug, because Markup ends up invalidating the page
count at least one extra time before asking for the printed document.
Instead of maintaining the fragile requirement that you cannot recompute
the page count while printing, just let it happen. In order to make this
work safely, synchronously wait for the previous printed result before
continuing with the next print.

We could do more coalescing here if need be, but calls to -_recalcPageCount
are not high in volume.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewPrintFormatter.mm:

Add some tests for WKWebViewPrintFormatter; specifically that it is
possible to _recalcPageCount twice in quick succession, and that
we don't hang if we start painting the printed content immediately
after a Web Content process crash.

11:28 AM Changeset in webkit [249583] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

IndexedDB: use SQL COUNT statement for count operation
https://bugs.webkit.org/show_bug.cgi?id=201465

Reviewed by Geoffrey Garen.

We did count operation by moving objectStore/index iterator from begin to end and counting the steps. We can
utilize the SQL COUNT statement, and improve the performance further by caching the statement.

Tested on release build minibrowser. Without the change, the mean time to complete one iteration in
PerformanceTests/IndexedDB/basic/index-count.html and PerformanceTests/IndexedDB/basic/objectStore-count.html is
about 50ms. With the change it is about 2ms.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::getCount):
(WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatement):
(WebCore::IDBServer::SQLiteIDBBackingStore::closeSQLiteDB):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
11:10 AM Changeset in webkit [249582] by Matt Lewis
  • 4 edits
    2 adds in trunk/Tools

run-webkit-test: Allow results to be uploaded without scm checkout
https://bugs.webkit.org/show_bug.cgi?id=200787

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/checkout/scm/detection.py:

(SCMDetector.detect_scm_system): Added in detection of stub repository.

  • Scripts/webkitpy/common/checkout/scm/stub_repository.py: Added.

(StubRepository):
(StubRepository.init):
(StubRepository._find_parent_path_matching_callback_condition): Checks up the path given to
find the directory containing the checkout_information.json of the stub repository.
(StubRepository.in_working_directory): Required functions to be implemented.
(StubRepository.svn_revision): Required functions to be implemented.
(StubRepository.native_revision): Required functions to be implemented.
(StubRepository.native_branch): Required functions to be implemented.
(StubRepository._decode_json): Decodes checkout_information.json.
(StubRepository.find_checkout_root): Required functions to be implemented.

  • Scripts/webkitpy/common/checkout/scm/stub_repository_unittest.py: Added.

(StubRepositoryTest): Unit test for stub_repository SCM.
(StubRepositoryTest.mock_host_for_stub_repository):
(StubRepositoryTest.test_in_working_directory):
(StubRepositoryTest.test_native_revision):
(StubRepositoryTest.test_native_branch):
(StubRepositoryTest.test_svn_revision):
(StubRepositoryTest.test_find_checkout_root):

  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:

(JSONResultsGenerator._get_svn_revision): Removed unnecessary scm initialization.

  • Scripts/webkitpy/port/base.py:

(Port.commits_for_upload): Removed unnecessary scm initialization.

11:05 AM Changeset in webkit [249581] by Simon Fraser
  • 4 edits
    2 adds in trunk

REGRESSION (iOS 13): If an overflow:hidden with a non-zero scroll position is toggled to overflow:scroll, some other scroll causes its scroll position to get reset
https://bugs.webkit.org/show_bug.cgi?id=201528
rdar://problem/55044885

Reviewed by Frédéric Wang.
Source/WebCore:

If, when an overflow scrolling node is created, the scroller has non-zero scroll
position (for example, via toggling to overflow:hidden, setting scrollTop, then toggling
to overflow:scroll), then on the next update its scroll position will reset back to zero.

The bug was that newly created ScrollingTreeScrollingNodes didn't set m_currentScrollPosition
to the scroll position coming from the state node, so a subsequent update could cause
the 0,0 currentScrollPosition to get applied. If we're making a new node, and there's no
requestedScrollPosition, then initialize m_currentScrollPosition.

Test: scrollingcoordinator/ios/scroller-initial-scroll-position.html

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeScrollingNode::commitStateAfterChildren):

  • page/scrolling/ScrollingTreeScrollingNode.h:

LayoutTests:

  • scrollingcoordinator/ios/scroller-initial-scroll-position-expected.html: Added.
  • scrollingcoordinator/ios/scroller-initial-scroll-position.html: Added.
11:02 AM Changeset in webkit [249580] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix unused argument warning from GCC.

  • Platform/IPC/ArgumentCoders.h:

(IPC::TupleDecoder<0>::decode):
There was indeed an unused argument.

10:16 AM Changeset in webkit [249579] by Said Abou-Hallawa
  • 3 edits in trunk/LayoutTests

Unreviewed, fix typo in r249216

Also change the <desc> element to be <text> element so the purpose of
the test is visible once it is opened.

  • svg/custom/href-svg-namespace-animate-target-expected.svg:
  • svg/custom/href-svg-namespace-animate-target.svg:
10:04 AM Changeset in webkit [249578] by mark.lam@apple.com
  • 10 edits
    2 adds in trunk

Fix bmalloc::Allocator:tryAllocate() to return null on failure to allocate.
https://bugs.webkit.org/show_bug.cgi?id=201529
<rdar://problem/53935772>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/test-out-of-memory.js: Added.

Source/bmalloc:

In this implementation, we pass FailureAction in as a runtime option. If this
proves to be a perf issue, we can easily fix this by passing it as a template
argument. That will also automatically elide unneeded code paths. We'll defer
that exercise until we have evidence that it is warranted.

  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::allocateImpl):
(bmalloc::Allocator::reallocateImpl):
(bmalloc::Allocator::refillAllocatorSlowCase):
(bmalloc::Allocator::refillAllocator):
(bmalloc::Allocator::allocateLarge):
(bmalloc::Allocator::allocateLogSizeClass):
(bmalloc::Allocator::allocateSlowCase):
(bmalloc::Allocator::tryAllocate): Deleted.
(bmalloc::Allocator::allocate): Deleted.
(bmalloc::Allocator::reallocate): Deleted.
(bmalloc::Allocator::tryReallocate): Deleted.

  • bmalloc/Allocator.h:

(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocate):
(bmalloc::Allocator::tryReallocate):
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateImpl):

  • bmalloc/BumpAllocator.h:
  • bmalloc/FailureAction.h: Added.
  • bmalloc/Heap.cpp:

(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::allocateSmallBumpRangesByMetadata):
(bmalloc::Heap::allocateSmallBumpRangesByObject):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::tryAllocateLarge): Deleted.

  • bmalloc/Heap.h:

(bmalloc::Heap::allocateSmallBumpRanges):

  • bmalloc/bmalloc.cpp:

(bmalloc::api::tryLargeZeroedMemalignVirtual):

10:03 AM Changeset in webkit [249577] by Ryan Haddad
  • 5 edits
    2 copies
    4 adds
    1 delete in trunk

Unreviewed, rolling out r249566.

Causes inspector layout test crashes under GuardMalloc

Reverted changeset:

"Tail Deleted Frames shown in Web Inspector are sometimes
incorrect (Shadow Chicken)"
https://bugs.webkit.org/show_bug.cgi?id=201366
https://trac.webkit.org/changeset/249566

9:56 AM Changeset in webkit [249576] by guijemont@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

testmasm: save r6 in JIT'ed code on ARM_THUMB2
https://bugs.webkit.org/show_bug.cgi?id=201138

Reviewed by Mark Lam.

MacroAssemblerArmv7 uses r6 as a temporary register, and it is a
callee-saved register. The JITs use
AssemblyHelpers::emitSaveCalleeSaves() and friends to save
callee-saved registers, but there is no such mechanism in testmasm,
which seems to make the assumption that the macroassembler does not
use callee-saved registers (which I guess is true for all other
architectures, but not for Armv7).

This issue means that testmasm crashes on Armv7 since code generated
by gcc uses r6, and it gets modified by JIT'ed code.

This change makes sure that we save and restore r6 for all code
compiled by testmasm on Armv7.

  • assembler/testmasm.cpp:

(JSC::emitFunctionPrologue):
(JSC::emitFunctionEpilogue):
(JSC::testSimple):
(JSC::testGetEffectiveAddress):
(JSC::testBranchTruncateDoubleToInt32):
(JSC::testBranchTestBit32RegReg):
(JSC::testBranchTestBit32RegImm):
(JSC::testBranchTestBit32AddrImm):
(JSC::testBranchTestBit64RegReg):
(JSC::testBranchTestBit64RegImm):
(JSC::testBranchTestBit64AddrImm):
(JSC::testCompareDouble):
(JSC::testMul32WithImmediates):
(JSC::testMul32SignExtend):
(JSC::testCompareFloat):
(JSC::testProbeReadsArgumentRegisters):
(JSC::testProbeWritesArgumentRegisters):
(JSC::testProbePreservesGPRS):
(JSC::testProbeModifiesStackPointer):
(JSC::testProbeModifiesProgramCounter):
(JSC::testProbeModifiesStackValues):
(JSC::testByteSwap):
(JSC::testMoveDoubleConditionally32):
(JSC::testMoveDoubleConditionally64):
(JSC::testCagePreservesPACFailureBit):

9:19 AM Changeset in webkit [249575] by achristensen@apple.com
  • 20 edits in trunk

When disabling legacy private browsing for testing, change the SessionID back to what it was, not the defaultSessionID
https://bugs.webkit.org/show_bug.cgi?id=201480

Reviewed by Youenn Fablet.

Source/WebCore:

No change in behavior, but this blocks bug 200050 which will make WebKitTestRunner use a persistent, non-default session.
Without this change, that change causes lots of test failures because we are switching from the legacy private browsing session
to the default session instead of the session we were using.

  • page/Page.cpp:

(WebCore::Page::enableLegacyPrivateBrowsing): Deleted.

  • page/Page.h:
  • page/PageGroup.cpp:

(WebCore::PageGroup::addPage):
(WebCore::PageGroup::setSessionIDForTesting):
(WebCore::PageGroup::enableLegacyPrivateBrowsingForTesting): Deleted.

  • page/PageGroup.h:
  • storage/StorageNamespaceProvider.cpp:

(WebCore::StorageNamespaceProvider::setSessionIDForTesting):
(WebCore::StorageNamespaceProvider::enableLegacyPrivateBrowsingForTesting): Deleted.

  • storage/StorageNamespaceProvider.h:

Source/WebKit:

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setPrivateBrowsingEnabled):

  • WebProcess/InjectedBundle/InjectedBundle.h:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setPrivateBrowsingEnabled):

8:49 AM Changeset in webkit [249574] by youenn@apple.com
  • 9 edits in trunk

Remove MediaStreamPrivate::scheduleDeferredTask
https://bugs.webkit.org/show_bug.cgi?id=200975

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-streams/MediaStream-finished-add.https-expected.txt:

Source/WebCore:

All calls to scheduleDeferredTask are done on the main thread.
This was initially done to trigger less reconfiguration.
But this makes the implementation significantly more complex.

For instance, we have to wait for the document to update its media state
and send it to UIProcess before calling the allow completion handler.

Covered by existing tests.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::MediaStream):
Make sure to update the document media state once the tracks have been added, similarly to the other constructor.
This ensures the document media state is computed with the new MediaStreamTrack.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::isMediaStreamCorrectlyStarted):
(WebCore::UserMediaRequest::allow):
(WebCore::UserMediaRequest::stop):
(WebCore::UserMediaRequest::mediaStreamDidFail):

  • Modules/mediastream/UserMediaRequest.h:
  • page/MediaProducer.h:

(WebCore::MediaProducer::isCapturing):
Make sure to include getDisplayMedia as part of capture check.

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::trackMutedChanged):
(WebCore::MediaStreamPrivate::trackEnabledChanged):
(WebCore::MediaStreamPrivate::trackStarted):
(WebCore::MediaStreamPrivate::trackEnded):

  • platform/mediastream/MediaStreamPrivate.h:
6:05 AM Changeset in webkit [249573] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Unreviewed. Disable PSON in GTK port

There are some issues causing problems in applications.

  • Shared/WebPreferencesDefaultValues.h:
5:38 AM WebKitGTK/2.26.x edited by Michael Catanzaro
(diff)
5:27 AM Changeset in webkit [249572] by commit-queue@webkit.org
  • 34 edits
    23 adds
    2 deletes in trunk

LayoutTests/imported/w3c:
Implement MathMLIDL / HTMLOrForeignElement
https://bugs.webkit.org/show_bug.cgi?id=200470

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

Add tests for functionality exposed by HTMLOrForeignElement.
Import WPT tests as of 6e83b23bb962c97687b6573c378963208219ad1b (origin/master).

  • resources/import-expectations.json:
  • web-platform-tests/mathml/relations/html5-tree/class-1.html:
  • web-platform-tests/mathml/relations/html5-tree/class-2.html:
  • web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers.tentative-expected.txt: Added.
  • web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers.tentative.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/color-attributes-1.html:
  • web-platform-tests/mathml/relations/html5-tree/css-inline-style-dynamic.tentative-expected.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/css-inline-style-dynamic.tentative.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/css-inline-style-interface.tentative-expected.txt: Added.
  • web-platform-tests/mathml/relations/html5-tree/css-inline-style-interface.tentative.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/display-1-expected.txt:
  • web-platform-tests/mathml/relations/html5-tree/display-1.html:
  • web-platform-tests/mathml/relations/html5-tree/dynamic-1.html:
  • web-platform-tests/mathml/relations/html5-tree/href-click-1.html:
  • web-platform-tests/mathml/relations/html5-tree/href-click-2.html:
  • web-platform-tests/mathml/relations/html5-tree/href-click-3.html:
  • web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative-expected.txt: Added.
  • web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/integration-point-1.html:
  • web-platform-tests/mathml/relations/html5-tree/integration-point-2.html:
  • web-platform-tests/mathml/relations/html5-tree/integration-point-3.html:
  • web-platform-tests/mathml/relations/html5-tree/integration-point-4-expected.txt: Added.
  • web-platform-tests/mathml/relations/html5-tree/integration-point-4.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt: Added.
  • web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative.html: Added.
  • web-platform-tests/mathml/relations/html5-tree/required-extensions-1-expected.txt: Removed.
  • web-platform-tests/mathml/relations/html5-tree/required-extensions-1.html: Removed.
  • web-platform-tests/mathml/relations/html5-tree/required-extensions-2.html:
  • web-platform-tests/mathml/relations/html5-tree/unique-identifier-1.html:
  • web-platform-tests/mathml/relations/html5-tree/unique-identifier-2.html:
  • web-platform-tests/mathml/relations/html5-tree/unique-identifier-3.html:
  • web-platform-tests/mathml/relations/html5-tree/w3c-import.log:
  • web-platform-tests/mathml/support/attribute-values.js: Added.

(AttributeValueTransforms.lowercase):
(AttributeValueTransforms.uppercase):
(AttributeValueTransforms.alternate_case):
(TransformAttributeValues):

  • web-platform-tests/mathml/support/box-comparison.js: Added.

(spaceBetween):
(measureSpaceAround):
(compareSpaceWithAndWithoutStyle):
(compareSizeWithAndWithoutStyle):

  • web-platform-tests/mathml/support/layout-comparison.js: Added.

(getWritingMode):
(compareSize):
(participateToParentLayout):
(childrenParticipatingToLayout):
(compareLayout):

  • web-platform-tests/mathml/support/mathml-fragments.js: Added.

(FragmentHelper.createElement):
(FragmentHelper.isValidChildOfMrow):
(FragmentHelper.isEmpty):
(FragmentHelper.element):
(FragmentHelper.appendChild):
(FragmentHelper.forceNonEmptyElement):

  • web-platform-tests/mathml/support/w3c-import.log: Added.

Source/WebCore:
Implement MathML DOM
https://bugs.webkit.org/show_bug.cgi?id=200470

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

Expose MathML DOM as specified here [1].

[1] https://mathml-refresh.github.io/mathml-core/#dom-mathmlelement

Tests: imported/w3c/web-platform-tests/mathml/relations/html5-tree/clipboard-event-handlers.tentative.html

imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-dynamic.tentative.html
imported/w3c/web-platform-tests/mathml/relations/html5-tree/css-inline-style-interface.tentative.html
imported/w3c/web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative.html
imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-4.html
imported/w3c/web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative.html
mathml/focus-event-handling.html
mathml/tabindex-order.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSElementCustom.cpp:

(WebCore::createNewElementWrapper):

  • bindings/js/JSNodeCustom.cpp:

(WebCore::createWrapperInline):

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::parseAttribute):

  • mathml/MathMLElement.idl: Copied from Source/WebCore/html/HTMLOrForeignElement.idl.
  • mathml/MathMLMathElement.idl: Copied from Source/WebCore/html/HTMLOrForeignElement.idl.
  • mathml/mathtags.in:

LayoutTests:
Implement MathML DOM
https://bugs.webkit.org/show_bug.cgi?id=200470

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

Extend existing tests to also test focus for MathML. Add a standalone test for MathML
based on svg/custom/tabindex-order.html. Add a test for mouse clicks and focus handling
based on svg/custom/focus-event-handling.xhtml.

  • fast/dom/tabindex-defaults-expected.txt:
  • fast/dom/tabindex-defaults.html:
  • mathml/focus-event-handling-expected.txt: Added.
  • mathml/focus-event-handling.html: Added.
  • mathml/tabindex-order-expected.txt: Added.
  • mathml/tabindex-order.html: Added.
  • platform/ios-wk2/TestExpectations:
3:01 AM Changeset in webkit [249571] by commit-queue@webkit.org
  • 16 edits in trunk

Add runtime flag for lazy image loading
https://bugs.webkit.org/show_bug.cgi?id=199794

Patch by Rob Buis <rbuis@igalia.com> on 2019-09-06
Reviewed by Frédéric Wang.

Remove parts of r248409 that were meant for WK1 since
lazy image loading is WK2 only.

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences lazyImageLoadingEnabled]): Deleted.
(-[WebPreferences setLazyImageLoadingEnabled:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::setResizeObserverEnabled):
(WebPreferences::lazyImageLoadingEnabled): Deleted.
(WebPreferences::setLazyImageLoadingEnabled): Deleted.

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

  • DumpRenderTree/TestOptions.cpp:

(TestOptions::TestOptions):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):
(setWebPreferencesForTestOptions):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):

2:14 AM Changeset in webkit [249570] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Network: Error response headers summary has wrong color border
https://bugs.webkit.org/show_bug.cgi?id=201538
<rdar://problem/55104469>

Reviewed by Devin Rousso.

  • UserInterface/Views/ResourceHeadersContentView.css:

(body[dir] .resource-headers > section.error > .details):
Re-apply an error style for resource-header sections.

2:00 AM Changeset in webkit [249569] by Patrick Griffis
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Do not enable the sandbox in Snap
https://bugs.webkit.org/show_bug.cgi?id=201486

Reviewed by Carlos Garcia Campos.

Running inside of Snap adds its own complications and is simply
not supported for now.

Also update isInsideFlatpak() for consistency.

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::isInsideFlatpak):
(WebKit::isInsideSnap):
(WebKit::ProcessLauncher::launchProcess):

1:51 AM Changeset in webkit [249568] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebCore

[GStreamer] YUV buffers on iMX platforms have to be treated as RGBA
https://bugs.webkit.org/show_bug.cgi?id=201537

Reviewed by Philippe Normand.

The imxvpudecoder element on iMX platforms decodes YUV data in a
platform-specific way, gathering the YUV data in a single texture and
then relying on the sampler in the Vivante graphics drivers to
automagically decode that YUV data into RGBA values.

To correctly display such decoded data, we have to represent that
single texture as an RGBA texture, even when the GStreamer buffer is
crafted as containing planar YUV data.

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::platformLayerBuffer):
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamerBase::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
1:22 AM Changeset in webkit [249567] by Joseph Pecoraro
  • 5 edits in trunk

Web Inspector: Crashes when intercept response is a 404
https://bugs.webkit.org/show_bug.cgi?id=201514

Reviewed by Alex Christensen.

Source/WebKit:

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponse):
Ensure the WebResourceLoader stays around during intercepts.

(WebKit::WebResourceLoader::didReceiveData):
(WebKit::WebResourceLoader::didFinishResourceLoad):
(WebKit::WebResourceLoader::didFailResourceLoad):
Only perform the work if the m_coreLoader is still alive.

LayoutTests:

  • http/tests/inspector/network/local-resource-override-basic-expected.txt:
  • http/tests/inspector/network/local-resource-override-basic.html:

Add a test for a 404 response override.

1:14 AM Changeset in webkit [249566] by Joseph Pecoraro
  • 5 edits
    2 copies
    2 moves
    17 adds
    4 deletes in trunk

Tail Deleted Frames shown in Web Inspector are sometimes incorrect (Shadow Chicken)
https://bugs.webkit.org/show_bug.cgi?id=201366

Reviewed by Saam Barati.

Source/JavaScriptCore:

It is possible for the log buffer to be full right as someone is trying to
log a function prologue. In such a case the machine stack has already been
updated to include the new JavaScript call frame, but the prologue packet
cannot be included in the update because the log is full. This would mean
that the update fails to rationalize the machine stack with the shadow
log / stack. Namely, the current JavaScript call frame is unable to
find a matching prologue (the one we are holding to include after the update)
and inserts a questionable value into the stack; and in the process
missing and removing real potential tail calls.

For example:

"use strict";
function third() { return 1; }
function second() { return third(); }
function first() { return second(); }
function start() { return first(); }

If the the log fills up just as we are entering b then we may have a list
full log of packets looking like:

Shadow Log:

...
{ prologue-packet: entering start ... }
{ prologue-packet: entering first ... }
{ tail-packet: leaving first with a tail call }

Incoming Packet:

{ prologue-packet: entering second ... }

Current JS Stack:

second
start

Since the Current JavaScript stack already has second, if we process the
log without the prologue for second then we push a confused entry on the
shadow stack and clear the log such that we eventually lose the tail-call
information for first to second.

This patch solves this issue by providing enough extra space in the log
to always process the incoming packet when that forces an update. This way
clients can continue to behave exactly as they are.

--

We also document a corner case in some circumstances where the shadow
log may currently be insufficient to know how to reconcile:

For example:

"use strict";
function third() { return 1; }
function second() { return third(); }
function first() { return second(); }
function doNothingTail() { return Math.random() }
function start() {

for (i=0;i<1000;++i) doNothingTail();
return first();

}

In this case the ShadowChicken log may be processed multiple times due
to the many calls to doNothingTail / Math.random(). When calling the
Native function no prologue packet is emitted, so it is unclear that we
temporarly go deeper and come back out on the stack, so the log appears
to have lots of doNothingTail calls reusing the same frame:

Shadow Log:

...
, [123] {callee = 0x72a21aee0, frame = 0x7ffeef897270, callerFrame = 0x7ffeef8972e0, name = start}
, [124] {callee = 0x72a21af10, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = doNothingTail}
, [125] tail-packet:{frame = 0x7ffeef8971f0}
, [126] {callee = 0x72a21af10, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = doNothingTail}
, [127] tail-packet:{frame = 0x7ffeef8971f0}
...
, [140] {callee = 0x72a21af10, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = doNothingTail}
, [141] tail-packet:{frame = 0x7ffeef8971f0}
, [142] {callee = 0x72a21af10, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = doNothingTail}
, [143] tail-packet:{frame = 0x7ffeef8971f0}
, [144] {callee = 0x72a21aeb0, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = first}
, [145] tail-packet:{frame = 0x7ffeef8971f0}
, [146] {callee = 0x72a21ae80, frame = 0x7ffeef8971f0, callerFrame = 0x7ffeef897270, name = second}
...

This log would seem to be indistinguishable from real tail recursion, such as:

"use strict";
function third() { return 1; }
function second() { return third(); }
function first() { return second(); }
function doNothingTail(n) {

return n ? doNothingTail(n-1) : first();

}
function start() {

return doNothingTail(1000);

}

Likewise there are more cases where the shadow log appears to be ambiguous with determining
the appropriate parent call frame with intermediate function calls. In practice this may
not be too problematic, as this is a best effort reconstruction of tail deleted frames.
It seems likely we would only show additional frames that did in fact happen serially
between JavaScript call frames, but may not actually be the proper parent frames
heirachy in the stack.

  • interpreter/ShadowChicken.cpp:

(JSC::ShadowChicken::Packet::dump const):
(JSC::ShadowChicken::Frame::dump const):
(JSC::ShadowChicken::dump const):
Improved debugging output. Especially for functions.

(JSC::ShadowChicken::ShadowChicken):
Make space in the log for 1 additional packet to process when we slow log.

(JSC::ShadowChicken::log):
Include this packet in our update.

(JSC::ShadowChicken::update):
Address an edge case where we can eliminate tail-deleted frames that don't make sense.

LayoutTests:

  • inspector/debugger/tail-deleted-frames-expected.txt: Removed.
  • inspector/debugger/tail-deleted-frames-from-vm-entry-expected.txt: Removed.
  • inspector/debugger/tail-deleted-frames-from-vm-entry.html: Removed.
  • inspector/debugger/tail-deleted-frames-this-value-expected.txt: Removed.
  • inspector/debugger/tail-deleted-frames-this-value.html: Removed.
  • inspector/debugger/tail-deleted-frames.html: Removed.

Remove legacy tests that are difficult to read.

  • inspector/debugger/tail-deleted-frames/resources/stack-trace-utilities.js: Added.

(TestPage.registerInitializer.window.getAsyncStackTrace):
(TestPage.registerInitializer.async.logThisObject):
(TestPage.registerInitializer.async.logScope):
(TestPage.registerInitializer.async.logCallFrame):
(TestPage.registerInitializer):

  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-frames.js: Added.
  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-native-tail-deleted-calls.js: Added.
  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-intermediate-tail-deleted-frames.js: Added.
  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-scopes.js: Added.
  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-this-value.js: Added.
  • inspector/debugger/tail-deleted-frames/resources/tail-deleted-frames-vm-entry.js: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-frames.html: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-tail-deleted-frames-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-tail-deleted-frames.html: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-scopes-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-scopes.html: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value.html: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-vm-entry-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-vm-entry.html: Added.

Include modern tests that are easier to read.

  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-native-tail-deleted-calls-expected.txt: Added.
  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-intermediate-native-tail-deleted-calls.html: Added.

Include a test that is known to produce bad output, since we have reproductive steps.

  • platform/mac/TestExpectations:

Updated pathes.

12:06 AM Changeset in webkit [249565] by commit-queue@webkit.org
  • 5 edits in trunk

AccessibilityRenderObject::setSelectedTextRange fails to set the selection passed an empty line.
https://bugs.webkit.org/show_bug.cgi?id=201518
<rdar://problem/54835122>

Patch by Andres Gonzalez <Andres Gonzalez> on 2019-09-06
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: accessibility/set-selected-text-range-after-newline.html

In the case of an empty line, the CharacterIterator range start and end
were not equal, thus we were not advancing the iterator and returning
the iterator range end, which is not correct. With this change we are
always advancing the iterator if its text is just '\n'. This covers all
the cases we fixed before plus empty lines.

  • editing/Editing.cpp:

(WebCore::visiblePositionForIndexUsingCharacterIterator):

LayoutTests:

Extended this test to set the selection range passed an empty line.

  • accessibility/set-selected-text-range-after-newline-expected.txt:
  • accessibility/set-selected-text-range-after-newline.html:
Note: See TracTimeline for information about the timeline view.