Bug 268020 - ASSERT when calling storage.get
Summary: ASSERT when calling storage.get
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Extensions (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Kiara Rose
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2024-01-24 11:15 PST by Timothy Hatcher
Modified: 2024-01-24 15:06 PST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Timothy Hatcher 2024-01-24 11:15:41 PST
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
Comment 1 Radar WebKit Bug Importer 2024-01-24 11:15:57 PST
<rdar://problem/121538792>
Comment 2 Timothy Hatcher 2024-01-24 11:16:30 PST
`errorString` is empty / null.
Comment 3 Timothy Hatcher 2024-01-24 11:23:19 PST
Steps:

Navigation to a new tab with the UserScripts extension (granted access to all pages). ASSERTs right away when the tabs starts loading.
Comment 4 Kiara Rose 2024-01-24 14:34:40 PST
Pull request: https://github.com/WebKit/WebKit/pull/23199
Comment 5 EWS 2024-01-24 15:06:33 PST
Committed 273448@main (4522d41c15c5): <https://commits.webkit.org/273448@main>

Reviewed commits have been landed. Closing PR #23199 and removing active labels.