Timeline
Jun 7, 2021:
- 9:57 PM Changeset in webkit [278592] by
-
- 2 edits in trunk/Tools
Update jya's email address
https://bugs.webkit.org/show_bug.cgi?id=226752
Reviewed by Tim Horton.
- Scripts/webkitpy/common/config/contributors.json:
- 8:22 PM Changeset in webkit [278591] by
-
- 19 edits2 adds in trunk
[JSC] Use ResolvedClosureVar to get brand from scope
https://bugs.webkit.org/show_bug.cgi?id=226677
rdar://78802869
Reviewed by Saam Barati.
JSTests:
- stress/private-access-nested-eval.js: Added.
(shouldThrow):
(shouldThrow.prototype.x):
(shouldThrow.prototype.m.C.prototype.z):
(shouldThrow.prototype.m.C.prototype.a):
(shouldThrow.prototype.m.C):
(shouldThrow.prototype.m):
- stress/private-access-nested.js: Added.
(shouldThrow):
(shouldThrow.prototype.x):
(shouldThrow.prototype.m.C.prototype.z):
(shouldThrow.prototype.m.C.prototype.a):
(shouldThrow.prototype.m.C):
(shouldThrow.prototype.m):
Source/JavaScriptCore:
Private brand lookup is doing wrong way to get scope.
- op_resolve_scope with private name (e.g. #x)
- then, doing op_get_from_scope with (1)'s scope with different name (e.g. @privateBrand)
This is wrong in JSC. We resolve scope at link-time in CodeBlock. So we need to ensure that both op_resolve_scope and op_get_from_scope
starts with the current scope-register. As a result, private-brand lookup is broken right now. Let's see the buggy case.
class D {
#x() {}
m() {
class C {
#yy;
#z() { }
a() {
this.#x(); <===== This point.
}
}
let c = new C();
c.a();
}
}
In the above point, we first lookup the scope with #x, and we get the D's class-scope. But our get_from_scope is using privateBrand, and
privateBrand property exists too in C's class-scope too since C also has #yy and #z. As a result, CodeBlock linking configures the offset for
C's class-scope in get_from_scope. And this offset is different from D's class-scope's privateBrand.
Only allowed case for the above usage is ResolvedClosureVar. And generatorification uses it too. In this patch,
- We ensure that class-scope (with private name) must have @privateBrand and @privateClassBrand with offset 1 and 0.
- Use ResolvedClosureVar with the above pre-defined offset
Since CodeBlock's linking does not resolve the scope for get_from_scope if it is ResolvedClosureVar, we can just perform the desired ResolvedClosureVar lookup
with the given scope with the compiled offset.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::instantiateLexicalVariables):
(JSC::BytecodeGenerator::pushLexicalScope):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::emitCreatePrivateBrand):
(JSC::BytecodeGenerator::emitGetPrivateBrand):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::BaseDotNode::emitGetPropertyValue):
(JSC::BaseDotNode::emitPutProperty):
(JSC::PostfixNode::emitDot):
(JSC::PrefixNode::emitDot):
(JSC::InNode::emitBytecode):
(JSC::BlockNode::emitBytecode):
(JSC::ForNode::emitBytecode):
(JSC::ForInNode::emitBytecode):
(JSC::ForOfNode::emitBytecode):
(JSC::SwitchNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseClass):
- parser/VariableEnvironment.h:
- 7:25 PM Changeset in webkit [278590] by
-
- 11 edits in trunk
Adopt SecTrustGetCertificateAtIndex replacement where available
https://bugs.webkit.org/show_bug.cgi?id=225893
Patch by Alex Christensen <achristensen@webkit.org> on 2021-06-07
Reviewed by Chris Dumez.
Source/WebCore:
- platform/network/cf/CertificateInfoCFNet.cpp:
(WebCore::certificatesMatch):
(WebCore::CertificateInfo::certificateChainFromSecTrust):
(WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate const):
- platform/network/cocoa/CertificateInfoCocoa.mm:
(WebCore::CertificateInfo::dump const):
Source/WebKit:
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::encodeNSError):
- UIProcess/Authentication/mac/WebCredentialMac.mm:
(WebKit::leafCertificate):
(WebKit::chain):
(WebKit::WebCredential::WebCredential):
Source/WTF:
rdar://74752046 introduced a new way to access the same thing.
- wtf/PlatformHave.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(verifyCertificateAndPublicKey):
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- 6:53 PM Changeset in webkit [278589] by
-
- 103 edits15 adds in trunk
Unreviewed, reland r276592 with a fix for put() override in prototype chain of a JSProxy
https://bugs.webkit.org/show_bug.cgi?id=226185
JSTests:
- microbenchmarks/put-slow-no-cache-array.js: Added.
- microbenchmarks/put-slow-no-cache-function.js: Added.
- microbenchmarks/put-slow-no-cache-js-proxy.js: Added.
- microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Added.
- microbenchmarks/put-slow-no-cache.js: Added.
- microbenchmarks/reflect-set-with-receiver.js: Added.
- stress/custom-get-set-proto-chain-put.js:
- stress/module-namespace-access-set-fails.js: Added.
- stress/put-non-reified-static-accessor-or-custom.js: Added.
- stress/put-non-reified-static-function-or-custom.js: Added.
- stress/put-to-primitive-non-reified-static-custom.js: Added.
- stress/put-to-primitive.js: Added.
- stress/put-to-proto-chain-overrides-put.js:
Rework to always test new objects, add JSProxy coverage, and assert that receiver has own property.
- stress/typed-array-canonical-numeric-index-string-set.js: Added.
LayoutTests/imported/w3c:
- web-platform-tests/WebIDL/ecmascript-binding/global-object-implicit-this-value.any-expected.txt:
- web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver-expected.txt: Added.
- web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver.html: Added.
- 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:
The API test added in r278366 revealed a flaw in JSObject::definePropertyOnReceiver()
that caused putDirectInternal() to be performed on a JSProxy instead of it's target.
Remedies that via a type check, ensuring the test and iOS apps are functional.
The issue was originally missed because the prototype chain of a global object is immutable
and none of the global object's prototypes override put(). OpaqueJSClass::prototype() sets
the Prototype directly, ignoring the IsImmutablePrototypeExoticObject type info flag.
Also, excludes an invariant from the original patch that required put() to be overriden
when implementing custom DefineOwnProperty. It is now broken by WindowProperties object.
- API/JSCallbackObject.h:
- API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::put):
- API/tests/testapiScripts/testapi.js:
- debugger/DebuggerScope.h:
- runtime/ClassInfo.h:
- runtime/ClonedArguments.h:
- runtime/CustomGetterSetter.cpp:
(JSC::callCustomSetter): Deleted.
- 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): Deleted.
- runtime/JSArrayBufferView.h:
- runtime/JSCJSValue.cpp:
(JSC::JSValue::putToPrimitive):
- runtime/JSCell.cpp:
(JSC::JSCell::doPutPropertySecurityCheck): Deleted.
- 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::getOwnPropertySlot):
(JSC::JSObject::putInlineSlow):
(JSC::definePropertyOnReceiverSlow):
(JSC::JSObject::definePropertyOnReceiver):
(JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded):
(JSC::JSObject::doPutPropertySecurityCheck): Deleted.
(JSC::JSObject::prototypeChainMayInterceptStoreTo): Deleted.
- runtime/JSObject.h:
(JSC::JSObject::putByIndexInline):
(JSC::JSObject::hasNonReifiedStaticProperties):
(JSC::JSObject::getOwnPropertySlot):
(JSC::JSObject::putDirect):
(JSC::JSObject::doPutPropertySecurityCheck): Deleted.
- runtime/JSObjectInlines.h:
(JSC::JSObject::canPerformFastPutInlineExcludingProto):
(JSC::JSObject::putInlineForJSObject):
(JSC::JSObject::putInlineFast):
(JSC::JSObject::putDirectInternal):
- runtime/JSProxy.h:
- runtime/JSTypeInfo.h:
(JSC::TypeInfo::hasStaticPropertyTable const):
(JSC::TypeInfo::overridesPut const):
(JSC::TypeInfo::getOwnPropertySlotMayBeWrongAboutDontEnum const):
(JSC::TypeInfo::hasPutPropertySecurityCheck const): Deleted.
- runtime/Lookup.h:
(JSC::putEntry): Deleted.
(JSC::lookupPut): Deleted.
- runtime/PropertySlot.h:
- runtime/ProxyObject.cpp:
(JSC::ProxyObject::put):
- runtime/ProxyObject.h:
- runtime/PutPropertySlot.h:
(JSC::PutPropertySlot::PutPropertySlot):
(JSC::PutPropertySlot::context const):
(JSC::PutPropertySlot::isTaintedByOpaqueObject const):
(JSC::PutPropertySlot::setIsTaintedByOpaqueObject):
- 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::hasNonReifiedStaticProperties const):
- tools/JSDollarVM.cpp:
Source/WebCore:
Tests: js/dom/script-tests/reflect-set-onto-dom.js
imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver.html
http/tests/security/cross-frame-access-object-getPrototypeOf-in-put.html
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
(WebCore::JSDOMWindow::doPutPropertySecurityCheck): Deleted.
- bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::doPutPropertySecurityCheck): Deleted.
- bindings/js/JSRemoteDOMWindowCustom.cpp:
(WebCore::JSRemoteDOMWindow::put):
- bindings/scripts/CodeGeneratorJS.pm:
(GeneratePut):
(GenerateHeader):
- bindings/scripts/test/JS/*: Updated.
- bridge/objc/objc_runtime.h:
- bridge/runtime_array.h:
- bridge/runtime_object.h:
Source/WebKit:
- WebProcess/Plugins/Netscape/JSNPObject.h:
LayoutTests:
- 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:
- 6:43 PM Changeset in webkit [278588] by
-
- 25 edits in trunk/Source/JavaScriptCore
Introduce LexicalScopeFeatures to enable future bytecode optimizations
https://bugs.webkit.org/show_bug.cgi?id=224072
Reviewed by Keith Miller.
Before this patch, BytecodeGenerator was capable of reasoning about the presence of
with
statements, directeval, or any other code features only within the current executable:
`
with (foo) {
(function() {
There was no way to detect WithScope during generation of this function.
})();
}
`
This change is required for op_to_this rewrite (#225397): if FunctionCallResolveNode and
friends knew there is no WithScope, op_call could be emitted with |this| value of
undefinedas per spec [1], instead of resolved scope. This would:
- simplify op_to_this on all tiers, likely resulting in minor perf boost;
- save 1 instruction per strict function by removing op_to_this;
- remove toThis() from the method table and ~30 its call sites from built-ins;
- fix built-in methods that were observably lacking toThis();
- fix proto getter / setter called on global scope;
- fix WebIDL accessors called with |this| value of
undefinedandnull.
Also, if ResolveNode knew that unforgeable global properties are not shadowed and there
is nowithstatement or sloppy mode directeval, thenundefined/Infinity/NaN
lookups could be constant-folded. This would save up to 3 bytecode ops per each usage
and allow emitting op_is_undefined_or_null forx === undefined || x === null.
V8 performs this optimization [2].
This patch introduces LexicalScopeFeatures to allow passing such information from Parser
to BytecodeGenerator with a minimal code diff. These features are kept separate from
CodeFeature to simplify reasoning about feature's scope and because we need to propagate
lexical features from parent to child scope.
Strict mode is the first use case of LexicalScopeFeatures, which this change carefully
fits into existing abstractions without increasing their memory usage even by 1 byte.
[1]: https://tc39.es/ecma262/#sec-evaluatecall (step 2)
[2]: https://medium.com/@bmeurer/sometimes-undefined-is-defined-7701e1c9eff8
- builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createExecutable):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::recordParse):
(JSC::UnlinkedCodeBlock::lexicalScopeFeatures const):
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::setInvalidTypeProfilingOffsets):
- bytecode/UnlinkedFunctionExecutable.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewClassFieldInitializerFunction):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::lexicalScopeFeatures const):
(JSC::BytecodeGenerator::generate):
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createFunctionMetadata):
- parser/Nodes.cpp:
(JSC::ScopeNode::ScopeNode):
(JSC::ProgramNode::ProgramNode):
(JSC::ModuleProgramNode::ModuleProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionMetadataNode::FunctionMetadataNode):
(JSC::FunctionMetadataNode::operator== const):
(JSC::FunctionMetadataNode::dump const):
(JSC::FunctionNode::FunctionNode):
- parser/Nodes.h:
(JSC::ScopeNode::lexicalScopeFeatures):
(JSC::ScopeNode::isStrictMode const):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseGeneratorFunctionSourceElements):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements):
(JSC::Parser<LexerType>::parseAsyncGeneratorFunctionSourceElements):
(JSC::Parser<LexerType>::parseFunctionBody):
(JSC::Parser<LexerType>::parseFunctionInfo):
- parser/Parser.h:
(JSC::Scope::Scope):
(JSC::Scope::lexicalScopeFeatures const):
(JSC::Scope::setStrictMode):
(JSC::Scope::strictMode const):
(JSC::Scope::fillParametersForSourceProviderCache):
(JSC::Scope::restoreFromSourceProviderCache):
(JSC::Parser::pushScope):
(JSC::Parser::lexicalScopeFeatures):
(JSC::Parser<LexerType>::parse):
- parser/ParserModes.h:
- parser/SourceProviderCacheItem.h:
(JSC::SourceProviderCacheItem::lexicalScopeFeatures const):
(JSC::SourceProviderCacheItem::SourceProviderCacheItem):
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createFunctionMetadata):
- runtime/CachedBytecode.cpp:
(JSC::CachedBytecode::addFunctionUpdate):
- runtime/CachedTypes.cpp:
(JSC::CachedFunctionExecutable::lexicalScopeFeatures const):
(JSC::CachedCodeBlock::lexicalScopeFeatures const):
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::CachedFunctionExecutable::encode):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::CachedCodeBlock<CodeBlockType>::encode):
(JSC::CachedFunctionExecutable::isInStrictContext const): Deleted.
- runtime/CachedTypes.h:
- runtime/CodeCache.cpp:
(JSC::generateUnlinkedCodeBlockImpl):
(JSC::CodeCache::getUnlinkedGlobalCodeBlock):
- runtime/ECMAMode.h:
(JSC::ECMAMode::fromBool):
- runtime/FunctionExecutable.cpp:
(JSC::FunctionExecutable::FunctionExecutable):
- runtime/GlobalExecutable.h:
(JSC::GlobalExecutable::recordParse):
(JSC::GlobalExecutable::GlobalExecutable):
- runtime/ScriptExecutable.cpp:
(JSC::ScriptExecutable::ScriptExecutable):
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::recordParse):
- runtime/ScriptExecutable.h:
(JSC::ScriptExecutable::isInStrictContext const):
(JSC::ScriptExecutable::recordParse):
- 6:29 PM Changeset in webkit [278587] by
-
- 17 edits in trunk/Source/JavaScriptCore
Unreviewed, reverting r278371 and r278463.
https://bugs.webkit.org/show_bug.cgi?id=226749
Break dumpDisassembly in JetStream2
Reverted changesets:
"We should drop B3 values while running Air"
https://bugs.webkit.org/show_bug.cgi?id=226187
https://trac.webkit.org/changeset/278371
"Drop the FTL(DFG) graph after lowering to B3"
https://bugs.webkit.org/show_bug.cgi?id=226556
https://trac.webkit.org/changeset/278463
- 6:28 PM Changeset in webkit [278586] by
-
- 3 edits in trunk/Source/WebCore
Fix localized strings after r278202
https://bugs.webkit.org/show_bug.cgi?id=226742
Reviewed by Eric Carlson.
- Scripts/extract-localizable-strings.pl:
Add support for
WEB_UI_CFSTRING_KEY.
- en.lproj/Localizable.strings:
- 6:10 PM Changeset in webkit [278585] by
-
- 23 edits2 adds in trunk
Window should behave like a legacy platform object without indexed setter
https://bugs.webkit.org/show_bug.cgi?id=225894
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/html/browsers/the-window-object/window-indexed-properties-delete-no-cache-expected.txt: Added.
- web-platform-tests/html/browsers/the-window-object/window-indexed-properties-delete-no-cache.html: Added.
- web-platform-tests/html/browsers/the-window-object/window-indexed-properties-expected.txt:
- web-platform-tests/html/browsers/the-window-object/window-indexed-properties-strict-expected.txt:
- web-platform-tests/html/browsers/the-window-object/window-indexed-properties-strict.html:
- web-platform-tests/html/browsers/the-window-object/window-indexed-properties.html:
Source/JavaScriptCore:
- runtime/TypeError.h:
(JSC::typeError):
Source/WebCore:
This change fixes major interop issue by disallowing expando indexed properties on WindowProxy,
raising TypeError only when needed, which aligns WebKit with Blink and Gecko.
While DefineOwnProperty [1] and Delete [2] methods of WindowProxy are implemented
precisely per spec, current Set [3] algorithm seems to allow invoking setters from
the prototype chain. Blink and Gecko implement stricter semantics by failing early rather
than traversing the prototype chain, as does this patch.
To avoid breaking native apps that either add expando indexed properties to WindowProxy, or
more likely read / write indices of sloppy function's |this| value, which accidently happens
to be a WindowProxy, the new behavior is introduced only for web content and newly-built apps.
Since unlike putByIndex(), deletePropertyByIndex() might be invoked with UINT_MAX, which is
not an array index [4], isIndex() check is required. In future, JSC will be fixed to remove
such checks from all indexed overrides.
DeletePropertySlot::disableCaching() is not called because indexed deletes are not currently
repatched, and once they are, cacheability should be inferred from added type info flags.
Also, removes extra jsDOMWindowGetOwnPropertySlotRestrictedAccess() call for indices, which
is missing from the spec [5]; this is unobservable.
[1] https://html.spec.whatwg.org/multipage/window-object.html#windowproxy-defineownproperty (step 2.1)
[2] https://html.spec.whatwg.org/multipage/window-object.html#windowproxy-delete (step 2.1)
[3] https://html.spec.whatwg.org/multipage/window-object.html#windowproxy-set (step 3)
[4] https://tc39.es/ecma262/#array-index
[5] https://html.spec.whatwg.org/multipage/window-object.html#windowproxy-getownproperty (step 2.5.2)
Tests: imported/w3c/web-platform-tests/html/browsers/the-window-object/window-indexed-properties-delete-no-cache.html
imported/w3c/web-platform-tests/html/browsers/the-window-object/window-indexed-properties.html
imported/w3c/web-platform-tests/html/browsers/the-window-object/window-indexed-properties-strict.html
- bindings/js/JSDOMExceptionHandling.cpp:
(WebCore::makeUnsupportedIndexedSetterErrorMessage):
- bindings/js/JSDOMExceptionHandling.h:
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::allowsLegacyExpandoIndexedProperties):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex): Remove outdated comments.
(WebCore::JSDOMWindow::put):
(WebCore::JSDOMWindow::putByIndex): Release scope when calling Base::putByIndex(), which could throw.
(WebCore::JSDOMWindow::deleteProperty):
(WebCore::JSDOMWindow::deletePropertyByIndex):
(WebCore::JSDOMWindow::defineOwnProperty):
- platform/cocoa/VersionChecks.h:
LayoutTests:
- fast/dom/Window/orphaned-frame-access.html:
- fast/frames/iframe-detached-window-still-writable-eval-expected.txt:
- fast/frames/iframe-detached-window-still-writable-eval.html:
- http/tests/security/cross-frame-access-delete-expected.txt:
- http/tests/security/resources/cross-frame-iframe-for-delete-test.html:
- js/dom/dfg-ensure-array-storage-on-window-expected.txt:
- js/dom/indexed-setter-on-global-object-expected.txt:
- js/dom/script-tests/dfg-ensure-array-storage-on-window.js:
- js/dom/script-tests/dfg-ensure-non-array-array-storage-on-window.js:
- js/dom/script-tests/indexed-setter-on-global-object.js:
- 6:04 PM Changeset in webkit [278584] by
-
- 1 copy in tags/Safari-611.3.7
Tag Safari-611.3.7.
- 5:41 PM Changeset in webkit [278583] by
-
- 1 copy in tags/Safari-612.1.15.4.2
Tag Safari-612.1.15.4.2.
- 5:40 PM Changeset in webkit [278582] by
-
- 2 edits in branches/safari-612.1.15.4-branch
Cherry-pick r278501. rdar://problem/78973538
[AppleWin] JSC build failure
https://bugs.webkit.org/show_bug.cgi?id=226659
<rdar://78844190>
Reviewed by Brent Fulgham.
WTF scripts location is not being correctly identified.
- Source/cmake/OptionsAppleWin.cmake:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@278501 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:38 PM Changeset in webkit [278581] by
-
- 8 edits in branches/safari-612.1.15.4-branch/Source
Versioning.
WebKit-7612.1.15.4.2
- 5:29 PM Changeset in webkit [278580] by
-
- 20 edits1 delete in trunk/Source
Drop legacy MainThreadTaskQueue & EventLoopTaskQueue classes
https://bugs.webkit.org/show_bug.cgi?id=226734
Reviewed by Ryosuke Niwa.
Source/WebCore:
Drop legacy MainThreadTaskQueue & EventLoopTaskQueue classes. Code that was using MainThreadTaskQueue
is now calling callOnMainThread() directly. Call that was using EventLoopTaskQueue is now using the
HTML event loop directly. If said code needed to cancel tasks or check if a previously scheduled task
is still pending, it now relies on WTF::CancellableTask / WTF::TaskCancellationGroup to do so.
- Headers.cmake:
- Modules/encryptedmedia/MediaKeySystemAccess.cpp:
- WebCore.xcodeproj/project.pbxproj:
- animation/DocumentTimelinesController.cpp:
(WebCore::DocumentTimelinesController::cacheCurrentTime):
(WebCore::DocumentTimelinesController::maybeClearCachedCurrentTime):
- animation/DocumentTimelinesController.h:
- dom/ActiveDOMObject.h:
- dom/Document.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::scheduleNextSourceChild):
(WebCore::HTMLMediaElement::scheduleCheckPlaybackTargetCompatability):
(WebCore::HTMLMediaElement::seekWithTolerance):
(WebCore::HTMLMediaElement::setVolume):
(WebCore::HTMLMediaElement::scheduleConfigureTextTracks):
(WebCore::HTMLMediaElement::scheduleMediaEngineWasUpdated):
(WebCore::HTMLMediaElement::scheduleUpdatePlayState):
(WebCore::HTMLMediaElement::cancelPendingTasks):
(WebCore::HTMLMediaElement::clearMediaPlayer):
(WebCore::HTMLMediaElement::closeTaskQueues):
(WebCore::HTMLMediaElement::suspend):
(WebCore::HTMLMediaElement::resume):
(WebCore::HTMLMediaElement::virtualHasPendingActivity const):
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured):
(WebCore::HTMLMediaElement::mediaPlayerBufferedTimeRangesChanged):
(WebCore::HTMLMediaElement::scheduleUpdateMediaState):
(WebCore::HTMLMediaElement::playbackControlsManagerBehaviorRestrictionsTimerFired):
- html/HTMLMediaElement.h:
- platform/GenericTaskQueue.h: Removed.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(-[WebCoreAVFMovieObserver metadataLoaded]):
(-[WebCoreAVFMovieObserver didEnd:]):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFMovieObserver metadataOutput:didOutputTimedMetadataGroups:fromPlayerItemTrack:]):
(-[WebCoreAVFMovieObserver metadataCollector:didCollectDateRangeMetadataGroups:indexesOfNewGroups:indexesOfModifiedGroups:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::didParseInitializationData):
(WebCore::SourceBufferPrivateAVFObjC::abort):
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
Source/WTF:
We recently introduced the WTF::CancellableTask in order to be able to cancel
a pending task in the event loop, and/or check if the task is still pending.
It worked great as a replacement for EventLoopDeferrableTask. However, it was
insufficient as a replacement for task queues (such as MainThreadTaskQueue &
EventLoopTaskQueue) since there was no convenient way to cancel a group of
tasks. To address this, I am introducing WTF::TaskCancellationGroup. Whenever one
needs to create a CancellableTask, it now needs to provide a TaskCancellationGroup.
Several CancellableTask objects can share the same TaskCancellationGroup. Code now
now schedule one or more CancellableTasks on the event loop and hold on
to a TaskCancellationGroup. If they need to cancel those tasks, they can simply
call cancel() on the TaskCancellationGroup. They can also check if previously
scheduled tasks are still pending via TaskCancellationGroup::hasPendingTask().
- wtf/CancellableTask.h:
(WTF::TaskCancellationGroup::TaskCancellationGroup):
(WTF::TaskCancellationGroup::cancel):
(WTF::TaskCancellationGroup::hasPendingTask const):
(WTF::TaskCancellationGroup::Impl::cancel):
(WTF::TaskCancellationGroup::Impl::hasPendingTask const):
(WTF::TaskCancellationGroup::Handle::isCancelled const):
(WTF::TaskCancellationGroup::Handle::Handle):
(WTF::TaskCancellationGroup::createHandle):
(WTF::CancellableTask::CancellableTask):
(WTF::CancellableTask::operator()):
- wtf/WeakPtr.h:
(WTF::WeakPtrFactory::weakPtrCount const):
- 5:05 PM Changeset in webkit [278579] by
-
- 1 copy in tags/Safari-612.1.16.4
Tag Safari-612.1.16.4.
- 4:26 PM Changeset in webkit [278578] by
-
- 4 edits1 add in trunk
Short circuit read modify write nodes emit byte code that uses the wrong locals
https://bugs.webkit.org/show_bug.cgi?id=226576
<rdar://problem/78810362>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/short-circuit-read-modify-should-use-the-write-virtual-registers.js: Added.
(eval):
Source/JavaScriptCore:
It's never a good idea to use the wrong local :-)
This patch also adds support for dumping predecessors of basic blocks
in the bytecode dump.
- bytecode/BytecodeDumper.cpp:
(JSC::CodeBlockBytecodeDumper<Block>::dumpGraph):
- bytecompiler/NodesCodegen.cpp:
(JSC::ShortCircuitReadModifyResolveNode::emitBytecode):
(JSC::ShortCircuitReadModifyDotNode::emitBytecode):
(JSC::ShortCircuitReadModifyBracketNode::emitBytecode):
- 4:07 PM Changeset in webkit [278577] by
-
- 8 edits in branches/safari-612.1.16-branch/Source
Versioning.
WebKit-7612.1.16.4
- 3:51 PM Changeset in webkit [278576] by
-
- 13 edits in trunk/Source/JavaScriptCore
Put the Baseline JIT prologue and op_loop_hint code in JIT thunks.
https://bugs.webkit.org/show_bug.cgi?id=226375
Reviewed by Keith Miller and Robin Morisset.
Baseline JIT prologue code varies in behavior based on several variables. These
variables include (1) whether the prologue does any arguments value profiling,
(2) whether the prologue is for a constructor, and (3) whether the compiled
CodeBlock will have such a large frame that it is greater than the stack reserved
zone (aka red zone) which would require additional stack check logic.
The pre-existing code would generate specialized code based on these (and other
variables). In converting to using thunks for the prologue, we opt not to
convert these specializations into runtime checks. Instead, the implementation
uses 1 of 8 possible specialized thunks to reduce the need to pass arguments for
runtime checks. The only needed argument passed to the prologue thunks is the
codeBlock pointer.
There are 8 possible thunks because we specialize based on 3 variables:
- doesProfiling
- isConstructor
- hasHugeFrame
23 yields 8 permutations of prologue thunk specializations.
Similarly, there are also 8 analogous arity fixup prologues that work similarly.
The op_loop_hint thunk only takes 1 runtime argument: the bytecode offset.
We've tried doing the loop_hint optimization check in the thunk (in order to move
both the fast and slow path into the thunk for maximum space savings). However,
this seems to have some slight negative impact on benchmark performance. We ended
up just keeping the fast path and instead have the slow path call a thunk to do
its work. This realizes the bulk of the size savings without the perf impact.
This patch also optimizes op_enter a bit more by eliminating the need to pass any
arguments to the thunk. The thunk previously took 2 arguments: localsToInit and
canBeOptimized. localsToInit is now computed in the thunk at runtime, and
canBeOptimized is used as a specialization argument to generate 2 variants of the
op_enter thunk: op_enter_canBeOptimized_Generator and op_enter_cannotBeOptimized_Generator,
thereby removing the need to pass it as a runtime argument.
LinkBuffer size results (from a single run of Speedometer2):
BaselineJIT: 93319628 (88.996532 MB) => 83851824 (79.967331 MB) 0.90x
ExtraCTIThunk: 5992 (5.851562 KB) => 6984 (6.820312 KB) 1.17x
...
Total: 197530008 (188.379295 MB) => 188459444 (179.728931 MB) 0.95x
Speedometer2 and JetStream2 results (as measured on an M1 Mac) are neutral.
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::untagReturnAddressWithoutExtraValidation):
- assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::untagReturnAddress):
(JSC::MacroAssemblerARM64E::untagReturnAddressWithoutExtraValidation):
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::branchAdd32):
- assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::branchAdd32):
- bytecode/CodeBlock.h:
(JSC::CodeBlock::offsetOfNumCalleeLocals):
(JSC::CodeBlock::offsetOfNumVars):
(JSC::CodeBlock::offsetOfArgumentValueProfiles):
(JSC::CodeBlock::offsetOfShouldAlwaysBeInlined):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitSaveCalleeSavesFor):
(JSC::AssemblyHelpers::emitSaveCalleeSavesForBaselineJIT):
(JSC::AssemblyHelpers::emitRestoreCalleeSavesForBaselineJIT):
- jit/JIT.cpp:
(JSC::JIT::compileAndLinkWithoutFinalizing):
(JSC::JIT::prologueGenerator):
(JSC::JIT::arityFixupPrologueGenerator):
(JSC::JIT::privateCompileExceptionHandlers):
- jit/JIT.h:
- jit/JITInlines.h:
(JSC::JIT::emitNakedNearCall):
- jit/JITOpcodes.cpp:
(JSC::JIT::op_ret_handlerGenerator):
(JSC::JIT::emit_op_enter):
(JSC::JIT::op_enter_Generator):
(JSC::JIT::op_enter_canBeOptimized_Generator):
(JSC::JIT::op_enter_cannotBeOptimized_Generator):
(JSC::JIT::emit_op_loop_hint):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::op_loop_hint_Generator):
(JSC::JIT::op_enter_handlerGenerator): Deleted.
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_enter):
- jit/ThunkGenerators.cpp:
(JSC::popThunkStackPreservesAndHandleExceptionGenerator):
- 3:11 PM Changeset in webkit [278575] by
-
- 60 edits38 copies7 moves4 adds2 deletes in trunk
Upstream WebKit support for Live Text
https://bugs.webkit.org/show_bug.cgi?id=226706
<rdar://problem/78933684>
Reviewed by Tim Horton.
Source/WebCore:
Upstream WebKit support for the family of "live text" and visual intelligence features from WebKitAdditions.
This encompasses the following features on macOS 12 and iOS 15:
- Text selection and interaction in images.
- Data detectors in images.
- Visual search (Look Up) via context menu in images.
To do this, we rename the IMAGE_EXTRACTION feature flag (and any other similar symbol names that reference
"image extraction" in some capacity) to their real names in macOS and iOS:
- "Text recognition", in code that supports automatic OCR and data detectors in images.
- "Look Up", in code that references the context menu action to invoke visual search.
- "Visual Search", in code that manages QuickLook integration for invoking visual search.
- "Image analysis", in code that directly integrates with VKImageAnalyzer and VKImageAnalyzerRequest.
Tests: fast/images/text-recognition/basic-image-overlay.html
fast/images/text-recognition/click-link-with-image-overlay.html
fast/images/text-recognition/image-overlay-creation-is-idempotent.html
fast/images/text-recognition/image-overlay-in-image-with-zero-font-size.html
fast/images/text-recognition/image-overlay-with-selection-styles.html
fast/images/text-recognition/ios/coalesce-selection-rects-in-image-overlay.html
fast/images/text-recognition/ios/reselect-word-in-image-overlay.html
fast/images/text-recognition/ios/select-word-in-image-overlay-inside-link.html
fast/images/text-recognition/ios/select-word-in-image-overlay.html
fast/images/text-recognition/ios/selection-rects-in-image-overlay.html
fast/images/text-recognition/mac/copy-image-overlay-text-with-context-menu.html
fast/images/text-recognition/mac/image-overlay-text-disables-app-highlight-menu-items.html
fast/images/text-recognition/mac/select-image-overlay-in-link-with-mouse-drag.html
fast/images/text-recognition/mac/select-image-overlay-with-mouse-drag-2.html
fast/images/text-recognition/mac/select-image-overlay-with-mouse-drag-does-not-fire-click.html
fast/images/text-recognition/mac/select-image-overlay-with-mouse-drag.html
fast/images/text-recognition/mac/select-rotated-transparent-image-overlay.html
fast/images/text-recognition/mac/select-word-in-draggable-image-overlay.html
fast/images/text-recognition/mac/select-word-in-transparent-image-overlay.html
- WebCore.xcodeproj/project.pbxproj:
- editing/cocoa/DataDetection.h:
- editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::createElementForImageOverlay):
- en.lproj/Localizable.strings:
- html/HTMLElement.cpp:
(WebCore::HTMLElement::updateWithTextRecognitionResult):
(WebCore::HTMLElement::updateWithImageExtractionResult): Deleted.
- html/HTMLElement.h:
- page/ChromeClient.h:
(WebCore::ChromeClient::requestTextRecognition):
(WebCore::ChromeClient::requestImageExtraction): Deleted.
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):
- page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::m_textRecognitionHoverTimerFired):
(WebCore::EventHandler::imageExtractionTimerFired): Deleted.
- page/EventHandler.h:
- page/Quirks.cpp:
- page/Quirks.h:
- platform/ContextMenuItem.cpp:
(WebCore::isValidContextMenuAction):
- platform/ContextMenuItem.h:
- platform/LocalizedStrings.h:
- platform/TextRecognitionResult.h: Renamed from Source/WebCore/platform/ImageExtractionResult.h.
Rename the following:
- ImageExtractionResult => TextRecognitionResult
- ImageExtractionTextData => TextRecognitionWordData
- ImageExtractionLineData => TextRecognitionLineData
- ImageExtractionDataDetectorInfo => TextRecognitionDataDetector
(WebCore::TextRecognitionWordData::TextRecognitionWordData):
(WebCore::TextRecognitionWordData::encode const):
(WebCore::TextRecognitionWordData::decode):
(WebCore::TextRecognitionLineData::TextRecognitionLineData):
(WebCore::TextRecognitionDataDetector::TextRecognitionDataDetector):
(WebCore::TextRecognitionLineData::encode const):
(WebCore::TextRecognitionLineData::decode):
(WebCore::TextRecognitionResult::isEmpty const):
(WebCore::TextRecognitionResult::encode const):
(WebCore::TextRecognitionResult::decode):
- platform/cocoa/LocalizedStringsCocoa.mm:
(WebCore::contextMenuItemTagLookUpImage):
(WebCore::contextMenuItemTagRevealImage): Deleted.
- testing/Internals.cpp:
(WebCore::makeDataForLine):
(WebCore::Internals::installImageOverlay):
Source/WebKit:
See WebCore/ChangeLog for more details.
- Platform/cocoa/ImageExtractionUtilities.mm: Removed.
- Platform/cocoa/TextRecognitionUtilities.h: Renamed from Source/WebKit/Platform/cocoa/ImageExtractionUtilities.h.
- Platform/cocoa/TextRecognitionUtilities.mm: Added.
Rename ImageExtractionUtilities to TextRecognitionUtilities.
(WebKit::floatQuad):
(WebKit::floatQuads):
(WebKit::makeTextRecognitionResult):
(WebKit::isLiveTextEnabled):
- Shared/API/c/WKSharedAPICast.h:
(WebKit::toAPI):
(WebKit::toImpl):
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::TextRecognitionDataDetector>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::TextRecognitionDataDetector>::decodePlatformData):
(IPC::ArgumentCoder<WebCore::ImageExtractionDataDetectorInfo>::encodePlatformData): Deleted.
(IPC::ArgumentCoder<WebCore::ImageExtractionDataDetectorInfo>::decodePlatformData): Deleted.
- Shared/TextRecognitionUpdateResult.h: Renamed from Source/WebKit/Shared/ImageExtractionUpdateResult.h.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<TextRecognitionDataDetector>::encode):
(IPC::ArgumentCoder<TextRecognitionDataDetector>::decode):
(IPC::ArgumentCoder<ImageExtractionDataDetectorInfo>::encode): Deleted.
(IPC::ArgumentCoder<ImageExtractionDataDetectorInfo>::decode): Deleted.
- Shared/WebCoreArgumentCoders.h:
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/_WKElementAction.mm:
(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):
(+[_WKElementAction imageForElementActionType:]):
Note that we need to keep the _WKElementActionTypeRevealImage SPI symbol, to avoid breaking MobileMail.
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::handleContextMenuLookUpImage):
(WebKit::WebPageProxy::handleContextMenuRevealImage): Deleted.
Rename
handleContextMenuRevealImagetohandleContextMenuLookUpImage.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::ensureImageAnalyzer):
(WebKit::createImageAnalysisRequest):
(WebKit::WebViewImpl::requestTextRecognition):
(WebKit::WebViewImpl::computeHasVisualSearchResults):
Rename
computeCanRevealImagetocomputeHasVisualSearchResults.
(WebKit::WebViewImpl::acceptsPreviewPanelControl):
- UIProcess/PageClient.h:
(WebKit::PageClient::requestTextRecognition):
(WebKit::PageClient::computeHasVisualSearchResults):
(WebKit::PageClient::requestImageExtraction): Deleted.
(WebKit::PageClient::computeCanRevealImage): Deleted.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::contextMenuItemSelected):
(WebKit::WebPageProxy::requestTextRecognition):
(WebKit::WebPageProxy::computeHasVisualSearchResults):
(WebKit::WebPageProxy::updateWithTextRecognitionResult):
(WebKit::WebPageProxy::requestImageExtraction): Deleted.
(WebKit::WebPageProxy::computeCanRevealImage): Deleted.
(WebKit::WebPageProxy::updateWithImageExtractionResult): Deleted.
Rename
updateWithImageExtractionResulttoupdateWithTextRecognitionResult.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::requestTextRecognition):
(WebKit::PageClientImpl::requestImageExtraction): Deleted.
Rename
requestImageExtractiontorequestTextRecognition.
- UIProcess/ios/WKActionSheetAssistant.h:
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView deferringGestures]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldRequireFailureOfGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldBeRequiredToFailByGestureRecognizer:]):
(-[WKContentView hasSelectablePositionAtPoint:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView targetForAction:withSender:]):
(-[WKContentView _didStartProvisionalLoadForMainFrame]):
(-[WKContentView shouldDeferGestureDueToImageAnalysis:]):
(-[WKContentView deferringGestureRecognizer:shouldDeferOtherGestureRecognizer:]):
(-[WKContentView _dragInteraction:prepareForSession:completion:]):
(-[WKContentView _endImageAnalysisGestureDeferral:]):
(-[WKContentView _doAfterPendingImageAnalysis:]):
(-[WKContentView _invokeAllActionsToPerformAfterPendingImageAnalysis:]):
(-[WKContentView presentVisualSearchPreviewControllerForImage:imageURL:title:imageBounds:appearanceActions:]):
(-[WKContentView previewController:frameForPreviewItem:inSourceView:]):
(-[WKContentView previewController:transitionImageForPreviewItem:contentRect:]):
(-[WKContentView previewControllerDidDismiss:]):
(-[WKContentView numberOfPreviewItemsInPreviewController:]):
(-[WKContentView previewController:previewItemAtIndex:]):
(-[WKContentView provideDataForItem:]):
(-[WKContentView actionSheetAssistant:shouldIncludeShowTextActionForElement:]):
(-[WKContentView actionSheetAssistant:showTextForImage:imageURL:title:imageBounds:]):
(-[WKContentView actionSheetAssistant:shouldIncludeLookUpImageActionForElement:]):
(-[WKContentView actionSheetAssistant:lookUpImage:imageURL:title:imageBounds:]):
(-[WKContentView imageAnalyzer]):
(-[WKContentView hasPendingImageAnalysisRequest]):
(-[WKContentView _setUpImageAnalysis]):
(-[WKContentView _tearDownImageAnalysis]):
(-[WKContentView _cancelImageAnalysis]):
(-[WKContentView createImageAnalysisRequest:image:imageURL:]):
(-[WKContentView createImageAnalysisRequest:image:]):
(-[WKContentView validateImageAnalysisRequestIdentifier:]):
(-[WKContentView requestTextRecognition:imageData:completionHandler:]):
(-[WKContentView imageAnalysisGestureDidBegin:]):
(-[WKContentView imageAnalysisGestureDidFail:]):
(-[WKContentView imageAnalysisGestureDidTimeOut:]):
(-[WKContentView _insertTextFromCameraForWebView:]):
(-[WKContentView captureTextFromCameraForWebView:]):
(-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]):
(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):
(-[WKContentView shouldDeferGestureDueToImageExtraction:]): Deleted.
(-[WKContentView _endImageExtractionGestureDeferral:]): Deleted.
(-[WKContentView _doAfterPendingImageExtraction:]): Deleted.
(-[WKContentView _invokeAllActionsToPerformAfterPendingImageExtraction:]): Deleted.
- UIProcess/ios/WKImageAnalysisGestureRecognizer.h: Renamed from Source/WebKit/UIProcess/ios/WKImageExtractionGestureRecognizer.h.
- UIProcess/ios/WKImageAnalysisGestureRecognizer.mm: Renamed from Source/WebKit/UIProcess/ios/WKImageExtractionGestureRecognizer.mm.
(-[WKImageAnalysisGestureRecognizer initWithImageAnalysisGestureDelegate:]):
(-[WKImageAnalysisGestureRecognizer setState:]):
Rename WKImageExtractionGestureRecognizer to WKImageAnalysisGestureRecognizer (along with all adjacent classes).
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::requestTextRecognition):
(WebKit::PageClientImpl::computeHasVisualSearchResults):
(WebKit::PageClientImpl::requestImageExtraction): Deleted.
(WebKit::PageClientImpl::computeCanRevealImage): Deleted.
- UIProcess/mac/WKVisualSearchPreviewController.h: Renamed from Source/WebKit/UIProcess/mac/WKImageExtractionPreviewController.h.
- UIProcess/mac/WKVisualSearchPreviewController.mm: Renamed from Source/WebKit/UIProcess/mac/WKImageExtractionPreviewController.mm.
(-[WKVisualSearchPreviewController initWithPage:imageData:title:imageURL:]):
(-[WKVisualSearchPreviewController beginControl:]):
(-[WKVisualSearchPreviewController endControl:]):
(-[WKVisualSearchPreviewController closePanelIfNecessary]):
(-[WKVisualSearchPreviewController isControlling:]):
(-[WKVisualSearchPreviewController provideDataForItem:]):
(-[WKVisualSearchPreviewController numberOfPreviewItemsInPreviewPanel:]):
(-[WKVisualSearchPreviewController previewPanel:previewItemAtIndex:]):
(-[WKVisualSearchPreviewController previewPanel:initialActivityForItem:]):
Rename
WKImageExtractionPreviewControllertoWKVisualSearchPreviewController.
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::menuItemIdentifier):
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::beginPreviewPanelControl):
(WebKit::WebPageProxy::endPreviewPanelControl):
(WebKit::WebPageProxy::closeSharedPreviewPanelIfNecessary):
(WebKit::WebPageProxy::showImageInVisualSearchPreviewPanel):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::requestTextRecognition):
(WebKit::WebChromeClient::requestImageExtraction): Deleted.
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
(WebKit::WebPage::requestTextRecognition):
(WebKit::WebPage::updateWithTextRecognitionResult):
(WebKit::WebPage::requestImageExtraction): Deleted.
(WebKit::WebPage::updateWithImageExtractionResult): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Source/WebKitLegacy/mac:
- WebView/WebHTMLView.mm: Replace IMAGE_EXTRACTION with IMAGE_ANALYSIS.
Source/WTF:
- wtf/PlatformEnableCocoa.h:
Move the feature flag out of WebKitAdditions and into OpenSource as IMAGE_ANALYSIS.
Tools:
Replace IMAGE_EXTRACTION with IMAGE_ANALYSIS.
- TestWebKitAPI/Tests/WebKit/InjectedBundleHitTest.mm:
- TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
- TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WKContentViewEditingActions.mm:
- TestWebKitAPI/Tests/mac/ImmediateActionTests.mm:
LayoutTests:
Rename
fast/images/image-extractiontofast/images/text-recognition.
- TestExpectations:
- fast/images/text-recognition/basic-image-overlay-expected-mismatch.html: Renamed from LayoutTests/fast/images/image-extraction/basic-image-overlay-expected-mismatch.html.
- fast/images/text-recognition/basic-image-overlay.html: Renamed from LayoutTests/fast/images/image-extraction/basic-image-overlay.html.
- fast/images/text-recognition/click-link-with-image-overlay-expected.txt: Renamed from LayoutTests/fast/images/image-extraction/click-link-with-image-overlay-expected.txt.
- fast/images/text-recognition/click-link-with-image-overlay.html: Renamed from LayoutTests/fast/images/image-extraction/click-link-with-image-overlay.html.
- fast/images/text-recognition/image-overlay-creation-is-idempotent-expected.txt: Renamed from LayoutTests/fast/images/image-extraction/image-overlay-creation-is-idempotent-expected.txt.
- fast/images/text-recognition/image-overlay-creation-is-idempotent.html: Renamed from LayoutTests/fast/images/image-extraction/image-overlay-creation-is-idempotent.html.
- fast/images/text-recognition/image-overlay-in-image-with-zero-font-size-expected-mismatch.html: Renamed from LayoutTests/fast/images/image-extraction/image-overlay-in-image-with-zero-font-size-expected-mismatch.html.
- fast/images/text-recognition/image-overlay-in-image-with-zero-font-size.html: Renamed from LayoutTests/fast/images/image-extraction/image-overlay-in-image-with-zero-font-size.html.
- fast/images/text-recognition/image-overlay-with-selection-styles-expected.html: Renamed from LayoutTests/fast/images/image-extraction/image-overlay-with-selection-styles-expected.html.
- fast/images/text-recognition/image-overlay-with-selection-styles.html: Renamed from LayoutTests/fast/images/image-extraction/image-overlay-with-selection-styles.html.
- fast/images/text-recognition/ios/coalesce-selection-rects-in-image-overlay-expected.txt: Renamed from LayoutTests/fast/images/image-extraction/ios/coalesce-selection-rects-in-image-overlay-expected.txt.
- fast/images/text-recognition/ios/coalesce-selection-rects-in-image-overlay.html: Renamed from LayoutTests/fast/images/image-extraction/ios/coalesce-selection-rects-in-image-overlay.html.
- fast/images/text-recognition/ios/reselect-word-in-image-overlay-expected.txt: Renamed from LayoutTests/fast/images/image-extraction/ios/reselect-word-in-image-overlay-expected.txt.
- fast/images/text-recognition/ios/reselect-word-in-image-overlay.html: Renamed from LayoutTests/fast/images/image-extraction/ios/reselect-word-in-image-overlay.html.
- fast/images/text-recognition/ios/select-word-in-image-overlay-expected.txt: Renamed from LayoutTests/fast/images/image-extraction/ios/select-word-in-image-overlay-expected.txt.
- fast/images/text-recognition/ios/select-word-in-image-overlay-inside-link-expected.txt: Renamed from LayoutTests/fast/images/image-extraction/ios/select-word-in-image-overlay-inside-link-expected.txt.
- fast/images/text-recognition/ios/select-word-in-image-overlay-inside-link.html: Renamed from LayoutTests/fast/images/image-extraction/ios/select-word-in-image-overlay-inside-link.html.
- fast/images/text-recognition/ios/select-word-in-image-overlay.html: Renamed from LayoutTests/fast/images/image-extraction/ios/select-word-in-image-overlay.html.
- fast/images/text-recognition/ios/selection-rects-in-image-overlay-expected.txt: Renamed from LayoutTests/fast/images/image-extraction/ios/selection-rects-in-image-overlay-expected.txt.
- fast/images/text-recognition/ios/selection-rects-in-image-overlay.html: Renamed from LayoutTests/fast/images/image-extraction/ios/selection-rects-in-image-overlay.html.
- fast/images/text-recognition/mac/copy-image-overlay-text-with-context-menu-expected.txt: Renamed from LayoutTests/fast/images/image-extraction/mac/copy-image-overlay-text-with-context-menu-expected.txt.
- fast/images/text-recognition/mac/copy-image-overlay-text-with-context-menu.html: Renamed from LayoutTests/fast/images/image-extraction/mac/copy-image-overlay-text-with-context-menu.html.
- fast/images/text-recognition/mac/image-overlay-text-disables-app-highlight-menu-items-expected.txt: Renamed from LayoutTests/fast/images/image-extraction/mac/image-overlay-text-disables-app-highlight-menu-items-expected.txt.
- fast/images/text-recognition/mac/image-overlay-text-disables-app-highlight-menu-items.html: Renamed from LayoutTests/fast/images/image-extraction/mac/image-overlay-text-disables-app-highlight-menu-items.html.
- fast/images/text-recognition/mac/select-image-overlay-in-link-with-mouse-drag-expected.txt: Renamed from LayoutTests/fast/images/image-extraction/mac/select-image-overlay-in-link-with-mouse-drag-expected.txt.
- fast/images/text-recognition/mac/select-image-overlay-in-link-with-mouse-drag.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-image-overlay-in-link-with-mouse-drag.html.
- fast/images/text-recognition/mac/select-image-overlay-with-mouse-drag-2-expected.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-2-expected.html.
- fast/images/text-recognition/mac/select-image-overlay-with-mouse-drag-2.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-2.html.
- fast/images/text-recognition/mac/select-image-overlay-with-mouse-drag-does-not-fire-click-expected.txt: Renamed from LayoutTests/fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-does-not-fire-click-expected.txt.
- fast/images/text-recognition/mac/select-image-overlay-with-mouse-drag-does-not-fire-click.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-does-not-fire-click.html.
- fast/images/text-recognition/mac/select-image-overlay-with-mouse-drag-expected-mismatch.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-expected-mismatch.html.
- fast/images/text-recognition/mac/select-image-overlay-with-mouse-drag.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag.html.
- fast/images/text-recognition/mac/select-rotated-transparent-image-overlay-expected.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-rotated-transparent-image-overlay-expected.html.
- fast/images/text-recognition/mac/select-rotated-transparent-image-overlay.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-rotated-transparent-image-overlay.html.
- fast/images/text-recognition/mac/select-word-in-draggable-image-overlay-expected-mismatch.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-word-in-draggable-image-overlay-expected-mismatch.html.
- fast/images/text-recognition/mac/select-word-in-draggable-image-overlay.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-word-in-draggable-image-overlay.html.
- fast/images/text-recognition/mac/select-word-in-transparent-image-overlay-expected-mismatch.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-word-in-transparent-image-overlay-expected-mismatch.html.
- fast/images/text-recognition/mac/select-word-in-transparent-image-overlay.html: Renamed from LayoutTests/fast/images/image-extraction/mac/select-word-in-transparent-image-overlay.html.
- 2:20 PM Changeset in webkit [278574] by
-
- 2 edits in trunk/Websites/browserbench.org
Release MotionMark 1.2!!! 🎉
https://bugs.webkit.org/show_bug.cgi?id=226741
Reviewed by Geoff Garen.
Simply update the link to point to it.
- index.html:
- 2:17 PM Changeset in webkit [278573] by
-
- 8 edits in branches/safari-612.1.17-branch/Source
Versioning.
WebKit-7612.1.17
- 2:11 PM Changeset in webkit [278572] by
-
- 1 copy in branches/safari-612.1.17-branch
New branch.
- 1:27 PM Changeset in webkit [278571] by
-
- 2 edits in trunk/Source/WebCore
Compile error by trying to fit a GCGLint64* to a GLint64*
https://bugs.webkit.org/show_bug.cgi?id=226639
Patch by Eleni Maria Stea <hikiko> on 2021-06-07
Reviewed by Kenneth Russell.
ANGLE functions GetInteger64vRobustANGLE and
GetInteger64i_vRobustANGLE expect a value of GLint64* aka
long int * but we try to fit a pointer to a long long int.
Fixed compile errors.
- platform/graphics/GraphicsTypesGL.h:
- 1:09 PM Changeset in webkit [278570] by
-
- 2 edits in trunk/Tools
Windows Python 2.7 fails to install tblib-1.7.0 due to "TypeError: environment can only contain strings"
https://bugs.webkit.org/show_bug.cgi?id=226707
Reviewed by Jonathan Bedard.
WinCairo port is still using Python 2.7 that has ascii strings and
unicode strings. WinPort.setup_crash_log_saving modifies
_NT_SYMBOL_PATH env var to have a unicode string. So, after
setup_crash_log_saving, AutoInstall failed due to the unicode
string in os.environ.
- Scripts/webkitpy/port/win.py:
(WinPort.setup_crash_log_saving): Convert self._build_path() to a
ascii string with str().
- 1:05 PM Changeset in webkit [278569] by
-
- 2 edits in trunk/Tools
run-webkit-test should use python2 for wpt serve until the latest will be imported
https://bugs.webkit.org/show_bug.cgi?id=226703
Reviewed by Jonathan Bedard.
The current imported wpt.py doesn't support Python 3 yet. Use
Python 2 temporarily.
- Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
(WebPlatformTestServer.init):
- 12:55 PM Changeset in webkit [278568] by
-
- 14 edits3 adds in trunk
Optimize compareStrictEq when neither side is a double and at least one is neither a string nor a BigInt
https://bugs.webkit.org/show_bug.cgi?id=226676
Reviewed by Filip Pizlo.
JSTests:
I made two variants of the already existing poly-stricteq microbenchmarks with different types in the array.
I also tweaked all three so that we more reliably reach the FTL.
Finally I added a stress-test to verify that I did not introduce an OSR exit bug.
- microbenchmarks/poly-stricteq-not-double-nor-string.js: Added.
(foo):
(test):
- microbenchmarks/poly-stricteq-not-double.js: Added.
(foo):
(test):
- microbenchmarks/poly-stricteq.js:
(foo):
(test):
- stress/poly-stricteq-not-double-nor-string-fail.js: Added.
(foo):
(test):
Source/JavaScriptCore:
There is exactly one case where x === y must return false despite x and y being JSValues with the same bits:
NaN === NaN
There are a few cases where x === y must return true despite x and y being JSValues with potentially different bits:
Double === Int32
String === String
HeapBigInt === HeapBigInt
HeapBigInt === BigInt32 (if they are enabled)
If we don't have a double on either side, at least one side has neither a String nor a HeapBigInt, and BigInt32 are disabled, we can clearly ignore all of these pathological cases.
This optimization was decided based on looking at DFG graphs of Speedometer2; here is a sample of the compareStrictEq(Untyped, Untyped), courtesy of Phil:
Final|Array|String|Bool, Final|Array|String|Bool
Array|String|Bool, String|Bool (twice)
Array|String|Bool, String|Int32 (once in DFG, once in FTL)
! Array|String|Bool, Array|Bool
! Final|Other, Final|Other
! Int32|Other, Int32
Final|StringIdent, Final|StringIdent (3 times)
Final|StringIdent|BoolInt32, StringIdent|BoolInt32 (twice)
String|Bool, String|Bool (4 times)
DoublePureNaN, String|Bool
! Other, Function|Other
! Final|Other, Final|Function|Other (twice)
Final|String|Bool|Other, Final|String|Bool|Other (3 times, two in the FTL)
Final|String|Int32, String|Int32 (four times)
String|Int32|Bool, Function|String|Int32|Bool (twice)
String|DoublePureNaN, String|Bool (twice)
! Final|Bool|Other, Final|Function|Other (four times, twice in FTL)
I marked with a ! those for which this optimization should apply.
The only slightly interesting part of this patch is DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigIntNorString where I took care to skip every test whose result we can predict from the abstract interpreter.
Results on microbenchmarks:
poly-stricteq-not-double 45.5793+-0.5304 ? 46.0306+-0.5621 ?
poly-stricteq-not-double-nor-string 45.5829+-0.5750 16.9089+-0.3070 definitely 2.6958x faster
poly-stricteq 49.9719+-0.6450 48.9855+-0.5227 might be 1.0201x faster
I also measured the amount of code that we generate in the DFG on JetStream2.
The results here are disappointing but still measurable. Before:
DFG_fast_CompareStrictEq totalBytes: 468425 count: 10951 avg: 42.774632
DFG_fast_CompareStrictEq totalBytes: 468020 count: 10917 avg: 42.870752
DFG_fast_CompareStrictEq totalBytes: 467424 count: 10888 avg: 42.930198
After:
DFG_fast_CompareStrictEq totalBytes: 463946 count: 10917 avg: 42.497573
DFG_fast_CompareStrictEq totalBytes: 474492 count: 11138 avg: 42.601185
DFG_fast_CompareStrictEq totalBytes: 467138 count: 10970 avg: 42.583227
- bytecode/SpeculatedType.h:
(JSC::isNeitherDoubleNorHeapBigIntNorStringSpeculation):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupCompareStrictEqAndSameValue):
- dfg/DFGNode.h:
(JSC::DFG::Node::shouldSpeculateNeitherDoubleNorHeapBigIntNorString):
- dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileStrictEq):
(JSC::DFG::SpeculativeJIT::compileNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleNotDoubleNeitherDoubleNorHeapBigIntNorStringStrictEquality):
(JSC::DFG::SpeculativeJIT::speculateNotDouble):
(JSC::DFG::SpeculativeJIT::speculateNeitherDoubleNorHeapBigIntNorString):
(JSC::DFG::SpeculativeJIT::speculate):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGUseKind.cpp:
(WTF::printInternal):
- dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
(JSC::DFG::checkMayCrashIfInputIsEmpty):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::speculate):
(JSC::FTL::DFG::LowerDFGToB3::speculateNeitherDoubleNorHeapBigIntNorString):
- 12:46 PM Changeset in webkit [278567] by
-
- 8 edits in trunk/Source
Versioning.
WebKit-7612.1.18
- 12:44 PM Changeset in webkit [278566] by
-
- 4 edits2 adds in trunk
REGRESSION (r272201): iPad render flashing on load
https://bugs.webkit.org/show_bug.cgi?id=226216
<rdar://problem/78466306>
Reviewed by Simon Fraser.
Source/WebCore:
When we switched to wrapping all animations in animation groups for bug 219894, we neglected to update GraphicsLayerCA::moveOrCopyAnimations().
We now iterate over m_animationGroups which contain the animation groups that are current and in the order they were added, and also ensure
we preserve the original begin time for each group.
Test: webanimations/accelerated-animation-tiled-while-running.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::moveOrCopyLayerAnimation):
(WebCore::GraphicsLayerCA::moveOrCopyAnimations):
- platform/graphics/ca/GraphicsLayerCA.h:
LayoutTests:
Add a test that runs the same accelerated animation on two container elements, stack one above the other.
The bottom container has a red background while the top container has a green background, the whole body
being green. After the animation has started, we set the bottom element to have a very large size such
that its layer becomes tiled. Before this patch the bottom element would stop animation and its red
background would start appearing as the top element would keep animating. After this patch both elements
are animated and no red should appear.
- webanimations/accelerated-animation-tiled-while-running-expected.html: Added.
- webanimations/accelerated-animation-tiled-while-running.html: Added.
- 11:53 AM Changeset in webkit [278565] by
-
- 10 edits in trunk/Source
Convert WebCore::SnapshotOptions into an enum class
https://bugs.webkit.org/show_bug.cgi?id=226730
Reviewed by Wenson Hsieh.
Convert
SnapshotOptionsinto anenum class SnapshotFlagsand create a container `struct
SnapshotOptionsthat also allows for changing theDestinationColorSpace` (defaults to sRGB)
andPixelFormat(defaults to BGRA8).
No behavior change.
Source/WebCore:
- page/FrameSnapshotting.h:
- page/FrameSnapshotting.cpp:
(WebCore::snapshotFrameRect):
(WebCore::snapshotFrameRectWithClip):
(WebCore::snapshotSelection):
(WebCore::snapshotNode):
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::snapshotRect):
- page/PageColorSampler.cpp:
(WebCore::sampleColor):
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::screenshot):
- page/TextIndicator.cpp:
(WebCore::snapshotOptionsForTextIndicatorOptions):
(WebCore::takeSnapshot):
(WebCore::takeSnapshots):
- platform/DragImage.cpp:
(WebCore::createDragImageForSelection):
(WebCore::createDragImageForRange):
Source/WebKit:
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createSelectionSnapshot const):
- 11:10 AM Changeset in webkit [278564] by
-
- 274 edits32 adds8 deletes in trunk/Source/ThirdParty/libwebrtc
Update libvpx to M92
https://bugs.webkit.org/show_bug.cgi?id=226488
Reviewed by Eric Carlson.
- CMakeLists.txt:
- Source/third_party/libvpx: Resynced.
- libwebrtc.xcodeproj/project.pbxproj:
- 10:00 AM Changeset in webkit [278563] by
-
- 2 edits in trunk/Source/WebCore
Change WebXRSpace::efectiveOrigin() matrix multiplication order
https://bugs.webkit.org/show_bug.cgi?id=224364
<rdar://problem/76754680>
Reviewed by Sergio Villar Senin.
The current multiplication order is not working correctly when combining local-floor space and getOfffsetReferenceSpace().
The reference space is out of sync with input ray pose after some teleportations:
https://github.com/immersive-web/webxr-samples/blob/main/teleportation.html
Tested using WebXR WPT tests.
- Modules/webxr/WebXRSpace.cpp:
(WebCore::WebXRSpace::effectiveOrigin const):
- 8:37 AM Changeset in webkit [278562] by
-
- 6 edits in trunk
Use 3D points to map the WebXRBoundedReferenceSpace bounds transform
https://bugs.webkit.org/show_bug.cgi?id=224365
<rdar://problem/76754927>
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:
Update WebXR test expectations.
- web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https-expected.txt:
Source/WebCore:
WebXRBoundedReferenceSpace is currently using Point2D mapping to transfom the bounds geometry.
This is not correct because the originOffset is a 3D transform and it expects the bounds depth
coordinates to be on the z axis instead of the y axis.
Tested by WebXR WPT tests.
- Modules/webxr/WebXRBoundedReferenceSpace.cpp:
(WebCore::WebXRBoundedReferenceSpace::updateIfNeeded):
LayoutTests:
Update WebXR test expectations.
- platform/wpe/TestExpectations:
- 8:06 AM Changeset in webkit [278561] by
-
- 8 edits in trunk/Source/WebCore
Factor selection state computation out of LegacyInlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=226718
Reviewed by Alan Bujtas.
Move the code to SelectionRangeData.
- layout/integration/LayoutIntegrationRunIteratorModernPath.h:
(WebCore::LayoutIntegration::RunIteratorModernPath::selectableRange const):
- rendering/HighlightData.cpp:
(WebCore::HighlightData::highlightStateForRenderer):
(WebCore::HighlightData::highlightStateForTextBox):
(WebCore::HighlightData::rangeForTextBox):
- rendering/HighlightData.h:
(WebCore::HighlightData::HighlightData):
- rendering/LegacyInlineTextBox.cpp:
(WebCore::LegacyInlineTextBox::selectionState):
(WebCore::LegacyInlineTextBox::selectableRange const):
(WebCore::LegacyInlineTextBox::selectionStartEnd const):
(WebCore::LegacyInlineTextBox::highlightStartEnd const):
(WebCore::LegacyInlineTextBox::verifySelectionState const): Deleted.
(WebCore::LegacyInlineTextBox::clampedStartEndForState const): Deleted.
- rendering/LegacyInlineTextBox.h:
- rendering/SelectionRangeData.cpp:
(WebCore::SelectionRangeData::SelectionRangeData):
- rendering/TextBoxSelectableRange.h:
- 6:45 AM Changeset in webkit [278560] by
-
- 8 edits in trunk
[Cocoa] Find-in-page should match text inside image overlays
https://bugs.webkit.org/show_bug.cgi?id=226704
Reviewed by Tim Horton.
Source/WebCore:
Add a new TextIteratorBehavior to allow TextIterator to descend into image overlay content, and use this option
when creating TextIterators for find-in-page. See WebKit/ChangeLog for more details.
Test: WebKit.FindTextInImageOverlay
- editing/TextIterator.cpp:
(WebCore::TextIterator::handleReplacedElement):
(WebCore::findIteratorOptions):
- editing/TextIteratorBehavior.h:
Source/WebKit:
Add the
PaintAllContentandPaintBackgroundstext indicator options when generating a TextIndicator for
selected content inside an image overlay. See WebCore/ChangeLog for more details.
- WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindIndicator):
- WebProcess/WebPage/ios/FindControllerIOS.mm:
(WebKit::findTextIndicatorOptions):
(WebKit::FindIndicatorOverlayClientIOS::drawRect):
(WebKit::FindController::updateFindIndicator):
Tools:
Add an API test to verify that text inside image overlays is visible to find-in-page.
- TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:
- 6:26 AM Changeset in webkit [278559] by
-
- 3 edits2 adds in trunk
[iOS] Unexpected scrolling when switching focus from a text input to a select element
https://bugs.webkit.org/show_bug.cgi?id=226657
<rdar://problem/78290515>
Reviewed by Tim Horton.
Source/WebKit:
When switching focus from a text input to a select element, UIKit makes
deferred calls to-[WKWebView inputView]after the keyboard dismissal.
This method calls-[WKContentView inputViewForWebView], which calls
-[WKContentView _zoomToRevealFocusedElement]. Consequently, these
methods can get invoked while the context menu (dropdown) is displayed
for a focused select element.
In this instance, the call should be idempotent, since the focused element
is fully visible in the viewport. However, since the context menu is visible
and overlaps the element, our logic incorrectly determines that the element
is obscured, leading to unexpected zooming/scrolling. To fix, we need to
correct the logic that determines the visible portion of the view.
Test: fast/forms/ios/form-control-refresh/select/focus-select-after-textfield.html
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _zoomToFocusRect:selectionRect:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):
Always use the window to determine the portion of the webview that is
visible, rather than relying on the root view controller's top-most
full-screen view controller's view.
The old logic worked fine in most cases, since the root view controller
and the top-most full-screen view controller are almost always the same.
Furthermore, the root view controller's view usually takes up the entire
window.
However, when the context menu is on screen, the top-most full-screen
view controller is an internal UIKit view controller
(_UIContextMenuActionsOnlyViewController), and the associated view
is the context menu view. This exposed a flaw in the existing logic, as
visibility detection could be performed by intersecting with an
incorrect view. In general, the top-most full-screen view is not a
reliable way to determine the visible portion of the webview.
LayoutTests:
Add a layout test to exercise the bug.
- fast/forms/ios/form-control-refresh/select/focus-select-after-textfield-expected.txt: Added.
- fast/forms/ios/form-control-refresh/select/focus-select-after-textfield.html: Added.
- 4:45 AM Changeset in webkit [278558] by
-
- 2 edits in trunk/Source/WTF
[WTF][GStreamer] Fix clang TSA warnings in WTF::DataMutex
https://bugs.webkit.org/show_bug.cgi?id=226719
Reviewed by Xabier Rodriguez-Calvar.
Fix the remaning clang thread safety warnings in WTF::DataMutex.
The goal of this patch is to reduce the number of warnings in the
GStreamer codebase. Whether DataMutex should be deprecated in favor of
Locker with the clang TSA annotations is outside of the scope of this
patch.
- wtf/DataMutex.h:
- 4:43 AM Changeset in webkit [278557] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Add clang TSA annotations: MainThreadNotifier
https://bugs.webkit.org/show_bug.cgi?id=226717
Reviewed by Xabier Rodriguez-Calvar.
Adds clang thread safety annotations to
MainThreadNotifier.h
- platform/graphics/gstreamer/MainThreadNotifier.h:
- 4:43 AM Changeset in webkit [278556] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Add clang TSA annotations: InbandTextTrackPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=226716
Reviewed by Xabier Rodriguez-Calvar.
Adds clang thread safety annotations to
InbandTextTrackPrivateGStreamer.h.
- platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
- 4:40 AM Changeset in webkit [278555] by
-
- 2 edits in trunk/Source/WTF
[GStreamer] Remove spurious assert in WTF::DataMutex
https://bugs.webkit.org/show_bug.cgi?id=226714
Reviewed by Michael Catanzaro.
Remove DATA_MUTEX_CHECK(!mutex().isHeld()); from the DataMutexLocker
constructor, introduced in r278248.
Trying to lock a currently held mutex is not an error condition that
should crash the process, it will just wait for its turn to lock it.
- wtf/DataMutex.h:
- 4:40 AM Changeset in webkit [278554] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Fix clang TSA warning in AbortableTaskQueue
https://bugs.webkit.org/show_bug.cgi?id=226715
Reviewed by Michael Catanzaro.
Fixes a clang thread safety analysis warning in AbortableTaskQueue.
- platform/AbortableTaskQueue.h:
- 4:11 AM Changeset in webkit [278553] by
-
- 2 edits in trunk/Source/JavaScriptCore
$vm should have a function for checking if security assertions are enabled similar to $vm.assertEnabled
https://bugs.webkit.org/show_bug.cgi?id=226020
<rdar://problem/78567619>
Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2021-06-07
Reviewed by Mark Lam.
Add method $vm.securityAssertEnabled() which parallels $vm.assertEnabled(), and allows
checking at runtime whether the current JavaScriptCore build has security assertions enabled.
- tools/JSDollarVM.cpp:
- 3:43 AM Changeset in webkit [278552] by
-
- 3 edits in trunk
[GTK][WPE] Bump libsoup3 version to 2.99.8
https://bugs.webkit.org/show_bug.cgi?id=226713
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-06-07
Reviewed by Philippe Normand.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
- 1:53 AM Changeset in webkit [278551] by
-
- 94 edits13 adds1 delete in trunk/Source/ThirdParty/libwebrtc
Update libyuv to M92
https://bugs.webkit.org/show_bug.cgi?id=226489
Reviewed by Eric Carlson.
- CMakeLists.txt:
- Source/third_party/libyuv: Resynced.
- Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
Updated 10 bits frame conversion routine to use new libyuv routines (covered by webrtc/vp9-profile2.html)
- libwebrtc.xcodeproj/project.pbxproj:
- 1:37 AM Changeset in webkit [278550] by
-
- 2 edits in trunk/Tools/buildstream
Unreviewed, fix libsoup3 build in Flatpak SDK
- elements/sdk/libsoup3.bst:
- 1:28 AM Changeset in webkit [278549] by
-
- 2 edits in trunk/Tools/buildstream
[Flatpak SDK] Update to libsoup3 2.99.8
https://bugs.webkit.org/show_bug.cgi?id=226712
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-06-07
Reviewed by Philippe Normand.
- elements/sdk/libsoup3.bst:
- 1:21 AM Changeset in webkit [278548] by
-
- 5 edits in trunk
[GTK][WPE] Signal "window-object-cleared" not emitted unless frame js context is get before
https://bugs.webkit.org/show_bug.cgi?id=221771
Reviewed by Michael Catanzaro.
Source/WebKit:
This is because when FrameLoader::dispatchDidClearWindowObjectInWorld() is called, the JSWindowProxy for the
world hasn't been created yet, so it returns early. But we want to dispatch it always for worlds created by the
API, to ensure that WebKitScriptWorld::window-object-cleared is emmitted.
- WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: Implement globalObjectIsAvailableForFrame() to force the
creation of the JavaScript context for existing WebKitScriptWorlds.
Tools:
Update window-object-cleared test to check that the signal is emitted for the WebKitScriptWorld objects created
by the extension.
- TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:
(UserMessageTest::sendMessage):
(UserMessageTest::viewUserMessageReceived):
(UserMessageTest::waitUntilViewMessagesReceived):
(UserMessageTest::waitUntilViewMessageReceived):
(testWebExtensionWindowObjectCleared):
(beforeAll):
- TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:
(windowObjectCleared):
(isolatedWorldWindowObjectCleared):
(webkit_web_extension_initialize_with_user_data):
Jun 6, 2021:
- 11:59 PM Changeset in webkit [278547] by
-
- 38 edits1 copy2 moves1 add in trunk/Source/ThirdParty/libwebrtc
Update libsrtp to M92
https://bugs.webkit.org/show_bug.cgi?id=226487
Reviewed by Eric Carlson.
- Configurations/libsrtp.xcconfig:
- Source/third_party/libsrtp: Resynced.
- libwebrtc.xcodeproj/project.pbxproj:
- 11:31 PM Changeset in webkit [278546] by
-
- 5 edits in trunk/Source
Unreviewed, reverting r277464.
https://bugs.webkit.org/show_bug.cgi?id=226709
No longer necessary
Reverted changeset:
"Work around WebCore failing to build due to NDEBUG getting
undefined in release"
https://bugs.webkit.org/show_bug.cgi?id=225782
https://trac.webkit.org/changeset/277464
- 11:19 PM Changeset in webkit [278545] by
-
- 9 edits1 add in trunk/Source/WebCore
Factor selection clamping into a type
https://bugs.webkit.org/show_bug.cgi?id=226697
Reviewed by Sam Weinig.
TextBoxSelectableRange will be helpful for moving selection code out of the legacy inline boxes.
It also allows some code sharing already in this patch.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:
(WebCore::LayoutIntegration::RunIteratorLegacyPath::isSelectable const):
- layout/integration/LayoutIntegrationRunIteratorModernPath.h:
(WebCore::LayoutIntegration::RunIteratorModernPath::positionForOffset const):
(WebCore::LayoutIntegration::RunIteratorModernPath::isSelectable const):
(WebCore::LayoutIntegration::RunIteratorModernPath::selectionRect const):
(WebCore::LayoutIntegration::RunIteratorModernPath::selectableRange const):
(WebCore::LayoutIntegration::RunIteratorModernPath::clampedOffset const): Deleted.
- rendering/LegacyInlineTextBox.cpp:
(WebCore::LegacyInlineTextBox::isSelectable const):
(WebCore::LegacyInlineTextBox::localSelectionRect const):
(WebCore::LegacyInlineTextBox::paint):
(WebCore::LegacyInlineTextBox::selectableRange const):
(WebCore::LegacyInlineTextBox::clampedStartEndForState const):
(WebCore::LegacyInlineTextBox::calculateDocumentMarkerBounds const):
(WebCore::LegacyInlineTextBox::collectMarkedTextsForDraggedContent):
(WebCore::LegacyInlineTextBox::collectMarkedTextsForDocumentMarkers const):
(WebCore::LegacyInlineTextBox::paintCompositionBackground):
(WebCore::LegacyInlineTextBox::positionForOffset const):
(WebCore::LegacyInlineTextBox::isSelected const): Deleted.
(WebCore::LegacyInlineTextBox::clampedOffset const): Deleted.
- rendering/LegacyInlineTextBox.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineSelectionGaps):
- rendering/TextBoxSelectableRange.h: Added.
(WebCore::TextBoxSelectableRange::clamp const):
(WebCore::TextBoxSelectableRange::intersects const):
- rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::localSelectionRect const):
- 11:16 PM Changeset in webkit [278544] by
-
- 5 edits1 delete in trunk/Source/WebCore
Drop MainThreadTaskDispatcher and use callOnMainThread() instead
https://bugs.webkit.org/show_bug.cgi?id=226701
Reviewed by Darin Adler.
Drop MainThreadTaskDispatcher and use callOnMainThread() instead. There is a no need for a
global Timer or a Deque of tasks.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/DeferrableTask.h:
(WebCore::MainThreadDeferrableTask::scheduleTask):
- platform/GenericTaskQueue.cpp: Removed.
- platform/GenericTaskQueue.h:
(WebCore::MainThreadTaskQueue::MainThreadTaskQueue):
(WebCore::MainThreadTaskQueue::enqueueTask):
- 9:22 PM Changeset in webkit [278543] by
-
- 10 edits1 add in trunk/Source
Stop using legacy EventLoopDeferrableTask
https://bugs.webkit.org/show_bug.cgi?id=226700
Reviewed by Darin Adler.
Source/WebCore:
Stop using legacy EventLoopDeferrableTask and drop the class entirely. Call sites are
now using the HTML event loop directly and using WTF::CancellableTask to wrap the task
they schedule. This achieves the same result as EventLoopDeferrableTask but is more
lightweight and flexible.
- animation/DocumentTimelinesController.cpp:
(WebCore::DocumentTimelinesController::DocumentTimelinesController):
(WebCore::DocumentTimelinesController::detachFromDocument):
(WebCore::DocumentTimelinesController::cacheCurrentTime):
- animation/DocumentTimelinesController.h:
- dom/ActiveDOMObject.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::scheduleCheckPlaybackTargetCompatability):
(WebCore::HTMLMediaElement::seekWithTolerance):
(WebCore::HTMLMediaElement::setVolume):
(WebCore::HTMLMediaElement::scheduleConfigureTextTracks):
(WebCore::HTMLMediaElement::scheduleMediaEngineWasUpdated):
(WebCore::HTMLMediaElement::scheduleUpdatePlayState):
(WebCore::HTMLMediaElement::cancelPendingTasks):
(WebCore::HTMLMediaElement::closeTaskQueues):
(WebCore::HTMLMediaElement::suspend):
(WebCore::HTMLMediaElement::resume):
(WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured):
(WebCore::HTMLMediaElement::mediaPlayerBufferedTimeRangesChanged):
(WebCore::HTMLMediaElement::scheduleUpdateMediaState):
(WebCore::HTMLMediaElement::playbackControlsManagerBehaviorRestrictionsTimerFired):
- html/HTMLMediaElement.h:
- platform/DeferrableTask.h:
Source/WTF:
Introduce new WTF::CancellableTask type which is a wrapper around a WTF::Function.
It can create a handle for the task and this handle can be used to check if the
task is still pending and to cancel it. This is useful when scheduling tasks in the
event loop for example as there are cases where we need to know if a task we
scheduled is still pending (to avoid double scheduling) or where we need to cancel
a previously scheduled task.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/CancellableTask.h: Added.
(WTF::CancellableTask::CancellableTask):
(WTF::CancellableTask::operator()):
(WTF::CancellableTask::isPending const):
(WTF::CancellableTask::cancel):
(WTF::CancellableTask::Handle::Handle):
(WTF::CancellableTask::Handle::isPending const):
(WTF::CancellableTask::Handle::cancel):
(WTF::CancellableTask::createHandle):
- 9:11 PM Changeset in webkit [278542] by
-
- 29 edits in trunk/Source
Turn TextIteratorBehaviorFlag into an enum class and wrap it in OptionSet
https://bugs.webkit.org/show_bug.cgi?id=226691
Reviewed by Darin Adler.
Source/WebCore:
Modernize some editing code by turning
TextIteratorBehaviorFlaginto an enum class,TextIteratorBehavior,
with an explicit width of 16 bits. Additionally, since this is a bitmask, refactor various codepaths to use
OptionSet<TextIteratorBehavior>instead of the underlying type.
This gives us improved type safety when using this enum, and also narrows the width of this enum to 16 bits
(from 32). No change in behavior.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::rangeMatchesTextNearRange):
(WebCore::AXObjectCache::nextBoundary):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::textIteratorBehaviorForTextRange const):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/atk/WebKitAccessibleHyperlink.cpp:
(rangeLengthForObject):
- accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getSelectionOffsetsForObject):
- accessibility/atk/WebKitAccessibleUtil.cpp:
(objectFocusedAndCaretOffsetUnignored):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::textIteratorBehaviorForTextRange const):
Fix this method to return the empty (default) option set instead of
false(which was previously implicitly
converted toTextIteratorDefaultBehavior).
- accessibility/isolatedtree/AXIsolatedObject.h:
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle):
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
- editing/Editing.cpp:
(WebCore::indexForVisiblePosition):
(WebCore::visiblePositionForIndex):
- editing/Editor.cpp:
(WebCore::Editor::selectedText const):
(WebCore::Editor::selectedTextForDataTransfer const):
- editing/Editor.h:
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment):
- editing/TextIterator.cpp:
(WebCore::isClippedByFrameAncestor):
(WebCore::TextIterator::TextIterator):
(WebCore::TextIterator::init):
(WebCore::firstChild):
(WebCore::nextSibling):
(WebCore::nextNode):
(WebCore::isDescendantOf):
(WebCore::parentNodeOrShadowHost):
(WebCore::TextIterator::advance):
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextRun):
(WebCore::TextIterator::handleTextNodeFirstLetter):
(WebCore::TextIterator::handleReplacedElement):
(WebCore::TextIterator::shouldRepresentNodeOffsetZero):
(WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode):
(WebCore::TextIterator::handleNonTextNode):
(WebCore::TextIterator::exitNode):
(WebCore::TextIterator::emitText):
(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
(WebCore::SimplifiedBackwardsTextIterator::exitNode):
(WebCore::CharacterIterator::CharacterIterator):
(WebCore::characterCount):
(WebCore::resolveCharacterRange):
(WebCore::hasAnyPlainText):
(WebCore::plainText):
(WebCore::plainTextReplacingNoBreakSpace):
(WebCore::findIteratorOptions):
- editing/TextIterator.h:
(WebCore::characterCount):
(WebCore::characterRange):
(WebCore::resolveCharacterLocation):
(WebCore::resolveCharacterRange):
(WebCore::plainText):
(WebCore::hasAnyPlainText):
(WebCore::plainTextReplacingNoBreakSpace):
(WebCore::TextIterator::TextIterator):
(WebCore::CharacterIterator::CharacterIterator):
- editing/TextIteratorBehavior.h:
Add an alias for
OptionSet<TextIteratorBehavior>,TextIteratorBehaviors, to help with readability when
specifying or consulting these flags. Additionally remove theTextIteratorDefaultBehaviorenum value
altogether, since we can now just use the default constructor (OptionSet<TextIteratorBehavior> { }) to get a
set of empty options.
- editing/TextManipulationController.cpp:
(WebCore::ParagraphContentIterator::ParagraphContentIterator):
- editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::appendTrailingWhitespace):
- editing/VisibleUnits.cpp:
(WebCore::nextBoundary):
- editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::renderedTextRespectingRange):
- page/EventHandler.cpp:
(WebCore::textDistance):
Source/WebKit:
See WebCore/ChangeLog for more information.
- WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::plainTextForDisplay):
(WebKit::rangeNearPositionMatchesText):
Source/WebKitLegacy/mac:
See WebCore/ChangeLog for more information.
- WebView/WebFrame.mm:
(-[WebFrame _stringForRange:]):
- 8:53 PM Changeset in webkit [278541] by
-
- 2 edits in trunk/Source/WebCore
Flaky assertion hit in AudioSessionRoutingArbitratorProxy::endRoutingArbitration()
https://bugs.webkit.org/show_bug.cgi?id=226699
Reviewed by Darin Adler.
If m_setupArbitrationOngoing is true, then beginRoutingArbitrationForToken() only adds the token to
m_tokens once the setup is done, asynchronously. As a result, if endRoutingArbitrationForToken() during
setup, theisInRoutingArbitrationForToken(token)assertion will hit, because the token wasn't added
to m_tokens yet. Tweak the assertion so that it doesn't hit when m_setupArbitrationOngoing is true.
This is a speculative fix as I wasn't able to reproduce the assertion hit locally.
- platform/audio/mac/SharedRoutingArbitrator.mm:
(WebCore::SharedRoutingArbitrator::endRoutingArbitrationForToken):
- 7:39 PM Changeset in webkit [278540] by
-
- 66 edits in trunk
Handle custom identifiers and strings separately, so we can quote strings correctly consistently
https://bugs.webkit.org/show_bug.cgi?id=226694
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-animations/parsing/animation-name-valid-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-negative-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-pad-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-prefix-suffix-syntax-expected.txt:
- web-platform-tests/css/css-counter-styles/counter-style-symbols-syntax-expected.txt:
- web-platform-tests/css/css-grid/parsing/grid-area-computed-expected.txt:
- web-platform-tests/css/css-grid/parsing/grid-area-shorthand-expected.txt:
- web-platform-tests/css/css-grid/parsing/grid-area-valid-expected.txt:
- web-platform-tests/css/css-lists/parsing/content-invalid-expected.txt:
- web-platform-tests/css/css-transitions/transition-property-002-expected.txt:
- web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt:
- web-platform-tests/css/cssom/serialize-values-expected.txt:
Rebased to reflect progressions. In some cases the entire test passes, in other cases we still
have failures, but the string serialization part of the test has progressed.
Source/WebCore:
Progressions in a number of WPT tests.
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::CSSAnimation): Update since Animation::name() now
returns a struct.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes): Ditto.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::OrderedNamedLinesCollector::appendLines const): Use
createCustomIdent for line names.
(WebCore::valueForGridPosition): Use createCustomIdent for grid line name.
(WebCore::createTransitionPropertyValue): Use createCustomIdent for
animation property names.
(WebCore::counterToCSSValue): Use createCustomIdent for counter names.
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle): Use
createCustomIdent for list-style-type, locale, animation names if they
were created from a custom-ident, and line-grid.
- css/CSSCustomIdentValue.cpp: Emptied out this file; we can delete it soon.
- css/CSSCustomIdentValue.h: Ditto.
- css/CSSMarkup.cpp:
(WebCore::serializeCharacterAsCodePoint): Optimized to do a single
StringBuilder::append call.
(WebCore::serializeAsStringOrCustomIdent): Deleted.
- css/CSSMarkup.h: Removed serializeAsStringOrCustomIdent.
- css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion): Added a case for
CustomIdent. Changed CSS_IDENT to assert not reached, since it should
never be passed to this function. More cleanup of CSSUnitType is needed,
but for now mostly leaving it alone.
(WebCore::isStringType): Added a case for CustomIdent. Moved CSS_DIMENSION,
which was incorrectly returning true, to return false. Pretty sure there's
no way to create one of these with CSS_DIMENSION, but this is less peculiar.
(WebCore::CSSPrimitiveValue::primitiveType const): Added transformation
from CustomIdent to CSS_IDENT as we do with CSS_PROPERTY_ID and CSS_VALUE_ID.
(WebCore::CSSPrimitiveValue::cleanup): Added a case for CustomIdent.
Moved CSS_DIMENSION to the correct section. Pretty sure there's no way to
create one of these with CSS_DIMENSION, but this is less peculiar.
(WebCore::CSSPrimitiveValue::setFloatValue): Deleted.
(WebCore::CSSPrimitiveValue::setStringValue): Deleted.
(WebCore::CSSPrimitiveValue::getStringValue const): Deleted.
(WebCore::CSSPrimitiveValue::stringValue const): Added a case for CustomIdent.
(WebCore::CSSPrimitiveValue::unitTypeString): Added a case for CustomIdent
and an ASSERT_NOT_REACHED for invalid enumeration values.
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
Removed inaccurate FIXME comment for CSS_DIMENSION and changed it to do
something less wrong, but still incorrect. Pretty sure there's no way to
create one of these with CSS_DIMENSION, but this is less peculiar. Changed
CSS_STRING case to always serializeAsString. Added a CustomIdent case
that always serializes as an identifier.
(WebCore::CSSPrimitiveValue::equals const): Moved the CSS_DIMENSION to
the correct part of this switch statement. Pretty sure there's no way to
create one of these with CSS_DIMENSION, but this is less peculiar.
Added case for CustomIdent.
- css/CSSPrimitiveValue.h: Made isFontRelativeLength, isResolution,
and isViewportPercentageLength private. Made those plus isLength all
constexpr. Removed WEBCORE_EXPORT from primitiveType and getFloatValue:
those needed to be exported when this was the web-exposed class, but
that is now DeprecatedCSSOMPrimitiveValue. Deleted setFloatValue,
setStringValue, and getStringValue for the same reason: those functions
are now in DeprecatedCSSOMPrimitiveValue and don't need to be here.
- css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapAnimationName): Updated to pass a boolean
in to the animation name to keep track of whether it was created with
a string or a custom-ident so we it can properly round-trip in computed
style. This is required to pass some of the WPT tests, although I could
not find clear guidance in the specification that this behavior is required.
The same name with a string and custom-ident are equivalent in other ways.
- css/CSSUnits.cpp:
(WebCore::operator<<): Added a case for CustomIdent.
- css/CSSUnits.h: Added CustomIdent. Added some FIXME about how we can
change this in the future. It's a remnant of the past when these were part
of our web-facing API, and this can be greatly cleaned up.
- css/CSSValue.cpp:
(WebCore::CSSValue::cssText const): Removed CSSCustomIdentValue.h,
CustomIdentClass, CSSCustomIdentValue. We are not going to use a separate
class for custom-ident, just a separate type of primitive value.
(WebCore::CSSValue::destroy): Ditto.
- css/CSSValue.h: Deleted isCustomIdentValue and CustomIdentClass.
- css/CSSValueList.cpp:
(WebCore::CSSValueList::customCSSText const): Tweaked algorithm
to be slightly more efficient.
- css/CSSValuePool.h: Added createCustomIdent. Later should remove
the create function that takes a string value and a type and use
separate named functions for the few different cases, but doing the
new one this way for now.
- css/DeprecatedCSSOMPrimitiveValue.cpp:
(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const):
Rewrote this to be a switch that preserves the current behavior
but no longer relies on the numeric values of CSSUnitType values.
Added a FIXME about using CSS_UNKNOWN more: some of the numbers
we are exposing to the web are doing no good.
(WebCore::DeprecatedCSSOMPrimitiveValue::setFloatValue): Moved this
function to the header.
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue const):
Rewrote this to be a switch as above. Preserves current behavior
but stops relying on CSSUnitType numeric values.
(WebCore::DeprecatedCSSOMPrimitiveValue::setStringValue): Moved this
function to the header.
(WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue const):
Ditto. By putting a switch on primitiveType here, we can enforce
the desired exception behavior here, instead of getting it from
CSSPrimitiveValue, and it's better for this class to deal with
the legacy bindings issues.
(WebCore::DeprecatedCSSOMPrimitiveValue::getCounterValue const): Ditto.
(WebCore::DeprecatedCSSOMPrimitiveValue::getRectValue const): Ditto.
(WebCore::DeprecatedCSSOMPrimitiveValue::getRGBColorValue const): Ditto.
- css/DeprecatedCSSOMPrimitiveValue.h: Removed unneeded cssValueType
function. Made both setFloatValue and setStringValue simpler since
they always raise an exception and we do not intend to change that.
Also stop using protected since we have no classes derived from this.
Could do more cleanup, but this is a start.
- css/DeprecatedCSSOMValue.cpp:
(WebCore::DeprecatedCSSOMValue::cssValueType const): Put the constant
values, CSS_PRIMITIVE_VALUE and CSS_VALUE_LIST, here rather than
calling member functions.
- css/DeprecatedCSSOMValueList.cpp:
(WebCore::DeprecatedCSSOMValueList::cssText const): Tweaked to make
the code more efficient.
- css/DeprecatedCSSOMValueList.h: Removed unneeded cssValueType
function and const overload of item function. Also stop using protected
since we have no classes derived from this.
- css/MediaQueryExpression.cpp:
(WebCore::featureWithValidIdent): Fixed indentation to match WebKit style.
(WebCore::featureWithValidDensity): Ditto.
(WebCore::featureWithValidPositiveLength): Ditto.
(WebCore::featureExpectingPositiveInteger): Ditto.
(WebCore::featureWithPositiveNumber): Ditto.
- css/calc/CSSCalcCategoryMapping.cpp:
(WebCore::hasDoubleValue): Added a case for CustomIdent.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeWillChange): Removed comment saying we should use
CSSCustomIdentValue since using a property ID for the value is great.
(WebCore::consumeAnimationName): Removed comment saying we should use
CSSCustomIdentValue here because that would be incorrect: we need to
preserve and round-trip the fact that this was string, not custom-ident.
(WebCore::consumeTransitionProperty): Remove special case for
CSSValueAll that wasn't doing anything. Removed comment saying we should
use CSSCustomIdentValue since using a value ID for the value is great.
(WebCore::consumeAttr): Updated comment.
(WebCore::isCustomIdentValue): Updated to work with the new primitive value.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeCustomIdent):
Use the new createCustomIdent and removed an outdated comment. While we
might some day want to implement custom-ident differently, we won't need
to change the code here to make that happen.
- platform/animation/Animation.cpp:
(WebCore::Animation::animationsMatch const): Update since m_name now is a
struct.
(WebCore::Animation::initialName): Update to return Name instead of String.
(WebCore::operator<<): Update since name() now returns a struct.
- platform/animation/Animation.h: Added the Name struct so we can store a
boolean to indicate whether it's a string or custom-ident for round tripping.
Update types and implementations of function and data members accordingly.
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::createGridPosition): Update code to expect
custom-ident instead of string; they used to both be the same thing.
- style/Styleable.cpp:
(WebCore::shouldConsiderAnimation): Update since Animation::name() now
returns a struct. Also got rid of unsuccessful attempt to optimize comparison
againt the string "none"; later might be good to clean out that special case.
(WebCore::Styleable::updateCSSAnimations const): Ditto.
Tools:
- TestRunnerShared/TestFeatures.cpp:
(WTR::parseTestHeader): Fixed a missing quote that made a log message read strangely.
LayoutTests:
- TestExpectations: Removed expected failures from 13 css-counter-styles tests that are not
currently failing. I had planned to work on making more of these pass, but first found I could
fix them with a corrected custom-ident implementation.
- css3/supports-expected.txt: Rebased.
- css3/supports.html: Updated to expect the value of the content property to be a quoted string,
rather than the old behavior, which was to leave the string unquoted if it happened to be a
string with all characters legal for a custom-ident. New expectation is the correct behavior.
- fast/css/alt-inherit-initial-expected.txt: Rebased.
- fast/css/alt-inherit-initial.html: Updated to expect the value of the language property to be
a custom-ident, and serialize unusual cases with custom-ident rules, not as a quoted string. New
expectation is the correct behavior.
- fast/css/content-language-comma-separated-list-expected.txt: Ditto.
- fast/css/content-language-empty-expected.txt: Ditto.
- fast/css/content-language-only-whitespace-expected.txt: Ditto.
- fast/css/content-language-with-whitespace-expected.txt: Ditto.
- fast/css/getComputedStyle/computed-style-properties-expected.txt: Rebased.
- fast/css/getComputedStyle/computed-style-properties.html: Expect content string (see above).
- fast/css/lang-mapped-to-webkit-locale-expected.txt: Rebased.
- fast/css/lang-mapped-to-webkit-locale.xhtml: Expect language custom-ident (see above).
- fast/css/nested-at-rules-expected.txt: Rebased.
- fast/css/nested-at-rules.html: Expect content string (see above).
- fast/css/parsing-text-emphasis-expected.txt: Rebased.
- fast/css/parsing-text-emphasis.html: Updated to expect strings to remaing quoted strings in
the text-emphasis property, not change into custom-ident if all characters happen to fit.
- fast/encoding/css-charset-default-expected.txt: Expect content string (see above).
- inspector/css/pseudo-element-matches-for-pseudo-element-node-expected.txt: Ditto.
- 5:01 PM Changeset in webkit [278539] by
-
- 10 edits in trunk/Source
[GPUP][MSE] QuotaExceededError Exception not thrown even if the sum of totalTrackBufferSize and appendBuffer size exceeds maximumBufferSize
https://bugs.webkit.org/show_bug.cgi?id=226034
rdar://78579904
Reviewed by Eric Carlson.
Source/WebCore:
Existing media-source-append-buffer-full-quota-exceeded-error.html test will
be exercising this code once bug 225367 has been fixed.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBufferInternal): fly-by fix, use size of pending
buffer rather than the capacity of the holding vector.
- platform/graphics/SourceBufferPrivate.h: Make totalTrackBufferSizeInBytes method virtual.
Source/WebKit:
Cache the size of the remote source buffer's track size. We pass an extra
totalTrackBufferSizeInBytes argument to each method that could impact
a source buffer size.
- GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::sourceBufferPrivateAppendComplete):
(WebKit::RemoteSourceBufferProxy::removeCodedFrames):
(WebKit::RemoteSourceBufferProxy::evictCodedFrames):
- GPUProcess/media/RemoteSourceBufferProxy.h:
- GPUProcess/media/RemoteSourceBufferProxy.messages.in:
- WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::abort): Add comment explaining on why
getting an up to date totalTrackBufferSizeInBytes isn't necessary at this point.
(WebKit::SourceBufferPrivateRemote::removeCodedFrames):
(WebKit::SourceBufferPrivateRemote::evictCodedFrames):
(WebKit::SourceBufferPrivateRemote::clearTrackBuffers):
(WebKit::SourceBufferPrivateRemote::sourceBufferPrivateAppendComplete):
(WebKit::SourceBufferPrivateRemote::totalTrackBufferSizeInBytes const):
- WebProcess/GPU/media/SourceBufferPrivateRemote.h:
- WebProcess/GPU/media/SourceBufferPrivateRemote.messages.in:
- 12:13 PM Changeset in webkit [278538] by
-
- 22 edits in trunk/Source/WebCore
Reduce use of legacy EventLoopEventQueue and EventLoopTaskQueue
https://bugs.webkit.org/show_bug.cgi?id=226692
Reviewed by Darin Adler.
Reduce use of legacy EventLoopEventQueue and EventLoopTaskQueue, and use the HTML event
loop directly instead. Those are very simple cases, they really don't need any of the
features the queue was providing (such as cancelling events).
To get rid of the remaining usage of EventLoopEventQueue / EventLoopTaskQueue, I believe
we'll need a way to cancel tasks scheduled in the HTML event loop.
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::MediaSessionCoordinator):
(WebCore::MediaSessionCoordinator::coordinatorStateChanged):
- Modules/mediasession/MediaSessionCoordinator.h:
- Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::MediaSource):
(WebCore::MediaSource::virtualHasPendingActivity const):
(WebCore::MediaSource::scheduleEvent):
- Modules/mediasource/MediaSource.h:
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::SourceBuffer):
(WebCore::SourceBuffer::virtualHasPendingActivity const):
(WebCore::SourceBuffer::scheduleEvent):
- Modules/mediasource/SourceBuffer.h:
- Modules/mediasource/SourceBufferList.cpp:
(WebCore::SourceBufferList::SourceBufferList):
(WebCore::SourceBufferList::scheduleEvent):
- Modules/mediasource/SourceBufferList.h:
- Modules/remoteplayback/RemotePlayback.cpp:
(WebCore::RemotePlayback::RemotePlayback):
(WebCore::RemotePlayback::watchAvailability):
(WebCore::RemotePlayback::cancelWatchAvailability):
(WebCore::RemotePlayback::prompt):
(WebCore::RemotePlayback::setState):
(WebCore::RemotePlayback::disconnect):
(WebCore::RemotePlayback::availabilityChanged):
(WebCore::RemotePlayback::stop): Deleted.
- Modules/remoteplayback/RemotePlayback.h:
- animation/DocumentTimelinesController.cpp:
(WebCore::DocumentTimelinesController::DocumentTimelinesController):
(WebCore::DocumentTimelinesController::detachFromDocument):
(WebCore::DocumentTimelinesController::cacheCurrentTime):
(WebCore::DocumentTimelinesController::maybeClearCachedCurrentTime):
- animation/DocumentTimelinesController.h:
- dom/FullscreenManager.cpp:
(WebCore::FullscreenManager::FullscreenManager):
(WebCore::FullscreenManager::requestFullscreenForElement):
(WebCore::FullscreenManager::exitFullscreen):
(): Deleted.
- dom/FullscreenManager.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::removedFromAncestor):
(WebCore::HTMLMediaElement::scheduleResolvePendingPlayPromises):
(WebCore::HTMLMediaElement::scheduleRejectPendingPlayPromises):
(WebCore::HTMLMediaElement::scheduleNotifyAboutPlaying):
(WebCore::HTMLMediaElement::setMediaKeys):
(WebCore::HTMLMediaElement::closeTaskQueues):
(WebCore::HTMLMediaElement::virtualHasPendingActivity const):
(WebCore::HTMLMediaElement::setIsPlayingToWirelessTarget):
(WebCore::HTMLMediaElement::enterFullscreen):
(WebCore::HTMLMediaElement::isVisibleInViewportChanged):
- html/HTMLMediaElement.h:
- html/shadow/MediaControlTextTrackContainerElement.cpp:
(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
(WebCore::MediaControlTextTrackContainerElement::updateSizes):
- html/shadow/MediaControlTextTrackContainerElement.h:
- html/track/TrackListBase.cpp:
(WebCore::TrackListBase::TrackListBase):
(WebCore::TrackListBase::scheduleChangeEvent):
(WebCore::TrackListBase::isChangeEventScheduled const):
(WebCore::TrackListBase::virtualHasPendingActivity const): Deleted.
- html/track/TrackListBase.h:
- platform/network/curl/CurlMultipartHandle.cpp:
(WebCore::CurlMultipartHandle::processContent):
(WebCore::CurlMultipartHandle::matchedLength):
- platform/network/curl/CurlMultipartHandle.h:
- testing/MockMediaSessionCoordinator.h:
- 8:15 AM Changeset in webkit [278537] by
-
- 9 edits2 adds in trunk
[LFC][TFC] Adopt a less quirky fixed column width space distribution
https://bugs.webkit.org/show_bug.cgi?id=226696
Reviewed by Antti Koivisto.
Source/WebCore:
This patch adopts a less quirky space distribution model where any fixed cell width
makes the column fixed (as opposed to just when <col> has fixed with).
This distribution model matches both Chrome and Firefox.
It also enables us to simplify some of the distribution logic by using the same set of values (min vs max)
as the base for the distribution ratio.
Test: fast/layoutformattingcontext/table-fixed-width-variations-simple.html
- layout/formattingContexts/table/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns): Collect the fixed with values from the cells too now.
- layout/formattingContexts/table/TableFormattingGeometry.cpp:
(WebCore::Layout::TableFormattingGeometry::intrinsicWidthConstraintsForCellContent const):
(WebCore::Layout::TableFormattingGeometry::intrinsicWidthConstraintsForCell const): Deleted.
- layout/formattingContexts/table/TableFormattingGeometry.h:
- layout/formattingContexts/table/TableGrid.cpp:
(WebCore::Layout::TableGrid::appendCell):
(WebCore::Layout::TableGrid::Column::isFixedWidth const): Deleted.
(WebCore::Layout::TableGrid::Columns::hasFixedColumnsOnly const): Deleted.
(WebCore::Layout::TableGrid::Cell::isFixedWidth const): Deleted.
- layout/formattingContexts/table/TableGrid.h:
(WebCore::Layout::TableGrid::Column::setFixedWidth):
(WebCore::Layout::TableGrid::Column::fixedWidth const):
(WebCore::Layout::TableGrid::Columns::logicalWidth const):
(WebCore::Layout::TableGrid::Column::setHasFixedWidthCell): Deleted.
(WebCore::Layout::TableGrid::Column::hasFixedWidthCell const): Deleted.
- layout/formattingContexts/table/TableLayout.cpp:
(WebCore::Layout::TableFormattingContext::TableLayout::distributedHorizontalSpace): Adjust the distribution values based on whether
the column has fixed width and use max/max in both fixed and non-fixed cases.
LayoutTests:
- TestExpectations: We don't match current WebKit space distribution anymore.
- fast/layoutformattingcontext/table-fixed-width-variations-simple-expected.html: Added.
- fast/layoutformattingcontext/table-fixed-width-variations-simple.html: Added.
- 7:47 AM Changeset in webkit [278536] by
-
- 3 edits in trunk/Tools
Unexport llvm coverage symbols to fix build
<https://webkit.org/b/226684>
<rdar://problem/78906691>
Reviewed by Darin Adler.
- Scripts/check-for-weak-vtables-and-externals:
- Revert change from r278444. That fixes errors when this script is run, but the Generate TAPI build phase for some projects still fails due to the new weak external symbols.
- coverage/coverage.xcconfig:
(UNEXPORTED_SYMBOL_LDFLAGS_FOR_COVERAGE): Add.
- Linker flags to unexport llvm symbols added by the compiler for coverage.
(OTHER_LDFLAGS):
- Add $(UNEXPORTED_SYMBOL_LDFLAGS_FOR_COVERAGE) to list of switches to unexport the symbols during linking.
- 7:44 AM Changeset in webkit [278535] by
-
- 9 edits2 adds in trunk/Source/WebKit
Weak external symbols found in WebKit.framework with Release+Coverage configuration
<https://webkit.org/b/226668>
<rdar://problem/78890081>
Reviewed by Darin Adler.
- Configurations/WebKit.xcconfig:
(UNEXPORTED_SYMBOL_LDFLAGS):
- Remove std::function<> symbols as those were replaced by WTF::Function<> a while ago.
- Shared/Cocoa/DefaultWebBrowserChecks.mm:
(WebKit::determineITPStateInternal):
(WebKit::doesParentProcessHaveITPEnabled):
- Switch to use TCCSoftLink.h.
- Shared/Cocoa/TCCSoftLink.h: Add.
- Shared/Cocoa/TCCSoftLink.mm: Add.
- Implement a single place for soft-linking to TCC.framework.
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::getProcessIdentifier):
- Change ProcessIdentifier to WebCore::ProcessIdentifier
to fix the build since this source file no longer gets
using namespace WebCore;from another source file after changes to SourcesCocoa.txt.
- SourcesCocoa.txt:
- Add DefaultWebBrowserChecks.mm since it no longer contains any SOFT_LINK macros.
- Add new TCCSoftLink.mm file.
- UIProcess/Cocoa/MediaPermissionUtilities.mm:
(WebKit::checkUsageDescriptionStringForType):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::isAXAuthenticated):
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):
(-[WKActionSheetAssistant defaultActionsForImageSheet:]):
- Switch to use TCCSoftLink.h.
- WebKit.xcodeproj/project.pbxproj:
- Add TCCSoftLink.{h,mm} to the project.
- Remove DefaultWebBrowserChecks.mm from the WebKit.framework target after adding it to SourcesCocoa.txt.
- 7:41 AM Changeset in webkit [278534] by
-
- 28 edits4 moves in trunk/Source/WebCore
Rename InlineElementBox to LegacyInlineElementBox
https://bugs.webkit.org/show_bug.cgi?id=226695
Reviewed by Sam Weinig.
Also EllipsisBox -> LegacyEllipsisBox.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AXObjectCache.cpp:
- dom/Position.cpp:
- layout/integration/LayoutIntegrationRunIterator.h:
- rendering/LegacyEllipsisBox.cpp: Renamed from Source/WebCore/rendering/EllipsisBox.cpp.
(WebCore::LegacyEllipsisBox::LegacyEllipsisBox):
(WebCore::LegacyEllipsisBox::paint):
(WebCore::LegacyEllipsisBox::markupBox const):
(WebCore::LegacyEllipsisBox::paintMarkupBox):
(WebCore::LegacyEllipsisBox::selectionRect):
(WebCore::LegacyEllipsisBox::paintSelection):
(WebCore::LegacyEllipsisBox::nodeAtPoint):
- rendering/LegacyEllipsisBox.h: Renamed from Source/WebCore/rendering/EllipsisBox.h.
- rendering/LegacyInlineElementBox.cpp: Renamed from Source/WebCore/rendering/InlineElementBox.cpp.
(WebCore::LegacyInlineElementBox::deleteLine):
(WebCore::LegacyInlineElementBox::extractLine):
(WebCore::LegacyInlineElementBox::attachLine):
(WebCore::LegacyInlineElementBox::paint):
(WebCore::LegacyInlineElementBox::nodeAtPoint):
- rendering/LegacyInlineElementBox.h: Renamed from Source/WebCore/rendering/InlineElementBox.h.
(WebCore::LegacyInlineElementBox::LegacyInlineElementBox):
- rendering/LegacyInlineFlowBox.cpp:
(WebCore::LegacyInlineFlowBox::nodeAtPoint):
- rendering/LegacyInlineTextBox.cpp:
(WebCore::LegacyInlineTextBox::selectionState):
- rendering/LegacyLineLayout.cpp:
(WebCore::LegacyLineLayout::computeBlockDirectionPositionsForLine):
- rendering/LegacyRootInlineBox.cpp:
(WebCore::LegacyRootInlineBox::placeEllipsis):
(WebCore::LegacyRootInlineBox::ellipsisBox const):
- rendering/LegacyRootInlineBox.h:
- rendering/RenderBlock.cpp:
- rendering/RenderBlock.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::createInlineBox):
(WebCore::RenderBox::positionLineBox):
- rendering/RenderBox.h:
(WebCore::RenderBox::inlineBoxWrapper const):
(WebCore::RenderBox::setInlineBoxWrapper):
- rendering/RenderFragmentedFlow.cpp:
(WebCore::RenderFragmentedFlow::computedFragmentRangeForBox const):
- rendering/RenderImage.cpp:
- rendering/RenderInline.cpp:
- rendering/RenderLineBoxList.cpp:
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::createInlineBox):
(WebCore::RenderLineBreak::setInlineBoxWrapper):
(WebCore::RenderLineBreak::replaceInlineBoxWrapper):
- rendering/RenderLineBreak.h:
- rendering/RenderListItem.cpp:
- rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::createInlineBox):
- rendering/RenderListMarker.h:
- rendering/RenderReplaced.cpp:
- rendering/RenderText.cpp:
- rendering/RenderTextLineBoxes.cpp: