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

Timeline



Jun 3, 2017:

6:54 PM Changeset in webkit [217764] by Chris Dumez
  • 10 edits
    2 adds in trunk

Implement DOMMatrix's fromFloat32Array / fromFloat64Array & toFloat32Array / toFloat64Array
https://bugs.webkit.org/show_bug.cgi?id=172898

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline web-platform-test now that more checks are passing.

  • web-platform-tests/css/geometry-1/DOMMatrix-newobject-expected.txt:

Source/WebCore:

Implement DOMMatrix's fromFloat32Array / fromFloat64Array & toFloat32Array / toFloat64Array
as per:

Test: http/wpt/geometry/DOMMatrix-from-to-typed-arrays.html

  • css/DOMMatrix.cpp:

(WebCore::DOMMatrix::fromFloat32Array):
(WebCore::DOMMatrix::fromFloat64Array):

  • css/DOMMatrix.h:
  • css/DOMMatrix.idl:
  • css/DOMMatrixReadOnly.cpp:

(WebCore::DOMMatrixReadOnly::fromFloat32Array):
(WebCore::DOMMatrixReadOnly::fromFloat64Array):
(WebCore::DOMMatrixReadOnly::toFloat32Array):
(WebCore::DOMMatrixReadOnly::toFloat64Array):

  • css/DOMMatrixReadOnly.h:
  • css/DOMMatrixReadOnly.idl:

LayoutTests:

Add layout test coverage.

  • http/wpt/geometry/DOMMatrix-from-to-typed-arrays-expected.txt: Added.
  • http/wpt/geometry/DOMMatrix-from-to-typed-arrays.html: Added.
2:09 PM Changeset in webkit [217763] by Simon Fraser
  • 12 edits
    1 copy
    3 adds in trunk

Implement DOMPointReadOnly.matrixTransform()
https://bugs.webkit.org/show_bug.cgi?id=172896

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

New baselines.

  • web-platform-tests/css/geometry-1/DOMPoint-002-expected.txt:
  • web-platform-tests/css/geometry-1/historical-expected.txt:

Source/WebCore:

DOMPointReadOnly.matrixTransform() creates the matrix or throws, then uses
a new function in TransformationMatrix to map x,y,z,w through the matrix.

Test: http/wpt/geometry/DOMPoint-003.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/DOMMatrixReadOnly.h:

(WebCore::DOMMatrixReadOnly::transformationMatrix):

  • dom/DOMPointReadOnly.cpp: Copied from Source/WebCore/dom/DOMPointReadOnly.idl.

(WebCore::DOMPointReadOnly::matrixTransform):

  • dom/DOMPointReadOnly.h:
  • dom/DOMPointReadOnly.idl:
  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::map4ComponentPoint):

  • platform/graphics/transforms/TransformationMatrix.h:

LayoutTests:

DOMPoint-003.html should be upstreamed at some point.

  • http/wpt/geometry/DOMPoint-003-expected.txt: Added.
  • http/wpt/geometry/DOMPoint-003.html: Added.
11:07 AM Changeset in webkit [217762] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

Cleanup arguments to preparePlatformFont() and fontWithFamily() in FontCacheCoreText.cpp
https://bugs.webkit.org/show_bug.cgi?id=172886

Reviewed by Simon Fraser.

The number of arguments is getting out of control.

No new tests because there is no behavior change.

  • platform/graphics/FontCache.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::preparePlatformFont):
(WebCore::fontWithFamily):
(WebCore::FontCache::createFontPlatformData):
(WebCore::FontCache::systemFallbackForCharacters):

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::platformFontWithFamilySpecialCase):

  • platform/graphics/mac/FontCustomPlatformData.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData):

  • platform/spi/cocoa/CoreTextSPI.h:
10:58 AM Changeset in webkit [217761] by Jonathan Bedard
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening

  • platform/ios/TestExpectations: Update expectation for tests passing

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

9:31 AM Changeset in webkit [217760] by Yusuke Suzuki
  • 9 edits
    4 adds in trunk

Script modules should be able to import data urls
https://bugs.webkit.org/show_bug.cgi?id=171594

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/compile-error-data-url-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/runtime-error-data-url-expected.txt:

Source/WebCore:

Tests: js/dom/classic-script-with-data-url.html

js/dom/modules/module-script-with-data-url.html

Script tag resources should have SameOriginDataURLFlag::Set to load data URLs
since script tags should treat data URLs as same origin.

  • bindings/js/CachedScriptFetcher.cpp:

(WebCore::CachedScriptFetcher::requestScriptWithCache):

LayoutTests:

  • http/tests/security/script-with-dataurl-expected.txt:
  • http/tests/security/script-with-dataurl.html:

Now, the spec is changed and errors from data: scripts should not be muted.
https://github.com/whatwg/html/issues/1778

  • js/dom/classic-script-with-data-url-expected.txt: Added.
  • js/dom/classic-script-with-data-url.html: Added.
  • js/dom/modules/module-script-with-data-url-expected.txt: Added.
  • js/dom/modules/module-script-with-data-url.html: Added.
9:21 AM Changeset in webkit [217759] by Simon Fraser
  • 4 edits in trunk/Source

Sort the project file.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

  • WebKit2.xcodeproj/project.pbxproj:
9:11 AM Changeset in webkit [217758] by Jonathan Bedard
  • 3 edits in trunk/Tools

webkitpy: Add contextmanager to disable logging for a block
https://bugs.webkit.org/show_bug.cgi?id=172876

Reviewed by Daniel Bates.

Add a context manager which will use an OutputCapture object to capture logging
in a block and hold it in a variable.

  • Scripts/webkitpy/common/system/outputcapture.py:

(OutputCaptureScope):
(OutputCaptureScope.init): Construct with OutputCapture object.
(OutputCaptureScope.enter): Begin capturing output.
(OutputCaptureScope.exit): Restore output and save captured output to a variable.
output and retain the resulting log.

  • Scripts/webkitpy/common/system/outputcapture_unittest.py:

(OutputCaptureTest.test_output_capture_scope): Added.

8:26 AM Changeset in webkit [217757] by Jonathan Bedard
  • 3 edits in trunk/LayoutTests

Move css3/flexbox/image-percent-max-height.html failure expectation.
https://bugs.webkit.org/show_bug.cgi?id=126898

Unreviewed test gardening

css3/flexbox/image-percent-max-height.html fails on iOS-simulator,
but passes on device.

  • platform/ios-simulator/TestExpectations:
  • platform/ios/TestExpectations:
6:36 AM Changeset in webkit [217756] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Unreviewed buildfix after r217711.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::xor32):

4:24 AM Changeset in webkit [217755] by Yusuke Suzuki
  • 4 edits
    1 add in trunk

ASSERTION FAILED: "We should only declare a function as a lexically scoped variable in scopes where var declarations aren't allowed. ..." for function redeclaration with async function module export
https://bugs.webkit.org/show_bug.cgi?id=168844

Reviewed by Saam Barati.

JSTests:

  • modules/async-function-export.js: Added.

(f):
(export.async.f):

Source/JavaScriptCore:

As the same to the exported function declaration, we should set statementDepth = 1 for exported async function declaration.

  • parser/Parser.cpp:

(JSC::DepthManager::DepthManager):
(JSC::Parser<LexerType>::parseExportDeclaration):

  • parser/Parser.h:

(JSC::Parser::DepthManager::DepthManager): Deleted.
(JSC::Parser::DepthManager::~DepthManager): Deleted.

3:29 AM Changeset in webkit [217754] by zandobersek@gmail.com
  • 7 edits
    1 add in trunk/Source/WebCore

[GCrypt] Gather SUBTLE_CRYPTO utility functions in a single header
https://bugs.webkit.org/show_bug.cgi?id=172870

Reviewed by Jiewen Tan.

Gather the helper functions used across different source files
for libgcrypt-backed SUBTLE_CRYPTO implementations in a single
header file.

  • crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp:

(WebCore::hashCryptoDigestAlgorithm): Deleted.
(WebCore::hashAlgorithmName): Deleted.
(WebCore::mpiData): Deleted.

  • crypto/gcrypt/CryptoAlgorithmHKDFGCrypt.cpp:

(WebCore::gcryptDeriveBits):
(WebCore::macAlgorithmForHashFunction): Deleted.

  • crypto/gcrypt/CryptoAlgorithmPBKDF2GCrypt.cpp:

(WebCore::gcryptDeriveBits):

  • crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp:

(WebCore::mpiData): Deleted.

  • crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp:

(WebCore::hashCryptoDigestAlgorithm): Deleted.
(WebCore::hashAlgorithmName): Deleted.
(WebCore::mpiData): Deleted.

  • crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp:

(WebCore::hashAlgorithmName): Deleted.
(WebCore::mpiData): Deleted.

  • crypto/gcrypt/GCryptUtilities.h: Added.

(WebCore::hashAlgorithmName):
(WebCore::hmacAlgorithm):
(WebCore::digestAlgorithm):
(WebCore::hashCryptoDigestAlgorithm):
(WebCore::mpiData):

3:27 AM Changeset in webkit [217753] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[GCrypt] Fix PK verification for ECDSA
https://bugs.webkit.org/show_bug.cgi?id=172857

Reviewed by Michael Catanzaro.

No new tests -- covered by existing tests.

  • crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp:

(WebCore::gcryptVerify): Return true if the verification succeeded or false
in any other case, avoiding spilling information about the exact cause of
verification failure.

1:07 AM Changeset in webkit [217752] by Chris Dumez
  • 3 edits in trunk/LayoutTests

http/tests/cache/disk-cache/shattered-deduplication.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=172868
<rdar://problem/31249379>

Reviewed by Antti Koivisto.

http/tests/cache/disk-cache/shattered-deduplication.html was flaky due to PDF banner
fade-in / fade-out animation.

<rdar://problem/31249379> is fixed for me with the proposed changes.

  • http/tests/cache/disk-cache/shattered-deduplication-expected.html:
  • Wait 1 second before calling notifyDone() to give the PDF as much time to render as

the test page.

  • Reduce frame height to 30 to not have to worry about the PDF tool banner being visible or not (as it fades in and out). 30 is still enough to see the color and confirm the test is passing.
  • http/tests/cache/disk-cache/shattered-deduplication.html:
  • Reduce frame height to 30 to not have to worry about the PDF tool banner being visible or not (as it fades in and out). 30 is still enough to see the color and confirm the test is passing.

Jun 2, 2017:

9:40 PM Changeset in webkit [217751] by Alan Bujtas
  • 4 edits in trunk

Cleanup FrameView::autoSizeIfEnabled.
https://bugs.webkit.org/show_bug.cgi?id=172889
<rdar://problem/32550783>

Reviewed by Tim Horton.

Source/WebCore:

This patch ensures that we always have a clean tree (and a valid and current document size) when
setting m_autoSizeContentSize.

  • page/FrameView.cpp:

(WebCore::FrameView::autoSizeIfEnabled):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/AutoLayoutIntegration.mm:

(-[AutoLayoutWKWebView load:withWidth:expectingContentSize:resettingWidth:]): progression.
(TEST):

8:44 PM Changeset in webkit [217750] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Don't create NavigationSidebarPanel classes until they are needed by a Tab
https://bugs.webkit.org/show_bug.cgi?id=172621

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView):
(WebInspector.ContentBrowserTabContentView.prototype.shown):

  • UserInterface/Views/TabContentView.js:

(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.get navigationSidebarPanel):

  • UserInterface/Views/NetworkTabContentView.js:

(WebInspector.NetworkTabContentView.prototype.canShowRepresentedObject):

  • UserInterface/Views/SearchTabContentView.js:

(WebInspector.SearchTabContentView.prototype.canShowRepresentedObject):
Use public getter for navigationSidebarPanel.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.initialLayout): Added.
Load information about the current frame once the sidebar panel is displayed.

8:37 PM Changeset in webkit [217749] by Devin Rousso
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Use initialLayout for DetailsSidebarPanel classes
https://bugs.webkit.org/show_bug.cgi?id=172381

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:

(WebInspector.ApplicationCacheDetailsSidebarPanel):
(WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.initialLayout): Added.
(WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.layout):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype.initialLayout): Added.
(WebInspector.DOMNodeDetailsSidebarPanel.prototype.layout):

  • UserInterface/Views/IndexedDatabaseDetailsSidebarPanel.js:

(WebInspector.IndexedDatabaseDetailsSidebarPanel):
(WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype.initialLayout): Added.
(WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype.layout):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WebInspector.LayerTreeDetailsSidebarPanel):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.initialLayout): Added.
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.layout):

  • UserInterface/Views/ProbeDetailsSidebarPanel.js:

(WebInspector.ProbeDetailsSidebarPanel):
(WebInspector.ProbeDetailsSidebarPanel.prototype.initialLayout): Added.

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel):
(WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
(WebInspector.ResourceDetailsSidebarPanel.prototype.initialLayout): Added.
(WebInspector.ResourceDetailsSidebarPanel.prototype.layout):
(WebInspector.ResourceDetailsSidebarPanel.prototype._applyResourceEventListeners):

7:27 PM Changeset in webkit [217748] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

REGRESSION(r216212): RenderReplaced::paint() should not save and restore the context unless it has to
https://bugs.webkit.org/show_bug.cgi?id=172883
<rdar://problem/32548614>

Reviewed by Tim Horton.

After implementing dragged content fading, RenderReplace::paint is now always guarded by unnecessary calls to
GraphicsContext::save and GraphicsContext::restore, even when there is no dragged content being rendered. To
address this, we initialize our GraphicsContextStateSaver with saveAndRestore = false, indicating that we don't
want to immediately try and save the context.

If we are in a dragged content range, we will then call GraphicsContextStateSaver::save, which saves the
graphics context and also causes the GraphicsContextStateSaver to eventually try and restore() when it is
destroyed. Otherwise, in the common codepath where the renderer is not in a dragged content range, the
constructor and destructor of GraphicsContextStateSaver will be no-ops with respect to saving and restoring the
graphics context.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint):

6:35 PM Changeset in webkit [217747] by Yusuke Suzuki
  • 1 edit
    4 adds in trunk/JSTests

ES2015 modules - Export default function hoisting
https://bugs.webkit.org/show_bug.cgi?id=170174

Reviewed by Saam Barati.

This issue itself is solved by fixing function declaration hoisting rules.
This patch just adds the specific test to modules tests to ensure the bug
is fixed.

  • modules/export-default-function-hoisting.js: Added.
  • modules/export-default-function-hoisting/cappuccino.js: Added.

(import.drinkCocoa.from.string_appeared_here.export.default.drinkCappuccino):

  • modules/export-default-function-hoisting/cocoa.js: Added.

(export.default.drinkCocoa):

6:18 PM Changeset in webkit [217746] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: The CodeMirror instance in the ConsolePrompt does't need to be refreshed each time it is shown
https://bugs.webkit.org/show_bug.cgi?id=172608

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsolePrompt.js:

(WebInspector.ConsolePrompt.prototype.shown): Deleted.

  • UserInterface/Views/DatabaseContentView.js:

(WebInspector.DatabaseContentView.prototype.shown): Deleted.

  • UserInterface/Views/QuickConsole.js:

(WebInspector.QuickConsole):

6:09 PM Changeset in webkit [217745] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Defer installing mach breakpoint handler until watchdog is actually called
https://bugs.webkit.org/show_bug.cgi?id=172885

Reviewed by Saam Barati.

Eagerly installing the mach breakpoint handler causes issues with Xcode GUI debugging.
This hides the issue, so it won't occur as often.

  • runtime/VMTraps.cpp:

(JSC::VMTraps::SignalSender::send):
(JSC::VMTraps::VMTraps): Deleted.

  • runtime/VMTraps.h:
4:58 PM Changeset in webkit [217744] by Devin Rousso
  • 5 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Attributes table in Node Details Sidebar should have editable keys and values
https://bugs.webkit.org/show_bug.cgi?id=167076
<rdar://problem/30033629>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAttributes):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._attributeNodeValueChanged):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._createAttributesDataGrid): Deleted.
Rework creation of the attributes DataGrid so that it is only created once and cleared for
new content. Nodes in the DataGrid are now EditableDataGridNode instances so that attribute
names and values can be changed from within the sidebar. The DataGrid is also sorted based
on attribute name, to make finding attributes easier.

  • UserInterface/Views/DataGrid.css:

(.data-grid tr.editable .cell-content > input):
(body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):

  • UserInterface/Views/DetailsSection.css:

(.details-section > .content .data-grid tr:not(.editable) td.value-column):
(.details-section > .content .data-grid tr:not(.editable) td.value-column > div):
(.details-section > .content .data-grid td.value-column): Deleted.
(.details-section > .content .data-grid td.value-column > div): Deleted.

  • UserInterface/Main.html:
  • UserInterface/Views/EditableDataGridNode.js: Added.

(WebInspector.EditableDataGridNode):
(WebInspector.EditableDataGridNode.prototype.get element):
(WebInspector.EditableDataGridNode.prototype.createCellContent):
(WebInspector.EditableDataGridNode.prototype._handleKeyPress):
(WebInspector.EditableDataGridNode.prototype._handleBlur):
(WebInspector.EditableDataGridNode.prototype._notifyInputElementValueChanged):
Special type of DataGridNode that wraps the content of each cell in an <input>.

4:48 PM Changeset in webkit [217743] by Chris Dumez
  • 8 edits in trunk

ResourceLoadStatistics are not using unique paths during test runs
https://bugs.webkit.org/show_bug.cgi?id=172861
<rdar://problem/32442251>

Reviewed by Darin Adler.

Source/WebKit2:

Add WKContextConfigurationSetResourceLoadStatisticsDirectory() C API to allow
WKTR to use a custom directory.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyResourceLoadStatisticsDirectory):
(WKContextConfigurationSetResourceLoadStatisticsDirectory):

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

(WebKit::legacyWebsiteDataStoreConfiguration):

Tools:

Make sure WebKitTestRunner sets a temporary path for saving resource
load statistics.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generateContextConfiguration):

4:40 PM Changeset in webkit [217742] by mmaxfield@apple.com
  • 11 edits
    4 adds in trunk

REGRESSION(r213464): [iOS] Fonts get too bold when the "Bold Text" accessibility setting is enabled
https://bugs.webkit.org/show_bug.cgi?id=172737
Source/WebCore:

Reviewed by Simon Fraser.

Revert the part of r213464 which changed how we calculate the weights of system fonts.

Add an InternalSetting to trigger our mock of the accessbility "Bold Text" setting. We can't
use the real setting, so instead we just ask for bold fonts instead of regular fonts when this
setting is true.

Tests: fast/text/accessibility-bold-system-font.html

fast/text/accessibility-bold-system-font-2.html

  • platform/graphics/FontCache.h:

(WebCore::FontCache::shouldMockBoldSystemFontForAccessibility):
(WebCore::FontCache::setShouldMockBoldSystemFontForAccessibility):

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::platformFontWithFamilySpecialCase):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::shouldMockBoldSystemFontForAccessibility):
(WebCore::RenderTheme::setShouldMockBoldSystemFontForAccessibility):

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::cssWeightOfSystemFont):
(WebCore::RenderThemeIOS::updateCachedSystemFontDescription):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setShouldMockBoldSystemFontForAccessibility):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

LayoutTests:

<rdar://problem/31608236>

Reviewed by Simon Fraser.

  • fast/text/accessibility-bold-system-font-2-expected.html: Added.
  • fast/text/accessibility-bold-system-font-2.html: Added.
  • fast/text/accessibility-bold-system-font-expected.txt: Added.
  • fast/text/accessibility-bold-system-font.html: Added.
  • platform/mac/TestExpectations:
4:11 PM Changeset in webkit [217741] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark webrtc/captureCanvas-webrtc.html as flaky on iOS.
https://bugs.webkit.org/show_bug.cgi?id=170870

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:10 PM Changeset in webkit [217740] by Jonathan Bedard
  • 3 edits in trunk/LayoutTests

Move compositing/overflow/dynamic-composited-scrolling-status.html failure expectation.
https://bugs.webkit.org/show_bug.cgi?id=152439

Unreviewed test gardening

compositing/overflow/dynamic-composited-scrolling-status.html fails on iOS-simulator WK2,
but passes on device.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-wk2/TestExpectations:
4:07 PM Changeset in webkit [217739] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Mark webrtc/audio-replace-track.html as flaky on iOS and remove Timeout expectation for macOS.
https://bugs.webkit.org/show_bug.cgi?id=171895

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
4:07 PM Changeset in webkit [217738] by beidson@apple.com
  • 7 edits in trunk

Prevent scheme handlers from handling all built-in URL schemes.
<rdar://problem/32404790> and https://bugs.webkit.org/show_bug.cgi?id=172869

Reviewed by Andy Estes.

Source/WebCore:

Covered by API test.

This patch refactors SchemeRegistry to keep a base, constant set of each of the special
URL schemes that WebKit knows about by default.

It then exposes that list through a new method to support WK2 API.

  • platform/SchemeRegistry.cpp:

(WebCore::allBuiltinSchemes):
(WebCore::builtinLocalURLSchemes):
(WebCore::localURLSchemes):
(WebCore::builtinSecureSchemes):
(WebCore::secureSchemes):
(WebCore::builtinSchemesWithUniqueOrigins):
(WebCore::schemesWithUniqueOrigins):
(WebCore::builtinEmptyDocumentSchemes):
(WebCore::emptyDocumentSchemes):
(WebCore::builtinCanDisplayOnlyIfCanRequestSchemes):
(WebCore::canDisplayOnlyIfCanRequestSchemes):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal):
(WebCore::builtinCORSEnabledSchemes):
(WebCore::CORSEnabledSchemes):
(WebCore::SchemeRegistry::isBuiltinScheme):

  • platform/SchemeRegistry.h:

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:

(+[WKWebView handlesURLScheme:]): Check against WebCore's new master list of URL schemes.

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm:
4:06 PM Changeset in webkit [217737] by Simon Fraser
  • 31 edits
    2 copies
    2 adds in trunk/Source

All scroll peformance logging should happen in the UI process
https://bugs.webkit.org/show_bug.cgi?id=172874
rdar://problem/24474830

Reviewed by Tim Horton.

Printing to stdout from the WebProcess doesn't show up anywhere in non-development builds,
so we have to log from the UI process.

Achieve this by adding a PerformanceLoggingClient to Page which forwards messages to
WebPageProxy, which prints them with the same format they had before. Some plumbing through
PlatformCALayerClient and GraphicsLayerClient is required to get messages from TileControllers
through to something that can get to Page.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::~Page):

  • page/Page.h:

(WebCore::Page::performanceLoggingClient):

  • page/PageConfiguration.cpp:
  • page/PageConfiguration.h:
  • page/PerformanceLoggingClient.cpp: Added.

(WebCore::PerformanceLoggingClient::synchronousScrollingReasonsAsString):

  • page/PerformanceLoggingClient.h: Added.

(WebCore::PerformanceLoggingClient::~PerformanceLoggingClient):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::reportExposedUnfilledArea):
(WebCore::AsyncScrollingCoordinator::reportSynchronousScrollingReasonsChanged):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::reportSynchronousScrollingReasonsChanged):
(WebCore::ScrollingTree::reportExposedUnfilledArea):

  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::reportSynchronousScrollingReasonsChanged):
(WebCore::ThreadedScrollingTree::reportExposedUnfilledArea):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
(WebCore::ScrollingTreeFrameScrollingNodeMac::exposedUnfilledArea):
(WebCore::ScrollingTreeFrameScrollingNodeMac::logExposedUnfilledArea): Deleted.
(WebCore::logThreadedScrollingMode): Deleted.

  • platform/graphics/GraphicsLayerClient.h:

(WebCore::GraphicsLayerClient::logFilledVisibleFreshTile):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::platformCALayerLogFilledVisibleFreshTile):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCALayerClient.h:

(WebCore::PlatformCALayerClient::platformCALayerLogFilledVisibleFreshTile):

  • platform/graphics/ca/TileController.cpp:

(WebCore::TileController::logFilledVisibleFreshTile):

  • platform/graphics/ca/TileController.h:
  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::platformCALayerPaintContents):

  • platform/graphics/ca/TileGrid.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::logFilledVisibleFreshTile):

  • rendering/RenderLayerBacking.h:

Source/WebKit2:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::logScrollingEvent):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebPerformanceLoggingClient.cpp: Added.

(WebKit::WebPerformanceLoggingClient::WebPerformanceLoggingClient):
(WebKit::WebPerformanceLoggingClient::logScrollingEvent):

  • WebProcess/WebCoreSupport/WebPerformanceLoggingClient.h: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_cpuLimit):

3:20 PM Changeset in webkit [217736] by commit-queue@webkit.org
  • 8 edits in trunk

[JSCOnly] Build static jsc.exe on Windows
https://bugs.webkit.org/show_bug.cgi?id=172833

Patch by Stephan Szabo <stephan.szabo@am.sony.com> on 2017-06-02
Reviewed by Konstantin Tokarev.

.:

  • Source/cmake/OptionsJSCOnly.cmake:

Source/WTF:

  • wtf/PlatformJSCOnly.cmake:

Tools:

  • CMakeLists.txt:
  • Scripts/build-jsc:
3:12 PM Changeset in webkit [217735] by Alan Bujtas
  • 2 edits in trunk/Tools

Disable ViewportSizeForViewportUnits tests on iOS.
https://bugs.webkit.org/show_bug.cgi?id=172872

Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/WebKit2/ViewportSizeForViewportUnits.mm:
2:16 PM Changeset in webkit [217734] by eric.carlson@apple.com
  • 9 edits
    2 adds in trunk

[MediaStream iOS] Cleanup video muting/unmuting when tab visibility changes
https://bugs.webkit.org/show_bug.cgi?id=172858

Reviewed by Youenn Fablet.

Source/WebCore:

Test: platform/ios/mediastream/video-muted-in-background-tab.html

  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged): Call notifyMediaCaptureOfVisibilityChanged.
(WebCore::Document::notifyMediaCaptureOfVisibilityChanged): Renamed from notifyVisibilityChangedToMediaCapture.
Set m_videoCaptureMutedForVisibilityChange when capture is muted because the document is hidden,
and clear it when visibility changes when capture is disabled. Don't unmute when the document
becomes visible unless this m_videoCaptureMutedForVisibilityChange is still true.
(WebCore::Document::notifyVisibilityChangedToMediaCapture): Deleted.

  • dom/Document.h:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::setVideoCaptureMutedForPageVisibility): Renamed from
setVisibility.
(WebCore::RealtimeMediaSourceCenter::setVisibility): Deleted.

  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSourceFactory::setVideoCaptureMutedForPageVisibility): Ditto.
(WebCore::AVVideoCaptureSourceFactory::setVisibility): Deleted.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSourceFactory::setVideoCaptureMutedForPageVisibility): Ditto.
(WebCore::MockRealtimeVideoSourceFactory::setVisibility): Deleted.

LayoutTests:

  • platform/ios/mediastream/video-muted-in-background-tab-expected.txt: Added.
  • platform/ios/mediastream/video-muted-in-background-tab.html: Added.
1:57 PM Changeset in webkit [217733] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Existing query in Search tab doesn't perform search on reload
https://bugs.webkit.org/show_bug.cgi?id=172663

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/SearchSidebarPanel.css:

(.sidebar > .panel.navigation.search.changed > .banner):
(.sidebar > .panel.navigation.search.changed > .banner > a):
(.sidebar > .panel.navigation.search.changed > :matches(.content, .empty-content-placeholder)):

  • UserInterface/Views/SearchSidebarPanel.js:

(WebInspector.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
(WebInspector.SearchSidebarPanel.prototype._mainResourceDidChange):
(WebInspector.SearchSidebarPanel.prototype._contentChanged):
Listen for any "resource added" event, and show the content changed banner when one occurs.

1:48 PM Changeset in webkit [217732] by Matt Lewis
  • 3 edits in trunk/LayoutTests

Moved test expectation for http/tests/preload/viewport/meta-viewport-link-headers.php to correct file.
https://bugs.webkit.org/show_bug.cgi?id=172518

Unreviewed test gardening

  • platform/ios-simulator/TestExpectations:
  • platform/ios/TestExpectations:
12:57 PM Changeset in webkit [217731] by Chris Dumez
  • 3 edits in trunk/LayoutTests

REGRESSION: LayoutTest fast/scrolling/arrow-key-scroll-in-rtl-document.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=161549
<rdar://problem/28213429>

Reviewed by Simon Fraser.

  • fast/scrolling/arrow-key-scroll-in-rtl-document.html:

Call eventSender.callAfterScrollingCompletes() in the next event loop iteration to
address the flakiness.

  • platform/mac-wk2/TestExpectations:

Unskip test.

12:40 PM Changeset in webkit [217730] by fred.wang@free.fr
  • 6 edits
    5 adds in trunk

[Mac] Include frames in the scrolling tree when ScrollingTreeIncludesFrames=true
https://bugs.webkit.org/show_bug.cgi?id=172825

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-02
Reviewed by Simon Fraser.

Source/WebCore:

This commit generalizes RenderLayerCompositor/ScrollingCoordinator so that it handles the
case of non-main frames. When ScrollingTreeIncludesFrames=true, all the frames will appear
in the scrolling tree on Mac WK2.

Test: fast/scrolling/scrolling-tree-includes-frame.html

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView): Do not to restrict to the
main frame.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateBacking): Do not to restrict to the main frame.
(WebCore::RenderLayerCompositor::useCoordinatedScrollingForLayer): Make this function a class
member so it can call hasCoordinatedScrolling and no longer needs a RenderView parameter.
(WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus): Do not to restrict to the
main frame.

  • rendering/RenderLayerCompositor.h: Introduce useCoordinatedScrollingForLayer.

LayoutTests:

Add a new test to check whether a non-main frame appears in the scrolling tree when
ScrollingTreeIncludesFrames=true. For now this is only happens for Mac WK2. Also update
the iOS WK2 reference for scrolling-iframe-expected.html

  • fast/scrolling/scrolling-tree-includes-frame-expected.txt: Added.
  • fast/scrolling/scrolling-tree-includes-frame.html: Added.
  • platform/ios-simulator/fast/scrolling/scrolling-tree-includes-frame-expected.txt: Added.
  • platform/ios-wk2/compositing/iframes/scrolling-iframe-expected.txt: Update reference.
  • platform/mac-wk1/fast/scrolling/scrolling-tree-includes-frame-expected.txt: Added.
12:15 PM Changeset in webkit [217729] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r206386): Xactimate Website Crashes @ com.apple.WebKit: WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant + 255
https://bugs.webkit.org/show_bug.cgi?id=172846
<rdar://problem/31093005>

Reviewed by Mark Lam.

Follow-up to r217695 to deal with exceptions potentially thrown by
NPRuntimeObjectMap::convertJSValueToNPVariant() as well.

  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::NPJSObject::invoke):

12:04 PM Changeset in webkit [217728] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit2

Add abilility to specify presentingApplicationPID for a WebProcessPool.
https://bugs.webkit.org/show_bug.cgi?id=172839
rdar://problem/32247170

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-06-02
Reviewed by Tim Horton.

Expose presentingApplicationPID through WebProcessPoolConfiguration.
This allows rehosted WebViews to specify the hosting application.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration setPresentingApplicationPID:]):
(-[_WKProcessPoolConfiguration presentingApplicationPID]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):

12:04 PM Changeset in webkit [217727] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WebCore] DragImageRef should correspond to USE(CAIRO)
https://bugs.webkit.org/show_bug.cgi?id=172863

Patch by Don Olmstead <don.olmstead@am.sony.com> on 2017-06-02
Reviewed by Carlos Alberto Lopez Perez.

No new tests. No change in behavior.

  • platform/DragImage.h:
11:42 AM Changeset in webkit [217726] by fred.wang@free.fr
  • 6 edits
    7 adds in trunk

[Mac] Use compositing for frames when ScrollingTreeIncludesFrames=true
https://bugs.webkit.org/show_bug.cgi?id=172851

Patch by Frederic Wang <fwang@igalia.com> on 2017-06-02
Reviewed by Simon Fraser.

Source/WebCore:

When fast frame scrolling is supported on mac (bug 171667), scrollable frames will require
special composited layer. This commit enables that on mac but only when
ScrollingTreeIncludesFrames=true, so that the default behavior is unchanged.

Test: compositing/iframes/compositing-for-scrollable-iframe.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForScrollableFrame): Do not enable frame
compositing when ScrollingTreeIncludesFrames=false.
Rename ScrollableInnerFrameTrigger to ScrollableNonMainFrameTrigger.

  • page/ChromeClient.h: Rename ScrollableInnerFrameTrigger.

Source/WebKit2:

When fast frame scrolling is supported on mac (bug 171667), scrollable frames will require
special composited layer. This commit enables that on mac but only when
ScrollingTreeIncludesFrames=true, so that the default behavior is unchanged.

  • WebProcess/WebCoreSupport/WebChromeClient.h: Make scrollable inner frame trigger

compositing on Mac by default. This is ignored on mac when ScrollingTreeIncludesFrames=false.
Rename ScrollableInnerFrameTrigger to ScrollableNonMainFrameTrigger.

LayoutTests:

This commit adds a test to check whether scrollable iframes require a special composited
layer when ScrollingTreeIncludesFrames=true. This is currently only done on Mac WK2.

  • compositing/iframes/compositing-for-scrollable-iframe.html: Added. This is a basic test

printing the layer tree of a page with an iframe.

  • platform/ios-simulator/compositing/iframes/compositing-for-scrollable-iframe-expected.txt: Added.
  • platform/mac/compositing/iframes/compositing-for-scrollable-iframe-expected.txt: Added.
  • platform/mac-wk1/compositing/iframes/compositing-for-scrollable-iframe-expected.txt: Added.
11:38 AM Changeset in webkit [217725] by Alan Bujtas
  • 13 edits
    1 add in trunk

Allow clients to override viewport size for CSS viewport units.
https://bugs.webkit.org/show_bug.cgi?id=172838
<rdar://problem/32523441>

Reviewed by Tim Horton.

Source/WebKit2:

This enables auto-sizing clients to ensure that styles relative to the viewport are
resolved to a set value (presumably the size of the container) as opposed to the preferred
document size (which is set as the FrameView size).

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _viewportSizeForCSSViewportUnits]):
(-[WKWebView _setViewportSizeForCSSViewportUnits:]):

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

(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::setViewportSizeForCSSViewportUnits):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::viewportSizeForCSSViewportUnits):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_cpuLimit):
(WebKit::WebPage::setViewportSizeForCSSViewportUnits):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::viewportSizeForCSSViewportUnits):

  • WebProcess/WebPage/WebPage.messages.in:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/ViewportSizeForViewportUnits.mm: Added.

(TEST):

11:20 AM Changeset in webkit [217724] by Simon Fraser
  • 20 edits in trunk

Get <chrono> out of StdLibExtras.h
https://bugs.webkit.org/show_bug.cgi?id=172744

Reviewed by Zalan Bujtas.

Source/WebCore:

Only bring in <chrono> and namespace std::literals::chrono_literals when necessary.

  • fileapi/FileReader.cpp:
  • inspector/InspectorOverlay.cpp:
  • loader/CrossOriginPreflightResultCache.cpp:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::freshnessLifetime):

  • page/ResourceUsageThread.cpp:

(WebCore::ResourceUsageThread::threadBody):

  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::jettisonExpensiveObjectsOnTopLevelNavigation):

  • platform/network/CacheValidation.cpp:

(WebCore::computeFreshnessLifetimeForHTTPFamily):

  • platform/network/CacheValidation.h:

Source/WebKit2:

Only bring in <chrono> and namespace std::literals::chrono_literals when necessary.

  • NetworkProcess/cache/NetworkCache.cpp:
  • NetworkProcess/cache/NetworkCacheFileSystem.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::computeRecordWorth):

  • Shared/mac/RemoteLayerBackingStoreCollection.mm:
  • WebProcess/Cookies/WebCookieManager.h:

Source/WTF:

We hates std::chrono. Don't include it everywhere to discourage use.

  • wtf/StdLibExtras.h:

Tools:

  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
11:14 AM Changeset in webkit [217723] by aestes@apple.com
  • 12 edits
    2 adds in trunk

[Cocoa] Add a "supportedCountries" property to ApplePayPaymentRequest
https://bugs.webkit.org/show_bug.cgi?id=172832
<rdar://problem/30735544>

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/ssl/applepay/ApplePaySessionV3.html

  • Modules/applepay/ApplePayPaymentRequest.h:
  • Modules/applepay/ApplePayPaymentRequest.idl:
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):

  • Modules/applepay/PaymentRequest.h:

(WebCore::PaymentRequest::supportedCountries):
(WebCore::PaymentRequest::setSupportedCountries):

  • Modules/applepay/PaymentRequestValidator.cpp:

(WebCore::PaymentRequestValidator::validate):

  • platform/spi/cocoa/PassKitSPI.h:

Source/WebKit2:

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<PaymentRequest>::encode):
(IPC::ArgumentCoder<PaymentRequest>::decode):

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toNSSet):
(WebKit::toPKPaymentRequest):

LayoutTests:

  • http/tests/ssl/applepay/ApplePaySessionV3-expected.txt: Added.
  • http/tests/ssl/applepay/ApplePaySessionV3.html: Added.
  • platform/mac-wk2/TestExpectations:
10:58 AM Changeset in webkit [217722] by fpizlo@apple.com
  • 7 edits in trunk

Atomics.load and Atomics.store need to be fully fenced
https://bugs.webkit.org/show_bug.cgi?id=172844

Reviewed by Keith Miller.

Source/JavaScriptCore:

Implement fully fenced loads and stores in FTL using AtomicXchgAdd(0, ptr) for the load and
AtomicXchg(value, ptr) for the store.

DFG needed no changes because it implements all atomics using a CAS loop.

AtomicsObject.cpp now uses new Atomic<> API for fully fences loads and stores.

Prior to this change, we used half fences (acquire/release) for atomic loads and stores. This
is not correct according to my current understanding of the SAB memory model, which requires
that atomic operations are SC with respect to everything not just other atomics.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::atomicWeakCAS):

  • ftl/FTLOutput.h:
  • runtime/AtomicsObject.cpp:

Source/WTF:

Add loadFullyFenced and storeFullyFenced to Atomic<>.

  • wtf/Atomics.h:

(WTF::Atomic::loadFullyFenced):
(WTF::Atomic::storeRelaxed):
(WTF::Atomic::storeFullyFenced):
(WTF::atomicLoadFullyFenced):
(WTF::atomicStoreFullyFenced):

Websites/webkit.org:

Update documentation to say that the canonical way to do fully fenced loads and stores is
AtomicXchgAdd(0, ptr) and AtomicXchg(value, ptr), respectively.

  • docs/b3/intermediate-representation.html:
10:54 AM Changeset in webkit [217721] by Devin Rousso
  • 11 edits
    3 adds in trunk

Web Inspector: Should see active Web Sockets when opening Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=172312

Reviewed by Joseph Pecoraro.

Source/WebCore:

Test: http/tests/websocket/tests/hybi/inspector/before-load.html

  • Modules/websockets/WebSocket.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::WebSocket):
(WebCore::WebSocket::~WebSocket):
(WebCore::WebSocket::allActiveWebSockets):
(WebCore::WebSocket::allActiveWebSocketsMutex):
(WebCore::WebSocket::channel):
(WebCore::WebSocket::eventTargetInterface):
Add a static set of all WebSocket objects and provide getters to access web socket metadata.

  • Modules/websockets/ThreadableWebSocketChannel.h:

(WebCore::ThreadableWebSocketChannel::isWebSocketChannel):

  • Modules/websockets/WebSocketChannel.h:
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::isWebSocketChannel):
(WebCore::WebSocketChannel::identifier):
(WebCore::WebSocketChannel::clientHandshakeRequest):
(WebCore::WebSocketChannel::serverHandshakeResponse):
(WebCore::WebSocketChannel::handshakeMode):
(WebCore::WebSocketChannel::isType):
Provide getters to access web socket metadata.

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::enable):
Loops over the static set of all WebSocket objects and sends events for each to the frontend.

Source/WebInspectorUI:

  • UserInterface/Controllers/FrameResourceManager.js:

(WebInspector.FrameResourceManager.prototype.webSocketHandshakeResponseReceived):
(WebInspector.FrameResourceManager.prototype.initialize): Removed.
Rework order of agent enable calls to ensure that the main frame is initialized before any
websocket events are dispatched.

  • UserInterface/Models/WebSocketResource.js:

(WebInspector.WebSocketResource.ReadyState):
Change symbol strings in enum for better printing in tests.

LayoutTests:

Test that WebSockets created before the inspector loads are also tracked.

  • http/tests/websocket/tests/hybi/inspector/before-load-expected.txt: Added.
  • http/tests/websocket/tests/hybi/inspector/before-load.html: Added.
  • http/tests/websocket/tests/hybi/inspector/before-load_wsh.py: Added.

(web_socket_do_extra_handshake):
(web_socket_transfer_data):

10:01 AM Changeset in webkit [217720] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Xcode] Header postprocessing should be based on the target OS version rather than the builder OS version
https://bugs.webkit.org/show_bug.cgi?id=172860

Reviewed by Anders Carlsson.

  • Configurations/WebKit.xcconfig: Use TARGET_MAC_OS_X_VERSION_MAJOR
9:47 AM Changeset in webkit [217719] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix linking errors on iOS after r217712.

  • platform/OrientationNotifer.h:

(WebCore::OrientationNotifier::Observer::setNotifier):

9:26 AM Changeset in webkit [217718] by bshafiei@apple.com
  • 2 edits in tags/Safari-604.1.23.0.5/Source/WebCore

Build fix. rdar://problem/32530825

9:25 AM Changeset in webkit [217717] by Ryan Haddad
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, attempt to fix the iOS build after r217711.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::xor32):
(JSC::MacroAssemblerARM64::xor64):

9:20 AM Changeset in webkit [217716] by bshafiei@apple.com
  • 7 edits in tags/Safari-604.1.23.0.5/Source

Versioning.

9:19 AM Changeset in webkit [217715] by Ryan Haddad
  • 2 edits in branches/safari-603-branch/LayoutTests

Merge r211465.

9:17 AM Changeset in webkit [217714] by bshafiei@apple.com
  • 1 copy in tags/Safari-604.1.23.0.5

New tag.

9:17 AM Changeset in webkit [217713] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked fast/images/slower-decoding-than-animation-image.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=172666

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:08 AM Changeset in webkit [217712] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under OrientationNotifier::Observer::setNotifier()
https://bugs.webkit.org/show_bug.cgi?id=172847
<rdar://problem/32519127>

Reviewed by Youenn Fablet.

Update OrientationNotifier::Observer::setNotifier() to unregister itself from
its current notifier if it already has one. This is needed because
Internals::setCameraMediaStreamTrackOrientation() may be used to override the
notifier of an observer. If we override the notifier without unregistering
the observer from its previous notifier, then the previous notifier will not
get notified when the observer gets destroyed.

No new tests, already covered by webrtc/video-rotation.html that is currently
failing on some bots.

  • platform/OrientationNotifer.h:

(WebCore::OrientationNotifier::Observer::setNotifier):

8:59 AM Changeset in webkit [217711] by fpizlo@apple.com
  • 27 edits
    1 add in trunk/Source/JavaScriptCore

GC should use scrambled free-lists
https://bugs.webkit.org/show_bug.cgi?id=172793

Reviewed by Mark Lam.

Previously, our bump'n'pop allocator would use a conventional linked-list for the free-list.
The linked-list would be threaded through free memory, as is the usual convention.

This scrambles the next pointers of that free-list. It also scrambles the head pointer, because
this leads to a more natural fast-path structure and saves one register on ARM64.

The secret with which pointers are scrambled is per-allocator. Allocators choose a new secret
every time they do a sweep-to-pop.

This doesn't change the behavior of the bump part of bump'n'pop, but it does refactor the code
quite a bit. Previously, there were four copies of the allocator fast path: two in
MarkedAllocatorInlines.h, one in MarkedAllocator.cpp, and one in AssemblyHelpers.h. The JIT one
was obviously different-looking, but the other three were almost identical. This moves all of
that logic into FreeList. There are now just two copies of the allocator: FreeListInlines.h and
AssemblyHelpers.h.

This appears to be just as fast as our previously allocator.

(JSC::FreeList::FreeList):
(JSC::FreeList::~FreeList):
(JSC::FreeList::clear):
(JSC::FreeList::initializeList):
(JSC::FreeList::initializeBump):
(JSC::FreeList::contains):
(JSC::FreeList::dump):

  • heap/FreeList.h:

(JSC::FreeList::allocationWillFail):
(JSC::FreeList::originalSize):
(JSC::FreeList::addressOfList):
(JSC::FreeList::offsetOfBlock):
(JSC::FreeList::offsetOfList):
(JSC::FreeList::offsetOfIndex):
(JSC::FreeList::offsetOfPayloadEnd):
(JSC::FreeList::offsetOfRemaining):
(JSC::FreeList::offsetOfOriginalSize):
(JSC::FreeList::FreeList): Deleted.
(JSC::FreeList::list): Deleted.
(JSC::FreeList::bump): Deleted.
(JSC::FreeList::operator==): Deleted.
(JSC::FreeList::operator!=): Deleted.
(JSC::FreeList::operator bool): Deleted.

  • heap/FreeListInlines.h: Added.

(JSC::FreeList::addFreeCell):
(JSC::FreeList::allocate):
(JSC::FreeList::forEach):
(JSC::FreeList::toOffset):
(JSC::FreeList::fromOffset):

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::sweepNextBlock):

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::MarkedAllocator):
(JSC::MarkedAllocator::didConsumeFreeList):
(JSC::MarkedAllocator::tryAllocateWithoutCollecting):
(JSC::MarkedAllocator::tryAllocateIn):
(JSC::MarkedAllocator::allocateSlowCaseImpl):
(JSC::MarkedAllocator::stopAllocating):
(JSC::MarkedAllocator::prepareForAllocation):
(JSC::MarkedAllocator::resumeAllocating):
(JSC::MarkedAllocator::sweep):
(JSC::MarkedAllocator::setFreeList): Deleted.

  • heap/MarkedAllocator.h:

(JSC::MarkedAllocator::freeList):
(JSC::MarkedAllocator::isFreeListedCell): Deleted.

  • heap/MarkedAllocatorInlines.h:

(JSC::MarkedAllocator::isFreeListedCell):
(JSC::MarkedAllocator::tryAllocate):
(JSC::MarkedAllocator::allocate):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::stopAllocating):
(JSC::MarkedBlock::Handle::lastChanceToFinalize):
(JSC::MarkedBlock::Handle::resumeAllocating):
(JSC::MarkedBlock::Handle::zap):
(JSC::MarkedBlock::Handle::sweep):
(JSC::MarkedBlock::Handle::isFreeListedCell):
(JSC::MarkedBlock::Handle::forEachFreeCell): Deleted.

  • heap/MarkedBlock.h:
  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::specializedSweep):
(JSC::MarkedBlock::Handle::finishSweepKnowingSubspace):
(JSC::MarkedBlock::Handle::isFreeListedCell): Deleted.

  • heap/Subspace.cpp:

(JSC::Subspace::finishSweep):

  • heap/Subspace.h:
  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):

  • runtime/JSDestructibleObjectSubspace.cpp:

(JSC::JSDestructibleObjectSubspace::finishSweep):

  • runtime/JSDestructibleObjectSubspace.h:
  • runtime/JSSegmentedVariableObjectSubspace.cpp:

(JSC::JSSegmentedVariableObjectSubspace::finishSweep):

  • runtime/JSSegmentedVariableObjectSubspace.h:
  • runtime/JSStringSubspace.cpp:

(JSC::JSStringSubspace::finishSweep):

  • runtime/JSStringSubspace.h:
  • wasm/js/JSWebAssemblyCodeBlockSubspace.cpp:

(JSC::JSWebAssemblyCodeBlockSubspace::finishSweep):

  • wasm/js/JSWebAssemblyCodeBlockSubspace.h:
8:18 AM Changeset in webkit [217710] by zandobersek@gmail.com
  • 4 edits in trunk/LayoutTests

Unreviewed WPE gardening.

  • platform/wpe/TestExpectations: Add a few test failure expectations.
  • platform/wpe/js/dom/global-constructors-attributes-dedicated-worker-expected.txt: Rebaseline.
  • platform/wpe/js/dom/global-constructors-attributes-expected.txt: Ditto.
4:35 AM Changeset in webkit [217709] by jfernandez@igalia.com
  • 7 edits
    2 adds in trunk

[css-grid] Logical margin incorrectly applied during the tracks sizing algorithm of auto tracks
https://bugs.webkit.org/show_bug.cgi?id=172836

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

When computing min-content and max-content of the content-sized tracks
we are using the marginIntrinsicLogicalWidthForChild function, which
uses the grid's writing-mode to determine wether to use the child's
margin width or height. This is not correct when the grid item is
orthogonal.

This patch changes how we compute the tracks width so we use always
the item's marginLogicalWidth, which depends only on its own writing
mode.

Test: fast/css-grid-layout/grid-track-sizing-with-margins-and-orthogonal-flows.html

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::maxContentForChild):

LayoutTests:

Test to verify different cases of auto-sized tracks and orthogonal items with margins.

  • fast/css-grid-layout/grid-track-sizing-with-margins-and-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-track-sizing-with-margins-and-orthogonal-flows.html: Added.
3:18 AM Changeset in webkit [217708] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Invalidate the shadow subtree style when slotted pseudo rules are present.
https://bugs.webkit.org/show_bug.cgi?id=172822

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-06-02
Reviewed by Antti Koivisto.

No new tests, this is tested by
fast/shadow-dom/css-scoping-slot-with-id.html, once we don't force an
Inherit style change for slots. I could add some more tests for stuff
with descendant combinators and similar I guess, though.

  • style/AttributeChangeInvalidation.cpp:

(WebCore::Style::AttributeChangeInvalidation::invalidateStyle):

  • style/ClassChangeInvalidation.cpp:

(WebCore::Style::ClassChangeInvalidation::invalidateStyle):

  • style/IdChangeInvalidation.cpp:

(WebCore::Style::IdChangeInvalidation::invalidateStyle):

2:57 AM Changeset in webkit [217707] by yoon@igalia.com
  • 5 edits in trunk/Source/WebKit2

REGRESSION(r217214): [Coordinated Graphics] UpdateAtlas didn't released while resetting testrunner
https://bugs.webkit.org/show_bug.cgi?id=172746

Reviewed by Žan Doberšek.

After clearing update atlases in CompositingCoordinator, we should
release update atlases at the compositing thread, too.

We cannot remove update atlases from the CoordinatedGraphicsScene
without regard to update scheduling, since previously committed scene
states can try to use already released update atlases.
To prevent this timing problem, releasing update atlases should be done
with a update scheduler.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::syncRemoteContent):
(WebKit::CoordinatedGraphicsScene::appendUpdate):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:

Use WTF::Function instead of std::function

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::updateSceneState):
(WebKit::ThreadedCompositor::releaseUpdateAtlases):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::ThreadedCompositor::flushPendingLayerChanges):
Release UpdateAtlases at the end of compositing states update, too.
(WebKit::CompositingCoordinator::clearUpdateAtlases):

2:18 AM Changeset in webkit [217706] by magomez@igalia.com
  • 6 edits in trunk/Source/WebCore

[GTK+][WPE] Allow TextureMapperShaderProgram to perform colorspace conversions with the source texture pixels
https://bugs.webkit.org/show_bug.cgi?id=172749

Reviewed by Žan Doberšek.

Currently TextureMapperGL is only able to paint properly textures that are in RGBA format. There are
situations where we will want it to be able to handle other formats (for example BGRA for gstreamer-gl).
To make this possible without having to perform the color conversion in the CPU, we add a new color
conversion matrix to TextureMapperShaderProgram. This matrix will perform the color space conversion
in the GPU, just after sampling the source texture.

Also, add a new flag to TextureMapperGL to indicate that a color conversion is required to handle a
texture. This flag will be set to the TextureMapperPlatformLayerBuffers as required, and TextureMapperGL
will set the appropriate color space matrix to the shader. Initially only the flag for BGRA->RGBA conversion
is defined, but support for new transformations can be added as needed.

VideoTextureCopierGStreamer also uses the TextureMapperShaderProgram to perform texture sampling, but for
the moment it just sets an identity matrix because when using gstreamer-gl, the format of the video frames
is RGBA. This will be changed soon to use BGRA.

No new tests.

  • platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp:

(WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture):

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::colorSpaceMatrixForFlags):
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):

  • platform/graphics/texmap/TextureMapperGL.h:
  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:
  • platform/graphics/texmap/TextureMapperShaderProgram.h:
2:08 AM Changeset in webkit [217705] by jfernandez@igalia.com
  • 9 edits
    2 adds in trunk

[css-grid] Margin wrong applied when stretching an orthogonal item in fixed size track
https://bugs.webkit.org/show_bug.cgi?id=172590

Reviewed by Sergio Villar Senin.

LayoutTests/imported/w3c:

All the test cases of these tests pass with this change, so updating their expectations accordingly.

  • web-platform-tests/css/css-grid-1/alignment/grid-self-alignment-stretch-006-expected.txt:
  • web-platform-tests/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-lr-006-expected.txt:
  • web-platform-tests/css/css-grid-1/alignment/grid-self-alignment-stretch-vertical-rl-006-expected.txt:

Source/WebCore:

We need to consider orthogonality when using the item's logical margin to
compute the available space for stretching.

The issue this patch fixes is only reproducible when the grid layout logic
is executed several times, since probably the item doesn't need to be
laid out again. In such cases, we just get the cached logical margins
but we were not taking orthogonality into account.

Test: fast/css-grid-layout/grid-item-stretching-must-not-depend-on-previous-layouts.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::marginLogicalSizeForChild):
(WebCore::RenderGrid::availableAlignmentSpaceForChildBeforeStretching):

  • rendering/RenderGrid.h:

LayoutTests:

  • TestExpectations: 2 tests pass now but 3 more fail because of bug #172836
  • fast/css-grid-layout/grid-item-stretching-must-not-depend-on-previous-layouts-expected.html: Added.
  • fast/css-grid-layout/grid-item-stretching-must-not-depend-on-previous-layouts.html: Added.
12:52 AM Changeset in webkit [217704] by zandobersek@gmail.com
  • 5 edits
    1 add in trunk

[WPE] Enable SUBTLE_CRYPTO
https://bugs.webkit.org/show_bug.cgi?id=172756

Reviewed by Michael Catanzaro.

Tools:

  • Scripts/webkitperl/FeatureList.pm: Set ENABLE_SUBTLE_CRYPTO to 1 for WPE.
  • wpe/jhbuild.modules: Add libgpg-error and libgcrypt dependencies.
  • wpe/patches/libgcrypt-use-only-dev-urandom-for-testing.patch: Added. Prevents

exhausting entropy when running the crypto layout tests.

LayoutTests:

  • platform/wpe/TestExpectations: Enable tests under crypto/ and

imported/w3c/web-platform-tests/WebCryptoAPI/ in general, but add
the test expectations for failing tests under those directories.

12:47 AM Changeset in webkit [217703] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Use @globalPrivate for concatSlowPath
https://bugs.webkit.org/show_bug.cgi?id=172802

Reviewed by Darin Adler.

Use @globalPrivate instead of manually putting it to JSGlobalObject.

  • builtins/ArrayPrototype.js:

(concatSlowPath): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

Note: See TracTimeline for information about the timeline view.