Timeline



Dec 19, 2018:

11:36 PM Changeset in webkit [239435] by commit-queue@webkit.org
  • 5 edits
    3 deletes in trunk

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

broke 32-bit JSC tests (Requested by keith_miller on #webkit).

Reverted changeset:

"[BigInt] We should enable CSE into arithmetic operations that
speculate BigIntUse"
https://bugs.webkit.org/show_bug.cgi?id=192723
https://trac.webkit.org/changeset/239377

11:01 PM Changeset in webkit [239434] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 72

Added a tag for Safari Technology Preview release 72.

10:48 PM Changeset in webkit [239433] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: fix descriptions for default tests
https://bugs.webkit.org/show_bug.cgi?id=192764
<rdar://problem/46729437>

Reviewed by Matt Baker.

  • UserInterface/Controllers/AuditManager.js:

(WI.AuditManager.prototype.addDefaultTestsIfNeeded):

  • Localizations/en.lproj/localizedStrings.js:
10:39 PM Changeset in webkit [239432] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: "E" icon on debugger dashboard is too close to current function name
https://bugs.webkit.org/show_bug.cgi?id=192915

Reviewed by Matt Baker.

  • UserInterface/Views/DebuggerDashboardView.css:

(.dashboard.debugger > .location):
(body[dir=ltr] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)):
(body[dir=rtl] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)):
(.dashboard.debugger > .location .function-icon): Deleted.
(body[dir=ltr] .dashboard.debugger > .location .function-icon): Deleted.
(body[dir=rtl] .dashboard.debugger > .location .function-icon): Deleted.

10:24 PM Changeset in webkit [239431] by Ross Kirsling
  • 2 edits in trunk/JSTests

Unreviewed follow-up to r192914.

  • test262/expectations.yaml:

Add the last 20 missing expectations.

10:21 PM Changeset in webkit [239430] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: ThreadTreeElement status icon is hard to see when hovered
https://bugs.webkit.org/show_bug.cgi?id=192097
<rdar://problem/46318421>

Reviewed by Matt Baker.

  • UserInterface/Views/ThreadTreeElement.css:

(.tree-outline > .item.thread .status-button.resume):
(.tree-outline > .item.thread .status-button.resume:active):

9:00 PM Changeset in webkit [239429] by keith_miller@apple.com
  • 2 edits in trunk/JSTests

Fix test262 expectations
https://bugs.webkit.org/show_bug.cgi?id=192914

Unreviewed, when I imported the latest round of test262 tests I must have failed to update the test expectations.

  • test262/expectations.yaml:
8:46 PM Changeset in webkit [239428] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix GTK build after r239410

It added a new file to the build, breaking the unified sources magic that obscured a bug in
URLSoup.h. It forward-declares URL, but this never worked unless the URL.h header was
included via another source file in the unified source bundle.

  • platform/network/soup/URLSoup.h:
8:41 PM Changeset in webkit [239427] by Chris Dumez
  • 1745 edits in trunk

wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
https://bugs.webkit.org/show_bug.cgi?id=192728
<rdar://problem/46746779>

Reviewed by Geoff Garen.

Source/JavaScriptCore:

  • API/*:
  • Scripts/*:
  • assembler/*:
  • b3/*:
  • bytecode/*:
  • bytecompiler/*:
  • debugger/*:
  • dfg/*:
  • ftl/*:
  • heap/*:
  • inspector/*:
  • jit/*:
  • llint/*:
  • parser/*:
  • runtime/*:
  • tools/*:
  • wasm/*:
  • yarr/*:

Source/WebCore:

  • Modules/*:
  • animation/*:
  • bindings/*:
  • crypto/*:
  • css/*:
  • dom/*:
  • editing/*:
  • fileapi/*:
  • html/*:
  • inspector/*:
  • layout/*:
  • loader/*:
  • mathml/*:
  • page/*:
  • platform/*:
  • plugins/*:
  • rendering/*:
  • testing/*:
  • workers/*:
  • xml/*:

Source/WebCore/PAL:

  • pal/*:

Source/WebDriver:

  • :

Source/WebKit:

  • NetworkProcess/*:
  • Platform/*:
  • Scripts/*:
  • Shared/*:
  • UIProcess/*:
  • WebProcess/*:

Source/WebKitLegacy/mac:

  • DOM/*:
  • Plugins/*:
  • WebCoreSupport/*:
  • WebView/*:

Source/WebKitLegacy/win:

  • Plugins/*:
  • WebCoreSupport/*:

Source/WTF:

Update optional's move-constructor and move-assignment operator to disengage the value being moved from.
Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace.

Based on patch by David Kilzer.

  • wtf/*:

Tools:

  • DumpRenderTree/*:
  • MiniBrowser/*:
  • TestRunnerShared/*:
  • TestWebKitAPI/*:
  • WebGPUAPIStructure/*:
  • WebKitTestRunner/*:
8:26 PM Changeset in webkit [239426] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

Unreviewed, silence -Wpragmas warning

  • WebProcess/WebCoreSupport/WebAlternativeTextClient.h:
8:17 PM Changeset in webkit [239425] by keith_miller@apple.com
  • 3391 edits
    5249 adds in trunk/JSTests

Update test262 tests.
https://bugs.webkit.org/show_bug.cgi?id=192907

Rubber stamped by Mark Lam.

  • test262/*: Omitted because prepare-changelog crashes.
8:11 PM Changeset in webkit [239424] by Ross Kirsling
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening.

  • platform/wincairo/TestExpectations:
8:04 PM Changeset in webkit [239423] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk/Source/WebKit

HTTPS Upgrade: Use full sqlite upgrade list
https://bugs.webkit.org/show_bug.cgi?id=192736
<rdar://problem/45851427>

Patch by Vivek Seth <v_seth@apple.com> on 2018-12-19
Reviewed by Chris Dumez.

  • NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: Added.

(WebKit::NetworkHTTPSUpgradeCheckerDatabasePath):
(WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker):
(WebKit::NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker):
(WebKit::NetworkHTTPSUpgradeChecker::query):
(WebKit::NetworkHTTPSUpgradeChecker::isAlwaysOnLoggingAllowed const):

  • NetworkProcess/NetworkHTTPSUpgradeChecker.h: Added.

(WebKit::NetworkHTTPSUpgradeChecker::didSetupCompleteSuccessfully const):

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded const):
(WebKit::NetworkLoadChecker::checkRequest):

  • NetworkProcess/NetworkLoadChecker.h:
  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::networkHTTPSUpgradeChecker):

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
8:00 PM Changeset in webkit [239422] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'effectiveDOMNode.enabledPseudoClasses')
https://bugs.webkit.org/show_bug.cgi?id=192783

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
(WI.GeneralStyleDetailsSidebarPanel.prototype._updatePseudoClassCheckboxes):

7:57 PM Changeset in webkit [239421] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r237195): Timelines: selecting a rendering frame row moves the time selection
https://bugs.webkit.org/show_bug.cgi?id=192773
<rdar://problem/46782446>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineOverview.js:

(WI.TimelineOverview.prototype._recordSelected):
The Frames timeline uses frameIndex instead of startTime/endTime, so when trying to
ensure that the selected record is within the filtered range, use frameIndex instead.
The associated WI.TimelineRuler will already be using an index-based approach for
selection, so this will match.

7:56 PM Changeset in webkit [239420] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: the recording auto-capture input shouldn't start focused
https://bugs.webkit.org/show_bug.cgi?id=192454

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CanvasOverviewContentView.js:

(WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel):
(WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged):

7:24 PM Changeset in webkit [239419] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Leak of MTAudioProcessingTap (304 bytes) in com.apple.WebKit.WebContent running WebKit layout tests
https://bugs.webkit.org/show_bug.cgi?id=192896
<rdar://46732186>

Reviewed by Eric Carlson.

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::initCallback):

5:45 PM Changeset in webkit [239418] by youenn@apple.com
  • 100 edits
    35 deletes in trunk/Source/ThirdParty/libwebrtc

Refresh usrsctplib to M72
https://bugs.webkit.org/show_bug.cgi?id=192863

Reviewed by Alex Christensen.

  • Source/third_party/usrsctp/: Resynced to Chrome M72 branch.
5:41 PM Changeset in webkit [239417] by benjamin@webkit.org
  • 7 edits in trunk

<rdar://problem/46194315> macOS: WebKit1 does not handle occlusion changes
https://bugs.webkit.org/show_bug.cgi?id=192821

Reviewed by Chris Dumez.

Source/WebKitLegacy/mac:

When a window becomes occluded, the window server informs the application.
This should be used to suspend any work that is not visible by the user.

WebKit2 handles it just fine, but WebKit1 did not handle the notification.
In some cases, that lead to performance impact (see radar).

This patch adds an observer for the occlusion notification. I tried to stick
with the same names used by WebKit2.

  • WebView/WebView.mm:

(-[WebView _isViewVisible]):
(-[WebView addWindowObserversForWindow:]):
(-[WebView removeWindowObservers]):
(-[WebView _windowDidChangeOcclusionState:]):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow):

5:40 PM Changeset in webkit [239416] by aboya@igalia.com
  • 18 edits
    5 copies
    3 adds
    2 deletes in trunk/LayoutTests

[GTK][WPE] Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=192904

  • platform/gtk/TestExpectations:
  • platform/gtk/animations/lineheight-animation-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/lineheight-animation-expected.txt.
  • platform/gtk/animations/simultaneous-start-transform-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt.
  • platform/gtk/animations/width-using-ems-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt.
  • platform/gtk/css1/font_properties/font-expected.txt:
  • platform/gtk/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/gtk/css2.1/t1508-c527-font-00-b-expected.txt:
  • platform/gtk/css2.1/t1508-c527-font-06-b-expected.txt:
  • platform/gtk/css2.1/t1508-c527-font-10-c-expected.txt:
  • platform/gtk/fast/inline/inline-content-with-image-simple-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/eventsource/format-mime-bogus-expected.txt: Removed.
  • platform/gtk/legacy-animation-engine/animations/lineheight-animation-expected.txt: Added.
  • platform/gtk/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt.
  • platform/gtk/legacy-animation-engine/animations/width-using-ems-expected.txt: Copied from LayoutTests/platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt.
  • platform/wpe/TestExpectations:
  • platform/wpe/css1/font_properties/font-expected.txt:
  • platform/wpe/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/wpe/css2.1/t1508-c527-font-00-b-expected.txt:
  • platform/wpe/css2.1/t1508-c527-font-06-b-expected.txt:
  • platform/wpe/css2.1/t1508-c527-font-10-c-expected.txt:
  • platform/wpe/fast/inline/inline-content-with-image-simple-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/eventsource/format-mime-bogus-expected.txt: Removed.
  • platform/wpe/legacy-animation-engine/animations/lineheight-animation-expected.txt:
  • platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt:
  • platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt:
5:37 PM Changeset in webkit [239415] by youenn@apple.com
  • 63 edits
    1 move
    9 adds
    7 deletes in trunk/Source/ThirdParty/libwebrtc

Refresh libyuv to M72
https://bugs.webkit.org/show_bug.cgi?id=192864

Reviewed by Alex Christensen.

  • Source/third_party/libyuv: Resynced.
5:28 PM Changeset in webkit [239414] by timothy@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r232991): Switching to dark mode in Mail does not update the message view to be transparent
https://bugs.webkit.org/show_bug.cgi?id=188891
rdar://problem/42344352

Reviewed by Simon Fraser.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::rootBackgroundColorOrTransparencyChanged):
Don't return early when m_layerForOverhangAreas is null to avoid skipping
setRootLayerConfigurationNeedsUpdate() and scheduleCompositingLayerUpdate().

5:22 PM Changeset in webkit [239413] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: shift-clicking a color-swatch to change formats starts editing the color
https://bugs.webkit.org/show_bug.cgi?id=192784
<rdar://problem/46801028>

Reviewed by Devin Rousso.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):

5:22 PM Changeset in webkit [239412] by Alan Coon
  • 1 edit in branches/safari-606-branch/Source/WebKit/UIProcess/ResourceLoadStatisticsMemoryStore.cpp

Apply patch. rdar://problem/46848447

5:09 PM Changeset in webkit [239411] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Use delegate instead of drawingDelegate in WKDrawingView
https://bugs.webkit.org/show_bug.cgi?id=192899
<rdar://problem/46733339>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKDrawingView.mm:

(-[WKDrawingView initWithEmbeddedViewID:webPageProxy:]):
Do the dance.

4:59 PM Changeset in webkit [239410] by Justin Fan
  • 17 edits
    8 copies
    1 move
    1 add
    1 delete in trunk

[WebGPU] Add stubs for WebGPUPipelineLayout/Descriptor and device::createPipelineLayout
https://bugs.webkit.org/show_bug.cgi?id=192843
<rdar://problem/46820395>

Reviewed by Myles Maxfield.

Source/WebCore:

Test: webgpu/pipeline-layouts.html

Implement the emtpy WebGPUPipelineLayout interface, and enable creation via WebGPUDevice::createPipelineLayout:

  • Modules/webgpu/WebGPUBindGroupLayout.cpp:

(WebCore::WebGPUBindGroupLayout::WebGPUBindGroupLayout):

  • Modules/webgpu/WebGPUBindGroupLayout.h:

(WebCore::WebGPUBindGroupLayout::bindGroupLayout const): Added getter.

  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createPipelineLayout const): Added.

  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUDevice.idl: Enable createPipelineLayout.
  • Modules/webgpu/WebGPUPipelineLayout.cpp: Added.

(WebCore::WebGPUPipelineLayout::create):
(WebCore::WebGPUPipelineLayout::WebGPUPipelineLayout):

  • Modules/webgpu/WebGPUPipelineLayout.h: Added.
  • Modules/webgpu/WebGPUPipelineLayout.idl: Added.
  • Modules/webgpu/WebGPUPipelineLayoutDescriptor.h: Added.
  • Modules/webgpu/WebGPUPipelineLayoutDescriptor.idl: Added.
  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::createPipelineLayout const): Added.

  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/GPUPipelineLayout.cpp: Added.

(WebCore::GPUPipelineLayout::create):
(WebCore::GPUPipelineLayout::GPUPipelineLayout):

  • platform/graphics/gpu/GPUPipelineLayout.h: Added.
  • platform/graphics/gpu/GPUPipelineLayoutDescriptor.h: Added.

Add files and symbols to project:

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

Add missing include:

  • Modules/webgpu/WebGPUQueue.h:

LayoutTests:

Update bind-group-layouts and rename to match new PipelineLayout functionality.

  • webgpu/bind-group-layouts-expected.txt: Removed.
  • webgpu/pipeline-layouts-expected.txt: Added.
  • webgpu/pipeline-layouts.html: Renamed from LayoutTests/webgpu/bind-group-layouts.html.
4:58 PM Changeset in webkit [239409] by Alan Coon
  • 18 edits in branches/safari-606-branch/Source

Apply patch. rdar://problem/46848447

4:55 PM Changeset in webkit [239408] by achristensen@apple.com
  • 19 edits in trunk

Navigations away from the SafeBrowsing interstitial show a flash of old content
https://bugs.webkit.org/show_bug.cgi?id=192676

Reviewed by Chris Dumez.

Source/WebKit:

When a user clicks through a safe browsing warning, do not remove the warning until content is drawn for the destination.
Otherwise, the user will confusingly see the page before the warning while the navigation happens.
We can only do this for warnings caused by main frame navigations, though. Other warnings (such as those caused by iframes)
need to be cleared immediately, and we still need to clear the warning immediately if the user has said to go back.

This change is reflected in an updated API test.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _showSafeBrowsingWarning:completionHandler:]):

  • UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm:

(WebKit::SafeBrowsingWarning::SafeBrowsingWarning):

  • UIProcess/Cocoa/WKSafeBrowsingWarning.h:
  • UIProcess/Cocoa/WKSafeBrowsingWarning.mm:

(-[WKSafeBrowsingWarning forMainFrameNavigation]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::beginSafeBrowsingCheck):

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::showSafeBrowsingWarning):
(WebKit::WebViewImpl::clearSafeBrowsingWarningIfForMainFrameNavigation):

  • UIProcess/PageClient.h:

(WebKit::PageClient::clearSafeBrowsingWarningIfForMainFrameNavigation):

  • UIProcess/SafeBrowsingWarning.h:

(WebKit::SafeBrowsingWarning::create):
(WebKit::SafeBrowsingWarning::forMainFrameNavigation const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didReachLayoutMilestone):
(WebKit::WebPageProxy::beginSafeBrowsingCheck):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::clearSafeBrowsingWarningIfForMainFrameNavigation):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(safeBrowsingView):
(TEST):
(-[SafeBrowsingHelper webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): Deleted.

4:54 PM Changeset in webkit [239407] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION: [ iOS Sim ] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/update-missing-import-scripts.https.html is failing
https://bugs.webkit.org/show_bug.cgi?id=192250

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as flaky.
4:54 PM Changeset in webkit [239406] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION: imported/w3c/web-platform-tests/service-workers/service-worker/register-closed-window.https.html is very flaky on iOS
https://bugs.webkit.org/show_bug.cgi?id=192279

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as flaky.
4:46 PM Changeset in webkit [239405] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Elements tab: arrow key after undoing a DOM node delete selects the wrong element
https://bugs.webkit.org/show_bug.cgi?id=192871
<rdar://problem/46849060>

Reviewed by Devin Rousso.

Undoing a DOM node removal reinserts the node into the DOMTreeOutline.
When the reinserted node precedes the selected node in the tree, the
SelectionController should update _lastSelectedIndex.

  • UserInterface/Controllers/SelectionController.js:

(WI.SelectionController.prototype.didInsertItem):

4:31 PM Changeset in webkit [239404] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: provide localization support for % pass display
https://bugs.webkit.org/show_bug.cgi?id=192870
<rdar://problem/46779245>

Reviewed by Brian Burg.

  • UserInterface/Views/AuditTestGroupContentView.js:

(WI.AuditTestGroupContentView.prototype.initialLayout):
(WI.AuditTestGroupContentView.prototype.layout):

  • UserInterface/Views/AuditTestGroupContentView.css:

(.content-view.audit-test-group > header > .percentage-pass):
(.content-view.audit-test-group > header > .percentage-pass > span): Added.
(@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass): Added.
(@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass > span): Added.
(.content-view.audit-test-group > header > .percentage-pass:not(:empty)::after): Deleted.

  • Localizations/en.lproj/localizedStrings.js:
4:07 PM Changeset in webkit [239403] by Alan Coon
  • 16 edits
    2 adds in branches/safari-606-branch

Apply patch. rdar://problem/46848447

3:51 PM Changeset in webkit [239402] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

SVGUseElement::findTarget should return nullptr when there is a cycle
https://bugs.webkit.org/show_bug.cgi?id=192840

Reviewed by Tim Horton.

r233366 added an early return to updateShadowTree() when there is a cycle between an use element and its target.
Consolidate this cycle detection code with the one in SVGUseElement::findTarget which detected cycles when
the SVG use element itself had a corresponding element.

No new tests since there should be no behavioral change.

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::updateShadowTree):
(WebCore::SVGUseElement::findTarget const):

3:44 PM Changeset in webkit [239401] by Adrian Perez de Castro
  • 3 edits in trunk/Tools

[GTK][WPE] Unify TestController::platformRunUntil() and honor condition flag
https://bugs.webkit.org/show_bug.cgi?id=192855

Reviewed by Michael Catanzaro.

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::notifyDone): Use the WPE implementation.
(WTR::TestController::platformRunUntil): Use the WPE implementation.

  • WebKitTestRunner/wpe/TestControllerWPE.cpp:

(WTR::TestController::platformRunUntil): Honor the condition flag.

3:37 PM Changeset in webkit [239400] by timothy_horton@apple.com
  • 7 edits
    2 moves
    2 adds in trunk

UI process crash when focusing an editable image
https://bugs.webkit.org/show_bug.cgi?id=192839
<rdar://problem/46786670>

Reviewed by Wenson Hsieh.

Source/WebKit:

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

(-[WKContentView _requiresKeyboardWhenFirstResponder]):
(-[WKContentView inputView]):
(-[WKContentView requiresAccessoryView]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
(-[WKContentView _stopAssistingNode]):
(-[WKContentView _installInkPickerForDrawingViewWithID:]):
(-[WKContentView _uninstallInkPicker]):

  • UIProcess/ios/WKInkPickerView.h: Renamed from Source/WebKit/UIProcess/ios/WKInkPickerControl.h.
  • UIProcess/ios/WKInkPickerView.mm: Renamed from Source/WebKit/UIProcess/ios/WKInkPickerControl.mm.

(-[WKInkPickerView initWithDrawingView:]):
(-[WKInkPickerView didPickInk]):
(-[WKInkPickerView inlineInkPickerDidToggleRuler:]):
(-[WKInkPickerView inlineInkPicker:didSelectTool:]):
(-[WKInkPickerView inlineInkPicker:didSelectColor:]):
(-[WKInkPickerView inkPickerSize]):
(-[WKInkPickerView layoutSubviews]):
(-[WKInkPickerView sizeThatFits:]):
(-[WKInkPickerView viewControllerForPopoverPresentationFromInlineInkPicker:]):

  • WebKit.xcodeproj/project.pbxproj:

Make WKInkPickerView a WKWebView subview instead of an inputView.
Also, don't force the keyboard to be visible when an editable image is focused.

LayoutTests:

  • editing/images/basic-editable-image-with-gesture.html: Added.
  • editing/images/basic-editable-image-with-gesture-expected.txt: Added.
  • resources/ui-helper.js:

(window.UIHelper.stylusTapAt.return.new.Promise):
(window.UIHelper.stylusTapAt):
Add a test that ensures that adding an editable image from a gesture
doesn't crash, and can be drawn on.

3:28 PM Changeset in webkit [239399] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Computed: make UI more usable when the panel is narrow
https://bugs.webkit.org/show_bug.cgi?id=192578
<rdar://problem/46615753>

Reviewed by Devin Rousso.

  • UserInterface/Views/ComputedStyleSection.css:

(.computed-style-section .computed-property-item .property-traces):
(.computed-style-section .computed-property-item.expanded .disclosure-button):
(.computed-style-section .computed-property-item .property-trace-item):
(.computed-style-section .computed-property-item .property-trace-item::before):
(.computed-style-section .computed-property-item .property):
(.computed-style-section .computed-property-item .property-trace-item .selector):
Allow CSS property values and selectors to take more than one line.

(.computed-style-section .property-trace-item .property .name,):

  • UserInterface/Views/ComputedStyleSection.js:

(WI.ComputedStyleSection.prototype._createTrace):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.update):

3:27 PM Changeset in webkit [239398] by mmaxfield@apple.com
  • 3 edits
    3 adds in trunk/Source/WebCore

[WHLSL] Add a handwritten lexer
https://bugs.webkit.org/show_bug.cgi?id=192294

Reviewed by Jon Lee.

This is infrastructure necessary for https://bugs.webkit.org/show_bug.cgi?id=192355. The
implementation matches the lexing rules in the spec (specifically, the rules that start
with an uppercase letter). The spec is at
https://github.com/gpuweb/WHLSL/blob/master/Spec/WHLSL.g4.

This patch also modifies the lexer according to https://github.com/gpuweb/WHLSL/pull/283.

No new tests because the lexer isn't hooked up yet; there are tests in the parser,
once that gets committed.

  • Modules/webgpu/WHLSL/WHLSLLexer.cpp: Added.

(WebCore::WHLSL::Lexer::Token::typeName):
(WebCore::WHLSL::Lexer::recognizeKeyword):
(WebCore::WHLSL::Lexer::consumeTokenFromStream):
(WebCore::WHLSL::Lexer::skipWhitespaceAndComments):
(WebCore::WHLSL::isWhitespace):
(WebCore::WHLSL::isNewline):
(WebCore::WHLSL::Lexer::skipWhitespace):
(WebCore::WHLSL::Lexer::skipLineComment):
(WebCore::WHLSL::Lexer::skipLongComment):
(WebCore::WHLSL::Lexer::coreDecimalIntLiteral const):
(WebCore::WHLSL::Lexer::decimalIntLiteral const):
(WebCore::WHLSL::Lexer::decimalUintLiteral const):
(WebCore::WHLSL::isHexadecimalCharacter):
(WebCore::WHLSL::Lexer::coreHexadecimalIntLiteral const):
(WebCore::WHLSL::Lexer::hexadecimalIntLiteral const):
(WebCore::WHLSL::Lexer::hexadecimalUintLiteral const):
(WebCore::WHLSL::Lexer::intLiteral const):
(WebCore::WHLSL::Lexer::uintLiteral const):
(WebCore::WHLSL::Lexer::digit const):
(WebCore::WHLSL::Lexer::digitStar const):
(WebCore::WHLSL::Lexer::character const):
(WebCore::WHLSL::Lexer::coreFloatLiteralType1 const):
(WebCore::WHLSL::Lexer::coreFloatLiteral const):
(WebCore::WHLSL::Lexer::floatLiteral const):
(WebCore::WHLSL::Lexer::validIdentifier const):
(WebCore::WHLSL::Lexer::identifier const):
(WebCore::WHLSL::Lexer::operatorName const):

  • Modules/webgpu/WHLSL/WHLSLLexer.h: Added.

(WebCore::WHLSL::Lexer::Lexer):
(WebCore::WHLSL::Lexer::consumeToken):
(WebCore::WHLSL::Lexer::unconsumeToken):
(WebCore::WHLSL::Lexer::state const):
(WebCore::WHLSL::Lexer::setState):
(WebCore::WHLSL::Lexer::isFullyConsumed const):
(WebCore::WHLSL::Lexer::errorString):
(WebCore::WHLSL::Lexer::string const):
(WebCore::WHLSL::Lexer::anyCharacter const):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
3:17 PM Changeset in webkit [239397] by Simon Fraser
  • 18 edits in trunk/Source

Web Inspector: Timelines: correctly label Intersection Observer callbacks
https://bugs.webkit.org/show_bug.cgi?id=192669
<rdar://problem/46702490>

Reviewed by Joseph Pecoraro.

Add InspectorInstrumentation::willFireObserverCallback() and use it to wrap calls
to Intersection Observer, Performance Observer and Mutation Observer callbacks so
that they get correctly labeled in the Inspector timeline.

Source/JavaScriptCore:

  • inspector/protocol/Timeline.json:

Source/WebCore:

  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::deliver):

  • en.lproj/Localizable.strings:
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willFireObserverCallbackImpl):
(WebCore::InspectorInstrumentation::didFireObserverCallbackImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willFireObserverCallback):
(WebCore::InspectorInstrumentation::didFireObserverCallback):

  • inspector/TimelineRecordFactory.cpp:

(WebCore::TimelineRecordFactory::createObserverCallbackData):

  • inspector/TimelineRecordFactory.h:
  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::willFireObserverCallback):
(WebCore::InspectorTimelineAgent::didFireObserverCallback):
(WebCore::toProtocol):

  • inspector/agents/InspectorTimelineAgent.h:
  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::notify):

  • page/PerformanceObserver.cpp:

(WebCore::PerformanceObserver::deliver):

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager.prototype._processRecord):

  • UserInterface/Models/ScriptTimelineRecord.js:

(WI.ScriptTimelineRecord.EventType.displayName):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.iconClassNameForRecord):

2:45 PM Changeset in webkit [239396] by youenn@apple.com
  • 38 edits in trunk/Source/ThirdParty/libwebrtc

Resync libwebrtc with M72 branch
https://bugs.webkit.org/show_bug.cgi?id=192858

Reviewed by Eric Carlson.

Merge changes made upstream.
Some of these changes improve support of unified plan and backward compatiblity.

  • Source/webrtc/api/candidate.cc:
  • Source/webrtc/api/candidate.h:
  • Source/webrtc/api/rtpreceiverinterface.h:
  • Source/webrtc/api/umametrics.h:
  • Source/webrtc/media/engine/webrtcvideoengine.cc:
  • Source/webrtc/media/engine/webrtcvideoengine_unittest.cc:
  • Source/webrtc/modules/audio_processing/agc2/agc2_common.h:
  • Source/webrtc/modules/desktop_capture/desktop_and_cursor_composer.cc:
  • Source/webrtc/modules/video_coding/BUILD.gn:
  • Source/webrtc/modules/video_coding/codecs/vp9/svc_config.cc:
  • Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator.cc:
  • Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator.h:
  • Source/webrtc/modules/video_coding/codecs/vp9/svc_rate_allocator_unittest.cc:
  • Source/webrtc/modules/video_coding/codecs/vp9/test/vp9_impl_unittest.cc:
  • Source/webrtc/modules/video_coding/codecs/vp9/vp9.cc:
  • Source/webrtc/modules/video_coding/video_codec_initializer.cc:
  • Source/webrtc/modules/video_coding/video_codec_initializer_unittest.cc:
  • Source/webrtc/p2p/base/p2ptransportchannel_unittest.cc:
  • Source/webrtc/p2p/base/port.cc:
  • Source/webrtc/p2p/base/port.h:
  • Source/webrtc/p2p/base/portallocator.cc:
  • Source/webrtc/p2p/client/basicportallocator.cc:
  • Source/webrtc/p2p/client/basicportallocator_unittest.cc:
  • Source/webrtc/pc/peerconnection.cc:
  • Source/webrtc/pc/peerconnection.h:
  • Source/webrtc/pc/peerconnection_integrationtest.cc:
  • Source/webrtc/pc/peerconnectioninternal.h:
  • Source/webrtc/pc/statscollector.cc:
  • Source/webrtc/pc/statscollector.h:
  • Source/webrtc/pc/test/fakepeerconnectionbase.h:
  • Source/webrtc/pc/test/fakepeerconnectionforstats.h:
  • Source/webrtc/pc/test/mockpeerconnectionobservers.h:

(webrtc::MockStatsObserver::OnComplete):
(webrtc::MockStatsObserver::TrackIds const):

  • Source/webrtc/pc/webrtcsdp_unittest.cc:
  • Source/webrtc/rtc_base/fake_mdns_responder.h:

(webrtc::FakeMdnsResponder::GetMappedAddressForName const):

  • Source/webrtc/rtc_base/fakenetwork.h:

(rtc::FakeNetworkManager::CreateMdnsResponder):
(rtc::FakeNetworkManager::GetMdnsResponderForTesting const):

  • Source/webrtc/video/video_send_stream_impl.cc:
  • Source/webrtc/video/video_stream_encoder.cc:
2:24 PM Changeset in webkit [239395] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

ContentExtensions: DFANode.cpp:66:44: error: narrowing conversion of '-1' from 'int' to 'char' inside { }
https://bugs.webkit.org/show_bug.cgi?id=192854

Reviewed by Alex Christensen.

  • contentextensions/DFANode.h: Define CharRange's chars as signed
2:09 PM Changeset in webkit [239394] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Audit: "Clear Filters" button gets clipped when window is vertically small
https://bugs.webkit.org/show_bug.cgi?id=192868
<rdar://problem/46780400>

Reviewed by Matt Baker.

  • UserInterface/Views/Main.css:

(.message-text-view):

2:05 PM Changeset in webkit [239393] by Kocsen Chung
  • 11 edits
    2 adds in branches/safari-606-branch

Apply patch. rdar://problem/46848447

2:00 PM Changeset in webkit [239392] by mark.lam@apple.com
  • 3 edits
    2 adds in trunk

JSPropertyNameEnumerator should cache the iterated object's structure only after getting its property names.
https://bugs.webkit.org/show_bug.cgi?id=192464
<rdar://problem/46519455>

Reviewed by Saam Barati.

JSTests:

This patch is about a 10% speed up on the new for-in-on-object-with-lazily-materialized-properties.js
microbenchmark.

  • microbenchmarks/for-in-on-object-with-lazily-materialized-properties.js: Added.
  • stress/property-name-enumerator-should-cache-structure-after-getting-property-names.js: Added.

Source/JavaScriptCore:

This is because the process of getting its property names may cause some lazy
properties to be reified, and the structure will change. This is needed in order
for get_direct_pname to work correctly.

  • runtime/JSPropertyNameEnumerator.h:

(JSC::propertyNameEnumerator):

2:00 PM Changeset in webkit [239391] by youenn@apple.com
  • 4 edits in trunk

Remove RTCRtpTransceiver.setDirection
https://bugs.webkit.org/show_bug.cgi?id=192869

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/historical-expected.txt:

Source/WebCore:

Covered by rebased test.

  • Modules/mediastream/RTCRtpTransceiver.idl:
2:00 PM Changeset in webkit [239390] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

[ MacOS iOS ] Layout Test webrtc/no-port-zero-in-upd-candidates.html is flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=192866

Reviewed by Alex Christensen.

  • webrtc/no-port-zero-in-upd-candidates.html:

Add some more logging in the test in case of time out.

1:25 PM Changeset in webkit [239389] by eric.carlson@apple.com
  • 4 edits in trunk/Source

[MediaStream] Force system camera/microphone TCC prompt if necessary
https://bugs.webkit.org/show_bug.cgi?id=192820
<rdar://problem/42680098>

Reviewed by Jer Noble.

Source/WebKit:

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Enable TCC check
and prompt on Mojave.

Source/WTF:

  • wtf/Platform.h: Define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE.
1:24 PM Changeset in webkit [239388] by Kocsen Chung
  • 7 edits in branches/safari-606-branch/Source

Versioning.

1:11 PM Changeset in webkit [239387] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Force synchronous decode in WebCoreDecompressionSession::decodeSampleSync()
https://bugs.webkit.org/show_bug.cgi?id=192856
<rdar://problem/46843245>

Reviewed by Alex Christensen.

Some decoders exposed through VideoToolbox will decode asynchronously even when
kVTDecodeInfo_Asynchronous is not set. Force synchronous behavior with a Semaphore.

  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::decodeSampleSync):

1:09 PM Changeset in webkit [239386] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: selected text is too light when Inspector window is inactive
https://bugs.webkit.org/show_bug.cgi?id=190542
<rdar://problem/45238712>

Reviewed by Devin Rousso.

  • UserInterface/Views/CodeMirrorOverrides.css:

(.CodeMirror .CodeMirror-selected):

1:08 PM Changeset in webkit [239385] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: column sort controls in Layers tab sidebar don't render correctly in dark mode
https://bugs.webkit.org/show_bug.cgi?id=192845

Reviewed by Devin Rousso.

  • UserInterface/Views/DataGrid.css:

(@media (prefers-dark-interface)):
(.data-grid th.sortable:active):
Drive-by: replace obnoxiously light background of the pressed header with a more subtle gray.

(.data-grid th.sort-ascending > div:first-child::after, .data-grid th.sort-descending > div:first-child::after):
Invert colors of the arrow glyph.

12:21 PM Changeset in webkit [239384] by Megan Gardner
  • 19 edits in trunk

Allow clients to set the navigator platform
https://bugs.webkit.org/show_bug.cgi?id=192735

Reviewed by Tim Horton.

Source/WebCore:

Expanded TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm.

Lots of piping to allow the setting of a custom navigator platform.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::setCustomNavigatorPlatform):
(WebCore::DocumentLoader::customNavigatorPlatform const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::navigatorPlatform const):

  • loader/FrameLoader.h:
  • page/Navigator.cpp:

(WebCore::Navigator::platform const):

  • page/Navigator.h:
  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::platform const):
(WebCore::NavigatorBase::platform): Deleted.

  • page/NavigatorBase.h:

Source/WebKit:

Add private API to allow clients to override the default navigator
platform. Some websites check for the platform, which
interfears with our request desktop site feature. This should
help more sites function as expected.

  • Shared/WebsitePoliciesData.cpp:

(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):
(WebKit::WebsitePoliciesData::applyToDocumentLoader):

  • Shared/WebsitePoliciesData.h:
  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::data):

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/Cocoa/_WKWebsitePolicies.h:
  • UIProcess/API/Cocoa/_WKWebsitePolicies.mm:

(-[_WKWebsitePolicies setCustomNavigatorPlatform:]):
(-[_WKWebsitePolicies customNavigatorPlatform]):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):

Source/WebKitLegacy/mac:

Add stubs to fill out the added functionality in FrameLoaderClient.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::navigatorPlatform):

Tools:

Add a test for setting a custom navigator platform.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[CustomNavigatorPlatformDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[CustomNavigatorPlatformDelegate webView:didFinishNavigation:]):

11:58 AM Changeset in webkit [239383] by Adrian Perez de Castro
  • 2 edits in trunk

[GTK] Cannot build with CMake <3.7
https://bugs.webkit.org/show_bug.cgi?id=192865

Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsGTK.cmake: Convert usage of VERSION_GREATER_EQUAL to a

combination of VERSION_GREATER + STREQUAL.

11:26 AM Changeset in webkit [239382] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r234940): [ MacOS ] Layout Test imported/w3c/web-platform-tests/media-source/mediasource-changetype-play.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190976

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as flaky.
11:11 AM Changeset in webkit [239381] by Ryan Haddad
  • 5 edits
    2 deletes in trunk

Unreviewed, rolling out r239347.

Caused the leaks bot to hit an exception and the new test
crashes on certain configurations.

Reverted changeset:

"Synchronous media query evaluation could destroy current
Frame/FrameView."
https://bugs.webkit.org/show_bug.cgi?id=192781
https://trac.webkit.org/changeset/239347

10:57 AM Changeset in webkit [239380] by Truitt Savell
  • 11 edits in trunk

Unreviewed, rolling out r239358.

Revision caused imported/w3c/web-platform-tests/IndexedDB/ to
crash on Debug bots

Reverted changeset:

"Clean up IndexedDB files between tests"
https://bugs.webkit.org/show_bug.cgi?id=192796
https://trac.webkit.org/changeset/239358

10:23 AM Changeset in webkit [239379] by don.olmstead@sony.com
  • 3 edits in trunk/Source/WebCore

Sync some include directories in WebCore
https://bugs.webkit.org/show_bug.cgi?id=192819

Reviewed by Michael Catanzaro.

Added missing include directories around features that have only been enabled on
Apple ports. Removes obsolete directories from list and moves harfbuzz directories
into the freetype cmake file.

  • CMakeLists.txt:
  • platform/FreeType.cmake:
7:37 AM Changeset in webkit [239378] by commit-queue@webkit.org
  • 2 edits in trunk

Fix build on 64bit ARM with arm64 SYSTEM_PROCESSOR
https://bugs.webkit.org/show_bug.cgi?id=192497

Patch by Lucas Stach <l.stach@pengutronix.de> on 2018-12-19
Reviewed by Philippe Normand.

Android and some embedded Linux build systems use arm64 instead of
aarch64 as the CMAKE_HOST_PROCESSOR. Fix the JIT build for this scenario.

  • CMakeLists.txt:
4:12 AM Changeset in webkit [239377] by Caio Lima
  • 5 edits
    3 adds in trunk

[BigInt] We should enable CSE into arithmetic operations that speculate BigIntUse
https://bugs.webkit.org/show_bug.cgi?id=192723

Reviewed by Saam Barati.

PerformanceTests:

  • BigIntBench/big-int-cse.js: Added.
  • BigIntBench/big-int-global-cse.js: Added.
  • BigIntBench/big-int-licm.js: Added.

Source/JavaScriptCore:

This patch is adjusting clobberize rules into ValueOp nodes to enable
more optimizations when we speculate BigIntUse. In such case, DFG now
is able to apply CSE, LICM and commutativity on nodes like
ValueAdd(BigInt, BigInt), ValueSub(BigInt, BigInt), etc.

Here are the numbers we can observe with some microbenchmarks:

baseline changes

big-int-cse 108.2733+-0.8445 80.9897+-4.9781 definitely 1.3369x faster
big-int-licm 75.6641+-0.3477 57.8144+-1.6043 definitely 1.3087x faster
big-int-global-cse 145.3557+-1.0552 86.5866+-0.3025 definitely 1.6787x faster

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

3:37 AM Changeset in webkit [239376] by aboya@igalia.com
  • 4 edits in trunk/Source/WebCore

[MSE] Remove unused method: stopAskingForMoreSamples()
https://bugs.webkit.org/show_bug.cgi?id=192754

Reviewed by Xabier Rodriguez-Calvar.

The stopAskingForMoreSamples() method from SourceBufferPrivate is not
being used by anyone. SourceBuffer is not calling it and no
SourceBufferPrivate is implementing it. Let's remove that noise.

  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::setActive):
(WebCore::SourceBufferPrivate::stopAskingForMoreSamples): Deleted.

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::stopAskingForMoreSamples): Deleted.

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
3:33 AM Changeset in webkit [239375] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

String overflow in JSC::createError results in ASSERT in WTF::makeString
https://bugs.webkit.org/show_bug.cgi?id=192833
<rdar://problem/45706868>

Reviewed by Mark Lam.

JSTests:

  • stress/string-overflow-createError.js: Added.

Source/JavaScriptCore:

JSC::createError was calling WTF::makeString which would result in an
assertion failure when the string was too big. Change it to call
WTF::tryMakeString instead and return an OutOfMemory error if we fail
to create the error string.

  • runtime/ExceptionHelpers.cpp:

(JSC::createError):

3:20 AM Changeset in webkit [239374] by aboya@igalia.com
  • 7 edits in trunk/Source/WebCore

[MSE] Remove dead code: sourceBufferPrivateSeekToTime()
https://bugs.webkit.org/show_bug.cgi?id=192827

Reviewed by Xabier Rodriguez-Calvar.

This patch makes two dead code removal changes in
SourceBufferPrivateClient:

First, sourceBufferPrivateFastSeekTimeForMediaTime() is made pure
virtual in SourceBufferPrivateClient. Since SourceBufferPrivateClient
is only inherited by SourceBuffer, it makes no sense to have default
implementations there (they will never be used), moreso it being a
client interface.

Second, sourceBufferPrivateSeekToTime() is removed entirely. It used
to had an empty implementation, which SourceBuffer did not overwrite,
therefore making any calls to it useless.

All calls to sourceBufferPrivateSeekToTime() have been removed:

SourceBufferPrivateAVFObjC::seekToTime(), which was also dead code
itself, used to call this method. This patch deletes it completely.

MockSourceBufferPrivate::seekToTime(), which only called this empty
method, has also been removed along with its only usage in
MockMediaSourcePrivate::seekToTime().

  • platform/graphics/SourceBufferPrivateClient.h:

(WebCore::SourceBufferPrivateClient::sourceBufferPrivateFastSeekTimeForMediaTime): Deleted.
(WebCore::SourceBufferPrivateClient::sourceBufferPrivateSeekToTime): Deleted.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::seekToTime): Deleted.

  • platform/mock/mediasource/MockMediaSourcePrivate.cpp:

(WebCore::MockMediaSourcePrivate::seekToTime):

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:

(WebCore::MockSourceBufferPrivate::seekToTime): Deleted.

  • platform/mock/mediasource/MockSourceBufferPrivate.h:
12:55 AM Changeset in webkit [239373] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[EME] MediaKeySystemConfiguration distinctiveIdentifier and persistentState should default to optional
https://bugs.webkit.org/show_bug.cgi?id=192815

Reviewed by Jer Noble.

https://www.w3.org/TR/encrypted-media/#dom-mediakeysystemconfiguration
says that distinctiveIdentifier and persistentState default to
optional. Our implementation does not define a default leaving it
to the first option of the enum, which currently is Required.

  • platform/encryptedmedia/CDMKeySystemConfiguration.h:
12:00 AM Changeset in webkit [239372] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Merge parseAccessControlExposeHeadersAllowList into parseAccessControlAllowList
https://bugs.webkit.org/show_bug.cgi?id=192288

Patch by Rob Buis <rbuis@igalia.com> on 2018-12-19
Reviewed by Frédéric Wang.

Prefer return value to out parameter for parseAccessControlAllowList.

  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCacheItem::parse):

  • platform/network/HTTPParsers.h:

(WebCore::parseAccessControlAllowList):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::filter):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):

Dec 18, 2018:

11:41 PM Changeset in webkit [239371] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r235165): [GTK][WPE] Garbled rendering on GitLab
https://bugs.webkit.org/show_bug.cgi?id=192230

Reviewed by Carlos Garcia Campos.

Single tile can after r235165 be assigned multiple content updates
without a commit occurring between each update, whereas before these
commits were done for each update.

To avoid repeating updates for a single tile purging information about
the previous update, these updates are now accumulated inside a Vector
and then iterated over during the commit phase.

  • platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:

(WebCore::CoordinatedBackingStoreTile::addUpdate):
(WebCore::CoordinatedBackingStoreTile::swapBuffers):
(WebCore::CoordinatedBackingStore::updateTile):
(WebCore::CoordinatedBackingStoreTile::setBackBuffer): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:

(WebCore::CoordinatedBackingStoreTile::scale const):

10:37 PM Changeset in webkit [239370] by Ross Kirsling
  • 5 edits in trunk

Error message for -x ** y contains a typo.
https://bugs.webkit.org/show_bug.cgi?id=192832

Reviewed by Saam Barati.

JSTests:

  • ChakraCore/test/UnitTestFramework/UnitTestFramework.js:

(assert.assert.return.throws):

  • stress/pow-expects-update-expression-on-lhs.js:

(throw.new.Error):
Update test expectations which match against the exact error message.

Source/JavaScriptCore:

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseBinaryExpression):
Make corrections to error message: "amiguous" -> "ambiguous", "parenthesis" -> "parentheses"

10:10 PM Changeset in webkit [239369] by Wenson Hsieh
  • 4 edits in trunk

[iOS] A copied text selection is pasted as a web archive attachment in the entry view in Messages
https://bugs.webkit.org/show_bug.cgi?id=192842
<rdar://problem/46823586>

Reviewed by Tim Horton.

Source/WebCore:

Temporarily revert a behavior change introduced by r238661, where we now add "com.apple.webarchive" as a
registered UTI when dragging or copying a text selection. This broke the Messages app on iOS, which currently
inserts a copied or dragged text selection from WebKit-based views as a web archive file attachment. A fix for
this is internally tracked in <rdar://problem/46830277>.

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::write):

Tools:

Adjusts an existing API test to verify that "com.apple.webarchive" is not one of the types registered to the
item provider when dragging a rich text selection.

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
9:31 PM Changeset in webkit [239368] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, add a missing UNUSED_PARAM()

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::getPrivateImpl):

9:01 PM Changeset in webkit [239367] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

REGRESSION(r239134) iOS safe browsing warning unable to show details
https://bugs.webkit.org/show_bug.cgi?id=192837

Reviewed by Tim Horton.

  • UIProcess/Cocoa/WKSafeBrowsingWarning.mm:

(-[WKSafeBrowsingWarning addContent]):
I had a fragile design that relied on the internal view heirarchy structure of UIScrollView,
which I changed in r239134 by introducing a layout which changed where its scrollbars were in the view heirarchy.
I now have a more robust design that saves a WeakObjCPtr to the view I need to traverse to.
Testing is problematic because this had to do with scrollbars and UIScrollView internals which seem to behave
differently in TestWebKitAPI, but I verified manually that this fixes the issue.

8:35 PM Changeset in webkit [239366] by Fujii Hironori
  • 13 edits in trunk/Source/WebKit

[Win][Clang] Fix compilation warnings under Source/WebKit directory
https://bugs.webkit.org/show_bug.cgi?id=192695

Reviewed by Alex Christensen.

  • NetworkProcess/cache/NetworkCacheData.cpp:

(makeSalt): Enclosed by #if !OS(WINDOWS).

  • NetworkProcess/cache/NetworkCacheFileSystem.cpp:

(WebKit::NetworkCache::directoryEntryType): Ditto.

  • Platform/win/ModuleWin.cpp:

(WebKit::Module::platformFunctionPointer const): Cast a function pointer with reinterpret_cast<void*>().

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::DrawingMonitor::DrawingMonitor):
Moved the initializer of m_webPage in order to be encluded by #if PLATFORM(GTK).

  • UIProcess/DrawingAreaProxyImpl.h: Ditto.
  • UIProcess/Launcher/win/ProcessLauncherWin.cpp:

(WebKit::processName): Removed the duplicated 'const' type qualifier.

  • UIProcess/win/WebInspectorProxyWin.cpp:

(WebKit::WebInspectorProxy::platformAttach): Removed an unused variable.
(WebKit::WebInspectorProxy::platformDetach): Ditto.

  • UIProcess/win/WebPopupMenuProxyWin.cpp: Ditto.
  • UIProcess/win/WebView.cpp:

(WebKit::WebView::paint): Ditto.
(WebKit::WebPopupMenu::setUpPlatformData): Ditto.

  • UIProcess/win/WebPopupMenuProxyWin.h: Marked override methods with 'override'.
  • WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.h: Ditto.
  • WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp: Removed an unused variable.
7:21 PM Changeset in webkit [239365] by Justin Michaud
  • 33 edits
    5 adds in trunk

Update CSS Properties and Values API to use new cycle fallback behaviour
https://bugs.webkit.org/show_bug.cgi?id=192800

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Re-import tests and adjust expected results. Some of the tests go from pass to fail because
this patch adds some extra dependency checking to property registrations to fix a crash, but
now unsupported syntaxes like <length-percentage> do not register properly.

  • web-platform-tests/css/css-properties-values-api/register-property-expected.txt:
  • web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing-expected.txt:
  • web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html:
  • web-platform-tests/css/css-properties-values-api/register-property.html:
  • web-platform-tests/css/css-properties-values-api/registered-properties-inheritance-expected.txt:
  • web-platform-tests/css/css-properties-values-api/registered-properties-inheritance.html:
  • web-platform-tests/css/css-properties-values-api/registered-property-computation-expected.txt:
  • web-platform-tests/css/css-properties-values-api/registered-property-computation.html:
  • web-platform-tests/css/css-properties-values-api/registered-property-cssom-expected.txt:
  • web-platform-tests/css/css-properties-values-api/registered-property-cssom.html:
  • web-platform-tests/css/css-properties-values-api/registered-property-initial-expected.txt:
  • web-platform-tests/css/css-properties-values-api/registered-property-initial.html:
  • web-platform-tests/css/css-properties-values-api/resources/utils.js: Added.

(generate_name):
(any_initial_value):
(generate_property):
(all_syntaxes):

  • web-platform-tests/css/css-properties-values-api/resources/w3c-import.log: Added.
  • web-platform-tests/css/css-properties-values-api/self-utils-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/self-utils.html: Added.
  • web-platform-tests/css/css-properties-values-api/typedom.tentative-expected.txt:
  • web-platform-tests/css/css-properties-values-api/typedom.tentative.html:
  • web-platform-tests/css/css-properties-values-api/unit-cycles-expected.txt:
  • web-platform-tests/css/css-properties-values-api/unit-cycles.html:
  • web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-cycles.html:
  • web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-expected.txt:
  • web-platform-tests/css/css-properties-values-api/var-reference-registered-properties.html:
  • web-platform-tests/css/css-properties-values-api/w3c-import.log:

Source/WebCore:

Make CSS variables that are registered and involved in a cycle be treated as invalid. This also fixes a crash in the
wpt tests where relative units and calc() in a registered property's initial value would break things instead of failing.

  • css/CSSCustomPropertyValue.h:
  • css/CSSVariableReferenceValue.cpp:

(WebCore::resolveVariableReference):

  • css/DOMCSSRegisterCustomProperty.cpp:

(WebCore::DOMCSSRegisterCustomProperty::registerProperty):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyCascadedCustomProperty):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseTypedCustomPropertyValue):

LayoutTests:

  • css-custom-properties-api/crash.html:
  • css-custom-properties-api/inherits-expected.txt:
  • css-custom-properties-api/inherits.html:
  • css-custom-properties-api/registerProperty-expected.txt:
  • css-custom-properties-api/registerProperty.html:
6:27 PM Changeset in webkit [239364] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Update ARM64EHash
https://bugs.webkit.org/show_bug.cgi?id=192823
<rdar://problem/45468257>

Reviewed by Mark Lam.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::ARM64Assembler):

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::AbstractMacroAssembler):

  • assembler/AssemblerBuffer.h:

(JSC::ARM64EHash::update):
(JSC::ARM64EHash::finalHash const):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::ARM64EHash::ARM64EHash): Deleted.
(JSC::ARM64EHash::hash const): Deleted.
(JSC::ARM64EHash::randomSeed const): Deleted.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

6:11 PM Changeset in webkit [239363] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[macOS] fast/forms/datalist/datalist-textinput-suggestions-order.html sometimes crashes after r239337
https://bugs.webkit.org/show_bug.cgi?id=192836
<rdar://problem/45321184>

Reviewed by Tim Horton.

r239337 exposed a subtle issue in the implementation of -[WKDataListSuggestionsView updateWithInformation:],
wherein we might end up recomputing information for table view cells at rows that no longer exist. This currently
happens because we first set the datalist's _suggestions, then change the table view's frame, and then finally
reload the table view; however, in the case where the number of suggestions decreased and the frame changed
(which prompts AppKit to ask us again for table cell views), we'll attempt to access an out-of-bounds index in
the _suggestions vector.

To address this, we change our suggestions and immediately reload the table view before updating NSTableView's
frame, so that we only provide table view cells for rows that actually correspond to items in _suggestions.

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(-[WKDataListSuggestionsView updateWithInformation:]):

5:25 PM Changeset in webkit [239362] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

[Mac] Layout Test http/wpt/webauthn/public-key-credential-create-success-hid.https.html and http/wpt/webauthn/public-key-credential-get-success-hid.https.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=192061

Reviewed by Dewei Zhu.

Part 4.

Add some additional temporary logging info to determine if the time out value passed to the timer is right.
Once the bug is determined and fixed, we should remove all logging added in this patch.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::initTimeOutTimer):

4:23 PM Changeset in webkit [239361] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Wrong value for key property in keydown and keyup events generated holding Control key
https://bugs.webkit.org/show_bug.cgi?id=192788
<rdar://problem/46795214>

Reviewed by Wenson Hsieh.

Similar to what we do on Mac, compute the DOM key property from the characters ignoring
modifier keys input string when the Control key is held down.

  • platform/ios/PlatformEventFactoryIOS.mm:

(WebCore::keyForKeyEvent):

  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::keyForKeyEvent):

4:02 PM Changeset in webkit [239360] by mark.lam@apple.com
  • 2 edits in trunk/JSTests

Gardening: test options fix.
https://bugs.webkit.org/show_bug.cgi?id=192822

Unreviewed.

  • stress/json-stringify-string-builder-overflow.js:
3:59 PM Changeset in webkit [239359] by david_quesada@apple.com
  • 2 edits in trunk/Tools

REGRESSION: [iOS] API test TestWebKitAPI._WKDownload.OriginatingWebView is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=192810
<rdar://problem/46812536>

Reviewed by Alex Christensen.

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(-[OriginatingWebViewDownloadDelegate _downloadDidStart:]):

After releasing our reference to the web view, wait until the next turn of the runloop
before checking that the originatingWebView has been zeroed, since the web view might
still be referenced in the autorelease pool. This _WKDownload unit test isn't about
testing general memory management of WKWebViews, only that _WKDownload does not retain
its web view via the 'originatingWebView' property.

3:56 PM Changeset in webkit [239358] by sihui_liu@apple.com
  • 11 edits in trunk

Clean up IndexedDB files between tests
https://bugs.webkit.org/show_bug.cgi?id=192796

Reviewed by Geoffrey Garen.

Source/WebCore:

We should clean up the IndexedDB files between tests to make sure each test is independent of others.

This patch also fixes some issues in IDB.

Covered by existing tests.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
We should shut down all open databases instead of databases from open database connections before deleting
files, because database starts accessing files before connection to database is established.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::shutdownForClose):
We should shutdown database after tasks in queue are completed, because tasks have pointer of UniqueIDBDatabase
and UniqueIDBDatabase can be destructed after shutdown.

(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
didDeleteBackingStore can be posted to main thread after immediateCloseForUserDelete, and timer should not be
invoked during the hard close.

(WebCore::IDBServer::UniqueIDBDatabase::handleDatabaseOperations):
Tasks like didOpenBackingStore could be posted from database thread to main thread after
immediateCloseForUserDelete, but we know the backing store will be deleted soon, so no need to handle any
database operation.

(WebCore::IDBServer::UniqueIDBDatabase::performPrefetchCursor):
performPrefetchCursor needs to be aware of whether UniqueIDBDatabase is being closed, so that it will not access
m_backingStore when m_backingStore may already be deleted.

(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):
immediateCloseForUserDelete does not handle transactions that are in the process of commit or abort.
m_objectStoreTransactionCounts and m_objectStoreWriteTransactions may be used by those transactions in
transactionCompleted, so they do not need to be cleared here.

Source/WebKit:

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreRemoveAllIndexedDatabasesSync):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(runTest):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::RemoveAllIndexedDatabasesCallbackContext::RemoveAllIndexedDatabasesCallbackContext):
(WTR::RemoveAllIndexedDatabasesCallback):
(WTR::TestController::ClearIndexedDatabases):

  • WebKitTestRunner/TestController.h:
3:38 PM Changeset in webkit [239357] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Thick overlines and line-throughs grow in the wrong direction
https://bugs.webkit.org/show_bug.cgi?id=192264

Reviewed by Dean Jackson.

Source/WebCore:

Overlines should grow upward, and line-throughs should stay centered.

Test: fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction.html

  • rendering/TextDecorationPainter.cpp:

(WebCore::TextDecorationPainter::paintTextDecoration):

  • style/InlineTextBoxStyle.cpp:

(WebCore::visualOverflowForDecorations):

LayoutTests:

I can't figure out a way to test the line-through, so this just tests the overline.

  • fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction-expected.html: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-thicknes-overline-grow-direction.html: Added.
3:02 PM Changeset in webkit [239356] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix API test introduced in r239339 on iOS.
https://bugs.webkit.org/show_bug.cgi?id=192675

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(TEST):
The iOS implementation of the safe browsing warning is a little different.
It does some element creation when it is added to the window so it knows how big it is.
To test these elements, we need to simulate adding it to the window.
A similar technique is done in other iOS API tests, such as SafeBrowsing.ShowWarningSPI.

2:24 PM Changeset in webkit [239355] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

JSON.stringify() should throw OOM on StringBuilder overflows.
https://bugs.webkit.org/show_bug.cgi?id=192822
<rdar://problem/46670577>

Reviewed by Saam Barati.

JSTests:

  • stress/json-stringify-string-builder-overflow.js: Added.

Source/JavaScriptCore:

  • runtime/JSONObject.cpp:

(JSC::Stringifier::stringify):
(JSC::Stringifier::appendStringifiedValue):
(JSC::Stringifier::Holder::appendNextProperty):

2:14 PM Changeset in webkit [239354] by Ross Kirsling
  • 10 edits
    1 add in trunk

Redeclaration of var over let/const/class should be a syntax error.
https://bugs.webkit.org/show_bug.cgi?id=192298

Reviewed by Keith Miller.

JSTests:

  • test262.yaml:
  • test262/expectations.yaml:

Mark 46 tests as passing.

  • stress/block-scope-redeclarations.js:

Add some new tests.

  • stress/for-in-invalidate-context-weird-assignments.js:
  • stress/for-in-tests.js:

Replace tests for outdated behavior with tests for SyntaxError.

  • ChakraCore/test/LetConst/defer3.baseline-jsc:
  • ChakraCore/test/LetConst/letvar.baseline-jsc:

Update expectations.

Source/JavaScriptCore:

From https://tc39.github.io/ecma262/#sec-block-static-semantics-early-errors:
It is a Syntax Error if any element of the LexicallyDeclaredNames of StatementList also occurs in the
VarDeclaredNames of StatementList.

Accordingly, this patch ensures that { let x; { var x; } } and { { var x; } let x; } are syntax errors.

For the "var after" scenario:
When checking for existing lexically-declared names, we can't simply check the current var scope;
we need to check *all* enclosing scopes up to (and including) the current var scope. In so doing,
we must also avoid violating the Annex B.3.5 condition that allows try {} catch (e) { var e; }.

For the "var before" scenario:
We ensure that lexical scopes always keep track of the vars being hoisted over them; this gives us
a simple way to check the current block's var-declared names prior to making a lexical declaration.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseTryStatement):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::setIsSimpleCatchParameterScope): Added.
(JSC::Scope::isSimpleCatchParameterScope): Added.
(JSC::Scope::declareVariable):
(JSC::Scope::addVariableBeingHoisted): Added.
(JSC::Scope::declareLexicalVariable):
(JSC::Scope::hasDeclaredVariable):
(JSC::Scope::hasLexicallyDeclaredVariable): Added.
(JSC::Parser::declareHoistedVariable): Added.
(JSC::Parser::declareVariable):

2:03 PM Changeset in webkit [239353] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

Some iOS app crash in FrameLoader::checkCompleted
https://bugs.webkit.org/show_bug.cgi?id=192804
<rdar://problem/44240573>

Reviewed by Tim Horton.

It's possible for the main thread to call into WebCore / UIWebView selectors while Web thread
is trying to send a delegate message. Disable the release assertion while this is happening
so that iOS app would not crash.

Unfortunately no new test as there is no way to easily test UIWebView in iOS,
and this requires a race between the web thread & the main thread.

  • dom/ScriptDisallowedScope.h:

(WebCore::ScriptDisallowedScope::InMainThread::isScriptAllowed):

  • platform/ios/wak/WebCoreThread.h:
  • platform/ios/wak/WebCoreThread.mm:

(WebThreadDelegateMessageScope::WebThreadDelegateMessageScope):
(WebThreadDelegateMessageScope::~WebThreadDelegateMessageScope):
(SendDelegateMessage):

1:57 PM EfficientStrings edited by Konstantin Tokarev
Added clarification, what are (some of) "special considerations" of … (diff)
1:54 PM Changeset in webkit [239352] by ddkilzer@apple.com
  • 4 edits in trunk/Source

clang-tidy: Use const reference for MediaTime parameter to prevent object copy
<https://webkit.org/b/192814>

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • runtime/JSCJSValue.h:

(JSC::jsNumber):

Source/WebCore:

  • bindings/js/JSDOMConvertNumbers.h:

(WebCore::JSConverter<IDLUnrestrictedDouble>::convert):

1:51 PM Changeset in webkit [239351] by Justin Fan
  • 16 edits
    5 copies in trunk

[WebGPU] BindGroupLayout and Device::createBindGroupLayout
https://bugs.webkit.org/show_bug.cgi?id=192817

Reviewed by Dean Jackson.

Update bind-group-layouts to test new functionality.

Source/WebCore:

Implement the emtpy WebGPUBindGroupLayout interface, and enable creation via WebGPUDevice::createBindGroupLayout:

  • Modules/webgpu/WebGPUBindGroupLayout.cpp: Added.

(WebCore::WebGPUBindGroupLayout::create):
(WebCore::WebGPUBindGroupLayout::WebGPUBindGroupLayout):

  • Modules/webgpu/WebGPUBindGroupLayout.h: Added.
  • Modules/webgpu/WebGPUBindGroupLayout.idl: Added. Empty interface for now.
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createBindGroupLayout const): Added.

  • Modules/webgpu/WebGPUDevice.h:
  • Modules/webgpu/WebGPUDevice.idl:
  • platform/graphics/gpu/GPUBindGroupLayout.cpp: Added.

(WebCore::GPUBindGroupLayout::tryCreate):
(WebCore::GPUBindGroupLayout::GPUBindGroupLayout):

  • platform/graphics/gpu/GPUBindGroupLayout.h: Added.
  • platform/graphics/gpu/GPUDevice.cpp:

(WebCore::GPUDevice::tryCreateBindGroupLayout const): Added.

  • platform/graphics/gpu/GPUDevice.h:

Add files and symbols to project:

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

Missing includes that were previously provided via UnifiedSources:

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/sql/SQLiteFileSystem.h:

LayoutTests:

  • webgpu/bind-group-layouts-expected.txt:
  • webgpu/bind-group-layouts.html:
1:51 PM Changeset in webkit [239350] by Ryan Haddad
  • 8 edits
    9 copies
    3 adds
    2 deletes in trunk/LayoutTests

Unreviewed test gardening after r239306 and r239338.

Move test compositing/contents-format baselines for Mojave into platform/mac, add new baselines for High Sierra and earlier.

  • platform/mac-highsierra-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Copied from LayoutTests/platform/mac-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt.
  • platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: Copied from LayoutTests/platform/mac-mojave/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt.
  • platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt.
  • platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt.
  • platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt.
  • platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-images-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-images-expected.txt.
  • platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt.
  • platform/mac-highsierra/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt.
  • platform/mac-mojave-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Removed.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: Removed.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: Removed.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Removed.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-images-expected.txt: Removed.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: Removed.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: Removed.
  • platform/mac-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt:
  • platform/mac/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: Renamed from LayoutTests/platform/mac-mojave/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt.
  • platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt:
  • platform/mac/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt:
  • platform/mac/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt:
  • platform/mac/compositing/contents-format/subpixel-antialiased-text-images-expected.txt:
  • platform/mac/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt:
  • platform/mac/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt:
1:41 PM Changeset in webkit [239349] by youenn@apple.com
  • 8 edits
    3 deletes in trunk/Source/WebCore

Make ReadableStreamXX constructs use PrivateIdentifier
https://bugs.webkit.org/show_bug.cgi?id=192771

Reviewed by Chris Dumez.

PrivateIdentifier is a better name for making sure a given construct does not show up in the global scope.
Covered by existing binding tests.

  • Modules/streams/ReadableByteStreamController.idl:
  • Modules/streams/ReadableStreamBYOBReader.idl:
  • Modules/streams/ReadableStreamBYOBRequest.idl:
  • Modules/streams/ReadableStreamDefaultController.idl:
  • Modules/streams/ReadableStreamDefaultReader.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsConstructorProperty):

  • bindings/scripts/preprocess-idls.pl:

(shouldExposeInterface):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp: Removed.
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h: Removed.
  • bindings/scripts/test/TestCustomConstructor.idl: Removed.
12:59 PM Changeset in webkit [239348] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk/Source/WebKit

HTTPS Upgrade: Scripts / preprocessing necessary to create new database in future
https://bugs.webkit.org/show_bug.cgi?id=192612
<rdar://problem/46651207>

Patch by Vivek Seth <v_seth@apple.com> on 2018-12-18
Reviewed by Andy Estes.

  • Configurations/WebKit.xcconfig:
  • DerivedSources.make:
  • Scripts/generate-https-upgrade-database.sh: Added.
  • WebKit.xcodeproj/project.pbxproj:
12:09 PM Changeset in webkit [239347] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Synchronous media query evaluation could destroy current Frame/FrameView.
https://bugs.webkit.org/show_bug.cgi?id=192781
<rdar://problem/34416793>

Reviewed by Chris Dumez.

Source/WebCore:

Protect Frame and FrameView when coming back from printing and check if the current Frame/FrameView/FrameLoader objects are still valid.

Test: printing/print-with-media-query-destory.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::finishedLoading):

  • page/Frame.cpp:

(WebCore::Frame::setPrinting):

  • page/FrameView.cpp:

(WebCore::FrameView::forceLayoutForPagination):

LayoutTests:

  • printing/print-with-media-query-destory-expected.txt: Added.
  • printing/print-with-media-query-destory.html: Added.
11:45 AM Changeset in webkit [239346] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the 32-bit watchOS build after r239314

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):

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

Web Inspector: Layers: increase default column width for other localizations
https://bugs.webkit.org/show_bug.cgi?id=192812
<rdar://problem/46628625>

Reviewed by Brian Burg.

  • UserInterface/Views/LayerDetailsSidebarPanel.js:

(WI.LayerDetailsSidebarPanel.prototype._buildDataGrid):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WI.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):

11:42 AM Changeset in webkit [239344] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkitpy: Ignore device type for test when using --force
https://bugs.webkit.org/show_bug.cgi?id=192786
<rdar://problem/46794894>

Reviewed by Daniel Bates.

It is sometimes the case that a contributor will wish to run a test on a specific device,
despite expectations which indicate a test should not be run on that device.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

  • Scripts/webkitpy/port/device_port.py:

(DevicePort.default_child_processes): Strip device type information when using --force.
(DevicePort.setup_test_run): Only allow incomplete match when using --force.

11:18 AM Changeset in webkit [239343] by Joseph Pecoraro
  • 11 edits in trunk

Web Inspector: m3u8 content not shown, it should be text
https://bugs.webkit.org/show_bug.cgi?id=192731
<rdar://problem/46747728>

Reviewed by Devin Rousso.

Source/WebCore:

  • inspector/NetworkResourcesData.cpp:

(WebCore::NetworkResourcesData::setResourceContent):
Don't clobber data if setting empty content on a resource that has content.

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::shouldTreatAsText):
Additional non-"text/" mime types that can be treated as text.

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isTextMediaPlaylistMIMEType):

  • platform/MIMETypeRegistry.h:

Detect media playlist mime types that are text (m3u8/m3u).

Source/WebInspectorUI:

  • UserInterface/Base/MIMETypeUtilities.js:

(WI.shouldTreatMIMETypeAsText):
Support m3u8/m3u files as text.

LayoutTests:

  • inspector/unit-tests/mimetype-utilities-expected.txt:
  • inspector/unit-tests/mimetype-utilities.html:

Tests for shouldTreatMIMETypeAsText.

11:17 AM Changeset in webkit [239342] by dbates@webkit.org
  • 5 edits in trunk

Remove <meta http-equiv=set-cookie> support
https://bugs.webkit.org/show_bug.cgi?id=185077
<rdar://problem/41791397>

Reviewed by Brent Fulgham.

Source/WebCore:

Remove support for the HTTP-equiv. pragma Set-Cookie to set a cookie. In <https://github.com/whatwg/html/pull/3649>
the HTML living standard was ammended to define this pragma as no-op. Chrome and Edge have also
removed support for this pragma and Firefox has an open bug to remove it.

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Emit a message that the Set-Cookie pragma is obsolete and
was ignored instead of setting the cookie.

  • html/parser/XSSAuditor.cpp:

(WebCore::isDangerousHTTPEquiv): We no longer need to consider the Set-Cookie pragma
as dangerous and erase attribute http-equiv when we find it because we no longer honor
this pragma.

LayoutTests:

Update test now that we no longer consider the HTTP equiv. pragma Set-Cookie as
dangerous (since it is ignored).

  • http/tests/security/xssAuditor/cookie-injection-expected.txt:
10:51 AM Changeset in webkit [239341] by Justin Michaud
  • 26 edits
    2 copies
    12 adds in trunk

CSS Typed OM should expose attributeStyleMap
https://bugs.webkit.org/show_bug.cgi?id=192671

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-properties-values-api/typedom.tentative-expected.txt:
  • web-platform-tests/css/css-properties-values-api/unit-cycles-expected.txt:

Source/WebCore:

Exposes element.attributeStyleMap, adds a stub for the StylePropertyMap class, and updates the existing
TypedOMCSSImageValue to not require a RenderObject so that it can still work inside attributeStyleMap.

Test: css-typedom/attributeStyleMap.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
  • css/ElementCSSInlineStyle.idl:
  • css/typedom/StylePropertyMap.h: Copied from Source/WebCore/css/typedom/StylePropertyMapReadOnly.h.
  • css/typedom/StylePropertyMap.idl: Copied from Source/WebCore/css/typedom/StylePropertyMapReadOnly.idl.
  • css/typedom/StylePropertyMapReadOnly.cpp: Added.

(WebCore::StylePropertyMapReadOnly::reifyValue):
(WebCore::StylePropertyMapReadOnly::customPropertyValueOrDefault):

  • css/typedom/StylePropertyMapReadOnly.h:

(WebCore::StylePropertyMapReadOnly::create): Deleted.
(WebCore::StylePropertyMapReadOnly::get const): Deleted.
(WebCore::StylePropertyMapReadOnly::StylePropertyMapReadOnly): Deleted.

  • css/typedom/StylePropertyMapReadOnly.idl:
  • css/typedom/TypedOMCSSImageValue.h:
  • dom/Element.cpp:

(WebCore::Element::attributeStyleMap):
(WebCore::Element::setAttributeStyleMap):

  • dom/Element.h:
  • dom/ElementRareData.cpp:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::attributeStyleMap):
(WebCore::ElementRareData::setAttributeStyleMap):

  • dom/StyledElement.cpp:

(WebCore::StyledElement::ensureAttributeStyleMap):

  • dom/StyledElement.h:
  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::size):
(WebCore::CanvasRenderingContext2DBase::drawImage):

  • platform/graphics/CustomPaintImage.cpp:

(WebCore::extractComputedProperty):
(WebCore::CustomPaintImage::doCustomPaint):

LayoutTests:

  • css-typedom/attributeStyleMap-expected.txt: Added.
  • css-typedom/attributeStyleMap.html: Added.
  • css-typedom/sameobject-expected.txt: Added.
  • css-typedom/sameobject.html: Added.
  • fast/css-custom-paint/properties.html:
  • platform/ios-wk1/TestExpectations:
  • platform/ios-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt: Added.
  • platform/win/TestExpectations:
10:40 AM Changeset in webkit [239340] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Appease a build error where we weren't using a variable defined in an "if"

  • dfg/DFGAbstractInterpreterInlines.h:

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

10:26 AM Changeset in webkit [239339] by achristensen@apple.com
  • 8 edits in trunk

WKWebView has old URL while displaying SafeBrowsing interstitial, for link-click navigations
https://bugs.webkit.org/show_bug.cgi?id=192675

Reviewed by Geoffrey Garen.

Source/WebKit:

When a safe browsing warning is being shown, WKWebView.URL should be the unsafe website, not the safe website before it.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]):
(-[WKWebView _showSafeBrowsingWarningWithURL:title:warning:details:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm:

(WebKit::SafeBrowsingWarning::SafeBrowsingWarning):

  • UIProcess/SafeBrowsingWarning.h:

(WebKit::SafeBrowsingWarning::create):
(WebKit::SafeBrowsingWarning::url const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(goBack):
(TEST):
(visitUnsafeSite):
(-[SafeBrowsingHelper observeValueForKeyPath:ofObject:change:context:]):
(-[SafeBrowsingHelper webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):

9:11 AM Changeset in webkit [239338] by Simon Fraser
  • 1 edit
    4 adds in trunk/LayoutTests

Fix test failure after r239306.

Need Mojave WK1 results for this test.

  • platform/mac-mojave-wk1/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Added.
7:37 AM Changeset in webkit [239337] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

Calling setValue() while typing should invoke -textDidChangeInTextField in the injected bundle
https://bugs.webkit.org/show_bug.cgi?id=192785
<rdar://problem/45321184>

Reviewed by Tim Horton.

Source/WebCore:

Makes a minor adjustment in TextFieldInputType::setValue to consider value changes as "user editing", if we're
currently processing a keystroke from the user. This is useful for certain private clients, such as Safari, that
need to know when the user is typing in a text form control, but the page is preventing default text insertion
behavior and instead updating values programmatically.

Test: fast/forms/call-text-did-change-in-text-field-when-typing.html

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::setValue):

LayoutTests:

Add a test to verify that:

  1. When typing in a focused field, the injected bundle method is invoked.
  2. When changing the value of the focused field under non-typing user interaction, the method isn't invoked.
  3. When changing the value of the focused field programmatically without user gesture, the method isn't invoked.
  • TestExpectations:
  • fast/forms/call-text-did-change-in-text-field-when-typing-expected.txt: Added.
  • fast/forms/call-text-did-change-in-text-field-when-typing.html: Added.
  • platform/wk2/TestExpectations:
7:30 AM Changeset in webkit [239336] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][BFC][MarginCollapsing] Implement marginBeforeCollapsesWithParentMarginAfter
https://bugs.webkit.org/show_bug.cgi?id=192801

Reviewed by Antti Koivisto.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginBeforeCollapsesWithParentMarginAfter):

7:28 AM Changeset in webkit [239335] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC][MarginCollapsing] Implement marginAfterCollapsesWithSiblingMarginBeforeWithClearance
https://bugs.webkit.org/show_bug.cgi?id=192799

Reviewed by Antti Koivisto.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfterCollapsesWithSiblingMarginBeforeWithClearance):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfterCollapsesWithParentMarginAfter):

7:27 AM Changeset in webkit [239334] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][BFC][MarginCollapsing] Implement marginAfterCollapsesWithParentMarginBefore
https://bugs.webkit.org/show_bug.cgi?id=192798

Reviewed by Antti Koivisto.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::collapsedMarginAfterFromLastChild):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfterCollapsesWithParentMarginBefore):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfterCollapsesWithParentMarginAfter):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfter):

7:26 AM Changeset in webkit [239333] by Chris Dumez
  • 7 edits in trunk

Regression(r239182) SuspendedPage's process reuse for link navigation optimization sometimes broken
https://bugs.webkit.org/show_bug.cgi?id=192772

Reviewed by Antti Koivisto.

Source/WebKit:

With r239182, if the page in the previous process would fail to enter PageCache, we would destroy
the corresponding SuspendedPageProxy, which would potentially terminate the process. This would
regress performance when trying to navigate back in history to that page. This would also regress
performance when link-navigating to the same domain as we would have previously reused the suspended
page's process for such navigation.

Address the issue by keeping the SuspendedPageProxy alive even if the WebPage fails to suspend.
When trying to reuse a SuspendedPageProxy, if the page failed to suspend, reuse its process but
not the suspended page itself.

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::~SuspendedPageProxy):
(WebKit::SuspendedPageProxy::waitUntilReadyToUnsuspend):
(WebKit::SuspendedPageProxy::unsuspend):
(WebKit::SuspendedPageProxy::didSuspend):
(WebKit::SuspendedPageProxy::didFailToSuspend):
(WebKit::SuspendedPageProxy::loggingString const):

  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::swapToWebProcess):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
7:25 AM Changeset in webkit [239332] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC][MarginCollapsing] Expand marginsCollapseThrough collapsing logic
https://bugs.webkit.org/show_bug.cgi?id=192794

Reviewed by Antti Koivisto.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginsCollapseThrough):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginBefore):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfter):

7:23 AM Changeset in webkit [239331] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][BFC][MarginCollapsing] Expand marginAfterCollapsesWithNextSibling and marginBeforeCollapsesWithPreviousSibling collapsing logic
https://bugs.webkit.org/show_bug.cgi?id=192791

Reviewed by Antti Koivisto.

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginBeforeCollapsesWithPreviousSibling):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfterCollapsesWithNextSibling):

7:19 AM Changeset in webkit [239330] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC][MarginCollapsing] Expand marginAfterCollapsesWithParentMarginAfter and marginBeforeCollapsesWithParentMarginBefore collapsing logic
https://bugs.webkit.org/show_bug.cgi?id=192787

Reviewed by Antti Koivisto.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::hasClearance):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfterCollapsesWithSiblingMarginBeforeWithClearance):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfterCollapsesWithParentMarginBefore):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfterCollapsesWithParentMarginAfter):

5:00 AM Changeset in webkit [239329] by Philippe Normand
  • 2 edits in trunk/Tools

Unreviewed, JHBuild GTK build fix attempt

  • gtk/jhbuild.modules: There's no libffi in this moduleset anymore.

There's no ninja module either, it should be provided by the host system.

12:16 AM Changeset in webkit [239328] by mark.lam@apple.com
  • 2 edits in trunk/JSTests

Skip the stress/elidable-new-object-roflcopter-then-exit.js test on 32-bit.
https://bugs.webkit.org/show_bug.cgi?id=191374
<rdar://problem/46525447>

Reviewed by Yusuke Suzuki.

This test runs too slow on 32-bit, and is not relevant for non-JIT builds.

  • stress/elidable-new-object-roflcopter-then-exit.js:

Dec 17, 2018:

11:58 PM Changeset in webkit [239327] by mark.lam@apple.com
  • 2 edits in trunk/JSTests

Skip the stress/materialized-regexp-has-correct-last-index-set-by-match.js test on 32-bit.
https://bugs.webkit.org/show_bug.cgi?id=192019
<rdar://problem/46525456>

Reviewed by Yusuke Suzuki.

The test runs too slow on 32-bit.

  • stress/materialized-regexp-has-correct-last-index-set-by-match.js:
11:51 PM Changeset in webkit [239326] by mark.lam@apple.com
  • 2 edits in trunk/JSTests

Skip the stress/materialize-regexp-cyclic-regexp.js test on 32-bit.
https://bugs.webkit.org/show_bug.cgi?id=191373
<rdar://problem/46525458>

Reviewed by Yusuke Suzuki.

The test is already slow running with a JIT on 64-bit. It will always timeout
on 32-bit without a JIT.

  • stress/materialize-regexp-cyclic-regexp.js:
10:56 PM Changeset in webkit [239325] by mark.lam@apple.com
  • 4 edits
    1 add in trunk

Array unshift/shift should not race against the AI in the compiler thread.
https://bugs.webkit.org/show_bug.cgi?id=192795
<rdar://problem/46724263>

Reviewed by Saam Barati.

JSTests:

  • stress/array-unshift-should-not-race-against-compiler-thread.js: Added.

Source/JavaScriptCore:

The Array unshift and shift operations for ArrayStorage type arrays are protected
using the cellLock. The AbstractInterpreter's foldGetByValOnConstantProperty()
function does grab the cellLock before reading a value from the array's ArrayStorage,
but does not get the array butterfly under the protection of the cellLock.

This is insufficient and racy. For ArrayStorage type arrays, the fetching of the
butterfly also needs to be protected by the cellLock. The unshift / shift
operations can move values around in the butterfly. Hence, the fact that AI has
fetched a butterfly pointer (while ensuring no structure change) is insufficient
to guarantee that the values in the butterfly haven't shifted.

Having AI hold the cellLock the whole time (from before fetching the butterfly
till after reading the value from it) eliminates this race. Note: we only need
to do this for ArrayStorage type arrays.

Note also that though AI is holding the cellLock in this case, we still need to
ensure that the array structure hasn't changed around the fetching of the butterfly.
This is because operations other than unshift and shift are guarded by this
protocol, and not the cellLock.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • runtime/JSArray.cpp:

(JSC::JSArray::unshiftCountSlowCase):

10:54 PM Changeset in webkit [239324] by yusukesuzuki@slowstart.org
  • 34 edits
    6 adds in trunk

[JSC] Optimize Object.keys by caching own keys results in StructureRareData
https://bugs.webkit.org/show_bug.cgi?id=190047

Reviewed by Saam Barati.

JSTests:

  • stress/object-keys-cached-zero.js: Added.

(shouldBe):
(test):

  • stress/object-keys-changed-attribute.js: Added.

(shouldBe):
(test):

  • stress/object-keys-changed-index.js: Added.

(shouldBe):
(test):

  • stress/object-keys-changed.js: Added.

(shouldBe):
(test):

  • stress/object-keys-indexed-non-cache.js: Added.

(shouldBe):
(test):

  • stress/object-keys-overrides-get-property-names.js: Added.

(shouldBe):
(test):
(noInline):

Source/JavaScriptCore:

Object.keys is one of the most frequently used function in web-tooling-benchmarks (WTB).
Object.keys is dominant in lebab of WTB, and frequently called in babel and others.
Since our Structure knows the shape of JSObject, we can cache the result of Object.keys
in Structure (StructureRareData) as we cache JSPropertyNameEnumerator in StructureRareData.

This patch caches the result of Object.keys in StructureRareData. The cached array is created
as JSImmutableButterfly. And Object.keys creates CoW from this data. Currently, the lifetime
strategy of this JSImmutableButterfly is the same to cached JSPropertyNameEnumerator. It is
referenced from Structure, and collected when Structure is collected.

This improves several benchmarks in SixSpeed.

baseline patched

object-assign.es5 350.1710+-3.6303 226.0368+-4.7558 definitely 1.5492x faster
for-of-object.es6 269.1941+-3.3430 127.9317+-2.3875 definitely 2.1042x faster

And it improves WTB lebab by 11.8%.

Before: lebab: 6.10 runs/s
After: lebab: 6.82 runs/s

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::convertToNewArrayBuffer):

  • dfg/DFGNode.h:
  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileObjectKeys):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileObjectKeys):

  • runtime/Butterfly.h:

(JSC::ContiguousData::Data::setStartingValue):

  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • runtime/JSImmutableButterfly.h:

(JSC::JSImmutableButterfly::JSImmutableButterfly):
We set JSEmpty to the underlying butterfly storage if indexing type is Contiguous.
Otherwise, JSImmutableButterfly is half-baked one until all the storage is filled with some meaningful values, it leads to crash
if half-baked JSImmutableButterfly is exposed to GC.

  • runtime/ObjectConstructor.cpp:

(JSC::ownPropertyKeys):

  • runtime/Structure.cpp:

(JSC::Structure::canCachePropertyNameEnumerator const):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::setCachedOwnKeys):
(JSC::Structure::cachedOwnKeys const):
(JSC::Structure::cachedOwnKeysIgnoringSentinel const):
(JSC::Structure::canCacheOwnKeys const):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::visitChildren):
(JSC::StructureRareData::cachedPropertyNameEnumerator const): Deleted.
(JSC::StructureRareData::setCachedPropertyNameEnumerator): Deleted.

  • runtime/StructureRareData.h:
  • runtime/StructureRareDataInlines.h:

(JSC::StructureRareData::cachedPropertyNameEnumerator const):
(JSC::StructureRareData::setCachedPropertyNameEnumerator):
(JSC::StructureRareData::cachedOwnKeys const):
(JSC::StructureRareData::cachedOwnKeysIgnoringSentinel const):
(JSC::StructureRareData::cachedOwnKeysConcurrently const):
(JSC::StructureRareData::setCachedOwnKeys):
(JSC::StructureRareData::previousID const): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM):

10:37 PM Changeset in webkit [239323] by jiewen_tan@apple.com
  • 5 edits in trunk

[Mac] Layout Test http/wpt/webauthn/public-key-credential-create-success-hid.https.html and http/wpt/webauthn/public-key-credential-get-success-hid.https.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=192061

Reviewed by Dewei Zhu.

Source/WebKit:

Part 3.

Add some additional temporary logging info to determine if the timer is working as expected.
Once the bug is determined and fixed, we should remove all logging added in this patch.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::respondReceived):
(WebKit::AuthenticatorManager::initTimeOutTimer):
(WebKit::AuthenticatorManager::timeOutTimerFired):

  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp:

(WebKit::MockAuthenticatorManager::respondReceivedInternal):

LayoutTests:

Add a time out value.

  • http/wpt/webauthn/public-key-credential-create-success-hid.https.html:
10:33 PM Changeset in webkit [239322] by sbarati@apple.com
  • 15 edits in trunk/Source

Enable HTTP and HTTPS proxies on iOS and make it a property of the NSURLSession
https://bugs.webkit.org/show_bug.cgi?id=192374
<rdar://problem/46506286>

Reviewed by Alex Christensen.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Remove the now-unused SPI declaration.

Source/WebKit:

This patch makes it so that we can use HTTP/HTTPS proxies on iOS as well.
To enable on iOS, you can do something like:
$ defaults write -g WebKit2HTTPProxy -string "http://localhost:8080"
$ defaults write -g WebKit2HTTPSProxy -string "http://localhost:8080"

This patch also changes the Proxy to be enabled on a per NSURLSession
basis instead of a per process basis.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::privateSessionParameters):
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::proxyDictionary):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcess):
(WebKit::overrideSystemProxies): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _initWithConfiguration:]):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration httpProxy]):
(-[_WKWebsiteDataStoreConfiguration setHTTPProxy:]):
(-[_WKWebsiteDataStoreConfiguration httpsProxy]):
(-[_WKWebsiteDataStoreConfiguration setHTTPSProxy:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::httpProxy const):
(WebKit::WebsiteDataStoreConfiguration::setHTTPProxy):
(WebKit::WebsiteDataStoreConfiguration::httpsProxy const):
(WebKit::WebsiteDataStoreConfiguration::setHTTPSProxy):

10:30 PM Changeset in webkit [239321] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Tap highlights should not be shown on iOSMac
https://bugs.webkit.org/show_bug.cgi?id=192797
<rdar://problem/46793995>

Reviewed by Tim Horton.

WKWebViews in iOSMac should avoid painting tap highlights, since tap highlights are not present in the rest of
the macOS platform. Simply disable this functionality by bailing in -[WKContentView _showTapHighlight].

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _showTapHighlight]):

9:49 PM Changeset in webkit [239320] by Fujii Hironori
  • 8 edits in trunk/Source/WebCore

[Win][Clang] Fix compilation warnings WebCore/platform/graphics directory
https://bugs.webkit.org/show_bug.cgi?id=192752

Reviewed by Don Olmstead.

No new tests, no behavior changes.

  • platform/graphics/win/DIBPixelData.cpp:

Enclosed bitmapType and bitmapPixelsPerMeter with #ifndef NDEBUG.

  • platform/graphics/win/FontPlatformDataWin.cpp:

(WebCore::FontPlatformData::openTypeTable const): Use ASSERT_UNUSED instead of ASSERT.

  • platform/graphics/win/GraphicsContextWin.cpp: Removed unused variable 'deg2rad'.
  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

Removed unused soft links MFCreateSampleGrabberSinkActivate, MFCreateMemoryBuffer and MFCreateSample.
(WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation):
Reorder the initializer list.
(WebCore::MediaPlayerPrivateMediaFoundation::seek): Use ASSERT_UNUSED instead of ASSERT.
(WebCore::MediaPlayerPrivateMediaFoundation::setAllChannelVolumes): Ditto.
(WebCore::MediaPlayerPrivateMediaFoundation::createSession): Ditto.
(WebCore::MediaPlayerPrivateMediaFoundation::endSession): Ditto.
(WebCore::MediaPlayerPrivateMediaFoundation::onCreatedMediaSource): Ditto.
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::paintCurrentFrame): Added default case.

  • platform/graphics/win/SimpleFontDataCairoWin.cpp:

(WebCore::Font::platformBoundsForGlyph const): Use inner braces to initialize subobjects of MAT2.

  • platform/graphics/win/SimpleFontDataWin.cpp: Removed unused 'cSmallCapsFontSizeMultiplier'.

(WebCore::Font::initGDIFont): Use inner braces to initialize subobjects of MAT2.
(WebCore::Font::boundsForGDIGlyph const): Ditto.
(WebCore::Font::widthForGDIGlyph const): Ditto.

  • platform/graphics/win/UniscribeController.cpp:

(WebCore::UniscribeController::UniscribeController):
Reorder the initializer list.

(WebCore::UniscribeController::offsetForPosition): Use parentheses to combine && and
.

(WebCore::UniscribeController::shapeAndPlaceItem): Removed unused 'glyphCount'.

9:31 PM Changeset in webkit [239319] by eric.carlson@apple.com
  • 12 edits
    2 adds
    2 deletes in trunk

[MediaStream] A stream's first video frame should be rendered
https://bugs.webkit.org/show_bug.cgi?id=192629
<rdar://problem/46664353>

Reviewed by Youenn Fablet.

Source/WebCore:

Test: fast/mediastream/media-stream-renders-first-frame.html

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::characteristicsChanged):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::size const):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::processNewFrame):

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::RealtimeIncomingVideoSourceCocoa::processNewSample):

LayoutTests:

  • fast/mediastream/MediaStream-video-element-displays-buffer.html: Updated.
  • fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt: Ditto.
  • fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html: Ditto.
  • fast/mediastream/media-stream-renders-first-frame-expected.txt: Added.
  • fast/mediastream/media-stream-renders-first-frame.html: Added.
  • http/tests/media/media-stream/getusermedia-with-canvas-expected.txt: Removed.
  • http/tests/media/media-stream/getusermedia-with-canvas.html: Removed.
9:23 PM Changeset in webkit [239318] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the iOSMac engineering build again

After r239311, WebProcessProxy::fullKeyboardAccessEnabled in WebProcessProxyIOS.mm attempts to use
WKFullKeyboardAccessWatcher, which is guarded by ENABLE(FULL_KEYBOARD_ACCESS). However, on iOSMac,
ENABLE(FULL_KEYBOARD_ACCESS) is 0. Fix the build by putting access to WKFullKeyboardAccessWatcher behind
ENABLE(FULL_KEYBOARD_ACCESS).

  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::fullKeyboardAccessEnabled):

8:39 PM Changeset in webkit [239317] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the iOSMac engineering build

generateRequestID() is only invoked from code under ENABLE(MEDIA_STREAM); move it under this guard to avoid
an unused function warning.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
8:17 PM Changeset in webkit [239316] by Justin Michaud
  • 5 edits in trunk/Source/WebCore

Bindings generator should support Conditional= along with CachedAttribute
https://bugs.webkit.org/show_bug.cgi?id=192721

Reviewed by Ryosuke Niwa.

Fix a bug where specifying both attributes causes compilation errors because the compile-time
condition is not included in the derived code.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

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

(WebCore::jsTestObjCachedAttribute3Getter):
(WebCore::jsTestObjCachedAttribute3):
(WebCore::JSTestObj::visitChildren):

  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/TestObj.idl:
8:09 PM Changeset in webkit [239315] by ddkilzer@apple.com
  • 5 edits in trunk/Source

clang-tidy: Fix unnecessary object copy in CPUMonitor::setCPULimit()
<https://webkit.org/b/192707>
<rdar://problem/46734926>

Reviewed by Daniel Bates.

Source/WebCore:

  • platform/CPUMonitor.cpp:

(WebCore::CPUMonitor::setCPULimit):

  • platform/CPUMonitor.h:

(WebCore::CPUMonitor::setCPULimit):

  • Change parameter to const reference to fix unnecessary copies.

Source/WebKit:

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateCPUMonitorState):

  • Pass m_cpuLimit directly since getting its value causes an identical std::optional<double> to be created unnecessarily.
8:04 PM Changeset in webkit [239314] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

[iOS] Focusing a large editable element always scrolls to the top of the element
https://bugs.webkit.org/show_bug.cgi?id=192745
<rdar://problem/46758445>

Reviewed by Tim Horton.

Source/WebKit:

Currently, when focusing form controls or editable elements, we try to scroll such that the focused element rect
is centered within the visible area. In the case of very large focusable elements whose dimensions exceed the
width or height of the visible area, we instead scroll such that the top left point of the element is at the top
left corner of the visible area.

However, this results in unnecessary scrolling if the top of the element is already near the top of the visible
area. For WebKit2-based rich text editors that have an editable body element with a top content inset that
contains additional content, this means we will always scroll the additional content away when focusing the
editable body.

To avoid this behavior, adjust focused element zooming logic for editable elements that are too large to be
centered in the visible area, such that we only scroll the top left position of the focused element to the top
half or top right of the visible area, respectively. This reduces the amount of scrolling when focusing large
editable elements, while still making it clear which element is being focused.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):

Make some small adjustments to improve the readability of this method by using clampTo instead of clamping
values by comparing and setting values.

Also, fix an existing bug wherein focusable elements that are meant to be centered within the visible area are
currently offset by half the difference between the bottom inset amount and the top inset amount, in the case
where the _obscuredInsets SPI is used to specify content insets for the web view (i.e., MobileSafari).

  • UIProcess/API/Cocoa/WKWebViewInternal.h:

Make a couple of arguments const FloatRect& instead of just FloatRect.

LayoutTests:

Add a new layout test to verify that we don't scroll unnecessarily when focusing a tall editable element, whose
top offset is already near the top of the viewport.

  • editing/selection/ios/no-scrolling-when-focusing-large-editable-area-expected.txt: Added.
  • editing/selection/ios/no-scrolling-when-focusing-large-editable-area.html: Added.
7:52 PM Changeset in webkit [239313] by rniwa@webkit.org
  • 9 edits
    2 adds in trunk

offsetLeft and offsetParent should adjust across shadow boundaries
https://bugs.webkit.org/show_bug.cgi?id=157437
<rdar://problem/26154021>

Reviewed by Simon Fraser.

Source/WebCore:

Update the WebKit's treatment of shadow boundaries in offsetLeft, offsetTop, and offsetParent to match
the latest discussion in CSS WG. See https://github.com/w3c/webcomponents/issues/497
and https://github.com/w3c/webcomponents/issues/763

The latest consensus is to use the retargeting algorithm (https://dom.spec.whatwg.org/#retarget).
In practice, this would mean that we need to keep walking up the offset parent ancestors until we find
the one which is in the same tree as a shadow-inclusive ancestor of the context object.

For example, if a node (the context object of offsetTop, offsetLeft, offsetParent) was assigned to a slot
inside a shadow tree and its offset parent was in the shadow tree, we need to walk up to its offset parent,
then its offset parent, etc... until we find the offset parent in the same tree as the context object.

Note it's possible that the context object is inside a shadow tree which does not have its own offset parent.
(e.g. all elements have position: static) For this reason, we need to consider not just offset parent in
the same tree as the context object but as well as any offset parent which is in its ancestor trees.

Test: fast/shadow-dom/offsetParent-across-shadow-boundaries.html

  • dom/Element.cpp:

(WebCore::adjustOffsetForZoomAndSubpixelLayout): Extracted to share code between offsetLeft and offsetTop.
(WebCore::collectAncestorTreeScopeAsHashSet): Added.
(WebCore::Element::offsetLeftForBindings): Added. Sums up offsetLeft's until it finds the first offset parent
which is a shadow-including ancestor (https://dom.spec.whatwg.org/#concept-shadow-including-ancestor).
(WebCore::Element::offsetLeft): Now uses adjustOffsetForZoomAndSubpixelLayout.
(WebCore::Element::offsetTopForBindings): Added. Like offsetLeftForBindings, this function sums up offsetTop's
until it finds the first offset parent which is a shadow-including ancestor.
(WebCore::Element::offsetTop): Now uses adjustOffsetForZoomAndSubpixelLayout.
(WebCore::Element::offsetParentForBindings): Renamed from bindingsOffsetParent to be consistent with other
functions meant to be used for bindings code.

  • dom/Element.h:
  • html/HTMLElement.idl:

Source/WebKit:

Use *forBindings variants of offsetLeft, offsetTop, and offsetParent.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementGtk.cpp:

(webkit_dom_element_get_offset_left):
(webkit_dom_element_get_offset_top):
(webkit_dom_element_get_offset_parent):

Source/WebKitLegacy/mac:

Use *forBindings variants of offsetLeft, offsetTop, and offsetParent.

  • DOM/DOMElement.mm:

(-[DOMElement offsetLeft]):
(-[DOMElement offsetTop]):
(-[DOMElement offsetParent]):

LayoutTests:

Added a W3C style testharness.js test.

  • fast/shadow-dom/offsetParent-across-shadow-boundaries-expected.txt: Added.
  • fast/shadow-dom/offsetParent-across-shadow-boundaries.html: Added.
6:45 PM Changeset in webkit [239312] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: path view is misaligned
https://bugs.webkit.org/show_bug.cgi?id=192761

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/RecordingContentView.css:

(.content-view:not(.tab).recording :matches(img, canvas)):
(.content-view:not(.tab).recording canvas.path):

6:25 PM Changeset in webkit [239311] by Chris Fleizach
  • 6 edits in trunk/Source

Some builds are broken after r239262
https://bugs.webkit.org/show_bug.cgi?id=192777

Reviewed by Simon Fraser.

Source/WebKit:

  • Platform/spi/ios/AccessibilitySupportSPI.h:
  • UIProcess/Cocoa/WKFullKeyboardAccessWatcher.h:
  • UIProcess/Cocoa/WKFullKeyboardAccessWatcher.mm:

(platformIsFullKeyboardAccessEnabled):
(-[WKFullKeyboardAccessWatcher init]):
Fix the build by being more clear about when it's OK to use AccessibilitySupport.

Source/WTF:

  • wtf/Platform.h:
6:17 PM Changeset in webkit [239310] by Chris Dumez
  • 4 edits in trunk

Allow passing nil as session state to [WKWebView _restoreSessionState:]
https://bugs.webkit.org/show_bug.cgi?id=192789
<rdar://problem/46755277>

Reviewed by Alex Christensen.

Source/WebKit:

Allow passing nil as session state to [WKWebView _restoreSessionState:] instead of crashing.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _restoreSessionState:andNavigate:]):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKit/WKBackForwardList.mm:

(TEST):

6:03 PM Changeset in webkit [239309] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WTF

Merge r239249 - Verify size is valid in USE_SYSTEM_MALLOC version of tryAllocateZeroedVirtualPages
https://bugs.webkit.org/show_bug.cgi?id=192738
rdar://problem/37502342

Reviewed by Mark Lam.

  • wtf/Gigacage.cpp:

(Gigacage::tryAllocateZeroedVirtualPages): Added a RELEASE_ASSERT just
like the one in tryLargeZeroedMemalignVirtual in bmalloc.

6:03 PM Changeset in webkit [239308] by Michael Catanzaro
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r239248 - LiteralParser has a bunch of uses of String::format with untrusted data
https://bugs.webkit.org/show_bug.cgi?id=108883
rdar://problem/13666409

Reviewed by Mark Lam.

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::Lexer::lex): Use makeString instead of String::format.
(JSC::LiteralParser<CharType>::Lexer::lexStringSlow): Ditto.
(JSC::LiteralParser<CharType>::parse): Ditto.

  • runtime/LiteralParser.h:

(JSC::LiteralParser::getErrorMessage): Use string concatenation instead of
String::format.

6:03 PM Changeset in webkit [239307] by Michael Catanzaro
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r239198 - Add a missing exception check.
https://bugs.webkit.org/show_bug.cgi?id=192626
<rdar://problem/46662163>

Reviewed by Keith Miller.

JSTests:

  • stress/regress-192626.js: Added.

Source/JavaScriptCore:

  • runtime/ScopedArguments.h:
5:45 PM Changeset in webkit [239306] by Simon Fraser
  • 12 edits
    9 adds in trunk

Don't use more expensive layer backing store formats when subpixel text antialiasing is not enabled
https://bugs.webkit.org/show_bug.cgi?id=192780
rdar://problem/43394387

Reviewed by Tim Horton.
Source/WebCore:

macOS Mojave disabled text subpixel antialiasing by default, so we no longer need to use the
memory-hungry "linear glyph mask" CALayer backing store formats for non-opaque with text in them.

Add FontCascade::isSubpixelAntialiasingAvailable() which reports whether subpixel antialiasing is available,
and consult it when making decisions that affect layer backing store format.

Tested by new results for existing tests.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::isSubpixelAntialiasingAvailable):

  • platform/graphics/FontCascade.h:
  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::isSubpixelAntialiasingAvailable): CGFontRenderingGetFontSmoothingDisabled() isn't super cheap, so fetch
it once.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateAfterDescendants):

  • testing/Internals.cpp:

(WebCore::Internals::setFontSmoothingEnabled): Remove a WebCore::

Source/WebCore/PAL:

Add CGFontRenderingGetFontSmoothingDisabled().

  • pal/spi/cg/CoreGraphicsSPI.h:

Tools:

No need to set "AppleFontSmoothing" defaults for WK2.

  • WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:

(WTR::InjectedBundle::platformInitialize):

LayoutTests:

New macOS Mojave and later results.

  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-nested-layer-expected.txt: Added.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-configs-antialiasing-style-expected.txt: Added.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-configs-expected.txt: Added.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-enabled-expected.txt: Added.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-images-expected.txt: Added.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-traversal-expected.txt: Added.
  • platform/mac-mojave/compositing/contents-format/subpixel-antialiased-text-visibility-expected.txt: Added.
5:32 PM Changeset in webkit [239305] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix occasional null-dereference crash in WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame
https://bugs.webkit.org/show_bug.cgi?id=192744
<rdar://problem/45842668>

Patch by Alex Christensen <achristensen@webkit.org> on 2018-12-17
Reviewed by Chris Dumez.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
Things happen. Navigations can be null. If they are, we shouldn't dereference pointers to them.

5:21 PM Changeset in webkit [239304] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

SamplingProfiler's isValidFramePointer() should reject address at stack origin.
https://bugs.webkit.org/show_bug.cgi?id=192779
<rdar://problem/46775869>

Reviewed by Saam Barati.

JSTests:

  • stress/sampling-profiler-should-not-sample-beyond-stack-bounds.js: Added.

Source/JavaScriptCore:

isValidFramePointer() was previously treating the address at StackBounds::origin()
as valid stack memory. This is not true. StackBounds::origin() is actually the
first address beyond valid stack memory. This is now fixed.

  • runtime/SamplingProfiler.cpp:

(JSC::FrameWalker::isValidFramePointer):

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

webkitpy: Handle case where stdout and stderr don't accept unicode
https://bugs.webkit.org/show_bug.cgi?id=192775
<rdar://problem/46497303>

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/layout_tests/views/metered_stream.py:

(MeteredStream.write): If unicode cannot be written to the stream, replace unicode
characters with '?'.

  • Scripts/webkitpy/layout_tests/views/metered_stream_unittest.py:

(RegularTest.test_stream_with_encoding):

3:58 PM Changeset in webkit [239302] by Alan Coon
  • 2 edits in tags/Safari-607.1.16.5/Source/WebKit

Cherry-pick r239294. rdar://problem/46757541

Unreviewed, revert recent CrashReporterClient build fixes as they are no longer needed.

  • Platform/cocoa/WKCrashReporter.mm:

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

3:58 PM Changeset in webkit [239301] by Alan Coon
  • 3 edits
    2 adds in tags/Safari-607.1.16.5

Cherry-pick r239150. rdar://problem/46531919

REGRESSION (r238090): CAPCHA UI jumps to the wrong location
https://bugs.webkit.org/show_bug.cgi?id=192651
rdar://problem/46531919

Reviewed by Zalan Bujtas.

Source/WebCore:

When a RenderLayer becomes non-composited because of a style change, we need to set a dirty
bit to say that descendants need their geometry updated (because they now have to
compute their positions relative to a different ancestor). This wasn't happening
in the layerStyleChanged() code path.

In the code path that did do this correctly (in the computeCompositingRequirements() tree walk),
we can address a FIXME and only dirty direct children, not all descendants (that code was
written before the child-only dirty bit existed).

Test: compositing/geometry/update-child-geometry-on-compositing-change.html

  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::computeCompositingRequirements): (WebCore::RenderLayerCompositor::layerStyleChanged):

LayoutTests:

Testcase that makes an intermediate layer non-composited (but still a RenderLayer).

  • compositing/geometry/update-child-geometry-on-compositing-change-expected.html: Added.
  • compositing/geometry/update-child-geometry-on-compositing-change.html: Added.

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

3:58 PM Changeset in webkit [239300] by Alan Coon
  • 3 edits in tags/Safari-607.1.16.5/Source/WebKit

Cherry-pick r239059. rdar://problem/46382007

Animated scrolling on Google Maps scrolls the page in addition to moving the map
https://bugs.webkit.org/show_bug.cgi?id=192521
<rdar://problem/46382007>

Reviewed by Sam Weinig.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKKeyboardScrollingAnimator.mm: (-[WKKeyboardScrollViewAnimator rubberbandableDirections]): Only do keyboard-based rubber-banding in directions that we can actually scroll, not directions we can only finger-rubber-band in. This effectively means keyboard scrolling will ignore "alwaysBounce{Vertical, Horizontal}".

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

3:56 PM Changeset in webkit [239299] by Alan Coon
  • 1 copy in tags/Safari-606.4.4

Tag Safari-606.4.4.

3:46 PM Changeset in webkit [239298] by Alan Coon
  • 2 edits in tags/Safari-607.1.16.4/Source/WebKit

Cherry-pick r239294. rdar://problem/46757541

Unreviewed, revert recent CrashReporterClient build fixes as they are no longer needed.

  • Platform/cocoa/WKCrashReporter.mm:

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

3:37 PM Changeset in webkit [239297] by Ryan Haddad
  • 2 edits in trunk/JSTests

Unreviewed test gardening, address a syntax error in a new test.

  • stress/out-of-frame-stack-accesses-due-to-probe-based-osr-exits.js:
3:37 PM Changeset in webkit [239296] by Alan Coon
  • 7 edits in tags/Safari-607.1.16.5/Source

Versioning.

3:32 PM Changeset in webkit [239295] by Alan Coon
  • 1 copy in tags/Safari-607.1.16.5

New tag.

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

Unreviewed, revert recent CrashReporterClient build fixes as they are no longer needed.

  • Platform/cocoa/WKCrashReporter.mm:
3:06 PM Changeset in webkit [239293] by commit-queue@webkit.org
  • 4 edits in trunk/PerformanceTests

Add "-o/--output" option to startup.py and new_tab.py benchmark scripts to save the results in json format.
https://bugs.webkit.org/show_bug.cgi?id=192385

Patch by Suresh Koppisetty <skoppisetty@apple.com> on 2018-12-17
Reviewed by Ryosuke Niwa.

Sample json output for new tab benchmark script after running for 2 iterations and 2 groups. Values are in milliseconds.
{

"NewTabBenchmark": {

"metrics": {

"Time": {

"current": [

[

410.2939453125,
307.81494140625

],
[

340.616943359375,
265.94384765625

]

]

}

}

}

}

Sample json output for startup time benchmark script after running for 2 iterations. Values are in milliseconds.
{

"StartupBenchmark": {

"metrics": {

"Time": {

"current": [

[

1415.2099609375,
1439.552978515625

]

]

}

}

}

}

  • LaunchTime/launch_time.py:
  • LaunchTime/new_tab.py:

(NewTabBenchmark.get_test_name):

  • LaunchTime/startup.py:

(StartupBenchmark.get_test_name):

3:01 PM Changeset in webkit [239292] by commit-queue@webkit.org
  • 3 edits in trunk/PerformanceTests

Import FeedbackServer only if "-f/--feedback-in-browser" option is enabled.
https://bugs.webkit.org/show_bug.cgi?id=192378

Patch by Suresh Koppisetty <skoppisetty@apple.com> on 2018-12-17
Reviewed by Ryosuke Niwa.

FeedbackServer currently depends on Tornado-5.1, which further adds
dependency of "singledispatch", "backports-abc" and "futures" python libraries.
Importing FeedbackServer only if "-f/--feedback-in-browser" option is enabled
will let us run the benchmark scripts without installing any new python libraries.

  • LaunchTime/launch_time.py:
  • LaunchTime/new_tab.py:
3:00 PM Changeset in webkit [239291] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Rollout r235411
https://bugs.webkit.org/show_bug.cgi?id=192778
<rdar://46789485>

Disabling access to CoreServices is causing a performance
regression in process launch time. See <rdar://46141878>

Patch by Suresh Koppisetty <skoppisettyt@apple.com> on 2018-12-17
Reviewed by Alex Christensen.

  • WebProcess/com.apple.WebProcess.sb.in:
2:46 PM Changeset in webkit [239290] by mark.lam@apple.com
  • 4 edits
    1 add in trunk

Suppress ASAN on valid stack accesses in Probe-based OSRExit::executeOSRExit().
https://bugs.webkit.org/show_bug.cgi?id=192776
<rdar://problem/46772368>

Reviewed by Keith Miller.

JSTests:

  • stress/out-of-frame-stack-accesses-due-to-probe-based-osr-exits.js: Added.

Source/JavaScriptCore:

  1. Add some asanUnsafe methods to the Register class.
  2. Update the probe-based OSRExit::executeOSRExit() to use these asanUnsafe methods.
  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::executeOSRExit):

  • interpreter/Register.h:

(JSC::Register::asanUnsafeUnboxedInt32 const):
(JSC::Register::asanUnsafeUnboxedInt52 const):
(JSC::Register::asanUnsafeUnboxedStrictInt52 const):
(JSC::Register::asanUnsafeUnboxedDouble const):
(JSC::Register::asanUnsafeUnboxedCell const):

1:47 PM Changeset in webkit [239289] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Make DocumentMarker::allMarkers() constexpr
https://bugs.webkit.org/show_bug.cgi?id=192634

Reviewed by Simon Fraser.

The result of DocumentMarker::allMarkers() can be computed at compile time. We should annotate
it constexpr to do just that.

  • dom/DocumentMarker.h:

(WebCore::DocumentMarker::allMarkers):

1:34 PM Changeset in webkit [239288] by Justin Fan
  • 8 edits
    10 adds in trunk

[WebGPU] Implement WebGPUBindGroupLayoutDescriptor and its supporting dictionaries
https://bugs.webkit.org/show_bug.cgi?id=192726

Reviewed by Myles C. Maxfield.

Source/WebCore:

Test: webgpu/bind-group-layouts.html
Implement the WebGPUBindGroupLayoutDescriptor struct and its sub-structs:

  • Modules/streams/WebGPUBindGroupLayoutDescriptor.h: Added.
  • Modules/streams/WebGPUBindGroupLayoutDescriptor.idl: Added.
  • Modules/webgpu/WebGPUBindGroupLayoutBinding.h: Added.
  • Modules/webgpu/WebGPUBindGroupLayoutBinding.idl: Added.
  • Modules/webgpu/WebGPUShaderStageBit.h: Added.
  • Modules/webgpu/WebGPUShaderStageBit.idl: Added.
  • platform/graphics/gpu/GPUBindGroupLayoutBinding.h: Added.
  • platform/graphics/gpu/GPUBindGroupLayoutDescriptor.h: Added.

Add the new symbols and files to the project:

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:

Small FIXME update for later:

  • platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:

(WebCore::GPURenderPassEncoder::setVertexBuffers):

LayoutTests:

Add simple test to ensure a WebGPUBindGroupLayoutDescriptor can be created.

  • webgpu/bind-group-layouts-expected.txt: Added.
  • webgpu/bind-group-layouts.html: Added.
1:32 PM Changeset in webkit [239287] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Fix stale assertion in attemptToForceStringArrayModeByToStringConversion().
https://bugs.webkit.org/show_bug.cgi?id=192770
<rdar://problem/46449037>

Reviewed by Keith Miller.

JSTests:

  • stress/force-string-arrayMode-on-originalNonArray-array-class.js: Added.

Source/JavaScriptCore:

This assertion was added before Array::OriginalNonArray was introduced. It just
needs to be updated to allow for Array::OriginalNonArray.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::attemptToForceStringArrayModeByToStringConversion):

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

Web Inspector: Audit: add plural result strings
https://bugs.webkit.org/show_bug.cgi?id=192769
<rdar://problem/46628680>

Reviewed by Brian Burg.

  • UserInterface/Views/AuditTestContentView.js:

(WI.AuditTestContentView.prototype.showNoResultDataPlaceholder):

  • UserInterface/Views/AuditTestGroupContentView.js:

(WI.AuditTestGroupContentView.prototype.layout):

  • Localizations/en.lproj/localizedStrings.js:
1:15 PM Changeset in webkit [239285] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Settings: add singular "space" UIString
https://bugs.webkit.org/show_bug.cgi?id=192766
<rdar://problem/46776948>

Reviewed by Brian Burg.

  • UserInterface/Views/SettingEditor.js:

(WI.SettingEditor):
(WI.SettingEditor.prototype.get label):
(WI.SettingEditor.prototype.set label): Added.

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createGeneralSettingsView):
(WI.SettingsTabContentView.prototype._createGeneralSettingsView.addSpacesSetting): Added.
(WI.SettingsTabContentView.prototype._createGeneralSettingsView.addSpacesSetting.updateLabel): Added.

  • Localizations/en.lproj/localizedStrings.js:
1:07 PM Changeset in webkit [239284] by Alan Coon
  • 7 edits in tags/Safari-607.1.17.1/Source

Versioning.

12:52 PM Changeset in webkit [239283] by Alan Coon
  • 1 copy in tags/Safari-607.1.17.1

New tag.

12:36 PM Changeset in webkit [239282] by dbates@webkit.org
  • 4 edits in trunk

Support concatenating StringView with other string types
https://bugs.webkit.org/show_bug.cgi?id=177566

Reviewed by Darin Adler.

Source/WTF:

Add operator+ overloads to StringOperators.h to support concatenating a StringView with
other string types (e.g. String). This lets a person write more naturally looking code:

stringView + string

Instead of:

makeString(stringView, string)

  • wtf/text/StringOperators.h:

(WTF::operator+): Added various operator+ overloads.

Tools:

Add some tests to ensure we do not regress the number of allocations needed when performing
string concatenation with string views.

  • TestWebKitAPI/Tests/WTF/StringOperators.cpp:

(TestWebKitAPI::TEST):

12:21 PM Changeset in webkit [239281] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

Unreviewed WPE build fix after r239277.

  • UIProcess/API/C/WKContext.cpp:

(WKContextClearCurrentModifierStateForTesting):
Use the WebKit:: namespace specifier as it is used across this file.

12:18 PM Changeset in webkit [239280] by Alan Bujtas
  • 6 edits in trunk/Source

Unreviewed build fix.

Source/WebCore:

  • page/ios/FrameIOS.mm:

(WebCore::Frame::interpretationsForCurrentRoot const):

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebVisiblePosition.mm:

(-[WebVisiblePosition enclosingRangeWithDictationPhraseAlternatives:]):
(-[WebVisiblePosition enclosingRangeWithCorrectionIndicator]):

Source/WebKitLegacy/mac:

  • WebView/WebFrame.mm:

(-[WebFrame getDictationResultRanges:andMetadatas:]):

11:42 AM Changeset in webkit [239279] by Alan Bujtas
  • 11 edits
    2 adds in trunk

Reproducible ASSERTion failure when toggling layer borders with find-in-page up
https://bugs.webkit.org/show_bug.cgi?id=192762
<rdar://problem/46676873>

Reviewed by Simon Fraser.

Source/WebCore:

DocumentMarkerController::markersFor() should take a reference instead of a Node*.

Test: editing/document-marker-null-check.html

  • dom/DocumentMarkerController.cpp:

(DocumentMarkerController::hasMarkers):

  • dom/DocumentMarkerController.h:
  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::respondToChangedSelection):

  • editing/Editor.cpp:

(WebCore::Editor::selectionStartHasMarkerFor const):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::collectMarkedTextsForDocumentMarkers const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint):

  • rendering/RenderText.cpp:

(WebCore::RenderText::draggedContentRangesBetweenOffsets const):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForWithReason):

  • testing/Internals.cpp:

(WebCore::Internals::markerCountForNode):

LayoutTests:

  • editing/document-marker-null-check-expected.txt: Added.
  • editing/document-marker-null-check.html: Added.
11:22 AM Changeset in webkit [239278] by commit-queue@webkit.org
  • 23 edits
    7 deletes in trunk

Unreviewed, rolling out r239265 and r239274.
https://bugs.webkit.org/show_bug.cgi?id=192765

unorm_normalize is deprecated, and broke an internal build
(Requested by Truitt on #webkit).

Reverted changesets:

"[GTK][WPE] Need a function to convert internal URI to display
("pretty") URI"
https://bugs.webkit.org/show_bug.cgi?id=174816
https://trac.webkit.org/changeset/239265

"Fix the Apple Internal Mac build with a newer SDK"
https://trac.webkit.org/changeset/239274

11:19 AM Changeset in webkit [239277] by dbates@webkit.org
  • 19 edits
    3 adds in trunk

Implement UIScriptController::toggleCapsLock() for iOS
https://bugs.webkit.org/show_bug.cgi?id=191815

Reviewed by Andy Estes.

Source/WebCore/PAL:

Add HID usage enumerator for the Caps Lock key.

  • pal/spi/cocoa/IOKitSPI.h:

Source/WebKit:

Add test infrastructure to clear the current modifier state. We will use this to ensure that
the caps lock state does not persist between tests.

  • UIProcess/API/C/WKContext.cpp:

(WKContextClearCurrentModifierStateForTesting): Added.

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::clearCurrentModifierStateForTesting): Added.

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

(WebKit::WebProcess::clearCurrentModifierStateForTesting): Added.

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

Tools:

Add support for toggling the caps lock state in WebKitTestRunner on iOS.

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues): Clear the current modifier state
before running a test. This ensures that the caps lock state does not persist between
tests should a test enable caps lock and not disable it.

  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(hidUsageCodeForCharacter): Map "capsLock" to the Caps Lock key usage code.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::createUIPhysicalKeyboardEvent): Modified to take the keyboard input flags to use to
create the event. Also substituted NSString* for const String& as the data type for the first
two parameters to avoid conversions in the implementation of UIScriptController::toggleCapsLock()
below.
(WTR::UIScriptController::keyDown): Update as needed due to changes to prototype of createUIPhysicalKeyboardEvent().
(WTR::UIScriptController::toggleCapsLock): Dispatch a UIEvent to toggle caps lock.

LayoutTests:

Add iOS-specific results for some of the tests. We need to continue to skip the caps
lock tests on iOS until we have the fix for <rdar://problem/44930119>.

  • fast/forms/password-scrolled-after-caps-lock-toggled.html: Replace input.focus() with

UIHelper.activateElement(input) to make it work on iOS and update logic accordingly.
Compensate for the fact that one less character than the size of the input is visible in
a password field on iOS.

  • fast/repaint/placeholder-after-caps-lock-hidden.html: Replace input.focus() with

UIHelper.activateElement(input) to make it work on iOS and update logic accordingly.

  • platform/ios-wk2/TestExpectations:
  • platform/ios-wk2/fast/forms/password-scrolled-after-caps-lock-toggled-expected.txt: Added.
  • platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt: Added.
11:17 AM Changeset in webkit [239276] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r239262): Fix broken builds prior to Mojave
<https://bugs.webkit.org/show_bug.cgi?id=192373>
<rdar://problem/46462670>

  • UIProcess/Cocoa/WKFullKeyboardAccessWatcher.mm:

Wrap header in ENABLE(ACCESSIBILITY_EVENTS) to fix the build.

10:58 AM Changeset in webkit [239275] by dbates@webkit.org
  • 7 edits in trunk

[iOS] Remove -[WebEvent initWithKeyEventType:...:characterSet:]
https://bugs.webkit.org/show_bug.cgi?id=192633

Reviewed by Wenson Hsieh.

Source/WebCore:

UIKit has long adopted the newer -[WebEvent initWithKeyEventType:] initializer that takes an
input manager hint. We no longer need to keep the variant -[WebEvent initWithKeyEventType:...:characterSet:]
for binary compatibility.

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

(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]): Deleted.

Source/WebKit:

Update code to use the modern initializer.

  • UIProcess/ios/WKWebEvent.mm:

(-[WKWebEvent initWithEvent:]):

Tools:

Update code to use the modern initializer.

  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController keyDown:withModifiers:withLocation:]):

10:56 AM Changeset in webkit [239274] by dbates@webkit.org
  • 2 edits in trunk/Source/WTF

Fix the Apple Internal Mac build with a newer SDK

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::userVisibleURL):

10:45 AM Changeset in webkit [239273] by Matt Lewis
  • 115 edits in trunk

Unreviewed, rolling out r239254.

This broke the Windows 10 Debug build

Reverted changeset:

"Replace many uses of String::format with more type-safe
alternatives"
https://bugs.webkit.org/show_bug.cgi?id=192742
https://trac.webkit.org/changeset/239254

10:42 AM Changeset in webkit [239272] by Kocsen Chung
  • 3 edits in tags/Safari-607.1.16.4/Source/WebKit

Cherry-pick r239228. rdar://problem/46715748

Unreviewed, fix assertion failure in API test after r239210.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::createDocumentLoader):

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

10:42 AM Changeset in webkit [239271] by Kocsen Chung
  • 10 edits in tags/Safari-607.1.16.4

Cherry-pick r239210. rdar://problem/46715748

[PSON] WebsitePolicies are lost on process-swap
https://bugs.webkit.org/show_bug.cgi?id=192694
<rdar://problem/46715748>

Reviewed by Brady Eidson.

Source/WebKit:

In case of process-swap on navigation, instead of sending the websitePolicies to the old
process, send them to the new process as we trigger the navigation. We tell the new process
that it is continuing a load and it will therefore not re-trigger a decidePolicyForNavigationAction.

  • Shared/LoadParameters.cpp: (WebKit::LoadParameters::encode const): (WebKit::LoadParameters::decode):
  • Shared/LoadParameters.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::reattachToWebProcessForReload): (WebKit::WebPageProxy::reattachToWebProcessWithItem): (WebKit::WebPageProxy::loadRequestWithNavigation): (WebKit::WebPageProxy::loadDataWithNavigation): (WebKit::WebPageProxy::goToBackForwardItem): (WebKit::WebPageProxy::receivedNavigationPolicyDecision): (WebKit::WebPageProxy::continueNavigationInNewProcess):
  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::loadRequest): (WebKit::WebPage::loadDataImpl): (WebKit::WebPage::loadData): (WebKit::WebPage::loadAlternateHTML): (WebKit::WebPage::goToBackForwardItem): (WebKit::WebPage::createDocumentLoader):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Extend existing API test to reproduce the issue.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

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

9:51 AM Changeset in webkit [239270] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

[Web Animations] Remove the redundant m_scheduledMicrotask from WebAnimation
https://bugs.webkit.org/show_bug.cgi?id=192758

Reviewed by Dean Jackson.

We tracked whether we had a pending microtask twice so we remove the m_scheduledMicrotask flag as m_finishNotificationStepsMicrotaskPending
gives us enough information as it is. Additionally, we remove the scheduleMicrotaskIfNeeded() and performMicrotask() functions since there is
less bookkeeping to perform.

No new test since there is no user-observable change.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::updateFinishedState):
(WebCore::WebAnimation::scheduleMicrotaskIfNeeded): Deleted.
(WebCore::WebAnimation::performMicrotask): Deleted.

  • animation/WebAnimation.h:
9:49 AM Changeset in webkit [239269] by graouts@webkit.org
  • 3 edits in trunk/Source/WebCore

[Web Animations] Ensure we don't update an animation's finished state twice when updating animations
https://bugs.webkit.org/show_bug.cgi?id=192757

Reviewed by Dean Jackson.

When animations are udpated and DocumentTimeline::updateAnimationsAndSendEvents() is called, we used to update an animation's finished state
twice since we'd do it once when calling tick() and once again when calling resolve() in the ensuing style invalidation. We now keep track of
whether we've already updated an animation's finished state during animation update in the call to tick() and avoid updating in the immediate
next call to resolve(), unless any of the timing properties have changed in the meantime.

No new test since there is no user-observable change.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timingDidChange):
(WebCore::WebAnimation::tick):
(WebCore::WebAnimation::resolve):

  • animation/WebAnimation.h:
9:10 AM Changeset in webkit [239268] by Simon Fraser
  • 3 edits
    6 adds in trunk

REGRESSION (r233268): Elements animated in from offscreen sometimes don't display
https://bugs.webkit.org/show_bug.cgi?id=192725
rdar://problem/46011418

Reviewed by Antoine Quint.

Source/WebCore:

There were two problems with backing store attachment and animation.

First, animations are an input into the "backing store attached" logic, so when they change
we should set the CoverageRectChanged bit on GraphicsLayerCA.

Secondly, when an ancestor has unknown animation extent, all its descendants need to
get backing store, so we need to set childCommitState.ancestorWithTransformAnimationIntersectsCoverageRect when
the current layer has no animation extent.

Tests: compositing/backing/animate-into-view-with-descendant.html

compositing/backing/animate-into-view.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::addAnimation):
(WebCore::GraphicsLayerCA::removeAnimation):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):

LayoutTests:

  • compositing/backing/animate-into-view-expected.txt: Added.
  • compositing/backing/animate-into-view-with-descendant-expected.txt: Added.
  • compositing/backing/animate-into-view-with-descendant.html: Added.
  • compositing/backing/animate-into-view.html: Added.
  • platform/ios/compositing/backing/animate-into-view-expected.txt: Added.
  • platform/ios/compositing/backing/animate-into-view-with-descendant-expected.txt: Added.
7:44 AM Changeset in webkit [239267] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][BFC][MarginCollapsing] Unify margin collapse function naming
https://bugs.webkit.org/show_bug.cgi?id=192747

Reviewed by Antti Koivisto.

Rename some margin collapse getters.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::computedNonCollapsedMarginBefore):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::computedNonCollapsedMarginAfter):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::nonCollapsedMarginBefore):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::nonCollapsedMarginAfter):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::collapsedMarginBeforeFromFirstChild):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::collapsedMarginAfterFromLastChild):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginBeforeCollapsesWithParentMarginAfter):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfterCollapsesWithParentMarginAfter):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginBeforeCollapsesWithPreviousSibling):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfterCollapsesWithNextSibling):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginsCollapseThrough):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginBefore):
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::marginAfter):
(WebCore::Layout::isMarginBeforeCollapsedWithSibling): Deleted.
(WebCore::Layout::isMarginAfterCollapsedWithSibling): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::isMarginBeforeCollapsedWithParent): Deleted.
(WebCore::Layout::isMarginAfterCollapsedThrough): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::isMarginAfterCollapsedWithParent): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::MarginCollapse::isMarginBeforeCollapsedWithParentMarginAfter): Deleted.

6:22 AM Changeset in webkit [239266] by ddkilzer@apple.com
  • 37 edits in trunk

clang-tidy: loop variable is copied but only used as const reference in WebCore, WebKit, Tools
<https://webkit.org/b/192751>
<rdar://problem/46771623>

Reviewed by Daniel Bates.

Change loop variables to const references to avoid unnecessary
copies.

Source/WebCore:

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::maybeNotifyConnectionsOfVersionChange):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::objectStoreIdentifiers):

  • Modules/indexeddb/shared/IDBDatabaseInfo.cpp:

(WebCore::IDBDatabaseInfo::IDBDatabaseInfo):
(WebCore::IDBDatabaseInfo::loggingString const):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::removeSamplesFromTrackBuffer):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::targetElementForActiveDescendant const):

  • accessibility/AccessibilityTableRow.cpp:

(WebCore::AccessibilityTableRow::headerObject):

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::computedNeedsForcedLayout):

  • crypto/keys/CryptoKeyRSA.cpp:

(WebCore::CryptoKeyRSA::importJwk):
(WebCore::CryptoKeyRSA::exportJwk const):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::OrderedNamedLinesCollector::appendLines const):

  • dom/DataTransfer.cpp:

(WebCore::readURLsFromPasteboardAsString):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::elementsFromPoint):

  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTParser::checkAndStoreRegion):

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::setInstruments):

  • page/Page.cpp:

(WebCore::Page::updateIntersectionObservations):

  • page/TextIndicator.cpp:

(WebCore::estimatedBackgroundColorForRange):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::computeLayoutDependency):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::displayWasUpdated):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::moveOrCopyAnimations):
(WebCore::GraphicsLayerCA::updateAnimations):
(WebCore::GraphicsLayerCA::isRunningTransformAnimation const):

  • platform/graphics/mac/ImageMac.mm:

(WebCore::BitmapImage::tiffRepresentation):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::append):

  • testing/Internals.cpp:

(WebCore::Internals::acceleratedAnimationsForElement):

Source/WebKit:

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::~WebSWServerConnection):

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::encode const):

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toNSErrors):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::setFilesToSelectForFileUpload):
(WebKit::WebAutomationSession::performKeyboardInteractions):
(WebKit::WebAutomationSession::performInteractionSequence):

  • UIProcess/Plugins/PluginProcessManager.cpp:

(WebKit::PluginProcessManager::getPluginProcess):

  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveDataRecords const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::serializedAttachmentDataForIdentifiers):

  • UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::deleteAllDatabases):
(WebKit::LocalStorageDatabaseTracker::origins const):
(WebKit::LocalStorageDatabaseTracker::originDetails):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_shouldAttachDrawingAreaOnPageTransition):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::didUpdateActivityStateTimerFired):

Tools:

  • DumpRenderTree/mac/DumpRenderTreePasteboard.mm:

(-[LocalPasteboard pasteboardItems]):

6:08 AM Changeset in webkit [239265] by Ms2ger@igalia.com
  • 23 edits
    7 adds in trunk

[GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
https://bugs.webkit.org/show_bug.cgi?id=174816

Reviewed by Michael Catanzaro.

Source/WebCore:

Tests: enabled fast/url/user-visible/.

  • testing/Internals.cpp:

(WebCore::Internals::userVisibleString): Enable method on all platforms.

Source/WebKit:

Add webkit_uri_for_display for GTK and WPE.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitURIUtilities.cpp: Added.

(webkit_uri_for_display):

  • UIProcess/API/gtk/WebKitURIUtilities.h: Added.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
  • UIProcess/API/gtk/webkit2.h:
  • UIProcess/API/wpe/WebKitURIUtilities.h: Added.
  • UIProcess/API/wpe/docs/wpe-0.1-sections.txt:
  • UIProcess/API/wpe/docs/wpe-docs.sgml:
  • UIProcess/API/wpe/webkit.h:

Source/WTF:

Translate userVisibleString and dependent code into platform-neutral C++
in wtf/URLHelpers.{h,cpp}.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/URLHelpers.cpp: Added.

(WTF::URLHelpers::loadIDNScriptWhiteList):
(WTF::URLHelpers::isArmenianLookalikeCharacter):
(WTF::URLHelpers::isArmenianScriptCharacter):
(WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
(WTF::URLHelpers::isLookalikeCharacter):
(WTF::URLHelpers::whiteListIDNScript):
(WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
(WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
(WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
(WTF::URLHelpers::isRussianDomainNameCharacter):
(WTF::URLHelpers::allCharactersAllowedByTLDRules):
(WTF::URLHelpers::mapHostName):
(WTF::URLHelpers::collectRangesThatNeedMapping):
(WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
(WTF::URLHelpers::applyHostNameFunctionToURLString):
(WTF::URLHelpers::mapHostNames):
(WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
(WTF::URLHelpers::userVisibleURL):

  • wtf/URLHelpers.h: Added.
  • wtf/cocoa/NSURLExtras.mm:

(WTF::URLHelpers::loadIDNScriptWhiteList):
(WTF::decodePercentEscapes):
(WTF::decodeHostName):
(WTF::encodeHostName):
(WTF::URLWithUserTypedString):
(WTF::userVisibleString):

Tools:

Add tests for userVisibleString() and (for GTK and WPE) webkit_uri_for_display().

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/URLHelpers.cpp: Added.

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitURIUtilities.cpp: Added.

(testURIForDisplayUnaffected):
(testURIForDisplayAffected):
(beforeAll):
(afterAll):

  • TestWebKitAPI/glib/CMakeLists.txt:

LayoutTests:

5:31 AM Changeset in webkit [239264] by Carlos Garcia Campos
  • 7 edits in trunk

[WPE] Add API to notify about frame displayed view backend callback
https://bugs.webkit.org/show_bug.cgi?id=192224

Reviewed by Michael Catanzaro.

Source/WebKit:

Add API to add a callback to the view to be called when the view backend notifies that a frame has been
displayed.

  • UIProcess/API/glib/WebKitWebView.cpp:

(FrameDisplayedCallback::FrameDisplayedCallback):
(FrameDisplayedCallback::~FrameDisplayedCallback):
(webkit_web_view_add_frame_displayed_callback):
(webkit_web_view_remove_frame_displayed_callback):

  • UIProcess/API/wpe/WebKitWebView.h:
  • UIProcess/API/wpe/docs/wpe-0.1-sections.txt:

Tools:

Add a test case to check the new API.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewFrameDisplayed):
(beforeAll):

  • wpe/jhbuild.modules: Bump WPEBackend-fdo to 1.1.0.

Dec 16, 2018:

10:53 PM Changeset in webkit [239263] by Kocsen Chung
  • 3 edits in branches/safari-606-branch

Apply patch. rdar://problem/46603448

4:44 PM Changeset in webkit [239262] by Chris Fleizach
  • 6 edits
    2 moves in trunk/Source/WebKit

AX: Support keyboard access preference for iOS in WebKit
https://bugs.webkit.org/show_bug.cgi?id=192373
<rdar://problem/46462670>

Reviewed by Tim Horton.

  • Platform/spi/ios/AccessibilitySupportSPI.h:
  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WKFullKeyboardAccessWatcher.h: Added.
  • UIProcess/Cocoa/WKFullKeyboardAccessWatcher.mm: Added.

(platformIsFullKeyboardAccessEnabled):
(-[WKFullKeyboardAccessWatcher notifyAllProcessPools]):
(-[WKFullKeyboardAccessWatcher retrieveKeyboardUIModeFromPreferences:]):
(-[WKFullKeyboardAccessWatcher init]):
(+[WKFullKeyboardAccessWatcher fullKeyboardAccessEnabled]):

  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::fullKeyboardAccessEnabled):

  • UIProcess/mac/WKFullKeyboardAccessWatcher.h: Removed.
  • UIProcess/mac/WKFullKeyboardAccessWatcher.mm: Removed.
  • WebKit.xcodeproj/project.pbxproj:
2:29 PM Changeset in webkit [239261] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

Unreviewed follow up after r239260
https://bugs.webkit.org/show_bug.cgi?id=192714
<rdar://problem/46762407>

  • Platform/win/SharedMemoryWin.cpp:

(WebKit::SharedMemory::allocate): Use PAGE_READWRITE directly instead
of going through the protectAttribute() function, which is removed
because it is now unused.

11:39 AM Changeset in webkit [239260] by Adrian Perez de Castro
  • 7 edits in trunk/Source/WebKit

Unify SharedMemory factory functions
https://bugs.webkit.org/show_bug.cgi?id=192714

Reviewed by Darin Adler.

This unifies SharedMemory so in the following way, across platforms:

  • SharedMemory::create() is removed, to avoid ambiguity.
  • SharedMemory::allocate() always allocates a new block of shared memory.
  • SharedMemory::wrapMap() always creates a SharedMemory object which refers to an existing region of memory resulting from memory-mapping a file.
  • NetworkProcess/cache/NetworkCacheDataCocoa.mm:

(WebKit::NetworkCache::Data::tryCreateSharedMemory const): Use SharedMemory::wrapMap().

  • Platform/SharedMemory.h: Remove the definition of SharedMemory::create(), and make

SharedMemory::wrapMap() available on OS(DARWIN) as well.

  • Platform/cocoa/SharedMemoryCocoa.cpp:

(WebKit::SharedMemory::wrapMap): Renamed from ::create().

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::allocate): Renamed from ::create().

  • Platform/win/SharedMemoryWin.cpp:

(WebKit::SharedMemory::allocate): Renamed from ::create()

  • UIProcess/API/APIContentRuleListStore.cpp:

(API::createExtension): Use NetworkCache::Data::tryCreateSharedMemory() instead of
SharedMemory::create().

4:05 AM Changeset in webkit [239259] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

Unreviewed build fix after r239253

  • gtk/jhbuild.modules: Fix typo in libpsl dependency name.

Dec 15, 2018:

11:25 PM Changeset in webkit [239258] by Chris Fleizach
  • 13 edits in trunk/Source/WebKit

[meta][WebKit] Remove using namespace WebCore and WebKit in the global scope for unified source builds
https://bugs.webkit.org/show_bug.cgi?id=192449
<rdar://problem/46595508>

Reviewed by Darin Adler.

Part 7: Files in UIProcess/API

  • UIProcess/API/APIContentRuleListStore.cpp:
  • UIProcess/API/APIHitTestResult.cpp:
  • UIProcess/API/APINavigation.cpp:
  • UIProcess/API/APIOpenPanelParameters.cpp:
  • UIProcess/API/APIPageConfiguration.cpp:
  • UIProcess/API/C/WKApplicationCacheManager.cpp:

(WKApplicationCacheManagerGetTypeID):
(WKApplicationCacheManagerGetApplicationCacheOrigins):
(WKApplicationCacheManagerDeleteEntriesForOrigin):
(WKApplicationCacheManagerDeleteAllEntries):

  • UIProcess/API/C/WKAuthenticationDecisionListener.cpp:

(WKAuthenticationDecisionListenerGetTypeID):
(WKAuthenticationDecisionListenerUseCredential):
(WKAuthenticationDecisionListenerCancel):
(WKAuthenticationDecisionListenerRejectProtectionSpaceAndContinue):

  • UIProcess/API/C/WKBackForwardListItemRef.cpp:

(WKBackForwardListItemGetTypeID):
(WKBackForwardListItemCopyURL):
(WKBackForwardListItemCopyTitle):
(WKBackForwardListItemCopyOriginalURL):

  • UIProcess/API/C/WKContext.cpp:

(WKContextGetTypeID):
(WKContextCreate):
(WKContextCreateWithInjectedBundlePath):
(WKContextCreateWithConfiguration):
(WKContextSetClient):
(WKContextSetInjectedBundleClient):
(WKContextSetHistoryClient):
(WKContextSetDownloadClient):
(WKContextSetConnectionClient):
(WKContextDownloadURLRequest):
(WKContextResumeDownload):
(WKContextSetInitializationUserDataForInjectedBundle):
(WKContextPostMessageToInjectedBundle):
(WKContextGetGlobalStatistics):
(WKContextAddVisitedLink):
(WKContextClearVisitedLinks):
(WKContextSetCacheModel):
(WKContextGetCacheModel):
(WKContextSetMaximumNumberOfProcesses):
(WKContextGetMaximumNumberOfProcesses):
(WKContextSetAlwaysUsesComplexTextCodePath):
(WKContextSetShouldUseFontSmoothing):
(WKContextSetAdditionalPluginsDirectory):
(WKContextRefreshPlugIns):
(WKContextRegisterURLSchemeAsEmptyDocument):
(WKContextRegisterURLSchemeAsSecure):
(WKContextRegisterURLSchemeAsBypassingContentSecurityPolicy):
(WKContextRegisterURLSchemeAsCachePartitioned):
(WKContextRegisterURLSchemeAsCanDisplayOnlyIfCanRequest):
(WKContextSetDomainRelaxationForbiddenForURLScheme):
(WKContextSetCanHandleHTTPSServerTrustEvaluation):
(WKContextSetPrewarmsProcessesAutomatically):
(WKContextSetCustomWebContentServiceBundleIdentifier):
(WKContextSetDiskCacheSpeculativeValidationEnabled):
(WKContextPreconnectToServer):
(WKContextGetCookieManager):
(WKContextGetWebsiteDataStore):
(WKContextGetGeolocationManager):
(WKContextGetMediaSessionFocusManager):
(WKContextGetNotificationManager):
(WKContextStartMemorySampler):
(WKContextStopMemorySampler):
(WKContextAllowSpecificHTTPSCertificateForHost):
(WKContextDisableProcessTermination):
(WKContextEnableProcessTermination):
(WKContextSetHTTPPipeliningEnabled):
(WKContextWarmInitialProcess):
(WKContextGetStatistics):
(WKContextGetStatisticsWithOptions):
(WKContextJavaScriptConfigurationFileEnabled):
(WKContextSetJavaScriptConfigurationFileEnabled):
(WKContextGarbageCollectJavaScriptObjects):
(WKContextSetJavaScriptGarbageCollectorTimerEnabled):
(WKContextUseTestingNetworkSession):
(WKContextSetAllowsAnySSLCertificateForWebSocketTesting):
(WKContextSetAllowsAnySSLCertificateForServiceWorkerTesting):
(WKContextClearCachedCredentials):
(WKContextCopyPlugInAutoStartOriginHashes):
(WKContextSetPlugInAutoStartOriginHashes):
(WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):
(WKContextSetPlugInAutoStartOrigins):
(WKContextSetInvalidMessageFunction):
(WKContextSetMemoryCacheDisabled):
(WKContextSetFontWhitelist):
(WKContextTerminateNetworkProcess):
(WKContextTerminateServiceWorkerProcess):
(WKContextGetNetworkProcessIdentifier):
(WKContextAddSupportedPlugin):
(WKContextClearSupportedPlugins):
(WKContextSetIDBPerOriginQuota):

  • UIProcess/API/C/WKPage.cpp:

(WKPageLoadURLWithShouldOpenExternalURLsPolicy):
(WKPageLoadURLWithUserData):
(WKPageLoadURLRequestWithUserData):
(WKPageSetPaginationMode):
(WKPageGetPaginationMode):
(WKPageSetPageLoaderClient):
(WKPageSetPagePolicyClient):

  • UIProcess/API/C/cg/WKIconDatabaseCG.cpp:
10:12 PM Changeset in webkit [239257] by yusukesuzuki@slowstart.org
  • 4 edits in trunk/Source

Unreviewed, suppress warnings in Linux

Source/bmalloc:

  • bmalloc/Gigacage.cpp:

Source/JavaScriptCore:

  • jsc.cpp:

(jscmain):

9:49 PM Changeset in webkit [239256] by yusukesuzuki@slowstart.org
  • 17 edits in trunk/Source

Null pointer dereference in JSC::WriteBarrierBase()
https://bugs.webkit.org/show_bug.cgi?id=191252

Reviewed by Keith Miller.

Source/JavaScriptCore:

JSPromiseDeferred::create can return nullptr and an exception if stack overflow happens.
We would like to make it RELEASE_ASSERT since the current module mechanism is not immune
to stack overflow.

This patch renames JSPromiseDeferred::create to JSPromiseDeferred::tryCreate to tell that
it can return nullptr. And we insert error checks or assertions after this call.

  • jsc.cpp:

(GlobalObject::moduleLoaderImportModule):
(GlobalObject::moduleLoaderFetch):

  • runtime/Completion.cpp:

(JSC::rejectPromise):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncImportModule):

  • runtime/JSInternalPromiseDeferred.cpp:

(JSC::JSInternalPromiseDeferred::tryCreate):
(JSC::JSInternalPromiseDeferred::create): Deleted.

  • runtime/JSInternalPromiseDeferred.h:
  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::importModule):
(JSC::JSModuleLoader::resolve):
(JSC::JSModuleLoader::fetch):
(JSC::moduleLoaderParseModule):

  • runtime/JSPromise.h:
  • runtime/JSPromiseDeferred.cpp:

(JSC::JSPromiseDeferred::tryCreate):

  • runtime/JSPromiseDeferred.h:
  • wasm/js/WebAssemblyPrototype.cpp:

(JSC::webAssemblyCompileFunc):
(JSC::webAssemblyInstantiateFunc):
(JSC::webAssemblyCompileStreamingInternal):
(JSC::webAssemblyInstantiateStreamingInternal):

Source/WebCore:

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::whenDefined):

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::createDeferredPromise):

  • bindings/js/JSDOMPromiseDeferred.h:

(WebCore::DeferredPromise::create):
(WebCore::callPromiseFunction):

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::moduleLoaderFetch):
(WebCore::JSDOMWindowBase::moduleLoaderImportModule):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::fetch):
(WebCore::rejectPromise):

4:21 PM Changeset in webkit [239255] by Darin Adler
  • 32 edits in trunk

Use warning-ignoring macros more consistently and simply
https://bugs.webkit.org/show_bug.cgi?id=192743

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • dfg/DFGSpeculativeJIT64.cpp: Use IGNORE_WARNINGS_BEGIN/END instead of

IGNORE_CLANG_WARNINGS_BEGIN/END. Other callsites are using the non-clang-specific
one for this warning, "implicit-fallthrough", and it seems there is no special
need to use the clang-specific one here.

  • llint/LLIntData.cpp: Ditto, but here it's "missing-noreturn"."
  • tools/CodeProfiling.cpp: Ditto.

Source/WebCore:

  • bridge/objc/WebScriptObject.mm: Use IGNORE_WARNINGS_BEGIN rather than

IGNORE_CLANG_WARNINGS_BEGIN here. There is no need to compile Objective-C++
files like this one with non-clang compilers, and no need to worry about
them when choosing the macro.

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::getPublicKeyComponents): Use ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END.

  • css/makeprop.pl: Use IGNORE_WARNINGS_BEGIN/END, obviating the need for

the "unknown-pragmas" trick, which the macro should take care of.

  • css/makevalues.pl: Ditto.
  • platform/ColorData.gperf: Ditto.
  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:

(WebCore::CDMSessionAVStreamSession::update): Use IGNORE_WARNINGS_BEGIN/END
(see rationale above for Objective-C++).

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::videoPlaybackQualityMetrics): Use
ALLOW_NEW_API_WITHOUT_GUARDS_BEGIN/END.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoPlaybackQualityMetrics): Ditto.

  • platform/ios/DragImageIOS.mm: Use IGNORE_WARNINGS_BEGIN/END

(see rationale above for Objective-C++).

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerViewController setWebKitOverrideRouteSharingPolicy:routingContextUID:]):
Use ALLOW_NEW_API_WITHOUT_GUARDS_BEGIN/END.

  • platform/mac/WebPlaybackControlsManager.mm: Use IGNORE_WARNINGS_BEGIN/END

(see rationale above for Objective-C++).

  • platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::ResourceResponse::platformCertificateInfo const): Use
ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END.

Source/WebCore/PAL:

  • pal/spi/cocoa/AVKitSPI.h: Use IGNORE_WARNINGS_BEGIN instead of

IGNORE_CLANG_WARNINGS_BEGIN; there is no special need to accomodate
non-clang compilers here.

Source/WebKit:

  • UIProcess/ios/WKDrawingView.mm:

(-[WKDrawingView initWithEmbeddedViewID:webPageProxy:]):
Use ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController _EVOrganizationName]): Ditto.

  • WebProcess/WebCoreSupport/WebAlternativeTextClient.h: Use

IGNORE_WARNINGS_BEGIN/END instead of IGNORE_CLANG_WARNINGS_BEGIN/END
because there is no need to accomodate non-clang compilers here.
Also use #pragma once, add a missing "explicit", and fix conditionals.

Source/WebKitLegacy/mac:

  • DOM/DOM.mm: Use IGNORE_WARNINGS_BEGIN/END instead of

IGNORE_CLANG_WARNINGS_BEGIN since there is no need to accomodate non-clang
compilers in Objective-C++ code.

  • WebCoreSupport/WebAlternativeTextClient.h: Use IGNORE_WARNINGS_BEGIN/END

instead of IGNORE_CLANG_WARNINGS_BEGIN/END because there is no need to
accomodate non-clang compilers here. Also use #pragma once, add a missing
"explicit" and fix conditionals.

Source/WTF:

  • wtf/Assertions.h: Use IGNORE_WARNINGS_BEGIN rather than

IGNORE_CLANG_WARNINGS_BEGIN since we don't need special handling for
non-clang compilers, in part since the code is already inside
#if COMPILER(CLANG), but also because it would be harmless to ignore this
warning on non-clang; we should almost never use IGNORE_CLANG_WARNINGS_BEGIN.

Tools:

  • DumpRenderTree/TestNetscapePlugIn/main.cpp:

(handleEventCarbon): Use ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END.

  • DumpRenderTree/mac/TextInputControllerMac.m:

(-[TextInputController interpretKeyEvents:withSender:]): Use
IGNORE_WARNINGS_BEGIN/END.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(WTR::EventSenderProxy::mouseForceClick): Use
IGNORE_NULL_CHECK_WARNINGS_BEGIN/END.
(WTR::EventSenderProxy::startAndCancelMouseForceClick): Ditto.
(WTR::EventSenderProxy::mouseForceDown): Ditto.
(WTR::EventSenderProxy::mouseForceUp): Ditto.
(WTR::EventSenderProxy::mouseForceChanged): Ditto.

4:09 PM Changeset in webkit [239254] by Darin Adler
  • 115 edits in trunk

Replace many uses of String::format with more type-safe alternatives
https://bugs.webkit.org/show_bug.cgi?id=192742

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • inspector/InjectedScriptBase.cpp:

(Inspector::InjectedScriptBase::makeCall): Use makeString.
(Inspector::InjectedScriptBase::makeAsyncCall): Ditto.

  • inspector/InspectorBackendDispatcher.cpp:

(Inspector::BackendDispatcher::getPropertyValue): Ditto.

  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::enable): Ditto.

  • jsc.cpp:

(FunctionJSCStackFunctor::operator() const): Ditto.

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat): Use string concatenation.

  • runtime/IntlObject.cpp:

(JSC::canonicalizeLocaleList): Ditto.

Source/WebCore:

A while back, String::format was more efficient than string concatenation,
but that is no longer true, and we should prefer String::number, makeString,
or concatenation with the "+" operator to String::format for new code.

This is not as good for programmers who are fond of printf formatting
style, and in some cases it's a little harder to read the strings
interspersed with variables rather than a format string, but it's better
in a few ways:

  • more efficient (I didn't measure the difference, but it's definitely slower to use String::Format which calls vsnprintf twice than to use the WTF code)
  • works in a type-safe way without a need to use a format specifier such as "%" PRIu64 or "%tu" making it much easier to avoid problems due to subtle differences between platforms
  • allows us to use StringView in some cases to sidestep the need to allocate temporary WTF::String objects
  • does not require converting each WTF::String to a C string, allowing us to remove many cases of ".utf8().data()" and similar expressions, eliminating the allocation of temporary WTF::CString objects

This patch covers a batch of easiest-to-convert call sites.
Later patches will allow us to deprecate or remove String::format.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord): Use makeString.

  • Modules/indexeddb/shared/IDBCursorInfo.cpp:

(WebCore::IDBCursorInfo::loggingString const): Ditto.

  • Modules/indexeddb/shared/IDBGetAllRecordsData.cpp:

(WebCore::IDBGetAllRecordsData::loggingString const): Ditto.

  • Modules/indexeddb/shared/IDBGetRecordData.cpp:

(WebCore::IDBGetRecordData::loggingString const): Ditto.

  • Modules/indexeddb/shared/IDBIndexInfo.cpp:

(WebCore::IDBIndexInfo::loggingString const): Ditto.
(WebCore::IDBIndexInfo::condensedLoggingString const): Ditto.

  • Modules/indexeddb/shared/IDBIterateCursorData.cpp:

(WebCore::IDBIterateCursorData::loggingString const): Ditto.

  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:

(WebCore::IDBObjectStoreInfo::condensedLoggingString const): Ditto.

  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::loggingString const): Ditto.

  • Modules/webdatabase/Database.cpp:

(WebCore::formatErrorMessage): Ditto.

  • Modules/webdatabase/SQLError.h:

(WebCore::SQLError::create): Ditto.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Use makeString.

  • bindings/scripts/test/JS/JSInterfaceName.cpp:
  • bindings/scripts/test/JS/JSMapLike.cpp:
  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCEReactions.cpp:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
  • bindings/scripts/test/JS/JSTestCallTracer.cpp:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:
  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
  • bindings/scripts/test/JS/JSTestIterable.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
  • bindings/scripts/test/JS/JSTestSerialization.cpp:
  • bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestStringifier.cpp:
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

Updated expected results.

Source/WebCore/PAL:

  • pal/FileSizeFormatter.cpp:

(fileSizeDescription): Use makeString.

Source/WebKit:

  • Shared/WebMemorySampler.cpp:

(WebKit::WebMemorySampler::writeHeaders): Use makeString.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::makeCredential): Use string concatentation.

  • UIProcess/WebInspectorUtilities.cpp:

(WebKit::inspectorPageGroupIdentifierForPage): Use makeString.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processDidFinishLaunching): Ditto.
(WebKit::WebProcessPool::startMemorySampler): Ditto.

Source/WTF:

  • wtf/WorkQueue.cpp:

(WTF::WorkQueue::concurrentApply): Use makeString.

  • wtf/dtoa.cpp:

(WTF::dtoa): Use sprintf instead of String::format in the comments,
since these functions have nothing to do with WTF::String.

Tools:

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::cacheTestRunnerCallback): Use makeString.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::didReceiveAuthenticationChallenge): Use makeString.
(WTR::TestController::downloadDidFail): Use an ASCIILiteral via the _s syntax.

3:01 PM Changeset in webkit [239253] by Adrian Perez de Castro
  • 3 edits in trunk/Tools

[WPE][GTK] Add libpsl to JHBuild module sets
https://bugs.webkit.org/show_bug.cgi?id=192740

Reviewed by Michael Catanzaro.

  • gtk/jhbuild.modules: Add libpsl module.
  • wpe/jhbuild.modules: Ditto.
9:40 AM Changeset in webkit [239252] by youenn@apple.com
  • 12 edits in trunk

Make RTCRtpSender.setParameters to activate specific encodings
https://bugs.webkit.org/show_bug.cgi?id=192732

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

The conversion between libwebrtc and WebCore is lossy for send parameters.
Libwebrtc checking the differences of values, call to setParameters will often fail.

Given some parameters cannot be exposed, the sender backend keeps the
current set of parameters when gathered and reuses them when parameters are set.

For encodings, we only change activate/maxBitRate/maxFrameRate as
these are the most important parameters to be able to modify.

Covered by added tests in webrtc/video.html.

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:

(WebCore::LibWebRTCRtpSenderBackend::getParameters const):
(WebCore::LibWebRTCRtpSenderBackend::setParameters):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::fromRTCRtpSendParameters):
(WebCore::fromRTCEncodingParameters): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.h:

LayoutTests:

  • webrtc/video-expected.txt:
  • webrtc/video.html:
2:03 AM Changeset in webkit [239251] by Nikita Vasilyev
  • 6 edits
    2 adds in trunk

Web Inspector: Styles: toggling selected properties may cause data corruption
https://bugs.webkit.org/show_bug.cgi?id=192396
<rdar://problem/46478383>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Uncommenting a property after a commented out property used to insert an unnecessary semicolon,
and not updating ranges of the following properties.

For example:

/* color: red; */
/* font-size: 12px */

Uncommenting font-size would result in something like this:

/* color: red; */; font-size: 12px


unnecessary semicolon

Now the semicolon doesn't get inserted and the white space is preserved better:

/* color: red; */
font-size: 12px

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype._updateOwnerStyleText):
(WI.CSSProperty.prototype._appendSemicolonIfNeeded): Removed.
(WI.CSSProperty.prototype._prependSemicolonIfNeeded): Added.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype.remove):
(WI.SpreadsheetStyleProperty.prototype.update):
(WI.SpreadsheetStyleProperty.prototype._handleNameChange):
(WI.SpreadsheetStyleProperty.prototype._handleValueChange):
Style declaration should be locked while editing. Add asserts to ensure this.

LayoutTests:

  • inspector/css/add-css-property-expected.txt: Added.
  • inspector/css/add-css-property.html: Added.

Test adding new properties.

  • inspector/css/modify-css-property-expected.txt:
  • inspector/css/modify-css-property.html:

Test commenting out and uncommenting CSS properties.

Note: See TracTimeline for information about the timeline view.