WebKit-https.git
12 months agoWeb Inspector: remove setting for Sources tab
drousso@apple.com [Fri, 21 Sep 2018 18:56:00 +0000 (18:56 +0000)]
Web Inspector: remove setting for Sources tab
https://bugs.webkit.org/show_bug.cgi?id=189817

Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Setting.js:
* UserInterface/Main.html:
* UserInterface/Base/Main.js:
(WI.contentLoaded):
(WI._debuggerDidPause):
(WI.isShowingSourcesTab): Removed.
(WI.showSourcesTab): Removed.

* UserInterface/Views/SourcesSidebarPanel.css: Removed.
* UserInterface/Views/SourcesSidebarPanel.js: Removed.
* UserInterface/Views/SourcesTabContentView.js: Removed.

* UserInterface/Views/ContextMenuUtilities.js:
(WI.appendContextMenuItemsForURL):

* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

* UserInterface/Views/SourceCodeTextEditor.js:
(WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):

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

12 months agoMake "overflow: overlay" a synonym for "overflow: auto"
simon.fraser@apple.com [Fri, 21 Sep 2018 18:42:25 +0000 (18:42 +0000)]
Make "overflow: overlay" a synonym for "overflow: auto"
https://bugs.webkit.org/show_bug.cgi?id=189811

Source/WebCore:

Reviewed by Zalan Bujtas.

The "overlay" value for overflow was added for an internal Safari feature, and only has
an effect (allow the scrollbar to overlap the content) with legacy scrollbars on macOS.
It's little used on the web.

To simplify code in rendering, just make "overflow: overlay" behave like "overflow: auto".
It's still parsed, but turns into an "auto" value internally, and will be returned from getComputedStyle
as "auto".

Test: fast/css/getComputedStyle/getComputedStyle-overflow.html

* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator Overflow const):
* css/CSSProperties.json:
* css/CSSValueKeywords.in:
* css/StyleResolver.cpp:
(WebCore::isScrollableOverflow):
* css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
* page/ios/FrameIOS.mm:
(WebCore::Frame::nodeRespondingToScrollWheelEvents):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::hasVerticalScrollbarWithAutoBehavior const):
(WebCore::RenderBox::hasHorizontalScrollbarWithAutoBehavior const):
* rendering/RenderLayer.cpp:
(WebCore::styleDefinesAutomaticScrollbar):
* rendering/RenderLayerCompositor.cpp:
(WebCore::isScrollableOverflow):
* rendering/style/RenderStyleConstants.h:

Source/WebInspectorUI:

Reviewed by Zalan Bujtas.

Remove "overlay" from the overflow values.

* UserInterface/Models/CSSKeywordCompletions.js:
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WI.VisualStyleDetailsPanel.prototype._populateDisplaySection):

LayoutTests:

Reviewed by Zalan Bujtas.

Add a modern CSS parsing/computed style test for overflow, superseding
fast/css/overflow-property.html.

* fast/css/getComputedStyle/getComputedStyle-overflow-expected.txt: Added.
* fast/css/getComputedStyle/getComputedStyle-overflow.html: Added.
* fast/css/overflow-property-expected.txt: Removed.
* fast/css/overflow-property.html: Removed.

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

12 months agoTests checking document GC in case of ActiveDOMObjects are flaky
ryanhaddad@apple.com [Fri, 21 Sep 2018 18:40:15 +0000 (18:40 +0000)]
Tests checking document GC in case of ActiveDOMObjects are flaky
https://bugs.webkit.org/show_bug.cgi?id=189413

Unreviewed test gardening.

* platform/mac/TestExpectations: Mark http/tests/media/clearkey/collect-webkit-media-session.html as flaky.

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

12 months agoCentralize which CVPixelBuffer format is being used
youenn@apple.com [Fri, 21 Sep 2018 18:37:31 +0000 (18:37 +0000)]
Centralize which CVPixelBuffer format is being used
https://bugs.webkit.org/show_bug.cgi?id=189772

Reviewed by Eric Carlson.

Get the format type from a single point.
This changes the video capture and mock realtime video sources on Mac to use a biplanar format.
No observable change of behavior.

* WebCore.xcodeproj/project.pbxproj:
* platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset):
(WebCore::AVVideoCaptureSource::setupCaptureSession):
(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):
* platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer):
(WebCore::MockRealtimeVideoSourceMac::setSizeAndFrameRateWithPreset):
* platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
(WebCore::createBlackPixelBuffer):
* platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:
(WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated):
* platform/mediastream/mac/RealtimeVideoUtilities.h: Added.

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

12 months agoWeb Inspector: hide Accessibility Audit Tab setting
drousso@apple.com [Fri, 21 Sep 2018 18:33:29 +0000 (18:33 +0000)]
Web Inspector: hide Accessibility Audit Tab setting
https://bugs.webkit.org/show_bug.cgi?id=189816

Reviewed by Joseph Pecoraro.

Considering that this tab doesn't exist, there's no reason to have a setting/UI for it.

* UserInterface/Base/Setting.js:
* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

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

12 months agoBring up queues for iOS 12 (Build fix)
jbedard@apple.com [Fri, 21 Sep 2018 18:33:16 +0000 (18:33 +0000)]
Bring up queues for iOS 12 (Build fix)
https://bugs.webkit.org/show_bug.cgi?id=189683

Unreviewed build fix.

* pal/spi/cocoa/QuartzCoreSPI.h: Declare setCornerRadius and continuousCorner.

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

12 months agoWeb Inspector: remove Legacy Style Editor
drousso@apple.com [Fri, 21 Sep 2018 18:30:10 +0000 (18:30 +0000)]
Web Inspector: remove Legacy Style Editor
https://bugs.webkit.org/show_bug.cgi?id=189808

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

The Legacy Style Editor has been hidden behind an "experimental" setting for almost a year.
It's time that we remove it, especially since the new Style Editor is at a similar, if not
more advanced, state.

* .eslintrc:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
* Localizations/en.lproj/localizedStrings.js:
* Tools/PrettyPrinting/index.html:
* UserInterface/Main.html:
* UserInterface/Test.html:
* UserInterface/Base/Setting.js:

* UserInterface/Base/TextUtilities.js: Removed.
* UserInterface/Base/Utilities.js:

* UserInterface/Views/RulesStyleDetailsPanel.css: Removed.
* UserInterface/Views/RulesStyleDetailsPanel.js: Removed.
* UserInterface/Views/CSSStyleDeclarationSection.css: Removed.
* UserInterface/Views/CSSStyleDeclarationSection.js: Removed.
* UserInterface/Views/CSSStyleDeclarationTextEditor.css: Removed.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js: Removed.

* UserInterface/Models/CSSProperty.js:
(WI.CSSProperty.prototype.get text):
(WI.CSSProperty.prototype.get synthesizedText): Deleted.

* UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration):
(WI.CSSStyleDeclaration.prototype.set text):
(WI.CSSStyleDeclaration.prototype.resetText): Deleted.
(WI.CSSStyleDeclaration.prototype.get modified): Deleted.
(WI.CSSStyleDeclaration.prototype.generateCSSRuleString): Deleted.
(WI.CSSStyleDeclaration.prototype.isInspectorRule): Deleted.

* UserInterface/Models/CSSSelector.js:
(WI.CSSSelector.prototype.isGreaterThan): Deleted.

* UserInterface/Models/CSSRule.js:
(WI.CSSRule.prototype.update):
(WI.CSSRule.prototype.get matchedSelectors): Deleted.
(WI.CSSRule.prototype.get matchedSelectorText): Deleted.
(WI.CSSRule.prototype.hasMatchedPseudoElementSelector): Deleted.
(WI.CSSRule.prototype.get mediaText): Deleted.
(WI.CSSRule.prototype.get mostSpecificSelector): Deleted.
(WI.CSSRule.prototype.selectorIsGreater): Deleted.
(WI.CSSRule.prototype._determineMostSpecificSelector): Deleted.

* UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.prototype.changeRule.changeCompleted): Deleted.
(WI.DOMNodeStyles.prototype.changeRule.styleChanged): Deleted.
(WI.DOMNodeStyles.prototype.changeRule.changeText): Deleted.
(WI.DOMNodeStyles.prototype.changeRule.ruleSelectorChanged): Deleted.
(WI.DOMNodeStyles.prototype.changeRule): Deleted.

* UserInterface/Models/CSSCompletions.js:
(WI.CSSCompletions.prototype.isValidPropertyName):
(WI.CSSCompletions):
(WI.CSSCompletions.prototype.keySet): Deleted.
(WI.CSSCompletions.prototype.propertyRequiresWebkitPrefix): Deleted.
(WI.CSSCompletions.prototype.getClosestPropertyName): Deleted.

* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorStartEditingAdjacentRule): Deleted.

* UserInterface/Views/RulesStyleDetailsSidebarPanel.js:
(WI.RulesStyleDetailsSidebarPanel):

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):

* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorStartEditingRuleSelector): Added.
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorStartEditingRuleSelector): Deleted.

* UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel):
* UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules): Added.
(.sidebar > .panel.details.css-style > .content > .rules .section-header): Added.
(.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link): Added.
(.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover): Added.
(.sidebar > .panel.details.css-style > .content > .rules > .message-text-view): Added.
(.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .message-text-view): Added.
(@media (prefers-dark-interface)):
(.sidebar > .panel.details.css-style > .content > .rules .section-header): Added.
(.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover): Added.
(.spreadsheet-style-panel .section-header): Deleted.
(.spreadsheet-style-panel .section-header .node-link): Deleted.
(.spreadsheet-style-panel .section-header .node-link:hover): Deleted.
(.spreadsheet-style-panel .section-header): Deleted.
(.spreadsheet-style-panel .section-header .node-link:hover): Deleted.

* UserInterface/Views/CodeMirrorAdditions.js:
(extendedCSSRuleStartState): Removed.
* UserInterface/Views/CodeMirrorFormatters.js:
Remove "css-rule" CodeMirror mode.

* UserInterface/Views/CodeMirrorTextMarkers.js:
(createCodeMirrorVariableTextMarkers): Deleted.

* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

LayoutTests:

* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:

* inspector/css/css-property-expected.txt:
* inspector/css/css-property.html:
* inspector/css/modify-css-property.html:
* inspector/css/shadow-scoped-style.html:
Update tests for functionality that has been deleted.

* inspector/unit-tests/test-harness-expect-functions-expected.txt:
* inspector/unit-tests/test-harness-expect-functions.html:
The changes to `WI.CSSRule` now make it small enough that `InspectorTest` will print it as
JSON instead of an object instance. Change the test to use different objects so this doesn't
happen.

* inspector/unit-tests/text-utilities-expected.txt: Removed.
* inspector/unit-tests/text-utilities.html: Removed.
* inspector/css/generate-css-rule-string-expected.txt: Removed.
* inspector/css/generate-css-rule-string.html: Removed.
Remove tests for functionality that has been deleted.

* inspector/codemirror/prettyprinting-css-rules.html: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-colon-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-colon.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-comma-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-comma.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-rules-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-rules.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-values-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-values.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-append-semicolon-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-append-semicolon.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/invalid-property-is-not-removed-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/invalid-property-is-not-removed.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/keep-prefixed-value-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/keep-prefixed-value.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-newline-between-values-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-newline-between-values.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-colon-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-colon.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-comment-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-comment.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-invalid-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-invalid-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-prefixed-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-prefixed-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-semicolon-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-semicolon.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-comment-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-comment.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-invalid-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-invalid-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-prefixed-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-prefixed-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-comment-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-comment.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-invalid-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-invalid-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-comment-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-comment.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-invalid-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-invalid-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-prefixed-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-prefixed-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-property.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property-expected.css: Removed.
* inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property.css: Removed.
Remove all tests for the "css-rule" CodeMirror mode since it's been removed.

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

12 months agoBring up queues for iOS 12 (Build fix)
jbedard@apple.com [Fri, 21 Sep 2018 17:13:34 +0000 (17:13 +0000)]
Bring up queues for iOS 12 (Build fix)
https://bugs.webkit.org/show_bug.cgi?id=189683

Unreviewed build fix.

We should not build ImageDiff as x86 by default since 32 bit projects are
deprecated in Xcode. ImageDiff should only be built once.

* Scripts/build-webkit:
* Scripts/webkitdirs.pm:
(argumentsForConfiguration):

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

12 months agoREGRESSION (r235962-r235963): Layout Test animations/suspend-resume-animation-events...
graouts@webkit.org [Fri, 21 Sep 2018 16:57:10 +0000 (16:57 +0000)]
REGRESSION (r235962-r235963): Layout Test animations/suspend-resume-animation-events.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189607
<rdar://problem/44652315>

Reviewed by Dean Jackson.

Source/WebCore:

There is no reason we shouldn't return the document timeline's time when suspended as otherwise animations may
report an unresolved current time when suspended which would wreak havoc when invalidating what DOM events to
dispatch for CSS Animations and Transitions. We also shouldn't be invalidation DOM events when suspended.

* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::currentTime):
(WebCore::DocumentTimeline::DocumentTimeline::performInvalidationTask):

LayoutTests:

* animations/suspend-resume-animation-events.html: Ensure the test always opts into Web Animations backing CSS Animations and Transitions.
* platform/mac-wk2/TestExpectations: Mark the test as no longer flaky.

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

12 months agoWhitelist two additional plugins
youenn@apple.com [Fri, 21 Sep 2018 16:41:13 +0000 (16:41 +0000)]
Whitelist two additional plugins
https://bugs.webkit.org/show_bug.cgi?id=189832
<rdar://problem/44628127>

Reviewed by Brent Fulgham.

* UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
(WebKit::PluginInfoStore::shouldAllowPluginToRunUnsandboxed):

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

12 months agoBuild tools should work when the /usr/bin/python is python3
commit-queue@webkit.org [Fri, 21 Sep 2018 16:20:05 +0000 (16:20 +0000)]
Build tools should work when the /usr/bin/python is python3
https://bugs.webkit.org/show_bug.cgi?id=156674

Patch by Mike Gorse <mgorse@suse.com> on 2018-09-21
Reviewed by Michael Catanzaro.

.:

* Source/cmake/WebKitCommon.cmake: Allow python 3.

Source/JavaScriptCore:

* Scripts/cssmin.py:
* Scripts/generate-js-builtins.py:
(do_open):
(generate_bindings_for_builtins_files):
* Scripts/generateIntlCanonicalizeLanguage.py:
* Scripts/jsmin.py:
(JavascriptMinify.minify.write):
(JavascriptMinify):
(JavascriptMinify.minify):
* Scripts/make-js-file-arrays.py:
(chunk):
(main):
* Scripts/wkbuiltins/__init__.py:
* Scripts/wkbuiltins/builtins_generate_combined_header.py:
(generate_section_for_global_private_code_name_macro):
* Scripts/wkbuiltins/builtins_generate_internals_wrapper_header.py:
(BuiltinsInternalsWrapperHeaderGenerator.__init__):
* Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py:
(BuiltinsInternalsWrapperImplementationGenerator.__init__):
* Scripts/wkbuiltins/builtins_model.py:
(BuiltinFunction.__lt__):
(BuiltinsCollection.copyrights):
(BuiltinsCollection._parse_functions):
* disassembler/udis86/ud_opcode.py:
(UdOpcodeTables.pprint.printWalk):
* generate-bytecode-files:
* inspector/scripts/codegen/__init__.py:
* inspector/scripts/codegen/cpp_generator.py:
* inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:
(CppAlternateBackendDispatcherHeaderGenerator.generate_output):
* inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
(CppBackendDispatcherHeaderGenerator.domains_to_generate):
(CppBackendDispatcherHeaderGenerator.generate_output):
(CppBackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):
* inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:
(CppBackendDispatcherImplementationGenerator.domains_to_generate):
(CppBackendDispatcherImplementationGenerator.generate_output):
* inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:
(CppFrontendDispatcherHeaderGenerator.domains_to_generate):
(CppFrontendDispatcherHeaderGenerator.generate_output):
* inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:
(CppFrontendDispatcherImplementationGenerator.domains_to_generate):
(CppFrontendDispatcherImplementationGenerator.generate_output):
* inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
(CppProtocolTypesHeaderGenerator.generate_output):
(CppProtocolTypesHeaderGenerator._generate_forward_declarations):
* inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:
(CppProtocolTypesImplementationGenerator.generate_output):
(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain):
(CppProtocolTypesImplementationGenerator._generate_enum_mapping_and_conversion_methods):
(CppProtocolTypesImplementationGenerator._generate_open_field_names):
(CppProtocolTypesImplementationGenerator._generate_builders_for_domain):
(CppProtocolTypesImplementationGenerator._generate_assertion_for_object_declaration):
* inspector/scripts/codegen/generate_js_backend_commands.py:
(JSBackendCommandsGenerator.should_generate_domain):
(JSBackendCommandsGenerator.domains_to_generate):
(JSBackendCommandsGenerator.generate_output):
(JSBackendCommandsGenerator.generate_domain):
* inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:
(ObjCBackendDispatcherHeaderGenerator.domains_to_generate):
(ObjCBackendDispatcherHeaderGenerator.generate_output):
* inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:
(ObjCBackendDispatcherImplementationGenerator.domains_to_generate):
(ObjCBackendDispatcherImplementationGenerator.generate_output):
(ObjCBackendDispatcherImplementationGenerator._generate_success_block_for_command):
* inspector/scripts/codegen/generate_objc_configuration_header.py:
* inspector/scripts/codegen/generate_objc_configuration_implementation.py:
* inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:
(ObjCFrontendDispatcherImplementationGenerator.domains_to_generate):
(ObjCFrontendDispatcherImplementationGenerator.generate_output):
(ObjCFrontendDispatcherImplementationGenerator._generate_event):
* inspector/scripts/codegen/generate_objc_header.py:
(ObjCHeaderGenerator.generate_output):
(ObjCHeaderGenerator._generate_type_interface):
* inspector/scripts/codegen/generate_objc_internal_header.py:
(ObjCInternalHeaderGenerator.generate_output):
* inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:
(ObjCProtocolTypeConversionsHeaderGenerator.domains_to_generate):
(ObjCProtocolTypeConversionsHeaderGenerator.generate_output):
* inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:
(ObjCProtocolTypeConversionsImplementationGenerator.domains_to_generate):
* inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
(ObjCProtocolTypesImplementationGenerator.domains_to_generate):
(ObjCProtocolTypesImplementationGenerator.generate_output):
(ObjCProtocolTypesImplementationGenerator.generate_type_implementation):
(ObjCProtocolTypesImplementationGenerator._generate_init_method_for_required_members):
* inspector/scripts/codegen/generator.py:
(Generator.non_supplemental_domains):
(Generator.open_fields):
(Generator.calculate_types_requiring_shape_assertions):
(Generator._traverse_and_assign_enum_values):
(Generator.stylized_name_for_enum_value):
* inspector/scripts/codegen/models.py:
(find_duplicates):
* inspector/scripts/codegen/objc_generator.py:
* wasm/generateWasm.py:
(opcodeIterator):
* yarr/generateYarrCanonicalizeUnicode:
* yarr/generateYarrUnicodePropertyTables.py:
* yarr/hasher.py:
(stringHash):

Source/WebCore:

No new tests (no behavior change).

* platform/network/create-http-header-name-table: remove xreadlines.

Source/WebInspectorUI:

* Scripts/copy-user-interface-resources.pl: Use $PYTHON if set
in the environment.

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

12 months agoClear persistent storage between tests for resourceLoadStatistics
commit-queue@webkit.org [Fri, 21 Sep 2018 16:17:16 +0000 (16:17 +0000)]
Clear persistent storage between tests for resourceLoadStatistics
https://bugs.webkit.org/show_bug.cgi?id=189684
<rdar://problem/44540099>

Patch by Woodrow Wang <woodrow_wang@apple.com> on 2018-09-21
Reviewed by Chris Dumez.

* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreStatisticsResetToConsistentState):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor):
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):

Remove function only called in testing for resetting statistics to consistent
state.

(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory): Deleted.

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::WebsiteDataStore::removeAllStorageAccessHandler):

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

12 months agoLayout Test webanimations/accelerated-animation-suspension.html is failing
pvollan@apple.com [Fri, 21 Sep 2018 15:57:04 +0000 (15:57 +0000)]
Layout Test webanimations/accelerated-animation-suspension.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189836

Unreviewed test gardening.

* platform/win/TestExpectations:

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

12 months agoLayout Test css-custom-properties-api/registerProperty.html is failing
pvollan@apple.com [Fri, 21 Sep 2018 15:51:57 +0000 (15:51 +0000)]
Layout Test css-custom-properties-api/registerProperty.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189834

Unreviewed test gardening.

* platform/win/TestExpectations:

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

12 months ago[EME] Introduce the concept of CDMInstanceSession.
jer.noble@apple.com [Fri, 21 Sep 2018 15:08:35 +0000 (15:08 +0000)]
[EME] Introduce the concept of CDMInstanceSession.
https://bugs.webkit.org/show_bug.cgi?id=189725

Reviewed by Eric Carlson.

Currently, the same CDMInstance owned by a MediaKeys object is passed to every MediaKeySession created by that
MediaKeys, and since the CDMInstance has only a single CDMInstanceClient, subsequent MediaKeySessions prevent
previous ones from getting updates.

Add a new virtual interface, CDMInstanceSession, to be passed to MediaKeySession upon creation. Refactor
CDMInstanceClearKey and CDMInstanceFairPlayStreamingAVFObjC to adopt this new interface.

Drive-by fixes: Made a number of virtual overrides in final classes final themselves.

* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::create):
(WebCore::MediaKeySession::MediaKeySession):
(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::load):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::remove):
(WebCore::MediaKeySession::updateKeyStatuses):
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::createSession):
* WebCore.xcodeproj/project.pbxproj:
* platform/encryptedmedia/CDMInstance.h:
(WebCore::CDMInstance::setHDCPStatus):
(WebCore::CDMInstance::setClient): Deleted.
(WebCore::CDMInstance::clearClient): Deleted.
* platform/encryptedmedia/CDMInstanceSession.h: Copied from Source/WebCore/platform/encryptedmedia/CDMInstance.h.
(WebCore::CDMInstanceSession::setClient):
(WebCore::CDMInstanceSession::clearClient):
* platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::parseLicenseFormat):
(WebCore::CDMInstanceClearKey::keySystem const):
(WebCore::CDMInstanceClearKey::createSession):
(WebCore::CDMInstanceSessionClearKey::requestLicense):
(WebCore::CDMInstanceSessionClearKey::keys const):
(WebCore::CDMInstanceSessionClearKey::updateLicense):
(WebCore::CDMInstanceSessionClearKey::loadSession):
(WebCore::CDMInstanceSessionClearKey::closeSession):
(WebCore::CDMInstanceSessionClearKey::removeSessionData):
(WebCore::CDMInstanceSessionClearKey::storeRecordOfKeyUsage):
(WebCore::CDMInstanceClearKey::requestLicense): Deleted.
(WebCore::CDMInstanceClearKey::keys const): Deleted.
(WebCore::CDMInstanceClearKey::updateLicense): Deleted.
(WebCore::CDMInstanceClearKey::loadSession): Deleted.
(WebCore::CDMInstanceClearKey::closeSession): Deleted.
(WebCore::CDMInstanceClearKey::removeSessionData): Deleted.
(WebCore::CDMInstanceClearKey::storeRecordOfKeyUsage): Deleted.
* platform/encryptedmedia/clearkey/CDMClearKey.h:
* platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
* platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::createSession):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::processContentKeyRequestForSession):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::processNextContentKeyRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::keySystem const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvidePersistableRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::shouldRetryRequestForReason):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionIdentifierChanged):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::CDMInstanceSessionFairPlayStreamingAVFObjC):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyIDs):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::loadSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::storeRecordOfKeyUsage):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setClient):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::clearClient):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvidePersistableRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::shouldRetryRequestForReason):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::sessionIdentifierChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::isLicenseTypeSupported const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::isLicenseTypeSupported const): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::keyIDs): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestLicense): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::updateLicense): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::loadSession): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::closeSession): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::removeSessionData): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::storeRecordOfKeyUsage): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setClient): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::clearClient): Deleted.
* testing/MockCDMFactory.cpp:
(WebCore::MockCDMInstance::keySystem const):
(WebCore::MockCDMInstance::createSession):
(WebCore::MockCDMInstanceSession::MockCDMInstanceSession):
(WebCore::MockCDMInstanceSession::requestLicense):
(WebCore::MockCDMInstanceSession::updateLicense):
(WebCore::MockCDMInstanceSession::loadSession):
(WebCore::MockCDMInstanceSession::closeSession):
(WebCore::MockCDMInstanceSession::removeSessionData):
(WebCore::MockCDMInstanceSession::storeRecordOfKeyUsage):
(WebCore::MockCDMInstance::requestLicense): Deleted.
(WebCore::MockCDMInstance::updateLicense): Deleted.
(WebCore::MockCDMInstance::loadSession): Deleted.
(WebCore::MockCDMInstance::closeSession): Deleted.
(WebCore::MockCDMInstance::removeSessionData): Deleted.
(WebCore::MockCDMInstance::storeRecordOfKeyUsage): Deleted.
* testing/MockCDMFactory.h:
(WebCore::MockCDMInstance::factory const):
(WebCore::MockCDMInstance::distinctiveIdentifiersAllowed const):
(WebCore::MockCDMInstance::persistentStateAllowed const):

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

12 months ago[libwebrtc] Allow IP mismatch for local connections on localhost
commit-queue@webkit.org [Fri, 21 Sep 2018 14:37:48 +0000 (14:37 +0000)]
[libwebrtc] Allow IP mismatch for local connections on localhost
https://bugs.webkit.org/show_bug.cgi?id=189828

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-09-21
Reviewed by Alejandro G. Castro.

The rest of the code allows it, but there was an unecessary assert

See Bug 187302

* Source/webrtc/p2p/base/tcpport.cc:

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

12 months ago[ARM] Build broken on armv7hl after r235517
tpopela@redhat.com [Fri, 21 Sep 2018 14:35:38 +0000 (14:35 +0000)]
[ARM] Build broken on armv7hl after r235517
https://bugs.webkit.org/show_bug.cgi?id=189831

Reviewed by Yusuke Suzuki.

Add missing implementation of patchebleBranch8() for traditional ARM.

* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::patchableBranch8):

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

12 months ago[MSE] Fix comparsion with uninitialized greatestDecodeDuration
aboya@igalia.com [Fri, 21 Sep 2018 13:47:48 +0000 (13:47 +0000)]
[MSE] Fix comparsion with uninitialized greatestDecodeDuration
https://bugs.webkit.org/show_bug.cgi?id=189805

Reviewed by Michael Catanzaro.

This bug was causing greatestDecodeDuration to never be initialized,
which in turned caused unintended frame erase as distant appends where
not being recognized as distinct coded frame groups.

A test reproducing the sequence of appends that caused unintended
frame deletion has also been added (media-source-append-out-of-order.html).

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

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

12 months ago[Web Animations] Accelerated animations don't get suspended
graouts@webkit.org [Fri, 21 Sep 2018 13:14:27 +0000 (13:14 +0000)]
[Web Animations] Accelerated animations don't get suspended
https://bugs.webkit.org/show_bug.cgi?id=189783
<rdar://problem/44652315>

Unreviewed, correct a merge error in the previous commit.

Source/WebCore:

* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::performInvalidationTask):

LayoutTests:

* animations/suspend-resume-animation-events.html:

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

12 months ago[Web Animations] Accelerated animations don't get suspended
graouts@webkit.org [Fri, 21 Sep 2018 13:09:45 +0000 (13:09 +0000)]
[Web Animations] Accelerated animations don't get suspended
https://bugs.webkit.org/show_bug.cgi?id=189783
<rdar://problem/43033568>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/accelerated-animation-suspension.html

We used to set the flag that marked the timeline as suspended prior to notifying animations that they need to be suspended.
However, since the timeline was marked as suspended, querying the running state of the animations would indicate that the
animations weren't running since a suspended timeline would identify its animations as not running. As such we would fail
to pause the accelerated animations because they were already not marked as running. We now set the suspended flag on the
timeline _after_ suspending its animations.

We also fix a bug in the new internals.acceleratedAnimationsForElement() test function so that we read from the actual
CA animations and not from a stale list of animations which would not indicate the correct animation speeds.

* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::suspendAnimations):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::acceleratedAnimationsForTesting):

LayoutTests:

Add a new test that checks whether an accelerated animation is correctly paused after suspending animations.

* webanimations/accelerated-animation-suspension-expected.txt: Added.
* webanimations/accelerated-animation-suspension.html: Added.
* platform/win/TestExpectations:

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

12 months agoTransformationMatrix::toColumnMajorFloatArray() should return a std::array<> object
zandobersek@gmail.com [Fri, 21 Sep 2018 12:47:44 +0000 (12:47 +0000)]
TransformationMatrix::toColumnMajorFloatArray() should return a std::array<> object
https://bugs.webkit.org/show_bug.cgi?id=189823

Reviewed by Michael Catanzaro.

Alias the TransformationMatrix::FloatMatrix4 type to
std::array<float, 16>. Instead of filling out the array object that's
passed in through a reference parameter, return the std::array<>
object from the function.

* Modules/webvr/VRFrameData.cpp:
(WebCore::matrixToArray):
* Modules/webvr/VRStageParameters.cpp:
(WebCore::VRStageParameters::sittingToStandingTransform const):
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::TextureMapperShaderProgram::setMatrix):
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::toColumnMajorFloatArray const):
* platform/graphics/transforms/TransformationMatrix.h:

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

12 months agoFloatQuad point getters should return const references
zandobersek@gmail.com [Fri, 21 Sep 2018 12:45:37 +0000 (12:45 +0000)]
FloatQuad point getters should return const references
https://bugs.webkit.org/show_bug.cgi?id=189821

Reviewed by Yusuke Suzuki.

Be pedantic and have the FloatQuad point getters return const references
to the FloatPoint member variables, instead of technically creating
copies of them (though much of this copying is eliminated when the
getters are inlined).

* platform/graphics/FloatQuad.h:
(WebCore::FloatQuad::p1 const):
(WebCore::FloatQuad::p2 const):
(WebCore::FloatQuad::p3 const):
(WebCore::FloatQuad::p4 const):

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

12 months ago[WPE] Built RPM of WPE webkit fails to install with "nothing provides libWPEToolingBa...
aperez@igalia.com [Fri, 21 Sep 2018 11:42:42 +0000 (11:42 +0000)]
[WPE] Built RPM of WPE webkit fails to install with "nothing provides libWPEToolingBackends.so()"
https://bugs.webkit.org/show_bug.cgi?id=189797

Reviewed by Žan Doberšek.

* wpe/backends/CMakeLists.txt: Make libWPEToolingBackends a static library to avoid
the need for installing it. This works fine because the library only contains utility
code intended to be reused from other various components (MiniBrowser, WebKitTestRunner).

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

12 months ago[Web Animations] DocumentTimeline::updateAnimations() is called endlessly
graouts@webkit.org [Fri, 21 Sep 2018 11:28:40 +0000 (11:28 +0000)]
[Web Animations] DocumentTimeline::updateAnimations() is called endlessly
https://bugs.webkit.org/show_bug.cgi?id=189784
<rdar://problem/41705679>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/accelerated-animation-interruption-display-none.html

We have code that keeps queueing pending accelerated actions for an animation that does not have a renderer until it has one
so that we can deal with situations where animations are ready to commited before its composited renderer is available. This
code ended up running continuously when an element with an accelerated animation had its renderer removed without the animation
being removed itself, such as setting "display: none" on an element with an acceelerated CSS Animation targeting it.

We fix this by queueing up a "Stop" accelerated action when updating the accelerated state if there is no renderer for the current
animation target. Then, we no longer re-queue pending accelerated actions if the last queued operation is "Stop". This ensures that
we no longer queue actions endlessly when there is no longer a visible animation.

To test this, we add a new internals.numberOfAnimationTimelineInvalidations() method that indicates the number of times the current
document's animation timeline was invalidated.

* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::updateAnimations):
(WebCore::DocumentTimeline::numberOfAnimationTimelineInvalidationsForTesting const):
* animation/DocumentTimeline.h:
* animation/KeyframeEffectReadOnly.cpp:
(WebCore::KeyframeEffectReadOnly::updateAcceleratedAnimationState): If the animation target does not have a renderer and it's still
marked as running, enqueue a "Stop" accelerated action.
(WebCore::KeyframeEffectReadOnly::addPendingAcceleratedAction): If we enqueue a "Stop" accelerated action, remove any other queued
action so that we only process the "Stop" action, which would have superseded all previously queued actions anyway.
(WebCore::KeyframeEffectReadOnly::applyPendingAcceleratedActions): Only re-queue pending accelerated actions when a composited renderer
is not yet available if we don't have a "Stop" action queued.
* testing/Internals.cpp:
(WebCore::Internals::numberOfAnimationTimelineInvalidations const):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

Add a new test that checks that setting "display: none" on an element with an accelerated CSS animation on it
will no longer update the animation timeline.

* webanimations/accelerated-animation-interruption-display-none-expected.txt: Added.
* webanimations/accelerated-animation-interruption-display-none.html: Added.
* platform/win/TestExpectations:

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

12 months ago[EME] Fix typo in WebM sanitization variable
commit-queue@webkit.org [Fri, 21 Sep 2018 07:37:14 +0000 (07:37 +0000)]
[EME] Fix typo in WebM sanitization variable
https://bugs.webkit.org/show_bug.cgi?id=189789

Patch by Yacine Bandou <yacine.bandou@softathome.com> on 2018-09-21
Reviewed by Xabier Rodriguez-Calvar.

This commit corrects a typo in the name of a local variable, sanitizedBuffer
instead of sanitazedBuffer.

* Modules/encryptedmedia/InitDataRegistry.cpp:
(WebCore::extractKeyIDsWebM):

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

12 months agoRestrict the total combined size of backdrop filters
dino@apple.com [Fri, 21 Sep 2018 05:37:01 +0000 (05:37 +0000)]
Restrict the total combined size of backdrop filters
https://bugs.webkit.org/show_bug.cgi?id=189812
<rdar://problem/44532782>

Reviewed by Simon Fraser.

Source/WebCore:

If the total area of all backdrop filters on the page gets
too large, the universe collapses in on itself and we enter
the Quantum Realm (i.e. crash horribly).

Put a hard limit on the total coverage, and ignore any backdrop
filters after the limit. This might break some content, but
such content is likely not doing things in the most optimal manner.
There isn't any reason to have a backdrop larger than the size of
the screen, because you'd be better off applying a foreground
filter to the main content and showing something above it.

Tests: css3/filters/backdrop/resource-use-add-more-layers.html
       css3/filters/backdrop/resource-use-excessive.html
       css3/filters/backdrop/resource-use-ok.html
       css3/filters/backdrop/resource-use-remove-some-layers.html

* platform/graphics/ca/GraphicsLayerCA.cpp: Pick a fairly small maximum size. We
can consider increasing this if necessary, and as devices with less RAM are
upgraded.
(WebCore::GraphicsLayerCA::recursiveCommitChanges): Gather the accumulated size
of backdrop filters into the commit state as we are recursing through the tree.
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Force any layer
with backdrop filters, or any that is removing backdrop filters, into an update.
(WebCore::GraphicsLayerCA::updateBackdropFilters): Update the logic to first
check if this backdrop layer causes us to exceed the total allowed size, and if
it does, forbid it from getting the GraphicsLayer that composits the backdrop.

* platform/graphics/ca/GraphicsLayerCA.h: Remove const from some parameters so
that we can use the CommitState to hold the accumulated size.

LayoutTests:

Tests that have an acceptable number of backdrops, an excessive
number of backdrops, and then some that add and remove backdrops
at various points in the tree to confirm we do recursive checks
correctly.

* css3/filters/backdrop/layer-tree-as-text.js: Added.
* css3/filters/backdrop/resource-use-add-more-layers-expected.txt: Added.
* css3/filters/backdrop/resource-use-add-more-layers.html: Added.
* css3/filters/backdrop/resource-use-excessive-expected.txt: Added.
* css3/filters/backdrop/resource-use-excessive.html: Added.
* css3/filters/backdrop/resource-use-ok-expected.txt: Added.
* css3/filters/backdrop/resource-use-ok.html: Added.
* css3/filters/backdrop/resource-use-remove-some-layers-expected.txt: Added.
* css3/filters/backdrop/resource-use-remove-some-layers.html: Added.
* css3/filters/backdrop/resource-use.css: Added.

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

12 months agoUnreviewed, rolling out r236293.
ryanhaddad@apple.com [Fri, 21 Sep 2018 04:36:08 +0000 (04:36 +0000)]
Unreviewed, rolling out r236293.

Internal build still broken.

Reverted changeset:

"Add functions to measure memory footprint to JSC"
https://bugs.webkit.org/show_bug.cgi?id=189768
https://trac.webkit.org/changeset/236293

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

12 months agoUnreviewed, rolling out r236289.
ryanhaddad@apple.com [Fri, 21 Sep 2018 03:47:37 +0000 (03:47 +0000)]
Unreviewed, rolling out r236289.

Caused 8 TestWebKitAPI.ContentFiltering test failures.

Reverted changeset:

"InjectedBundle parameters often need initialization function
called before unarchiving"
https://bugs.webkit.org/show_bug.cgi?id=189709
https://trac.webkit.org/changeset/236289

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

12 months agoMove IOKitSPI.h from TestRunnerShared to PAL
dbates@webkit.org [Fri, 21 Sep 2018 03:15:36 +0000 (03:15 +0000)]
Move IOKitSPI.h from TestRunnerShared to PAL
https://bugs.webkit.org/show_bug.cgi?id=189804

Reviewed by Wenson Hsieh.

Towards fixing <https://bugs.webkit.org/show_bug.cgi?id=189604> move the IOKit SPI forward
Source/WebCore/PAL:

declarations to PAL so that they can be shared by both WebKit, DumpRenderTree, and WebKitTestRunner.

No functionality changed. So, no new tests.

* PAL.xcodeproj/project.pbxproj:
* pal/spi/cocoa/IOKitSPI.h: Renamed from Tools/TestRunnerShared/spi/IOKitSPI.h.

Tools:

declarations to PAL so that they can be shared by WebKit, DumpRenderTree and WebKitTestRunner.

No functionality changed. So, no new tests.

* TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:
* TestRunnerShared/spi/UIKitTestSPI.h:
* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
* WebKitTestRunner/ios/HIDEventGenerator.mm:

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

12 months ago[Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address...
Hironori.Fujii@sony.com [Fri, 21 Sep 2018 02:49:50 +0000 (02:49 +0000)]
[Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
https://bugs.webkit.org/show_bug.cgi?id=189732

Reviewed by Per Arne Vollan.

Clang for Windows can't compile the MSVC workaround of
UNUSED_PARAM which has been introduced for Windows CE and Visual
Studio 10. I think it's safe just to remove it.

* wtf/Compiler.h: Removed the code for COMPILER(MSVC).

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

12 months ago[WHLSL] Metal code generation
commit-queue@webkit.org [Fri, 21 Sep 2018 02:06:43 +0000 (02:06 +0000)]
[WHLSL] Metal code generation
https://bugs.webkit.org/show_bug.cgi?id=187735

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-20
Reviewed by Myles C. Maxfield.

Adds support for generating Metal Shading Language from WHLSL. Clients
should include the file MetalCodegenAll.js and then call whlslToMsl
with their program source code to compile to Metal.

* WebGPUShadingLanguageRI/ArrayType.js:
(ArrayType.prototype.get arrayRefType): Adds the arrayRefType method to
all types to find the type of that expression when it is used in a
MakeArrayRefExpression.
* WebGPUShadingLanguageRI/MakeArrayRefExpression.js:
(MakeArrayRefExpression):
(MakeArrayRefExpression.prototype.get type): Uses the new arrayRefType
getter on all types to find the type of the expression.
* WebGPUShadingLanguageRI/Metal/MSLBackend.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLCodegenAll.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLCompileResult.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLConstexprEmitter.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLFunctionDeclaration.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLFunctionDefinition.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLFunctionForwardDeclaration.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLNameMangler.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLNativeFunctionCall.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLStatementEmitter.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLTypeAttributes.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLTypeAttributesMap.js: Added.
* WebGPUShadingLanguageRI/Metal/MSLTypeUnifier.js: Added.
* WebGPUShadingLanguageRI/Metal/TypeOf.js: Added.
* WebGPUShadingLanguageRI/Metal/WhlslToMsl.js: Added.
* WebGPUShadingLanguageRI/PropertyResolver.js:
* WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:
* WebGPUShadingLanguageRI/Test.js: Added awkward tests for the compiler
to generate code for.
(tests.incrementAndDecrement):
(tests.returnIntLiteralUint):
(tests.returnIntLiteralFloat):
(tests.nestedSubscriptWithArraysInStructs):
(tests.nestedSubscript):
(tests.lotsOfLocalVariables):
* WebGPUShadingLanguageRI/Type.js:
(Type.prototype.get arrayRefType): See above.

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

12 months agoWeb Inspector: remove Visual Style CSS details sidebar panel
drousso@apple.com [Fri, 21 Sep 2018 02:04:57 +0000 (02:04 +0000)]
Web Inspector: remove Visual Style CSS details sidebar panel
https://bugs.webkit.org/show_bug.cgi?id=189807

Reviewed by Joseph Pecoraro.

The Visual Style CSS details sidebar panel has been hidden behind an "experimental" setting
for almost a year.  It's time that we remove it.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Setting.js:
* UserInterface/Main.html:

* UserInterface/Views/ElementsTabContentView.js:
(WI.ElementsTabContentView):
* UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

* UserInterface/Images/AnimationPlayStatePaused.svg: Removed.
* UserInterface/Images/AnimationPlayStateRunning.svg: Removed.
* UserInterface/Images/ClearBoth.svg: Removed.
* UserInterface/Images/ClearLeft.svg: Removed.
* UserInterface/Images/ClearRight.svg: Removed.
* UserInterface/Images/FloatLeft.svg: Removed.
* UserInterface/Images/FloatRight.svg: Removed.
* UserInterface/Images/FontStyleItalic.svg: Removed.
* UserInterface/Images/FontStyleNormal.svg: Removed.
* UserInterface/Images/ListStylePositionInside.svg: Removed.
* UserInterface/Images/ListStylePositionOutside.svg: Removed.
* UserInterface/Images/TextAlignCenter.svg: Removed.
* UserInterface/Images/TextAlignJustify.svg: Removed.
* UserInterface/Images/TextAlignLeft.svg: Removed.
* UserInterface/Images/TextAlignRight.svg: Removed.
* UserInterface/Images/TextDecorationLineThrough.svg: Removed.
* UserInterface/Images/TextDecorationOverline.svg: Removed.
* UserInterface/Images/TextDecorationUnderline.svg: Removed.
* UserInterface/Images/TextTransformCapitalize.svg: Removed.
* UserInterface/Images/TextTransformLowercase.svg: Removed.
* UserInterface/Images/TextTransformUppercase.svg: Removed.
* UserInterface/Images/VisualStyleNone.svg: Removed.
* UserInterface/Images/VisualStylePropertyLinked.svg: Removed.
* UserInterface/Images/VisualStylePropertyUnlinked.svg: Removed.

* UserInterface/Views/VisualStyleBackgroundPicker.css: Removed.
* UserInterface/Views/VisualStyleBackgroundPicker.js: Removed.
* UserInterface/Views/VisualStyleBasicInput.js: Removed.
* UserInterface/Views/VisualStyleColorPicker.css: Removed.
* UserInterface/Views/VisualStyleColorPicker.js: Removed.
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css: Removed.
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js: Removed.
* UserInterface/Views/VisualStyleDetailsPanel.css: Removed.
* UserInterface/Views/VisualStyleDetailsPanel.js: Removed.
* UserInterface/Views/VisualStyleDetailsSidebarPanel.js: Removed.
* UserInterface/Views/VisualStyleFontFamilyListEditor.js: Removed.
* UserInterface/Views/VisualStyleFontFamilyTreeElement.js: Removed.
* UserInterface/Views/VisualStyleKeywordCheckbox.css: Removed.
* UserInterface/Views/VisualStyleKeywordCheckbox.js: Removed.
* UserInterface/Views/VisualStyleKeywordIconList.css: Removed.
* UserInterface/Views/VisualStyleKeywordIconList.js: Removed.
* UserInterface/Views/VisualStyleKeywordPicker.js: Removed.
* UserInterface/Views/VisualStyleNumberInputBox.css: Removed.
* UserInterface/Views/VisualStyleNumberInputBox.js: Removed.
* UserInterface/Views/VisualStylePropertyCombiner.js: Removed.
* UserInterface/Views/VisualStylePropertyEditor.css: Removed.
* UserInterface/Views/VisualStylePropertyEditor.js: Removed.
* UserInterface/Views/VisualStylePropertyEditorLink.css: Removed.
* UserInterface/Views/VisualStylePropertyEditorLink.js: Removed.
* UserInterface/Views/VisualStylePropertyNameInput.js: Removed.
* UserInterface/Views/VisualStyleRelativeNumberSlider.css: Removed.
* UserInterface/Views/VisualStyleRelativeNumberSlider.js: Removed.
* UserInterface/Views/VisualStyleSelectorSection.css: Removed.
* UserInterface/Views/VisualStyleSelectorSection.js: Removed.
* UserInterface/Views/VisualStyleSelectorTreeItem.css: Removed.
* UserInterface/Views/VisualStyleSelectorTreeItem.js: Removed.
* UserInterface/Views/VisualStyleTabbedPropertiesRow.css: Removed.
* UserInterface/Views/VisualStyleTabbedPropertiesRow.js: Removed.
* UserInterface/Views/VisualStyleTimingEditor.css: Removed.
* UserInterface/Views/VisualStyleTimingEditor.js: Removed.
* UserInterface/Views/VisualStyleURLInput.js: Removed.
* UserInterface/Views/VisualStyleUnitSlider.css: Removed.
* UserInterface/Views/VisualStyleUnitSlider.js: Removed.

* UserInterface/Controllers/VisualStyleCompletionsController.js: Removed.

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

12 months agoWeb Inspector: Styles Redesign: rework Computed panel to use Spreadsheet classes
drousso@apple.com [Fri, 21 Sep 2018 02:02:14 +0000 (02:02 +0000)]
Web Inspector: Styles Redesign: rework Computed panel to use Spreadsheet classes
https://bugs.webkit.org/show_bug.cgi?id=183627

Reviewed by Joseph Pecoraro.

* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WI.ComputedStyleDetailsPanel):
(WI.ComputedStyleDetailsPanel.prototype.refresh):
(WI.ComputedStyleDetailsPanel.prototype.applyFilter):
(WI.ComputedStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationEditorShowProperty):
(WI.ComputedStyleDetailsPanel.prototype.initialLayout):
(WI.ComputedStyleDetailsPanel.prototype.filterDidChange):
(WI.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged):
(WI.ComputedStyleDetailsPanel.prototype._handlePropertiesSectionCollapsedStateChanged):
(WI.ComputedStyleDetailsPanel.prototype._handleVariablesSectionCollapsedStateChanged):
(WI.ComputedStyleDetailsPanel.prototype._handleEditorFilterApplied):
(WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty.delegateShowProperty): Deleted.
(WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty): Deleted.
Replace CSSStyleDeclarationTextEditor with SpreadsheetCSSStyleDeclarationEditor.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
(WI.SpreadsheetCSSStyleDeclarationEditor):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set showsImplicitProperties):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set alwaysShowPropertyNames):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set propertyVisibilityMode):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set hideFilterNonMatchingProperties):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set sortPropertiesByName): Added.
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get propertiesToRender):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.highlightProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.applyFilter):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyShowProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get _propertiesToRender): Deleted.
Create setters for the "special" functionality required by the Computed panel and tie them
into the logic that determines what properties are rendered.

* UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._update):
Create go-to arrow if the property has a shorthand version or a source code location.

* UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
(WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
Don't reapply the filter after refreshing, as the current panel will handle applying it.

* UserInterface/Views/ComputedStyleDetailsPanel.css:
(.details-section:matches(.computed-style-properties, .computed-style-box-model):not(.collapsed) > :matches(.header, .content)):
(.computed-style-properties .property .go-to-arrow):
(.computed-style-properties .property:hover .go-to-arrow):
(.computed-style-properties.details-section): Deleted.
(.details-section > .content > .group > .row .CodeMirror-code pre .go-to-arrow): Deleted.
(.details-section > .content > .group > .row .CodeMirror-code pre:hover .go-to-arrow): Deleted.
(.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)): Deleted.
* UserInterface/Views/DetailsSection.css:
(.details-section.computed-style-properties:not(.collapsed) > .header): Deleted.
Consolidate Computed panel styles to it's respective CSS file.

* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
(.spreadsheet-style-declaration-editor):
(.spreadsheet-style-declaration-editor .property:matches(.implicit, .not-inherited) .content > *):
(.spreadsheet-style-declaration-editor .property.not-inherited .content > *): Deleted.
* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
(.spreadsheet-css-declaration):
* UserInterface/Views/Variables.css:
(:root):
Move `css-declaration` padding variables so they can be used by SpreadsheetCSSStyleDeclarationEditor
without a parent SpreadsheetCSSStyleDeclarationSection.

* UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
(.style-spreadsheet .style-rule): Deleted.
(.style-spreadsheet .selector-line): Deleted.
(.style-spreadsheet .selector): Deleted.
(.style-spreadsheet :matches(.selector .matched, .selector:focus)): Deleted.
(.style-spreadsheet .name): Deleted.
(.style-spreadsheet .value): Deleted.
(.style-spreadsheet :matches(.selector, .name, .value)): Deleted.
(.style-spreadsheet :matches(.selector, .name, .value):focus): Deleted.
(.style-spreadsheet .selector-inline): Deleted.
(.style-spreadsheet .property): Deleted.
(.style-spreadsheet .property-disabled,): Deleted.
(.style-spreadsheet .property-disabled :matches(.name, .value)): Deleted.
(.style-spreadsheet .styles-source): Deleted.
(.style-spreadsheet :matches(a, .node-link)): Deleted.
(.style-spreadsheet :matches(a, .node-link):hover): Deleted.
(.style-spreadsheet .declarations): Deleted.
(.style-spreadsheet input[type="checkbox"]): Deleted.
(.style-spreadsheet input[type="checkbox"]:not(:checked)): Deleted.
(.style-spreadsheet .declarations:hover input[type="checkbox"]): Deleted.
Drive-by fix: remove styles that don't apply to anything.

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

12 months ago[JSC] Heap::reportExtraMemoryVisited shows contention if we have many JSString
yusukesuzuki@slowstart.org [Fri, 21 Sep 2018 01:11:19 +0000 (01:11 +0000)]
[JSC] Heap::reportExtraMemoryVisited shows contention if we have many JSString
https://bugs.webkit.org/show_bug.cgi?id=189558

Reviewed by Mark Lam.

When running web-tooling-benchmark postcss test on Linux JSCOnly port, we get the following result in `perf report`.

    10.95%  AutomaticThread  libJavaScriptCore.so.1.0.0  [.] JSC::Heap::reportExtraMemoryVisited

This is because postcss produces bunch of JSString, which require reportExtraMemoryVisited calls in JSString::visitChildren.
And since reportExtraMemoryVisited attempts to update atomic counter, if we have bunch of marking threads, it becomes super contended.

This patch reduces the frequency of updating the atomic counter. Each SlotVisitor has per-SlotVisitor m_extraMemorySize counter.
And we propagate this value to the global atomic counter when rebalance happens.

We also reduce HeapCell::heap() access by using `vm.heap`.

* heap/SlotVisitor.cpp:
(JSC::SlotVisitor::didStartMarking):
(JSC::SlotVisitor::propagateExternalMemoryVisitedIfNecessary):
(JSC::SlotVisitor::drain):
(JSC::SlotVisitor::performIncrementOfDraining):
* heap/SlotVisitor.h:
* heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::reportExtraMemoryVisited):
* runtime/JSString.cpp:
(JSC::JSRopeString::resolveRopeToAtomicString const):
(JSC::JSRopeString::resolveRope const):
* runtime/JSString.h:
(JSC::JSString::finishCreation):
* wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::finishCreation):
* wasm/js/JSWebAssemblyMemory.cpp:
(JSC::JSWebAssemblyMemory::finishCreation):

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

12 months agoBring up queues for iOS 12
ryanhaddad@apple.com [Fri, 21 Sep 2018 00:28:23 +0000 (00:28 +0000)]
Bring up queues for iOS 12
https://bugs.webkit.org/show_bug.cgi?id=189683

Unreviewed infrastructure fix.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS12@2x.png: Renamed from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/iOS12@2x.png.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
(BubbleQueueServer): Move EWS bubbles to the iOS 12 section of the dashboard.

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

12 months agoBring up queues for iOS 12
ryanhaddad@apple.com [Thu, 20 Sep 2018 23:50:06 +0000 (23:50 +0000)]
Bring up queues for iOS 12
https://bugs.webkit.org/show_bug.cgi?id=189683

Reviewed by Aakash Jain.

* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS12.png: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS12Simulator.png: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS12Simulator@2x.png: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/iOS12@2x.png: Added.
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
(WebKitBuildbot):
* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
(table.queue-grid tr.platform.ios-simulator-12 img.logo):
(table.queue-grid tr.platform.ios-12 img.logo):
(table.queue-grid tr.platform.ios-simulator-11 img.logo): Deleted.
(table.queue-grid tr.platform.ios-11 img.logo): Deleted.
* BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
* BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
(_should_file_trigger_build):
* BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:
(ShouldBuildTest):
(ShouldBuildTest.test_should_build):

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

12 months agoAdd functions to measure memory footprint to JSC
msaboff@apple.com [Thu, 20 Sep 2018 23:46:43 +0000 (23:46 +0000)]
Add functions to measure memory footprint to JSC
https://bugs.webkit.org/show_bug.cgi?id=189768

Reviewed by Saam Barati.

Rolling this back in.

Provide system memory metrics for the current process to aid in memory reduction measurement and
tuning using native JS tests.

* jsc.cpp:
(MemoryFootprint::now):
(MemoryFootprint::resetPeak):
(GlobalObject::finishCreation):
(JSCMemoryFootprint::JSCMemoryFootprint):
(JSCMemoryFootprint::createStructure):
(JSCMemoryFootprint::create):
(JSCMemoryFootprint::finishCreation):
(JSCMemoryFootprint::addProperty):
(functionResetMemoryPeak):

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

12 months agoContinued test gardening after r236236
tsavell@apple.com [Thu, 20 Sep 2018 23:19:05 +0000 (23:19 +0000)]
Continued test gardening after r236236
https://bugs.webkit.org/show_bug.cgi?id=189641

Unreviewed test gardening

* TestExpectations:

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

12 months agoAllow additional plug-ins to run unsandboxed
youenn@apple.com [Thu, 20 Sep 2018 23:17:35 +0000 (23:17 +0000)]
Allow additional plug-ins to run unsandboxed
https://bugs.webkit.org/show_bug.cgi?id=189791
<rdar://problem/44628127>

Reviewed by Brent Fulgham.

* UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
(WebKit::PluginInfoStore::shouldAllowPluginToRunUnsandboxed):

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

12 months agoAdopt safe-area-insets on ImageDocument
benjamin@webkit.org [Thu, 20 Sep 2018 23:11:56 +0000 (23:11 +0000)]
Adopt safe-area-insets on ImageDocument
https://bugs.webkit.org/show_bug.cgi?id=189774

Reviewed by Tim Horton.
rdar://problem/44624432

By having the safe-area insets on the image, we ensure that they only
grow the document if there is not enough space. This also ensures the image
does not have parts under UI elements.

* html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
(WebCore::ImageDocument::imageUpdated):

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

12 months agoInjectedBundle parameters often need initialization function called before unarchiving
bfulgham@apple.com [Thu, 20 Sep 2018 23:11:19 +0000 (23:11 +0000)]
InjectedBundle parameters often need initialization function called before unarchiving
https://bugs.webkit.org/show_bug.cgi?id=189709
<rdar://problem/44573653>

Reviewed by Chris Dumez.

Handle the case where the InjectedBundle parameters do not successfully decode because they contain
an unexpected class from the embedding program. If this happens, try decoding the bundle parameters
after the bundle initialiation function runs, which gives the embedding program the opportunity to
register additional classes that are safe for serialization.

Create a new 'decodeBundleParameters' method that contains the logic that used to live in 'initialize'.
This new method returns 'true' if the serialization was successful, otherwise it returns false.

Revise 'initialize' to call this new method and check the return value. If it fails, try decoding the
bundle parameters after the bundle's initialization function is called.

* WebProcess/InjectedBundle/InjectedBundle.h:
* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::initialize): Use the new method.
(WebKit::InjectedBundle::decodeBundleParameters): Added.
(WebKit::InjectedBundle::setBundleParameters): Use 'decodeObjectOfClasses' with the more complete
'classesForCoder' method to unarchive the passed bundle parameters, rather than the
NSDictionary-specific method, since InjectedBundles often encode other types of objects, and the
NSDictionary object may itself hold other kinds of objects.

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

12 months agoRelease assert under RenderView::pageOrViewLogicalHeight
zalan@apple.com [Thu, 20 Sep 2018 22:27:28 +0000 (22:27 +0000)]
Release assert under RenderView::pageOrViewLogicalHeight
https://bugs.webkit.org/show_bug.cgi?id=189798
<rdar://problem/43659749>

Reviewed by Simon Fraser.

Source/WebCore:

Only the mainframe's render view is sized to the page while printing.
Use the matching check (see RenderView::layout) when accessing m_pageLogicalSize.

Test: printing/crash-while-formatting-subframe-for-printing.html

* rendering/RenderView.cpp:
(WebCore::RenderView::pageOrViewLogicalHeight const):

LayoutTests:

* printing/crash-while-formatting-subframe-for-printing-expected.txt: Added.
* printing/crash-while-formatting-subframe-for-printing.html: Added.

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

12 months agoREGRESSION(r196265): WKWebView fires mouseover, mouseenter, and mouseleave events...
sihui_liu@apple.com [Thu, 20 Sep 2018 22:05:49 +0000 (22:05 +0000)]
REGRESSION(r196265): WKWebView fires mouseover, mouseenter, and mouseleave events even when it's in a background window
https://bugs.webkit.org/show_bug.cgi?id=187545
<rdar://problem/42401575>

Reviewed by Ryosuke Niwa.

Source/WebCore:

When the window is not active, we should only update the scrollbar for mouse events. GTK
apps have different expectation on this behavior.

Test: fast/events/inactive-window-no-mouse-event.html

* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::shouldSendMouseEventsToInactiveWindows const):
* page/EventHandler.h:

LayoutTests:

* TestExpectations:
* fast/events/inactive-window-no-mouse-event-expected.txt: Added.
* fast/events/inactive-window-no-mouse-event.html: Added.
* platform/mac-wk2/TestExpectations:

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

12 months ago[Win] TestRunner::queueLoad() fails to generate correct url for some urls.
Basuke.Suzuki@sony.com [Thu, 20 Sep 2018 21:36:57 +0000 (21:36 +0000)]
[Win] TestRunner::queueLoad() fails to generate correct url for some urls.
https://bugs.webkit.org/show_bug.cgi?id=189679

Reviewed by Fujii Hironori.

Tools:

Replace the implementation with correct API call.

* DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::queueLoad): Call UrlCombineW.

LayoutTests:

* platform/wincairo/TestExpectations:

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

12 months agoUnreviewed, rolling out r235976.
achristensen@apple.com [Thu, 20 Sep 2018 21:33:31 +0000 (21:33 +0000)]
Unreviewed, rolling out r235976.

Broke ARM

Reverted changeset:

"Use a Variant instead of a union in CSSSelector"
https://bugs.webkit.org/show_bug.cgi?id=188559
https://trac.webkit.org/changeset/235976

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

12 months ago[iOS] Layout test fast/gradients/conic-gradient-alpha.html is failing
ryanhaddad@apple.com [Thu, 20 Sep 2018 21:32:46 +0000 (21:32 +0000)]
[iOS] Layout test fast/gradients/conic-gradient-alpha.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189802

Unreviewed test gardening.

* platform/ios-12/TestExpectations: Mark test as failing.

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

12 months agoREGRESSION (r235962-r235963): Layout Test animations/suspend-resume-animation-events...
ryanhaddad@apple.com [Thu, 20 Sep 2018 21:32:43 +0000 (21:32 +0000)]
REGRESSION (r235962-r235963): Layout Test animations/suspend-resume-animation-events.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189607

Unreivewed test gardening.

* platform/mac-wk2/TestExpectations: Mark test as flaky.

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

12 months agoEnable Modern EME by default
jer.noble@apple.com [Thu, 20 Sep 2018 21:27:33 +0000 (21:27 +0000)]
Enable Modern EME by default
https://bugs.webkit.org/show_bug.cgi?id=189794

Reviewed by Jon Lee.

* Shared/WebPreferences.yaml:

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

12 months agoWebGL 2 updated test expectations.
realdawei@apple.com [Thu, 20 Sep 2018 21:11:36 +0000 (21:11 +0000)]
WebGL 2 updated test expectations.
https://bugs.webkit.org/show_bug.cgi?id=189686

Unreviewed, skip tests that are timing out.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-20

* platform/ios-wk2/TestExpectations:

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

12 months ago[GTK][WPE] Make sure MediaDeviceEnabled and PeerConnectionEnabled are always synced...
commit-queue@webkit.org [Thu, 20 Sep 2018 20:47:28 +0000 (20:47 +0000)]
[GTK][WPE] Make sure MediaDeviceEnabled and PeerConnectionEnabled are always synced with enable-media-stream
https://bugs.webkit.org/show_bug.cgi?id=188704

By default m_isMediaDevicesEnabled and m_isScreenCaptureEnabled are false but
m_isMediaStreamEnabled is true meaning that in the WPE minibrowser getUserMedia
was disabled even if we explicitly set `"enable-media-stream", TRUE`.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-09-20
Reviewed by Michael Catanzaro.

* UIProcess/API/glib/WebKitSettings.cpp:
(webKitSettingsConstructed):

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

12 months agoFix 'border' serialization with both common and uncommon values
commit-queue@webkit.org [Thu, 20 Sep 2018 20:43:36 +0000 (20:43 +0000)]
Fix 'border' serialization with both common and uncommon values
https://bugs.webkit.org/show_bug.cgi?id=189597

Patch by Oriol Brufau <obrufau@igalia.com> on 2018-09-20
Reviewed by Simon Fraser.

Source/WebCore:

Remove CommonValueMode enum and make borderPropertyValue always return null
when there are uncommon values (the previous ReturnNullOnUncommonValues mode).

Test: fast/css/getPropertyValue-border.html
Test: fast/dom/css-shorthand-common-value.html

* css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::borderPropertyValue const):
(WebCore::StyleProperties::asText const):
* css/StyleProperties.h:

LayoutTests:

Fix existing tests to check that 'border' serializes to empty string if there
are uncommon values.

* fast/css/getPropertyValue-border-expected.txt:
* fast/css/getPropertyValue-border.html:
* fast/dom/css-shorthand-common-value-expected.txt:
* fast/dom/css-shorthand-common-value.html:

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

12 months agoWebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
realdawei@apple.com [Thu, 20 Sep 2018 20:41:16 +0000 (20:41 +0000)]
WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
https://bugs.webkit.org/show_bug.cgi?id=189641

Unreviewed test gardening.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-20

* TestExpectations: Mark tests as Failure Slow.
* platform/mac/TestExpectations:

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

12 months agoVersioning.
kocsen_chung@apple.com [Thu, 20 Sep 2018 20:38:16 +0000 (20:38 +0000)]
Versioning.

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

12 months ago[WPE] fails to build on ARM arches complaining about undefined reference to `epoxy_eg...
mcatanzaro@igalia.com [Thu, 20 Sep 2018 20:32:02 +0000 (20:32 +0000)]
[WPE] fails to build on ARM arches complaining about undefined reference to `epoxy_eglMakeCurrent'
https://bugs.webkit.org/show_bug.cgi?id=189556

Reviewed by Konstantin Tokarev.

This is only a speculative build fix as I didn't attempt to reproduce. Explicitly link to
libepoxy.

* wpe/backends/CMakeLists.txt:

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

12 months agoSynchronize CSSOM View test suite against upstream WPT
commit-queue@webkit.org [Thu, 20 Sep 2018 19:31:29 +0000 (19:31 +0000)]
Synchronize CSSOM View test suite against upstream WPT
https://bugs.webkit.org/show_bug.cgi?id=189787

Patch by Frederic Wang <fwang@igalia.com> on 2018-09-20
Reviewed by Antonio Gomes.

LayoutTests/imported/w3c:

* web-platform-tests/css/cssom-view/META.yml: Added.
* web-platform-tests/css/cssom-view/OWNERS: Removed.
* web-platform-tests/css/cssom-view/cssom-getBoundingClientRect-vertical-rl-expected.html: Added.
* web-platform-tests/css/cssom-view/cssom-getBoundingClientRect-vertical-rl.html: Added.
* web-platform-tests/css/cssom-view/cssom-view-window-screen-interface-expected.txt:
* web-platform-tests/css/cssom-view/cssom-view-window-screen-interface.html:
* web-platform-tests/css/cssom-view/dom-element-scroll-expected.txt: Added.
* web-platform-tests/css/cssom-view/dom-element-scroll.html: Added.
* web-platform-tests/css/cssom-view/elementFromPoint-mixed-font-sizes-expected.txt: Added.
* web-platform-tests/css/cssom-view/elementFromPoint-mixed-font-sizes.html: Added.
* web-platform-tests/css/cssom-view/interfaces-expected.txt:
* web-platform-tests/css/cssom-view/interfaces.html:
* web-platform-tests/css/cssom-view/media-query-list-interface-expected.txt: Removed.
* web-platform-tests/css/cssom-view/media-query-list-interface.xht: Removed.
* web-platform-tests/css/cssom-view/resources/w3c-import.log:
* web-platform-tests/css/cssom-view/scroll-behavior-default-css-expected.txt: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-default-css.html: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-element-expected.txt: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-element.html: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root-expected.txt: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root.html: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window-expected.txt: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window.html: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-scrollintoview-nested-expected.txt: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-scrollintoview-nested.html: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-smooth-positions-expected.txt: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-smooth-positions.html: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-subframe-root-expected.txt: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-subframe-root.html: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-subframe-window-expected.txt: Added.
* web-platform-tests/css/cssom-view/scroll-behavior-subframe-window.html: Added.
* web-platform-tests/css/cssom-view/scrollIntoView-vertical-rl-writing-mode-expected.txt: Added.
* web-platform-tests/css/cssom-view/scrollIntoView-vertical-rl-writing-mode.html: Added.
* web-platform-tests/css/cssom-view/support/scroll-behavior.js: Added.
(observeScrolling):
(waitForScrollEnd):
(scrollNode):
(scrollWindow):
* web-platform-tests/css/cssom-view/support/support/w3c-import.log:
* web-platform-tests/css/cssom-view/support/w3c-import.log:
* web-platform-tests/css/cssom-view/table-client-props-expected.txt: Added.
* web-platform-tests/css/cssom-view/table-client-props.html: Added.
* web-platform-tests/css/cssom-view/table-offset-props-expected.txt: Added.
* web-platform-tests/css/cssom-view/table-offset-props.html: Added.
* web-platform-tests/css/cssom-view/table-scroll-props-expected.txt: Added.
* web-platform-tests/css/cssom-view/table-scroll-props.html: Added.
* web-platform-tests/css/cssom-view/w3c-import.log:
* web-platform-tests/css/cssom-view/window-interface-expected.txt: Removed.
* web-platform-tests/css/cssom-view/window-interface.xht: Removed.

LayoutTests:

* tests-options.json: Mark smooth scrolling tests as slow.
* ios/TestExpectations: Mark as failing since frames are not scrollable on iOS.

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

12 months agoImplement CSS Custom Properties and Values Skeleton
commit-queue@webkit.org [Thu, 20 Sep 2018 18:57:56 +0000 (18:57 +0000)]
Implement CSS Custom Properties and Values Skeleton
https://bugs.webkit.org/show_bug.cgi?id=189694

Patch by Justin Michaud <justin_michaud@apple.com> on 2018-09-20
Reviewed by Simon Fraser.

Source/WebCore:

Add feature flag, CSS.registerProperty binding and registered property set in Document.h
for the css custom properties and values api.

Test: css-properties-values-api/registerProperty.html

* CMakeLists.txt:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSRegisteredCustomProperty.h: Added.
* css/DOMCSSCustomPropertyDescriptor.h: Added.
* css/DOMCSSCustomPropertyDescriptor.idl: Added.
* css/DOMCSSNamespace.h:
* css/DOMCSSRegisterCustomProperty.cpp: Added.
(WebCore::DOMCSSRegisterCustomProperty::registerProperty):
(WebCore::DOMCSSRegisterCustomProperty::from):
(WebCore::DOMCSSRegisterCustomProperty::supplementName):
* css/DOMCSSRegisterCustomProperty.h: Added.
* css/DOMCSSRegisterCustomProperty.idl: Added.
* css/parser/CSSParserContext.cpp:
* dom/Document.cpp:
(WebCore::Document::registerCSSProperty):
* dom/Document.h:
* features.json:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setCSSCustomPropertiesAndValuesEnabled):
(WebCore::RuntimeEnabledFeatures::cssCustomPropertiesAndValuesEnabled const):

Source/WebKit:

Add feature flag for CSS custom properties and values api

* Shared/WebPreferences.yaml:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

LayoutTests:

Add test to check that the CSS.registerProperty method exists.

* css-custom-properties-api/registerProperty-expected.txt: Added.
* css-custom-properties-api/registerProperty.html: Added.
* platform/ios-wk1/TestExpectations:
* platform/mac-wk1/TestExpectations:

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

12 months agoWebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
realdawei@apple.com [Thu, 20 Sep 2018 18:23:06 +0000 (18:23 +0000)]
WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
https://bugs.webkit.org/show_bug.cgi?id=189641

Unreviewed, marked tests as failing.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-20

* TestExpectations:

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

12 months ago[iOS] Support testing more hardware special keys
dbates@webkit.org [Thu, 20 Sep 2018 18:20:02 +0000 (18:20 +0000)]
[iOS] Support testing more hardware special keys
https://bugs.webkit.org/show_bug.cgi?id=189793

Reviewed by Simon Fraser.

Tools:

* TestRunnerShared/spi/IOKitSPI.h: Add more SPI constants.
* WebKitTestRunner/ios/HIDEventGenerator.mm:
(keyCodeForDOMFunctionKey): Extracted out logic from hidUsageCodeForCharacter() to return the
key code for the F1, F2, ..., F12 keys and extended the code to compute the key code for the
F13, F14, ..., F24 keys.
(hidUsageCodeForCharacter): Modified to call keyCodeForDOMFunctionKey().

LayoutTests:

For now, many of the DOM keydown and keyup events for special hardware keys are wrong.
We will fix this up in a subsequent commit(s).

* fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt: Added.
* fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html: Added.

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

12 months agoTemporarily move fullscreen back to experimental features
dino@apple.com [Thu, 20 Sep 2018 18:07:39 +0000 (18:07 +0000)]
Temporarily move fullscreen back to experimental features
https://bugs.webkit.org/show_bug.cgi?id=189770
<rdar://problem/44619282>

Revert this change now that there is a commit to cherry-pick.

* Shared/WebPreferences.yaml:

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

12 months agoUnreviewed, remove accidentally-committed debugging changes from flatpakutils script
mcatanzaro@igalia.com [Thu, 20 Sep 2018 17:59:25 +0000 (17:59 +0000)]
Unreviewed, remove accidentally-committed debugging changes from flatpakutils script

Aaaaaah maybe this is why changes are supposed to be reviewed.

* flatpak/flatpakutils.py:
(WebkitFlatpak.clean_args):

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

12 months agoJS bindings generator should support EnabledAtRuntime for static methods
commit-queue@webkit.org [Thu, 20 Sep 2018 17:31:43 +0000 (17:31 +0000)]
JS bindings generator should support EnabledAtRuntime for static methods
https://bugs.webkit.org/show_bug.cgi?id=189729

Patch by Justin Michaud <justin_michaud@apple.com> on 2018-09-20
Reviewed by Chris Dumez.

Add support for EnabledAtRuntime to static methods in the JS bindings
code generator.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateRuntimeEnableConditionalStringForExposed):
(GenerateRuntimeEnableConditionalString):
(GetRuntimeEnabledStaticProperties):
(GenerateConstructorHelperMethods):
* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::JSTestGlobalObjectConstructor::initializeProperties):
(WebCore::JSTestGlobalObject::finishCreation):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStatic):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::initializeProperties):
(WebCore::jsTestObjConstructorEnabledAtRuntimeAttributeStaticGetter):
(WebCore::jsTestObjConstructorEnabledAtRuntimeAttributeStatic):
(WebCore::setJSTestObjConstructorEnabledAtRuntimeAttributeStaticSetter):
(WebCore::setJSTestObjConstructorEnabledAtRuntimeAttributeStatic):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStatic):
* bindings/scripts/test/TestGlobalObject.idl:
* bindings/scripts/test/TestObj.idl:

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

12 months ago[WebVTT] Update the parser according to the new region syntax.
pvollan@apple.com [Thu, 20 Sep 2018 17:07:03 +0000 (17:07 +0000)]
[WebVTT] Update the parser according to the new region syntax.
https://bugs.webkit.org/show_bug.cgi?id=189767

Reviewed by Eric Carlson.

Source/WebCore:

The majority of the code added in this patch is adopted from the Chromium project, which has added
support for the new region syntax. The complete parser specification can be found at
https://w3c.github.io/webvtt/#file-parsing. One small difference in behavior is that the new parser
will not add regions with empty id.

No new tests, covered by existing tests.

* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::getNewRegions):
(WebCore::WebVTTParser::parse):
(WebCore::WebVTTParser::collectRegionSettings):
(WebCore::WebVTTParser::collectWebVTTBlock):
(WebCore::WebVTTParser::checkAndRecoverCue):
(WebCore::WebVTTParser::checkAndCreateRegion):
(WebCore::WebVTTParser::checkAndStoreRegion):
(WebCore::WebVTTParser::collectMetadataHeader): Deleted.
(WebCore::WebVTTParser::createNewRegion): Deleted.
* html/track/WebVTTParser.h:

LayoutTests:

* media/track/captions-webvtt/captions-regions.vtt:
* media/track/captions-webvtt/header-regions.vtt:
* media/track/regions-webvtt/vtt-region-parser-expected.txt:
* media/track/regions-webvtt/vtt-region-parser.html:

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

12 months ago[GStreamer][MSE] Add a default sample duration
aboya@igalia.com [Thu, 20 Sep 2018 16:46:58 +0000 (16:46 +0000)]
[GStreamer][MSE] Add a default sample duration
https://bugs.webkit.org/show_bug.cgi?id=189788

Some WebM files don't provide sample durations, so we need to provide
a safe default in order for them to be playable.

Reviewed by Michael Catanzaro.

* platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

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

12 months agoUnreviewed, manually rollout our switch to master runtime
mcatanzaro@igalia.com [Thu, 20 Sep 2018 16:32:14 +0000 (16:32 +0000)]
Unreviewed, manually rollout our switch to master runtime

Phil wants html5-codecs, which aren't available yet here. Let's switch back to 3.28 in the
meantime, where we were already building GStreamer ourselves anyway. But use an updated
SDK revision.

* flatpak/files/httpd-autogen.sh: Added.
* flatpak/flatpakutils.py:
(WebkitFlatpak.clean_args):
* flatpak/org.webkit.GTK.yaml:
* flatpak/org.webkit.WebKit.yaml:
* flatpak/patches/httpd-0001-configure-use-pkg-config-for-PCRE-detection.patch: Added.
* flatpak/patches/libgcrypt-0001-Use-pkg-config-to-detect-gpg-error.patch: Added.

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

12 months agoUnreviewed crash fix after r236226.
cdumez@apple.com [Thu, 20 Sep 2018 16:13:42 +0000 (16:13 +0000)]
Unreviewed crash fix after r236226.

We need to protect |this| in WebProcessProxy::requestTermination().

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):

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

12 months ago[WPE][GTK] webkit-flatpak intercepts --help for other commands
commit-queue@webkit.org [Thu, 20 Sep 2018 16:12:30 +0000 (16:12 +0000)]
[WPE][GTK] webkit-flatpak intercepts --help for other commands
https://bugs.webkit.org/show_bug.cgi?id=189058

The approach of run_in_sandbox_if_available is that we basically have the
same set of arguments to setup the sandbox (ie. port name, build type, etc...)
and we can pass those args first to setup the flatpak launcher object
and then to the underlying script. That doesn't work well with the `--help` argument
as once processed it 1. prints the help (which make no sense to the user of the calling script)
2. exits the app - The solution is to just make sure that `--help` is not used when using
flatpakutils from any script that is not `webkit-flatpak` itself.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-09-20
Reviewed by Michael Catanzaro.

* flatpak/flatpakutils.py:
(WebkitFlatpak.load_from_args):
(run_in_sandbox_if_available):

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

12 months agoUnreviewed, rolling out r236235.
ryanhaddad@apple.com [Thu, 20 Sep 2018 16:10:31 +0000 (16:10 +0000)]
Unreviewed, rolling out r236235.

Breaks internal builds.

Reverted changeset:

"Add functions to measure memory footprint to JSC"
https://bugs.webkit.org/show_bug.cgi?id=189768
https://trac.webkit.org/changeset/236235

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

12 months ago[macOS Sierra] Layout Test http/wpt/cache-storage/cache-put-keys.https.any.worker...
ryanhaddad@apple.com [Thu, 20 Sep 2018 16:03:50 +0000 (16:03 +0000)]
[macOS Sierra] Layout Test http/wpt/cache-storage/cache-put-keys.https.any.worker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=184204

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations: Mark test as flaky and remove an entry for a test that doesn't exist in the repository anymore.

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

12 months ago[MSE] Use some tolerance when deciding whether a frame should be appended to the...
aboya@igalia.com [Thu, 20 Sep 2018 14:08:18 +0000 (14:08 +0000)]
[MSE] Use some tolerance when deciding whether a frame should be appended to the decode queue
https://bugs.webkit.org/show_bug.cgi?id=189782

Reviewed by Xabier Rodriguez-Calvar.

Ideally, container formats should use exact timestamps and frames
should not overlap. Unfortunately, there are lots of files out there
where this is not always the case.

This is particularly a problem in WebM, where timestamps are expressed
in a power of 10 timescale, which forces some rounding.

This patch makes SourceBuffer allow frames with a small overlaps
(<=1ms) as those usually found in WebM. 1 ms is chosen because it's
the default time scale of WebM files.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

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

13 months agoREGRESSION (PSON): White or Black flash occurs when process swapping on navigation...
antti@apple.com [Thu, 20 Sep 2018 11:49:55 +0000 (11:49 +0000)]
REGRESSION (PSON): White or Black flash occurs when process swapping on navigation on Mac
https://bugs.webkit.org/show_bug.cgi?id=189663
<rdar://problem/44184955>

Reviewed by Geoff Garen and Chris Dumez.

We need to keep the layer tree of the previous page alive and visible until we have something
to render on the new page. With PSON on Mac this means that we should keep displaying the
layer tree from the previus process.

This patch moves the management of 'attaching' the drawing area (Mac only concept) from web process
to UI process. This is when we parent the layer tree to the view root layer. It also ensures that
the layer tree is not deleted too early on process swap and that it still eventually gets deleted.

* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::attachInWebProcess):
* UIProcess/SuspendedPageProxy.cpp:
(WebKit::messageNamesToIgnoreWhileSuspended):
(WebKit::SuspendedPageProxy::tearDownDrawingAreaInWebProcess):

We no longer tear down drawing area (layer tree) for suspended pages automatically. Send an explicit
message for it.

* UIProcess/SuspendedPageProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCompletePageTransition):

Attach the drawing area if appropriate.

(WebKit::WebPageProxy::resetStateAfterProcessExited):

Call PageClien::processWillSwap instead of processDidExit when appropriate.

(WebKit::WebPageProxy::enterAcceleratedCompositingMode):

This is called when we have switched to the new layer tree.
Tear down the drawing area in the previus process.

* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::processWillSwap):

On iOS this just call processDidExit for now.

* UIProcess/mac/PageClientImplMac.h:
* UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::processWillSwap):
(WebKit::PageClientImpl::processDidExit):

Add processWillSwap separately from processDidExit. They are currently the same
except processWillSwap doesn't clear the root layer.

* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::attachInWebProcess):

Send a message to the web process to attach the drawing area.

* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::attach):
(WebKit::DrawingArea::attachDrawingArea): Deleted.

Rename to be less redundant.

* WebProcess/WebPage/DrawingArea.messages.in:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::reinitializeWebPage):

Don't attach drawing area automatically. It will be done by a message from UI process.

(WebKit::WebPage::setLayerTreeStateIsFrozen):

Layer tree is always frozen in a suspended process (if it exists).

(WebKit::WebPage::didReceivePolicyDecision):

Suspend immediately when receiving policy decision to avoid flash on 'about:blank' loading.

(WebKit::WebPage::didStartPageTransition):
(WebKit::WebPage::didCompletePageTransition):

Notify UI process of transition completion.

(WebKit::WebPage::setIsSuspended):
(WebKit::WebPage::tearDownDrawingAreaForSuspend):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):

Don't attach drawing area automatically. It will be done by a message from UI process.

(WebKit::TiledCoreAnimationDrawingArea::attach):
(WebKit::TiledCoreAnimationDrawingArea::attachDrawingArea): Deleted.

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

13 months ago[EME] Add WebM sanitization
commit-queue@webkit.org [Thu, 20 Sep 2018 11:22:00 +0000 (11:22 +0000)]
[EME] Add WebM sanitization
https://bugs.webkit.org/show_bug.cgi?id=189740

Patch by Yacine Bandou <yacine.bandou@softathome.com> on 2018-09-20
Reviewed by Xabier Rodriguez-Calvar.

This patch adds support for sanitizing the WebM initialization data,
ensures there are no bogus values.
See https://www.w3.org/TR/encrypted-media/#dom-mediakeysession-generaterequest.

Tests: imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https.html

* Modules/encryptedmedia/InitDataRegistry.cpp:
(WebCore::sanitizeWebM): Added implementation, check if the initialization data doesn't empty and its size
should be less than 64KB, return the buffer copy if it is ok, otherwise a nullptr.
(WebCore::extractKeyIDsWebM): Added implementation.

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

13 months ago[GStreamer] Utilities cleanups
philn@webkit.org [Thu, 20 Sep 2018 09:18:01 +0000 (09:18 +0000)]
[GStreamer] Utilities cleanups
https://bugs.webkit.org/show_bug.cgi?id=189699

Reviewed by Xabier Rodriguez-Calvar.

The GstMappedBuffer now has a move constructor so that it can be easily
reused in the webaudiosrc element. The now-unused corresponding
buffer-mapping utilities are removed from the code-base.

The HTTP source element used to handle a GstBuffer in its private
structure but this is no longer required since data is now pushed
in chunks, see bug #182829.

* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcLoop):
* platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::createGstBuffer): Deleted.
(WebCore::createGstBufferForData): Deleted.
(WebCore::getGstBufferDataPointer): Deleted.
(WebCore::mapGstBuffer): Deleted.
(WebCore::unmapGstBuffer): Deleted.
* platform/graphics/gstreamer/GStreamerCommon.h:
(WebCore::GstMappedBuffer::create): New method returning a
reference to a newly created GstMappedBuffer instance.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcStop): Remove reference to unused GstBuffer.
(CachedResourceStreamingClient::dataReceived): Ditto.

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

13 months agoFix crash under FontCache::purgeInactiveFontData() when a memory warning fires
simon.fraser@apple.com [Thu, 20 Sep 2018 09:00:15 +0000 (09:00 +0000)]
Fix crash under FontCache::purgeInactiveFontData() when a memory warning fires
https://bugs.webkit.org/show_bug.cgi?id=189722
rdar://problem/44182860

Reviewed by Myles C. Maxfield.

Hashing of FontPlatformData for cachedFonts() is somewhat broken because CFEqual() on CTFont
can return false when the fonts are actually the same, and have the same CFHash(). This
can result in multiple entries in cachedFonts() with the same Font.

Then in FontCache::purgeInactiveFontData(), the loop that appends fonts to fontsToDelete
gets the value by reference, and WTFMoves it into fontsToDelete. This nulls out all
the entries sharing the same value, leaving null entries in the hash table.
We later crash at font->hasOneRef() when using one of those null entries.

Fix by making a copy of the RefPtr<Font> in the loop, so the WTFMove doesn't nuke
the hash table entries. The entries will get removed at cachedFonts().remove() lower down.

* platform/graphics/FontCache.cpp:
(WebCore::FontCache::purgeInactiveFontData):

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

13 months ago[Win][Clang] JITMathIC.h: error: missing 'template' keyword prior to dependent templa...
Hironori.Fujii@sony.com [Thu, 20 Sep 2018 07:43:15 +0000 (07:43 +0000)]
[Win][Clang] JITMathIC.h: error: missing 'template' keyword prior to dependent template name 'retagged'
https://bugs.webkit.org/show_bug.cgi?id=189730

Reviewed by Saam Barati.

Clang for Windows can't compile the workaround for MSVC quirk in generateOutOfLine.

* jit/JITMathIC.h:
(generateOutOfLine): Append "&& !COMPILER(CLANG)" to "#if COMPILER(MSVC)".

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

13 months ago[Web Animations] Provide a way to query accelerated animations for internal testing
graouts@webkit.org [Thu, 20 Sep 2018 07:33:42 +0000 (07:33 +0000)]
[Web Animations] Provide a way to query accelerated animations for internal testing
https://bugs.webkit.org/show_bug.cgi?id=189762

Reviewed by Dean Jackson.

Expose a new internals.acceleratedAnimationsForElement(element) method to allow layout tests to query the current list
of accelerated animations for a given element. Currently only the animated property and animation speed are exposed, which
will allow us to identify missing, running and paused accelerated animations.

* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::acceleratedAnimationsForElement const):
* animation/DocumentTimeline.h:
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::acceleratedAnimationsForTesting const):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
* platform/graphics/ca/GraphicsLayerCA.h:
* testing/Internals.cpp:
(WebCore::Internals::acceleratedAnimationsForElement):
* testing/Internals.h:
* testing/Internals.idl:

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

13 months agoUnreviewed. Update GTK+ library versions after r235362.
carlosgc@webkit.org [Thu, 20 Sep 2018 07:21:05 +0000 (07:21 +0000)]
Unreviewed. Update GTK+ library versions after r235362.

Project version number was updated without bumping the library versions too.

* Source/cmake/OptionsGTK.cmake:

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

13 months ago[GTK] Always prints in portrait when landscape is requested
carlosgc@webkit.org [Thu, 20 Sep 2018 07:16:44 +0000 (07:16 +0000)]
[GTK] Always prints in portrait when landscape is requested
https://bugs.webkit.org/show_bug.cgi?id=189543

Patch by Tomas Popela <tpopela@redhat.com> on 2018-09-20
Reviewed by Michael Catanzaro.

We have to change the surface size based on the requested orientation.
Otherwise only portrait will be printed as it's hardcoded.

* WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:

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

13 months agoUnreviewed. Add W3C imported tests to the MSEEME watchlist.
calvaris@igalia.com [Thu, 20 Sep 2018 07:06:27 +0000 (07:06 +0000)]
Unreviewed. Add W3C imported tests to the MSEEME watchlist.

* Scripts/webkitpy/common/config/watchlist:

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

13 months agoUnreviewed. Fix the Streams API watchlist.
calvaris@igalia.com [Thu, 20 Sep 2018 07:03:23 +0000 (07:03 +0000)]
Unreviewed. Fix the Streams API watchlist.

* Scripts/webkitpy/common/config/watchlist:

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

13 months ago[EME][WPE] Add WebM initData in the expected result of clearkey-generate-request...
commit-queue@webkit.org [Thu, 20 Sep 2018 06:42:12 +0000 (06:42 +0000)]
[EME][WPE] Add WebM initData in the expected result of clearkey-generate-request-disallowed-input test
https://bugs.webkit.org/show_bug.cgi?id=189747

Patch by Yacine Bandou <yacine.bandou@softathome.com> on 2018-09-19
Reviewed by Xabier Rodriguez-Calvar.

Since r235610 the WebM initData is supported.

* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https-expected.txt:
Add an expcted result for WebM initData.

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

13 months agoImprove node statistics for rare data
rniwa@webkit.org [Thu, 20 Sep 2018 06:14:59 +0000 (06:14 +0000)]
Improve node statistics for rare data
https://bugs.webkit.org/show_bug.cgi?id=189775

Reviewed by Simon Fraser.

Report reasons we created NodeRareData and ElementRareData in node statistics.

Added NodeRareData::useTypes and ElementRareData::useTypes which returns OptionSet<NodeRareData::UseType>
indicating which instance member of the rare data is currently in use.

* dom/Element.cpp:
* dom/Element.h:
* dom/ElementRareData.h:
(WebCore::defaultMinimumSizeForResizing):
(WebCore::ElementRareData::useTypes const):
* dom/Node.cpp:
(WebCore::stringForRareDataUseType):
(WebCore::Node::dumpStatistics):
* dom/NodeRareData.cpp:
* dom/NodeRareData.h:
(WebCore::NodeRareData::useTypes const):

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

13 months ago[JSC] Optimize Array#indexOf in C++ runtime
yusukesuzuki@slowstart.org [Thu, 20 Sep 2018 05:54:27 +0000 (05:54 +0000)]
[JSC] Optimize Array#indexOf in C++ runtime
https://bugs.webkit.org/show_bug.cgi?id=189507

Reviewed by Saam Barati.

JSTests:

* stress/array-indexof-array-prototype-trap.js: Added.
(shouldBe):
(AncestorArray.prototype.get 2):
(AncestorArray):
* stress/array-indexof-have-a-bad-time-c-runtime.js: Added.
(shouldBe):
* stress/array-indexof-hole-nan.js: Added.
(shouldBe):
(throw.new.Error):
* stress/array-indexof-infinity.js: Added.
(shouldBe):
(throw.new.Error):
* stress/array-indexof-negative-zero.js: Added.
(shouldBe):
(throw.new.Error):
* stress/array-indexof-own-getter.js: Added.
(shouldBe):
(throw.new.Error.get array):
(get array):
* stress/array-indexof-prototype-trap.js: Added.
(shouldBe):
(DerivedArray.prototype.get 2):
(DerivedArray):

Source/JavaScriptCore:

C++ Array#indexOf runtime function takes so much time in babylon benchmark in
web-tooling-benchmark. While our DFG and FTL has Array#indexOf optimization
and actually it is working well, C++ Array#indexOf is called significant amount
of time before tiering up, and it takes 6.74% of jsc main thread samples according
to perf command in Linux. This is because C++ Array#indexOf is too generic and
misses the chance to optimize JSArray cases.

This patch adds JSArray fast path for Array#indexOf. If we know that indexed
access to the given JSArray is non-observable and indexing type is good for the fast
path, we go to the fast path. This makes sampling of Array#indexOf 3.83% in
babylon web-tooling-benchmark.

* runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncIndexOf):
* runtime/JSArray.h:
* runtime/JSArrayInlines.h:
(JSC::JSArray::canDoFastIndexedAccess):
(JSC::toLength):
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::JSValue):
* runtime/JSGlobalObject.h:
* runtime/JSGlobalObjectInlines.h:
(JSC::JSGlobalObject::isArrayPrototypeIndexedAccessFastAndNonObservable):
(JSC::JSGlobalObject::isArrayPrototypeIteratorProtocolFastAndNonObservable):
* runtime/MathCommon.h:
(JSC::canBeStrictInt32):
(JSC::canBeInt32):

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

13 months agoWeb Inspector: move DarkMode.css rules into appropriate CSS files
nvasilyev@apple.com [Thu, 20 Sep 2018 02:31:42 +0000 (02:31 +0000)]
Web Inspector: move DarkMode.css rules into appropriate CSS files
https://bugs.webkit.org/show_bug.cgi?id=189673

Reviewed by Matt Baker.

* UserInterface/Main.html:
* UserInterface/Views/BezierEditor.css:
(@media (prefers-dark-interface)):
(.bezier-editor > .bezier-preview-timing):
(.bezier-editor > .bezier-container .bezier-curve):
(.bezier-editor > .bezier-container .linear-curve):
(.bezier-editor > .bezier-preview):
(.bezier-editor > .bezier-preview > div):
(.bezier-editor > .bezier-container .control-handle):
(.bezier-editor > .bezier-container .control-line):
* UserInterface/Views/BreakpointActionView.css:
(@media (prefers-dark-interface)):
(.breakpoint-action-block-body):
(.breakpoint-action-block-body > .description):
(.breakpoint-action-append-button,):
(.breakpoint-action-eval-editor):
* UserInterface/Views/BreakpointPopoverController.css:
(@media (prefers-dark-interface)):
(.popover .edit-breakpoint-popover-content > label.toggle):
(.popover .edit-breakpoint-popover-content > table > tr > th):
(.edit-breakpoint-popover-condition):
* UserInterface/Views/ButtonNavigationItem.css:
(@media (prefers-dark-interface)):
(.navigation-bar .item.button):
* UserInterface/Views/ButtonToolbarItem.css:
(@media (prefers-dark-interface)):
(.toolbar .item.button):
(.toolbar .item.button:not(.disabled):active):
(.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)):
(.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)):
* UserInterface/Views/CallFrameView.css:
(@media (prefers-dark-interface)):
(.call-frame .subtitle,):
(.call-frame:hover .subtitle .source-link,):
(.call-frame .separator):
* UserInterface/Views/CanvasContentView.css:
(@media (prefers-dark-interface)):
(.content-view.canvas:not(.tab)):
* UserInterface/Views/CanvasOverviewContentView.css:
(@media (prefers-dark-interface)):
(.content-view.canvas-overview):
(.content-view.canvas-overview .content-view.canvas):
(.content-view.canvas-overview .content-view.canvas.is-recording):
(.content-view.canvas-overview .content-view.canvas.is-recording > header):
(.content-view.canvas-overview .content-view.canvas > header > .titles > .title):
(.content-view.canvas-overview .content-view.canvas > header > .titles > .subtitle,):
(.content-view.canvas-overview .content-view.canvas > footer > .recordings::before):
(.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle):
* UserInterface/Views/CanvasTabContentView.css:
(@media (prefers-dark-interface)):
(.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon):
(.content-view.tab.canvas .navigation-bar > .item .canvas.canvas-2d .icon,):
(.content-view.canvas > .preview > img,):
* UserInterface/Views/CodeMirrorOverrides.css:
(@media (prefers-dark-interface)):
(.CodeMirror-cursor):
(.CodeMirror .CodeMirror-gutters):
(.cm-s-default .cm-link):
(.CodeMirror .CodeMirror-lines .CodeMirror-matchingbracket):
* UserInterface/Views/CompletionSuggestionsView.css:
(@media (prefers-dark-interface)):
(.completion-suggestions):
(.completion-suggestions-container > .item):
* UserInterface/Views/ComputedStyleDetailsPanel.css:
(@media (prefers-dark-interface)):
(.computed-style-properties.details-section):
(.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)):
* UserInterface/Views/ConsoleMessageView.css:
(@media (prefers-dark-interface)):
(.console-message .syntax-highlighted):
(.console-warning-level .console-message-text):
(.console-error-level .console-message-text):
(.console-user-command > .console-message-text):
(.console-message .repeat-count):
* UserInterface/Views/ConsolePrompt.css:
(@media (prefers-dark-interface)):
(.console-prompt):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.css:
(@media (prefers-dark-interface)):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover):
* UserInterface/Views/DOMTreeOutline.css:
(@media (prefers-dark-interface)):
(.tree-outline.dom):
(.tree-outline.dom li.elements-drag-over .selection-area):
(.tree-outline.dom li.selected .selection-area):
(.tree-outline.dom:focus li.selected .selection-area):
(.tree-outline.dom li.selected + ol.children.expanded):
(.tree-outline.dom .shadow):
(.tree-outline.dom li.parent.shadow + ol.children.expanded,):
(.showing-find-banner .tree-outline.dom .search-highlight):
* UserInterface/Views/DarkMode.css: Removed.
* UserInterface/Views/DataGrid.css:
(@media (prefers-dark-interface)):
(.data-grid th):
(.data-grid td .subtitle):
(.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):
(body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
(.data-grid tr.editable .cell-content > input):
(.data-grid td.spanning):
* UserInterface/Views/DebuggerDashboardView.css:
(@media (prefers-dark-interface)):
(.toolbar .dashboard.debugger):
(.dashboard.debugger .navigation-bar .item.button > .glyph):
(.dashboard.debugger > .location .function-name):
(.dashboard.debugger > .location .go-to-link):
(.dashboard.debugger > .divider):
* UserInterface/Views/DefaultDashboardView.css:
(@media (prefers-dark-interface)):
(.toolbar .dashboard.default > .item > div):
(.toolbar .dashboard.default > .item.enabled > div):
(.toolbar .dashboard.default > .item.enabled:hover):
(.toolbar .dashboard.default > .item.enabled:hover > div):
(.toolbar .dashboard.default > .resourcesCount > img,):
(body.latest-mac .toolbar .dashboard .item.button):
(.dashboard-container .advance-arrow):
* UserInterface/Views/DetailsSection.css:
(@media (prefers-dark-interface)):
(.details-section > .header):
(.details-section > .header > label):
(.details-section .details-section,):
(.details-section .details-section:not(.collapsed) > .header):
(.details-section > .content > .group > .row.simple > .label):
(.details-section > .content > .group:nth-child(even)):
(.details-section > .content > .group > .row:matches(.empty, .text)):
* UserInterface/Views/DividerNavigationItem.css:
(@media (prefers-dark-interface)):
(.navigation-bar .item.divider):
* UserInterface/Views/Editing.css:
(@media (prefers-dark-interface)):
(.editing):
(.editing, .editing *):
* UserInterface/Views/FindBanner.css:
(@media (prefers-dark-interface)):
(.find-banner > input[type="search"]):
(.find-banner.console-find-banner > input[type=search]:not(:placeholder-shown)):
* UserInterface/Views/FontResourceContentView.css:
(@media (prefers-dark-interface)):
(.content-view.resource.font .preview > .line):
(.content-view.resource.font .metric.top):
(.content-view.resource.font .metric.baseline):
(.content-view.resource.font .metric.middle):
(.content-view.resource.font .metric.xheight):
(.content-view.resource.font .metric.bottom):
* UserInterface/Views/FormattedValue.css:
(@media (prefers-dark-interface)):
(.formatted-object,):
(.formatted-null,):
* UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
(@media (prefers-dark-interface)):
(.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
* UserInterface/Views/HoverMenu.css:
(@media (prefers-dark-interface)):
(.hover-menu > svg > :matches(path, rect)):
* UserInterface/Views/ImageResourceContentView.css:
(@media (prefers-dark-interface)):
(.content-view.resource.image):
* UserInterface/Views/InlineSwatch.css:
(@media (prefers-dark-interface)):
(.inline-swatch):
* UserInterface/Views/LogContentView.css:
(@media (prefers-dark-interface)):
(.console-messages):
(.console-item):
(.console-messages:focus .console-item.selected):
(.console-messages:focus .console-item.selected + .console-item):
(.console-session:first-of-type .console-session-header):
(.console-session:not(:first-of-type) .console-session-header):
(.console-messages a):
(.console-messages a:hover):
(.console-messages:focus .console-item.selected::after):
(.console-error-level):
(.console-error-level:not(.filtered-out, .filtered-out-by-search), .console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
(.console-warning-level):
(.console-warning-level:not(.filtered-out, .filtered-out-by-search), .console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
(.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted):
(.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected):
* UserInterface/Views/Main.css:
(#main):
(@media (prefers-dark-interface)):
(.go-to-arrow):
(.resource-link,):
(.expand-list-button):
(:matches(img, canvas).show-grid):
* UserInterface/Views/NetworkResourceDetailView.css:
(@media (prefers-dark-interface)):
(.network-resource-detail):
(.network-resource-detail .item.close > .glyph):
(.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
(.resource-headers .value):
* UserInterface/Views/NetworkTableContentView.css:
(@media (prefers-dark-interface)):
(.network-table .cell.domain > .lock):
* UserInterface/Views/NewTabContentView.css:
(@media (prefers-dark-interface)):
(.new-tab.tab.content-view):
* UserInterface/Views/ObjectTreePropertyTreeElement.css:
(@media (prefers-dark-interface)):
(.object-tree-property .getter,):
(.item.object-tree-property.prototype-property):
(.object-tree-property.prototype-property:hover,):
(.object-tree-property .value.error):
* UserInterface/Views/ObjectTreeView.css:
(@media (prefers-dark-interface)):
(.object-tree,):
(.object-preview .name):
(.object-preview > .size):
* UserInterface/Views/OpenResourceDialog.css:
(@media (prefers-dark-interface)):
(.open-resource-dialog):
(.open-resource-dialog > .field > input):
(.open-resource-dialog > .field > input::placeholder):
(.open-resource-dialog > .tree-outline .item.selected):
(.open-resource-dialog > .field::before):
* UserInterface/Views/ProgressView.css:
(@media (prefers-dark-interface)):
(.progress-view > .titles > .title):
(.progress-view > .titles > .subtitle):
(.indeterminate-progress-spinner):
* UserInterface/Views/QuickConsole.css:
(@media (prefers-dark-interface)):
(.quick-console):
(.CodeMirror .jump-to-symbol-highlight,):
(.quick-console.showing-log):
* UserInterface/Views/RecordingActionTreeElement.css:
(@media (prefers-dark-interface)):
(.item.action:not(.initial-state)::before):
(.tree-outline .item.action.visual:not(.selected, .invalid)):
(.item.action:not(.initial-state) > .icon):
(.tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon):
* UserInterface/Views/RecordingContentView.css:
(@media (prefers-dark-interface)):
(.content-view:not(.tab).recording):
(.content-view:not(.tab).recording > header > .slider-container):
(.content-view:not(.tab).recording > header > .slider-container > input[type=range]):
* UserInterface/Views/RecordingStateDetailsSidebarPanel.css:
(@media (prefers-dark-interface)):
(.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified):
* UserInterface/Views/ResourceHeadersContentView.css:
(@media (prefers-dark-interface)):
(.resource-headers .value):
* UserInterface/Views/ResourceSizesContentView.css:
(@media (prefers-dark-interface)):
(.resource-sizes > .content .label):
* UserInterface/Views/ResourceTimingBreakdownView.css:
(@media (prefers-dark-interface)):
(.popover.waterfall-popover):
(.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
(.resource-timing-breakdown > table > tr > td.label,):
(.resource-timing-breakdown > table hr):
* UserInterface/Views/ScopeBar.css:
(@media (prefers-dark-interface)):
(.scope-bar > li):
* UserInterface/Views/SearchBar.css:
(@media (prefers-dark-interface)):
(:matches(.search-bar, .filter-bar) > input[type="search"],):
(:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder):
(:matches(.search-bar, .filter-bar) > input[type="search"]:focus):
* UserInterface/Views/SearchSidebarPanel.css:
(@media all):
* UserInterface/Views/SettingsTabContentView.css:
(@media (prefers-dark-interface)):
(.content-view.settings .navigation-bar):
(.content-view.settings .navigation-bar .item.radio.button.text-only.selected):
* UserInterface/Views/ShaderProgramContentView.css:
(@media (prefers-dark-interface)):
(.content-view.shader-program > .text-editor.shader):
(.content-view.shader-program > .text-editor.shader > .type-title):
* UserInterface/Views/ShaderProgramTreeElement.css:
(@media (prefers-dark-interface)):
(.item.shader-program .status > img):
* UserInterface/Views/SourceCodeTextEditor.css:
(@media (prefers-dark-interface)):
(.source-code.text-editor > .CodeMirror .error):
(.source-code.text-editor > .CodeMirror .warning):
(.source-code.text-editor > .CodeMirror .issue-widget):
(.source-code.text-editor > .CodeMirror .issue-widget.warning,):
(.source-code.text-editor > .CodeMirror .issue-widget.error,):
* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
(@media (prefers-dark-interface)):
(.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
(.spreadsheet-style-declaration-editor :matches(.name, .value).editing):
(.spreadsheet-style-declaration-editor .property.has-warning):
(.spreadsheet-style-declaration-editor .property.has-warning .warning):
(.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
(@media (prefers-dark-interface)):
(.spreadsheet-css-declaration):
(.spreadsheet-css-declaration.locked):
(.spreadsheet-css-declaration .selector.style-attribute):
(.spreadsheet-css-declaration .selector:focus,):
(.spreadsheet-css-declaration.locked .origin::after):
(.spreadsheet-css-declaration .origin .go-to-link,):
(.spreadsheet-css-declaration .media-label):
* UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
(@media (prefers-dark-interface)):
(.spreadsheet-style-panel .section-header):
(.spreadsheet-style-panel .section-header .node-link:hover):
* UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
(@media (prefers-dark-interface)):
(.syntax-highlighted,):
(.cm-s-default,):
(.cm-s-default .cm-attribute):
(.cm-s-default .cm-m-xml.cm-attribute,):
(.cm-s-default .cm-meta):
(.cm-s-default .cm-variable-3):
(.cm-s-default .cm-builtin):
* UserInterface/Views/TabBar.css:
(@media (prefers-dark-interface)):
(.tab-bar):
(.tab-bar > .item):
(.tab-bar > .item > .title):
(.tab-bar > .item:not(.disabled).selected):
(.tab-bar:not(.animating) > .item:not(.selected):hover):
(.tab-bar > .item > .close,):
(body.window-inactive .tab-bar):
(body.window-inactive .tab-bar > .item):
(body.window-inactive .tab-bar > .item.selected):
(body.window-inactive .tab-bar > .item > .title):
* UserInterface/Views/Table.css:
(@media (prefers-dark-interface)):
(.table,):
(.table > .header > .sortable:active):
(.table > .header > :matches(.sort-ascending, .sort-descending)):
(.table > .header > :matches(.sort-ascending, .sort-descending)::after):
* UserInterface/Views/TextEditor.css:
(@media (prefers-dark-interface)):
(.text-editor > .CodeMirror .execution-line):
(.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):
* UserInterface/Views/TimelineDataGrid.css:
(@media (prefers-dark-interface)):
(.data-grid th:matches(.sort-ascending, .sort-descending)):
* UserInterface/Views/TimelineIcons.css:
(@media (prefers-dark-interface)):
(.time-icon .icon):
* UserInterface/Views/TimelineOverview.css:
(@media (prefers-dark-interface)):
(.timeline-overview > .navigation-bar.timelines):
(.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
(.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),):
* UserInterface/Views/TimelineRecordingContentView.css:
(@media (prefers-dark-interface)):
(.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
(.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):
* UserInterface/Views/Toolbar.css:
(@media (prefers-dark-interface)):
(body .toolbar):
(body.window-inactive .toolbar):
(body.latest-mac .toolbar .item.button,):
(body.latest-mac .toolbar .search-bar > input[type="search"]):
(body.latest-mac .toolbar .search-bar > input[type="search"]:focus):
(body.latest-mac .toolbar .search-bar > input[type="search"]::placeholder):
(body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::placeholder):
(body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button):
(body.latest-mac .toolbar .dashboard-container):
(body.latest-mac .toolbar .item.button:active):
(body.latest-mac.window-inactive .toolbar .item.button,):
* UserInterface/Views/TreeOutline.css:
(@media (prefers-dark-interface)):
(.tree-outline .item .subtitle):
* UserInterface/Views/Variables.css:
(@media (prefers-dark-interface)):
(:root):
(body.window-inactive):
(body.window-inactive *):
* UserInterface/Views/WebSocketContentView.css:
(@media (prefers-dark-interface)):
(.web-socket.content-view .data-grid table.data tr.revealed):
(.web-socket.content-view .data-grid.variable-height-rows table.data tr.outgoing):
(.web-socket.content-view .data-grid.variable-height-rows table.data tr.non-text-frame):
* UserInterface/Views/XHRBreakpointPopover.css:
(@media (prefers-dark-interface)):
(.popover .xhr-breakpoint-content > .editor-wrapper > .editor):

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

13 months agoWebGL 2 partial passes and failing test expectations for conformance/conformance2...
justin_fan@apple.com [Thu, 20 Sep 2018 00:59:04 +0000 (00:59 +0000)]
WebGL 2 partial passes and failing test expectations for conformance/conformance2 layout tests
https://bugs.webkit.org/show_bug.cgi?id=189686

Reviewed by Dean Jackson.

* TestExpectations: Still skipping all of deqp, but now enabling all non-crashing/timing out tests.
* platform/ios-simulator/TestExpectations:
* platform/mac/TestExpectations:
* webgl/2.0.0/conformance/.../*expected.txt: Failures now report results of individual sub-tests for more granular implementation testing.
* webgl/2.0.0/conformance2/.../*expected.txt:
* platform/ios-simulator/webgl/2.0.0/.../*expected.txt: ios-simulator-specific expectations added.

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

13 months agoAdd functions to measure memory footprint to JSC
msaboff@apple.com [Thu, 20 Sep 2018 00:42:29 +0000 (00:42 +0000)]
Add functions to measure memory footprint to JSC
https://bugs.webkit.org/show_bug.cgi?id=189768

Reviewed by Saam Barati.

Provide system memory metrics for the current process to aid in memory reduction measurement and
tuning using native JS tests.

* jsc.cpp:
(MemoryFootprint::now):
(MemoryFootprint::resetPeak):
(GlobalObject::finishCreation):
(JSCMemoryFootprint::JSCMemoryFootprint):
(JSCMemoryFootprint::createStructure):
(JSCMemoryFootprint::create):
(JSCMemoryFootprint::finishCreation):
(JSCMemoryFootprint::addProperty):
(functionResetMemoryPeak):

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

13 months agoTemporarily move fullscreen back to experimental features
dino@apple.com [Thu, 20 Sep 2018 00:21:50 +0000 (00:21 +0000)]
Temporarily move fullscreen back to experimental features
https://bugs.webkit.org/show_bug.cgi?id=189770
<rdar://problem/44619282>

Reviewed by Simon Fraser.

Make fullscreen an experimental feature again.

* Shared/WebPreferences.yaml:

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

13 months agoUnreviewed, rolling out r236229.
realdawei@apple.com [Thu, 20 Sep 2018 00:20:05 +0000 (00:20 +0000)]
Unreviewed, rolling out r236229.

caused API timouts on mac and ios

Reverted changeset:

"Clear persistent storage between tests for
resourceLoadStatistics"
https://bugs.webkit.org/show_bug.cgi?id=189684
https://trac.webkit.org/changeset/236229

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-19

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

13 months agoREGRESSION(236154) C API clients not using WKPageSetPageNavigationClient couldn't...
achristensen@apple.com [Thu, 20 Sep 2018 00:13:25 +0000 (00:13 +0000)]
REGRESSION(236154) C API clients not using WKPageSetPageNavigationClient couldn't complete HTTPS requests
https://bugs.webkit.org/show_bug.cgi?id=189771

Reviewed by Tim Horton.

* UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didReceiveAuthenticationChallenge):
Perform default behavior if there's an authentication challenge but we're using the default navigation client.
I wish we had infrastructure to test this but WebKitTestRunner uses WKPageSetNavigationClient
and we don't have the ability to do networking from API tests.  This is a growing problem I intend to solve.

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

13 months agoMediaStream-MediaElement-srcObject.https.html expects video duration for a MediaStrea...
commit-queue@webkit.org [Wed, 19 Sep 2018 23:58:33 +0000 (23:58 +0000)]
MediaStream-MediaElement-srcObject.https.html expects video duration for a MediaStream to be Infinity and is currently NaN
https://bugs.webkit.org/show_bug.cgi?id=189516

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-09-19
Reviewed by Youenn Fablet.

* web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html:
* web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt:

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

13 months agostorage/indexeddb/modern/transactions-stop-on-navigation.html is flaky.
realdawei@apple.com [Wed, 19 Sep 2018 23:05:49 +0000 (23:05 +0000)]
storage/indexeddb/modern/transactions-stop-on-navigation.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=186339

Unreviewed, mark test as flaky.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-19

* platform/mac-wk2/TestExpectations:

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

13 months agoClear persistent storage between tests for resourceLoadStatistics
commit-queue@webkit.org [Wed, 19 Sep 2018 22:57:23 +0000 (22:57 +0000)]
Clear persistent storage between tests for resourceLoadStatistics
https://bugs.webkit.org/show_bug.cgi?id=189684
<rdar://problem/44540099>

Patch by Woodrow Wang <woodrow_wang@apple.com> on 2018-09-19
Reviewed by Chris Dumez.

* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreStatisticsResetToConsistentState):
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):

Remove function only called in testing for resetting statistics to consistent
state.

(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory): Deleted.

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

13 months agoREGRESSION(r235917): 2% regression in Dromaeo CSS selector on MacBookPro11,4
rniwa@webkit.org [Wed, 19 Sep 2018 22:31:18 +0000 (22:31 +0000)]
REGRESSION(r235917): 2% regression in Dromaeo CSS selector on MacBookPro11,4
https://bugs.webkit.org/show_bug.cgi?id=189738

Reviewed by Yusuke Suzuki.

The regression was caused by the regundant walk to the parent element. Removed it to fix the regression.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthChildParentCheckAndRelationUpdate):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthLastChildParentCheckAndRelationUpdate):

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

13 months agoCrash under WebPageProxy::decidePolicyForNavigationAction()
cdumez@apple.com [Wed, 19 Sep 2018 21:58:45 +0000 (21:58 +0000)]
Crash under WebPageProxy::decidePolicyForNavigationAction()
https://bugs.webkit.org/show_bug.cgi?id=189763
<rdar://problem/44597111>

Reviewed by Alex Christensen.

Update WebNavigationState::navigation() / WebNavigationState::takeNavigation()
to return a pointer instead of a reference as we have evidence that they can
return null. I kept the debug assertions to try and catch the cases where we
return null but at least we stop crashing in release builds.

* UIProcess/WebNavigationState.cpp:
(WebKit::WebNavigationState::navigation):
(WebKit::WebNavigationState::takeNavigation):
* UIProcess/WebNavigationState.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForResponse):

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

13 months agoCrash under WebProcessProxy::suspendedPageWasDestroyed(WebKit::SuspendedPageProxy&)
cdumez@apple.com [Wed, 19 Sep 2018 21:33:51 +0000 (21:33 +0000)]
Crash under WebProcessProxy::suspendedPageWasDestroyed(WebKit::SuspendedPageProxy&)
https://bugs.webkit.org/show_bug.cgi?id=189721
<rdar://problem/44359788>

Reviewed by Geoffrey Garen.

Source/WebKit:

Fix crash when destroying a SuspendedPageProxy whose WebProcessProxy was already
destroyed.

* UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::SuspendedPageProxy):
(WebKit::SuspendedPageProxy::~SuspendedPageProxy):
* UIProcess/SuspendedPageProxy.h:
(WebKit::SuspendedPageProxy::process const):
Update SuspendedPageProxy::m_process to be a RefPtr<> instead of a raw pointer, similarly
to what we do in WebPageProxy. Relying on the WebProcessProxy to not get destroyed is
risky as this crash demonstrates.

* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):
When a WebProcessProxy is terminated (by client or WebKit due to memory / cpu usage), call
webProcessDidClose() on all SuspendedPages, similarly to what we do in case of a crash in
processDidTerminateOrFailedToLaunch(). Failing to do so means that the SuspendedPageProxy
may still have a pointer to this WebProcessProxy, even though WebProcessProxy::shutDown()
has been called (which may destroy the WebProcessProxy).

Tools:

Add API test coverage.

* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

13 months agoMarked imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-onnegotiationneeded...
realdawei@apple.com [Wed, 19 Sep 2018 21:33:01 +0000 (21:33 +0000)]
Marked imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-onnegotiationneeded.html as flak on iOS.
https://bugs.webkit.org/show_bug.cgi?id=176078

Unreviewed test gardening.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-19

* platform/ios/TestExpectations:

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

13 months agoCheckStructureOrEmpty should pass in a tempGPR to emitStructureCheck since it may...
sbarati@apple.com [Wed, 19 Sep 2018 21:09:14 +0000 (21:09 +0000)]
CheckStructureOrEmpty should pass in a tempGPR to emitStructureCheck since it may jump over that code
https://bugs.webkit.org/show_bug.cgi?id=189703

Reviewed by Mark Lam.

This fixes a crash that a TypeProfiler change revealed.

* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

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

13 months agoAI rule for MultiPutByOffset executes its effects in the wrong order
sbarati@apple.com [Wed, 19 Sep 2018 21:00:08 +0000 (21:00 +0000)]
AI rule for MultiPutByOffset executes its effects in the wrong order
https://bugs.webkit.org/show_bug.cgi?id=189757
<rdar://problem/43535257>

Reviewed by Michael Saboff.

JSTests:

* stress/multi-put-by-offset-must-filter-value-before-filtering-base.js: Added.
(foo):
(Foo):
(g):

Source/JavaScriptCore:

The AI rule for MultiPutByOffset was executing effects in the wrong order.
It first executed the transition effects and the effects on the base, and
then executed the filtering effects on the value being stored. However, you
can end up with the wrong type when the base and the value being stored
are the same. E.g, in a program like `o.f = o`. These effects need to happen
in the opposite order, modeling what happens in the runtime executing of
MultiPutByOffset.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

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

13 months ago[WHLSL] Improve test suite type safety
commit-queue@webkit.org [Wed, 19 Sep 2018 20:08:51 +0000 (20:08 +0000)]
[WHLSL] Improve test suite type safety
https://bugs.webkit.org/show_bug.cgi?id=189502

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-19
Reviewed by Myles C. Maxfield.

Each of the 'makeT' functions now call the relevant cast function on the
value before hand. The checkNumber function has also been removed and
its uses have been replaced with functions that also check the type.
Some of the arithmetic checks have been updated to reflect that the
casts happen outside of WHLSL evaluation. Other tests have also been
updated to reflect that some values cannot be precisely expressed in
32-bit floating point.

* WebGPUShadingLanguageRI/Casts.js:
(castToBool): Added.
(castAndCheckValue): Added.
(isBitwiseEquivalent): Moved from Intrinsics.js.
* WebGPUShadingLanguageRI/Intrinsics.js: Ditto.
* WebGPUShadingLanguageRI/SPIRV.html: Update depdencies.
* WebGPUShadingLanguageRI/Test.html: Ditto.
* WebGPUShadingLanguageRI/Test.js: Update makeT functions to do a cast
and check the result. Some tests were also updated to reflect the change
in the behavior of these functions.
* WebGPUShadingLanguageRI/index.html: Update dependencies.

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

13 months agoResource Load Statistics: Add optional cap on partitioned cache max age
wilander@apple.com [Wed, 19 Sep 2018 19:19:56 +0000 (19:19 +0000)]
Resource Load Statistics: Add optional cap on partitioned cache max age
https://bugs.webkit.org/show_bug.cgi?id=189711
<rdar://problem/39246837>

Reviewed by Antti Koivisto and Chris Dumez.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource.html

* platform/network/NetworkStorageSession.h:
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::maxAgeCacheCap):
    Checks if a max age cap is set and returns it if the request
    represents a prevalent resource.
(WebCore::NetworkStorageSession::setCacheMaxAgeCapForPrevalentResources):
(WebCore::NetworkStorageSession::resetCacheMaxAgeCapForPrevalentResources):
    New functionality to receive a max age cap setting in the session.

Source/WebKit:

These changes add the capability to set a max age cap for prevalent resources
and consults it when retrieving cache entries. If an entry is capped and found
to be too old, it will not be used but instead removed from the cache.

This functionality is off by default because no cap is set by default.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcess::resetCacheMaxAgeCapForPrevalentResources):
    Infrastructure for testing.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
    Now sends in the session ID in the retrieve call.
* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::hasReachedPrevalentResourceAgeCap):
    Static convenience function.
(WebKit::NetworkCache::makeUseDecision):
    Now receives an optional maxAge parameter and checks
    hasReachedPrevalentResourceAgeCap() first.
(WebKit::NetworkCache::Cache::retrieve):
    Now takes a session ID.
* NetworkProcess/cache/NetworkCache.h:
* NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::cachedEntryReuseFailureToDiagnosticKey):
    Added UseDecision::NoDueToPrevalentResourceAgeCap which causes a
    return of WebCore::DiagnosticLoggingKeys::otherKey().
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetStatisticsCacheMaxAgeCap):
(WKWebsiteDataStoreStatisticsResetToConsistentState):
    Infrastructure for testing.
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
* UIProcess/Cocoa/ResourceLoadStatisticsMemoryStoreCocoa.mm:
(WebKit::ResourceLoadStatisticsMemoryStore::registerUserDefaultsIfNeeded):
    Now supports a user default ResourceLoadStatisticsCacheMaxAgeCap.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::hasStorageAccessForFrame):
(WebKit::NetworkProcessProxy::grantStorageAccess):
(WebKit::NetworkProcessProxy::removeAllStorageAccess):
(WebKit::NetworkProcessProxy::getAllStorageAccessEntries):
(WebKit::NetworkProcessProxy::setCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcessProxy::didSetCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcessProxy::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcessProxy::didResetCacheMaxAgeCapForPrevalentResources):
(WebKit::nextRequestStorageAccessContextId): Deleted.
    Deleted this to make all code use the generic generateCallbackID().
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
    Used to transfer the setting from the UI process to the network process.
* UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::setCacheMaxAgeCap):
* UIProcess/ResourceLoadStatisticsMemoryStore.h:
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::setCacheMaxAgeCap):
* UIProcess/WebResourceLoadStatisticsStore.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources):
* UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

This change adds infrastructure for layout tests of capped cache max age.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setStatisticsCacheMaxAgeCap):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::setStatisticsCacheMaxAgeCap):
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

* http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource-expected.txt: Added.
* http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource.html: Added.
* http/tests/resourceLoadStatistics/resources/cached-permanent-redirect.php: Added.
* http/tests/resourceLoadStatistics/resources/echo-query.php: Added.
* platform/ios/TestExpectations:
    New test marked as [ Pass ].
* platform/mac-wk2/TestExpectations:
    New test marked as [ Pass ].
* platform/wk2/TestExpectations:
    New test marked as [ Skip ] because it's not supported on non-Cocoa platforms.

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

13 months ago Unreviewed. Update my email and alias in list of contributors.
realdawei@apple.com [Wed, 19 Sep 2018 17:27:13 +0000 (17:27 +0000)]
   Unreviewed. Update my email and alias in list of contributors.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-19

* Scripts/webkitpy/common/config/contributors.json:

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