RESOLVED DUPLICATE of bug 223619 223566
[WinCairo] RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(!WebKit::isInspectorPage(*this)) is failing just by openning Web Inspector since r274735
https://bugs.webkit.org/show_bug.cgi?id=223566
Summary [WinCairo] RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(!WebKit::isInspectorPage(...
Fujii Hironori
Reported 2021-03-21 21:02:09 PDT
[WinCairo] RELEASE_ASSERT_WITH_SECURITY_IMPLICATION(!WebKit::isInspectorPage(*this)) is failing for http/tests/inspector tests http/tests/inspector/network/getSerializedCertificate.html [ Crash ] http/tests/inspector/network/resource-security-certificate.html [ Crash ] http/tests/inspector/page/get-cookies.html [ Crash ] Callstack: > WTF!WTFCrash(void)+0x12 [C:\jenkins_slave\WinCairo-master\Source\WTF\wtf\Assertions.cpp @ 295] > WTF!WTFCrashWithSecurityImplication(void)+0x9 [C:\jenkins_slave\WinCairo-master\Source\WTF\wtf\Assertions.cpp @ 316] > WebKit2!WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle(class WebKit::WebProcessProxy * process = 0x000001b2`9c1454d0, class WTF::URL * url = 0x00000015`70d5d1b0, class WTF::URL * resourceDirectoryURL = 0x000001b2`9c1567b0, class WebKit::SandboxExtension::Handle * sandboxExtensionHandle = 0x00000015`70d5d0b8, bool checkAssumedReadAccessToResourceURL = true)+0x1a7 [C:\jenkins_slave\WinCairo-master\Source\WebKit\UIProcess\WebPageProxy.cpp @ 1253] > WebKit2!WebKit::WebPageProxy::loadRequestWithNavigationShared(class WTF::Ref<WebKit::WebProcessProxy,WTF::RawPtrTraits<WebKit::WebProcessProxy> > * process = 0x00000015`70d5d320, class WTF::ObjectIdentifier<WebCore::PageIdentifierType> webPageID = class WTF::ObjectIdentifier<WebCore::PageIdentifierType>, class API::Navigation * navigation = 0x000001b2`9c15d2a0, class WebCore::ResourceRequest * request = 0x00000015`70d5d670, WebCore::ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy = ShouldAllowExternalSchemesButNotAppLinks (0n1), class API::Object * userData = 0x00000000`00000000, WebCore::ShouldTreatAsContinuingLoad shouldTreatAsContinuingLoad = No (0n0), class WTF::Optional<WebKit::NavigatingToAppBoundDomain> * isNavigatingToAppBoundDomain = 0x00000015`70d5d330, class WTF::Optional<WebKit::WebsitePoliciesData> * websitePolicies = 0x00000015`70d5d338)+0x48d [C:\jenkins_slave\WinCairo-master\Source\WebKit\UIProcess\WebPageProxy.cpp @ 1354] > WebKit2!WebKit::WebPageProxy::loadRequest(class WebCore::ResourceRequest * request = 0x00000015`70d5d670, WebCore::ShouldOpenExternalURLsPolicy shouldOpenExternalURLsPolicy = ShouldAllowExternalSchemesButNotAppLinks (0n1), class API::Object * userData = 0x00000000`00000000)+0x350 [C:\jenkins_slave\WinCairo-master\Source\WebKit\UIProcess\WebPageProxy.cpp @ 1325] > WebKit2!WebKit::WebInspectorProxy::openLocalInspectorFrontend(bool canAttach = true, bool underTest = true)+0x8c3 [C:\jenkins_slave\WinCairo-master\Source\WebKit\UIProcess\Inspector\WebInspectorProxy.cpp @ 492] > WebKit2!IPC::callMemberFunctionImpl<WebKit::WebInspectorProxy,void (class WebKit::WebInspectorProxy * object = 0x000001b2`9c10f5d0, <function> * function = 0x00007ff9`e9eb36e0, class std::tuple<bool,bool> * args = 0x00000015`70d5d959)+0x94 [C:\jenkins_slave\WinCairo-master\Source\WebKit\Platform\IPC\HandleMessage.h @ 44] > WebKit2!IPC::callMemberFunction<WebKit::WebInspectorProxy,void (class std::tuple<bool,bool> * args = 0x00000015`70d5d959, class WebKit::WebInspectorProxy * object = 0x000001b2`9c10f5d0, <function> * function = 0x00007ff9`e9eb36e0)+0x66 [C:\jenkins_slave\WinCairo-master\Source\WebKit\Platform\IPC\HandleMessage.h @ 49] > WebKit2!IPC::handleMessage<Messages::WebInspectorProxy::OpenLocalInspectorFrontend,WebKit::WebInspectorProxy,void (class IPC::Decoder * decoder = 0x000001b2`9c14b2c0, class WebKit::WebInspectorProxy * object = 0x000001b2`9c10f5d0, <function> * function = 0x00007ff9`e9eb36e0)+0xcf [C:\jenkins_slave\WinCairo-master\Source\WebKit\Platform\IPC\HandleMessage.h @ 122] > WebKit2!WebKit::WebInspectorProxy::didReceiveMessage(class IPC::Connection * connection = 0x000001b2`9c14d8c0, class IPC::Decoder * decoder = 0x000001b2`9c14b2c0)+0xad [C:\jenkins_slave\WinCairo-master\WebKitBuild\Debug\WebKit\DerivedSources\WebInspectorProxyMessageReceiver.cpp @ 47] > WebKit2!IPC::MessageReceiverMap::dispatchMessage(class IPC::Connection * connection = 0x000001b2`9c14d8c0, class IPC::Decoder * decoder = 0x000001b2`9c14b2c0)+0x1e5 [C:\jenkins_slave\WinCairo-master\Source\WebKit\Platform\IPC\MessageReceiverMap.cpp @ 130] > WebKit2!WebKit::AuxiliaryProcessProxy::dispatchMessage(class IPC::Connection * connection = 0x000001b2`9c14d8c0, class IPC::Decoder * decoder = 0x000001b2`9c14b2c0)+0x30 [C:\jenkins_slave\WinCairo-master\Source\WebKit\UIProcess\AuxiliaryProcessProxy.cpp @ 221] > WebKit2!WebKit::WebProcessProxy::didReceiveMessage(class IPC::Connection * connection = 0x000001b2`9c14d8c0, class IPC::Decoder * decoder = 0x000001b2`9c14b2c0)+0x3f [C:\jenkins_slave\WinCairo-master\Source\WebKit\UIProcess\WebProcessProxy.cpp @ 819] > WebKit2!IPC::Connection::dispatchMessage(class IPC::Decoder * decoder = 0x000001b2`9c14b2c0)+0x15f [C:\jenkins_slave\WinCairo-master\Source\WebKit\Platform\IPC\Connection.cpp @ 1021] > WebKit2!IPC::Connection::dispatchMessage(class std::unique_ptr<IPC::Decoder,std::default_delete<IPC::Decoder> > * message = 0x00000015`70d5def0 unique_ptr {...})+0x2f9 [C:\jenkins_slave\WinCairo-master\Source\WebKit\Platform\IPC\Connection.cpp @ 1067] > WebKit2!IPC::Connection::dispatchIncomingMessages(void)+0x2c2 [C:\jenkins_slave\WinCairo-master\Source\WebKit\Platform\IPC\Connection.cpp @ 1171] > WebKit2!IPC::Connection::enqueueIncomingMessage::<unnamed-tag>::operator()(void)+0x42 [C:\jenkins_slave\WinCairo-master\Source\WebKit\Platform\IPC\Connection.cpp @ 987] > WebKit2!WTF::Detail::CallableWrapper<`lambda at ..\..\Source\WebKit\Platform\IPC\Connection.cpp:985:30',void>::call(void)+0x1c [C:\jenkins_slave\WinCairo-master\WebKitBuild\Debug\WTF\Headers\wtf\Function.h @ 52] > WTF!WTF::Function<void (void)+0x8e [C:\jenkins_slave\WinCairo-master\Source\WTF\wtf\Function.h @ 83] > WTF!WTF::RunLoop::performWork(void)+0x19b [C:\jenkins_slave\WinCairo-master\Source\WTF\wtf\RunLoop.cpp @ 134] > WTF!WTF::RunLoop::wndProc(struct HWND__ * hWnd = 0x00000000`05aa1508, unsigned int message = 0x401, unsigned int64 wParam = 0x000001b2`9c0e5c20, int64 lParam = 0n0)+0x67 [C:\jenkins_slave\WinCairo-master\Source\WTF\wtf\win\RunLoopWin.cpp @ 57] > WTF!WTF::RunLoop::RunLoopWndProc(struct HWND__ * hWnd = 0x00000000`05aa1508, unsigned int message = 0x401, unsigned int64 wParam = 0x000001b2`9c0e5c20, int64 lParam = 0n0)+0x59 [C:\jenkins_slave\WinCairo-master\Source\WTF\wtf\win\RunLoopWin.cpp @ 39] > USER32!UserCallWinProcCheckWow+0x2f8 > USER32!DispatchMessageWorker+0x249 > WebKitTestRunnerLib!WTR::runRunLoopUntil(bool * condition = 0x000001b2`9c0cab03, void * object = 0x00000000`00000268, double timeout = -1)+0x24e [C:\jenkins_slave\WinCairo-master\Tools\WebKitTestRunner\win\TestControllerWin.cpp @ 86] > WebKitTestRunnerLib!WTR::TestController::platformRunUntil(bool * condition = 0x000001b2`9c0cab03, class WTF::Seconds timeout = class WTF::Seconds)+0x4a [C:\jenkins_slave\WinCairo-master\Tools\WebKitTestRunner\win\TestControllerWin.cpp @ 147] > WebKitTestRunnerLib!WTR::TestController::runUntil(bool * done = 0x000001b2`9c0cab03, class WTF::Seconds timeout = class WTF::Seconds)+0x63 [C:\jenkins_slave\WinCairo-master\Tools\WebKitTestRunner\TestController.cpp @ 1563] > WebKitTestRunnerLib!WTR::TestInvocation::invoke(void)+0x212 [C:\jenkins_slave\WinCairo-master\Tools\WebKitTestRunner\TestInvocation.cpp @ 168] > WebKitTestRunnerLib!WTR::TestController::runTest(char * inputLine = 0x00000015`70d5e950 "http://127.0.0.1:8000/inspector/page/get-cookies.html'--absolutePath'C:\jenkins_slave\WinCairo-master\LayoutTests\http\tests\inspector\page\get-cookies.html'--timeout'30000")+0x25a [C:\jenkins_slave\WinCairo-master\Tools\WebKitTestRunner\TestController.cpp @ 1493] > WebKitTestRunnerLib!WTR::TestController::runTestingServerLoop(void)+0xbe [C:\jenkins_slave\WinCairo-master\Tools\WebKitTestRunner\TestController.cpp @ 1539] > WebKitTestRunnerLib!WTR::TestController::run(void)+0x27 [C:\jenkins_slave\WinCairo-master\Tools\WebKitTestRunner\TestController.cpp @ 1547] > WebKitTestRunnerLib!WTR::TestController::TestController(int argc = 0n2, char ** argv = 0x000001b2`9c0a8560)+0x3c2 [C:\jenkins_slave\WinCairo-master\Tools\WebKitTestRunner\TestController.cpp @ 195] > WebKitTestRunnerLib!dllLauncherEntryPoint(int argc = 0n2, char ** argv = 0x000001b2`9c0a8560)+0x35 [C:\jenkins_slave\WinCairo-master\Tools\WebKitTestRunner\win\main.cpp @ 34] > WebKitTestRunner!main(int argc = 0n2, char ** argv = 0x000001b2`9c0a8560)+0x423 [C:\jenkins_slave\WinCairo-master\Tools\win\DLLLauncher\DLLLauncherMain.cpp @ 222] > WebKitTestRunner!invoke_main+0x22 [d:\agent\_work\63\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 78] > WebKitTestRunner!__scrt_common_main_seh(void)+0x10c [d:\agent\_work\63\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288] > KERNEL32!BaseThreadInitThunk+0x14 > ntdll!RtlUserThreadStart+0x21
Attachments
crash log for http/tests/inspector/page/get-cookies.html (WinCairo WK2 Debug r274750) (85.12 KB, text/plain)
2021-03-21 21:04 PDT, Fujii Hironori
no flags
WIP patch (7.37 KB, patch)
2021-03-22 00:43 PDT, Fujii Hironori
no flags
Fujii Hironori
Comment 1 2021-03-21 21:04:12 PDT
Created attachment 423849 [details] crash log for http/tests/inspector/page/get-cookies.html (WinCairo WK2 Debug r274750)
Fujii Hironori
Comment 2 2021-03-21 21:24:06 PDT
This crash is very easy to reproduce just by opening Web Inspector of WinCairo WK2 MiniBrowser.
Fujii Hironori
Comment 3 2021-03-21 23:48:08 PDT
See also: Bug 179904 – [Cocoa] Web Inspector: load inspector resources using a custom scheme handler
Fujii Hironori
Comment 4 2021-03-22 00:43:50 PDT
Created attachment 423861 [details] WIP patch
Don Olmstead
Comment 5 2021-03-22 08:55:07 PDT
Comment on attachment 423861 [details] WIP patch View in context: https://bugs.webkit.org/attachment.cgi?id=423861&action=review > Source/WebKit/UIProcess/Inspector/win/InspectorResourceURLSchemeHandler.cpp:39 > + auto path = URL(adoptCF(CFBundleCopyBundleURL(WebCore::webKitBundle())).get()).fileSystemPath(); Don't forget to add a USE(CF) check around this. Honestly if we can get the not USE(CF) path here that'd be about it for removing CFLite from WinCairo.
Fujii Hironori
Comment 6 2021-03-23 17:19:05 PDT
Fixed by Bug 223619. *** This bug has been marked as a duplicate of bug 223619 ***
Note You need to log in before you can comment on or make changes to this bug.