Asser in Storage API: String errorString; if (!extensionCanAccessWebPage(webPageProxyIdentifier, errorString)) { completionHandler(std::nullopt, toErrorString(callingAPIName, nil, errorString)); return; } #0 0x00000001134a3ee8 in ::WTFCrash() at /Volumes/Timothy/Work/Safari/OpenSource/Source/WTF/wtf/Assertions.cpp:333 #1 0x00000001376ceed4 in WTFCrashWithInfo(int, char const*, char const*, int) at /Volumes/Timothy/Work/Safari/OpenSource/WebKitBuild/Debug/usr/local/include/wtf/Assertions.h:778 #2 0x000000013a70f908 in WebKit::toErrorString(NSString*, NSString*, NSString*, ...) at /Volumes/Timothy/Work/Safari/OpenSource/Source/WebKit/Shared/Extensions/WebExtensionUtilities.mm:329 #3 0x000000013a54afc4 in WebKit::WebExtensionContext::storageGet(WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&) at /Volumes/Timothy/Work/Safari/OpenSource/Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIStorageCocoa.mm:48 #4 0x000000013a6376c8 in auto void IPC::callMemberFunction<WebKit::WebExtensionContext, WebKit::WebExtensionContext, void (WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>, void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>(WebKit::WebExtensionContext*, void (WebKit::WebExtensionContext::*)(WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>&&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&)::'lambda'(auto&&...)::operator()<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>(auto&&...) const at /Volumes/Timothy/Work/Safari/OpenSource/Source/WebKit/Platform/IPC/HandleMessage.h:147 #5 0x000000013a63755c in decltype(std::declval<WebKit::WebExtensionContext>()(std::declval<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>>(), std::declval<WebKit::WebExtensionStorageType>(), std::declval<std::__1::span<unsigned char const, 18446744073709551615ul>>())) std::__1::__invoke[abi:sn170006]<void IPC::callMemberFunction<WebKit::WebExtensionContext, WebKit::WebExtensionContext, void (WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>, void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>(WebKit::WebExtensionContext*, void (WebKit::WebExtensionContext::*)(WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>&&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&)::'lambda'(auto&&...), WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>(WebKit::WebExtensionContext&&, WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>&&, WebKit::WebExtensionStorageType&&, std::__1::span<unsigned char const, 18446744073709551615ul>&&) at /Volumes/Timothy/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.Internal.sdk/usr/include/c++/v1/__type_traits/invoke.h:340 #6 0x000000013a63751c in decltype(auto) std::__1::__apply_tuple_impl[abi:sn170006]<void IPC::callMemberFunction<WebKit::WebExtensionContext, WebKit::WebExtensionContext, void (WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>, void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>(WebKit::WebExtensionContext*, void (WebKit::WebExtensionContext::*)(WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>&&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&)::'lambda'(auto&&...), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>, 0ul, 1ul, 2ul>(WebKit::WebExtensionContext&&, WebKit::WebExtensionContext&&, std::__1::__tuple_indices<0ul, 1ul, 2ul>) at /Volumes/Timothy/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.Internal.sdk/usr/include/c++/v1/tuple:1825 #7 0x000000013a6374bc in decltype(auto) std::__1::apply[abi:sn170006]<void IPC::callMemberFunction<WebKit::WebExtensionContext, WebKit::WebExtensionContext, void (WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>, void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>(WebKit::WebExtensionContext*, void (WebKit::WebExtensionContext::*)(WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>&&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&)::'lambda'(auto&&...), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>>(WebKit::WebExtensionContext&&, WebKit::WebExtensionContext&&) at /Volumes/Timothy/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX14.4.Internal.sdk/usr/include/c++/v1/tuple:1834 #8 0x000000013a6356e4 in void IPC::callMemberFunction<WebKit::WebExtensionContext, WebKit::WebExtensionContext, void (WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>, void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>(WebKit::WebExtensionContext*, void (WebKit::WebExtensionContext::*)(WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&), std::__1::tuple<WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul>>&&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&) at /Volumes/Timothy/Work/Safari/OpenSource/Source/WebKit/Platform/IPC/HandleMessage.h:145 #9 0x000000013a5dc50c in void IPC::handleMessageAsync<Messages::WebExtensionContext::StorageGet, WebKit::WebExtensionContext, WebKit::WebExtensionContext, void (WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&)>(IPC::Connection&, IPC::Decoder&, WebKit::WebExtensionContext*, void (WebKit::WebExtensionContext::*)(WTF::ObjectIdentifierGeneric<WebKit::WebPageProxyIdentifierType, WTF::ObjectIdentifierMainThreadAccessTraits>, WebKit::WebExtensionStorageType, std::__1::span<unsigned char const, 18446744073709551615ul> const&, WTF::CompletionHandler<void (std::__1::optional<std::__1::span<unsigned char const, 18446744073709551615ul>>, std::__1::optional<WTF::String>)>&&)) at /Volumes/Timothy/Work/Safari/OpenSource/Source/WebKit/Platform/IPC/HandleMessage.h:337 #10 0x000000013a5d6094 in WebKit::WebExtensionContext::didReceiveMessage(IPC::Connection&, IPC::Decoder&) at /Volumes/Timothy/Work/Safari/OpenSource/WebKitBuild/Debug/DerivedSources/WebKit/WebExtensionContextMessageReceiver.cpp:197 #11 0x000000013ada9dc4 in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) at /Volumes/Timothy/Work/Safari/OpenSource/Source/WebKit/Platform/IPC/MessageReceiverMap.cpp:129
<rdar://problem/121538792>
`errorString` is empty / null.
Steps: Navigation to a new tab with the UserScripts extension (granted access to all pages). ASSERTs right away when the tabs starts loading.
Pull request: https://github.com/WebKit/WebKit/pull/23199
Committed 273448@main (4522d41c15c5): <https://commits.webkit.org/273448@main> Reviewed commits have been landed. Closing PR #23199 and removing active labels.