Timeline



Feb 25, 2017:

11:19 PM Changeset in webkit [213009] by Alan Bujtas
  • 6 edits
    2 adds in trunk/Source/WebCore

Simple line layout: Move coverage functions out of SimpleLineLayout.cpp
https://bugs.webkit.org/show_bug.cgi?id=168872

Reviewed by Simon Fraser.

SimpleLineLayout.cpp is for core functions only.

No change in functionality.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderingAllInOne.cpp:
  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForWithReason):
(WebCore::SimpleLineLayout::printReason): Deleted.
(WebCore::SimpleLineLayout::printReasons): Deleted.
(WebCore::SimpleLineLayout::printTextForSubtree): Deleted.
(WebCore::SimpleLineLayout::textLengthForSubtree): Deleted.
(WebCore::SimpleLineLayout::collectNonEmptyLeafRenderBlockFlows): Deleted.
(WebCore::SimpleLineLayout::collectNonEmptyLeafRenderBlockFlowsForCurrentPage): Deleted.
(WebCore::SimpleLineLayout::toggleSimpleLineLayout): Deleted.
(WebCore::SimpleLineLayout::printSimpleLineLayoutBlockList): Deleted.
(WebCore::SimpleLineLayout::printSimpleLineLayoutCoverage): Deleted.

  • rendering/SimpleLineLayout.h:
  • rendering/SimpleLineLayoutCoverage.cpp: Added.

(WebCore::SimpleLineLayout::printReason):
(WebCore::SimpleLineLayout::printReasons):
(WebCore::SimpleLineLayout::printTextForSubtree):
(WebCore::SimpleLineLayout::textLengthForSubtree):
(WebCore::SimpleLineLayout::collectNonEmptyLeafRenderBlockFlows):
(WebCore::SimpleLineLayout::collectNonEmptyLeafRenderBlockFlowsForCurrentPage):
(WebCore::SimpleLineLayout::toggleSimpleLineLayout):
(WebCore::SimpleLineLayout::printSimpleLineLayoutBlockList):
(WebCore::SimpleLineLayout::printSimpleLineLayoutCoverage):

  • rendering/SimpleLineLayoutCoverage.h: Added.
2:18 PM Changeset in webkit [213008] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Text might wrap when its preferred logical width is used for sizing the containing block.
https://bugs.webkit.org/show_bug.cgi?id=168864
<rdar://problem/30690734>

Reviewed by Antti Koivisto.

Source/WebCore:

In certain cases we end up measuring a text run in 2 different ways.

  1. preferred width computation -> slow path FontCascade::width()
  2. line breaking logic -> fast path FontCascade::widthForSimpleText()

FontCascade::width() and ::widthForSimpleText() might return different results for the same run even when
the individual glyph widths are measured to be the same. It's because they run diffrent set of
arithmetics on the float values and for certain values these arithmetics produce different results due to the floating point
precision.
Since RenderText::computePreferredLogicalWidths() currently forces us to use the slow path
(to retrieve fontfallback and glyph overflow information) the only alternative solution is to turn off the fast path
for all runs that have been already measured using the slow path (which would be just wasteful).

Test: fast/text/fast-run-width-vs-slow-run-width.html

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthForSimpleText): Mimics WidthIterator::applyFontTransforms. Use the same set of arithmetics here.

LayoutTests:

  • fast/text/fast-run-width-vs-slow-run-width-expected.html: Added.
  • fast/text/fast-run-width-vs-slow-run-width.html: Added.
11:02 AM Changeset in webkit [213007] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Improve how multiple codegen-properties are handled in CSSProperties.json
https://bugs.webkit.org/show_bug.cgi?id=168867

Reviewed by Zalan Bujtas.

To make upcoming metadata storage easier, it's better if property entries in CSSProperties.json
are always hashes. One property (line-height) used an array, in order to represent settings for
two different build flags (ENABLE_TEXT_AUTOSIZING and !ENABLE_TEXT_AUTOSIZING).

Fix by making "codegen-properties" optionally be an array. The relevant item is selected in
removeInactiveCodegenProperties() and used to replace the array.

Sort @internalProprerties when generating code, otherwise the contents of isInternalCSSProperty()
are unstable (the order in @allNames is not stable because it's the keys in a hash).

  • css/CSSProperties.json:
  • css/makeprop.pl:

(matchEnableFlags):
(removeInactiveCodegenProperties):
(isPropertyEnabled):

8:33 AM Changeset in webkit [213006] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK test gardening

  • platform/gtk/TestExpectations:
7:47 AM Changeset in webkit [213005] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[GTK] Unreviewed, document deficiency in webkit_website_data_manager_clear() API

Document that this function cannot currently delete cookie data for a particular period of
time.

  • UIProcess/API/gtk/WebKitWebsiteDataManager.cpp:
1:23 AM Changeset in webkit [213004] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: add support for Color Picker
https://bugs.webkit.org/show_bug.cgi?id=168853

Patch by Devin Rousso <Devin Rousso> on 2017-02-25
Reviewed by Brian Burg.

  • UserInterface/Views/ColorPicker.css:

(.color-picker):
(body[dir=ltr] .color-picker > .brightness):
(body[dir=rtl] .color-picker > .brightness):
(body[dir=ltr] .color-picker > .opacity):
(body[dir=rtl] .color-picker > .opacity):
(.color-picker > .brightness): Deleted.
(.color-picker > .opacity): Deleted.

  • UserInterface/Views/ColorWheel.js:

(WebInspector.ColorWheel.prototype.set dimension):
Set the CSS width and height style of the container element to ensure that the element only
takes up the space it needs.

  • UserInterface/Views/Slider.css:

(.slider):

  • UserInterface/Views/Variables.css:

(:root):
Add --slider-height CSS variable for convenience.

12:58 AM Changeset in webkit [213003] by Dewei Zhu
  • 4 edits in trunk/Websites/perf.webkit.org

Commit should order by 'commit_order' as secondary key.
https://bugs.webkit.org/show_bug.cgi?id=168866

Reviewed by Ryosuke Niwa.

Currently, commits are sorted by 'commit_time' only.
We should use 'commit_order' as secondary key when 'commit_time' is equal or null.

  • public/include/commit-log-fetcher.php:
  • public/include/db.php:
  • server-tests/api-commits.js:

(return.addSlaveForReport.subversionCommits.then):
(then):

12:44 AM Changeset in webkit [213002] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: add support for Bezier/Spring editor
https://bugs.webkit.org/show_bug.cgi?id=168854

Patch by Devin Rousso <Devin Rousso> on 2017-02-25
Reviewed by Brian Burg.

  • UserInterface/Views/BezierEditor.css:

(.bezier-editor):
(body[dir=ltr] .bezier-editor):
(body[dir=rtl] .bezier-editor):
(.bezier-editor > .bezier-preview-timing):
(body[dir=ltr] .bezier-editor > .bezier-preview-timing):
(body[dir=rtl] .bezier-editor > .bezier-preview-timing):
(@keyframes bezierPreview):
(body[dir=rtl] .bezier-editor > .bezier-container):
(.bezier-editor > .number-input-container > input):
(body[dir=ltr] .bezier-editor > .number-input-container > input):
(body[dir=rtl] .bezier-editor > .number-input-container > input):

  • UserInterface/Views/SpringEditor.css:

(.spring-editor > .spring-timing):
(.spring-editor > .spring-timing::before):
(.spring-editor > .spring-timing::after):
(body[dir=ltr] .spring-editor > .spring-timing::before, body[dir=rtl] .spring-editor > .spring-timing::after):
(body[dir=ltr] .spring-editor > .spring-timing::after, body[dir=rtl] .spring-editor > .spring-timing::before):
(.spring-editor > .number-input-container > .number-input-row > input):

  • UserInterface/Views/SpringEditor.js:

(WebInspector.SpringEditor.prototype._updatePreviewAnimation):

12:43 AM Changeset in webkit [213001] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: Elements tab Styles sidebar label/arrows need adjustment
https://bugs.webkit.org/show_bug.cgi?id=168746

Patch by Devin Rousso <Devin Rousso> on 2017-02-25
Reviewed by Brian Burg.

  • UserInterface/Views/ScopeRadioButtonNavigationItem.css:

(.scope-radio-button-navigation-item):
(.scope-radio-button-navigation-item > .scope-radio-button-item-select):
(body[dir=ltr] .scope-radio-button-navigation-item > .scope-radio-button-item-select):
(body[dir=rtl] .scope-radio-button-navigation-item > .scope-radio-button-item-select):
(.scope-radio-button-navigation-item > .scope-radio-button-item-select:focus):
(.scope-radio-button-navigation-item > .arrows):
(body[dir=ltr] .scope-radio-button-navigation-item > .arrows):
(body[dir=rtl] .scope-radio-button-navigation-item > .arrows):

12:29 AM Changeset in webkit [213000] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: copying a search result out of Search Tab navigation sidebar does nothing
https://bugs.webkit.org/show_bug.cgi?id=167074

Patch by Devin Rousso <Devin Rousso> on 2017-02-25
Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WebInspector._copy):

  • UserInterface/Views/SearchTabContentView.js:

(WebInspector.SearchTabContentView.prototype.handleCopyEvent):
Provide the container TabContentView with the opportunity to intercept the copy event.

  • UserInterface/Models/SourceCodeTextRange.js:

(WebInspector.SourceCodeTextRange.prototype.get synthesizedTextValue):

  • UserInterface/Views/SearchResultTreeElement.js:

(WebInspector.SearchResultTreeElement.prototype.get synthesizedTextValue):
Generate a string with the format ${url}:${lineNumber}:${resultLine}.

12:08 AM Changeset in webkit [212999] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: Styles - Rules sidebar icons are misaligned
https://bugs.webkit.org/show_bug.cgi?id=168807

Patch by Devin Rousso <Devin Rousso> on 2017-02-25
Reviewed by Brian Burg.

  • UserInterface/Views/CSSStyleDeclarationSection.css:

(.style-declaration-section > .header):
(body[dir=ltr] .style-declaration-section > .header):
(body[dir=rtl] .style-declaration-section > .header):
(.style-declaration-section.locked > .header > .locked-icon):
(body[dir=ltr] .style-declaration-section.locked > .header > .locked-icon):
(body[dir=rtl] .style-declaration-section.locked > .header > .locked-icon):
(.style-declaration-section > .header > .icon):
(body[dir=ltr] .style-declaration-section > .header > .icon):
(body[dir=rtl] .style-declaration-section > .header > .icon):
(.style-declaration-section > .header > textarea):
(body[dir=ltr] .style-declaration-section > .header > textarea):
(body[dir=rtl] .style-declaration-section > .header > textarea):
(.style-declaration-section.invalid-selector > .header > .icon):

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
(body[dir=ltr] .sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
(body[dir=rtl] .sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
(body[dir=ltr] .sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
(body[dir=rtl] .sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
(.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input):
(body[dir=ltr] .sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input):
(body[dir=rtl] .sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input):

  • UserInterface/Views/Variables.css:

(:root):

12:05 AM Changeset in webkit [212998] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: disclosure triangles in details section headers should be flipped and aligned right
https://bugs.webkit.org/show_bug.cgi?id=168283

Patch by Devin Rousso <Devin Rousso> on 2017-02-25
Reviewed by Brian Burg.

  • UserInterface/Views/DetailsSection.css:

(.details-section):
(.details-section > .header):
(body[dir=ltr] .details-section > .header):
(body[dir=rtl] .details-section > .header):
(.details-section > .header > .options > .navigation-bar):
(body[dir=ltr] .details-section > .header > :matches(label, .node-link, .go-to-arrow, .options > .navigation-bar), body[dir=rtl] .details-section > .header::before):
(body[dir=ltr] .details-section > .header::before, body[dir=rtl] .details-section > .header > :matches(label, .node-link, .go-to-arrow, .options > .navigation-bar)):
(.details-section > .header::before):
(body[dir=rtl] .details-section > .header::before):
(.details-section > .header > label):
(.details-section > .header > label > input[type="checkbox"]):
(body[dir=ltr] .details-section > .header > label > input[type="checkbox"]):
(body[dir=rtl] .details-section > .header > label > input[type="checkbox"]):
(.details-section > .header .go-to-arrow):
(body[dir=ltr] .details-section > .header .go-to-arrow):
(body[dir=rtl] .details-section > .header .go-to-arrow):
(.details-section > .content > .group > .row.simple > .label):
(body[dir=ltr] .details-section > .content > .group > .row.simple > .label):
(body[dir=rtl] .details-section > .content > .group > .row.simple > .label):
(.details-section > .content > .group > .row.simple > .value):
(body[dir=ltr] .details-section > .content > .group > .row.simple > .value):
(body[dir=rtl] .details-section > .content > .group > .row.simple > .value):
(.details-section > .content > .group > .row.simple > .value .go-to-arrow):
(body[dir=ltr] .details-section > .content > .group > .row.simple > .value .go-to-arrow):
(body[dir=rtl] .details-section > .content > .group > .row.simple > .value .go-to-arrow):
(.details-section > .header > :matches(.node-link, .go-to-arrow)): Deleted.

12:02 AM Changeset in webkit [212997] by rniwa@webkit.org
  • 7 edits in trunk/Websites/perf.webkit.org

REGRESSION(r212853): Comparisons to baseline no longer shows up
https://bugs.webkit.org/show_bug.cgi?id=168863

Reviewed by Joseph Pecoraro.

The bug was caused by ChartStatusView's code not being updated to use TimeSeriesView's.
Updated the code to use TimeSeriesView's methods to fix the bug.

Also made InteractiveTimeSeriesChart's currentPoint to return a (TimeSeriesView, point, isLocked) tuple
to consolidate it with lockedIndicator() to work towards making the baseline data points selectable.

  • browser-tests/time-series-chart-tests.js: Updated the test cases to use currentIndicator, and added

test cases for newly added lastPointInTimeRange.

  • public/v3/components/chart-pane.js:

(ChartPane.prototype.serializeState): Updated to use currentIndicator.
(ChartPane.prototype._renderFilteringPopover): Ditto.

  • public/v3/components/chart-status-view.js:

(ChartStatusView.prototype.updateStatusIfNeeded): Use currentIndicator for an interative time series.
Fixed the non-interactive chart's code path for TimeSeriesView.
(ChartStatusView.prototype._computeChartStatus): Modernized the code.
(ChartStatusView.prototype._findLastPointPriorToTime): Deleted. Replaced by TimeSeriesView's
lastPointInTimeRange.

  • public/v3/components/interactive-time-series-chart.js:

(InteractiveTimeSeriesChart.prototype.currentIndicator):
(InteractiveTimeSeriesChart.prototype.moveLockedIndicatorWithNotification):
(InteractiveTimeSeriesChart.prototype._renderChartContent):
(InteractiveTimeSeriesChart):

  • public/v3/models/time-series.js:

(TimeSeriesView.prototype.lastPointInTimeRange): Added.
(TimeSeriesView.prototype._reverse): Added. Traverses the view in the reverse order.

  • unit-tests/time-series-tests.js:

Feb 24, 2017:

11:53 PM Changeset in webkit [212996] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: add support for Error page
https://bugs.webkit.org/show_bug.cgi?id=168855

Patch by Devin Rousso <Devin Rousso> on 2017-02-24
Reviewed by Brian Burg.

  • UserInterface/Debug/UncaughtExceptionReporter.css:

(.uncaught-exception-sheet):
(body[dir=ltr] .uncaught-exception-sheet):
(body[dir=rtl] .uncaught-exception-sheet):
(.uncaught-exception-sheet h1 > img):
(body[dir=ltr] .uncaught-exception-sheet h1 > img):
(body[dir=rtl] .uncaught-exception-sheet h1 > img):
(.uncaught-exception-sheet h2 > img):
(body[dir=ltr] .uncaught-exception-sheet h2 > img):
(body[dir=rtl] .uncaught-exception-sheet h2 > img):
(.uncaught-exception-sheet dd):
(body[dir=ltr] .uncaught-exception-sheet dd):
(body[dir=rtl] .uncaught-exception-sheet dd):
(.uncaught-exception-sheet ul):
(body[dir=ltr] .uncaught-exception-sheet ul):
(body[dir=rtl] .uncaught-exception-sheet ul):

11:50 PM Changeset in webkit [212995] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: Unknown angle units "undefined"
https://bugs.webkit.org/show_bug.cgi?id=168851

Patch by Devin Rousso <Devin Rousso> on 2017-02-24
Reviewed by Brian Burg.

  • UserInterface/Views/GradientEditor.js:

(WebInspector.GradientEditor.prototype._gradientTypeChanged):

11:50 PM Changeset in webkit [212994] by Joseph Pecoraro
  • 9 edits in trunk

[Resource Timing] Media elements initiated loads should set the initiatorType to their element name (video/audio)
https://bugs.webkit.org/show_bug.cgi?id=168680

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/resource-timing/rt-initiatorType-media-expected.txt:

Progression on the initiatorType.

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader):
Pass in the element so it may be used as the initiator.

  • html/HTMLVideoElement.h:

Export create() for TestWebKitAPI to use.

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::MediaResourceLoader):
(WebCore::MediaResourceLoader::contextDestroyed):
(WebCore::MediaResourceLoader::requestResource):

  • loader/MediaResourceLoader.h:

Include the HTMLMediaElement as the initiator.

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm:

(TestWebKitAPI::WebCoreNSURLSessionTest::SetUp):
Include a dummy HTMLVideoElement.

9:48 PM Changeset in webkit [212993] by Joseph Pecoraro
  • 97 edits
    2 moves
    13 adds in trunk

[Resource Timing] Gather timing information with reliable responseEnd time
https://bugs.webkit.org/show_bug.cgi?id=168351

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt:

New behavior for too many redirects caused by <rdar://problem/30610988>.

  • web-platform-tests/resource-timing/rt-nextHopProtocol-expected.txt: Added.
  • web-platform-tests/resource-timing/rt-nextHopProtocol.html: Added.
  • web-platform-tests/resource-timing/rt-nextHopProtocol.js: Added.
  • web-platform-tests/resource-timing/rt-nextHopProtocol.worker-expected.txt: Added.
  • web-platform-tests/resource-timing/rt-nextHopProtocol.worker.html: Added.
  • web-platform-tests/resource-timing/rt-nextHopProtocol.worker.js: Added.

New tests specific to just checking the nextHopProtocol property with
a non-cached resource to avoid flakeyness.

Source/WebCore:

This patch replaces the unused double finishTime in ResourceLoader's
didFinishLoad with a complete WebCore::NetworkLoadMetrics object. This
allows the NetworkProcess to give complete timing information, and more
final metrics about the load, to WebCore. Currently this is only used
by ResourceTiming, but it will soon be used by Web Inspector as well.
We may also end up extending this to the didFail path as well, since it
is possible that we have some metrics for load failures.

At the same time we want to start moving away from the legacy path that
populated a subset of this information in ResourceResponse's NetworkLoadMetrics.
It doesn't make sense to store this information on the ResourceResponse
for a few reasons: We don't want to store the metrics in our Network Cache and
not all of the load timing metrics have been populated yet (responseEnd).
In an effort to move off of this data we've renamed the accessor to
"deprecatedNetworkLoadMetrics". There are a few remaining clients
(ResourceHandle, PerformanceTiming, InspectorNetworkAgent) which can be
migrated separately from this patch.

Having both the legacy and new code paths adds a little bit of complexity.
One advantage of the new path is that the complete load timing data
(fetchStart -> dns -> connect -> request -> response -> responseEnd) can
be packaged together. The legacy path could not include a responseEnd, so
WebCore faked that value with its own timestamp. Having the fake responseEnd
caused issues as timestamps / clocks are different between processes. In order
for PerformanceResponseTiming to know whether or not the NetworkLoadMetrics
has the complete network timing metrics it checks isComplete(). If true
it knows it can use the responseEnd time from NetworkLoadMetrics, otherwise
it must fallback to the legacy value from LoadTiming. Once all of the
deprecatedNetworkLoadMetrics clients go away, we should always have the
complete data and this can be eliminated.

Tests: imported/w3c/web-platform-tests/resource-timing/rt-nextHopProtocol.html

imported/w3c/web-platform-tests/resource-timing/rt-nextHopProtocol.worker.html

  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Rename NetworkLoadTiming -> NetworkLoadMetrics.

  • page/PerformanceResourceTiming.cpp:

(WebCore::entryStartTime):
(WebCore::entryEndTime):
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::nextHopProtocol):
(WebCore::PerformanceResourceTiming::domainLookupStart):
(WebCore::PerformanceResourceTiming::domainLookupEnd):
(WebCore::PerformanceResourceTiming::connectStart):
(WebCore::PerformanceResourceTiming::connectEnd):
(WebCore::PerformanceResourceTiming::secureConnectionStart):
(WebCore::PerformanceResourceTiming::requestStart):
(WebCore::PerformanceResourceTiming::responseStart):
(WebCore::PerformanceResourceTiming::responseEnd):
(WebCore::PerformanceResourceTiming::networkLoadTimeToDOMHighResTimeStamp):

  • page/PerformanceResourceTiming.h:

Mostly just updating names and types. This does however need to get the
correct endTime based on whether the NetworkLoadMetrics are complete
(meaning includes responseEnd) or not (legacy, use LoadTiming value).

  • page/PerformanceResourceTiming.idl:

Add nextHopProtocol.

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::domainLookupStart):
(WebCore::PerformanceTiming::domainLookupEnd):
(WebCore::PerformanceTiming::connectStart):
(WebCore::PerformanceTiming::connectEnd):
(WebCore::PerformanceTiming::secureConnectionStart):
(WebCore::PerformanceTiming::requestStart):
(WebCore::PerformanceTiming::responseStart):
(WebCore::PerformanceTiming::resourceLoadTimeRelativeToFetchStart):

  • page/PerformanceTiming.h:

Navigation Timing values still uses the NetworkLoadTiming values stored on
the DocumentLoader. This should be moved off of the deprecated path separately.

  • platform/network/NetworkLoadMetrics.h: Renamed from Source/WebCore/platform/network/NetworkLoadTiming.h.

(WebCore::NetworkLoadMetrics::NetworkLoadMetrics):
(WebCore::NetworkLoadMetrics::isolatedCopy):
(WebCore::NetworkLoadMetrics::reset):
(WebCore::NetworkLoadMetrics::operator==):
(WebCore::NetworkLoadMetrics::operator!=):
(WebCore::NetworkLoadMetrics::isComplete):
(WebCore::NetworkLoadMetrics::markComplete):
(WebCore::NetworkLoadMetrics::encode):
(WebCore::NetworkLoadMetrics::decode):
Re-introduce a reset() method (for NetworkLoadSoup to reset between redirects).
Add protocolName and "complete" boolean.

  • platform/network/cocoa/NetworkLoadMetrics.mm: Renamed from Source/WebCore/platform/network/cocoa/NetworkLoadTiming.mm.

(WebCore::timingValue):
(WebCore::copyTimingData):
(WebCore::setCollectsTimingData):
Use this opportunity to convert NetworkLoadTiming timestamps to WTF::Seconds.
Since we already have to modify all the clients this moves us to use the more
strongly typed units that are less ambiguous then "double". The rest of the
Performance API has already moved to these units.

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
(WebCore::InspectorNetworkAgent::didFinishLoading):

  • inspector/InspectorNetworkAgent.h:

Inspector was the only client of the finishTime, and since the value was
erratically coming from clients in different ways it was almost certainly
inaccurate. Simplify this in preparation for using NetworkLoadMetrics.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::didFinishLoading):

  • Modules/fetch/FetchLoader.h:
  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::didFinishLoading):

  • fileapi/FileReaderLoader.h:
  • html/MediaFragmentURIParser.cpp:

(WebCore::MediaFragmentURIParser::parseNPTTime):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didFinishLoadingImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didFinishLoading):

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::validatePreflightResponse):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::notifyFinished):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::maybeLoadEmpty):

  • loader/DocumentLoader.h:
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::notifyFinished):
(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/DocumentThreadableLoader.h:
  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::didFinishLoading):

  • loader/NetscapePlugInStreamLoader.h:
  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::didFinishLoad):
(WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
(WebCore::ResourceLoadNotifier::sendRemainingDelegateMessages):

  • loader/ResourceLoadNotifier.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::deliverResponseAndData):
(WebCore::ResourceLoader::loadDataURL):
(WebCore::ResourceLoader::didFinishLoading):
(WebCore::ResourceLoader::didFinishLoadingOnePart):

  • loader/ResourceLoader.h:
  • loader/ResourceTiming.cpp:

(WebCore::ResourceTiming::fromLoad):
(WebCore::ResourceTiming::fromSynchronousLoad):
(WebCore::ResourceTiming::ResourceTiming):
(WebCore::ResourceTiming::isolatedCopy):

  • loader/ResourceTiming.h:

(WebCore::ResourceTiming::networkLoadMetrics):
(WebCore::ResourceTiming::ResourceTiming):
(WebCore::ResourceTiming::networkLoadTiming): Deleted.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::willSendRequestInternal):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::didFinishLoading):
(WebCore::SubresourceLoader::reportResourceTiming):

  • loader/SubresourceLoader.h:
  • loader/ThreadableLoaderClient.h:

(WebCore::ThreadableLoaderClient::didFinishLoading):

  • loader/ThreadableLoaderClientWrapper.h:

(WebCore::ThreadableLoaderClientWrapper::didFinishLoading):

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):

  • loader/WorkerThreadableLoader.h:
  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::didFinishLoading):

  • loader/appcache/ApplicationCacheGroup.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::setLoadFinishTime):

  • loader/ios/QuickLook.mm:

(-[WebPreviewLoader connectionDidFinishLoading:]):

  • page/EventSource.cpp:

(WebCore::EventSource::didFinishLoading):

  • page/EventSource.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(ResourceHandleStreamingClient::didFinishLoading):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::doNotifyFinish):

  • platform/network/PingHandle.h:
  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleClient.h:

(WebCore::ResourceHandleClient::didFinishLoading):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::crossThreadData):
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::compare):

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::deprecatedNetworkLoadMetrics):
(WebCore::ResourceResponseBase::encode):
(WebCore::ResourceResponseBase::decode):
(WebCore::ResourceResponseBase::networkLoadTiming): Deleted.

  • platform/network/SynchronousLoaderClient.cpp:

(WebCore::SynchronousLoaderClient::didFinishLoading):

  • platform/network/SynchronousLoaderClient.h:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didFinishLoading):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::WebCoreSynchronousLoader::didFinishLoading):

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::calculateWebTimingInformations):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::handleDataURL):
(WebCore::milisecondsSinceRequest): Deleted.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::getConnectionTimingData):

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
(-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connectionDidFinishLoading:]):

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::restartedCallback):
(WebCore::nextMultipartResponsePartCallback):
(WebCore::sendRequestCallback):
(WebCore::ResourceHandle::didStartRequest):
(WebCore::networkEventCallback):
(WebCore::ResourceHandle::sendPendingRequest):
(WebCore::readCallback):
(WebCore::milisecondsSinceRequest): Deleted.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::didFinishLoading):

  • workers/WorkerScriptLoader.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::didFinishLoading):

  • xml/XMLHttpRequest.h:

Eliminate the unused finishTime double.

Source/WebKit2:

Change from an unused double finishTime to a complete WebCore::NetworkLoadMetrics
object in the didFinishLoad ResourceLoader path. We may also extend this in the
didFail path later on. This allows the NetworkProcess to give complete timing
information, and more final metrics about the load, to WebCore.

  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTaskClient::didCompleteWithError):
Give the NetworkDataTaskClient a basic didCompleteWithError for a completion
without metrics. For loads that complete with an error, or haven't populated
any metrics, this will pass empty metrics onward.

  • NetworkProcess/Downloads/BlobDownloadClient.cpp:

(WebKit::BlobDownloadClient::didFinishLoading):

  • NetworkProcess/Downloads/BlobDownloadClient.h:
  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/PingLoad.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::didFail):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueWillSendRequest):
(WebKit::NetworkLoad::didCompleteWithError):
(WebKit::NetworkLoad::didFinishLoading):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::sendResultForCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didFinishResourceLoad):
(WebKit::WebResourceLoader::didReceiveResource):

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

Change didFinishLoad paths to take a NetworkLoadMetrics object instead of finishTime.
Change didCompleteWithError pathes to include a NetworkLoadMetrics object instead of finishTime.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::didCompleteWithError):
Own a NetworkLoadTiming that will be populated with the load.

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

(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
Populate NetworkLoadMetrics in the didFinishCollectingMetrics NSURLSessionTaskDelegate method.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup):
(WebKit::NetworkDataTaskSoup::timeoutFired):
(WebKit::NetworkDataTaskSoup::didSendRequest):
(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
(WebKit::NetworkDataTaskSoup::dispatchDidCompleteWithError):
(WebKit::NetworkDataTaskSoup::tlsErrorsChanged):
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
(WebKit::NetworkDataTaskSoup::didFinishRead):
(WebKit::NetworkDataTaskSoup::didFinishRequestNextPart):
(WebKit::NetworkDataTaskSoup::didFailDownload):
(WebKit::NetworkDataTaskSoup::didFail):
(WebKit::NetworkDataTaskSoup::networkEvent):
(WebKit::NetworkDataTaskSoup::didStartRequest):
(WebKit::NetworkDataTaskSoup::didRestart):

  • NetworkProcess/soup/NetworkDataTaskSoup.h:

Instead of populating the NetworkLoadMetrics on the ResourceResponse, populate
a member variable during the entire load and dispatch didFinishCollectingMetrics
right before didCompleteLoadWithError.

Source/WTF:

  • wtf/persistence/Coders.h:

(WTF::Persistence::Coder<Seconds>::encode):
(WTF::Persistence::Coder<Seconds>::decode):

LayoutTests:

Now that nextHopProtocol is available on Mac mark the test as flakey
because the value can be set or not depending on whether or not the
resource was loaded from a cache.

  • platform/ios-simulator/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:

Mark nextHopProtocol tests as expected to fail on ports that do not
yet support those values. Mark redirect tests as failing on ports
that encounter the CFNetwork issue causing unexpected callbacks.

  • performance-api/resource-timing-apis-expected.txt:
  • performance-api/resources/resource-timing-api.js:

Progressions.

  • platform/mac-elcapitan/imported/w3c/web-platform-tests/resource-timing/test_resource_timing-expected.txt: Added.
  • platform/mac/imported/w3c/web-platform-tests/resource-timing/test_resource_timing-expected.txt: Added.

Expected passing values on mac, except el capitan where this new resource timing data is unavailable.

8:54 PM Changeset in webkit [212992] by keith_miller@apple.com
  • 3 edits in trunk/Source/WTF

Rubber-stamped by Chris Dumez.

Replace typename Bool with typename BoolType because X11 has
#define Bool int for some unknown reason...

  • wtf/HashFunctions.h:

(WTF::TupleHash::allTrue):

  • wtf/HashTraits.h:

(WTF::TupleHashTraits::allTrue):

8:27 PM Changeset in webkit [212991] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed GTK build fix after r212965

  • CMakeLists.txt:
8:05 PM Changeset in webkit [212990] by Wenson Hsieh
  • 4 edits in trunk/Tools

Unreviewed, temporarily disable all data interaction tests.

They will be reenabled once the bots are ready to build and run them.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
  • TestWebKitAPI/ios/DataInteractionSimulator.h:
  • TestWebKitAPI/ios/DataInteractionSimulator.mm:
7:34 PM Changeset in webkit [212989] by Chris Dumez
  • 96 edits
    2 moves
    8 deletes in trunk

Unreviewed, rolling out r212944.

Caused a lot of failures on the debug bots

Reverted changeset:

"[Resource Timing] Gather timing information with reliable
responseEnd time"
https://bugs.webkit.org/show_bug.cgi?id=168351
http://trac.webkit.org/changeset/212944

7:24 PM Changeset in webkit [212988] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, fix the internal build.

  • TestWebKitAPI/ios/DataInteractionSimulator.mm:

(-[DataInteractionSimulator _advanceProgress]):

7:23 PM Changeset in webkit [212987] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, follow-up fix after r212972.

Fixes a few assertions on the debug build bots.
URL needs to be exactly the same as the parsed one given
that we are calling the ParsedURLString constructor.

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::sanitizeSuggestedFilename):

6:14 PM Changeset in webkit [212986] by Alan Bujtas
  • 7 edits
    2 adds in trunk/Source/WebCore

Simple line layout: Re-adjust paginated lines when block height changes.
https://bugs.webkit.org/show_bug.cgi?id=168838
<rdar://problem/30701233>

Reviewed by Antti Koivisto.

When the estimated block height is wrong, we issue an additional layout on the inline children
so that we get the pagination right (this layout is setChildNeedsLayout(MarkOnlyThis) only).
Since the height change only affects the struts and page breaks (and again, the relayoutChildren flag is false)
we don't need to re-layout the content, but instead we just need to re-adjust the pagination for the simple lines.
This patch also moves the pagination logic to SimpleLineLayoutPagination.cpp.

Not enabled yet.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutSimpleLines):

  • rendering/RenderingAllInOne.cpp:
  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForWithReason):
(WebCore::SimpleLineLayout::create):
(WebCore::SimpleLineLayout::Layout::create):
(WebCore::SimpleLineLayout::Layout::Layout):
(WebCore::SimpleLineLayout::computeLineTopAndBottomWithOverflow): Deleted.
(WebCore::SimpleLineLayout::computeLineBreakIndex): Deleted.
(WebCore::SimpleLineLayout::computeOffsetAfterLineBreak): Deleted.
(WebCore::SimpleLineLayout::setPageBreakForLine): Deleted.
(WebCore::SimpleLineLayout::updateMinimumPageHeight): Deleted.
(WebCore::SimpleLineLayout::adjustLinePositionsForPagination): Deleted.

  • rendering/SimpleLineLayout.h:

(WebCore::SimpleLineLayout::Layout::setIsPaginated):
(WebCore::SimpleLineLayout::Layout::setLineStruts):

  • rendering/SimpleLineLayoutPagination.cpp: Added.

(WebCore::SimpleLineLayout::computeLineTopAndBottomWithOverflow):
(WebCore::SimpleLineLayout::computeLineBreakIndex):
(WebCore::SimpleLineLayout::computeOffsetAfterLineBreak):
(WebCore::SimpleLineLayout::setPageBreakForLine):
(WebCore::SimpleLineLayout::updateMinimumPageHeight):
(WebCore::SimpleLineLayout::adjustLinePositionsForPagination):

  • rendering/SimpleLineLayoutPagination.h: Added.
6:07 PM Changeset in webkit [212985] by jonlee@apple.com
  • 44 edits in trunk

Alias "system-ui" for the System font name
https://bugs.webkit.org/show_bug.cgi?id=151493

Reviewed by Tim Horton and Joseph Pecoraro.

Source/WebCore:

Updated existing tests.

  • WebCore.xcodeproj/project.pbxproj: Add WebKitFontFamilyNames.in for

convenience.

  • css/CSSValueKeywords.in: Add system-ui as a keyword.
  • css/WebKitFontFamilyNames.in: Add system-ui.
  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::platformFontWithFamilySpecialCase): Include "system-ui" as an
alias.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::platformFontWithFamilySpecialCase): Ditto.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::updateCachedSystemFontDescription): Update
serialization to "system-ui" from "-apple-system".

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::identifierForFamily):

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::familyNameFromPrimitive):

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueFontFamily):

Source/WebInspectorUI:

  • UserInterface/Models/CSSKeywordCompletions.js: Ditto.

LayoutTests:

Add "system-ui" to the test.

  • fast/css/font-family-builtins.html:
  • fast/css/font-family-builtins-expected.txt:
  • fast/text/system-font-features.html:
  • fast/text/system-font-features-expected.html:
  • fast/text/system-font-legacy-name.html:
  • fast/text/system-font-legacy-name-expected.txt:
  • platform/ios-simulator/ios/fast/text/opticalFont.html:
  • platform/ios-simulator/ios/fast/text/opticalFont-expected.txt:
  • platform/ios-simulator/ios/fast/text/opticalFontWithTextStyle-expected.txt:

Unskip opticalFont* tests.

  • platform/ios-simulator/TestExpectations:

Update tests to use "system-ui" instead of "-apple-system" or the even
older "-apple-system-font".

  • fast/css/multiple-tabs-expected.html:
  • fast/css/multiple-tabs.html:
  • fast/text/international/system-language/han-quotes-expected-mismatch.html:
  • fast/text/international/system-language/han-quotes.html:
  • fast/text/international/system-language/hindi-system-font-punctuation-expected.html:
  • fast/text/international/system-language/hindi-system-font-punctuation.html:
  • fast/text/letterpress-different-expected-mismatch.html:
  • fast/text/letterpress-different.html:
  • fast/text/letterpress-paint.html:
  • fast/text/system-font-weight-italic.html:
  • fast/text/system-font-weight.html:
  • fast/text/text-node-remains-dirty-after-calling-surroundContents-expected.html:
  • fast/text/text-node-remains-dirty-after-calling-surroundContents.html:
  • fast/text/trak-optimizeLegibility.html:
  • fast/text/weighted-italicized-system-font-expected.html:
  • fast/text/weighted-italicized-system-font.html:
  • platform/ios-simulator/ios/fast/text/apple-logo.html:
  • platform/ios-simulator/ios/fast/text/opticalFontWithWeight-expected.txt:
  • platform/ios-simulator/ios/fast/text/opticalFontWithWeight.html:
  • platform/ios-simulator/ios/fast/text/underline-scaling.html:
  • platform/mac/fast/css/css2-system-fonts-expected.txt:
6:07 PM Changeset in webkit [212984] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit2

Unreviewed, fix the internal build

  • UIProcess/ios/WKContentViewInteraction.h:
6:02 PM Changeset in webkit [212983] by jfbastien@apple.com
  • 14 edits in trunk

WebAssembly: miscellaneous spec fixes
https://bugs.webkit.org/show_bug.cgi?id=168822

Reviewed by Saam Barati.

JSTests:

  • wasm.yaml: mark some skip tests as normal, now that they pass
  • wasm/Builder.js: error message was wrong, causing extra error if hit
  • wasm/js-api/global-error.js: new tests

(assert.throws):

  • wasm/spec-tests/call.wast.js: comment out stack check tests
  • wasm/spec-tests/call_indirect.wast.js: comment out stack check tests
  • wasm/spec-tests/fac.wast.js: comment out stack check tests
  • wasm/spec-tests/float_exprs.wast.js: wabt is wrong, bug reported, we should update
  • wasm/spec-tests/imports.wast.js: bug in old wabt, fixed in recent wabt

(assert_unlinkable):

Source/JavaScriptCore:

  • wasm/WasmModuleParser.cpp: "unknown" sections are now called "custom" sections
  • wasm/WasmSections.h:

(JSC::Wasm::validateOrder):
(JSC::Wasm::makeString): fix ASSERT_UNREACHABLE bug in printing

  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::constructJSWebAssemblyInstance): disallow i64 import

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link): disallow i64 export
(JSC::WebAssemblyModuleRecord::evaluate):

5:17 PM Changeset in webkit [212982] by mrajca@apple.com
  • 15 edits
    1 add in trunk

Media: notify clients when autoplay is denied
https://bugs.webkit.org/show_bug.cgi?id=168840

Reviewed by Alex Christensen.

Source/WebCore:

Added API tests.

  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::playInternal):

  • page/AutoplayEvent.h: Added.
  • page/ChromeClient.h:

Source/WebKit2:

  • UIProcess/API/APIUIClient.h:

(API::UIClient::handleAutoplayEvent):
(API::UIClient::didPlayMediaPreventedFromPlayingWithoutUserGesture): Deleted.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleAutoplayEvent):
(WebKit::WebPageProxy::didPlayMediaPreventedFromPlayingWithoutUserGesture): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::handleAutoplayEvent):
(WebKit::WebChromeClient::didPlayMediaPreventedFromPlayingWithoutUserGesture): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm:

(handleAutoplayEvent):
(runUntilReceivesAutoplayEvent):
(TEST): Added.

5:08 PM Changeset in webkit [212981] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

curl: Improve errors by including the domain
https://bugs.webkit.org/show_bug.cgi?id=134340

Patch by Basuke Suzuki <Basuke.Suzuki@am.sony.com> on 2017-02-24
Reviewed by Alex Christensen.

Added proper error domain to ResourceError created by
Curl problem.

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::dispatchSynchronousJob):

5:03 PM Changeset in webkit [212980] by commit-queue@webkit.org
  • 8 edits
    2 copies in trunk

[Modern Media Controls] <audio> controls should center in their container when the page is scaled
https://bugs.webkit.org/show_bug.cgi?id=168841
<rdar://problem/28612794>

Patch by Antoine Quint <Antoine Quint> on 2017-02-24
Reviewed by Eric Carlson.

Source/WebCore:

When dealing with <audio> elements, we vertically center the controls relative to their containing
media element such that if the controls visually overflow, they overflow equally above and below
to minimize the likelihood of overlap with surrounding elements.

Test: media/modern-media-controls/media-controller/media-controller-scale-factor-audio.html

  • Modules/modern-media-controls/controls/media-controls.js:

(MediaControls.prototype.get shouldCenterControlsVertically):
(MediaControls.prototype.set shouldCenterControlsVertically):
(MediaControls.prototype.commitProperty):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype.get isAudio):
(MediaController.prototype.get layoutTraits):
(MediaController.prototype._updateControlsSize):

LayoutTests:

Adding test coverage for the "top" property set on the media controls to achieve vertical centering,
and creating a new test that checks the behavior for an <audio> element on iOS.

  • TestExpectations:
  • media/modern-media-controls/media-controller/media-controller-scale-factor-audio-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-scale-factor-audio.html: Added.
  • media/modern-media-controls/media-controller/media-controller-scale-factor-expected.txt:
  • media/modern-media-controls/media-controller/media-controller-scale-factor.html:
  • platform/ios-simulator/TestExpectations:
4:47 PM Changeset in webkit [212979] by jmarcell@apple.com
  • 1 copy in tags/Safari-603.1.30.1.30

Tag Safari-603.1.30.1.30.

4:46 PM Changeset in webkit [212978] by jmarcell@apple.com
  • 1 copy in tags/Safari-603.1.30.0.30

Tag Safari-603.1.30.0.30.

4:36 PM Changeset in webkit [212977] by achristensen@apple.com
  • 6 edits in trunk

Non-special relative URLs should not ignore extra slashes
https://bugs.webkit.org/show_bug.cgi?id=168834

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/url-constructor-expected.txt:

Source/WebCore:

Special authority ignore slashes state should, as its name implies,
only be reached by special URLs. See https://url.spec.whatwg.org/#relative-slash-state

Covered by newly passing web platform tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):

4:20 PM Changeset in webkit [212976] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix for newer clang
https://bugs.webkit.org/show_bug.cgi?id=168849
rdar://problem/30638741

Reviewed by Ryosuke Niwa.

  • dom/Range.cpp: (WebCore::Range::toString): std::max(0, <unsigned>) is not meaningful,

and now triggers a warning.

4:17 PM Changeset in webkit [212975] by mrajca@apple.com
  • 2 edits in trunk/Tools

API test WebKit2.WebsitePoliciesPlayAfterPreventedAutoplay is timing out
https://bugs.webkit.org/show_bug.cgi?id=167466

Reviewed by Alex Christensen.

  • TestWebKitAPI/Tests/WebKit2Cocoa/WebsitePolicies.mm:

(TEST): Use the correct API version.

4:05 PM Changeset in webkit [212974] by Wenson Hsieh
  • 11 edits in trunk

Refactor data interaction to use new WKDataInteraction SPI
https://bugs.webkit.org/show_bug.cgi?id=168602
Work towards <rdar://problem/30313681>

Reviewed by Tim Horton.

Source/WebKit2:

Adjust testing SPI to match new data interaction interfaces.

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

(-[WKWebView _simulateDataInteractionEntered:]):
(-[WKWebView _simulateDataInteractionUpdated:]):
(-[WKWebView _simulateDataInteractionPerformOperation:]):
(-[WKWebView _simulateDataInteractionEnded:]):
(-[WKWebView _simulateDataInteractionSessionDidEnd:]):
(-[WKWebView _simulateWillBeginDataInteractionWithSession:]):
(-[WKWebView _simulatedItemsForSession:]):
(-[WKWebView _simulatePrepareForDataInteractionSession:completion:]):
(-[WKWebView _simulateDataInteractionSessionDidEnd:withOperation:]): Deleted.
(-[WKWebView _simulateFailedDataInteractionWithIndex:]): Deleted.
(-[WKWebView _simulateWillBeginDataInteractionWithIndex:withSession:]): Deleted.
(-[WKWebView _simulatedItemsForDataInteractionWithIndex:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _positionInformationDidChange:]):

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

Tools:

Update DataInteractionSimulator to simulate data interaction using updated SPI. See changes in WebKit2 for more details.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/DataInteractionSimulator.h:
  • TestWebKitAPI/ios/DataInteractionSimulator.mm:

(-[DataInteractionSimulator _resetSimulatedState]):
(-[DataInteractionSimulator runFrom:to:]):
(-[DataInteractionSimulator _advanceProgress]):
(-[DataInteractionSimulator _currentLocation]):
(-[DataInteractionSimulator _finishDataInteraction]): Deleted.
(-[DataInteractionSimulator webViewDidSendDataInteractionStartRequest:]): Deleted.
(-[DataInteractionSimulator webView:didReceiveDataInteractionStartResponse:]): Deleted.

4:05 PM Changeset in webkit [212973] by Wenson Hsieh
  • 8 edits in trunk

Remove the data interaction gesture recognizer
https://bugs.webkit.org/show_bug.cgi?id=168600
<rdar://problem/30313681>

Reviewed by Anders Carlsson.

Source/WebKit2:

The data interaction gesture recognizer will no longer be needed moving forward.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _simulateDataInteractionGestureRecognized]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView _dataInteractionGestureRecognizer]): Deleted.

Tools:

Adjust TestWebKitAPI for changes in WebKit2.

  • TestWebKitAPI/ios/DataInteractionSimulator.h:
  • TestWebKitAPI/ios/DataInteractionSimulator.mm:

(-[DataInteractionSimulator initWithWebView:]):
(-[DataInteractionSimulator runFrom:to:]):
(-[DataInteractionSimulator _advanceProgress]):
(-[DataInteractionSimulator _finishDataInteraction]):
(-[MockLongPressGestureRecognizer initWithWindow:]): Deleted.
(-[MockLongPressGestureRecognizer locationInView:]): Deleted.
(-[MockLongPressGestureRecognizer state]): Deleted.
(-[MockLongPressGestureRecognizer numberOfTouches]): Deleted.
(-[DataInteractionSimulator _recognizeGestureAtLocation:withState:]): Deleted.
(-[DataInteractionSimulator dataInteractionGestureRecognizer]): Deleted.
(-[DataInteractionSimulator webView:beginDataInteractionWithSourceIndex:gestureRecognizer:]): Deleted.

4:02 PM Changeset in webkit [212972] by Chris Dumez
  • 9 edits
    6 adds in trunk

Download attribute should be sanitized before being used as suggested filename
https://bugs.webkit.org/show_bug.cgi?id=168839
<rdar://problem/30683109>

Reviewed by Darin Adler.

Source/WebCore:

Sanitize Download attribute before using it as a suggested filename for the download.
We rely on ResourceResponse's sanitizing of the suggested filename to do so, which has
the benefit of being consistent with downloads without the download attribute.

Tests: fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-doublequote.html

fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-slashes.html
fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-unicode.html

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::sanitizeSuggestedFilename):

  • platform/network/ResourceResponseBase.h:

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-doublequote-expected.txt: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-doublequote.html: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-slashes-expected.txt: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-slashes.html: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-unicode-expected.txt: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-unicode.html: Added.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
3:16 PM Changeset in webkit [212971] by achristensen@apple.com
  • 1 edit
    1 delete in trunk/Source/ThirdParty/libwebrtc

Remove unneeded protobuf tests directory.

Rubber-stamped by Joe Pecoraro.

This directory contained a swift file that was causing problems in an internal verification step.

  • Source/third_party/protobuf/objectivec/Tests: Removed.

(And everything in this subdirectory)

2:50 PM Changeset in webkit [212970] by fpizlo@apple.com
  • 48 edits
    4 adds in trunk/Source/JavaScriptCore

Move Arg::Type and Arg::Width out into the B3 namespace, since they are general concepts
https://bugs.webkit.org/show_bug.cgi?id=168833

Reviewed by Saam Barati.

I want to use the Air::Arg::Type and Air::Arg::Width concepts in B3. We are already
doing this a bit, and it's akward because of the namespacing. Throughout B3 we take the
approach that if something is not specific to Air, then it should be in the B3
namespace.

This moves Air::Arg::Type to B3::Bank. This moves Air::Arg::Width to B3::Width.

I renamed Arg::Type to Bank because there is already a B3::Type and because Arg::Type
was never really a type. Its purpose was always to identify register banks, and we use
this enum when the thing we care about is whether the value is most appropriate for
GPRs or FPRs.

I kept both as non-enum classes because I think that we've learned that terse compiler
code is a good thing. I don't want to say Bank::GP when I can say GP. With Width, the
argument is even stronger, since you cannot say Width::8 but you can say Width8.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3Bank.cpp: Added.

(WTF::printInternal):

  • b3/B3Bank.h: Added.

(JSC::B3::forEachBank):
(JSC::B3::bankForType):

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::forEachArg):

  • b3/B3LegalizeMemoryOffsets.cpp:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::run):
(JSC::B3::Air::LowerToAir::tmp):
(JSC::B3::Air::LowerToAir::scaleForShl):
(JSC::B3::Air::LowerToAir::effectiveAddr):
(JSC::B3::Air::LowerToAir::addr):
(JSC::B3::Air::LowerToAir::createGenericCompare):
(JSC::B3::Air::LowerToAir::createBranch):
(JSC::B3::Air::LowerToAir::createCompare):
(JSC::B3::Air::LowerToAir::createSelect):
(JSC::B3::Air::LowerToAir::lower):

  • b3/B3MemoryValue.cpp:

(JSC::B3::MemoryValue::accessWidth):

  • b3/B3MemoryValue.h:
  • b3/B3MoveConstants.cpp:
  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::forEachArg):

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::forEachArgImpl):

  • b3/B3Value.h:
  • b3/B3Variable.h:

(JSC::B3::Variable::width):
(JSC::B3::Variable::bank):

  • b3/B3WasmAddressValue.h:
  • b3/B3Width.cpp: Added.

(WTF::printInternal):

  • b3/B3Width.h: Added.

(JSC::B3::pointerWidth):
(JSC::B3::widthForType):
(JSC::B3::conservativeWidth):
(JSC::B3::minimumWidth):
(JSC::B3::bytes):
(JSC::B3::widthForBytes):

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
  • b3/air/AirAllocateStack.cpp:

(JSC::B3::Air::allocateStack):

  • b3/air/AirArg.cpp:

(JSC::B3::Air::Arg::canRepresent):
(JSC::B3::Air::Arg::isCompatibleBank):
(JSC::B3::Air::Arg::isCompatibleType): Deleted.

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::hasBank):
(JSC::B3::Air::Arg::bank):
(JSC::B3::Air::Arg::isBank):
(JSC::B3::Air::Arg::forEachTmp):
(JSC::B3::Air::Arg::forEachType): Deleted.
(JSC::B3::Air::Arg::pointerWidth): Deleted.
(JSC::B3::Air::Arg::typeForB3Type): Deleted.
(JSC::B3::Air::Arg::widthForB3Type): Deleted.
(JSC::B3::Air::Arg::conservativeWidth): Deleted.
(JSC::B3::Air::Arg::minimumWidth): Deleted.
(JSC::B3::Air::Arg::bytes): Deleted.
(JSC::B3::Air::Arg::widthForBytes): Deleted.
(JSC::B3::Air::Arg::hasType): Deleted.
(JSC::B3::Air::Arg::type): Deleted.
(JSC::B3::Air::Arg::isType): Deleted.

  • b3/air/AirArgInlines.h:

(JSC::B3::Air::ArgThingHelper<Tmp>::forEach):
(JSC::B3::Air::ArgThingHelper<Arg>::forEach):
(JSC::B3::Air::ArgThingHelper<Reg>::forEach):
(JSC::B3::Air::Arg::forEach):

  • b3/air/AirCCallSpecial.cpp:

(JSC::B3::Air::CCallSpecial::forEachArg):

  • b3/air/AirCCallingConvention.cpp:
  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::Code):
(JSC::B3::Air::Code::setRegsInPriorityOrder):
(JSC::B3::Air::Code::pinRegister):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::regsInPriorityOrder):
(JSC::B3::Air::Code::newTmp):
(JSC::B3::Air::Code::numTmps):
(JSC::B3::Air::Code::regsInPriorityOrderImpl):

  • b3/air/AirCustom.cpp:

(JSC::B3::Air::PatchCustom::isValidForm):
(JSC::B3::Air::ShuffleCustom::isValidForm):

  • b3/air/AirCustom.h:

(JSC::B3::Air::PatchCustom::forEachArg):
(JSC::B3::Air::CCallCustom::forEachArg):
(JSC::B3::Air::ColdCCallCustom::forEachArg):
(JSC::B3::Air::ShuffleCustom::forEachArg):
(JSC::B3::Air::WasmBoundsCheckCustom::forEachArg):

  • b3/air/AirDumpAsJS.cpp:

(JSC::B3::Air::dumpAsJS):

  • b3/air/AirEliminateDeadCode.cpp:

(JSC::B3::Air::eliminateDeadCode):

  • b3/air/AirEmitShuffle.cpp:

(JSC::B3::Air::emitShuffle):

  • b3/air/AirEmitShuffle.h:

(JSC::B3::Air::ShufflePair::ShufflePair):
(JSC::B3::Air::ShufflePair::width):

  • b3/air/AirFixObviousSpills.cpp:
  • b3/air/AirFixPartialRegisterStalls.cpp:

(JSC::B3::Air::fixPartialRegisterStalls):

  • b3/air/AirInst.cpp:

(JSC::B3::Air::Inst::hasArgEffects):

  • b3/air/AirInst.h:

(JSC::B3::Air::Inst::forEachTmp):

  • b3/air/AirInstInlines.h:

(JSC::B3::Air::Inst::forEach):
(JSC::B3::Air::Inst::forEachDef):
(JSC::B3::Air::Inst::forEachDefWithExtraClobberedRegs):

  • b3/air/AirLiveness.h:

(JSC::B3::Air::TmpLivenessAdapter::numIndices):
(JSC::B3::Air::TmpLivenessAdapter::acceptsBank):
(JSC::B3::Air::TmpLivenessAdapter::valueToIndex):
(JSC::B3::Air::TmpLivenessAdapter::indexToValue):
(JSC::B3::Air::StackSlotLivenessAdapter::acceptsBank):
(JSC::B3::Air::RegLivenessAdapter::acceptsBank):
(JSC::B3::Air::AbstractLiveness::AbstractLiveness):
(JSC::B3::Air::AbstractLiveness::LocalCalc::execute):
(JSC::B3::Air::TmpLivenessAdapter::acceptsType): Deleted.
(JSC::B3::Air::StackSlotLivenessAdapter::acceptsType): Deleted.
(JSC::B3::Air::RegLivenessAdapter::acceptsType): Deleted.

  • b3/air/AirLogRegisterPressure.cpp:

(JSC::B3::Air::logRegisterPressure):

  • b3/air/AirLowerAfterRegAlloc.cpp:

(JSC::B3::Air::lowerAfterRegAlloc):

  • b3/air/AirLowerMacros.cpp:

(JSC::B3::Air::lowerMacros):

  • b3/air/AirPadInterference.cpp:

(JSC::B3::Air::padInterference):

  • b3/air/AirReportUsedRegisters.cpp:

(JSC::B3::Air::reportUsedRegisters):

  • b3/air/AirSpillEverything.cpp:

(JSC::B3::Air::spillEverything):

  • b3/air/AirTmpInlines.h:

(JSC::B3::Air::AbsoluteTmpMapper<Arg::GP>::absoluteIndex): Deleted.
(JSC::B3::Air::AbsoluteTmpMapper<Arg::GP>::lastMachineRegisterIndex): Deleted.
(JSC::B3::Air::AbsoluteTmpMapper<Arg::GP>::tmpFromAbsoluteIndex): Deleted.
(JSC::B3::Air::AbsoluteTmpMapper<Arg::FP>::absoluteIndex): Deleted.
(JSC::B3::Air::AbsoluteTmpMapper<Arg::FP>::lastMachineRegisterIndex): Deleted.
(JSC::B3::Air::AbsoluteTmpMapper<Arg::FP>::tmpFromAbsoluteIndex): Deleted.

  • b3/air/AirTmpWidth.cpp:

(JSC::B3::Air::TmpWidth::recompute):

  • b3/air/AirTmpWidth.h:

(JSC::B3::Air::TmpWidth::width):
(JSC::B3::Air::TmpWidth::requiredWidth):
(JSC::B3::Air::TmpWidth::defWidth):
(JSC::B3::Air::TmpWidth::useWidth):
(JSC::B3::Air::TmpWidth::Widths::Widths):

  • b3/air/AirUseCounts.h:

(JSC::B3::Air::UseCounts::UseCounts):

  • b3/air/AirValidate.cpp:
  • b3/air/opcode_generator.rb:
  • b3/air/testair.cpp:

(JSC::B3::Air::compile): Deleted.
(JSC::B3::Air::invoke): Deleted.
(JSC::B3::Air::compileAndRun): Deleted.
(JSC::B3::Air::testSimple): Deleted.
(JSC::B3::Air::loadConstantImpl): Deleted.
(JSC::B3::Air::loadConstant): Deleted.
(JSC::B3::Air::loadDoubleConstant): Deleted.
(JSC::B3::Air::testShuffleSimpleSwap): Deleted.
(JSC::B3::Air::testShuffleSimpleShift): Deleted.
(JSC::B3::Air::testShuffleLongShift): Deleted.
(JSC::B3::Air::testShuffleLongShiftBackwards): Deleted.
(JSC::B3::Air::testShuffleSimpleRotate): Deleted.
(JSC::B3::Air::testShuffleSimpleBroadcast): Deleted.
(JSC::B3::Air::testShuffleBroadcastAllRegs): Deleted.
(JSC::B3::Air::testShuffleTreeShift): Deleted.
(JSC::B3::Air::testShuffleTreeShiftBackward): Deleted.
(JSC::B3::Air::testShuffleTreeShiftOtherBackward): Deleted.
(JSC::B3::Air::testShuffleMultipleShifts): Deleted.
(JSC::B3::Air::testShuffleRotateWithFringe): Deleted.
(JSC::B3::Air::testShuffleRotateWithFringeInWeirdOrder): Deleted.
(JSC::B3::Air::testShuffleRotateWithLongFringe): Deleted.
(JSC::B3::Air::testShuffleMultipleRotates): Deleted.
(JSC::B3::Air::testShuffleShiftAndRotate): Deleted.
(JSC::B3::Air::testShuffleShiftAllRegs): Deleted.
(JSC::B3::Air::testShuffleRotateAllRegs): Deleted.
(JSC::B3::Air::testShuffleSimpleSwap64): Deleted.
(JSC::B3::Air::testShuffleSimpleShift64): Deleted.
(JSC::B3::Air::testShuffleSwapMixedWidth): Deleted.
(JSC::B3::Air::testShuffleShiftMixedWidth): Deleted.
(JSC::B3::Air::testShuffleShiftMemory): Deleted.
(JSC::B3::Air::testShuffleShiftMemoryLong): Deleted.
(JSC::B3::Air::testShuffleShiftMemoryAllRegs): Deleted.
(JSC::B3::Air::testShuffleShiftMemoryAllRegs64): Deleted.
(JSC::B3::Air::combineHiLo): Deleted.
(JSC::B3::Air::testShuffleShiftMemoryAllRegsMixedWidth): Deleted.
(JSC::B3::Air::testShuffleRotateMemory): Deleted.
(JSC::B3::Air::testShuffleRotateMemory64): Deleted.
(JSC::B3::Air::testShuffleRotateMemoryMixedWidth): Deleted.
(JSC::B3::Air::testShuffleRotateMemoryAllRegs64): Deleted.
(JSC::B3::Air::testShuffleRotateMemoryAllRegsMixedWidth): Deleted.
(JSC::B3::Air::testShuffleSwapDouble): Deleted.
(JSC::B3::Air::testShuffleShiftDouble): Deleted.
(JSC::B3::Air::testX86VMULSD): Deleted.
(JSC::B3::Air::testX86VMULSDDestRex): Deleted.
(JSC::B3::Air::testX86VMULSDOp1DestRex): Deleted.
(JSC::B3::Air::testX86VMULSDOp2DestRex): Deleted.
(JSC::B3::Air::testX86VMULSDOpsDestRex): Deleted.
(JSC::B3::Air::testX86VMULSDAddr): Deleted.
(JSC::B3::Air::testX86VMULSDAddrOpRexAddr): Deleted.
(JSC::B3::Air::testX86VMULSDDestRexAddr): Deleted.
(JSC::B3::Air::testX86VMULSDRegOpDestRexAddr): Deleted.
(JSC::B3::Air::testX86VMULSDAddrOpDestRexAddr): Deleted.
(JSC::B3::Air::testX86VMULSDBaseNeedsRex): Deleted.
(JSC::B3::Air::testX86VMULSDIndexNeedsRex): Deleted.
(JSC::B3::Air::testX86VMULSDBaseIndexNeedRex): Deleted.
(JSC::B3::Air::run): Deleted.

2:14 PM Changeset in webkit [212969] by keith_miller@apple.com
  • 7 edits in trunk/Source

We should be able to use std::tuples as keys in HashMap
https://bugs.webkit.org/show_bug.cgi?id=168805

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Convert the mess of std::pairs we used as the keys in PrototypeMap
to a std::tuple. I also plan on using this for a HashMap in wasm.

(JSC::PrototypeMap::createEmptyStructure):
(JSC::PrototypeMap::clearEmptyObjectStructureForPrototype):

  • runtime/PrototypeMap.h:

Source/WTF:

This patch adds support for using std::tupeles as the key
type in HashMap. It is equivalent to doing a sequence of
std::pairs but has a nicer syntax.

  • wtf/HashFunctions.h:

(WTF::TupleHash::hash):
(WTF::TupleHash::equal):
(WTF::TupleHash::allTrue):

  • wtf/HashTraits.h:

(WTF::TupleHashTraits::allTrue):
(WTF::TupleHashTraits::emptyValue):
(WTF::TupleHashTraits::constructDeletedValue):
(WTF::TupleHashTraits::isDeletedValue):

12:44 PM Changeset in webkit [212968] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK] WebkitWebProcess crashes on exit on nvidia if threaded compositing is enabled
https://bugs.webkit.org/show_bug.cgi?id=165522

Reviewed by Carlos Garcia Campos.

Before destrying a GLContextGLX we need to set the default framebufer to avoid a bug
in some nvidia drivers. Ensure that we set the context as current before performing
that operation, and set the appropriate current context after doing so.

No new tests.

  • platform/graphics/glx/GLContextGLX.cpp:

(WebCore::GLContextGLX::~GLContextGLX):

12:09 PM Changeset in webkit [212967] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Prepare to enable WebRTC on iOS
https://bugs.webkit.org/show_bug.cgi?id=168811

Patch by Alex Christensen <achristensen@webkit.org> on 2017-02-24
Reviewed by Youenn Fablet.

  • wtf/Platform.h:
12:04 PM Changeset in webkit [212966] by Antti Koivisto
  • 1 edit
    2 deletes in trunk/LayoutTests

Remove leftover html files.

  • http/tests/cache/disk-cache/shattered-deduplication-expected.html: Removed.
  • http/tests/cache/disk-cache/shattered-deduplication.html: Removed.
11:51 AM Changeset in webkit [212965] by Chris Dumez
  • 5 edits
    3 adds in trunk/Source

[iOS][WK2] Disable network cache speculative revalidation / loading in low power mode
https://bugs.webkit.org/show_bug.cgi?id=168832
<rdar://problem/30697911>

Reviewed by Antti Koivisto.

Source/WebCore:

Add LowPowerModeNotifier class to monitor low power mode state on iOS.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/LowPowerModeNotifier.cpp: Added.

(WebCore::LowPowerModeNotifier::LowPowerModeNotifier):
(WebCore::LowPowerModeNotifier::isLowPowerModeEnabled):

  • platform/LowPowerModeNotifier.h: Added.
  • platform/ios/LowPowerModeNotifierIOS.mm: Added.

(-[WebLowPowerModeObserver initWithNotifier:]):
(-[WebLowPowerModeObserver dealloc]):
(-[WebLowPowerModeObserver _didReceiveLowPowerModeChange]):
(WebCore::LowPowerModeNotifier::LowPowerModeNotifier):
(WebCore::LowPowerModeNotifier::isLowPowerModeEnabled):
(WebCore::LowPowerModeNotifier::notifyLowPowerModeChanged):
(WebCore::notifyLowPowerModeChanged):

Source/WebKit2:

Disable network cache speculative revalidation / loading in low power mode on iOS to
save battery.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::initialize):

  • NetworkProcess/cache/NetworkCache.h:
11:41 AM Changeset in webkit [212964] by matthew_hanson@apple.com
  • 19 edits in branches/safari-603.1.30.1-branch

Roll out r212459 via r212537. rdar://problem/30699480

11:41 AM Changeset in webkit [212963] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.1-branch/Source

Versioning.

11:36 AM Changeset in webkit [212962] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Remove inaccurate copy-paste comment from r212939.

  • dfg/DFGOperations.cpp:
11:24 AM Changeset in webkit [212961] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

[Mac] Report domains using abnormally high memory usage via enhanced privacy logging
https://bugs.webkit.org/show_bug.cgi?id=168797
<rdar://problem/29964017>

Reviewed by Andreas Kling.

Report domains using abnormally high memory usage (> 2GB) via enhanced privacy
logging on Mac.

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::domainCausingJetsamKey):

  • page/DiagnosticLoggingKeys.h:
  • page/PerformanceMonitor.cpp:

(WebCore::reportPageOverPostLoadResourceThreshold):
(WebCore::PerformanceMonitor::measurePostLoadCPUUsage):
(WebCore::PerformanceMonitor::measurePostLoadMemoryUsage):
(WebCore::reportPageOverPostLoadCPUUsageThreshold): Deleted.

9:50 AM Changeset in webkit [212960] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.0-branch/Source

Versioning.

9:10 AM Changeset in webkit [212959] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.4-branch/Source

Versioning.

9:07 AM Changeset in webkit [212958] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603.1.30.4-branch/Source/WebCore

Merge r212822. rdar://problem/30682429

9:02 AM Changeset in webkit [212957] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603.1.30.0-branch/Source/JavaScriptCore

rdar://problem/30675867

8:59 AM Changeset in webkit [212956]
  • in /

This is an empty revision for padding.

8:59 AM Changeset in webkit [212955] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.0-branch/Source

Versioning.

8:57 AM Changeset in webkit [212954] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.1-branch/Source

Versioning.

8:45 AM Changeset in webkit [212953] by achristensen@apple.com
  • 11 edits in trunk

.. should not remove windows drive letters in paths of file URLs
https://bugs.webkit.org/show_bug.cgi?id=168824

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/url-constructor-expected.txt:

Source/WebCore:

It's specified in https://url.spec.whatwg.org/#shorten-a-urls-path and helps behavior for browsers on Windows.
It can't hurt to pass a few more web platform tests, though.

  • platform/URLParser.cpp:

(WebCore::URLParser::copyURLPartsUntil):
(WebCore::URLParser::shouldPopPath):
(WebCore::URLParser::popPath):
(WebCore::URLParser::parse):

  • platform/URLParser.h:

LayoutTests:

  • fast/url/file-expected.txt:
  • fast/url/file-http-base-expected.txt:
  • fast/url/relative-win-expected.txt:
5:17 AM Changeset in webkit [212952] by Antti Koivisto
  • 1 edit
    3 deletes in trunk/LayoutTests

Reverting https://trac.webkit.org/r212951, landing this doesn't actually work due to Git infrastucture.

  • http/tests/cache/disk-cache/resources/shattered-1-nocollision.pdf: Removed.
  • http/tests/cache/disk-cache/resources/shattered-1.pdf: Removed.
  • http/tests/cache/disk-cache/resources/shattered-2-nocollision.pdf: Removed.
4:45 AM Changeset in webkit [212951] by Antti Koivisto
  • 1 edit
    5 adds in trunk/LayoutTests

Add a test verifying cache deduplication is not sensitive to SHA1 collision attack
https://bugs.webkit.org/show_bug.cgi?id=168774

Reviewed by Sam Weinig.

We use SHA1 for deduplicating disk cache resources. Since a real world SHA1 collision was demonstrated
recently (http://shattered.io/) we can add a test that shows it can't be used for cache poisoning.

There are two protections in the cache code that both individually stop this type of attack:

  • When deduplicating the data is verified to be equal by a bytewise comparison.
  • SHA1 computations include random salt unique to cache instance.

Commenting out both protections is needed to make this test fail.

  • http/tests/cache/disk-cache/resources/shattered-1-nocollision.pdf: Added.
  • http/tests/cache/disk-cache/resources/shattered-1.pdf: Added.
  • http/tests/cache/disk-cache/resources/shattered-2-nocollision.pdf: Added.
  • http/tests/cache/disk-cache/resources/shattered-2.pdf: Added.

Files shattered-1.pdf and shattered-2.pdf differ visually but have the same SHA1.
The nocollision versions for the ref have the same pixels but don't collide.

  • http/tests/cache/disk-cache/shattered-deduplication-expected.html: Added.
  • http/tests/cache/disk-cache/shattered-deduplication.html: Added.
1:34 AM Changeset in webkit [212950] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

[Mac][cmake] Unreviewed buildfix after r212736.

  • PlatformMac.cmake:
1:19 AM Changeset in webkit [212949] by wilander@apple.com
  • 29 edits
    3 copies
    19 adds in trunk

Resource Load Statistics: Add alternate classification method
https://bugs.webkit.org/show_bug.cgi?id=168347
<rdar://problem/30352793>
<rdar://problem/30646710>
<rdar://problem/30660708>

Reviewed by Alex Christensen.

Source/WebCore:

This patch only adds test infrastructure in WebCore.

Tests: http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html

http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html
http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html
http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html
http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html
http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html
http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html
http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::setSubframeUnderTopFrameOrigin):
(WebCore::ResourceLoadObserver::setSubresourceUnderTopFrameOrigin):
(WebCore::ResourceLoadObserver::setSubresourceUniqueRedirectTo):

  • loader/ResourceLoadObserver.h:

Source/WebKit2:

This patch adds a CorePrediction-based classifier to the WebResourceLoadStatisticsStore.
The CorePrediction framework is introduced as a dependency for macOS and iOS. The patch
also adds functions to support layout tests of the feature.

  • Platform/Logging.h:

Added channel ResourceLoadStatistics.

  • Platform/classifier/ResourceLoadStatisticsClassifier.h: Added.

Pulls in the Cocoa-specific classifier for Cocoa-based platforms.

(WebKit::ResourceLoadStatisticsClassifier::ResourceLoadStatisticsClassifier):

  • Platform/classifier/ResourceLoadStatisticsClassifierBase.cpp: Added.

(WebKit::ResourceLoadStatisticsClassifierBase::hasPrevalentResourceCharacteristics):

Shared classifier logic.

(WebKit::ResourceLoadStatisticsClassifierBase::classifyWithVectorThreshold):

Fallback classifier for when we don't have CorePrediction.

  • Platform/classifier/ResourceLoadStatisticsClassifierBase.h: Added.

(WebKit::ResourceLoadStatisticsClassifierBase::ResourceLoadStatisticsClassifierBase):
(WebKit::ResourceLoadStatisticsClassifierBase::~ResourceLoadStatisticsClassifierBase):

  • Platform/classifier/cocoa/CorePredictionSoftLink.h: Added.

Soft links to CorePrediction and the two functions we use from it.

  • Platform/classifier/cocoa/ResourceLoadStatisticsClassifierCocoa.cpp: Added.

(WebKit::ResourceLoadStatisticsClassifier::classify):
(WebKit::ResourceLoadStatisticsClassifier::storagePath):
(WebKit::ResourceLoadStatisticsClassifier::shouldUseCorePredictionAndHaveModelLoaded):
(WebKit::ResourceLoadStatisticsClassifier::singletonPredictionModel):

The new classifier for Cocoa platforms.

  • Platform/classifier/cocoa/ResourceLoadStatisticsClassifierCocoa.h: Added.
  • PlatformGTK.cmake:

Added Platform/classifier directory and ResourceLoadStatisticsClassifierBase.cpp.

  • PlatformMac.cmake:

Added Platform/classifier and Platform/classifier/cocoa directories, and
source files ResourceLoadStatisticsClassifierBase.cpp and
ResourceLoadStatisticsClassifierCocoa.cpp

  • Resources/ResourceLoadStatistics/corePrediction_model: Added.

Model file to load into CorePrediction.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.cpp:

(WKResourceLoadStatisticsManagerSetSubframeUnderTopFrameOrigin):
(WKResourceLoadStatisticsManagerSetSubresourceUnderTopFrameOrigin):
(WKResourceLoadStatisticsManagerSetSubresourceUniqueRedirectTo):

Test infrastructure.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsManager.cpp:

(WebKit::WebResourceLoadStatisticsManager::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsManager::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsManager::setSubresourceUniqueRedirectTo):

Test infrastructure.

  • UIProcess/WebResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):

Renamed m_storagePath to m_statisticsStoragePath for clarity.

(WebKit::WebResourceLoadStatisticsStore::classifyResource):

Now calls the classifier through its ResourceLoadStatisticsClassifier
member variable.

(WebKit::WebResourceLoadStatisticsStore::persistentStoragePath):

Renamed m_storagePath to m_statisticsStoragePath for clarity.

(WebKit::WebResourceLoadStatisticsStore::writeEncoderToDisk):

Renamed m_storagePath to m_statisticsStoragePath for clarity.

(WebKit::WebResourceLoadStatisticsStore::hasPrevalentResourceCharacteristics): Deleted.

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • WebKit2.xcodeproj/project.pbxproj:

Added the new classifier source files under Platform/classifier and the
corePrediction_model file under Resources/ResourceLoadStatistics.

Tools:

Added three testRunner functions to facilitate layout tests:

  • setStatisticsSubframeUnderTopFrameOrigin()
  • setStatisticsSubresourceUnderTopFrameOrigin()
  • setStatisticsSubresourceUniqueRedirectTo()
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setStatisticsSubframeUnderTopFrameOrigin):
(WTR::TestRunner::setStatisticsSubresourceUnderTopFrameOrigin):
(WTR::TestRunner::setStatisticsSubresourceUniqueRedirectTo):

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

(WTR::TestController::setStatisticsSubframeUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUniqueRedirectTo):

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html: Added.
  • http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html:

Added a call to internals.setResourceLoadStatisticsEnabled(false) before testRunner.notifyDone().

  • http/tests/loading/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html:

Added a call to internals.setResourceLoadStatisticsEnabled(false) before testRunner.notifyDone().

  • http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html:

Added a call to internals.setResourceLoadStatisticsEnabled(false) before testRunner.notifyDone().

  • http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction.html:

Added a call to internals.setResourceLoadStatisticsEnabled(false) before testRunner.notifyDone().

  • http/tests/loading/resourceLoadStatistics/prevalent-resource-without-user-interaction.html:

Added a call to internals.setResourceLoadStatisticsEnabled(false) before testRunner.notifyDone().

  • platform/gtk/TestExpectations:

The whole http/tests/loading/resourceLoadStatistics marked as crashing based on
Carlos Garcia Campos's assessment in https://bugs.webkit.org/show_bug.cgi?id=168171.

  • platform/wk2/TestExpectations:

The above tests are only valid for WebKit2. Marked as [ Pass ].

Feb 23, 2017:

11:38 PM Changeset in webkit [212948] by commit-queue@webkit.org
  • 10 edits in trunk

[Modern Media Controls] No controls are shown for <audio preload="none">
https://bugs.webkit.org/show_bug.cgi?id=168800
<rdar://problem/30652142>

Patch by Antoine Quint <Antoine Quint> on 2017-02-23
Reviewed by Eric Carlson.

Source/WebCore:

A media element's currentSrc property will only be set when data has started
to load. In the case where preload="none" is used, regardless of whether a
source is specified, currentSrc would be the empty string and we wouldn't
show controls at all. Identifying whether a source is specified is a little
tricky because it could be specified in a variety of ways and dynamically
as well.

So instead we optimistically show controls always provided the "controls"
attribute is set.

  • Modules/modern-media-controls/media/controls-visibility-support.js:

(ControlsVisibilitySupport.prototype._updateControls):
(ControlsVisibilitySupport):

  • Modules/modern-media-controls/media/start-support.js:

(StartSupport.prototype._shouldShowStartButton):
(StartSupport):

LayoutTests:

Update tests to account for the new rules for controls visibility and force an older test
not to use modern media controls since we now show the play button and there is a bug
that prevents the play button from being positioned correctly when inside a region
(see https://bugs.webkit.org/show_bug.cgi?id=168823).

  • fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls-expected.html
  • fast/regions/inline-block-inside-anonymous-overflow-with-covered-controls.html
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on-audio-expected.txt:
  • media/modern-media-controls/controls-visibility-support/controls-visibility-support-controls-on-audio.html:
  • media/modern-media-controls/start-support/start-support-no-source-expected.txt:
  • media/modern-media-controls/start-support/start-support-no-source.html:
11:17 PM Changeset in webkit [212947] by Dewei Zhu
  • 8 edits in trunk/Websites/perf.webkit.org

Rename 'commit_parent' in 'commits' table to 'commit_previous_commit'.
https://bugs.webkit.org/show_bug.cgi?id=168816

Reviewed by Ryosuke Niwa.

Rename 'commit_parent' to avoid ambiguity in the coming feature.
For exisiting database, run

"ALTER TABLE commits RENAME commit_parent TO commit_previous_commit;"

to update the database.

  • init-database.sql:
  • public/api/report-commits.php:
  • public/include/commit-log-fetcher.php:
  • server-tests/api-commits.js:

(then):

  • server-tests/api-report-commits-tests.js:

(then):

  • tools/sync-commits.py:

(main):
(Repository.fetch_commits_and_submit):
(GitRepository._revision_from_tokens):

  • unit-tests/analysis-task-tests.js:

(sampleAnalysisTask):

10:57 PM Changeset in webkit [212946] by rniwa@webkit.org
  • 7 edits in trunk/Websites/perf.webkit.org

New sampling algorithm shows very few points when zoomed out
https://bugs.webkit.org/show_bug.cgi?id=168813

Reviewed by Saam Barati.

When a chart is zoomed out to a large time interval, the new sampling algorithm introduced in r212853 can
hide most of the data points because the difference between the preceding point's time and the succeeding
point's time of most points will be below the threshold we computed.

Instead, rank each data point based on the aforementioned time interval difference, and pick the first M data
points when M data points are to be shown.

This makes the new algorithm behave like our old algorithm while keeping it stable still. Note that this
algorithm still biases data points without a close neighboring point but this seems to work out in practice
because such a point tends to be an important sample anyway, and we don't have a lot of space between
data points since we aim to show about one point per pixel.

  • browser-tests/index.html:

(CanvasTest.canvasContainsColor): Extracted from one of the test cases and generalized. Returns true when
the specified region of the canvas contains a specified color (alpha is optional).

  • browser-tests/time-series-chart-tests.js: Added a test case for sampling. It checks that sampling happens

and that we always show some data point even when zoomed out to a large time interval.
(createChartWithSampleCluster):

  • public/v3/components/interactive-time-series-chart.js:

(InteractiveTimeSeriesChart.prototype._sampleTimeSeries):

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart.prototype._ensureSampledTimeSeries): M, the number of data points we pick must be computed
based on the width of data points we're about to draw constrained by the canvas size. e.g. when the canvas
is only half filled, we shouldn't be showing two points per pixel in the filled region.
(TimeSeriesChart.prototype._sampleTimeSeries): Refined the algorithm. First, compute the time difference or
the rank for each N data points. Sort those ranks in descending order (in the order we prefer), and include
all data points above the M-th rank in the sample.
(TimeSeriesChart.prototype.computeTimeGrid): Revert the inadvertent change in r212935.

  • public/v3/models/time-series.js:

(TimeSeriesView.prototype.filter): Fixed a bug that the indices passed onto the callback were shifted by the
starting index.

  • unit-tests/time-series-tests.js: Added a test case to ensure callbacks are called with correct data points

and indices.

10:52 PM Changeset in webkit [212945] by Joseph Pecoraro
  • 7 edits in trunk

[Resource Timing] Add Experimental Feature Flag
https://bugs.webkit.org/show_bug.cgi?id=167147

Reviewed by Ryosuke Niwa.

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:

Move ResourceTiming to experimental section.
Disable it for El Capitan due to known issues.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):
Put experimental flags in the experimental section.

Websites/webkit.org:

  • experimental-features.html:

Test for Resource Timing.

10:51 PM Changeset in webkit [212944] by Joseph Pecoraro
  • 96 edits
    2 moves
    13 adds in trunk

[Resource Timing] Gather timing information with reliable responseEnd time
https://bugs.webkit.org/show_bug.cgi?id=168351

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt:

New behavior for too many redirects caused by <rdar://problem/30610988>.

  • web-platform-tests/resource-timing/rt-nextHopProtocol-expected.txt: Added.
  • web-platform-tests/resource-timing/rt-nextHopProtocol.html: Added.
  • web-platform-tests/resource-timing/rt-nextHopProtocol.js: Added.
  • web-platform-tests/resource-timing/rt-nextHopProtocol.worker-expected.txt: Added.
  • web-platform-tests/resource-timing/rt-nextHopProtocol.worker.html: Added.
  • web-platform-tests/resource-timing/rt-nextHopProtocol.worker.js: Added.

New tests specific to just checking the nextHopProtocol property with
a non-cached resource to avoid flakeyness.

Source/WebCore:

This patch replaces the unused double finishTime in ResourceLoader's
didFinishLoad with a complete WebCore::NetworkLoadMetrics object. This
allows the NetworkProcess to give complete timing information, and more
final metrics about the load, to WebCore. Currently this is only used
by ResourceTiming, but it will soon be used by Web Inspector as well.
We may also end up extending this to the didFail path as well, since it
is possible that we have some metrics for load failures.

At the same time we want to start moving away from the legacy path that
populated a subset of this information in ResourceResponse's NetworkLoadMetrics.
It doesn't make sense to store this information on the ResourceResponse
for a few reasons: We don't want to store the metrics in our Network Cache and
not all of the load timing metrics have been populated yet (responseEnd).
In an effort to move off of this data we've renamed the accessor to
"deprecatedNetworkLoadMetrics". There are a few remaining clients
(ResourceHandle, PerformanceTiming, InspectorNetworkAgent) which can be
migrated separately from this patch.

Having both the legacy and new code paths adds a little bit of complexity.
One advantage of the new path is that the complete load timing data
(fetchStart -> dns -> connect -> request -> response -> responseEnd) can
be packaged together. The legacy path could not include a responseEnd, so
WebCore faked that value with its own timestamp. Having the fake responseEnd
caused issues as timestamps / clocks are different between processes. In order
for PerformanceResponseTiming to know whether or not the NetworkLoadMetrics
has the complete network timing metrics it checks isComplete(). If true
it knows it can use the responseEnd time from NetworkLoadMetrics, otherwise
it must fallback to the legacy value from LoadTiming. Once all of the
deprecatedNetworkLoadMetrics clients go away, we should always have the
complete data and this can be eliminated.

Tests: imported/w3c/web-platform-tests/resource-timing/rt-nextHopProtocol.html

imported/w3c/web-platform-tests/resource-timing/rt-nextHopProtocol.worker.html

  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Rename NetworkLoadTiming -> NetworkLoadMetrics.

  • page/PerformanceResourceTiming.cpp:

(WebCore::entryStartTime):
(WebCore::entryEndTime):
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::nextHopProtocol):
(WebCore::PerformanceResourceTiming::domainLookupStart):
(WebCore::PerformanceResourceTiming::domainLookupEnd):
(WebCore::PerformanceResourceTiming::connectStart):
(WebCore::PerformanceResourceTiming::connectEnd):
(WebCore::PerformanceResourceTiming::secureConnectionStart):
(WebCore::PerformanceResourceTiming::requestStart):
(WebCore::PerformanceResourceTiming::responseStart):
(WebCore::PerformanceResourceTiming::responseEnd):
(WebCore::PerformanceResourceTiming::networkLoadTimeToDOMHighResTimeStamp):

  • page/PerformanceResourceTiming.h:

Mostly just updating names and types. This does however need to get the
correct endTime based on whether the NetworkLoadMetrics are complete
(meaning includes responseEnd) or not (legacy, use LoadTiming value).

  • page/PerformanceResourceTiming.idl:

Add nextHopProtocol.

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::domainLookupStart):
(WebCore::PerformanceTiming::domainLookupEnd):
(WebCore::PerformanceTiming::connectStart):
(WebCore::PerformanceTiming::connectEnd):
(WebCore::PerformanceTiming::secureConnectionStart):
(WebCore::PerformanceTiming::requestStart):
(WebCore::PerformanceTiming::responseStart):
(WebCore::PerformanceTiming::resourceLoadTimeRelativeToFetchStart):

  • page/PerformanceTiming.h:

Navigation Timing values still uses the NetworkLoadTiming values stored on
the DocumentLoader. This should be moved off of the deprecated path separately.

  • platform/network/NetworkLoadMetrics.h: Renamed from Source/WebCore/platform/network/NetworkLoadTiming.h.

(WebCore::NetworkLoadMetrics::NetworkLoadMetrics):
(WebCore::NetworkLoadMetrics::isolatedCopy):
(WebCore::NetworkLoadMetrics::reset):
(WebCore::NetworkLoadMetrics::operator==):
(WebCore::NetworkLoadMetrics::operator!=):
(WebCore::NetworkLoadMetrics::isComplete):
(WebCore::NetworkLoadMetrics::markComplete):
(WebCore::NetworkLoadMetrics::encode):
(WebCore::NetworkLoadMetrics::decode):
Re-introduce a reset() method (for NetworkLoadSoup to reset between redirects).
Add protocolName and "complete" boolean.

  • platform/network/cocoa/NetworkLoadMetrics.mm: Renamed from Source/WebCore/platform/network/cocoa/NetworkLoadTiming.mm.

(WebCore::timingValue):
(WebCore::copyTimingData):
(WebCore::setCollectsTimingData):
Use this opportunity to convert NetworkLoadTiming timestamps to WTF::Seconds.
Since we already have to modify all the clients this moves us to use the more
strongly typed units that are less ambiguous then "double". The rest of the
Performance API has already moved to these units.

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
(WebCore::InspectorNetworkAgent::didFinishLoading):

  • inspector/InspectorNetworkAgent.h:

Inspector was the only client of the finishTime, and since the value was
erratically coming from clients in different ways it was almost certainly
inaccurate. Simplify this in preparation for using NetworkLoadMetrics.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::didFinishLoading):

  • Modules/fetch/FetchLoader.h:
  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::didFinishLoading):

  • fileapi/FileReaderLoader.h:
  • html/MediaFragmentURIParser.cpp:

(WebCore::MediaFragmentURIParser::parseNPTTime):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didFinishLoadingImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didFinishLoading):

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::validatePreflightResponse):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::notifyFinished):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::maybeLoadEmpty):

  • loader/DocumentLoader.h:
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::notifyFinished):
(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/DocumentThreadableLoader.h:
  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::didFinishLoading):

  • loader/NetscapePlugInStreamLoader.h:
  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::didFinishLoad):
(WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
(WebCore::ResourceLoadNotifier::sendRemainingDelegateMessages):

  • loader/ResourceLoadNotifier.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::deliverResponseAndData):
(WebCore::ResourceLoader::loadDataURL):
(WebCore::ResourceLoader::didFinishLoading):
(WebCore::ResourceLoader::didFinishLoadingOnePart):

  • loader/ResourceLoader.h:
  • loader/ResourceTiming.cpp:

(WebCore::ResourceTiming::fromLoad):
(WebCore::ResourceTiming::fromSynchronousLoad):
(WebCore::ResourceTiming::ResourceTiming):
(WebCore::ResourceTiming::isolatedCopy):

  • loader/ResourceTiming.h:

(WebCore::ResourceTiming::networkLoadMetrics):
(WebCore::ResourceTiming::ResourceTiming):
(WebCore::ResourceTiming::networkLoadTiming): Deleted.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::willSendRequestInternal):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::didFinishLoading):
(WebCore::SubresourceLoader::reportResourceTiming):

  • loader/SubresourceLoader.h:
  • loader/ThreadableLoaderClient.h:

(WebCore::ThreadableLoaderClient::didFinishLoading):

  • loader/ThreadableLoaderClientWrapper.h:

(WebCore::ThreadableLoaderClientWrapper::didFinishLoading):

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):

  • loader/WorkerThreadableLoader.h:
  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::didFinishLoading):

  • loader/appcache/ApplicationCacheGroup.h:
  • loader/cache/CachedResource.h:

(WebCore::CachedResource::setLoadFinishTime):

  • loader/ios/QuickLook.mm:

(-[WebPreviewLoader connectionDidFinishLoading:]):

  • page/EventSource.cpp:

(WebCore::EventSource::didFinishLoading):

  • page/EventSource.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(ResourceHandleStreamingClient::didFinishLoading):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::doNotifyFinish):

  • platform/network/PingHandle.h:
  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleClient.h:

(WebCore::ResourceHandleClient::didFinishLoading):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::crossThreadData):
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::compare):

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::deprecatedNetworkLoadMetrics):
(WebCore::ResourceResponseBase::encode):
(WebCore::ResourceResponseBase::decode):
(WebCore::ResourceResponseBase::networkLoadTiming): Deleted.

  • platform/network/SynchronousLoaderClient.cpp:

(WebCore::SynchronousLoaderClient::didFinishLoading):

  • platform/network/SynchronousLoaderClient.h:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didFinishLoading):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::WebCoreSynchronousLoader::didFinishLoading):

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::calculateWebTimingInformations):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::handleDataURL):
(WebCore::milisecondsSinceRequest): Deleted.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::getConnectionTimingData):

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
(-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connectionDidFinishLoading:]):

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::restartedCallback):
(WebCore::nextMultipartResponsePartCallback):
(WebCore::sendRequestCallback):
(WebCore::ResourceHandle::didStartRequest):
(WebCore::networkEventCallback):
(WebCore::ResourceHandle::sendPendingRequest):
(WebCore::readCallback):
(WebCore::milisecondsSinceRequest): Deleted.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::didFinishLoading):

  • workers/WorkerScriptLoader.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::didFinishLoading):

  • xml/XMLHttpRequest.h:

Eliminate the unused finishTime double.

Source/WebKit2:

Change from an unused double finishTime to a complete WebCore::NetworkLoadMetrics
object in the didFinishLoad ResourceLoader path. We may also extend this in the
didFail path later on. This allows the NetworkProcess to give complete timing
information, and more final metrics about the load, to WebCore.

  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTaskClient::didCompleteWithError):
Give the NetworkDataTaskClient a basic didCompleteWithError for a completion
without metrics. For loads that complete with an error, or haven't populated
any metrics, this will pass empty metrics onward.

  • NetworkProcess/Downloads/BlobDownloadClient.cpp:

(WebKit::BlobDownloadClient::didFinishLoading):

  • NetworkProcess/Downloads/BlobDownloadClient.h:
  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/PingLoad.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::didFail):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueWillSendRequest):
(WebKit::NetworkLoad::didCompleteWithError):
(WebKit::NetworkLoad::didFinishLoading):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::sendResultForCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didFinishResourceLoad):
(WebKit::WebResourceLoader::didReceiveResource):

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

Change didFinishLoad paths to take a NetworkLoadMetrics object instead of finishTime.
Change didCompleteWithError pathes to include a NetworkLoadMetrics object instead of finishTime.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::didCompleteWithError):
Own a NetworkLoadTiming that will be populated with the load.

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

(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
Populate NetworkLoadMetrics in the didFinishCollectingMetrics NSURLSessionTaskDelegate method.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup):
(WebKit::NetworkDataTaskSoup::timeoutFired):
(WebKit::NetworkDataTaskSoup::didSendRequest):
(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
(WebKit::NetworkDataTaskSoup::dispatchDidCompleteWithError):
(WebKit::NetworkDataTaskSoup::tlsErrorsChanged):
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
(WebKit::NetworkDataTaskSoup::didFinishRead):
(WebKit::NetworkDataTaskSoup::didFinishRequestNextPart):
(WebKit::NetworkDataTaskSoup::didFailDownload):
(WebKit::NetworkDataTaskSoup::didFail):
(WebKit::NetworkDataTaskSoup::networkEvent):
(WebKit::NetworkDataTaskSoup::didStartRequest):
(WebKit::NetworkDataTaskSoup::didRestart):

  • NetworkProcess/soup/NetworkDataTaskSoup.h:

Instead of populating the NetworkLoadMetrics on the ResourceResponse, populate
a member variable during the entire load and dispatch didFinishCollectingMetrics
right before didCompleteLoadWithError.

Source/WTF:

  • wtf/persistence/Coders.h:

(WTF::Persistence::Coder<Seconds>::encode):
(WTF::Persistence::Coder<Seconds>::decode):

LayoutTests:

Now that nextHopProtocol is available on Mac mark the test as flakey
because the value can be set or not depending on whether or not the
resource was loaded from a cache.

  • platform/ios-simulator/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:

Mark nextHopProtocol tests as expected to fail on ports that do not
yet support those values. Mark redirect tests as failing on ports
that encounter the CFNetwork issue causing unexpected callbacks.

  • performance-api/resource-timing-apis-expected.txt:
  • performance-api/resources/resource-timing-api.js:

Progressions.

  • platform/mac-elcapitan/imported/w3c/web-platform-tests/resource-timing/test_resource_timing-expected.txt: Added.
  • platform/mac/imported/w3c/web-platform-tests/resource-timing/test_resource_timing-expected.txt: Added.

Expected passing values on mac, except el capitan where this new resource timing data is unavailable.

10:40 PM Changeset in webkit [212943] by commit-queue@webkit.org
  • 17 edits
    2 adds in trunk

[Modern Media Controls] Controls overflow when media element has border or padding
https://bugs.webkit.org/show_bug.cgi?id=168818
<rdar://problem/30689780>

Patch by Antoine Quint <Antoine Quint> on 2017-02-23
Reviewed by Jon Lee.

Source/WebCore:

We used to query the media element's layout size to compute the size of the media controls,
which would account for border and padding. Instead, we should use the size of the container,
at the root of the ShadowRoot, which will always match the size of the media.

Test: media/modern-media-controls/media-controller/media-controller-controls-sizing-with-border-and-padding.html

  • Modules/modern-media-controls/controls/media-controls.css:

(.media-controls-container,):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype._updateControlsSize):
(MediaController.prototype._controlsWidth):

LayoutTests:

Updating a host of tests to ensure they have an explicitly host and add a new test
to check that we have the correct size with borders and padding.

  • media/modern-media-controls/fullscreen-support/fullscreen-support-click.html:
  • media/modern-media-controls/media-controller/media-controller-compact-expected.txt:
  • media/modern-media-controls/media-controller/media-controller-compact.html:
  • media/modern-media-controls/media-controller/media-controller-controls-sizing-with-border-and-padding-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-controls-sizing-with-border-and-padding.html: Added.
  • media/modern-media-controls/media-controller/media-controller-reduced-padding-expected.txt:
  • media/modern-media-controls/media-controller/media-controller-reduced-padding.html:
  • media/modern-media-controls/media-controller/media-controller-tight-padding-expected.txt:
  • media/modern-media-controls/media-controller/media-controller-tight-padding.html:
  • media/modern-media-controls/pip-support/pip-support-click.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-click.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
  • media/modern-media-controls/volume-support/volume-support-click.html:
  • media/modern-media-controls/volume-support/volume-support-drag.html:
  • media/track/track-cue-rendering-snap-to-lines-not-set.html: Turn modern media controls off for this test to pass.
9:41 PM Changeset in webkit [212942] by commit-queue@webkit.org
  • 5 edits
    1 copy
    1 add in trunk

[Modern Media Controls] Dragging controls in fullscreen on macOS prevents scrubbing or interacting with controls
https://bugs.webkit.org/show_bug.cgi?id=168820
<rdar://problem/30690281>

Patch by Antoine Quint <Antoine Quint> on 2017-02-23
Reviewed by Jon Lee.

Source/WebCore:

We broke this in https://bugs.webkit.org/show_bug.cgi?id=168755. We restore the check that the
event target when initiating a drag is the controls bar itself and not some of its content.

Since this wasn't caught by our existing tests, we add a test that attemps to initiate a drag
starting over one of the controls and notice that no dragging occurs.

Test: media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button.html

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:

(MacOSFullscreenMediaControls.prototype._handleMousedown):

LayoutTests:

Making the existing test more robust and adding a new test that checks what happens
when we initiate a drag over some controls.

  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-expected.txt:
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button-expected.txt: Added.
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag-is-prevented-over-button.html: Added.
  • media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-drag.html:
9:33 PM Changeset in webkit [212941] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r211305): Masks on composited elements with preserve-3d broken
https://bugs.webkit.org/show_bug.cgi?id=168815
rdar://problem/30676846

Reviewed by Jon Lee.

Source/WebCore:

r211305 moved the mask layer to be on the structural layer if there is one, to fix
masking backdrops. However, with preserve-3d the structural layer can be a CATransformLayer,
which doesn't take a mask, so limit the previous change to backdrops only.

Test: compositing/masks/mask-with-preserve-3d.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateMaskLayer):

LayoutTests:

  • compositing/masks/mask-with-preserve-3d-expected.html: Added.
  • compositing/masks/mask-with-preserve-3d.html: Added.
9:27 PM Changeset in webkit [212940] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Modern Media Controls] Show "Loading" until playback starts
https://bugs.webkit.org/show_bug.cgi?id=168809
<rdar://problem/30687468>

Patch by Antoine Quint <Antoine Quint> on 2017-02-23
Reviewed by Jon Lee.

We now display the "Loading" status as soon as we've started loading and
until we've obtained enough data to play. No test provided since we don't
have a way to specifically set networkState and readyState to the satisfactory
values.

  • Modules/modern-media-controls/media/status-support.js:

(StatusSupport.prototype.syncControl):
(StatusSupport):

8:07 PM Changeset in webkit [212939] by sbarati@apple.com
  • 28 edits
    2 adds in trunk

Intrinsicify parseInt
https://bugs.webkit.org/show_bug.cgi?id=168627

Reviewed by Filip Pizlo.

JSTests:

  • stress/parse-int-intrinsic.js: Added.

(assert):
(testIntrinsic.let.s):
(testIntrinsic):
(testIntrinsic2.baz):
(testIntrinsic2):
(testIntrinsic3.foo):
(testIntrinsic3):
(testIntrinsic4.foo):
(testIntrinsic4):
(testIntrinsic5.foo):
(testIntrinsic5):
(testIntrinsic6.foo):
(testIntrinsic6):
(testIntrinsic7.foo):
(testIntrinsic7):

Source/JavaScriptCore:

This patch makes parseInt an intrinsic in the DFG and FTL.
We do our best to eliminate this node. If we speculate that
the first operand to the operation is an int32, and that there
isn't a second operand, we convert to the identity of the first
operand. That's because parseInt(someInt) === someInt.

If the first operand is proven to be an integer, and the second
operand is the integer 0 or the integer 10, we can eliminate the
node by making it an identity over its first operand. That's
because parseInt(someInt, 0) === someInt and parseInt(someInt, 10) === someInt.

If we are not able to constant fold the node away, we try to remove
checks. The most common use case of parseInt is that its first operand
is a proven string. The DFG might be able to remove type checks in this
case. We also set up CSE rules for parseInt(someString, someIntRadix)
because it's a "pure" operation (modulo resolving a rope).

This looks to be a 4% Octane/Box2D progression.

  • 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.h:

(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:

(JSC::DFG::parseIntResult):

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileParseInt):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::SpeculativeJIT::appendCallSetResult):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

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

  • jit/JITOperations.h:
  • parser/Lexer.cpp:
  • runtime/ErrorInstance.cpp:
  • runtime/Intrinsic.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::toStringView): Deleted.
(JSC::isStrWhiteSpace): Deleted.
(JSC::parseDigit): Deleted.
(JSC::parseIntOverflow): Deleted.
(JSC::parseInt): Deleted.

  • runtime/JSGlobalObjectFunctions.h:
  • runtime/ParseInt.h: Added.

(JSC::parseDigit):
(JSC::parseIntOverflow):
(JSC::isStrWhiteSpace):
(JSC::parseInt):
(JSC::toStringView):

  • runtime/StringPrototype.cpp:
7:22 PM Changeset in webkit [212938] by Chris Dumez
  • 5 edits in trunk/LayoutTests

Unreviewed, try to reduce flakiness to timer throttling tests

Try to reduce flakiness to timer throttling tests by increasing
tolerance.

  • fast/dom/timer-throttling-hidden-page-expected.txt:
  • fast/dom/timer-throttling-hidden-page-non-nested-expected.txt:
  • fast/dom/timer-throttling-hidden-page-non-nested.html:
  • fast/dom/timer-throttling-hidden-page.html:
7:13 PM Changeset in webkit [212937] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.30.1.20

Tag Safari-603.1.30.1.20.

7:12 PM Changeset in webkit [212936] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.30.0.20

Tag Safari-603.1.30.0.20.

7:12 PM Changeset in webkit [212935] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

REGRESSION(r212542): Make TimeSeriesChart.computeTimeGrid stops x-axis grid prematurely
https://bugs.webkit.org/show_bug.cgi?id=168812

Reviewed by Joseph Pecoraro.

Add time iterator of two months, three months, and four months with some tests.

Also for one-month time iterator, round the day of month to 1 or 15 whichever is closer.

  • browser-tests/time-series-chart-tests.js: Added more tests.
  • public/v3/components/time-series-chart.js:

(TimeSeriesChart._timeIterators.next):
(TimeSeriesChart._timeIterators):

7:11 PM Changeset in webkit [212934] by jfernandez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Layout test imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-api-texttracks.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=168799

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
5:44 PM Changeset in webkit [212933] by commit-queue@webkit.org
  • 5 edits in trunk

[Modern Media Controls] Enforce a minimum layout height of 50pt for <audio>
https://bugs.webkit.org/show_bug.cgi?id=168801
<rdar://problem/30683453>

Patch by Antoine Quint <Antoine Quint> on 2017-02-23
Reviewed by Eric Carlson.

Source/WebCore:

We enforce a 50pt minimum layout height for <audio> elements. There is no way
for the page author to override this value since the min-height property is set
as !important in a <style> element contained in a ShadowRoot.

  • Modules/modern-media-controls/controls/media-controls.css:

(:host(audio)):

LayoutTests:

Update the existing <audio> metrics test to check that we correctly maintain
a 50pt minimum height even if an inline style attribute sets a shorter height
on an <audio> element, and also check that providing a taller height is respected.

  • media/modern-media-controls/audio/audio-controls-metrics-expected.txt:
  • media/modern-media-controls/audio/audio-controls-metrics.html:
5:22 PM Changeset in webkit [212932] by matthew_hanson@apple.com
  • 3 edits
    2 deletes in tags/Safari-603.1.30.0.4

Roll out r212737 via r212740. rdar://problem/30636274

5:00 PM Changeset in webkit [212931] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WebRTC] Outgoing video quality is poor
https://bugs.webkit.org/show_bug.cgi?id=168778
<rdar://problem/30674673>

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-23
Reviewed by Eric Carlson.

Covered by manually ensuring the voice process thread is not spinning.

  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.h: Setting the next call to max was not a good idea since the thread process is adding some value to it, making it a negative value.
3:38 PM Changeset in webkit [212930] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

Data interaction with a URL should navigate the page if the operation is not handled
https://bugs.webkit.org/show_bug.cgi?id=168798
<rdar://problem/30665969>

Reviewed by Tim Horton.

Refactors some drag and drop code on the Mac, and implements PlatformPasteboard::stringForType.

  • page/DragController.cpp:

(WebCore::DragController::performDragOperation):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::stringForType):

  • platform/mac/DragDataMac.mm:
3:33 PM Changeset in webkit [212929] by Beth Dakin
  • 6 edits
    3 adds in trunk

Source/WebKit2:
No reliable way to get a snapshot of WKWebView
https://bugs.webkit.org/show_bug.cgi?id=161450
-and corresponding-
<rdar://problem/23846039>

Patch by Beth Dakin <Beth Dakin> + Dan Saunders <dasau@microsoft.com> on 2017-02-23
Reviewed by Tim Horton.

This patch adds a new API to WKWebView to snapshot a rect:
takeSnapshotWithConfiguration:completionHandler:

It also adds a new API object WKSnapshotConfiguration.

  • UIProcess/API/Cocoa/WKSnapshotConfiguration.h: Added.
  • UIProcess/API/Cocoa/WKSnapshotConfiguration.mm: Added.

(-[WKSnapshotConfiguration copyWithZone:]):

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

(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):

  • WebKit2.xcodeproj/project.pbxproj:

Tools:
No reliable way to get a snapshot of WKWebView (macOS)
https://bugs.webkit.org/show_bug.cgi?id=161450
-and corresponding-
<rdar://problem/23846039>

Patch by Beth Dakin <Beth Dakin> + Dan Saunders <dasau@microsoft.com> on 2017-02-23
Reviewed by Tim Horton.

Test for WKWebView’s new API takeSnapshotWithConfiguration:completionHandler:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewSnapshot.mm: Added.

(convertToCGImage):
(getPixelIndex):
(TEST):

3:05 PM Changeset in webkit [212928] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WebRTC] RealtimeOutgoingAudioSource does not need to upsample audio buffers
https://bugs.webkit.org/show_bug.cgi?id=168796

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-23
Reviewed by Jer Noble.

Covered by manual testing.
Limiting RealtimeOutgoingAudioSource conversion to interleaving and float-to-integer.
Removed the sample rate conversion.

  • platform/mediastream/mac/RealtimeOutgoingAudioSource.cpp:

(WebCore::libwebrtcAudioFormat):
(WebCore::RealtimeOutgoingAudioSource::audioSamplesAvailable):
(WebCore::RealtimeOutgoingAudioSource::pullAudioData):

2:52 PM Changeset in webkit [212927] by achristensen@apple.com
  • 5 edits in trunk/Source/WebCore

Re-soft-link CoreVideo after r212906
https://bugs.webkit.org/show_bug.cgi?id=168803

Reviewed by Jer Noble.

CoreVideo should be soft linked to reduce startup time.
Linking against the framework just for a few symbols used in one file was the wrong solution.

  • Configurations/WebCore.xcconfig:
  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:
2:51 PM Changeset in webkit [212926] by matthew_hanson@apple.com
  • 5 edits in tags/Safari-603.1.30.0.4/Source

Versioning.

2:35 PM Changeset in webkit [212925] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.30.0.4

New Tag.

2:04 PM Changeset in webkit [212924] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

ASSERT in RTCNetwork::IPAddress::decode()
https://bugs.webkit.org/show_bug.cgi?id=168792

Reviewed by Tim Horton.

An ASSERT added to RTCNetwork::IPAddress::decode in r212781 was hit due to a bad encode of SocketAddress; an
extra boolean value was added to the encoder unnecessarily, leading to garbage data being decoded in the following
IPAddress.

Drive-by-fix: allow the IPAddress encoder/decoder to pass through a value of AF_UNSPEC for an IPAddress to support
passing through an "empty" IPAddress value.

  • Shared/RTCNetwork.cpp:

(WebKit::RTCNetwork::IPAddress::decode):
(WebKit::RTCNetwork::IPAddress::encode):
(WebKit::RTCNetwork::SocketAddress::encode):

1:39 PM Changeset in webkit [212923] by rniwa@webkit.org
  • 8 edits in trunk/Websites/perf.webkit.org

Add tests for InteractiveTimeSeriesChart and adopt actions
https://bugs.webkit.org/show_bug.cgi?id=168750

Reviewed by Chris Dumez.

Added tests for InteractiveTimeSeriesChart.

Also replaced selection.onchange, selection.onzoom, indicator.onchange, annotations.onclick callbacks
by "selectionChange", "zoom", "indicatorChange", and "annotationClick" actions respectively.

Also fixed various bugs and bad code I encountered while writing these tests.

  • browser-tests/index.html:

(waitForComponentsToRender): Delay the call to enqueueToRender until the next run loop because there
might be outstanding promises that just got resolved. e.g. for fetching measurement sets JSONs. Let
all those promises get resolved first. Otherwise, some tests become racy.
(canvasImageData): Extracted from time-series-chart-tests.js.
(canvasRefTest): Ditto.
(CanvasTest): Ditto.
(CanvasTest.fillCanvasBeforeRedrawCheck): Ditto.
(CanvasTest.hasCanvasBeenRedrawn): Ditto.
(CanvasTest.canvasImageData): Ditto.
(CanvasTest.expectCanvasesMatch): Ditto.
(CanvasTest.expectCanvasesMismatch): Ditto.

  • browser-tests/time-series-chart-tests.js: Fixed some test cases where dpr multipler was not doing

the right thing anymore in Safari under a high DPI screen. Also added a lot of test cases for interactive
time series chart and one for rendering annotations.
(scripts): Moved.
(posixTime): Added. A helper function for sampleCluster.
(dayInMilliseconds): Ditto.
(sampleCluster): Moved here. Made the same cluster more artifical for an easier testing.
(createChartWithSampleCluster): Moved out of one of the tests.
(respondWithSampleCluster): Ditto.

  • public/v3/components/chart-pane-base.js:

(ChartPaneBase.prototype.configure): Adopted new actions in InteractiveTimeSeriesChart.

  • public/v3/components/chart-status-view.js:

(ChartStatusView.prototype.updateStatusIfNeeded): Removed a superflous console.log.

  • public/v3/components/chart-styles.js:

(ChartStyles.mainChartOptions): Set zoomButton to true. InteractiveTimeSeriesChart used to determine
whether to show the zoom button or not based on the precense of the zoom callback. We made it explicit.

  • public/v3/components/interactive-time-series-chart.js:

(InteractiveTimeSeriesChart.prototype.setIndicator): Explicitly call _notifySelectionChanged with false
instead of relying on undefined to be treated as falsey.
(InteractiveTimeSeriesChart.prototype._createCanvas): Use id instead of selector to find elements.
(InteractiveTimeSeriesChart.htmlTemplate):
(InteractiveTimeSeriesChart.cssTemplate):
(InteractiveTimeSeriesChart.prototype._mouseMove): Explicitly call _startOrContinueDragging with false
instead of relying on undefined treated as falsey. Also added the missing call to enqueueToRender found
by new tests. This was working fine on the dashboard due to other components invoking enqueueToRender
but won't work in a standalone instance of InteractiveTimeSeriesChart.
(InteractiveTimeSeriesChart.prototype._mouseLeave): Ditto, adding the missing call to enqueueToRender.
(InteractiveTimeSeriesChart.prototype._click): Removed the assignment to _forceRender when calling
_mouseMove in an early exist, which does set this flag and invokes enqueueToRender, and added the missing
call to enqueueToRender in the other code path.
(InteractiveTimeSeriesChart.prototype._startOrContinueDragging): Replaced annotations.onclick callback
by the newly added "annotationClick" action, and added the missing call to enqueueToRender.
(InteractiveTimeSeriesChart.prototype._endDragging): Use arrow function.
(InteractiveTimeSeriesChart.prototype._notifyIndicatorChanged): Replaced indicator.onchange callback by
the newly added "indicatorChange" action.
(InteractiveTimeSeriesChart.prototype._notifySelectionChanged): Replaced selection.onchange callback by
the newly added "selectionChange" action.
(InteractiveTimeSeriesChart.prototype._renderChartContent): Show the zoom button when options.zoomButton
is set instead of relying on the presence of selection.onzoom especially now that the callback has been
replaced by the "zoom" action.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart.prototype.setAnnotations): Added the missing call to enqueueToRender.

  • public/v3/main.js:
1:36 PM Changeset in webkit [212922] by jfbastien@apple.com
  • 63 edits in trunk

WebAssembly: support 0x1 version
https://bugs.webkit.org/show_bug.cgi?id=168672

Reviewed by Keith Miller.

JSTests:

Update the version number for all the tests. Note that the spec
tests are only updated with a new version number because spec+wabt
aren't ready for 0x1 yet. This is tracked by bug #168784.

  • wasm/import-spec-tests.rb: use the new spec repository layout
  • wasm/js-api/test_basic_api.js:
  • wasm/self-test/test_BuilderWebAssembly.js:

(EmptyModule):
(CustomSection):

  • wasm/spec-tests/address.wast.js:
  • wasm/spec-tests/binary.wast.js:
  • wasm/spec-tests/block.wast.js:
  • wasm/spec-tests/br.wast.js:
  • wasm/spec-tests/br_if.wast.js:
  • wasm/spec-tests/br_table.wast.js:
  • wasm/spec-tests/break-drop.wast.js:
  • wasm/spec-tests/call.wast.js:
  • wasm/spec-tests/call_indirect.wast.js:
  • wasm/spec-tests/comments.wast.js:
  • wasm/spec-tests/conversions.wast.js:
  • wasm/spec-tests/custom_section.wast.js:
  • wasm/spec-tests/endianness.wast.js:
  • wasm/spec-tests/exports.wast.js:
  • wasm/spec-tests/f32.wast.js:
  • wasm/spec-tests/f32_cmp.wast.js:
  • wasm/spec-tests/f64.wast.js:
  • wasm/spec-tests/f64_cmp.wast.js:
  • wasm/spec-tests/fac.wast.js:
  • wasm/spec-tests/float_exprs.wast.js:
  • wasm/spec-tests/float_literals.wast.js:
  • wasm/spec-tests/float_memory.wast.js:
  • wasm/spec-tests/float_misc.wast.js:
  • wasm/spec-tests/forward.wast.js:
  • wasm/spec-tests/func.wast.js:
  • wasm/spec-tests/func_ptrs.wast.js:
  • wasm/spec-tests/get_local.wast.js:
  • wasm/spec-tests/globals.wast.js:
  • wasm/spec-tests/i32.wast.js:
  • wasm/spec-tests/i64.wast.js:
  • wasm/spec-tests/imports.wast.js:
  • wasm/spec-tests/int_exprs.wast.js:
  • wasm/spec-tests/int_literals.wast.js:
  • wasm/spec-tests/left-to-right.wast.js:
  • wasm/spec-tests/linking.wast.js:
  • wasm/spec-tests/loop.wast.js:
  • wasm/spec-tests/memory.wast.js:
  • wasm/spec-tests/memory_redundancy.wast.js:
  • wasm/spec-tests/memory_trap.wast.js:
  • wasm/spec-tests/names.wast.js:
  • wasm/spec-tests/nop.wast.js:
  • wasm/spec-tests/resizing.wast.js:
  • wasm/spec-tests/return.wast.js:
  • wasm/spec-tests/select.wast.js:
  • wasm/spec-tests/set_local.wast.js:
  • wasm/spec-tests/skip-stack-guard-page.wast.js:
  • wasm/spec-tests/stack.wast.js:
  • wasm/spec-tests/start.wast.js:
  • wasm/spec-tests/store_retval.wast.js:
  • wasm/spec-tests/switch.wast.js:
  • wasm/spec-tests/tee_local.wast.js:
  • wasm/spec-tests/traps.wast.js:
  • wasm/spec-tests/typecheck.wast.js:
  • wasm/spec-tests/unreachable.wast.js:
  • wasm/spec-tests/unwind.wast.js:
  • wasm/wasm.json:

Source/JavaScriptCore:

  • wasm/wasm.json: update the version number, everything is based

on its value

1:25 PM Changeset in webkit [212921] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make Briggs fixpoint validation run only with validateGraphAtEachPhase
https://bugs.webkit.org/show_bug.cgi?id=168795

Rubber stamped by Keith Miller.

The Briggs allocator was running intensive validation
on each step of the fixpoint. Instead, it now will just
do it when shouldValidateIRAtEachPhase() is true because
doing this for all !ASSERT_DISABLED builds takes too long.

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
12:56 PM Changeset in webkit [212920] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Report domains using abnormally high CPU usage via enhanced privacy logging
https://bugs.webkit.org/show_bug.cgi?id=168794
<rdar://problem/29964018>

Reviewed by Ryosuke Niwa.

Report domains using abnormally high CPU usage (> 20%) via enhanced privacy
logging.

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::domainCausingEnergyDrainKey):

  • page/DiagnosticLoggingKeys.h:
  • page/PerformanceMonitor.cpp:

(WebCore::reportPageOverPostLoadCPUUsageThreshold):
(WebCore::PerformanceMonitor::measurePostLoadCPUUsage):

12:51 PM Changeset in webkit [212919] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603-branch/Source/WebCore

Merge r212828. rdar://problem/30636274

12:51 PM Changeset in webkit [212918] by matthew_hanson@apple.com
  • 3 edits
    2 deletes in branches/safari-603-branch

Roll out r212737 via r212740. rdar://problem/30636274

12:51 PM Changeset in webkit [212917] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch/Source/WebCore

Merge r212554. rdar://problem/30636115

12:51 PM Changeset in webkit [212916] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/JavaScriptCore

rdar://problem/30635733

12:39 PM Changeset in webkit [212915] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit2

[WebRTC][Mac][WebKit2] WebRTC requires media capture
https://bugs.webkit.org/show_bug.cgi?id=168782
<rdar://problem/30675242>

Reviewed by Youenn Fablet.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess): Extend the sanbox to allow microphone access
if media stream OR WebRTC is enabled.

12:32 PM Changeset in webkit [212914] by matthew_hanson@apple.com
  • 6 edits in trunk/Source

Versioning.

12:24 PM Changeset in webkit [212913] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: DOM Tree spacing is wrong
https://bugs.webkit.org/show_bug.cgi?id=168744

Patch by Devin Rousso <Devin Rousso> on 2017-02-23
Reviewed by Brian Burg.

  • UserInterface/Base/Utilities.js:

(Element.prototype.totalOffsetRight):

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom):
(.tree-outline.dom ol):
(body[dir=ltr] .tree-outline.dom ol):
(body[dir=rtl] .tree-outline.dom ol):
(.tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded):
(body[dir=ltr] .tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded):
(body[dir=rtl] .tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded):
(.tree-outline.dom li.selected + ol.children.expanded):
(.tree-outline.dom li):
(body[dir=ltr] .tree-outline.dom li):
(body[dir=rtl] .tree-outline.dom li):
(.tree-outline.dom li.pseudo-class-enabled > .selection-area::before):
(body[dir=rtl] .tree-outline.dom li.pseudo-class-enabled > .selection-area::before):
(body[dir=ltr] .tree-outline.dom.single-node li):
(body[dir=rtl] .tree-outline.dom.single-node li):
(.tree-outline.dom li.parent):
(body[dir=ltr] .tree-outline.dom li.parent):
(body[dir=rtl] .tree-outline.dom li.parent):
(body[dir=ltr] .tree-outline.dom li .html-tag.close):
(body[dir=rtl] .tree-outline.dom li .html-tag.close):
(.tree-outline.dom li.parent::before):
(body[dir=rtl] .tree-outline.dom li.parent::before):
(body[dir=ltr] .tree-outline.dom li.parent::before):
(.tree-outline.dom li.parent.shadow::after):
(body[dir=ltr] .tree-outline.dom li.parent.shadow::after):
(body[dir=rtl] .tree-outline.dom li.parent.shadow::after):
(.tree-outline.dom.single-node li): Deleted.
(.tree-outline.dom li .html-tag.close): Deleted.

  • UserInterface/Views/TreeElement.js:

(WebInspector.TreeElement.prototype.isEventWithinDisclosureTriangle):
Calculate the position of the ::before triangle based on the layout direction.

12:12 PM Changeset in webkit [212912] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Simple line layout: Adjust RunResolver::lineIndexForHeight with line struts.
https://bugs.webkit.org/show_bug.cgi?id=168783
<rdar://problem/30676449>

Reviewed by Antti Koivisto.

When there's a pagination gap between lines the simple lineIndex = y / lineHeight formula does not work anymore.
This patch takes the line gaps into account by offsetting the y position accordingly.

Not enabled yet.

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight):

11:56 AM Changeset in webkit [212911] by sbarati@apple.com
  • 2 edits in trunk/Tools

Speculative fix for jsc timing out tests
https://bugs.webkit.org/show_bug.cgi?id=168791

Rubber Stamped by Keith Miller.

Play musical chairs with IRC and Briggs options on
ftl-eager and ftl-eager-no-cjit.

  • Scripts/run-jsc-stress-tests:
11:55 AM Changeset in webkit [212910] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: navigation sidebar section disclosure triangles and tree element icons should be aligned right
https://bugs.webkit.org/show_bug.cgi?id=168284

Patch by Devin Rousso <Devin Rousso> on 2017-02-23
Reviewed by Brian Burg.

  • UserInterface/Views/TreeOutline.css:

(.tree-outline,):
(.tree-outline.large .item):
(body[dir=ltr] .tree-outline .item :matches(.disclosure-button, .icon)):
(body[dir=rtl] .tree-outline .item :matches(.disclosure-button, .icon)):
(body[dir=ltr] .tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) > .icon):
(body[dir=rtl] .tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) > .icon):
(.tree-outline .item .disclosure-button):
(body[dir=rtl] .tree-outline .item .disclosure-button):
(.tree-outline .item .icon):
(body[dir=ltr] .tree-outline .item .icon):
(body[dir=rtl] .tree-outline .item .icon):
(.tree-outline.large .item .icon):
(.tree-outline .item .status):
(body[dir=ltr] .tree-outline .item .status):
(body[dir=rtl] .tree-outline .item .status):
(.tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) > .icon): Deleted.

  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeOutline._generateStyleRulesIfNeeded):

11:47 AM Changeset in webkit [212909] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

SpeculativeJIT::compilePutByValForIntTypedArray should only do the constant-folding optimization when the constant passes the type check
https://bugs.webkit.org/show_bug.cgi?id=168787

Reviewed by Michael Saboff and Mark Lam.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):

11:42 AM Changeset in webkit [212908] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Ensure that the end of the last invalidation point does not extend beyond the end of the buffer.
https://bugs.webkit.org/show_bug.cgi?id=168786

Reviewed by Filip Pizlo.

In practice, we will always have multiple instructions after invalidation points,
and have enough room in the JIT buffer for the invalidation point to work with.
However, as a precaution, we can guarantee that there's enough room by always
emitting a label just before we link the buffer. The label will emit nop padding
if needed.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::linkCode):

11:25 AM Changeset in webkit [212907] by achristensen@apple.com
  • 2 edits in trunk/Websites/webkit.org

Add WebRTC to experimental-features.html
https://bugs.webkit.org/show_bug.cgi?id=168757

Reviewed by Tim Horton.

  • experimental-features.html:
11:22 AM Changeset in webkit [212906] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix iOS WebRTC build after r212812
https://bugs.webkit.org/show_bug.cgi?id=168790

Reviewed by Tim Horton.

  • Configurations/WebCore.xcconfig:
11:04 AM Changeset in webkit [212905] by clopez@igalia.com
  • 4 edits in trunk/Tools

Improve error message when the WPT server fails to start.
https://bugs.webkit.org/show_bug.cgi?id=168759

Reviewed by Ryosuke Niwa.

Check if the WPT server is running after 1 second, and if is not
print useful information for helping the user to debug the issue.

Using check_running_pid() to check if the process is still running
doesn't work. A process started via subprocess popen that has ended
will be in a zombie state until a call to wait/communicate/poll
is done, or until the object is deleted or garbage collected.

This adds also support for testing the behaviour of subprocess
poll() on the unit tests that use MockProcess.

A new test is added also for the battery of tests for the WPT
server.

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

(MockProcess.init):
(MockProcess.wait):
(MockProcess.communicate):
(MockProcess.poll):
(MockExecutive.popen):

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer.init):
(WebPlatformTestServer._prepare_config):
(WebPlatformTestServer._spawn_process):

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server_unittest.py:

(TestWebPlatformTestServer.test_corrupted_subserver_files):
(TestWebPlatformTestServer):
(TestWebPlatformTestServer.test_server_fails_to_start_throws_exception):

11:01 AM Changeset in webkit [212904] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

[Mac] Remove unneeded sandbox exceptions for media elements
https://bugs.webkit.org/show_bug.cgi?id=168767

Reviewed by Alex Christensen.

Remove several sandbox exceptions that have not been needed for the past four
or five macOS releases.

  • WebProcess/com.apple.WebProcess.sb.in:
11:00 AM Changeset in webkit [212903] by aakash_jain@apple.com
  • 3 edits in trunk/Source/WebKit/ios

Move instance member from WebFixedPositionContent to implementation file
https://bugs.webkit.org/show_bug.cgi?id=168766

Reviewed by Tim Horton.

  • WebCoreSupport/WebFixedPositionContent.h: Moving instance member to implementation file.
  • WebCoreSupport/WebFixedPositionContent.mm: Ditto.
10:59 AM Changeset in webkit [212902] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit2

[Mac] Remove com.apple.audio.VDCAssistant from sandboxes
https://bugs.webkit.org/show_bug.cgi?id=168764
<rdar://problem/16736919>

Reviewed by Alex Christensen.

Remove unneeded sandbox class.

  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
10:25 AM Changeset in webkit [212901] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, temporarily disable DataInteractionTests in TestWebKitAPI.

These will be reenabled in https://bugs.webkit.org/show_bug.cgi?id=168602.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
10:20 AM Changeset in webkit [212900] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix the cloop build. Needed a #if.

  • jit/ExecutableAllocator.cpp:
10:18 AM Changeset in webkit [212899] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fixed saving survey data
https://bugs.webkit.org/show_bug.cgi?id=168730

Reviewed by Joseph Pecoraro.

  • wp-content/themes/webkit/functions.php:
9:23 AM Changeset in webkit [212898] by Wenson Hsieh
  • 9 edits in trunk

Data interaction causes selection to fall out of sync between web/UI processes
https://bugs.webkit.org/show_bug.cgi?id=168735
<rdar://problem/30657817>

Reviewed by Tim Horton.

Source/WebKit2:

Fixes a bug with data interaction causing selection state to fall out of sync between the UI and web processes,
and also introduces testing infrastructure and tests for grabbing UI-side selection view rects in TestWebKitAPI.
While performing a data interaction operation, we now lift restrictions for assisting the focused node.

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

(-[WKContentView cleanupInteraction]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]):

Tools:

Adds a new method to TestWKWebView for querying selection view rects from the UI process and augments data
interaction unit tests to check for selection rects using this new hook.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(makeCGRectValue):
(TestWebKitAPI::TEST):

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

(-[TestWKWebView selectionRectsAfterPresentationUpdate]):

  • TestWebKitAPI/ios/DataInteractionSimulator.h:
  • TestWebKitAPI/ios/DataInteractionSimulator.mm:

(-[DataInteractionSimulator _resetSimulatedState]):
(-[DataInteractionSimulator runFrom:to:]):
(-[DataInteractionSimulator finalSelectionRects]):

8:58 AM Changeset in webkit [212897] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603.1.30.0-branch/Source/JavaScriptCore

rdar://problem/30635733

8:58 AM Changeset in webkit [212896] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.0-branch/Source

Versioning.

8:54 AM Changeset in webkit [212895] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603.1.30.1-branch/Source/WebCore

Merge r212828. rdar://problem/30636288

8:54 AM Changeset in webkit [212894] by matthew_hanson@apple.com
  • 3 edits
    2 deletes in branches/safari-603.1.30.1-branch

Roll out r212737 via r212740. rdar://problem/30636288

8:54 AM Changeset in webkit [212893] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603.1.30.1-branch/Source/WebCore

Merge r212554. rdar://problem/30636115

8:54 AM Changeset in webkit [212892] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.1-branch/Source

Versioning.

8:47 AM Changeset in webkit [212891] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

[GTK] Crash attempting to load Flash plugin in Wayland
https://bugs.webkit.org/show_bug.cgi?id=163159

Reviewed by Michael Catanzaro.

The problem is that we check if the current diplay is X11 or Wayland also in the plugin process, but with GTK2
plugins the display is always X11. We should early reject plugins requiring GTK2 in the UI process when the
current display is Wayland.

  • UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:

(WebKit::PluginInfoStore::getPluginInfo):

  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::PluginProcessProxy::scanPlugin):

  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::createPluginContainer): Add an assert to ensure this message is never received on a
non-X11 display.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::createPluginContainer): Never send CreatePluginContainer message to the UI process if the
display is not X11.

8:39 AM Changeset in webkit [212890] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Gardening of some flaky tests

Unreviewed.

  • platform/gtk/TestExpectations: Update some expectations or add new cases of flaky tests.
8:28 AM Changeset in webkit [212889] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GStreamer] Several layout tests trigger GStreamer-CRITICAL : gst_bin_get_by_name: assertion 'GST_IS_BIN (bin)' failed
https://bugs.webkit.org/show_bug.cgi?id=167016

Reviewed by Xabier Rodriguez-Calvar.

This is because we create AudioSourceProviderGStreamer objects that are never loaded. In the destructor the
AudioSourceProviderGStreamer calls gst_bin_get_by_name() on its m_audioSinkBin that is nullptr. We could simply
check m_audioSinkBin in the destructor, but I think it's better to simply not create
AudioSourceProviderGStreamer for nothing. MediaPlayerPrivateGStreamer should create the AudioSourceProvider on demand.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): Do not create the AudioSourceProvider.
(WebCore::MediaPlayerPrivateGStreamer::createAudioSink): Call ensureAudioSourceProvider() before using m_audioSourceProvider.
(WebCore::MediaPlayerPrivateGStreamer::ensureAudioSourceProvider): Create the AudioSourceProvider if needed.
(WebCore::MediaPlayerPrivateGStreamer::audioSourceProvider): Ensure and return the m_audioSourceProvider.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
8:15 AM Changeset in webkit [212888] by matthew_hanson@apple.com
  • 3 edits in branches/safari-603.1.30.0-branch/Source/WebCore

Merge r212828. rdar://problem/30636274

8:15 AM Changeset in webkit [212887] by matthew_hanson@apple.com
  • 3 edits
    2 deletes in branches/safari-603.1.30.0-branch

Roll out r212737 via r212740. rdar://problem/30636274

8:15 AM Changeset in webkit [212886] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603.1.30.0-branch/Source/WebCore

Merge r212554. rdar://problem/30636115

8:15 AM Changeset in webkit [212885] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.0-branch/Source

Versioning.

7:54 AM Changeset in webkit [212884] by clopez@igalia.com
  • 3 edits
    1 delete in trunk/LayoutTests

[GTK] MediaStream and WebRTC layout test gardening

Unreviewed.

  • TestExpectations: Clarify some comments.
  • platform/gtk/TestExpectations: Unskip most of the MediaStream / WebRTC tests for GTK and mark the expected failures accordingly.
  • platform/gtk/fast/mediastream/RTCPeerConnection-more-media-to-negotiate-expected.txt: Removed. The test passes on GTK with the

general test expectation.

7:13 AM Changeset in webkit [212883] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit2

[MediaStream iOS] Allow web process sandbox to be extended for media capture
https://bugs.webkit.org/show_bug.cgi?id=168756

Reviewed by Brent Fulgham.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Add rules to dynamically

extend the sandbox to allow access to the camera and/or microphone.

3:27 AM Changeset in webkit [212882] by tpopela@redhat.com
  • 2 edits in trunk

[GTK] Compilation fails if using ninja together with icecream and cmake > 3.5
https://bugs.webkit.org/show_bug.cgi?id=168770

Reviewed by Carlos Garcia Campos.

If using cmake >= 3.6 together with ninja generator and icecream, the
build will fail as icecream does not correctly handle the response
files and it's not passing compiler flags from there to the compiler
itself (in our case it's not passing -fPIC which leads to the
failure while linking). Don't enable the ninja's response files
support if we fulfill the preconditions.

  • Source/cmake/OptionsCommon.cmake:
3:24 AM Changeset in webkit [212881] by tpopela@redhat.com
  • 9 edits
    2 adds in trunk

[GTK] Drag and drop is always moving the content even if copy is requested
https://bugs.webkit.org/show_bug.cgi?id=168424

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Drag and drop is always moving the content around even if the copy is
requested (i.e. by pressing the Control key).

Test: editing/pasteboard/drag-drop-copy-content.html

  • page/gtk/DragControllerGtk.cpp:

(WebCore::DragController::isCopyKeyDown):

Source/WebKit2:

Drag and drop is always moving the content around even if the copy is
requested (i.e. by pressing the Control key).

  • UIProcess/gtk/DragAndDropHandler.cpp:

(WebKit::DragAndDropHandler::drop):

LayoutTests:

Mark the editing/pasteboard/drag-drop-copy-content.html as failing
as WTR doesn't know how to perform drag and drop in WK2. Also the
test does not pass on the mac WK1, created a bug for it.

  • platform/efl/TestExpectations:
  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:

Feb 22, 2017:

11:24 PM Changeset in webkit [212880] by aakash_jain@apple.com
  • 3 edits in trunk/Source/WebKit/ios

Move instance members from WebPDFView to implementation file
https://bugs.webkit.org/show_bug.cgi?id=168765

Reviewed by Tim Horton.

  • WebView/WebPDFViewIOS.h: Moving instance members to implementation file.
  • WebView/WebPDFViewIOS.mm: Ditto.
11:19 PM Changeset in webkit [212879] by aakash_jain@apple.com
  • 5 edits in trunk/Source/WebKit

Export Objective-C symbols for variables in Webkit SPI
https://bugs.webkit.org/show_bug.cgi?id=168758

Reviewed by Alexey Proskuryakov.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj: Generating separate .exp file for i386 without _OBJC_IVAR symbols.

Source/WebKit/mac:

  • Configurations/WebKitLegacy.xcconfig: using separate .exp file for i386.
  • WebKit.exp: Added various Objective-C symbols.
11:10 PM Changeset in webkit [212878] by Carlos Garcia Campos
  • 15 edits in trunk

Better handle Thread and RunLoop initialization
https://bugs.webkit.org/show_bug.cgi?id=167828

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading): Do not initialize double_conversion, that is already initialized by WTF, and GC
threads that will be initialized by WTF main thread when needed.

Source/WebKit/win:

Remove unnecessary call to WTF::initializeMainThread().

  • WebView.cpp:

(WebView::WebView):

Source/WebKit2:

Remove unnecessary call to WTF::initializeMainThread().

  • Shared/WebKit2Initialize.cpp:

(WebKit::InitializeWebKit2):

Source/WTF:

Make initialization functions more independent so that they can run in different
order. WTF::initializeMainThread initializes WTF threading, so that neither WTF nor JSC theading need to be
initialized before. RunLoop::initializeMainRunLoop() requires main thread to be initialized in some
ports, so it initializes main thread too. WebKit1 always calls WTF::initializeMainThreadToProcessMainThread()
before RunLoop::initializeMainRunLoop() so there's no problem there. GC threads are initialized alwayas by the
main thread. The rules should be simpler now:

  • JSC::initializeThreading: should always be called when JSC is used.
  • WTF::initializeThreading: only needs to be explicitly called when JSC is not used and process doesn't initialize a main thread or main run loop.
  • WTF::initializeMainThread: only needs to be explicitly called if process initializes a main thread but not a main run loop.
  • WTF::initializeMainThreadToProcessMainThread(): should always be called in WebKit1 before RunLoop::initializeMainRunLoop().
  • RunLoop::initializeMainRunLoop(): to initialize the main run loop. The only requirement is JSC::initializeThreading() to be called before if JSC is used.
  • wtf/MainThread.cpp:

(WTF::initializeMainThreadOnce): Use pthread_once to initialize the main thread also in GTK+ port.
(WTF::initializeMainThreadToProcessMainThreadOnce): Call initializeThreading() before the platform
initialization and initializeGCThreads() after it.
(WTF::initializeMainThread): Ditto.

  • wtf/RunLoop.cpp:

(WTF::RunLoop::initializeMainRunLoop): Call initializeMainThread().

  • wtf/glib/MainThreadGLib.cpp:

(WTF::initializeMainThreadPlatform):
(WTF::isMainThread):

  • wtf/mac/MainThreadMac.mm:

(WTF::initializeMainThreadPlatform): Remove call to initializeGCThreads().
(WTF::initializeMainThreadToProcessMainThreadPlatform): Ditto.

Tools:

Remove unnecessary calls to WTF::initializeMainThread().

  • TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp:

(TestWebKitAPI::ComplexTextControllerTest::SetUp):

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::ContentExtensionTest::SetUp):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

10:35 PM Changeset in webkit [212877] by jfbastien@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

WebAssembly: clear out insignificant i32 bits when calling JavaScript
https://bugs.webkit.org/show_bug.cgi?id=166677

Reviewed by Keith Miller.

When WebAssembly calls JavaScript it needs to clear out the
insignificant bits of int32 values:

+------------------- tag
| +---------------- insignificant
| | +------------ 32-bit integer value
| | |

|
0xffff0000ffffffff

At least some JavaScript code assumes that these bits are all
zero. In the wasm-to-wasm.js example we store a 64-bit value in an
object with lo / hi fields, each containing 32-bit integers. We
then load these back, and the baseline compiler fails its
comparison because it first checks the value are the same type
(yes, because the int32 tag is set in both), and then whether they
have the same value (no, because comparing the two registers
fails). We could argue that the baseline compiler is wrong for
performing a 64-bit comparison, but it doesn't really matter
because there's not much of a point in breaking that invariant for
WebAssembly's sake.

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToJs):

10:11 PM Changeset in webkit [212876] by mmaxfield@apple.com
  • 9 edits in trunk

[Cocoa] Remove Yosemite-specific font lookup code
https://bugs.webkit.org/show_bug.cgi?id=168682

Reviewed by Zalan Bujtas.

Source/WebCore:

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::platformFontLookupWithFamily):
(WebCore::fontWithFamily):

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::platformInvalidateFontCache):
(WebCore::acceptableChoice): Deleted.
(WebCore::betterChoice): Deleted.
(WebCore::desiredFamilyToAvailableFamilyMap): Deleted.
(WebCore::hasDesiredFamilyToAvailableFamilyMapping): Deleted.
(WebCore::rememberDesiredFamilyToAvailableFamilyMapping): Deleted.
(WebCore::toAppKitFontWeight): Deleted.
(WebCore::appkitWeightToFontWeight): Deleted.
(WebCore::toNSFontTraits): Deleted.
(WebCore::platformFontWithFamily): Deleted.

Source/WTF:

  • wtf/Platform.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(fontWhitelist):
(adjustFonts):
(createWebViewAndOffscreenWindow):
(drt_NSFontManager_availableFontFamilies): Deleted.
(drt_NSFontManager_availableFonts): Deleted.
(swizzleNSFontManagerMethods): Deleted.

  • WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:

(WTR::activateFonts):
(WTR::allowedFontFamilySet): Deleted.
(WTR::systemHiddenFontFamilySet): Deleted.
(WTR::wtr_NSFontManager_availableFontFamilies): Deleted.
(WTR::wtr_NSFontManager_availableFonts): Deleted.
(WTR::swizzleNSFontManagerMethods): Deleted.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::generateWhitelist):
(WTR::TestController::platformInitializeContext):

8:43 PM Changeset in webkit [212875] by rniwa@webkit.org
  • 2 edits in trunk

Add GTK+ build instruction to ReadMe.md
https://bugs.webkit.org/show_bug.cgi?id=168745

Reviewed by Michael Catanzaro.

Add instructions to build GTK+ port.

Removed the instruction to set the default configuration since that didn't seem important.

  • ReadMe.md:
7:41 PM Changeset in webkit [212874] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit/ios

Export m_isLoggingEnabled symbol from MemoryMeasure.h
https://bugs.webkit.org/show_bug.cgi?id=168760

Reviewed by Alexey Proskuryakov.

  • WebKit.iOS.exp: Exporting m_isLoggingEnabled symbol.
6:57 PM Changeset in webkit [212873] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Unreviewed, drop console logging landed by mistake as part of r212832.

  • UIProcess/BackgroundProcessResponsivenessTimer.cpp:

(WebKit::BackgroundProcessResponsivenessTimer::timerFired):

6:55 PM Changeset in webkit [212872] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

[Modern Media Controls] Clicking on the video doesn't toggle playback state in fullscreen on macOS
https://bugs.webkit.org/show_bug.cgi?id=168755
<rdar://problem/30664484>

Patch by Antoine Quint <Antoine Quint> on 2017-02-22
Reviewed by Dean Jackson.

Source/WebCore:

We now call super in the handleEvent() method of MacOSFullscreenMediaControls if we're not dealing
with an event type and target combination that was specifically registered in this class's scope.
We had mistakenly added the call to super.handleEvent(event) in the wrong method when fixing
https://bugs.webkit.org/show_bug.cgi?id=168515.

Test: media/modern-media-controls/media-controller/media-controller-click-on-video-background-should-pause-fullscreen.html

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.js:

(MacOSFullscreenMediaControls.prototype.handleEvent):
(MacOSFullscreenMediaControls.prototype._handleMousedown):

  • Modules/modern-media-controls/controls/macos-media-controls.js:

(MacOSMediaControls.prototype.handleEvent):
(MacOSMediaControls):

LayoutTests:

Add a dedicated test for fullscreen to check that clicking on the video correctly toggles playback.

  • media/modern-media-controls/media-controller/media-controller-click-on-video-background-should-pause-fullscreen-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-click-on-video-background-should-pause-fullscreen.html: Added.
  • platform/ios-simulator/TestExpectations:
6:52 PM Changeset in webkit [212871] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.30.0.3

Tag Safari-603.1.30.0.3.

5:58 PM Changeset in webkit [212870] by Brent Fulgham
  • 5 edits in trunk/Source/WebKit2

[Mac] Tighten sandbox to deny process-info* access
https://bugs.webkit.org/show_bug.cgi?id=168704
<rdar://problem/16371441>

Reviewed by Alex Christensen.

Tighten the various WebKit sandboxes by denying access to process-info.
Add back specific features needed to run WebKit tests and to do browsing
of websites (including plugins).

  • DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
5:55 PM Changeset in webkit [212869] by graouts@webkit.org
  • 5 edits in trunk

[Modern Media Controls] Scrubber stops moving while scrubbing on macOS
https://bugs.webkit.org/show_bug.cgi?id=168518
<rdar://problem/30577637>

Reviewed by Dean Jackson.

Source/WebCore:

As we start to scrub, controlValueWillStartChanging() is called on
ScrubberSupport and pauses the media if it's not already paused. This
causes the play/pause button to change icon and for layout() to be
called on MacOSInlineMediaControls. This in turns sets the .children
property on the .controlsBar and eventually yields a DOM manipulation
which re-inserts the scrubber's DOM hierarchy, causing stutters during
user interaction.

Our solution is to make the .children setter smarter about identifying
that the children list hasn't changed and that no DOM invalidation is
necessary.

  • Modules/modern-media-controls/controls/layout-node.js:

(LayoutNode.prototype.set children):

LayoutTests:

Add assertions to check that setting children to a copy of itself doesn't
mark nodes as needing layout.

  • media/modern-media-controls/layout-node/children-expected.txt:
  • media/modern-media-controls/layout-node/children.html:
5:48 PM Changeset in webkit [212868] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[Modern Media Controls] Controls bar may disappear while captions menu is visible
https://bugs.webkit.org/show_bug.cgi?id=168751
<rdar://problem/30663411>

Patch by Antoine Quint <Antoine Quint> on 2017-02-22
Reviewed by Dean Jackson.

Source/WebCore:

We now prevent the controls bar from fading out due to the auto-hide timer firing
when the tracks panel is up, and wait until the track panel is hidden before fading
the controls bar.

Test: media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html

  • Modules/modern-media-controls/controls/controls-bar.js:

(ControlsBar.prototype.set userInteractionEnabled):
(ControlsBar.prototype._autoHideTimerFired):

LayoutTests:

Add a new test to check that we correctly prevent the controls bar from fading out
due to the auto-hide timer firing when the tracks panel is up, and that it fades
once the track panel disappears after the auto-hide timer has fired.

  • media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading-expected.txt: Added.
  • media/modern-media-controls/tracks-panel/tracks-panel-prevent-controls-bar-from-fading.html: Added.
5:37 PM Changeset in webkit [212867] by keith_miller@apple.com
  • 8 edits
    1 delete in trunk/Source

Remove the demand executable allocator
https://bugs.webkit.org/show_bug.cgi?id=168754

Reviewed by Saam Barati.

Source/JavaScriptCore:

We currently only use the demand executable allocator for non-iOS 32-bit platforms.
Benchmark results on a MBP indicate there is no appreciable performance difference
between a the fixed and demand allocators. In a future patch I will go back through
this code and remove more of the abstractions.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • jit/ExecutableAllocator.cpp:

(JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator):
(JSC::FixedVMPoolExecutableAllocator::initializeSeparatedWXHeaps):
(JSC::FixedVMPoolExecutableAllocator::jitWriteThunkGenerator):
(JSC::FixedVMPoolExecutableAllocator::genericWriteToJITRegion):
(JSC::ExecutableAllocator::initializeAllocator):
(JSC::ExecutableAllocator::ExecutableAllocator):
(JSC::FixedVMPoolExecutableAllocator::~FixedVMPoolExecutableAllocator):
(JSC::ExecutableAllocator::isValid):
(JSC::ExecutableAllocator::underMemoryPressure):
(JSC::ExecutableAllocator::memoryPressureMultiplier):
(JSC::ExecutableAllocator::allocate):
(JSC::ExecutableAllocator::isValidExecutableMemory):
(JSC::ExecutableAllocator::getLock):
(JSC::ExecutableAllocator::committedByteCount):
(JSC::ExecutableAllocator::dumpProfile):
(JSC::DemandExecutableAllocator::DemandExecutableAllocator): Deleted.
(JSC::DemandExecutableAllocator::~DemandExecutableAllocator): Deleted.
(JSC::DemandExecutableAllocator::bytesAllocatedByAllAllocators): Deleted.
(JSC::DemandExecutableAllocator::bytesCommittedByAllocactors): Deleted.
(JSC::DemandExecutableAllocator::dumpProfileFromAllAllocators): Deleted.
(JSC::DemandExecutableAllocator::allocateNewSpace): Deleted.
(JSC::DemandExecutableAllocator::notifyNeedPage): Deleted.
(JSC::DemandExecutableAllocator::notifyPageIsFree): Deleted.
(JSC::DemandExecutableAllocator::allocators): Deleted.
(JSC::DemandExecutableAllocator::allocatorsMutex): Deleted.

  • jit/ExecutableAllocator.h:
  • jit/ExecutableAllocatorFixedVMPool.cpp: Removed.
  • jit/JITStubRoutine.h:

(JSC::JITStubRoutine::canPerformRangeFilter):
(JSC::JITStubRoutine::filteringStartAddress):
(JSC::JITStubRoutine::filteringExtentSize):

Source/WTF:

  • wtf/Platform.h:
5:18 PM Changeset in webkit [212866] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.30.4.1

Tag Safari-603.1.30.4.1.

5:05 PM Changeset in webkit [212865] by jmarcell@apple.com
  • 4 edits
    2 adds in tags/Safari-604.1.7

Merge r212828. rdar://problem/30632111

5:05 PM Changeset in webkit [212864] by jmarcell@apple.com
  • 2 edits in tags/Safari-604.1.7/Source/WTF

Merge r212849.

5:05 PM Changeset in webkit [212863] by jmarcell@apple.com
  • 28 edits
    24 deletes in tags/Safari-604.1.7

Merge r212841. rdar://problem/30352793

4:20 PM Changeset in webkit [212862] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603.1.30.0-branch/Source/WebCore

rdar://problem/30657889

4:19 PM Changeset in webkit [212861] by commit-queue@webkit.org
  • 7 edits in trunk

[Modern Media Controls] Can't set the volume slider with macOS inline controls
https://bugs.webkit.org/show_bug.cgi?id=168747
<rdar://problem/30605528>

Patch by Antoine Quint <Antoine Quint> on 2017-02-22
Reviewed by Dean Jackson.

Source/WebCore:

Only call super for events we haven't registered specifically in the context
of this class. Otherwise we'd invalidate the volume container visibility for
a "mousedown" event registered by the MacOSMediaControls, the super class.

  • Modules/modern-media-controls/controls/macos-inline-media-controls.js:

(MacOSInlineMediaControls.prototype.handleEvent):

LayoutTests:

Add some assertions to check that the volume slider container remains visible
after interacting with the volume slider.

  • media/modern-media-controls/volume-support/volume-support-click-expected.txt:
  • media/modern-media-controls/volume-support/volume-support-click.html:
  • media/modern-media-controls/volume-support/volume-support-drag-expected.txt:
  • media/modern-media-controls/volume-support/volume-support-drag.html:
3:55 PM Changeset in webkit [212860] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Replace SimpleLineLayout::Range by WTF::IteratorRange
https://bugs.webkit.org/show_bug.cgi?id=168742

Reviewed by Zalan Bujtas.

Kill a redundant custom type.

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::rangeForRect):
(WebCore::SimpleLineLayout::RunResolver::rangeForRenderer):
(WebCore::SimpleLineLayout::RunResolver::rangeForRendererWithOffsets):

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::LineResolver::rangeForRect):
(WebCore::SimpleLineLayout::Range::Range): Deleted.
(WebCore::SimpleLineLayout::Range::begin): Deleted.
(WebCore::SimpleLineLayout::Range::end): Deleted.

3:44 PM Changeset in webkit [212859] by aakash_jain@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Move instance members from WKQuadObject to implementation file
https://bugs.webkit.org/show_bug.cgi?id=168740

Reviewed by Tim Horton.

  • DOM/DOM.mm: Moving instance member to implementation file.
  • DOM/DOMExtensions.h: Ditto.
3:38 PM Changeset in webkit [212858] by aakash_jain@apple.com
  • 3 edits in trunk/Source/WebKit/ios

Move instance members from WebPDFViewPlaceholder.h to implementation file
https://bugs.webkit.org/show_bug.cgi?id=168705

Reviewed by Tim Horton.

  • WebView/WebPDFViewPlaceholder.h: Moving instance members to implementation file.
  • WebView/WebPDFViewPlaceholder.mm: Ditto.
3:30 PM Changeset in webkit [212857] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add the Web Authentication API as "Under Consideration".

  • features.json:
3:12 PM Changeset in webkit [212856] by aakash_jain@apple.com
  • 3 edits in trunk/Source/WebKit/ios

Move instance members from WebSelectionRect.h to implementation file
https://bugs.webkit.org/show_bug.cgi?id=168732

Reviewed by Tim Horton.

  • WebCoreSupport/WebSelectionRect.h: Moving instance members to implementation file.
  • WebCoreSupport/WebSelectionRect.m: Ditto.
3:09 PM Changeset in webkit [212855] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: Sidebar borders are on the wrong side
https://bugs.webkit.org/show_bug.cgi?id=168743

Patch by Devin Rousso <Devin Rousso> on 2017-02-22
Reviewed by Matt Baker.

  • UserInterface/Views/Sidebar.css:

(body[dir=ltr] .sidebar.right > .resizer, body[dir=rtl] .sidebar.left > .resizer):
(body[dir=ltr] .sidebar.left > .resizer, body[dir=rtl] .sidebar.right > .resizer):
(body[dir=ltr] .sidebar.left, body[dir=rtl] .sidebar.right):
(body[dir=ltr] .sidebar.right, body[dir=rtl] .sidebar.left):
(.sidebar.right > .resizer): Deleted.
(.sidebar.left > .resizer): Deleted.
(.sidebar.left): Deleted.
(.sidebar.right): Deleted.

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar.prototype.resizerDragging):
Reverse the change if the direction is RTL.

2:37 PM Changeset in webkit [212854] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

Simple line layout: Set the pagination strut on the flow when the first line does not fit the page.
https://bugs.webkit.org/show_bug.cgi?id=168738
<rdar://problem/30659469>

Reviewed by Antti Koivisto.

The pagination strut for the first line is tracked by the parent RenderBlockFlow and not by
the line itself (see RenderBlockFlow::adjustLinePositionForPagination()). Also renamed *PaginationStrut* to
*LineStrut* to make sure we don't confuse it with the block level strut.

Not enabled yet.

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::computeLineTopAndBottomWithOverflow):
(WebCore::SimpleLineLayout::computeLineBreakIndex):
(WebCore::SimpleLineLayout::setPageBreakForLine):
(WebCore::SimpleLineLayout::adjustLinePositionsForPagination):
(WebCore::SimpleLineLayout::create):
(WebCore::SimpleLineLayout::Layout::create):
(WebCore::SimpleLineLayout::Layout::Layout):

  • rendering/SimpleLineLayout.h:

(WebCore::SimpleLineLayout::Layout::hasLineStruts):
(WebCore::SimpleLineLayout::Layout::struts):
(WebCore::SimpleLineLayout::Layout::hasPaginationStruts): Deleted.

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow):

  • rendering/SimpleLineLayoutFunctions.h:

(WebCore::SimpleLineLayout::computeFlowHeight):

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::RunResolver::Run::computeBaselinePosition):

2:26 PM WebKitGTK/2.16.x edited by berto@igalia.com
(diff)
2:07 PM Changeset in webkit [212853] by rniwa@webkit.org
  • 7 edits
    1 add in trunk/Websites/perf.webkit.org

Make sampling algorithm more stable and introduce an abstraction for sampled data
https://bugs.webkit.org/show_bug.cgi?id=168693

Reviewed by Chris Dumez.

Before this patch, TimeSeriesChart's resampling resulted in some points poping up and disappearing as
the width of a chart is changed. e.g. when resizing the browser window. The bug was by caused by
the sample for a given width not always including all points for a smaller width so as the width is
expanded, some point may be dropped.

Fixed this by using a much simpler algorithm of always picking a point when the time interval between
the preceding point and the succeeding point is larger than the minimum space we allow for a given width.

Also introduced a new abstraction around the sample data: TimeSeriesView. A TimeSeriesView provides
a similar API to TimeSeries for a subset of the time series filtered by a time range a custom function.
This paves a way to adding the ability to select baseline, etc... on the chart status view.

TimeSeriesView can be in two modes:
Mode 1. The view represents a contiguous subrange of TimeSeries - In this mode, this._data references

the underlying TimeSeries's _data directly, and we use _startingIndex to adjust index given to
find the relative index. Finding the next point or the previous point of a given point is done
via looking up the point's seriesIndex and doing a simple arithmetic. In general, an index is
converted to the absolute index in the underlying TimeSeries's _data array.

Mode 2. The view represents a filtered non-contiguous subset of TimeSeries - In this mode, this._data is

its own array. Finding the next point or the previous point of a given point requires finding
a sibling point in the underlying TimeSeries which is in this view. Since this may result in O(n)
traversal and a hash lookup, we lazily build a map of each point to its position in _data instead.

  • public/v3/components/chart-status-view.js:

(ChartStatusView.prototype.updateStatusIfNeeded): Call selectedPoints instead of sampledDataBetween for
clarity. This function now returns a TimeSeriesView instead of a raw array.

  • public/v3/components/interactive-time-series-chart.js:

(InteractiveTimeSeriesChart.prototype.currentPoint): Updated now that _sampledTimeSeriesData contains
an array of TimeSeriesView's. Note that diff is either 0, -1, or 1.
(InteractiveTimeSeriesChart.prototype.selectedPoints): Ditto. sampledDataBetween no longer exists since
we can simply call viewTimeRange on TimeSeriesView returned by sampledDataBetween.
(InteractiveTimeSeriesChart.prototype.firstSelectedPoint): Ditto.
(InteractiveTimeSeriesChart.prototype._sampleTimeSeries): Use add since excludedPoints is now a Set.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart.prototype.sampledDataBetween): Deleted.
(TimeSeriesChart.prototype.firstSampledPointBetweenTime): Deleted.
(TimeSeriesChart.prototype._ensureSampledTimeSeries): Modernized the code. Use the the time interval of
the chart divided by the number of allowed points as the time interval used in the new sampling algorithm.
(TimeSeriesChart.prototype._sampleTimeSeries): Rewritten. We also create TimeSeriesView here.
(TimeSeriesChart.prototype._sampleTimeSeries.findMedian): Deleted.
(TimeSeriesChart.prototype._updateCanvasSizeIfClientSizeChanged): Fixed a bug that the canvas size wasn't
set to the correct value on Chrome when a high DPI screen is used.

  • public/v3/models/time-series.js:

(TimeSeries.prototype.viewBetweenPoints): Renamed from dataBetweenPoints. Now returns a TimeSeriesView.
(TimeSeriesView): Added. This constructor is to be called by viewBetweenPoints, viewTimeRange, and filter.
(TimeSeriesView.prototype._buildPointIndexMap): Added. Used in mode (2).
(TimeSeriesView.prototype.length): Added.
(TimeSeriesView.prototype.firstPoint): Added.
(TimeSeriesView.prototype.lastPoint): Added.
(TimeSeriesView.prototype.nextPoint): Added. Note index is always a position in this._data. In mode (1),
this is the position of the point in the underlying TimeSeries' _data. In mode (2), this is the position
of the point in this._data which is dictinct from the underlying TimeSeries' _data.
(TimeSeriesView.prototype.previousPoint): Ditto.
(TimeSeriesView.prototype.findPointByIndex): Added. Finds the point using the positional index from the
beginning of this view. findPointByIndex(0) on one view may not be same as findPointByIndex(0) of another.
(TimeSeriesView.prototype.findById): Added. This is O(n).
(TimeSeriesView.prototype.values): Added. Returns the value of each point in this view.
(TimeSeriesView.prototype.filter): Added. Creates a new view with a subset of data points the predicate
function returned true.
(TimeSeriesView.prototype.viewTimeRange): Added. Creates a new view with a subset of data points for the
given time ragne. When the resultant view would include all points of this view, it simply returns itself
as an optimization.
(TimeSeriesView.prototype.firstPointInTimeRange): Added. Returns the first point in the view which lies
within the specified time range.
(TimeSeriesView.prototype.Symbol.iterator): Added. Iterates over each point in the view.

  • public/v3/pages/analysis-task-page.js:

(AnalysisTaskChartPane.prototype.selectedPoints): Use selectedPoints in lieu of getting selection and then
calling sampledDataBetween with that range.

  • public/v3/pages/summary-page.js:

(SummaryPageConfigurationGroup.set _medianForTimeRange): Modernized.

  • unit-tests/time-series-tests.js: Added tests for TimeSeries and TimeSeriesView. Already caught bugs!

(addPointsToSeries):

1:55 PM Changeset in webkit [212852] by clopez@igalia.com
  • 2 edits in trunk/Tools

AutoInstaller should not skip the install step if the package is downloaded but not installed
https://bugs.webkit.org/show_bug.cgi?id=168737

Reviewed by Ryosuke Niwa.

Don't skip the install step if the package target path don't exists.
Fix the description for "should_refresh" optional argument.

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

(AutoInstaller.install):

1:52 PM Changeset in webkit [212851] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add biased coloring to Briggs and IRC
https://bugs.webkit.org/show_bug.cgi?id=168611

Reviewed by Filip Pizlo.

This patch implements biased coloring as proposed by Briggs. See section
5.3.3 of his thesis for more information: http://www.cs.utexas.edu/users/mckinley/380C/lecs/briggs-thesis-1992.pdf

The main idea of biased coloring is this:
We try to coalesce a move between u and v, but the conservative heuristic
fails. We don't want coalesce the move because we don't want to risk
creating an uncolorable graph. However, if the conservative heuristic fails,
it's not proof that the graph is uncolorable if the move were indeed coalesced.
So, when we go to color the tmps, we'll remember that we really want the
same register for u and v, and if legal during coloring, we will
assign them to the same register.

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
1:49 PM Changeset in webkit [212850] by andersca@apple.com
  • 5 edits in trunk/Source/WebKit2

Crash if there's a mismatch between the WebKit used by the UI process and child processes respectively
https://bugs.webkit.org/show_bug.cgi?id=168739
Part of rdar://problem/30631411.

Reviewed by Geoffrey Garen.

If the UI process and web process for some reason end up using different versions of the WebKit framework, weird things happen
because the message format is different between versions. To avoid this, send along the WebKit bundle version from the UI process
in the XPC bootstrap message, check that it matches inside the XPC main functions. If there's a mismatch, crash.

  • Shared/Cocoa/ChildProcessCocoa.mm:

(WebKit::ChildProcess::didReceiveInvalidMessage):
Fix parameters.

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:

(main):
Check for the bundle version and crash if it's not what we expect.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):
Initialize the bundle version.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::_WKSetCrashReportApplicationSpecificInformation):
Export this so we can call it from the XPC services without having to link WKSI.

1:33 PM Changeset in webkit [212849] by achristensen@apple.com
  • 2 edits in trunk/Source/WTF

Re-commit part of r212812 accidentally rolled out with r212841.
https://bugs.webkit.org/show_bug.cgi?id=167293

  • wtf/Platform.h:

Use libwebrtc on Mac if webrtc is enabled.

12:59 PM Changeset in webkit [212848] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[WebRTC] Some webrtc tests are failing
https://bugs.webkit.org/show_bug.cgi?id=168736

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-22

12:57 PM Changeset in webkit [212847] by commit-queue@webkit.org
  • 4 edits in trunk/Source

[WebRTC] Disable libwebrtc stderr logging in release mode
https://bugs.webkit.org/show_bug.cgi?id=168734

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-22
Reviewed by Tim Horton.

Source/ThirdParty/libwebrtc:

  • Source/webrtc/base/logging.h:

Source/WebCore:

No change of behavior.

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::initializePeerConnectionFactoryAndThreads):

12:46 PM Changeset in webkit [212846] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

Source/WebCore:
MediaStreamSourceNode never receives audio from MockRealtimeAudioSourceMac.
https://bugs.webkit.org/show_bug.cgi?id=168731

Reviewed by Eric Carlson.

Test: fast/mediastream/mock-media-source-webaudio.html

Because the audioSourceProvider can be created before the mock source is configured, explicitly configure the
source if necessary after creating the audioSourceProvider.

  • platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:

(WebCore::MockRealtimeAudioSourceMac::audioSourceProvider):

LayoutTests:
MediaStreamSourceNode never receives audio from a getUserMedia() created stream
https://bugs.webkit.org/show_bug.cgi?id=168731

Reviewed by Eric Carlson.

  • fast/mediastream/mock-media-source-webaudio-expected.txt: Added.
  • fast/mediastream/mock-media-source-webaudio.html: Added.
12:44 PM Changeset in webkit [212845] by Chris Dumez
  • 7 edits
    2 adds in trunk

Do not aggressively throttle DOM timers until they've reached their max nesting level
https://bugs.webkit.org/show_bug.cgi?id=168700
<rdar://problem/29808005>

Reviewed by Simon Fraser.

Source/WebCore:

Do not aggressively throttle DOM timers until they've actually areached their max
nesting level (5). This overly aggressive throttling of non-nested timers is what
was causing Google Maps to use 100% CPU in background tabs for several minutes.

Test: fast/dom/timer-throttling-hidden-page-non-nested.html

  • dom/Document.cpp:

(WebCore::Document::timerAlignmentInterval):

LayoutTests:

Add layout test coverage.

  • TestExpectations:
  • fast/dom/timer-throttling-hidden-page-expected.txt:
  • fast/dom/timer-throttling-hidden-page-non-nested-expected.txt: Added.
  • fast/dom/timer-throttling-hidden-page-non-nested.html: Added.
  • fast/dom/timer-throttling-hidden-page.html:
12:06 PM Changeset in webkit [212844] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[MediaStream iOS] Respond to capture interruptions and notifications
https://bugs.webkit.org/show_bug.cgi?id=168610

Reviewed by Jer Noble.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Drive-by cleanup: don't create
a sample buffer display layer unless there is an active video track.

  • platform/mediastream/mac/AVMediaCaptureSource.h:
  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::AVMediaCaptureSource): Add static_asserts to ensure that
WebCore::InterruptionReason values map directly to AVCaptureSessionInterruptionReason values.
(WebCore::AVMediaCaptureSource::~AVMediaCaptureSource): Minor cleanup.
(WebCore::AVMediaCaptureSource::startProducingData): Start listening for notifications before
starting the session.
(WebCore::AVMediaCaptureSource::stopProducingData): Remove the notification observers before
stopping the session.
(WebCore::AVMediaCaptureSource::setupSession): Minor style cleanup.
(WebCore::AVMediaCaptureSource::captureSessionRuntimeError): New. When the error is AVErrorMediaServicesWereReset,
sometimes caused by a mediaserverd crash, try to restart the session one time.
(WebCore::AVMediaCaptureSource::captureSessionBeginInterruption): Store the interruption reason.
(WebCore::AVMediaCaptureSource::captureSessionEndInterruption): Try to restart the session if
it was interrupted because the app went into multi-app layout mode.
(WebCore::sessionKVOProperties): Drive-by cleanup.
(-[WebCoreAVMediaCaptureSourceObserver initWithCallback:]):
(-[WebCoreAVMediaCaptureSourceObserver disconnect]):
(-[WebCoreAVMediaCaptureSourceObserver addNotificationObservers]):
(-[WebCoreAVMediaCaptureSourceObserver removeNotificationObservers]):
(-[WebCoreAVMediaCaptureSourceObserver sessionRuntimeError:]):
(-[WebCoreAVMediaCaptureSourceObserver beginSessionInterrupted:]):
(-[WebCoreAVMediaCaptureSourceObserver endSessionInterrupted:]):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::initializeCapabilities): Not all AVCaptureSession preset strings
are available on all platforms so load with SOFT_LINK_POINTER_OPTIONAL and NULL check before use.
(WebCore::sizeForPreset): Ditto.
(WebCore::AVVideoCaptureSource::bestSessionPresetForVideoDimensions): Ditto.

11:33 AM Changeset in webkit [212843] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

Simple line layout: ensureLineBoxes for paginated content.
https://bugs.webkit.org/show_bug.cgi?id=168729
<rdar://problem/30654400>

Reviewed by Antti Koivisto.

This patch sets the layout state bits for paginated subtree layout, when we are switching
over from simple line runs to inline tree.

Not enabled yet.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::ensureLineBoxes):

  • rendering/RenderView.cpp:

(WebCore::RenderView::pushLayoutStateForPagination): LayoutUnit(1) is not the real height, it's just
an indicator that we've got paginated content.

  • rendering/RenderView.h:
  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::create):
(WebCore::SimpleLineLayout::Layout::create):
(WebCore::SimpleLineLayout::Layout::Layout):

  • rendering/SimpleLineLayout.h:

(WebCore::SimpleLineLayout::Layout::isPaginated):
(WebCore::SimpleLineLayout::Layout::hasPaginationStruts):

  • rendering/SimpleLineLayoutFunctions.h:

(WebCore::SimpleLineLayout::computeFlowHeight):

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::RunResolver::Run::computeBaselinePosition):

11:26 AM Changeset in webkit [212842] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.7

Tag Safari-604.1.7.

10:36 AM Changeset in webkit [212841] by jmarcell@apple.com
  • 28 edits
    24 deletes in trunk

Rolling out r212757

Revert "Resource Load Statistics: Add alternate classification method"

10:27 AM Changeset in webkit [212840] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 24

Added a tag for Safari Technology Preview release 24.

10:03 AM Changeset in webkit [212839] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Do not use g_return_if_fail in EventSenderProxy::continuousMouseScrollBy
https://bugs.webkit.org/show_bug.cgi?id=168721

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-02-22
Reviewed by Michael Catanzaro.

Use WTFLogAlways instead. It's still shown in stderr, but it won't crash if we ever run tests with fatal
criticals.

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::continuousMouseScrollBy):

9:56 AM Changeset in webkit [212838] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: Settings tab labels need adjustment
https://bugs.webkit.org/show_bug.cgi?id=168497

Reviewed by Matt Baker.

Flip margins. Use 'text-align: end' instead of manually choosing
right and left based on body[dir].

  • UserInterface/Views/SettingsTabContentView.css:

(.content-view.settings > .setting-container > .setting-name):
(body[dir=ltr] .content-view.settings > .setting-container > .setting-name):
(body[dir=rtl] .content-view.settings > .setting-container > .setting-name):
(.content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]):
(body[dir=ltr] .content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]):
(body[dir=rtl] .content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]):
(.content-view.settings > .setting-container > .setting-value-controller input[type="number"]):
(body[dir=ltr] .content-view.settings > .setting-container > .setting-value-controller input[type="number"]):
(body[dir=rtl] .content-view.settings > .setting-container > .setting-value-controller input[type="number"]):

9:52 AM Changeset in webkit [212837] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603.1.30.4-branch/Source/WebCore

Merge r212831. rdar://problem/30628889

9:52 AM Changeset in webkit [212836] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603.1.30.4-branch/Source/WebCore

Merge r212730. rdar://problem/30515072

9:51 AM Changeset in webkit [212835] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r212730. rdar://problem/30515072

9:51 AM Changeset in webkit [212834] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r212831. rdar://problem/30628889

9:44 AM Changeset in webkit [212833] by aakash_jain@apple.com
  • 4 edits in trunk/Source/WebKit

Move iOS specific symbols to WebKit.ios.exp
https://bugs.webkit.org/show_bug.cgi?id=168726

Reviewed by Alexey Proskuryakov.

Source/WebKit/ios:

  • WebKit.iOS.exp:

Source/WebKit/mac:

  • WebKit.exp:
9:15 AM Changeset in webkit [212832] by Chris Dumez
  • 11 edits
    2 moves in trunk/Source/WebKit2

[WK2] Call processDidBecomeUnresponsive delegate when a background process is unresponsive
https://bugs.webkit.org/show_bug.cgi?id=168683
<rdar://problem/30558745>

Reviewed by Dan Bernstein.

Call processDidBecomeUnresponsive delegate when a background process is unresponsive
instead of killing it on WebKit side. This gives the client the choice about what it
wants to do about this process.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:
  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/BackgroundProcessResponsivenessTimer.cpp: Renamed from Source/WebKit2/UIProcess/UnresponsiveWebProcessTerminator.cpp.

(WebKit::BackgroundProcessResponsivenessTimer::BackgroundProcessResponsivenessTimer):
(WebKit::BackgroundProcessResponsivenessTimer::updateState):
(WebKit::BackgroundProcessResponsivenessTimer::timerFired):

  • UIProcess/BackgroundProcessResponsivenessTimer.h: Renamed from Source/WebKit2/UIProcess/UnresponsiveWebProcessTerminator.h.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::terminateProcess):

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

(WebKit::m_backgroundResponsivenessTimer):

  • UIProcess/WebProcessProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
9:05 AM Changeset in webkit [212831] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Compile fix.
https://bugs.webkit.org/show_bug.cgi?id=168713

Reviewed by Brent Fulgham.

The include file <ANGLE/ShaderLang.h> is not found.

  • testing/Internals.cpp:
8:54 AM Changeset in webkit [212830] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][EME] Fix issue with allowed systems extraction
https://bugs.webkit.org/show_bug.cgi?id=168717

Reviewed by Carlos Garcia Campos.

The allowed systems were not being extracted from the need-context
message because the loop was not stopping on the right condition.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::extractEventsAndSystemsFromMessage): Fix wrong
condition.
(WebCore::MediaPlayerPrivateGStreamerBase::handleProtectionEvent):
Add better debug category.

8:53 AM Changeset in webkit [212829] by berto@igalia.com
  • 2 edits in trunk

[GTK] [2.15.90] Disable RESOURCE_USAGE on non-Linux systems
https://bugs.webkit.org/show_bug.cgi?id=168714

Reviewed by Carlos Garcia Campos.

  • Source/cmake/OptionsGTK.cmake:
6:46 AM Changeset in webkit [212828] by Antti Koivisto
  • 4 edits
    2 adds in trunk

REGRESSION(r207669): Crash after mutating selector text
https://bugs.webkit.org/show_bug.cgi?id=168655
<rdar://problem/30632111>

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/css/selector-text-mutation-crash.html

  • style/StyleScope.cpp:

(WebCore::Style::Scope::resolver):
(WebCore::Style::Scope::updateStyleResolver):

Protect against entering scheduleUpdate and wiping style resolver while updating it.
Extension stylesheets can trigger this.

(WebCore::Style::Scope::scheduleUpdate):

Clear the style resolver immediately if style sheet content changes. The resolver may
have data structures that point to the old sheet contents.

The resolver would get wiped anyway when the scheduled update actually occurs.

  • style/StyleScope.h:

LayoutTests:

  • fast/css/selector-text-mutation-crash-expected.txt: Added.
  • fast/css/selector-text-mutation-crash.html: Added.
6:12 AM Changeset in webkit [212827] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] WebCrypto tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=165090

Unreviewed test gardening.

  • platform/win/TestExpectations:
5:23 AM Changeset in webkit [212826] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Mark fast/css/paint-order-shadow.html as failing.

  • platform/gtk/TestExpectations:
5:15 AM Changeset in webkit [212825] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Mark http/tests/media/video-redirect.html as timing out.

  • platform/gtk/TestExpectations:
5:09 AM Changeset in webkit [212824] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Remove duplicated entries.

  • platform/gtk/TestExpectations:
3:44 AM Changeset in webkit [212823] by svillar@igalia.com
  • 5 edits
    2 adds in trunk/Source/WebCore

[css-grid] Move the track sizing algorithm to its own class
https://bugs.webkit.org/show_bug.cgi?id=167988

Reviewed by Manuel Rego Casasnovas.

This is about moving the track sizing algorithm code out of RenderGrid to a new class
GridTrackSizingAlgorithm, making RenderGrid more compact and easy to maintain. A nice side
effect of this patch is the removal of the GridSizingData structure as it is no longer
needed. All the data structures in that class were transferred to GridTrackSizingAlgorithm
as private attribute members. The GridTrack class was also moved to the new file.

The algorithm execution starts with the call to run(). It's mandatory to call setup() before
any call to run() in order to properly configure the behaviour of the algorithm. You can
call setup() & run() multiple times for a single layout operation (normally twice, one for
columns and another one for rows). The algorithm uses a state machine to verify that the
client issues the calls in the proper order (i.e. first columns and then rows). After
finishing the layout, the client should call reset() to allow the algorithm to perform
cleanups and to prepare itself for another round of calls.

In order to implement the different behaviours of the algorithm depending on whether the
available size is definite or not, a strategy pattern was implemented in the
GridTrackSizingAlgorithmStrategy class. It has two subclasses, one for definite sizes and
another one for indefinite ones.

We took advantage of this change to perform some renames of the track sizing algorithm
methods that were still using the names from the first versions of the specs. Not only that,
the original track sizing algorithm method (computeUsedBreadthOfGridTracks) was split in 4
different parts representing the 4 steps of the algorithm.

No new tests as this is about moving code and refactoring.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/GridTrackSizingAlgorithm.cpp: Added.

(WebCore::GridTrack::baseSize):
(WebCore::GridTrack::growthLimit):
(WebCore::GridTrack::setBaseSize):
(WebCore::GridTrack::setGrowthLimit):
(WebCore::GridTrack::growthLimitIfNotInfinite):
(WebCore::GridTrack::setTempSize):
(WebCore::GridTrack::growTempSize):
(WebCore::GridTrack::setGrowthLimitCap):
(WebCore::GridTrack::ensureGrowthLimitIsBiggerThanBaseSize):
(WebCore::shouldClearOverrideContainingBlockContentSizeForChild):
(WebCore::hasOverrideContainingBlockContentSizeForChild):
(WebCore::setOverrideContainingBlockContentSizeForChild):
(WebCore::flowAwareDirectionForChild):
(WebCore::overrideContainingBlockContentSizeForChild):
(WebCore::computeMarginLogicalSizeForChild):
(WebCore::marginIntrinsicLogicalWidthForChild):
(WebCore::GridTrackSizingAlgorithm::setFreeSpace):
(WebCore::GridTrackSizingAlgorithm::rawGridTrackSize):
(WebCore::GridTrackSizingAlgorithm::computeTrackBasedSize):
(WebCore::GridTrackSizingAlgorithm::initialBaseSize):
(WebCore::GridTrackSizingAlgorithm::initialGrowthLimit):
(WebCore::GridTrackSizingAlgorithm::sizeTrackToFitNonSpanningItem):
(WebCore::GridTrackSizingAlgorithm::spanningItemCrossesFlexibleSizedTracks):
(WebCore::GridItemWithSpan::GridItemWithSpan):
(WebCore::GridItemWithSpan::gridItem):
(WebCore::GridItemWithSpan::span):
(WebCore::GridItemWithSpan::operator<):
(WebCore::GridTrackSizingAlgorithm::itemSizeForTrackSizeComputationPhase):
(WebCore::shouldProcessTrackForTrackSizeComputationPhase):
(WebCore::trackSizeForTrackSizeComputationPhase):
(WebCore::updateTrackSizeForTrackSizeComputationPhase):
(WebCore::trackShouldGrowBeyondGrowthLimitsForTrackSizeComputationPhase):
(WebCore::markAsInfinitelyGrowableForTrackSizeComputationPhase):
(WebCore::GridTrackSizingAlgorithm::increaseSizesToAccommodateSpanningItems):
(WebCore::sortByGridTrackGrowthPotential):
(WebCore::clampGrowthShareIfNeeded):
(WebCore::GridTrackSizingAlgorithm::distributeSpaceToTracks):
(WebCore::GridTrackSizingAlgorithm::assumedRowsSizeForOrthogonalChild):
(WebCore::GridTrackSizingAlgorithm::gridAreaBreadthForChild):
(WebCore::GridTrackSizingAlgorithm::gridTrackSize):
(WebCore::GridTrackSizingAlgorithm::computeFlexFactorUnitSize):
(WebCore::GridTrackSizingAlgorithm::computeFlexSizedTracksGrowth):
(WebCore::GridTrackSizingAlgorithm::findFrUnitSize):
(WebCore::GridTrackSizingAlgorithm::computeGridContainerIntrinsicSizes):
(WebCore::GridTrackSizingAlgorithmStrategy::logicalHeightForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::minContentForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::maxContentForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild):
(WebCore::GridTrackSizingAlgorithmStrategy::updateOverrideContainingBlockContentSizeForChild):
(WebCore::IndefiniteSizeStrategy::minLogicalWidthForChild):
(WebCore::IndefiniteSizeStrategy::layoutGridItemForMinSizeComputation):
(WebCore::IndefiniteSizeStrategy::maximizeTracks):
(WebCore::normalizedFlexFraction):
(WebCore::IndefiniteSizeStrategy::findUsedFlexFraction):
(WebCore::IndefiniteSizeStrategy::recomputeUsedFlexFractionIfNeeded):
(WebCore::DefiniteSizeStrategy::minLogicalWidthForChild):
(WebCore::DefiniteSizeStrategy::maximizeTracks):
(WebCore::DefiniteSizeStrategy::layoutGridItemForMinSizeComputation):
(WebCore::DefiniteSizeStrategy::findUsedFlexFraction):
(WebCore::DefiniteSizeStrategy::recomputeUsedFlexFractionIfNeeded):
(WebCore::GridTrackSizingAlgorithm::initializeTrackSizes):
(WebCore::GridTrackSizingAlgorithm::resolveIntrinsicTrackSizes):
(WebCore::GridTrackSizingAlgorithm::stretchFlexibleTracks):
(WebCore::GridTrackSizingAlgorithm::advanceNextState):
(WebCore::GridTrackSizingAlgorithm::isValidTransition):
(WebCore::GridTrackSizingAlgorithm::setup):
(WebCore::GridTrackSizingAlgorithm::run):
(WebCore::GridTrackSizingAlgorithm::reset):
(WebCore::GridTrackSizingAlgorithm::tracksAreWiderThanMinTrackBreadth):
(WebCore::GridTrackSizingAlgorithm::StateMachine::StateMachine):
(WebCore::GridTrackSizingAlgorithm::StateMachine::~StateMachine):

  • rendering/GridTrackSizingAlgorithm.h: Added.

(WebCore::GridTrack::GridTrack):
(WebCore::GridTrack::infiniteGrowthPotential):
(WebCore::GridTrack::plannedSize):
(WebCore::GridTrack::setPlannedSize):
(WebCore::GridTrack::tempSize):
(WebCore::GridTrack::infinitelyGrowable):
(WebCore::GridTrack::setInfinitelyGrowable):
(WebCore::GridTrack::growthLimitCap):
(WebCore::GridTrack::growthLimitIsInfinite):
(WebCore::GridTrack::isGrowthLimitBiggerThanBaseSize):
(WebCore::GridTrackSizingAlgorithmStrategy::GridTrackSizingAlgorithmStrategy):
(WebCore::GridTrackSizingAlgorithmStrategy::computeTrackBasedSize):
(WebCore::GridTrackSizingAlgorithmStrategy::direction):
(WebCore::GridTrackSizingAlgorithmStrategy::findFrUnitSize):
(WebCore::GridTrackSizingAlgorithmStrategy::distributeSpaceToTracks):
(WebCore::GridTrackSizingAlgorithmStrategy::renderGrid):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::RenderGrid):
(WebCore::RenderGrid::computeTrackBasedLogicalHeight):
(WebCore::RenderGrid::computeTrackSizesForDefiniteSize):
(WebCore::RenderGrid::repeatTracksSizingIfNeeded):
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeTrackSizesForIndefiniteSize):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
(WebCore::RenderGrid::applyStretchAlignmentToTracksIfNeeded):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::gridAreaBreadthForChildIncludingAlignmentOffsets):
(WebCore::RenderGrid::populateGridPositionsForDirection):
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::findChildLogicalPosition):
(WebCore::GridTrack::GridTrack): Deleted.
(WebCore::GridTrack::baseSize): Deleted.
(WebCore::GridTrack::growthLimit): Deleted.
(WebCore::GridTrack::setBaseSize): Deleted.
(WebCore::GridTrack::setGrowthLimit): Deleted.
(WebCore::GridTrack::infiniteGrowthPotential): Deleted.
(WebCore::GridTrack::growthLimitIfNotInfinite): Deleted.
(WebCore::GridTrack::plannedSize): Deleted.
(WebCore::GridTrack::setPlannedSize): Deleted.
(WebCore::GridTrack::tempSize): Deleted.
(WebCore::GridTrack::setTempSize): Deleted.
(WebCore::GridTrack::growTempSize): Deleted.
(WebCore::GridTrack::infinitelyGrowable): Deleted.
(WebCore::GridTrack::setInfinitelyGrowable): Deleted.
(WebCore::GridTrack::setGrowthLimitCap): Deleted.
(WebCore::GridTrack::growthLimitCap): Deleted.
(WebCore::GridTrack::growthLimitIsInfinite): Deleted.
(WebCore::GridTrack::isGrowthLimitBiggerThanBaseSize): Deleted.
(WebCore::GridTrack::ensureGrowthLimitIsBiggerThanBaseSize): Deleted.
(WebCore::RenderGrid::GridSizingData::GridSizingData): Deleted.
(WebCore::RenderGrid::GridSizingData::freeSpace): Deleted.
(WebCore::RenderGrid::GridSizingData::availableSpace): Deleted.
(WebCore::RenderGrid::GridSizingData::setAvailableSpace): Deleted.
(WebCore::RenderGrid::GridSizingData::advanceNextState): Deleted.
(WebCore::RenderGrid::GridSizingData::isValidTransition): Deleted.
(WebCore::RenderGrid::GridSizingData::grid): Deleted.
(WebCore::RenderGrid::GridSizingData::setFreeSpace): Deleted.
(WebCore::RenderGrid::computeTrackSizesForDirection): Deleted.
(WebCore::RenderGrid::computeIntrinsicLogicalHeight): Deleted.
(WebCore::normalizedFlexFraction): Deleted.
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks): Deleted.
(WebCore::RenderGrid::computeFlexSizedTracksGrowth): Deleted.
(WebCore::RenderGrid::computeUsedBreadthOfMinLength): Deleted.
(WebCore::RenderGrid::computeUsedBreadthOfMaxLength): Deleted.
(WebCore::RenderGrid::computeFlexFactorUnitSize): Deleted.
(WebCore::RenderGrid::findFlexFactorUnitSize): Deleted.
(WebCore::hasOverrideContainingBlockContentSizeForChild): Deleted.
(WebCore::setOverrideContainingBlockContentSizeForChild): Deleted.
(WebCore::shouldClearOverrideContainingBlockContentSizeForChild): Deleted.
(WebCore::RenderGrid::rawGridTrackSize): Deleted.
(WebCore::RenderGrid::gridTrackSize): Deleted.
(WebCore::RenderGrid::logicalHeightForChild): Deleted.
(WebCore::RenderGrid::minSizeForChild): Deleted.
(WebCore::RenderGrid::updateOverrideContainingBlockContentSizeForChild): Deleted.
(WebCore::RenderGrid::minContentForChild): Deleted.
(WebCore::RenderGrid::maxContentForChild): Deleted.
(WebCore::GridItemWithSpan::GridItemWithSpan): Deleted.
(WebCore::GridItemWithSpan::gridItem): Deleted.
(WebCore::GridItemWithSpan::span): Deleted.
(WebCore::GridItemWithSpan::operator<): Deleted.
(WebCore::RenderGrid::spanningItemCrossesFlexibleSizedTracks): Deleted.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions): Deleted.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems): Deleted.
(WebCore::trackSizeForTrackSizeComputationPhase): Deleted.
(WebCore::RenderGrid::shouldProcessTrackForTrackSizeComputationPhase): Deleted.
(WebCore::RenderGrid::trackShouldGrowBeyondGrowthLimitsForTrackSizeComputationPhase): Deleted.
(WebCore::RenderGrid::markAsInfinitelyGrowableForTrackSizeComputationPhase): Deleted.
(WebCore::RenderGrid::updateTrackSizeForTrackSizeComputationPhase): Deleted.
(WebCore::RenderGrid::currentItemSizeForTrackSizeComputationPhase): Deleted.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems): Deleted.
(WebCore::sortByGridTrackGrowthPotential): Deleted.
(WebCore::clampGrowthShareIfNeeded): Deleted.
(WebCore::RenderGrid::distributeSpaceToTracks): Deleted.
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth): Deleted.
(WebCore::RenderGrid::assumedRowsSizeForOrthogonalChild): Deleted.
(WebCore::RenderGrid::gridAreaBreadthForChild): Deleted.

  • rendering/RenderGrid.h:
3:34 AM Changeset in webkit [212822] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Crash under CACFLayerTreeHost::acceleratedCompositingAvailable().
https://bugs.webkit.org/show_bug.cgi?id=168711

Reviewed by Alex Christensen.

Add null pointer check.

  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:

(WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable):

3:08 AM Changeset in webkit [212821] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening. Mark WebRTC tests failing after r212812.

  • platform/gtk/TestExpectations:
1:59 AM Changeset in webkit [212820] by matthew_hanson@apple.com
  • 6 edits in branches/safari-603-branch/Source/WebCore

Merge r212819. rdar://problem/30640217

1:50 AM Changeset in webkit [212819] by matthew_hanson@apple.com
  • 6 edits in branches/safari-603.1.30.0-branch/Source/WebCore

Merge r212773. rdar://problem/30640217

1:23 AM Changeset in webkit [212818] by Yusuke Suzuki
  • 17 edits
    13 adds in trunk

JSModuleNamespace object should have IC
https://bugs.webkit.org/show_bug.cgi?id=160590

Reviewed by Saam Barati.

JSTests:

  • modules/module-assert-access-binding.js: Added.
  • modules/module-assert-access-namespace.js: Added.
  • modules/namespace-empty.js: Added.

(from.string_appeared_here.access):
(i.shouldThrow):

  • stress/module-namespace-access-change.js: Added.

(shouldBe):
(access):
(import.string_appeared_here.then):

  • stress/module-namespace-access-non-constant.js: Added.

(shouldBe):
(import.string_appeared_here.then):

  • stress/module-namespace-access-poly.js: Added.

(shouldBe):
(access):
(import.string_appeared_here.then):

  • stress/module-namespace-access-transitive-exports.js: Added.

(shouldBe):
(import.string_appeared_here.then):

  • stress/module-namespace-access.js: Added.

(shouldBe):
(import.string_appeared_here.then):

  • stress/resources/module-namespace-access-transitive-exports-2.js: Added.

(export.cocoa):
(export.change):

  • stress/resources/module-namespace-access-transitive-exports.js: Added.
  • stress/resources/module-namespace-access.js: Added.

(export.cocoa):
(export.change):

Source/JavaScriptCore:

This patch optimizes accesses to module namespace objects.

  1. Cache the resolutions for module namespace objects.

When constructing the module namespace object, we already resolves all the exports.
The module namespace object caches this result and leverage it in the later access in
getOwnPropertySlot. This avoids resolving bindings through resolveExport.

  1. Introduce ModuleNamespaceLoad IC.

This patch adds new IC for module namespace objects. The mechanism is simple, getOwnPropertySlot
tells us about module namespace object resolution. The IC first checks whether the given object
is an expected module namespace object. If this check succeeds, we load the value from the module
environment.

  1. Introduce DFG/FTL optimization.

After exploiting module namespace object accesses in (2), DFG can recognize this in ByteCodeParser.
DFG will convert it to CheckCell with the namespace object and GetClosureVar from the cached environment.
At that time, we have a chance to fold it to the constant.

This optimization improves the performance of accessing to module namespace objects.

Before

$ time ../../WebKitBuild/module-ic-tot/Release/bin/jsc -m module-assert-access-namespace.js
../../WebKitBuild/module-ic-tot/Release/bin/jsc -m 0.43s user 0.03s system 101% cpu 0.451 total
$ time ../../WebKitBuild/module-ic-tot/Release/bin/jsc -m module-assert-access-binding.js
../../WebKitBuild/module-ic-tot/Release/bin/jsc -m 0.08s user 0.02s system 103% cpu 0.104 total

After

$ time ../../WebKitBuild/module-ic/Release/bin/jsc -m module-assert-access-namespace.js
../../WebKitBuild/module-ic/Release/bin/jsc -m 0.11s user 0.01s system 106% cpu 0.109 total
$ time ../../WebKitBuild/module-ic/Release/bin/jsc -m module-assert-access-binding.js
../../WebKitBuild/module-ic/Release/bin/jsc -m module-assert-access-binding.j 0.08s user 0.02s system 102% cpu 0.105 total

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::create):
(JSC::AccessCase::guardedByStructureCheck):
(JSC::AccessCase::canReplace):
(JSC::AccessCase::visitWeak):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):

  • bytecode/AccessCase.h:
  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::GetByIdStatus):
(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::GetByIdStatus::makesCalls):
(JSC::GetByIdStatus::dump):

  • bytecode/GetByIdStatus.h:

(JSC::GetByIdStatus::isModuleNamespace):
(JSC::GetByIdStatus::takesSlowPath):
(JSC::GetByIdStatus::moduleNamespaceObject):
(JSC::GetByIdStatus::moduleEnvironment):
(JSC::GetByIdStatus::scopeOffset):

  • bytecode/ModuleNamespaceAccessCase.cpp: Added.

(JSC::ModuleNamespaceAccessCase::ModuleNamespaceAccessCase):
(JSC::ModuleNamespaceAccessCase::create):
(JSC::ModuleNamespaceAccessCase::~ModuleNamespaceAccessCase):
(JSC::ModuleNamespaceAccessCase::clone):
(JSC::ModuleNamespaceAccessCase::emit):

  • bytecode/ModuleNamespaceAccessCase.h: Added.

(JSC::ModuleNamespaceAccessCase::moduleNamespaceObject):
(JSC::ModuleNamespaceAccessCase::moduleEnvironment):
(JSC::ModuleNamespaceAccessCase::scopeOffset):

  • bytecode/PolymorphicAccess.cpp:

(WTF::printInternal):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleModuleNamespaceLoad):
(JSC::DFG::ByteCodeParser::handleGetById):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::loadValue):

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::getModuleNamespace):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::finishCreation):
(JSC::JSModuleNamespaceObject::visitChildren):
(JSC::getValue):
(JSC::JSModuleNamespaceObject::getOwnPropertySlot):
(JSC::JSModuleNamespaceObject::getOwnPropertyNames):

  • runtime/JSModuleNamespaceObject.h:

(JSC::isJSModuleNamespaceObject):
(JSC::JSModuleNamespaceObject::create): Deleted.
(JSC::JSModuleNamespaceObject::createStructure): Deleted.
(JSC::JSModuleNamespaceObject::moduleRecord): Deleted.

  • runtime/JSModuleRecord.h:

(JSC::JSModuleRecord::moduleEnvironment): Deleted.

  • runtime/PropertySlot.h:

(JSC::PropertySlot::PropertySlot):
(JSC::PropertySlot::domJIT):
(JSC::PropertySlot::moduleNamespaceSlot):
(JSC::PropertySlot::setValueModuleNamespace):
(JSC::PropertySlot::setCacheableCustom):

12:55 AM Changeset in webkit [212817] by achristensen@apple.com
  • 2 edits in trunk/Source/WTF

Fix ASAN build after activating libwebrtc.

  • wtf/Ref.h:

asan_address_is_poisoned returns an int, not a bool.
This didn't cause a problem before because we didn't include the real definition anywhere,
but libwebrtc includes <sanitizer/asan_interface.h> directly now so the return types need to be correct.

12:33 AM Changeset in webkit [212816] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

NetworkProcess: Stop disabling buffering when NETWORK_CACHE is disabled in build
https://bugs.webkit.org/show_bug.cgi?id=168637

Reviewed by Alex Christensen.

It was added in r193752 as part of bug #137692 to fix an infinite loop in network process that happened in EFL
because they didn't enable the network cache at that time. I think that was actually a workaround, and it was
added without any comment so it has stayed there even when EFL enabled disk cache, and now that is gone. Looking
at current code I see no reason why buffering can't work with the disk cache disabled, so I think it's time to
remove that workaround.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::maximumBufferingTime):

12:31 AM Changeset in webkit [212815] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GStreamer] Crash in MediaPlayerPrivateGStreamerMSE::buffered() when MEDIA_STREAM is disabled
https://bugs.webkit.org/show_bug.cgi?id=168662

Reviewed by Michael Catanzaro.

When MEDIA_STREAM is disabled, if MediaPlayer::loadWithNextMediaEngine is called with a current engine and
there's no type specified, the next media engine that is used is the MSE one. Since there's no actually a media
stream, the engine is created but never loaded. When buffered is called it tries to use its media source that is
nullptr. It doesn't happen when MEDIA_STREAM is enabled, because the next media engine returned is Owr that
doesn't implement buffered and always returns an empty PlatformTimeRanges.

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

(WebCore::MediaPlayerPrivateGStreamerMSE::buffered): Return an empty PlatformTimeRanges if m_mediaSource is nullptr.

12:30 AM Changeset in webkit [212814] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] Test fast/events/message-port-postMessage-recursive.html times out
https://bugs.webkit.org/show_bug.cgi?id=168570

Reviewed by Michael Catanzaro.

Source/WTF:

This has recently been added and the patch is good. It's just revealing a problem with our timers. The test is
posting a message recursively, and also starts a timeout timer to finish the test. The timeout timer is never
fired for us, because WebCore timers have lower priority than the one used by postMessage. ScriptExecutionContext
uses Document::postTask, that uses scheduleOnMainThread, that uses RunLoop::dispatch(). We are not setting any
priority for the timer used by RunLoop::dispatch, so it's using the default.
Use a RunLoop::Timer to schedule tasks to the main thread instead of using RunLoop::dispatch(). This allows us
to use a different priority, that is now set to G_PRIORITY_HIGH_IDLE + 20 to match WebCore timers. But it also
avoids the double queue we had with RunLoop::dispatch(), because scheduleOnMainThread() also queues the tasks.

  • wtf/glib/MainThreadGLib.cpp:

(WTF::MainThreadDispatcher::MainThreadDispatcher):
(WTF::MainThreadDispatcher::schedule):
(WTF::MainThreadDispatcher::fired):
(WTF::scheduleDispatchFunctionsOnMainThread):

LayoutTests:

  • platform/gtk/TestExpectations:
12:04 AM Changeset in webkit [212813] by sbarati@apple.com
  • 4 edits
    2 moves in trunk/Source/JavaScriptCore

Unreviewed. Rename AirGraphColoring.* files to AirAllocateRegistersByGraphColoring.* to be more consistent with the rest of the Air file names.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/air/AirAllocateRegistersByGraphColoring.cpp: Copied from Source/JavaScriptCore/b3/air/AirGraphColoring.cpp.
  • b3/air/AirAllocateRegistersByGraphColoring.h: Copied from Source/JavaScriptCore/b3/air/AirGraphColoring.h.
  • b3/air/AirGenerate.cpp:
  • b3/air/AirGraphColoring.cpp: Removed.
  • b3/air/AirGraphColoring.h: Removed.

Feb 21, 2017:

11:59 PM Changeset in webkit [212812] by achristensen@apple.com
  • 38 edits
    11 adds in trunk

[WebRTC][Mac] Activate libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=167293
LayoutTests/imported/w3c:

<rdar://problem/30401864>

Patch by Youenn Fablet <youennf@gmail.com> on 2017-02-21
Reviewed by Alex Christensen.

  • web-platform-tests/webrtc/datachannel-emptystring-expected.txt:
  • web-platform-tests/webrtc/no-media-call-expected.txt:
  • web-platform-tests/webrtc/promises-call-expected.txt:

Source/JavaScriptCore:

<rdar://problem/30401864>

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

  • Configurations/FeatureDefines.xcconfig:

Source/ThirdParty/libwebrtc:

<rdar://problem/30401864>

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

Doing some clean-up.

  • Configurations/libwebrtc.xcconfig:
  • Source/webrtc/base/checks.h:
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:
  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

<rdar://problem/30401864>

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

<rdar://problem/30401864>

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

Activating PeerConnection runtime flag based on successful loading of libwebrtc.dylib.

  • Configurations/WebKit.xcconfig:
  • Configurations/FeatureDefines.xcconfig:
  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/WebPreferences.cpp:

(WebKit::checkWebRTCAvailability):

Source/WTF:

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

  • wtf/Platform.h:

Tools:

<rdar://problem/30401864>

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

Fixing paths to allow loading libwebrtc.dylib successfully.

  • Scripts/build-webkit:
  • Scripts/webkitdirs.pm:

(setupMacWebKitEnvironment):
(setupIOSWebKitEnvironment):

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

<rdar://problem/30401864>

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

  • TestExpectations:
  • fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt:
  • fast/mediastream/RTCPeerConnection-addTrack-reuse-sender-expected.txt:
  • fast/mediastream/RTCPeerConnection-icecandidate-event-expected.txt:
  • fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt: Added.
  • platform/gtk/fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt: Copied from LayoutTests/fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt.
  • platform/gtk/fast/mediastream/RTCPeerConnection-addTrack-reuse-sender-expected.txt: Copied from LayoutTests/fast/mediastream/RTCPeerConnection-addTrack-reuse-sender-expected.txt.
  • platform/gtk/fast/mediastream/RTCPeerConnection-closed-state-expected.txt: Added.
  • platform/gtk/fast/mediastream/RTCPeerConnection-icecandidate-event-expected.txt: Copied from LayoutTests/fast/mediastream/RTCPeerConnection-icecandidate-event-expected.txt.
  • platform/gtk/fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event-expected.txt: Added.
  • platform/gtk/fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt: Copied from LayoutTests/fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt.
  • platform/gtk/fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt: Added.
  • platform/gtk/fast/mediastream/RTCPeerConnection-overloaded-operations-params-expected.txt: Added.
  • platform/gtk/fast/mediastream/RTCRtpSender-replaceTrack-expected.txt: Added.
  • platform/gtk/fast/mediastream/no-media-call-expected.txt: Added.
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
11:54 PM Changeset in webkit [212811] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix WinCairo build after r212703.

  • platform/TextureMapper.cmake:
11:43 PM Changeset in webkit [212810] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit2

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

It broke GTK+ port when using single shared process model
(Requested by KaL on #webkit).

Reverted changeset:

"Refactor WebViewImpl creation in preparation for supporting
multiple WebsiteDataStores."
https://bugs.webkit.org/show_bug.cgi?id=168676
http://trac.webkit.org/changeset/212786

10:57 PM Changeset in webkit [212809] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Export various NSString symbols from WebFramePrivate.h
https://bugs.webkit.org/show_bug.cgi?id=168702

Reviewed by Alexey Proskuryakov.

  • WebKit.exp:
10:55 PM Changeset in webkit [212808] by pvollan@apple.com
  • 14 edits
    4 adds in trunk

Add support for CSS properties paint-order, stroke-linecap, and stroke-linejoin in text rendering.
https://bugs.webkit.org/show_bug.cgi?id=168601
Source/WebCore:

rdar://problem/30583872

Reviewed by Simon Fraser.

Text rendering should respect the CSS properties paint-order, stroke-linecap, and stroke-linejoin,
see https://drafts.fxtf.org/paint/. The text rendering changes are mainly in the TextPainter class,
where text is painted in three phases (fill, stroke, markers), where the order follows the
paint-order property. The linecap and linejoin properties are set on the graphics context before
rendering the text.

Tests: fast/css/paint-order.html

fast/css/paint-order-shadow.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::paintOrder):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertPaintOrder):

  • rendering/TextPaintStyle.cpp:

(WebCore::computeTextPaintStyle):
(WebCore::updateGraphicsContext):

  • rendering/TextPaintStyle.h:
  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::paintTypesForPaintOrder):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setPaintOrder):
(WebCore::RenderStyle::initialPaintOrder):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/SVGRenderStyleDefs.h:
  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):

  • rendering/svg/RenderSVGShape.cpp:

(WebCore::RenderSVGShape::fillStrokeMarkers):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::paint):

LayoutTests:

Reviewed by Simon Fraser.

  • fast/css/paint-order-expected.html: Added.
  • fast/css/paint-order-shadow-expected.html: Added.
  • fast/css/paint-order-shadow.html: Added.
  • fast/css/paint-order.html: Added.
10:51 PM Changeset in webkit [212807] by rniwa@webkit.org
  • 2 edits in trunk

Remove the extra `'s errornously added during the final editing.

  • ReadMe.md:
9:43 PM Changeset in webkit [212806] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

[User Timing] Throw a SyntaxError for performance.measure if mark name is not found
https://bugs.webkit.org/show_bug.cgi?id=168707

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-21
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: performance-api/performance-measure-name.html

  • page/PerformanceUserTiming.cpp:

(WebCore::UserTiming::findExistingMarkStartTime):
Instead of returning zero, throw a SyntaxError. This is more in line
with User Timing Level 1 and behavior in Window. This is an issue with
the Level 2 spec: https://github.com/w3c/user-timing/issues/21

LayoutTests:

  • performance-api/performance-measure-name-expected.txt: Added.
  • performance-api/performance-measure-name.html: Added.
  • performance-api/resources/measure-name.js: Added.

Test to cover SyntaxError for missing measure start/end mark names.

9:08 PM Changeset in webkit [212805] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Export various NSString symbols from WebPreferencesPrivate.h
https://bugs.webkit.org/show_bug.cgi?id=168701

Reviewed by Alexey Proskuryakov.

  • WebKit.exp:
8:42 PM Changeset in webkit [212804] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.2-branch/Source

Versioning.

8:40 PM Changeset in webkit [212803] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.1-branch/Source

Versioning.

8:39 PM Changeset in webkit [212802] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.0-branch/Source

Versioning.

8:36 PM Changeset in webkit [212801] by matthew_hanson@apple.com
  • 1 edit in branches/safari-603-branch/Source/WebCore/platform/SplitTestInitializer.cpp

Merge r212764. rdar://problem/30553220

8:28 PM Changeset in webkit [212800] by wilander@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, marking a set of test cases as skipped while we investigate.

Both the test cases and the new code are part of
https://bugs.webkit.org/show_bug.cgi?id=168347. Crashes so far only happen
on release builds on the bots. Not locally release nor debug.

  • platform/wk2/TestExpectations:
8:17 PM Changeset in webkit [212799] by sbarati@apple.com
  • 7 edits
    2 moves in trunk

Add the Briggs optimistic allocator to run on ARM64
https://bugs.webkit.org/show_bug.cgi?id=168454

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch adds the Briggs allocator to Air:
http://www.cs.utexas.edu/users/mckinley/380C/lecs/briggs-thesis-1992.pdf
It uses it by default on ARM64. I was measuring an 8-10% speedup
in the phase because of this. I also wasn't able to detect a slowdown
for generated code on ARM64. There are still a few things we can do
to speed things up even further. Moving the interference graph into
a BitVector was another 10-20% speedup. We should consider doing this
in a follow up patch. This is especially important now, since making
register allocation faster has a direct impact on startup time for
Wasm modules.

I abstracted away the common bits between Briggs and IRC, and moved
them into a common super class. In a follow up to this patch, I plan
on implementing biased coloring for both Briggs and IRC (this is
described in Briggs's thesis). I was able to detect a 1% slowdown
with Briggs on Octane for x86-64. This is because the register file
for x86-64 is smaller than ARM64. When I implemented biased coloring,
I was no longer able to detect this slowdown. I still think it's a
sensible plan to run Briggs on ARM64 and IRC on x86-64.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):

  • b3/air/AirGraphColoring.cpp: Copied from Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.cpp.

(JSC::B3::Air::allocateRegistersByGraphColoring):
(JSC::B3::Air::iteratedRegisterCoalescing): Deleted.

  • b3/air/AirGraphColoring.h: Copied from Source/JavaScriptCore/b3/air/AirIteratedRegisterCoalescing.h.
  • b3/air/AirIteratedRegisterCoalescing.cpp: Removed.
  • b3/air/AirIteratedRegisterCoalescing.h: Removed.
  • runtime/Options.h:

Tools:

  • Scripts/run-jsc-stress-tests:
7:58 PM Changeset in webkit [212798] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.30.0.2

Tag Safari-603.1.30.0.2.

7:08 PM Changeset in webkit [212797] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit/mac

Add missing WebConsoleMessage string key
https://bugs.webkit.org/show_bug.cgi?id=168690

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-02-21
Reviewed by Alexey Proskuryakov.

  • WebKit.exp:
  • WebView/WebUIDelegatePrivate.h:

This key has an implementation but was not extern / exported like the others.

6:42 PM Changeset in webkit [212796] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.30.2.1

Tag Safari-603.1.30.2.1.

6:42 PM Changeset in webkit [212795] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit

Make WebKitStatisticsPrivate.h project header
https://bugs.webkit.org/show_bug.cgi?id=168686

Reviewed by Alexey Proskuryakov.

  • WebKit.xcodeproj/project.pbxproj:
6:42 PM Changeset in webkit [212794] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.30.0.1

Tag Safari-603.1.30.0.1.

6:42 PM Changeset in webkit [212793] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-603.1.30.1.1

Tag Safari-603.1.30.1.1.

6:39 PM Changeset in webkit [212792] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Export various NSString symbols from WebViewPrivate.h
https://bugs.webkit.org/show_bug.cgi?id=168689

Reviewed by Alexey Proskuryakov.

  • WebKit.exp:
6:29 PM Changeset in webkit [212791] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add more missing exception checks detected by running marathon.js.
https://bugs.webkit.org/show_bug.cgi?id=168697

Reviewed by Saam Barati.

  • runtime/StringPrototype.cpp:

(JSC::replaceUsingRegExpSearch):
(JSC::replaceUsingStringSearch):

6:16 PM Changeset in webkit [212790] by rniwa@webkit.org
  • 1 edit
    1 add in trunk

Add ReadMe.md to WebKit
https://bugs.webkit.org/show_bug.cgi?id=168413

Reviewed by Chris Dumez.

Add a ReadMe.md to be read on https://github.com/WebKit/webkit based on webkit.org content.

  • ReadMe.md: Added.
6:04 PM Changeset in webkit [212789] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix the Windows build.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::supportsSubpixelAntialiasedText):

5:59 PM Changeset in webkit [212788] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r212737.

This change caused an existing LayoutTest to crash.

Reverted changeset:

"REGRESSION(r207669): Crash after mutating selector text"
https://bugs.webkit.org/show_bug.cgi?id=168655
http://trac.webkit.org/changeset/212737

5:58 PM Changeset in webkit [212787] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk/Source/WebKit

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

Rolling out since this would break other projects. (Requested
by aakashjain on #webkit).

Reverted changeset:

"[iOS] Remove old WebKit1 MemoryMeasure helper."
https://bugs.webkit.org/show_bug.cgi?id=168675
http://trac.webkit.org/changeset/212768

5:35 PM Changeset in webkit [212786] by beidson@apple.com
  • 8 edits in trunk/Source/WebKit2

Refactor WebViewImpl creation in preparation for supporting multiple WebsiteDataStores.
https://bugs.webkit.org/show_bug.cgi?id=168676

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]): Allow for WebViewImpl creation to fail.

  • UIProcess/API/mac/WKView.mm:

(-[WKView initWithFrame:processPool:configuration:]): Ditto.

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

(WebKit::WebViewImpl::maybeCreate):
(WebKit::WebViewImpl::WebViewImpl):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcess): New WebProcess creation might fail. Handle it.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::warmInitialProcess):
(WebKit::WebProcessPool::maybeCreateNewWebProcessRespectingProcessCountLimit): This can now fail

if the process will have a non-default WebsiteDataStore but we've already reached the process cap.

(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit): Deleted.

  • UIProcess/WebProcessPool.h:
5:20 PM Changeset in webkit [212785] by matthew_hanson@apple.com
  • 13 edits
    1 add in branches/safari-603.1.30.2-branch/Source

Merge r212692. rdar://problem/30635854

5:19 PM Changeset in webkit [212784] by Chris Dumez
  • 4 edits
    8 adds in trunk

REGRESSION (r207720): /more/conformance/conformance/quickCheckAPI-S_V.html test fails
https://bugs.webkit.org/show_bug.cgi?id=168632
<rdar://problem/30620129>

Reviewed by Darin Adler.

Source/WebCore:

After r207720, the following WebGL conformance tests started failing:

  • /more/conformance/conformance/quickCheckAPI-S_V.html
  • /context/context-lost.html

We started throwing security errors in case where we did not before.
Chrome and Firefox are both passing these tests so our new behavior was not interoperable.

This patch reverts part of r207720 to restore our previous behavior.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::texImage2D):
(WebCore::WebGLRenderingContextBase::validateHTMLImageElement):
(WebCore::WebGLRenderingContextBase::validateHTMLCanvasElement):
(WebCore::WebGLRenderingContextBase::validateHTMLVideoElement):

  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

Import layout test coverage.

  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/context/context-lost-expected.txt: Added.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/context/context-lost.html: Added.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/conformance/argGenerators-S_V.js: Added.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-S_V-expected.txt: Added.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI-S_V.html: Added.
  • http/tests/webgl/1.0.2/resources/webgl_test_files/conformance/more/conformance/quickCheckAPI.js: Added.
5:18 PM Changeset in webkit [212783] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

No need for static attributes when creating a pixel format
https://bugs.webkit.org/show_bug.cgi?id=168688
<rdar://problem/30642256>

Reviewed by Myles Maxfield.

Just create the attributes when needed.

  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::GraphicsContext3DManager::updateHighPerformanceState):

5:16 PM Changeset in webkit [212782] by jfbastien@apple.com
  • 7 edits
    2 adds in trunk/Source/JavaScriptCore

FullCodeOrigin for CodeBlock+CodeOrigin printing
https://bugs.webkit.org/show_bug.cgi?id=168673

Reviewed by Filip Pizlo.

WebAssembly doesn't have a CodeBlock, so printing it isn't
valid. This patch adds FullCodeOrigin to handle the
CodeBlock+CodeOrigin printing pattern, and uses it through all the
places I could find, including Repatch.cpp where it's relevant for
WebAssembly.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::noticeIncomingCall):

  • bytecode/FullCodeOrigin.cpp: Added.

(JSC::FullCodeOrigin::dump):
(JSC::FullCodeOrigin::dumpInContext):

  • bytecode/FullCodeOrigin.h: Added.

(JSC::FullCodeOrigin::FullCodeOrigin):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine):

  • jit/Repatch.cpp:

(JSC::linkFor):
(JSC::linkDirectFor):
(JSC::linkVirtualFor):

5:07 PM Changeset in webkit [212781] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[WebRTC] WebKit2 should assert that libwebrtc transmitted IP addresses family is IP4 or IP6
https://bugs.webkit.org/show_bug.cgi?id=168691

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

Adding some asserts that family is IPv4 or IPv6.

  • Shared/RTCNetwork.cpp:

(WebKit::RTCNetwork::IPAddress::decode):
(WebKit::RTCNetwork::IPAddress::encode):

5:05 PM Changeset in webkit [212780] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, fix cloop. I managed to have my local patch for relanding be the one without the cloop
fix. I keep forgetting about cloop!

  • heap/Heap.cpp:

(JSC::Heap::stopThePeriphery):

  • runtime/JSLock.cpp:
5:01 PM Changeset in webkit [212779] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add missing exception checks detected by running marathon.js.
https://bugs.webkit.org/show_bug.cgi?id=168687

Reviewed by Saam Barati.

When running the marathon.js test from https://bugs.webkit.org/show_bug.cgi?id=168580,
we get some crashes due to missing exception checks. This patch adds those
missing exception checks.

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toPropertyKey):

  • runtime/JSObject.cpp:

(JSC::JSObject::getPrimitiveNumber):

4:58 PM Changeset in webkit [212778] by fpizlo@apple.com
  • 41 edits
    14 adds
    3 deletes in trunk

The collector thread should only start when the mutator doesn't have heap access
https://bugs.webkit.org/show_bug.cgi?id=167737

Reviewed by Keith Miller.
JSTests:


Add versions of splay that flash heap access, to simulate what might happen if a third-party app
was running concurrent GC. In this case, we might actually start the collector thread.

  • stress/splay-flash-access-1ms.js: Added.

(performance.now):
(this.Setup.setup.setup):
(this.TearDown.tearDown.tearDown):
(Benchmark):
(BenchmarkResult):
(BenchmarkResult.prototype.valueOf):
(BenchmarkSuite):
(alert):
(Math.random):
(BenchmarkSuite.ResetRNG):
(RunStep):
(BenchmarkSuite.RunSuites):
(BenchmarkSuite.CountBenchmarks):
(BenchmarkSuite.GeometricMean):
(BenchmarkSuite.GeometricMeanTime):
(BenchmarkSuite.AverageAbovePercentile):
(BenchmarkSuite.GeometricMeanLatency):
(BenchmarkSuite.FormatScore):
(BenchmarkSuite.prototype.NotifyStep):
(BenchmarkSuite.prototype.NotifyResult):
(BenchmarkSuite.prototype.NotifyError):
(BenchmarkSuite.prototype.RunSingleBenchmark):
(RunNextSetup):
(RunNextBenchmark):
(RunNextTearDown):
(BenchmarkSuite.prototype.RunStep):
(GeneratePayloadTree):
(GenerateKey):
(SplayUpdateStats):
(InsertNewNode):
(SplaySetup):
(SplayTearDown):
(SplayRun):
(SplayTree):
(SplayTree.prototype.isEmpty):
(SplayTree.prototype.insert):
(SplayTree.prototype.remove):
(SplayTree.prototype.find):
(SplayTree.prototype.findMax):
(SplayTree.prototype.findGreatestLessThan):
(SplayTree.prototype.exportKeys):
(SplayTree.prototype.splay_):
(SplayTree.Node):
(SplayTree.Node.prototype.traverse_):
(jscSetUp):
(jscTearDown):
(jscRun):
(averageAbovePercentile):
(printPercentile):

  • stress/splay-flash-access.js: Added.

(performance.now):
(this.Setup.setup.setup):
(this.TearDown.tearDown.tearDown):
(Benchmark):
(BenchmarkResult):
(BenchmarkResult.prototype.valueOf):
(BenchmarkSuite):
(alert):
(Math.random):
(BenchmarkSuite.ResetRNG):
(RunStep):
(BenchmarkSuite.RunSuites):
(BenchmarkSuite.CountBenchmarks):
(BenchmarkSuite.GeometricMean):
(BenchmarkSuite.GeometricMeanTime):
(BenchmarkSuite.AverageAbovePercentile):
(BenchmarkSuite.GeometricMeanLatency):
(BenchmarkSuite.FormatScore):
(BenchmarkSuite.prototype.NotifyStep):
(BenchmarkSuite.prototype.NotifyResult):
(BenchmarkSuite.prototype.NotifyError):
(BenchmarkSuite.prototype.RunSingleBenchmark):
(RunNextSetup):
(RunNextBenchmark):
(RunNextTearDown):
(BenchmarkSuite.prototype.RunStep):
(GeneratePayloadTree):
(GenerateKey):
(SplayUpdateStats):
(InsertNewNode):
(SplaySetup):
(SplayTearDown):
(SplayRun):
(SplayTree):
(SplayTree.prototype.isEmpty):
(SplayTree.prototype.insert):
(SplayTree.prototype.remove):
(SplayTree.prototype.find):
(SplayTree.prototype.findMax):
(SplayTree.prototype.findGreatestLessThan):
(SplayTree.prototype.exportKeys):
(SplayTree.prototype.splay_):
(SplayTree.Node):
(SplayTree.Node.prototype.traverse_):
(jscSetUp):
(jscTearDown):
(jscRun):
(averageAbovePercentile):
(printPercentile):

Source/JavaScriptCore:


This turns the collector thread's workflow into a state machine, so that the mutator thread can
run it directly. This reduces the amount of synchronization we do with the collector thread, and
means that most apps will never start the collector thread. The collector thread will still start
when we need to finish collecting and we don't have heap access.

In this new world, "stopping the world" means relinquishing control of collection to the mutator.
This means tracking who is conducting collection. I use the GCConductor enum to say who is
conducting. It's either GCConductor::Mutator or GCConductor::Collector. I use the term "conn" to
refer to the concept of conducting (having the conn, relinquishing the conn, taking the conn).
So, stopping the world means giving the mutator the conn. Releasing heap access means giving the
collector the conn.

This meant bringing back the conservative scan of the calling thread. It turns out that this
scan was too slow to be called on each GC increment because apparently setjmp() now does system
calls. So, I wrote our own callee save register saving for the GC. Then I had doubts about
whether or not it was correct, so I also made it so that the GC only rarely asks for the register
state. I think we still want to use my register saving code instead of setjmp because setjmp
seems to save things we don't need, and that could make us overly conservative.

It turns out that this new scheduling discipline makes the old space-time scheduler perform
better than the new stochastic space-time scheduler on systems with fewer than 4 cores. This is
because the mutator having the conn enables us to time the mutator<->collector context switches
by polling. The OS is never involved. So, we can use super precise timing. This allows the old
space-time schduler to shine like it hadn't before.

The splay results imply that this is all a good thing. On 2-core systems, this reduces pause
times by 40% and it increases throughput about 5%. On 1-core systems, this reduces pause times by
half and reduces throughput by 8%. On 4-or-more-core systems, this doesn't seem to have much
effect.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::visitChildren):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::ThreadBody::ThreadBody):
(JSC::DFG::Worklist::dump):
(JSC::DFG::numberOfWorklists):
(JSC::DFG::ensureWorklistForIndex):
(JSC::DFG::existingWorklistForIndexOrNull):
(JSC::DFG::existingWorklistForIndex):

  • dfg/DFGWorklist.h:

(JSC::DFG::numberOfWorklists): Deleted.
(JSC::DFG::ensureWorklistForIndex): Deleted.
(JSC::DFG::existingWorklistForIndexOrNull): Deleted.
(JSC::DFG::existingWorklistForIndex): Deleted.

  • heap/CollectingScope.h: Added.

(JSC::CollectingScope::CollectingScope):
(JSC::CollectingScope::~CollectingScope):

  • heap/CollectorPhase.cpp: Added.

(JSC::worldShouldBeSuspended):
(WTF::printInternal):

  • heap/CollectorPhase.h: Added.
  • heap/EdenGCActivityCallback.cpp:

(JSC::EdenGCActivityCallback::lastGCLength):

  • heap/FullGCActivityCallback.cpp:

(JSC::FullGCActivityCallback::doCollection):
(JSC::FullGCActivityCallback::lastGCLength):

  • heap/GCConductor.cpp: Added.

(JSC::gcConductorShortName):
(WTF::printInternal):

  • heap/GCConductor.h: Added.
  • heap/GCFinalizationCallback.cpp: Added.

(JSC::GCFinalizationCallback::GCFinalizationCallback):
(JSC::GCFinalizationCallback::~GCFinalizationCallback):

  • heap/GCFinalizationCallback.h: Added.

(JSC::GCFinalizationCallbackFuncAdaptor::GCFinalizationCallbackFuncAdaptor):
(JSC::createGCFinalizationCallback):

  • heap/Heap.cpp:

(JSC::Heap::Thread::Thread):
(JSC::Heap::Heap):
(JSC::Heap::lastChanceToFinalize):
(JSC::Heap::gatherStackRoots):
(JSC::Heap::updateObjectCounts):
(JSC::Heap::sweepSynchronously):
(JSC::Heap::collectAllGarbage):
(JSC::Heap::collectAsync):
(JSC::Heap::collectSync):
(JSC::Heap::shouldCollectInCollectorThread):
(JSC::Heap::collectInCollectorThread):
(JSC::Heap::checkConn):
(JSC::Heap::runNotRunningPhase):
(JSC::Heap::runBeginPhase):
(JSC::Heap::runFixpointPhase):
(JSC::Heap::runConcurrentPhase):
(JSC::Heap::runReloopPhase):
(JSC::Heap::runEndPhase):
(JSC::Heap::changePhase):
(JSC::Heap::finishChangingPhase):
(JSC::Heap::stopThePeriphery):
(JSC::Heap::resumeThePeriphery):
(JSC::Heap::stopTheMutator):
(JSC::Heap::resumeTheMutator):
(JSC::Heap::stopIfNecessarySlow):
(JSC::Heap::collectInMutatorThread):
(JSC::Heap::waitForCollector):
(JSC::Heap::acquireAccessSlow):
(JSC::Heap::releaseAccessSlow):
(JSC::Heap::relinquishConn):
(JSC::Heap::finishRelinquishingConn):
(JSC::Heap::handleNeedFinalize):
(JSC::Heap::notifyThreadStopping):
(JSC::Heap::finalize):
(JSC::Heap::addFinalizationCallback):
(JSC::Heap::requestCollection):
(JSC::Heap::waitForCollection):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::didFinishCollection):
(JSC::Heap::collectIfNecessaryOrDefer):
(JSC::Heap::notifyIsSafeToCollect):
(JSC::Heap::preventCollection):
(JSC::Heap::performIncrement):
(JSC::Heap::markToFixpoint): Deleted.
(JSC::Heap::shouldCollectInThread): Deleted.
(JSC::Heap::collectInThread): Deleted.
(JSC::Heap::stopTheWorld): Deleted.
(JSC::Heap::resumeTheWorld): Deleted.

  • heap/Heap.h:

(JSC::Heap::machineThreads):
(JSC::Heap::lastFullGCLength):
(JSC::Heap::lastEdenGCLength):
(JSC::Heap::increaseLastFullGCLength):

  • heap/HeapInlines.h:

(JSC::Heap::mutatorIsStopped): Deleted.

  • heap/HeapStatistics.cpp: Removed.
  • heap/HeapStatistics.h: Removed.
  • heap/HelpingGCScope.h: Removed.
  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::stopSweeping):
(JSC::IncrementalSweeper::willFinishSweeping): Deleted.

  • heap/IncrementalSweeper.h:
  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::gatherFromCurrentThread):
(JSC::MachineThreads::gatherConservativeRoots):
(JSC::callWithCurrentThreadState):

  • heap/MachineStackMarker.h:
  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::allocateSlowCaseImpl):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::sweep):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::sweep):

  • heap/MutatorState.cpp:

(WTF::printInternal):

  • heap/MutatorState.h:
  • heap/RegisterState.h: Added.
  • heap/RunningScope.h: Added.

(JSC::RunningScope::RunningScope):
(JSC::RunningScope::~RunningScope):

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::SlotVisitor):
(JSC::SlotVisitor::drain):
(JSC::SlotVisitor::drainFromShared):
(JSC::SlotVisitor::drainInParallelPassively):
(JSC::SlotVisitor::donateAll):
(JSC::SlotVisitor::donate):

  • heap/SlotVisitor.h:

(JSC::SlotVisitor::codeName):

  • heap/StochasticSpaceTimeMutatorScheduler.cpp:

(JSC::StochasticSpaceTimeMutatorScheduler::beginCollection):
(JSC::StochasticSpaceTimeMutatorScheduler::synchronousDrainingDidStall):
(JSC::StochasticSpaceTimeMutatorScheduler::timeToStop):

  • heap/SweepingScope.h: Added.

(JSC::SweepingScope::SweepingScope):
(JSC::SweepingScope::~SweepingScope):

  • jit/JITWorklist.cpp:

(JSC::JITWorklist::Thread::Thread):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionFlashHeapAccess):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/JSCellInlines.h:

(JSC::JSCell::classInfo):

  • runtime/Options.cpp:

(JSC::overrideDefaults):

  • runtime/Options.h:
  • runtime/TestRunnerUtils.cpp:

(JSC::finalizeStatsAtEndOfTesting):

Source/WebCore:

Added new tests in JSTests.

The WebCore changes involve:

  • Refactoring around new header discipline.


  • Adding crazy GC APIs to window.internals to enable us to test the GC's runloop discipline.
  • ForwardingHeaders/heap/GCFinalizationCallback.h: Added.
  • ForwardingHeaders/heap/IncrementalSweeper.h: Added.
  • ForwardingHeaders/heap/MachineStackMarker.h: Added.
  • ForwardingHeaders/heap/RunningScope.h: Added.
  • bindings/js/CommonVM.cpp:
  • testing/Internals.cpp:

(WebCore::Internals::parserMetaData):
(WebCore::Internals::isReadableStreamDisturbed):
(WebCore::Internals::isGCRunning):
(WebCore::Internals::addGCFinalizationCallback):
(WebCore::Internals::stopSweeping):
(WebCore::Internals::startSweeping):

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

Source/WTF:


Extend the use of AbstractLocker so that we can use more locking idioms.

  • wtf/AutomaticThread.cpp:

(WTF::AutomaticThreadCondition::notifyOne):
(WTF::AutomaticThreadCondition::notifyAll):
(WTF::AutomaticThreadCondition::add):
(WTF::AutomaticThreadCondition::remove):
(WTF::AutomaticThreadCondition::contains):
(WTF::AutomaticThread::AutomaticThread):
(WTF::AutomaticThread::tryStop):
(WTF::AutomaticThread::isWaiting):
(WTF::AutomaticThread::notify):
(WTF::AutomaticThread::start):
(WTF::AutomaticThread::threadIsStopping):

  • wtf/AutomaticThread.h:
  • wtf/NumberOfCores.cpp:

(WTF::numberOfProcessorCores):

  • wtf/ParallelHelperPool.cpp:

(WTF::ParallelHelperClient::finish):
(WTF::ParallelHelperClient::claimTask):
(WTF::ParallelHelperPool::Thread::Thread):
(WTF::ParallelHelperPool::didMakeWorkAvailable):
(WTF::ParallelHelperPool::hasClientWithTask):
(WTF::ParallelHelperPool::getClientWithTask):

  • wtf/ParallelHelperPool.h:

Tools:


Make more tests collect continuously.

  • Scripts/run-jsc-stress-tests:
4:53 PM Changeset in webkit [212777] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Don't build libwebrtc on 32-bit architectures
https://bugs.webkit.org/show_bug.cgi?id=168692

Reviewed by Dan Bernstein.

  • Configurations/Base.xcconfig:
4:30 PM Changeset in webkit [212776] by Simon Fraser
  • 41 edits
    5 adds in trunk

Add support to PlatformCALayer/GraphicsLayerCA for subpixel-antialiased text, with a Setting and a MiniBrowser switch
https://bugs.webkit.org/show_bug.cgi?id=168620
<rdar://problem/30617772>

Reviewed by Tim Horton.
Source/WebCore:

Add a Setting for subpixel-antialiased layer text. Plumb this through GraphicsLayerCA and
PlatformCALayer, where it ultimately affects the layer contents format.

TileControllers are slightly special because we communicate with them via an Obj-C
WebTiledBackingLayer.

Test: compositing/contents-format/subpixel-antialiased-text-enabled.html

  • page/Settings.in:
  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::GraphicsLayer):
(WebCore::GraphicsLayer::dumpProperties):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::supportsSubpixelAntialiasedText):
(WebCore::GraphicsLayer::setSupportsSubpixelAntialiasedText):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setSupportsSubpixelAntialiasedText):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateSupportsSubpixelAntialiasedText):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::PlatformCALayer::drawRepaintIndicator):

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

(WebCore::TileController::setWantsDeepColorBackingStore):
(WebCore::TileController::setSupportsSubpixelAntialiasedText):
(WebCore::TileController::setTilesOpaque):

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

(WebCore::TileGrid::updateTileLayerProperties):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::supportsSubpixelAntialiasedText):
(PlatformCALayerCocoa::setSupportsSubpixelAntialiasedText):
(layerContentsFormat):
(PlatformCALayerCocoa::updateContentsFormat):
(PlatformCALayer::drawLayerContents):

  • platform/graphics/ca/cocoa/WebTiledBackingLayer.h:
  • platform/graphics/ca/cocoa/WebTiledBackingLayer.mm:

(-[WebTiledBackingLayer drawsAsynchronously]):
(-[WebTiledBackingLayer setSupportsSubpixelAntialiasedText:]):
(-[WebTiledBackingLayer supportsSubpixelAntialiasedText]):

  • platform/spi/cocoa/QuartzCoreSPI.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::createGraphicsLayer):

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences subpixelAntialiasedLayerTextEnabled]):
(-[WebPreferences setSubpixelAntialiasedLayerTextEnabled:]):

  • WebView/WebPreferencesPrivate.h:

Source/WebKit2:

Add a Setting for subpixel-antialiased layer text. Plumb this through GraphicsLayerCA and
PlatformCALayer, where it ultimately affects the layer contents format.

This is not supported with UI-side compositing.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetSubpixelAntialiasedLayerTextEnabled):
(WKPreferencesGetSubpixelAntialiasedLayerTextEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _subpixelAntialiasedLayerTextEnabled]):
(-[WKPreferences _setSubpixelAntialiasedLayerTextEnabled:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::supportsSubpixelAntialiasedText):
(WebKit::PlatformCALayerRemote::setSupportsSubpixelAntialiasedText):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:
  • WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.cpp:

(WebKit::PlatformCALayerRemoteTiledBacking::supportsSubpixelAntialiasedText):
(WebKit::PlatformCALayerRemoteTiledBacking::setSupportsSubpixelAntialiasedText):

  • WebProcess/WebPage/mac/PlatformCALayerRemoteTiledBacking.h:

Tools:

Add a setting that allows one to toggle subpixel-antialiased layer text on and off.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController toggleSubpixelAntialiasedLayerTextEnabled:]):
(-[SettingsController subpixelAntialiasedLayerTextEnabled]):

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController didChangeSettings]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController didChangeSettings]):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

3:57 PM Changeset in webkit [212775] by sbarati@apple.com
  • 6 edits
    2 adds in trunk/Source/JavaScriptCore

Air should have a disassembly mode that dumps IR and assembly intermixed
https://bugs.webkit.org/show_bug.cgi?id=168629

Reviewed by Filip Pizlo.

This will make dumping FTL disassembly dump Air intermixed
with the assembly generated by each Air Inst. This is similar
to how dumpDFGDisassembly dumps the generated assembly for each
Node.

Here is what the output will look like:

Generated FTL JIT code for foo#CUaFiQ:[0x10b76c960->0x10b76c2d0->0x10b7b6da0, FTLFunctionCall, 40 (NeverInline)], instruction count = 40:
BB#0: ; frequency = 1.000000

0x469004e02e00: push %rbp
0x469004e02e01: mov %rsp, %rbp
0x469004e02e04: add $0xffffffffffffffd0, %rsp

Move $0x10b76c960, %rax, $4487301472(@16)

0x469004e02e08: mov $0x10b76c960, %rax

Move %rax, 16(%rbp), @19

0x469004e02e12: mov %rax, 0x10(%rbp)

Patch &Patchpoint2, %rbp, %rax, @20

0x469004e02e16: lea -0x50(%rbp), %rax
0x469004e02e1a: mov $0x1084081e0, %r11
0x469004e02e24: cmp %rax, (%r11)
0x469004e02e27: ja 0x469004e02e9a

Move 56(%rbp), %rdx, @23

0x469004e02e2d: mov 0x38(%rbp), %rdx

Move $0xffff000000000002, %rax, $-281474976710654(@15)

0x469004e02e31: mov $0xffff000000000002, %rax

Patch &BranchTest64(3,SameAsRep)1, NonZero, %rdx, %rax, %rdx, @26

0x469004e02e3b: test %rdx, %rax
0x469004e02e3e: jnz 0x469004e02f08

Move 48(%rbp), %rax, @29

0x469004e02e44: mov 0x30(%rbp), %rax

Move %rax, %rcx, @31

0x469004e02e48: mov %rax, %rcx

Xor64 $6, %rcx, @31

0x469004e02e4b: xor $0x6, %rcx

Patch &BranchTest64(3,SameAsRep)1, NonZero, %rcx, $-2, %rax, @35

0x469004e02e4f: test $0xfffffffffffffffe, %rcx
0x469004e02e56: jnz 0x469004e02f12

Patch &Branch32(3,SameAsRep)0, NotEqual, (%rdx), $266, %rdx, @45

0x469004e02e5c: cmp $0x10a, (%rdx)
0x469004e02e62: jnz 0x469004e02f1c

BranchTest32 NonZero, %rax, $1, @49

0x469004e02e68: test $0x1, %al
0x469004e02e6a: jnz 0x469004e02e91

Successors: #3, #1

BB#1: ; frequency = 1.000000

Predecessors: #0

Move $0, %rcx, @65

0x469004e02e70: xor %rcx, %rcx

Jump @66

Successors: #2

BB#2: ; frequency = 1.000000

Predecessors: #1, #3

Move 24(%rdx), %rax, @58

0x469004e02e73: mov 0x18(%rdx), %rax

Patch &BranchAdd32(4,ForceLateUseUnlessRecoverable)3, Overflow, %rcx, %rax, %rcx, %rcx, %rax, @60

0x469004e02e77: add %eax, %ecx
0x469004e02e79: jo 0x469004e02f26

Move $0xffff000000000000, %rax, $-281474976710656(@14)

0x469004e02e7f: mov $0xffff000000000000, %rax

Add64 %rcx, %rax, %rax, @62

0x469004e02e89: add %rcx, %rax

Ret64 %rax, @63

0x469004e02e8c: mov %rbp, %rsp
0x469004e02e8f: pop %rbp
0x469004e02e90: ret

BB#3: ; frequency = 1.000000

Predecessors: #0

Move 16(%rdx), %rcx, @52

0x469004e02e91: mov 0x10(%rdx), %rcx

Jump @55

0x469004e02e95: jmp 0x469004e02e73

Successors: #2

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/air/AirCode.h:

(JSC::B3::Air::Code::setDisassembler):
(JSC::B3::Air::Code::disassembler):

  • b3/air/AirDisassembler.cpp: Added.

(JSC::B3::Air::Disassembler::startEntrypoint):
(JSC::B3::Air::Disassembler::endEntrypoint):
(JSC::B3::Air::Disassembler::startLatePath):
(JSC::B3::Air::Disassembler::endLatePath):
(JSC::B3::Air::Disassembler::startBlock):
(JSC::B3::Air::Disassembler::addInst):
(JSC::B3::Air::Disassembler::dump):

  • b3/air/AirDisassembler.h: Added.
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generate):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

3:49 PM Changeset in webkit [212774] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Export various NSString symbols from WebUIDelegatePrivate.h
https://bugs.webkit.org/show_bug.cgi?id=168679

Reviewed by Joseph Pecoraro.

  • WebKit.exp:
3:25 PM Changeset in webkit [212773] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

REGRESSION (203941): iAd Producer: Clicking buttons in Preview does not work
https://bugs.webkit.org/show_bug.cgi?id=168677
<rdar://problem/30640101>

Reviewed by Ryosuke Niwa.

Add quirk to initMouseEvent to unbreak iAd Producer.

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::initMouseEventQuirk):

  • dom/MouseEvent.h:
  • dom/MouseEvent.idl:
  • platform/RuntimeApplicationChecks.h:
  • platform/RuntimeApplicationChecks.mm:

(WebCore::MacApplication::isIADProducer):

3:23 PM Changeset in webkit [212772] by achristensen@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

[Xcode] libwebrtc installhdrs doesn’t install any of the headers
https://bugs.webkit.org/show_bug.cgi?id=168634

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

  • Configurations/libwebrtc.xcconfig:
  • libwebrtc.xcodeproj/project.pbxproj:
3:18 PM Changeset in webkit [212771] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

AudioSampleDataSource doesn't need to use the m_scratchBuffer on the pulling thread
https://bugs.webkit.org/show_bug.cgi?id=168640

Reviewed by Eric Carlson.

Rather than copying the pulled data into a scratch buffer, applying a volume transformation
and then copying back out, just do the volume transformation in-place in the destination
buffer.

  • platform/audio/mac/AudioSampleDataSource.cpp:

(WebCore::AudioSampleDataSource::pullSamplesInternal):

3:16 PM Changeset in webkit [212770] by aakash_jain@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Export symbols for various classes present in webkit SPI
https://bugs.webkit.org/show_bug.cgi?id=168674

Reviewed by Dan Bernstein.

  • WebKit.exp:
3:16 PM Changeset in webkit [212769] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[WebRTC] Implement Incoming libwebrtc audio source support.
https://bugs.webkit.org/show_bug.cgi?id=167961

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Eric Carlson.

Hook libwebrtc incoming audio source into WebCore audio rendering path.
Manually testing that muted sources produce data with zeros and unmuted sources provide data with non zeros.

  • platform/mediastream/mac/RealtimeIncomingAudioSource.cpp:

(WebCore::RealtimeIncomingAudioSource::create):
(WebCore::streamDescription):
(WebCore::RealtimeIncomingAudioSource::OnData):
(WebCore::RealtimeIncomingAudioSource::audioSourceProvider):

  • platform/mediastream/mac/RealtimeIncomingAudioSource.h:
3:07 PM Changeset in webkit [212768] by akling@apple.com
  • 8 edits
    2 deletes in trunk/Source/WebKit

[iOS] Remove old WebKit1 MemoryMeasure helper.
<https://webkit.org/b/168675>

Reviewed by Sam Weinig.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/ios:

Remove the MemoryMeasure logging helper from the WebKit1 days. It was using an old way
of measuring memory, and we were only using it in a single place anyway.

  • Misc/MemoryMeasure.h: Removed.
  • Misc/MemoryMeasure.mm: Removed.
  • WebKit.iOS.exp:

Source/WebKit/mac:

  • Configurations/WebKitLegacy.xcconfig:
  • Misc/WebCache.mm:

(+[WebCache emptyInMemoryResources]):

  • WebView/WebView.mm:
2:57 PM Changeset in webkit [212767] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603.1.30.1-branch

Merge r212737. rdar://problem/30636288

2:55 PM Changeset in webkit [212766] by wilander@apple.com
  • 6 edits in trunk/Source/WebKit2

Resource Load Statistics: Only scan website data store once per session ID + reinstate removal counting
https://bugs.webkit.org/show_bug.cgi?id=168541

Reviewed by Alex Christensen.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyOwnedDomainsInAllPersistentDataStores):

The CallbackAggregator now merges a list of domains for which we
have removed data records and eventually reports this back to the
caller.

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

(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):

Now reports back to its WebCore::ResourceLoadStatisticsStore
which domains have had data records removed.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataForTopPrivatelyOwnedDomains):

The completion handler now handles data record removal counting.

(WebKit::WebsiteDataStore::removeDataForTopPrivatelyOwnedDomains):

The completion handler now handles data record removal counting.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
2:54 PM Changeset in webkit [212765] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix ImageBitmap comment to not insert a <canvas>.

  • features.json:
2:52 PM Changeset in webkit [212764] by matthew_hanson@apple.com
  • 1 edit in branches/safari-603.1.30.0-branch/Source/WebCore/platform/SplitTestInitializer.cpp

Follow-up fix for rdar://problem/30553220

2:47 PM Changeset in webkit [212763] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.4-branch/Source

Versioning.

2:45 PM Changeset in webkit [212762] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.3-branch/Source

Versioning.

2:44 PM Changeset in webkit [212761] by commit-queue@webkit.org
  • 22 edits in trunk/Source/WebInspectorUI

Web Inspector: Prefer Resources tab over Network tab when showing files
https://bugs.webkit.org/show_bug.cgi?id=168021

Patch by Devin Rousso <Devin Rousso> on 2017-02-21
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector.handlePossibleLinkClick):
(WebInspector.openURL):
Add options parameter to provide greater customization.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
Add logic for ignoreNetworkTab option that will ignore instances of NetworkTabContentView.

  • UserInterface/Controllers/BreakpointPopoverController.js:

(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems):

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.showMainResourceForFrame):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.tokenTrackingControllerHighlightedRangeWasClicked.showRangeInSourceCode):

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WebInspector.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty):

  • UserInterface/Views/ContextMenuUtilities.js:

(WebInspector.appendContextMenuItemsForSourceCode):

  • UserInterface/Views/DOMTreeContentView.js:

(WebInspector.DOMTreeContentView.prototype._mouseWasClicked.followLink):

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
(WebInspector.DOMTreeElement.prototype._showCustomElementDefinition):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView.prototype.showContentViewForTreeElement):

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WebInspector.ResourceTimelineDataGridNode.prototype._dataGridNodeGoToArrowClicked):

  • UserInterface/Views/SearchSidebarPanel.js:

(WebInspector.SearchSidebarPanel.prototype._treeSelectionDidChange):
(WebInspector.SearchSidebarPanel.prototype._treeElementDoubleClick):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange):

  • UserInterface/Views/VisualStyleSelectorTreeItem.js:

(WebInspector.VisualStyleSelectorTreeItem.prototype.populateContextMenu):
Change arguments of functions to change content views to ignore the Network tab.

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView.prototype.hasRepresentedObject):

  • UserInterface/Views/NetworkSidebarPanel.js:

(WebInspector.NetworkSidebarPanel.prototype.hasRepresentedObject):

  • UserInterface/Views/NetworkTabContentView.js:

(WebInspector.NetworkTabContentView.prototype.canShowRepresentedObject):
Ensure that the Network tab can only display resources that it has entries for in its view.

2:44 PM Changeset in webkit [212760] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.2-branch/Source

Versioning.

2:43 PM Changeset in webkit [212759] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.1-branch/Source

Versioning.

2:40 PM Changeset in webkit [212758] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603.1.30.0-branch/Source

Versioning.

2:40 PM Changeset in webkit [212757] by wilander@apple.com
  • 28 edits
    4 copies
    24 adds in trunk

Resource Load Statistics: Add alternate classification method
https://bugs.webkit.org/show_bug.cgi?id=168347
<rdar://problem/30352793>

Reviewed by Alex Christensen.

Source/WebCore:

This patch only adds test infrastructure in WebCore.

Tests: http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html

http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html
http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html
http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html
http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html
http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html
http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html
http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::setSubframeUnderTopFrameOrigin):
(WebCore::ResourceLoadObserver::setSubresourceUnderTopFrameOrigin):
(WebCore::ResourceLoadObserver::setSubresourceUniqueRedirectTo):

  • loader/ResourceLoadObserver.h:

Source/WebKit2:

This patch adds a CorePrediction-based classifier to the WebResourceLoadStatisticsStore.
The CorePrediction framework is introduced as a dependency for macOS and iOS. The patch
also adds functions to support layout tests of the feature.

  • Configurations/BaseTarget.xcconfig:
  • Configurations/WebKit.xcconfig:

Added dependency on CorePrediction.

  • Platform/classifier: Added.
  • Platform/classifier/ResourceLoadStatisticsClassifier.h: Added.

Pulls in the Cocoa-specific classifier for Cocoa-based platforms.

(WebKit::ResourceLoadStatisticsClassifier::ResourceLoadStatisticsClassifier):

  • Platform/classifier/ResourceLoadStatisticsClassifierBase.cpp: Added.

(WebKit::ResourceLoadStatisticsClassifierBase::hasPrevalentResourceCharacteristics):

Shared classifier logic.

(WebKit::ResourceLoadStatisticsClassifierBase::classifyWithVectorThreshold):

Fallback classifier for when we don't have CorePrediction.

  • Platform/classifier/ResourceLoadStatisticsClassifierBase.h: Added.

(WebKit::ResourceLoadStatisticsClassifierBase::ResourceLoadStatisticsClassifierBase):
(WebKit::ResourceLoadStatisticsClassifierBase::~ResourceLoadStatisticsClassifierBase):

  • Platform/classifier/cocoa: Added.
  • Platform/classifier/cocoa/CorePredictionSPI.h: Added.

Includes CorePrediction if available, otherwise declares needed symbols.
Always redeclares the functions so we'll get a build error if
CorePrediction changes.

  • Platform/classifier/cocoa/ResourceLoadStatisticsClassifierCocoa.cpp: Added.

(WebKit::ResourceLoadStatisticsClassifier::classify):
(WebKit::ResourceLoadStatisticsClassifier::storagePath):
(WebKit::ResourceLoadStatisticsClassifier::shouldUseCorePrediction):

The new classifier for Cocoa platforms.

  • Platform/classifier/cocoa/ResourceLoadStatisticsClassifierCocoa.h: Added.

(WebKit::ResourceLoadStatisticsClassifier::ResourceLoadStatisticsClassifier):

  • PlatformGTK.cmake:

Added Platform/classifier directory and ResourceLoadStatisticsClassifierBase.cpp.

  • PlatformMac.cmake:

Added Platform/classifier and Platform/classifier/cocoa directories, and
source files ResourceLoadStatisticsClassifierBase.cpp and
ResourceLoadStatisticsClassifierCocoa.cpp

  • Resources/ResourceLoadStatistics: Added.
  • Resources/ResourceLoadStatistics/corePrediction_model: Added.

Model file to load into CorePrediction.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.cpp:

(WKResourceLoadStatisticsManagerSetSubframeUnderTopFrameOrigin):
(WKResourceLoadStatisticsManagerSetSubresourceUnderTopFrameOrigin):
(WKResourceLoadStatisticsManagerSetSubresourceUniqueRedirectTo):

Test infrastructure.

  • UIProcess/API/C/WKResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsManager.cpp:

(WebKit::WebResourceLoadStatisticsManager::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsManager::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsManager::setSubresourceUniqueRedirectTo):

Test infrastructure.

  • UIProcess/WebResourceLoadStatisticsManager.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):

Renamed m_storagePath to m_statisticsStoragePath for clarity.

(WebKit::WebResourceLoadStatisticsStore::classifyResource):

Now calls the classifier through its ResourceLoadStatisticsClassifier
member variable.

(WebKit::WebResourceLoadStatisticsStore::persistentStoragePath):

Renamed m_storagePath to m_statisticsStoragePath for clarity.

(WebKit::WebResourceLoadStatisticsStore::writeEncoderToDisk):

Renamed m_storagePath to m_statisticsStoragePath for clarity.

(WebKit::WebResourceLoadStatisticsStore::hasPrevalentResourceCharacteristics): Deleted.

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • WebKit2.xcodeproj/project.pbxproj:

Added the new classifier source files under Platform/classifier and the
corePrediction_model file under Resources/ResourceLoadStatistics.

Source/WTF:

  • wtf/Platform.h:

Added support for HAVE(CORE_PREDICTION).

Tools:

Added three testRunner functions to facilitate layout tests:

  • setStatisticsSubframeUnderTopFrameOrigin()
  • setStatisticsSubresourceUnderTopFrameOrigin()
  • setStatisticsSubresourceUniqueRedirectTo()
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setStatisticsSubframeUnderTopFrameOrigin):
(WTR::TestRunner::setStatisticsSubresourceUnderTopFrameOrigin):
(WTR::TestRunner::setStatisticsSubresourceUniqueRedirectTo):

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

(WTR::TestController::setStatisticsSubframeUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUniqueRedirectTo):

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

WebKitLibraries:

  • WebKitPrivateFrameworkStubs/iOS/10/CorePrediction.framework: Added.
  • WebKitPrivateFrameworkStubs/iOS/10/CorePrediction.framework/CorePrediction.tbd: Added.

Stubs for private framework.

LayoutTests:

  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to-expected.txt: Added.
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html: Added.
  • platform/gtk/TestExpectations:

The whole http/tests/loading/resourceLoadStatistics marked as crashing based on
Carlos Garcia Campos's assessment in https://bugs.webkit.org/show_bug.cgi?id=168171.

  • platform/wk2/TestExpectations:

The above tests are only valid for WebKit2. Marked as [ Pass ].

2:14 PM Changeset in webkit [212756] by achristensen@apple.com
  • 4 edits in trunk/Source

Fix CMake build.

  • PlatformMac.cmake:
2:13 PM Changeset in webkit [212755] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add Media Streams and Capture to features.json.

  • features.json:
2:13 PM Changeset in webkit [212754] by matthew_hanson@apple.com
  • 1 copy in branches/safari-603.1.30.4-branch

New Branch.

2:12 PM Changeset in webkit [212753] by matthew_hanson@apple.com
  • 1 copy in branches/safari-603.1.30.3-branch

New Branch.

2:12 PM Changeset in webkit [212752] by matthew_hanson@apple.com
  • 1 copy in branches/safari-603.1.30.2-branch

New Branch.

2:11 PM Changeset in webkit [212751] by matthew_hanson@apple.com
  • 1 copy in branches/safari-603.1.30.1-branch

New Branch.

2:10 PM Changeset in webkit [212750] by matthew_hanson@apple.com
  • 1 copy in branches/safari-603.1.30.0-branch

New Branch.

2:07 PM Changeset in webkit [212749] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

Clarify the status of 'webkitSubtle' and 'subtle' attributes on the WebCrypto API.

  • features.json:
1:53 PM Changeset in webkit [212748] by commit-queue@webkit.org
  • 9 edits in trunk

[Readable Streams API] Add ReadableStreamBYOBRequest view getter
https://bugs.webkit.org/show_bug.cgi?id=168652

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2017-02-21
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Updated test expectations.

  • web-platform-tests/streams/readable-byte-streams/general-expected.txt:
  • web-platform-tests/streams/readable-byte-streams/general.dedicatedworker-expected.txt:

Source/WebCore:

Implemented getter for ReadableStreamBYOBRequest view attribute.

Added 1 test checking that view length corresponds to autoAllocateChunkSize.
Also updated test expectations for W3C imported tests.

  • Modules/streams/ReadableByteStreamInternals.js:

(isReadableStreamBYOBRequest): Added.

  • Modules/streams/ReadableStreamBYOBRequest.js:

(view): Added.

LayoutTests:

Added 1 test checking that view length corresponds to autoAllocateChunkSize.

  • streams/readable-stream-byob-request-expected.txt: Updated.
  • streams/readable-stream-byob-request.js: Added 1 test.
1:47 PM Changeset in webkit [212747] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Clarify the status of 'webkitSubtle' and 'subtle' attributes on the WebCrypto API.

  • features.json:
1:30 PM Changeset in webkit [212746] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit2

[WebRTC][Mac] Network process sandbox does not allow WebRTC networking
https://bugs.webkit.org/show_bug.cgi?id=168594

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Brent Fulgham.

UIProcess was passing a boolean to know whether WebRTC networking is allowed or not to the network process.
This boolean was known to late for the sandbox to be relaxed.
A sandbox extension is now used instead to relax the sandbox.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

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

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

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcess):
(WebKit::NetworkProcess::initializeSandbox):

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

1:29 PM Changeset in webkit [212745] by commit-queue@webkit.org
  • 19 edits
    2 adds in trunk/Source

[WebRTC] ICE candidates should be filtered according a policy
https://bugs.webkit.org/show_bug.cgi?id=168348

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

Source/WebCore:

Covered by manual tests. Should be covered in the future by layout tests with dedicated internals API.

Adding support for ICE candidate filtering at RTCPeerConnection level.
If ICE candidate filtering is on (by default), host candidates are stored and not sent immediately.
Reflexive candidates are purged from raddr information to not leak the host IP address.

Stored candidates may be advertised to the JS layer if RTCController is notified of a change of filtering policy.
To implement that, PeerConnectionBackend stores all filtered out candidates and RTCPeerConnection register
themselves to RTCController to get notifications of filtering policy changes.

Making RTCPeerConnection use setPendingActivity throughout its lifetime.
This ensures it does not get collected until the page is off or close() is called on the object.

Adding support for enumerating or not all interfaces at libwebrtc level.
This choice is done at creation of the peer connection.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::enableICECandidateFiltering):
(WebCore::PeerConnectionBackend::disableICECandidateFiltering):
(WebCore::filterICECandidate):
(WebCore::PeerConnectionBackend::newICECandidate):

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCController.cpp: Added.

(WebCore::RTCController::remove):
(WebCore::RTCController::add):
(WebCore::RTCController::disableICECandidateFiltering):
(WebCore::RTCController::enableICECandidateFiltering):

  • Modules/mediastream/RTCController.h: Added.
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::close):
(WebCore::RTCPeerConnection::rtcController):
(WebCore::RTCPeerConnection::registerToController):
(WebCore::RTCPeerConnection::unregisterFromController):

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

(WebCore::LibWebRTCMediaEndpoint::OnIceCandidate):

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

(WebCore::Page::rtcController):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::LibWebRTCProvider::createPeerConnection):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

Source/WebKit2:

Adding the possibility for the UI process to control the ICE candidate filtering and whether libwebrtc can
enumerate all interfaces or not.

Disabling ICE candidate filtering for the moment.
Enabling to enumerate all interfaces for the moment.

In the future, ICE candidate filtering should be tied to getUserMedia.
Interface enumeration should be disabled with the default configuration.
We should do that once we have sufficient testing in various network infrastructures.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::initializeWebPage):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::disableICECandidateFiltering):
(WebKit::WebPage::enableICECandidateFiltering):
(WebKit::WebPage::disableEnumeratingAllNetworkInterfaces):
(WebKit::WebPage::enableEnumeratingAllNetworkInterfaces):

  • WebProcess/WebPage/WebPage.messages.in:
1:20 PM Changeset in webkit [212744] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, update WebCrypto API feature status.

  • features.json:
1:15 PM Changeset in webkit [212743] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix the bad JSON.

  • features.json:
1:04 PM Changeset in webkit [212742] by akling@apple.com
  • 10 edits in trunk/Source

[iOS] WebKit1 should use shared memory pressure handler code.
<https://webkit.org/b/168653>

Reviewed by Antti Koivisto.

Source/WebCore:

Remove iOS WebKit1 specific members and code from MemoryPressureHandler in favor
of using the same code that iOS WebKit2 and macOS WebKit uses.

  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::platformReleaseMemory): Add two cleanup calls that were only in the iOS WebView code.

  • platform/MemoryPressureHandler.h:

(WebCore::MemoryPressureHandler::m_releaseMemoryBlock): Deleted.

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::respondToMemoryPressureCallback): Deleted.
(WebCore::MemoryPressureHandler::installMemoryReleaseBlock): Deleted.
(WebCore::MemoryPressureHandler::setReceivedMemoryPressure): Deleted.
(WebCore::MemoryPressureHandler::clearMemoryPressure): Deleted.
(WebCore::MemoryPressureHandler::shouldWaitForMemoryClearMessage): Deleted.
(WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded): Deleted.

Source/WebKit/ios:

  • Misc/WebUIKitSupport.mm:

(WebKitInitialize): Don't unconditionally install a memory warning handler just
because the framework is loaded.

Source/WebKit/mac:

Register a WebThread-aware memory callback with the shared MemoryPressureHandler
and get rid of the old iOS WebKit1 specific implementation. Some of it was even
dead code since MobileSafari has been using WebKit2 for quite a while.

  • WebView/WebView.h:
  • WebView/WebView.mm:

(WebInstallMemoryPressureHandler):
(+[WebView _handleMemoryWarning]): Deleted.
(+[WebView registerForMemoryNotifications]): Deleted.
(+[WebView releaseFastMallocMemoryOnCurrentThread]): Deleted.
(+[WebView garbageCollectNow]): Deleted.
(+[WebView purgeInactiveFontData]): Deleted.
(+[WebView drainLayerPool]): Deleted.
(+[WebView discardAllCompiledCode]): Deleted.
(+[WebView _clearMemoryPressure]): Deleted.
(+[WebView _shouldWaitForMemoryClearMessage]): Deleted.

  • WebView/WebViewPrivate.h:
1:03 PM Changeset in webkit [212741] by Jonathan Bedard
  • 2 edits
    2 adds in trunk/Tools

webkitpy: Refactor Device class
https://bugs.webkit.org/show_bug.cgi?id=168332

Reviewed by Alexey Proskuryakov.

Separate the more specific SimulatedDevice from the abstract
idea of a device.

  • Scripts/webkitpy/xcode/device.py: Added.

(Device): Base device class.
(Device.init): Initialize _host, name and udid.
(Device.install_app): Function declaration.
(Device.launch_app): Ditto.
(Device.eq): Compare two devices by udid.
(Device.ne): Ditto.
(Device.repr): Return device name and udid in formatted string.

  • Scripts/webkitpy/xcode/simulated_device.py: Copied from Tools/Scripts/webkitpy/xcode/simulator.py.

(SimulatedDevice):
(SimulatedDevice.init): Call Device.init first.
(SimulatedDevice.delete): Device -> SimulatedDevice.
(SimulatedDevice.reset): Ditto.
(SimulatedDevice.eq): Moved to device.py.
(SimulatedDevice.ne): Ditto.
(SimulatedDevice.repr): Call Device repr first.
(DeviceType): Kept in Scripts/webkitpy/xcode/simulator.py.
(Runtime): Kept in Scripts/webkitpy/xcode/simulator.py.
(Device): Renamed SimulatedDevice.
(Simulator): Kept in Scripts/webkitpy/xcode/simulator.py.

  • Scripts/webkitpy/xcode/simulator.py:

(Simulator): Define Simulator.Device class as None.
(Simulator.init): Import SimulatedDevice as Simulator.Device.
(Simulator.delete_device): Use Simulator.Device.
(Simulator.reset_device): Ditto.
(Simulator._parse_devices): Ditto.
(Simulator.lookup_or_create_device): Make
(Device): Moved to simulated_device as SimulatedDevice.

12:57 PM Changeset in webkit [212740] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-603-branch

Merge r212737. rdar://problem/30636274

12:15 PM Changeset in webkit [212739] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix two failing WebKit legacy tests
https://bugs.webkit.org/show_bug.cgi?id=168667

Reviewed by Tim Horton.

Handle the NSPasteboardTypeString type.

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::read):
(WebCore::addHTMLClipboardTypesForCocoaType):

12:12 PM Changeset in webkit [212738] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add Web Audio and Web MIDI to features.json.

  • features.json:
12:06 PM Changeset in webkit [212737] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION(r207669): Crash after mutating selector text
https://bugs.webkit.org/show_bug.cgi?id=168655
<rdar://problem/30632111>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: fast/css/selector-text-mutation-crash.html

  • style/StyleScope.cpp:

(WebCore::Style::Scope::scheduleUpdate):

Clear the style resolver immediately if style sheet content changes. The resolver may
have data structures that point to the old sheet contents.

The resolver would get wiped anyway when the scheduled update actually occurs.

LayoutTests:

  • fast/css/selector-text-mutation-crash-expected.txt: Added.
  • fast/css/selector-text-mutation-crash.html: Added.
12:04 PM Changeset in webkit [212736] by jiewen_tan@apple.com
  • 17 edits
    4 copies
    8 moves
    44 adds in trunk

[WebCrypto] Add support for AES-CFB
https://bugs.webkit.org/show_bug.cgi?id=168344
<rdar://problem/20940221>

Reviewed by Brent Fulgham.

Source/WebCore:

This patch adds support for AES-CFB. Operations of AES-CFB include: encrypt, decrypt, generateKey,
importKey, exportKey, wrapKey, and unwrapKey. This implementation follows a slightly old version
of WebCryptoAPI spec: https://www.w3.org/TR/2014/CR-WebCryptoAPI-20141211/#aes-cfb.

Tests: crypto/subtle/aes-cbc-cfb-decrypt-malformed-parameters.html

crypto/subtle/aes-cbc-cfb-encrypt-malformed-parameters.html
crypto/subtle/aes-cbc-import-key-unwrap-jwk-rsa-key-public.html
crypto/subtle/aes-cfb-generate-export-key-jwk-length-128.html
crypto/subtle/aes-cfb-generate-export-key-jwk-length-192.html
crypto/subtle/aes-cfb-generate-export-key-jwk-length-256.html
crypto/subtle/aes-cfb-generate-export-raw-key.html
crypto/subtle/aes-cfb-generate-key-encrypt-decrypt.html
crypto/subtle/aes-cfb-generate-key.html
crypto/subtle/aes-cfb-import-jwk-key-length-128.html
crypto/subtle/aes-cfb-import-jwk-key-length-192.html
crypto/subtle/aes-cfb-import-jwk-key-length-256.html
crypto/subtle/aes-cfb-import-key-decrypt.html
crypto/subtle/aes-cfb-import-key-encrypt.html
crypto/subtle/aes-cfb-import-key-unwrap-jwk-key.html
crypto/subtle/aes-cfb-import-key-unwrap-raw-key.html
crypto/subtle/aes-cfb-import-key-wrap-jwk-key.html
crypto/subtle/aes-cfb-import-key-wrap-raw-key.html
crypto/subtle/aes-cfb-import-raw-key.html
crypto/workers/subtle/aes-cfb-import-key-decrypt.html
crypto/workers/subtle/aes-cfb-import-key-encrypt.html
crypto/workers/subtle/aes-cfb-import-key-unwrap-key.html
crypto/workers/subtle/aes-cfb-import-key-wrap-key.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Add CryptoAlgorithmAES_CFB.cpp,
change AesCbcParams.idl to AesCbcCfbParams.idl.

  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::normalizeCryptoAlgorithmParameters):
Add support for AES-CFB.

  • crypto/CryptoAlgorithm.h:

Include <wtf/Variant.h>.

  • crypto/CryptoAlgorithmParameters.h:

Add support for AES-CFB.

  • crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:

(WebCore::CryptoAlgorithmAES_CBC::encrypt):
(WebCore::CryptoAlgorithmAES_CBC::decrypt):
Rename CryptoAlgorithmAesCbcParams to CryptoAlgorithmAesCbcCfbParams.

  • crypto/algorithms/CryptoAlgorithmAES_CFB.cpp: Added.

(WebCore::usagesAreInvalidForCryptoAlgorithmAES_CFB):
(WebCore::CryptoAlgorithmAES_CFB::create):
(WebCore::CryptoAlgorithmAES_CFB::identifier):
(WebCore::CryptoAlgorithmAES_CFB::encrypt):
(WebCore::CryptoAlgorithmAES_CFB::decrypt):
(WebCore::CryptoAlgorithmAES_CFB::generateKey):
(WebCore::CryptoAlgorithmAES_CFB::importKey):
(WebCore::CryptoAlgorithmAES_CFB::exportKey):

  • crypto/algorithms/CryptoAlgorithmAES_CFB.h: Added.
  • crypto/gnutls/CryptoAlgorithmAES_CFBGnuTLS.cpp: Added.

(WebCore::CryptoAlgorithmAES_CFB::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CFB::platformDecrypt):
Add dummy support of AES_CFB for GTK+.

  • crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:

(WebCore::transformAES_CBC):
Drop conditional PLATFORM(COCOA).
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
Rename CryptoAlgorithmAesCbcParams to CryptoAlgorithmAesCbcCfbParams.

  • crypto/mac/CryptoAlgorithmAES_CFBMac.cpp: Added.

(WebCore::transformAES_CFB):
(WebCore::CryptoAlgorithmAES_CFB::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CFB::platformDecrypt):

  • crypto/mac/CryptoAlgorithmRegistryMac.cpp:

(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
Add support for AES-CFB.

  • crypto/parameters/AesCbcCfbParams.idl: Renamed from Source/WebCore/crypto/parameters/AesCbcParams.idl.
  • crypto/parameters/CryptoAlgorithmAesCbcCfbParams.h: Renamed from Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcParams.h.

Since dictionaries AesCbcParams and AesCfbParams are essentially the same, I combine them together in our implementations.

LayoutTests:

  • crypto/subtle/aes-cbc-cfb-decrypt-malformed-parameters-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-decrypt-malformed-parameters-expected.txt.
  • crypto/subtle/aes-cbc-cfb-decrypt-malformed-parameters.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-decrypt-malformed-parameters.html.
  • crypto/subtle/aes-cbc-cfb-encrypt-malformed-parameters-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-encrypt-malformed-parameters-expected.txt.
  • crypto/subtle/aes-cbc-cfb-encrypt-malformed-parameters.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-encrypt-malformed-parameters.html.
  • crypto/subtle/aes-cbc-import-key-unwrap-jwk-rsa-key-public-expected.txt: Renamed from LayoutTests/crypto/subtle/aes-cbc-import-key-uwrap-jwk-rsa-key-public-expected.txt.
  • crypto/subtle/aes-cbc-import-key-unwrap-jwk-rsa-key-public.html: Renamed from LayoutTests/crypto/subtle/aes-cbc-import-key-uwrap-jwk-rsa-key-public.html.
  • crypto/subtle/aes-cfb-generate-export-key-jwk-length-128-expected.txt: Added.
  • crypto/subtle/aes-cfb-generate-export-key-jwk-length-128.html: Added.
  • crypto/subtle/aes-cfb-generate-export-key-jwk-length-192-expected.txt: Added.
  • crypto/subtle/aes-cfb-generate-export-key-jwk-length-192.html: Added.
  • crypto/subtle/aes-cfb-generate-export-key-jwk-length-256-expected.txt: Added.
  • crypto/subtle/aes-cfb-generate-export-key-jwk-length-256.html: Added.
  • crypto/subtle/aes-cfb-generate-export-raw-key-expected.txt: Added.
  • crypto/subtle/aes-cfb-generate-export-raw-key.html: Added.
  • crypto/subtle/aes-cfb-generate-key-encrypt-decrypt-expected.txt: Added.
  • crypto/subtle/aes-cfb-generate-key-encrypt-decrypt.html: Added.
  • crypto/subtle/aes-cfb-generate-key-expected.txt: Added.
  • crypto/subtle/aes-cfb-generate-key.html: Added.
  • crypto/subtle/aes-cfb-import-jwk-key-length-128-expected.txt: Added.
  • crypto/subtle/aes-cfb-import-jwk-key-length-128.html: Added.
  • crypto/subtle/aes-cfb-import-jwk-key-length-192-expected.txt: Added.
  • crypto/subtle/aes-cfb-import-jwk-key-length-192.html: Added.
  • crypto/subtle/aes-cfb-import-jwk-key-length-256-expected.txt: Added.
  • crypto/subtle/aes-cfb-import-jwk-key-length-256.html: Added.
  • crypto/subtle/aes-cfb-import-key-decrypt-expected.txt: Added.
  • crypto/subtle/aes-cfb-import-key-decrypt.html: Added.
  • crypto/subtle/aes-cfb-import-key-encrypt-expected.txt: Added.
  • crypto/subtle/aes-cfb-import-key-encrypt.html: Added.
  • crypto/subtle/aes-cfb-import-key-unwrap-jwk-key-expected.txt: Added.
  • crypto/subtle/aes-cfb-import-key-unwrap-jwk-key.html: Added.
  • crypto/subtle/aes-cfb-import-key-unwrap-raw-key-expected.txt: Added.
  • crypto/subtle/aes-cfb-import-key-unwrap-raw-key.html: Added.
  • crypto/subtle/aes-cfb-import-key-wrap-jwk-key-expected.txt: Added.
  • crypto/subtle/aes-cfb-import-key-wrap-jwk-key.html: Added.
  • crypto/subtle/aes-cfb-import-key-wrap-raw-key-expected.txt: Added.
  • crypto/subtle/aes-cfb-import-key-wrap-raw-key.html: Added.
  • crypto/subtle/aes-cfb-import-raw-key-expected.txt: Added.
  • crypto/subtle/aes-cfb-import-raw-key.html: Added.
  • crypto/subtle/aes-generate-key-malformed-parameters-expected.txt:
  • crypto/subtle/aes-generate-key-malformed-parameters.html:
  • crypto/subtle/aes-import-key-malformed-parameters-expected.txt:
  • crypto/subtle/aes-import-key-malformed-parameters.html:
  • crypto/workers/subtle/aes-cfb-import-key-decrypt-expected.txt: Added.
  • crypto/workers/subtle/aes-cfb-import-key-decrypt.html: Added.
  • crypto/workers/subtle/aes-cfb-import-key-encrypt-expected.txt: Added.
  • crypto/workers/subtle/aes-cfb-import-key-encrypt.html: Added.
  • crypto/workers/subtle/aes-cfb-import-key-unwrap-key-expected.txt: Added.
  • crypto/workers/subtle/aes-cfb-import-key-unwrap-key.html: Added.
  • crypto/workers/subtle/aes-cfb-import-key-wrap-key-expected.txt: Added.
  • crypto/workers/subtle/aes-cfb-import-key-wrap-key.html: Added.
  • crypto/workers/subtle/resources/aes-cfb-import-key-decrypt.js: Added.
  • crypto/workers/subtle/resources/aes-cfb-import-key-encrypt.js: Added.
  • crypto/workers/subtle/resources/aes-cfb-import-key-unwrap-key.js: Added.
  • crypto/workers/subtle/resources/aes-cfb-import-key-wrap-key.js: Added.
12:00 PM Changeset in webkit [212735] by jfbastien@apple.com
  • 4 edits in trunk

Fix cmake build
https://bugs.webkit.org/show_bug.cgi?id=168665

Reviewed by Mark Lam.

It was broken by r212555 and r212681.

Source/WebKit:

  • PlatformMac.cmake:

Tools:

  • DumpRenderTree/PlatformMac.cmake:
12:00 PM Changeset in webkit [212734] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the ToT iOS build

Adopt updated UIKit SPI and remove calls to the deprecated version.

  • platform/ios/WebItemProviderPasteboard.mm:

(-[WebItemProviderPasteboard setItems:]):

11:34 AM Changeset in webkit [212733] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[WebRTC] NetworkRTCMonitor should ensure clearing its manager only once
https://bugs.webkit.org/show_bug.cgi?id=168661

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Alex Christensen.

Making sure NetworkRTCMonitor manager is cleared only once.
ALso ensuring that manager does not get destroyed as part of NetworkRTCMonitor destructor.
The manager needs to be destroyed in the RTC network thread.

  • NetworkProcess/webrtc/NetworkRTCMonitor.cpp:

(WebKit::NetworkRTCMonitor::~NetworkRTCMonitor):
(WebKit::NetworkRTCMonitor::stopUpdating):

  • NetworkProcess/webrtc/NetworkRTCMonitor.h:
11:29 AM Changeset in webkit [212732] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

[WebRTC][Mac][WebKit2] Revise sandbox to limit connections to UDP and TCP
https://bugs.webkit.org/show_bug.cgi?id=168664
<rdar://problem/30600587>

Reviewed by Youenn Fablet.

Add filters to the WebRTC rule to limit network traffic to UDP and TCP.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
11:27 AM Changeset in webkit [212731] by matthew_hanson@apple.com
  • 10 edits
    1 copy
    3 adds in branches/safari-603-branch/Source

rdar://problem/30553220

11:21 AM Changeset in webkit [212730] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] WebView is not painting in accelerated compositing mode.
https://bugs.webkit.org/show_bug.cgi?id=168654

Reviewed by Brent Fulgham.

Initializing the uncommitted layer change flags to CoverageRectChanged in GraphicsLayerCA,
stops WebView painting in accelerated mode.

Covered by existing tests.

  • platform/graphics/ca/GraphicsLayerCA.h:
11:11 AM Changeset in webkit [212729] by ap@apple.com
  • 2 edits in trunk/Tools

Improve bot watcher's dashboard performance
https://bugs.webkit.org/show_bug.cgi?id=168624
<rdar://problem/30190109>

Reviewed by Daniel Bates.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Trac.js:

There was an unnecessary linear complexity algorithm in indexOfRevision().

11:07 AM Changeset in webkit [212728] by matthew_hanson@apple.com
  • 5 edits in branches/safari-603-branch/Source

Versioning.

10:45 AM Changeset in webkit [212727] by jer.noble@apple.com
  • 2 edits
    1 move in trunk/Source/WebCore

Make logging in high-priority audio threads less expensive
https://bugs.webkit.org/show_bug.cgi?id=168639

Reviewed by Jon Lee.

Logging from inside a high-priority audio thread will make a number of calls to malloc, block, and
therefore cause audio glitches. Make this logging less expensive by dispatching to the main thread
before creating and outputting the log string.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/mac/AudioSampleDataSource.mm: Renamed from Source/WebCore/platform/audio/mac/AudioSampleDataSource.cpp.

(WebCore::AudioSampleDataSource::pushSamplesInternal):
(WebCore::AudioSampleDataSource::pullSamplesInternal):

10:36 AM Changeset in webkit [212726] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit2

Check what LocalStorage data exists in deleteDatabasesModifiedSince() before attempting deletion.
https://bugs.webkit.org/show_bug.cgi?id=168659
rdar://problem/22781730

Patch by Maureen Daum <mdaum@apple.com> on 2017-02-21
Reviewed by Brady Eidson.

Check what LocalStorage data exists in deleteDatabasesModifiedSince() before attempting deletion.
It is possible that another process has caused information to be added to LocalStorage
after we created this LocalStorageDatabaseTracker instance, so we should update our
internal state by checking the contents of StorageTracker.db and the other local
storage files so we know what databases actually exist. By calling importOriginIdentifiers()
at the start of deleteDatabasesModifiedSince(), m_origins will now have the up-to-date
list of origins LocalStorage contains data for.

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):

10:28 AM Changeset in webkit [212725] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Give the Mock audio input a "hum" to make drop-outs more detectable
https://bugs.webkit.org/show_bug.cgi?id=168641

Reviewed by Eric Carlson.

Add two helper functions to generate waveforms: addHum() and writeHum(). Use these methods
to create a bip-bop audio buffer which can be used to "blit" a portion the waveform into the
destination buffer during rendering. The background hum must be seamless across multiple
pull operations, so add the hum sound during rendering.

To ensure the waveform buffer is created, initialize the sampleRate to zero, then call
applySampleRate() with the desired default rate, 44.1kHz.

  • platform/mediastream/mac/MockRealtimeAudioSourceMac.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:

(WebCore::writeHum):
(WebCore::addHum):
(WebCore::MockRealtimeAudioSource::create):
(WebCore::MockRealtimeAudioSourceMac::render):
(WebCore::MockRealtimeAudioSourceMac::applySampleRate):

10:24 AM Changeset in webkit [212724] by commit-queue@webkit.org
  • 13 edits
    3 copies
    2 deletes in trunk/Source/WebKit2

Reduce platform ifdefs in WebKit2 custom protocols implementation
https://bugs.webkit.org/show_bug.cgi?id=165028

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-02-21
Reviewed by Darin Adler.

Make mac implementation use the APICustomProtocolManagerClient to share more code with the soup based ports.

  • CMakeLists.txt: Add CustomProtocolManagerProxy.cpp.
  • PlatformEfl.cmake: Remove CustomProtocolManagerProxySoup.cpp.
  • PlatformGTK.cmake: Ditto.
  • PlatformMac.cmake: Remove CustomProtocolManagerProxyMac.mm.
  • UIProcess/API/APICustomProtocolManagerClient.h:

(API::CustomProtocolManagerClient::startLoading): Make it void, since we were always returning true and the
returned value was ignored.

  • UIProcess/API/efl/ewk_url_scheme_request.cpp:

(EwkUrlSchemeRequest::finish): Update to new CustomProtocolManagerProxy API.

  • UIProcess/API/gtk/WebKitCustomProtocolManagerClient.cpp:
  • UIProcess/API/gtk/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback): Ditto.

  • UIProcess/Cocoa/CustomProtocolManagerClient.h: Added.
  • UIProcess/Cocoa/CustomProtocolManagerClient.mm: Added.

(-[WKCustomProtocolLoader initWithCustomProtocolManagerProxy:customProtocolID:request:]):
(-[WKCustomProtocolLoader dealloc]):
(-[WKCustomProtocolLoader connection:didFailWithError:]):
(-[WKCustomProtocolLoader connection:didReceiveResponse:]):
(-[WKCustomProtocolLoader connection:didReceiveData:]):
(-[WKCustomProtocolLoader connection:willSendRequest:redirectResponse:]):
(-[WKCustomProtocolLoader connectionDidFinishLoading:]):
(WebKit::CustomProtocolManagerClient::startLoading):
(WebKit::CustomProtocolManagerClient::stopLoading):
(WebKit::CustomProtocolManagerClient::invalidate):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize): Set the CustomProtocolManagerClient.
(WebKit::WebProcessPool::platformInitializeNetworkProcess): Remove code that is now shared.

  • UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.cpp: Added.

(WebKit::CustomProtocolManagerProxy::startLoading):
(WebKit::CustomProtocolManagerProxy::processDidClose):
(WebKit::CustomProtocolManagerProxy::wasRedirectedToRequest):
(WebKit::CustomProtocolManagerProxy::didReceiveResponse):

  • UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::globalURLSchemesWithCustomProtocolHandlers): Just moved here to use it from ensureNetworkProcess().
(WebKit::WebProcessPool::WebProcessPool): Remove soup ifdefs.
(WebKit::WebProcessPool::setCustomProtocolManagerClient): Moved from the soup implementation.
(WebKit::WebProcessPool::ensureNetworkProcess): Initialize custom protocols parameters.
(WebKit::WebProcessPool::registerSchemeForCustomProtocol): Register the protocol if not already registered globally.
(WebKit::WebProcessPool::unregisterSchemeForCustomProtocol): Remove soup ifdefs.

  • UIProcess/WebProcessPool.h: Remove soup ifdefs.
  • UIProcess/efl/RequestManagerClientEfl.cpp:
  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::WebProcessPool::platformInitializeNetworkProcess): Remove code that is now shared.

  • WebKit2.xcodeproj/project.pbxproj:
10:21 AM Changeset in webkit [212723] by matthew_hanson@apple.com
  • 2 edits in branches/safari-603-branch/Source/WebCore

Merge r212667. rdar://problem/29852056

10:21 AM Changeset in webkit [212722] by matthew_hanson@apple.com
  • 13 edits
    1 add in branches/safari-603-branch/Source

Merge r212692. rdar://problem/30475767

10:21 AM Changeset in webkit [212721] by matthew_hanson@apple.com
  • 6 edits
    6 adds in branches/safari-603-branch

Merge r212621. rdar://problem/30563318

10:21 AM Changeset in webkit [212720] by matthew_hanson@apple.com
  • 4 edits in branches/safari-603-branch/Source/WebCore

Merge r212140. rdar://problem/30563318

10:20 AM Changeset in webkit [212719] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: console scope bar's unread message indicator is misaligned
https://bugs.webkit.org/show_bug.cgi?id=168625

Reviewed by Matt Baker.

  • UserInterface/Views/LogContentView.css:

(.log-scope-bar > li.unread::before):
(body[dir=ltr] .log-scope-bar > li.unread::before):
(body[dir=rtl] .log-scope-bar > li.unread::before):

10:12 AM Changeset in webkit [212718] by commit-queue@webkit.org
  • 1 edit
    3 deletes in trunk/Source/WebKit2

Remove unused files.
https://bugs.webkit.org/show_bug.cgi?id=168656.

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2017-02-21
Reviewed by Csaba Osztrogonác.

Remove files which became unused after removal of EFL port.

  • UIProcess/CoordinatedGraphics/PageViewportController.cpp: Removed.
  • UIProcess/CoordinatedGraphics/PageViewportController.h: Removed.
  • UIProcess/PageViewportControllerClient.h: Removed.
10:00 AM Changeset in webkit [212717] by Ryan Haddad
  • 17 edits
    13 deletes in trunk

Unreviewed, rolling out r212712.

This change broke the CLoop build.

Reverted changeset:

"JSModuleNamespace object should have IC"
https://bugs.webkit.org/show_bug.cgi?id=160590
http://trac.webkit.org/changeset/212712

9:25 AM Changeset in webkit [212716] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Make TrackPrivateBase ThreadSafeRefCounted, so that it can be retained in non-main threads
https://bugs.webkit.org/show_bug.cgi?id=168642

Reviewed by Eric Carlson.

AudioTrackPrivateMediaStreamCocoa has two entry points from background threads:
audioSamplesAvailable() and render(). Protect against being destroyed mid-execution by
retaining this for the duration of those methods.

  • platform/graphics/TrackPrivateBase.h:
  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:

(WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):
(WebCore::AudioTrackPrivateMediaStreamCocoa::render):

9:24 AM Changeset in webkit [212715] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Pulling too quickly from an AudioSampleDataSource should increase the pre-buffer amount
https://bugs.webkit.org/show_bug.cgi?id=168645

Reviewed by Eric Carlson.

If a pull operation runs past the end of the buffered range of a CARingBuffer, the underrun
is zero-filled, causing an audible glitch. In this case, bias m_outputSampleOffset by the
amount of the underrun, which should keep the underrun from reoccurring.

  • platform/audio/mac/AudioSampleDataSource.cpp:

(WebCore::AudioSampleDataSource::pullSamplesInternal):

9:19 AM Changeset in webkit [212714] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

AudioSampleBufferList::zeroABL() takes a byte-count, not a sample-count.
https://bugs.webkit.org/show_bug.cgi?id=168635

Reviewed by Jon Lee.

  • platform/audio/mac/AudioSampleDataSource.cpp:

(WebCore::AudioSampleDataSource::pullSamplesInternal):
(WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks):

8:27 AM Changeset in webkit [212713] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[WebRTC] LibWebRTCSocket::SendTo message should have a correct SocketAddress
https://bugs.webkit.org/show_bug.cgi?id=168636

Patch by Youenn Fablet <youenn@apple.com> on 2017-02-21
Reviewed by Eric Carlson.

  • WebProcess/Network/webrtc/LibWebRTCSocket.cpp:

(WebKit::LibWebRTCSocket::SendTo): Ensuring address remains valid during SendTo message lifetime.

2:38 AM Changeset in webkit [212712] by Yusuke Suzuki
  • 17 edits
    13 adds in trunk

JSModuleNamespace object should have IC
https://bugs.webkit.org/show_bug.cgi?id=160590

Reviewed by Saam Barati.

JSTests:

  • modules/module-assert-access-binding.js: Added.
  • modules/module-assert-access-namespace.js: Added.
  • modules/namespace-empty.js: Added.

(from.string_appeared_here.access):
(i.shouldThrow):

  • stress/module-namespace-access-change.js: Added.

(shouldBe):
(access):
(import.string_appeared_here.then):

  • stress/module-namespace-access-non-constant.js: Added.

(shouldBe):
(import.string_appeared_here.then):

  • stress/module-namespace-access-poly.js: Added.

(shouldBe):
(access):
(import.string_appeared_here.then):

  • stress/module-namespace-access-transitive-exports.js: Added.

(shouldBe):
(import.string_appeared_here.then):

  • stress/module-namespace-access.js: Added.

(shouldBe):
(import.string_appeared_here.then):

  • stress/resources/module-namespace-access-transitive-exports-2.js: Added.

(export.cocoa):
(export.change):

  • stress/resources/module-namespace-access-transitive-exports.js: Added.
  • stress/resources/module-namespace-access.js: Added.

(export.cocoa):
(export.change):

Source/JavaScriptCore:

This patch optimizes accesses to module namespace objects.

  1. Cache the resolutions for module namespace objects.

When constructing the module namespace object, we already resolves all the exports.
The module namespace object caches this result and leverage it in the later access in
getOwnPropertySlot. This avoids resolving bindings through resolveExport.

  1. Introduce ModuleNamespaceLoad IC.

This patch adds new IC for module namespace objects. The mechanism is simple, getOwnPropertySlot
tells us about module namespace object resolution. The IC first checks whether the given object
is an expected module namespace object. If this check succeeds, we load the value from the module
environment.

  1. Introduce DFG/FTL optimization.

After exploiting module namespace object accesses in (2), DFG can recognize this in ByteCodeParser.
DFG will convert it to CheckCell with the namespace object and GetClosureVar from the cached environment.
At that time, we have a chance to fold it to the constant.

This optimization improves the performance of accessing to module namespace objects.

Before

$ time ../../WebKitBuild/module-ic-tot/Release/bin/jsc -m module-assert-access-namespace.js
../../WebKitBuild/module-ic-tot/Release/bin/jsc -m 0.43s user 0.03s system 101% cpu 0.451 total
$ time ../../WebKitBuild/module-ic-tot/Release/bin/jsc -m module-assert-access-binding.js
../../WebKitBuild/module-ic-tot/Release/bin/jsc -m 0.08s user 0.02s system 103% cpu 0.104 total

After

$ time ../../WebKitBuild/module-ic/Release/bin/jsc -m module-assert-access-namespace.js
../../WebKitBuild/module-ic/Release/bin/jsc -m 0.11s user 0.01s system 106% cpu 0.109 total
$ time ../../WebKitBuild/module-ic/Release/bin/jsc -m module-assert-access-binding.js
../../WebKitBuild/module-ic/Release/bin/jsc -m module-assert-access-binding.j 0.08s user 0.02s system 102% cpu 0.105 total

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::create):
(JSC::AccessCase::guardedByStructureCheck):
(JSC::AccessCase::canReplace):
(JSC::AccessCase::visitWeak):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):

  • bytecode/AccessCase.h:
  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::GetByIdStatus):
(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::GetByIdStatus::makesCalls):
(JSC::GetByIdStatus::dump):

  • bytecode/GetByIdStatus.h:

(JSC::GetByIdStatus::isModuleNamespace):
(JSC::GetByIdStatus::takesSlowPath):
(JSC::GetByIdStatus::moduleNamespaceObject):
(JSC::GetByIdStatus::moduleEnvironment):
(JSC::GetByIdStatus::scopeOffset):

  • bytecode/ModuleNamespaceAccessCase.cpp: Added.

(JSC::ModuleNamespaceAccessCase::ModuleNamespaceAccessCase):
(JSC::ModuleNamespaceAccessCase::create):
(JSC::ModuleNamespaceAccessCase::~ModuleNamespaceAccessCase):
(JSC::ModuleNamespaceAccessCase::clone):
(JSC::ModuleNamespaceAccessCase::emit):

  • bytecode/ModuleNamespaceAccessCase.h: Added.

(JSC::ModuleNamespaceAccessCase::moduleNamespaceObject):
(JSC::ModuleNamespaceAccessCase::moduleEnvironment):
(JSC::ModuleNamespaceAccessCase::scopeOffset):

  • bytecode/PolymorphicAccess.cpp:

(WTF::printInternal):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleModuleNamespaceLoad):
(JSC::DFG::ByteCodeParser::handleGetById):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::loadValue):

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::getModuleNamespace):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::finishCreation):
(JSC::JSModuleNamespaceObject::visitChildren):
(JSC::getValue):
(JSC::JSModuleNamespaceObject::getOwnPropertySlot):
(JSC::JSModuleNamespaceObject::getOwnPropertyNames):

  • runtime/JSModuleNamespaceObject.h:

(JSC::isJSModuleNamespaceObject):
(JSC::JSModuleNamespaceObject::create): Deleted.
(JSC::JSModuleNamespaceObject::createStructure): Deleted.
(JSC::JSModuleNamespaceObject::moduleRecord): Deleted.

  • runtime/JSModuleRecord.h:

(JSC::JSModuleRecord::moduleEnvironment): Deleted.

  • runtime/PropertySlot.h:

(JSC::PropertySlot::PropertySlot):
(JSC::PropertySlot::domJIT):
(JSC::PropertySlot::moduleNamespaceSlot):
(JSC::PropertySlot::setValueModuleNamespace):
(JSC::PropertySlot::setCacheableCustom):

2:37 AM Changeset in webkit [212711] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r212681): Crash when dragging links without a drag image
https://bugs.webkit.org/show_bug.cgi?id=168648

Reviewed by Tim Horton.

This happens in GTK+ port, because we don't use a drag image for links.

Fixes: editing/pasteboard/drop-link.html

editing/pasteboard/drop-text-without-selection.html
editing/pasteboard/files-during-page-drags.html
fast/events/content-changed-during-drop.html
fast/events/drag-and-drop-link-fast-multiple-times-does-not-crash.html
fast/events/drag-and-drop-link-into-focused-contenteditable.html
fast/events/drag-and-drop-link.html
fast/events/drag-in-frames.html
fast/events/drag-parent-node.html
fast/events/shift-drag-selection-on-link-triggers-drag-n-drop.html

  • page/DragController.cpp:

(WebCore::DragController::startDrag): Do not try to use drag image and its size when createDragImageForLink
returns nullptr.

1:07 AM Changeset in webkit [212710] by Yusuke Suzuki
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: "!scope.exception()" with Object.isSealed/isFrozen and uninitialized module bindings
https://bugs.webkit.org/show_bug.cgi?id=168605

Reviewed by Saam Barati.

JSTests:

  • modules/module-namespace-is-frozen.js: Added.

(from.string_appeared_here.shouldThrow):
(export.b):

  • modules/module-namespace-is-sealed.js: Added.

(from.string_appeared_here.shouldThrow):
(export.b):

Source/JavaScriptCore:

We should check exception state after calling getOwnPropertyDescriptor() since it can throw errors.

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorIsSealed):
(JSC::objectConstructorIsFrozen):

12:39 AM Changeset in webkit [212709] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/WebCore

Merge r212667 - Nullptr dereferences when stopping a load
https://bugs.webkit.org/show_bug.cgi?id=168608
<rdar://problem/29852056>

Reviewed by Ryosuke Niwa.

Don't attempt to notify a detached frame's load client that the load is
stopped.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoading): Check for null frame loader and
bypass dereferencing it.

12:39 AM Changeset in webkit [212708] by Carlos Garcia Campos
  • 13 edits
    1 add in releases/WebKitGTK/webkit-2.16/Source

Merge r212692 - [Re-landing] CachedCall should let GC know to keep its arguments alive.
https://bugs.webkit.org/show_bug.cgi?id=168567
<rdar://problem/30475767>

Reviewed by Saam Barati.

Source/JavaScriptCore:

We fix this by having CachedCall use a MarkedArgumentBuffer to store its
arguments instead of a Vector.

Also declared CachedCall, MarkedArgumentBuffer, and ProtoCallFrame as
WTF_FORBID_HEAP_ALLOCATION because they rely on being stack allocated for
correctness.

Update: the original patch has a bug in MarkedArgumentBuffer::expandCapacity()
where it was copying and calling addMarkSet() on values in m_buffer beyond m_size
(up to m_capacity). As a result, depending on the pre-existing values in
m_inlineBuffer, this may result in a computed Heap pointer that is wrong, and
subsequently, manifest as a crash. This is likely to be the cause of the PLT
regression.

I don't have a new test for this fix because the issue relies on sufficiently bad
values randomly showing up in m_inlineBuffer when we do an ensureCapacity() which
calls expandCapacity().

  • interpreter/CachedCall.h:

(JSC::CachedCall::CachedCall):
(JSC::CachedCall::call):
(JSC::CachedCall::clearArguments):
(JSC::CachedCall::appendArgument):
(JSC::CachedCall::setArgument): Deleted.

  • interpreter/CallFrame.h:

(JSC::ExecState::emptyList):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::prepareForRepeatCall):

  • interpreter/Interpreter.h:
  • interpreter/ProtoCallFrame.h:
  • runtime/ArgList.cpp:

(JSC::MarkedArgumentBuffer::slowEnsureCapacity):
(JSC::MarkedArgumentBuffer::expandCapacity):
(JSC::MarkedArgumentBuffer::slowAppend):

  • runtime/ArgList.h:

(JSC::MarkedArgumentBuffer::append):
(JSC::MarkedArgumentBuffer::ensureCapacity):

  • runtime/StringPrototype.cpp:

(JSC::replaceUsingRegExpSearch):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

Source/WTF:

Added a WTF_FORBID_HEAP_ALLOCATION that will cause a compilation failure if
a class declared with it is malloced.

While this doesn't prevent that class declared WTF_FORBID_HEAP_ALLOCATION from
being embedded in another class that is heap allocated, it does at minimum
document the intent and gives the users of this class a chance to do the
right thing.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/ForbidHeapAllocation.h: Added.
12:38 AM Changeset in webkit [212707] by Carlos Garcia Campos
  • 13 edits
    1 delete in releases/WebKitGTK/webkit-2.16/Source

Merge r212665 - Unreviewed, rolling out r212618.
https://bugs.webkit.org/show_bug.cgi?id=168609

"Appears to cause PLT regression" (Requested by mlam on

Reverted changeset:

"CachedCall should let GC know to keep its arguments alive."
https://bugs.webkit.org/show_bug.cgi?id=168567
http://trac.webkit.org/changeset/212618

12:38 AM Changeset in webkit [212706] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.16/Source/JavaScriptCore

Merge r212640 - BytecodeGenerator should not iterate its m_controlFlowScopeStack using a pointer bump.
https://bugs.webkit.org/show_bug.cgi?id=168585

Reviewed by Yusuke Suzuki.

This is because m_controlFlowScopeStack is a SegmentedVector, and entries for
consecutive indices in the vector are not guaranteed to be consecutive in memory
layout. Instead, we should be using indexing instead.

This issue was detected by the marathon.js test from
https://bugs.webkit.org/show_bug.cgi?id=168580.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitJumpViaFinallyIfNeeded):
(JSC::BytecodeGenerator::emitReturnViaFinallyIfNeeded):

12:38 AM Changeset in webkit [212705] by Carlos Garcia Campos
  • 15 edits
    25 deletes in releases/WebKitGTK/webkit-2.16/Source

Merge r212638 - Remove code under USE(GRAPHICS_SURFACE)
https://bugs.webkit.org/show_bug.cgi?id=168592

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-02-20
Reviewed by Michael Catanzaro.

This was only used by EFL port.

Source/WebCore:

  • platform/TextureMapper.cmake:
  • platform/graphics/opengl/GLPlatformSurface.cpp: Removed.
  • platform/graphics/surfaces/GLTransportSurface.cpp: Removed.
  • platform/graphics/surfaces/GLTransportSurface.h: Removed.
  • platform/graphics/surfaces/GraphicsSurface.cpp: Removed.
  • platform/graphics/surfaces/GraphicsSurface.h: Removed.
  • platform/graphics/surfaces/GraphicsSurfaceToken.h: Removed.
  • platform/graphics/surfaces/egl/EGLConfigSelector.cpp: Removed.
  • platform/graphics/surfaces/egl/EGLConfigSelector.h: Removed.
  • platform/graphics/surfaces/egl/EGLContext.cpp: Removed.
  • platform/graphics/surfaces/egl/EGLContext.h: Removed.
  • platform/graphics/surfaces/egl/EGLHelper.cpp: Removed.
  • platform/graphics/surfaces/egl/EGLHelper.h: Removed.
  • platform/graphics/surfaces/egl/EGLSurface.cpp: Removed.
  • platform/graphics/surfaces/egl/EGLSurface.h: Removed.
  • platform/graphics/surfaces/egl/EGLXSurface.cpp: Removed.
  • platform/graphics/surfaces/egl/EGLXSurface.h: Removed.
  • platform/graphics/surfaces/glx/GLXConfigSelector.h: Removed.
  • platform/graphics/surfaces/glx/GLXContext.cpp: Removed.
  • platform/graphics/surfaces/glx/GLXContext.h: Removed.
  • platform/graphics/surfaces/glx/GLXSurface.cpp: Removed.
  • platform/graphics/surfaces/glx/GLXSurface.h: Removed.
  • platform/graphics/surfaces/glx/X11Helper.cpp: Removed.
  • platform/graphics/surfaces/glx/X11Helper.h: Removed.
  • platform/graphics/texmap/TextureMapperBackingStore.cpp:
  • platform/graphics/texmap/TextureMapperBackingStore.h:
  • platform/graphics/texmap/TextureMapperPlatformLayer.h:

(WebCore::TextureMapperPlatformLayer::setClient):

  • platform/graphics/texmap/TextureMapperSurfaceBackingStore.cpp: Removed.
  • platform/graphics/texmap/TextureMapperSurfaceBackingStore.h: Removed.
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay):
(WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
(WebCore::CoordinatedGraphicsLayer::syncPlatformLayer):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:

(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):

Source/WebKit2:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:

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

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::syncPlatformLayerIfNeeded):
(WebKit::CoordinatedGraphicsScene::deleteLayer):
(WebKit::CoordinatedGraphicsScene::assignImageBackingToLayer):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:

(WebKit::WebCoordinatedSurface::Handle::encode):
(WebKit::WebCoordinatedSurface::Handle::decode):
(WebKit::WebCoordinatedSurface::create):
(WebKit::WebCoordinatedSurface::createGraphicsContext):
(WebKit::WebCoordinatedSurface::createHandle):
(WebKit::WebCoordinatedSurface::copyToTexture):

  • Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
12:19 AM Changeset in webkit [212704] by achristensen@apple.com
  • 29 edits
    11 deletes in trunk

Unreviewed, rolling out r212699.

Internal build not ready

Reverted changeset:

"[WebRTC][Mac] Activate libwebrtc"
https://bugs.webkit.org/show_bug.cgi?id=167293
http://trac.webkit.org/changeset/212699

Note: See TracTimeline for information about the timeline view.