Timeline
May 20, 2021:
- 11:35 PM Changeset in webkit [277850] by
-
- 12 edits1 add in trunk
[ Catalina Release JSC] A large number of JSC test appear to be flaky failing
https://bugs.webkit.org/show_bug.cgi?id=225998
<rdar://problem/78235001>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/dont-link-virtual-calls-on-compiler-thread.js: Added.
Source/JavaScriptCore:
This patch is fixing some fallout from moving JIT::link() to a background
thread:
- We can't shrink the CodeBlock's constant pool on a background thread
since we read from it without grabbing a lock on the main thread (when
reading things off the stack in slow path calls).
- We can't create GCAwareJITStubRoutines on the compilation thread, since
creating a GCAwareJITStubRoutines adds to a global hash table inside Heap. This
means that we have to do that step of emitting virtual calls for eval when
we're finalizing code on the main thread.
This patch also makes it so that a baseline JIT compilation thread is
correctly marked as such.
- heap/JITStubRoutineSet.cpp:
(JSC::JITStubRoutineSet::add):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::emitUnlinkedVirtualCall):
(JSC::AssemblyHelpers::emitVirtualCall):
- jit/AssemblyHelpers.h:
- jit/JIT.cpp:
(JSC::JIT::link):
(JSC::JIT::finalizeOnMainThread):
- jit/JIT.h:
- jit/JITCall.cpp:
(JSC::JIT::compileCallEvalSlowCase):
- jit/JITCall32_64.cpp:
(JSC::JIT::compileCallEvalSlowCase):
- jit/JITWorklist.cpp:
- 9:14 PM Changeset in webkit [277849] by
-
- 4 edits in trunk
WKRemoteObjectRegistry _invokeMethod needs to check for nil completionHandlers
https://bugs.webkit.org/show_bug.cgi?id=225941
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-05-20
Reviewed by Ryosuke Niwa.
Source/WebKit:
_invokeMethod's argument-checking loop needs to be run
even if replyInfo is nil, as otherwise we can perform an invocation
if a method signature specifies a completion handler even though
none is provided.
- Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:
(-[_WKRemoteObjectRegistry _invokeMethod:]):
Tools:
Add an IPC test with a nil (really malformed) completion handler
that makes sure the invocation is not performed.
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
(-[IPCTestingAPIDelegate sayHello:completionHandler:]):
(-[IPCTestingAPIDelegate sayHelloWasCalled]):
(TEST):
- 8:15 PM Changeset in webkit [277848] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
[Metal ANGLE] Handle NAN constant folding correctly
https://bugs.webkit.org/show_bug.cgi?id=226052
NAN values (0.0f/0.0f) were being handled incorrectly. MSL was being emitted as lowercase 'nanf', instead of NAN
Check for an unlikely NAN case, and emit correct MSL
Reviewed by Dean Jackson.
- src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:
(GenMetalTraverser::emitSingleConstant):
- 7:43 PM Changeset in webkit [277847] by
-
- 16 edits in trunk/Source/WTF
Use CheckedLock more in WTF
https://bugs.webkit.org/show_bug.cgi?id=226045
Reviewed by Darin Adler.
Use CheckedLock more in WTF to benefit from Clang Thread Safety Analysis.
- wtf/CrossThreadQueue.h:
(WTF::CrossThreadQueue<DataType>::append):
(WTF::CrossThreadQueue<DataType>::waitForMessage):
(WTF::CrossThreadQueue<DataType>::tryGetMessage):
(WTF::CrossThreadQueue<DataType>::kill):
(WTF::CrossThreadQueue<DataType>::isKilled const):
(WTF::CrossThreadQueue<DataType>::isEmpty const):
- wtf/CrossThreadTaskHandler.cpp:
(WTF::CrossThreadTaskHandler::postTaskReply):
(WTF::CrossThreadTaskHandler::handleTaskRepliesOnMainThread):
- wtf/CrossThreadTaskHandler.h:
(WTF::CrossThreadTaskHandler::WTF_GUARDED_BY_LOCK):
- wtf/CryptographicallyRandomNumber.cpp:
- wtf/FastMalloc.cpp:
(WTF::MallocCallTracker::recordMalloc):
(WTF::MallocCallTracker::recordRealloc):
(WTF::MallocCallTracker::recordFree):
(WTF::MallocCallTracker::dumpStats):
- wtf/MessageQueue.h:
(WTF::MessageQueue<DataType>::append):
(WTF::MessageQueue<DataType>::appendAndKill):
(WTF::MessageQueue<DataType>::appendAndCheckEmpty):
(WTF::MessageQueue<DataType>::prepend):
(WTF::MessageQueue<DataType>::waitForMessageFilteredWithTimeout):
(WTF::MessageQueue<DataType>::tryGetMessage):
(WTF::MessageQueue<DataType>::takeAllMessages):
(WTF::MessageQueue<DataType>::tryGetMessageIgnoringKilled):
(WTF::MessageQueue<DataType>::removeIf):
(WTF::MessageQueue<DataType>::isEmpty):
(WTF::MessageQueue<DataType>::kill):
(WTF::MessageQueue<DataType>::killed const):
- wtf/OSLogPrintStream.cpp:
(WTF::OSLogPrintStream::vprintf):
- wtf/OSLogPrintStream.h:
- wtf/ParallelJobsGeneric.h:
(WTF::ParallelEnvironment::ThreadPrivate::WTF_GUARDED_BY_LOCK):
- wtf/ParallelVectorIterator.h:
(WTF::ParallelVectorIterator::iterate):
(WTF::ParallelVectorIterator::WTF_GUARDED_BY_LOCK):
- wtf/ReadWriteLock.cpp:
(WTF::ReadWriteLock::readLock):
(WTF::ReadWriteLock::readUnlock):
(WTF::ReadWriteLock::writeLock):
(WTF::ReadWriteLock::writeUnlock):
- wtf/ReadWriteLock.h:
(WTF::ReadWriteLock::WTF_GUARDED_BY_LOCK):
- 7:37 PM Changeset in webkit [277846] by
-
- 2 edits in trunk/Source/WebKit
[iOS][FCR] <select> options are unnecessarily truncated
https://bugs.webkit.org/show_bug.cgi?id=226048
<rdar://problem/76008154>
Reviewed by Tim Horton.
- UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKSelectPicker createMenu]):
UIMenu's currently limit action titles to two lines. Use SPI to remove
the limit and avoid unnecessary truncation.
- 7:21 PM Changeset in webkit [277845] by
-
- 2 edits in trunk/Source/WebCore
Fix locking in PlatformCALayer
https://bugs.webkit.org/show_bug.cgi?id=226062
Reviewed by Tim Horton.
Fix locking issue in PlatformCALayer found by Clang Thread Safety Analysis.
We were locking before querying layerToPlatformLayerMap(), but failing to
do so when adding or removing from layerToPlatformLayerMap().
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::WTF_REQUIRES_LOCK):
(WebCore::PlatformCALayer::platformCALayerForLayer):
(WebCore::PlatformCALayerCocoa::commonInit):
(WebCore::PlatformCALayerCocoa::~PlatformCALayerCocoa):
(WebCore::layerToPlatformLayerMap): Deleted.
- 6:56 PM Changeset in webkit [277844] by
-
- 3 edits in trunk/Source/WebCore
Add missing lock in AXIsolatedTree::treeForID()
https://bugs.webkit.org/show_bug.cgi?id=226060
<rdar://problem/78287227>
Reviewed by Alex Christensen.
Add missing lock in AXIsolatedTree::treeForID(). This was found via Clang Thread Safety
Analysis. This was the only call site that was failing to grab the s_cacheLock before
calling treeIDCache().
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::treeForID):
(WebCore::AXIsolatedTree::create):
(WebCore::AXIsolatedTree::removeTreeForPageID):
(WebCore::AXIsolatedTree::treeForPageID):
- accessibility/isolatedtree/AXIsolatedTree.h:
- 6:28 PM Changeset in webkit [277843] by
-
- 2 edits in trunk/Source/WTF
Add missing locks in Language.cpp
https://bugs.webkit.org/show_bug.cgi?id=226059
Reviewed by Alex Christensen.
Add missing locks in Language.cpp. This was found via Clang Thread Safety Analysis.
Some of the overrideUserPreferredLanguages() call sites were failing to grab the
lock first.
Also use NeverDestroyed in preferredLanguagesOverride() instead of LazyNeverDestroyed
with std::call_once. All call sites are already grabbing a lock so there is no need
for extra synchronization.
- wtf/Language.cpp:
(WTF::WTF_REQUIRES_LOCK):
(WTF::userPreferredLanguagesOverride):
(WTF::overrideUserPreferredLanguages):
(WTF::userPreferredLanguages):
(WTF::preferredLanguagesOverride): Deleted.
- 5:40 PM Changeset in webkit [277842] by
-
- 1 copy in tags/Safari-612.1.15.1.7
Tag Safari-612.1.15.1.7.
- 5:38 PM Changeset in webkit [277841] by
-
- 8 edits in branches/safari-612.1.15.1-branch/Source
Versioning.
WebKit-7612.1.15.1.7
- 5:24 PM Changeset in webkit [277840] by
-
- 6 edits in trunk
[WPE] Spatial navigation tests fail with async overflow scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=225922
Reviewed by Simon Fraser.
Source/WebCore:
Add absoluteClippedOverflowRectForSpatialNavigation for when the
clipped overflow rect not taking into account composited scrolling is
necessary.
No new tests, covered by existing tests.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isOffScreen const):
- page/SpatialNavigation.cpp:
(WebCore::hasOffscreenRect):
- rendering/RenderObject.h:
(WebCore::RenderObject::absoluteClippedOverflowRectForSpatialNavigation const):
(WebCore::RenderObject::visibleRectContextForSpatialNavigation):
LayoutTests:
Some spatial navigation tests now pass on WPE.
- platform/wpe/TestExpectations:
- 5:15 PM Changeset in webkit [277839] by
-
- 5 edits in trunk
Unreviewed, reverting r277606.
rdar://78283324
Source/WebKit:
Need to wait for more projects to migrate to new API.
Reverted changeset:
"[Cocoa] Remove prototype loadSimulatedRequest methods"
https://bugs.webkit.org/show_bug.cgi?id=223658
https://commits.webkit.org/r277606
Tools:
Need to wait for more projects to migrate
Reverted changeset:
"[Cocoa] Remove prototype loadSimulatedRequest methods"
https://bugs.webkit.org/show_bug.cgi?id=223658
https://commits.webkit.org/r277606
- 5:14 PM Changeset in webkit [277838] by
-
- 4 edits in trunk/Source/JavaScriptCore
Make polymorphic calls play nice with Data Call ICs
https://bugs.webkit.org/show_bug.cgi?id=225793
Reviewed by Robin Morisset.
This patch makes it so that Polymorphic stubs don't repatch when using
Data Call ICs. We add a branch to the Data IC fast path to see if we're
polymorphic. If we are, then we either call or tail call the polymorphic
stub, depending on the CallLinkInfo's call type. This patch also changes
the polymorphic stub to handle being called instead of jumped to, since that
will now happen for Data ICs of non tail calls.
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::setMonomorphicCallee):
(JSC::CallLinkInfo::callee):
(JSC::CallLinkInfo::visitWeak):
(JSC::CallLinkInfo::emitFastPathImpl):
(JSC::CallLinkInfo::revertCallToStub):
(JSC::CallLinkInfo::setStub):
(JSC::CallLinkInfo::emitFirstInstructionForDataIC): Deleted.
- bytecode/CallLinkInfo.h:
- jit/Repatch.cpp:
(JSC::linkPolymorphicCall):
- 4:39 PM Changeset in webkit [277837] by
-
- 27 edits in trunk
Mark ServiceWorkerThreadProxy with a default app-bound value
https://bugs.webkit.org/show_bug.cgi?id=223201
<rdar://problem/77664416>
Reviewed by Youenn Fablet.
Source/WebCore:
Service worker loads have their own document loader, so they don't
always get properly marked as app-bound based on the main frame
navigation. Prior fixes handled some fetch events, synthetic
responses, and soft updates. But we need to set a default value when
we install the service worker.
We had to pick a best-effort heuristic to do this. If any client for
the worker is app-bound, then all loads with that worker will be
marked app-bound.
- testing/ServiceWorkerInternals.cpp:
(WebCore::ServiceWorkerInternals::lastNavigationWasAppBound):
- testing/ServiceWorkerInternals.h:
- testing/ServiceWorkerInternals.idl:
- workers/WorkerRunLoop.h:
To test this, I added a new API to ServiceWorkerInternals to get the
worker's app bound value.
- workers/service/ServiceWorkerClientData.cpp:
(WebCore::ServiceWorkerClientData::isolatedCopy const):
(WebCore::ServiceWorkerClientData::from):
- workers/service/ServiceWorkerClientData.h:
(WebCore::ServiceWorkerClientData::encode const):
(WebCore::ServiceWorkerClientData::decode):
Store the main navigation app-bound value when we register a client.
- workers/service/ServiceWorkerContextData.cpp:
(WebCore::ServiceWorkerContextData::isolatedCopy const):
- workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::encode const):
(WebCore::ServiceWorkerContextData::decode):
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
(WebCore::ServiceWorkerThreadProxy::lastNavigationWasAppBound):
- workers/service/context/ServiceWorkerThreadProxy.h:
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::importRecords):
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::updateWorker):
(WebCore::SWServer::clientIsAppBoundForRegistrableDomain):
Best-effort heuristic to mark a load as app bound if any client for
that origin was registered as app-bound.
Source/WebKit:
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::controlClient):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::updateAppBoundValue):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- Scripts/webkit/messages.py:
(headers_for_type):
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updateAppBoundValue):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.messages.in:
Tools:
Test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
(-[SWAppBoundRequestMessageHandler userContentController:didReceiveScriptMessage:]):
- 4:31 PM Changeset in webkit [277836] by
-
- 2 edits in trunk/LayoutTests
[macOS] imported/w3c/web-platform-tests/IndexedDB/blob-valid-before-commit.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=226050
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:06 PM Changeset in webkit [277835] by
-
- 7 edits in trunk/Source/WebKit
Allow GPU process log channels to be configured
https://bugs.webkit.org/show_bug.cgi?id=226036
<rdar://problem/78271211>
Reviewed by Jer Noble.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::configureLoggingChannel): Configure WebCore and
WebKit logging channels because classes used in the GPU process use both.
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUConnectionToWebProcess.messages.in:
- WebProcess/GPU/GPUProcessConnection.cpp:
(WebKit::GPUProcessConnection::configureLoggingChannel): Send configureLoggingChannel
message to the GPU process.
- WebProcess/GPU/GPUProcessConnection.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::configureLoggingChannel): Send configureLoggingChannel to the
GPU process connection, if there is one.
- 4:03 PM Changeset in webkit [277834] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Adopt "com.apple.QuartzCore.webkit-limited-types" entitlement
https://bugs.webkit.org/show_bug.cgi?id=226044
<rdar://problem/60549120>
Reviewed by Per Arne Vollan.
WebKit should adopt the "com.apple.QuartzCore.webkit-limited-types" entitlement as a further hardening measure to help
QuartzCore limit the features accessible from the WebContent and GPU Process. WebKit only needs a subset of the
features of QuartzCore, and this entitlement allows the framework to block certain code paths.
Tested by existing rendering test cases.
- Scripts/process-entitlements.sh:
- 4:01 PM Changeset in webkit [277833] by
-
- 2 edits in trunk/Source/WebCore
Fix inverted ASSERT in sampleColor.
Rubber-stamped by Tim Horton.
- page/PageColorSampler.cpp:
(WebCore::sampleColor):
- 3:33 PM Changeset in webkit [277832] by
-
- 1 copy in tags/Safari-612.1.15.1.6
Tag Safari-612.1.15.1.6.
- 3:30 PM Changeset in webkit [277831] by
-
- 1 copy in tags/Safari-612.1.15.0.3
Tag Safari-612.1.15.0.3.
- 3:25 PM Changeset in webkit [277830] by
-
- 121 edits9 adds3 deletes in trunk
[WebIDL] Remove [ImplicitThis] and [CustomProxyToJSObject] extended attributes
https://bugs.webkit.org/show_bug.cgi?id=223758
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any.html: Added.
- web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any.js: Added.
- web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any.worker-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any.worker.html: Added.
- web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-registerprocessor-called-on-globalthis.https-expected.txt: Added.
- web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-registerprocessor-called-on-globalthis.https.html: Added.
- web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/processors/dummy-processor-globalthis.js: Added.
Source/WebCore:
This change introduces castThisValue<JSClass>, taking a step towards unification of |this|
value casting between IDLAttribute and IDLOperation. The helper uses compile-time inheritance
check to provide implicit |this| value for DOM global objects [1], replacing [ImplicitThis]
extended attribute, which was removed from the spec [2] a while ago.
IDLAttribute can't perform toThis() with ECMAMode::strict(), like IDLOperation now does,
because CustomValue getters are called with |this| value of JSGlobalObject type, which gets
tainted by JSScope::toThis(). #225397 will remove the need for toThis(), finally making |this|
value casting consistent between attributes and operations.
Also, this patch fixes
Object.create(window).locationto throw as per spec [1] by removing
prototype chain traversal from toJSDOMWindow(), which aligns WebKit with Blink and Gecko.
As DOM global objects are wrapped in proxies and require special casting, toJSDOMWindow() and
friends are merged into toJSDOMGlobalObject<JSClass>, which is aware of inheritance / JSProxy.
It replaces [CustomProxyToJSObject] extended attribute, which could be missed when adding new
DOM global objects, fixing worklets' global functions not to throw when called onglobalThis.
This change reduces WebCore --release binary size by 0.2% (147 KB).
[1] https://heycam.github.io/webidl/#dfn-attribute-getter (step 1.1.2.3)
[2] https://github.com/heycam/webidl/pull/155
Tests: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any.js
imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-registerprocessor-called-on-globalthis.https.html
fast/css-custom-paint/registerPaintBindings.html
http/tests/security/listener/*.html
- Headers.cmake:
- Modules/webaudio/AudioWorkletGlobalScope.idl:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMAttribute.h:
(WebCore::IDLAttribute::set):
(WebCore::IDLAttribute::setPassingPropertyName):
(WebCore::IDLAttribute::get):
(WebCore::IDLAttribute::getPassingPropertyName):
- bindings/js/JSDOMCastThisValue.h: Added.
(WebCore::castThisValue):
- bindings/js/JSDOMCastedThisErrorBehavior.h: Removed.
- bindings/js/JSDOMGlobalObject.h:
(WebCore::toJSDOMGlobalObject):
- bindings/js/JSDOMOperation.h:
(WebCore::IDLOperation::cast):
- bindings/js/JSDOMWindowBase.cpp:
- bindings/js/JSDOMWindowBase.h:
(WebCore::toJSDOMWindow):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::IDLOperation<JSDOMWindow>::cast): Deleted.
- bindings/js/JSDocumentCustom.cpp:
(WebCore::cachedDocumentWrapper):
- bindings/js/JSEventTargetCustom.cpp:
(WebCore::jsEventTargetCast):
- bindings/js/JSEventTargetCustom.h:
(WebCore::IDLOperation<JSEventTarget>::call):
- bindings/js/JSRemoteDOMWindowBase.cpp:
(WebCore::toJSRemoteDOMWindow): Deleted.
- bindings/js/JSRemoteDOMWindowBase.h:
- bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::toJSDedicatedWorkerGlobalScope): Deleted.
(WebCore::toJSWorkerGlobalScope): Deleted.
(WebCore::toJSServiceWorkerGlobalScope): Deleted.
- bindings/js/JSWorkerGlobalScopeBase.h:
- bindings/js/JSWorkletGlobalScopeBase.cpp:
(WebCore::toJSWorkletGlobalScope): Deleted.
- bindings/js/JSWorkletGlobalScopeBase.h:
- bindings/scripts/CodeGeneratorJS.pm:
(ShouldGenerateToJSDeclaration):
(IsAcceleratedDOMAttribute):
(GenerateImplementation):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/*: Updated.
- inspector/InspectorController.cpp:
(WebCore::InspectorController::canAccessInspectedScriptState const):
- page/DOMWindow.idl:
- page/RemoteDOMWindow.idl:
- workers/DedicatedWorkerGlobalScope.idl:
- workers/WorkerGlobalScope.idl:
- workers/service/ServiceWorkerGlobalScope.idl:
- worklets/PaintWorkletGlobalScope.idl:
- worklets/WorkletGlobalScope.idl:
Source/WebKit:
Use inherits<T> instead of toJSDOMWindow() if the value is never a JSProxy.
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::reportException):
Source/WebKitLegacy/mac:
Use inherits<T> instead of toJSDOMWindow() if the value is never a JSProxy.
- WebView/WebView.mm:
(+[WebView _reportException:inContext:]):
Source/WebKitLegacy/win:
Use inherits<T> instead of toJSDOMWindow() if the value is never a JSProxy.
- WebView.cpp:
(WebView::reportException):
LayoutTests:
- fast/css-custom-paint/registerPaintBindings.html:
- http/tests/security/listener/*:
This is a progression: Blink and Gecko don't call event listeners belonging to destroyed frames.
- js/property-of-window-as-prototype-expected.txt: Removed.
- js/property-of-window-as-prototype.html: Removed.
- 3:14 PM Changeset in webkit [277829] by
-
- 10 edits2 adds in trunk
Align internal methods of WindowProperties object with the spec
https://bugs.webkit.org/show_bug.cgi?id=222918
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/WebIDL/ecmascript-binding/class-string-named-properties-object.window-expected.txt:
- web-platform-tests/WebIDL/ecmascript-binding/class-string-named-properties-object.window.js:
- web-platform-tests/WebIDL/ecmascript-binding/window-named-properties-object-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/window-named-properties-object.html: Added.
- web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html:
- web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties-expected.txt:
- web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html:
Source/WebCore:
This patch:
- Implements PreventExtensions, DefineOwnProperty, and Delete methods that always fail [1], ensuring Set with altered receiver is passed through, indexed properties are rejected as well, and an exception is thrown if neccessary.
Adding a put() override would a) slow down global
varcreation and b) require factoring out most of
JSObject::putInlineSlow(). Instead, we prevent extensions on a structure while defining isExtensible()
override to cover that up.
- Corrects property attributes reported by GetOwnProperty methods of cross-origin WindowProxy [2] and WindowProperties, bringing these objects in compliance with invariants of internal methods [3].
- Removes comments on cross-browser differences and priority order from GetOwnProperty because it correctly implements the now detailed spec [4]. Browsing contexts precedence is covered by wpt/html/browsers/the-window-object/named-access-on-the-window-object/named-objects.html test.
- Asserts that WindowProperties Prototype is an object, as guaranteed by its SetPrototypeOf.
This change fully implements the current spec, aligning WebKit with Blink and Gecko.
[1] https://heycam.github.io/webidl/#named-properties-object-defineownproperty
[2] https://html.spec.whatwg.org/multipage/window-object.html#windowproxy-getownproperty (step 6.2)
[3] https://tc39.es/ecma262/#sec-invariants-of-the-essential-internal-methods
[4] https://html.spec.whatwg.org/multipage/window-object.html#dom-window-nameditem (step 2)
Tests: imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/window-named-properties-object.html
imported/w3c/web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects.html
imported/w3c/web-platform-tests/html/browsers/the-window-object/named-access-on-the-window-object/window-named-properties.html
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
- bindings/js/JSDOMWindowProperties.cpp:
(WebCore::jsDOMWindowPropertiesGetOwnPropertySlotNamedItemGetter):
(WebCore::JSDOMWindowProperties::finishCreation):
(WebCore::JSDOMWindowProperties::getOwnPropertySlot):
(WebCore::JSDOMWindowProperties::deleteProperty):
(WebCore::JSDOMWindowProperties::deletePropertyByIndex):
(WebCore::JSDOMWindowProperties::preventExtensions):
(WebCore::JSDOMWindowProperties::isExtensible):
(WebCore::JSDOMWindowProperties::defineOwnProperty):
- bindings/js/JSDOMWindowProperties.h:
- 3:10 PM Changeset in webkit [277828] by
-
- 4 edits1 delete in trunk
[Flatpak SDK] Remove PHP packages
https://bugs.webkit.org/show_bug.cgi?id=226037
Reviewed by Philippe Normand.
Remove the PHP package from the SDK now that the layout tests do not use PHP.
Tools/buildstream:
- elements/test-infra.bst: Remove php.bst from the element list.
- elements/test-infra/php.bst: Removed.
LayoutTests:
- http/conf/flatpak-httpd.conf: Remove usage of mod_php7.
- 2:53 PM Changeset in webkit [277827] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r277505): Crash under WTF::Detail::CallableWrapper<WebKit::WebPageProxy::setUnderPageBackgroundColorOverride(WebCore::Color&&)::$_10, void>::call
https://bugs.webkit.org/show_bug.cgi?id=225979
<rdar://problem/78130098>
Reviewed by Tim Horton.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setUnderPageBackgroundColorOverride):
Semi-speculative fix by checking the weakly-heldPageClientbefore attempting to use it.
Dissasembly suggests this as the cause as the invalid access occurs early in the lambda.
- 2:46 PM Changeset in webkit [277826] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Need to use default git pull to remove the fake svn commit when syncing with SVN
https://bugs.webkit.org/show_bug.cgi?id=226039
Reviewed by Jonathan Bedard.
- tools/sync-commits.py:
(GitRepository._fetch_remote):
- 2:28 PM Changeset in webkit [277825] by
-
- 3 edits in trunk/Tools
Use Python 3 for running various scripts on EWS
https://bugs.webkit.org/show_bug.cgi?id=226041
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps.py: Use Python 3.
(CleanBuild):
(TriggerCrashLogSubmission):
(WaitForCrashCollection):
(ArchiveBuiltProduct):
(ExtractBuiltProduct):
- CISupport/ews-build/steps_unittest.py: Updated unit-tests.
- 2:26 PM Changeset in webkit [277824] by
-
- 10 edits in trunk/Source/ThirdParty/ANGLE
Red flashes zooming on Google Maps when using external monitor on multi-gpu systems
https://bugs.webkit.org/show_bug.cgi?id=225956
<rdar://77024179>
Reviewed by Dean Jackson.
IOSurface presentation swaps require that a command buffer is queued for execution before
swapping. Otherwise, we're liable to drop frames, or present old IOSurface buffers.
Ensure work flushed via glFlush completes before presenation by waiting for it to enqueue before
swapping a surface.
- src/libANGLE/renderer/metal/ContextMtl.mm:
(rx::ContextMtl::flush):
- src/libANGLE/renderer/metal/mtl_command_buffer.h:
- src/libANGLE/renderer/metal/mtl_command_buffer.mm:
(rx::mtl::CommandBuffer::waitUntilScheduled):
(rx::mtl::CommandBuffer::commitImpl):
- 2:25 PM Changeset in webkit [277823] by
-
- 2 edits in trunk/Source/WebKit
Configure fullscreen view after it has transitioned
https://bugs.webkit.org/show_bug.cgi?id=226031
<rdar://problem/78277029>
Reviewed by Tim Horton.
Call an internal configuration method after the fullscreen transition.
- UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
- 2:11 PM Changeset in webkit [277822] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Allow access to the 'DiskImageURL' IOKit property
https://bugs.webkit.org/show_bug.cgi?id=226033
<rdar://problem/78199855>
Reviewed by Per Arne Vollan.
Access to certain disk image types is affected by the ability to read the DiskImageURL IOKit property. Since file
URLs may reference such locations (and indeed, telemetry shows that this is happening) we should grant this property
access to avoid users encountering file access errors when attempting to load content backed by relevant disk images.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 2:07 PM Changeset in webkit [277821] by
-
- 2 edits in trunk/Source/WebCore
WebAudioBufferList::setSampleCount() should early return if computeBufferSizes() fails
https://bugs.webkit.org/show_bug.cgi?id=226028
rdar://78222414
Reviewed by Eric Carlson.
If computeBufferSizes() fails (returns WTF::nullopt), we now early return on release
builds, without modifying the WebAudioBufferList's internal state in any way. In
Debug, we would still hit the assertion.
- platform/audio/cocoa/WebAudioBufferList.cpp:
(WebCore::WebAudioBufferList::setSampleCount):
- 12:59 PM Changeset in webkit [277820] by
-
- 3 edits in trunk/Source/WebKit
Move off UIKit IPI in WKMouseGestureRecognizer
https://bugs.webkit.org/show_bug.cgi?id=226030
rdar://78266173
Reviewed by Devin Rousso and Wenson Hsieh.
Use UIGestureRecognizerDelegate instead of IPI.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
(-[WKContentView gestureRecognizer:shouldReceivePress:]):
- UIProcess/ios/WKMouseGestureRecognizer.mm:
(-[WKMouseGestureRecognizer _shouldReceiveTouch:forEvent:recognizerView:]): Deleted.
(-[WKMouseGestureRecognizer _shouldReceivePress:]): Deleted.
- 12:51 PM Changeset in webkit [277819] by
-
- 1 copy in tags/Safari-612.1.12.11
Tag Safari-612.1.12.11.
- 12:40 PM Changeset in webkit [277818] by
-
- 6 edits in trunk/Source/WebCore
HTML parser should yield more aggressively
https://bugs.webkit.org/show_bug.cgi?id=224609
rdar://73458064
Reviewed by Darin Adler.
During page loading we may spend substantial amount of time in individual invocations of
the HTML parser. This can be a problem since it blocks rendering updates and so visual
page load progression.
Most of this time is not actually spend parsing, it rather goes into synchronous script
execution and DOM work triggered by scripts. This patch adds a more effective mechanism
where we may decide to yield the parser before executing a script.
- dom/ScriptElement.h:
- html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpTokenizerLoop):
- html/parser/HTMLParserScheduler.cpp:
(WebCore::parserTimeLimit):
(WebCore::PumpSession::PumpSession):
(WebCore::HTMLParserScheduler::HTMLParserScheduler):
(WebCore::HTMLParserScheduler::shouldYieldBeforeExecutingScript):
Consider yielding before script execution after 16ms has elapsed and at least 256 tokens have been parsed.
Only yield for synchronous scripts.
Don't yield on very short inline scripts (this is an imperfect way to try to guess the execution cost).
- html/parser/HTMLParserScheduler.h:
(WebCore::HTMLParserScheduler::shouldYieldBeforeToken):
(WebCore::HTMLParserScheduler::checkForYield):
Don't reset the token count, instead track the last yield check point.
- html/parser/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::scriptToProcess const):
- 12:34 PM Changeset in webkit [277817] by
-
- 2 edits in trunk/Tools
The test of SmallSet.cpp should pass the right HashTrait to the HashSet it uses as a reference
https://bugs.webkit.org/show_bug.cgi?id=226027
Reviewed by Mark Lam.
SmallSet allows all values except for the max value.
So we test it on small values, including 0.
HashSet by default forbids 0, so it made the test crash.
We can trivially fix it by passing UnsignedWithZeroKeyHashTraits, which allows everything which is not max() or max()-1
- TestWebKitAPI/Tests/WTF/SmallSet.cpp:
(TestWebKitAPI::testSmallSetOfUnsigned):
- 12:25 PM Changeset in webkit [277816] by
-
- 2 edits in trunk/Source/WebCore
[Hardening] Use CheckedArithmetics in WebAudioBufferList constructor
https://bugs.webkit.org/show_bug.cgi?id=226029
<rdar://78222665>
Reviewed by Eric Carlson.
- platform/audio/cocoa/WebAudioBufferList.cpp:
(WebCore::WebAudioBufferList::WebAudioBufferList):
- 12:09 PM Changeset in webkit [277815] by
-
- 3 edits in branches/safari-611-branch
Cherry-pick r277713. rdar://problem/78264364
allowsContentJavaScript API not applied from defaultWebpagePreferences
https://bugs.webkit.org/show_bug.cgi?id=225957
Reviewed by Wenson Hsieh.
New API test: WebKit.AllowsContentJavaScriptFromDefaultPreferences
- UIProcess/API/APIWebsitePolicies.cpp: (API::WebsitePolicies::copy const): allowsContentJavaScript works fine on the per-navigation-level WKWebpagePreferences, but is ignored if applied on the WKWebViewConfiguration's defaultWebpagePreferences, because it is not copied in copy(). Copy it!
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277713 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:09 PM Changeset in webkit [277814] by
-
- 5 edits1 add in branches/safari-611-branch
Cherry-pick r277613. rdar://problem/78264256
REGRESSION (r271119): Object methods defined with shorthand notation cannot access "caller" in non-strict mode
https://bugs.webkit.org/show_bug.cgi?id=225277
Reviewed by Darin Adler.
JSTests:
- stress/caller-and-arguments-properties-for-functions-that-dont-have-them.js: Now covers #157461 and #157863.
- stress/function-caller-cross-realm-via-call-apply.js: Added, coverage for #34553.
- stress/function-hidden-as-caller.js: Also adds test case for #102276.
Source/JavaScriptCore:
This patch loosens
function.callerto allow non-strict getters, setters, arrow functions,
and ES6 methods to be returned as callers, fixing web compatibility.
The intent of r230662 is preserved: generator / async functions are never exposed. There is
no good way to acquire wrapper function from the internal body one, nor from its arguments.
Also, this behavior is on standards track [1] (seems to be considered desirable).
[1]: https://github.com/claudepache/es-legacy-function-reflection/blob/master/spec.md#get-functionprototypecaller (step 14)
- runtime/JSFunction.cpp: (JSC::JSC_DEFINE_CUSTOM_GETTER):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277613 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:09 PM Changeset in webkit [277813] by
-
- 2 edits in branches/safari-611-branch/Source/JavaScriptCore
Cherry-pick r277477. rdar://problem/78264390
[REGRESSION: r271876] Web Inspector: [Cocoa] Remote inspection crashes when using WEB_THREAD
https://bugs.webkit.org/show_bug.cgi?id=225794
Reviewed by Devin Rousso.
For WEB_THREAD, move
callbackindispatchAsyncOnTargettoblockscope to ensure it is available for the
lifetime of the block.
- inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm: (Inspector::RemoteConnectionToTarget::dispatchAsyncOnTarget):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277477 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:09 PM Changeset in webkit [277812] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r277390. rdar://problem/78264321
TapStorage::lock freed while locked in AudioSourceProviderAVFObjC::destroyMixIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=225706
<rdar://77719381>
Reviewed by Ryosuke Niwa.
In r275933, an update was made to protect access to TapStorage during destruction by
locking its lock inside destroyMixIfNeeded(), but if TapStorage has a refCount==1
during that teardown, the lock itself is destroyed while it is still held. Add an
explicit scoping to the lock holder, and only deref the TapStorage outside that
locking scope.
- platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm: (WebCore::AudioSourceProviderAVFObjC::destroyMixIfNeeded):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277390 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:09 PM Changeset in webkit [277811] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Cherry-pick r277375. rdar://problem/78264303
Crash in WebPageProxy::endColorPicker()
https://bugs.webkit.org/show_bug.cgi?id=225679
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-05-12
Reviewed by Ryosuke Niwa.
Make sure that endColorPicker() and didEndColorPicker()
do not both attempt to null-out m_colorPicker.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::endColorPicker): (WebKit::WebPageProxy::didEndColorPicker):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277375 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:09 PM Changeset in webkit [277810] by
-
- 2 edits in branches/safari-611-branch/Source/ThirdParty/libwebrtc
Cherry-pick r277332. rdar://problem/78264344
Improve usrsctp restart handling
https://bugs.webkit.org/show_bug.cgi?id=225638
<rdar://77582953>
Reviewed by Alex Christensen.
- Source/third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c: (sctp_process_cookie_existing):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277332 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:09 PM Changeset in webkit [277809] by
-
- 4 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r277232. rdar://problem/78264335
Add bounds checks around calls to GlyphBuffer::stringOffsetAt()
https://bugs.webkit.org/show_bug.cgi?id=225335
<rdar://problem/75663608>
Reviewed by Simon Fraser and Geoff Garen.
We're getting crash reports that look like they're from string offsets being out-of-bounds.
These string offsets round-trip through Core Text, which is allowed to modify them, which
can end up making them out-of-bounds.
No new tests because I don't have a reproducible test case; just crash reports.
- platform/graphics/FontCascade.cpp: (WebCore::computeUnderlineType):
- platform/graphics/GlyphBuffer.h: (WebCore::GlyphBuffer::uncheckedStringOffsetAt const): (WebCore::GlyphBuffer::checkedStringOffsetAt const): (WebCore::GlyphBuffer::stringOffsetAt const): Deleted.
- platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::applyFontTransforms): (WebCore::WidthIterator::applyExtraSpacingAfterShaping):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277232 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:09 PM Changeset in webkit [277808] by
-
- 1 edit1 add in trunk/Tools
Add tox file for webkitpy
https://bugs.webkit.org/show_bug.cgi?id=226016
Reviewed by Jonathan Bedard.
- Scripts/webkitpy/tox.ini: Added.
- 12:08 PM Changeset in webkit [277807] by
-
- 5 edits in branches/safari-611-branch/Source
Cherry-pick r276788. rdar://problem/78264378
Reduce memory footprint for background tabs
https://bugs.webkit.org/show_bug.cgi?id=225007
Reviewed by Chris Dumez.
Source/WebKit:
When a WebContent process contains only non-visible pages (e.g. if it is a background tab),
we should attempt to reduce our memory footprint after some time interval to help relieve
system-wide memory pressure. This is enabled only on Mac because iOS already does something
similar just before WebContent suspends.
One exception to this is that we don't do this proactive slimming for processes that are in
the back/forward cache or in the WebProcess cache. This is because dropping the memory cache
in those types of processes leads to perf regressions in benchmarks that do certain types of
cross-origin navigations. We'll use a separate mechanism for controlling the memory usage of
those processes; our current logic keeps those processes around until we are at the warning
or critical memory pressure level.
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::pageDidEnterWindow): (WebKit::WebProcess::pageWillLeaveWindow): (WebKit::WebProcess::nonVisibleProcessGraphicsCleanupTimerFired): (WebKit::WebProcess::nonVisibleProcessMemoryCleanupTimerFired): (WebKit::WebProcess::nonVisibleProcessCleanupTimerFired): Deleted.
- WebProcess/WebProcess.h:
Source/WTF:
Add an option to slim background tabs by proactively calling WebCore::releaseMemory on Macs.
- wtf/PlatformEnableCocoa.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276788 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:44 AM Changeset in webkit [277806] by
-
- 3 edits in trunk/Source/WebKit
Use CheckedLock more in IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=226021
Reviewed by Darin Adler.
Use CheckedLock more in IPC::Connection. This is heavily multithreaded code and
it would benefit significantly from Clang Thread Safety Analysis.
- Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::enqueueMatchingMessagesToMessageReceiveQueue):
(IPC::Connection::addMessageReceiveQueue):
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::addThreadMessageReceiver):
(IPC::Connection::removeMessageReceiveQueue):
(IPC::Connection::sendMessage):
(IPC::Connection::waitForMessage):
(IPC::Connection::pushPendingSyncRequestID):
(IPC::Connection::popPendingSyncRequestID):
(IPC::Connection::waitForSyncReply):
(IPC::Connection::processIncomingSyncReply):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::installIncomingSyncMessageCallback):
(IPC::Connection::uninstallIncomingSyncMessageCallback):
(IPC::Connection::hasIncomingSyncMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::sendOutgoingMessages):
(IPC::Connection::enqueueIncomingMessage):
(IPC::Connection::dispatchMessage):
(IPC::Connection::dispatchOneIncomingMessage):
(IPC::Connection::dispatchIncomingMessages):
- Platform/IPC/Connection.h:
(IPC::Connection::WTF_GUARDED_BY_LOCK):
- 11:41 AM Changeset in webkit [277805] by
-
- 46 edits in trunk/Source/WebCore
Use CheckedLock more in WebCore
https://bugs.webkit.org/show_bug.cgi?id=226026
Reviewed by Geoffrey Garen.
Use CheckedLock more in WebCore to benefit from Clang Thread Safety Analysis.
- Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
(WebCore::IDBObjectStore::rollbackForVersionChangeAbort):
(WebCore::IDBObjectStore::visitReferencedIndexes const):
(WebCore::IDBObjectStore::renameReferencedIndex):
- Modules/indexeddb/IDBObjectStore.h:
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::objectStore):
(WebCore::IDBTransaction::internalAbort):
(WebCore::IDBTransaction::createObjectStore):
(WebCore::IDBTransaction::renameObjectStore):
(WebCore::IDBTransaction::renameIndex):
(WebCore::IDBTransaction::deleteObjectStore):
(WebCore::IDBTransaction::visitReferencedObjectStores const):
- Modules/indexeddb/IDBTransaction.h:
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::openDatabase):
(WebCore::IDBClient::IDBConnectionProxy::deleteDatabase):
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest):
(WebCore::IDBClient::IDBConnectionProxy::saveOperation):
(WebCore::IDBClient::IDBConnectionProxy::completeOperation):
(WebCore::IDBClient::IDBConnectionProxy::fireVersionChangeEvent):
(WebCore::IDBClient::IDBConnectionProxy::notifyOpenDBRequestBlocked):
(WebCore::IDBClient::IDBConnectionProxy::establishTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didStartTransaction):
(WebCore::IDBClient::IDBConnectionProxy::commitTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didCommitTransaction):
(WebCore::IDBClient::IDBConnectionProxy::abortTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didAbortTransaction):
(WebCore::IDBClient::IDBConnectionProxy::didCloseFromServer):
(WebCore::IDBClient::IDBConnectionProxy::connectionToServerLost):
(WebCore::IDBClient::IDBConnectionProxy::scheduleMainThreadTasks):
(WebCore::IDBClient::IDBConnectionProxy::handleMainThreadTasks):
(WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::registerDatabaseConnection):
(WebCore::IDBClient::IDBConnectionProxy::unregisterDatabaseConnection):
(WebCore::IDBClient::IDBConnectionProxy::forgetActiveOperations):
(WebCore::IDBClient::IDBConnectionProxy::forgetTransaction):
(WebCore::IDBClient::IDBConnectionProxy::forgetActivityForCurrentThread):
(WebCore::IDBClient::IDBConnectionProxy::setContextSuspended):
- Modules/indexeddb/client/IDBConnectionProxy.h:
- Modules/mediastream/RTCRtpSFrameTransformer.cpp:
(WebCore::RTCRtpSFrameTransformer::setEncryptionKey):
(WebCore::RTCRtpSFrameTransformer::decryptFrame):
(WebCore::RTCRtpSFrameTransformer::encryptFrame):
- Modules/mediastream/RTCRtpSFrameTransformer.h:
- Modules/mediastream/RTCRtpScriptTransform.cpp:
(WebCore::RTCRtpScriptTransform::setTransformer):
(WebCore::RTCRtpScriptTransform::setupTransformer):
(WebCore::RTCRtpScriptTransform::clear):
- Modules/mediastream/RTCRtpScriptTransform.h:
- Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:
(WebCore::LibWebRTCDataChannelHandler::setClient):
(WebCore::LibWebRTCDataChannelHandler::checkState):
(WebCore::LibWebRTCDataChannelHandler::OnMessage):
(WebCore::LibWebRTCDataChannelHandler::OnBufferedAmountChange):
- Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
- Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.cpp:
(WebCore::LibWebRTCRtpTransformBackend::setInputCallback):
(WebCore::LibWebRTCRtpTransformBackend::setOutputCallback):
(WebCore::LibWebRTCRtpTransformBackend::processTransformedFrame):
(WebCore::LibWebRTCRtpTransformBackend::Transform):
- Modules/mediastream/libwebrtc/LibWebRTCRtpTransformBackend.h:
- inspector/agents/WebHeapAgent.cpp:
(WebCore::SendGarbageCollectionEventsTask::addGarbageCollection):
(WebCore::SendGarbageCollectionEventsTask::reset):
(WebCore::SendGarbageCollectionEventsTask::timerFired):
- page/ResourceUsageThread.cpp:
(WebCore::ResourceUsageThread::addObserver):
(WebCore::ResourceUsageThread::removeObserver):
(WebCore::ResourceUsageThread::waitUntilObservers):
(WebCore::ResourceUsageThread::notifyObservers):
- page/ResourceUsageThread.h:
- page/WheelEventTestMonitor.cpp:
(WebCore::WheelEventTestMonitor::clearAllTestDeferrals):
(WebCore::WheelEventTestMonitor::setTestCallbackAndStartMonitoring):
(WebCore::WheelEventTestMonitor::deferForReason):
(WebCore::WheelEventTestMonitor::removeDeferralForReason):
(WebCore::WheelEventTestMonitor::receivedWheelEvent):
(WebCore::WheelEventTestMonitor::checkShouldFireCallbacks):
- page/WheelEventTestMonitor.h:
(WebCore::WheelEventTestMonitor::WTF_GUARDED_BY_LOCK):
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::computeWheelProcessingSteps):
(WebCore::ScrollingTree::determineWheelEventProcessing):
(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::commitTreeState):
(WebCore::ScrollingTree::mainFrameScrollPosition const):
(WebCore::ScrollingTree::setMainFrameScrollPosition):
(WebCore::ScrollingTree::setGestureState):
(WebCore::ScrollingTree::gestureState):
(WebCore::ScrollingTree::eventTrackingTypeForPoint):
(WebCore::ScrollingTree::isRubberBandInProgressForNode):
(WebCore::ScrollingTree::setRubberBandingInProgressForNode):
(WebCore::ScrollingTree::isUserScrollInProgressForNode):
(WebCore::ScrollingTree::setUserScrollInProgressForNode):
(WebCore::ScrollingTree::clearNodesWithUserScrollInProgress):
(WebCore::ScrollingTree::isScrollSnapInProgressForNode):
(WebCore::ScrollingTree::setNodeScrollSnapInProgress):
(WebCore::ScrollingTree::setMainFramePinnedState):
(WebCore::ScrollingTree::setMainFrameCanRubberBand):
(WebCore::ScrollingTree::mainFrameCanRubberBandInDirection):
(WebCore::ScrollingTree::addPendingScrollUpdate):
(WebCore::ScrollingTree::takePendingScrollUpdates):
(WebCore::ScrollingTree::setScrollPinningBehavior):
(WebCore::ScrollingTree::scrollPinningBehavior):
(WebCore::ScrollingTree::willWheelEventStartSwipeGesture):
(WebCore::ScrollingTree::windowScreenDidChange):
(WebCore::ScrollingTree::displayID):
(WebCore::ScrollingTree::hasProcessedWheelEventsRecently):
(WebCore::ScrollingTree::willProcessWheelEvent):
(WebCore::ScrollingTree::nominalFramesPerSecond):
(WebCore::ScrollingTree::scrollingTreeAsText):
- page/scrolling/ScrollingTree.h:
- page/scrolling/ScrollingTreeLatchingController.cpp:
(WebCore::ScrollingTreeLatchingController::receivedWheelEvent):
(WebCore::ScrollingTreeLatchingController::latchingDataForEvent const):
(WebCore::ScrollingTreeLatchingController::latchedNodeID const):
(WebCore::ScrollingTreeLatchingController::latchedNodeAndSteps const):
(WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):
(WebCore::ScrollingTreeLatchingController::nodeWasRemoved):
(WebCore::ScrollingTreeLatchingController::clearLatchedNode):
- page/scrolling/ScrollingTreeLatchingController.h:
- platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::HRTFDatabaseLoader::loadAsynchronously):
(WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):
- platform/audio/HRTFDatabaseLoader.h:
- platform/audio/cocoa/AudioDestinationCocoa.cpp:
(WebCore::AudioDestinationCocoa::hasEnoughFrames const):
(WebCore::AudioDestinationCocoa::render):
(WebCore::AudioDestinationCocoa::renderOnRenderingThead):
- platform/audio/cocoa/AudioDestinationCocoa.h:
- platform/encryptedmedia/CDMProxy.cpp:
(WebCore::CDMProxy::instance const):
(WebCore::CDMProxy::setInstance):
(WebCore::CDMProxy::startedWaitingForKey const):
(WebCore::CDMProxy::stoppedWaitingForKey const):
- platform/encryptedmedia/CDMProxy.h:
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::setDelayCallbacks const):
(WebCore::MediaPlayerPrivateAVFoundation::clearMainThreadPendingFlag):
(WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSample):
- platform/graphics/cg/IOSurfacePool.cpp:
(WebCore::IOSurfacePool::takeSurface):
(WebCore::IOSurfacePool::addSurface):
(WebCore::IOSurfacePool::setPoolSize):
(WebCore::IOSurfacePool::collectionTimerFired):
(WebCore::IOSurfacePool::discardAllSurfaces):
- platform/graphics/cg/IOSurfacePool.h:
(WebCore::IOSurfacePool::WTF_GUARDED_BY_LOCK):
- platform/graphics/cg/SubimageCacheWithTimer.cpp:
(WebCore::SubimageCacheWithTimer::pruneCacheTimerFired):
(WebCore::SubimageCacheWithTimer::subimage):
(WebCore::SubimageCacheWithTimer::clearImageAndSubimages):
(WebCore::SubimageCacheWithTimer::clearAll):
- platform/graphics/cg/SubimageCacheWithTimer.h:
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontDatabase::collectionForFamily):
(WebCore::FontDatabase::clear):
- platform/network/cocoa/WebCoreNSURLSession.mm:
(WebCore::WebCoreNSURLSessionDataTaskClient::clearTask):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataSent):
(WebCore::WebCoreNSURLSessionDataTaskClient::responseReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::shouldCacheResponse):
(WebCore::WebCoreNSURLSessionDataTaskClient::dataReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::redirectReceived):
(WebCore::WebCoreNSURLSessionDataTaskClient::accessControlCheckFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFailed):
(WebCore::WebCoreNSURLSessionDataTaskClient::loadFinished):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate detachHandle]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):
- storage/StorageQuotaManager.cpp:
(WebCore::StorageQuotaManager::requestSpaceOnBackgroundThread):
(WebCore::StorageQuotaManager::resetQuotaUpdatedBasedOnUsageForTesting):
(WebCore::StorageQuotaManager::resetQuotaForTesting):
- storage/StorageQuotaManager.h:
(WebCore::StorageQuotaManager::WTF_GUARDED_BY_LOCK):
- workers/WorkerOrWorkletScriptController.cpp:
(WebCore::WorkerOrWorkletScriptController::scheduleExecutionTermination):
(WebCore::WorkerOrWorkletScriptController::isTerminatingExecution const):
- workers/WorkerOrWorkletScriptController.h:
(WebCore::WorkerOrWorkletScriptController::WTF_GUARDED_BY_LOCK):
- 11:25 AM Changeset in webkit [277804] by
-
- 5 edits in trunk/Source/WebCore
[GPU Process] ItemHandle::safeCopy is not actually safe, does no bounds-checking
https://bugs.webkit.org/show_bug.cgi?id=226022
rdar://78181677
Reviewed by Chris Dumez.
Currently, it's possible for DisplayList iteration to trigger out-of-bounds access when decoding inline display
list items; this patch adds hardening to prevent this. See below for more details.
- platform/graphics/displaylists/DisplayListItemBuffer.cpp:
Add an
ItemTypeargument tosafeCopy, and use thisItemTypeinstead of assuming that the item type of the
ItemHandlewe're copying from hasn't changed since we've validated it.
(WebCore::DisplayList::ItemHandle::safeCopy const):
- platform/graphics/displaylists/DisplayListItemBuffer.h:
- platform/graphics/displaylists/DisplayListIterator.cpp:
(WebCore::DisplayList::DisplayList::Iterator::updateCurrentItem):
Verify that the remaining item buffer capacity is at least as large as
paddedSizeOfTypeAndItem, such that we
won't go out of bounds when attempting to read from the item handle insafeCopy.
- platform/graphics/displaylists/InMemoryDisplayList.cpp:
(WebCore::DisplayList::InMemoryDisplayList::ReadingClient::decodeItem):
- 11:12 AM Changeset in webkit [277803] by
-
- 8 edits in branches/safari-612.1.15.0-branch/Source
Versioning.
WebKit-7612.1.15.0.3
- 11:08 AM Changeset in webkit [277802] by
-
- 36 edits in trunk/Source/WebCore
Allow passing a VisibleRectContext when calculating the clipped overflow rect
https://bugs.webkit.org/show_bug.cgi?id=226007
Reviewed by Simon Fraser.
Refactor rendering classes to allow specifying a VisibleRectContext
when calculating the clipped overflow rect.
No new tests, this is just a small refactor.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isOffScreen const):
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::renderedRectsForMarkers):
- page/SpatialNavigation.cpp:
(WebCore::hasOffscreenRect):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::clippedOverflowRect const):
- rendering/RenderBox.h:
- rendering/RenderElement.cpp:
(WebCore::RenderElement::mayCauseRepaintInsideViewport const):
(WebCore::RenderElement::isVisibleInDocumentRect const):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::clippedOverflowRect const):
- rendering/RenderInline.h:
- rendering/RenderLineBreak.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::pixelSnappedAbsoluteClippedOverflowRect const):
(WebCore::RenderObject::clippedOverflowRect const):
(WebCore::RenderObject::computeRect const):
(WebCore::absoluteRectsForRangeInText):
- rendering/RenderObject.h:
(WebCore::RenderObject::absoluteClippedOverflowRectForRepaint const):
(WebCore::RenderObject::clippedOverflowRectForRepaint const):
(WebCore::RenderObject::outlineBoundsForRepaint const):
(WebCore::RenderObject::computeAbsoluteRepaintRect const):
(WebCore::RenderObject::computeRectForRepaint const):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::clippedOverflowRect const):
- rendering/RenderReplaced.h:
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::clippedOverflowRect const):
- rendering/RenderTableCell.h:
- rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::clippedOverflowRect const):
- rendering/RenderTableCol.h:
- rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::layout):
(WebCore::RenderTableRow::clippedOverflowRect const):
- rendering/RenderTableRow.h:
- rendering/RenderText.cpp:
(WebCore::RenderText::clippedOverflowRect const):
- rendering/RenderText.h:
- rendering/RenderView.cpp:
(WebCore::RenderView::updateVisibleViewportRect):
- rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::clippedOverflowRect const):
- rendering/svg/RenderSVGForeignObject.h:
- rendering/svg/RenderSVGGradientStop.h:
- rendering/svg/RenderSVGHiddenContainer.h:
- rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::clippedOverflowRect const):
- rendering/svg/RenderSVGInline.h:
- rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::clippedOverflowRect const):
- rendering/svg/RenderSVGModelObject.h:
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::clippedOverflowRect const):
- rendering/svg/RenderSVGRoot.h:
- rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::clippedOverflowRect const):
- rendering/svg/RenderSVGText.h:
- rendering/svg/SVGRenderTreeAsText.cpp:
- 11:02 AM Changeset in webkit [277801] by
-
- 2 edits in trunk/Tools
Unreviewed contributor name update.
- Scripts/webkitpy/common/config/contributors.json:
- 11:02 AM Changeset in webkit [277800] by
-
- 8 edits in branches/safari-612.1.15.1-branch/Source
Versioning.
WebKit-7612.1.15.1.6
- 10:43 AM Changeset in webkit [277799] by
-
- 2 edits in trunk/Source/WebCore
Add null checks in FrameSelection::selectFrameElementInParentIfFullySelected
https://bugs.webkit.org/show_bug.cgi?id=225973
<rdar://78200977>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-05-20
Reviewed by Katherine Cheney.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::selectFrameElementInParentIfFullySelected):
- 10:37 AM Changeset in webkit [277798] by
-
- 8 edits in branches/safari-611-branch/Source
Versioning.
WebKit-7611.3.5
- 10:33 AM Changeset in webkit [277797] by
-
- 5 edits in trunk/Source/WebCore
[Modern Media Controls] add a suffix based on
TextTrack::Kindwhen generating display names forTrackBase
https://bugs.webkit.org/show_bug.cgi?id=225995
Reviewed by Eric Carlson.
- page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::buildDisplayStringForTrackBase):
- platform/LocalizedStrings.h:
- platform/LocalizedStrings.cpp:
(WebCore::captionsTextTrackWithoutLabelMenuItemText): Added.
(WebCore::descriptionsTextTrackWithoutLabelMenuItemText): Added.
(WebCore::chaptersTextTrackWithoutLabelMenuItemText): Added.
(WebCore::metadataTextTrackWithoutLabelMenuItemText): Added.
- en.lproj/Localizable.strings:
- 10:32 AM Changeset in webkit [277796] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Source/WebCore
Cherry-pick r277784. rdar://problem/78264934
CRASH: Null-pointer deref in MediaSessionManagerCocoa::setNowPlayingInfo()
https://bugs.webkit.org/show_bug.cgi?id=225999
<rdar://78232970>
Reviewed by Eric Carlson.
Null-check
nowPlayingInfo.artwork->imageDatabefore dereferencing.
- platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277784 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:32 AM Changeset in webkit [277795] by
-
- 3 edits2 adds in branches/safari-612.1.15.1-branch
Cherry-pick r277726. rdar://problem/78260457
[Mac] MSE-based video pauses when put in background; PiP context menu disabled
https://bugs.webkit.org/show_bug.cgi?id=225958
<rdar://78130303>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-has-audio-video.html
In r277116, in order to reduce the CPU usage incurred when pushing state changes from
the GPU process to the WebContent process, state changes tohasAudioandhasVideo
were now only updated when the MediaPlayer indicated that itscharacteristicsChanged().
However, in SourceBufferPrivateAVFObjC, this call was performed too early, before the
SourceBuffer in the WebContent process had informed SourceBufferPrivate of newly added
audio and video tracks. Thus the cached values ofhasAudioandhasVideoinside the
WebContent process were never updated.
Call
characteristicsChanged()from the callback handler ofdidReceiveInitializationSegment(),
which will be called only after the WebContent process completes its handling of the
new initialization segment, which includes telling the SourceBufferPrivate in the GPU
process about newly added audio and video tracks.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
LayoutTests:
- media/media-source/media-source-has-audio-video-expected.txt: Added.
- media/media-source/media-source-has-audio-video.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277726 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:32 AM Changeset in webkit [277794] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Source/WebKit
Cherry-pick r277518. rdar://problem/78260425
Web Inspector:
_WKInspectorleaksWebInspectorUIProxy
https://bugs.webkit.org/show_bug.cgi?id=225815
Reviewed by Tim Horton.
Add a missing call in
_WKInspector's destructor to destruct theWebInspectorUIProxyin API object storage.
- UIProcess/API/Cocoa/_WKInspector.mm: (-[_WKInspector dealloc]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277518 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:28 AM Changeset in webkit [277793] by
-
- 3 edits in trunk/Source/WebCore
[Modern Media Controls] should not use
codePointCompareas it doesn't take into account language specific sorting rules
https://bugs.webkit.org/show_bug.cgi?id=225993
Reviewed by Eric Carlson.
- page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::sortedTrackListForMenu):
- page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::textTrackCompare):
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):
- 10:08 AM Changeset in webkit [277792] by
-
- 13 edits in trunk/Source
GraphicsLayer::setName() causes heap fragmentation
https://bugs.webkit.org/show_bug.cgi?id=225838
Reviewed by Simon Fraser.
Profiling for heap fragmentation shows that GraphicsLayer::setName() is
a top contributor. Worth about 5MB maximum on GMail.
Use MAKE_STATIC_STRING_IMPL for our constant layer names so we end up
with only one copy and no heap allocation in the many cases that are
compile-time constants.
Source/WebCore:
- display/compositing/DisplayLayerController.cpp:
(WebCore::Display::LayerController::setupRootLayerHierarchy):
- page/PageOverlayController.cpp:
(WebCore::PageOverlayController::createRootLayersIfNeeded):
(WebCore::PageOverlayController::installPageOverlay):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::setContentsToModel):
(WebCore::GraphicsLayerCA::updateBackdropFilters):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateClippingStrategy):
(WebCore::GraphicsLayerCA::updateContentsRects):
- platform/graphics/ca/TileCoverageMap.cpp:
(WebCore::TileCoverageMap::TileCoverageMap):
- platform/graphics/ca/win/CACFLayerTreeHost.cpp:
(WebCore::CACFLayerTreeHost::initialize):
(WebCore::CACFLayerTreeHost::updateDebugInfoLayer):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
(WebCore::RenderLayerCompositor::ensureRootLayer):
Source/WebKit:
- WebProcess/Inspector/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::showPaintRect):
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::CompositingCoordinator):
- WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:
(WebKit::LayerTreeHost::LayerTreeHost):
- WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:
(WebKit::LayerTreeHost::LayerTreeHost):
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
- 10:00 AM Changeset in webkit [277791] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Add missing method in sandbox IOKit filter
https://bugs.webkit.org/show_bug.cgi?id=225975
<rdar://78212330>
Reviewed by Brent Fulgham.
Add missing method in IOSurfaceRootUserClient filter on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 9:45 AM Changeset in webkit [277790] by
-
- 2 edits in trunk/Source/WebCore
[Modern Media Controls] should not include
TextTrackwhen sortingTextTrackListif it doesn't have a desiredTextTrack::KindwhenCaptionDisplayMode::Manual
https://bugs.webkit.org/show_bug.cgi?id=225992
Reviewed by Eric Carlson.
- page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):
- 9:13 AM Changeset in webkit [277789] by
-
- 2 edits in trunk/Source/WebCore
AirPlay icon of the Vimeo.com video player is missing after reloading the page
https://bugs.webkit.org/show_bug.cgi?id=226005
Reviewed by Eric Carlson.
Some sites, e.g., vimeo.com, depends on the "webkitplaybacktargetavailabilitychanged"
event to setup the player related to AirPlay feature properly. When we reload a
page including media element(s), the element's media session will be constructed
withm_hasPlaybackTargetsbetrue, so no "webkitplaybacktargetavailabilitychanged"
event will be fired.
This patch ensures that an
HTMLMediaElementalways fires that event when we
reload the page.
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::MediaElementSession):
- 9:12 AM Changeset in webkit [277788] by
-
- 2 edits in trunk/Source/WebCore
AirPlay icon of the Vimeo.com video player is missing
https://bugs.webkit.org/show_bug.cgi?id=226004
Reviewed by Eric Carlson.
With the optimizations in r276883, an
HTMLMediaElementwill activate its
MediaSessionjust before creating itsMediaPlayerinsideprepareForLoad()
orloadNextSourceChild(), and will deactivate itsMediaSessionafter tearing
down itsMediaPlayerinsidemediaLoadingFailed().
However, with these changes, when a new
HTMLMediaElementis created and an
event handler of "webkitplaybacktargetavailabilitychanged" is added to the element,
the element'sMediaSessionmight be inactive when function
MediaSessionManageriOS::configureWireLessTargetMonitoring()runs, so its
MediaSessionwon't monitor wireless routes, and no "webkitplaybacktargetavailabilitychanged"
will be fired thereafter.
This patch fixes this issue by activating an
HTMLMediaElement'sMediaSession
when adding the first event handler to "webkitplaybacktargetavailabilitychanged" event.
It also keeps theMediaSessionactive if there is event handler to
"webkitplaybacktargetavailabilitychanged" after tearing down theHTMLMediaElement's
MediaPlayer(inHTMLMediaElement::mediaLoadingFailed()).
We can improve the fix by refactoring the way to activate/deactivate
anHTMLMediaElement'sMediaSession.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::loadNextSourceChild):
(WebCore::HTMLMediaElement::mediaLoadingFailed):
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::createMediaPlayer):
Replace twomediaSession().setActive(true);inprepareForLoad()
andloadNextSourceChild()with one increateMediaPlayer().
- 9:11 AM Changeset in webkit [277787] by
-
- 26 edits in trunk
Use CheckedLock more in WebKit2 code
https://bugs.webkit.org/show_bug.cgi?id=226001
Reviewed by Alex Christensen.
Use CheckedLock more in WebKit2 code to benefit from Clang Thread Safety Analysis.
- NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm:
(LegacyCustomProtocolManager::networkProcessCreated):
(WebKit::LegacyCustomProtocolManager::registerScheme):
(WebKit::LegacyCustomProtocolManager::unregisterScheme):
(WebKit::LegacyCustomProtocolManager::supportsScheme):
(WebKit::LegacyCustomProtocolManager::protocolForID):
- NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.cpp:
(WebKit::LegacyCustomProtocolManager::addCustomProtocol):
(WebKit::LegacyCustomProtocolManager::removeCustomProtocol):
- NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::addSessionStorageQuotaManager):
(WebKit::NetworkProcess::removeSessionStorageQuotaManager):
(WebKit::NetworkProcess::setSessionStorageQuotaManagerIDBRootPath):
(WebKit::NetworkProcess::resetQuota):
(WebKit::NetworkProcess::storageQuotaManager):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::suspend):
(WebKit::StorageManagerSet::resume):
- NetworkProcess/WebStorage/StorageManagerSet.h:
- NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h:
- NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm:
(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):
- Shared/BlockingResponseMap.h:
(BlockingResponseMap::waitForResponse):
(BlockingResponseMap::didReceiveResponse):
- Shared/Cocoa/XPCEndpointClient.h:
- Shared/Cocoa/XPCEndpointClient.mm:
(WebKit::XPCEndpointClient::setEndpoint):
(WebKit::XPCEndpointClient::connection):
- UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::request const):
(WebKit::WebURLSchemeTask::willPerformRedirection):
(WebKit::WebURLSchemeTask::didPerformRedirection):
(WebKit::WebURLSchemeTask::pageDestroyed):
(WebKit::WebURLSchemeTask::stop):
(WebKit::WebURLSchemeTask::nsRequest const):
- UIProcess/WebURLSchemeTask.h:
- UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::addObserver):
(WebKit::DisplayLink::removeObserver):
(WebKit::DisplayLink::removeObservers):
(WebKit::DisplayLink::incrementFullSpeedRequestClientCount):
(WebKit::DisplayLink::decrementFullSpeedRequestClientCount):
(WebKit::DisplayLink::setPreferredFramesPerSecond):
(WebKit::DisplayLink::notifyObserversDisplayWasRefreshed):
- UIProcess/mac/DisplayLink.h:
- WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::ensureGPUProcessConnectionOnMainThread):
(WebKit::LibWebRTCCodecs::ensureGPUProcessConnectionAndDispatchToThread):
(WebKit::LibWebRTCCodecs::createDecoder):
(WebKit::LibWebRTCCodecs::decodeFrame):
(WebKit::LibWebRTCCodecs::createEncoder):
(WebKit::LibWebRTCCodecs::encodeFrame):
(WebKit::LibWebRTCCodecs::setEncodeRates):
(WebKit::LibWebRTCCodecs::gpuProcessConnectionDidClose):
(WebKit::LibWebRTCCodecs::setLoggingLevel):
- WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
- WebProcess/Plugins/PluginProcessConnectionManager.cpp:
(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):
(WebKit::PluginProcessConnectionManager::removePluginProcessConnection):
(WebKit::PluginProcessConnectionManager::pluginProcessCrashed):
- WebProcess/Plugins/PluginProcessConnectionManager.h:
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::addScrollingTreeForPage):
(WebKit::EventDispatcher::removeScrollingTreeForPage):
(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::takeQueuedTouchEventsForPage):
(WebKit::EventDispatcher::touchEvent):
(WebKit::EventDispatcher::dispatchTouchEvents):
(WebKit::EventDispatcher::notifyScrollingTreesDisplayWasRefreshed):
- WebProcess/WebPage/EventDispatcher.h:
- WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
(WebKit::ViewUpdateDispatcher::dispatchVisibleContentRectUpdate):
- WebProcess/WebPage/ViewUpdateDispatcher.h:
- 9:00 AM Changeset in webkit [277786] by
-
- 2 edits in trunk/Source/JavaScriptCore
$vm should have a function for checking if ASan is enabled similar to $vm.assertEnabled
https://bugs.webkit.org/show_bug.cgi?id=226019
Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2021-05-20
Reviewed by Mark Lam.
Add method $vm.asanEnabled(), which parallels $vm.assertEnabled(), and allows checking at
runtime whether the current JavaScriptCore build is instrumented with AddressSanitizer.
- tools/JSDollarVM.cpp:
- 8:49 AM Changeset in webkit [277785] by
-
- 3 edits in trunk/Source/ThirdParty/libwebrtc
Enable VCP for H264 baseline
https://bugs.webkit.org/show_bug.cgi?id=224043
Reviewed by Eric Carlson.
Enable VCP for baseline past BigSur/iOS14.
Add macros and introduce _useBaseline in addition to _useVCP for that purpose.
- Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
- Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
(-[RTCVideoEncoderH264 initWithCodecInfo:]):
(-[RTCVideoEncoderH264 configureCompressionSession]):
- 8:41 AM Changeset in webkit [277784] by
-
- 2 edits in trunk/Source/WebCore
CRASH: Null-pointer deref in MediaSessionManagerCocoa::setNowPlayingInfo()
https://bugs.webkit.org/show_bug.cgi?id=225999
<rdar://78232970>
Reviewed by Eric Carlson.
Null-check
nowPlayingInfo.artwork->imageDatabefore dereferencing.
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):
- 8:33 AM Changeset in webkit [277783] by
-
- 6 edits2 adds in trunk
<video> rendered inside <template> shows black for webcam stream (Safari 14.0.3 only)
https://bugs.webkit.org/show_bug.cgi?id=222115
<rdar://problem/74546659>
Reviewed by Eric Carlson.
Source/WebCore:
Update element visibility if changing of document. Add internals API to test this.
Test: fast/media/template-hidden.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::didMoveToNewDocument):
- testing/Internals.cpp:
(WebCore::Internals::isMediaElementHidden):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- fast/media/template-hidden-expected.txt: Added.
- fast/media/template-hidden.html: Added.
- 7:45 AM Changeset in webkit [277782] by
-
- 2 edits in trunk/Tools
[webkitpy] Forward booted simulators to children processes
https://bugs.webkit.org/show_bug.cgi?id=225933
<rdar://problem/78169900>
Rubber-stamped by Aakash Jain.
- Scripts/webkitpy/api_tests/runner.py:
(setup_shard): Set DeviceManager global variable from parent process.
(Runner.command_for_port): Use Port's device manager instead of simulated device manager.
(Runner.run): Pass DeviceManager details to children processes.
- 6:48 AM Changeset in webkit [277781] by
-
- 11 edits in trunk/Tools
Store whether a test is slow on TestInput
https://bugs.webkit.org/show_bug.cgi?id=224563
Reviewed by Jonathan Bedard.
Additionally, notably, this makes a TestResult store a TestInput rather than a
test_name string. With that there, we then don't need to punch through multiple
layers to find out whether a test is slow or not. Note that replacing the
test_name with a Test or TestInput as part of removing the 1:1 relationship
between files and tests.
With this done, we don't have to pass around a test_is_slow_fn, as we can directly
look at the result to determine whether or not it is slow.
- Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
(LayoutTestRunner.init): Remove test_is_slow_fn argument
(LayoutTestRunner._mark_interrupted_tests_as_skipped): Remove test_is_slow argument
(LayoutTestRunner._update_summary_with_result): Remove test_is_slow argument
(Worker._run_test_in_another_thread): Remove test_is_slow argument
- Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py:
(LayoutTestRunnerTests._runner): Remove test_is_slow_fn argument
(LayoutTestRunnerTests.test_update_summary_with_result): TestResult arg rename
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager): Improve docstring
(Manager.init): Tidy up reading tests-options.json
(Manager._test_input_for_file): Set is_slow
(Manager.run): Remove test_is_slow_fn argument
(Manager._look_for_new_crash_logs): Remove test_is_slow_fn/test_is_slow argument
- Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
(SingleTestRunner.init): Store TestInput object
(SingleTestRunner._test_name): Replacement getter
(SingleTestRunner._should_run_pixel_test): Replacement getter
(SingleTestRunner._should_dump_jsconsolelog_in_stderr): Replacement getter
(SingleTestRunner._reference_files): Replacement getter
(SingleTestRunner._timeout): Replacement getter
(SingleTestRunner._compare_output): Pass TestInput to TestResult
(SingleTestRunner._run_reftest): Pass TestInput to TestResult
(SingleTestRunner._compare_output_with_reference): Pass TestInput to TestResult
- Scripts/webkitpy/layout_tests/models/test_input.py:
(TestInput): Add is_slow boolean
- Scripts/webkitpy/layout_tests/models/test_results.py:
(TestResult.init): Rename test_name -> test_input, construct TestInput if we must
(TestResult.test_name): Replacement getter
- Scripts/webkitpy/layout_tests/models/test_results_unittest.py:
(TestResultsTest.test_pickle_roundtrip): TestResult arg rename
- Scripts/webkitpy/layout_tests/models/test_run_results.py:
(TestRunResults.add): Remove test_is_slow argument, look at TestResult
- Scripts/webkitpy/layout_tests/models/test_run_results_unittest.py:
(summarized_results): Remove test_is_slow argument
- Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(RunTest.test_tests_options): Add a test that test-options.json works
- 6:31 AM Changeset in webkit [277780] by
-
- 4 edits2 adds in trunk
[LFC][TFC] Available space distribution should account for the top and bottom table spacing
https://bugs.webkit.org/show_bug.cgi?id=226003
Reviewed by Antti Koivisto.
Source/WebCore:
The available space for the table content is the table width/height minus the left-right/top-bottom spacing, minus
the additional spacing between the rows/columns.
Tests: fast/inline/vertical-top-on-subpixel-makes-inline-box-overflow.html
fast/layoutformattingcontext/table-simple-row-height.html
- layout/formattingContexts/table/TableLayout.cpp:
(WebCore::Layout::distributeAvailableSpace):
LayoutTests:
- TestExpectations: rendering code disagrees here.
- fast/layoutformattingcontext/table-simple-row-height-expected.html: Added.
- fast/layoutformattingcontext/table-simple-row-height.html: Added.
- 6:24 AM Changeset in webkit [277779] by
-
- 2 edits in trunk/Source/WebKit
The test fast/images/eps-as-image.html is a constant crash
https://bugs.webkit.org/show_bug.cgi?id=225989
<rdar://77354349>
Reviewed by Maciej Stachowiak.
This is caused by an incorrect sandbox rule. A related service is referred to as an XPC service, but it should be a global name.
- WebProcess/com.apple.WebProcess.sb.in:
- 6:21 AM Changeset in webkit [277778] by
-
- 4 edits2 adds in trunk
Value of a color input does not update visually when using setAttribute
https://bugs.webkit.org/show_bug.cgi?id=166930
<rdar://problem/29983218>
Reviewed by Simon Fraser.
Source/WebCore:
Test: fast/forms/color/color-input-set-attribute-value.html
- html/ColorInputType.cpp:
(WebCore::ColorInputType::attributeChanged):
Update the color swatch when the value attribute is changed.
- html/ColorInputType.h:
LayoutTests:
- fast/forms/color/color-input-set-attribute-value-expected.html: Added.
- fast/forms/color/color-input-set-attribute-value.html: Added.
- 1:00 AM Changeset in webkit [277777] by
-
- 5 edits2 adds in trunk
[css-flexbox] Wrong height of an empty table inside an orthogonal flex parent
https://bugs.webkit.org/show_bug.cgi?id=225339
Patch by Felipe Erias <Felipe Erias> on 2021-05-20
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:
Add a test for an empty table inside a flexbox container, where the logical heights of both elements
are orthogonal to each other (the table has vertical writing mode and the flexbox uses row direction).
This is a flipped version of table-as-item-specified-height.html.
- web-platform-tests/css/css-flexbox/table-as-item-specified-width-vertical-expected.html: Added.
- web-platform-tests/css/css-flexbox/table-as-item-specified-width-vertical.html: Added.
Source/WebCore:
When setting the height of an empty table, give precedence to the overriding value if it has been set.
Do not cache the height of that empty table as the intrinsic content height, because doing so may cause
layout problems (the table is actually empty and may be assigned a different height by its parent).
Test: imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-specified-height.html
imported/w3c/web-platform-tests/css/css-flexbox/table-as-item-specified-width-vertical.html
- rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
LayoutTests:
- TestExpectations: Remove one WPT test that now passes.
May 19, 2021:
- 11:46 PM Changeset in webkit [277776] by
-
- 6 edits in trunk/Source/WebCore
VP9 powerEfficient detection is broken in STP124
https://bugs.webkit.org/show_bug.cgi?id=225910
rdar://78144486
Reviewed by Darin Adler.
Change r273564 made an assumption that the first point of entry in the
media stack is when a PlatformMediaSessionManager is created and move
the initialization of some video codecs there.
However, this isn't always the case. Media Capabilities JS API can cause
queries to be made to the media engine without creating a media element.
We are unfortunately unable to properly write a test that would prevent
this regression to happen again as this is hardware dependent.
- platform/audio/cocoa/MediaSessionManagerCocoa.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):
(WebCore::MediaSessionManagerCocoa::EnsureCodecsRegistered): Add method, use C++17 static
initializer which avoids any ambiguity in regards to thread-safety.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
- 10:05 PM Changeset in webkit [277775] by
-
- 5 edits2 adds in trunk
Scrolling must be done after the layout when doing full page zoom
https://bugs.webkit.org/show_bug.cgi?id=225730
Reviewed by Simon Fraser.
Source/WebCore:
Previously, the actual scroll was executed before the layout with the zoomed position.
It sometimes makes the scroll position exceed the page height, and cannot retain pageYOffset.
In the user experience perspective, the user may miss what they are looking at after zoom.
This patch makes the scroll happen after the layout, with the zoomed position.
Test: LayoutTests\fast\scrolling\page-y-offset-should-not-be-changed-after-zoom.html
- page/Frame.cpp:
(WebCore::Frame::setPageAndTextZoomFactors): Makes the scroll happen after the layout.
Source/WebKit:
Add check to disallow negative or zero zoom value.
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageZoomFactor):
LayoutTests:
Added a testcase to ensure that scroll position is not changed after zoom.
- fast/scrolling/page-y-offset-should-not-be-changed-after-zoom-expected.txt: Added.
- fast/scrolling/page-y-offset-should-not-be-changed-after-zoom.html: Added.
- 10:05 PM Changeset in webkit [277774] by
-
- 4 edits in trunk/Source/WebKit
[GPUProcess] It is not safe to call GraphicsContext::paintFrameForMedia() off the main thread
https://bugs.webkit.org/show_bug.cgi?id=225996
Reviewed by Simon Fraser.
It is not safe to call GraphicsContext::paintFrameForMedia() off the main thread because it
relies on the MediaPlayer / MediaPlayerPrivate objects, which are main-thread object. Making
this function thread-safe would be a significant amount of work. As a result, I am simply
calling callOnMainThreadAndWait() in RemoteRenderingBackend::applyMediaItem(). Note that this
code path is only used when painting a video to a canvas.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::applyMediaItem):
Make sure we call paintFrameForMedia() on the main thread.
- GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::deleteMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::mediaPlayer):
- GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
Drop lock that is no longer needed now that mediaPlayer() is always called on the main thread.
- 8:34 PM Changeset in webkit [277773] by
-
- 2 edits in trunk/Source/JavaScriptCore
AbstractSlotVisitor::containsOpaqueRoot() should only declare didFindOpaqueRoot if the root is actually found.
https://bugs.webkit.org/show_bug.cgi?id=226000
rdar://78208014
Reviewed by Robin Morisset.
It was erroneously calling didFindOpaqueRoot() all the time even when the root is
not found. This only affects the GC verifier tool. It has no effect on production
code.
- heap/AbstractSlotVisitorInlines.h:
(JSC::AbstractSlotVisitor::containsOpaqueRoot const):
- 7:26 PM Changeset in webkit [277772] by
-
- 18 edits3 adds in trunk
Add a way to create
"wheel"events from gesture/touch events
https://bugs.webkit.org/show_bug.cgi?id=225788
<rdar://problem/76714308>
Reviewed by Simon Fraser.
Source/WebCore:
Test: fast/events/gesture/wheel-from-gesture.html
Other browsers have taken the approach of dispatching
"wheel"events withctrlKeyand
deltaYwhen handling multi-touch pinch-to-zoom gestures. Add helper functions to do this.
- platform/PlatformWheelEvent.h:
- platform/PlatformWheelEvent.cpp:
(WebCore::PlatformWheelEvent::createFromGesture): Added.
Tools:
- WebKitTestRunner/InjectedBundle/Bindings/EventSendingController.idl:
- WebKitTestRunner/InjectedBundle/EventSendingController.h:
- WebKitTestRunner/InjectedBundle/EventSendingController.cpp:
(WTR::EventSendingController::scaleGestureStart): Added.
(WTR::EventSendingController::scaleGestureChange): Added.
(WTR::EventSendingController::scaleGestureEnd): Added.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle):
- WebKitTestRunner/EventSenderProxy.h:
- WebKitTestRunner/mac/EventSenderProxy.mm:
(EventSenderCGGesturePhaseFromNSEventPhase):
(-[EventSenderSyntheticEvent initPressureEventAtLocation:globalLocation:stage:pressure:stageTransition:phase:time:eventNumber:window:]):
(-[EventSenderSyntheticEvent initMagnifyEventAtLocation:globalLocation:magnification:phase:time:eventNumber:window:]): Added.
(-[EventSenderSyntheticEvent magnification]): Added.
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::sendMouseDownToStartPressureEvents):
(WTR::EventSenderProxy::beginPressureEvent):
(WTR::EventSenderProxy::pressureChangeEvent):
(WTR::EventSenderProxy::mouseForceClick):
(WTR::EventSenderProxy::startAndCancelMouseForceClick):
(WTR::EventSenderProxy::mouseMoveTo):
(WTR::EventSenderProxy::scaleGestureStart): Added.
(WTR::EventSenderProxy::scaleGestureChange): Added.
(WTR::EventSenderProxy::scaleGestureEnd): Added.
Allow tests to synthesize scale (a.k.a. magnify) gesture events.
- WebKitTestRunner/InjectedBundle/ios/EventSenderProxyIOS.mm:
(WTR::EventSenderProxy::EventSenderProxy):
Drive-by: RenameeventNumbertom_eventNumbersince it's a member variable.
- DumpRenderTree/Scripts/generate-derived-sources.sh:
- DumpRenderTree/DerivedSources.make:
- WebKitTestRunner/Scripts/generate-derived-sources.sh:
- WebKitTestRunner/DerivedSources.make:
Make sure to pass all feature flags when generating JS files from IDL files.
LayoutTests:
- fast/events/gesture/wheel-from-gesture.html: Added.
- fast/events/gesture/wheel-from-gesture-expected.txt: Added.
- 7:02 PM Changeset in webkit [277771] by
-
- 1 copy in tags/Safari-612.1.15.1.5
Tag Safari-612.1.15.1.5.
- 6:54 PM Changeset in webkit [277770] by
-
- 1 copy in tags/Safari-612.1.15.0.2
Tag Safari-612.1.15.0.2.
- 6:00 PM Changeset in webkit [277769] by
-
- 2 edits in trunk/Tools
Unreviewed, try to fix the internal build after r277740
It seems
keyDatawas intended to be aStringrather than aVector<uint8_t>.
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):
- 5:51 PM Changeset in webkit [277768] by
-
- 6 edits in trunk/Source/WebCore
Introduce SQLiteStatement::columnBlobView()
https://bugs.webkit.org/show_bug.cgi?id=225988
Reviewed by Alex Christensen.
Introduce SQLiteStatement::columnBlobView() to get a "view" to the blob instead
of copying the data. This is more efficient for call sites that do not need to
hold on the the Blob data.
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexInfoTableForIDUpdate):
(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexRecordsTableForIDUpdate):
(WebCore::IDBServer::SQLiteIDBBackingStore::addExistingIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):
- Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
- platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::columnBlob):
(WebCore::SQLiteStatement::columnBlobView):
- platform/sql/SQLiteStatement.h:
(WebCore::SQLiteStatement::BlobView::BlobView):
(WebCore::SQLiteStatement::BlobView::data):
(WebCore::SQLiteStatement::BlobView::size):
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::importRecords):
- 5:33 PM Changeset in webkit [277767] by
-
- 83 edits63 adds in trunk
Add support for Navigation Timing Level 2
https://bugs.webkit.org/show_bug.cgi?id=184363
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- web-platform-tests/navigation-timing/META.yml: Added.
- web-platform-tests/navigation-timing/dom_interactive_image_document-expected.txt: Added.
- web-platform-tests/navigation-timing/dom_interactive_image_document.html: Added.
- web-platform-tests/navigation-timing/dom_interactive_media_document-expected.txt: Added.
- web-platform-tests/navigation-timing/dom_interactive_media_document.html: Added.
- web-platform-tests/navigation-timing/idlharness.window.js:
- web-platform-tests/navigation-timing/nav2_test_attributes_exist-expected.txt: Added.
- web-platform-tests/navigation-timing/nav2_test_attributes_exist.html: Added.
This test fails because we have not implemented transferSize, encodedBodySize, and decodedBodySize as noted in PerformanceResourceTiming.idl
- web-platform-tests/navigation-timing/nav2_test_attributes_values-expected.txt: Added.
- web-platform-tests/navigation-timing/nav2_test_attributes_values.html: Added.
This test fails because we have not implemented transferSize, encodedBodySize, and decodedBodySize as noted in PerformanceResourceTiming.idl
- web-platform-tests/navigation-timing/nav2_test_document_open-expected.txt:
- web-platform-tests/navigation-timing/nav2_test_document_open.html:
- web-platform-tests/navigation-timing/nav2_test_document_replaced-expected.txt:
- web-platform-tests/navigation-timing/nav2_test_document_replaced.html:
- web-platform-tests/navigation-timing/nav2_test_frame_removed-expected.txt:
- web-platform-tests/navigation-timing/nav2_test_instance_accessible_from_the_start-expected.txt:
- web-platform-tests/navigation-timing/nav2_test_instance_accessible_from_the_start.html:
- web-platform-tests/navigation-timing/nav2_test_instance_accessors-expected.txt: Added.
- web-platform-tests/navigation-timing/nav2_test_instance_accessors.html: Added.
- web-platform-tests/navigation-timing/nav2_test_navigate_iframe-expected.txt: Added.
- web-platform-tests/navigation-timing/nav2_test_navigate_iframe.html: Added.
- web-platform-tests/navigation-timing/nav2_test_navigate_within_document-expected.txt:
- web-platform-tests/navigation-timing/nav2_test_navigate_within_document.html:
- web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward-expected.txt:
- web-platform-tests/navigation-timing/nav2_test_navigation_type_backforward.html:
- web-platform-tests/navigation-timing/nav2_test_navigation_type_navigate-expected.txt: Added.
- web-platform-tests/navigation-timing/nav2_test_navigation_type_navigate.html: Added.
- web-platform-tests/navigation-timing/nav2_test_navigation_type_reload-expected.txt:
- web-platform-tests/navigation-timing/nav2_test_navigation_type_reload.html:
- web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_final_original_origin-expected.txt: Added.
This test fails because our test infrastructure doesn't support loading from www.localhost.
- web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_final_original_origin.html: Copied from LayoutTests/imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html.
- web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in-expected.txt:
This test fails because our test infrastructure doesn't support loading from www.localhost.
- web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_partial_opt_in.html:
- web-platform-tests/navigation-timing/nav2_test_redirect_none-expected.txt: Added.
- web-platform-tests/navigation-timing/nav2_test_redirect_none.html: Added.
- web-platform-tests/navigation-timing/nav2_test_redirect_server-expected.txt:
This test failure needs further investigation.
- web-platform-tests/navigation-timing/nav2_test_redirect_server.html:
- web-platform-tests/navigation-timing/nav2_test_redirect_xserver-expected.txt:
This test fails because our test infrastructure doesn't support loading from www.localhost.
- web-platform-tests/navigation-timing/nav2_test_redirect_xserver.html:
- web-platform-tests/navigation-timing/nav2_test_unique_nav_instances-expected.txt: Added.
This test failure needs further investigation.
- web-platform-tests/navigation-timing/nav2_test_unique_nav_instances.html: Added.
- web-platform-tests/navigation-timing/po-navigation-expected.txt: Added.
- web-platform-tests/navigation-timing/po-navigation.html: Added.
- web-platform-tests/navigation-timing/resources/webperftestharness.js:
(test_namespace):
(test_attribute_exists):
(test_enum):
- web-platform-tests/navigation-timing/secure-connection-start-reuse.https-expected.txt: Added.
- web-platform-tests/navigation-timing/secure-connection-start-reuse.https.html: Added.
- web-platform-tests/navigation-timing/secure_connection_start_non_zero.https-expected.txt:
This test has been marked as flaky. It needs to be fixed to not rely on no initial connection reuse.
- web-platform-tests/navigation-timing/supported_navigation_type.any-expected.txt:
- web-platform-tests/navigation-timing/supported_navigation_type.any.worker-expected.txt:
- web-platform-tests/navigation-timing/test_document_onload-expected.txt: Added.
- web-platform-tests/navigation-timing/test_document_onload.html: Added.
This test failure needs further investigation.
- web-platform-tests/navigation-timing/unload-event-same-origin-check-expected.txt:
- web-platform-tests/navigation-timing/unload-event-same-origin-check.html:
- web-platform-tests/performance-timeline/META.yml: Added.
- web-platform-tests/performance-timeline/buffered-flag-after-timeout.any.js: Added.
(async_test.t.t.step_timeout):
- web-platform-tests/performance-timeline/buffered-flag-observer.any.js: Added.
- web-platform-tests/performance-timeline/get-invalid-entries-expected.txt: Added.
- web-platform-tests/performance-timeline/get-invalid-entries.html: Added.
- web-platform-tests/performance-timeline/idlharness.any.js: Added.
(async idl_array):
- web-platform-tests/performance-timeline/multiple-buffered-flag-observers.any.js: Added.
(promise_test):
- web-platform-tests/performance-timeline/not-clonable-expected.txt: Added.
- web-platform-tests/performance-timeline/not-clonable.html: Added.
- web-platform-tests/performance-timeline/observer-buffered-false.any.js: Added.
(async_test.t.t.step_timeout):
- web-platform-tests/performance-timeline/performanceentry-tojson.any.js: Added.
(test):
- web-platform-tests/performance-timeline/po-callback-mutate.any.js: Added.
(async_test):
- web-platform-tests/performance-timeline/po-disconnect-removes-observed-types.any.js: Added.
(async_test):
- web-platform-tests/performance-timeline/po-disconnect.any.js: Added.
(async_test):
(test):
- web-platform-tests/performance-timeline/po-entries-sort.any.js: Added.
(async_test):
- web-platform-tests/performance-timeline/po-getentries.any.js: Added.
(async_test):
- web-platform-tests/performance-timeline/po-mark-measure.any.js: Added.
(async_test):
- web-platform-tests/performance-timeline/po-observe-expected.txt: Added.
- web-platform-tests/performance-timeline/po-observe-repeated-type.any.js: Added.
(async_test):
- web-platform-tests/performance-timeline/po-observe.html: Added.
- web-platform-tests/performance-timeline/po-resource-expected.txt: Added.
- web-platform-tests/performance-timeline/po-resource.html: Added.
- web-platform-tests/performance-timeline/po-takeRecords.any.js: Added.
(async_test):
- web-platform-tests/performance-timeline/resources/postmessage-entry.html: Added.
- web-platform-tests/performance-timeline/resources/worker-invalid-entries.js: Added.
- web-platform-tests/performance-timeline/resources/worker-with-performance-observer.js: Added.
(catch):
- web-platform-tests/performance-timeline/supportedEntryTypes.any-expected.txt:
This test failure needs further investigation. It's a bindings generation problem I've unsuccessfully looked into before.
- web-platform-tests/performance-timeline/supportedEntryTypes.any.js:
(test):
- web-platform-tests/performance-timeline/supportedEntryTypes.any.worker-expected.txt:
- web-platform-tests/performance-timeline/webtiming-resolution.any.js: Added.
(testTimeResolution):
(timeByUserTiming):
- web-platform-tests/performance-timeline/worker-with-performance-observer-expected.txt: Added.
- web-platform-tests/performance-timeline/worker-with-performance-observer.html: Added.
- web-platform-tests/service-workers/service-worker/navigation-timing.https-expected.txt:
This existing test failure needs more investigation. We are probably close to a fix after this patch.
Source/WebCore:
This is basically just a new shape for exposing the same data as window.performance.navigation, but with a shape that fits better into the rest of the
performance timeline measurements that have been added to the web platform since performance.navigation.
I noted that exposing transfer size is problematic, and some of the tests for reading transfer size still fail.
There are still a few relatively minor test failures to fix in future patches. Each one is annotated in the LayoutTests ChangeLogs.
Tests: imported/w3c/web-platform-tests/navigation-timing/dom_interactive_image_document.html
imported/w3c/web-platform-tests/navigation-timing/dom_interactive_media_document.html
imported/w3c/web-platform-tests/navigation-timing/nav2_test_attributes_exist.html
imported/w3c/web-platform-tests/navigation-timing/nav2_test_attributes_values.html
imported/w3c/web-platform-tests/navigation-timing/nav2_test_instance_accessors.html
imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigate_iframe.html
imported/w3c/web-platform-tests/navigation-timing/nav2_test_navigation_type_navigate.html
imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_chain_xserver_final_original_origin.html
imported/w3c/web-platform-tests/navigation-timing/nav2_test_redirect_none.html
imported/w3c/web-platform-tests/navigation-timing/nav2_test_unique_nav_instances.html
imported/w3c/web-platform-tests/navigation-timing/po-navigation.html
imported/w3c/web-platform-tests/navigation-timing/secure-connection-start-reuse.https.html
imported/w3c/web-platform-tests/navigation-timing/test_document_onload.html
imported/w3c/web-platform-tests/performance-timeline/get-invalid-entries.html
imported/w3c/web-platform-tests/performance-timeline/not-clonable.html
imported/w3c/web-platform-tests/performance-timeline/po-observe.html
imported/w3c/web-platform-tests/performance-timeline/po-resource.html
imported/w3c/web-platform-tests/performance-timeline/worker-with-performance-observer.html
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSPerformanceEntryCustom.cpp:
(WebCore::toJSNewlyCreated):
- dom/Document.cpp:
(WebCore::Document::setReadyState):
Sometimes the ready state jumps right to Complete without hitting Interactive along the way.
When this happens, we want to mark both m_documentTiming.domComplete and m_documentTiming.domInteractive.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::notifyFinished):
Call addNavigationTiming in notifyFinished to create the navigation timing object when we are done navigating
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didFinishLoading):
- loader/ResourceLoader.h:
- loader/ResourceTiming.cpp:
(WebCore::ResourceTiming::fromLoad):
Add a URL parameter. Sometimes we need to use the request's URL and sometimes the response's. Different specs written at different times.
(WebCore::ResourceTiming::populateServerTiming const):
(WebCore::ResourceTiming::populateServerTiming): Deleted.
- loader/ResourceTiming.h:
(WebCore::ResourceTiming::url const):
(WebCore::ResourceTiming::initiator const):
(WebCore::ResourceTiming::loadTiming const):
(WebCore::ResourceTiming::networkLoadMetrics const):
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::reportResourceTiming):
- page/Performance.cpp:
(WebCore::Performance::getEntries const):
(WebCore::Performance::getEntriesByType const):
(WebCore::Performance::getEntriesByName const):
(WebCore::Performance::appendBufferedEntriesByType const):
(WebCore::Performance::addNavigationTiming):
(WebCore::Performance::registerPerformanceObserver):
(WebCore::Performance::queueEntry):
(WebCore::Performance::scheduleTaskIfNeeded):
- page/Performance.h:
- page/PerformanceEntry.h:
(WebCore::PerformanceEntry::startTime const):
(WebCore::PerformanceEntry::duration const):
(WebCore::PerformanceEntry::isResource const): Deleted.
(WebCore::PerformanceEntry::isMark const): Deleted.
(WebCore::PerformanceEntry::isMeasure const): Deleted.
(WebCore::PerformanceEntry::isPaint const): Deleted.
- page/PerformanceMark.h:
(isType): Deleted.
SPECIALIZE_TYPE_TRAITS_BEGIN/END doesn't work well with PerformanceNavigationTiming which inherits from PerformanceResourceTiming which both have distinct types.
is<PerformanceResourceTiming> doesn't give us the info we need. I replaced that with "switch (entry->performanceEntryType())" in the one place it's used, and it works like a charm.
Also renamed type to performanceEntryType so it doesn't conflict with PerformanceNavigationTiming::type, which is specified in the idl.
- page/PerformanceMeasure.h:
(isType): Deleted.
- page/PerformanceNavigationTiming.cpp: Added.
(WebCore::toPerformanceNavigationTimingNavigationType):
(WebCore::PerformanceNavigationTiming::PerformanceNavigationTiming):
(WebCore::PerformanceNavigationTiming::millisecondsSinceOrigin const):
(WebCore::PerformanceNavigationTiming::sameOriginCheckFails const):
(WebCore::PerformanceNavigationTiming::unloadEventStart const):
(WebCore::PerformanceNavigationTiming::unloadEventEnd const):
(WebCore::PerformanceNavigationTiming::domInteractive const):
(WebCore::PerformanceNavigationTiming::domContentLoadedEventStart const):
(WebCore::PerformanceNavigationTiming::domContentLoadedEventEnd const):
(WebCore::PerformanceNavigationTiming::domComplete const):
(WebCore::PerformanceNavigationTiming::loadEventStart const):
(WebCore::PerformanceNavigationTiming::loadEventEnd const):
(WebCore::PerformanceNavigationTiming::type const):
(WebCore::PerformanceNavigationTiming::redirectCount const):
(WebCore::PerformanceNavigationTiming::startTime const):
(WebCore::PerformanceNavigationTiming::duration const):
- page/PerformanceNavigationTiming.h: Added.
- page/PerformanceNavigationTiming.idl: Copied from Source/WebCore/page/PerformanceObserver.idl.
- page/PerformanceObserver.cpp:
(WebCore::PerformanceObserver::takeRecords):
(WebCore::PerformanceObserver::disconnect):
(WebCore::PerformanceObserver::deliver):
(WebCore::PerformanceObserver::supportedEntryTypes):
- page/PerformanceObserver.h:
- page/PerformanceObserver.idl:
- page/PerformanceObserverEntryList.cpp:
(WebCore::PerformanceObserverEntryList::getEntriesByName const):
- page/PerformancePaintTiming.h:
(isType): Deleted.
- page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::nextHopProtocol const):
(WebCore::PerformanceResourceTiming::redirectStart const):
(WebCore::PerformanceResourceTiming::redirectEnd const):
(WebCore::PerformanceResourceTiming::fetchStart const):
(WebCore::PerformanceResourceTiming::domainLookupStart const):
(WebCore::PerformanceResourceTiming::domainLookupEnd const):
(WebCore::PerformanceResourceTiming::connectStart const):
(WebCore::PerformanceResourceTiming::connectEnd const):
(WebCore::PerformanceResourceTiming::secureConnectionStart const):
(WebCore::PerformanceResourceTiming::requestStart const):
(WebCore::PerformanceResourceTiming::responseStart const):
(WebCore::PerformanceResourceTiming::responseEnd const):
(WebCore::PerformanceResourceTiming::networkLoadTimeToDOMHighResTimeStamp const):
- page/PerformanceResourceTiming.h:
(WebCore::PerformanceResourceTiming::initiatorType const):
(isType): Deleted.
- page/PerformanceResourceTiming.idl:
- platform/network/BlobResourceHandle.cpp:
(WebCore::doNotifyFinish):
- platform/network/NetworkLoadMetrics.h:
- platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didFinishLoading):
- platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::didFinishLoading):
- platform/network/SynchronousLoaderClient.h:
- platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
Pass metrics including the response end time from NSURLConnection so we don't assert in WebKitLegacy.
- platform/network/cocoa/NetworkLoadMetrics.mm:
(WebCore::copyTimingData):
Use currentRequest instead of passing in the response so we can call it from didFinishLoading, where we don't have a response stored anywhere.
We're just looking for whether it's http or https, so the currentRequest (which is the request after all the redirects) fits our purpose.
- platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::handleDataURL):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connectionDidFinishLoading:]):
Source/WebKit:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):
Mark reused TLS connections in complete metrics like I did in incomplete metrics in r277493.
Source/WebKitLegacy:
- WebCoreSupport/PingHandle.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
LayoutTests:
Annoyingly secure_connection_start_non_zero.https.html becomes flaky with a correct implementation because it assumes
that no connection is reused. However, when running this test after other tests, another connection is often reused.
- performance-api/paint-timing/performance-observer-first-contentful-paint-expected.txt:
- performance-api/paint-timing/performance-observer-first-contentful-paint.html:
- performance-api/performance-observer-api-expected.txt:
- performance-api/performance-timeline-api-expected.txt:
- performance-api/resources/timeline-api.js:
- platform/mac-wk1/imported/w3c/web-platform-tests/navigation-timing/nav2_test_attributes_values-expected.txt:
Next hop protocol isn't implemented in ResourceHandle. That's probably no big deal because WebKitLegacy is deprecated and not used by Safari.
- 5:30 PM Changeset in webkit [277766] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Video playback pauses when switching apps (video enters picture-in-picture from fullscreen)
https://bugs.webkit.org/show_bug.cgi?id=225981
Reviewed by Jer Noble.
Similar to Mac, on iOS devices, we should not pause a video playback
when the video enters picture-in-picture from fullscreen.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):
- 5:25 PM Changeset in webkit [277765] by
-
- 1 edit in branches/safari-612.1.15.0-branch/Source/JavaScriptCore/runtime/JSCJSValue.cpp
Unreviewed build fix, rdar://problem/78213427
./runtime/JSCJSValue.cpp:262:70: error: no member named 'callSetter' in 'JSC::GetterSetter'
- 5:22 PM Changeset in webkit [277764] by
-
- 2 edits in trunk/LayoutTests
ASSERTION FAILED: unwrapParamsOrException.exception().code() != ExistingExceptionError on http/wpt/preload/change-link-rel-attribute.html
https://bugs.webkit.org/show_bug.cgi?id=224845
Unreviewed test garedning.
Removing un-needed test expectation.
- platform/mac-wk2/TestExpectations:
- 5:13 PM Changeset in webkit [277763] by
-
- 34 edits in trunk/Source
Remove ImageBuffer::toBGRA() and replace its uses with the more general ImageBuffer::getPixelBuffer()
https://bugs.webkit.org/show_bug.cgi?id=225976
Reviewed by Said Abou-Hallawa.
Source/WebCore:
Removes ImageBuffer::toBGRA() and replaces it with the more verbose (but also more clear)
ImageBuffer::getPixelBuffer(). There were only two users of toBGRA(), MediaSample creation
from a <canvas> and PageColorSampler. For MediaSample, we likely should not be doing
readback this way, and should instead try to keep the data in the GPU process / on the GPU
when possible / necessary.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::toMediaSample):
Update calls to pass imageBuffer and share call to makeRenderingResultsAvailable().
- page/PageColorSampler.cpp:
(WebCore::sampleColor):
Update ot use getPixelBuffer().
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::createImageSample):
Update MediaSampleAVFObjC to use getPixelBuffer directly().
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::createImageSample):
- platform/graphics/gstreamer/MediaSampleGStreamer.h:
(WebCore::MediaSampleGStreamer::createImageSample):
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockRealtimeVideoSourceGStreamer::updateSampleBuffer):
Update MediaSampleGStreamer to use getPixelBuffer directly().
- platform/MediaSample.h:
Use #pragma once.
- platform/graphics/ConcreteImageBuffer.h:
- platform/graphics/ImageBuffer.h:
- platform/graphics/ImageBufferBackend.cpp:
(WebCore::ImageBufferBackend::toBGRAData const): Deleted.
- platform/graphics/ImageBufferBackend.h:
- platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:
(WebCore::ImageBufferCairoSurfaceBackend::toBGRAData const): Deleted.
- platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h:
- platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:
(WebCore::ImageBufferCGBitmapBackend::toBGRAData const): Deleted.
- platform/graphics/cg/ImageBufferCGBitmapBackend.h:
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::toBGRAData const): Deleted.
- platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
- platform/graphics/win/ImageBufferDirect2DBackend.cpp:
(WebCore::ImageBufferDirect2DBackend::toBGRAData const): Deleted.
- platform/graphics/win/ImageBufferDirect2DBackend.h:
Remove toBGRA().
Source/WebKit:
Remove ImageBuffer::toBGRA().
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::getBGRADataForImageBuffer): Deleted.
- GPUProcess/graphics/RemoteRenderingBackend.h:
- GPUProcess/graphics/RemoteRenderingBackend.messages.in:
- Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:
(WebKit::CGDisplayListImageBufferBackend::toBGRAData const): Deleted.
- Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::toBGRAData const): Deleted.
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::getBGRADataForImageBuffer): Deleted.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:
(WebKit::ImageBufferShareableIOSurfaceBackend::toBGRAData const): Deleted.
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h:
- 5:05 PM Changeset in webkit [277762] by
-
- 1 edit in branches/safari-612.1.15.1-branch/Source/JavaScriptCore/runtime/JSCJSValue.cpp
Unreviewed build fix, rdar://problem/78224090
./runtime/JSCJSValue.cpp:262:70: error: no member named 'callSetter' in 'JSC::GetterSetter'
- 4:10 PM Changeset in webkit [277761] by
-
- 2 edits in trunk/Source/WebKit
Simplify and make InjectedBundle::initialize() more robust
https://bugs.webkit.org/show_bug.cgi?id=225980
Reviewed by Geoffrey Garen.
Simplify and make InjectedBundle::initialize() more robust as we are seeing some flaky
crashes in this area (rdar://33894266).
In particular, the following changes were made:
- Call dlopen_preflight() before dlopen() for extra robustness as we see some crashes under dlopen().
- Call [NSBundle preflightAndReturnError:] before [NSBundle loadAndReturnError:] for extra robustness as we see some crashes under [NSBundle loadAndReturnError:].
- Call [NSBundle loadAndReturnError:] instead of [NSBundle load] so that we get a useful NSError for logging.
- Call [NSBundle initWithPath:] instead of [NSBundle initWithURL:] since we have a path and since [NSBundle initWithURL:] ends up calling [NSBundle initWithPath:] anyway. This avoids us having to construct a NSURL from our path.
- Use NSBundle.executablePath instead of CFBundleCopyExecutableURL() since it is nicer and we have a NSBundle.
- Use [NSString fileSystemRepresentation] to gets a file system representation of NSBundle.executablePath. Previously, we were relying on CFURLGetFileSystemRepresentation().
- WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::initialize):
- 3:42 PM Changeset in webkit [277760] by
-
- 7 edits in trunk/Source/WebCore
Remove unused GraphicsContextImpl constructor arguments
https://bugs.webkit.org/show_bug.cgi?id=225583
Reviewed by Simon Fraser.
- platform/graphics/GraphicsContextImpl.cpp:
(WebCore::GraphicsContextImpl::GraphicsContextImpl):
- platform/graphics/GraphicsContextImpl.h:
- platform/graphics/cairo/GraphicsContextImplCairo.cpp:
(WebCore::GraphicsContextImplCairo::GraphicsContextImplCairo):
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::Recorder):
- platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:
(Nicosia::CairoOperationRecorder::CairoOperationRecorder):
- platform/graphics/win/GraphicsContextImplDirect2D.cpp:
(WebCore::GraphicsContextImplDirect2D::GraphicsContextImplDirect2D):
- 3:39 PM Changeset in webkit [277759] by
-
- 2 edits in trunk/Source/JavaScriptCore
Speed up debug validation in CacheableIdentifier::createFromIdentifierOwnedByCodeBlock().
https://bugs.webkit.org/show_bug.cgi?id=225948
Not reviewed.
Build fix after r277727.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::hasIdentifier):
- 3:30 PM Changeset in webkit [277758] by
-
- 6 edits in trunk/Source/JavaScriptCore
Ripping out broken Baseline JIT rare case profiling.
https://bugs.webkit.org/show_bug.cgi?id=225983
Reviewed by Saam Barati and Robin Morisset.
The profiling has been broken in recent times. Fixing it to work does not appear
to improve performance. Ripping out the profiling appears to not hurt performance.
However, ripping out the profiling appears to save on code size generated for the
Baseline JIT.
Base New Diff
BaselineJIT: 73299112 (69.903481 MB) 65910128 (62.856796 MB) 0.90x (reduction)
DFG: 36850540 (35.143414 MB) 36374400 (34.689331 MB) 0.99x
Thunk: 23128652 (22.057201 MB) 22892292 (21.831791 MB) 0.99x
InlineCache: 22210972 (21.182034 MB) 22083508 (21.060474 MB) 0.99x
FTL: 6065064 (5.784096 MB) 6128080 (5.844193 MB) 1.01x
Wasm: 2305124 (2.198338 MB) 2309732 (2.202732 MB) 1.00x
YarrJIT: 1522712 (1.452171 MB) 1536104 (1.464943 MB) 1.01x
CSSJIT: 0 0
Uncategorized: 0 0
Cumulative diff since the start of this effort to put more code in JIT thunks:
Base New Diff
BaselineJIT: 89089964 (84.962811 MB) 65910128 (62.856796 MB) 0.74x (reduction)
DFG: 39117360 (37.305222 MB) 36374400 (34.689331 MB) 0.93x (reduction)
Thunk: 23230968 (22.154778 MB) 22892292 (21.831791 MB) 0.99x
InlineCache: 22027416 (21.006981 MB) 22083508 (21.060474 MB) 1.00x
FTL: 6575772 (6.271145 MB) 6128080 (5.844193 MB) 0.93x (reduction)
Wasm: 2302724 (2.196049 MB) 2309732 (2.202732 MB) 1.00x
YarrJIT: 1538956 (1.467663 MB) 1536104 (1.464943 MB) 1.00x
CSSJIT: 0 0
Uncategorized: 0 0
Benchmarking was done with Speedometer2 and JetSteam2 on an M1 Mac.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::JITData::size const):
(JSC::CodeBlock::dumpValueProfiles):
(JSC::CodeBlock::setRareCaseProfiles): Deleted.
(JSC::CodeBlock::rareCaseProfileForBytecodeIndex): Deleted.
(JSC::CodeBlock::rareCaseProfileCountForBytecodeIndex): Deleted.
- bytecode/CodeBlock.h:
(JSC::CodeBlock::likelyToTakeSlowCase): Deleted.
(JSC::CodeBlock::couldTakeSlowCase): Deleted.
- bytecode/ValueProfile.h:
(JSC::RareCaseProfile::RareCaseProfile): Deleted.
(JSC::getRareCaseProfileBytecodeIndex): Deleted.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::makeSafe):
(JSC::DFG::ByteCodeParser::parseBlock):
- jit/JIT.cpp:
(JSC::JIT::privateCompileSlowCases):
- 3:13 PM Changeset in webkit [277757] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC} Remove exception checks from non-throwing function calls in Baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=224920
Reviewed by Tadeu Zagallo.
These functions are not taking JSGlobalObject and will not throw an error.
Use callOperationNoExceptionCheck instead to avoid emitting unnecessary exception checks.
- jit/JIT.cpp:
(JSC::JIT::emitEnterOptimizationCheck):
- jit/JITOpcodes.cpp:
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::emit_op_profile_type):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_profile_type):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitWriteBarrier):
- 2:41 PM Changeset in webkit [277756] by
-
- 2 edits in branches/safari-612.1.15.0-branch/Tools
Revert "Cherry-pick r277608. rdar://problem/78207926"
This reverts commit r277724
- 2:36 PM Changeset in webkit [277755] by
-
- 8 edits in branches/safari-612.1.15.0-branch/Source
Versioning.
WebKit-7612.1.15.0.2
- 2:31 PM Changeset in webkit [277754] by
-
- 101 edits15 deletes in branches/safari-612.1.15.1-branch
Cherry-pick r277665. rdar://problem/78224090
Temporarily revert r276592 as it breaks some native apps
https://bugs.webkit.org/show_bug.cgi?id=225917
JSTests:
Unreviewed, revert.
- microbenchmarks/put-slow-no-cache-array.js: Removed.
- microbenchmarks/put-slow-no-cache-function.js: Removed.
- microbenchmarks/put-slow-no-cache-js-proxy.js: Removed.
- microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Removed.
- microbenchmarks/put-slow-no-cache.js: Removed.
- microbenchmarks/reflect-set-with-receiver.js: Removed.
- stress/custom-get-set-proto-chain-put.js: (getObjects): (let.base.of.getBases):
- stress/module-namespace-access-set-fails.js: Removed.
- stress/put-non-reified-static-accessor-or-custom.js: Removed.
- stress/put-non-reified-static-function-or-custom.js: Removed.
- stress/put-to-primitive-non-reified-static-custom.js: Removed.
- stress/put-to-primitive.js: Removed.
- stress/put-to-proto-chain-overrides-put.js: Removed.
- stress/typed-array-canonical-numeric-index-string-set.js: Removed.
LayoutTests/imported/w3c:
Unreviewed, revert.
- web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver-expected.txt: Removed.
- web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver.html: Removed.
- web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver-expected.txt:
- web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html:
Source/JavaScriptCore:
Unreviewed, revert.
- API/JSCallbackObject.h:
- API/JSCallbackObjectFunctions.h: (JSC::JSCallbackObject<Parent>::put):
- debugger/DebuggerScope.h:
- runtime/ClassInfo.h:
- runtime/ClonedArguments.h:
- runtime/CustomGetterSetter.cpp: (JSC::callCustomSetter):
- runtime/CustomGetterSetter.h:
- runtime/ErrorConstructor.h:
- runtime/ErrorInstance.h:
- runtime/GenericArguments.h:
- runtime/GenericArgumentsInlines.h: (JSC::GenericArguments<Type>::put):
- runtime/GetterSetter.h:
- runtime/JSArray.cpp: (JSC::JSArray::put):
- runtime/JSArray.h:
- runtime/JSArrayBufferView.cpp: (JSC::JSArrayBufferView::put):
- runtime/JSArrayBufferView.h:
- runtime/JSCJSValue.cpp: (JSC::JSValue::putToPrimitive):
- runtime/JSCell.cpp: (JSC::JSCell::doPutPropertySecurityCheck):
- runtime/JSCell.h:
- runtime/JSFunction.cpp: (JSC::JSFunction::put):
- runtime/JSFunction.h:
- runtime/JSGenericTypedArrayView.h:
- runtime/JSGlobalLexicalEnvironment.h:
- runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::put):
- runtime/JSGlobalObject.h:
- runtime/JSLexicalEnvironment.h:
- runtime/JSModuleEnvironment.h:
- runtime/JSModuleNamespaceObject.h:
- runtime/JSObject.cpp: (JSC::JSObject::doPutPropertySecurityCheck): (JSC::JSObject::putInlineSlow): (JSC::JSObject::prototypeChainMayInterceptStoreTo): (JSC::definePropertyOnReceiverSlow): Deleted. (JSC::JSObject::definePropertyOnReceiver): Deleted. (JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded): Deleted.
- runtime/JSObject.h: (JSC::JSObject::putByIndexInline): (JSC::JSObject::doPutPropertySecurityCheck): (JSC::JSObject::hasNonReifiedStaticProperties): Deleted.
- runtime/JSObjectInlines.h: (JSC::JSObject::canPerformFastPutInlineExcludingProto): (JSC::JSObject::putInlineForJSObject): (JSC::JSObject::putDirectInternal): (JSC::JSObject::putInlineFast): Deleted.
- runtime/JSProxy.h:
- runtime/JSTypeInfo.h: (JSC::TypeInfo::overridesGetOwnPropertySlot const): (JSC::TypeInfo::overridesAnyFormOfGetOwnPropertyNames const): (JSC::TypeInfo::hasPutPropertySecurityCheck const): (JSC::TypeInfo::hasStaticPropertyTable const): Deleted. (JSC::TypeInfo::overridesPut const): Deleted.
- runtime/Lookup.h: (JSC::putEntry): (JSC::lookupPut):
- runtime/PropertySlot.h:
- runtime/ProxyObject.cpp: (JSC::ProxyObject::put):
- runtime/ProxyObject.h:
- runtime/PutPropertySlot.h: (JSC::PutPropertySlot::PutPropertySlot): (JSC::PutPropertySlot::context const): (JSC::PutPropertySlot::type const): (JSC::PutPropertySlot::isInitialization const): (JSC::PutPropertySlot::isTaintedByOpaqueObject const): Deleted. (JSC::PutPropertySlot::setIsTaintedByOpaqueObject): Deleted.
- runtime/ReflectObject.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/RegExpObject.cpp: (JSC::RegExpObject::put):
- runtime/RegExpObject.h:
- runtime/StringObject.cpp: (JSC::StringObject::put):
- runtime/StringObject.h:
- runtime/StringPrototype.cpp: (JSC::StringPrototype::finishCreation): (JSC::StringPrototype::create):
- runtime/StringPrototype.h:
- runtime/Structure.cpp: (JSC::Structure::validateFlags):
- runtime/Structure.h: (JSC::Structure::takesSlowPathInDFGForImpureProperty): (JSC::Structure::hasNonReifiedStaticProperties const): Deleted.
- tools/JSDollarVM.cpp:
Source/WebCore:
Unreviewed, revert.
- bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::doPutPropertySecurityCheck): (WebCore::JSDOMWindow::put):
- bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::doPutPropertySecurityCheck):
- bindings/js/JSRemoteDOMWindowCustom.cpp: (WebCore::JSRemoteDOMWindow::put):
- bindings/scripts/CodeGeneratorJS.pm: (GeneratePut): (GenerateHeader):
- bindings/scripts/test/JS/JSTestDomainSecurity.h:
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: (WebCore::JSTestIndexedSetterNoIdentifier::put):
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: (WebCore::JSTestIndexedSetterThrowingException::put):
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: (WebCore::JSTestIndexedSetterWithIdentifier::put):
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestInterface.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: (WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: (WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: (WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: (WebCore::JSTestNamedSetterNoIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: (WebCore::JSTestNamedSetterThrowingException::put):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: (WebCore::JSTestNamedSetterWithIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp: (WebCore::JSTestNamedSetterWithIndexedGetter::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp: (WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp: (WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp: (WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp: (WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h:
- bindings/scripts/test/JS/JSTestPluginInterface.cpp: (WebCore::JSTestPluginInterface::put):
- bindings/scripts/test/JS/JSTestPluginInterface.h:
- bridge/objc/objc_runtime.h:
- bridge/runtime_array.h:
- bridge/runtime_object.h:
Source/WebKit:
Unreviewed, revert.
- WebProcess/Plugins/Netscape/JSNPObject.h:
LayoutTests:
Unreviewed, revert
- http/tests/security/cross-frame-access-object-getPrototypeOf-in-put-expected.txt:
- http/tests/security/cross-frame-access-object-getPrototypeOf-in-put.html:
- js/dom/reflect-set-onto-dom-expected.txt:
- js/dom/script-tests/reflect-set-onto-dom.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277665 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:31 PM Changeset in webkit [277753] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Tools
Revert "Cherry-pick r277608. rdar://problem/78207944"
This reverts commit r277723
- 2:23 PM Changeset in webkit [277752] by
-
- 8 edits in branches/safari-612.1.15.1-branch/Source
Versioning.
WebKit-7612.1.15.1.5
- 2:18 PM Changeset in webkit [277751] by
-
- 8 edits in trunk/Source
HTMLCanvasElement toDataURL and toBlob do unnecessary data copies through a CFDataRef
https://bugs.webkit.org/show_bug.cgi?id=225853
Reviewed by Darin Adler.
When trying to encode either a PixelBuffer or a ImageBuffer to an image for
blob or dataURL creation, we were using a method that required always first
creating a CFDataRef and then copying that CFDataRef's data into what we needed.
Instead, we can use a callback based CGDataConsumer and some passed around
functors to get the data directly as it is being encoded and process it as
needed. ScopedLambda is used to avoid unnecessary inlining or allocation that
a template based functor or WTF::Function would require respectively.
- platform/graphics/cg/ImageBufferCGBackend.h:
- platform/graphics/cg/ImageBufferCGBackend.cpp:
(WebCore::ImageBufferCGBackend::toCFData const): Deleted.
(WebCore::ImageBufferCGBackend::copyPlatformImageForEncoding const):
Factor out PlatformImagePtr creation into its own function. This replaces the
toCFData virtual function, and is used in conjunction with the data/dataURL
functions in ImageBufferCGBackend to produce the encoded data.
(WebCore::ImageBufferCGBackend::toData const):
(WebCore::ImageBufferCGBackend::toDataURL const):
Rework to use copyPlatformImageForEncoding and data/dataURL in ImageBufferCGBackend
to produce the encoded data.
- platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::copyPlatformImageForEncoding const):
(WebCore::ImageBufferIOSurfaceBackend::toCFData const): Deleted.
Like toCFData before it, copyPlatformImageForEncoding is virtual allowing for this
override in ImageBufferIOSurfaceBackend.
- platform/graphics/cg/ImageBufferUtilitiesCG.h:
- platform/graphics/cg/ImageBufferUtilitiesCG.cpp:
(WebCore::encode):
(WebCore::encodeToVector):
(WebCore::encodeToDataURL):
(WebCore::data):
(WebCore::dataURL):
(WebCore::encodeImage): Deleted.
(WebCore::cfData): Deleted.
(WebCore::dataVector): Deleted.
Replace encodeImage(), which filled in a CFMutableDataRef, with overloads of data() and
dataURL() that now use a callback based CGDataConsumer and some callback functors to
allow the encoded data to be consumed as it is being created. Also makes use of new
base64Encoded() adapter to base64 encode directly in makeString().
- 2:00 PM Changeset in webkit [277750] by
-
- 25 edits in trunk
Drop "get" prefix from SQLiteStatement member functions as well as out-parameters
https://bugs.webkit.org/show_bug.cgi?id=225971
Reviewed by Darin Adler.
Source/WebCore:
Drop "get" prefix from SQLiteStatement member functions as well as out-parameters to
modernize the code a bit and follow WebKit style.
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::createOrMigrateRecordsTableIfNecessary):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidBlobTables):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsRecordIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidObjectStoreInfoTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexInfoTableForIDUpdate):
(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexRecordsTableForIDUpdate):
(WebCore::IDBServer::SQLiteIDBBackingStore::addExistingIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameAndVersionFromFile):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteUnusedBlobFileRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getBlobRecordsForObjectStoreRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):
(WebCore::IDBServer::SQLiteIDBBackingStore::getCount):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetKeyGeneratorValue):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):
- Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
- Modules/webdatabase/Database.cpp:
(WebCore::retrieveTextResultFromDatabase):
(WebCore::Database::performGetTableNames):
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::databaseNamesNoLock):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::quotaNoLock):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
- Modules/webdatabase/SQLStatement.cpp:
(WebCore::SQLStatement::execute):
- loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::loadCacheGroup):
(WebCore::ApplicationCacheStorage::loadManifestHostHashes):
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
(WebCore::ApplicationCacheStorage::calculateQuotaForOrigin):
(WebCore::ApplicationCacheStorage::calculateUsageForOrigin):
(WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache):
(WebCore::ApplicationCacheStorage::verifySchemaVersion):
(WebCore::ApplicationCacheStorage::loadCache):
(WebCore::ApplicationCacheStorage::manifestURLs):
(WebCore::ApplicationCacheStorage::deleteCacheGroupRecord):
(WebCore::ApplicationCacheStorage::checkForDeletedResources):
(WebCore::ApplicationCacheStorage::flatFileAreaSize):
- platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::verifySchemaVersion):
(WebCore::CookieJarDB::checkDatabaseValidity):
(WebCore::CookieJarDB::searchCookies):
(WebCore::CookieJarDB::getAllCookies):
(WebCore::CookieJarDB::allDomains):
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::useWALJournalMode):
(WebCore::SQLiteDatabase::maximumSize):
(WebCore::SQLiteDatabase::pageSize):
(WebCore::SQLiteDatabase::freeSpaceSize):
(WebCore::SQLiteDatabase::totalSize):
(WebCore::SQLiteDatabase::clearAllTables):
(WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum):
- platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::columnName):
(WebCore::SQLiteStatement::columnValue):
(WebCore::SQLiteStatement::columnText):
(WebCore::SQLiteStatement::columnDouble):
(WebCore::SQLiteStatement::columnInt):
(WebCore::SQLiteStatement::columnInt64):
(WebCore::SQLiteStatement::columnBlobAsString):
(WebCore::SQLiteStatement::columnBlob):
- platform/sql/SQLiteStatement.h:
- platform/win/SearchPopupMenuDB.cpp:
(WebCore::SearchPopupMenuDB::loadRecentSearches):
(WebCore::SearchPopupMenuDB::checkDatabaseValidity):
(WebCore::SearchPopupMenuDB::verifySchemaVersion):
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::ensureValidRecordsTable):
(WebCore::RegistrationDatabase::importRecords):
Source/WebKit:
Update code base due to SQLiteStatement API changes.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::currentTableAndIndexQueries):
(WebKit::ResourceLoadStatisticsDatabaseStore::missingUniqueIndices):
(WebKit::ResourceLoadStatisticsDatabaseStore::columnsForTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::isEmpty const):
(WebKit::ResourceLoadStatisticsDatabaseStore::relationshipExists const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainID const):
(WebKit::ResourceLoadStatisticsDatabaseStore::merge):
(WebKit::ResourceLoadStatisticsDatabaseStore::getThirdPartyDataForSpecificFirstPartyDomains const):
(WebKit::ResourceLoadStatisticsDatabaseStore::aggregatedThirdPartyData const):
(WebKit::ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::dumpResourceLoadStatistics):
(WebKit::ResourceLoadStatisticsDatabaseStore::predicateValueForDomain const):
(WebKit::ResourceLoadStatisticsDatabaseStore::getMostRecentlyUpdatedTimestamp const):
(WebKit::ResourceLoadStatisticsDatabaseStore::ensureResourceStatisticsForRegistrableDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::allDomains const):
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasUserGrantedStorageAccessThroughPrompt):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlockAndDeleteCookiesFor const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlockButKeepCookiesFor const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsWithUserInteractionAsFirstParty const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsWithStorageAccess const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domains const):
(WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectSubStatisticsCount):
(WebKit::ResourceLoadStatisticsDatabaseStore::getDomainStringFromDomainID const):
(WebKit::ResourceLoadStatisticsDatabaseStore::appendSubStatisticList const):
(WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainIDExistsInDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):
(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::attributionToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::privateClickMeasurementToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::earliestTimesToSend):
- NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::items const):
(WebKit::LocalStorageDatabase::item const):
(WebKit::LocalStorageDatabase::databaseIsEmpty const):
- UIProcess/API/glib/IconDatabase.cpp:
(WebKit::IconDatabase::IconDatabase):
(WebKit::IconDatabase::populatePageURLToIconURLMap):
(WebKit::IconDatabase::iconIDForIconURL):
(WebKit::IconDatabase::iconData):
(WebKit::IconDatabase::loadIconForPageURL):
- UIProcess/API/glib/IconDatabase.h:
Source/WebKitLegacy:
Update code base due to SQLiteStatement API changes.
- Storage/StorageAreaSync.cpp:
(WebKit::StorageAreaSync::performImport):
(WebKit::StorageAreaSync::deleteEmptyDatabase):
- Storage/StorageTracker.cpp:
(WebKit::StorageTracker::syncImportOriginIdentifiers):
(WebKit::StorageTracker::syncDeleteAllOrigins):
(WebKit::StorageTracker::databasePathForOrigin):
Source/WTF:
Add Vector constructor that takes in an array and a size.
- wtf/Vector.h:
(WTF::Vector::Vector):
Tools:
Add API test coverage for new Vector constructor.
- TestWebKitAPI/Tests/WTF/Vector.cpp:
(TestWebKitAPI::TEST):
- 1:56 PM Changeset in webkit [277749] by
-
- 4 edits2 adds in trunk
ASSERT(!toType.isArray()) failure in sh::CoerceSimple due to vector array dereference
https://bugs.webkit.org/show_bug.cgi?id=225864
Source/ThirdParty/ANGLE:
<rdar://77968214>
Reviewed by Dean Jackson.
Fixed program translation error, additional issues with transform feedback shaders
- src/compiler/translator/TranslatorMetalDirect/AddExplicitTypeCasts.cpp:
- src/libANGLE/renderer/metal/ProgramMtl.mm:
(rx::ProgramMtl::reset):
LayoutTests:
<rdar://77968214>
Reviewed by Dean Jackson.
Fixed program translation error, additional issues with preloaded transform feedback shaders
- fast/canvas/webgl/shader-vec-array-deref-no-crash-expected.txt: Added.
- fast/canvas/webgl/shader-vec-array-deref-no-crash.html: Added.
- 1:49 PM Changeset in webkit [277748] by
-
- 3 edits1 add in trunk
Fix typo in AirUseCounts
https://bugs.webkit.org/show_bug.cgi?id=225977
rdar://78210501
Reviewed by Mark Lam.
JSTests:
Add the testcase found by Tuomas.
- stress/register-allocator-stress.js: Added.
(foo):
Source/JavaScriptCore:
I had just messed up a copy-and-paste, using "gp" instead of "fp" in code that deals with floating point values.
This did not show in my tests, probably because few functions have more floating point temporaries than non-floating-point.
- b3/air/AirUseCounts.h:
(JSC::B3::Air::UseCounts::UseCounts):
- 1:30 PM Changeset in webkit [277747] by
-
- 5 edits2 adds in trunk/Source/WebCore
[macOS] Pull ServicesOverlayController::Highlight out into a separate helper class
https://bugs.webkit.org/show_bug.cgi?id=225968
Reviewed by Tim Horton.
Refactor some code for painting data detector highlights (
DDHighlightRef), by pulling what is currently
ServicesOverlayController::Highlightout into a separate helper class. In a future patch, I plan on using this
functionality for the image overlay controller to support rendering data detector highlights there.
This patch also makes some minor adjustments:
- Make
DataDetectorHighlightcapable of being stored in aWeakPtr, and haveServicesOverlayController
hold on to a
WeakHashSet<DataDetectorHighlight>instead of a hash set of raw pointers. This additionally
makes it unnecessary to add methods forDataDetectorHighlightto notifyServicesOverlayControllerupon
creation or destruction, since we can simply add the newly created highlight to the weak set after creating
it, and since it's aWeakPtr, it will get cleaned up upon destruction.
- Make DataDetectorHighlight::Type an enum class, and make
m_dirtyHighlightTypesanOptionSetinstead of
a raw bitmask.
- Use
autoin a few places where the type is apparent (e.g. in some places where we useadoptCF).
- Make
highlightFadeAnimationDurationaWTF::Secondsinstead of a raw floating point value.
- Add a FIXME in
DataDetectorHighlight::paintContentsabout the need to refactor this painting logic so that
it does *not* use the platform
CGContextRefdirectly.
No change in behavior.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- page/mac/ServicesOverlayController.h:
(WebCore::ServicesOverlayController::activeHighlight const):
(WebCore::ServicesOverlayController::Highlight::ddHighlight const): Deleted.
(WebCore::ServicesOverlayController::Highlight::range const): Deleted.
(WebCore::ServicesOverlayController::Highlight::layer const): Deleted.
(WebCore::ServicesOverlayController::Highlight::type const): Deleted.
- page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::~ServicesOverlayController):
(WebCore::ServicesOverlayController::selectionRectsDidChange):
(WebCore::ServicesOverlayController::selectedTelephoneNumberRangesChanged):
(WebCore::ServicesOverlayController::invalidateHighlightsOfType):
(WebCore::ServicesOverlayController::buildPotentialHighlightsIfNeeded):
(WebCore::ServicesOverlayController::mouseIsOverHighlight const):
(WebCore::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown const):
(WebCore::ServicesOverlayController::removeAllPotentialHighlightsOfType):
(WebCore::ServicesOverlayController::buildPhoneNumberHighlights):
(WebCore::ServicesOverlayController::buildSelectionHighlight):
(WebCore::ServicesOverlayController::replaceHighlightsOfTypePreservingEquivalentHighlights):
(WebCore::ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight):
(WebCore::ServicesOverlayController::determineActiveHighlight):
(WebCore::ServicesOverlayController::mouseEvent):
(WebCore::ServicesOverlayController::didScrollFrame):
(WebCore::ServicesOverlayController::handleClick):
(WebCore::ServicesOverlayController::shouldRemoveHighlightLayerAfterFadingOut const):
(WebCore::ServicesOverlayController::Highlight::createForSelection): Deleted.
(WebCore::ServicesOverlayController::Highlight::createForTelephoneNumber): Deleted.
(WebCore::ServicesOverlayController::Highlight::Highlight): Deleted.
(WebCore::ServicesOverlayController::Highlight::~Highlight): Deleted.
(WebCore::ServicesOverlayController::Highlight::setDDHighlight): Deleted.
(WebCore::ServicesOverlayController::Highlight::invalidate): Deleted.
(WebCore::ServicesOverlayController::Highlight::notifyFlushRequired): Deleted.
(WebCore::ServicesOverlayController::Highlight::paintContents): Deleted.
(WebCore::ServicesOverlayController::Highlight::deviceScaleFactor const): Deleted.
(WebCore::ServicesOverlayController::Highlight::fadeIn): Deleted.
(WebCore::ServicesOverlayController::Highlight::fadeOut): Deleted.
(WebCore::ServicesOverlayController::Highlight::didFinishFadeOutAnimation): Deleted.
(WebCore::ServicesOverlayController::highlightsAreEquivalent): Deleted.
(WebCore::ServicesOverlayController::didCreateHighlight): Deleted.
(WebCore::ServicesOverlayController::willDestroyHighlight): Deleted.
- platform/mac/DataDetectorHighlight.h: Added.
(WebCore::DataDetectorHighlightClient::shouldRemoveHighlightLayerAfterFadingOut const):
(WebCore::DataDetectorHighlight::highlight const):
(WebCore::DataDetectorHighlight::range const):
(WebCore::DataDetectorHighlight::layer const):
(WebCore::DataDetectorHighlight::type const):
- platform/mac/DataDetectorHighlight.mm: Added.
(WebCore::DataDetectorHighlight::createForSelection):
(WebCore::DataDetectorHighlight::createForTelephoneNumber):
(WebCore::DataDetectorHighlight::DataDetectorHighlight):
(WebCore::DataDetectorHighlight::setHighlight):
(WebCore::DataDetectorHighlight::invalidate):
(WebCore::DataDetectorHighlight::notifyFlushRequired):
(WebCore::DataDetectorHighlight::paintContents):
(WebCore::DataDetectorHighlight::deviceScaleFactor const):
(WebCore::DataDetectorHighlight::fadeIn):
(WebCore::DataDetectorHighlight::fadeOut):
(WebCore::DataDetectorHighlight::didFinishFadeOutAnimation):
(WebCore::areEquivalent):
- 12:53 PM Changeset in webkit [277746] by
-
- 1 copy in tags/Safari-612.1.15.1.4
Tag Safari-612.1.15.1.4.
- 12:44 PM Changeset in webkit [277745] by
-
- 8 edits in branches/safari-612.1.15.1-branch/Source
Versioning.
WebKit-7612.1.15.1.4
- 12:37 PM Changeset in webkit [277744] by
-
- 34 edits1 add in trunk
Move CFStringRef and NSString support from StringBuilder into StringConcatenateCF
https://bugs.webkit.org/show_bug.cgi?id=225839
Reviewed by Sam Weinig.
Source/JavaScriptCore:
- inspector/ConsoleMessage.cpp:
(Inspector::ConsoleMessage::ConsoleMessage): Use StringBuilder::clear instead of
StringBuilder::resize; no advantage to the latter after calling StringBuilder::toString.
- runtime/JSONObject.cpp:
(JSC::Stringifier::Holder::appendNextProperty): Update for name change of
StringBuilder::resize to StringBuilder::shrink.
- runtime/TypeSet.cpp:
(JSC::StructureShape::stringRepresentation): Ditto.
Source/WebCore:
- Modules/airplay/WebMediaSessionManager.cpp:
(WebCore::mediaProducerStateString): Use StringBuilder exclusively instead of
mixing it with makeString. Also updated for StringBuilder::shrink name.
- html/HTMLTextFormControlElement.cpp:
(WebCore::stripTrailingNewline): Updated for StringBuilder::shrink name.
- page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::captionsTextColor const): Tweaked
coding style a bit.
(WebCore::appendCSS): Use variadic StringBuilder::append instead of many
separate calls.
(WebCore::CaptionUserPreferencesMediaAF::captionsDefaultFontCSS const):
Tweaked coding style a bit, and use variadic StrinBuilder::append calls
to reduce the number of calls and streamline the code.
(WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride const):
Ditto. Also removed unnecessary checks that strings are empty before appending.
- page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):
Updated for StringBuilder::shrink name.
- platform/LayoutUnit.h: Updated for saturatedSum/Difference names.
- platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::NetworkStorageSession::cookiesForSession const): Tweaked codin
style a bit, and use variadic StrinBuilder::append calls to reduce the
number of calls and streamline the code.
- rendering/RenderCounter.cpp:
(WebCore::planCounter): Updated for saturatedSum name.
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueCounter): Ditto.
- svg/SVGPathStringBuilder.cpp:
(WebCore::SVGPathStringBuilder::result): Updated for StringBuilder::shrink name.
- testing/Internals.cpp:
(WebCore::Internals::pageMediaState): Ditto.
- xml/XSLTProcessorLibxslt.cpp:
(WebCore::saveResultToString): Ditto.
Source/WebKit:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::platformSetNetworkParameters): Use makeString instead
of StringBuilder.
Source/WTF:
The new header makes CFStringRef and NSString work with string concatenation,
which means it now works with the variadic StringBuilder::append and makeString,
and still works with the single-argument StringBuilder::append. More efficient
that the old version because it does not allocate a temporary WTF::String for
the 16-bit character path.
Also made many other small improvements to the StringBuilder implementation.
- WTF.xcodeproj/project.pbxproj: Added StringConcatenateCF.h.
- wtf/CheckedArithmetic.h: Removed ConditionalCrashOnOverflow, which was only
here for use by StringBuilder, which does not use CheckedArithmetic any more.
- wtf/PlatformFTW.cmake: Added StringConcatenateCF.h..
- wtf/PlatformMac.cmake: Ditto.
- wtf/PlatformWin.cmake: Ditto.
- wtf/SaturatedArithmetic.h: Moved the contents of this file inside the
WTF namespace.
(WTF::signedAddInt32Overflows): Renamed this function. The type here is
important, and we are not doing anything to prevent type conversion or
create ambiguity, so it's good to be explicit in the function name.
(WTF::saturatedSum<int32_t>): Renamed this from saturatedAddition for
clarity. The function returns a sum, so that's a better name than calling
it "addition". Also, it's clearer to be explicit about the return type.
(WTF::signedSubtractInt32Overflows): Renamed. Same reason as above.
(WTF::saturatedDifference<int32_t>): Ditto.
(WTF::saturatedSum): Added. Does unsigned integer saturated addition.
This one can be written in a portable manner and still get really
efficient code on at least Intel and ARM64.
(WTF::saturatedSum): Added a function template that lets callers pass
larger number of arguments to saturatedSum, rather than exactly two.
- wtf/text/StringBuilder.cpp:
(WTF::expandedCapacity): Renamed to use the term capacity rather than
length for the new required capacity.
(WTF::StringBuilder::didOverflow): Implement the new approach to
overflow, meaning we need to write the CRASH() here explicitly and
in the non-crashing mode, set m_length.
(WTF::StringBuilder::reifyString const): Changed the overflow check
into a RELEASE_ASSERT. This is now responsible for doing the check that
callers were doing earlier, so we want it in production builds. Also
simplified this since our m_length member is a simple integer now,
and removed the unused m_isReified.
(WTF::StringBuilder::shrink): Renamed this to shrink to match the
Vector::shrink function, since this has never supported making the
builder larger. Removed unnecessary overflow checks, since shrinking
cannot cause overflow.
(WTF::StringBuilder::allocateBuffer): Replaced two separate functions
with a single simpler function template. Removed extra overflow checks
because the StringImpl::tryCreateUninitialized function already does
the only overflow check we need. Also move to StringImpl::copyCharacters
for copying characters rather than using std::memcpy directly.
Removed code to set m_is8Bit and m_bufferCharacters.
(WTF::StringBuilder::reallocateBuffer): Replaced two separate
functions with a function template and a cover that calls the
appropriate instance of the template for places where we aren't
already in character-type-specific code paths. This version now
supports allocating a buffer for the first time in cases where
we have m_string and not m_buffer, which used to be handled at
the higher level. Removed code to set m_bufferCharacters.
(WTF::StringBuilder::reserveCapacity): Rewrote for simplicity.
By relying on the overflow checking inside reallocateBuffer and
allocateBuffer we no longer need checking of the passed-in value
at this level.
(WTF::StringBuilder::extendBufferForAppending): Removed the
version of this that takes additionalLength since it's
potentially confusing to have a family of functions that have the
same name and take the same type of argument, but interpret it
subtly differently. Streamlined the code using std::exchange.
This function now also includes the logic from the function named
extendBufferForAppendingWithoutOverflowCheck, which was subtly
misnamed since that was not the only semantic difference. Also
removed the ALWAYS_INLINE because the compiler will do the right
thing without such heavy handed advice.
(WTF::StringBuilder::extendBufferForAppendingSlowCase): Streamlined
this by using std::exchange and removed additional overflow checks
at this level since reallocateBuffer already does them. Also added
a check for the case where the new total length is 0, which would
not be handled correctly and efficiently by reallocateBuffer.
(WTF::StringBuilder::extendBufferForAppendingLChar): Renamed this
from extendBufferForAppending8, since it's now identical to calling
extendBufferForAppending<LChar>, except for inlining and linkage.
(WTF::StringBuilder::extendBufferForAppendingWithUpconvert):
Renamed this from extendBufferForAppending16. It is different from
the other extendBuffer functions because is supports upconverting
from LChar to UChar. Like the others it relies on allocateBuffer
for the overflow checking.
(WTF::StringBuilder::appendCharacters): Removed an unnecessary
assertion that the characters pointer is non-null; that will fail
in an obvious way without an assertion. Simplified the logic and
removed some invariant assertions that don't help us much. Changed
overflow checking by using saturatedSum to compute the new length.
In overflow cases, the new sum will be larger than the maximum
string length, but will fit in an unsigned, so we can pass it
down to lower levels and let functions like reallocateBuffer do
the actual overflow checking. Also use StringImpl::copyCharacters.
(WTF::StringBuilder::append): Removed the CFStringRef overload.
(WTF::StringBuilder::shouldShrinkToFit const): Rename this from
canShrink. Simplify the function a bit and remove the vague FIXME
that says "this should be tuned". That may be so, but the FIXME
is not really driving us to action.
(WTF::StringBuilder::shrinkToFit): Simplify by using the new
reallocateBuffer and std::exchange. Removed unneeded assertion
about overflow that doesn't help us maintain the invariant.
(WTF::StringBuilder::isAllASCII const): Was tempted to remove
this function, but for now just made it use the StringView
version for brevity.
- wtf/text/StringBuilder.h: Removed many unneeded includes, and
notably included SaturatedArithmetic.h instead of
CheckedArithmetic.h because we now use the former instead of the
latter. Changed the overflow checking implementation to work
more simply based on saturated addition rather than Checked.
This allowed us to get rid of dependency on our own unique mode
for Checked, called ConditionalCrashOnOverflow. Removed a
comment about making a templatized version of StringBuilder.
We can do it if we like, but does not seem urgent. Moved
fucntion bodies out of the class definition so it's easier to
see what's going on in the class. Since m_length is now an
ordinary integer, the check for overflowed simply checks to see
if the length is larger than the maximum string length. When we
encounter overflow that is not about length computation, we set
the length to the maximum integer to indicate the failure.
Deleted the append overloads for CFStringRef and NSString.
Removed m_bufferCharacters, m_is8Bit, and m_isReified.
(WTF::StringBuilder::StringBuilder): Simplified the constructor
since we only have to initialize the m_shouldCrashOnOverflow member.
(WTF::StringBuilder::clear): Fixed a mistake where this was not
resetting the m_isReified flag.
(WTF::StringBuilder::swap): Updated for changes in the data members.
(WTF::StringBuilder::operator StringView const): Moved out of line.
Made sure to call the length() function so we crash if this is
called after overflow.
(WTF::StringBuilder::append): Remove some of the unnecessary checks
and special cases in the various versions of append. Most of the
checking is done inside appendCharacters, with only a few exceptions.
(WTF::StringBuilder::appendSubstring): Moved out of the class
definition without making significant changes.
(WTF::StringBuilder::appendCharacter): Ditto.
(WTF::StringBuilder::toString): Greatly simplified this function
by relying on overflow checking in the reifyString function instead
of doing it here and removing unneeded invariant assertions.
(WTF::StringBuilder::toStringPreserveCapacity const): Ditto.
(WTF::StringBuilder::toAtomString const): Rewrote this to streamline,
removing explicit overflow checks.
(WTF::StringBuilder::length const): Moved out of the class
definition without making significant changes.
(WTF::StringBuilder::capacity const): Ditto.
(WTF::StringBuilder::operator[] const): Ditto.
(WTF::StringBuilder::characters const): Implemented this operation
in the function template. Now rather than having this call the
characters8 and characters16 functions, they can call it.
(WTF::StringBuilder::getBufferCharacters<LChar>): Deleted.
(WTF::StringBuilder::getBufferCharacters<UChar>): Deleted.
(WTF::StringBuilder::appendFromAdapters): Use saturatedSum to
compute the required length, which allows the extendBuffer
functions to do overflow checking without having to take special
checked integer types for arguments.
(WTF::StringBuilder::equal): Implement using StringView.
- wtf/text/StringBuilderJSON.cpp:
(WTF::StringBuilder::appendQuotedJSONString): Simplified the checked
arithmetic for computing the required capacity. Updated since we
removed m_bufferCharacters and changed the type of m_length.
- wtf/text/cf/StringConcatenateCF.h: Added. Specializes StringTypeAdapter for
both CFStringRef and NSString *. If CFStringGetCStringPtr works for Latin-1, then
does the 8-bit code path, otherwise the 16-bit.
- wtf/text/cocoa/TextStreamCocoa.mm: Include StringConcatenateCF.h, since it's
now needed to use CFStringRef with StringBuilder.
Tools:
- TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp: Updated
tests for changes to SaturatedArithmetic.h.
- TestWebKitAPI/Tests/WTF/StringBuilder.cpp: Updated tests for changes
to StringBuilder.
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(TestWebKitAPI::wkMediaCaptureStateString): Ditto.
- WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
Added include of StringConcatenateCF.h.
Added StringTypeAdapter for WKStringRef.
(WTR::styleDecToStr): Use ASCIILiteral instead of StringBuilder.
(WTR::string): Removed unneeded toWTFString since the WKStringRef
StringTypeAdapter takes care of it.
(WTR::string): Renamed from frameToStr. Use makeString.
(WTR::dumpResourceURL): Use append instead of appendLiteral.
(WTR::dumpFrameDescriptionSuitableForTestResult): Deleted.
(WTR::dumpLoadEvent): Use makeString.
(WTR::string): Renamed from a longer name. Return a String
instead of building in a StringBuilder. Use makeString.
(WTR::string): Ditto.
(WTR::dumpErrorDescriptionSuitableForTestResult): Removed
unneeded toWTFString.
(WTR::dumpFrameScrollPosition): Ditto.
(WTR::dumpDescendantFramesText): Ditto.
(WTR::InjectedBundlePage::dumpDOMAsWebArchive): Removed an
unneeded local variable.
(WTR::InjectedBundlePage::dump): Removed unneeded toWTFString.
(WTR::InjectedBundlePage::didReceiveTitleForFrame): Ditto.
(WTR::InjectedBundlePage::didFinishDocumentLoadForFrame):
Updated for functon name change.
(WTR::InjectedBundlePage::willSendRequestForFrame): Ditto.
Also use variadic append. Also use makeString.
(WTR::InjectedBundlePage::didReceiveResponseForResource): Ditto.
(WTR::InjectedBundlePage::didFinishLoadForResource): Ditto.
(WTR::InjectedBundlePage::didFailLoadForResource): Ditto.
(WTR::InjectedBundlePage::decidePolicyForNavigationAction): Ditto.
(WTR::InjectedBundlePage::decidePolicyForResponse): Ditto.
(WTR::InjectedBundlePage::willAddMessageToConsole): Ditto.
(WTR::InjectedBundlePage::willSetStatusbarText): Ditto.
(WTR::InjectedBundlePage::willRunJavaScriptPrompt): Ditto.
(WTR::InjectedBundlePage::didExceedDatabaseQuota): Ditto.
(WTR::InjectedBundlePage::shouldInsertNode): Ditto.
(WTR::InjectedBundlePage::shouldInsertText): Ditto.
(WTR::InjectedBundlePage::shouldDeleteRange): Ditto.
(WTR::InjectedBundlePage::shouldChangeSelectedRange): Ditto.
(WTR::InjectedBundlePage::shouldApplyStyle): Ditto.
(WTR::InjectedBundlePage::didBeginEditing): Ditto.
(WTR::InjectedBundlePage::didEndEditing): Ditto.
(WTR::InjectedBundlePage::didChange): Ditto.
(WTR::InjectedBundlePage::didChangeSelection): Ditto.
(WTR::InjectedBundlePage::dumpHistory): Ditto.
- 12:32 PM Changeset in webkit [277743] by
-
- 2 edits in trunk/Source/WebKit
[iOS][FCR] <select multiple> picker should collapse sections when tapping anywhere on a group header
https://bugs.webkit.org/show_bug.cgi?id=225974
<rdar://problem/77930033>
Reviewed by Wenson Hsieh.
Currently, the <select multiple> picker only collapses a section when
tapping on the disclosure button on the side of the group header. Instead,
a tap anywhere on the group header should collapse/expand the corresponding
section.
The new behavior is achieved by introducing WKSelectPickerGroupHeaderView,
a view that encapsulates the header label and disclosure icon. A tap
gesture recognizer is added to animate the icon, and notify the its
owner (WKSelectPickerTableViewController) when the view is tapped.
This patch also corrects the icon animation in RTL layouts, and corrects
the spacing between the header label and icon.
- UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKSelectPickerGroupHeaderView initWithGroupName:section:]):
(-[WKSelectPickerGroupHeaderView setCollapsed:animated:]):
(-[WKSelectPickerGroupHeaderView setDelegate:]):
(-[WKSelectPickerGroupHeaderView didTapHeader:]):
(+[WKSelectPickerGroupHeaderView preferredFont]):
(+[WKSelectPickerGroupHeaderView preferredMargin]):
(+[WKSelectPickerGroupHeaderView preferredHeight]):
(-[WKSelectPickerTableViewController tableView:heightForHeaderInSection:]):
(-[WKSelectPickerTableViewController tableView:viewForHeaderInSection:]):
(-[WKSelectPickerTableViewController didTapSelectPickerGroupHeaderView:]):
- 12:15 PM Changeset in webkit [277742] by
-
- 8 edits in trunk/Tools
Use Python 3 for running various scripts on build.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=225929
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/steps.py: Use Python 3. Also removed ./ from invocation to match with ews code.
(TriggerCrashLogSubmission):
(WaitForCrashCollection):
(CleanBuildIfScheduled):
(DeleteStaleBuildFiles):
(ArchiveBuiltProduct):
(ArchiveMinifiedBuiltProduct):
(ExtractBuiltProduct):
- CISupport/build-webkit-org/steps_unittest.py: Updated unit-tests.
(TestCleanBuildIfScheduled.test_success):
(TestCleanBuildIfScheduled.test_failure):
- CISupport/built-product-archive: Updated shebang to Python 3.
- CISupport/clean-build:
- CISupport/delete-stale-build-files:
- CISupport/trigger-crash-log-submission:
- CISupport/wait-for-crash-collection:
- 12:05 PM Changeset in webkit [277741] by
-
- 19 edits4 adds in trunk
Source/ThirdParty/ANGLE:
[ANGLE Metal] Support Provoking Vertex Emulation, Pass Fragment Output test suite.
https://bugs.webkit.org/show_bug.cgi?id=225842
Reviewed by Dean Jackson.
Add support for provoking vertex emulation. Metal only supports using the first vertex
of a primitive as a provoking vertex. To adapt, rewrite the index buffer on the fly when provoking vertex support is required. This method does not rewrite any primitives that would be
culled by primitive restart, such as simple triangles and lines. Triangle and line strips are re-written to line and triangle buffers. Tri fans and line loops are not supported for this
rewrite as of this patch.
- ANGLE.xcodeproj/project.pbxproj:
- src/libANGLE/renderer/metal/ContextMtl.h:
- src/libANGLE/renderer/metal/ContextMtl.mm:
(rx::ContextMtl::ContextMtl):
(rx::ContextMtl::initialize):
(rx::ContextMtl::onDestroy):
(rx::ContextMtl::drawElementsImpl):
(rx::ContextMtl::flushCommandBufer):
(rx::ContextMtl::present):
(rx::ContextMtl::ensureCommandBufferReady):
(rx::ContextMtl::requiresIndexRewrite):
- src/libANGLE/renderer/metal/ProgramMtl.h:
- src/libANGLE/renderer/metal/ProgramMtl.mm:
(rx::ProgramMtl::ProgramMtl):
(rx::ProgramMtl::programHasFlatAttributes const):
(rx::ProgramMtl::linkImpl):
- src/libANGLE/renderer/metal/ProvokingVertexHelper.h: Added.
- src/libANGLE/renderer/metal/ProvokingVertexHelper.mm: Added.
(rx::primCountForIndexCount):
(rx::ProvokingVertexHelper::ProvokingVertexHelper):
(rx::ProvokingVertexHelper::onDestroy):
(rx::ProvokingVertexHelper::commitPreconditionCommandBuffer):
(rx::ProvokingVertexHelper::getComputeCommandEncoder):
(rx::ProvokingVertexHelper::ensureCommandBufferReady):
(rx::buildIndexBufferKey):
(rx::ProvokingVertexHelper::getSpecializedShader):
(rx::ProvokingVertexHelper::hasSpecializedShader):
(rx::ProvokingVertexHelper::prepareCommandEncoderForDescriptor):
(rx::ProvokingVertexHelper::preconditionIndexBuffer):
- src/libANGLE/renderer/metal/mtl_state_cache.h:
(std::hash<rx::mtl::ProvokingVertexComputePipelineDesc>::operator() const):
- src/libANGLE/renderer/metal/mtl_state_cache.mm:
(rx::mtl::ProvokingVertexComputePipelineDesc::ProvokingVertexComputePipelineDesc):
(rx::mtl::ProvokingVertexComputePipelineDesc::operator=):
(rx::mtl::ProvokingVertexComputePipelineDesc::operator== const):
(rx::mtl::ProvokingVertexComputePipelineDesc::operator!= const):
(rx::mtl::ProvokingVertexComputePipelineDesc::hash const):
(rx::mtl::ProvokingVertexComputePipelineCache::ProvokingVertexComputePipelineCache):
(rx::mtl::ProvokingVertexComputePipelineCache::setComputeShader):
(rx::mtl::ProvokingVertexComputePipelineCache::clearPipelineStates):
(rx::mtl::ProvokingVertexComputePipelineCache::clear):
(rx::mtl::ProvokingVertexComputePipelineCache::getComputePipelineState):
(rx::mtl::ProvokingVertexComputePipelineCache::insertComputePipelineState):
(rx::mtl::ProvokingVertexComputePipelineCache::recreatePipelineStates):
(rx::mtl::ProvokingVertexComputePipelineCache::createComputePipelineState):
(rx::mtl::ProvokingVertexComputePipelineCache::~ProvokingVertexComputePipelineCache):
- src/libANGLE/renderer/metal/mtl_utils.h:
- src/libANGLE/renderer/metal/mtl_utils.mm:
(rx::mtl::CreateMslShader):
- src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc:
- src/libANGLE/renderer/metal/shaders/rewrite_indices.metal: Added.
- src/libANGLE/renderer/metal/shaders/rewrite_indices_shared.h: Added.
LayoutTests:
[ANGLE Metal] Support provoking vertex emulation, pass fragmentOutput tests
https://bugs.webkit.org/show_bug.cgi?id=225842
Reviewed by Dean Jackson.
- webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.int-expected.txt:
- webgl/2.0.0/deqp/functional/gles3/fragmentoutput/array.uint-expected.txt:
- webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.int-expected.txt:
- webgl/2.0.0/deqp/functional/gles3/fragmentoutput/basic.uint-expected.txt:
- webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_00-expected.txt:
- webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_01-expected.txt:
- webgl/2.0.0/deqp/functional/gles3/fragmentoutput/random_02-expected.txt:
- 11:43 AM Changeset in webkit [277740] by
-
- 110 edits in trunk
Update Base64 encoding/decoding to match more modern WebKit conventions
https://bugs.webkit.org/show_bug.cgi?id=225920
Reviewed by Chris Dumez.
Source/WebCore:
- Updates to use new signatures for base64 encoding/decoding including utilizing the string type adaptor and makeString.
- Replace out parameter based getDefaultWebCryptoMasterKey() with Optional<Vector<uint8_t>> defaultWebCryptoMasterKey().
- Update synchronous loading code path to use uint8_t* consistently for data buffer representation.
- Replace out parameters in quotedPrintableEncode/quotedPrintableDecode with Optional.
- Modules/encryptedmedia/InitDataRegistry.cpp:
(WebCore::extractKeyIDsKeyids):
Update to use new base64URLDecode.
(WebCore::sanitizeKeyids):
Update to use new base64URLEncodeToString()
- Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:
(WebCore::CDMSessionClearKey::update):
Update to use new base64Decode().
- Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::jsValueWithDataInContext):
(WebCore::jsValueWithAVMetadataItemInContext):
Update to use new base64EncodeToString(). Replace string concatentation
using operator+ with makeString().
- Modules/webauthn/AuthenticatorCoordinator.cpp:
(WebCore::AuthenticatorCoordinatorInternal::produceClientDataJson):
Update to use new base64URLEncodeToString().
- Modules/webauthn/PublicKeyCredential.cpp:
(WebCore::PublicKeyCredential::PublicKeyCredential):
Update to use new base64URLEncodeToString().
- Modules/websockets/WebSocketHandshake.cpp:
(WebCore::generateSecWebSocketKey):
(WebCore::WebSocketHandshake::getExpectedWebSocketAccept):
Update to use new base64URLEncodeToString().
- crypto/SerializedCryptoKeyWrap.h:
Change from outparameter based getDefaultWebCryptoMasterKey() to new
Optional<Vector<uint8_t>> defaultWebCryptoMasterKey().
- crypto/gcrypt/CryptoKeyECGCrypt.cpp:
(WebCore::CryptoKeyEC::platformAddFieldElements const):
Update to use new base64URLEncodeToString().
- crypto/gcrypt/SerializedCryptoKeyWrapGCrypt.cpp:
(WebCore::defaultWebCryptoMasterKey):
(WebCore::getDefaultWebCryptoMasterKey): Deleted.
Update for new defaultWebCryptoMasterKey() signature.
- crypto/keys/CryptoKeyAES.cpp:
(WebCore::CryptoKeyAES::importJwk):
(WebCore::CryptoKeyAES::exportJwk const):
Update to use new base64URLDecode / base64URLEncodeToString().
- crypto/keys/CryptoKeyEC.cpp:
(WebCore::CryptoKeyEC::importJwk):
Update to use new base64URLDecode.
- crypto/keys/CryptoKeyHMAC.cpp:
(WebCore::CryptoKeyHMAC::importJwk):
(WebCore::CryptoKeyHMAC::exportJwk const):
Update to use new base64URLDecode / base64URLEncodeToString().
- crypto/keys/CryptoKeyRSA.cpp:
(WebCore::CryptoKeyRSA::importJwk):
(WebCore::CryptoKeyRSA::exportJwk const):
Update to use new base64URLDecode / base64URLEncodeToString().
- crypto/mac/CryptoKeyECMac.cpp:
(WebCore::CryptoKeyEC::platformAddFieldElements const):
Update to use new base64URLEncodeToString().
- crypto/mac/SerializedCryptoKeyWrapMac.mm:
(WebCore::createAndStoreMasterKey):
(WebCore::findMasterKey):
(WebCore::defaultWebCryptoMasterKey):
(WebCore::getDefaultWebCryptoMasterKey): Deleted.
Update for new defaultWebCryptoMasterKey() signature.
- crypto/openssl/SerializedCryptoKeyWrapOpenSSL.cpp:
(WebCore::defaultWebCryptoMasterKey):
(WebCore::getDefaultWebCryptoMasterKey): Deleted.
Update for new defaultWebCryptoMasterKey() signature.
- fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::convertToDataURL):
Update to use new base64EncodeToString().
- inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::createDigest):
Update to use new base64EncodeToString().
- inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::showCertificate):
Update to use new base64URLDecode / base64URLEncodeToString().
- inspector/NetworkResourcesData.cpp:
(WebCore::NetworkResourcesData::ResourceData::decodeDataToContent):
Update to use new base64EncodeToString().
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::computeContentSecurityPolicySHA256Hash):
Update to use new base64Decode / base64EncodeToString().
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::Inspector::buildWebSocketMessage):
(WebCore::InspectorNetworkAgent::didReceiveData):
(WebCore::InspectorNetworkAgent::getSerializedCertificate):
(WebCore::InspectorNetworkAgent::interceptWithRequest):
(WebCore::InspectorNetworkAgent::interceptWithResponse):
(WebCore::InspectorNetworkAgent::interceptRequestWithResponse):
(WebCore::InspectorNetworkAgent::cachedResourceContent):
Update to use new base64Decode / base64EncodeToString().
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::dataContent):
(WebCore::InspectorPageAgent::archive):
Update to use new base64EncodeToString().
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
Switch to using Vector<uint8_t> buffer to match new loadResourceSynchronously
signature.
- loader/LoaderStrategy.h:
Switch to using Vector<uint8_t> for the data buffer.
- loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::isValid const):
Update to use new base64URLDecode.
- loader/ResourceCryptographicDigest.cpp:
(WebCore::parseCryptographicDigestImpl):
(WebCore::decodeEncodedResourceCryptographicDigest):
Update to use new base64Decode.
- loader/archive/mhtml/MHTMLArchive.cpp:
(WebCore::MHTMLArchive::generateMHTMLData):
Switch to using new base64Encode and new quotedPrintableEncode.
- loader/archive/mhtml/MHTMLParser.cpp:
(WebCore::MHTMLParser::parseNextPart):
Switch to using new base64Decode and new quotedPrintableDecode.
- loader/cocoa/PrivateClickMeasurementCocoa.mm:
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceUnlinkableToken):
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceSecretToken):
Update to use new base64URLDecode / base64URLEncodeToString().
- page/Base64Utilities.cpp:
(WebCore::Base64Utilities::btoa):
(WebCore::Base64Utilities::atob):
Update to use new base64Decode / base64EncodeToString().
- page/Page.cpp:
(WebCore::Page::userStyleSheetLocationChanged):
Update to use new base64Decode.
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::append):
- platform/SharedBuffer.h:
Add overload for append which allows passing in a uint8_t*.
- platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::parseLicenseFormat):
(WebCore::extractKeyidsFromCencInitData):
(WebCore::extractKeyIdFromWebMInitData):
(WebCore::CDMInstanceSessionClearKey::removeSessionData):
Update to use new base64URLDecode / base64URLEncodeToString().
- platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:
(WebCore::extractSinfData):
Update to use new base64Decode.
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequests):
Update to use new base64Decode / base64EncodeToString().
- platform/graphics/cairo/ImageBufferCairoBackend.cpp:
(WebCore::ImageBufferCairoBackend::toDataURL const):
Update to use new base64EncodeToString().
- platform/graphics/cg/ImageBufferUtilitiesCG.cpp:
(WebCore::dataURL):
Update to use new base64EncodeToString().
- platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::createUniqueFontName):
Update to use new base64EncodeToString().
- platform/graphics/win/FontCustomPlatformDataCairo.cpp:
(WebCore::createUniqueFontName):
Update to use new base64EncodeToString().
- platform/mac/SSLKeyGeneratorMac.mm:
(WebCore::signedPublicKeyAndChallengeString):
Update to use new base64EncodeToString().
- platform/network/BlobRegistryImpl.cpp:
(WebCore::loadBlobResourceSynchronously):
Switch to using Vector<uint8_t> buffer to match new loadResourceSynchronously
signature.
- platform/network/BlobResourceHandle.cpp:
- platform/network/BlobResourceHandle.h:
(WebCore::BlobResourceHandle::loadResourceSynchronously):
Switch to using Vector<uint8_t> buffer to match new loadResourceSynchronously
signature.
- platform/network/CredentialBase.cpp:
- platform/network/CredentialBase.h:
(WebCore::CredentialBase::serializationForBasicAuthorizationHeader const):
Add helper to construct Basic auth header to replace duplicated logic in
call sites.
- platform/network/DataURLDecoder.cpp:
(WebCore::DataURLDecoder::decodeBase64):
(WebCore::DataURLDecoder::decodeEscaped):
(WebCore::DataURLDecoder::decodeSynchronously):
- platform/network/DataURLDecoder.h:
Update to use new base64Decode.
- platform/network/ResourceHandle.cpp:
- platform/network/ResourceHandle.h:
Switch to using Vector<uint8_t> for the data buffer in the synchronous load.
- platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::didReceiveData):
- platform/network/SynchronousLoaderClient.h:
Switch to using Vector<uint8_t> buffer to match new loadResourceSynchronously
signature.
- platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::applyBasicAuthorizationHeader):
Use new serializationForBasicAuthorizationHeader() helper.
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
Switch to using Vector<uint8_t> for the data buffer in the synchronous load.
- platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::handleDataURL):
Switch to using Vector<uint8_t> for the data buffer in the synchronous load.
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::applyBasicAuthorizationHeader):
Use new serializationForBasicAuthorizationHeader() helper.
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
Switch to using Vector<uint8_t> for the data buffer in the synchronous load.
- platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
Switch to using Vector<uint8_t> for the data buffer in the synchronous load.
- platform/network/soup/SoupNetworkSession.cpp:
(WebCore::HostTLSCertificateSet::computeCertificateHash):
Update to use new base64EncodeToString().
- platform/text/DecodeEscapeSequences.h:
(WebCore::decodeURLEscapeSequencesAsData):
Switch to returning Vector<uint8_t>.
- platform/text/QuotedPrintable.cpp:
- platform/text/QuotedPrintable.h:
(WebCore::lengthOfLineEndingAtIndex):
(WebCore::quotedPrintableEncode):
(WebCore::quotedPrintableDecode):
Replace uses of Vector<char> with Vector<uint8_t> and the out parameters
with Optional return values.
- platform/win/SSLKeyGeneratorWin.cpp:
(WebCore::signedPublicKeyAndChallengeString):
Update to use new base64EncodeToString().
- workers/service/server/SWScriptStorage.cpp:
(WebCore::SWScriptStorage::sha2Hash const):
Update to use new base64URLEncodeToString().
Source/WebKit:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- UIProcess/API/C/WKPage.cpp:
(WKPageSetPageNavigationClient):
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebURLSchemeHandler.h:
- UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::didComplete):
- UIProcess/WebURLSchemeTask.h:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
- WebProcess/Network/WebLoaderStrategy.h:
- WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp:
(WebKit::WebURLSchemeHandlerProxy::loadSynchronously):
- WebProcess/WebPage/WebURLSchemeHandlerProxy.h:
Update to use uint8_t* data buffers more consistently for synchronous loads.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::sendReplyToSynchronousRequest):
Update to use uint8_t* data buffers more consistently for synchronous loads.
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
Update to use new base64URLDecode / base64URLEncodeToString().
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::applyBasicAuthorizationHeader):
Use new serializationForBasicAuthorizationHeader() helper.
- Shared/API/APIData.h:
(API::Data::create):
(API::Data::fastFreeBytes): Deleted.
Add new create function that takes ownership of a Vector's buffer rather
than copying it. Replace use of static functions with inline lambdas for
free-functions.
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::sandboxFilePath):
Use makeString and new base64URLEncoded().
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(produceClientDataJson):
Use new base64URLEncodeToString().
- UIProcess/Automation/cairo/WebAutomationSessionCairo.cpp:
(WebKit::base64EncodedPNGData):
Use new base64EncodeToString().
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::webCryptoMasterKey):
Use new defaultWebCryptoMasterKey() and new adopting API::Data::create function.
- UIProcess/Inspector/glib/RemoteInspectorClient.cpp:
(WebKit::RemoteInspectorClient::setBackendCommands):
Use new base64EncodeToString().
- UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:
(WebKit::RemoteWebInspectorUIProxy::platformSave):
Use new base64Decode().
- UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp:
(WebKit::WebInspectorUIProxy::platformSave):
Use new base64Decode().
- UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm:
(WebKit::RemoteWebInspectorUIProxy::platformSave):
Use new base64Decode().
- UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:
(WebKit::WebInspectorUIProxy::platformSave):
Use new base64Decode().
- UIProcess/Inspector/socket/RemoteInspectorClient.cpp:
(WebKit::RemoteInspectorClient::setBackendCommands):
Use new base64EncodeToString().
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticatorInternal::produceHashSet):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::getAssertion):
Use new base64EncodeToString().
- UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:
(WebKit::MockHidConnection::feedReports):
Use new base64Decode().
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::filterResponses const):
Use new base64EncodeToString().
Source/WebKitLegacy:
- WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::loadResourceSynchronously):
- WebCoreSupport/WebResourceLoadScheduler.h:
Update to match new signature. char -> uint8_t.
Source/WebKitLegacy/mac:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::wrapCryptoKey const):
(WebChromeClient::unwrapCryptoKey const):
Update to use new Optional returning defaultWebCryptoMasterKey().
- WebCoreSupport/WebInspectorClient.mm:
(WebInspectorFrontendClient::save):
Update to use new Optional returning base64Decode().
Source/WTF:
Bring base64 encoding/decoding up to more modern WebKit conventions by:
- Replace use of "out parameter + bool" with Optional return values.
- Using enum class for enumerations.
- Replacing SignedOrUnsignedCharVectorAdapter/ConstSignedOrUnsignedCharVectorAdapter with appropriate function overloads.
Also adds a new StringTypeAdapter for inline base64 encoding data in either makeString()
or StringBuilder. To make this work, a few modifications were need to the base64Encode()
functions to support the fixed size writeTo() function.
First, the length of the encoded data is now computed up front depending on the policy.
This has been extracted into a new calculateBase64EncodedSize() function used by both
the adaptor and by base64Encode when passed a Vector. Previously, when encoding using
some policies, the size was an overestimate and the resulting Vector would be resized
down after encoding.
Second, base64EncodeInternal was made into a template function to allow for two new
base64Encode functions, one of which has a UChar* destination. These are used by the
adaptor to write the encoded data.
One additional small change is that now a optional map type parameter has been added
to all the encoders to allow using either the default map or the URL one as defined
in RFC 4648. This simplifies the implementation of the StringTypeAdapter and makes the
base64URLEncode/base64URLDecode functions into simple convenience functions that use
the right defaults for the generic encode/decode functions.
- wtf/text/Base64.cpp:
(WTF::base64EncodeInternal):
(WTF::base64Encode):
(WTF::base64DecodeInternal):
(WTF::base64Decode):
(WTF::base64URLDecode):
(WTF::base64URLEncode): Deleted.
- wtf/text/Base64.h:
(WTF::base64Decode):
(WTF::base64Encode):
(WTF::base64URLEncode):
(WTF::isBase64OrBase64URLCharacter):
(WTF::calculateBase64EncodedSize):
(WTF::base64Encoded):
(WTF::base64URLEncoded):
(WTF::StringTypeAdapter<Base64Specification>::StringTypeAdapter):
(WTF::StringTypeAdapter<Base64Specification>::length const):
(WTF::StringTypeAdapter<Base64Specification>::is8Bit const):
(WTF::StringTypeAdapter<Base64Specification>::writeTo const):
Tools:
Update to use updated base64 and defaultWebCryptoMasterKey() related
functions.
- TestWebKitAPI/TCPServer.cpp:
(TestWebKitAPI::TCPServer::startSecureConnection):
(TestWebKitAPI::TCPServer::testCertificate):
(TestWebKitAPI::TCPServer::testPrivateKey):
- TestWebKitAPI/Tests/WebCore/ISOBox.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/cocoa/PrivateClickMeasurementCocoa.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/cocoa/SerializedCryptoKeyWrap.mm:
(TestWebKitAPI::TEST_F):
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(testIdentity2):
- TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/SSLKeyGenerator.mm:
(TestWebKitAPI::TEST_F):
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::Connection::webSocketHandshake):
- 11:36 AM Changeset in webkit [277739] by
-
- 8 edits2 adds in trunk/Source/WebCore
[Apple Pay] use a
dictionary ApplePayPaymentMethodModeDetailsinstead of a rawJSObject
https://bugs.webkit.org/show_bug.cgi?id=225903
<rdar://problem/78134060>
Reviewed by Andy Estes.
No change in functionality.
- Modules/applepay/ApplePayPaymentMethodModeDetails.idl: Added.
- Modules/applepay/ApplePayPaymentMethodModeDetails.h: Added.
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::didChangePaymentMethodMode):
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- 11:17 AM Changeset in webkit [277738] by
-
- 4 edits2 adds in trunk
Calculated width percent loses the floating point and cause line wrap
https://bugs.webkit.org/show_bug.cgi?id=225962
Reviewed by Antti Koivisto.
Source/WebCore:
Length::nonNanCalculatedValue unexpectedly floors non-integral values.
Test: fast/inline/unexpected-line-wrap-with-calc.html
- platform/Length.cpp:
(WebCore::Length::nonNanCalculatedValue const):
- platform/Length.h:
LayoutTests:
- fast/inline/unexpected-line-wrap-with-calc-expected.html: Added.
- fast/inline/unexpected-line-wrap-with-calc.html: Added.
- 11:10 AM Changeset in webkit [277737] by
-
- 1 copy in tags/Safari-612.1.15.1.3
Tag Safari-612.1.15.1.3.
- 11:09 AM Changeset in webkit [277736] by
-
- 8 edits in branches/safari-612.1.15.1-branch/Source
Versioning.
WebKit-7612.1.15.1.3
- 11:09 AM Changeset in webkit [277735] by
-
- 17 edits2 deletes in trunk/Tools
[webkitpy] Deprecate webkitpy/tool/grammar.py
https://bugs.webkit.org/show_bug.cgi?id=225943
<rdar://problem/78180111>
Reviewed by Stephanie Lewis.
- Scripts/bisect-builds:
- Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
(LayoutTestRunner.run_tests):
- Scripts/webkitpy/layout_tests/controllers/manager.py:
- Scripts/webkitpy/layout_tests/views/printing.py:
(Printer.print_found):
(Printer.print_workers_and_shards):
(Printer._print_one_line_summary):
- Scripts/webkitpy/test/printer.py:
- Scripts/webkitpy/tool/bot/flakytestreporter.py:
(FlakyTestReporter._lookup_bug_for_flaky_test):
(FlakyTestReporter._create_bug_for_flaky_test):
- Scripts/webkitpy/tool/commands/download.py:
(AbstractPatchProcessingCommand.execute):
(ProcessBugsMixin._fetch_list_of_patches_to_process):
(ProcessURLsMixin._fetch_list_of_patches_to_process):
- Scripts/webkitpy/tool/commands/download_unittest.py:
- Scripts/webkitpy/tool/commands/queries.py:
- Scripts/webkitpy/tool/commands/suggestnominations.py:
(SuggestNominations._print_nominations):
(SuggestNominations._print_counts):
- Scripts/webkitpy/tool/commands/upload.py:
(CleanPendingCommit._flags_to_clear_on_patch):
(PostCommits.execute):
- Scripts/webkitpy/tool/grammar.py: Removed.
- Scripts/webkitpy/tool/grammar_unittest.py: Removed.
- Scripts/webkitpy/tool/multicommandtool.py:
- Scripts/webkitpy/tool/steps/obsoletepatches.py:
(ObsoletePatches.run):
- Scripts/webkitpy/tool/steps/preparechangelogforrevert.py:
(PrepareChangeLogForRevert._message_for_revert):
- Scripts/webkitpy/tool/steps/preparechangelogforrevert_unittest.py:
- Scripts/webkitpy/tool/steps/reopenbugafterrevert.py:
(ReopenBugAfterRevert.run):
- 11:09 AM Changeset in webkit [277734] by
-
- 1 delete in tags/Safari-612.1.15.1.3
Delete tag.
- 11:06 AM Changeset in webkit [277733] by
-
- 1 copy in tags/Safari-612.1.15.1.3
Tag Safari-612.1.15.1.3.
- 10:58 AM Changeset in webkit [277732] by
-
- 2 edits in trunk/Source/WebKit
Improve logging in ProcessThrottler::invalidateAllActivities()
https://bugs.webkit.org/show_bug.cgi?id=225766
Reviewed by Geoffrey Garen.
Improve logging in ProcessThrottler::invalidateAllActivities(). We now log the number
of foreground and background activities. Normally each activity logs when getting
invalidated so we know this number. However, some activities are "quiet" and do not
log when invalidated (e.g. activities taken for IPC).
- UIProcess/ProcessThrottler.cpp:
(WebKit::ProcessThrottler::invalidateAllActivities):
- 10:57 AM Changeset in webkit [277731] by
-
- 2 edits in trunk/Source/WebKit
[iOS][FCR] <select multiple> picker checkmarks should use large symbol scale
https://bugs.webkit.org/show_bug.cgi?id=225936
<rdar://problem/77942151>
Reviewed by Wenson Hsieh.
- UIProcess/ios/forms/WKFormSelectPicker.mm:
(-[WKSelectPickerTableViewController tableView:cellForRowAtIndexPath:]):
Set the cell's image view's preferredSymbolConfiguration to use a
UIImageSymbolScaleLarge scale, and a UIFontTextStyleBody text style
to support Dynamic Type sizes.
- 10:54 AM Changeset in webkit [277730] by
-
- 7 edits in trunk/Tools
[webkitscmpy] Apply logging options to every command
https://bugs.webkit.org/show_bug.cgi?id=225939
Patch by Jonathan Bedard <JonWBedard@gmail.com> on 2021-05-19
Reviewed by Aakash Jain.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:
(main): Specify help for the LoggingGroup, apply logging group to all subparsers.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/init.py:
(Canonicalize.parser): Remove LoggingGroup.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:
(Info.parser): Remove LoggingGroup.
- 10:52 AM Changeset in webkit [277729] by
-
- 101 edits15 deletes in branches/safari-612.1.15.0-branch
Cherry-pick r277665. rdar://problem/78213427
Temporarily revert r276592 as it breaks some native apps
https://bugs.webkit.org/show_bug.cgi?id=225917
JSTests:
Unreviewed, revert.
- microbenchmarks/put-slow-no-cache-array.js: Removed.
- microbenchmarks/put-slow-no-cache-function.js: Removed.
- microbenchmarks/put-slow-no-cache-js-proxy.js: Removed.
- microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Removed.
- microbenchmarks/put-slow-no-cache.js: Removed.
- microbenchmarks/reflect-set-with-receiver.js: Removed.
- stress/custom-get-set-proto-chain-put.js: (getObjects): (let.base.of.getBases):
- stress/module-namespace-access-set-fails.js: Removed.
- stress/put-non-reified-static-accessor-or-custom.js: Removed.
- stress/put-non-reified-static-function-or-custom.js: Removed.
- stress/put-to-primitive-non-reified-static-custom.js: Removed.
- stress/put-to-primitive.js: Removed.
- stress/put-to-proto-chain-overrides-put.js: Removed.
- stress/typed-array-canonical-numeric-index-string-set.js: Removed.
LayoutTests/imported/w3c:
Unreviewed, revert.
- web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver-expected.txt: Removed.
- web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver.html: Removed.
- web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver-expected.txt:
- web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html:
Source/JavaScriptCore:
Unreviewed, revert.
- API/JSCallbackObject.h:
- API/JSCallbackObjectFunctions.h: (JSC::JSCallbackObject<Parent>::put):
- debugger/DebuggerScope.h:
- runtime/ClassInfo.h:
- runtime/ClonedArguments.h:
- runtime/CustomGetterSetter.cpp: (JSC::callCustomSetter):
- runtime/CustomGetterSetter.h:
- runtime/ErrorConstructor.h:
- runtime/ErrorInstance.h:
- runtime/GenericArguments.h:
- runtime/GenericArgumentsInlines.h: (JSC::GenericArguments<Type>::put):
- runtime/GetterSetter.h:
- runtime/JSArray.cpp: (JSC::JSArray::put):
- runtime/JSArray.h:
- runtime/JSArrayBufferView.cpp: (JSC::JSArrayBufferView::put):
- runtime/JSArrayBufferView.h:
- runtime/JSCJSValue.cpp: (JSC::JSValue::putToPrimitive):
- runtime/JSCell.cpp: (JSC::JSCell::doPutPropertySecurityCheck):
- runtime/JSCell.h:
- runtime/JSFunction.cpp: (JSC::JSFunction::put):
- runtime/JSFunction.h:
- runtime/JSGenericTypedArrayView.h:
- runtime/JSGlobalLexicalEnvironment.h:
- runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::put):
- runtime/JSGlobalObject.h:
- runtime/JSLexicalEnvironment.h:
- runtime/JSModuleEnvironment.h:
- runtime/JSModuleNamespaceObject.h:
- runtime/JSObject.cpp: (JSC::JSObject::doPutPropertySecurityCheck): (JSC::JSObject::putInlineSlow): (JSC::JSObject::prototypeChainMayInterceptStoreTo): (JSC::definePropertyOnReceiverSlow): Deleted. (JSC::JSObject::definePropertyOnReceiver): Deleted. (JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded): Deleted.
- runtime/JSObject.h: (JSC::JSObject::putByIndexInline): (JSC::JSObject::doPutPropertySecurityCheck): (JSC::JSObject::hasNonReifiedStaticProperties): Deleted.
- runtime/JSObjectInlines.h: (JSC::JSObject::canPerformFastPutInlineExcludingProto): (JSC::JSObject::putInlineForJSObject): (JSC::JSObject::putDirectInternal): (JSC::JSObject::putInlineFast): Deleted.
- runtime/JSProxy.h:
- runtime/JSTypeInfo.h: (JSC::TypeInfo::overridesGetOwnPropertySlot const): (JSC::TypeInfo::overridesAnyFormOfGetOwnPropertyNames const): (JSC::TypeInfo::hasPutPropertySecurityCheck const): (JSC::TypeInfo::hasStaticPropertyTable const): Deleted. (JSC::TypeInfo::overridesPut const): Deleted.
- runtime/Lookup.h: (JSC::putEntry): (JSC::lookupPut):
- runtime/PropertySlot.h:
- runtime/ProxyObject.cpp: (JSC::ProxyObject::put):
- runtime/ProxyObject.h:
- runtime/PutPropertySlot.h: (JSC::PutPropertySlot::PutPropertySlot): (JSC::PutPropertySlot::context const): (JSC::PutPropertySlot::type const): (JSC::PutPropertySlot::isInitialization const): (JSC::PutPropertySlot::isTaintedByOpaqueObject const): Deleted. (JSC::PutPropertySlot::setIsTaintedByOpaqueObject): Deleted.
- runtime/ReflectObject.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/RegExpObject.cpp: (JSC::RegExpObject::put):
- runtime/RegExpObject.h:
- runtime/StringObject.cpp: (JSC::StringObject::put):
- runtime/StringObject.h:
- runtime/StringPrototype.cpp: (JSC::StringPrototype::finishCreation): (JSC::StringPrototype::create):
- runtime/StringPrototype.h:
- runtime/Structure.cpp: (JSC::Structure::validateFlags):
- runtime/Structure.h: (JSC::Structure::takesSlowPathInDFGForImpureProperty): (JSC::Structure::hasNonReifiedStaticProperties const): Deleted.
- tools/JSDollarVM.cpp:
Source/WebCore:
Unreviewed, revert.
- bindings/js/JSDOMWindowCustom.cpp: (WebCore::JSDOMWindow::doPutPropertySecurityCheck): (WebCore::JSDOMWindow::put):
- bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::doPutPropertySecurityCheck):
- bindings/js/JSRemoteDOMWindowCustom.cpp: (WebCore::JSRemoteDOMWindow::put):
- bindings/scripts/CodeGeneratorJS.pm: (GeneratePut): (GenerateHeader):
- bindings/scripts/test/JS/JSTestDomainSecurity.h:
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: (WebCore::JSTestIndexedSetterNoIdentifier::put):
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: (WebCore::JSTestIndexedSetterThrowingException::put):
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: (WebCore::JSTestIndexedSetterWithIdentifier::put):
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestInterface.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: (WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: (WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: (WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: (WebCore::JSTestNamedSetterNoIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: (WebCore::JSTestNamedSetterThrowingException::put):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: (WebCore::JSTestNamedSetterWithIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp: (WebCore::JSTestNamedSetterWithIndexedGetter::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp: (WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp: (WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp: (WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp: (WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h:
- bindings/scripts/test/JS/JSTestPluginInterface.cpp: (WebCore::JSTestPluginInterface::put):
- bindings/scripts/test/JS/JSTestPluginInterface.h:
- bridge/objc/objc_runtime.h:
- bridge/runtime_array.h:
- bridge/runtime_object.h:
Source/WebKit:
Unreviewed, revert.
- WebProcess/Plugins/Netscape/JSNPObject.h:
LayoutTests:
Unreviewed, revert
- http/tests/security/cross-frame-access-object-getPrototypeOf-in-put-expected.txt:
- http/tests/security/cross-frame-access-object-getPrototypeOf-in-put.html:
- js/dom/reflect-set-onto-dom-expected.txt:
- js/dom/script-tests/reflect-set-onto-dom.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277665 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:53 AM Changeset in webkit [277728] by
-
- 13 edits in trunk/Source
[Hardening] CARingBuffer should validate the storage size before adopting it
https://bugs.webkit.org/show_bug.cgi?id=225928
<rdar://73575595>
Reviewed by Jer Noble.
We use a lot of SharedMemory-backed CARingBuffers. The pattern is that a process creates the
SharedMemory then sends a SharedMemory::Handle to another process, who adopts it as storage
for its CARingBuffer. Because the process that sends us the SharedMemory::Handle may not be
trusted, we need to validate that the size of the storage is sufficient based on the
CARingBuffer's format & frameCount.
Source/WebCore:
- platform/audio/cocoa/CARingBuffer.cpp:
(WebCore::computeCapacityBytes):
(WebCore::computeSizeForBuffers):
(WebCore::CARingBuffer::adoptStorage):
(WebCore::CARingBuffer::initializeAfterAllocation):
(WebCore::CARingBuffer::allocate):
(WebCore::CARingBufferStorageVector::allocate):
- platform/audio/cocoa/CARingBuffer.h:
Source/WebKit:
- GPUProcess/media/RemoteAudioDestinationManager.cpp:
- GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp:
(WebKit::RemoteAudioMediaStreamTrackRenderer::audioSamplesStorageChanged):
- GPUProcess/webrtc/RemoteMediaRecorder.cpp:
(WebKit::RemoteMediaRecorder::audioSamplesStorageChanged):
- Shared/Cocoa/SharedRingBufferStorage.cpp:
(WebKit::ReadOnlySharedRingBufferStorage::size const):
(WebKit::ReadOnlySharedRingBufferStorage::allocate):
(WebKit::SharedRingBufferStorage::allocate):
- Shared/Cocoa/SharedRingBufferStorage.h:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:
(WebKit::SpeechRecognitionRemoteRealtimeMediaSource::setStorage):
- WebProcess/GPU/media/RemoteAudioSourceProviderManager.cpp:
(WebKit::RemoteAudioSourceProviderManager::RemoteAudio::setStorage):
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::RemoteAudio::setStorage):
- 9:49 AM Changeset in webkit [277727] by
-
- 4 edits in trunk/Source/JavaScriptCore
Speed up debug validation in CacheableIdentifier::createFromIdentifierOwnedByCodeBlock().
https://bugs.webkit.org/show_bug.cgi?id=225948
rdar://78175542
Reviewed by Yusuke Suzuki.
- Introduce CodeBlock::hasIdentifier() so that we can encapsulate the identifier search better. Change CacheableIdentifier::createFromIdentifierOwnedByCodeBlock() to call this method instead of rolling its own identifier search.
- If the CodeBlock is pathological and has a ridiculous number of identifiers to search, create a cached hash set of the identifiers, and use that for doing the search instead.
Apparently, YouTube can have a single JS function with 2177689 bytecodes, where
a large portion of those are put_by_ids. The function also has some 17k+
identifiers. With that may bytecodes doing a validation search on 17k+
identifiers in a Debug build, the site can become un-useable. This optimization
brings it back from un-useable to barely tolerable on the Debug build.
- Also fetch the UnlinkedCodeBlock from the WriteBarrier field just once in CodeBlock::identifier() and CodeBlock::hasIdentifier(). This may not matter on a Release build, but it can add up on a Debug build, which is already slow. We should try to avoid doing redundant validation via the WriteBarrier access.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::identifier const):
(JSC::CodeBlock::hasIdentifier):
- bytecode/CodeBlock.h:
- runtime/CacheableIdentifierInlines.h:
(JSC::CacheableIdentifier::createFromIdentifierOwnedByCodeBlock):
- 9:43 AM Changeset in webkit [277726] by
-
- 3 edits2 adds in trunk
[Mac] MSE-based video pauses when put in background; PiP context menu disabled
https://bugs.webkit.org/show_bug.cgi?id=225958
<rdar://78130303>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-has-audio-video.html
In r277116, in order to reduce the CPU usage incurred when pushing state changes from
the GPU process to the WebContent process, state changes tohasAudioandhasVideo
were now only updated when the MediaPlayer indicated that itscharacteristicsChanged().
However, in SourceBufferPrivateAVFObjC, this call was performed too early, before the
SourceBuffer in the WebContent process had informed SourceBufferPrivate of newly added
audio and video tracks. Thus the cached values ofhasAudioandhasVideoinside the
WebContent process were never updated.
Call
characteristicsChanged()from the callback handler ofdidReceiveInitializationSegment(),
which will be called only after the WebContent process completes its handling of the
new initialization segment, which includes telling the SourceBufferPrivate in the GPU
process about newly added audio and video tracks.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
LayoutTests:
- media/media-source/media-source-has-audio-video-expected.txt: Added.
- media/media-source/media-source-has-audio-video.html: Added.
- 9:34 AM Changeset in webkit [277725] by
-
- 5 edits in trunk/Source/JavaScriptCore
Link Baseline JIT code off the main thread
https://bugs.webkit.org/show_bug.cgi?id=225940
Reviewed by Yusuke Suzuki.
This patch makes JIT::link() able to run on compiler threads.
Most of what the function was already doing happily remains the
same. This patch moves a few operations to JIT::finalizeOnMainThread
for things that can't happen on the compiler thread:
- Adding data to some global hash tables which aren't synchronized.
- Setting the JITCode.
- Setting the code pointer for exception handlers.
- Some other metadata the Sampling Profiler looks at.
- jit/JIT.cpp:
(JSC::JIT::compileAndLinkWithoutFinalizing):
(JSC::JIT::link):
(JSC::JIT::finalizeOnMainThread):
(JSC::JIT::privateCompile):
(JSC::JIT::compileWithoutLinking): Deleted.
- jit/JIT.h:
- jit/JITWorklist.cpp:
(JSC::JITWorklist::Plan::compileInThread):
(JSC::JITWorklist::Plan::finalize):
(JSC::JITWorklist::Plan::compileOnMainThreadNow):
(JSC::JITWorklist::compileLater):
(JSC::JITWorklist::compileOnMainThreadNow):
(JSC::JITWorklist::finalizePlans):
(JSC::JITWorklist::Plan::compileNow): Deleted.
(JSC::JITWorklist::compileNow): Deleted.
- jit/JITWorklist.h:
- 9:23 AM Changeset in webkit [277724] by
-
- 2 edits in branches/safari-612.1.15.0-branch/Tools
Cherry-pick r277608. rdar://problem/78207926
Fix clean build after r277606
https://bugs.webkit.org/show_bug.cgi?id=223658
- TestWebKitAPI/Tests/WebKitCocoa/ContentSecurityPolicy.mm: (TEST): Use API instead of removed API. Why EWS didn't find this, we may never know.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277608 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:19 AM Changeset in webkit [277723] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Tools
Cherry-pick r277608. rdar://problem/78207944
Fix clean build after r277606
https://bugs.webkit.org/show_bug.cgi?id=223658
- TestWebKitAPI/Tests/WebKitCocoa/ContentSecurityPolicy.mm: (TEST): Use API instead of removed API. Why EWS didn't find this, we may never know.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277608 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:47 AM Changeset in webkit [277722] by
-
- 2 edits in trunk/Source/WebCore
Factor pseudo class invalidation code in Document::updateHoverActiveState into a lambda
https://bugs.webkit.org/show_bug.cgi?id=225966
Reviewed by Sam Weinig.
Cleanup.
- dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):
- 8:04 AM Changeset in webkit [277721] by
-
- 2 edits in trunk/Source/WebCore
Fix flaky assertion hit under AudioSummingJunction::removeOutput()
https://bugs.webkit.org/show_bug.cgi?id=225951
Reviewed by Eric Carlson.
Temporarily disable assertion preventing heap allocations on the audio thread
in AudioSummingJunction::removeOutput() as it is flakily hitting on the bots.
- Modules/webaudio/AudioSummingJunction.cpp:
(WebCore::AudioSummingJunction::removeOutput):
- 7:47 AM Changeset in webkit [277720] by
-
- 2 edits in trunk/Source/WebCore
[GPU Process] Add more bounds checking and input validation in DisplayListIterator
https://bugs.webkit.org/show_bug.cgi?id=225937
rdar://71848559
Reviewed by Ryosuke Niwa.
Harden logic for iterating display list items.
- Check that the item type enum is valid after reading it from the cursor.
- In the case of out-of-line items, verify that the data length of the encoded object is limited to a
reasonable size (4 GB) and does not exceed the capacity of the current item buffer before attempting to read
and decode the item.
Note that in all cases, validation failure results in web process termination via a MESSAGE_CHECK initiated by
the GPU Process.
- platform/graphics/displaylists/DisplayListIterator.cpp:
(WebCore::DisplayList::DisplayList::Iterator::updateCurrentItem):
Note that this additionally caps the size of any given out-of-line display list item to the (comfortably large)
numerical limit ofuint32_t.
- 7:27 AM Changeset in webkit [277719] by
-
- 4 edits in trunk/Tools
Unreviewed, reverting r277444.
https://bugs.webkit.org/show_bug.cgi?id=225967
Broke api tests on iOS
Reverted changeset:
"[run-api-tests] Use Python 3 (Part 1)"
https://bugs.webkit.org/show_bug.cgi?id=225427
https://trac.webkit.org/changeset/277444
- 5:16 AM Changeset in webkit [277718] by
-
- 2 edits in trunk/Source/WebCore
ASSERTION FAILED: unwrapParamsOrException.exception().code() != ExistingExceptionError on http/wpt/preload/change-link-rel-attribute.html
https://bugs.webkit.org/show_bug.cgi?id=224845
<rdar://problem/76928843>
Reviewed by Mark Lam.
Covered by existing tests.
- crypto/SubtleCrypto.cpp:
(WebCore::SubtleCrypto::unwrapKey):
Remove debug assertion since there are valid cases where it can happen.
- 4:54 AM Changeset in webkit [277717] by
-
- 5 edits in trunk
https://bugs.webkit.org/show_bug.cgi?id=225964
Fix flex-aspect-ratio-002+004.html
Patch by Rob Buis <rbuis@igalia.com> on 2021-05-19
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:
Import tests.
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.html:
- web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.html:
Source/WebCore:
Flex should not do transferred size suggestion for non-replaced aspect-ratio items:
https://drafts.csswg.org/css-flexbox-1/#min-size-auto
Tests: imported/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-002.html
imported/web-platform-tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-004.html
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
- 4:11 AM WebKitFlatpakSDK/GstBuild created by
- 4:07 AM WebKitFlatpakSDK edited by
- (diff)