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

Timeline



Nov 2, 2019:

9:58 PM Changeset in webkit [251971] by Alan Coon
  • 7 edits in trunk/Source

Versioning.

9:55 PM Changeset in webkit [251970] by Alan Coon
  • 13 edits
    2 deletes in tags/Safari-609.1.10

Cherry-pick r251967. rdar://problem/56836147

Revert http://trac.webkit.org/r251875
Don't use memmove/memcpy/memset for memory that can be scanned concurrently

This is suspected to have broken performance tests on iOS.

JSTests:

  • stress/torn-js-value-concurrent-collector.js: Removed.

Source/JavaScriptCore:

Also reverted http://trac.webkit.org/r251909, because that was necessary for clean revert.
gcSafeMemmove references undefined slowPathBackwardsMemmove on non-gcc compatible compilers

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/GCMemoryOperations.h: Removed.
  • heap/Heap.h:
  • runtime/ArrayConventions.cpp: (JSC::clearArrayMemset):
  • runtime/ArrayPrototype.cpp: (JSC::copyElements):
  • runtime/ButterflyInlines.h: (JSC::Butterfly::tryCreate): (JSC::Butterfly::createOrGrowPropertyStorage): (JSC::Butterfly::growArrayRight): (JSC::Butterfly::reallocArrayRightIfPossible): (JSC::Butterfly::resizeArray): (JSC::Butterfly::unshift): (JSC::Butterfly::shift):
  • runtime/JSArray.cpp: (JSC::JSArray::unshiftCountSlowCase): (JSC::JSArray::appendMemcpy): (JSC::JSArray::fastSlice): (JSC::JSArray::shiftCountWithArrayStorage): (JSC::JSArray::shiftCountWithAnyIndexingType): (JSC::JSArray::unshiftCountWithArrayStorage):
  • runtime/JSObject.cpp: (JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements): (JSC::JSObject::convertFromCopyOnWrite): (JSC::JSObject::shiftButterflyAfterFlattening):
  • runtime/JSObject.h:
  • runtime/RegExpMatchesArray.h: (JSC::createRegExpMatchesArray):
  • runtime/Structure.cpp: (JSC::Structure::flattenDictionaryStructure):

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

9:53 PM Changeset in webkit [251969] by Alan Coon
  • 1 copy in tags/Safari-609.1.10

Tag Safari-609.1.10.

8:44 PM Changeset in webkit [251968] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Port DOMCache / DOMCacheStorage to the HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203772

Reviewed by Sam Weinig.

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::DOMCache):
(WebCore::DOMCache::match):
(WebCore::DOMCache::matchAll):
(WebCore::DOMCache::addAll):
(WebCore::DOMCache::putWithResponseData):
(WebCore::DOMCache::put):
(WebCore::DOMCache::remove):
(WebCore::DOMCache::keys):
(WebCore::DOMCache::enqueueTask):
(WebCore::DOMCache::hasPendingActivity const): Deleted.

  • Modules/cache/DOMCache.h:
  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::DOMCacheStorage):
(WebCore::DOMCacheStorage::doSequentialMatch):
(WebCore::DOMCacheStorage::match):
(WebCore::DOMCacheStorage::has):
(WebCore::DOMCacheStorage::open):
(WebCore::DOMCacheStorage::doOpen):
(WebCore::DOMCacheStorage::remove):
(WebCore::DOMCacheStorage::doRemove):
(WebCore::DOMCacheStorage::keys):
(WebCore::DOMCacheStorage::enqueueTask):
(WebCore::DOMCacheStorage::hasPendingActivity const): Deleted.

  • Modules/cache/DOMCacheStorage.h:
5:49 PM Changeset in webkit [251967] by ap@apple.com
  • 13 edits
    2 deletes in trunk

Revert http://trac.webkit.org/r251875
Don't use memmove/memcpy/memset for memory that can be scanned concurrently

This is suspected to have broken performance tests on iOS.

JSTests:

  • stress/torn-js-value-concurrent-collector.js: Removed.

Source/JavaScriptCore:

Also reverted http://trac.webkit.org/r251909, because that was necessary for clean revert.
gcSafeMemmove references undefined slowPathBackwardsMemmove on non-gcc compatible compilers

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/GCMemoryOperations.h: Removed.
  • heap/Heap.h:
  • runtime/ArrayConventions.cpp:

(JSC::clearArrayMemset):

  • runtime/ArrayPrototype.cpp:

(JSC::copyElements):

  • runtime/ButterflyInlines.h:

(JSC::Butterfly::tryCreate):
(JSC::Butterfly::createOrGrowPropertyStorage):
(JSC::Butterfly::growArrayRight):
(JSC::Butterfly::reallocArrayRightIfPossible):
(JSC::Butterfly::resizeArray):
(JSC::Butterfly::unshift):
(JSC::Butterfly::shift):

  • runtime/JSArray.cpp:

(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::fastSlice):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithArrayStorage):

  • runtime/JSObject.cpp:

(JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
(JSC::JSObject::convertFromCopyOnWrite):
(JSC::JSObject::shiftButterflyAfterFlattening):

  • runtime/JSObject.h:
  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/Structure.cpp:

(JSC::Structure::flattenDictionaryStructure):

1:12 PM Changeset in webkit [251966] by rmorisset@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

The offline assembler is wrong about which immediates are supported by and/or/xor on ARM64
https://bugs.webkit.org/show_bug.cgi?id=203752

Reviewed by Tadeu Zagallo.

See https://dinfuehr.github.io/blog/encoding-of-immediate-values-on-aarch64/ for the details of which immediates are supported.
This patch is a minimal fix, ideally we should refactor all of the code dealing with immediates in risc.rb, but considering that I don't know ruby and this code is poorly/not tested, I went for the simplest possible fix.

  • offlineasm/arm64.rb:
  • offlineasm/mips.rb:
  • offlineasm/risc.rb:
11:48 AM Changeset in webkit [251965] by Oriol Brufau
  • 12 edits
    4 adds in trunk

[css-grid] Fix line name positions after auto repeat with no line names
https://bugs.webkit.org/show_bug.cgi?id=203670

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Import WPT tests.
There are some test failures because integer repeat() is still expanded
at computed-value time (https://webkit.org/b/202259).

  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-nogrid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-nogrid.html:
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-withcontent-expected.txt: Added.
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-withcontent.html: Added.
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed.html:
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-nogrid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-nogrid.html:
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-withcontent-expected.txt: Added.
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-withcontent.html: Added.
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed.html:
  • web-platform-tests/css/css-grid/parsing/w3c-import.log:

Source/WebCore:

When serializing grid-template-rows/columns of a grid container, we need
to handle auto repeat() specially in order to insert the line names at
the correct places.

Before this patch, this was skipped for indices before the insertion
point of the auto repeat, and in case the auto repeat had no line name.
The latter logic was wrong, if there is an auto repeat we still need the
special code after the insertion point, even if it has no line names.
The proper condition to check is whether there is no auto repeat.

The patch also avoids a 2nd call to gridAutoRepeatRows/Columns since we
already have the value in a variable.

Tests: imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed.html

imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-nogrid.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-withcontent.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-nogrid.html
imported/w3c/web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-withcontent.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::OrderedNamedLinesCollectorInGridLayout::OrderedNamedLinesCollectorInGridLayout):
(WebCore::OrderedNamedLinesCollectorInGridLayout::collectLineNamesForIndex const):
(WebCore::valueForGridTrackList):

9:54 AM Changeset in webkit [251964] by yurys@chromium.org
  • 2 edits
    1 copy
    1 add in trunk/LayoutTests

REGRESSION: [ Mac ] inspector/dom/getAccessibilityPropertiesForNode.html is failing
https://bugs.webkit.org/show_bug.cgi?id=203746

Unreviewed. Move custom test expectation under platform/gtk and revert generic
one to the previous state (it was wrongly updated in r251818).

  • inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
  • platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt: Copied from LayoutTests/inspector/dom/getAccessibilityPropertiesForNode-expected.txt.
12:36 AM Changeset in webkit [251963] by Devin Rousso
  • 31 edits
    1 add in trunk

Web Inspector: Add diagnostic logging for frontend feature usage
https://bugs.webkit.org/show_bug.cgi?id=203579
<rdar://problem/56717410>

Reviewed by Brian Burg.

.:

Original patch by Matt Baker <Matt Baker>.

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/JavaScriptCore:

Original patch by Matt Baker <Matt Baker>.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/WebCore:

Add InspectorFrontendHost API for logging diagnostic events from the
Web Inspector UI. An event consists of a message string, such as "TabActivity"
or "SettingChanged", and a dictionary payload encoded as a JSON string.

Original patch by Matt Baker.

  • inspector/InspectorFrontendHost.idl:
  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::supportsDiagnosticLogging): Added.
(WebCore::valuePayloadFromJSONValue): Added.
(WebCore::InspectorFrontendHost::logDiagnosticEvent): Added.

  • inspector/InspectorFrontendClient.h:

(WebCore::InspectorFrontendClient::supportsDiagnosticLogging): Added.
(WebCore::InspectorFrontendClient::logDiagnosticEvent): Added.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/WebCore/PAL:

Original patch by Matt Baker <Matt Baker>.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/WebInspectorUI:

Add a DiagnosticController class for reporting Web Inspector telemetry.
The controller initially measures a single "TabActivity" data point,
which logs the active tab during the specified time interval (one minute).
If the UI is not active during the time interval, no logging takes place.

The UI is considered to be active if mouse/keyboard interaction occurs
during the time interval, or the selected TabContentView changes.

Original patch by Matt Baker <Matt Baker>.

  • UserInterface/Controllers/DiagnosticController.js: Added.

(WI.DiagnosticController):
(WI.DiagnosticController.supportsDiagnosticLogging):
(WI.DiagnosticController.prototype.logDiagnosticMessage):
(WI.DiagnosticController.prototype._didInteractWithTabContent):
(WI.DiagnosticController.prototype._clearTabActivityTimeout):
(WI.DiagnosticController.prototype._beginTabActivityTimeout):
(WI.DiagnosticController.prototype._stopTrackingTabActivity):
(WI.DiagnosticController.prototype._handleWindowFocus):
(WI.DiagnosticController.prototype._handleWindowBlur):
(WI.DiagnosticController.prototype._handleWindowKeyDown):
(WI.DiagnosticController.prototype._handleWindowMouseDown):
(WI.DiagnosticController.prototype._handleTabBrowserSelectedTabContentViewDidChange):

  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:

(WI.contentLoaded):

Source/WebKit:

This patch enables diagnostic logging for the Web Inspector web process
and adds the necessary InspectorFrontendClient plumbing to WebInspectorUI.

Original patch by Matt Baker <Matt Baker>.

  • WebProcess/WebPage/WebInspectorUI.h:
  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::supportsDiagnosticLogging): Added.
(WebKit::WebInspectorUI::logDagnosticEvent): Added.

  • WebProcess/WebPage/RemoteWebInspectorUI.h:
  • WebProcess/WebPage/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::supportsDiagnosticLogging): Added.
(WebKit::RemoteWebInspectorUI::logDiagnosticEvent): Added.

  • UIProcess/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController configuration]):
Default to enabling diagnostic logging for the Web Inspector frontend window.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/WebKitLegacy/mac:

Original patch by Matt Baker <Matt Baker>.

  • WebCoreSupport/WebInspectorClient.h:
  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::supportsDiagnosticLogging): Added.
(WebInspectorFrontendClient::logDiagnosticEvent): Added.

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Source/WTF:

Original patch by Matt Baker <Matt Baker>.

  • wtf/FeatureDefines.h:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Tools:

Original patch by Matt Baker <Matt Baker>.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

Add ENABLE_INSPECTOR_TELEMETRY, which is only enabled for macOS.

Nov 1, 2019:

6:27 PM Changeset in webkit [251962] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: switching tabs should re-focus the previously focused element
https://bugs.webkit.org/show_bug.cgi?id=203744

Reviewed by Brian Burg.

  • UserInterface/Views/TabBrowser.js:

(WI.TabBrowser.prototype._tabBarItemSelected):
(WI.TabBrowser.prototype._saveFocusedNodeForTabContentView): Added.
(WI.TabBrowser.prototype._restoreFocusedNodeForTabContentView): Added.
Store the document.activeElement on the WI.TabContentView and .focus() it after we're
done showing the newly selected tab, but only if there isn't already something focused.

  • UserInterface/Views/TabBar.js:

(WI.TabBar.prototype.set selectedTabBarItem):

  • UserInterface/Views/LegacyTabBar.js:

(WI.LegacyTabBar.prototype.set selectedTabBarItem):
Include the previously selected tab bar item when dispatching selection change events.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WI.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject):
Don't omit focus when revealing represented objects.

6:17 PM Changeset in webkit [251961] by Jonathan Bedard
  • 5 edits
    1 add in trunk/Tools

Python 3: Add support in webkitpy.layout_tests.model
https://bugs.webkit.org/show_bug.cgi?id=203702

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.model.
  • Scripts/webkitpy/layout_tests/models/test_configuration.py:

(SpecifierSorter.sort_specifiers): Convert iterator to list.
(TestConfigurationConverter.to_config_set): Use reduce from functors.
(TestConfigurationConverter.intersect_combination): Ditto.

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(TestExpectationsModel.get_test_set_for_keyword): Use iterators in both Python 2
and Python 3.
(TestExpectationsModel._remove_from_sets): Ditto.
(TestExpectations.parse_generic_expectations): Covert iterators to lists for indexing.
(TestExpectations.parse_default_port_expectations): Ditto.
(TestExpectations.parse_override_expectations): Ditto.
(TestExpectations.remove_configuration_from_test): Use any instead of just checking the
first element in the set.

  • Scripts/webkitpy/layout_tests/models/test_run_results.py:

(summarize_results): Use items instead of iteritems.

5:54 PM Changeset in webkit [251960] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Restrict WebSpeech voices to built-in voices only
https://bugs.webkit.org/show_bug.cgi?id=203689

Reviewed by Per Arne Vollan.

Only show built-in voices when requesting through WebKit to reduce fingerprinting surface area.

  • platform/ios/PlatformSpeechSynthesizerIOS.mm:

(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

5:45 PM Changeset in webkit [251959] by Devin Rousso
  • 59 edits
    3 copies
    2 moves
    9 adds
    2 deletes in trunk

Web Inspector: Timelines: add a timeline that shows information about any recorded CSS animation/transition
https://bugs.webkit.org/show_bug.cgi?id=203651
<rdar://problem/56128726>

Reviewed by Brian Burg.

Source/JavaScriptCore:

Unlike all other forms of Web Animations, CSS animations/transitions, are _not_ created by
JavaScript, and therefore can seemingly appear out of nowhere. This patch expands the Media
timeline to be the Media & Animations timeline, which tracks when CSS animations/transitions
are created, started, delayed, iterated, canceled, or finished.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
  • inspector/protocol/Animation.json: Added.
  • inspector/protocol/Timeline.json:

Add an Animation domain for handling the tracking of CSS Web Animations.

Source/WebCore:

Unlike all other forms of Web Animations, CSS animations/transitions, are _not_ created by
JavaScript, and therefore can seemingly appear out of nowhere. This patch expands the Media
timeline to be the Media & Animations timeline, which tracks when CSS animations/transitions
are created, started, delayed, iterated, canceled, or finished.

Test: inspector/animation/tracking.html

  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::apply):

  • animation/WebAnimation.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::~WebAnimation):
(WebCore::WebAnimation::contextDestroyed): Added.
(WebCore::WebAnimation::setEffectInternal):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willApplyKeyframeEffect): Added.
(WebCore::InspectorInstrumentation::didChangeWebAnimationEffect): Added.
(WebCore::InspectorInstrumentation::willDestroyWebAnimation): Added.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willApplyKeyframeEffectImpl): Added.
(WebCore::InspectorInstrumentation::didChangeWebAnimationEffectImpl): Added.
(WebCore::InspectorInstrumentation::willDestroyWebAnimationImpl): Added.
Add instrumentation points for CSS animations/transitions.

  • inspector/agents/InspectorAnimationAgent.h: Added.
  • inspector/agents/InspectorAnimationAgent.cpp: Added.

(WebCore::InspectorAnimationAgent::InspectorAnimationAgent):
(WebCore::InspectorAnimationAgent::didCreateFrontendAndBackend):
(WebCore::InspectorAnimationAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorAnimationAgent::startTracking):
(WebCore::InspectorAnimationAgent::stopTracking):
(WebCore::isDelayed):
(WebCore::InspectorAnimationAgent::willApplyKeyframeEffect):
(WebCore::InspectorAnimationAgent::didChangeWebAnimationEffect):
(WebCore::InspectorAnimationAgent::willDestroyWebAnimation):
(WebCore::InspectorAnimationAgent::stopTrackingDeclarativeAnimation):

  • inspector/InstrumentingAgents.h:

(WebCore::InstrumentingAgents::persistentInspectorAnimationAgent const): Added.
(WebCore::InstrumentingAgents::setPersistentInspectorAnimationAgent): Added.
(WebCore::InstrumentingAgents::trackingInspectorAnimationAgent const): Added.
(WebCore::InstrumentingAgents::setTrackingInspectorAnimationAgent): Added.

  • inspector/InstrumentingAgents.cpp:

(WebCore::InstrumentingAgents::reset):

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::createLazyAgents):
Add an Animation domain for handling the tracking of CSS Web Animations.

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

(WebCore::InspectorTimelineAgent::toggleInstruments):
(WebCore::InspectorTimelineAgent::toggleAnimationInstrument): Added.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebInspectorUI:

Unlike all other forms of Web Animations, CSS animations/transitions, are _not_ created by
JavaScript, and therefore can seemingly appear out of nowhere. This patch expands the Media
timeline to be the Media & Animations timeline, which tracks when CSS animations/transitions
are created, started, delayed, iterated, canceled, or finished.

  • UserInterface/Protocol/AnimationObserver.js: Added.

(WI.AnimationObserver.prototype.trackingStart):
(WI.AnimationObserver.prototype.trackingUpdate):
(WI.AnimationObserver.prototype.trackingComplete):

  • UserInterface/Protocol/Target.js:

(WI.Target.prototype.get AnimationAgent): Added.

  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:

(WI.loaded):

  • UserInterface/Test.html:
  • UserInterface/Test/Test.js:

(WI.loaded):
Add an Animation domain for handling the tracking of CSS Web Animations.

  • UserInterface/Models/MediaInstrument.js:

(WI.MediaInstrument.prototype.startInstrumentation):
(WI.MediaInstrument.prototype.stopInstrumentation):
(WI.MediaInstrument):

  • UserInterface/Models/MediaTimeline.js: Added.

(WI.MediaTimeline.prototype.recordForTrackingAnimationId):
(WI.MediaTimeline.prototype.recordForMediaElementEvents):
(WI.MediaTimeline.prototype.reset):
(WI.MediaTimeline.prototype.addRecord):

  • UserInterface/Models/MediaTimelineRecord.js:

(WI.MediaTimelineRecord):
(WI.MediaTimelineRecord.async fromJSON):
(WI.MediaTimelineRecord.prototype.toJSON):
(WI.MediaTimelineRecord.prototype.get trackingAnimationId): Added.
(WI.MediaTimelineRecord.prototype.get timestamps): Added.
(WI.MediaTimelineRecord.prototype.get activeStartTime): Added.
(WI.MediaTimelineRecord.prototype.get updatesDynamically): Added.
(WI.MediaTimelineRecord.prototype.get usesActiveStartTime): Added.
(WI.MediaTimelineRecord.prototype.get displayName):
(WI.MediaTimelineRecord.prototype.get subtitle): Added.
(WI.MediaTimelineRecord.prototype.saveIdentityToCookie):
(WI.MediaTimelineRecord.prototype.updateProgress): Added.
(WI.MediaTimelineRecord.prototype.addDOMEvent): Added.
(WI.MediaTimelineRecord.prototype.powerEfficientPlaybackStateChanged): Added.
(WI.MediaTimelineRecord.prototype._updateTimes): Added.
(WI.MediaTimelineRecord.fromJSON): Deleted.
(WI.MediaTimelineRecord.prototype.get domEvent): Deleted.
(WI.MediaTimelineRecord.prototype.get isPowerEfficient): Deleted.

  • UserInterface/Models/Timeline.js:

(WI.Timeline.create):

  • UserInterface/Controllers/TimelineManager.js:

(WI.TimelineManager):
(WI.TimelineManager.prototype.async processJSON):
(WI.TimelineManager.prototype.animationTrackingStarted): Added.
(WI.TimelineManager.prototype.animationTrackingUpdated): Added.
(WI.TimelineManager.prototype.animationTrackingCompleted): Added.
(WI.TimelineManager.prototype._updateAutoCaptureInstruments):
(WI.TimelineManager.prototype._handleDOMNodeDidFireEvent):
(WI.TimelineManager.prototype._handleDOMNodePowerEfficientPlaybackStateChanged):
Start/Stop tracking animations based on whether the Media & Animations timeline is enabled.

  • UserInterface/Views/MediaTimelineOverviewGraph.js:

(WI.MediaTimelineOverviewGraph):
(WI.MediaTimelineOverviewGraph.get maximumRowCount): Added.
(WI.MediaTimelineOverviewGraph.prototype.reset):
(WI.MediaTimelineOverviewGraph.prototype.layout):
(WI.MediaTimelineOverviewGraph.prototype.updateSelectedRecord):
(WI.MediaTimelineOverviewGraph.prototype._processRecord): Added.
(WI.MediaTimelineOverviewGraph.prototype._processRecord.compareByStartTime): Added.
(WI.MediaTimelineOverviewGraph.prototype._handleRecordAdded):
(WI.MediaTimelineOverviewGraph.prototype._handleTimesUpdated): Added.
(WI.MediaTimelineOverviewGraph.prototype.shown): Deleted.
(WI.MediaTimelineOverviewGraph.prototype.hidden): Deleted.

  • UserInterface/Views/MediaTimelineOverviewGraph.css:

(.timeline-overview-graph.media): Added.
(.timeline-overview-graph.media > .graph-row): Added.
(.timeline-overview-graph.media > .graph-row > .timeline-record-bar): Added.
(.timeline-overview-graph.media > .graph-row > .timeline-record-bar:not(.unfinished) > .segment:not(.inactive)): Added.
(.timeline-overview-graph.media:nth-child(even) > .graph-row > .timeline-record-bar:not(.unfinished) > .segment:not(.inactive)): Added.
(.timeline-overview-graph.media > .timeline-record-bar): Deleted.
(.timeline-overview-graph.media > .timeline-record-bar > .segment): Deleted.

  • UserInterface/Views/MediaTimelineView.js:

(WI.MediaTimelineView):
(WI.MediaTimelineView.prototype.shown): Added.
(WI.MediaTimelineView.prototype.hidden): Added.
(WI.MediaTimelineView.prototype.closed):
(WI.MediaTimelineView.prototype.reset):
(WI.MediaTimelineView.prototype.dataGridSortComparator):
(WI.MediaTimelineView.prototype.dataGridSortComparator.compareDOMNodes):
(WI.MediaTimelineView.prototype._processPendingRecords):

  • UserInterface/Views/MediaTimelineDataGridNode.js:

(WI.MediaTimelineDataGridNode):
(WI.MediaTimelineDataGridNode.prototype.get data):
(WI.MediaTimelineDataGridNode.prototype.createCellContent):
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren): Added.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addReadySegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addDelaySegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addActiveSegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addFullScreenSegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addPowerEfficientPlaybackSegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addPausedSegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.timelineRecordBarCustomChildren.addPlayingSegment): ADded.
(WI.MediaTimelineDataGridNode.prototype.filterableDataForColumn):
(WI.MediaTimelineDataGridNode.prototype._createNameCellDocumentFragment): Added.
(WI.MediaTimelineDataGridNode.prototype.iconClassNames): Deleted.

  • UserInterface/Views/TimelineRecordBar.js:

(WI.TimelineRecordBar):
(WI.TimelineRecordBar.prototype.refresh):
(WI.TimelineRecordBar.prototype._handleClick):

  • UserInterface/Views/TimelineRecordBar.css:

(.timeline-record-bar):
(.timeline-record-bar > :matches(img, .segment)):
(.timeline-record-bar > img):
(.timeline-record-bar > .segment):
(body[dir=ltr] .timeline-record-bar > .segment):
(body[dir=ltr] .timeline-record-bar > .segment:first-of-type):
(body[dir=ltr] .timeline-record-bar > .segment:last-of-type):
(body[dir=rtl] .timeline-record-bar > .segment):
(body[dir=rtl] .timeline-record-bar > .segment:first-of-type):
(body[dir=rtl] .timeline-record-bar > .segment:last-of-type):
(.timeline-record-bar > .segment:not(:last-of-type)):
(.timeline-record-bar.selected > .segment):
(.timeline-record-bar > .segment.inactive,):
(.timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(:focus .selected .timeline-record-bar:not(.has-custom-children) > .segment):
(:focus .selected .timeline-record-bar:not(.has-custom-children) > .segment.inactive):
(:focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(.timeline-record-bar.timeline-record-type-network > .segment):
(.timeline-record-bar.timeline-record-type-network > .segment.inactive):
(.timeline-record-bar.timeline-record-type-layout > .segment):
(.timeline-record-bar.timeline-record-type-layout.paint > .segment,):
(.timeline-record-bar.timeline-record-type-script > .segment):
(.timeline-record-bar.timeline-record-type-script.garbage-collected > .segment,):
(.timeline-record-bar.timeline-record-type-media > .segment):
(.timeline-record-bar.has-custom-children.timeline-record-type-media > .segment):
(.timeline-record-bar.has-custom-children.timeline-record-type-media > .segment.css-animation-ready):
(.timeline-record-bar.has-custom-children.timeline-record-type-media > .segment:matches(.css-animation-delay, .media-element-paused)):
(.timeline-record-bar.has-custom-children.timeline-record-type-media.media-element > .segment):
(.timeline-record-bar.has-custom-children.timeline-record-type-media.media-element > .segment.media-element-full-screen):
(.timeline-record-bar.has-custom-children.timeline-record-type-media.media-element > .segment.media-element-power-efficient-playback):
(body[dir=ltr] .timeline-record-bar > .segment.inactive,): Deleted.
(body[dir=ltr] .timeline-record-bar.has-inactive-segment > .segment:not(.inactive),): Deleted.
(:focus .selected .timeline-record-bar > .segment): Deleted.
(:focus .selected .timeline-record-bar > .segment.inactive): Deleted.
(body[dir=ltr] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
(body[dir=rtl] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
Allow timeline record bars to be customized through a delegate callback. If provided, it
will be used instead of any default content. It is expected to return an array of objects,
each having a startTime number, classNames array, and title string. It can also have a
endTime number and an image string. If endTime is NaN, the record is unfinished. If
image is provided, an <img> will be used instead of a segment, allowing for markers.

  • UserInterface/Views/TimelineDataGridNode.js:

(WI.TimelineDataGridNode.prototype.createCellContent):
Add a default fallback for WI.DOMNode values.

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.displayNameForTimelineType):
(WI.TimelineTabContentView.iconClassNameForRecord):
(WI.TimelineTabContentView.displayNameForRecord):

  • UserInterface/Views/TimelineRecordTreeElement.js:
  • UserInterface/Views/TimelineIcons.css:

(.animation-frame-record .icon):
(.css-animation-record .icon): Added.
(.css-transition-record .icon): Added.
(.media-element-record .icon): Added.
(.animation-record .icon): Deleted.
(.dom-event-record .icon): Deleted.
(.dom-event-record.fullscreen .icon): Deleted.
(.power-efficient-playback-state-changed-record .icon): Deleted.

  • UserInterface/Images/DOMEventFullscreen.svg: Removed.
  • UserInterface/Images/EventCancel.svg: Added.
  • UserInterface/Images/EventIteration.svg: Added.
  • UserInterface/Images/EventPause.svg:
  • UserInterface/Images/EventPlay.svg:
  • UserInterface/Images/EventProcessing.svg:
  • UserInterface/Images/EventStop.svg:
  • UserInterface/Images/PowerEfficientPlaybackStateChanged.svg: Removed.
  • UserInterface/Images/TimelineRecordAnimationFrame.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/TimelineRecordAnimation.svg.
  • UserInterface/Images/TimelineRecordCSSAnimation.svg: Added.
  • UserInterface/Images/TimelineRecordCSSTransition.svg: Added.
  • UserInterface/Images/TimelineRecordMediaElement.svg: Added.

Add new media icons.

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording.async import): Added.
(WI.TimelineRecording.import): Deleted.

  • UserInterface/Models/TimelineRecord.js:
  • UserInterface/Models/CPUTimelineRecord.js:
  • UserInterface/Models/HeapAllocationsTimelineRecord.js:

(WI.HeapAllocationsTimelineRecord.async fromJSON): Added.
(WI.HeapAllocationsTimelineRecord.fromJSON): Deleted.

  • UserInterface/Models/LayoutTimelineRecord.js:
  • UserInterface/Models/MemoryTimelineRecord.js:
  • UserInterface/Models/RenderingFrameTimelineRecord.js:
  • UserInterface/Models/ResourceTimelineRecord.js:
  • UserInterface/Models/ScriptTimelineRecord.js:

Make the importing of timeline records async so we can attempt to rehydrate the DOM nodes
of any media records (as well as wait for heap snapshots).

  • UserInterface/Models/DOMNode.js:

(WI.DOMNode):
(WI.DOMNode.prototype.isMediaElement): Added.
(WI.DOMNode.prototype._shouldListenForEventListeners): Deleted.

  • Localizations/en.lproj/localizedStrings.js:

Source/WTF:

  • wtf/Markable.h:

(WTF::operator==):
(WTF::operator!=):
Add extra utility operators.

Tools:

  • TestWebKitAPI/Tests/WTF/Markable.cpp:

(TestWebKitAPI::TEST):
Add tests for extra utility operators.

LayoutTests:

  • inspector/animation/tracking.html: Added.
  • inspector/animation/tracking-expected.txt: Added.
5:19 PM Changeset in webkit [251958] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: default to focusing the console prompt if no other content is focused after opening Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=203743

Reviewed by Eric Carlson and Brian Burg.

  • UserInterface/Base/Main.js:

(WI.isContentAreaFocused): Added.
(WI.isConsoleFocused):
(WI._focusChanged):
(WI._restoreCookieForOpenTabs):

5:14 PM Changeset in webkit [251957] by Said Abou-Hallawa
  • 3 edits
    2 adds in trunk

SVG pair properties must be detached from their owner before it's deleted
https://bugs.webkit.org/show_bug.cgi?id=203545

Reviewed by Simon Fraser.

Source/WebCore:

SVGAnimatedPropertyPairAccessor needs to override its detach() method so
each of its pair properties detaches itself from the owner.
SVGPointerMemberAccessor does the same thing but for a single property
which covers all the list properties as well.

Test: svg/custom/pair-properties-detach.html

  • svg/properties/SVGAnimatedPropertyPairAccessor.h:

LayoutTests:

  • svg/custom/pair-properties-detach-expected.txt: Added.
  • svg/custom/pair-properties-detach.html: Added.
5:13 PM PrivacyFeaturesinWebKit created by Jon Davis
5:13 PM Changeset in webkit [251956] by beidson@apple.com
  • 9 edits in trunk

Promote "_getWebArchive" to API.
<rdar://problem/17317547> and https://bugs.webkit.org/show_bug.cgi?id=203767

Reviewed by Andy Estes.

Source/WebKit:

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

(-[WKWebView createWebArchiveDataWithCompletionHandler:]):
(-[WKWebView _getWebArchiveDataWithCompletionHandler:]):

Tools:

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

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

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

(-[WK1BrowserWindowController validateMenuItem:]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

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

5:05 PM ImprovingInteropwithWPT edited by Jon Davis
(diff)
4:59 PM WebKitWindowsPort created by Jon Davis
4:59 PM Changeset in webkit [251955] by Jonathan Bedard
  • 7 edits in trunk/Tools

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

Reviewed by Stephanie Lewis.

  • Scripts/test-webkitpy-python3: Add webkitpy.common.
  • Scripts/webkitpy/common/find_files_unittest.py: Use full import path.
  • Scripts/webkitpy/common/lru_cache_unittest.py:

(LRUCacheTest.test_size_one_pop): Convert iterator to list

  • Scripts/webkitpy/common/prettypatch_unittest.py: Check for byte array explicitly.
  • Scripts/webkitpy/common/read_checksum_from_png_unittest.py: Use unicode compatible

StringIO.
(ReadChecksumFromPngTest.test_read_checksum):

  • Scripts/webkitpy/common/timeout_context.py:

(Timeout.enter): Use range instead of xrange.

4:55 PM Changeset in webkit [251954] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Mark VeryLow priority requests using a request dictionary key
https://bugs.webkit.org/show_bug.cgi?id=203594

Patch by Benjamin Nham <Ben Nham> on 2019-11-01
Reviewed by Alex Christensen.

Mark very-low-pri beacon/ping loads using a request dictionary key. PLT currently ignores
these loads by checking if a request's CFURLRequestPriority is 0, but that won't work
anymore once I make VeryLow and Low pri requests both have a priority of 0 for
https://bugs.webkit.org/show_bug.cgi?id=203423.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doUpdatePlatformRequest):

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdatePlatformRequest):

4:53 PM November 2019 Meeting edited by Jon Davis
(diff)
4:51 PM UndoAPI created by Jon Davis
4:46 PM Changeset in webkit [251953] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Port FileReader to the HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203749

Reviewed by Ryosuke Niwa.

  • dom/AbstractEventLoop.h:
  • fileapi/FileReader.cpp:

(WebCore::FileReader::FileReader):
(WebCore::FileReader::stop):
(WebCore::FileReader::hasPendingActivity const):
(WebCore::FileReader::abort):
(WebCore::FileReader::didStartLoading):
(WebCore::FileReader::didReceiveData):
(WebCore::FileReader::didFinishLoading):
(WebCore::FileReader::didFail):
(WebCore::FileReader::enqueueTask):

  • fileapi/FileReader.h:
4:39 PM zliboptimizationsforARM edited by Jon Davis
(diff)
4:38 PM zliboptimizationsforARM created by Jon Davis
4:34 PM Changeset in webkit [251952] by beidson@apple.com
  • 3 edits
    1 copy
    2 moves in trunk/Source/WebKit

Rejigger WKWebArchive headers.
https://bugs.webkit.org/show_bug.cgi?id=203648

Reviewed by Andy Estes.

  • Shared/API/c/mac/WKWebArchiveRef.cpp: Renamed from Source/WebKit/Shared/API/c/mac/WKWebArchive.cpp.

(WKWebArchiveGetTypeID):
(WKWebArchiveCreate):
(WKWebArchiveCreateWithData):
(WKWebArchiveCreateFromRange):
(WKWebArchiveCopyMainResource):
(WKWebArchiveCopySubresources):
(WKWebArchiveCopySubframeArchives):
(WKWebArchiveCopyData):

  • Shared/API/c/mac/WKWebArchiveRef.h: Copied from Source/WebKit/Shared/API/c/mac/WKWebArchive.h.
  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebArchive.h: Renamed from Source/WebKit/Shared/API/c/mac/WKWebArchive.h.
  • WebKit.xcodeproj/project.pbxproj:
4:32 PM Python3 created by Jon Davis
4:27 PM HandlingTestExpectations created by Jon Davis
4:13 PM WKWebViewAnEmbeddersPerspective created by Jon Davis
4:07 PM Changeset in webkit [251951] by sbarati@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Refactor uses of StructureStubInfo 'thisGPR' to a union for thisGPR and prototypeGPR
https://bugs.webkit.org/show_bug.cgi?id=203693

Reviewed by Mark Lam and Yusuke Suzuki.

I'm going to be adding a third overload for this field when making
GetByVal inline caching part of StructureStubInfo. It's nicer for
each use case of this field to use it by the proper name.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generateImpl):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::AccessGenerationState):

  • bytecode/StructureStubInfo.h:
  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):

4:02 PM TheStateofJSC2019 edited by Ross Kirsling
(diff)
4:00 PM November 2019 Meeting edited by Jon Davis
(diff)
3:59 PM TheStateofJSC2019 created by Ross Kirsling
3:49 PM Changeset in webkit [251950] by eric.carlson@apple.com
  • 39 edits
    7 adds in trunk

Add experimental TextTrackCue API
https://bugs.webkit.org/show_bug.cgi?id=203649
<rdar://problem/55675172>

Reviewed by Jer Noble.

Source/WebCore:

Tests: media/track/texttrackcue/texttrackcue-addcue.html

media/track/texttrackcue/texttrackcue-constructor.html
media/track/texttrackcue/texttrackcue-displaycue.html

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::updateCaptionDisplaySizes):

  • Modules/mediacontrols/MediaControlsHost.h:
  • bindings/js/JSTextTrackCueCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/WebCoreBuiltinNames.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:
  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttributes):

  • dom/DocumentFragment.idl:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateRenderer):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::textTrackRemoveCue):
(WebCore::HTMLMediaElement::configureTextTrackDisplay):
(WebCore::HTMLMediaElement::captionPreferencesChanged):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
(WebCore::MediaControlTextTrackContainerElement::processActiveVTTCue):
(WebCore::MediaControlTextTrackContainerElement::updateActiveCuesFontSize):
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
(WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation):

  • html/shadow/MediaControlElements.h:
  • html/track/TextTrack.cpp:

(WebCore::TextTrack::setMode):

  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::cueBoxShadowPseudoId):
(WebCore::TextTrackCue::cueBackdropShadowPseudoId):
(WebCore::cueAttributName):
(WebCore::cueBackgroundAttributName):
(WebCore::TextTrackCueBox::TextTrackCueBox):
(WebCore::TextTrackCueBox::getCue const):
(WebCore::isLegalNode):
(WebCore::invalidNodeException):
(WebCore::checkForInvalidNodeTypes):
(WebCore::tagPseudoObjects):
(WebCore::removePseudoAttributes):
(WebCore::TextTrackCue::create):
(WebCore::TextTrackCue::TextTrackCue):
(WebCore::TextTrackCue::didChange):
(WebCore::TextTrackCue::setIsActive):
(WebCore::TextTrackCue::toJSON const):
(WebCore::TextTrackCue::debugString const):
(WebCore::TextTrackCue::getCueAsHTML):
(WebCore::TextTrackCue::isRenderable const):
(WebCore::TextTrackCue::getDisplayTree):
(WebCore::TextTrackCue::removeDisplayTree):
(WebCore::TextTrackCue::setFontSize):
(WebCore::TextTrackCue::rebuildDisplayTree):

  • html/track/TextTrackCue.h:

(WebCore::TextTrackCueBox::create):
(WebCore::TextTrackCueBox::applyCSSProperties):
(WebCore::TextTrackCueBox::~TextTrackCueBox):
(WebCore::TextTrackCue::cueType const):
(WebCore::TextTrackCue::recalculateStyles):
(WebCore::TextTrackCue::updateDisplayTree):
(WebCore::TextTrackCue::isRenderable const): Deleted.

  • html/track/TextTrackCue.idl:
  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGeneric::isEqual const):
(WebCore::TextTrackCueGeneric::isOrderedBefore const):
(WebCore::TextTrackCueGeneric::isPositionedAbove const):

  • html/track/TextTrackCueGeneric.h:

(isType):

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::VTTCueBox):
(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::getDisplayTree):
(WebCore::VTTCue::removeDisplayTree):
(WebCore::VTTCue::setFontSize):
(WebCore::toVTTCue):
(WebCore::VTTCueBox::create): Deleted.
(WebCore::VTTCueBox::getCue const): Deleted.
(WebCore::VTTCueBox::vttCueBoxShadowPseudoId): Deleted.
(WebCore::VTTCue::cueBackdropShadowPseudoId): Deleted.

  • html/track/VTTCue.h:

(WebCore::VTTCueBox::create):
(isType):

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::appendTextTrackCueBox):
(WebCore::VTTRegion::getDisplayTree):
(WebCore::VTTRegion::prepareRegionDisplayTree):

  • html/track/VTTRegion.h:
  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride const):

  • page/Settings.yaml:
  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::RenderVTTCue):

Source/WebKit:

  • Shared/WebPreferences.yaml:

LayoutTests:

  • media/track/texttrackcue/texttrackcue-addcue-expected.txt: Added.
  • media/track/texttrackcue/texttrackcue-addcue.html: Added.
  • media/track/texttrackcue/texttrackcue-constructor-expected.txt: Added.
  • media/track/texttrackcue/texttrackcue-constructor.html: Added.
  • media/track/texttrackcue/texttrackcue-displaycue-expected.txt: Added.
  • media/track/texttrackcue/texttrackcue-displaycue.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
3:49 PM ImprovingInteropwithWPT edited by Jon Davis
(diff)
3:49 PM ImprovingInteropwithWPT edited by Jon Davis
Added second presenter credit and link to API reference (diff)
3:48 PM Changeset in webkit [251949] by ddkilzer@apple.com
  • 3 edits in trunk/LayoutTests

http/tests/websocket/tests/hybi/handshake-ok-with-legacy-websocket-response-headers.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=176240
<rdar://problem/51445000>

Patch by Kate Cheney <Kate Cheney> on 2019-11-01
Reviewed by Alexey Proskuryakov.

Flakiness no longer reproducible.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
3:42 PM November 2019 Meeting edited by Jon Davis
Added placeholder links to transcripts for lightning talks (diff)
3:42 PM Back-Forward-Cache.pdf attached to DOMBindingsEventLoopNotes by rniwa@webkit.org
Back forward cache slides
3:41 PM Better-DOM-Code.pdf attached to DOMBindingsEventLoopNotes by rniwa@webkit.org
Better DOM code slides
3:21 PM November 2019 Meeting edited by Jon Davis
(diff)
3:18 PM ImprovingInteropwithWPT created by Jon Davis
3:16 PM Changeset in webkit [251948] by BJ Burg
  • 2 edits in trunk/Source/WebKit

REGRESSION(r248696): Element Click on Mac is adding an extra page topContentInsets to y-coordinate
https://bugs.webkit.org/show_bug.cgi?id=203765
<rdar://problem/56014369>

Reviewed by Devin Rousso.

  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:

(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
The topContentInsets is accounted for by rootViewToWindow(), so don't add it in manually.

2:59 PM Changeset in webkit [251947] by Alan Coon
  • 3 edits
    1 move
    2 deletes in tags/Safari-609.1.8.1/Source/WebKit

Cherry-pick r251889. rdar://problem/56787012

REGRESSION (r251215): Mail failed to build
https://bugs.webkit.org/show_bug.cgi?id=203700
<rdar://problem/56787012>

Reviewed by Antoine Quint.

Revert the private modulemap. It didn't include enough things
and caused some internal builds to fail.

We'll put it back with everything included sometime soon.

  • Configurations/WebKit.xcconfig:
  • Modules/OSX.modulemap: Renamed from Source/WebKit/Modules/macOS.modulemap.
  • Modules/iOS.private.modulemap: Removed.
  • Modules/macOS.private.modulemap: Removed.
  • Shared/API/Cocoa/WebKitPrivate.h:

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

2:57 PM Changeset in webkit [251946] by Alan Coon
  • 7 edits in tags/Safari-609.1.8.1/Source

Versioning.

2:55 PM Changeset in webkit [251945] by Alan Coon
  • 1 copy in tags/Safari-609.1.8.1

New tag.

2:39 PM Changeset in webkit [251944] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

macOS WK1: requestidlecallback/requestidlecallback-document-gc.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=203758

Reviewed by Wenson Hsieh.

Fix the test by delaying the check until the next run loop via setTimeout.
This is needed to make GC work reliably in WK1.

  • requestidlecallback/requestidlecallback-document-gc.html:
2:38 PM Changeset in webkit [251943] by Alan Coon
  • 21 edits in tags/Safari-608.4.4.1

Apply patch. rdar://problem/56280706

2:31 PM Changeset in webkit [251942] by Alan Coon
  • 7 edits in tags/Safari-608.4.4.1/Source

Versioning.

2:29 PM Changeset in webkit [251941] by timothy_horton@apple.com
  • 18 edits
    1 add in trunk

macCatalyst: Get TestWebKitAPI building
https://bugs.webkit.org/show_bug.cgi?id=203728

Reviewed by Alexey Proskuryakov.

.:

  • Makefile:

Descend into Tools/.

Source/ThirdParty:

  • gtest/xcode/Config/General.xcconfig:
  • gtest/xcode/Config/SDKVariant.xcconfig: Added.

Add SDKVariant.xcconfig to gtest so that it builds into the correct directory.

Tools:

  • Makefile:

Only build gtest and TestWebKitAPI for macCatalyst.

  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:

Make use of WK_COCOA_TOUCH instead of SDK conditionals.

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

Fix some #ifdefs for macCatalyst.

  • TestWebKitAPI/Tests/WebKitLegacy/ios/ScrollToRevealSelection.mm:

(-[LegacyLoadingDelegate webViewDidFinishLoad:]):

  • TestWebKitAPI/Tests/ios/ScrollViewInsetTests.mm:

(-[AsyncPolicyDelegateForInsetTest webView:didFinishNavigation:]):
(TestWebKitAPI::TEST):
Util::runUntil wants a bool, not a BOOL.

  • TestWebKitAPI/config.h:

Import WebKitLegacy.h after WebKit.h. Traditionally WebKit.h includes
WebKitLegacy.h, except in macCatalyst. Many tests depend on being able
to get WebKitLegacy.h this way.

  • Scripts/webkitpy/style/checkers/sdkvariant.py:
  • Scripts/webkitpy/port/factory.py:
  • Scripts/webkitpy/port/mac.py:

Add a MacCatalyst port behind --maccatalyst, and do the bare minimum
required to get it working and finding the right binaries.
It inherits from Mac instead of iOS because for the purposes of
finding and running binaries, dealing with I/O, etc., these are
100% bona fide macOS products.

2:23 PM Changeset in webkit [251940] by commit-queue@webkit.org
  • 5 edits in trunk

HasProperty result of Proxy in prototype chain is ignored
https://bugs.webkit.org/show_bug.cgi?id=203560

Patch by Alexey Shvayka <Alexey Shvayka> on 2019-11-01
Reviewed by Ross Kirsling.

JSTests:

  • stress/proxy-get-prototype-of.js: Correct Proxy "has" trap test.
  • test262/expectations.yaml: Mark 6 test cases as passing.

Source/JavaScriptCore:

Before this change, when HasProperty was called on ordinary object with Proxy in prototype chain,
falsy result of Proxy's "has" trap was ignored and prototype chain was inspected further.

According to spec, OrdinaryHasProperty unconditionally returns result of parent's HasProperty call.
(step 5.a of https://tc39.es/ecma262/#sec-ordinaryhasproperty)

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):

2:10 PM Changeset in webkit [251939] by Alan Coon
  • 1 copy in tags/Safari-608.4.4.1

New tag.

1:55 PM Changeset in webkit [251938] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Improve summary string when there are flaky failures in API tests
https://bugs.webkit.org/show_bug.cgi?id=203747

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeAPITestsResults.analyzeResults): Display pre-existing failure string string only
if there are pre-existing API test failures.

1:49 PM BackForwardCacheNotes created by Jon Davis
1:43 PM DOMBindingsEventLoopNotes created by Jon Davis
1:42 PM November 2019 Meeting edited by Jon Davis
(diff)
1:36 PM Changeset in webkit [251937] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

1:25 PM Changeset in webkit [251936] by Alan Coon
  • 1 copy in tags/Safari-608.4.7

Tag Safari-608.4.7.

1:19 PM Changeset in webkit [251935] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Investigate if mach lookup access to *.apple-extension-service, *.viewservice, and com.apple.uikit.viewservice.* can be denied
https://bugs.webkit.org/show_bug.cgi?id=203626

Reviewed by Alexey Proskuryakov.

Modify the allow rule for these services to include the telemetry option.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:05 PM PlayStationWebKitPortUpdate2019 edited by stephan.szabo@sony.com
(diff)
12:57 PM November 2019 Meeting edited by cavalcantii@gmail.com
(diff)
12:34 PM Changeset in webkit [251934] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Port ServiceWorkerContainer to the HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203680

Reviewed by Ryosuke Niwa.

  • dom/AbstractEventLoop.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::ServiceWorkerContainer):
(WebCore::ServiceWorkerContainer::ready):
(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::getRegistrations):
(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
(WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
(WebCore::ServiceWorkerContainer::enqueueTask):

  • workers/service/ServiceWorkerContainer.h:
12:34 PM Changeset in webkit [251933] by Nikita Vasilyev
  • 5 edits in trunk

Web Inspector: Display color swatches for p3 colors
https://bugs.webkit.org/show_bug.cgi?id=203439
<rdar://problem/56637250>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Detect color(display-p3 0 1 0) as a color in the style editor.

  • UserInterface/Models/Color.js:

(WI.Color):
(WI.Color.fromString):
(WI.Color.prototype.copy):
(WI.Color.prototype.toString):
(WI.Color.prototype.isKeyword):
(WI.Color.prototype._toFunctionString):

LayoutTests:

  • inspector/model/color-expected.txt:
  • inspector/model/color.html:
12:21 PM November 2019 Meeting edited by Jonathan Bedard
(diff)
12:17 PM Changeset in webkit [251932] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r249831): content view is empty if a breakpoint is hit in the main resource
https://bugs.webkit.org/show_bug.cgi?id=203722
<rdar://problem/56802409>

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/SourceCode.js:

(WI.SourceCode.prototype.get currentRevision):
(WI.SourceCode.prototype.revisionContentDidChange):
(WI.SourceCode.prototype._initializeCurrentRevisionIfNeeded):
(WI.SourceCode.prototype._processContent):
Don't wait to lazily clone the originalRevision and use it as the currentRevision. Some
listeners expect the currentRevision to already be set by the time this happens, so as
soon as the original revision's content is changed, clone it into the currentRevision.

11:54 AM November 2019 Meeting edited by Jon Davis
(diff)
11:37 AM PlayStationWebKitPortUpdate2019 edited by Jon Davis
(diff)
11:36 AM PlayStationWebKitPortUpdate2019 created by Jon Davis
11:36 AM November 2019 Meeting edited by Jon Davis
(diff)
11:35 AM November 2019 Meeting edited by Jon Davis
(diff)
11:27 AM Changeset in webkit [251931] by Wenson Hsieh
  • 2 edits in trunk/Tools

TestWebKitAPI.EditorStateTests.TypingAttributesTextAlignmentStartEnd is flaky in iOS simulator
https://bugs.webkit.org/show_bug.cgi?id=203733
<rdar://problem/56814640>

Reviewed by Tim Horton.

Try to fix the flaky test by making EditingTestHarness more robust. Instead of checking for expected editor
state entries after the next presentation update, wait for the latest editor state entry to contain the expected
values.

  • TestWebKitAPI/EditingTestHarness.mm:

(-[EditingTestHarness _execCommand:argument:expectEntries:]):

Preserve the existing log statement by printing it out once after a few seconds, if the entry is still not found
in the last known editor state.

11:22 AM November 2019 Meeting edited by Jon Davis
Added links to transcripts, talk title update for JSC (diff)
11:20 AM IgaliaFocusandGoals2020 edited by alex
(diff)
11:16 AM Changeset in webkit [251930] by rniwa@webkit.org
  • 11 edits
    4 adds in trunk

Integrate media query evaluation into HTML5 event loop
https://bugs.webkit.org/show_bug.cgi?id=203134
<rdar://problem/56396316>

Reviewed by Antti Koivisto.

Source/WebCore:

Moved the code to call media query listeners to HTML5 event loop's step to update the rendering:
https://html.spec.whatwg.org/multipage/webappapis.html#update-the-rendering

Tests: fast/media/mq-inverted-colors-live-update-for-listener.html

fast/media/mq-prefers-reduced-motion-live-update-for-listener.html

  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::evaluateAll): Renamed from styleResolverChanged.

  • css/MediaQueryMatcher.h:
  • dom/Document.cpp:

(WebCore::Document::updateElementsAffectedByMediaQueries): Split from evaluateMediaQueryList.
This function is still called right after each layout update so that picture element may start
requesting newly selected image resources without having to wait for a rendering update.
But this function will no longer execute arbitrary scripts.
(WebCore::Document::evaluateMediaQueriesAndReportChanges): Split from evaluateMediaQueryList.
Evaluates media query listeners.

  • dom/Document.h:
  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::setEmulatedMedia): Force the evaluation of media queries for now
but this code should really be scheduling a rendering update instead so added a FIXME.

  • page/Frame.cpp:

(WebCore::Frame::setPrinting): Evaluate media queries. We should consider invoking the full
algorithm to update the rendering here. e.g. intersection observer may add more contents.

  • page/Page.cpp:

(WebCore::Page::updateStyleAfterChangeInEnvironment): Schedule a rendering update after
accessibility settings have changed.
(WebCore::Page::updateRendering): Call evaluateMediaQueriesAndReportChanges.
(WebCore::Page::accessibilitySettingsDidChange): Schedule a rendering update after accessibility
settings have changed.
(WebCore::Page::appearanceDidChange): Ditto.

LayoutTests:

Added tests for listening to accessiblity related media queries without having any style rules
get affected by those media queries so that we can catch any future regressions. For now,
changing accessiblity settings seem to always schedule a rendering update so there is nothing to do
when these accessibility settings do change.

  • fast/media/media-query-list-07.html: Fixed the test to be compatible with new behavior.
  • fast/media/mq-inverted-colors-live-update-for-listener-expected.txt: Added.
  • fast/media/mq-inverted-colors-live-update-for-listener.html: Added.
  • fast/media/mq-prefers-reduced-motion-live-update-for-listener-expected.txt: Added.
  • fast/media/mq-prefers-reduced-motion-live-update-for-listener.html: Added.
11:01 AM WebKitGoalsfor2020 created by Jon Davis
10:59 AM Igalia -- WebKit Contributors Meeting 2019.pdf attached to IgaliaFocusandGoals2020 by alex
Igalia Focus and Goals 2020
10:57 AM Changeset in webkit [251929] by Alan Coon
  • 2 edits in tags/Safari-609.1.9/Source/WebKit

Cherry-pick r251897. rdar://problem/56765698

[iOS] Fix mach lookup sandbox violations in the Mail app
https://bugs.webkit.org/show_bug.cgi?id=203697

Reviewed by Alexey Proskuryakov.

Allow mach lookup to the services "com.apple.logd.events" and "com.apple.distributed_notifications@1v3",
which are seen when running the Mail application. Also allow "com.apple.aggregated", which was previously
allowed, and is showing up in reports.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

10:57 AM Changeset in webkit [251928] by Alan Coon
  • 3 edits
    1 move
    2 deletes in tags/Safari-609.1.9/Source/WebKit

Cherry-pick r251889. rdar://problem/56787012

REGRESSION (r251215): Mail failed to build
https://bugs.webkit.org/show_bug.cgi?id=203700
<rdar://problem/56787012>

Reviewed by Antoine Quint.

Revert the private modulemap. It didn't include enough things
and caused some internal builds to fail.

We'll put it back with everything included sometime soon.

  • Configurations/WebKit.xcconfig:
  • Modules/OSX.modulemap: Renamed from Source/WebKit/Modules/macOS.modulemap.
  • Modules/iOS.private.modulemap: Removed.
  • Modules/macOS.private.modulemap: Removed.
  • Shared/API/Cocoa/WebKitPrivate.h:

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

10:56 AM IgaliaFocusandGoals2020 edited by alex
(diff)
10:35 AM IgaliaFocusandGoals2020 edited by Jon Davis
Fixed link formatting (diff)
10:31 AM IgaliaFocusandGoals2020 created by Jon Davis
Created page and added a link to the presentation.
10:29 AM November 2019 Meeting edited by Jon Davis
Adding placeholder links for presentations (diff)
10:27 AM Changeset in webkit [251927] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Pass clobber-old-results parameter to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=203736

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(RunWebKitTests): Added --clobber-old-results paramter to run-webkit-tests. Also re-ordered
--no-new-test-results and --no-show-results to match with build.webkit.org configuration.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
10:18 AM Changeset in webkit [251926] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the watchOS build after r251896

  • Configurations/WebCore.xcconfig:

Whoops.

10:16 AM Changeset in webkit [251925] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Turn on the Picture-in-Picture API feature by default
https://bugs.webkit.org/show_bug.cgi?id=203725

Patch by Peng Liu <Peng Liu> on 2019-11-01
Reviewed by Jer Noble.

Source/WebCore:

No new tests are required.

  • page/Settings.yaml:

Source/WebKit:

  • Shared/WebPreferences.yaml:
10:09 AM November 2019 Meeting edited by alex
(diff)
10:07 AM November 2019 Meeting edited by alex
(diff)
10:04 AM Changeset in webkit [251924] by rniwa@webkit.org
  • 7 edits
    2 adds in trunk

Don't leak documents with a pending requestIdleCallback
https://bugs.webkit.org/show_bug.cgi?id=203708

Reviewed by Simon Fraser.

Source/WebCore:

Remove all tasks associated with a stopped document right away instead of waiting for
WindowEventLoop::run to execute so that even when author scripts synchronously add and remove
multiple documents, we don't end up leaking all of them until we yield to the run loop.

Also moved the code to suspend & resume event loops from CachedFrame to Document's
ActiveDOMObjects related functions for consistency.

Test: requestidlecallback/requestidlecallback-document-gc.html

  • dom/Document.cpp:

(WebCore::Document::suspendActiveDOMObjects): Moved the code from CachedFrameBase::restore.
(WebCore::Document::resumeActiveDOMObjects): Ditto from CachedFrame.
(WebCore::Document::stopActiveDOMObjects): Remove all tasks associated with this document.

  • dom/Document.h:

(WebCore::Document::eventLoopIfExists): Deleted.

  • dom/WindowEventLoop.cpp:

(WebCore::WindowEventLoop::stop):
(WebCore::WindowEventLoop::run):

  • dom/WindowEventLoop.h:
  • history/CachedFrame.cpp:

(WebCore::CachedFrameBase::restore):
(WebCore::CachedFrame::CachedFrame):

LayoutTests:

Added a test for removing iframes with a pending idle callback and test that
the current documents of those iframes are collected immediately by GCController.collect.

  • requestidlecallback/requestidlecallback-document-gc-expected.txt: Added.
  • requestidlecallback/requestidlecallback-document-gc.html: Added.
9:28 AM Changeset in webkit [251923] by Caio Lima
  • 4 edits in trunk/JSTests

[JSC][MIPS] Skip tests failing in RELEASE_ASSERT_NOT_REACHED() at CallFrame.cpp:81
https://bugs.webkit.org/show_bug.cgi?id=203738

Unreviewed gardening.

  • stress/allocation-sinking-hints-are-valid-ssa.js:
  • stress/has-instance-exception-check.js:
  • stress/regress-176485.js:
9:19 AM Changeset in webkit [251922] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: tab isn't visible after removal of Debugger Tab and Resources Tab
https://bugs.webkit.org/show_bug.cgi?id=203719
<rdar://problem/56802389>

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WI.loaded):
If the Debugger Tab identifier or Resources Tab identifier still exists in the list of open
tabs, remove both and replace the first one with the Sources Tab identifier.

9:08 AM Changeset in webkit [251921] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: make the default content of the Inspector Bootstrap Script a comment that explains how it works
https://bugs.webkit.org/show_bug.cgi?id=203704

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.async createBootstrapScript):

  • Localizations/en.lproj/localizedStrings.js:
8:57 AM Changeset in webkit [251920] by commit-queue@webkit.org
  • 24 edits in trunk

Picture-in-Picture layout test cases interfere with each other
https://bugs.webkit.org/show_bug.cgi?id=203614

Patch by Peng Liu <Peng Liu> on 2019-11-01
Reviewed by Eric Carlson.

Source/WebCore:

Fix test running issues, no new test is needed.

Add a member variable m_pictureInPictureAPITestEnabled to the HTMLVideoElement class.
When this variable is true, HTMLVideoElement::setFullscreenMode() will mock the
behavior of the Picture-in-Picture mode changing without the AVKit/CoreMedia involvement.
So we can run multiple layout test cases for Picture-in-Picture API simultaneously.
Note: this solution only tests the code for the Picture-in-Picture API implementation!
We still need to use the API tests to test the Picture-in-Picture implementation end-to-end.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::setFullscreenMode):
(WebCore::HTMLVideoElement::setPictureInPictureAPITestEnabled):

  • html/HTMLVideoElement.h:
  • html/HTMLVideoElement.idl:
  • testing/Internals.cpp:

(WebCore::Internals::setPictureInPictureAPITestEnabled):

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

LayoutTests:

Use "internals.setPictureInPictureAPITestEnabled(video, true)" to test
the picture-in-picture API implementation without AVKit/CoreMedia stuffs.

  • media/picture-in-picture-api-enter-pip-1-expected.txt:
  • media/picture-in-picture-api-enter-pip-1.html:
  • media/picture-in-picture-api-enter-pip-2-expected.txt:
  • media/picture-in-picture-api-enter-pip-2.html:
  • media/picture-in-picture-api-enter-pip-3-expected.txt:
  • media/picture-in-picture-api-enter-pip-3.html:
  • media/picture-in-picture-api-enter-pip-4-expected.txt:
  • media/picture-in-picture-api-enter-pip-4.html:
  • media/picture-in-picture-api-exit-pip-1-expected.txt:
  • media/picture-in-picture-api-exit-pip-1.html:
  • media/picture-in-picture-api-exit-pip-2-expected.txt:
  • media/picture-in-picture-api-exit-pip-2.html:
  • media/picture-in-picture-api-pip-events-expected.txt:
  • media/picture-in-picture-api-pip-events.html:
  • media/picture-in-picture-api-pip-window-expected.txt:
  • media/picture-in-picture-api-pip-window.html:
8:53 AM Changeset in webkit [251919] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Settings: Blackbox: hide icon is missing
https://bugs.webkit.org/show_bug.cgi?id=203727

Reviewed by Timothy Hatcher.

  • UserInterface/Images/Hide.svg:

WI.ImageUtilities.useSVGSymbol links directly to a specific part of the SVG resource based
on an id attribute (default to #root if not otherwise given). As a result, any <style>
that are not a child of that specific part won't be included, meaning that any CSS variables
used for controlling colors won't exist. Adding a fallback value to the var() for these
cases allows a specific part to be used without needing any surrounding styles.

  • UserInterface/Views/BlackboxSettingsView.css:

(.settings-view.blackbox > p > .toggle-script-blackbox):
Slightly adjust the size and vertical alignment to better match the surrounding text.

8:37 AM Changeset in webkit [251918] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: enable line wrapping by default
https://bugs.webkit.org/show_bug.cgi?id=203726

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Setting.js:
8:35 AM Changeset in webkit [251917] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Add support for text-align: justify
https://bugs.webkit.org/show_bug.cgi?id=203715
<rdar://problem/56804607>

Reviewed by Antti Koivisto.

Add basic support for text-align: justify. Register expansion opportunities as the text content is being
appended to the line (Line::appendTextContent) and distribute the extra space when the line is being closed (Line::close).
Now LFC rendering of OpenSource/PerformanceTests/Layout/line-layout-simple.html visually matches trunk rendering.

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintInlineContent):

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::TextContext::resetExpansion):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::close):
(WebCore::Layout::Line::justifyRuns):
(WebCore::Layout::Line::alignContentHorizontally):
(WebCore::Layout::Line::appendTextContent):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::isTextAlignJustify const):
(WebCore::Layout::Line::Run::setCollapsesToZeroAdvanceWidth):
(WebCore::Layout::Line::Run::adjustExpansionBehavior):
(WebCore::Layout::Line::Run::expand): Deleted.

  • layout/inlineformatting/InlineLineLayout.cpp:

(WebCore::Layout::LineLayout::close):

8:20 AM Changeset in webkit [251916] by Antti Koivisto
  • 12 edits in trunk/Source/WebCore

Style::Builder should not depend on StyleResolver
https://bugs.webkit.org/show_bug.cgi?id=203729

Reviewed by Zalan Bujtas.

With all style building state in builder, we can remove the back-reference to style resolver.

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::createFilterOperations):

  • css/CSSFilterImageValue.h:
  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::gradientWithStylesResolved):
(WebCore::CSSGradientValue::resolveRGBColors):

Add helper for resolving basic colors without style builder.

  • css/CSSGradientValue.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::State::State):
(WebCore::StyleResolver::State::setStyle):
(WebCore::StyleResolver::applyMatchedProperties):

Register content attributes encountered during style building.

(WebCore::StyleResolver::State::updateConversionData): Deleted.

This is now created by BuilderState constructor.

(WebCore::StyleResolver::styleImage): Deleted.
(WebCore::StyleResolver::colorFromPrimitiveValueIsDerivedFromElement): Deleted.
(WebCore::StyleResolver::colorFromPrimitiveValue const): Deleted.
(WebCore::filterOperationForType): Deleted.
(WebCore::StyleResolver::createFilterOperations): Deleted.

Move image mapping functions to BuilderState.

  • css/StyleResolver.h:

(WebCore::StyleResolver::State::cssToLengthConversionData const): Deleted.

  • html/HTMLInputElement.cpp:

(WebCore::autoFillStrongPasswordMaskImage):
(WebCore::HTMLInputElement::createInnerTextStyle):

Create mask image without requiring style resolver.

  • style/StyleBuilder.cpp:

(WebCore::Style::Builder::Builder):

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueZoom):
(WebCore::Style::BuilderCustom::applyValueContent):
(WebCore::Style::BuilderCustom::applyValueFontSize):
(WebCore::Style::BuilderCustom::applyValueAlt):

  • style/StyleBuilderState.cpp:

(WebCore::Style::BuilderState::BuilderState):

No more m_styleResolver.

(WebCore::Style::BuilderState::createStyleImage):
(WebCore::Style::filterOperationForType):
(WebCore::Style::BuilderState::createFilterOperations):
(WebCore::Style::BuilderState::isColorFromPrimitiveValueDerivedFromElement):
(WebCore::Style::BuilderState::colorFromPrimitiveValue const):
(WebCore::Style::BuilderState::registerContentAttribute):

Collect content attributes so they can be applied later by StyleResolver.

  • style/StyleBuilderState.h:

(WebCore::Style::BuilderState::builder):
(WebCore::Style::BuilderState::rootElementStyle const):

Restore this to be nullable for simplicity.

(WebCore::Style::BuilderState::registeredContentAttributes const):
(WebCore::Style::BuilderState::styleResolver): Deleted.

7:41 AM November 2019 Meeting edited by Jon Davis
Updated Igalia talk name (diff)
7:40 AM November 2019 Meeting edited by Jon Davis
Changed the afternoon schedule (diff)
7:26 AM Changeset in webkit [251915] by Fujii Hironori
  • 2 edits in trunk/Tools

[CMake] TestWebCore shouldn't link with WebCoreTestSupport
https://bugs.webkit.org/show_bug.cgi?id=203672

Reviewed by Don Olmstead.

TestWebCore doesn't need to link with WebCoreTestSupport. And, it
causes a problem for Windows because WebCoreTestSupport imports
WebCore symbols by using dllimport, however, WebCore is not a DLL.
(Bug 203663 Comment 4)

  • TestWebKitAPI/CMakeLists.txt: Changed TestWebCore not to link

with WebCoreTestSupport. Changed TestWebCore to link with
WebCoreHeaderInterface instead.

5:55 AM Changeset in webkit [251914] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

CanvasRenderingContext2DBase: use CanvasBase more extensively
https://bugs.webkit.org/show_bug.cgi?id=182685

Patch by Zan Dobersek <zdobersek@igalia.com> and Chris Lord <Chris Lord> on 2019-11-01
Reviewed by Adrian Perez de Castro.

In CanvasRenderingContext2DBase, stop downcasting the CanvasBase object
to HTMLCanvasElement where not necessary, and where necessary, do so
after testing that the CanvasBase object is indeed a HTMLCanvasElement.

All the functionality that previously required downcasting has now moved
into the CanvasBase class. Combined with these changes, this will allow
OffscreenCanvas to leverage CanvasRenderingContext2DBase for 2D
rasterization.

CanvasStyle is similarly modified to work on CanvasBase objects, only
retrieving current color value from the inline style only in case of
an HTMLCanvasElement derivative.

No new tests -- no change in behavior.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::setStrokeStyle):
(WebCore::CanvasRenderingContext2DBase::setFillStyle):
(WebCore::CanvasRenderingContext2DBase::setShadowColor):
(WebCore::CanvasRenderingContext2DBase::setShadow):
(WebCore::CanvasRenderingContext2DBase::didDraw):
(WebCore::CanvasRenderingContext2DBase::getImageData const):
(WebCore::CanvasRenderingContext2DBase::putImageData):
(WebCore::CanvasRenderingContext2DBase::platformLayer const):

  • html/canvas/CanvasStyle.cpp:

(WebCore::currentColor):
(WebCore::parseColorOrCurrentColor):

  • html/canvas/CanvasStyle.h:
1:44 AM Changeset in webkit [251913] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

Turn on IOSurface support in the iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=203026
<rdar://problem/56320993>

  • platform/ios/TestExpectations:

Adjust some more test expectations after turning on accelerated drawing.
This is starting to get concerning.

Note: See TracTimeline for information about the timeline view.