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

Timeline



Mar 22, 2021:

11:37 PM Changeset in webkit [274851] by Russell Epstein
  • 11 edits in branches/safari-611.1.21.3-branch/Source/WebCore

Cherry-pick r274846. rdar://problem/75711124

Use JSValueInWrappedObject to keep the JSObject alive for QuickTimePluginReplacement
https://bugs.webkit.org/show_bug.cgi?id=223561
<rdar://75634407>

Reviewed by Geoffrey Garen.

This patch replaces QuickTimePluginReplacement's m_scriptObject member variable by
JSValueInWrappedObject in HTMLPlugInElement and hooks it up with the slot visitor.

Also use WeakPtr instead of a raw pointer for the back reference to the plugin element
in QuickTimePluginReplacement and YouTubePluginReplacement.

  • Modules/plugins/PluginReplacement.h: (WebCore::PluginReplacement::InstallResult): Added; a boolean indicating the installation had succeeded and the script object for QuickTimePluginReplacement. (WebCore::PluginReplacement::scriptObject): Deleted.
  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm: (WebCore::QuickTimePluginReplacement::QuickTimePluginReplacement): Deployed WeakPtr. (WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement): Removed the superflous de-initialization of the member variables. (WebCore::QuickTimePluginReplacement::installReplacement): Now returns JSValue instead of storing it in m_scriptObject.
  • Modules/plugins/YouTubePluginReplacement.cpp: (WebCore::YouTubePluginReplacement::YouTubePluginReplacement): Deployed WeakPtr. (WebCore::YouTubePluginReplacement::installReplacement):
  • Modules/plugins/YouTubePluginReplacement.h:
  • bindings/scripts/CodeGeneratorJS.pm: (InstanceNeedsVisitChildren): Generate visitChildren when an IDL has Plugin attribute. (GenerateImplementation): Visit the newly added JSValueInWrappedObject.
  • html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Store the script object returned by QuickTimePluginReplacement::installReplacement in the newly added member variable. (WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Updated.
  • html/HTMLPlugInElement.h: (WebCore::HTMLPlugInElement::pluginReplacementScriptObject): Added. Used by visitChildren.

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

11:35 PM Changeset in webkit [274850] by Russell Epstein
  • 11 edits in branches/safari-611.1.21.2-branch/Source/WebCore

Cherry-pick r274846. rdar://problem/75706515

Use JSValueInWrappedObject to keep the JSObject alive for QuickTimePluginReplacement
https://bugs.webkit.org/show_bug.cgi?id=223561
<rdar://75634407>

Reviewed by Geoffrey Garen.

This patch replaces QuickTimePluginReplacement's m_scriptObject member variable by
JSValueInWrappedObject in HTMLPlugInElement and hooks it up with the slot visitor.

Also use WeakPtr instead of a raw pointer for the back reference to the plugin element
in QuickTimePluginReplacement and YouTubePluginReplacement.

  • Modules/plugins/PluginReplacement.h: (WebCore::PluginReplacement::InstallResult): Added; a boolean indicating the installation had succeeded and the script object for QuickTimePluginReplacement. (WebCore::PluginReplacement::scriptObject): Deleted.
  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm: (WebCore::QuickTimePluginReplacement::QuickTimePluginReplacement): Deployed WeakPtr. (WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement): Removed the superflous de-initialization of the member variables. (WebCore::QuickTimePluginReplacement::installReplacement): Now returns JSValue instead of storing it in m_scriptObject.
  • Modules/plugins/YouTubePluginReplacement.cpp: (WebCore::YouTubePluginReplacement::YouTubePluginReplacement): Deployed WeakPtr. (WebCore::YouTubePluginReplacement::installReplacement):
  • Modules/plugins/YouTubePluginReplacement.h:
  • bindings/scripts/CodeGeneratorJS.pm: (InstanceNeedsVisitChildren): Generate visitChildren when an IDL has Plugin attribute. (GenerateImplementation): Visit the newly added JSValueInWrappedObject.
  • html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Store the script object returned by QuickTimePluginReplacement::installReplacement in the newly added member variable. (WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Updated.
  • html/HTMLPlugInElement.h: (WebCore::HTMLPlugInElement::pluginReplacementScriptObject): Added. Used by visitChildren.

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

11:23 PM Changeset in webkit [274849] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Nullptr crash in WebCore::RenderObject::RenderObjectBitfields::isLineBreak() where a NULL check is missing.
https://bugs.webkit.org/show_bug.cgi?id=223409

Patch by Venky Dass <yaranamavenkataramana@apple.com> on 2021-03-22
Reviewed by Ryosuke Niwa.

Source/WebCore:

When the check for LineBreak is performed the BR elmement NULL check is not performed. Which results in a crash
The fix therefore is to check for NULL.

Test: LayoutTests/editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash.html

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply):

LayoutTests:

Adding a regression test case.

  • editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash-expected.txt: Added.
  • editing/inserting/insert-paragraph-between-hr-and-br-assigned-to-slot-crash.html: Added.
11:22 PM Changeset in webkit [274848] by Russell Epstein
  • 11 edits in branches/safari-611.1.21.0-branch/Source/WebCore

Cherry-pick r274846. rdar://problem/75706510

Use JSValueInWrappedObject to keep the JSObject alive for QuickTimePluginReplacement
https://bugs.webkit.org/show_bug.cgi?id=223561
<rdar://75634407>

Reviewed by Geoffrey Garen.

This patch replaces QuickTimePluginReplacement's m_scriptObject member variable by
JSValueInWrappedObject in HTMLPlugInElement and hooks it up with the slot visitor.

Also use WeakPtr instead of a raw pointer for the back reference to the plugin element
in QuickTimePluginReplacement and YouTubePluginReplacement.

  • Modules/plugins/PluginReplacement.h: (WebCore::PluginReplacement::InstallResult): Added; a boolean indicating the installation had succeeded and the script object for QuickTimePluginReplacement. (WebCore::PluginReplacement::scriptObject): Deleted.
  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm: (WebCore::QuickTimePluginReplacement::QuickTimePluginReplacement): Deployed WeakPtr. (WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement): Removed the superflous de-initialization of the member variables. (WebCore::QuickTimePluginReplacement::installReplacement): Now returns JSValue instead of storing it in m_scriptObject.
  • Modules/plugins/YouTubePluginReplacement.cpp: (WebCore::YouTubePluginReplacement::YouTubePluginReplacement): Deployed WeakPtr. (WebCore::YouTubePluginReplacement::installReplacement):
  • Modules/plugins/YouTubePluginReplacement.h:
  • bindings/scripts/CodeGeneratorJS.pm: (InstanceNeedsVisitChildren): Generate visitChildren when an IDL has Plugin attribute. (GenerateImplementation): Visit the newly added JSValueInWrappedObject.
  • html/HTMLPlugInElement.cpp: (WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Store the script object returned by QuickTimePluginReplacement::installReplacement in the newly added member variable. (WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Updated.
  • html/HTMLPlugInElement.h: (WebCore::HTMLPlugInElement::pluginReplacementScriptObject): Added. Used by visitChildren.

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

11:19 PM Changeset in webkit [274847] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash in ReplaceSelectionCommand::doApply()
https://bugs.webkit.org/show_bug.cgi?id=223545

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-03-22
Reviewed by Ryosuke Niwa.

Source/WebCore:

Test: editing/execCommand/insert-image-in-composed-list.html

Add a missing check in ReplaceSelectionCommand::doApply()
to prevent calling splitTreeToNode() with nullptr.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply):

LayoutTests:

Add a test to catch this null pointer dereference.
Thanks to Ryosuke Niwa for significant work in reducing
this test case.

  • editing/execCommand/insert-image-in-composed-list-expected.txt: Added.
  • editing/execCommand/insert-image-in-composed-list.html: Added.
10:53 PM Changeset in webkit [274846] by rniwa@webkit.org
  • 11 edits in trunk/Source/WebCore

Use JSValueInWrappedObject to keep the JSObject alive for QuickTimePluginReplacement
https://bugs.webkit.org/show_bug.cgi?id=223561
<rdar://75634407>

Reviewed by Geoffrey Garen.

This patch replaces QuickTimePluginReplacement's m_scriptObject member variable by
JSValueInWrappedObject in HTMLPlugInElement and hooks it up with the slot visitor.

Also use WeakPtr instead of a raw pointer for the back reference to the plugin element
in QuickTimePluginReplacement and YouTubePluginReplacement.

  • Modules/plugins/PluginReplacement.h:

(WebCore::PluginReplacement::InstallResult): Added; a boolean indicating the installation
had succeeded and the script object for QuickTimePluginReplacement.
(WebCore::PluginReplacement::scriptObject): Deleted.

  • Modules/plugins/QuickTimePluginReplacement.h:
  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::QuickTimePluginReplacement): Deployed WeakPtr.
(WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement): Removed
the superflous de-initialization of the member variables.
(WebCore::QuickTimePluginReplacement::installReplacement): Now returns JSValue
instead of storing it in m_scriptObject.

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::YouTubePluginReplacement): Deployed WeakPtr.
(WebCore::YouTubePluginReplacement::installReplacement):

  • Modules/plugins/YouTubePluginReplacement.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(InstanceNeedsVisitChildren): Generate visitChildren when an IDL has Plugin attribute.
(GenerateImplementation): Visit the newly added JSValueInWrappedObject.

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Store the script object returned
by QuickTimePluginReplacement::installReplacement in the newly added member variable.
(WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Updated.

  • html/HTMLPlugInElement.h:

(WebCore::HTMLPlugInElement::pluginReplacementScriptObject): Added. Used by visitChildren.

10:26 PM Changeset in webkit [274845] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.3

Tag Safari-612.1.7.3.

10:26 PM Changeset in webkit [274844] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.4

10:23 PM Changeset in webkit [274843] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.3

10:11 PM Changeset in webkit [274842] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GLIB] Gardening webgl/conformance/extensions/khr-parallel-shader-compile.html timeout after r274711

Unreviewed test gardening.

  • platform/glib/TestExpectations:
9:20 PM Changeset in webkit [274841] by Cameron McCormack
  • 2 edits in trunk/Tools

Fix ordering of my email addresses in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=223622

The first must be the email used for scm access.

Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/common/config/contributors.json:
9:15 PM Changeset in webkit [274840] by Peng Liu
  • 2 edits in trunk/LayoutTests

REGRESSION (r272842): security/contentSecurityPolicy/video-with-data-url-allowed-by-media-src-star.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222840

Unreviewed test gardening.

  • platform/ios-device/TestExpectations:
8:23 PM Changeset in webkit [274839] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[GPU Process]: Improve getImageData() perf part 1: Add a GetImageData display list item
https://bugs.webkit.org/show_bug.cgi?id=223544

Unreviewed.

I accidentally forgot to commit one line of the patch!!

  • platform/graphics/displaylists/DisplayListItems.h:
6:53 PM Changeset in webkit [274838] by mmaxfield@apple.com
  • 14 edits in trunk/Source

[GPU Process]: Improve getImageData() perf part 1: Add a GetImageData display list item
https://bugs.webkit.org/show_bug.cgi?id=223544

Reviewed by Wenson Hsieh.

Source/WebCore:

We're moving to a design for getImageData() where the web process and the GPU process
set up a shmem + semaphore ahead-of-time, so that when we encounter a call to getImageData(),
the GPU process can just write into the shmem and signal the semaphore. The web process just
encodes the getImageData() call into the regular display list, flushAsync()s to kick the GPU
process, then just waits on the semaphore. Initial performance testing shows that this is
way, way faster than sending messages containing pixel color data payloads.

This patch is just the first step: Adding a GetImageData display list item. The item
currently gets recorded in the web process and applied in the GPU process, but the application
process currently does nothing.

No new tests because there is no behavior change yet.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::append):

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):

  • platform/graphics/displaylists/DisplayListItemBuffer.h:
  • platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • platform/graphics/displaylists/DisplayListItemType.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::PutImageData::apply const): Deleted.

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::GetImageData::GetImageData):
(WebCore::DisplayList::GetImageData::outputFormat const):
(WebCore::DisplayList::GetImageData::srcRect const):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::getImageData):

  • platform/graphics/displaylists/DisplayListRecorder.h:

Source/WebKit:

  • GPUProcess/graphics/RemoteImageBuffer.h:
  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::decodeItem):

  • WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
6:11 PM Changeset in webkit [274837] by Russell Epstein
  • 3 edits in branches/safari-611.1.21.2-branch/Source/WebKit

Cherry-pick r274790. rdar://problem/75712662

Allow additional fcntl
https://bugs.webkit.org/show_bug.cgi?id=223590
<rdar://problem/75702241>

Reviewed by Brent Fulgham.

An additional fcntl is being used and should be allowed.

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

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

6:07 PM Changeset in webkit [274836] by Russell Epstein
  • 3 edits in branches/safari-611.1.21.1-branch/Source/WebKit

Cherry-pick r274790. rdar://problem/75712649

Allow additional fcntl
https://bugs.webkit.org/show_bug.cgi?id=223590
<rdar://problem/75702241>

Reviewed by Brent Fulgham.

An additional fcntl is being used and should be allowed.

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

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

6:06 PM Changeset in webkit [274835] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.1-branch/Source

Versioning.

WebKit-7611.1.21.1.14

6:02 PM Changeset in webkit [274834] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-611.1.21.0-branch

Cherry-pick r274796. rdar://problem/75712824

[iOS] Composition text is not initially highlighted when typing in text fields using Pinyin keyboard
https://bugs.webkit.org/show_bug.cgi?id=223563
<rdar://problem/75564516>

Reviewed by Antti Koivisto.

Source/WebCore:

When enabling line layout integration, composition highlights on iOS don't appear when typing an input string
using the Pinyin keyboard for the first time. This is because the text renderer for the inserted composition
text does not contain inline text boxes when painting the composition text on iOS, so the marked text painting
codepath is never triggered.

On macOS, this isn't an issue because the process of setting the composition changes the selection, which then
changes the highlight state of the RenderText, which subsequently calls into ensureLineBoxes(). However,
since selections are drawn using UIKit in the UI process on iOS, we don't end up ensuring that inline text boxes
are constructed for the inserted text.

To address this, we follow macOS behavior by ensuring line box construction on the rendered composition text
when setting the composition.

Test: editing/input/composition-underline-in-search-field.html

  • editing/Editor.cpp: (WebCore::Editor::setComposition):

LayoutTests:

Add a test to verify that marked text underlines show up in search fields.

  • editing/input/composition-underline-in-search-field-expected-mismatch.html: Added.
  • editing/input/composition-underline-in-search-field.html: Added.

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

6:02 PM Changeset in webkit [274833] by Russell Epstein
  • 3 edits in branches/safari-611.1.21.0-branch/Source/WebKit

Cherry-pick r274790. rdar://problem/75712637

Allow additional fcntl
https://bugs.webkit.org/show_bug.cgi?id=223590
<rdar://problem/75702241>

Reviewed by Brent Fulgham.

An additional fcntl is being used and should be allowed.

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

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

5:49 PM Changeset in webkit [274832] by weinig@apple.com
  • 249 edits in trunk/Source/WebCore

[WebIDL] Remove the need to specify [MayThrowException]
https://bugs.webkit.org/show_bug.cgi?id=180019

Reviewed by Darin Adler and Chris Dumez.

Removes the need to specify [MayThrowException] by deducing it from the bound
signature's return value. Any function returning an ExceptionOr is one that throws.

In most cases, this was already handled by toJS<>(..., impl.func()), which had
overloads for the case that the value was an ExceptionOr. The cases this didn't
work for were funtions that returned void, as toJS<>(..., impl.func()) would not
compile. To work around this, toJS<>() can now take a lambda as its value, and
can determine via the lambda's return type if it needs to throw. For instance,
an IDL operation like:

[MayThrowException] undefined func();

used to generate a bindings body that looked like the following :

auto& impl = castedThis->wrapped();
throwScope.release();
propagateException(*lexicalGlobalObject, throwScope, impl.func());
return JSValue::encode(jsUndefined());

will now generate a bindings body that looks like:

auto& impl = castedThis->wrapped();
RELEASE_AND_RETURN(throwScope, JSValue::encode(toJS<IDLUndefined>(*lexicalGlobalObject, throwScope, [&]() -> decltype(auto) { return impl.func(); })));

which closely mirrors a non-undefined return operation. This wrapped lambda form
is only used for operations returning undefined or promises, as those are the only
functions that can return void, but it would be correct to use them for all types,
if not a bit more noisy and perhaps a tiny compile time cost.

NOTE: The use of -> decltype(auto) explicit return type on the lambda is required
to perfectly forward reference types, such as those used by owned promises. Otherwise,
a copy constructor is invoked.

In addition to supporting all operations, this also removes the requirement to annotate
named and indexed getters/setters. This mostly just means always defining a throw scope,
but for named getters it also meant adding a new helper, visibleNamedPropertyItemAccessorFunctor
which constructors the item accessor functor for the accessVisibleNamedProperty
algorithm rather than hard coding it in the generator.

Due to increased use of toJS, the code generator is now checking more return types
(via AddToImplIncludesForIDLType) so the code generator was able to find a few invalid
return types (e.g. use of Promise<bool> rather than Promise<boolean>, etc.) and these
have been fixed and will be an error going forward. Would be a nice improvement to
the code generator to do type checking up front, rather than as a side effect of
code generation, but we will leave that for another day.

  • bindings/js/JSDOMAbstractOperations.h:

(WebCore::visibleNamedPropertyItemAccessorFunctor):
Added. Moves the getterFunctor lambda creation from the GenerateNamedGetterLambda
subroutine in CodeGeneratorJS.pm, but uses deduction and constexpr to determine
if the getter throws.

(WebCore::accessVisibleNamedProperty):
Rename Functor to ItemAccessor to make it a bit more clear what the type does.

  • bindings/js/JSDOMConvertBase.h:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):
Replace SFINAE-based overloading of toJS/toJSNewlyCreated with constexpr based
conditionals and add the ability to pass in a functor rather than value. If a
functor is used, additional code paths for void and ExpectionOr<void> are added
which explicitly return jsUndefined().

  • bindings/js/JSDOMConvertDate.cpp:

Remove incorrect comment about ExecStates that hasn't applied for a while.

  • bindings/js/JSDOMConvertSequences.h:

Fix comment, replacing ExecState with JSGlobalObject. This has been wrong for
a while, and this is just a drive by fix.

  • bindings/js/JSDOMExceptionHandling.h:

(WebCore::invokeFunctorPropagatingExceptionIfNecessary):
Use an explicit else as part of the constexpr expression to ensure the functor
is not called, even in debug builds.

  • bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::createDeferredPromise): Deleted.

  • bindings/js/JSDOMPromiseDeferred.h:

Remove unused createDeferredPromise function.

  • bindings/scripts/CodeGeneratorJS.pm:

(AddMapLikeAttributesAndOperationIfNeeded):
(AddSetLikeAttributesAndOperationIfNeeded):
Fix return type of mapped clear operation to be any rather than undefined
to match the implementation, which returns a JSValue (e.g. any). This is now
required as we actually look at the return type via deduction and need it to match.

(GenerateNamedGetterLambda):
Replace most of the implementation with a call to the new visibleNamedPropertyItemAccessorFunctor
helper which returns a lambda with the correct behavior depending on the return type of the inner
lambda passed.

(GenerateGetOwnPropertySlot):
(GenerateGetOwnPropertySlotByIndex):
(GenerateAttributeGetterBodyDefinition):
Match most other parts of the generator and always create a throw scope.

(GenerateOperationDefinition):
Remove explicit call to propagateException now that toJS() will handle that for us.

(GenerateParametersCheck):
Remove explicit call to propagateException now that toJS() will handle that for us.

(GenerateImplementationFunctionCall):
Simplify by using invokeFunctorPropagatingExceptionIfNecessary helper for the "returnArgumentName"
case and relying on toJS handling the other cases.

(NativeToJSValueMayThrow):
Add operation to the list of things that might always throw.

(NativeToJSValue):
Use the lambda wrapped version of toJS for undefined and promise types, which might both
return void and thus require it. To keep most code unchanged, and avoid unnecessary compiler
work, we only use the wrapped version when it might be necessary. If it turns out to be
cheep enough, it might make sense to always use this form for simplicity.

(NeedsExplicitPropagateExceptionCall): Deleted.

  • bindings/scripts/IDLAttributes.json:

Remove MayThrowException.

  • dom/Element.idl:
  • dom/Element.h:

(WebCore::Element::removeAttributeForBindings):
(WebCore::Element::removeAttributeNSForBindings):
Add bindings specific versions of removeAttribute and removeAttributeNS which
have a void return type (rather than the bool used by the main implementation)
as it is now a requirement that that the bound functions signature match the IDL.

  • Modules/cache/DOMCache.idl:

Use the correct interface name, FetchRequest, not Request.

  • Modules/cache/DOMCacheStorage.idl:

Use the correct interface name, DOMCache, not Cache.

  • Modules/encryptedmedia/MediaKeySession.idl:
  • Modules/encryptedmedia/MediaKeys.idl:
  • dom/Document+StorageAccess.idl:
  • page/Navigator+IsLoggedIn.idl:

Use the correct IDL type, boolean, not bool.

  • dom/AbortSignal.idl:

Update whenSignalAborted to match the return type of implementation, which is boolean,
not undefined.

  • testing/ServiceWorkerInternals.idl:

Use the correct interface name, FetchResponse, not Response.

  • workers/service/ServiceWorkerClients.idl:

Use the correct interface names, ServiceWorkerClient, not Client, and ServiceWorkerWindowClient, not WindowClient.

  • workers/service/ServiceWorkerWindowClient.idl:

Use the correct interface names, ServiceWorkerWindowClient, not WindowClient.

  • Modules/applepay/ApplePaySession.idl:
  • Modules/beacon/Navigator+Beacon.idl:
  • Modules/cache/DOMWindow+Caches.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.idl:
  • Modules/encryptedmedia/legacy/WebKitMediaKeys.idl:
  • Modules/fetch/FetchHeaders.idl:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchResponse.idl:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.idl:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/mediarecorder/MediaRecorder.idl:
  • Modules/mediasession/MediaMetadata.idl:
  • Modules/mediasession/MediaSession.idl:
  • Modules/mediasource/MediaSource.idl:
  • Modules/mediasource/SourceBuffer.idl:
  • Modules/mediastream/RTCDTMFSender.idl:
  • Modules/mediastream/RTCDataChannel.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpReceiver+Transform.idl:
  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpScriptTransformer.idl:
  • Modules/mediastream/RTCRtpSender+Transform.idl:
  • Modules/mediastream/RTCRtpSender.idl:
  • Modules/mediastream/RTCRtpTransceiver.idl:
  • Modules/paymentrequest/MerchantValidationEvent.idl:
  • Modules/paymentrequest/PaymentRequestUpdateEvent.idl:
  • Modules/speech/SpeechRecognition.idl:
  • Modules/webaudio/AudioBuffer.idl:
  • Modules/webaudio/AudioBufferSourceNode.idl:
  • Modules/webaudio/AudioContext.idl:
  • Modules/webaudio/AudioListener.idl:
  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/AudioParam.idl:
  • Modules/webaudio/AudioScheduledSourceNode.idl:
  • Modules/webaudio/AudioWorkletGlobalScope.idl:
  • Modules/webaudio/AudioWorkletProcessor.idl:
  • Modules/webaudio/BaseAudioContext.idl:
  • Modules/webaudio/BiquadFilterNode.idl:
  • Modules/webaudio/IIRFilterNode.idl:
  • Modules/webaudio/PannerNode.idl:
  • Modules/webaudio/WebKitAudioBufferSourceNode.idl:
  • Modules/webaudio/WebKitAudioContext.idl:
  • Modules/webdatabase/SQLResultSetRowList.idl:
  • Modules/webdatabase/SQLTransaction.idl:
  • Modules/websockets/WebSocket.idl:
  • Modules/webxr/WebXRFrame.idl:
  • Modules/webxr/WebXRReferenceSpace.idl:
  • Modules/webxr/WebXRSession.idl:
  • Modules/webxr/WebXRWebGLLayer.idl:
  • animation/Animatable.idl:
  • animation/AnimationEffect.idl:
  • animation/KeyframeEffect.idl:
  • animation/WebAnimation.idl:
  • css/CSSGroupingRule.idl:
  • css/CSSStyleDeclaration.idl:
  • css/CSSStyleSheet.idl:
  • css/DOMCSSNamespace+CSSPropertiesandValues.idl:
  • css/DOMMatrix.idl:
  • css/DOMMatrixReadOnly.idl:
  • css/DeprecatedCSSOMPrimitiveValue.idl:
  • css/FontFaceSet.idl:
  • css/MediaList.idl:
  • dom/CharacterData.idl:
  • dom/ChildNode.idl:
  • dom/CustomElementRegistry.idl:
  • dom/DOMImplementation.idl:
  • dom/DOMPointReadOnly.idl:
  • dom/DataTransferItemList.idl:
  • dom/Document+HTML.idl:
  • dom/Document.idl:
  • dom/Element+DOMParsing.idl:
  • dom/Element+PointerEvents.idl:
  • dom/EventTarget.idl:
  • dom/MessagePort.idl:
  • dom/MutationObserver.idl:
  • dom/NamedNodeMap.idl:
  • dom/Node.idl:
  • dom/NodeIterator.idl:
  • dom/ParentNode.idl:
  • dom/Range+DOMParsing.idl:
  • dom/Range.idl:
  • dom/Text.idl:
  • dom/TextDecoder.idl:
  • dom/TextDecoderStreamDecoder.idl:
  • dom/TreeWalker.idl:
  • fileapi/Blob.idl:
  • fileapi/FileReader.idl:
  • fileapi/FileReaderSync.idl:
  • html/DOMTokenList.idl:
  • html/HTMLCanvasElement.idl:
  • html/HTMLDialogElement.idl:
  • html/HTMLEmbedElement.idl:
  • html/HTMLFrameElement.idl:
  • html/HTMLIFrameElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTableElement.idl:
  • html/HTMLTableRowElement.idl:
  • html/HTMLTableSectionElement.idl:
  • html/HTMLTextAreaElement.idl:
  • html/HTMLVideoElement.idl:
  • html/OffscreenCanvas.idl:
  • html/TimeRanges.idl:
  • html/canvas/CanvasDrawImage.idl:
  • html/canvas/CanvasFillStrokeStyles.idl:
  • html/canvas/CanvasGradient.idl:
  • html/canvas/CanvasImageData.idl:
  • html/canvas/CanvasPath.idl:
  • html/canvas/CanvasPattern.idl:
  • html/canvas/CanvasTransform.idl:
  • html/canvas/ImageBitmapRenderingContext.idl:
  • html/canvas/Path2D.idl:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLRenderingContextBase.idl:
  • html/track/TextTrack.idl:
  • inspector/InspectorAuditAccessibilityObject.idl:
  • inspector/InspectorAuditDOMObject.idl:
  • inspector/InspectorAuditResourcesObject.idl:
  • loader/appcache/DOMApplicationCache.idl:
  • page/Crypto.idl:
  • page/DOMSelection.idl:
  • page/DOMWindow.idl:
  • page/History.idl:
  • page/Location.idl:
  • page/NavigatorServiceWorker.idl:
  • page/Performance+UserTiming.idl:
  • page/PerformanceObserver.idl:
  • page/UndoManager.idl:
  • page/UserMessageHandler.idl:
  • page/WindowOrWorkerGlobalScope.idl:
  • storage/Storage.idl:
  • svg/SVGAngle.idl:
  • svg/SVGGeometryElement.idl:
  • svg/SVGGraphicsElement.idl:
  • svg/SVGLength.idl:
  • svg/SVGLengthList.idl:
  • svg/SVGMatrix.idl:
  • svg/SVGNumberList.idl:
  • svg/SVGPathSegList.idl:
  • svg/SVGPointList.idl:
  • svg/SVGStringList.idl:
  • svg/SVGTextContentElement.idl:
  • svg/SVGTransform.idl:
  • svg/SVGTransformList.idl:
  • testing/InternalSettings.idl:
  • testing/Internals.idl:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/Worker.idl:
  • workers/WorkerGlobalScope.idl:
  • workers/service/ExtendableEvent.idl:
  • workers/service/FetchEvent.idl:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerClient.idl:
  • worklets/PaintWorkletGlobalScope.idl:
  • xml/DOMParser.idl:
  • xml/XMLHttpRequest.idl:
  • xml/XPathEvaluatorBase.idl:
  • xml/XPathExpression.idl:
  • xml/XPathResult.idl:

Remove use of [MayThrowException].

  • bindings/scripts/test/JS/*:

Remove uses of [MayThrowException] in the tests and update all the test results.

5:48 PM Changeset in webkit [274831] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for AppleWin after r274827
https://bugs.webkit.org/show_bug.cgi?id=223500
<rdar://problem/75706741>

  • platform/graphics/win/FontCustomPlatformData.cpp:

(WebCore::createFontCustomPlatformData):

5:47 PM Changeset in webkit [274830] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Base GitHub mock links on provided remote
https://bugs.webkit.org/show_bug.cgi?id=223611
<rdar://problem/75713760>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/remote/git_hub.py:

(GitHub.init): Standardize mock GitHub path.
(GitHub._parents_of_request): Base link path on GitHub remote.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGitHub):

5:43 PM Changeset in webkit [274829] by commit-queue@webkit.org
  • 15 edits in trunk/Source

Source/WebCore:
Move management of RemoteCommandListener from MediaSessionManagerCocoa into NowPlayingManager.
https://bugs.webkit.org/show_bug.cgi?id=223435
<rdar://problem/75567198>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

NowPlaying and RemoteCommandListener kind of do the same things, as such it make sense to combine the two
and hide the implementation details from consumers.
We move the handling of setting and clearing the NowPlayingInfo information to an expanded
NowPlayingManager which now also runs in the webcontent process.
The job to ensure a RemoteCommandListener is set is now up to the NowPlayingManager as well as
dealing with changes in NowPlayingInfo content.
Ideally we would prefer to remove all code related to MediaRemote from MediaSessionManagerCocoa;
however for ease we leave it there to avoid having to deal with objective-C interface in NowPlayingManager.
No change in observable behavior.

  • platform/MediaStrategy.h: The two existing methods dealing with NowPlayingInfo are removed, instead we can override the entire creation of the NowPlayingManager.
  • platform/MediaStrategy.cpp:

(WebCore::MediaStrategy::createNowPlayingManager const): default implementation for createNowPlayingManager

  • platform/NowPlayingManager.cpp: Add methods used in MediaSessionManagerCocoa used to deal with RemoteCommandListener.

(WebCore::NowPlayingManager::didReceiveRemoteControlCommand):
(WebCore::NowPlayingManager::addClient): Add explicit method to add a RemoteCommandListener listener, to be called before calling setNowPlayingInfo if needed.
(WebCore::NowPlayingManager::removeClient): renamed from clearNowPlayingInfoClient.
(WebCore::NowPlayingManager::clearNowPlayingInfo):
(WebCore::NowPlayingManager::clearNowPlayingInfoPrivate): Virtual class with default implementation which will immediately communicate with MediaRemote.
(WebCore::NowPlayingManager::setNowPlayingInfo):
(WebCore::NowPlayingManager::setNowPlayingInfoPrivate): Virtual class with default implementation which will immediately communicate with MediaRemote.
(WebCore::NowPlayingManager::setSupportsSeeking): We explicitly set a different setSupportsSeeking method for code clarity.
(WebCore::NowPlayingManager::addSupportedCommand):
(WebCore::NowPlayingManager::removeSupportedCommand):
(WebCore::NowPlayingManager::setSupportedRemoteCommands):
(WebCore::NowPlayingManager::updateSupportedCommands):
(WebCore::NowPlayingManager::ensureRemoteCommandListenerCreated):
(WebCore::NowPlayingManager::clearNowPlayingInfoClient): Deleted.

  • platform/NowPlayingManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.h: Remove now unused members
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: Amended to use new NowPlayingManager.

(WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):
(WebCore::MediaSessionManagerCocoa::scheduleSessionStatusUpdate):
(WebCore::MediaSessionManagerCocoa::addSession):
(WebCore::MediaSessionManagerCocoa::removeSession):
(WebCore::MediaSessionManagerCocoa::setCurrentSession):
(WebCore::MediaSessionManagerCocoa::addSupportedCommand):
(WebCore::MediaSessionManagerCocoa::removeSupportedCommand):
(WebCore::MediaSessionManagerCocoa::updateNowPlayingInfo):

Source/WebKit:
Move management of RemoteCommandListener from MediaSessionManagerCocoa into NowPlayingManager
https://bugs.webkit.org/show_bug.cgi?id=223435
<rdar://problem/75567198>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

  • GPUProcess/GPUConnectionToWebProcess.cpp: Update methods to use new NowPlayingManager API.

(WebKit::GPUConnectionToWebProcess::clearNowPlayingInfo):
(WebKit::GPUConnectionToWebProcess::setNowPlayingInfo):
(WebKit::GPUConnectionToWebProcess::updateSupportedRemoteCommands): explicitly call setSupportsSeek

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in: Remove argument that can be easily inferred in code.
  • WebProcess/GPU/media/WebMediaStrategy.cpp: Override createNowPlayingManager method when using the GPU process.

(WebKit::WebMediaStrategy::createNowPlayingManager const):
(WebKit::WebMediaStrategy::clearNowPlayingInfo): Deleted.
(WebKit::WebMediaStrategy::setNowPlayingInfo): Deleted.

  • WebProcess/GPU/media/WebMediaStrategy.h:

Source/WebKitLegacy/mac:
Move management of RemoteCommandListener from MediaSessionManagerCocoa into NowPlayingManager
https://bugs.webkit.org/show_bug.cgi?id=223435
<rdar://problem/75567198>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

  • WebCoreSupport/WebPlatformStrategies.mm: Remove methods, use default implementation instead.
5:40 PM Changeset in webkit [274828] by Russell Epstein
  • 1 copy in tags/Safari-612.1.7.2

Tag Safari-612.1.7.2.

5:32 PM Changeset in webkit [274827] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for AppleWin after r274791
https://bugs.webkit.org/show_bug.cgi?id=223500
<rdar://problem/75706741>

  • platform/graphics/win/FontCustomPlatformData.cpp:

(WebCore::createFontCustomPlatformData):

5:22 PM Changeset in webkit [274826] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: textRectsFromMarkers always fails
https://bugs.webkit.org/show_bug.cgi?id=223556
<rdar://74256003>

Reviewed by Zalan Bujtas.

Source/WebCore:

The textRectsFromMarkers:text: method is always failing to return a valid answer because when we try to extend
the search range of text to search, we're creating a range that can't be iterated with a CharacterIterator

Test: accessibility/ios-simulator/text-rects-for-range-matches.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::rangeMatchesTextNearRange):

LayoutTests:

  • accessibility/ios-simulator/text-rects-for-range-matches.html: Added.
  • accessibility/ios-simulator/text-rects-for-range-matches-expected.txt: Added.
5:20 PM Changeset in webkit [274825] by Russell Epstein
  • 13 edits in branches/safari-611.1.21.0-branch/Source

Revert "Cherry-pick r274746. rdar://problem/75706601"

This reverts commit r274795.

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

[Web Animations] nullptr crash in updatePlaybackRate() with no timeline
https://bugs.webkit.org/show_bug.cgi?id=223095

Patch by Ian Gilbert <iang@apple.com> on 2021-03-22
Reviewed by Ryosuke Niwa.

Changed to WebAnimation::remove() to use setTimeline() instead of setTimelineInternal()
to ensure the animation is in the correct play state.

No new tests as this relies on navigating while updating the playback rate and I was unable to make
a reliable test case.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::remove): Changed setTimelineInternal() to setTimeline() in order to
ensure the animation has the correct play state.

5:13 PM Changeset in webkit [274823] by Russell Epstein
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.2

5:05 PM Changeset in webkit [274822] by Patrick Angle
  • 11 edits in trunk/Source

Web Inspector: Port grid overlay drawing to iOS
https://bugs.webkit.org/show_bug.cgi?id=223396

Reviewed by BJ Burg.

Source/WebCore:

Enable Grid Overlays to be drawn on iOS be including computed overlay objects in the
InspectorOverlay::Highlight. Some refactoring was also done to reduce code duplication in the normal and iOS
paths.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • FloatLine should be accessible from WebKit::*
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::paint):
(WebCore::InspectorOverlay::getHighlight):

  • Add GridHighlightOverlays to the highlight object for iOS.

(WebCore::InspectorOverlay::drawGridOverlay):
(WebCore::buildLabel):
(WebCore::InspectorOverlay::buildGridOverlay):

  • Refactored actual drawing into a separate method to reduce the amount of code duplication needed between the

normal path and the iOS path.

  • inspector/InspectorOverlay.h:

(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::encode const):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::decode):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Label::encode const):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Label::decode):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Area::encode const):
(WebCore::InspectorOverlay::Highlight::GridHighlightOverlay::Area::decode):

  • Support encode/decode for sending new Highlight components to the UIProcess.
  • platform/graphics/FloatLine.h:

(WebCore::FloatLine::encode const):
(WebCore::FloatLine::decode):

  • Support encode/decode as part of serialization of InspectorOverlay::Highlight

Source/WebKit:

Port drawing routines from WebCore::InspectorOverlay to use CALayers on iOS to enable drawing grid overlays
on iOS. Drawing logic is, as much as possible, equivalent to that defined in WebCore::InspectorOverlay, with
changes to fit the CALayer model.

  • UIProcess/Inspector/ios/WKInspectorHighlightView.h:
  • UIProcess/Inspector/ios/WKInspectorHighlightView.mm:

(-[WKInspectorHighlightView initWithFrame:]):
(-[WKInspectorHighlightView _removeAllLayers]):
(-[WKInspectorHighlightView _createLayers:]):
(layerPath):

  • Path should be closed so that objects being stroked are stroked on all edges.

(-[WKInspectorHighlightView _layoutForNodeListHighlight:]):
(-[WKInspectorHighlightView _layoutForRectsHighlight:]):
(-[WKInspectorHighlightView _createGridOverlayLayers:scale:]):
(createLayoutHatchingLayer):
(createLayoutLabelLayer):
(-[WKInspectorHighlightView _createGridOverlayLayer:scale:]):

  • Create layers for the grid overlays.

(-[WKInspectorHighlightView update:scale:]):

  • Obtain the view scale so that CATextLayers can have the correct content scale set.

(-[WKInspectorHighlightView update:]): Deleted.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _showInspectorHighlight:]):

5:05 PM Changeset in webkit [274821] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[WebXR] Enumerate XR devices via ChromeClient in WebXRSystem
https://bugs.webkit.org/show_bug.cgi?id=223520

Patch by Ada Chan <ada.chan@apple.com> on 2021-03-22
Reviewed by Sam Weinig.

We want to avoid using singletons in the WebProcess and be able
to proxy the devices from the UI process.

  • Modules/webxr/WebXRSystem.cpp:

(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected):
Instead of getting the devices from the singleton PlatformXR::Instance,
get them from the ChromeClient.

  • WebCore.xcodeproj/project.pbxproj:

Mark PlatformXR.h private so it's visible to WebKit.

  • page/ChromeClient.h:

(WebCore::ChromeClient::enumerateImmersiveXRDevices):
The default implementation will call PlatformXR::Instance::enumerateImmersiveXRDevices()
to keep current functionality.

  • platform/xr/PlatformXR.h:

Export methods that are now called in ChromeClient.

5:02 PM Changeset in webkit [274820] by Peng Liu
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] media/media-source/media-source-canplaythrough-event.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=223012

Unreviewed test gardening.

This flaky test failure has been fixed by r274591 and r274731.

  • platform/mac-wk2/TestExpectations:
4:57 PM Changeset in webkit [274819] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebCore

AVAudioSessionCaptureDeviceManager should use crossThreadCopy
https://bugs.webkit.org/show_bug.cgi?id=223565
<rdar://75480589>

Reviewed by Youenn Fablet.

Tested manually, this can only be tested on device.

  • platform/mediastream/CaptureDevice.h: Change access restriction for member

variables from private: to protected: so derived classes can access them
directly.

  • platform/mediastream/ios/AVAudioSessionCaptureDevice.h:
  • platform/mediastream/ios/AVAudioSessionCaptureDevice.mm:

(WebCore::AVAudioSessionCaptureDevice::AVAudioSessionCaptureDevice): New constructor.
(WebCore::AVAudioSessionCaptureDevice::isolatedCopy const): New.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:

(WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices): Use
WTFMove(deviceList).isolatedCopy() when moving from AVAudioSession queue
to main thread.
(WebCore::AVAudioSessionCaptureDeviceManager::getCaptureDevices): Ditto.

4:36 PM Changeset in webkit [274818] by Patrick Angle
  • 10 edits in trunk/Source/WebCore

REGRESSION(r272433): Inspector should not instrument inside WebCore::Node::setRenderer
https://bugs.webkit.org/show_bug.cgi?id=223559

Reviewed by Ryosuke Niwa and Devin Rousso.

Existing test coverage:

  • inspector/css/nodeLayoutContextTypeChanged.html
  • inspector/css/setLayoutContextTypeChangedMode.html

The previous approach to observing render changes was most likely a performance regression in a very hot code
path (Node::setRenderer). This patch resolves this by not instrumenting in this the hot path. Instead we call
inspector instrumentation inside the constructors/destructors of only the RenderObject subclasses we are
interested in observing layout changes for.

Additionally, layout change events are now added to a Vector of pending changes, which will be sent to the
front-end later in order to avoid evaluating JavaScript inside a destructor in WK1 with the new instrumentation
points.

  • dom/Element.cpp:

(WebCore::Element::didChangeRenderer): Deleted.

  • dom/Element.h:
  • dom/Node.h:

(WebCore::Node::didChangeRenderer): Deleted.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::nodeLayoutContextChangedImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::nodeLayoutContextChanged):

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::InspectorCSSAgent):
(WebCore::InspectorCSSAgent::reset):
(WebCore::InspectorCSSAgent::nodeLayoutContextTypeChanged):
(WebCore::InspectorCSSAgent::layoutContextTypeChangedTimerFired):

  • Moved layout change events behind a timer firing.
  • inspector/agents/InspectorCSSAgent.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::RenderGrid):
(WebCore::RenderGrid::~RenderGrid):

  • Move instrumentation from Node::setRenderer to RenderGrid.
  • rendering/RenderObject.h:

(WebCore::Node::setRenderer):

4:30 PM Changeset in webkit [274817] by ysuzuki@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] JSCustomGetterFunction/JSCustomSetterFunction should use Identifier for their field
https://bugs.webkit.org/show_bug.cgi?id=223588

Reviewed by Mark Lam and Saam Barati.

PropertyName is the holder for passing it as an argument, and it does not ref/deref underlying UniqueStringImpl.
We should use Identifier to keep it strongly ref-ed in JSCustomGetterFunction/JSCustomSetterFunction.
And we should make JSCustomGetterFunction/JSCustomSetterFunction destructible objects since Identifier needs to
deref underlying UniqueStringImpl when destroying these functions.

  • runtime/JSCustomGetterFunction.cpp:

(JSC::JSCustomGetterFunction::JSCustomGetterFunction):
(JSC::JSCustomGetterFunction::destroy):

  • runtime/JSCustomGetterFunction.h:
  • runtime/JSCustomSetterFunction.cpp:

(JSC::JSCustomSetterFunction::JSCustomSetterFunction):
(JSC::JSCustomSetterFunction::destroy):

  • runtime/JSCustomSetterFunction.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
4:26 PM Changeset in webkit [274816] by Peng Liu
  • 12 edits in trunk

[GPUP] Add a "wallTime" field to struct RemoteMediaPlayerState
https://bugs.webkit.org/show_bug.cgi?id=223523

Reviewed by Eric Carlson.

Source/WebCore:

No new tests. Fix test failures:

  • media/video-controller-child-rate.html
  • media/media-controller-unpause.html
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::currentMediaTime const): A minor fix for the comment.

Source/WebKit:

Function MediaPlayerPrivateRemote::currentMediaTime() returns the
current media time in the cached state, which is not the "current"
media time of the media player. This patch adds a "wallTime" field
to struct RemoteMediaPlayerState, so that MediaPlayerPrivateRemote
can adjust the currentTime in the cached state based on m_rate
and WallTime::now() and returns a more accurate value.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::~RemoteMediaPlayerProxy):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerPlaybackStateChanged):
(WebKit::RemoteMediaPlayerProxy::updateCachedState):
(WebKit::RemoteMediaPlayerProxy::performTaskAtMediaTime):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::pause):
(WebKit::MediaPlayerPrivateRemote::currentMediaTime const):
(WebKit::MediaPlayerPrivateRemote::playbackStateChanged):
(WebKit::MediaPlayerPrivateRemote::updateCachedState):
(WebKit::MediaPlayerPrivateRemote::performTaskAtMediaTime):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
  • WebProcess/GPU/media/RemoteMediaPlayerState.h:

(WebKit::RemoteMediaPlayerState::encode const):
(WebKit::RemoteMediaPlayerState::decode):

LayoutTests:

  • platform/wk2/TestExpectations:
4:26 PM Changeset in webkit [274815] by BJ Burg
  • 43 edits
    13 moves in trunk/Source/WebKit

Web Inspector: rename WebInspectorProxy to WebInspectorUIProxy
https://bugs.webkit.org/show_bug.cgi?id=223551

Reviewed by Devin Rousso.

To improve clarity in the codebase, I'm renaming this to be consistent
with it's WebProcess-side counterpart, WebInspectorUI. There are many
different classes with the 'WebInspector' prefix, so it can be difficult
to understand whether a class is associated with the WebInspectorUI
frontend or the InspectorController backend. This fixes one of the biggest
offenders.

For brevity, I have elided function-level changelog entries from files
that have been renamed. This is a mechanical refactoring.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • PlatformFTW.cmake:
  • PlatformWin.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • UIProcess/API/APIInspectorClient.h:

(API::InspectorClient::openURLExternally):

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didAttachLocalInspector):
(API::UIClient::willCloseLocalInspector):
(API::UIClient::configurationForLocalInspector):

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/WKInspector.cpp:

(WKInspectorGetTypeID):

  • UIProcess/API/C/WKPage.cpp:
  • UIProcess/API/C/mac/WKInspectorPrivateMac.h:
  • UIProcess/API/Cocoa/_WKInspectorInternal.h:
  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController initWithConfiguration:]):

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewControllerInternal.h:
  • UIProcess/API/gtk/WebKitWebInspector.cpp:

(webkitWebInspectorCreate):

  • UIProcess/API/gtk/WebKitWebInspectorPrivate.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:
  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/Automation/WebAutomationSession.cpp:
  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::configurationForLocalInspector):
(WebKit::UIDelegate::UIClient::didAttachLocalInspector):
(WebKit::UIDelegate::UIClient::willCloseLocalInspector):

  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/Inspector/Agents/InspectorBrowserAgent.cpp:
  • UIProcess/Inspector/Cocoa/InspectorDelegate.h:
  • UIProcess/Inspector/Cocoa/InspectorDelegate.mm:

(WebKit::InspectorDelegate::InspectorClient::openURLExternally):

  • UIProcess/Inspector/Cocoa/InspectorExtensionDelegate.mm:
  • UIProcess/Inspector/RemoteWebInspectorUIProxy.cpp: Renamed from Source/WebKit/UIProcess/Inspector/RemoteWebInspectorProxy.cpp.

(WebKit::RemoteWebInspectorUIProxy::RemoteWebInspectorUIProxy):
(WebKit::RemoteWebInspectorUIProxy::~RemoteWebInspectorUIProxy):
(WebKit::RemoteWebInspectorUIProxy::invalidate):
(WebKit::RemoteWebInspectorUIProxy::setDiagnosticLoggingAvailable):
(WebKit::RemoteWebInspectorUIProxy::load):
(WebKit::RemoteWebInspectorUIProxy::closeFromBackend):
(WebKit::RemoteWebInspectorUIProxy::closeFromCrash):
(WebKit::RemoteWebInspectorUIProxy::show):
(WebKit::RemoteWebInspectorUIProxy::sendMessageToFrontend):
(WebKit::RemoteWebInspectorUIProxy::frontendLoaded):
(WebKit::RemoteWebInspectorUIProxy::frontendDidClose):
(WebKit::RemoteWebInspectorUIProxy::reopen):
(WebKit::RemoteWebInspectorUIProxy::resetState):
(WebKit::RemoteWebInspectorUIProxy::bringToFront):
(WebKit::RemoteWebInspectorUIProxy::save):
(WebKit::RemoteWebInspectorUIProxy::append):
(WebKit::RemoteWebInspectorUIProxy::setSheetRect):
(WebKit::RemoteWebInspectorUIProxy::setForcedAppearance):
(WebKit::RemoteWebInspectorUIProxy::startWindowDrag):
(WebKit::RemoteWebInspectorUIProxy::openURLExternally):
(WebKit::RemoteWebInspectorUIProxy::showCertificate):
(WebKit::RemoteWebInspectorUIProxy::sendMessageToBackend):
(WebKit::RemoteWebInspectorUIProxy::createFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::closeFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformCreateFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformResetState):
(WebKit::RemoteWebInspectorUIProxy::platformBringToFront):
(WebKit::RemoteWebInspectorUIProxy::platformSave):
(WebKit::RemoteWebInspectorUIProxy::platformAppend):
(WebKit::RemoteWebInspectorUIProxy::platformSetSheetRect):
(WebKit::RemoteWebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::RemoteWebInspectorUIProxy::platformStartWindowDrag):
(WebKit::RemoteWebInspectorUIProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorUIProxy::platformShowCertificate):
(WebKit::RemoteWebInspectorUIProxy::platformCloseFrontendPageAndWindow):

  • UIProcess/Inspector/RemoteWebInspectorUIProxy.h: Renamed from Source/WebKit/UIProcess/Inspector/RemoteWebInspectorProxy.h.

(WebKit::RemoteWebInspectorUIProxyClient::~RemoteWebInspectorUIProxyClient):
(WebKit::RemoteWebInspectorUIProxy::create):
(WebKit::RemoteWebInspectorUIProxy::setClient):
(WebKit::RemoteWebInspectorUIProxy::isUnderTest const):
(WebKit::RemoteWebInspectorUIProxy::extensionController const):
(WebKit::RemoteWebInspectorUIProxy::window const):
(WebKit::RemoteWebInspectorUIProxy::sheetRect const):

  • UIProcess/Inspector/RemoteWebInspectorUIProxy.messages.in: Renamed from Source/WebKit/UIProcess/Inspector/RemoteWebInspectorProxy.messages.in.
  • UIProcess/Inspector/WebInspectorUIProxy.cpp: Renamed from Source/WebKit/UIProcess/Inspector/WebInspectorProxy.cpp.

(WebKit::WebInspectorUIProxy::WebInspectorUIProxy):
(WebKit::WebInspectorUIProxy::~WebInspectorUIProxy):
(WebKit::WebInspectorUIProxy::setInspectorClient):
(WebKit::WebInspectorUIProxy::inspectionLevel const):
(WebKit::WebInspectorUIProxy::inspectorPagePreferences const):
(WebKit::WebInspectorUIProxy::invalidate):
(WebKit::WebInspectorUIProxy::sendMessageToFrontend):
(WebKit::WebInspectorUIProxy::isFront):
(WebKit::WebInspectorUIProxy::connect):
(WebKit::WebInspectorUIProxy::show):
(WebKit::WebInspectorUIProxy::hide):
(WebKit::WebInspectorUIProxy::close):
(WebKit::WebInspectorUIProxy::closeForCrash):
(WebKit::WebInspectorUIProxy::reopen):
(WebKit::WebInspectorUIProxy::resetState):
(WebKit::WebInspectorUIProxy::reset):
(WebKit::WebInspectorUIProxy::updateForNewPageProcess):
(WebKit::WebInspectorUIProxy::setFrontendConnection):
(WebKit::WebInspectorUIProxy::showConsole):
(WebKit::WebInspectorUIProxy::showResources):
(WebKit::WebInspectorUIProxy::showMainResourceForFrame):
(WebKit::WebInspectorUIProxy::attachBottom):
(WebKit::WebInspectorUIProxy::attachRight):
(WebKit::WebInspectorUIProxy::attachLeft):
(WebKit::WebInspectorUIProxy::attach):
(WebKit::WebInspectorUIProxy::detach):
(WebKit::WebInspectorUIProxy::setAttachedWindowHeight):
(WebKit::WebInspectorUIProxy::setAttachedWindowWidth):
(WebKit::WebInspectorUIProxy::setSheetRect):
(WebKit::WebInspectorUIProxy::startWindowDrag):
(WebKit::WebInspectorUIProxy::togglePageProfiling):
(WebKit::WebInspectorUIProxy::toggleElementSelection):
(WebKit::WebInspectorUIProxy::isMainOrTestInspectorPage):
(WebKit::WebInspectorUIProxy::createFrontendPage):
(WebKit::WebInspectorUIProxy::openLocalInspectorFrontend):
(WebKit::WebInspectorUIProxy::open):
(WebKit::WebInspectorUIProxy::didClose):
(WebKit::WebInspectorUIProxy::closeFrontendPageAndWindow):
(WebKit::WebInspectorUIProxy::sendMessageToBackend):
(WebKit::WebInspectorUIProxy::frontendLoaded):
(WebKit::WebInspectorUIProxy::bringToFront):
(WebKit::WebInspectorUIProxy::bringInspectedPageToFront):
(WebKit::WebInspectorUIProxy::attachAvailabilityChanged):
(WebKit::WebInspectorUIProxy::setForcedAppearance):
(WebKit::WebInspectorUIProxy::openURLExternally):
(WebKit::WebInspectorUIProxy::inspectedURLChanged):
(WebKit::WebInspectorUIProxy::showCertificate):
(WebKit::WebInspectorUIProxy::elementSelectionChanged):
(WebKit::WebInspectorUIProxy::timelineRecordingChanged):
(WebKit::WebInspectorUIProxy::setDeveloperPreferenceOverride):
(WebKit::WebInspectorUIProxy::setDiagnosticLoggingAvailable):
(WebKit::WebInspectorUIProxy::save):
(WebKit::WebInspectorUIProxy::append):
(WebKit::WebInspectorUIProxy::shouldOpenAttached):
(WebKit::WebInspectorUIProxy::evaluateInFrontendForTesting):
(WebKit::WebInspectorUIProxy::platformCreateFrontendPage):
(WebKit::WebInspectorUIProxy::platformCreateFrontendWindow):
(WebKit::WebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorUIProxy::platformDidCloseForCrash):
(WebKit::WebInspectorUIProxy::platformInvalidate):
(WebKit::WebInspectorUIProxy::platformResetState):
(WebKit::WebInspectorUIProxy::platformBringToFront):
(WebKit::WebInspectorUIProxy::platformBringInspectedPageToFront):
(WebKit::WebInspectorUIProxy::platformHide):
(WebKit::WebInspectorUIProxy::platformIsFront):
(WebKit::WebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::WebInspectorUIProxy::platformInspectedURLChanged):
(WebKit::WebInspectorUIProxy::platformShowCertificate):
(WebKit::WebInspectorUIProxy::platformSave):
(WebKit::WebInspectorUIProxy::platformAppend):
(WebKit::WebInspectorUIProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorUIProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorUIProxy::platformAttach):
(WebKit::WebInspectorUIProxy::platformDetach):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorUIProxy::platformSetSheetRect):
(WebKit::WebInspectorUIProxy::platformStartWindowDrag):
(WebKit::WebInspectorUIProxy::inspectorPageURL):
(WebKit::WebInspectorUIProxy::inspectorTestPageURL):
(WebKit::WebInspectorUIProxy::infoForLocalDebuggable):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorUIProxy::platformAttachAvailabilityChanged):

  • UIProcess/Inspector/WebInspectorUIProxy.h: Renamed from Source/WebKit/UIProcess/Inspector/WebInspectorProxy.h.

(WebKit::WebInspectorUIProxy::create):
(WebKit::WebInspectorUIProxy::inspectorClient):
(WebKit::WebInspectorUIProxy::inspectedPage const):
(WebKit::WebInspectorUIProxy::inspectorPage const):
(WebKit::WebInspectorUIProxy::extensionController const):
(WebKit::WebInspectorUIProxy::isConnected const):
(WebKit::WebInspectorUIProxy::isVisible const):
(WebKit::WebInspectorUIProxy::inspectorWindow const):
(WebKit::WebInspectorUIProxy::sheetRect const):
(WebKit::WebInspectorUIProxy::inspectorView const):
(WebKit::WebInspectorUIProxy::attachmentSide const):
(WebKit::WebInspectorUIProxy::isAttached const):
(WebKit::WebInspectorUIProxy::isProfilingPage const):
(WebKit::WebInspectorUIProxy::isElementSelectionActive const):
(WebKit::WebInspectorUIProxy::isUnderTest const):
(WebKit::WebInspectorUIProxy::platformCanAttach):
(WebKit::WebInspectorUIProxy::canAttach const):

  • UIProcess/Inspector/WebInspectorUIProxy.messages.in: Renamed from Source/WebKit/UIProcess/Inspector/WebInspectorProxy.messages.in.
  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:
  • UIProcess/Inspector/glib/RemoteInspectorClient.h:
  • UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp: Renamed from Source/WebKit/UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp.

(WebKit::RemoteWebInspectorUIProxy::updateWindowTitle):
(WebKit::remoteInspectorViewDestroyed):
(WebKit::RemoteWebInspectorUIProxy::platformCreateFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformResetState):
(WebKit::RemoteWebInspectorUIProxy::platformBringToFront):
(WebKit::remoteFileReplaceContentsCallback):
(WebKit::RemoteWebInspectorUIProxy::platformSave):
(WebKit::RemoteWebInspectorUIProxy::platformAppend):
(WebKit::RemoteWebInspectorUIProxy::platformSetSheetRect):
(WebKit::RemoteWebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::RemoteWebInspectorUIProxy::platformStartWindowDrag):
(WebKit::RemoteWebInspectorUIProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorUIProxy::platformShowCertificate):

  • UIProcess/Inspector/gtk/WebInspectorUIProxyClient.h: Renamed from Source/WebKit/UIProcess/Inspector/gtk/WebInspectorProxyClient.h.
  • UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp: Renamed from Source/WebKit/UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp.

(WebKit::inspectorViewDestroyed):
(WebKit::WebInspectorUIProxy::setClient):
(WebKit::WebInspectorUIProxy::updateInspectorWindowTitle const):
(WebKit::exceededDatabaseQuota):
(WebKit::webProcessDidCrash):
(WebKit::decidePolicyForNavigationAction):
(WebKit::getContextMenuFromProposedMenu):
(WebKit::inspectorWebsiteDataStore):
(WebKit::WebInspectorUIProxy::platformCreateFrontendPage):
(WebKit::WebInspectorUIProxy::platformCreateFrontendWindow):
(WebKit::WebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorUIProxy::platformDidCloseForCrash):
(WebKit::WebInspectorUIProxy::platformInvalidate):
(WebKit::WebInspectorUIProxy::platformHide):
(WebKit::WebInspectorUIProxy::platformResetState):
(WebKit::WebInspectorUIProxy::platformBringToFront):
(WebKit::WebInspectorUIProxy::platformBringInspectedPageToFront):
(WebKit::WebInspectorUIProxy::platformIsFront):
(WebKit::WebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::WebInspectorUIProxy::platformInspectedURLChanged):
(WebKit::WebInspectorUIProxy::platformShowCertificate):
(WebKit::WebInspectorUIProxy::inspectorPageURL):
(WebKit::WebInspectorUIProxy::inspectorTestPageURL):
(WebKit::WebInspectorUIProxy::infoForLocalDebuggable):
(WebKit::WebInspectorUIProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorUIProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorUIProxy::platformAttach):
(WebKit::WebInspectorUIProxy::platformDetach):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorUIProxy::platformSetSheetRect):
(WebKit::WebInspectorUIProxy::platformStartWindowDrag):
(WebKit::fileReplaceContentsCallback):
(WebKit::WebInspectorUIProxy::platformSave):
(WebKit::WebInspectorUIProxy::platformAppend):
(WebKit::WebInspectorUIProxy::platformAttachAvailabilityChanged):

  • UIProcess/Inspector/gtk/WebKitInspectorWindow.cpp:

(webkitInspectorWindowNew):

  • UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm: Renamed from Source/WebKit/UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm.

(-[WKRemoteWebInspectorUIProxyObjCAdapter window:willPositionSheet:usingRect:]):
(-[WKRemoteWebInspectorUIProxyObjCAdapter initWithRemoteWebInspectorUIProxy:]):
(-[WKRemoteWebInspectorUIProxyObjCAdapter inspectorWKWebViewDidBecomeActive:]):
(-[WKRemoteWebInspectorUIProxyObjCAdapter inspectorViewControllerInspectorDidCrash:]):
(-[WKRemoteWebInspectorUIProxyObjCAdapter inspectorViewControllerInspectorIsUnderTest:]):
(WebKit::RemoteWebInspectorUIProxy::webView const):
(WebKit::RemoteWebInspectorUIProxy::didBecomeActive):
(WebKit::RemoteWebInspectorUIProxy::platformCreateFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformResetState):
(WebKit::RemoteWebInspectorUIProxy::platformBringToFront):
(WebKit::RemoteWebInspectorUIProxy::platformSave):
(WebKit::RemoteWebInspectorUIProxy::platformAppend):
(WebKit::RemoteWebInspectorUIProxy::platformSetSheetRect):
(WebKit::RemoteWebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::RemoteWebInspectorUIProxy::platformStartWindowDrag):
(WebKit::RemoteWebInspectorUIProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorUIProxy::platformShowCertificate):

  • UIProcess/Inspector/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController webView]):

  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm: Renamed from Source/WebKit/UIProcess/Inspector/mac/WebInspectorProxyMac.mm.

(-[WKWebInspectorUIProxyObjCAdapter inspectorRef]):
(-[WKWebInspectorUIProxyObjCAdapter inspector]):
(-[WKWebInspectorUIProxyObjCAdapter initWithWebInspectorUIProxy:]):
(-[WKWebInspectorUIProxyObjCAdapter invalidate]):
(-[WKWebInspectorUIProxyObjCAdapter window:willPositionSheet:usingRect:]):
(-[WKWebInspectorUIProxyObjCAdapter windowDidMove:]):
(-[WKWebInspectorUIProxyObjCAdapter windowDidResize:]):
(-[WKWebInspectorUIProxyObjCAdapter windowWillClose:]):
(-[WKWebInspectorUIProxyObjCAdapter windowDidEnterFullScreen:]):
(-[WKWebInspectorUIProxyObjCAdapter windowDidExitFullScreen:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectedViewFrameDidChange:]):
(-[WKWebInspectorUIProxyObjCAdapter observeValueForKeyPath:ofObject:change:context:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewControllerDidBecomeActive:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewControllerInspectorDidCrash:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewControllerInspectorIsUnderTest:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewController:willMoveToWindow:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewControllerDidMoveToWindow:]):
(-[WKWebInspectorUIProxyObjCAdapter inspectorViewController:openURLExternally:]):
(WebKit::WebInspectorUIProxy::didBecomeActive):
(WebKit::WebInspectorUIProxy::attachmentViewDidChange):
(WebKit::WebInspectorUIProxy::attachmentWillMoveFromWindow):
(WebKit::WebInspectorUIProxy::attachmentDidMoveToWindow):
(WebKit::WebInspectorUIProxy::updateInspectorWindowTitle const):
(WebKit::WebInspectorUIProxy::createFrontendWindow):
(WebKit::WebInspectorUIProxy::platformCreateFrontendPage):
(WebKit::WebInspectorUIProxy::platformCreateFrontendWindow):
(WebKit::WebInspectorUIProxy::closeFrontendPage):
(WebKit::WebInspectorUIProxy::closeFrontendAfterInactivityTimerFired):
(WebKit::WebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorUIProxy::platformDidCloseForCrash):
(WebKit::WebInspectorUIProxy::platformInvalidate):
(WebKit::WebInspectorUIProxy::platformHide):
(WebKit::WebInspectorUIProxy::platformResetState):
(WebKit::WebInspectorUIProxy::platformBringToFront):
(WebKit::WebInspectorUIProxy::platformBringInspectedPageToFront):
(WebKit::WebInspectorUIProxy::platformIsFront):
(WebKit::WebInspectorUIProxy::platformCanAttach):
(WebKit::WebInspectorUIProxy::platformAttachAvailabilityChanged):
(WebKit::WebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::WebInspectorUIProxy::platformInspectedURLChanged):
(WebKit::WebInspectorUIProxy::platformShowCertificate):
(WebKit::WebInspectorUIProxy::platformSave):
(WebKit::WebInspectorUIProxy::platformAppend):
(WebKit::WebInspectorUIProxy::windowFrameDidChange):
(WebKit::WebInspectorUIProxy::windowFullScreenDidChange):
(WebKit::WebInspectorUIProxy::inspectedViewFrameDidChange):
(WebKit::WebInspectorUIProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorUIProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorUIProxy::platformAttach):
(WebKit::WebInspectorUIProxy::platformDetach):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorUIProxy::platformSetSheetRect):
(WebKit::WebInspectorUIProxy::platformStartWindowDrag):
(WebKit::WebInspectorUIProxy::inspectorPageURL):
(WebKit::WebInspectorUIProxy::inspectorTestPageURL):
(WebKit::systemVersionPlist):
(WebKit::WebInspectorUIProxy::infoForLocalDebuggable):
(WebKit::WebInspectorUIProxy::applyForcedAppearance):

  • UIProcess/Inspector/socket/RemoteInspectorClient.cpp:
  • UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp: Renamed from Source/WebKit/UIProcess/Inspector/win/RemoteWebInspectorProxyWin.cpp.

(WebKit::RemoteWebInspectorUIProxy::WndProc):
(WebKit::registerWindowClass):
(WebKit::RemoteWebInspectorUIProxy::sizeChange):
(WebKit::RemoteWebInspectorUIProxy::onClose):
(WebKit::RemoteWebInspectorUIProxy::platformCreateFrontendPageAndWindow):
(WebKit::RemoteWebInspectorUIProxy::platformResetState):
(WebKit::RemoteWebInspectorUIProxy::platformBringToFront):
(WebKit::RemoteWebInspectorUIProxy::platformSave):
(WebKit::RemoteWebInspectorUIProxy::platformAppend):
(WebKit::RemoteWebInspectorUIProxy::platformSetSheetRect):
(WebKit::RemoteWebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::RemoteWebInspectorUIProxy::platformStartWindowDrag):
(WebKit::RemoteWebInspectorUIProxy::platformOpenURLExternally):
(WebKit::RemoteWebInspectorUIProxy::platformShowCertificate):
(WebKit::RemoteWebInspectorUIProxy::platformCloseFrontendPageAndWindow):

  • UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp: Renamed from Source/WebKit/UIProcess/Inspector/win/WebInspectorProxyWin.cpp.

(WebKit::getInspectedWindowInfo):
(WebKit::WebInspectorUIProxy::windowReceivedMessage):
(WebKit::WebInspectorUIProxy::wndProc):
(WebKit::WebInspectorUIProxy::registerWindowClass):
(WebKit::decidePolicyForNavigationAction):
(WebKit::webProcessDidCrash):
(WebKit::WebInspectorUIProxy::platformCreateFrontendPage):
(WebKit::WebInspectorUIProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorUIProxy::inspectorPageURL):
(WebKit::WebInspectorUIProxy::inspectorTestPageURL):
(WebKit::WebInspectorUIProxy::infoForLocalDebuggable):
(WebKit::WebInspectorUIProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorUIProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorUIProxy::platformAttach):
(WebKit::WebInspectorUIProxy::platformDetach):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorUIProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorUIProxy::platformSetSheetRect):
(WebKit::WebInspectorUIProxy::platformIsFront):
(WebKit::WebInspectorUIProxy::platformHide):
(WebKit::WebInspectorUIProxy::platformResetState):
(WebKit::WebInspectorUIProxy::platformBringToFront):
(WebKit::WebInspectorUIProxy::platformBringInspectedPageToFront):
(WebKit::WebInspectorUIProxy::platformSetForcedAppearance):
(WebKit::WebInspectorUIProxy::platformInspectedURLChanged):
(WebKit::WebInspectorUIProxy::platformShowCertificate):
(WebKit::WebInspectorUIProxy::platformSave):
(WebKit::WebInspectorUIProxy::platformAppend):
(WebKit::WebInspectorUIProxy::platformAttachAvailabilityChanged):
(WebKit::WebInspectorUIProxy::platformCreateFrontendWindow):
(WebKit::WebInspectorUIProxy::platformDidCloseForCrash):
(WebKit::WebInspectorUIProxy::platformInvalidate):
(WebKit::WebInspectorUIProxy::platformStartWindowDrag):

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPageProxy::inspector const):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::sendMessageToBackend):
(WebKit::RemoteWebInspectorUI::frontendLoaded):
(WebKit::RemoteWebInspectorUI::changeSheetRect):
(WebKit::RemoteWebInspectorUI::setForcedAppearance):
(WebKit::RemoteWebInspectorUI::startWindowDrag):
(WebKit::RemoteWebInspectorUI::bringToFront):
(WebKit::RemoteWebInspectorUI::closeWindow):
(WebKit::RemoteWebInspectorUI::reopen):
(WebKit::RemoteWebInspectorUI::resetState):
(WebKit::RemoteWebInspectorUI::openURLExternally):
(WebKit::RemoteWebInspectorUI::save):
(WebKit::RemoteWebInspectorUI::append):
(WebKit::RemoteWebInspectorUI::showCertificate):

  • WebProcess/Inspector/WebInspector.cpp:

(WebKit::WebInspector::openLocalInspectorFrontend):
(WebKit::WebInspector::closeFrontendConnection):
(WebKit::WebInspector::bringToFront):
(WebKit::WebInspector::elementSelectionChanged):
(WebKit::WebInspector::timelineRecordingChanged):
(WebKit::WebInspector::setDeveloperPreferenceOverride):
(WebKit::WebInspector::updateDockingAvailability):

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::updateConnection):
(WebKit::WebInspectorUI::frontendLoaded):
(WebKit::WebInspectorUI::startWindowDrag):
(WebKit::WebInspectorUI::bringToFront):
(WebKit::WebInspectorUI::closeWindow):
(WebKit::WebInspectorUI::reopen):
(WebKit::WebInspectorUI::resetState):
(WebKit::WebInspectorUI::setForcedAppearance):
(WebKit::WebInspectorUI::requestSetDockSide):
(WebKit::WebInspectorUI::changeAttachedWindowHeight):
(WebKit::WebInspectorUI::changeAttachedWindowWidth):
(WebKit::WebInspectorUI::changeSheetRect):
(WebKit::WebInspectorUI::openURLExternally):
(WebKit::WebInspectorUI::save):
(WebKit::WebInspectorUI::append):
(WebKit::WebInspectorUI::inspectedURLChanged):
(WebKit::WebInspectorUI::showCertificate):
(WebKit::WebInspectorUI::sendMessageToBackend):

4:21 PM Changeset in webkit [274814] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

[MacOS Wk1] imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-auto-repeat-max-size-001.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=222686

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:01 PM Changeset in webkit [274813] by sbarati@apple.com
  • 4 edits
    1 add in trunk

LiteralParser shouldn't make error messages of length ~231
https://bugs.webkit.org/show_bug.cgi?id=223483
<rdar://75572255>

Reviewed by Robin Morisset.

JSTests:

  • stress/literal-parser-error-message-oom.js: Added.

Source/JavaScriptCore:

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::parse):

3:29 PM Changeset in webkit [274812] by commit-queue@webkit.org
  • 21 edits
    2 copies
    2 adds
    2 deletes in trunk

Enable ability to prevent scrolling in Element.focus()
https://bugs.webkit.org/show_bug.cgi?id=178583

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-22
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/html/interaction/focus/processing-model/preventScroll-nested-scroll-elements-expected.txt: Added.
  • web-platform-tests/html/interaction/focus/processing-model/preventScroll-nested-scroll-elements.html: Added.
  • web-platform-tests/html/interaction/focus/processing-model/preventScroll-textarea-expected.txt:

Source/WebCore:

Add FocusOptions parameter to the focus method [1] both
to the IDL as the C++ side. Change Element.focus to not
scroll if FocusOptions.preventScroll is true.

Behavior matches Chrome and Firefox.

Tests: imported/w3c/web-platform-tests/html/interaction/focus/processing-model/preventScroll-textarea.html

imported/w3c/web-platform-tests/html/interaction/focus/processing-model/preventScroll-nested-scroll-elements.html

Test: imported/w3c/web-platform-tests/html/interaction/focus/processing-model/preventScroll-nested-scroll-elements.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp:

(WebCore::Element::focus):

  • dom/Element.h:

(WebCore::Element::focus):

  • dom/FocusOptions.h: Copied from Source/WebCore/html/HTMLOrForeignElement.idl.
  • dom/FocusOptions.idl: Copied from Source/WebCore/html/HTMLOrForeignElement.idl.
  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::didAttachRenderers):

  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::focus):

  • html/HTMLLabelElement.h:
  • html/HTMLLegendElement.cpp:

(WebCore::HTMLLegendElement::focus):

  • html/HTMLLegendElement.h:
  • html/HTMLOrForeignElement.idl:
  • html/InputType.cpp:

(WebCore::InputType::accessKeyAction):

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):
(WebCore::FocusController::advanceFocusDirectionallyInContainer):

LayoutTests:

The test preventScroll-textarea.html now passes on all platforms.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/interaction/focus/processing-model/preventScroll-textarea-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/interaction/focus/processing-model/preventScroll-textarea-expected.txt: Removed.
3:19 PM Changeset in webkit [274811] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.3-branch/Source

Versioning.

WebKit-7611.1.21.3.2

3:17 PM Changeset in webkit [274810] by Devin Rousso
  • 119 edits
    342 deletes in trunk

Remove unused JS and CSS files of media controls
https://bugs.webkit.org/show_bug.cgi?id=214955
<rdar://problem/66604040>

Reviewed by Eric Carlson.

Source/WebCore:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • Modules/mediacontrols/assets-apple-iOS.svg: Removed.
  • Modules/mediacontrols/mediaControlsiOS.css: Removed.
  • Modules/mediacontrols/mediaControlsiOS.js: Removed.
  • rendering/RenderTheme.h:

(WebCore::RenderTheme::modernMediaControlsStyleSheet): Deleted.

  • rendering/RenderThemeCocoa.h:
  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::purgeCaches): Added.
(WebCore::RenderThemeCocoa::mediaControlsStyleSheet): Added.
(WebCore::RenderThemeCocoa::mediaControlsScripts): Added.
(WebCore::RenderThemeCocoa::mediaControlsBase64StringForIconNameAndType): Added.

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

(WebCore::RenderThemeIOS::mediaControlsStyleSheet): Deleted.
(WebCore::RenderThemeIOS::modernMediaControlsStyleSheet): Deleted.
(WebCore::RenderThemeIOS::purgeCaches): Deleted.
(WebCore::RenderThemeIOS::mediaControlsScripts): Deleted.
(WebCore::RenderThemeIOS::mediaControlsBase64StringForIconNameAndType): Deleted.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::mediaControlsStyleSheet): Deleted.
(WebCore::RenderThemeMac::modernMediaControlsStyleSheet): Deleted.
(WebCore::RenderThemeMac::purgeCaches): Deleted.
(WebCore::RenderThemeMac::mediaControlsScripts): Deleted.
(WebCore::RenderThemeMac::mediaControlsBase64StringForIconNameAndType): Deleted.
Move media controls functions to RenderThemeCocoa since they are identical.

  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::shadowRootCSSText):

  • css/mediaControls.css:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocument::defaultEventHandler):

  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setModernMediaControlsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::modernMediaControlsEnabled const): Deleted.
Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

  • html/track/TextTrackCueGeneric.cpp:

Update the static DEFAULTCAPTIONFONTSIZE value for modern media controls.

  • Modules/modern-media-controls/controls/macos-fullscreen-media-controls.css:
  • Modules/modern-media-controls/controls/text-tracks.css:

Update comments.

  • css/mediaControlsiOS.css: Removed.

This file was never included anywhere.

  • platform/audio/PlatformMediaSessionManager.h:

(WebCore::PlatformMediaSessionManager::resetHaveEverRegisteredAsNowPlayingApplicationForTesting): added.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::resetHaveEverRegisteredAsNowPlayingApplicationForTesting): added.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
Drive-by: Reset haveEverRegisteredAsNowPlayingApplication to a consistent state between tests.

This is expected by LayoutTests/media/now-playing-status-without-media.html.

  • bindings/js/WebCoreBuiltinNames.h:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetModernMediaControlsEnabled): Deleted.
(WKPreferencesGetModernMediaControlsEnabled): Deleted.
Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

  • UIProcess/mac/WKFullScreenWindowController.mm:

Update the static minVideoWidth value for modern media controls.

Source/WebKitLegacy/mac:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences modernMediaControlsEnabled]): Deleted.
(-[WebPreferences setModernMediaControlsEnabled:]): Deleted.
Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

Source/WebKitLegacy/win:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.h:
  • WebPreferences.cpp:

(WebPreferences::setModernMediaControlsEnabled): Deleted.
(WebPreferences::modernMediaControlsEnabled): Deleted.

  • WebView.cpp:

(WebView::notifyPreferencesChanged):
Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

Source/WTF:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
  • Scripts/Preferences/WebPreferences.yaml:

Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

Tools:

Cocoa platforms are already using modern media controls so there's no reason to keep the old
media controls resources/logic around any longer. It just wastes space.

The non-iOS Apple controls must be kept though as they are still used on Windows.

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformSpecificFeatureDefaultsForTest const):

  • WebKitTestRunner/wpe/TestControllerWPE.cpp:

(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
Replace ModernMediaControlsEnabled setting with ENABLE_MODERN_MEDIA_CONTROLS build flag.

LayoutTests:

Remove tests (and their expectations) that used ModernMediaControlsEnabled=false.

  • accessibility/ios-simulator/has-touch-event-listener-with-shadow.html:
  • accessibility/ios-simulator/media-with-aria-label.html: Removed.
  • accessibility/ios-simulator/media-with-aria-label-expected.txt: Removed.
  • accessibility/mac/media-emits-object-replacement.html: Removed.
  • accessibility/mac/media-emits-object-replacement-expected.txt: Removed.
  • accessibility/mac/video-tag-hit-test.html: Removed.
  • accessibility/mac/video-tag-hit-test-expected.txt: Removed.
  • accessibility/mac/video-volume-slider-accessibility.html: Removed.
  • accessibility/mac/video-volume-slider-accessibility-expected.txt: Removed.
  • accessibility/media-element.html: Removed.
  • platform/gtk/accessibility/media-element-expected.txt: Removed.
  • platform/mac/accessibility/media-element-expected.txt: Removed.
  • platform/wincairo/accessibility/media-element-expected.txt: Removed.
  • accessibility/media-emits-object-replacement.html: Removed.
  • accessibility/media-emits-object-replacement-expected.txt: Removed.
  • platform/glib/accessibility/media-emits-object-replacement-expected.txt: Removed.
  • accessibility/media-with-aria-label.html: Removed.
  • accessibility/media-with-aria-label-expected.txt: Removed.
  • compositing/video/poster.html:
  • compositing/video/poster-expected.html:
  • fast/hidpi/video-controls-in-hidpi.html: Removed.
  • platform/gtk/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • platform/ios/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • platform/mac/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • platform/win/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • platform/wincairo/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • platform/wpe/fast/hidpi/video-controls-in-hidpi-expected.txt: Removed.
  • fast/layers/video-layer.html: Removed.
  • platform/gtk/fast/layers/video-layer-expected.png: Removed.
  • platform/gtk/fast/layers/video-layer-expected.txt: Removed.
  • platform/ios/fast/layers/video-layer-expected.txt: Removed.
  • platform/mac/fast/layers/video-layer-expected.png: Removed.
  • platform/mac/fast/layers/video-layer-expected.txt: Removed.
  • platform/win/fast/layers/video-layer-expected.txt: Removed.
  • platform/wincairo/fast/layers/video-layer-expected.txt: Removed.
  • platform/wpe/fast/layers/video-layer-expected.txt: Removed.
  • fast/mediastream/MediaStream-video-element-video-tracks-disabled.html:
  • fullscreen/video-controls-drag.html: Removed.
  • fullscreen/video-controls-drag-expected.txt: Removed.
  • fullscreen/video-controls-override.html: Removed.
  • fullscreen/video-controls-override-expected.txt: Removed.
  • fullscreen/video-controls-rtl.html: Removed.
  • fullscreen/video-controls-rtl-expected.txt: Removed.
  • fullscreen/video-controls-timeline.html: Removed.
  • fullscreen/video-controls-timeline-expected.txt: Removed.
  • http/tests/media/hls/hls-accessiblity-describes-video-menu.html: Removed.
  • http/tests/media/hls/hls-accessiblity-describes-video-menu-expected.txt: Removed.
  • http/tests/media/hls/hls-audio-tracks-has-audio.html:
  • http/tests/media/hls/hls-audio-tracks-locale-selection.html:
  • http/tests/media/hls/hls-audio-tracks.html:
  • http/tests/media/hls/hls-progress.html:
  • http/tests/media/hls/hls-webvtt-tracks.html:
  • http/tests/media/hls/range-request.html:
  • http/tests/media/hls/video-controls-live-stream.html: Removed.
  • platform/gtk/http/tests/media/hls/video-controls-live-stream-expected.txt: Removed.
  • platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt: Removed.
  • http/tests/media/hls/video-cookie.html:
  • http/tests/media/hls/video-duration-accessibility.html: Removed.
  • http/tests/media/hls/video-duration-accessibility-expected.txt: Removed.
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-allowed.html:
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked.html:
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/default-src-object-data-url-blocked2.html:
  • http/tests/security/contentSecurityPolicy/userAgentShadowDOM/video-controls-allowed.html:
  • inspector/css/pseudo-element-matches.html:
  • inspector/css/pseudo-element-matches-expected.txt:
  • media/accessibility-closed-captions-has-aria-owns.html: Removed.
  • media/accessibility-closed-captions-has-aria-owns-expected.txt: Removed.
  • media/adopt-node-crash.html:
  • media/airplay-allows-buffering.html:
  • media/airplay-autoplay.html:
  • media/audio-as-video-fullscreen.html: Removed.
  • media/audio-as-video-fullscreen-expected.txt: Removed.
  • media/audio-controls-do-not-fade-out.html: Removed.
  • media/audio-controls-do-not-fade-out-expected.txt: Removed.
  • media/audio-controls-rendering.html: Removed.
  • platform/gtk/media/audio-controls-rendering-expected.txt: Removed.
  • platform/ios/media/audio-controls-rendering-expected.txt: Removed.
  • platform/mac/media/audio-controls-rendering-expected.txt: Removed.
  • platform/win/media/audio-controls-rendering-expected.txt: Removed.
  • platform/wincairo/media/audio-controls-rendering-expected.txt: Removed.
  • media/audio-controls-timeline-in-media-document.html: Removed.
  • media/audio-controls-timeline-in-media-document-expected.txt: Removed.
  • media/audio-delete-while-slider-thumb-clicked.html: Removed.
  • media/audio-delete-while-slider-thumb-clicked-expected.txt: Removed.
  • media/audio-delete-while-step-button-clicked.html: Removed.
  • media/audio-delete-while-step-button-clicked-expected.txt: Removed.
  • media/audio-repaint.html: Removed.
  • platform/gtk/media/audio-repaint-expected.txt: Removed.
  • platform/ios/media/audio-repaint-expected.txt: Removed.
  • platform/mac/media/audio-repaint-expected.txt: Removed.
  • platform/wincairo/media/audio-repaint-expected.txt: Removed.
  • media/click-placeholder-not-pausing.html: Removed.
  • media/click-placeholder-not-pausing-expected.txt: Removed.
  • media/click-volume-bar-not-pausing.html: Removed.
  • media/click-volume-bar-not-pausing-expected.txt: Removed.
  • media/controls-after-reload.html: Removed.
  • platform/gtk/media/controls-after-reload-expected.txt: Removed.
  • platform/mac-catalina/media/controls-after-reload-expected.txt: Removed.
  • platform/mac/media/controls-after-reload-expected.txt: Removed.
  • platform/win/media/controls-after-reload-expected.txt: Removed.
  • platform/wincairo/media/controls-after-reload-expected.txt: Removed.
  • media/controls-drag-timebar.html: Removed.
  • media/controls-drag-timebar-expected.txt: Removed.
  • media/controls-right-click-on-timebar.html: Removed.
  • media/controls-right-click-on-timebar-expected.txt: Removed.
  • media/controls-strict.html: Removed.
  • platform/gtk/media/controls-strict-expected.txt: Removed.
  • platform/ios/media/controls-strict-expected.txt: Removed.
  • platform/mac/media/controls-strict-expected.txt: Removed.
  • platform/mac/media/controls-strict-mode-expected.txt: Removed.
  • platform/win/media/controls-strict-expected.txt: Removed.
  • platform/wincairo/media/controls-strict-expected.txt: Removed.
  • media/controls-styling.html: Removed.
  • platform/gtk/media/controls-styling-expected.txt: Removed.
  • platform/mac/media/controls-styling-expected.txt: Removed.
  • platform/win/media/controls-styling-expected.txt: Removed.
  • platform/wincairo/media/controls-styling-expected.txt: Removed.
  • media/controls-styling-strict.html: Removed.
  • platform/gtk/media/controls-styling-strict-expected.txt: Removed.
  • platform/mac/media/controls-styling-strict-expected.txt: Removed.
  • platform/wincairo/media/controls-styling-strict-expected.txt: Removed.
  • media/controls-without-preload.html: Removed.
  • platform/gtk/media/controls-without-preload-expected.txt: Removed.
  • platform/ios/media/controls-without-preload-expected.txt: Removed.
  • platform/mac/media/controls-without-preload-expected.txt: Removed.
  • platform/win/media/controls-without-preload-expected.txt: Removed.
  • platform/wincairo/media/controls-without-preload-expected.txt: Removed.
  • media/controls/airplay-controls.html: Removed.
  • media/controls/airplay-controls-expected.txt: Removed.
  • media/controls/airplay-picker.html: Removed.
  • media/controls/airplay-picker-expected.txt: Removed.
  • media/controls/basic.html: Removed.
  • media/controls/basic-expected.txt: Removed.
  • media/controls/controls-test-helpers.js: Removed.
  • media/controls/default-size-should-show-scrubber.html: Removed.
  • media/controls/default-size-should-show-scrubber-expected.txt: Removed.
  • media/controls/elementOrder.html: Removed.
  • media/controls/elementOrder-expected.txt: Removed.
  • media/controls/forced-tracks-only.html: Removed.
  • media/controls/forced-tracks-only-expected.txt: Removed.
  • media/controls/fullscreen-button-inline-layout.html: Removed.
  • media/controls/fullscreen-button-inline-layout-expected.txt: Removed.
  • media/controls/inline-elements-dropoff-order.html: Removed.
  • media/controls/inline-elements-dropoff-order-expected.txt: Removed.
  • media/controls/picture-in-picture.html: Removed.
  • media/controls/picture-in-picture-expected.txt: Removed.
  • media/controls/pip-placeholder-without-video-controls.html: Removed.
  • media/controls/pip-placeholder-without-video-controls-expected.txt: Removed.
  • media/controls/showControlsButton.html: Removed.
  • media/controls/showControlsButton-expected.txt: Removed.
  • media/controls/statusDisplay.html: Removed.
  • media/controls/statusDisplay-expected.txt: Removed.
  • media/controls/statusDisplayBad.html: Removed.
  • media/controls/statusDisplayBad-expected.txt: Removed.
  • media/controls/track-menu.html: Removed.
  • media/controls/track-menu-expected.txt: Removed.
  • media/in-band-tracks.js:

(seeked): Deleted.
(testTextTrackMode): Deleted.
(testCueStyle.seeked): Deleted.
(testCueStyle.canplaythrough): Deleted.
(testCueStyle): Deleted.

  • media/mac/controls-panel-not-clipped-out.html: Removed.
  • media/mac/controls-panel-not-clipped-out-expected.html: Removed.
  • media/media-captions-no-controls.html:
  • media/media-captions-no-controls-expected.txt:
  • media/media-controller-drag-crash.html: Removed.
  • media/media-controller-drag-crash-expected.txt: Removed.
  • media/media-controls-accessibility.html: Removed.
  • media/media-controls-accessibility-expected.txt: Removed.
  • media/media-controls-cancel-events.html: Removed.
  • media/media-controls-cancel-events-expected.txt: Removed.
  • media/media-controls-clone.html: Removed.
  • platform/gtk/media/media-controls-clone-expected.txt: Removed.
  • platform/ios/media/media-controls-clone-expected.txt: Removed.
  • platform/mac/media/media-controls-clone-expected.txt: Removed.
  • platform/wincairo/media/media-controls-clone-expected.txt: Removed.
  • media/media-controls-drag-timeline-set-controls-property.html: Removed.
  • media/media-controls-drag-timeline-set-controls-property-expected.txt: Removed.
  • media/media-controls-invalid-url.html: Removed.
  • media/media-controls-invalid-url-expected.txt: Removed.
  • platform/win/media/media-controls-invalid-url-expected.txt: Removed.
  • media/media-controls-play-button-updates.html: Removed.
  • platform/gtk/media/media-controls-play-button-updates-expected.png: Removed.
  • platform/gtk/media/media-controls-play-button-updates-expected.txt: Removed.
  • media/media-controls-play-button-updates-expected.txt: Removed.
  • media/media-controls-play-button-updates-expected.png: Removed.
  • media/media-controls-timeline-updates.html: Removed.
  • media/media-controls-timeline-updates-expected.txt: Removed.
  • media/media-controls-timeline-updates-after-playing.html: Removed.
  • media/media-controls-timeline-updates-after-playing-expected.txt: Removed.
  • media/media-controls-timeline-updates-when-hovered.html: Removed.
  • media/media-controls-timeline-updates-when-hovered-expected.txt: Removed.
  • media/media-controls.js: Removed.
  • media/media-document-audio-controls-visible.html: Removed.
  • media/media-document-audio-controls-visible-expected.txt: Removed.
  • media/media-document-audio-repaint.html: Removed.
  • platform/gtk/media/media-document-audio-repaint-expected.txt: Removed.
  • platform/mac/media/media-document-audio-repaint-expected.txt: Removed.
  • media/media-document-audio-repaint-expected.txt: Removed.
  • media/media-fullscreen-loop-inline.html:
  • media/media-fullscreen-pause-inline.html:
  • media/media-fullscreen-return-to-inline.html:
  • media/media-source/only-bcp47-language-tags-accepted-as-valid.html:
  • media/media-volume-slider-rendered-below.html: Removed.
  • media/media-volume-slider-rendered-below-expected.txt: Removed.
  • media/media-volume-slider-rendered-normal.html: Removed.
  • media/media-volume-slider-rendered-normal-expected.txt: Removed.
  • media/nodesFromRect-shadowContent.html: Removed.
  • media/nodesFromRect-shadowContent-expected.txt: Removed.
  • media/progress-events-generated-correctly.html:
  • media/require-user-gesture-to-load-video.html: Removed.
  • media/require-user-gesture-to-load-video-expected.txt: Removed.
  • media/tab-focus-inside-media-elements.html: Removed.
  • media/tab-focus-inside-media-elements-expected.txt: Removed.
  • media/track/in-band/track-in-band-kate-ogg-mode.html: Removed.
  • media/track/in-band/track-in-band-kate-ogg-mode-expected.txt: Removed.
  • media/track/in-band/track-in-band-kate-ogg-style.html: Removed.
  • media/track/in-band/track-in-band-kate-ogg-style-expected.txt: Removed.
  • media/track/in-band/track-in-band-srt-mkv-mode.html: Removed.
  • media/track/in-band/track-in-band-srt-mkv-mode-expected.txt: Removed.
  • media/track/in-band/track-in-band-srt-mkv-style.html: Removed.
  • media/track/in-band/track-in-band-srt-mkv-style-expected.txt: Removed.
  • media/track/regions-webvtt/vtt-region-display.html: Removed.
  • media/track/regions-webvtt/vtt-region-display-expected.txt: Removed.
  • media/track/regions-webvtt/vtt-region-dom-layout.html: Removed.
  • media/track/regions-webvtt/vtt-region-dom-layout-expected.txt: Removed.
  • media/track/texttrackcue/texttrackcue-addcue.html:
  • media/track/texttrackcue/texttrackcue-displaycue.html: Removed.
  • media/track/texttrackcue/texttrackcue-displaycue-expected.txt: Removed.
  • media/track/track-automatic-subtitles.html:
  • media/track/track-css-all-cues.html: Removed.
  • media/track/track-css-all-cues-expected.txt: Removed.
  • media/track/track-css-cue-lifetime.html: Removed.
  • media/track/track-css-cue-lifetime-expected.txt: Removed.
  • media/track/track-css-matching.html: Removed.
  • media/track/track-css-matching-expected.txt: Removed.
  • media/track/track-css-matching-default.html: Removed.
  • media/track/track-css-matching-default-expected.txt: Removed.
  • media/track/track-css-matching-lang.html: Removed.
  • media/track/track-css-matching-lang-expected.txt: Removed.
  • media/track/track-css-matching-timestamps.html: Removed.
  • media/track/track-css-matching-timestamps-expected.txt: Removed.
  • media/track/track-css-property-allowlist-expected.txt: Removed.
  • media/track/track-css-property-allowlist.html: Removed.
  • media/track/track-css-stroke-cues.html: Removed.
  • media/track/track-css-stroke-cues-expected.txt: Removed.
  • media/track/track-css-user-override.html: Removed.
  • media/track/track-css-user-override-expected.txt: Removed.
  • media/track/track-css-visible-stroke.html:
  • media/track/track-cue-container-rendering-position.html: Removed.
  • media/track/track-cue-container-rendering-position-expected.txt: Removed.
  • media/track/track-cue-css.html:
  • media/track/track-cue-css-expected.html:
  • media/track/track-cue-left-align.html:
  • media/track/track-cue-left-align-expected-mismatch.html:
  • media/track/track-cue-line-position.html:
  • media/track/track-cue-line-position-expected-mismatch.html:
  • media/track/track-cue-mutable-fragment.html:
  • media/track/track-cue-mutable-text.html: Removed.
  • media/track/track-cue-mutable-text-expected.txt: Removed.
  • media/track/track-cue-nothing-to-render.html: Removed.
  • media/track/track-cue-nothing-to-render-expected.txt: Removed.
  • media/track/track-cue-overlap-snap-to-lines-not-set.html: Removed.
  • media/track/track-cue-overlap-snap-to-lines-not-set-expected.txt: Removed.
  • media/track/track-cue-rendering.html: Removed.
  • media/track/track-cue-rendering-expected.txt: Removed.
  • media/track/track-cue-rendering-horizontal.html: Removed.
  • platform/gtk/media/track/track-cue-rendering-horizontal-expected.png: Removed.
  • platform/gtk/media/track/track-cue-rendering-horizontal-expected.txt: Removed.
  • platform/ios/media/track/track-cue-rendering-horizontal-expected.txt: Removed.
  • platform/mac/media/track/track-cue-rendering-horizontal-expected.png: Removed.
  • platform/mac/media/track/track-cue-rendering-horizontal-expected.txt: Removed.
  • platform/win/media/track/track-cue-rendering-horizontal-expected.txt: Removed.
  • platform/wincairo/media/track/track-cue-rendering-horizontal-expected.txt: Removed.
  • media/track/track-cue-rendering-mode-changed.html: Removed.
  • media/track/track-cue-rendering-mode-changed-expected.txt: Removed.
  • media/track/track-cue-rendering-on-resize.html: Removed.
  • media/track/track-cue-rendering-on-resize-expected.txt: Removed.
  • media/track/track-cue-rendering-rtl.html: Removed.
  • media/track/track-cue-rendering-rtl-expected.txt: Removed.
  • media/track/track-cue-rendering-snap-to-lines-not-set.html: Removed.
  • media/track/track-cue-rendering-snap-to-lines-not-set-expected.txt: Removed.
  • media/track/track-cue-rendering-tree-is-removed-properly.html: Removed.
  • media/track/track-cue-rendering-tree-is-removed-properly-expected.txt: Removed.
  • media/track/track-cue-rendering-vertical.html: Removed.
  • platform/gtk/media/track/track-cue-rendering-vertical-expected.png: Removed.
  • platform/gtk/media/track/track-cue-rendering-vertical-expected.txt: Removed.
  • platform/ios/media/track/track-cue-rendering-vertical-expected.txt: Removed.
  • platform/mac/media/track/track-cue-rendering-vertical-expected.txt: Removed.
  • platform/wincairo/media/track/track-cue-rendering-vertical-expected.txt: Removed.
  • media/track/track-cue-rendering-with-padding.html: Removed.
  • media/track/track-cue-rendering-with-padding-expected.txt: Removed.
  • media/track/track-cues-cuechange.html:
  • media/track/track-cues-enter-exit.html:
  • media/track/track-forced-subtitles-in-band.html:
  • media/track/track-forced-subtitles-in-band-expected.txt:
  • media/track/track-in-band-duplicate-tracks-when-source-changes.html:
  • media/track/track-in-band-legacy-api.html:
  • media/track/track-in-band-legacy-api-expected.txt:
  • media/track/track-in-band-metadata-display-order.html: Removed.
  • media/track/track-in-band-metadata-display-order-expected.txt: Removed.
  • media/track/track-in-band-mode.html:
  • media/track/track-in-band-mode-expected.txt:
  • media/track/track-in-band-style.html: Removed.
  • media/track/track-in-band-style-expected.txt: Removed.
  • media/track/track-in-band-subtitles-too-large.html: Removed.
  • media/track/track-in-band-subtitles-too-large-expected.txt: Removed.
  • media/track/track-kind.html:
  • media/track/track-kind-expected.txt:
  • media/track/track-legacyapi-with-automatic-mode.html:
  • media/track/track-legacyapi-with-automatic-mode-expected.txt:
  • media/track/track-long-word-container-sizing.html: Removed.
  • media/track/track-long-word-container-sizing-expected.txt: Removed.
  • media/track/track-manual-mode.html:
  • media/track/track-manual-mode-expected.txt:
  • media/track/track-user-preferences.html: Removed.
  • media/track/track-user-preferences-expected.txt: Removed.
  • media/track/track-user-stylesheet.html:
  • media/track/track-user-stylesheet-expected.txt:
  • media/trackmenu-test.js: Removed.
  • media/video-click-dblckick-standalone.html: Removed.
  • media/video-click-dblckick-standalone-expected.txt: Removed.
  • media/video-controls-audiotracks-trackmenu.html: Removed.
  • media/video-controls-audiotracks-trackmenu-expected.txt: Removed.
  • media/video-controls-captions.html: Removed.
  • media/video-controls-captions-expected.txt: Removed.
  • media/video-controls-captions-trackmenu.html: Removed.
  • platform/gtk/media/video-controls-captions-trackmenu-expected.txt: Removed.
  • platform/ios/media/video-controls-captions-trackmenu-expected.txt: Removed.
  • platform/mac/media/video-controls-captions-trackmenu-expected.txt: Removed.
  • platform/wincairo/media/video-controls-captions-trackmenu-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-hide-on-click.html: Removed.
  • platform/gtk/media/video-controls-captions-trackmenu-hide-on-click-expected.txt: Removed.
  • platform/ios/media/video-controls-captions-trackmenu-hide-on-click-expected.txt: Removed.
  • platform/mac/media/video-controls-captions-trackmenu-hide-on-click-expected.txt: Removed.
  • platform/wincairo/media/video-controls-captions-trackmenu-hide-on-click-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-hide-on-click-outside.html: Removed.
  • media/video-controls-captions-trackmenu-hide-on-click-outside-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-includes-enabled-track.html: Removed.
  • media/video-controls-captions-trackmenu-includes-enabled-track-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-localized.html: Removed.
  • platform/gtk/media/video-controls-captions-trackmenu-localized-expected.txt: Removed.
  • platform/ios/media/video-controls-captions-trackmenu-localized-expected.txt: Removed.
  • platform/mac/media/video-controls-captions-trackmenu-localized-expected.txt: Removed.
  • platform/wincairo/media/video-controls-captions-trackmenu-localized-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-only-captions-descriptions-and-subtitles.html: Removed.
  • media/video-controls-captions-trackmenu-only-captions-descriptions-and-subtitles-expected.txt: Removed.
  • platform/gtk/media/video-controls-captions-trackmenu-only-captions-descriptions-and-subtitles-expected.txt: Removed.
  • platform/mac/media/video-controls-captions-trackmenu-only-captions-descriptions-and-subtitles-expected.txt: Removed.
  • media/video-controls-captions-trackmenu-sorted.html: Removed.
  • platform/gtk/media/video-controls-captions-trackmenu-sorted-expected.txt: Removed.
  • platform/ios/media/video-controls-captions-trackmenu-sorted-expected.txt: Removed.
  • platform/mac/media/video-controls-captions-trackmenu-sorted-expected.txt: Removed.
  • platform/win/media/video-controls-captions-trackmenu-sorted-expected.txt: Removed.
  • platform/wincairo/media/video-controls-captions-trackmenu-sorted-expected.txt: Removed.
  • media/video-controls-drop-and-restore-timeline.html: Removed.
  • media/video-controls-drop-and-restore-timeline-expected.txt: Removed.
  • media/video-controls-fullscreen-volume.html: Removed.
  • media/video-controls-fullscreen-volume-expected.txt: Removed.
  • media/video-controls-in-media-document.html: Removed.
  • media/video-controls-in-media-document-expected.txt: Removed.
  • media/video-controls-no-display-with-text-track.html: Removed.
  • media/video-controls-no-display-with-text-track-expected.txt: Removed.
  • media/video-controls-rendering.html: Removed.
  • platform/gtk/media/video-controls-rendering-expected.txt: Removed.
  • platform/ios/media/video-controls-rendering-expected.txt: Removed.
  • platform/mac/media/video-controls-rendering-expected.txt: Removed.
  • platform/win/media/video-controls-rendering-expected.txt: Removed.
  • platform/wincairo/media/video-controls-rendering-expected.txt: Removed.
  • media/video-controls-show-on-kb-or-ax-event.html: Removed.
  • media/video-controls-show-on-kb-or-ax-event-expected.txt: Removed.
  • media/video-controls-toggling.html: Removed.
  • media/video-controls-toggling-expected.txt: Removed.
  • media/video-controls-transformed.html: Removed.
  • media/video-controls-transformed-expected.txt: Removed.
  • media/video-controls-visible-audio-only.html: Removed.
  • media/video-controls-visible-audio-only-expected.txt: Removed.
  • media/video-controls-visible-exiting-fullscreen.html: Removed.
  • media/video-controls-visible-exiting-fullscreen-expected.txt: Removed.
  • media/video-controls-zoomed.html: Removed.
  • media/video-controls-zoomed-expected.txt: Removed.
  • media/video-display-toggle.html: Removed.
  • platform/gtk/media/video-display-toggle-expected.txt: Removed.
  • platform/ios/media/video-display-toggle-expected.txt: Removed.
  • platform/mac-catalina/media/video-display-toggle-expected.txt: Removed.
  • platform/mac-mojave/media/video-display-toggle-expected.txt: Removed.
  • platform/mac/media/video-display-toggle-expected.txt: Removed.
  • platform/win/media/video-display-toggle-expected.txt: Removed.
  • platform/wincairo/media/video-display-toggle-expected.txt: Removed.
  • media/video-empty-source.html: Removed.
  • platform/gtk/media/video-empty-source-expected.txt: Removed.
  • platform/ios/media/video-empty-source-expected.txt: Removed.
  • platform/mac/media/video-empty-source-expected.txt: Removed.
  • platform/win/media/video-empty-source-expected.txt: Removed.
  • platform/wincairo/media/video-empty-source-expected.txt: Removed.
  • media/video-fullscreen-only-controls.html: Removed.
  • media/video-fullscreen-only-controls-expected.txt: Removed.
  • media/video-fullscreen-only-playback.html:
  • media/video-initially-hidden-volume-slider-up.html: Removed.
  • media/video-initially-hidden-volume-slider-up-expected.txt: Removed.
  • media/video-no-audio.html: Removed.
  • platform/gtk/media/video-no-audio-expected.txt: Removed.
  • platform/ios/media/video-no-audio-expected.txt: Removed.
  • platform/mac-catalina/media/video-no-audio-expected.txt: Removed.
  • platform/mac/media/video-no-audio-expected.txt: Removed.
  • platform/win/media/video-no-audio-expected.txt: Removed.
  • platform/wincairo/media/video-no-audio-expected.txt: Removed.
  • media/video-play-audio-require-user-gesture.html: Removed.
  • media/video-play-audio-require-user-gesture-expected.txt: Removed.
  • media/video-play-require-user-gesture.html: Removed.
  • media/video-play-require-user-gesture-expected.txt: Removed.
  • media/video-trackmenu-selection.html: Removed.
  • media/video-trackmenu-selection-expected.txt: Removed.
  • media/video-volume-slider.html: Removed.
  • platform/gtk/media/video-volume-slider-expected.txt: Removed.
  • platform/ios/media/video-volume-slider-expected.txt: Removed.
  • platform/mac-catalina/media/video-volume-slider-expected.txt: Removed.
  • platform/mac-mojave/media/video-volume-slider-expected.txt: Removed.
  • platform/mac/media/video-volume-slider-expected.txt: Removed.
  • platform/win/media/video-volume-slider-expected.txt: Removed.
  • platform/wincairo/media/video-volume-slider-expected.txt: Removed.
  • media/video-volume-slider-drag.html: Removed.
  • media/video-volume-slider-drag-expected.txt: Removed.
  • media/video-zoom-controls.html: Removed.
  • platform/gtk/media/video-zoom-controls-expected.txt: Removed.
  • platform/ios/media/video-zoom-controls-expected.txt: Removed.
  • platform/mac/media/video-zoom-controls-expected.txt: Removed.
  • platform/win/media/video-zoom-controls-expected.txt: Removed.
  • platform/wincairo/media/video-zoom-controls-expected.txt: Removed.
  • media/volume-bar-empty-when-muted.html: Removed.
  • media/volume-bar-empty-when-muted-expected.txt: Removed.
  • platform/gtk/media/volume-bar-empty-when-muted-expected.txt: Removed.
  • platform/mac/media/volume-bar-empty-when-muted-expected.txt: Removed.
  • platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container.html: Removed.
  • platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt: Removed.
  • platform/mac/media/video-layer-crash-expected.txt:
  • TestExpectations:
  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/gtk-wayland/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios-device/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ipad/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wincairo-wk1/TestExpectations:
  • platform/wpe/TestExpectations:
3:17 PM Changeset in webkit [274809] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.7.1

Tag Safari-612.1.7.1.

3:09 PM Changeset in webkit [274808] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Reduce number of heap allocations on the audio thread in AudioSampleDataSource
https://bugs.webkit.org/show_bug.cgi?id=223549

Reviewed by Darin Adler.

Reduce number of heap allocations on the audio thread in AudioSampleDataSource
for performance reasons. I got rid of the heap allocations that I could easily
address. Some trickier ones remain.

  • platform/audio/cocoa/AudioSampleDataSource.h:

(WebCore::AudioSampleDataSource::inputDescription const):

  • Use Optional<> type for m_inputDescription & m_outputDescription data members instead of

std::unique_ptr<> so that we can initialize them without heap allocation.

  • Use UniqueRef<> instead of std::unique_ptr<> for m_ringBuffer now that it gets initialized in the constructor (on the main thread).
  • platform/audio/cocoa/AudioSampleDataSource.mm:

(WebCore::AudioSampleDataSource::AudioSampleDataSource):
Initialize m_ringBuffer in the constructor which runs on the main thread, instead of
doing it lazily later on, on the audio rendering thread.

(WebCore::AudioSampleDataSource::~AudioSampleDataSource):
Stop nulling data members out unnecessarily in the destructor.

(WebCore::AudioSampleDataSource::setInputFormat):
Initialize m_inputDescription without doing a heap allocation.

(WebCore::AudioSampleDataSource::setOutputFormat):

  • Initialize m_outputDescription without doing a heap allocation.
  • Drop initialization of m_ringBuffer now that it is done eagerly in the constructor.
  • Drop RunLoop::main().dispatch() just to do logging since this was causing heap allocations.

(WebCore::AudioSampleDataSource::pushSamplesInternal):
(WebCore::AudioSampleDataSource::pushSamples):
(WebCore::AudioSampleDataSource::pullSamplesInternal):
(WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks):
(WebCore::AudioSampleDataSource::pullSamples):
Drop null checks for m_ringBuffer now that it is initialized eagerly in the constructor
and thus can never be null.

3:08 PM Changeset in webkit [274807] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Fix incorrect fallback values in PlaybackSessionModelMediaElement after r274249
https://bugs.webkit.org/show_bug.cgi?id=223584

Reviewed by Eric Carlson.

These values were something I was experimenting with as a way of knowing "has this ever
been changed", but as it turned out there were other ways of achieving this and/or it was
unnecessary to do so.

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::defaultPlaybackRate const):
(WebCore::PlaybackSessionModelMediaElement::playbackRate const):

3:06 PM Changeset in webkit [274806] by msaboff@apple.com
  • 6 edits
    1 add in trunk

[YARR] Interpreter incorrectly matches non-BMP characters with multiple .
https://bugs.webkit.org/show_bug.cgi?id=223498

Reviewed by Yusuke Suzuki.

JSTests:

New test.

  • stress/regexp-dot-match-nonBMP.js: Added.

(shouldMatch):
(shouldntMatch):

Source/JavaScriptCore:

We need to check that we read an actual character before seeing if it is part of a character class.
In the case where we are checking that a character is not in a character class, like .,
the failed to read result from input.readChecked(), -1, is not part of the newline character class.
This will allow regular expressions that require more than the number of characters in a string
to match.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::checkCharacterClass):

LayoutTests:

Updated test.

  • fast/forms/ValidityState-patternMismatch-expected.txt:
  • fast/forms/ValidityState-patternMismatch.html:
3:05 PM Changeset in webkit [274805] by Cameron McCormack
  • 2 edits in trunk/Tools

Restore my committer status.
https://bugs.webkit.org/show_bug.cgi?id=223600

Per email sent to webkit-committers@.

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/contributors.json:
3:00 PM Changeset in webkit [274804] by Ruben Turcios
  • 8 edits in branches/safari-612.1.7-branch/Source

Versioning.

WebKit-7612.1.7.1

2:54 PM Changeset in webkit [274803] by Chris Gambrell
  • 6 edits
    6 adds
    6 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/multipart convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223475
<rdar://problem/75587716>

Reviewed by Jonathan Bedard.

  • TestExpectations:
  • http/tests/multipart/load-last-non-html-frame.php: Removed.
  • http/tests/multipart/load-last-non-html-frame.py: Added.
  • http/tests/multipart/multipart-html.php: Removed.
  • http/tests/multipart/multipart-html.py: Added.
  • http/tests/multipart/multipart-replace-non-html-content.php: Removed.
  • http/tests/multipart/multipart-replace-non-html-content.py: Added.
  • http/tests/multipart/multipart-wait-before-boundary.html:
  • http/tests/multipart/policy-ignore-crash.php: Removed.
  • http/tests/multipart/policy-ignore-crash.py: Added.
  • http/tests/multipart/resources/multipart-nodashes.php: Removed.
  • http/tests/multipart/resources/multipart-nodashes.py: Added.
  • http/tests/multipart/resources/multipart-wait-before-boundary.php: Removed.
  • http/tests/multipart/resources/multipart-wait-before-boundary.py: Added.

(sendHeader):

  • http/tests/multipart/win-boundary-crash.html:
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
2:47 PM Changeset in webkit [274802] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Always perform image decoding in the web content process.
https://bugs.webkit.org/show_bug.cgi?id=223290
<rdar://problem/75559243>

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

No change in externally observable behaviour.

  • Modules/mediasession/MediaMetadata.cpp:

(WebCore::ArtworkImageLoader::notifyFinished): We decode the image into a BitmapImage and handle all potential failures getting there.

  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo): remove FIXME comment.

2:34 PM Changeset in webkit [274801] by Chris Gambrell
  • 22 edits
    8 adds
    8 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/privateClickMeasurement convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223575
<rdar://problem/75691545>

Reviewed by Alex Christensen.

  • http/tests/contentextensions/block-private-click-measurement-expected.txt:
  • http/tests/contentextensions/block-private-click-measurement.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-cross-site-image-redirect.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-fetch-keepalive.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-with-priority.html:
  • http/tests/privateClickMeasurement/attribution-conversion-through-image-redirect-without-priority.html:
  • http/tests/privateClickMeasurement/clear-through-website-data-removal.html:
  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html:
  • http/tests/privateClickMeasurement/expired-ad-click-gets-removed-on-session-start.html:
  • http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt:
  • http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html:
  • http/tests/privateClickMeasurement/expired-attributions-removed.html:
  • http/tests/privateClickMeasurement/resources/conversionFilePath.php: Removed.
  • http/tests/privateClickMeasurement/resources/conversionFilePath.py: Added.
  • http/tests/privateClickMeasurement/resources/conversionReport.php: Removed.
  • http/tests/privateClickMeasurement/resources/conversionReport.py: Added.
  • http/tests/privateClickMeasurement/resources/convertAndPostMessageBack.html:
  • http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.php: Removed.
  • http/tests/privateClickMeasurement/resources/fraudPreventionTestURL.py: Added.
  • http/tests/privateClickMeasurement/resources/getConversionData.php: Removed.
  • http/tests/privateClickMeasurement/resources/getConversionData.py: Added.
  • http/tests/privateClickMeasurement/resources/getTokenSigningData.php: Removed.
  • http/tests/privateClickMeasurement/resources/getTokenSigningData.py: Added.
  • http/tests/privateClickMeasurement/resources/redirectToConversion.php: Removed.
  • http/tests/privateClickMeasurement/resources/redirectToConversion.py: Added.
  • http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.php: Removed.
  • http/tests/privateClickMeasurement/resources/redirectToConversionOnIPAddress.py: Added.
  • http/tests/privateClickMeasurement/resources/tokenSigningFilePath.php: Removed.
  • http/tests/privateClickMeasurement/resources/tokenSigningFilePath.py: Added.
  • http/tests/privateClickMeasurement/second-attribution-converted-with-higher-priority.html:
  • http/tests/privateClickMeasurement/second-attribution-converted-with-lower-priority.html:
  • http/tests/privateClickMeasurement/second-conversion-with-higher-priority.html:
  • http/tests/privateClickMeasurement/second-conversion-with-lower-priority.html:
  • http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt:
  • http/tests/privateClickMeasurement/send-attribution-conversion-request.html:
  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt:
  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:
2:23 PM Changeset in webkit [274800] by Dewei Zhu
  • 54 edits
    1 move in trunk/Websites/perf.webkit.org

[perf dashboard] Remove non-inclusive words from perf dashboard.
https://bugs.webkit.org/show_bug.cgi?id=223505

Reviewed by Ryosuke Niwa.

Removed most of non-inclusive terminology and replaced it with 'worker'.
Make impacted APIs backward compatible during transition.
The non-inclusive terminology will be removed after transition.

  • ReadMe.md: Removed non-inclusive words.
  • init-database.sql: Rename tables with non-inclusive words.
  • migrate-database.sql: Added migration SQL for existing database.
  • public/admin/build-workers.php: Renamed from Websites/perf.webkit.org/public/admin/build-slaves.php.
  • public/api/build-requests.php:
  • public/api/measurement-set.php:
  • public/api/report-commits.php:
  • public/api/runs.php:
  • public/api/update-triggerable.php:
  • public/api/upload-root.php:
  • public/include/admin-header.php:
  • public/include/json-header.php:
  • public/include/report-processor.php:
  • public/privileged-api/add-build-requests.php:
  • public/privileged-api/create-analysis-task.php:
  • public/privileged-api/create-test-group.php:
  • public/privileged-api/update-test-group.php:
  • public/v2/js/ember.js:
  • server-tests/api-build-requests-tests.js:
  • server-tests/api-commits-tests.js:
  • server-tests/api-report-commits-tests.js:
  • server-tests/api-report-tests.js:

(emptyReport):
(reportWitMismatchingCommitTime):
(reportWithOneSecondCommitTimeDifference):
(emptyWorkerReport):
(emptySlaveReport): Deleted.

  • server-tests/api-test-groups.js:
  • server-tests/api-update-triggerable-tests.js:

(updateWithOSXRepositoryGroup):
(updateWithMacWebKitRepositoryGroups):

  • server-tests/api-upload-root-tests.js:

(makeReport):
(addWorkerAndCreateRootFile):

  • server-tests/privileged-api-add-build-requests-tests.js:

(async createAnalysisTask):
(async addTriggerableAndCreateTask):

  • server-tests/privileged-api-create-analysis-task-tests.js:
  • server-tests/privileged-api-create-test-group-tests.js:

(createAnalysisTask):

  • server-tests/privileged-api-update-test-group-tests.js:

(async createAnalysisTask):
(async addTriggerableAndCreateTask):

  • server-tests/resources/common-operations.js:
  • server-tests/resources/mock-data.js:

(MockData.addMockConfiguration):
(MockData.set mockTestSyncConfigWithSingleBuilder):
(MockData.sampleBuildData):

  • server-tests/resources/test-server.js:

(TestServer.prototype.testConfig):

  • server-tests/tools-buildbot-triggerable-tests.js:
  • server-tests/tools-os-build-fetcher-tests.js:
  • server-tests/tools-sync-buildbot-integration-tests.js:

(createTriggerable):

  • tools/detect-changes.js:

(loadServerConfig):

  • tools/js/buildbot-syncer.js:

(BuildbotBuildEntry.prototype.buildTag):
(BuildbotSyncer):
(BuildbotSyncer.prototype.scheduleRequest):
(BuildbotSyncer.prototype.scheduleRequestInGroupIfAvailable):
(BuildbotSyncer.prototype.pullBuildbot):
(BuildbotSyncer._loadConfig):
(BuildbotSyncer._validateAndMergeConfig):
(BuildbotBuildEntry.prototype.slaveName): Deleted.

  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable):
(BuildbotTriggerable.prototype.updateTriggerable):
(BuildbotTriggerable.prototype.async syncOnce):
(BuildbotTriggerable.prototype.async _scheduleRequest):
(BuildbotTriggerable.prototype._scheduleRequestIfWorkerIsAvailable):
(BuildbotTriggerable.prototype._scheduleRequestWithLog):
(BuildbotTriggerable._testGroupMapForBuildRequests):
(BuildbotTriggerable.prototype._scheduleRequestIfSlaveIsAvailable): Deleted.

  • tools/js/database.js:
  • tools/js/os-build-fetcher.js:

(prototype.async _reportCommits):

  • tools/js/privileged-api.js:

(NodePrivilegedAPI.prototype.sendRequest):
(NodePrivilegedAPI.configure):
(NodePrivilegedAPI):

  • tools/pull-os-versions.py:

(OSBuildFetcher.fetch_and_report_new_builds):

  • tools/run-analysis.js:

(async analysisLoop):

  • tools/sync-buildbot.js:

(syncLoop.const.makeTriggerable):
(syncLoop):

  • tools/sync-commits.py:

(Repository.fetch_commits_and_submit):

  • tools/sync-os-versions.js:

(syncLoop):

  • tools/util.py:

(submit_commits):

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

(sampleiOSConfig):
(sampleBuildData):
(async const):

  • unit-tests/checkconfig.js:
  • unit-tests/measurement-set-analyzer-tests.js:
  • unit-tests/privileged-api-tests.js:
  • unit-tests/retry-failed-build-requests-tests.js:
  • unit-tests/test-groups-tests.js:
2:23 PM Changeset in webkit [274799] by Dewei Zhu
  • 2 edits in trunk/Websites/perf.webkit.org

[perf dashboard] Perf dashboard should be compatible with newer version of postgres.
https://bugs.webkit.org/show_bug.cgi?id=223567

Reviewed by Ryosuke Niwa.

Newer version of postgres requires explicit ROW expression while updating a single column
using multi-column update syntax. However, 'ROW' is not supported in postgres < 10. In order
to keep compatibility, using a separate query when only updating one row.

  • public/include/db.php: Use 'column = value' when there is only one column to update.
2:21 PM Changeset in webkit [274798] by dino@apple.com
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Metal-Angle on Simulator does not support D24S8 correctly
https://bugs.webkit.org/show_bug.cgi?id=223494

Patch by Kyle Piddington <Kyle Piddington> on 2021-03-19
Reviewed by Dean Jackson.

Re-ran autogen script for format table to add the missing format
Corrected texture swizzle support. Swizzle is unsupported on simulator.

  • src/libANGLE/renderer/metal/mtl_format_table_autogen.mm:

(rx::mtl::Format::init):

2:11 PM Changeset in webkit [274797] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.2-branch/Source

Versioning.

WebKit-7611.1.21.2.4

1:58 PM Changeset in webkit [274796] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

[iOS] Composition text is not initially highlighted when typing in text fields using Pinyin keyboard
https://bugs.webkit.org/show_bug.cgi?id=223563
<rdar://problem/75564516>

Reviewed by Antti Koivisto.

Source/WebCore:

When enabling line layout integration, composition highlights on iOS don't appear when typing an input string
using the Pinyin keyboard for the first time. This is because the text renderer for the inserted composition
text does not contain inline text boxes when painting the composition text on iOS, so the marked text painting
codepath is never triggered.

On macOS, this isn't an issue because the process of setting the composition changes the selection, which then
changes the highlight state of the RenderText, which subsequently calls into ensureLineBoxes(). However,
since selections are drawn using UIKit in the UI process on iOS, we don't end up ensuring that inline text boxes
are constructed for the inserted text.

To address this, we follow macOS behavior by ensuring line box construction on the rendered composition text
when setting the composition.

Test: editing/input/composition-underline-in-search-field.html

  • editing/Editor.cpp:

(WebCore::Editor::setComposition):

LayoutTests:

Add a test to verify that marked text underlines show up in search fields.

  • editing/input/composition-underline-in-search-field-expected-mismatch.html: Added.
  • editing/input/composition-underline-in-search-field.html: Added.
1:53 PM Changeset in webkit [274795] by Russell Epstein
  • 13 edits in branches/safari-611.1.21.0-branch/Source

Cherry-pick r274746. rdar://problem/75706601

Cannot login to microsoftonline.com without allowing storage access
https://bugs.webkit.org/show_bug.cgi?id=223510
<rdar://problem/75619058>

Reviewed by John Wilander.

Source/WebCore:

This patch introduces two changes:

  1. Activate the storage access quirks for default browsers only. This is the main place we test them, and can lead to unexpected behavior in apps otherwise.
  1. Doesn't cancel the click even if the user denies storage access. Previously we we were not allowing the click because it produces unexpected behavior. But, sites like login.microsoftonline.com are used by multiple Microsoft login flows. Since only a subset require storage access, canceling the click across the board could be considered regressing behavior.

Since storage access data is stored in the network process, we
currently cancel the user's click on quirked sites while we wait
asyncronously for the IPC response. If the user grants storage access,
we store this in the web content process and dispatch a synthetic
click. In this case, when the click triggers another storage access
check, we can allow the click because we no longer need to wait for
information from the network process.

We need some heuristic in the web content process to handle the case
of the user denying storage access to know whether to allow a
synthetic click to happen. This patch introduces
hasDeniedCrossPageStorageAccess which stores domains in the web
content process which have been denied storage access via quirk. If
a user has previously denied storage access in that web content
process, we don't prompt again. A new web content process will give them
another opportunity to allow/deny storage access.

  • dom/Element.cpp: (WebCore::Element::dispatchMouseEvent):
  • loader/FrameLoaderClient.h: Add a client function to check if the parent process is a full web browser, and pass this to the place we apply the quirks.
  • loader/ResourceLoadObserver.h: (WebCore::ResourceLoadObserver::setHasDeniedCrossPageStorageAccess): (WebCore::ResourceLoadObserver::hasDeniedCrossPageStorageAccess const):
  • page/Quirks.cpp: (WebCore::hasDeniedCrossPageStorageAccess): (WebCore::Quirks::requestStorageAccessAndHandleClick const): (WebCore::Quirks::triggerOptionalStorageAccessQuirk const):
  • page/Quirks.h:

Source/WebKit:

Disable the storage access quirk for non-default web browsers and
don't cancel the login click on sites even if the user denies storage
access. See WebCore changelog for more details.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::isParentProcessAFullWebBrowser const):
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp: (WebKit::WebResourceLoadObserver::hasDeniedCrossPageStorageAccess const): (WebKit::WebResourceLoadObserver::setHasDeniedCrossPageStorageAccess):
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::pageIsParentProcessAFullWebBrowser): (WebKit::WebPage::updatePreferences):
  • WebProcess/WebPage/WebPage.h:

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

1:51 PM Changeset in webkit [274794] by Chris Dumez
  • 6 edits in trunk

imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/nan-param.html is failing
https://bugs.webkit.org/show_bug.cgi?id=223583

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline test that is now passing.

  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/nan-param-expected.txt:

Source/WebCore:

As per https://webaudio.github.io/web-audio-api/#computation-of-value, we should replace NaN values with
the default value, when computing the value for an AudioParam.

No new tests, rebaselined existing test.

  • Modules/webaudio/AudioParam.cpp:

(WebCore::replaceNaNValues):
(WebCore::AudioParam::calculateFinalValues):

LayoutTests:

Unskip test that should no longer be flaky.

1:51 PM Changeset in webkit [274793] by commit-queue@webkit.org
  • 27 edits
    2 adds in trunk

[css-contain] Parse CSS contain property
https://bugs.webkit.org/show_bug.cgi?id=223252

Patch by Rob Buis <rbuis@igalia.com> on 2021-03-22
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Adjust test expectations.

  • web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
  • web-platform-tests/css/css-contain/content-visibility/content-visibility-026-expected.txt:
  • web-platform-tests/css/css-contain/inheritance-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt:
  • web-platform-tests/css/css-contain/parsing/contain-valid-expected.txt:
  • web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:

Source/WebCore:

Parse CSS contain property according to the specification [1].
This patch also adds the experimental feature CSSContainment and
makes contain invisible from style when disabled.

[1] https://drafts.csswg.org/css-contain-1/#contain-property

Test: fast/css/contain-invalidate-if-disabled.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/parser/CSSParserContext.cpp:

(WebCore::operator==):
(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeContain):
(WebCore::CSSPropertyParser::parseSingleValue):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::contain const):
(WebCore::RenderStyle::setContain):
(WebCore::RenderStyle::initialContainment):
(WebCore::RenderStyle::strictContainment):
(WebCore::RenderStyle::contentContainment):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):

  • rendering/style/StyleRareNonInheritedData.h:
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialContain):
(WebCore::Style::BuilderCustom::applyInheritContain):
(WebCore::Style::BuilderCustom::applyValueContain):

Source/WTF:

Add experimental feature flag.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Tools:

Add support for disabling aspect-ratio in win wk1.

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

LayoutTests:

Add test to verify that contain is invisible from style when disabled.

  • fast/css/contain-invalidate-if-disabled-expected.txt: Added.
  • fast/css/contain-invalidate-if-disabled.html: Added.
  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
1:47 PM Changeset in webkit [274792] by Russell Epstein
  • 8 edits in branches/safari-611.1.21.0-branch/Source

Versioning.

WebKit-7611.1.21.0.10

1:38 PM Changeset in webkit [274791] by Fujii Hironori
  • 9 edits in trunk/Source

[WinCairo] ASSERTION FAILED: isMainThread() in GPU process for some canvas/philip/tests tests
https://bugs.webkit.org/show_bug.cgi?id=223500

Reviewed by Alex Christensen.

Source/WebCore:

Added a new member of FontPlatformData::CreationData to
FontCustomPlatformData struct to transfer custom fonts to GPU
process for WinCairo port.

  • PlatformWin.cmake:
  • platform/graphics/FontPlatformData.h:
  • platform/graphics/win/FontCustomPlatformData.cpp:

(WebCore::createFontCustomPlatformData):

  • platform/graphics/win/FontCustomPlatformData.h:

(WebCore::FontCustomPlatformData::FontCustomPlatformData):

  • platform/graphics/win/FontCustomPlatformDataCairo.cpp:

(WebCore::FontCustomPlatformData::fontPlatformData):
(WebCore::createFontCustomPlatformData):

  • platform/graphics/win/FontPlatformDataCairoWin.cpp:

(WebCore::FontPlatformData::FontPlatformData):

Source/WebKit:

In WinCairo GPU process mode, WebCore::Font IPC decoder was using
FontCache::fontForFamily that should be called only in the main
thread. However, It is was called in IPC thread. Reimplemented the
decoder without using FontCache::fontForFamily.

Encode LOGFONT for WebCore::Font, and decode it and create a font
directly from it.

This change also encodes and decodes the
FontPlatformData::CreationData of custom fonts. However, custom
fonts still don't work in GPU process mode because
FontCustomPlatformData is destructed soon. In non-GPU process
mode, FontCustomPlatformData is retained by CachedFont. In GPU
process mode, fontReference of FontCustomPlatformData should be
refcounted and retained by WebCore::Font.

  • Shared/win/WebCoreArgumentCodersWin.cpp:

(IPC::ArgumentCoder<LOGFONT>::encode):
(IPC::ArgumentCoder<LOGFONT>::decode):
(IPC::ArgumentCoder<Ref<Font>>::encodePlatformData):
(IPC::ArgumentCoder<Ref<Font>>::decodePlatformData):

1:32 PM Changeset in webkit [274790] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Allow additional fcntl
https://bugs.webkit.org/show_bug.cgi?id=223590
<rdar://problem/75702241>

Reviewed by Brent Fulgham.

An additional fcntl is being used and should be allowed.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
1:30 PM Changeset in webkit [274789] by youenn@apple.com
  • 7 edits in trunk/Source

RealtimeMediaSource does not need to be a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=223573
<rdar://75583258>

Reviewed by Eric Carlson.

Source/WebCore:

Remove use of WeakPtr and ref the source instead.
Covered by existing tests.

  • platform/mediastream/RealtimeIncomingAudioSource.cpp:

(WebCore::RealtimeIncomingAudioSource::OnChanged):

  • platform/mediastream/RealtimeIncomingVideoSource.cpp:

(WebCore::RealtimeIncomingVideoSource::OnChanged):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::updateHasStartedProducingData):

  • platform/mediastream/RealtimeMediaSource.h:

Source/WebKit:

  • UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:
1:30 PM Changeset in webkit [274788] by Ross Kirsling
  • 8 edits in trunk/Source

Unreviewed, fix Mac and non-unified JSCOnly builds
https://bugs.webkit.org/show_bug.cgi?id=223546

Source/JavaScriptCore:

  • wasm/WasmGlobal.h:
  • wasm/WasmTable.h:
  • wasm/js/JSWebAssemblyCompileError.cpp:
  • wasm/js/JSWebAssemblyLinkError.cpp:
  • wasm/js/JSWebAssemblyRuntimeError.cpp:

Add missing includes for non-unified JSC build.

Source/WTF:

  • wtf/PlatformJSCOnly.cmake:

Add missing file for JSCOnly build on Mac.

1:22 PM Changeset in webkit [274787] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GStreamer] gst_audio_format_fill_silence() is deprecated in GStreamer 1.20
https://bugs.webkit.org/show_bug.cgi?id=223562

Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-22
Reviewed by Xabier Rodriguez-Calvar.

Fix GStreamer deprecation warnings.

  • platform/graphics/gstreamer/GStreamerCommon.h:
  • platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp:

(WebCore::MockRealtimeAudioSourceGStreamer::render):

  • platform/mediastream/gstreamer/RealtimeIncomingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeIncomingAudioSourceLibWebRTC::OnData):

  • platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.cpp:

(WebCore::RealtimeOutgoingAudioSourceLibWebRTC::pullAudioData):

1:15 PM Changeset in webkit [274786] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2681:9: runtime error: load of value nnn, which is not a valid value for type 'BOOL' (aka 'signed char')
https://bugs.webkit.org/show_bug.cgi?id=223581

Reviewed by Simon Fraser.

The code was implicitly casting an uint64_t identifier into a BOOL variable. The intention was
to check whether the identifier is 0 or not. To silence the UBSAN error, we now use the bool
type instead of BOOL (since BOOL is defined as a signed char on some platforms).

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::pluginFocusOrWindowFocusChanged):

1:12 PM Changeset in webkit [274785] by Lauro Moura
  • 4 edits in trunk/LayoutTests

Gardening some passing tests

Unreviewed test gardening.

  • TestExpectations:
  • platform/glib/TestExpectations:
  • platform/wpe/TestExpectations:
1:07 PM Changeset in webkit [274784] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Intl.Locale should not assume is8Bit
https://bugs.webkit.org/show_bug.cgi?id=223553

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-locale-non-8bit.js: Added.

(shouldBe):

Source/JavaScriptCore:

is8Bit or not is not guaranteed if it is an user-input. For example, "test日本語".substring(0, 3) should be non 8Bit string.
Intl.Locale has several places that assumed that input should be 8Bit if they are ASCII. This patch fixes it.

  • runtime/IntlLocale.cpp:

(JSC::LocaleIDBuilder::overrideLanguageScriptRegion):
(JSC::LocaleIDBuilder::setKeywordValue):

12:55 PM Changeset in webkit [274783] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.7

Tag Safari-612.1.7.

12:55 PM Changeset in webkit [274782] by Chris Dumez
  • 3 edits
    1 add in trunk/LayoutTests

Unreviewed, unskip audioworkletprocessor-param-getter-overridden.https.html WPT test as it is no longer failing.

LayoutTests/imported/w3c:

  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-param-getter-overridden.https-expected.txt: Added.

LayoutTests:

12:54 PM Changeset in webkit [274781] by Ruben Turcios
  • 1 delete in tags/Safari-612.1.7

Delete tag.

12:53 PM WebKitGTK/2.32.x edited by clopez@igalia.com
(diff)
12:51 PM WebKitGTK/2.32.x edited by clopez@igalia.com
(diff)
12:46 PM Changeset in webkit [274780] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.7

Tag Safari-612.1.7.

12:42 PM Changeset in webkit [274779] by Ruben Turcios
  • 1 delete in tags/Safari-612.1.7

Delete tag.

12:42 PM Changeset in webkit [274778] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Async Clipboard read prevents WebRTC IOSurfaces from being released
https://bugs.webkit.org/show_bug.cgi?id=223489
<rdar://problem/75601433>

Reviewed by Eric Carlson.

Instead of dispatching a task to main thread, the task refing a MediaSample,
we store the MediaSample in MediaPlayerPrivateMediaStreamAVFObjC on the background thread and
access it on main thread with a lock.
This ensures that we do not keep more than one media sample per MediaPlayerPrivateMediaStreamAVFObjC, even if main thread is blocked.
Make sure to reset the video transformation according hasChangedOrientation even if there is no media sample available anymore.
Covered by existing tests.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSample):

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

Fix typo introduced in r274586 and revert fix from r274667 to get around compilation error following typo.
https://bugs.webkit.org/show_bug.cgi?id=223554

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

No test needed.

  • testing/Internals.cpp:

(WebCore::Internals::loadArtworkImage):

12:35 PM Changeset in webkit [274776] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Better validate JSArrays in AudioWorkletProcessor
https://bugs.webkit.org/show_bug.cgi?id=223548

Reviewed by Geoffrey Garen.

Better validate JSArrays in AudioWorkletProcessor. Replaces debug assertions with runtime
checks for robustness.

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::copyDataFromBusesToJSArray):
(WebCore::copyDataFromParameterMapToJSObject):
(WebCore::zeroJSArray):
(WebCore::AudioWorkletProcessor::buildJSArguments):

12:34 PM Changeset in webkit [274775] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.7

Tag Safari-612.1.7.

12:29 PM Changeset in webkit [274774] by Alan Bujtas
  • 5 edits in trunk

[ macOS debug arm64 ] ASSERTION FAILED: count >= 1 ./rendering/RenderMultiColumnSet.cpp(450) : unsigned int WebCore::RenderMultiColumnSet::columnCount() const
https://bugs.webkit.org/show_bug.cgi?id=223144
<rdar://problem/75381496>

Reviewed by Simon Fraser.

Source/WebCore:

Overflow height computation with infinite constraint should not produce a negative height value.
During the column balancing, we use the "max layout unit" value to indicate infinite available space.
However this max value confuses the height computation in expandToEncompassFragmentedFlowContentsIfNeeded and produces a negative height value.

Let's also ensure that we never trigger undefined behavior as the result of implicitly converting (negative)float to unsigned.

  • rendering/RenderFragmentContainerSet.cpp:

(WebCore::RenderFragmentContainerSet::expandToEncompassFragmentedFlowContentsIfNeeded):

  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::updateFragmentsFragmentedFlowPortionRect):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::columnCount const):

LayoutTests:

  • platform/mac/TestExpectations:
12:25 PM Changeset in webkit [274773] by Chris Dumez
  • 10 edits in trunk

Implement AbortSignal.abort()
https://bugs.webkit.org/show_bug.cgi?id=223071
<rdar://problem/75575483>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Resync WPT test from upstream a8cbe9c712ad032d36 to gain test coverage.

  • web-platform-tests/dom/abort/event.any-expected.txt:
  • web-platform-tests/dom/abort/event.any.js:
  • web-platform-tests/dom/abort/event.any.worker-expected.txt:

Source/WebCore:

Implement AbortSignal.abort() which creates and returns an already aborted AbortSignal:

No new tests, covered by updated test.

  • dom/AbortSignal.cpp:

(WebCore::AbortSignal::createAborted):
(WebCore::AbortSignal::AbortSignal):

  • dom/AbortSignal.h:
  • dom/AbortSignal.idl:
12:06 PM Changeset in webkit [274772] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

[macOS] Context menu should account for image overlay content
https://bugs.webkit.org/show_bug.cgi?id=223518
<rdar://problem/75505210>

Reviewed by Devin Rousso.

Source/WebCore:

Make some adjustments to allow context menu items for text selection to show up when right clicking on text in
an image overlay.

Test: fast/images/image-extraction/mac/copy-image-overlay-text-with-context-menu.html

  • editing/Editor.cpp:

(WebCore::Editor::performCutOrCopy):

Adjust this logic so that we only attempt to write plain text to the system pasteboard when copying text inside
image overlays (this matches the behavior of copying selected text in textarea elements and text fields).

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::hasImageOverlay const):
(WebCore::imageOverlayHost):
(WebCore::HTMLElement::isInsideImageOverlay):

Add a helper function to determine whether or not a given range in the DOM is inside an image overlay shadow
root. To avoid code duplication, pull out some logic to grab the image overlay's element host (if it exists) out
into a separate static helper function (imageOverlayHost), and use it here and also in isImageOverlayText.

(WebCore::HTMLElement::isImageOverlayText):

Move the UA shadow root check into HTMLElement::hasImageOverlay, so that hasImageOverlay can be invoked for
elements with non-UA shadow roots without hitting an assertion.

  • html/HTMLElement.h:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

Pull logic that determines whether or not we should show text-selection-related context menu items out into a
separate lambda function, so that it's easier to take advantage of early returns; then, in the case where we
have an image URL, additionally show selected text options if the selection is inside the image overlay.

LayoutTests:

Add a layout test to exercise copying via the context menu.

  • fast/images/image-extraction/mac/copy-image-overlay-text-with-context-menu-expected.txt: Added.
  • fast/images/image-extraction/mac/copy-image-overlay-text-with-context-menu.html: Added.
12:02 PM Changeset in webkit [274771] by Jonathan Bedard
  • 5 edits in trunk/Tools

[webkitscmpy] Allow user to force canonicalization for a specific set of commits
https://bugs.webkit.org/show_bug.cgi?id=223579
<rdar://problem/75693154>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/init.py:

(Canonicalize.parser): Add --number argument.
(Canonicalize.main): Use --number to set the number of commits to be canonicalized.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:

(TestCanonicalize.test_number):

12:01 PM Changeset in webkit [274770] by weinig@apple.com
  • 54 edits in trunk/Source

Use the PropertyName parameter passed to custom getters/setters rather than a redundant const char* in DOM attribute prologues
https://bugs.webkit.org/show_bug.cgi?id=223542

Reviewed by Alexey Shvayka.

Source/JavaScriptCore:

Add throwVMDOMAttributeSetterTypeError to match existing throwVMDOMAttributeGetterTypeError and move
additional helpers used by WebCore here to avoid redundant work.

Removes some now unused functions.

  • runtime/Error.cpp:

(JSC::createGetterTypeError):
(JSC::makeDOMAttributeGetterTypeErrorMessage):
(JSC::makeDOMAttributeSetterTypeErrorMessage):
(JSC::throwDOMAttributeGetterTypeError):
(JSC::throwDOMAttributeSetterTypeError):
(JSC::throwGetterTypeError): Deleted.

  • runtime/Error.h:

(JSC::throwVMRangeError):
(JSC::throwVMDOMAttributeSetterTypeError):
(JSC::throwVMGetterTypeError): Deleted.

Source/WebCore:

Use the PropertyName parameter passed to custom getters/setters rather than a
redundant const char* in DOM attribute prologues. This will allow us to share
IDLAttribute prologue implementations in cases where the same bound function
should be called for multiple attributes, as will be the case for CSSStyleDeclaration.

Also took the opertunity to do some cleanup

  • Made CastedThisErrorBehavior conditions use if constexpr to ensure the non-requested cases are compiled out, even in debug builds.
  • Moves all attribute Getter/Setter TypeError related functions to JSC, where there were already some, to remove duplication of strings and prepare for hoisting setter prologues in the future (as is already done for getters).
  • Remove AttributeSetter::call as it was redundant with invokeFunctorPropagatingExceptionIfNecessary.
  • bindings/js/JSDOMAttribute.h:

(WebCore::IDLAttribute::set):
(WebCore::IDLAttribute::setStatic):
(WebCore::IDLAttribute::get):
(WebCore::IDLAttribute::getStatic):
(WebCore::AttributeSetter::call): Deleted.

  • bindings/js/JSDOMExceptionHandling.cpp:

(WebCore::rejectPromiseWithGetterTypeError):
(WebCore::makeGetterTypeErrorMessage): Deleted.
(WebCore::throwGetterTypeError): Deleted.
(WebCore::throwSetterTypeError): Deleted.

  • bindings/js/JSDOMExceptionHandling.h:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSC_DEFINE_HOST_FUNCTION):

  • bindings/js/JSDOMOperation.h:

(WebCore::IDLOperation::call):

  • bindings/js/JSDOMOperationReturningPromise.h:

(WebCore::IDLOperationReturningPromise::call):
(WebCore::IDLOperationReturningPromise::callReturningOwnPromise):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeGetterTrampolineDefinition):
(GenerateAttributeSetterBodyDefinition):
(GenerateAttributeSetterTrampolineDefinition):

  • bindings/scripts/test/JS/*:

Update test results.

12:00 PM Changeset in webkit [274769] by commit-queue@webkit.org
  • 4 edits in trunk

AppleWin can't start due to "Failed to determine path to AAS directory." because iTunes changed the registry key
https://bugs.webkit.org/show_bug.cgi?id=219015

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-03-22
Reviewed by Alex Christensen.

It appears that iTunes no longer sets the Apple Application Support
Source/JavaScriptCore:

registry entry. Fall back to trying to find the iTunes installation
directory if the AAS directory is not present.

  • shell/DLLLauncherMain.cpp:

(iTunesDirectory): Added.
(modifyPath):

Tools:

registry entry. Fallback to trying to find the iTunes installation
directory if the AAS directory is not present.

  • win/DLLLauncher/DLLLauncherMain.cpp:

(iTunesDirectory): Added.
(modifyPath):

12:00 PM Changeset in webkit [274768] by Chris Gambrell
  • 17 edits
    11 adds
    10 deletes in trunk/LayoutTests

[LayoutTests] Convert http/tests/workers convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=223522
<rdar://problem/75624689>

Reviewed by Alex Christensen.

  • http/tests/workers/resources/subworker-encoded.php: Removed.
  • http/tests/workers/resources/subworker-encoded.py: Added.
  • http/tests/workers/resources/worker-encoded.php: Removed.
  • http/tests/workers/resources/worker-encoded.py: Added.
  • http/tests/workers/resources/worker-importScripts-banned-mimetype.php: Removed.
  • http/tests/workers/resources/worker-importScripts-banned-mimetype.py: Added.
  • http/tests/workers/resources/xhr-query-utf8.php: Removed.
  • http/tests/workers/resources/xhr-query-utf8.py: Added.
  • http/tests/workers/resources/xhr-response.py: Added.
  • http/tests/workers/service/basic-timeout.https-expected.txt:
  • http/tests/workers/service/controller-change.html:
  • http/tests/workers/service/page-caching.html:
  • http/tests/workers/service/registration-updateViaCache-all.html:
  • http/tests/workers/service/registration-updateViaCache-none.html:
  • http/tests/workers/service/resources/basic-timeout.js:
  • http/tests/workers/service/resources/cacheable-script-worker.php: Removed.
  • http/tests/workers/service/resources/cacheable-script-worker.py: Added.
  • http/tests/workers/service/resources/download-binary.php: Removed.
  • http/tests/workers/service/resources/download-binary.py: Added.
  • http/tests/workers/service/resources/import-cacheable-script-worker.js:
  • http/tests/workers/service/resources/self_registration_update-worker.php: Removed.
  • http/tests/workers/service/resources/self_registration_update-worker.py: Added.
  • http/tests/workers/service/resources/succeed-fallback-check.php: Removed.
  • http/tests/workers/service/resources/succeed-fallback-check.py: Added.
  • http/tests/workers/service/resources/updating-fetch-worker.php: Removed.
  • http/tests/workers/service/resources/updating-fetch-worker.py: Added.
  • http/tests/workers/service/resources/updating-worker.php: Removed.
  • http/tests/workers/service/resources/updating-worker.py: Added.
  • http/tests/workers/service/self_registration_update.html:
  • http/tests/workers/service/service-worker-download-async-delegates.https-expected.txt:
  • http/tests/workers/service/service-worker-download-async-delegates.https.html:
  • http/tests/workers/service/service-worker-download.https-expected.txt:
  • http/tests/workers/service/service-worker-download.https.html:
  • http/tests/workers/service/service-worker-registration-gc-event.html:
  • http/tests/workers/text-encoding.html:
  • http/tests/workers/worker-importScripts-banned-mimetype-expected.txt:
  • http/tests/workers/worker-importScripts-banned-mimetype.html:
11:51 AM Changeset in webkit [274767] by Chris Dumez
  • 8 edits in trunk/Source/WebCore

Avoid heap allocation under AudioNodeInput::disable() / AudioNodeInput::enable()
https://bugs.webkit.org/show_bug.cgi?id=223529

Reviewed by Eric Carlson.

Avoid heap allocation under AudioNodeInput::disable() / AudioNodeInput::enable() since those can
get called on the audio thread.

AudioNodeInput used to have a m_disabledOutputs container to keep disabled outputs separated
from enabled ones (in m_outputs). Instead, we now store all outputs in m_outputs with a 'isEnabled'
flag. As a result, we no longer need to make any heap allocations when enabling/disabling an
output, we merely need to flip a flag in m_outputs.

For convenience, since clients of rendering outputs only care about enabled outputs, I introduced
a new RenderingOutputCollection container with iterators. This way clients do not need to worry
about disabled outputs.

  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::connect):
(WebCore::AudioNodeInput::disconnect):
(WebCore::AudioNodeInput::didDisableOutput):
(WebCore::AudioNodeInput::didEnableOutput):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):

  • Modules/webaudio/AudioNodeInput.h:
  • Modules/webaudio/AudioNodeOutput.cpp:

(WebCore::AudioNodeOutput::disable):
(WebCore::AudioNodeOutput::enable):

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::calculateFinalValues):

  • Modules/webaudio/AudioSummingJunction.cpp:

(WebCore::AudioSummingJunction::numberOfConnections const):
(WebCore::AudioSummingJunction::addOutput):
(WebCore::AudioSummingJunction::removeOutput):
(WebCore::AudioSummingJunction::updateRenderingState):
(WebCore::AudioSummingJunction::maximumNumberOfChannels const):
(WebCore::AudioSummingJunction::didDisableOutput):
(WebCore::AudioSummingJunction::didEnableOutput):
(WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutput::RenderingOutput):
(WebCore::WebCore::AudioSummingJunction::RenderingOutputCollection::remove):
(WebCore::WebCore::AudioSummingJunction::RenderingOutputCollection::setEnabled):
(WebCore::WebCore::AudioSummingJunction::RenderingOutputCollection::RenderingOutputCollection):

  • Modules/webaudio/AudioSummingJunction.h:

(WebCore::AudioSummingJunction::RenderingOutputCollection::isEmpty const):
(WebCore::AudioSummingJunction::RenderingOutputCollection::size const):
(WebCore::AudioSummingJunction::RenderingOutputCollection::clear):
(WebCore::AudioSummingJunction::RenderingOutputCollection::append):
(WebCore::AudioSummingJunction::RenderingOutputCollection::ConstIterator::ConstIterator):
(WebCore::AudioSummingJunction::RenderingOutputCollection::ConstIterator::operator* const):
(WebCore::AudioSummingJunction::RenderingOutputCollection::ConstIterator::operator!= const):
(WebCore::AudioSummingJunction::RenderingOutputCollection::ConstIterator::operator++):
(WebCore::AudioSummingJunction::RenderingOutputCollection::begin const):
(WebCore::AudioSummingJunction::RenderingOutputCollection::end const):
(WebCore::AudioSummingJunction::renderingOutputs const):
(WebCore::AudioSummingJunction::isConnected const):

  • Modules/webaudio/WebKitAudioPannerNode.cpp:

(WebCore::WebKitAudioPannerNode::notifyAudioSourcesConnectedToNode):

11:47 AM Changeset in webkit [274766] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Add an early return in UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList
https://bugs.webkit.org/show_bug.cgi?id=223571

Reviewed by Eric Carlson.

Update code to early return as soon as possible.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::computeFilteredDeviceList):

11:46 AM Changeset in webkit [274765] by Russell Epstein
  • 1 copy in tags/Safari-610.4.3.0.5

Tag Safari-610.4.3.0.5.

11:45 AM Changeset in webkit [274764] by Darin Adler
  • 27 edits
    1 delete in trunk

[Cocoa] Make it possible to release a WKWebView on a non-main thread without a crash due to WKScriptMessage race
https://bugs.webkit.org/show_bug.cgi?id=222336

Reviewed by Chris Dumez.

Source/JavaScriptCore:

  • API/ObjcRuntimeExtras.h: Removed declarations of objc_initWeak and objc_destroyWeak, since

these are already in <wtf/spi/cocoa/objcSPI.h>.

Source/WebKit:

  • Platform/spi/Cocoa/objcSPI.h: Removed this unused file.
  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

(WKPageGetWebView): Use WKPageProxy::cocoaView instead of fromWebPageProxy.

  • UIProcess/API/Cocoa/WKDownload.mm:

(-[WKDownload webView]): Ditto.

  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo webView]): Ditto.

  • UIProcess/API/Cocoa/WKUserContentController.mm:

(ScriptMessageHandlerDelegate::didPostMessage): Use WKPageProxy::cocoaView
instead of fromWebPageProxy and add null checks.
(ScriptMessageHandlerDelegate::didPostMessageWithAsyncReply): Ditto.

  • UIProcess/API/Cocoa/WKWebView.mm:

(pageToViewMap): Deleted.
(fromWebPageProxy): Deleted.
(-[WKWebView _initializeWithConfiguration:]): Use WKPageProxy::setCocoaView
instead of adding the page/view pair to a map.
(-[WKWebView dealloc]): Removed code that removed the page/view pair from the map.

  • UIProcess/API/Cocoa/WKWebViewInternal.h: Removed fromWebPageProxy.
  • UIProcess/API/Cocoa/_WKDownload.mm:

(-[_WKDownload originatingWebView]): Use WKPageProxy::cocoaView instead of fromWebPageProxy.

  • UIProcess/API/Cocoa/_WKFrameTreeNode.mm:

(-[_WKFrameTreeNode webView]): Ditto.

  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector webView]): Ditto.

  • UIProcess/API/Cocoa/_WKInspectorTesting.mm:

(-[_WKInspector inspectorWebView]): Ditto.

  • UIProcess/Cocoa/AutomationSessionClient.mm:

(WebKit::AutomationSessionClient::requestSwitchToPage): Use WKPageProxy::cocoaView
instead of fromWebPageProxy and add a null check.
(WebKit::AutomationSessionClient::requestHideWindowOfPage): Ditto.
(WebKit::AutomationSessionClient::requestRestoreWindowOfPage): Ditto.
(WebKit::AutomationSessionClient::requestMaximizeWindowOfPage): Ditto.
(WebKit::AutomationSessionClient::isShowingJavaScriptDialogOnPage): Ditto.
(WebKit::AutomationSessionClient::dismissCurrentJavaScriptDialogOnPage): Ditto.
(WebKit::AutomationSessionClient::acceptCurrentJavaScriptDialogOnPage): Ditto.
(WebKit::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage): Ditto.
(WebKit::AutomationSessionClient::setUserInputForCurrentJavaScriptPromptOnPage): Ditto.
(WebKit::AutomationSessionClient::typeOfCurrentJavaScriptDialogOnPage): Ditto.
(WebKit::AutomationSessionClient::currentPresentationOfPage): Ditto.

  • UIProcess/Cocoa/MediaPermissionUtilities.mm:

(WebKit::alertForPermission): Use WKPageProxy::cocoaView instead of fromWebPageProxy.

  • UIProcess/Cocoa/SOAuthorization/PopUpSOAuthorizationSession.mm:

(WebKit::PopUpSOAuthorizationSession::abortInternal): Added a null check since
initSecretWebView is no longer guaranteed to allocate m_secretWebView in the case
where the WKWebView is nil.
(WebKit::PopUpSOAuthorizationSession::completeInternal): Ditto.
(WebKit::PopUpSOAuthorizationSession::initSecretWebView): Use WKPageProxy::cocoaView
instead of fromWebPageProxy and added a null check.

  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:

(WebKit::SOAuthorizationSession::continueStartAfterDecidePolicy): Use WKPageProxy::cocoaView
instead of fromWebPageProxy.

  • UIProcess/Cocoa/WebURLSchemeHandlerCocoa.mm:

(WebKit::WebURLSchemeHandlerCocoa::platformStartTask): Use WKPageProxy::cocoaView
instead of fromWebPageProxy and added a null check.
(WebKit::WebURLSchemeHandlerCocoa::platformStopTask): Ditto. Also call the
new suppressTaskStoppedExceptions if we are unable to call the delegate method due to
the WKWebView already being nil.

  • UIProcess/PDF/WKPDFHUDView.mm:

(-[WKPDFHUDView hitTest:]): Use WKPageProxy::cocoaView instead of fromWebPageProxy.

  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::didPerformRedirection): Don't raise the "task stopped"
exception if it has been explicitly suppressed.
(WebKit::WebURLSchemeTask::didReceiveResponse): Ditto.
(WebKit::WebURLSchemeTask::didReceiveData): Ditto.
(WebKit::WebURLSchemeTask::didComplete): Ditto.

  • UIProcess/WebURLSchemeTask.h: Added a suppressTaskStoppedExceptions function,

which we use to prevent exceptions in the case where the WKWebView was deallocated.
Since we were not able to call the delegate method in that case, the caller can't
be expected to refrain from calling methods. Eventually, clients of WKWebView could avoid this
by calling the _close method instead of relying for deallocation to do web view teardown,
but we need to promote that from SPI to API.

  • UIProcess/WebPageProxy.h: Tweaked forward declarations a bit, and added one for WKWebView.

Marked the class final and use final instead of override. Added Cocoa-only cocoaView and
setCocoaView function members, and m_cocoaView data member. Also added inline implementations
but only compile them when included from an Objective-C source file.

  • WebKit.xcodeproj/project.pbxproj: Removed objcSPI.h.

Source/WTF:

  • wtf/spi/cocoa/objcSPI.h: Removed unnecessary #if so functions are correctly compiled for

non-Objective-C source files. Added include of <objc/objc.h> so that "id" is defined.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

Use _close instead of WKWebView deallocation to trigger a call to stopURLSchemeTask,
since such delegate methods will intentionally no longer be delivered if triggered by deallocation.

11:45 AM Changeset in webkit [274763] by Russell Epstein
  • 12 edits in branches/safari-610.4.3.0-branch/Source/WebCore

Apply patch. rdar://problem/75634407

11:41 AM Changeset in webkit [274762] by Russell Epstein
  • 1 copy in tags/Safari-607.3.11

Tag Safari-607.3.11.

11:39 AM Changeset in webkit [274761] by Amir Mark Jr.
  • 2 edits in trunk/LayoutTests

REGRESSION (r274711): [iOS 14 Wk2] webgl/conformance/extensions/khr-parallel-shader-compile.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=223586

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
11:38 AM Changeset in webkit [274760] by Russell Epstein
  • 9 edits in branches/safari-607-branch/Source/WebCore

Apply patch. rdar://problem/75634407

11:34 AM Changeset in webkit [274759] by Russell Epstein
  • 7 edits in branches/safari-607-branch/Source

Versioning WebKit-7607.3.11

11:29 AM Changeset in webkit [274758] by youenn@apple.com
  • 45 edits
    7 copies
    9 adds in trunk

Implement RTCDataChannel transfer out of process
https://bugs.webkit.org/show_bug.cgi?id=223443

Reviewed by Eric Carlson.

Source/WebCore:

Add support for serialization/deserialization of RTCDataChannel information so that it can be MessagePort transfered or transfered to out-of-process contexts like Window or Service Worker.
Add infrastructure for remote sources (that allows to send data or close data channels) and remote handlers which receive messages from out-of-process data channels.

Covered by API tests.

  • Modules/mediastream/DetachedRTCDataChannel.h: Added.

(WebCore::DetachedRTCDataChannel::DetachedRTCDataChannel):
(WebCore::DetachedRTCDataChannel::memoryCost const):
(WebCore::DetachedRTCDataChannel::encode const):
(WebCore::DetachedRTCDataChannel::decode):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::rtcDataChannelLocalMap):
(WebCore::RTCDataChannel::handlerFromIdentifier):
(WebCore::RTCDataChannel::create):

  • Modules/mediastream/RTCDataChannel.h:
  • Modules/mediastream/RTCDataChannelRemoteHandler.cpp: Added.

(WebCore::RTCDataChannelRemoteHandler::create):
(WebCore::RTCDataChannelRemoteHandler::RTCDataChannelRemoteHandler):
(WebCore::RTCDataChannelRemoteHandler::~RTCDataChannelRemoteHandler):
(WebCore::RTCDataChannelRemoteHandler::didChangeReadyState):
(WebCore::RTCDataChannelRemoteHandler::didReceiveStringData):
(WebCore::RTCDataChannelRemoteHandler::didReceiveRawData):
(WebCore::RTCDataChannelRemoteHandler::didDetectError):
(WebCore::RTCDataChannelRemoteHandler::bufferedAmountIsDecreasing):
(WebCore::RTCDataChannelRemoteHandler::readyToSend):
(WebCore::RTCDataChannelRemoteHandler::setClient):
(WebCore::RTCDataChannelRemoteHandler::sendStringData):
(WebCore::RTCDataChannelRemoteHandler::sendRawData):
(WebCore::RTCDataChannelRemoteHandler::close):

  • Modules/mediastream/RTCDataChannelRemoteHandler.h: Added.
  • Modules/mediastream/RTCDataChannelRemoteSource.cpp: Copied from Source/WebCore/platform/mediastream/RTCDataChannelHandler.h.

(WebCore::RTCDataChannelRemoteSource::RTCDataChannelRemoteSource):
(WebCore::RTCDataChannelRemoteSource::~RTCDataChannelRemoteSource):

  • Modules/mediastream/RTCDataChannelRemoteSource.h: Added.

(WebCore::RTCDataChannelRemoteSource::create):
(WebCore::RTCDataChannelRemoteSource::sendStringData):
(WebCore::RTCDataChannelRemoteSource::sendRawData):
(WebCore::RTCDataChannelRemoteSource::close):

  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::postTask):

  • Modules/webaudio/AudioWorkletMessagingProxy.cpp:

(WebCore::AudioWorkletMessagingProxy::createRTCDataChannelRemoteHandlerConnection):

  • Modules/webaudio/AudioWorkletMessagingProxy.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::SerializedScriptValue):

  • bindings/js/SerializedScriptValue.h:

(WebCore::SerializedScriptValue::encode const):
(WebCore::SerializedScriptValue::decode):

  • dom/Document.cpp:

(WebCore::Document::createRTCDataChannelRemoteHandlerConnection):

  • dom/Document.h:
  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::createRTCDataChannelRemoteHandlerConnection):

  • platform/ScriptExecutionContextIdentifier.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelState.h.
  • platform/mediastream/RTCDataChannelHandler.h:

(WebCore::RTCDataChannelInit::encode const):
(WebCore::RTCDataChannelInit::decode):

  • platform/mediastream/RTCDataChannelIdentifier.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelHandler.h.

(WebCore::RTCDataChannelIdentifier::encode const):
(WebCore::RTCDataChannelIdentifier::decode):

  • platform/mediastream/RTCDataChannelRemoteHandlerConnection.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelHandler.h.
  • platform/mediastream/RTCDataChannelRemoteSourceConnection.h: Copied from Source/WebCore/platform/mediastream/RTCDataChannelHandler.h.
  • platform/mediastream/RTCDataChannelState.h:
  • platform/mediastream/RTCPriorityType.h:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::createRTCDataChannelRemoteHandlerConnection):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerLoaderProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::createRTCDataChannelRemoteHandlerConnection):

  • workers/WorkerMessagingProxy.h:
  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::createRTCDataChannelRemoteHandlerConnection):

  • workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

Add support for connecting remote sources to remote data channels.
This is done by connection detached data channels to remote source that will send messages to network process.
Network process then sends to the process in which was reattached the data channel.
Pairing of data channels is done in main thread through connectToSource message.
The data then flows in background threads, network process being the proxy between web processes.
RTCDataChannelRemoteManagerProxy is the forwarding entity in NetworkProcess.
RTCDataChannelRemoteManager is the entity in WebProcess doing the messaging from and to data channels.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::connectToRTCDataChannelRemoteSource):
(WebKit::NetworkConnectionToWebProcess::registerToRTCDataChannelProxy):
(WebKit::NetworkConnectionToWebProcess::unregisterToRTCDataChannelProxy):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::rtcDataChannelProxy):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.cpp: Added.

(WebKit::RTCDataChannelRemoteManagerProxy::RTCDataChannelRemoteManagerProxy):
(WebKit::RTCDataChannelRemoteManagerProxy::registerConnectionToWebProcess):
(WebKit::RTCDataChannelRemoteManagerProxy::unregisterConnectionToWebProcess):
(WebKit::RTCDataChannelRemoteManagerProxy::sendData):
(WebKit::RTCDataChannelRemoteManagerProxy::close):
(WebKit::RTCDataChannelRemoteManagerProxy::changeReadyState):
(WebKit::RTCDataChannelRemoteManagerProxy::receiveData):
(WebKit::RTCDataChannelRemoteManagerProxy::detectError):
(WebKit::RTCDataChannelRemoteManagerProxy::bufferedAmountIsDecreasing):

  • NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.h: Added.
  • NetworkProcess/webrtc/RTCDataChannelRemoteManagerProxy.messages.in: Added.
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::connectToRTCDataChannelRemoteSource):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createRTCDataChannelRemoteHandlerConnection):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
  • WebProcess/Network/webrtc/RTCDataChannelRemoteManager.cpp: Added.

(WebKit::RTCDataChannelRemoteManager::sharedManager):
(WebKit::RTCDataChannelRemoteManager::RTCDataChannelRemoteManager):
(WebKit::RTCDataChannelRemoteManager::setConnection):
(WebKit::RTCDataChannelRemoteManager::connectToRemoteSource):
(WebKit::RTCDataChannelRemoteManager::remoteHandlerConnection):
(WebKit::RTCDataChannelRemoteManager::remoteSourceConnection):
(WebKit::RTCDataChannelRemoteManager::postTaskToHandler):
(WebKit::RTCDataChannelRemoteManager::sourceFromIdentifier):
(WebKit::RTCDataChannelRemoteManager::sendData):
(WebKit::RTCDataChannelRemoteManager::close):
(WebKit::RTCDataChannelRemoteManager::changeReadyState):
(WebKit::RTCDataChannelRemoteManager::receiveData):
(WebKit::RTCDataChannelRemoteManager::detectError):
(WebKit::RTCDataChannelRemoteManager::bufferedAmountIsDecreasing):
(WebKit::RTCDataChannelRemoteManager::RemoteHandlerConnection::create):
(WebKit::RTCDataChannelRemoteManager::RemoteHandlerConnection::RemoteHandlerConnection):
(WebKit::RTCDataChannelRemoteManager::RemoteHandlerConnection::connectToSource):
(WebKit::RTCDataChannelRemoteManager::RemoteHandlerConnection::sendData):
(WebKit::RTCDataChannelRemoteManager::RemoteHandlerConnection::close):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::create):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::RemoteSourceConnection):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::didChangeReadyState):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::didReceiveStringData):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::didReceiveRawData):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::didDetectError):
(WebKit::RTCDataChannelRemoteManager::RemoteSourceConnection::bufferedAmountIsDecreasing):

  • WebProcess/Network/webrtc/RTCDataChannelRemoteManager.h: Added.
  • WebProcess/Network/webrtc/RTCDataChannelRemoteManager.messages.in: Copied from Source/WebKit/WebProcess/Network/NetworkProcessConnection.messages.in.
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
11:25 AM Changeset in webkit [274757] by Russell Epstein
  • 8 edits in branches/safari-610.4.3.0-branch/Source

Versioning.

WebKit-7610.4.3.0.5

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

Fix a mistake in r274725 spotted by Darin.

I accidentally removed the case statement for CSSPropertyWebkitTextSizeAdjust.

  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::isPropertyRuntimeDisabled const):

11:25 AM Changeset in webkit [274755] by Simon Fraser
  • 6 edits
    2 moves in trunk/Source/WebCore

Rename WebCore's DisplayRefreshMonitorMac to indicate that it's only used in legacy WebKit
https://bugs.webkit.org/show_bug.cgi?id=223543

Reviewed by Tim Horton.

DisplayRefreshMonitorMac in WebCore is only used for WebKitLegacy; WebProcess doesn't have
WindowServer access so is unable to create CVDisplayLinkRefs.

Rename it to indicate this, and reduce confusion with DisplayRefreshMonitorMac in WebKit2.
Also add an assertion that LegacyDisplayRefreshMonitorMac is not being created in the
WebProcess.

For EmptyPageClients (like the Page used by createPageForSanitizingWebContent()) we need
a DisplayRefreshMonitor implementation that doesn't try to CVDisplayLinkRefs in the
Web Process, so add an EmptyDisplayRefreshMonitor that never fires.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/EmptyClients.cpp:

(WebCore::EmptyDisplayRefreshMonitor::create):
(WebCore::EmptyDisplayRefreshMonitor::EmptyDisplayRefreshMonitor):
(WebCore::EmptyChromeClient::createDisplayRefreshMonitor const):

  • loader/EmptyClients.h:
  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::createDefaultDisplayRefreshMonitor):

  • platform/graphics/mac/LegacyDisplayRefreshMonitorMac.cpp: Renamed from Source/WebCore/platform/graphics/mac/DisplayRefreshMonitorMac.cpp.

(WebCore::LegacyDisplayRefreshMonitorMac::LegacyDisplayRefreshMonitorMac):
(WebCore::LegacyDisplayRefreshMonitorMac::~LegacyDisplayRefreshMonitorMac):
(WebCore::LegacyDisplayRefreshMonitorMac::stop):
(WebCore::displayLinkCallback):
(WebCore::LegacyDisplayRefreshMonitorMac::requestRefreshCallback):
(WebCore::LegacyDisplayRefreshMonitorMac::displayLinkFired):

  • platform/graphics/mac/LegacyDisplayRefreshMonitorMac.h: Renamed from Source/WebCore/platform/graphics/mac/DisplayRefreshMonitorMac.h.

(WebCore::LegacyDisplayRefreshMonitorMac::create):

11:15 AM Changeset in webkit [274754] by youenn@apple.com
  • 2 edits in trunk/Tools

Remove some spurious logging lines appearing in WebRTC tests
https://bugs.webkit.org/show_bug.cgi?id=223502

Reviewed by Alex Christensen.

  • Scripts/webkitpy/port/mac.py:

(MacPort.logging_patterns_to_strip):

11:12 AM Changeset in webkit [274753] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add Jean-Yves Avenard to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=223555

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-03-22
Reviewed by Eric Carlson.

  • Scripts/webkitpy/common/config/contributors.json:
11:10 AM Changeset in webkit [274752] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[GPU Process] Style: Remove unnecessary { }s from case statements in DisplayListItemBuffer.cpp
https://bugs.webkit.org/show_bug.cgi?id=223550

Reviewed by Wenson Hsieh.

They're unnecessary, and none of the other case statements in displaylists/ have them.
Deleting them allows more of the program to fit on the screen at a time.

No new tests because there is no behavior change.

  • platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):

11:10 AM Changeset in webkit [274751] by Adrian Perez de Castro
  • 2 edits in trunk

[CMake] Wrong variable used in FindFontconfig used to pick version from pkg-config
https://bugs.webkit.org/show_bug.cgi?id=223557

Reviewed by Michael Catanzaro.

  • Source/cmake/FindFontconfig.cmake: Fix to use ${PC_FONTCONFIG_VERSION}.
8:52 AM WebKitGTK/2.32.x edited by Philippe Normand
(diff)
Note: See TracTimeline for information about the timeline view.