Timeline



Oct 2, 2018:

11:39 PM Changeset in webkit [236786] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[WinCairo][BuildBot] archive-test-results fails to delete pywebsocket.ws.log-err.txt
https://bugs.webkit.org/show_bug.cgi?id=190236

Unreviewed test gardening.

  • platform/wincairo/TestExpectations: Skipped http/wpt and imported/w3c.
11:28 PM Changeset in webkit [236785] by rniwa@webkit.org
  • 21 edits
    19 adds in trunk

Copying content with shadow DOM doesn't copy any contents
https://bugs.webkit.org/show_bug.cgi?id=157443

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch adds the support for copying and pasting content across shadow boundaries in HTML and plain text,
which is enabled whenever selection across shadow boundaries is enabled.

To do this, TextIterator now has a constructor which takes two Positions, and the node traversal code in
StyledMarkupAccumulator has been abstracted via helper functions as done for TextIterator.

When serializing a HTMl slot element, serialize it as a span with "display: contents" to make sure when
the content is pasted into a shadow tree, it wouldn't affect the slot assignment of the shadow tree.

Tests: editing/pasteboard/copy-paste-across-shadow-boundaries-1.html

editing/pasteboard/copy-paste-across-shadow-boundaries-2.html
editing/pasteboard/copy-paste-across-shadow-boundaries-3.html
editing/pasteboard/copy-paste-across-shadow-boundaries-4.html
editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1.html
editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html
editing/pasteboard/copy-paste-with-shadow-content.html

  • dom/ComposedTreeIterator.h:

(WebCore::assignedSlotIgnoringUserAgentShadow): Moved from TextIterator.cpp.
(WebCore::shadowRootIgnoringUserAgentShadow): Ditto.
(WebCore::firstChildInComposedTreeIgnoringUserAgentShadow): Ditto.
(WebCore::nextSiblingInComposedTreeIgnoringUserAgentShadow): Ditto.

  • dom/Position.h:

(WebCore::Position::treeScope const): Added.

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::addDisplayContents): Added.

  • editing/EditingStyle.h:
  • editing/Editor.cpp:

(WebCore::Editor::selectedText const): Use the new behavior when selectionAcrossShadowBoundariesEnabled is set.
(WebCore::Editor::selectedTextForDataTransfer const): Ditto.

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::appendEndElement): Renamed from appendEndTag. Now takes StringBuilder.

  • editing/MarkupAccumulator.h:

(WebCore::MarkupAccumulator::appendEndTag):

  • editing/TextIterator.cpp:

(WebCore::TextIterator::TextIterator): Added a new variant which takes two positions.
(WebCore::TextIterator::init):
(WebCore::firstChild):
(WebCore::nextSibling):
(WebCore::plainText): Ditto.

  • editing/TextIterator.h:
  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::selectionInHTMLFormat): Use the new behavior if selectionAcrossShadowBoundariesEnabled is set.

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::writeSelectionToPasteboard): Ditto.

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::parentNode): Added.
(WebCore::StyledMarkupAccumulator::firstChild): Added.
(WebCore::StyledMarkupAccumulator::nextSibling): Added.
(WebCore::StyledMarkupAccumulator::nextSkippingChildren): Added.
(WebCore::StyledMarkupAccumulator::hasChildNodes): Added.
(WebCore::StyledMarkupAccumulator::isDescendantOf): Added.
(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
(WebCore::StyledMarkupAccumulator::appendElement): Serialize a slot element as a span with display: contents.
(WebCore::StyledMarkupAccumulator::appendEndElement): Added. Ditto.
(WebCore::StyledMarkupAccumulator::serializeNodes):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Use the newly added helper functions to
traverse the composed tree when m_useComposedTree is set.
(WebCore::commonShadowIncludingAncestor): Added.
(WebCore::serializePreservingVisualAppearanceInternal): Added SerializeComposedTree as an argument. Also use
StyledMarkupAccumulator::parentNode to serialize special common ancestors; e.g. to preserve b, i, etc...
(WebCore::serializePreservingVisualAppearance): Ditto to the variant which takes VisibleSelection.
(WebCore::sanitizedMarkupForFragmentInDocument):

  • editing/markup.h:
  • editing/wpe/EditorWPE.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createFromSelection):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::SerializerMarkupAccumulator::appendEndElement):

  • testing/Internals.cpp:

(WebCore::Internals::setSelectionWithoutValidation): Added. A helper function to create a selection across
shadow boundaries for testing purposes.

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

LayoutTests:

Added tests for copying and pasting across shadow boundaries with HTML and plain text.

  • editing/pasteboard/copy-paste-across-shadow-boundaries-1-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-1.html: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-2-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-2.html: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-3-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-3.html: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-4-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-4.html: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-1.html: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2-expected.txt: Added.
  • editing/pasteboard/copy-paste-across-shadow-boundaries-with-style-2.html: Added.
  • editing/pasteboard/copy-paste-with-shadow-content-expected.txt: Added.
  • editing/pasteboard/copy-paste-with-shadow-content.html: Added.
6:59 PM Changeset in webkit [236784] by Chris Dumez
  • 8 edits in trunk

MessageEvent.ports should return the same object
https://bugs.webkit.org/show_bug.cgi?id=190151

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

  • web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.https-expected.txt:

Source/WebCore:

MessageEvent.ports should return the same object it was initialized to instead of
constructing a new JSValue every time.

No new tests, rebaselined existing test.

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::JSMessageEvent::ports const):
(WebCore::JSMessageEvent::visitAdditionalChildren):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::initMessageEvent):

  • dom/MessageEvent.h:
  • dom/MessageEvent.idl:
6:49 PM Changeset in webkit [236783] by Devin Rousso
  • 9 edits
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: merge SourceMapManager into NetworkManager
https://bugs.webkit.org/show_bug.cgi?id=190224

Reviewed by Joseph Pecoraro.

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

(WI.loaded):

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

(WI.loaded):

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager):
(WI.NetworkManager.prototype.downloadSourceMap): Added.
(WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
(WI.NetworkManager.prototype.resourceRequestDidFinishLoading):
(WI.NetworkManager.prototype._createResource):
(WI.NetworkManager.prototype._loadAndParseSourceMap): Added.
(WI.NetworkManager.prototype._sourceMapLoadAndParseFailed): Added.
(WI.NetworkManager.prototype._sourceMapLoadAndParseSucceeded): Added.
(WI.NetworkManager.prototype._handleFrameMainResourceDidChange): Added.

  • UserInterface/Controllers/SourceMapManager.js: Removed.
  • UserInterface/Models/Script.js:

(WI.Script):

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
5:48 PM Changeset in webkit [236782] by Kocsen Chung
  • 1 copy in tags/Safari-606.2.104.1.1

Tag Safari-606.2.104.1.1.

5:29 PM Changeset in webkit [236781] by rniwa@webkit.org
  • 7 edits
    2 adds in trunk

GC can collect JS wrappers of nodes in the mutation records waiting to be delivered
https://bugs.webkit.org/show_bug.cgi?id=190115

Reviewed by Geoffrey Garen.

Source/WebCore:

Fixed the bug by retaining JS wrappers of elements in mutation records using GCReachableRef.

This patch deploys GCReachableRef in two places: MutationObserver where each mutation record's
target is kept alive and MutationObserverRegistration where each node which had been removed
from an observed tree is kept alive for a subtree observation.

Test: fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive.html

  • dom/GCReachableRef.h:

(WebCore::GCReachableRef): Made it work with hash table.
(WebCore::GCReachableRef::operator T& const):
(WebCore::GCReachableRef::GCReachableRef):
(WebCore::GCReachableRef::isHashTableDeletedValue const):
(WebCore::GCReachableRef::isHashTableEmptyValue const):
(WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue const):
(WebCore::GCReachableRef::ptrAllowingHashTableEmptyValue):
(WebCore::GCReachableRef::assignToHashTableEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::emptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::constructEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::isEmptyValue):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::assignToEmpty):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::peek):
(WTF::HashTraits<WebCore::GCReachableRef<P>>::take):

  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::takeRecords): Don't clear m_pendingTargets because that would allow wrappers
to be collected before elements in mutation records are accessed. We delay until the end of the current
microtask at which point deliver() function is called.
(WebCore::MutationObserver::disconnect):
(WebCore::MutationObserver::enqueueMutationRecord): Add the target to the list of elements to keep alive.
This is needed for a newly inserted node, a node with attribute change, etc...
(WebCore::MutationObserver::deliver): Keep the set of transient registration targets alive until mutation
records are delivered to each observer. These are nodes which had been removed from a tree and whose
subtree had still been obsreved up until this point.

  • dom/MutationObserver.h:
  • dom/MutationObserverRegistration.cpp:

(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::takeTransientRegistrations): Return the hash set of elemenets
that need to be kept alive so that MutationObserver::deliver can keep them alive until the deliver
function had been called.
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet const):

  • dom/MutationObserverRegistration.h:

LayoutTests:

Added a regression test.

  • fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive-expected.txt: Added.
  • fast/dom/MutationObserver/mutation-observer-retains-js-wrappers-of-targets-alive.html: Added.
5:29 PM Changeset in webkit [236780] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: start editing property name/value on mouseup instead of mousedown
https://bugs.webkit.org/show_bug.cgi?id=190114
<rdar://problem/44891030>

Reviewed by Matt Baker.

This change only affects the experimental multiple properties selection.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)):
Without this code, the focus outline flickers on click (after mousedown but before mouseup event).

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField):
(WI.SpreadsheetTextField.prototype._handleMouseUp):

5:28 PM Changeset in webkit [236779] by Chris Dumez
  • 14 edits in trunk

radio / checkbox inputs should fire "click, input, change" events in order when clicked
https://bugs.webkit.org/show_bug.cgi?id=190223

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline a few WPT tests that are now passing. I have verified that those are passing in Gecko and Blink
as well.

  • web-platform-tests/html/semantics/forms/the-input-element/checkbox-click-events-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/checkbox-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-expected.txt:

Source/WebCore:

radio / checkbox inputs should fire "click, input, change" events in order when clicked:

Gecko and Blink already behave this way. However, WebKit has the following issues:

  • the input event is not fired
  • the click event is fired after the change event

No new tests, updated / rebaselined existing tests.

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::fireInputAndChangeEvents):

  • html/BaseCheckableInputType.h:
  • html/CheckboxInputType.cpp:

(WebCore::CheckboxInputType::willDispatchClick):
(WebCore::CheckboxInputType::didDispatchClick):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setChecked):

  • html/HTMLInputElement.h:
  • html/RadioInputType.cpp:

(WebCore::RadioInputType::willDispatchClick):
(WebCore::RadioInputType::didDispatchClick):

LayoutTests:

Update existing test to reflect behavior change. I have verified that our new behavior
on this test is consistent with Gecko and Chrome.

  • fast/forms/radio/radio-group-keyboard-change-event-expected.txt:
  • fast/forms/radio/radio-group-keyboard-change-event.html:
5:26 PM Changeset in webkit [236778] by Chris Dumez
  • 14 edits
    2 adds
    2 deletes in trunk

fieldset.elements should return an HTMLCollection instead of an HTMLFormControlsCollection
https://bugs.webkit.org/show_bug.cgi?id=190218

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline existing WPT test now that it is passing.

  • web-platform-tests/html/semantics/forms/the-fieldset-element/HTMLFieldSetElement-expected.txt:

Source/WebCore:

fieldset.elements should return an HTMLCollection instead of an HTMLFormControlsCollection:

Gecko has always behaved this way. Blink aligned with Gecko and the HTML specification in December 2016:

This simplifies our HTMLFieldSetElement code a lot.

Test: fast/forms/fieldset/fieldset-elements-htmlcollection.html

  • html/CollectionType.h:
  • html/GenericCachedHTMLCollection.cpp:

(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches const):

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::rootTypeFromCollectionType):
(WebCore::invalidationTypeExcludingIdAndNameAttributes):

  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::elements):

  • html/HTMLFieldSetElement.h:
  • html/HTMLFieldSetElement.idl:
  • html/HTMLFormControlsCollection.cpp:

(WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
(WebCore:: const):
(WebCore::HTMLFormControlsCollection::copyFormControlElementsVector const):
(WebCore::HTMLFormControlsCollection::ownerNode const):
(WebCore::HTMLFormControlsCollection::updateNamedElementCache const):

  • html/HTMLFormControlsCollection.h:

LayoutTests:

Update existing tests to reflect behavior change, after checking that our behavior is consistent
with Gecko and Blink on these tests.

  • fast/forms/fieldset/fieldset-elements-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt: Added.
  • fast/forms/fieldset/fieldset-elements-htmlcollection.html: Added.
  • fast/forms/fieldset/fieldset-elements.html:
  • fast/forms/fieldset/fieldset-form-collection-radionode-list-expected.txt: Removed.
  • fast/forms/fieldset/fieldset-form-collection-radionode-list.html: Removed.
5:25 PM Changeset in webkit [236777] by Devin Rousso
  • 7 edits
    2 adds in trunk

Web Inspector: prevent layer events from firing until the layer information is re-requested
https://bugs.webkit.org/show_bug.cgi?id=190159

Reviewed by Joseph Pecoraro.

Source/WebCore:

Test: inspector/layers/layerTreeDidChange.html

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

(WebCore::InspectorLayerTreeAgent::reset):
(WebCore::InspectorLayerTreeAgent::layerTreeDidChange):
(WebCore::InspectorLayerTreeAgent::layersForNode):

Source/WebInspectorUI:

  • UserInterface/Controllers/LayerTreeManager.js:

(WI.LayerTreeManager):
(WI.LayerTreeManager.prototype.get supported):
Remove supported member variable in favor of re-evaluating its value.

  • UserInterface/Protocol/LayerTreeObserver.js:

(WI.LayerTreeObserver.prototype.layerTreeDidChange):

LayoutTests:

  • inspector/layers/layerTreeDidChange-expected.txt: Added.
  • inspector/layers/layerTreeDidChange.html: Added.
5:21 PM Changeset in webkit [236776] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r236766): WI.IssueManager no longer exists
https://bugs.webkit.org/show_bug.cgi?id=190226

Reviewed by Joseph Pecoraro.

  • UserInterface/Controllers/ConsoleManager.js:

(WI.ConsoleManager.prototype.issuesForSourceCode):

5:13 PM Changeset in webkit [236775] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebKit

Deprecate WKConnection
https://bugs.webkit.org/show_bug.cgi?id=190147

Patch by Alex Christensen <achristensen@webkit.org> on 2018-10-02
Reviewed by Andy Estes.

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

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

(didReceiveMessage):
(didClose):

  • UIProcess/API/Cocoa/WKConnectionInternal.h:
  • UIProcess/API/Cocoa/WKProcessGroup.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm:
4:55 PM Changeset in webkit [236774] by BJ Burg
  • 2 edits in trunk/Source/WebCore

Web Automation: tab default key handler should always cycle focus when page is controlled by automation
https://bugs.webkit.org/show_bug.cgi?id=190221
<rdar://problem/44914534>

Reviewed by Joseph Pecoraro.

This change progresses WPT WebDriver test special_keys.py::test_webdriver_special_key_sends_keydown[TAB-expected24].

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):
Always cycle focus if the page is controlled by automation. If the chrome takes
focus, then the first responder will be something other than the WebView, which
causes subsequent WebDriver commands to hang.

4:42 PM Changeset in webkit [236773] by dino@apple.com
  • 25 edits
    8 adds in trunk/Source

[macOS] Switching to discrete GPU should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=189361
<rdar://problem/43949622>

Reviewed by Simon Fraser.

Source/WebCore:

Based on an earlier patch by Per Arne Vollan.

Due to the fact we can't talk to the Window Server, the Web Process can
no longer muxing to the discrete GPU directly. Instead we have to get the
UI Process to process the change. Do this by adding a new Chrome client
called GPUClient, that will have implementations provided by both WebKit
and legacy WebKit.

Unfortunately this can't be tested by a regular WKTR since:

  • it requires specific hardware
  • swapping to/from the discrete GPU takes about 20 seconds
  • running concurrent tests could confuse the tests into thinking the wrong GPU is active

Instead we'll write a specific test for this functionality and
run it on a separate bot.

  • WebCore.xcodeproj/project.pbxproj: Add GPUClient files.
  • page/Chrome.cpp: Drive by clean-up.

(WebCore::Chrome::windowScreenDidChange):

  • platform/graphics/GraphicsContext3D.h: We need to keep track of

whether we've muxed for this context, in order to not respond to
the screen change notifications (they are misleading in the case
of muxing).

  • platform/graphics/GraphicsContext3DManager.cpp: Rather than try

to mux directly, call into GPUClient.
(WebCore::GraphicsContext3DManager::displayWasReconfigured):
(WebCore::GraphicsContext3DManager::updateHighPerformanceState):
(WebCore::GraphicsContext3DManager::disableHighPerformanceGPUTimerFired):
(WebCore::GraphicsContext3DManager::recycleContextIfNecessary):

  • platform/graphics/GraphicsContext3DManager.h:
  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm: Only reconfigure

the virtual display if it didn't happen from muxing.
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::updateCGLContext):
(WebCore::GraphicsContext3D::screenDidChange):

  • platform/graphics/mac/GPUClient.cpp: Added.

(WebCore::GPUClient::singleton):
(WebCore::GPUClient::setSingleton):

  • platform/graphics/mac/GPUClient.h: Added.
  • testing/Internals.cpp: Testing helper.

(WebCore::Internals::hasMuxableGPU):

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

Source/WebKit:

Implement the UI-side process for triggering a GPU mux.

  • Platform/Logging.h: Add a WebGL logging channel.
  • SourcesCocoa.txt: Add the new files: WebGPUClient and HighPerformanceGPUManager.
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm: UI process calls that use HighPerformanceGPUManager

to keep track of whether or not this process needs the high-performance GPU.
(WebKit::WebProcessProxy::requestHighPerformanceGPU):
(WebKit::WebProcessProxy::releaseHighPerformanceGPU):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::~WebProcessProxy): Make sure to unregister with the HighPerformanceGPUManager
as the process disappears without manually removing itself (e.g. crashes).

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in: New messages.
  • UIProcess/mac/HighPerformanceGPUManager.cpp: New class that copies most of what used

to live in GraphicsContext3DManager. It creates a CGLPixelFormat object when it sees
that at least one process needs the high-performance GPU.
(WebKit::HighPerformanceGPUManager::singleton):
(WebKit::HighPerformanceGPUManager::addProcessRequiringHighPerformance):
(WebKit::HighPerformanceGPUManager::removeProcessRequiringHighPerformance):
(WebKit::HighPerformanceGPUManager::updateState):

  • UIProcess/mac/HighPerformanceGPUManager.h: Added.
  • WebKit.xcodeproj/project.pbxproj: Add new files.
  • WebProcess/WebCoreSupport/mac/WebGPUClient.cpp: Implementation of the GPUClient for

WebCore, which sends messages to the UI process.
(WebKit::WebGPUClient::singleton):
(WebKit::WebGPUClient::requestHighPerformanceGPU):
(WebKit::WebGPUClient::releaseHighPerformanceGPU):

  • WebProcess/WebCoreSupport/mac/WebGPUClient.h: Added.
  • WebProcess/cocoa/WebProcessCocoa.mm: Register the GPUClient.

(WebKit::WebProcess::platformInitializeProcess):

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj: Add new files.

Source/WebKitLegacy/mac:

Implement a no-op GPUClient instance in legacy WebKit. We will
not support swapping to the discrete GPU in this configuration.

  • WebCoreSupport/WebGPUClient.cpp: Added.

(WebKit::WebGPUClient::singleton):

  • WebCoreSupport/WebGPUClient.h: Added.
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WTF:

Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.

  • wtf/Platform.h:
4:02 PM Changeset in webkit [236772] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Fix a potential crash in NetworkProcess::deleteWebsiteDataForOrigins
https://bugs.webkit.org/show_bug.cgi?id=190220

Reviewed by Chris Dumez.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):

3:59 PM Changeset in webkit [236771] by Chris Dumez
  • 5 edits
    1 add in trunk/LayoutTests/imported/w3c

Refresh imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh
https://bugs.webkit.org/show_bug.cgi?id=190212

Reviewed by Youenn Fablet.

Refresh imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh
from upstream f15449622a76d0.

  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing.html:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/remove-from-document-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/refresh.sub.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/support/w3c-import.log:
3:53 PM Changeset in webkit [236770] by Wenson Hsieh
  • 5 edits in trunk

[WebKit2] Format > Bold and Format > Italic don't toggle between bold and italic style
https://bugs.webkit.org/show_bug.cgi?id=179787
<rdar://problem/35593389>

Reviewed by Tim Horton.

Source/WebKit:

Fixes the bug by relaxing our policy in WebViewImpl::updateFontManagerIfNeeded. Instead of updating only when
the font panel is visible, update when either the font panel is visible, or the selection is in a richly
editable area. In the latter case, an up-to-date NSFontManager state is needed in order for certain font
formatting menu items, such as bold and italic, to correctly toggle state.

Test: FontManagerTests.ToggleBoldAndItalicWithMenuItems

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

(-[WKWindowVisibilityObserver observeValueForKeyPath:ofObject:change:context:]):
(WebKit::WebViewImpl::selectionDidChange):
(WebKit::WebViewImpl::updateFontManagerIfNeeded):

Rename updateFontPanelIfNeeded to updateFontManagerIfNeeded, to reflect the new behavior.

(WebKit::WebViewImpl::changeFontAttributesFromSender):
(WebKit::WebViewImpl::changeFontFromFontManager):
(WebKit::WebViewImpl::updateFontPanelIfNeeded): Deleted.

Tools:

Add a test to verify that NSFontManager's selected font is updated when applying italic and bold styles using
menu items.

  • TestWebKitAPI/Tests/mac/FontManagerTests.mm:

(webViewForFontManagerTesting):
(menuItemCellForFontAction):
(TestWebKitAPI::TEST):

3:53 PM Changeset in webkit [236769] by Chris Dumez
  • 6 edits in trunk

Image.proto should be Function.prototype, not HTMLElement.prototype
https://bugs.webkit.org/show_bug.cgi?id=190216

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline existing WPT test now that it is passing.

  • web-platform-tests/html/semantics/embedded-content/the-img-element/Image-constructor-expected.txt:

Source/WebCore:

Properties created for named constructors should always use Function.prototype as prototype, as per:

Gecko and Blink agree with the Web IDL specification. However, WebKit was using the parent interface's
prototype if such a parent existing. So Image.proto would end up being HTMLElement.prototype
instead of Function.prototype.

No new tests, rebaselined existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorHelperMethods):

3:53 PM Changeset in webkit [236768] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix Disassembler-output on ARM Thumb2
https://bugs.webkit.org/show_bug.cgi?id=190203

On ARMv7 with Thumb2 addresses have bit 0 set to 1 to force
execution in thumb mode for jumps and calls. The actual machine
instructions are still aligned to 2-bytes though. Use dataLocation() as
start address for disassembling since it unsets the thumb bit.
Until now the disassembler would start at the wrong address (off by 1),
resulting in the wrong disassembled machine instructions.

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-10-02
Reviewed by Mark Lam.

  • disassembler/CapstoneDisassembler.cpp:

(JSC::tryToDisassemble):

3:34 PM Changeset in webkit [236767] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Prepare WebCoreNSURLExtras for ARC
https://bugs.webkit.org/show_bug.cgi?id=190219

Reviewed by Tim Horton.

ARC doesn't like the explicit sending of -release.
Use RetainPtr instead.

  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::collectRangesThatNeedMapping):
(WebCore::collectRangesThatNeedEncoding):
(WebCore::collectRangesThatNeedDecoding):
(WebCore::applyHostNameFunctionToMailToURLString):
(WebCore::applyHostNameFunctionToURLString):
(WebCore::mapHostNames):
(WebCore::stringByTrimmingWhitespace):
(WebCore::URLWithUserTypedString):
(WebCore::userVisibleString):
(WebCore::rangeOfURLScheme):
(WebCore::looksLikeAbsoluteURL):
(WebCore::retain): Deleted.

3:14 PM Changeset in webkit [236766] by Devin Rousso
  • 182 edits
    6 moves
    1 add
    1 delete in trunk

Web Inspector: rename frontend managers to be more consistent with backend agents
https://bugs.webkit.org/show_bug.cgi?id=190160

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Test.html:
  • UserInterface/Test/Test.js:
  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:
  • UserInterface/Base/DOMUtilities.js:
  • UserInterface/Controllers/ApplicationCacheManager.js:
  • UserInterface/Controllers/CSSManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/CSSStyleManager.js.
  • UserInterface/Controllers/ConsoleManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/LogManager.js.
  • UserInterface/Controllers/DOMDebuggerManager.js:
  • UserInterface/Controllers/DOMManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js.
  • UserInterface/Controllers/DOMStorageManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/StorageManager.js.
  • UserInterface/Controllers/DashboardManager.js: Removed.
  • UserInterface/Controllers/DatabaseManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js.
  • UserInterface/Controllers/HARBuilder.js:
  • UserInterface/Controllers/IndexedDBManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js.
  • UserInterface/Controllers/IssueManager.js: Removed.
  • UserInterface/Controllers/JavaScriptLogViewController.js:
  • UserInterface/Controllers/NetworkManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js.
  • UserInterface/Controllers/SourceMapManager.js:
  • UserInterface/Controllers/TimelineManager.js:
  • UserInterface/Debug/UncaughtExceptionReporter.js:
  • UserInterface/Models/CSSProperty.js:
  • UserInterface/Models/CSSSelector.js:
  • UserInterface/Models/CallFrame.js:
  • UserInterface/Models/Canvas.js:
  • UserInterface/Models/ConsoleMessage.js:
  • UserInterface/Models/DOMBreakpoint.js:
  • UserInterface/Models/DOMNode.js:
  • UserInterface/Models/DOMNodeStyles.js:
  • UserInterface/Models/DOMTree.js:
  • UserInterface/Models/DefaultDashboard.js:
  • UserInterface/Models/Script.js:
  • UserInterface/Models/ScriptTimelineRecord.js:
  • UserInterface/Models/SourceMapResource.js:
  • UserInterface/Models/TimelineRecording.js:
  • UserInterface/Protocol/CSSObserver.js:
  • UserInterface/Protocol/ConsoleObserver.js:
  • UserInterface/Protocol/DOMObserver.js:
  • UserInterface/Protocol/DOMStorageObserver.js:
  • UserInterface/Protocol/DatabaseObserver.js:
  • UserInterface/Protocol/InspectorFrontendAPI.js:
  • UserInterface/Protocol/InspectorObserver.js:
  • UserInterface/Protocol/MainTarget.js:
  • UserInterface/Protocol/NetworkObserver.js:
  • UserInterface/Protocol/PageObserver.js:
  • UserInterface/Protocol/RemoteObject.js:
  • UserInterface/Protocol/RuntimeObserver.js:
  • UserInterface/Protocol/WorkerTarget.js:
  • UserInterface/Views/BoxModelDetailsSectionRow.js:
  • UserInterface/Views/CanvasOverviewContentView.js:
  • UserInterface/Views/CanvasTreeElement.js:
  • UserInterface/Views/ContentView.js:
  • UserInterface/Views/ContextMenuUtilities.js:
  • UserInterface/Views/CookieStorageContentView.js:
  • UserInterface/Views/DOMDetailsSidebarPanel.js:
  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
  • UserInterface/Views/DOMNodeTreeElement.js:
  • UserInterface/Views/DOMTreeContentView.js:
  • UserInterface/Views/DOMTreeDataGrid.js:
  • UserInterface/Views/DOMTreeElement.js:
  • UserInterface/Views/DOMTreeElementPathComponent.js:
  • UserInterface/Views/DOMTreeOutline.js:
  • UserInterface/Views/DOMTreeUpdater.js:
  • UserInterface/Views/DebuggerSidebarPanel.js:
  • UserInterface/Views/ElementsTabContentView.js:
  • UserInterface/Views/EventBreakpointPopover.js:
  • UserInterface/Views/EventBreakpointTreeElement.js:
  • UserInterface/Views/EventListenerSectionGroup.js:
  • UserInterface/Views/FormattedValue.js:
  • UserInterface/Views/FrameTreeElement.js:
  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
  • UserInterface/Views/LayerDetailsSidebarPanel.js:
  • UserInterface/Views/LayerTreeDataGridNode.js:
  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
  • UserInterface/Views/Layers3DContentView.js:
  • UserInterface/Views/LogContentView.js:
  • UserInterface/Views/NetworkTableContentView.js:
  • UserInterface/Views/ObjectTreeBaseTreeElement.js:
  • UserInterface/Views/ObjectTreeView.js:
  • UserInterface/Views/OpenResourceDialog.js:
  • UserInterface/Views/ResourceSidebarPanel.js:
  • UserInterface/Views/SearchSidebarPanel.js:
  • UserInterface/Views/SettingsTabContentView.js:
  • UserInterface/Views/SourceCodeTextEditor.js:
  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
  • UserInterface/Views/StorageSidebarPanel.js:
  • UserInterface/Views/StyleDetailsPanel.js:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

LayoutTests:

  • http/tests/inspector/dom/cross-domain-inspected-node-access.html:
  • http/tests/inspector/dom/disconnect-dom-tree-after-main-frame-navigation.html:
  • http/tests/inspector/dom/shapes-test.js:
  • http/tests/inspector/network/har/har-page.html:
  • http/tests/inspector/network/loadResource-insecure-resource.html:
  • http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html:
  • http/tests/inspector/network/resource-response-source-memory-cache.html:
  • http/tests/inspector/network/resource-sizes-memory-cache.html:
  • http/tests/inspector/network/set-resource-caching-disabled-memory-cache.html:
  • http/tests/websocket/tests/hybi/inspector/before-load.html:
  • http/tests/websocket/tests/hybi/inspector/resolveWebSocket.html:
  • inspector/canvas/requestNode.html:
  • inspector/codemirror/resources/prettyprinting/utilities.js:

(TestPage.registerInitializer.loadPrettyPrintingTestAndExpectedResults):
(TestPage.registerInitializer.window.addPrettyPrintingTests):
(TestPage.registerInitializer):

  • inspector/console/clearMessages.html:
  • inspector/console/command-line-api.html:
  • inspector/console/console-api.html:
  • inspector/console/console-count.html:
  • inspector/console/console-table.html:
  • inspector/console/console-time.html:
  • inspector/console/message-stack-trace.html:
  • inspector/console/messageAdded-from-named-evaluations.html:
  • inspector/console/messageRepeatCountUpdated.html:
  • inspector/console/messagesCleared.html:
  • inspector/console/webcore-logging-expected.txt:
  • inspector/console/webcore-logging.html:
  • inspector/controller/runtime-controller-import.html:
  • inspector/controller/runtime-controller.html:
  • inspector/css/add-rule.html:
  • inspector/css/createStyleSheet.html:
  • inspector/css/css-property.html:
  • inspector/css/getAllStyleSheets.html:
  • inspector/css/manager-preferredInspectorStyleSheetForFrame.html:
  • inspector/css/matched-style-properties.html:
  • inspector/css/modify-css-property.html:
  • inspector/css/modify-rule-selector.html:
  • inspector/css/pseudo-element-matches-for-pseudo-element-node.html:
  • inspector/css/pseudo-element-matches.html:
  • inspector/css/selector-dynamic-specificity.html:
  • inspector/css/selector-specificity.html:
  • inspector/css/shadow-scoped-style.html:
  • inspector/css/stylesheet-events-basic.html:
  • inspector/css/stylesheet-events-imports.html:
  • inspector/css/stylesheet-events-inspector-stylesheet.html:
  • inspector/css/stylesheet-events-multiple-documents.html:
  • inspector/css/stylesheet-with-mutations.html:
  • inspector/debugger/csp-exceptions.html:
  • inspector/debugger/js-stacktrace.html:
  • inspector/debugger/resources/log-pause-location.js:

(TestPage.registerInitializer.window.findScript):
(TestPage.registerInitializer.window.loadMainPageContent):
(TestPage.registerInitializer.window.logResolvedBreakpointLinesWithContext):
(TestPage.registerInitializer.window.logLinesWithContext):

  • inspector/debugger/stepping/stepping-through-autoContinue-breakpoint.html:
  • inspector/dom-debugger/dom-breakpoints.html:
  • inspector/dom-debugger/xhr-breakpoints.html:
  • inspector/dom/breakpoint-for-event-listener.html:
  • inspector/dom/csp-big5-hash.html:
  • inspector/dom/csp-hash.html:
  • inspector/dom/customElementState.html:
  • inspector/dom/domutilities-csspath.html:
  • inspector/dom/domutilities-path-dump.html:
  • inspector/dom/domutilities-xpath.html:
  • inspector/dom/event-listener-add-remove.html:
  • inspector/dom/getEventListenersForNode.html:
  • inspector/dom/getOuterHTML.html:
  • inspector/dom/hideHighlight.html:
  • inspector/dom/highlightFrame.html:
  • inspector/dom/highlightNode.html:
  • inspector/dom/highlightNodeList.html:
  • inspector/dom/highlightSelector.html:
  • inspector/dom/insertAdjacentHTML.html:
  • inspector/dom/inspect.html:
  • inspector/dom/pseudo-element-dynamic.html:
  • inspector/dom/pseudo-element-static.html:
  • inspector/dom/push-node-by-path-to-frontend.html:
  • inspector/dom/setEventListenerDisabled.html:
  • inspector/dom/setInspectedNode.html:
  • inspector/dom/setOuterHTML-no-document-element.html:
  • inspector/dom/setOuterHTML.html:
  • inspector/dom/shadow-and-non-shadow-children.html:
  • inspector/dom/shadowRootType.html:
  • inspector/dom/template-content.html:
  • inspector/formatting/resources/utilities.js:

(TestPage.registerInitializer.loadFormattingTestAndExpectedResults):
(TestPage.registerInitializer.window.addFormattingTests):
(TestPage.registerInitializer):

  • inspector/indexeddb/clearObjectStore.html:
  • inspector/indexeddb/deleteDatabaseNamesWithSpace.html:
  • inspector/indexeddb/requestData.html:
  • inspector/indexeddb/requestDatabase.html:
  • inspector/indexeddb/requestDatabaseNames.html:
  • inspector/layers/layer-tree-manager.html:
  • inspector/model/dom-node.html:
  • inspector/model/frame-extra-scripts.html:
  • inspector/model/script-resource-relationship.html:
  • inspector/model/stack-trace.html:
  • inspector/page/empty-or-missing-resources.html:
  • inspector/page/hidpi-snapshot-size.html:
  • inspector/page/main-frame-resource.html:
  • inspector/runtime/change-execution-context-identifier.html:
  • inspector/runtime/saveResult.html:
  • inspector/storage/domStorage-events.html:
  • inspector/worker/console-basic.html:
  • inspector/worker/resources-in-worker.html:
1:45 PM Changeset in webkit [236765] by Basuke Suzuki
  • 4 edits in trunk

[Curl] Fix missing values of resource timing API.
https://bugs.webkit.org/show_bug.cgi?id=190193

Reviewed by Alex Christensen.

Source/WebCore:

The property nextHopProtocol was not returned correctly. It was
returned only when remote inspector is opened.

Tests: http/wpt/resource-timing/rt-nextHopProtocol.html

http/wpt/resource-timing/rt-nextHopProtocol.worker.html

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::getNetworkLoadMetrics):
(WebCore::CurlHandle::addExtraNetworkLoadMetrics):

LayoutTests:

  • platform/wincairo/TestExpectations:
1:44 PM Changeset in webkit [236764] by Chris Dumez
  • 2 edits in trunk/Tools

REGRESSION: TestWebKitAPI.WKWebView.ProvisionalURLNotChange API test is failing
https://bugs.webkit.org/show_bug.cgi?id=190176
<rdar://problem/44925871>

Reviewed by Alex Christensen.

Use a URL that is truly recognized as invalid by WebCore's URL parser.

  • TestWebKitAPI/Tests/WebKitCocoa/ProvisionalURLNotChange.mm:

(TEST):

1:26 PM Changeset in webkit [236763] by achristensen@apple.com
  • 5 edits in trunk/Source

Remove unused linked-on-or-before-iOS5 check
https://bugs.webkit.org/show_bug.cgi?id=190164

Reviewed by Michael Saboff.

Source/WebCore:

If an app hasn't been updated since iOS5, it can't run supported iOS.
This value is also only checked in an uninstantiated template function.

  • platform/URL.cpp:

(WebCore::enableURLSchemeCanonicalization): Deleted.
(WebCore::equal): Deleted.

  • platform/URL.h:

Source/WebKitLegacy/ios:

  • Misc/WebUIKitSupport.mm:

(WebKitInitialize):
(linkedOnOrAfterIOS5): Deleted.

1:24 PM Changeset in webkit [236762] by achristensen@apple.com
  • 59 edits in trunk

Remove ParsedURLString
https://bugs.webkit.org/show_bug.cgi?id=190154

Reviewed by Chris Dumez.

Source/WebCore:

Before the introduction of URLParser, it would indicate that we should assume the String
is from a valid URL so we can skip canonicalization and just find the offsets inside the String
to quickly create a URL. It was a performance optimization that caused security issues when
misused. Since the introduction of URLParser, we have a fast path for all URL parsing, so
right now it actually doesn't change any behavior. It's just a relic of the past that complicates
the URL class, making it harder to express which constructor to use and making it harder to move
the class.

  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp:

(WebCore::NavigatorContentUtils::registerProtocolHandler):
(WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
(WebCore::NavigatorContentUtils::unregisterProtocolHandler):

  • dom/Document.cpp:

(WebCore::Document::updateBaseURL):
(WebCore::Document::initSecurityContext):

  • dom/ExtensionStyleSheets.cpp:

(WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const):

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet):

  • editing/markup.cpp:

(WebCore::completeURLs):

  • fileapi/BlobURL.cpp:

(WebCore::BlobURL::createBlobURL):

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::url const):
(WebCore::HistoryItem::originalURL const):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::location const):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):

  • html/PublicURLManager.cpp:

(WebCore::PublicURLManager::stop):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::resourceStyleSheetText const):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::deleteCookie):
(WebCore::InspectorPageAgent::getResourceContent):
(WebCore::InspectorPageAgent::searchInResource):

  • inspector/agents/page/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::sourceMapURLForScript):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::subresources const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::init):
(WebCore::FrameLoader::initForSynthesizedDocument):

  • loader/HistoryController.cpp:

(WebCore::HistoryController::pushState):
(WebCore::HistoryController::replaceState):

  • loader/appcache/ApplicationCache.cpp:

(WebCore::ApplicationCache::addResource):
(WebCore::ApplicationCache::resourceForURL):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::startLoadingEntry):
(WebCore::ApplicationCacheGroup::addEntry):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
(WebCore::ApplicationCacheStorage::loadCache):
(WebCore::ApplicationCacheStorage::manifestURLs):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::urlForBlankFrame):

  • platform/URL.cpp:

(WebCore::blankURL):

  • platform/URL.h:

(): Deleted.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::load):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::populateBlobsForFileWriting):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::decodeBase):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::sanitizeSuggestedFilename):

  • platform/network/cf/DNSResolveQueueCFNet.cpp:

(WebCore::DNSResolveQueueCFNet::updateIsUsingProxy):

  • platform/network/cf/ResourceRequest.h:

(WebCore::ResourceRequest::ResourceRequest):

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::searchCookies):
(WebCore::CookieJarDB::setCookie):
(WebCore::CookieJarDB::deleteCookie):

  • platform/network/curl/ResourceRequest.h:

(WebCore::ResourceRequest::ResourceRequest):

  • platform/network/soup/ResourceRequest.h:

(WebCore::ResourceRequest::ResourceRequest):

  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::docLoaderFunc):

Source/WebKit:

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::writeBlobToFilePath):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):

  • PluginProcess/PluginControllerProxy.cpp:

(WebKit::PluginControllerProxy::streamWillSendRequest):
(WebKit::PluginControllerProxy::streamDidReceiveResponse):
(WebKit::PluginControllerProxy::manualStreamDidReceiveResponse):

  • Shared/API/APIUserContentURLPattern.h:

(API::UserContentURLPattern::matchesURL const):

  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::itemIsInSameDocument const):

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:

(WebKit::RemoteInspectorProtocolHandler::handleRequest):
(WebKit::RemoteInspectorProtocolHandler::targetListChanged):

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::openURL):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::SuspendedPageProxy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::processDidTerminate):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::addProcessToOriginCacheSet):
(WebKit::WebProcessPool::processForNavigationInternal):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::createShareMenuItem):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::addUserScript):
(WebKit::InjectedBundle::addUserStyleSheet):
(WebKit::InjectedBundle::removeUserScript):
(WebKit::InjectedBundle::removeUserStyleSheet):

  • WebProcess/Plugins/Plugin.cpp:

(WebKit::Plugin::Parameters::decode):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::url):
(WebKit::WebPlatformStrategies::readURLFromPasteboard):

Source/WebKitLegacy/mac:

  • WebView/WebScriptDebugger.mm:

(toNSURL):

Source/WebKitLegacy/win:

  • WebDownloadCurl.cpp:

(WebDownload::initWithRequest):

  • WebURLResponse.cpp:

(WebURLResponse::createInstance):

Tools:

  • TestWebKitAPI/Tests/WebCore/URL.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasChromeBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk):
(TestWebKitAPI::assertUserAgentForURLHasMacPlatformQuirk):
(TestWebKitAPI::TEST):

12:42 PM Changeset in webkit [236761] by dbates@webkit.org
  • 4 edits in trunk/Tools

Fix iOS TestWebKitAPI failures following <https://trac.webkit.org/changeset/236619>
(https://bugs.webkit.org/show_bug.cgi?id=190017)

For now swizzle +[UIKeyboard isInHardwareKeyboardMode] to return NO in the following tests:

WKWebViewAutofillTests.AutofillRequiresInputSession
DragAndDropTests.ExternalSourceJPEGOnly
DragAndDropTests.ExternalSourceUTF8PlainTextOnly

so that the presence of a hardware keyboad does not effect their results. In <https://bugs.webkit.org/show_bug.cgi?id=190211>
we will look to swizzle this method for all test by default.

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:
12:20 PM Changeset in webkit [236760] by Kocsen Chung
  • 7 edits in branches/safari-606.2.104.0-branch/Source

Versioning.

12:18 PM Changeset in webkit [236759] by Kocsen Chung
  • 7 edits in branches/safari-606.2.104.1-branch/Source

Versioning.

12:01 PM Changeset in webkit [236758] by yusukesuzuki@slowstart.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Add stub of ExecutableAllocator used when JIT is disabled
https://bugs.webkit.org/show_bug.cgi?id=190215

Reviewed by Mark Lam.

When ENABLE(JIT) is disabled, we do not use JIT. But we ExecutableAllocator is still available since
it is guarded by ENABLE(ASSEMBLER). ENABLE(ASSEMBLER) is necessary for LLInt ASM interpreter since
our MacroAssembler tells machine architecture information. Eventually, we would like to decouple
this machine architecture information from MacroAssembler. But for now, we use ENABLE(ASSEMBLER)
for LLInt ASM interpreter even if JIT is disabled by ENABLE(JIT).

To ensure any executable memory allocation is not done, we add a stub of ExecutableAllocator for
non-JIT configurations. This does not have any functionality allocating executable memory, thus
any accidental operation cannot attempt to allocate executable memory if ENABLE(JIT) = OFF.

  • jit/ExecutableAllocator.cpp:

(JSC::ExecutableAllocator::initializeAllocator):
(JSC::ExecutableAllocator::singleton):

  • jit/ExecutableAllocator.h:

(JSC::ExecutableAllocator::isValid const):
(JSC::ExecutableAllocator::underMemoryPressure):
(JSC::ExecutableAllocator::memoryPressureMultiplier):
(JSC::ExecutableAllocator::dumpProfile):
(JSC::ExecutableAllocator::allocate):
(JSC::ExecutableAllocator::isValidExecutableMemory):
(JSC::ExecutableAllocator::committedByteCount):
(JSC::ExecutableAllocator::getLock const):
(JSC::performJITMemcpy):

11:43 AM Changeset in webkit [236757] by Kocsen Chung
  • 1 copy in branches/safari-606.2.104.1-branch

New branch.

11:42 AM Changeset in webkit [236756] by Kocsen Chung
  • 1 copy in branches/safari-606.2.104.0-branch

New branch.

11:39 AM Changeset in webkit [236755] by realdawei@apple.com
  • 4 edits in trunk/Tools

Unreviewed, rolling out r236751.

broke the iOS Build

Reverted changeset:

"Fix iOS TestWebKitAPI failures following
<https://trac.webkit.org/changeset/236619>"
https://bugs.webkit.org/show_bug.cgi?id=190017
https://trac.webkit.org/changeset/236751

Patch by Dawei Fenton <realdawei@apple.com> on 2018-10-02

11:36 AM Changeset in webkit [236754] by pvollan@apple.com
  • 3 edits
    3 adds in trunk

[WebVTT] Cue with line setting is not rendered correctly
https://bugs.webkit.org/show_bug.cgi?id=190168

Reviewed by Eric Carlson.

Source/WebCore:

When the line setting contains an optional alignment value, the cue is not rendered at the correct position,
see https://w3c.github.io/webvtt/#webvtt-line-cue-setting. This patch does not implement correct handling of
the line setting alignment values, it only makes sure parsing does not fail when the cue has line alignment
settings.

Test: media/track/track-cue-line-position.html

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::getPositionCoordinates const):
(WebCore::VTTCue::setCueSettings):

LayoutTests:

  • media/track/captions-webvtt/line-position.vtt: Added.
  • media/track/track-cue-line-position-expected-mismatch.html: Added.
  • media/track/track-cue-line-position.html: Added.
10:57 AM Changeset in webkit [236753] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

User installed fonts are not always disabled when they should be
https://bugs.webkit.org/show_bug.cgi?id=190195

Reviewed by Geoffrey Garen.

SVG images and some theme cases fail to respect the setting. Besides the obvious problem this
is also a performance issue as various font caches include this setting in the key.

  • platform/graphics/FontDescription.cpp:

(WebCore::m_shouldAllowUserInstalledFonts):

Initialize to 'No' by default. All paths where user fonts make sense already set the bit from
settings. This fixes some cases in system themes that construct FontDescriptions from scratch.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):

Add assertion. This verified the change with the existing tests.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

Always disallow user fonts in SVG used as images.

10:52 AM Changeset in webkit [236752] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[GTK] fast/forms/color/input-appearance-color.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189350

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-10-02
Reviewed by Michael Catanzaro.

Update test expectations to match changes introduced in r235435.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/forms/color/input-appearance-color-expected.png:
  • platform/gtk/fast/forms/color/input-appearance-color-expected.txt:
10:49 AM Changeset in webkit [236751] by dbates@webkit.org
  • 4 edits in trunk/Tools

Fix iOS TestWebKitAPI failures following <https://trac.webkit.org/changeset/236619>
(https://bugs.webkit.org/show_bug.cgi?id=190017)

For now swizzle +[UIKeyboard isInHardwareKeyboardMode] to return NO in the following tests:

WKWebViewAutofillTests.AutofillRequiresInputSession
DragAndDropTests.ExternalSourceJPEGOnly
DragAndDropTests.ExternalSourceUTF8PlainTextOnly

so that the presence of a hardware keyboad does not effect their results. In <https://bugs.webkit.org/show_bug.cgi?id=190211>
we will look to swizzle this method for all test by default.

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

(TestWebKitAPI::overrideIsInHardwareKeyboardMode):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h:
10:36 AM Changeset in webkit [236750] by dino@apple.com
  • 48 edits
    27 deletes in trunk

Remove CSS Animation Triggers
https://bugs.webkit.org/show_bug.cgi?id=190175
<rdar://problem/44925626>

Reviewed by Simon Fraser.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Remove the never-properly specified CSS Animation Triggers.

  • Configurations/FeatureDefines.xcconfig:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSAnimationTriggerScrollValue.cpp: Removed.
  • css/CSSAnimationTriggerScrollValue.h: Removed.
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):
(WebCore::createAnimationTriggerValue): Deleted.
(WebCore::animationTriggerValue): Deleted.

  • css/CSSProperties.json:
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationTrigger): Deleted.

  • css/CSSToStyleMap.h:
  • css/CSSValue.cpp:

(WebCore::CSSValue::equals const):
(WebCore::CSSValue::cssText const):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isAnimationTriggerScrollValue const): Deleted.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAnimationValue):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeWebkitAnimationTrigger): Deleted.

  • page/FrameView.cpp:

(WebCore::FrameView::sendScrollEvent):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setAnimationTriggersEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::animationTriggersEnabled const): Deleted.

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::updateStateMachine):
(WebCore::AnimationBase::fireAnimationEventsIfNeeded):
(WebCore::AnimationBase::timeToNextService):
(WebCore::AnimationBase::getElapsedTime const):

  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationControllerPrivate::animationWillBeRemoved):
(WebCore::CSSAnimationControllerPrivate::addToAnimationsDependentOnScroll): Deleted.
(WebCore::CSSAnimationControllerPrivate::removeFromAnimationsDependentOnScroll): Deleted.
(WebCore::CSSAnimationControllerPrivate::scrollWasUpdated): Deleted.
(WebCore::CSSAnimationController::wantsScrollUpdates const): Deleted.
(WebCore::CSSAnimationController::scrollWasUpdated): Deleted.

  • page/animation/CSSAnimationController.h:
  • page/animation/CSSAnimationControllerPrivate.h:

(WebCore::CSSAnimationControllerPrivate::wantsScrollUpdates const): Deleted.
(WebCore::CSSAnimationControllerPrivate::scrollPosition const): Deleted.

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::updateKeyframeAnimations):

  • page/animation/CompositeAnimation.h:

(WebCore::CompositeAnimation::hasScrollTriggeredAnimation const): Deleted.

  • platform/animation/Animation.cpp:

(WebCore::Animation::Animation):
(WebCore::Animation::operator=):
(WebCore::Animation::animationsMatch const):

  • platform/animation/Animation.h:

(WebCore::Animation::isTimingFunctionSet const):
(WebCore::Animation::isEmpty const):
(WebCore::Animation::clearTimingFunction):
(WebCore::Animation::clearAll):
(WebCore::Animation::animationMode const):
(WebCore::Animation::setAnimationMode):
(WebCore::Animation::initialTimingFunction):
(WebCore::Animation::isTriggerSet const): Deleted.
(WebCore::Animation::clearTrigger): Deleted.
(WebCore::Animation::trigger const): Deleted.
(WebCore::Animation::setTrigger): Deleted.
(WebCore::Animation::initialTrigger): Deleted.

  • platform/animation/AnimationTrigger.h: Removed.
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::animationCanBeAccelerated const):

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Remove a bunch of tests that no longer have an implementation.

  • TestExpectations:
  • animations/trigger-computed-style-expected.txt: Removed.
  • animations/trigger-computed-style.html: Removed.
  • animations/trigger-container-scroll-boundaries-expected.txt: Removed.
  • animations/trigger-container-scroll-boundaries.html: Removed.
  • animations/trigger-container-scroll-empty-expected.txt: Removed.
  • animations/trigger-container-scroll-empty.html: Removed.
  • animations/trigger-container-scroll-simple-expected.txt: Removed.
  • animations/trigger-container-scroll-simple.html: Removed.
  • animations/trigger-parsing-expected.txt: Removed.
  • animations/trigger-parsing.html: Removed.
  • fast/css/compare-animation-trigger-expected.txt: Removed.
  • fast/css/compare-animation-trigger.html: Removed.
  • legacy-animation-engine/animations/trigger-computed-style-expected.txt: Removed.
  • legacy-animation-engine/animations/trigger-computed-style.html: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-boundaries-expected.txt: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-boundaries.html: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-empty-expected.txt: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-empty.html: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-simple-expected.txt: Removed.
  • legacy-animation-engine/animations/trigger-container-scroll-simple.html: Removed.
  • legacy-animation-engine/animations/trigger-parsing-expected.txt: Removed.
  • legacy-animation-engine/animations/trigger-parsing.html: Removed.
  • legacy-animation-engine/fast/css/compare-animation-trigger-expected.txt: Removed.
  • legacy-animation-engine/fast/css/compare-animation-trigger.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/wincairo/TestExpectations:
10:32 AM Changeset in webkit [236749] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

REGRESSION(r236662): Fix -Wformat warnings in CacheStorageEngineCaches.cpp
https://bugs.webkit.org/show_bug.cgi?id=190205

Reviewed by Chris Dumez.

Passing enums to %d is not kosher, at least not according to GCC's -Wformat. Avoid it.

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::initialize):
(WebKit::CacheStorage::Caches::readCachesFromDisk):
(WebKit::CacheStorage::Caches::writeCachesToDisk):

10:08 AM Changeset in webkit [236748] by commit-queue@webkit.org
  • 39 edits
    1 delete in trunk

Unreviewed, rolling out r236624 and r236671.
https://bugs.webkit.org/show_bug.cgi?id=190207

The change in r236624 introduced crashes on the bots
(Requested by ryanhaddad on #webkit).

Reverted changesets:

"Refactoring: eliminate raw pointer usage in Fullscreen code"
https://bugs.webkit.org/show_bug.cgi?id=188747
https://trac.webkit.org/changeset/236624

"Unify implementation in VideoFullscreenInterfaceAVKit"
https://bugs.webkit.org/show_bug.cgi?id=190091
https://trac.webkit.org/changeset/236671

9:46 AM Changeset in webkit [236747] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

Add release assertion to ensure m_owningPointerForClose is null in UniqueIDBDatabase::invokeOperationAndTransactionTimer()
https://bugs.webkit.org/show_bug.cgi?id=190178

Reviewed by Chris Dumez.

This would help debug rdar://problem/44902833.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::invokeOperationAndTransactionTimer):

9:15 AM Changeset in webkit [236746] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit

WebPageProxy::reattachToWebProcess cleanups
https://bugs.webkit.org/show_bug.cgi?id=189881

Reviewed by Chris Dumez.

Change the factoring to separate swap and crash code paths into different functions.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::swapToWebProcess):

Separate function for the swap case.

(WebKit::WebPageProxy::finishAttachingToWebProcess):

Factor the common parts here.

(WebKit::WebPageProxy::continueNavigationInNewProcess):

  • UIProcess/WebPageProxy.h:
8:55 AM Changeset in webkit [236745] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[WPE] Enable more Cache Storage and Service Workers tests
https://bugs.webkit.org/show_bug.cgi?id=190198

Patch by Frederic Wang <fwang@igalia.com> on 2018-10-02
Reviewed by Michael Catanzaro.

  • platform/wpe/TestExpectations: Unskip most tests and add expectations for a few of them.
8:50 AM Changeset in webkit [236744] by Chris Dumez
  • 2 edits in trunk/PerformanceTests

Regression(r236613): Parser/html-parser.html performance test is failing
https://bugs.webkit.org/show_bug.cgi?id=190201

Unreviewed, apply the same fix as in r236699 to make sure the iframe is treated as
same origin, so that calls to document.open() / document.write() succeed.

  • Parser/html-parser.html:
8:43 AM Changeset in webkit [236743] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak] Use our own check of flatpak repos
https://bugs.webkit.org/show_bug.cgi?id=190194

Allowing us to not mess up with user installation
and "--assumeyes" everywhere.

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

  • flatpak/flatpakutils.py:

(FlatpakPackage.init):
(FlatpakPackage.install):
(FlatpakPackage.update):
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.init):
(WebkitFlatpak.clean_args):

8:05 AM Changeset in webkit [236742] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Enable more Cache Storage and Service Workers tests
https://bugs.webkit.org/show_bug.cgi?id=190196

Patch by Frederic Wang <fwang@igalia.com> on 2018-10-02
Reviewed by Michael Catanzaro.

  • platform/gtk/TestExpectations: Unskip most tests are add some failure annotations.
7:19 AM Changeset in webkit [236741] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

this revision caused 39 layout test failures that tested for
scrolling, a bug was also not present in the commit or change
log. (Requested by Truitt on #webkit).

Reverted changeset:

"Unreviewed, fix unused variable in
RenderLayer::updateScrollableAreaSet"
https://trac.webkit.org/changeset/236719

7:02 AM Changeset in webkit [236740] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.22.0

WPE WebKit 2.22.0

7:01 AM Changeset in webkit [236739] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.22.0 release.

build-releng/..:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

build-releng/../Source/WebKit:

  • wpe/NEWS: Add release notes for 2.22.0.
7:01 AM Changeset in webkit [236738] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source

wip

6:42 AM Changeset in webkit [236737] by Caio Lima
  • 7 edits in trunk

[BigInt] BigInt.proptotype.toString is broken when radix is power of 2
https://bugs.webkit.org/show_bug.cgi?id=190033

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/big-int-to-string.js:

Source/JavaScriptCore:

The implementation of JSBigInt::toStringToGeneric doesn't handle power
of 2 radix when JSBigInt length is >= 2. To handle such cases, we
implemented JSBigInt::toStringBasePowerOfTwo that follows the
algorithm that groups bits using mask of (2 n) - 1 to extract every
digit.

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::toString):
(JSC::JSBigInt::toStringBasePowerOfTwo):

  • runtime/JSBigInt.h:

Source/WTF:

  • wtf/MathExtras.h:

(WTF::ctz32):

5:43 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
5:43 AM Changeset in webkit [236736] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236735 - [MSE][GStreamer] Add h264parse to accept MP4 without stss
https://bugs.webkit.org/show_bug.cgi?id=190143

Reviewed by Xabier Rodriguez-Calvar.

The MP4 file used in this URL does not contain a stss (Sync Sample
Box). In consequence, in acordance with the ISO BMFF spec, all samples
are assumed to be sync frames... But in this case that is not true,
it's just that the file is wrong (e.g. created with a buggy muxer).

http://orange-opensource.github.io/hasplayer.js/1.2.0/player.html?url=http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest

The way it works in other browsers is because instead of trusting the
MP4 stss table, they rely on parsing the h264 frames. We can do that
too.

This patch also changes RELEASE_ASSERT() when creating the parsers
to GLib criticals.

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

(WebCore::createOptionalParserForFormat):

5:27 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:57 AM Changeset in webkit [236735] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Add h264parse to accept MP4 without stss
https://bugs.webkit.org/show_bug.cgi?id=190143

Reviewed by Xabier Rodriguez-Calvar.

The MP4 file used in this URL does not contain a stss (Sync Sample
Box). In consequence, in acordance with the ISO BMFF spec, all samples
are assumed to be sync frames... But in this case that is not true,
it's just that the file is wrong (e.g. created with a buggy muxer).

http://orange-opensource.github.io/hasplayer.js/1.2.0/player.html?url=http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest

The way it works in other browsers is because instead of trusting the
MP4 stss table, they rely on parsing the h264 frames. We can do that
too.

This patch also changes RELEASE_ASSERT() when creating the parsers
to GLib criticals.

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

(WebCore::createOptionalParserForFormat):

4:47 AM Changeset in webkit [236734] by yusukesuzuki@slowstart.org
  • 9 edits in trunk/Source/JavaScriptCore

[JSC] Add branchIfNaN and branchIfNotNaN
https://bugs.webkit.org/show_bug.cgi?id=190122

Reviewed by Mark Lam.

Add AssemblyHelpers::{branchIfNaN, branchIfNotNaN} to make code more readable.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):
(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::getIntTypedArrayStoreOperand):
(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileNewArray):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal):
(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):
(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::purifyNaN):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNaN):
(JSC::AssemblyHelpers::branchIfNotNaN):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitFloatTypedArrayGetByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGenericContiguousPutByVal):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

4:31 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:29 AM Changeset in webkit [236733] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236721 - [GStreamer][playbin3] Stream tag lists leaks
https://bugs.webkit.org/show_bug.cgi?id=190192

Reviewed by Xabier Rodriguez-Calvar.

The gst_stream_get_tags() result is transfer-full, so needs to be adopted to prevent a leak.
Also check the tags list pointer which might be NULL in some cases.

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::naturalSize const):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):

4:29 AM Changeset in webkit [236732] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236668 - [GStreamer] Fix abort in gst_sample_get_info()
https://bugs.webkit.org/show_bug.cgi?id=190135

Reviewed by Philippe Normand.

A flush can occur before any frame has finished decoding -- especially
in tests, where actions on the player often occur in quick succession.

Therefore, the code must not assume by the time a flush occurs any
frame has reached the sink. This patch fixes a case when such wrong
assumption was causing gst_sample_get_info() to abort (crashing
WebKit).

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamerBase::createGLAppSink):

4:26 AM Changeset in webkit [236731] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK] Theming of authentication dialog breaks with themes other than Adwaita
https://bugs.webkit.org/show_bug.cgi?id=190117

Reviewed by Michael Catanzaro.

Adds the missing GTK_STYLE_CLASS_BACKGROUND to the WebKitWebViewDialog
widget, which was missing for GTK+ 3.20 or newer, and set the widget
as app-paintable to avoid the base class paint method to add an opaque
background.

Thanks to Benjamin Otte for the guidance to debug the theming issues.

  • UIProcess/API/gtk/WebKitWebViewDialog.cpp:

(webkitWebViewDialogDraw): Remove the style context save/restore, it
is unneeded because the style classes are set at widget construction
time and not changed ever after.
(webkitWebViewDialogConstructed): Mark the widget as app-paintable to
avoid the base widget paint operation to fill the whole background,
because the dialog widget paints the translucent overlay itself; and
also add the missing GTK_STYLE_CLASS_BACKGROUND class at construction
when building against GTK+ 3.20 or newer.

4:22 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:18 AM Changeset in webkit [236730] by eric.carlson@apple.com
  • 58 edits in trunk/Source

[MediaStream] RealtimeMediaSource should be able to vend hashed IDs
https://bugs.webkit.org/show_bug.cgi?id=190142
<rdar://problem/44911109>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, covered by existing tests.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::Source): Update order of parameters passed
to base class.

  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::start): ASSERT if document.deviceIDHashSalt is not the same
as passed salt.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::getSettings const): Don't need to hash ID.
(WebCore::MediaStreamTrack::getCapabilities const): Ditto.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.idl:
  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::allow): Pass hash salt to createMediaStream.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::createReceiverForSource): Update order of parameters passed
to base class.

  • Modules/webaudio/MediaStreamAudioSource.cpp:

(WebCore::MediaStreamAudioSource::MediaStreamAudioSource): Ditto.

  • platform/mediastream/MediaConstraints.h:
  • platform/mediastream/RealtimeIncomingAudioSource.cpp:

(WebCore::RealtimeIncomingAudioSource::RealtimeIncomingAudioSource): Ditto.

  • platform/mediastream/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource): Ditto.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::RealtimeMediaSource): Calculate hashed ID.
(WebCore::RealtimeMediaSource::selectSettings): Use m_hashedID.
(WebCore::RealtimeMediaSource::hashedId const): New.
(WebCore::RealtimeMediaSource::deviceIDHashSalt const): New.

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

(WebCore::RealtimeMediaSourceCenter::createMediaStream): Take hash salt, pass it when creating
a source.
(WebCore::RealtimeMediaSourceCenter::getUserMediaDevices): Ditto.
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints): Ditto.

  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mediastream/RealtimeMediaSourceFactory.h:
  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::RealtimeVideoSource::RealtimeVideoSource): Update parameters.

  • platform/mediastream/RealtimeVideoSource.h:
  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:

(WebCore::GStreamerAudioCaptureSource::create): Ditto.
(WebCore::GStreamerAudioCaptureSource::GStreamerAudioCaptureSource): Ditto.

  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h:
  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::create): Ditto.
(WebCore::GStreamerVideoCaptureSource::GStreamerVideoCaptureSource): Ditto.

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:

(WebCore::WrappedMockRealtimeAudioSource::WrappedMockRealtimeAudioSource): Ditto.
(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockGStreamerAudioCaptureSource::MockGStreamerAudioCaptureSource): Ditto.

  • platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h:
  • platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp:

(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockGStreamerVideoCaptureSource::MockGStreamerVideoCaptureSource): Ditto.

  • platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::create): Ditto.
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Ditto.
(WebCore::AVVideoCaptureSource::settings): Use hashedId to set device ID.
(WebCore::AVVideoCaptureSource::capabilities): Ditto.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::create): Update parameters.
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource): Ditto.
(WebCore::CoreAudioCaptureSource::capabilities): Use hashedId to set device ID.
(WebCore::CoreAudioCaptureSource::settings): Ditto.

  • platform/mediastream/mac/CoreAudioCaptureSource.h:
  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa): Update parameters.

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:

(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockRealtimeAudioSourceMac::MockRealtimeAudioSourceMac): Ditto.

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSource::create): Ditto.
(WebCore::MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac): Ditto.

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:

(WebCore::ScreenDisplayCaptureSourceMac::create): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream): Update logging.
(WebCore::ScreenDisplayCaptureSourceMac::startDisplayStream): Ditto.
(WebCore::ScreenDisplayCaptureSourceMac::frameAvailable): Ditto.

  • platform/mediastream/mac/WindowDisplayCaptureSourceMac.h:
  • platform/mediastream/mac/WindowDisplayCaptureSourceMac.mm:

(WebCore::WindowDisplayCaptureSourceMac::create): Update parameters.

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::create): Ditto.
(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource): Ditto.
(WebCore::MockRealtimeAudioSource::settings): Use hashedId to set device ID.
(WebCore::MockRealtimeAudioSource::capabilities): Ditto.

  • platform/mock/MockRealtimeAudioSource.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::create): Update parameters.
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Ditto.
(WebCore::MockRealtimeVideoSource::capabilities): Use hashedId to set device ID.
(WebCore::MockRealtimeVideoSource::settings): Ditto.

  • platform/mock/MockRealtimeVideoSource.h:

Source/WebKit:

  • Shared/WebCoreArgumentCoders.cpp:

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

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::Source):
(WebKit::UserMediaCaptureManager::createCaptureSource):

  • WebProcess/cocoa/UserMediaCaptureManager.h:
4:15 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:14 AM Changeset in webkit [236729] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22

Merge r236716 - [GStreamer][MSE] Ubuntu LTS build broken since r236409
https://bugs.webkit.org/show_bug.cgi?id=190036

Reviewed by Michael Catanzaro.

Interrupt the build if MSE is enabled but no supported (1.14)
GStreamer version was found.

  • Source/cmake/GStreamerChecks.cmake:
4:12 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:12 AM Changeset in webkit [236728] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236717 - [MSE][GStreamer] Make same thread assert non-release
https://bugs.webkit.org/show_bug.cgi?id=189924

Reviewed by Xabier Rodriguez-Calvar.

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

(WebCore::AppendPipeline::handleNewAppsinkSample):

4:12 AM Changeset in webkit [236727] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236547 - [MSE][GStreamer] Use sentinel buffer to detect end of append
https://bugs.webkit.org/show_bug.cgi?id=189924

Reviewed by Philippe Normand.

This patch introduces a new mechanism to detect when an append has
been consumed completely by the demuxer. It takes advantage of the
fact that buffer pushing is synchronous: both the appsrc and the
demuxer live in the same streaming thread. When appsrc pushes a
buffer, it's actually making a qtdemux function call (it calls its
"chain" function). The demuxer will return from that call when it has
finished processing that buffer; only then the control returns to
appsrc, that can push the next buffer.

By pushing an additional buffer and capturing it in a probe we can
detect reliably when the previous buffer has been processed.
Because the pipeline only has one thread, at this point no more frames
can arrive to the appsink.

This replaces the old method of detecting end of append which relied
on the need-data event, which is more difficult to handle correctly
because it fires whenever the appsrc is empty (or below a given
level), which also happens when a buffer has not been pushed yet or
in response to a flush.

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

(WebCore::EndOfAppendMeta::init):
(WebCore::EndOfAppendMeta::transform):
(WebCore::EndOfAppendMeta::free):
(WebCore::AppendPipeline::staticInitialization):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::appsrcEndOfAppendCheckerProbe):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::consumeAppsinkAvailableSamples):
(WebCore::AppendPipeline::resetPipeline):
(WebCore::AppendPipeline::pushNewBuffer):
(WebCore::AppendPipeline::handleAppsrcNeedDataReceived): Deleted.:
(WebCore::AppendPipeline::handleAppsrcAtLeastABufferLeft): Deleted.
(WebCore::AppendPipeline::checkEndOfAppend): Deleted.
(WebCore::AppendPipeline::setAppsrcDataLeavingProbe): Deleted.
(WebCore::AppendPipeline::removeAppsrcDataLeavingProbe): Deleted.
(WebCore::AppendPipeline::reportAppsrcAtLeastABufferLeft): Deleted.
(WebCore::AppendPipeline::reportAppsrcNeedDataReceived): Deleted.
(WebCore::appendPipelineAppsrcDataLeaving): Deleted.
(WebCore::appendPipelineAppsrcNeedData): Deleted.

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
4:08 AM Changeset in webkit [236726] by Adrian Perez de Castro
  • 5 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r236399 - [MSE][GStreamer] Use no-more-pads event for noticing initialization segments
https://bugs.webkit.org/show_bug.cgi?id=189868

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Fixes the following YTTV 2018 tests:
62.VideoDimensionVP9
63.PlaybackStateVP9

This removes the hack that was making supporting multiple tracks in
the same file in MSE impossible.

For WebM, this GStreamer patch is required:
https://bugzilla.gnome.org/show_bug.cgi?id=797187
"matroskademux: Emit no-more-pads after parsing Tracks"

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

(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::demuxerNoMorePads):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
(WebCore::AppendPipeline::appendPipelineDemuxerNoMorePadsFromAnyThread):
(WebCore::appendPipelineDemuxerNoMorePads):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:

Tools:

Added patch from https://bugzilla.gnome.org/show_bug.cgi?id=797187

  • gstreamer/jhbuild.modules:
  • gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch: Added.
4:07 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:45 AM Changeset in webkit [236725] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Blacklist more tests that are requiring webrtc <-> webaudio bridging
https://bugs.webkit.org/show_bug.cgi?id=189829

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

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
3:39 AM Changeset in webkit [236724] by Wenson Hsieh
  • 22 edits
    2 copies
    1 add in trunk

[macOS] Implement a way for the UI process to request typing attributes at the current selection
https://bugs.webkit.org/show_bug.cgi?id=189983
<rdar://problem/44648705>

Reviewed by Ryosuke Niwa.

Source/WebKit:

Implements -[WKWebView typingAttributesWithCompletionHandler:], which asynchronously retrieves an NSDictionary
containing the typing attributes at the start of the current selection. This is a new asynchronous text input
client hook on macOS that is needed in order to support NSInspectorBar on WKWebView.

At a high level, this patch builds on top of refactoring done in r236445 to make it possible to send typing
attributes from the web process to the UI process, and then adds plumbing in the WebKit2 client layer to surface
typing attributes to WKWebView on macOS.

Tests: FontManagerTests.TypingAttributesAfterSubscriptAndSuperscript

FontManagerTests.ChangeTypingAttributesWithInspectorBar
FontManagerTests.ChangeAttributesWithFontEffectsBox

  • Platform/spi/mac/AppKitSPI.h:
  • Shared/WebCoreArgumentCoders.cpp:

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

Implement IPC coding support for FontAttributes.

  • Shared/WebCoreArgumentCoders.h:
  • Shared/mac/ArgumentCodersMac.h:
  • Shared/mac/ArgumentCodersMac.mm:

(IPC::encode):
(IPC::decode):

Add the ability to encode and decode UIFont. This allows Cocoa platforms to send FontAttributes.font over IPC
with a single call to IPC::encode/IPC::decode.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView typingAttributesWithCompletionHandler:]):

Add plumbing to WebViewImpl.

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

(WebKit::WebViewImpl::selectionDidChange):

Update the NSInspectorBar on selection change, but only if it is present and visible, and WKWebView is currently
first responder.

(WebKit::WebViewImpl::typingAttributesWithCompletionHandler):

Call into WebPageProxy to retrieve FontAttributes from the web process, and invoke the callback with an
NSDictionary constructed from the retrieved FontAttributes.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestFontAttributesAtSelectionStart):
(WebKit::WebPageProxy::fontAttributesCallback):

Add plumbing to retrieve FontAttributes from the web process at the current selection. Additionally, cache the
font attributes to avoid doing extra work during subsequent requests.

(WebKit::WebPageProxy::resetStateAfterProcessExited):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::cachedFontAttributesAtSelectionStart const):

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::editorStateChanged):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::editorStateChanged):

Invalidate cached font attributes.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::requestFontAttributesAtSelectionStart):

Use the currently focused frame's Editor to compute FontAttributes at the current selection, and send the
computed FontAttributes back to the UI process.

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

Tools:

Adds new FontManagerTests that exercise -typingAttributesWithCompletionHandler:. See below for more detail.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h:
  • TestWebKitAPI/Tests/mac/FontManagerTests.mm:

Add a new test that exercises font attribute modification via inspector bar. Also, add a new test that checks
typing attributes when using subscript/superscript/unscript. Lastly, augment an existing NSFontPanel test to
additionally check that shadowed text and strike-through are reflected in typing attributes.

(-[FontManagerTestWKWebView inspectorBarItemIdentifiers]):
(-[TestWKWebView typingAttributes]):

Add a synchronous wrapper around -typingAttributesWithCompletionHandler: by spinning the runloop.

(-[TestWKWebView collapseToStart]):
(webViewForFontManagerTesting):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/mac/TestInspectorBar.h: Copied from Tools/TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h.
  • TestWebKitAPI/mac/TestInspectorBar.mm: Added.

Introduce subclasses of __InspectorBarItemController and NSInspectorBar for testing inspector bar interaction.

(-[TestInspectorBarItemController initWithInspectorBar:]):
(-[TestInspectorBarItemController inspectorBar]):
(-[TestInspectorBarItemController updateSelectedAttributes]):
(-[TestInspectorBar initWithWebView:]):
(+[TestInspectorBar standardItemControllerClass]):
(+[TestInspectorBar standardTextItemIdentifiers]):
(-[TestInspectorBar _setStyleControlSelected:atIndex:]):
(-[TestInspectorBar chooseFontSize:]):
(-[TestInspectorBar chooseFontFamily:]):
(-[TestInspectorBar _chooseColor:inColorWell:]):
(-[TestInspectorBar chooseForegroundColor:]):
(-[TestInspectorBar chooseBackgroundColor:]):
(-[TestInspectorBar formatBold:]):
(-[TestInspectorBar formatItalic:]):
(-[TestInspectorBar formatUnderline:]):

Add helper methods to TestInspectorBar to simulate interacting with various controls (e.g. color wells and font
styling controls).

(-[TestInspectorBar itemController]):
(-[TestInspectorBar setItemController:]):

3:38 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:35 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:17 AM Changeset in webkit [236723] by Basuke Suzuki
  • 2 edits
    7 adds in trunk/LayoutTests

[WinCairo] Enable some wpt tests.
https://bugs.webkit.org/show_bug.cgi?id=190129

Unreviewed test gardening..

  • platform/wincairo/TestExpectations:
  • platform/wincairo/http/wpt/html/browsers/browsing-the-web/navigating-across-documents/click-expected.txt: Added.
  • platform/wincairo/http/wpt/html/browsers/browsing-the-web/navigating-across-documents/href-expected.txt: Added.
2:47 AM Changeset in webkit [236722] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[Flatpak] Implement icecream and ccache support
https://bugs.webkit.org/show_bug.cgi?id=190146

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

  • flatpak/flatpakutils.py:

(WebkitFlatpak.load_from_args):
(WebkitFlatpak.init):
(WebkitFlatpak.clean_args):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.save_config):
(WebkitFlatpak):
(WebkitFlatpak.setup_ccache):
(WebkitFlatpak.setup_icecc):
(WebkitFlatpak.setup_dev_env):

  • flatpak/org.webkit.WebKit.yaml:
2:43 AM Changeset in webkit [236721] by Philippe Normand
  • 4 edits in trunk/Source/WebCore

[GStreamer][playbin3] Stream tag lists leaks
https://bugs.webkit.org/show_bug.cgi?id=190192

Reviewed by Xabier Rodriguez-Calvar.

The gst_stream_get_tags() result is transfer-full, so needs to be adopted to prevent a leak.
Also check the tags list pointer which might be NULL in some cases.

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::naturalSize const):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):

2:32 AM Changeset in webkit [236720] by Michael Catanzaro
  • 2 edits in trunk/Tools

Unreviewed, fix missing return value in TestController::keyExistsInKeychain

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::keyExistsInKeychain):

2:30 AM Changeset in webkit [236719] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix unused variable in RenderLayer::updateScrollableAreaSet

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const): This is a prepare-ChangeLog bug. I don't
have any changes in this function....

2:29 AM Changeset in webkit [236718] by Basuke Suzuki
  • 2 edits in trunk/Tools

[WinCairo] Enable WPT tests environment.
https://bugs.webkit.org/show_bug.cgi?id=190128

Reviewed by Youenn Fablet.

Escaping backslash of the path not to confuse the JSON parser.

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

(WebPlatformTestServer._prepare_config):

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

[MSE][GStreamer] Make same thread assert non-release
https://bugs.webkit.org/show_bug.cgi?id=189924

Reviewed by Xabier Rodriguez-Calvar.

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

(WebCore::AppendPipeline::handleNewAppsinkSample):

1:04 AM WebKitGTK/2.22.x edited by Philippe Normand
(diff)
1:02 AM Changeset in webkit [236716] by Philippe Normand
  • 2 edits in trunk

[GStreamer][MSE] Ubuntu LTS build broken since r236409
https://bugs.webkit.org/show_bug.cgi?id=190036

Reviewed by Michael Catanzaro.

Interrupt the build if MSE is enabled but no supported (1.14)
GStreamer version was found.

  • Source/cmake/GStreamerChecks.cmake:
1:00 AM Changeset in webkit [236715] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas: replace constant numbers with their associated name on WebGL contexts
https://bugs.webkit.org/show_bug.cgi?id=190026

Reviewed by Joseph Pecoraro.

  • UserInterface/Models/RecordingAction.js:

(WI.RecordingAction.constantNameForParameter): Added.
(WI.RecordingAction.prototype.getColorParameters):
(WI.RecordingAction.prototype.getImageParameters):
Drive-by: add additional swatches to color/image arguments for WebGL actions.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
Drive-by: ensure that the WI.RecordingContentView is showing before applying the action.

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement._generateDOM.createParameterElement):
(WI.RecordingActionTreeElement._generateDOM):

  • UserInterface/Views/RecordingActionTreeElement.css:

(.item.action > .titles .parameter.constant): Added.

Oct 1, 2018:

11:59 PM Changeset in webkit [236714] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix a typo for execution context identifier
https://bugs.webkit.org/show_bug.cgi?id=190185

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-10-01
Reviewed by Matt Baker.

  • UserInterface/Protocol/MainTarget.js:

(WI.MainTarget):

  • UserInterface/Protocol/WorkerTarget.js:

(WI.WorkerTarget):

11:53 PM Changeset in webkit [236713] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Function.toString() should also copy the source code Functions that are class definitions.
https://bugs.webkit.org/show_bug.cgi?id=190186
<rdar://problem/44733360>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-190186.js: Added.

Source/JavaScriptCore:

Previously, if the Function is a class definition, functionProtoFuncToString()
would create a String using StringView::toStringWithoutCopying(), and use that
String to make a JSString. This is not a problem if the underlying SourceProvider
(that backs the characters in that StringView) is immortal. However, this is
not always the case in practice.

This patch fixes this issue by changing functionProtoFuncToString() to create the
String using StringView::toString() instead, which makes a copy of the underlying
characters buffer. This detaches the resultant JSString from the SourceProvider
characters buffer that it was created from, and ensure that the underlying
characters buffer of the string will be alive for the entire lifetime of the
JSString.

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

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

[Win][DRT] Actually set "experimental:WebAnimationsCSSIntegrationEnabled" when requested
https://bugs.webkit.org/show_bug.cgi?id=190150

Reviewed by Fujii Hironori.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(setWebPreferencesForTestOptions):
DRT has been recognizing this field, but not propagating its value to WebPreferences.

9:58 PM Changeset in webkit [236711] by Ross Kirsling
  • 2 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening.

  • platform/wincairo/TestExpectations:
9:03 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
8:29 PM Changeset in webkit [236710] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Removed a failing test expectation on imported/w3c/web-platform-tests/shadow-dom/slotchange.html
since we haven't seen a single failure after the fix in r236440.

  • platform/mac/TestExpectations:
7:27 PM Changeset in webkit [236709] by Devin Rousso
  • 6 edits
    3 deletes in trunk/Source

Web Inspector: remove analyzer manager
https://bugs.webkit.org/show_bug.cgi?id=190162

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

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

(WI.loaded):

  • UserInterface/Controllers/AnalyzerManager.js: Removed.
  • UserInterface/Models/AnalyzerMessage.js: Removed.
  • Scripts/copy-user-interface-resources.pl:
  • UserInterface/External/ESLint/LICENSE: Removed.
  • UserInterface/External/ESLint/eslint.js: Removed.

Source/WebKit:

  • InspectorGResources.cmake:

Remove eslint.

7:15 PM Changeset in webkit [236708] by mmaxfield@apple.com
  • 5 edits
    3 copies
    1 add in trunk/LayoutTests

[Cocoa] Update delete-emoji expected results
https://bugs.webkit.org/show_bug.cgi?id=190182

Unreviewed.

Simply update the expected results.

  • platform/mac-highsierra/editing/deleting/delete-emoji-1-expected.txt: Copied from LayoutTests/platform/mac/editing/deleting/delete-emoji-1-expected.txt.
  • platform/mac-highsierra/editing/deleting/delete-emoji-9-expected.txt: Copied from LayoutTests/platform/mac/editing/deleting/delete-emoji-9-expected.txt.
  • platform/mac-highsierra/editing/deleting/delete-emoji-expected.txt: Copied from LayoutTests/platform/mac/editing/deleting/delete-emoji-expected.txt.
  • platform/mac/TestExpectations:
  • platform/mac/editing/deleting/delete-emoji-1-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-9-expected.txt:
  • platform/mac/editing/deleting/delete-emoji-expected.txt:
6:59 PM Changeset in webkit [236707] by rniwa@webkit.org
  • 13 edits in trunk

Add a new variant of serializePreservingVisualAppearance which takes VisibleSelection
https://bugs.webkit.org/show_bug.cgi?id=190108

Reviewed by Wenson Hsieh.

Source/WebCore:

Added a version of serializePreservingVisualAppearance which takes VisibleSelection so that we can avoid creating
a range simply to get the first node and the end node of the selection later. This simple change also fixes a bug
demonstrated in editing/pasteboard/paste-table-003.html.

Test: editing/pasteboard/paste-table-003.html

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::selectionInHTMLFormat): Adopt the new variant.

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::writeSelectionToPasteboard): Ditto.

  • editing/markup.cpp:

(WebCore::serializePreservingVisualAppearance): Added.

  • editing/markup.h:
  • editing/wpe/EditorWPE.cpp:

(WebCore::Editor::writeSelectionToPasteboard): Ditto.

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createFromSelection): Ditto.

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeSelection): Ditto.

Source/WebKit:

Adopt the new variant which directly takes VisibleSelection.

  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::updateGlobalSelection):

LayoutTests:

Rebaselined the test since the bug that interchange new lines are inserted in the last table cell is fixed.
Also updated the description in the test to reflect this change.

  • editing/pasteboard/paste-table-003-expected.txt:
  • editing/pasteboard/paste-table-003.html:
6:37 PM Changeset in webkit [236706] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: add an experimental setting for multi-property selection
https://bugs.webkit.org/show_bug.cgi?id=190053
<rdar://problem/44842787>

Reviewed by Matt Baker.

This patch only adds a setting. It doesn't change property selection behavior.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

6:36 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
6:32 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
6:31 PM Changeset in webkit [236705] by Nikita Vasilyev
  • 23 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: use the same CSS variables for dark and light modes
https://bugs.webkit.org/show_bug.cgi?id=189766
<rdar://problem/44619650>

Use --text-color and --background-color CSS variables for both dark and light modes.

Reviewed by Matt Baker.

  • UserInterface/Views/BreakpointPopoverController.css:

(.popover .edit-breakpoint-popover-content > label.toggle):
Color of the label matches the color of the popover, no need to specify it.

(.edit-breakpoint-popover-condition):
(@media (prefers-dark-interface)):
(.popover .edit-breakpoint-popover-content > table > tr > th):

  • UserInterface/Views/CompletionSuggestionsView.css:

(.completion-suggestions-container > .item):
(@media (prefers-dark-interface)):
(.completion-suggestions):

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.details-section:matches(.computed-style-properties, .computed-style-box-model):not(.collapsed) > :matches(.header, .content)):
(.computed-style-properties .property:hover .go-to-arrow):
(@media (prefers-dark-interface)): Deleted.
(.computed-style-properties.details-section): Deleted.
(.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)): Deleted.

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom):
(@media (prefers-dark-interface)):

  • UserInterface/Views/DataGrid.css:

(.data-grid th):
(body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
(@media (prefers-dark-interface)):

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
(@media (prefers-dark-interface)):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):

  • UserInterface/Views/InlineSwatch.css:

(.inline-swatch):
(.inline-swatch-variable-popover .CodeMirror pre):
(@media (prefers-dark-interface)): Deleted.

  • UserInterface/Views/NetworkResourceDetailView.css:

(.network-resource-detail):
(.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
(@media (prefers-dark-interface)):
(.resource-headers .value): Deleted.
Move this rule to ResourceHeadersContentView.css.

  • UserInterface/Views/ObjectPreviewView.css:

(.object-preview):
(@media (prefers-dark-interface)):
(.object-preview .name):

  • UserInterface/Views/ObjectTreeView.css:

(.object-tree):
(.object-tree-property :matches(.formatted-string, .formatted-regexp)):
(@media (prefers-dark-interface)): Deleted.
(.object-tree,): Deleted.

(.object-preview .name): Deleted.
(.object-preview > .size): Deleted.
Move these rules to ObjectPreviewView.css.

  • UserInterface/Views/QuickConsole.css:

(.quick-console):
(@media (prefers-dark-interface)):

  • UserInterface/Views/ResourceHeadersContentView.css:

(.resource-headers .value):
(.resource-headers.showing-find-banner .search-highlight):
(@media (prefers-dark-interface)): Deleted.

  • UserInterface/Views/ResourceTimingBreakdownView.css:

(.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
(@media (prefers-dark-interface)):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
(.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
(@media (prefers-dark-interface)):
(.spreadsheet-style-declaration-editor .property.has-warning .warning):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:

(.spreadsheet-css-declaration .media-label):
(.spreadsheet-css-declaration .selector:focus,):
(@media (prefers-dark-interface)):
(.spreadsheet-css-declaration .origin .go-to-link,):

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover):
(@media (prefers-dark-interface)):
(.sidebar > .panel.details.css-style > .content > .rules .section-header):

  • UserInterface/Views/SyntaxHighlightingDefaultTheme.css:

(.cm-s-default,):
(@media (prefers-dark-interface)):
(.syntax-highlighted,): Deleted.

  • UserInterface/Views/Table.css:

(.table):
(.table > .header):

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview > .navigation-bar.timelines):
(@media (prefers-dark-interface)):

  • UserInterface/Views/TimelineRecordingContentView.css:

(.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):
(.content-view.timeline-recording > .content-browser .recording-progress > .status > .indeterminate-progress-spinner):
(@media (prefers-dark-interface)): Deleted.

  • UserInterface/Views/Variables.css:

(:root):
(@media (prefers-dark-interface)):

  • UserInterface/Views/XHRBreakpointPopover.css:

(.popover .xhr-breakpoint-content > .editor-wrapper > .editor):
(@media (prefers-dark-interface)):

6:12 PM Changeset in webkit [236704] by Kocsen Chung
  • 1 copy in tags/Safari-606.2.104

Tag Safari-606.2.104.

5:21 PM Changeset in webkit [236703] by achristensen@apple.com
  • 3 edits
    1 delete in trunk/Source/WebCore

Don't read from WebCore's bundle for IDNScriptWhiteList
https://bugs.webkit.org/show_bug.cgi?id=190157

Reviewed by Dan Bernstein.

No change in behavior. This increases performance by not reading from the WebCore bundle,
and it makes it so that URL-related functionality can be moved to a place without
a bundle for resources.

  • Resources/IDNScriptWhiteList.txt: Removed.
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::whiteListIDNScripts):
(WebCore::allCharactersInIDNScriptWhiteList):
(WebCore::readIDNScriptWhiteListFile): Deleted.

5:16 PM Changeset in webkit [236702] by achristensen@apple.com
  • 4 edits in trunk

Unreviewed, rolling out r236551.

Fails URL validating too aggressively

Reverted changeset:

"URLWithUserTypedString should return nil for URLs deemed to
be invalid by WebCore::URL"
https://bugs.webkit.org/show_bug.cgi?id=189979
https://trac.webkit.org/changeset/236551

5:07 PM Changeset in webkit [236701] by aestes@apple.com
  • 6 edits in trunk/Source

[watchOS] Adopt NSURLSessionCompanionProxyPreference
https://bugs.webkit.org/show_bug.cgi?id=190177
<rdar://problem/43402114>

Reviewed by Wenson Hsieh.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

Source/WTF:

  • wtf/FeatureDefines.h:
4:46 PM Changeset in webkit [236700] by Chris Dumez
  • 4 edits
    2 moves in trunk/Source/WebKit

[Mac] The UIProcess should listen to memory pressure signals
https://bugs.webkit.org/show_bug.cgi?id=190166

Reviewed by Simon Fraser.

The UIProcess should listen to memory pressure signals on Mac in order to free memory, similarly to what we already
do on iOS. The memory pressure handler currently discards view snapshots and prewarmed processes.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebMemoryPressureHandlerCocoa.h: Renamed from Source/WebKit/UIProcess/ios/WebMemoryPressureHandlerIOS.h.
  • UIProcess/Cocoa/WebMemoryPressureHandlerCocoa.mm: Renamed from Source/WebKit/UIProcess/ios/WebMemoryPressureHandlerIOS.mm.

(WebKit::installMemoryPressureHandler):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize):

  • WebKit.xcodeproj/project.pbxproj:
4:45 PM Changeset in webkit [236699] by Chris Dumez
  • 2 edits in trunk/PerformanceTests

Regression(r236613): Parser/HTML5-8266-ParseOnly.html performance tests no longer runs
https://bugs.webkit.org/show_bug.cgi?id=190174

Reviewed by Ryosuke Niwa.

Update iframe's sandbox to use 'allow-same-origin' so that the iframe is treated as same-origin and so that
the top frame can call document.open() / document.write() on the subframe. This test was also failing in
Firefox without this change.

  • Parser/HTML5-8266-ParseOnly.html:
4:28 PM Changeset in webkit [236698] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Fix Internal iOS Build after r236690
https://bugs.webkit.org/show_bug.cgi?id=190171

Reviewed by Alex Christensen.

  • Platform/ExtraPrivateSymbolsForTAPI.h:
4:23 PM Changeset in webkit [236697] by keith_miller@apple.com
  • 81 edits in trunk/Source

Create a RELEASE_AND_RETURN macro for ExceptionScopes
https://bugs.webkit.org/show_bug.cgi?id=190163

Reviewed by Mark Lam.

The new RELEASE_AND_RETURN does all the work for cases
where you want to return the result of some expression
without explicitly checking for an exception. This is
much like the existing RETURN_IF_EXCEPTION macro.

Source/JavaScriptCore:

  • dfg/DFGOperations.cpp:

(JSC::DFG::newTypedArrayWithSize):

  • interpreter/Interpreter.cpp:

(JSC::eval):

  • jit/JITOperations.cpp:

(JSC::getByVal):

  • jsc.cpp:

(functionDollarAgentReceiveBroadcast):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::varargsSetup):

  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::toJSON const):

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::hostResolveImportedModule):

  • runtime/ArrayConstructor.cpp:

(JSC::constructArrayWithSizeQuirk):

  • runtime/ArrayPrototype.cpp:

(JSC::getProperty):
(JSC::fastJoin):
(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncToLocaleString):
(JSC::arrayProtoFuncJoin):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoPrivateFuncConcatMemcpy):

  • runtime/BigIntConstructor.cpp:

(JSC::toBigInt):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::opInByVal):

  • runtime/ConstructData.cpp:

(JSC::construct):

  • runtime/DateConstructor.cpp:

(JSC::dateParse):

  • runtime/DatePrototype.cpp:

(JSC::dateProtoFuncToPrimitiveSymbol):

  • runtime/DirectArguments.h:
  • runtime/ErrorConstructor.cpp:

(JSC::Interpreter::constructWithErrorConstructor):

  • runtime/ErrorPrototype.cpp:

(JSC::errorProtoFuncToString):

  • runtime/ExceptionScope.h:
  • runtime/FunctionConstructor.cpp:

(JSC::constructFunction):

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::defineOwnProperty):

  • runtime/GetterSetter.cpp:

(JSC::callGetter):

  • runtime/IntlCollatorConstructor.cpp:

(JSC::IntlCollatorConstructorFuncSupportedLocalesOf):

  • runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorFuncCompare):
(JSC::IntlCollatorPrototypeFuncResolvedOptions):

  • runtime/IntlDateTimeFormatConstructor.cpp:

(JSC::IntlDateTimeFormatConstructorFuncSupportedLocalesOf):

  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatFuncFormatDateTime):
(JSC::IntlDateTimeFormatPrototypeFuncFormatToParts):
(JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):

  • runtime/IntlNumberFormatConstructor.cpp:

(JSC::IntlNumberFormatConstructorFuncSupportedLocalesOf):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatFuncFormatNumber):
(JSC::IntlNumberFormatPrototypeFuncFormatToParts):
(JSC::IntlNumberFormatPrototypeFuncResolvedOptions):

  • runtime/IntlObject.cpp:

(JSC::intlNumberOption):

  • runtime/IntlObjectInlines.h:

(JSC::constructIntlInstanceWithWorkaroundForLegacyIntlConstructor):

  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::resolvedOptions):

  • runtime/IntlPluralRulesConstructor.cpp:

(JSC::IntlPluralRulesConstructorFuncSupportedLocalesOf):

  • runtime/IntlPluralRulesPrototype.cpp:

(JSC::IntlPluralRulesPrototypeFuncSelect):
(JSC::IntlPluralRulesPrototypeFuncResolvedOptions):

  • runtime/JSArray.cpp:

(JSC::JSArray::defineOwnProperty):
(JSC::JSArray::put):
(JSC::JSArray::setLength):
(JSC::JSArray::unshiftCountWithAnyIndexingType):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::arrayBufferProtoGetterFuncByteLength):
(JSC::sharedArrayBufferProtoGetterFuncByteLength):

  • runtime/JSArrayInlines.h:

(JSC::toLength):

  • runtime/JSBoundFunction.cpp:

(JSC::boundFunctionCall):
(JSC::boundFunctionConstruct):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toIndex const):
(JSC::JSValue::toPropertyKey const):
(JSC::JSValue::get const):
(JSC::JSValue::getPropertySlot const):
(JSC::JSValue::getOwnPropertySlot const):
(JSC::JSValue::equalSlowCaseInline):

  • runtime/JSDataView.cpp:

(JSC::JSDataView::put):
(JSC::JSDataView::defineOwnProperty):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayViewWithArguments):
(JSC::constructGenericTypedArrayView):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::set):
(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::speciesConstruct):
(JSC::genericTypedArrayViewProtoFuncJoin):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::put):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::decode):
(JSC::globalFuncEval):
(JSC::globalFuncProtoGetter):

  • runtime/JSInternalPromise.cpp:

(JSC::JSInternalPromise::then):

  • runtime/JSModuleEnvironment.cpp:

(JSC::JSModuleEnvironment::put):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::provideFetch):
(JSC::JSModuleLoader::loadAndEvaluateModule):
(JSC::JSModuleLoader::loadModule):
(JSC::JSModuleLoader::linkAndEvaluateModule):
(JSC::JSModuleLoader::requestImportModule):
(JSC::JSModuleLoader::getModuleNamespaceObject):
(JSC::moduleLoaderRequestedModules):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::stringify):
(JSC::Stringifier::toJSON):
(JSC::Walker::walk):
(JSC::JSONProtoFuncStringify):

  • runtime/JSObject.cpp:

(JSC::ordinarySetSlow):
(JSC::JSObject::putInlineSlow):
(JSC::JSObject::toPrimitive const):
(JSC::JSObject::hasInstance):
(JSC::JSObject::toNumber const):
(JSC::JSObject::defineOwnIndexedProperty):
(JSC::JSObject::putByIndexBeyondVectorLengthWithArrayStorage):
(JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage):
(JSC::JSObject::defineOwnNonIndexProperty):

  • runtime/JSObject.h:

(JSC::JSObject::get const):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::getPropertySlot const):
(JSC::JSObject::putInlineForJSObject):

  • runtime/MapConstructor.cpp:

(JSC::constructMap):

  • runtime/NativeErrorConstructor.cpp:

(JSC::Interpreter::constructWithNativeErrorConstructor):

  • runtime/ObjectConstructor.cpp:

(JSC::constructObject):
(JSC::objectConstructorGetPrototypeOf):
(JSC::objectConstructorGetOwnPropertyDescriptor):
(JSC::objectConstructorGetOwnPropertyDescriptors):
(JSC::objectConstructorGetOwnPropertyNames):
(JSC::objectConstructorGetOwnPropertySymbols):
(JSC::objectConstructorKeys):
(JSC::objectConstructorDefineProperty):
(JSC::objectConstructorDefineProperties):
(JSC::objectConstructorCreate):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToLocaleString):
(JSC::objectProtoFuncToString):

  • runtime/Operations.cpp:

(JSC::jsAddSlowCase):

  • runtime/Operations.h:

(JSC::jsString):
(JSC::jsLess):
(JSC::jsLessEq):

  • runtime/ParseInt.h:

(JSC::toStringView):

  • runtime/ProxyConstructor.cpp:

(JSC::constructProxyObject):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::toStringName):
(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::getOwnPropertySlotCommon):
(JSC::ProxyObject::performPut):
(JSC::ProxyObject::putByIndexCommon):
(JSC::performProxyCall):
(JSC::performProxyConstruct):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performPreventExtensions):
(JSC::ProxyObject::performIsExtensible):
(JSC::ProxyObject::performDefineOwnProperty):
(JSC::ProxyObject::performSetPrototype):
(JSC::ProxyObject::performGetPrototype):

  • runtime/ReflectObject.cpp:

(JSC::reflectObjectConstruct):
(JSC::reflectObjectDefineProperty):
(JSC::reflectObjectGet):
(JSC::reflectObjectGetOwnPropertyDescriptor):
(JSC::reflectObjectGetPrototypeOf):
(JSC::reflectObjectOwnKeys):
(JSC::reflectObjectSet):

  • runtime/RegExpConstructor.cpp:

(JSC::constructRegExp):

  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::defineOwnProperty):
(JSC::RegExpObject::matchGlobal):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncTestFast):
(JSC::regExpProtoFuncExec):
(JSC::regExpProtoFuncToString):

  • runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::newCodeBlockFor):

  • runtime/SetConstructor.cpp:

(JSC::constructSet):

  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::putEntry):
(JSC::SparseArrayEntry::put):

  • runtime/StringConstructor.cpp:

(JSC::stringFromCharCode):
(JSC::stringFromCodePoint):

  • runtime/StringObject.cpp:

(JSC::StringObject::put):
(JSC::StringObject::putByIndex):
(JSC::StringObject::defineOwnProperty):

  • runtime/StringPrototype.cpp:

(JSC::jsSpliceSubstrings):
(JSC::jsSpliceSubstringsWithSeparators):
(JSC::removeUsingRegExpSearch):
(JSC::replaceUsingRegExpSearch):
(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
(JSC::replaceUsingStringSearch):
(JSC::repeatCharacter):
(JSC::replace):
(JSC::stringProtoFuncReplaceUsingRegExp):
(JSC::stringProtoFuncReplaceUsingStringSearch):
(JSC::stringProtoFuncSplitFast):
(JSC::stringProtoFuncToLowerCase):
(JSC::stringProtoFuncToUpperCase):
(JSC::toLocaleCase):
(JSC::trimString):
(JSC::stringProtoFuncIncludes):
(JSC::builtinStringIncludesInternal):
(JSC::normalize):
(JSC::stringProtoFuncNormalize):

  • runtime/SymbolPrototype.cpp:

(JSC::symbolProtoFuncToString):
(JSC::symbolProtoFuncValueOf):

  • tools/JSDollarVM.cpp:

(WTF::functionWasmStreamingParserAddBytes):
(JSC::functionGetPrivateProperty):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::constructJSWebAssemblyCompileError):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::constructJSWebAssemblyModule):
(JSC::WebAssemblyModuleConstructor::createModule):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::constructJSWebAssemblyTable):

  • wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::callWebAssemblyWrapperFunction):

Source/WebCore:

No new tests since this is a refactor.

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::put):

4:12 PM Changeset in webkit [236696] by Adrian Perez de Castro
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.22

[MSE][GStreamer] Reset running time in PlaybackPipeline::flush()
https://bugs.webkit.org/show_bug.cgi?id=190076

Reviewed by Philippe Normand.

Source/WebCore:

Test: media/media-source/media-source-seek-redundant-append.html

PlaybackPipeline::flush() is called when already enqueued frames are
appended again. This may be caused by a quality change or just a
redundant append. Either way, the pipeline has to be flushed and
playback begin again, but without changing the player position by
much.

There are two kinds of time to consider here: stream time (i.e. the
time of a frame as written in the file, e.g. a frame may have stream
time 0:01:00), and running time (i.e. how much time since playback
started should pass before the frame should be played, e.g. if we
started playing at 0:00:59 that same frame would have a running time
of just 1 second).

Notice how running time depends on where and when playback starts.
Running time can also be optionally resetted after a flush. (This is
indeed done currently by most demuxers after a seek.)

Instead of resetting running time, PlaybackPipeline used to modify the
first GstSegment emitted after the flush. A GstSegment declares the
mapping between stream time and running time for the following frames.
There, PlaybackPipeline used to set base (the running time at which
the segment starts) to the position reported by a position query
(which is stream time).

This, of course, only worked when playback (or the last seek) started
at stream time 0:00:00, since that's the only case where running time
equals stream time. In other cases delays as long as the difference
between these timelines would appear. This is demonstrated in the
attached test, where seeks and appends are made in such an order that
the difference is more than 5 minutes, making the playback stall for

5 minutes before playing 1 second of audio.

This patch fixes the problem by resetting running time with the flush
and not modifying GstSegment.base anymore (it will be left as zero,
which is now correct since the running time has been reset).

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

(WebCore::PlaybackPipeline::flush):
(WebCore::segmentFixerProbe): Deleted.

LayoutTests:

A test where a seek is followed by a redundant append is added. This
test timed out in the GStreamer MSE implementation before the
accompanying patch fixed it.

The MIME type declared in test-48khz-manifest.json has also been
changed, from non-standard audio/x-m4a to `audio/mp4;
codecs="mp4a.40.2"`, as implied by the MSE specs. This should not
affect other tests because no other tests were reading this type
string before.

  • media/media-source/content/test-48khz-manifest.json:
  • media/media-source/media-source-seek-redundant-append-expected.txt: Added.
  • media/media-source/media-source-seek-redundant-append.html: Added.
  • media/video-test.js:
4:12 PM Changeset in webkit [236695] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merged patch for #190085 - [MSE] Use tolerance when growing the coded frame group
https://bugs.webkit.org/show_bug.cgi?id=190085

Patch by Alicia Boya García <aboya@igalia.com> on 2018-10-01
Reviewed by NOBODY (OOPS!).

build-releng/../LayoutTests:

A test simulating unordered appends with imprecise timestamps,
overlapping <1ms (replicating a typical WebM 30fps video file) is
added.

  • media/media-source/media-source-append-acb-tolerance.html: Added.

build-releng/../Source/WebCore:

Test: media/media-source/media-source-append-acb-tolerance.html

This patch introduces a millisecond tolerance in the range of
potential frames that should be erased frame from the track buffer
when the coded frame group is growing.

This is necessary because some files have imprecise overlapping
timestamps (especially WebM files).

This fixes a stall when seeking back and forth in YouTube with WebM
video.

A test case simulating the problem with video/mock using timestamps
similar to those of a typical 30 fps WebM video is also added.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

3:59 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:53 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:43 PM Changeset in webkit [236694] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the watchOS build after <https://trac.webkit.org/changeset/236678>
(https://bugs.webkit.org/show_bug.cgi?id=189974)

Explicitly cast index to unsigned to make the operator[] call unambiguous.

  • platform/ios/KeyEventIOS.mm:

(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):

2:53 PM Changeset in webkit [236693] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

ASAN failure in ~GCReachableRef()
https://bugs.webkit.org/show_bug.cgi?id=190113

Reviewed by Darin Adler.

The bug was caused by ~GCReachableRef accessing Ref after it had been poisoned for ASAN
in Ref::leakRef via Ref(Ref&& other). Fixed the bug by using RefPtr instead since that's
the simplest solution here although we could unpoison Ref temporarily as done in ~Ref.

  • dom/GCReachableRef.h:

(WebCore::GCReachableRef::GCReachableRef):
(WebCore::GCReachableRef::~GCReachableRef):
(WebCore::GCReachableRef::operator-> const):
(WebCore::GCReachableRef::get const):
(WebCore::GCReachableRef::operator T& const):
(WebCore::GCReachableRef::operator! const):
(WebCore::GCReachableRef::isNull const): Deleted.

2:25 PM Changeset in webkit [236692] by Ryan Haddad
  • 3 edits
    1 add in trunk/LayoutTests

Unreviewed, rebaseline tests after r236632.

  • platform/ios/css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
  • platform/ios/css3/blending/repaint/blend-mode-turn-off-isolation-expected.txt:
  • platform/ios/css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt: Added.
1:59 PM Changeset in webkit [236691] by Wenson Hsieh
  • 7 edits in trunk

[iOS] Add SPI to customize the input accessory view when focusing an element
https://bugs.webkit.org/show_bug.cgi?id=190152
<rdar://problem/42754975>

Reviewed by Dan Bernstein.

Source/WebKit:

Adds SPI on WKFormInputSession to customize the input accessory view, alongside the input view. See below for
more details.

Test: KeyboardInputTests.CustomInputViewAndInputAccessoryView

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

(-[WKFormInputSession customInputAccessoryView]):
(-[WKFormInputSession setCustomInputAccessoryView:]):

Reload input views when the custom input accessory view changes.

(-[WKContentView requiresAccessoryView]):

If a custom input accessory view is specified, return YES.

(-[WKContentView inputAccessoryView]):

Return the custom input accessory view if present, and fall back to the default web form accessory view.

Tools:

Add an API test to verify that setting a custom input accessory view and custom input view on the form input
session when focusing an element overrides the first responder's (i.e. WKContentView's) -inputView and
-inputAccessoryView.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(webViewWithAutofocusedInput):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/TestInputDelegate.h:
  • TestWebKitAPI/Tests/ios/TestInputDelegate.mm:

(-[TestInputDelegate setWillStartInputSessionHandler:]):
(-[TestInputDelegate willStartInputSessionHandler]):
(-[TestInputDelegate _webView:willStartInputSession:]):

1:44 PM Changeset in webkit [236690] by sihui_liu@apple.com
  • 54 edits
    7 deletes in trunk

Remove StorageProcess
https://bugs.webkit.org/show_bug.cgi?id=189975

Reviewed by Geoffrey Garen.

Source/WebCore:

Clean up code. No behavior change.

  • English.lproj/Localizable.strings:

Source/WebKit:

  • CMakeLists.txt:
  • Configurations/Storage-OSX-sandbox.entitlements: Removed.
  • Configurations/StorageService.xcconfig: Removed.
  • Configurations/WebKit.xcconfig:
  • DerivedSources.make:
  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::putOrAdd):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer):

  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:
  • Shared/ProcessExecutablePath.h:
  • Shared/Storage/StorageProcessCreationParameters.cpp: Removed.
  • Shared/Storage/StorageProcessCreationParameters.h: Removed.
  • Shared/glib/ProcessExecutablePathGLib.cpp:

(WebKit::executablePathOfStorageProcess): Deleted.

  • Sources.txt:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • StorageProcess/EntryPoint/mac/XPCService/StorageService/Info.plist: Removed.
  • StorageProcess/EntryPoint/mac/XPCService/StorageServiceEntryPoint.mm: Removed.
  • StorageProcess/EntryPoint/unix/StorageProcessMain.cpp: Removed.
  • StorageProcess/EntryPoint/win/StorageProcessMain.cpp: Removed.
  • StorageProcess/StorageProcess.cpp: Removed.
  • StorageProcess/StorageProcess.h: Removed.
  • StorageProcess/StorageProcess.messages.in: Removed.
  • StorageProcess/StorageToWebProcessConnection.cpp: Removed.
  • StorageProcess/StorageToWebProcessConnection.h: Removed.
  • StorageProcess/StorageToWebProcessConnection.messages.in: Removed.
  • StorageProcess/glib/StorageProcessMainGLib.cpp: Removed.
  • StorageProcess/ios/StorageProcessIOS.mm: Removed.
  • StorageProcess/mac/StorageProcessMac.mm: Removed.
  • StorageProcess/mac/com.apple.WebKit.Storage.sb.in: Removed.
  • StorageProcess/unix/StorageProcessMainUnix.h: Removed.
  • StorageProcess/win/StorageProcessMainWin.cpp: Removed.
  • StorageProcess/win/StorageProcessMainWin.h: Removed.
  • UIProcess/API/C/WKContext.cpp:

(WKContextTerminateStorageProcess): Deleted.
(WKContextGetDatabaseProcessIdentifier): Deleted.

  • UIProcess/API/C/WKContext.h:
  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _terminateStorageProcess]): Deleted.
(-[WKProcessPool _storageProcessIdentifier]): Deleted.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/win/ProcessLauncherWin.cpp:

(WebKit::processName):

  • UIProcess/Storage/StorageProcessProxy.cpp: Removed.
  • UIProcess/Storage/StorageProcessProxy.h: Removed.
  • UIProcess/Storage/StorageProcessProxy.messages.in: Removed.
  • UIProcess/WebContextClient.cpp:

(WebKit::WebContextClient::storageProcessDidCrash): Deleted.

  • UIProcess/WebContextClient.h:
  • UIProcess/WebContextSupplement.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::sendMemoryPressureEvent):
(WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore): Deleted.
(WebKit::WebProcessPool::getStorageProcessConnection): Deleted.
(WebKit::WebProcessPool::storageProcessCrashed): Deleted.
(WebKit::WebProcessPool::storageProcessIdentifier): Deleted.
(WebKit::WebProcessPool::terminateStorageProcessForTesting): Deleted.

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToStorageProcess): Deleted.
(WebKit::WebProcessPool::sendToStorageProcessRelaunchingIfNecessary): Deleted.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getStorageProcessConnection): Deleted.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::~WebsiteDataStore):
(WebKit::WebsiteDataStore::storageProcessParameters): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Storage/WebServiceWorkerProvider.cpp:
  • WebProcess/Storage/WebToStorageProcessConnection.cpp: Removed.
  • WebProcess/Storage/WebToStorageProcessConnection.h: Removed.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcess::webToStorageProcessConnectionClosed): Deleted.
(WebKit::WebProcess::ensureWebToStorageProcessConnection): Deleted.

  • WebProcess/WebProcess.h:
  • webkitglib-symbols.map:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WebProcessKillIDBCleanup.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::terminateStorageProcess): Deleted.

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

(WTR::TestController::generatePageConfiguration):
(WTR::TestController::databaseProcessName): Deleted.
(WTR::TestController::databaseProcessDidCrash): Deleted.
(WTR::TestController::terminateStorageProcess): Deleted.

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Since Service Worker management is in netowrk process now, we should terminate network
process instead of storage process.

  • http/wpt/service-workers/persistent-importScripts.html:
1:38 PM Changeset in webkit [236689] by david_quesada@apple.com
  • 7 edits in trunk/Source/WebKit

Add missing Objective-C versions of downloads SPI
https://bugs.webkit.org/show_bug.cgi?id=190149
rdar://problem/44915592

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _downloadURLRequest:]):
(-[WKProcessPool _resumeDownloadFromData:path:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/_WKDownload.h:
  • UIProcess/API/Cocoa/_WKDownload.mm:

(-[_WKDownload resumeData]):

  • UIProcess/API/Cocoa/_WKDownloadInternal.h:
  • UIProcess/Cocoa/DownloadClient.mm:

Move the DownloadProxy's WrapperTraits out of DownloadClient, and into the internal
header so it can be used from other classes (i.e. WKProcessPool here).

1:09 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
1:07 PM Changeset in webkit [236688] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236679 - [MSE][GStreamer] Set a minimum sample duration
https://bugs.webkit.org/show_bug.cgi?id=190125

Reviewed by Xabier Rodriguez-Calvar.

The last sample of the audio track in the asset used in this test
player has a tiny duration (100 ns):

http://orange-opensource.github.io/hasplayer.js/1.2.0/player.html?url=http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest

So small, we were truncating it to zero. We're not supposed to have
frames with zero duration. Instead, lets set a minimum frame duration
for those fringe cases.

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

12:57 PM Changeset in webkit [236687] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit

Fix internal build after r236665
https://bugs.webkit.org/show_bug.cgi?id=189850

  • UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.h:
  • WebKit.xcodeproj/project.pbxproj:
12:57 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
12:47 PM Changeset in webkit [236686] by jiewen_tan@apple.com
  • 14 edits
    1 add in trunk

[WebAuthN] Import a JS CBOR coder
https://bugs.webkit.org/show_bug.cgi?id=189877
<rdar://problem/44701124>

Reviewed by Chris Dumez.

Source/WebKit:

Update MockWebAuthenticationConfiguration to have userCertificateBase64 and intermediateCACertificateBase64
as Local's memeber such that tests can pass those certificates to MockLocalConnection instead of letting it
holds some static ones.

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration):

  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:

(WebKit::MockLocalConnection::getAttestation const):

  • UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h:

Tools:

Add logic to only process privateKeyBase64, userCertificateBase64 and intermediateCACertificateBase64
only if acceptAttestation is true.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebAuthenticationMockConfiguration):

LayoutTests:

This patch import a 3rd party JS CBOR coder from https://github.com/paroga/cbor-js.
The library is MIT licensed, which should be fine to use within WebKit.

As a benefit from the library, tests are updated to check CBOR binaries.

  • http/wpt/credential-management/credentialscontainer-store-basics.https.html:
  • http/wpt/webauthn/idl.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-create-success-local.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-get-success-local.https.html:
  • http/wpt/webauthn/resources/cbor.js: Added.
  • http/wpt/webauthn/resources/util.js:
12:46 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
12:45 PM Changeset in webkit [236685] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236666 - [WPE] fix buffer over-read in RenderThemeWPE::mediaControlsStyleSheet()
https://bugs.webkit.org/show_bug.cgi?id=190139

Patch by Olivier Blin <Olivier Blin> on 2018-10-01
Reviewed by Michael Catanzaro.

Like done upstream for EFL in r210213
https://bugs.webkit.org/show_bug.cgi?id=166622

This has been detected by a charactersAreAllASCII() assert failure.

This is because ASCIILiteral() is wrongly used in mediaControlsStyleSheet().
mediaControlsBaseUserAgentStyleSheet is a char array, not a null-terminated string.
It is thus incorrect to use StringImpl::createFromLiteral() that calls
strlen() to get the string length.

The String::ConstructFromLiteral constructor can not be used, since it
skips the last character.

  • platform/wpe/RenderThemeWPE.cpp:

(WebCore::RenderThemeWPE::mediaControlsStyleSheet):
Explicitely pass the size to the String constructor.

12:41 PM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
12:40 PM Changeset in webkit [236684] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/JSTests

Split NaN-check into separate test
https://bugs.webkit.org/show_bug.cgi?id=190010

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-10-01
Reviewed by Saam Barati.

DataView exposes NaN-representation, which is not necessarily the same on each
architecture. Therefore move the check of the NaN-representation into its own
file such that we can disable this test on MIPS where NaN-representation can be
different on older CPUs.

  • stress/dataview-jit-set-nan.js: Added.

(assert):
(test.storeLittleEndian):
(test.storeBigEndian):
(test.store):
(test):

  • stress/dataview-jit-set.js:

(test5):

12:17 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
12:17 PM Changeset in webkit [236683] by Adrian Perez de Castro
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r236566 - [MSE] Fix unwanted sample erase from the decode queue
https://bugs.webkit.org/show_bug.cgi?id=180643

Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-source/media-source-append-acb-no-frame-lost.html

This bug reproduced when unordered appends were made. For instance, if
the application appended [0, 10) and then [20, 30), the frame at 20
would be wrongly discarded from the decode queue.

Later the application could append [10, 20) and the gap at [20, 21)
would persist in the decode queue, even if the frame remained in the
track buffer table.

Thanks to Daniel Zhang for reporting the issue.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::provideMediaData):

LayoutTests:

Added a test case for the fixed bug.

  • media/media-source/media-source-append-acb-no-frame-lost.html: Added.
12:17 PM Changeset in webkit [236682] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236409 - [MSE][GStreamer] Pull demuxed samples in batches
https://bugs.webkit.org/show_bug.cgi?id=189871

Reviewed by Xabier Rodriguez-Calvar.

After this patch, only the notifications of "new samples available"
(appsink-new-sample bus messages) travel from the streaming thread to
the main thread through the bus and the main thread is the responsible
of pulling as many samples as it can from appsink. Before, the samples
were pulled from appsink in the non-main thread and traveled to the
main thread through the bus one by one.

This reduces drastically the amount of context switches and waiting
time in the streaming thread, resulting in a noticeable performance
improvement.

This fixes stutter while loading YouTube videos.

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

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

(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::clearPlayerPrivate):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::consumeAppSinkAvailableSamples):
(WebCore::AppendPipeline::resetPipeline):
(WebCore::AppendPipeline::handleNewAppsinkSample):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
12:17 PM Changeset in webkit [236681] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236395 - [MSE][GStreamer] Don't update duration when it was not previously NaN
https://bugs.webkit.org/show_bug.cgi?id=189869

Reviewed by Xabier Rodriguez-Calvar.

This is what the spec mandates. The spec doesn't say anything about
updating duration when it had been previously set, even if the new
init segment says that the duration is growing.

This fixes MSE YTTV 2018 69.MediaSourceDurationVP9.

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

(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

11:57 AM Changeset in webkit [236680] by Chris Dumez
  • 9 edits in trunk

Regression(r236512): http/tests/navigation/keyboard-events-during-provisional-navigation.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190052

Reviewed by Ryosuke Niwa.

Source/WebKit:

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):

  • Platform/IPC/Connection.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePagePostMessageIgnoringFullySynchronousMode):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::postMessageIgnoringFullySynchronousMode):

  • WebProcess/WebPage/WebPage.h:

Tools:

The test relies on EventSender to send events to the page synchronously to the page and then uses console.log
to log those events. It also uses console.log() before sending those events to indicate what the test is about
to do. Note that console.log() normally causes the WebKitTestRunner to send an asynchronous IPC to the UIProcess
so that it can log the message.
The issue is that EventSender uses IPC::SendOption::UseFullySynchronousModeForTesting when sending the
sync IPC to the UIProcess. This option causes follow-up *asynchronous* IPC sent from the synchronous IPC reply
handler to be transformed into synchronous IPC.
As a result, some of the console.log IPC ended up being asynchronous and some other ended up being synchronous.
Because synchronous and asynchronous IPC is not necessarily processed in-order by the UIProcess, the logged
messages may end up being out of order, leading to flakiness.

To address the issue, we now make sure that InjectedBundle::outputText() uses a new IPC::SendOption indicated
that the IPC should always be sent asynchronously, even if the connection is in fully synchronous mode. As a
result, all text outputing IPC to the UIProcess will be asynchronous, and thus in order.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::outputText):

11:38 AM Changeset in webkit [236679] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Set a minimum sample duration
https://bugs.webkit.org/show_bug.cgi?id=190125

Reviewed by Xabier Rodriguez-Calvar.

The last sample of the audio track in the asset used in this test
player has a tiny duration (100 ns):

http://orange-opensource.github.io/hasplayer.js/1.2.0/player.html?url=http://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest

So small, we were truncating it to zero. We're not supposed to have
frames with zero duration. Instead, lets set a minimum frame duration
for those fringe cases.

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

11:35 AM Changeset in webkit [236678] by dbates@webkit.org
  • 17 edits
    4 adds in trunk

[iOS] Special keys are misidentified in DOM keyboard events
https://bugs.webkit.org/show_bug.cgi?id=189974

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch fixes two issues:

  1. Special keyboard keys would be misidentified in dispatched DOM keyboard events.
  2. DOM keypress events may not be dispatched for some special keys.

UIKit uses special input strings to identify the Page Up, Page Down, Escape, Up Arrow, Down Arrow,
Left Arrow, and Right Arrow keys. It also uses ASCII control characters to represent some other
special keys, including Num Lock / Clear, Home, End, Forward Delete, and F1, ..., F24. We need
to explicitly handle these special keyboard keys in order to be able to identify the key that
was pressed as well as to correctly disambiguate a key down to know whether to dispatch a DOM
keypress event for the key.

Unlike UIKit, AppKit reserves Unicode Private Use Area (PUA) code points in 0xF700–0xF8FF to
represent special keyboard keys. This makes it straightforward to disambiguate such keys using
the input string of the keyboard event alone. To simplify the implementation for iOS
we normalize the input string be AppKit compatible. See the explaination for WebCore::windowsKeyCodeForCharCode()
below for more details on why this is done.

Tests: fast/events/ios/keydown-keyup-arrow-keys-in-non-editable-element.html

fast/events/ios/keypress-keys-in-non-editable-element.html

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

Do not use unified source build strategy when building WebEvent.mm as it makes
use of SoftLinking macros that are incompatible with this strategy.

  • platform/ios/KeyEventIOS.mm:

(WebCore::windowsKeyCodeForCharCode): Recognize some special AppKit special char codes.
These special char codes are generated by WebKit. WebKit uses the same special char codes
as AppKit as a convenience instead of defining our own constants for the same purpose.
Encoding the special UIKit input strings (e.g. up arrow) as distinct char codes allows us
to use integer arithmetic and switch blocks to map characters to Windows virtual key
codes as opposed to special cased branches to perform pointer or string comparisions.
The latter would be necessary in Modern WebKit in order for key down events to be properly
disambiguated to dispatch a DOM keypress event because pointers are not perserved, though
what they point to is, when sending the WebEvent from UIProcess to the WebProcess and
vice versa.
(WebCore::isFunctionKey): Convenience function that determines whether the specified char
code corresponds to a function key on the keyboard. The term "function key" is taken from
AppKit parlance to describe a special keyboard key. These keys include F1, F2, ..., F24,
and cursor keys among other special keyboard keys.
(WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent): Write in terms of isFunctionKey().

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

(WebCore::keyIdentifierForKeyEvent): Remove code to handle UIKit special input strings as
we now map such special input strings to char codes and hence can use the default code path.
(WebCore::keyForKeyEvent): Ditto.
(WebCore::codeForKeyEvent): Remove code to compute the Window virtual key code corresponding
to a UIKit special key command now that we map such special input strings to char codes and
subsequently map the char codes to the Windows virtual key code (see -[WebEvent initWithKeyEventType:...]
constructors). So, we can now use WebEvent.keyCode directly to compute the DOM UIEvents code
for the event.
(WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder): Remove code to fix up
WebEvent.keyCode to account for UIKit special input strings now that we map such special key
commands to char codes and subsequently map the char codes to the Windows virtual key code (see -[WebEvent initWithKeyEventType:...]
constructors). So, we can now take WebEvent.keyCode verbatim to be the Window virtual key code.
(WebCore::convertSpecialKeyToCharCode): Deleted.
(WebCore::keyCodeForEvent): Deleted.

  • platform/ios/WebEvent.mm:

(normalizedStringWithAppKitCompatibilityMapping): Added; converts a UIKit character string
to the corresponding AppKit-compatible one (if not already compatible). See the explaination
for WebCore::windowsKeyCodeForCharCode() above for more details on why this is done.

(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]):
(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:withInputManagerHint:keyCode:isTabKey:]):
Normalize the character strings to be AppKit compatible.

Source/WebCore/PAL:

Forward declare or define more SPI.

  • pal/spi/cocoa/IOKitSPI.h:
  • pal/spi/ios/UIKitSPI.h:

Source/WebKit:

Take the key code of WebEvent to be the key code for the new WebKeyboardEvent verbatim
now that we normalize the character strings of the WebEvent to account for the special
UIKit input strings.

  • Shared/ios/WebIOSEventFactory.mm:

(WebIOSEventFactory::createWebKeyboardEvent):

Tools:

Add support for testing keys Forward Delete and Num Lock / Clear.

  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(hidUsageCodeForCharacter):

LayoutTests:

Add tests to ensure that we do not regress key identification for special keys.

Update the expected results for test fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html
now that we correctly identify some more keys.

  • fast/events/ios/keydown-keyup-arrow-keys-in-non-editable-element-expected.txt: Added.
  • fast/events/ios/keydown-keyup-arrow-keys-in-non-editable-element.html: Added.
  • fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:
  • fast/events/ios/keypress-keys-in-non-editable-element-expected.txt: Added.
  • fast/events/ios/keypress-keys-in-non-editable-element.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.typeCharacter): Actually type the specified character in DumpRenderTree.

11:32 AM Changeset in webkit [236677] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Optimize RenderStyle::diff() and clean up the code
https://bugs.webkit.org/show_bug.cgi?id=190104

Reviewed by Dan Bernstein.

RenderStyle::changeRequiresLayout() and related should only check values on
m_rareNonInheritedData and m_rareInheritedData after checking for pointer equality.
To reduce the chances of future changes regressing this, move code comparing values
on StyleRare[Non]InheritedData into dedication functions.

In addition, the transform comparison double-compared the transformOperations,
because m_rareNonInheritedData->transform != other.m_rareNonInheritedData->transform
is a deep comparison, and it was followed by *m_rareNonInheritedData->transform != *other.m_rareNonInheritedData->transform.
Change the first to be a pointer comparison.

  • rendering/style/RenderStyle.cpp:

(WebCore::rareNonInheritedDataChangeRequiresLayout):
(WebCore::rareInheritedDataChangeRequiresLayout):
(WebCore::RenderStyle::changeRequiresLayout const):
(WebCore::rareNonInheritedDataChangeRequiresLayerRepaint):
(WebCore::RenderStyle::changeRequiresLayerRepaint const):
(WebCore::rareNonInheritedDataChangeRequiresRepaint):
(WebCore::rareInheritedDataChangeRequiresRepaint):
(WebCore::RenderStyle::changeRequiresRepaint const):

11:27 AM Changeset in webkit [236676] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

11:27 AM Changeset in webkit [236675] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix an internal build after r236665
https://bugs.webkit.org/show_bug.cgi?id=189850

  • WebKit.xcodeproj/project.pbxproj:

Make WKNSURLAuthenticationChallenge.h a private header.

11:16 AM Changeset in webkit [236674] by achristensen@apple.com
  • 18 edits in trunk

URL should not use TextEncoding internally
https://bugs.webkit.org/show_bug.cgi?id=190111

Reviewed by Andy Estes.

Source/WebCore:

That dependency makes it impossible to move or use elsewhere.
Using TextEncoding was overkill because we know the credentials are UTF-8 percent-encoded in a parsed URL.
No change in behavior as verified by new API tests.

  • page/SecurityOrigin.cpp:
  • page/csp/ContentSecurityPolicySourceList.cpp:
  • platform/URL.cpp:

(WebCore::decodeEscapeSequencesFromParsedURL):
(WebCore::URL::user const):
(WebCore::URL::pass const):
(WebCore::URL::fileSystemPath const):
(WebCore::decodeURLEscapeSequences): Deleted.

  • platform/URL.h:
  • platform/network/DataURLDecoder.cpp:
  • platform/text/TextEncoding.cpp:

(WebCore::decodeURLEscapeSequences):

  • platform/text/TextEncoding.h:

Source/WebKit:

  • UIProcess/WebInspectorProxy.cpp:

Source/WebKitLegacy/mac:

  • Misc/WebNSURLExtras.mm:

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::testUserPass):
(TestWebKitAPI::TEST_F):

11:08 AM Changeset in webkit [236673] by commit-queue@webkit.org
  • 3 edits
    5 adds in trunk

<form> in quirks mode should have margin-block-end: 1em
https://bugs.webkit.org/show_bug.cgi?id=157788

Patch by Simon Pieters <zcorpan@gmail.com> on 2018-10-01
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/form-margin-quirk.html: Added.
  • web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/form-margin-quirk-expected.txt: Added.

Source/WebCore:

Change the default style for forms to take writing-mode into account
in quirks mode. Matches the behavior of Gecko and Edge and the HTML
standard.

Spec: https://html.spec.whatwg.org/multipage/rendering.html#flow-content-3

Test: imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/form-margin-quirk.html

  • css/quirks.css:

(form):

11:06 AM Changeset in webkit [236672] by bshafiei@apple.com
  • 7 edits in branches/safari-606-branch/Source

Versioning.

10:59 AM Changeset in webkit [236671] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Unify implementation in VideoFullscreenInterfaceAVKit
https://bugs.webkit.org/show_bug.cgi?id=190091
rdar://problem/44734523

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-10-01
Reviewed by Jer Noble.

Source/WebCore:

No new tests because no behavior change.

Unified code in VideoFullscreenInterfaceAVKit now that new code path is proven and include
any changes that had been made in the old path.

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

(-[WebAVPlayerViewControllerDelegate playerViewControllerShouldStartPictureInPictureFromInlineWhenEnteringBackground:]):
(VideoFullscreenInterfaceAVKit::preparedToExitFullscreen):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::requestUpdateInlineRect):
(VideoFullscreenControllerContext::requestVideoContentLayer):
(VideoFullscreenControllerContext::returnVideoContentLayer):
(VideoFullscreenControllerContext::didSetupFullscreen):
(VideoFullscreenControllerContext::didExitFullscreen):

Source/WebKit:

Unified code in VideoFullscreenInterfaceAVKit now that new code path is proven and include
any changes that had been made in the old path.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::supportsVideoFullscreenStandby const):
(WebKit::VideoFullscreenManager::didSetupFullscreen):
(WebKit::VideoFullscreenManager::didExitFullscreen):

10:44 AM Changeset in webkit [236670] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

[Web Animations] Ensure renderers with accelerated animations have layers
https://bugs.webkit.org/show_bug.cgi?id=189990

Reviewed by Simon Fraser.

In r236501 we added code that would make a RenderBox and a RenderInline query the document timeline for whether a given element has
accelerated animations running on it. Since the calls to requiresLayer() are in a hot path, we instead keep a list of elements with
exclusively accelerated animations running.

No new tests, this is already covered by webanimations/accelerated-animation-with-delay.html and webanimations/opacity-animation-yields-compositing-span.html
which respectively check that we can apply an accelerated animation to a non-positioned block and an inline element.

  • animation/AnimationTimeline.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::detachFromDocument):
(WebCore::DocumentTimeline::animationWasAddedToElement):
(WebCore::DocumentTimeline::animationWasRemovedFromElement):
(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):
(WebCore::DocumentTimeline::updateListOfElementsWithRunningAcceleratedAnimationsForElement): Iterate over an element's animations to determine
whether all of its animations are running accelerated, then update the HashSet containing elements running accelerated animations to remove or
add this element.
(WebCore::DocumentTimeline::runningAnimationsForElementAreAllAccelerated const): Make a simple contains() call on the HashSet containing elements
running accelerated animations.

  • animation/DocumentTimeline.h:
  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::updateAcceleratedAnimationState):
(WebCore::KeyframeEffectReadOnly::applyPendingAcceleratedActions):

  • rendering/RenderBoxModelObject.h:
10:41 AM Changeset in webkit [236669] by dbates@webkit.org
  • 3 edits in trunk/Source/WebKit

[iOS] Wrong key event may be sent to UIKit
https://bugs.webkit.org/show_bug.cgi?id=189992

Reviewed by Simon Fraser.

Retain a clone of a received UIEvent if it is for a hardware key event so as to ensure that we
notify the UIKit keyboard code of the correct keyboard event.

Currently the UIProcess retains the UIEvent associated with a keyboard event so as to defer
notifying the UIKit keyboard code (via -_handleKeyUIEvent) about a received keyboard event until
after the WebProcess has processed the raw key event. If this UIEvent is for a hardware keyboard
event then it is not sufficient to retain it to preserve its value because UIKit uses a singleton
UIEvent for all hardware keyboard events ;=> its value will be clobbered as each hardware keyboard
event is received. Instead we need to explicitly clone a UIEvent for a hardware key event before
retaining it.

  • Platform/spi/ios/UIKitSPI.h: Forward declare SPI.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView handleKeyEvent:]): Clone the UIEvent if it is for a hardware key event.

10:40 AM Changeset in webkit [236668] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Fix abort in gst_sample_get_info()
https://bugs.webkit.org/show_bug.cgi?id=190135

Reviewed by Philippe Normand.

A flush can occur before any frame has finished decoding -- especially
in tests, where actions on the player often occur in quick succession.

Therefore, the code must not assume by the time a flush occurs any
frame has reached the sink. This patch fixes a case when such wrong
assumption was causing gst_sample_get_info() to abort (crashing
WebKit).

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamerBase::createGLAppSink):

10:22 AM Changeset in webkit [236667] by dbates@webkit.org
  • 6 edits in trunk/Tools

LLDB tests may use wrong configuration of lldbWebKitTester
https://bugs.webkit.org/show_bug.cgi?id=189011

Reviewed by Dean Jackson.

Fixes an issue where the LLDB unit tests may use the wrong configuration of lldbWebKitTester.
Additionally, add back the unit tests originally added in r235376 (https://bugs.webkit.org/show_bug.cgi?id=188936).

Currently the unit tests pick the LLDBWebKitTester binary based on the configuration set by
script set-webkit-configuration. This may not be the same configuration specified to test-webkitpy.
So, the unit tests may use the wrong binary. Instead we have test-webkitpy store the path
to the correct lldbWebKitTester binary that the unit tests should use in an environment variable,
called LLDB_WEBKIT_TESTER_EXECUTABLE. (We use an environment variable because the test driver,
test-webkitpy, and the unit tests cannot talk to each other directly due the limitations of
the Python unittest module, the Python multiprocessing module, and the general principle of unit
tests - to test code in isolation). The unit tests make use of the value of this environment
variable to launch lldbWebKitTester binary.

  • Scripts/build-lldbwebkittester: We only support building lldbWebKitTester on Mac for now. Error

out if this script is invoked for a non-Mac platform.

  • Scripts/webkitpy/test/main.py:

(Tester._run_tests): Build lldbWebKitTester and store the path to it in the environment variable
LLDB_WEBKIT_TESTER_EXECUTABLE.
(_build_lldb_webkit_tester): Deleted.

  • lldb/dump_class_layout_unittest.py:

(TestDumpClassLayout.shouldSkip): Use SystemHost() here and remove the _host global variable as
this is the only call site that needs the Host object now.
(TestDumpClassLayout.setUpClass): Take the path to the lldbWebKitTester binary from the value of
the environment variable LLDB_WEBKIT_TESTER_EXECUTABLE.

  • lldb/lldbWebKitTester/main.cpp:

(testSummaryProviders): Add back unit test support infrastructure originally added in r235376 (https://bugs.webkit.org/show_bug.cgi?id=188936).

  • lldb/lldb_webkit_unittest.py:

(LLDBDebugSession.setup): Take the path to the lldbWebKitTester binary from the value of the environment
variable LLDB_WEBKIT_TESTER_EXECUTABLE.
(TestSummaryProviders):
(TestSummaryProviders.shouldSkip): Skip the tests on non-Mac platforms.
(TestSummaryProviders.serial_test_WTFHashSet_tablesize_and_size):
(TestSummaryProviders.serial_test_WTFOptionSet_SummaryProvider_empty):
(TestSummaryProviders.serial_test_WTFOptionSet_SummaryProvider_simple):
(TestSummaryProviders.serial_test_WTFOptionSetProvider_empty):
(TestSummaryProviders.serial_test_WTFOptionSetProvider_simple):
Add back the unit tests originally added in r235376 (https://bugs.webkit.org/show_bug.cgi?id=188936).

10:19 AM Changeset in webkit [236666] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WPE] fix buffer over-read in RenderThemeWPE::mediaControlsStyleSheet()
https://bugs.webkit.org/show_bug.cgi?id=190139

Patch by Olivier Blin <Olivier Blin> on 2018-10-01
Reviewed by Michael Catanzaro.

Like done upstream for EFL in r210213
https://bugs.webkit.org/show_bug.cgi?id=166622

This has been detected by a charactersAreAllASCII() assert failure.

This is because ASCIILiteral() is wrongly used in mediaControlsStyleSheet().
mediaControlsBaseUserAgentStyleSheet is a char array, not a null-terminated string.
It is thus incorrect to use StringImpl::createFromLiteral() that calls
strlen() to get the string length.

The String::ConstructFromLiteral constructor can not be used, since it
skips the last character.

  • platform/wpe/RenderThemeWPE.cpp:

(WebCore::RenderThemeWPE::mediaControlsStyleSheet):
Explicitely pass the size to the String constructor.

10:16 AM Changeset in webkit [236665] by achristensen@apple.com
  • 32 edits in trunk/Source/WebKit

Deprecate ObjC SPI in Deprecated Xcode group
https://bugs.webkit.org/show_bug.cgi?id=189850

Reviewed by Andy Estes.

  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Shared/mac/ObjCObjectGraph.mm:

(WebKit::typeFromObject):
(WebKit::ObjCObjectGraph::encode):
(WebKit::ObjCObjectGraph::decode):

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

(didStartProvisionalNavigation):
(didReceiveServerRedirectForProvisionalNavigation):
(didFailProvisionalNavigation):
(didCommitNavigation):
(didFinishNavigation):
(didFailNavigation):
(canAuthenticateAgainstProtectionSpace):
(didReceiveAuthenticationChallenge):
(processDidCrash):
(setUpPagePolicyClient):

  • UIProcess/API/Cocoa/WKBrowsingContextGroup.h:
  • UIProcess/API/Cocoa/WKBrowsingContextGroupInternal.h:
  • UIProcess/API/Cocoa/WKBrowsingContextHistoryDelegate.h:
  • UIProcess/API/Cocoa/WKBrowsingContextLoadDelegate.h:
  • UIProcess/API/Cocoa/WKBrowsingContextLoadDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKBrowsingContextPolicyDelegate.h:
  • UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.h:
  • UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:

(-[WKNSURLAuthenticationChallengeSender cancelAuthenticationChallenge:]):
(-[WKNSURLAuthenticationChallengeSender continueWithoutCredentialForAuthenticationChallenge:]):
(-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]):
(-[WKNSURLAuthenticationChallengeSender performDefaultHandlingForAuthenticationChallenge:]):
(-[WKNSURLAuthenticationChallengeSender rejectProtectionSpaceAndContinueWithChallenge:]):

  • UIProcess/API/Cocoa/WKNavigationData.h:
  • UIProcess/API/Cocoa/WKNavigationDataInternal.h:
  • UIProcess/API/Cocoa/WKProcessGroup.h:
  • UIProcess/API/Cocoa/WKProcessGroup.mm:

(didCreateConnection):
(getInjectedBundleInitializationUserData):
(didNavigateWithNavigationData):
(didPerformClientRedirect):
(didPerformServerRedirect):
(didUpdateHistoryTitle):

  • UIProcess/API/Cocoa/WKTypeRefWrapper.h:
  • UIProcess/API/Cocoa/WKView.h:

(WK_CLASS_DEPRECATED_WITH_REPLACEMENT):

  • UIProcess/API/Cocoa/_WKThumbnailView.h:
  • UIProcess/API/Cocoa/_WKThumbnailView.mm:
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::transformHandlesToObjects):
(WebKit::WebProcessProxy::transformObjectsToHandles):

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/Gamepad/mac/UIGamepadProviderMac.mm:

(WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput):

  • UIProcess/ios/WKContentView.h:
  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::inspectedViewFrameDidChange):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::transformHandlesToObjects):
(WebKit::WebProcess::transformObjectsToHandles):

9:41 AM Changeset in webkit [236664] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r235948?): Layout Test media/media-controls-accessibility.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189674

Unreviewed test gardening..

  • platform/mac/TestExpectations: Remove flaky expectation.
9:17 AM Changeset in webkit [236663] by rwlbuis@webkit.org
  • 5 edits in trunk

Patch for landing

9:17 AM Changeset in webkit [236662] by youenn@apple.com
  • 7 edits in trunk

[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

Reviewed by Chris Dumez.

Source/WebKit:

NetworkCache::Storage by default limits the length to read to 1500 milliseconds.
This is good for the HTTP cache since networking might be faster.
It does not work for DOM cache which needs to get these resources even if it takes a long time.

Since this is disabled by a Mode::Testing option, use it for DOMCache after renaming it to Mode::AvoidRandomness.

Add a bunch of release logging to help debugging error cases.

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::retrieveOriginFromDirectory):
(WebKit::CacheStorage::Caches::initialize):
(WebKit::CacheStorage::Caches::writeCachesToDisk):
(WebKit::CacheStorage::Caches::readRecord):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::open):

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::Storage::shrinkIfNeeded):

  • NetworkProcess/cache/NetworkCacheStorage.h:

LayoutTests:

  • platform/mac-wk2/TestExpectations:
9:10 AM Changeset in webkit [236661] by Chris Dumez
  • 11 edits in trunk

Make crossOriginObject.then undefined for promises
https://bugs.webkit.org/show_bug.cgi?id=190094

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:

Source/WebCore:

Make crossOriginObject.then undefined for promises. This allows promises to work better with cross-origin WindowProxy
and Location objects.

Specification:

This aligns our behavior with Blink and Gecko.

No new tests, rebaselined existing test.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::addCrossOriginWindowOwnPropertyNames):

  • bindings/js/JSLocationCustom.cpp:

(WebCore::getOwnPropertySlotCommon):
(WebCore::addCrossOriginLocationOwnPropertyNames):

LayoutTests:

Update existing tests to reflect behavior change.

  • http/tests/navigation/process-swap-window-open-expected.txt:
  • http/tests/navigation/process-swap-window-open.html:
  • http/wpt/cross-origin-window-policy/resources/utils.js:

(testCrossOriginOption):

8:12 AM Changeset in webkit [236660] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Add a JSONStringify overload that receives a JSValue space
https://bugs.webkit.org/show_bug.cgi?id=190131

Patch by Koby Boyango <koby.b@mce-sys.com> on 2018-10-01
Reviewed by Yusuke Suzuki.

  • runtime/JSONObject.cpp:
  • runtime/JSONObject.h:
6:49 AM Changeset in webkit [236659] by commit-queue@webkit.org
  • 1 edit
    1 delete in trunk/Source/WebKit

[WPE] Remove WebKit2InspectorGResourceBundle.xml
https://bugs.webkit.org/show_bug.cgi?id=190132

Patch by Olivier Blin <Olivier Blin> on 2018-10-01
Reviewed by Michael Catanzaro.

  • UIProcess/API/wpe/WebKit2InspectorGResourceBundle.xml: Removed.

This is unused since legacy INSPECTOR_SERVER implementation has
been removed in r217924.

6:47 AM Changeset in webkit [236658] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[SOUP] Fix the build for libsoup > 2.61.90
https://bugs.webkit.org/show_bug.cgi?id=190126

Patch by Xan Lopez <Xan Lopez> on 2018-10-01
Reviewed by Michael Catanzaro.

  • platform/network/soup/SocketStreamHandleImplSoup.cpp:
6:26 AM Changeset in webkit [236657] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WPE] Update install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=190127

Patch by Olivier Blin <Olivier Blin> on 2018-10-01
Reviewed by Michael Catanzaro.

  • wpe/install-dependencies:

libxrandr-dev is needed for gstreamer-vaapi in jhbuild
It is used by gstvaapidisplay_x11.c.
Add it only for Apt, already ok for Pacman and DNF.

Install libevent-dev for WebRTC (like GTK)

Install libasound2-dev for WebRTC.
Add it only for Apt, already ok for Pacam and DNF.

Install libgbm-dev for HeadlessViewBackend, which uses gbm.h

6:11 AM Changeset in webkit [236656] by aboya@igalia.com
  • 4 edits
    2 adds in trunk

[MSE][GStreamer] Reset running time in PlaybackPipeline::flush()
https://bugs.webkit.org/show_bug.cgi?id=190076

Reviewed by Philippe Normand.

Source/WebCore:

Test: media/media-source/media-source-seek-redundant-append.html

PlaybackPipeline::flush() is called when already enqueued frames are
appended again. This may be caused by a quality change or just a
redundant append. Either way, the pipeline has to be flushed and
playback begin again, but without changing the player position by
much.

There are two kinds of time to consider here: stream time (i.e. the
time of a frame as written in the file, e.g. a frame may have stream
time 0:01:00), and running time (i.e. how much time since playback
started should pass before the frame should be played, e.g. if we
started playing at 0:00:59 that same frame would have a running time
of just 1 second).

Notice how running time depends on where and when playback starts.
Running time can also be optionally resetted after a flush. (This is
indeed done currently by most demuxers after a seek.)

Instead of resetting running time, PlaybackPipeline used to modify the
first GstSegment emitted after the flush. A GstSegment declares the
mapping between stream time and running time for the following frames.
There, PlaybackPipeline used to set base (the running time at which
the segment starts) to the position reported by a position query
(which is stream time).

This, of course, only worked when playback (or the last seek) started
at stream time 0:00:00, since that's the only case where running time
equals stream time. In other cases delays as long as the difference
between these timelines would appear. This is demonstrated in the
attached test, where seeks and appends are made in such an order that
the difference is more than 5 minutes, making the playback stall for

5 minutes before playing 1 second of audio.

This patch fixes the problem by resetting running time with the flush
and not modifying GstSegment.base anymore (it will be left as zero,
which is now correct since the running time has been reset).

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

(WebCore::PlaybackPipeline::flush):
(WebCore::segmentFixerProbe): Deleted.

LayoutTests:

A test where a seek is followed by a redundant append is added. This
test timed out in the GStreamer MSE implementation before the
accompanying patch fixed it.

The MIME type declared in test-48khz-manifest.json has also been
changed, from non-standard audio/x-m4a to `audio/mp4;
codecs="mp4a.40.2"`, as implied by the MSE specs. This should not
affect other tests because no other tests were reading this type
string before.

  • media/media-source/content/test-48khz-manifest.json:
  • media/media-source/media-source-seek-redundant-append-expected.txt: Added.
  • media/media-source/media-source-seek-redundant-append.html: Added.
  • media/video-test.js:
5:33 AM Changeset in webkit [236655] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[WTF][JSCONLY] Use MainThreadWin on Windows in the JSCOnly port
https://bugs.webkit.org/show_bug.cgi?id=190121

Patch by Koby Boyango <koby.b@mce-sys.com> on 2018-10-01
Reviewed by Yusuke Suzuki.

This fixes JSCOnly build on Windows after r236617.

  • wtf/PlatformJSCOnly.cmake:
4:56 AM Changeset in webkit [236654] by Caio Lima
  • 2 edits in trunk

'HAVE_PTHREAD_MAIN_NP' macro redefined warning when building --jsc-only on macOS
https://bugs.webkit.org/show_bug.cgi?id=190118

Reviewed by Yusuke Suzuki.

We define HAVE_PTHREAD_MAIN_NP in WTF/wtf/Platform.h when the OS is
Darwin. In such case, we don't need to check symbols for
pthread_main_np when generating build for this system.

  • Source/cmake/OptionsCommon.cmake:
4:41 AM Changeset in webkit [236653] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak] Add libunwind in the sandbox
https://bugs.webkit.org/show_bug.cgi?id=190123

Allowing us to get proper traces in GStreamer trace grabing
debug functions.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-10-01
Reviewed by Philippe Normand.

  • flatpak/org.webkit.WebKit.yaml:
4:26 AM Changeset in webkit [236652] by commit-queue@webkit.org
  • 7 edits in trunk

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

Breaking test stress/big-int-to-string.js (Requested by
caiolima_ on #webkit).

Reverted changeset:

"[BigInt] BigInt.proptotype.toString is broken when radix is
power of 2"
https://bugs.webkit.org/show_bug.cgi?id=190033
https://trac.webkit.org/changeset/236647

2:25 AM Changeset in webkit [236651] by yusukesuzuki@slowstart.org
  • 4 edits in trunk/Source/JavaScriptCore

[WebAssembly] Move type conversion code of JSToWasm return type to JS wasm wrapper
https://bugs.webkit.org/show_bug.cgi?id=189498

Reviewed by Saam Barati.

To call JS-to-Wasm code we need to convert the result value from wasm function to
the JS type. Previously this is done by callWebAssemblyFunction by using swtich
over signature.returnType(). But since we know the value of signature.returnType()
at compiling phase, we can emit a small conversion code directly to JSToWasm glue
and remove this switch from callWebAssemblyFunction.

In JSToWasm glue code, we do not have tag registers. So we use DoNotHaveTagRegisters
in boxInt32 and boxDouble. Since boxDouble does not have DoNotHaveTagRegisters version,
we add an implementation for that.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::boxDouble):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):

1:04 AM Changeset in webkit [236650] by graouts@webkit.org
  • 4 edits in trunk/LayoutTests

[Web Animations] Fix test regressions after enabling Web Animations with CSS Integration
https://bugs.webkit.org/show_bug.cgi?id=190032

Unreviewed. We need to opt into the legacy animation engine for these tests to fix some crashes in other
tests due to webkit.org/b/186946.

  • legacy-animation-engine/animations/cross-fade-webkit-mask-image.html:
  • legacy-animation-engine/transitions/delay.html:
  • legacy-animation-engine/transitions/transition-timing-function.html:

Sep 30, 2018:

10:30 PM Changeset in webkit [236649] by rniwa@webkit.org
  • 7 edits in trunk/Source/WebCore

Use Position instead of Range in createMarkupInternal
https://bugs.webkit.org/show_bug.cgi?id=190107

Reviewed by Darin Adler.

Use two Position's indicating start and end instead of Range in createMarkupInternal and StylizedMarkupAccumulator
in order to support copy & paste across shadow boundaries in the bug 157443. This patch also removes the use of
Range in MarkupAccumulator since all uses of range is via StylizedMarkupAccumulator.

Also renamed createMarkupInternal to serializePreservingVisualAppearanceInternal to match the rename in r236612.

  • dom/Position.cpp:

(WebCore::Position::firstNode const): Added.

  • dom/Position.h:
  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::MarkupAccumulator): No longer takes Range.
(WebCore::MarkupAccumulator::appendText): Removed the code to truncate string at the boundary points of the range.

  • editing/MarkupAccumulator.h:

(WebCore::MarkupAccumulator): Made this class non-copyable.

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator): Now takes and stores two positions.

(WebCore::StyledMarkupAccumulator::appendText): Use textContentRespectingRange in the case annotation is disabled
instead of calling to MarkupAccumulator::appendText, which no longer respects boundary offsets.

(WebCore::StyledMarkupAccumulator::renderedTextRespectingRange): Renamed from renderedText. Updated to respect
boundary offsets defined by m_start and m_end Positions instead of m_range Range.

(WebCore::StyledMarkupAccumulator::textContentRespectingRange): Renamed from stringValueForRange. Ditto.

(WebCore::StyledMarkupAccumulator::serializeNodes): Now computes startNode and pastEnd nodes from start and end
Positions. Note that the end position is always the next node in the tree order for a character node
and computeNodeAfterPosition returns nullptr for a character data.

(WebCore::highestAncestorToWrapMarkup): Now takes two positions instead of a range.

(WebCore::serializePreservingVisualAppearanceInternal): Renamed from createMarkupInternal. Removed the obsolete
comments which were added for DOMRange in WebKitLegacy.

(WebCore::serializePreservingVisualAppearance):

(WebCore::sanitizedMarkupForFragmentInDocument): Create positions instead of a range to pass to
serializePreservingVisualAppearanceInternal.

(WebCore::serializeFragment):

  • editing/markup.h:
  • page/PageSerializer.cpp:

(WebCore::PageSerializer::SerializerMarkupAccumulator): Removed the unnecessary WebCore namespace qualifier.

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

AudioNode.connect should return passed destination node
https://bugs.webkit.org/show_bug.cgi?id=188834

Patch by Walker Henderson <wjahenderson@gmail.com> on 2018-09-30
Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webaudio/the-audio-api/the-audionode-interface/audionode-connect-return-value-expected.txt:

Source/WebCore:

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioBasicInspectorNode.cpp:

(WebCore::AudioBasicInspectorNode::connect): Deleted.

  • Modules/webaudio/AudioBasicInspectorNode.h:
  • Modules/webaudio/AudioNode.cpp:
  • Modules/webaudio/AudioNode.h:
  • Modules/webaudio/AudioNode.idl:
11:18 AM Changeset in webkit [236647] by Caio Lima
  • 7 edits in trunk

[BigInt] BigInt.proptotype.toString is broken when radix is power of 2
https://bugs.webkit.org/show_bug.cgi?id=190033

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/big-int-to-string.js:

Source/JavaScriptCore:

The implementation of JSBigInt::toStringToGeneric doesn't handle power
of 2 radix when JSBigInt length is >= 2. To handle such cases, we
implemented JSBigInt::toStringBasePowerOfTwo that follows the
algorithm that groups bits using mask of (2 n) - 1 to extract every
digit.

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::toString):
(JSC::JSBigInt::toStringBasePowerOfTwo):

  • runtime/JSBigInt.h:

Source/WTF:

  • wtf/MathExtras.h:

(WTF::ctz32):

7:32 AM Changeset in webkit [236646] by eric.carlson@apple.com
  • 19 edits in trunk

[MediaStream] Clean up RealtimeMediaSource settings change handling
https://bugs.webkit.org/show_bug.cgi?id=189998
<rdar://problem/44797884>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, updated webrtc/video-disabled-black.html.

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::Source::Source):
(WebCore::CanvasCaptureMediaStreamTrack::Source::settings):
(WebCore::CanvasCaptureMediaStreamTrack::Source::settingsDidChange):
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasResized):

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
  • platform/mediastream/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::RealtimeIncomingVideoSource):
(WebCore::RealtimeIncomingVideoSource::settings):
(WebCore::RealtimeIncomingVideoSource::settingsDidChange):

  • platform/mediastream/RealtimeIncomingVideoSource.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::settingsDidChange):
(WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers):
(WebCore::RealtimeMediaSource::setSize):
(WebCore::RealtimeMediaSource::setFrameRate):
(WebCore::RealtimeMediaSource::setAspectRatio):
(WebCore::RealtimeMediaSource::setFacingMode):
(WebCore::RealtimeMediaSource::setVolume):
(WebCore::RealtimeMediaSource::setSampleRate):
(WebCore::RealtimeMediaSource::setSampleSize):
(WebCore::RealtimeMediaSource::setEchoCancellation):

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:

(WebCore::GStreamerAudioCaptureSource::settingsDidChange):

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::GStreamerVideoCaptureSource::settingsDidChange):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::settingsDidChange):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::settingsDidChange):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::settingsDidChange):

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::RealtimeIncomingVideoSourceCocoa::processNewSample):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::settingsDidChange):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::settingsDidChange):

Source/WebKit:

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::Source::setSettings):

LayoutTests:

  • webrtc/video-disabled-black.html:
12:02 AM Changeset in webkit [236645] by eric.carlson@apple.com
  • 26 edits
    2 adds in trunk/Source

[MediaStream] Use display-specific capture factories
https://bugs.webkit.org/show_bug.cgi?id=190043
<rdar://problem/44834412>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, no change in functionality.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::AudioCaptureFactory::~AudioCaptureFactory): Deleted.
(WebCore::RealtimeMediaSource::VideoCaptureFactory::~VideoCaptureFactory): Deleted.

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

(WebCore::RealtimeMediaSourceCenter::createMediaStream):
(WebCore::RealtimeMediaSourceCenter::getDisplayMediaDevices):

  • platform/mediastream/RealtimeMediaSourceCenter.h:

(WebCore::RealtimeMediaSourceCenter::setAudioFactory):
(WebCore::RealtimeMediaSourceCenter::unsetAudioFactory):

  • platform/mediastream/RealtimeMediaSourceFactory.cpp: Added.

(WebCore::SingleSourceFactory::setActiveSource):
(WebCore::SingleSourceFactory::unsetActiveSource):

  • platform/mediastream/RealtimeMediaSourceFactory.h: Added.

(WebCore::SingleSourceFactory::activeSource):
(WebCore::VideoCaptureFactory::setVideoCapturePageState):
(WebCore::DisplayCaptureFactory::setDisplayCapturePageState):

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:

(WebCore::libWebRTCVideoCaptureSourceFactory):
(WebCore::libWebRTCDisplayCaptureSourceFactory):
(WebCore::GStreamerVideoCaptureSource::factory):
(WebCore::GStreamerVideoCaptureSource::displayFactory):

  • platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
  • platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp:

(WebCore::RealtimeMediaSourceCenterLibWebRTC::audioCaptureSourceFactory):
(WebCore::RealtimeMediaSourceCenterLibWebRTC::audioFactory):
(WebCore::RealtimeMediaSourceCenterLibWebRTC::videoFactory):
(WebCore::RealtimeMediaSourceCenterLibWebRTC::displayCaptureFactory):

  • platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::~AVVideoCaptureSource):
(WebCore::AVVideoCaptureSource::setupCaptureSession):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::factory):

  • platform/mediastream/mac/CoreAudioCaptureSource.h:
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::videoCaptureSourceFactory):
(WebCore::RealtimeMediaSourceCenterMac::displayCaptureSourceFactory):
(WebCore::RealtimeMediaSourceCenterMac::audioCaptureSourceFactory):
(WebCore::RealtimeMediaSourceCenterMac::audioFactory):
(WebCore::RealtimeMediaSourceCenterMac::videoFactory):
(WebCore::RealtimeMediaSourceCenterMac::displayCaptureFactory):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::~MockRealtimeAudioSource):
(WebCore::MockRealtimeAudioSource::startProducingData):
(): Deleted.
(WebCore::mockAudioCaptureSourceFactory): Deleted.
(WebCore::MockRealtimeAudioSource::factory): Deleted.

  • platform/mock/MockRealtimeAudioSource.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockRealtimeVideoSourceFactory::setVideoCapturePageState):
(WebCore::MockRealtimeMediaSourceCenter::audioFactory):
(WebCore::MockRealtimeMediaSourceCenter::videoFactory):
(WebCore::MockRealtimeMediaSourceCenter::displayCaptureFactory):

  • platform/mock/MockRealtimeMediaSourceCenter.h:
  • platform/mock/MockRealtimeVideoSource.cpp:

(): Deleted.
(WebCore::MockRealtimeVideoSourceFactory::setVideoCapturePageState): Deleted.
(WebCore::mockVideoCaptureSourceFactory): Deleted.
(WebCore::MockRealtimeVideoSource::factory): Deleted.

  • platform/mock/MockRealtimeVideoSource.h:

Source/WebKit:

  • WebProcess/cocoa/UserMediaCaptureManager.h:

Sep 29, 2018:

10:40 AM Changeset in webkit [236644] by commit-queue@webkit.org
  • 11 edits in trunk

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

Caused various eventSender tests, including fast/css/pseudo-
active-style-sharing*, to fail (Requested by smfr on #webkit).

Reverted changeset:

"Regression(r236512): http/tests/navigation/keyboard-events-
during-provisional-navigation.html is flaky"
https://bugs.webkit.org/show_bug.cgi?id=190052
https://trac.webkit.org/changeset/236631

5:11 AM Changeset in webkit [236643] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[css-grid] Properly align items next to collapsed tracks with gutters
https://bugs.webkit.org/show_bug.cgi?id=190089

Patch by Oriol Brufau <Oriol Brufau> on 2018-09-29
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Import grid-gutters-013.html and reference from WPT.

Test: imported/w3c/web-platform-tests/css/css-grid/alignment/grid-gutters-013.html

  • web-platform-tests/css/css-grid/alignment/grid-gutters-013-expected.xht: Added.
  • web-platform-tests/css/css-grid/alignment/grid-gutters-013.html: Added.

Source/WebCore:

gridAreaPositionForInFlowChild could return a wrong end position for
grid items adjacent to a collapsed track, because it didn't take into
account that gutters collapse in that case. Therefore, "center" or
"end" alignments displayed the item at the wrong position.

Test: imported/w3c/web-platform-tests/css/css-grid/alignment/grid-gutters-013.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::gridAreaPositionForInFlowChild const):

4:52 AM Changeset in webkit [236642] by youenn@apple.com
  • 2 edits
    1249 adds in trunk/Source/ThirdParty/libwebrtc

Add yasm as third party tool for libwebrtc compilation
https://bugs.webkit.org/show_bug.cgi?id=190025

Reviewed by Eric Carlson.

Add yasm source code and build the yasm executable as it is needed for libvpx compilati

  • Source/third_party/yasm-1.3.0: Added.
  • libwebrtc.xcodeproj/project.pbxproj:
2:49 AM Changeset in webkit [236641] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[PSON] Deal with the drawing area potentially being null in WebFrameLoaderClient::transitionToCommittedForNewPage()
https://bugs.webkit.org/show_bug.cgi?id=190084
<rdar://problem/44844561>

Reviewed by Antti Koivisto.

Deal with the drawing area potentially being null in WebFrameLoaderClient::transitionToCommittedForNewPage(), as a
result of calling WebPage::tearDownDrawingAreaForSuspend().

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

2:43 AM Changeset in webkit [236640] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][MSE] Use GObject for GST_TRACE_OBJECT
https://bugs.webkit.org/show_bug.cgi?id=190045

Reviewed by Philippe Normand.

Passing a non-GObject object to GST_TRACE_OBJECT() can be
theoretically misunderstood by the GStreamer logging function, so this
patch avoids that.

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

(WebCore::AppendPipeline::appsrcEndOfAppendCheckerProbe):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::consumeAppsinkAvailableSamples):
(WebCore::AppendPipeline::pushNewBuffer):

Sep 28, 2018:

11:55 PM Changeset in webkit [236639] by mmaxfield@apple.com
  • 3 edits in trunk/Tools

[WHLSL] Fix build after r236635
https://bugs.webkit.org/show_bug.cgi?id=189210

Unreviewed.

  • WebGPUShadingLanguageRI/Intrinsics.js:

(Intrinsics.):

  • WebGPUShadingLanguageRI/Test.js:

(tests.atomicsNull):
(tests.numThreads):
(tests.textureDimensionsNull):

11:29 PM Changeset in webkit [236638] by bshafiei@apple.com
  • 14 edits in branches/safari-606-branch

Cherry-pick r236615. rdar://problem/44883290

[Apple Pay] Remove the "in-store" button type
https://bugs.webkit.org/show_bug.cgi?id=190079

Reviewed by Tim Horton.

Source/WebCore:

According to <https://developer.apple.com/design/human-interface-guidelines/apple-pay/buttons-and-marks/buttons/>,
this button is meant only for certain kinds of native apps. It shouldn't be available on the web.

Updated http/tests/ssl/applepay/ApplePayButton.html.

  • css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator ApplePayButtonType const):
  • css/CSSValueKeywords.in:
  • css/parser/CSSParserFastPaths.cpp: (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
  • rendering/RenderThemeCocoa.mm: (WebCore::toPKPaymentButtonType):
  • rendering/style/RenderStyleConstants.h:

Source/WebInspectorUI:

  • UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

  • http/tests/ssl/applepay/ApplePayButton.html:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt:

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

9:55 PM Changeset in webkit [236637] by Caio Lima
  • 31 edits
    6 adds in trunk

[ESNext][BigInt] Implement support for "&"
https://bugs.webkit.org/show_bug.cgi?id=186228

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/big-int-bitwise-and-general.js: Added.

(assert):
(assert.sameValue):

  • stress/big-int-bitwise-and-jit.js: Added.

(let.assert.sameValue):
(bigIntBitAnd):

  • stress/big-int-bitwise-and-memory-stress.js: Added.

(assert):

  • stress/big-int-bitwise-and-to-primitive-precedence.js: Added.

(assert.sameValue):
(let.o.Symbol.toPrimitive):
(catch):

  • stress/big-int-bitwise-and-type-error.js: Added.

(assert):
(assertThrowTypeError):
(let.o.valueOf):
(o.valueOf):
(o.toString):
(o.Symbol.toPrimitive):

  • stress/big-int-bitwise-and-wrapped-value.js: Added.

(assert.sameValue):
(testBitAnd):
(let.o.Symbol.toPrimitive):
(o.valueOf):
(o.toString):

Source/JavaScriptCore:

This patch introduces support of BigInt into bitwise "&" operation.
We are also introducing the ValueBitAnd DFG node, that is responsible
to take care of JIT for non-Int32 operands. With the introduction of this
new node, we renamed the BitAnd node to ArithBitAnd. The ArithBitAnd
follows the behavior of ArithAdd and other arithmetic nodes, where
the Arith<op> version always results in Number (in the case of
ArithBitAnd, its is always an Int32).

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitBinaryOp):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::isWithinPowerOfTwo):
(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueBitwiseOp):
(JSC::DFG::SpeculativeJIT::compileBitwiseOp):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::bitOp):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStrengthReductionPhase.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitAnd):
(JSC::FTL::DFG::LowerDFGToB3::compileArithBitAnd):
(JSC::FTL::DFG::LowerDFGToB3::compileBitAnd): Deleted.

  • jit/JIT.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emitBitBinaryOpFastPath):
(JSC::JIT::emit_op_bitand):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::JSBigInt):
(JSC::JSBigInt::initialize):
(JSC::JSBigInt::createZero):
(JSC::JSBigInt::createFrom):
(JSC::JSBigInt::bitwiseAnd):
(JSC::JSBigInt::absoluteBitwiseOp):
(JSC::JSBigInt::absoluteAnd):
(JSC::JSBigInt::absoluteOr):
(JSC::JSBigInt::absoluteAndNot):
(JSC::JSBigInt::absoluteAddOne):
(JSC::JSBigInt::absoluteSubOne):

  • runtime/JSBigInt.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toBigIntOrInt32 const):

8:29 PM Changeset in webkit [236636] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Angled gradient backgrounds in body render vertically when body height is 0
https://bugs.webkit.org/show_bug.cgi?id=177232
<rdar://problem/34548230>.

Patch by Zamiul Haque <zhaque@apple.com> on 2018-09-28
Reviewed by Tim Horton.

Source/WebCore:

Specifically, gradients displayed at an angle (ie. 45 degrees) are rendered
as if they are vertical when the body tag containing the gradient
has a height of 0. Other browsers do not render under these circumstances,
so WebKit was modified to follow in suit. The problem was due to layout sizes for
fill tiles being calculated with a minimum height of 1px. A simple change of the
minimum height and width to 0px was enough to bring about the desired behavior.

Tests: angled-background-repeating-gradient-rendering-vertical.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::calculateFillTileSize const):

LayoutTests:

Added tests to make sure that angled background gradients inside of a
body tag of height 0 render as empty white screens.

  • angled-background-repeating-gradient-rendering-vertical.html: Added.
  • angled-background-repeating-gradient-rendering-vertical-expected.html: Added.
7:27 PM Changeset in webkit [236635] by mmaxfield@apple.com
  • 5 edits in trunk/Tools

[WHLSL] Allow uniform buffers to be used in the interpreter
https://bugs.webkit.org/show_bug.cgi?id=189210

Reviewed by Filip Pizlo.

Every lvalue is associated with an address space, and the propagation of these address spaces
matches the propagation of lvalues. Luckily, there was already the infrastructure to do most
of this, so this patch just goes the last few yards. It also updates the standard library to
allow for writing into all writable address spaces for out-params.

  • WebGPUShadingLanguageRI/Checker.js:

(Checker.prototype.visitAssignment):
(Checker.prototype._finishVisitingPropertyAccess):

  • WebGPUShadingLanguageRI/Intrinsics.js:

(Intrinsics.):
(Intrinsics.checkFalse):
(Intrinsics):

  • WebGPUShadingLanguageRI/StandardLibrary.js:

(let.standardLibrary):

  • WebGPUShadingLanguageRI/Test.js:

(tests.threadArrayRefLoad):
(tests.threadArrayRefLoadIntLiteral):
(tests.deviceArrayRefLoad):
(tests.threadArrayRefStore):
(tests.deviceArrayRefStore):
(tests.deviceArrayRefStoreIntLiteral):
(tests.threadPointerLoad):
(tests.threadPointerStore):
(tests.devicePointerLoad):
(tests.devicePointerStore):
(tests.arrayLoad):
(tests.constantAddressSpace):
(tests.standardLibraryDevicePointers):
(tests.threadArrayLoad): Deleted.
(tests.threadArrayLoadIntLiteral): Deleted.
(tests.deviceArrayLoad): Deleted.
(tests.threadArrayStore): Deleted.
(tests.deviceArrayStore): Deleted.
(tests.deviceArrayStoreIntLiteral): Deleted.

7:12 PM Changeset in webkit [236634] by Wenson Hsieh
  • 27 edits in trunk

No DOM API to instantiate an attachment for an img element
https://bugs.webkit.org/show_bug.cgi?id=189934
<rdar://problem/44743222>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Adds support for HTMLAttachmentElement.getAttachmentIdentifier, a function that internal WebKit clients can use
to ensure that an image element is backed by a unique _WKAttachment. See below for more details.

Tests: WKAttachmentTests.AddAttachmentToConnectedImageElement

WKAttachmentTests.ChangeFileWrapperForPastedImage
WKAttachmentTests.ConnectImageWithAttachmentToDocument

  • dom/Document.cpp:

(WebCore::Document::registerAttachmentIdentifier):

Add a new hook to register an empty _WKAttachment in the UI process with a given identifier. Used when creating
a new empty attachment to back an image element.

  • dom/Document.h:
  • editing/Editor.cpp:

(WebCore::Editor::registerAttachmentIdentifier):
(WebCore::Editor::notifyClientOfAttachmentUpdates):

  • editing/Editor.h:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::getAttachmentIdentifier):

Creates an attachment element to back the image element, if an attachment does not already exist, and returns
the unique identifier. This also causes an empty corresponding _WKAttachment to be created in the client, whose
file wrapper determines the contents of the image.

(WebCore::HTMLAttachmentElement::ensureUniqueIdentifier):
(WebCore::HTMLAttachmentElement::hasEnclosingImage const):
(WebCore::HTMLAttachmentElement::updateEnclosingImageWithData):

Add a helper that updates the source of the enclosing image element given a content type and image data, by
creating a new blob and blob URL.

  • html/HTMLAttachmentElement.h:
  • html/HTMLAttachmentElement.idl:
  • html/HTMLImageElement.idl:

Rename webkitAttachmentIdentifier to just attachmentIdentifier.

  • page/EditorClient.h:

(WebCore::EditorClient::registerAttachmentIdentifier):
(WebCore::EditorClient::didInsertAttachmentWithIdentifier):

Source/WebKit:

Makes some adjustments to support using _WKAttachment's file wrapper to change the contents of any image element
hosting the attachment in its shadow root. To do this, we add some plumbing to allow the UI process to update an
attachment element's enclosing image with data from its file wrapper.

  • UIProcess/API/APIAttachment.cpp:

(API::Attachment::isEmpty const):
(API::Attachment::enclosingImageData const):

Helper method that creates a SharedBuffer representing image data for the attachment. Only returns a non-null
value for attachment elements that are enclosed within an image.

  • UIProcess/API/APIAttachment.h:
  • UIProcess/API/Cocoa/APIAttachmentCocoa.mm:

(API::Attachment::enclosingImageData const):
(API::Attachment::isEmpty const):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _attachmentForIdentifier:]):

Add new SPI to request a _WKAttachment for a given unique identifier. Currently, this is only used for testing.

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

(WebKit::WebPageProxy::platformRegisterAttachment):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::registerAttachmentIdentifier):
(WebKit::WebPageProxy::didInsertAttachmentWithIdentifier):

Plumb whether or not the attachment is enclosed by an image from the web process to the UI process.

(WebKit::WebPageProxy::didRemoveAttachmentWithIdentifier):
(WebKit::WebPageProxy::didInsertAttachment): Deleted.
(WebKit::WebPageProxy::didRemoveAttachment):

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

(WebKit::WebEditorClient::registerAttachmentIdentifier):
(WebKit::WebEditorClient::didInsertAttachmentWithIdentifier):

Update attachment attributes after inserting an attachment. This ensures that an attachment that was created and
later inserted via script into the document will be synced with state in the UI process, if the client has
changed the contents of the attachment.

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateAttachmentAttributes):

Plumb attachment data from the UI process to the web process.

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

Tools:

Adds 3 new API tests in WKAttachmentTests:

AddAttachmentToConnectedImageElement verifies that an image element that's already in the document can gain an
attachment element via HTMLAttachmentElement.getAttachmentIdentifier.

ChangeFileWrapperForPastedImage verifies that an image that has been pasted produces a _WKAttachment in the UI
process, and changing the file wrapper of that _WKAttachment changes the pasted image.

ConnectImageWithAttachmentToDocument verifies that script can create an image element, ensure that it has an
attachment, and set a file wrapper for the generated _WKAttachment. Connecting the image to the document should
then result in an image element with the contents of the _WKAttachment's file wrapper.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(-[TestWKWebView imageElementSize]):
(-[TestWKWebView waitForImageElementSizeToBecome:]):
(TestWebKitAPI::TEST):
(-[TestWKWebView waitForAttachmentElementSizeToBecome:]): Deleted.

7:03 PM Changeset in webkit [236633] by Chris Dumez
  • 6 edits in trunk

The return value of an OnBeforeUnloadEventHandler should always be coerced into a DOMString
https://bugs.webkit.org/show_bug.cgi?id=190090

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline WPT test now that one more check is passing.

  • web-platform-tests/html/browsers/browsing-the-web/unloading-documents/beforeunload-canceling-expected.txt:

Source/WebCore:

The return value of an OnBeforeUnloadEventHandler should always be coerced into a DOMString:

In particular, this means that returning false in an OnBeforeUnloadEventHandler should NOT
cancel the event when the event is a CustomEvent (and not a BeforeUnloadEvent). This is
because the return value cannot be false at:

No new tests, rebaselined existing test.

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

LayoutTests:

Update test that was returning a value in a beforeunload event listener instead of using an
event handler. The test needs to use an event handler (window.onbeforeunload) as an event
listener does not have a return value. I have verified that our behavior is consistent with
Chrome and Firefox on this test, both with an event listener and an event handler.

  • fast/loader/form-submission-after-beforeunload-cancel.html:
6:53 PM Changeset in webkit [236632] by Simon Fraser
  • 8 edits in trunk

RenderLayer::removeOnlyThisLayer() should not call updateLayerPositions()
https://bugs.webkit.org/show_bug.cgi?id=190093

Reviewed by Dean Jackson and Zalan Bujtas.

Source/WebCore:

It's wrong for RenderLayer::removeOnlyThisLayer() to call updateLayerPositions(),
because this is called at style update time, and layout will be stale.

It was added (see webkit.org/b/25252) so that opacity changes, which can destroy layers, correctly update
descendants. However, RenderStyle::changeRequiresLayout() checks for opacity <=> no opacity
changes and triggers layout accordingly, which will result in a full post-layout
updateLayerPositions().

This also revealed that changes to the "isolate" property fail to trigger any kind of style recalc or layout;
we need it to trigger layout (for now) because it affects z-order.

Covered by existing tests.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::removeOnlyThisLayer):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayout const):

LayoutTests:

The ordering of the repaints changes.

blend-mode-turn-off-isolation-no-effect.html now issues a repaint, which is expected now.
Isolation is so rare that this is not a problem.

  • css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
  • css3/blending/repaint/blend-mode-turn-off-isolation-expected.txt:
  • css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt:
  • fast/repaint/absolute-position-change-containing-block-expected.txt:
6:38 PM Changeset in webkit [236631] by Chris Dumez
  • 10 edits in trunk

Regression(r236512): http/tests/navigation/keyboard-events-during-provisional-navigation.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190052

Reviewed by Ryosuke Niwa.

Source/WebKit:

Introduce a new IPC::SendOption indicating that the IPC should always be sent asynchronously,
even if the connection is in fully synchronous mode. This is used by WebKitTestRunner for
all text outputting (e.g. console.log) is asynchronous, and thus in order.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):

  • Platform/IPC/Connection.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePagePostMessageIgnoringFullySynchronousMode):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::postMessageIgnoringFullySynchronousMode):

  • WebProcess/WebPage/WebPage.h:

Tools:

The test relies on EventSender to send events to the page synchronously to the page and then uses console.log
to log those events. It also uses console.log() before sending those events to indicate what the test is about
to do. Note that console.log() normally causes the WebKitTestRunner to send an asynchronous IPC to the UIProcess
so that it can log the message.
The issue is that EventSender uses IPC::SendOption::UseFullySynchronousModeForTesting when sending the
sync IPC to the UIProcess. This option causes follow-up *asynchronous* IPC sent from the synchronous IPC reply
handler to be transformed into synchronous IPC.
As a result, some of the console.log IPC ended up being asynchronous and some other ended up being synchronous.
Because synchronous and asynchronous IPC is not necessarily processed in-order by the UIProcess, the logged
messages may end up being out of order, leading to flakiness.

To address the issue, we now make sure that InjectedBundle::outputText() uses a new IPC::SendOption indicating
that the IPC should always be sent asynchronously, even if the connection is in fully synchronous mode. As a
result, all text outputing IPC to the UIProcess will be asynchronous, and thus in order.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::outputText):

6:36 PM Changeset in webkit [236630] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit

Skip debug assertion in ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain()
https://bugs.webkit.org/show_bug.cgi?id=190097
<rdar://problem/44877080>

Reviewed by Chris Dumez.

The change in https://bugs.webkit.org/show_bug.cgi?id=190055 causes a
re-classification that may trigger a debug assertion in
ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain().
We should skip the assertion for statistics model version 14 to avoid
this.

  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain const):

6:00 PM Changeset in webkit [236629] by commit-queue@webkit.org
  • 2 edits in trunk

cmake cannot run if python 2 isn't available
https://bugs.webkit.org/show_bug.cgi?id=190075

Patch by Mike Gorse <mgorse@alum.wpi.edu> on 2018-09-28
Reviewed by Michael Catanzaro.

  • Source/cmake/WebKitCommon.cmake: Set Python_ADDITIONAL_VERSIONS

to 3, so that a python3 binary will be found.

5:48 PM Changeset in webkit [236628] by mmaxfield@apple.com
  • 14 edits
    1 move
    1 delete in trunk/Tools

[WHLSL] Pointers should have automatically-generated equality checks
https://bugs.webkit.org/show_bug.cgi?id=189986

Reviewed by Filip Pizlo.

C allows for pointer equality, and we need it so people can do null checks.
This is generated the same way all our other NativeFuncs are generated - by Checker
creating NativeFuncs inside CallExpression.resolve().

This patch also does some general cleanup.

  • WebGPUShadingLanguageRI/All.js: Everything the late checker does is no longer necessary.

The last thing it was doing was making sure that only primitive types are in resources, but
it's totally reasonable to put structs and arrays in resources, so I removed this pass. We
still have to add a check to make sure resources can't live within resources, but I expect
that will be done in the same place that semantics are checked.

  • WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:

(allocateAtEntryPoints.updateFunction.UpdateFunctions.prototype._addVariableDeclaration):
Name the global struct for debugging purposes.

  • WebGPUShadingLanguageRI/CallExpression.js:

(CallExpression.prototype._resolveByInstantiation): Cleanup
(CallExpression.prototype._resolveWithOperatorAnderIndexer): Ditto
(CallExpression.prototype._resolveWithOperatorLength): Ditto
(CallExpression.prototype._resolveWithReferenceComparator): Add support to automatically
generate pointer equality NativeFuncs.

  • WebGPUShadingLanguageRI/EPtr.js: Implement pointer equality in the interpreter.
  • WebGPUShadingLanguageRI/LateChecker.js: Removed.
  • WebGPUShadingLanguageRI/LayoutBuffers.js: Renamed from Tools/WebGPUShadingLanguageRI/LateCheckAndLayoutBuffers.js.

(layoutBuffers):

  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL Tests.xcodeproj/project.pbxproj:
  • WebGPUShadingLanguageRI/NativeFunc.js:
  • WebGPUShadingLanguageRI/OperatorArrayRefLength.js:

(OperatorArrayRefLength.prototype.instantiateImplementation):
(OperatorArrayRefLength):

  • WebGPUShadingLanguageRI/Prepare.js:

(let.prepare):

  • WebGPUShadingLanguageRI/SPIRV.html:
  • WebGPUShadingLanguageRI/Test.html:
  • WebGPUShadingLanguageRI/Test.js:

(tests.ternaryExpression):
(tests.break): Speed up testing time
(tests.doWhile): Ditto
(tests.forLoop): Ditto
(tests.atomics): Ditto
(tests.atomicsNull): Ditto
(tests.pointerEquality): Test pointer equality
(tests.standardLibraryDevicePointers):
(tests.devicePtrPtr): Deleted.
(tests.threadgroupPtrPtr): Deleted.
(tests.constantPtrPtr): Deleted.

  • WebGPUShadingLanguageRI/index.html:
5:22 PM Changeset in webkit [236627] by Devin Rousso
  • 6 edits
    3 adds in trunk

Web Inspector: crash in InspectorNetworkAgent::didReceiveResponse when loading denied x-frame resources
https://bugs.webkit.org/show_bug.cgi?id=190046

Reviewed by Joseph Pecoraro.

Source/WebKit:

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
Send the sanitized ResourceResponse with the message so WebInspector is able to access it.

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

(WebKit::WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):

LayoutTests:

  • http/tests/inspector/network/resources/x-frame-options.php: Added.
  • http/tests/inspector/network/x-frame-options-expected.txt: Added.
  • http/tests/inspector/network/x-frame-options.html: Added.
5:15 PM Changeset in webkit [236626] by realdawei@apple.com
  • 2 edits
    2 deletes in trunk/Source/ThirdParty/libwebrtc

Unreviewed, rolling out r236620.

broke internal Mac and iOS builds

Reverted changeset:

"Add yasm as third party tool for libwebrtc compilation"
https://bugs.webkit.org/show_bug.cgi?id=190025
https://trac.webkit.org/changeset/236620

5:02 PM Changeset in webkit [236625] by jiewen_tan@apple.com
  • 31 edits
    3 copies
    5 adds
    8 deletes in trunk

[WebAuthN] Polish WebAuthN auto-test environment
https://bugs.webkit.org/show_bug.cgi?id=189283
<rdar://problem/44117828>

Reviewed by Chris Dumez.

Source/WebCore:

This patch removes the old mocking mechanism.

Tests: http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https.html

http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https.html
http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • testing/Internals.cpp:

(WebCore::Internals::Internals):
(WebCore::Internals::mockAuthenticatorCoordinator const): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/MockAuthenticatorCoordinator.cpp: Removed.
  • testing/MockAuthenticatorCoordinator.h: Removed.
  • testing/MockAuthenticatorCoordinator.idl: Removed.

Source/WebKit:

This patch changes MockWebAuthenticationConfiguration.local to optional such that tests can express
absence of local authenticators.

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration):

  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:

(WebKit::MockLocalConnection::getUserConsent const):
(WebKit::MockLocalConnection::getAttestation const):

  • UIProcess/WebAuthentication/Mock/MockLocalService.cpp:

(WebKit::MockLocalService::platformStartDiscovery const):

  • UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h:

Tools:

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebAuthenticationMockConfiguration):

LayoutTests:

This patch does the following few things:

  1. Update tests that employ old mocking mechnism to the new one.
  2. Move tests from http/tests/webauthn to http/wpt/webauthn. As a result, we have one unified place for

all WebAuthN tests: http/wpt/webauthn.

  1. Add a helper function to check DOMException message as well.
  • TestExpectations:
  • http/tests/webauthn/public-key-credential-create-with-invalid-parameters.https-expected.txt: Removed.
  • http/tests/webauthn/public-key-credential-get-with-invalid-parameters.https-expected.txt: Removed.
  • http/tests/webauthn/public-key-credential-same-origin-with-ancestors-2.https-expected.txt: Removed.
  • http/tests/webauthn/public-key-credential-same-origin-with-ancestors-2.https.html: Removed.
  • http/tests/webauthn/public-key-credential-same-origin-with-ancestors.https-expected.txt: Removed.
  • http/tests/webauthn/public-key-credential-same-origin-with-ancestors.https.html: Removed.
  • http/tests/webauthn/resources/last-layer-frame.https.html: Removed.
  • http/tests/webauthn/resources/util.js: Removed.
  • http/wpt/credential-management/credentialscontainer-store-basics.https.html:
  • http/wpt/webauthn/idl.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure.https.html:
  • http/wpt/webauthn/public-key-credential-create-success.https-expected.txt: Removed.
  • http/wpt/webauthn/public-key-credential-create-success.https.html: Removed.
  • http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https.html: Renamed from LayoutTests/http/tests/webauthn/public-key-credential-create-with-invalid-parameters.https.html.
  • http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure.https.html:
  • http/wpt/webauthn/public-key-credential-get-success.https-expected.txt: Removed.
  • http/wpt/webauthn/public-key-credential-get-success.https.html: Removed.
  • http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https.html: Renamed from LayoutTests/http/tests/webauthn/public-key-credential-get-with-invalid-parameters.https.html.
  • http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html: Added.
  • http/wpt/webauthn/resources/last-layer-frame.https.html: Added.
  • http/wpt/webauthn/resources/second-layer-frame.https.html: Renamed from LayoutTests/http/tests/webauthn/resources/second-layer-frame.https.html.
  • http/wpt/webauthn/resources/util.js:
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wpe/TestExpectations:
4:31 PM Changeset in webkit [236624] by jer.noble@apple.com
  • 39 edits
    1 copy in trunk

Refactoring: eliminate raw pointer usage in Fullscreen code
https://bugs.webkit.org/show_bug.cgi?id=188747
<rdar://problem/43541164>

Reviewed by Alex Christensen.

Source/WebCore:

Two sources of raw pointers in the Fullscreen code:

  • Model classes (PlaybackSessionModel and VideoFullscreenModel) aren't ref-able, so they are passed around as raw references.
  • Observer classes (PlaybackSessionModelClient and VideoFullscreenModelClient, and VideoFullscreenChangeObserver) are also passed around as raw pointers, but shouldn't be ref-able.

Make Model classes ref-able by adding ref() and deref() which call virtual refModel and
derefModel methods, overridden by implementing subclasses. Make every concrete observer
inherit from CanMakeWeakPtr, and every registration method take WeakPtr wrappers around
the client interface.

Since every Interface class now holds a strong reference to its Model classes, and each
Model class holds a weak reference to all its clients, no explicit invalidate() method
is necessary.

Notes:

  • Since the weak pointer methods need to be able to downcast to the abstract base class, observers need to inherit publically (rather than privately) from those base classes.
  • Media element Models should compose EventListener rather than inheriting from it, since EventListener has its own RefCount.
  • WeakPtrs can't be held in HashSets (because they change value, and therefore hash, when their underlying object is destroyed), so clients should be stored in a Vector instead.
  • Interfaces should be given all required Refs at creation time, so that they can store those parameters as Refs instead of RefPtrs.
  • platform/cocoa/PlaybackSessionInterface.h:

(WebCore::PlaybackSessionInterface::~PlaybackSessionInterface): Deleted.

  • platform/cocoa/PlaybackSessionModel.h:

(WebCore::PlaybackSessionModel::ref):
(WebCore::PlaybackSessionModel::deref):
(WebCore::PlaybackSessionModel::~PlaybackSessionModel): Deleted.

  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::~PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::setMediaElement):
(WebCore::PlaybackSessionModelMediaElement::updateForEventName):
(WebCore::PlaybackSessionModelMediaElement::addClient):
(WebCore::PlaybackSessionModelMediaElement::removeClient):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionIndices):
(WebCore::PlaybackSessionModelMediaElement::handleEvent): Deleted.

  • platform/cocoa/VideoFullscreenChangeObserver.h:

(WebCore::VideoFullscreenChangeObserver::~VideoFullscreenChangeObserver): Deleted.

  • platform/cocoa/VideoFullscreenModel.h:

(WebCore::VideoFullscreenModel::ref):
(WebCore::VideoFullscreenModel::deref):
(WebCore::VideoFullscreenModel::~VideoFullscreenModel): Deleted.

  • platform/cocoa/VideoFullscreenModelVideoElement.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement):
(VideoFullscreenModelVideoElement::setVideoElement):
(VideoFullscreenModelVideoElement::addClient):
(VideoFullscreenModelVideoElement::removeClient):
(VideoFullscreenModelVideoElement::setHasVideo):
(VideoFullscreenModelVideoElement::setVideoDimensions):
(VideoFullscreenModelVideoElement::willEnterPictureInPicture):
(VideoFullscreenModelVideoElement::didEnterPictureInPicture):
(VideoFullscreenModelVideoElement::failedToEnterPictureInPicture):
(VideoFullscreenModelVideoElement::willExitPictureInPicture):
(VideoFullscreenModelVideoElement::didExitPictureInPicture):
(VideoFullscreenModelVideoElement::handleEvent): Deleted.

  • platform/ios/PlaybackSessionInterfaceAVKit.h:

(WebCore::PlaybackSessionInterfaceAVKit::create):
(WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):
(): Deleted.

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::invalidate): Deleted.

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

(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):
(-[WebAVPlayerLayer setVideoGravity:]):
(VideoFullscreenInterfaceAVKit::create):
(VideoFullscreenInterfaceAVKit::VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::~VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenChangeObserver):
(VideoFullscreenInterfaceAVKit::applicationDidBecomeActive):
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::presentingViewController):
(VideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(VideoFullscreenInterfaceAVKit::preparedToExitFullscreen):
(VideoFullscreenInterfaceAVKit::willStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::failedToStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
(VideoFullscreenInterfaceAVKit::doSetup):
(VideoFullscreenInterfaceAVKit::setMode):
(VideoFullscreenInterfaceAVKit::clearMode):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenModel): Deleted.
(VideoFullscreenInterfaceAVKit::invalidate): Deleted.

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

(-[WebAVPlayerController delegate]):
(-[WebAVPlayerController playbackSessionInterface]):
(-[WebAVPlayerController setPlaybackSessionInterface:]):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::didCleanupFullscreen):
(VideoFullscreenControllerContext::addClient):
(VideoFullscreenControllerContext::removeClient):
(VideoFullscreenControllerContext::willEnterPictureInPicture):
(VideoFullscreenControllerContext::didEnterPictureInPicture):
(VideoFullscreenControllerContext::failedToEnterPictureInPicture):
(VideoFullscreenControllerContext::willExitPictureInPicture):
(VideoFullscreenControllerContext::didExitPictureInPicture):
(VideoFullscreenControllerContext::setUpFullscreen):

  • platform/mac/PlaybackSessionInterfaceMac.h:
  • platform/mac/PlaybackSessionInterfaceMac.mm:

(WebCore::PlaybackSessionInterfaceMac::create):
(WebCore::PlaybackSessionInterfaceMac::PlaybackSessionInterfaceMac):
(WebCore::PlaybackSessionInterfaceMac::playbackSessionModel const):
(WebCore::PlaybackSessionInterfaceMac::rateChanged):
(WebCore::PlaybackSessionInterfaceMac::beginScrubbing):
(WebCore::PlaybackSessionInterfaceMac::endScrubbing):
(WebCore::PlaybackSessionInterfaceMac::setPlayBackControlsManager):
(WebCore::PlaybackSessionInterfaceMac::updatePlaybackControlsManagerTiming):
(WebCore::PlaybackSessionInterfaceMac::~PlaybackSessionInterfaceMac): Deleted.
(WebCore::PlaybackSessionInterfaceMac::invalidate): Deleted.

  • platform/mac/VideoFullscreenInterfaceMac.h:

(WebCore::VideoFullscreenInterfaceMac::create):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenModel const):
(WebCore::VideoFullscreenInterfaceMac::playbackSessionModel const):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenChangeObserver const):

  • platform/mac/VideoFullscreenInterfaceMac.mm:

(-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]):
(-[WebVideoFullscreenInterfaceMacObjC boundsDidChangeForVideoViewContainer:]):
(-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPlay:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPause:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionStop:]):
(WebCore::VideoFullscreenInterfaceMac::VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::~VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenChangeObserver):
(WebCore::VideoFullscreenInterfaceMac::setMode):
(WebCore::VideoFullscreenInterfaceMac::clearMode):
(WebCore::VideoFullscreenInterfaceMac::invalidate):
(WebCore::VideoFullscreenInterfaceMac::requestHideAndExitPiP):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenModel): Deleted.

  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebPlaybackControlsManager setCurrentAudioTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager setCurrentLegibleTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager togglePlayback]):
(-[WebPlaybackControlsManager setPlaying:]):
(-[WebPlaybackControlsManager isPlaying]):
(-[WebPlaybackControlsManager togglePictureInPicture]):

Source/WebKit:

Adopt those Ref and WeakPtr changes made in WebCore.

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

(WebKit::PlaybackSessionModelContext::addClient):
(WebKit::PlaybackSessionModelContext::removeClient):
(WebKit::PlaybackSessionModelContext::durationChanged):
(WebKit::PlaybackSessionModelContext::currentTimeChanged):
(WebKit::PlaybackSessionModelContext::bufferedTimeChanged):
(WebKit::PlaybackSessionModelContext::rateChanged):
(WebKit::PlaybackSessionModelContext::seekableRangesChanged):
(WebKit::PlaybackSessionModelContext::canPlayFastReverseChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::externalPlaybackChanged):
(WebKit::PlaybackSessionModelContext::wirelessVideoPlaybackDisabledChanged):
(WebKit::PlaybackSessionModelContext::mutedChanged):
(WebKit::PlaybackSessionModelContext::volumeChanged):
(WebKit::PlaybackSessionModelContext::pictureInPictureActiveChanged):
(WebKit::PlaybackSessionManagerProxy::invalidate):
(WebKit::PlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::PlaybackSessionManagerProxy::removeClientForContext):

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

(WebKit::VideoFullscreenModelContext::create):
(WebKit::VideoFullscreenModelContext::VideoFullscreenModelContext):
(WebKit::VideoFullscreenModelContext::addClient):
(WebKit::VideoFullscreenModelContext::removeClient):
(WebKit::VideoFullscreenModelContext::willEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::didEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::failedToEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::willExitPictureInPicture):
(WebKit::VideoFullscreenModelContext::didExitPictureInPicture):
(WebKit::VideoFullscreenManagerProxy::invalidate):
(WebKit::VideoFullscreenManagerProxy::createModelAndInterface):
(WebKit::VideoFullscreenManagerProxy::removeClientForContext):
(WebKit::VideoFullscreenModelContext::~VideoFullscreenModelContext): Deleted.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(WKFullScreenViewControllerPlaybackSessionModelClient::setInterface):
(WKFullScreenViewControllerVideoFullscreenModelClient::setInterface):
(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController _togglePiPAction:]):

  • UIProcess/mac/WKFullScreenWindowController.mm:

(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface):

  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.mm:

(WebKit::PlaybackSessionInterfaceContext::PlaybackSessionInterfaceContext):
(WebKit::PlaybackSessionManager::~PlaybackSessionManager):
(WebKit::PlaybackSessionManager::createModelAndInterface):
(WebKit::PlaybackSessionManager::removeContext):
(WebKit::PlaybackSessionInterfaceContext::~PlaybackSessionInterfaceContext): Deleted.

  • WebProcess/cocoa/VideoFullscreenManager.h:

(WebKit::VideoFullscreenInterfaceContext::create):
(WebKit::VideoFullscreenInterfaceContext::createWeakPtr):

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenInterfaceContext::VideoFullscreenInterfaceContext):
(WebKit::VideoFullscreenManager::~VideoFullscreenManager):
(WebKit::VideoFullscreenManager::createModelAndInterface):
(WebKit::VideoFullscreenManager::removeContext):

Source/WebKitLegacy/mac:

PlaybackSessionInterface no longer has an invalidate() method.

  • WebView/WebView.mm:

(-[WebView _clearPlaybackControlsManager]):

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/WeakPtrContainer.h: Added.

LayoutTests:

Test was causing false pass results due to the webkitPresentationMode being correctly set
to "inline" during the close() operation; modify the test to only perform the close()
operation when the presetation mode is changed to "picture-in-picture".

  • media/controls/ipad/close-page-with-picture-in-picture-video-assertion-failure.html:
  • media/controls/ipad/resources/picture-in-picture.html:
4:18 PM Changeset in webkit [236623] by Chris Dumez
  • 35 edits
    1 delete in trunk

Drop support for cross-origin-window-policy header
https://bugs.webkit.org/show_bug.cgi?id=190081

Reviewed by Ryosuke Niwa.

Source/WebCore:

Drop support for cross-origin-window-policy header as this was never enabled and its design has
some issues we have not resolved. An alternative is being worked on but will be substantially
different so there is not much value in keeping this code around.

  • bindings/js/JSDOMBindingSecurity.cpp:
  • bindings/js/JSDOMBindingSecurity.h:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::addCrossOriginWindowPropertyNames):
(WebCore::addScopedChildrenIndexes):
(WebCore::addCrossOriginWindowOwnPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):

  • bindings/js/JSDOMWindowCustom.h:
  • bindings/js/JSRemoteDOMWindowCustom.cpp:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeGetterBodyDefinition):
(GenerateAttributeSetterBodyDefinition):
(GenerateOperationBodyDefinition):

  • bindings/scripts/IDLAttributes.json:
  • dom/Document.cpp:

(WebCore::Document::canNavigate):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument):

  • page/AbstractDOMWindow.cpp:

(WebCore::AbstractDOMWindow::AbstractDOMWindow):

  • page/AbstractDOMWindow.h:
  • page/DOMWindow.idl:
  • page/Settings.yaml:
  • platform/network/HTTPParsers.cpp:
  • platform/network/HTTPParsers.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:
  • UIProcess/API/C/WKPreferencesRef.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::frameBecameRemote):

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::crossOriginWindowPolicySupportEnabled):
(WebPreferences::setCrossOriginWindowPolicySupportEnabled):

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

190081_DropCrossOriginWindowPolicy

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

  • http/wpt/cross-origin-window-policy/allow-postmessage-expected.txt: Removed.
  • http/wpt/cross-origin-window-policy/allow-postmessage-from-deny-expected.txt: Removed.
  • http/wpt/cross-origin-window-policy/allow-postmessage-from-deny.html: Removed.
  • http/wpt/cross-origin-window-policy/allow-postmessage-from-deny.html.headers: Removed.
  • http/wpt/cross-origin-window-policy/allow-postmessage.html: Removed.
  • http/wpt/cross-origin-window-policy/cross-origin-window-policy-header-expected.txt: Removed.
  • http/wpt/cross-origin-window-policy/cross-origin-window-policy-header.html: Removed.
  • http/wpt/cross-origin-window-policy/navigation-from-opener-via-open-target-expected.txt: Removed.
  • http/wpt/cross-origin-window-policy/navigation-from-opener-via-open-target.html: Removed.
  • http/wpt/cross-origin-window-policy/navigation-from-subframe-via-anchor-target-expected.txt: Removed.
  • http/wpt/cross-origin-window-policy/navigation-from-subframe-via-anchor-target.html: Removed.
  • http/wpt/cross-origin-window-policy/resources/cross-origin-window-policy-allow-postmessage-pong.html: Removed.
  • http/wpt/cross-origin-window-policy/resources/cross-origin-window-policy-allow-postmessage-pong.html.headers: Removed.
  • http/wpt/cross-origin-window-policy/resources/destination.html: Removed.
  • http/wpt/cross-origin-window-policy/resources/navigate-parent-via-anchor.html: Removed.
  • http/wpt/cross-origin-window-policy/resources/navigation-from-subframe-frame.py: Removed.
  • http/wpt/cross-origin-window-policy/resources/serve-cross-origin-window-policy-header.py: Removed.
  • http/wpt/cross-origin-window-policy/resources/utils.js: Removed.
4:13 PM Changeset in webkit [236622] by aestes@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r236091): CSSKeywordCompletions.js has "checkout" instead of "check-out" as a value for -apple-pay-button-type
https://bugs.webkit.org/show_bug.cgi?id=190096

Reviewed by Ryosuke Niwa.

I changed "checkout" to "check-out" in r235754, but it somehow got flipped back to "checkout" in r236091.

  • UserInterface/Models/CSSKeywordCompletions.js:
4:09 PM Changeset in webkit [236621] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Do not do automatic process prewarming while under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=190082
<rdar://problem/39771424>

Reviewed by Geoffrey Garen.

Do not do automatic process prewarming while under memory pressure and
also terminate any prewarmed process when receiving a memory warning.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
(WebKit::WebProcessPool::handleMemoryPressureWarning):

  • UIProcess/WebProcessPool.h:
  • UIProcess/ios/WebMemoryPressureHandlerIOS.mm:

(WebKit::installMemoryPressureHandler):

4:05 PM Changeset in webkit [236620] by youenn@apple.com
  • 2 edits
    1252 adds in trunk/Source/ThirdParty/libwebrtc

Add yasm as third party tool for libwebrtc compilation
https://bugs.webkit.org/show_bug.cgi?id=190025

Reviewed by Eric Carlson.

Add yasm source code and build the yasm executable as it is needed for libvpx compilation.

  • Source/third_party/yasm-1.3.0: Added.
  • libwebrtc.xcodeproj/project.pbxproj:
4:02 PM Changeset in webkit [236619] by dbates@webkit.org
  • 9 edits in trunk/Source

[iOS] Allow programmatic focus when hardware keyboard is attached
https://bugs.webkit.org/show_bug.cgi?id=190017
<rdar://problem/42270463>

Reviewed by Wenson Hsieh.

Source/WebCore:

Add support for checking if the embedding client is WebKitTestRunner and export isDumpRenderTree()
so that we can make use of it from WebKit. We will make use of these functions to keep the current
behavior of disallowing programmatic focus when running tests in these apps. This is needed to
keep testing deterministic. Otherwise, test results would be dependent on whether a hardware
keyboard is attached. When running tests in Simulator.app the hardware keyboard may also not be
connected (i.e. Hardware > Keyboard > Connect Hardware Keyboard is disabled).

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isWebKitTestRunner): Added.

Source/WebKit:

Make the experience of using iOS with a hardware keyboard more desktop-like by allowing
programmatic focusing of editable elements.

  • Platform/spi/ios/UIKitSPI.h: Forward declare SPI.
  • Shared/NativeWebKeyboardEvent.h:
  • Shared/ios/NativeWebKeyboardEventIOS.mm:

(WebKit::isInHardwareKeyboardMode): Returns whether we are in hardware keyboard mode. In DumpRenderTree
and WebKitTestRunner this function always returns false to keep test results deterministic.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
Allow starting an input session if we are in hardware keyboard mode.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState const): Send the full editor state if we are in hardware
keyboard mode regardless of whether layout has been performed so that UIProcess can update UI,
including the position of the caret, immediately.

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

REGRESSION(r236609): API tests for mso list preservation are failing
https://bugs.webkit.org/show_bug.cgi?id=190095

Reviewed by Wenson Hsieh.

The regression was caused by appendNodeToPreserveMSOList called after an early return for not having renderer.
Clearly, comment & style elements coming from a MS word document wouldn't have a renderer.

Fixed the bug by changing the order.

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):

3:32 PM Changeset in webkit [236617] by yusukesuzuki@slowstart.org
  • 10 edits
    1 move in trunk

[WTF] Make isMainThread more reliable
https://bugs.webkit.org/show_bug.cgi?id=189880

Reviewed by Mark Lam.

.:

  • Source/cmake/OptionsCommon.cmake:

Source/WTF:

isMainThread() relied on Thread::current(). This API becomes broken in Windows
when the Thread is about to be destroyed since TLS is already cleared. This causes
a bug since isMainThread() is called in Thread::didExit in Windows.

This patch makes this isMainThread more reliable in all the platforms. In Windows,
we use Thread::currentID() instead of Thread::current() since Thread::currentID
uses Win32 GetCurrentThreadId directly. In the other system, we use pthread_main_np
or pthread_self instead.

We also move holdLock code inside if (shouldRemoveThreadFromThreadGroup()). If
the other thread takes a mutex and destroyed, this holdLock waits forever. This problem
only happens in Windows since Windows calls TLS destructor for the main thread.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/MainThread.cpp:

(WTF::initializeMainThread):
(): Deleted.
(WTF::isMainThread): Deleted.
(WTF::isMainThreadIfInitialized): Deleted.

  • wtf/Platform.h:
  • wtf/PlatformMac.cmake:
  • wtf/Threading.cpp:

(WTF::Thread::didExit):

  • wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
  • wtf/generic/MainThreadGeneric.cpp:

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

  • wtf/win/MainThreadWin.cpp:

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

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

Build fix after r236612.

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeSelection):

3:08 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:06 PM Changeset in webkit [236615] by aestes@apple.com
  • 14 edits in trunk

[Apple Pay] Remove the "in-store" button type
https://bugs.webkit.org/show_bug.cgi?id=190079

Reviewed by Tim Horton.

Source/WebCore:

According to <https://developer.apple.com/design/human-interface-guidelines/apple-pay/buttons-and-marks/buttons/>,
this button is meant only for certain kinds of native apps. It shouldn't be available on the web.

Updated http/tests/ssl/applepay/ApplePayButton.html.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ApplePayButtonType const):

  • css/CSSValueKeywords.in:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • rendering/RenderThemeCocoa.mm:

(WebCore::toPKPaymentButtonType):

  • rendering/style/RenderStyleConstants.h:

Source/WebInspectorUI:

  • UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

  • http/tests/ssl/applepay/ApplePayButton.html:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt:
3:01 PM Changeset in webkit [236614] by realdawei@apple.com
  • 2 edits in trunk/LayoutTests

WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
https://bugs.webkit.org/show_bug.cgi?id=189641

Unreviewed, skip tests that are timing out.

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

2:56 PM Changeset in webkit [236613] by Chris Dumez
  • 9 edits in trunk

document.open() should throw errors for cross-origin calls
https://bugs.webkit.org/show_bug.cgi?id=189371
<rdar://problem/44282700>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline existing WPT tests now that more checks are passing.

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window-expected.txt:
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-same-origin-domain.sub.window-expected.txt:

Source/WebCore:

document.open() / document.write() should throw errors for cross-origin calls as per:

No new tests, rebaselined existing tests.

  • dom/Document.cpp:

(WebCore::Document::open):
(WebCore::Document::write):
(WebCore::Document::writeln):

  • dom/Document.h:

LayoutTests:

Tweak a couple of existing tests to reflect behavior change.

  • fast/dom/HTMLDocument/document-open-return-value.html:
  • fast/parser/tokenizer-close-during-document-write.html:
2:08 PM Changeset in webkit [236612] by rniwa@webkit.org
  • 15 edits in trunk/Source

Rename createMarkup to serializePreservingVisualAppearance
https://bugs.webkit.org/show_bug.cgi?id=190086

Reviewed by Wenson Hsieh.

Source/WebCore:

Renamed the function to clarify what it does. Also removed the unused Range::toHTML.

  • dom/Range.cpp:

(WebCore::Range::toHTML const): Deleted.

  • dom/Range.h:
  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::selectionInHTMLFormat):

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • editing/markup.cpp:

(WebCore::serializePreservingVisualAppearance):
(WebCore::createMarkup): Deleted.

  • editing/markup.h:
  • editing/wpe/EditorWPE.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create):
(WebCore::LegacyWebArchive::createFromSelection):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeRangeToDataObject):

Source/WebKit:

  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::updateGlobalSelection):

Source/WebKitLegacy/mac:

  • DOM/WebDOMOperations.mm:

(-[DOMRange markupString]):

2:03 PM Changeset in webkit [236611] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Remove some unused RenderLayer code
https://bugs.webkit.org/show_bug.cgi?id=190078

Reviewed by Zalan Bujtas.

The 'outOfFlowDescendantContainingBlocks' code was related to the accelerated overflow scrolling code that
I removed recently.

updateDescendantsLayerListsIfNeeded() is never called.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateDescendantDependentFlags):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
1:38 PM Changeset in webkit [236610] by commit-queue@webkit.org
  • 39 edits
    1 delete in trunk

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

caused three API test timeouts (Requested by jernoble on
#webkit).

Reverted changeset:

"Refactoring: eliminate raw pointer usage in Fullscreen code"
https://bugs.webkit.org/show_bug.cgi?id=188747
https://trac.webkit.org/changeset/236605

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

Simplify StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=190073

Reviewed by Antti Koivisto.

Simplified the range traversal algorithm in traverseNodesForSerialization as it was too complicated
to support shadow DOM for copy and paste.

Instead of using NodeTraversal::next to traverse past ancestors and then figuring out which ancestor
must be closed or to wrap the existing markup with, new code collects the list of ancestors as we
traverse out of them.

Also extracted lambdas for generating markup and deciding whether to skip a node as well as keeping
track of the depth of the current markup. This further reduces the code complexity of the actual
node traversal algorithm. Keeping track of the depth allows us to now generate ancestor elements'
closing tags without keeping a stack of ancestor nodes we opened at all times.

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):

1:02 PM Changeset in webkit [236608] by BJ Burg
  • 2 edits in trunk/Source/WTF

Replace recently added line comments in Compiler.h
https://bugs.webkit.org/show_bug.cgi?id=190062
<rdar://problem/44838618>

Reviewed by Joseph Pecoraro.

This breaks some Apple-internal tooling. For now, work around it by
changing the comment style. On the other side, the issue will be fixed
more permanently by adopting the approach from r230213.

  • wtf/Compiler.h: Use multiline comments.
12:47 PM Changeset in webkit [236607] by rniwa@webkit.org
  • 13 edits in trunk/Source/WebCore

Replace every use of Node::offsetInCharacters() by Node::isCharacterDataNode()
https://bugs.webkit.org/show_bug.cgi?id=190069

Reviewed by Zalan Bujtas.

Removed Node::offsetInCharacters() and replaced every use of it by isCharacterDataNode()
because their implementations are identical.

Note that offsetInCharacters() sounds like a function which returns some kind of an offset
but it doesn't. It returns true when called on a CharacterData and false elsewhere.

  • accessibility/AXObjectCache.cpp:

(WebCore::characterOffsetsInOrder):
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):

  • dom/CharacterData.cpp:

(WebCore::CharacterData::offsetInCharacters const): Deleted.

  • dom/CharacterData.h:
  • dom/Node.cpp:

(WebCore::Node::offsetInCharacters const): Deleted.

  • dom/Node.h:
  • dom/Position.cpp:

(WebCore::Position::parentAnchoredEquivalent const):

  • dom/Position.h:

(WebCore::lastOffsetInNode):
(WebCore::minOffsetForNode):
(WebCore::offsetIsBeforeLastNodeOffset):

  • dom/Range.cpp:

(WebCore::Range::firstNode const):
(WebCore::Range::pastLastNode const):

  • dom/RangeBoundaryPoint.h:

(WebCore::RangeBoundaryPoint::setOffset):
(WebCore::RangeBoundaryPoint::setToEndOfNode):

  • editing/Editing.cpp:

(WebCore::lastOffsetForEditing):

  • editing/TextIterator.cpp:

(WebCore::nextInPreOrderCrossingShadowBoundaries):
(WebCore::TextIterator::node const):
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::extend):

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

Gardening: speculative build fix.
<rdar://problem/44869924>

Not reviewed.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

11:39 AM Changeset in webkit [236605] by jer.noble@apple.com
  • 39 edits
    1 copy in trunk

Refactoring: eliminate raw pointer usage in Fullscreen code
https://bugs.webkit.org/show_bug.cgi?id=188747
<rdar://problem/43541164>

Reviewed by Alex Christensen.

Source/WebCore:

Two sources of raw pointers in the Fullscreen code:

  • Model classes (PlaybackSessionModel and VideoFullscreenModel) aren't ref-able, so they are passed around as raw references.
  • Observer classes (PlaybackSessionModelClient and VideoFullscreenModelClient, and VideoFullscreenChangeObserver) are also passed around as raw pointers, but shouldn't be ref-able.

Make Model classes ref-able by adding ref() and deref() which call virtual refModel and
derefModel methods, overridden by implementing subclasses. Make every concrete observer
inherit from CanMakeWeakPtr, and every registration method take WeakPtr wrappers around
the client interface.

Since every Interface class now holds a strong reference to its Model classes, and each
Model class holds a weak reference to all its clients, no explicit invalidate() method
is necessary.

Notes:

  • Since the weak pointer methods need to be able to downcast to the abstract base class, observers need to inherit publically (rather than privately) from those base classes.
  • Media element Models should compose EventListener rather than inheriting from it, since EventListener has its own RefCount.
  • WeakPtrs can't be held in HashSets (because they change value, and therefore hash, when their underlying object is destroyed), so clients should be stored in a Vector instead.
  • Interfaces should be given all required Refs at creation time, so that they can store those parameters as Refs instead of RefPtrs.
  • platform/cocoa/PlaybackSessionInterface.h:

(WebCore::PlaybackSessionInterface::~PlaybackSessionInterface): Deleted.

  • platform/cocoa/PlaybackSessionModel.h:

(WebCore::PlaybackSessionModel::ref):
(WebCore::PlaybackSessionModel::deref):
(WebCore::PlaybackSessionModel::~PlaybackSessionModel): Deleted.

  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::~PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::setMediaElement):
(WebCore::PlaybackSessionModelMediaElement::updateForEventName):
(WebCore::PlaybackSessionModelMediaElement::addClient):
(WebCore::PlaybackSessionModelMediaElement::removeClient):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionIndices):
(WebCore::PlaybackSessionModelMediaElement::handleEvent): Deleted.

  • platform/cocoa/VideoFullscreenChangeObserver.h:

(WebCore::VideoFullscreenChangeObserver::~VideoFullscreenChangeObserver): Deleted.

  • platform/cocoa/VideoFullscreenModel.h:

(WebCore::VideoFullscreenModel::ref):
(WebCore::VideoFullscreenModel::deref):
(WebCore::VideoFullscreenModel::~VideoFullscreenModel): Deleted.

  • platform/cocoa/VideoFullscreenModelVideoElement.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement):
(VideoFullscreenModelVideoElement::setVideoElement):
(VideoFullscreenModelVideoElement::addClient):
(VideoFullscreenModelVideoElement::removeClient):
(VideoFullscreenModelVideoElement::setHasVideo):
(VideoFullscreenModelVideoElement::setVideoDimensions):
(VideoFullscreenModelVideoElement::willEnterPictureInPicture):
(VideoFullscreenModelVideoElement::didEnterPictureInPicture):
(VideoFullscreenModelVideoElement::failedToEnterPictureInPicture):
(VideoFullscreenModelVideoElement::willExitPictureInPicture):
(VideoFullscreenModelVideoElement::didExitPictureInPicture):
(VideoFullscreenModelVideoElement::handleEvent): Deleted.

  • platform/ios/PlaybackSessionInterfaceAVKit.h:

(WebCore::PlaybackSessionInterfaceAVKit::create):
(WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):
(): Deleted.

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::invalidate): Deleted.

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

(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):
(-[WebAVPlayerLayer setVideoGravity:]):
(VideoFullscreenInterfaceAVKit::create):
(VideoFullscreenInterfaceAVKit::VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::~VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenChangeObserver):
(VideoFullscreenInterfaceAVKit::applicationDidBecomeActive):
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::presentingViewController):
(VideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(VideoFullscreenInterfaceAVKit::preparedToExitFullscreen):
(VideoFullscreenInterfaceAVKit::willStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::failedToStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
(VideoFullscreenInterfaceAVKit::doSetup):
(VideoFullscreenInterfaceAVKit::setMode):
(VideoFullscreenInterfaceAVKit::clearMode):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenModel): Deleted.
(VideoFullscreenInterfaceAVKit::invalidate): Deleted.

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

(-[WebAVPlayerController delegate]):
(-[WebAVPlayerController playbackSessionInterface]):
(-[WebAVPlayerController setPlaybackSessionInterface:]):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::didCleanupFullscreen):
(VideoFullscreenControllerContext::addClient):
(VideoFullscreenControllerContext::removeClient):
(VideoFullscreenControllerContext::willEnterPictureInPicture):
(VideoFullscreenControllerContext::didEnterPictureInPicture):
(VideoFullscreenControllerContext::failedToEnterPictureInPicture):
(VideoFullscreenControllerContext::willExitPictureInPicture):
(VideoFullscreenControllerContext::didExitPictureInPicture):
(VideoFullscreenControllerContext::setUpFullscreen):

  • platform/mac/PlaybackSessionInterfaceMac.h:
  • platform/mac/PlaybackSessionInterfaceMac.mm:

(WebCore::PlaybackSessionInterfaceMac::create):
(WebCore::PlaybackSessionInterfaceMac::PlaybackSessionInterfaceMac):
(WebCore::PlaybackSessionInterfaceMac::playbackSessionModel const):
(WebCore::PlaybackSessionInterfaceMac::rateChanged):
(WebCore::PlaybackSessionInterfaceMac::beginScrubbing):
(WebCore::PlaybackSessionInterfaceMac::endScrubbing):
(WebCore::PlaybackSessionInterfaceMac::setPlayBackControlsManager):
(WebCore::PlaybackSessionInterfaceMac::updatePlaybackControlsManagerTiming):
(WebCore::PlaybackSessionInterfaceMac::~PlaybackSessionInterfaceMac): Deleted.
(WebCore::PlaybackSessionInterfaceMac::invalidate): Deleted.

  • platform/mac/VideoFullscreenInterfaceMac.h:

(WebCore::VideoFullscreenInterfaceMac::create):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenModel const):
(WebCore::VideoFullscreenInterfaceMac::playbackSessionModel const):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenChangeObserver const):

  • platform/mac/VideoFullscreenInterfaceMac.mm:

(-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]):
(-[WebVideoFullscreenInterfaceMacObjC boundsDidChangeForVideoViewContainer:]):
(-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPlay:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPause:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionStop:]):
(WebCore::VideoFullscreenInterfaceMac::VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::~VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenChangeObserver):
(WebCore::VideoFullscreenInterfaceMac::setMode):
(WebCore::VideoFullscreenInterfaceMac::clearMode):
(WebCore::VideoFullscreenInterfaceMac::invalidate):
(WebCore::VideoFullscreenInterfaceMac::requestHideAndExitPiP):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenModel): Deleted.

  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebPlaybackControlsManager setCurrentAudioTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager setCurrentLegibleTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager togglePlayback]):
(-[WebPlaybackControlsManager setPlaying:]):
(-[WebPlaybackControlsManager isPlaying]):
(-[WebPlaybackControlsManager togglePictureInPicture]):

Source/WebKit:

Adopt those Ref and WeakPtr changes made in WebCore.

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

(WebKit::PlaybackSessionModelContext::addClient):
(WebKit::PlaybackSessionModelContext::removeClient):
(WebKit::PlaybackSessionModelContext::durationChanged):
(WebKit::PlaybackSessionModelContext::currentTimeChanged):
(WebKit::PlaybackSessionModelContext::bufferedTimeChanged):
(WebKit::PlaybackSessionModelContext::rateChanged):
(WebKit::PlaybackSessionModelContext::seekableRangesChanged):
(WebKit::PlaybackSessionModelContext::canPlayFastReverseChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::externalPlaybackChanged):
(WebKit::PlaybackSessionModelContext::wirelessVideoPlaybackDisabledChanged):
(WebKit::PlaybackSessionModelContext::mutedChanged):
(WebKit::PlaybackSessionModelContext::volumeChanged):
(WebKit::PlaybackSessionModelContext::pictureInPictureActiveChanged):
(WebKit::PlaybackSessionManagerProxy::invalidate):
(WebKit::PlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::PlaybackSessionManagerProxy::removeClientForContext):

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

(WebKit::VideoFullscreenModelContext::create):
(WebKit::VideoFullscreenModelContext::VideoFullscreenModelContext):
(WebKit::VideoFullscreenModelContext::addClient):
(WebKit::VideoFullscreenModelContext::removeClient):
(WebKit::VideoFullscreenModelContext::willEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::didEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::failedToEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::willExitPictureInPicture):
(WebKit::VideoFullscreenModelContext::didExitPictureInPicture):
(WebKit::VideoFullscreenManagerProxy::invalidate):
(WebKit::VideoFullscreenManagerProxy::createModelAndInterface):
(WebKit::VideoFullscreenManagerProxy::removeClientForContext):
(WebKit::VideoFullscreenModelContext::~VideoFullscreenModelContext): Deleted.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(WKFullScreenViewControllerPlaybackSessionModelClient::setInterface):
(WKFullScreenViewControllerVideoFullscreenModelClient::setInterface):
(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController _togglePiPAction:]):

  • UIProcess/mac/WKFullScreenWindowController.mm:

(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface):

  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.mm:

(WebKit::PlaybackSessionInterfaceContext::PlaybackSessionInterfaceContext):
(WebKit::PlaybackSessionManager::~PlaybackSessionManager):
(WebKit::PlaybackSessionManager::createModelAndInterface):
(WebKit::PlaybackSessionManager::removeContext):
(WebKit::PlaybackSessionInterfaceContext::~PlaybackSessionInterfaceContext): Deleted.

  • WebProcess/cocoa/VideoFullscreenManager.h:

(WebKit::VideoFullscreenInterfaceContext::create):
(WebKit::VideoFullscreenInterfaceContext::createWeakPtr):

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenInterfaceContext::VideoFullscreenInterfaceContext):
(WebKit::VideoFullscreenManager::~VideoFullscreenManager):
(WebKit::VideoFullscreenManager::createModelAndInterface):
(WebKit::VideoFullscreenManager::removeContext):

Source/WebKitLegacy/mac:

PlaybackSessionInterface no longer has an invalidate() method.

  • WebView/WebView.mm:

(-[WebView _clearPlaybackControlsManager]):

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/WeakPtrContainer.h: Added.

LayoutTests:

Test was causing false pass results due to the webkitPresentationMode being correctly set
to "inline" during the close() operation; modify the test to only perform the close()
operation when the presetation mode is changed to "picture-in-picture".

  • media/controls/ipad/close-page-with-picture-in-picture-video-assertion-failure.html:
  • media/controls/ipad/resources/picture-in-picture.html:
11:18 AM Changeset in webkit [236604] by guijemont@igalia.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] [Armv7] Add a copy function argument to MacroAssemblerARMv7::link() and pass it down to the assembler's linking functions.
https://bugs.webkit.org/show_bug.cgi?id=190080

Reviewed by Mark Lam.

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::link):
(JSC::ARMv7Assembler::linkJumpT1):
(JSC::ARMv7Assembler::linkJumpT2):
(JSC::ARMv7Assembler::linkJumpT3):
(JSC::ARMv7Assembler::linkJumpT4):
(JSC::ARMv7Assembler::linkConditionalJumpT4):
(JSC::ARMv7Assembler::linkBX):
(JSC::ARMv7Assembler::linkConditionalBX):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::link):

10:35 AM Changeset in webkit [236603] by bshafiei@apple.com
  • 2 edits in branches/safari-606-branch/Source/WebKit

Cherry-pick r236571. rdar://problem/44852809

[iOS] Allow access to VoiceServices features needed for accessibility
https://bugs.webkit.org/show_bug.cgi?id=190019
<rdar://problem/43621111>

Reviewed by Chris Fleizach.

Revise the sandbox to allow access to relevant WebSpeech features.

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

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

10:24 AM Changeset in webkit [236602] by bshafiei@apple.com
  • 7 edits in tags/Safari-607.1.8.1/Source

Versioning.

10:21 AM Changeset in webkit [236601] by bshafiei@apple.com
  • 1 copy in tags/Safari-607.1.8.1

Tag Safari-607.1.8.1.

10:04 AM Changeset in webkit [236600] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Drop iOS specific quirk in SettingsBase::scriptEnabledChanged()
https://bugs.webkit.org/show_bug.cgi?id=190077
<rdar://problem/44812613>

Reviewed by Zalan Bujtas.

Drop iOS specific quirk in SettingsBase::scriptEnabledChanged() that would dirty style after the
"JavaScriptEnabled" setting's state is toggled. I do not see a good reason to do this given that
scripts would not get executed until a reload.

If we find out after dropping this that this is actually useful for some reason, then we can
always bring it back and consider making this non-iOS specific, as well as documenting why this
it is needed.

  • page/Settings.yaml:
  • page/SettingsBase.cpp:

(WebCore::SettingsBase::scriptEnabledChanged): Deleted.

  • page/SettingsBase.h:
8:56 AM Changeset in webkit [236599] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

[WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
https://bugs.webkit.org/show_bug.cgi?id=189991

Patch by Koby Boyango <koby.b@mce.systems> on 2018-09-28
Reviewed by Yusuke Suzuki.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/text/ExternalStringImpl.cpp: Added.
  • wtf/text/ExternalStringImpl.h: Added.
  • wtf/text/StringImpl.cpp:
  • wtf/text/StringImpl.h:

Tools:

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:
8:43 AM Changeset in webkit [236598] by Chris Dumez
  • 2 edits
    1 add in trunk/LayoutTests

REGRESSION (r236573): [iOS] Layout test editing/pasteboard/emacs-ctrl-a-k-y.html is failing
https://bugs.webkit.org/show_bug.cgi?id=190067

Unreviewed, re-land ios-specific expected result for this test as they were inadvertently
dropped in r236573.

  • platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Added.
  • platform/ios/TestExpectations:
8:31 AM Changeset in webkit [236597] by Ross Kirsling
  • 2 edits in trunk/JSTests

JSC test stress/jsc-read.js doesn't support CRLF
https://bugs.webkit.org/show_bug.cgi?id=190063

Reviewed by Yusuke Suzuki.

In order to run this test via Windows command prompt, we can't assume that the final newline will be LF.

  • stress/jsc-read.js:

(test):

1:04 AM Changeset in webkit [236596] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: image resources without content are still shown when the Images folder is selected
https://bugs.webkit.org/show_bug.cgi?id=190072

Reviewed by Matt Baker.

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype.showGenericNoContentMessage):
Treat paths that result in a "Resource has no content" message as a "content error".

12:06 AM Changeset in webkit [236595] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] error C2027: use of undefined type 'WTF::EnumTraits<E>' while compiling AuthenticationChallengeProxy.cpp
https://bugs.webkit.org/show_bug.cgi?id=190071

Unreviewed build fix for WinCairo port.

AuthenticationChallengeDisposition was not defined in this file.

  • UIProcess/Authentication/AuthenticationChallengeProxy.cpp: Include "AuthenticationChallengeDisposition.h".
12:01 AM Changeset in webkit [236594] by mark.lam@apple.com
  • 3 edits in branches/safari-606-branch

Cherry-pick r236554. rdar://problem/44855120

2018-09-27 Mark Lam <mark.lam@apple.com>

JITMathIC should not use integer offsets into machine code.
https://bugs.webkit.org/show_bug.cgi?id=190030
<rdar://problem/44803307>

Reviewed by Saam Barati.

We'll replace them with CodeLocation smart pointers instead.

  • jit/JITMathIC.h: (JSC::isProfileEmpty):
Note: See TracTimeline for information about the timeline view.