chromiumembedded / cef

Chromium Embedded Framework (CEF). A simple framework for embedding Chromium-based browsers in other applications.
https://bitbucket.org/chromiumembedded/cef/
Other
3.31k stars 463 forks source link

windows: DCHECK(site_for_cookies_ok) failure when loading amazon.co.jp with cache (M114) #3504

Closed naoki-tk closed 1 year ago

naoki-tk commented 1 year ago

cefclient cannot open amazon.co.jp.

Steps to reproduce the behavior:

  1. Start cefclient. cefclient.exe --cache-path=C:\Users\username\AppData\Local\Temp\cefclient
  2. Open amazon.co.jp. cefclient displays fine.
  3. Exit cefclient.
  4. Start cefclient in the same way.
  5. Open amazon.co.jp. cefclient does not display amazon.co.jp.

Versions :

This phenomenon occurs in debug build. Release build display fine. This occurs in CEF114 and not in CEF113.

If no cache path is specified, there is no problem. If the cache data is deleted, it will be displayed, but not for the second time onwards. The same phenomenon did not occur on amazon.com. No problem with Google Chrome Beta (114).

debug.log

[0512/140942.353:WARNING:chrome_browser_cloud_management_controller.cc(87)] Could not create policy manager as CBCM is not enabled. [0512/140942.793:INFO:CONSOLE(0)] "Error with Permissions-Policy header: Origin trial controlled feature not enabled: 'unload'.", source: (0) [0512/140956.877:WARNING:backend_impl.cc(1816)] Destroying invalid entry. [0512/140956.907:FATAL:restricted_cookie_manager.cc(878)] Check failed: site_for_cookies_ok. site_for_cookies from renderer='SiteForCookies: {site=null; schemefully_same=false}' from browser='SiteForCookies: {site=https://amazon.co.jp; schemefully_same=true}'; [0512/140958.677:ERROR:network_service_instance_impl.cc(558)] Network service crashed, restarting service.

magreenblatt commented 1 year ago

The failing DCHECK is here in Chromium.

magreenblatt commented 1 year ago

I'm able to reproduce this issue with M114 and M115. It appears to be an issue on the 3rd+ load, e.g. run the following command 3 times:

cefclient.exe --url=https://amazon.co.jp --cache-path=C:\Users\username\AppData\Local\Temp\cefclient

It crashes with both Alloy and Chrome runtime. Adding --disable-request-handling-for-testing does not fix the issue.

The stack trace from debug.log is:

[0601/142155.059:FATAL:restricted_cookie_manager.cc(878)] Check failed: site_for_cookies_ok. site_for_cookies from renderer='SiteForCookies: {site=null; schemefully_same=false}' from browser='SiteForCookies: {site=https://amazon.co.jp; schemefully_same=true}';
Backtrace:
    base::debug::CollectStackTrace [0x57F6DF01+49] (C:\code\chromium_git\chromium\src\base\debug\stack_trace_win.cc:329)
    base::debug::StackTrace::StackTrace [0x57F3273A+74] (C:\code\chromium_git\chromium\src\base\debug\stack_trace.cc:221)
    base::debug::StackTrace::StackTrace [0x57F326D2+34] (C:\code\chromium_git\chromium\src\base\debug\stack_trace.cc:218)
    logging::LogMessage::~LogMessage [0x57C6482E+190] (C:\code\chromium_git\chromium\src\base\logging.cc:729)
    logging::`anonymous namespace'::DCheckLogMessage::~DCheckLogMessage [0x57C0F1F3+67] (C:\code\chromium_git\chromium\src\base\check.cc:89)
    logging::`anonymous namespace'::DCheckLogMessage::~DCheckLogMessage [0x57C0F180+32] (C:\code\chromium_git\chromium\src\base\check.cc:85)
    logging::CheckError::~CheckError [0x57C0ED87+71] (C:\code\chromium_git\chromium\src\base\check.cc:266)
    network::RestrictedCookieManager::ValidateAccessToCookiesAt [0x263BCD6A+442] (C:\code\chromium_git\chromium\src\services\network\restricted_cookie_manager.cc:882)
    network::RestrictedCookieManager::GetAllForUrl [0x263BC998+168] (C:\code\chromium_git\chromium\src\services\network\restricted_cookie_manager.cc:433)
    network::mojom::RestrictedCookieManagerStubDispatch::AcceptWithResponder [0x269586D5+1237] (C:\code\chromium_git\chromium\src\out\Debug_GN_x86\gen\services\network\public\mojom\restricted_cookie_manager.mojom.cc:2143)
    network::mojom::RestrictedCookieManagerStub<mojo::RawPtrImplRefTraits<network::mojom::RestrictedCookieManager> >::AcceptWithResponder [0x263CB679+137] (C:\code\chromium_git\chromium\src\out\Debug_GN_x86\gen\services\network\public\mojom\restricted_cookie_manager.mojom.h:220)
    mojo::InterfaceEndpointClient::HandleValidatedMessage [0x56858E18+1096] (C:\code\chromium_git\chromium\src\mojo\public\cpp\bindings\lib\interface_endpoint_client.cc:970)
    mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept [0x568589B4+36] (C:\code\chromium_git\chromium\src\mojo\public\cpp\bindings\lib\interface_endpoint_client.cc:363)
    mojo::MessageDispatcher::Accept [0x56872725+309] (C:\code\chromium_git\chromium\src\mojo\public\cpp\bindings\lib\message_dispatcher.cc:43)
    mojo::InterfaceEndpointClient::HandleIncomingMessage [0x5685BF35+261] (C:\code\chromium_git\chromium\src\mojo\public\cpp\bindings\lib\interface_endpoint_client.cc:701)
    mojo::internal::MultiplexRouter::ProcessIncomingMessage [0x56877C5A+1786] (C:\code\chromium_git\chromium\src\mojo\public\cpp\bindings\lib\multiplex_router.cc:1095)
    mojo::internal::MultiplexRouter::Accept [0x56877040+688] (C:\code\chromium_git\chromium\src\mojo\public\cpp\bindings\lib\multiplex_router.cc:708)
    mojo::MessageDispatcher::Accept [0x56872725+309] (C:\code\chromium_git\chromium\src\mojo\public\cpp\bindings\lib\message_dispatcher.cc:43)
    mojo::Connector::DispatchMessageW [0x56841A84+1220] (C:\code\chromium_git\chromium\src\mojo\public\cpp\bindings\lib\connector.cc:549)
    mojo::Connector::ReadAllAvailableMessages [0x568428F6+246] (C:\code\chromium_git\chromium\src\mojo\public\cpp\bindings\lib\connector.cc:607)
    mojo::Connector::OnHandleReadyInternal [0x5684262A+170] (C:\code\chromium_git\chromium\src\mojo\public\cpp\bindings\lib\connector.cc:442)
    mojo::Connector::OnWatcherHandleReady [0x5684256A+26] (C:\code\chromium_git\chromium\src\mojo\public\cpp\bindings\lib\connector.cc:412)
    base::internal::FunctorTraits<void (mojo::Connector::*)(unsigned int) __attribute__((thiscall)),void>::Invoke<void (mojo::Connector::*)(unsigned int) __attribute__((thiscall)),mojo::Connector *,unsigned int> [0x56849A76+38] (C:\code\chromium_git\chromium\src\base\functional\bind_internal.h:746)
    base::internal::InvokeHelper<0,void,0>::MakeItSo<void (mojo::Connector::*const &)(unsigned int) __attribute__((thiscall)),const std::__Cr::tuple<base::internal::UnretainedWrapper<mojo::Connector,base::unretained_traits::MayNotDangle,0> > &,unsigned int> [0x56849A3A+90] (C:\code\chromium_git\chromium\src\base\functional\bind_internal.h:925)
    base::internal::Invoker<base::internal::BindState<void (mojo::Connector::*)(unsigned int) __attribute__((thiscall)),base::internal::UnretainedWrapper<mojo::Connector,base::unretained_traits::MayNotDangle,0> >,void (unsigned int)>::RunImpl<void (mojo::Conn [0x568499D8+40] (C:\code\chromium_git\chromium\src\base\functional\bind_internal.h:1025)
    base::internal::Invoker<base::internal::BindState<void (mojo::Connector::*)(unsigned int) __attribute__((thiscall)),base::internal::UnretainedWrapper<mojo::Connector,base::unretained_traits::MayNotDangle,0> >,void (unsigned int)>::Run [0x568498ED+77] (C:\code\chromium_git\chromium\src\base\functional\bind_internal.h:989)
    base::RepeatingCallback<void (unsigned int)>::Run [0x56844DAF+111] (C:\code\chromium_git\chromium\src\base\functional\callback.h:334)
    mojo::SimpleWatcher::DiscardReadyState [0x5684479B+27] (C:\code\chromium_git\chromium\src\mojo\public\cpp\system\simple_watcher.h:193)
    base::internal::FunctorTraits<void (*)(const base::RepeatingCallback<void (unsigned int)> &, unsigned int, const mojo::HandleSignalsState &),void>::Invoke<void (*const &)(const base::RepeatingCallback<void (unsigned int)> &, unsigned int, const mojo::Hand [0x568449F0+48] (C:\code\chromium_git\chromium\src\base\functional\bind_internal.h:636)
    base::internal::InvokeHelper<0,void,0>::MakeItSo<void (*const &)(const base::RepeatingCallback<void (unsigned int)> &, unsigned int, const mojo::HandleSignalsState &),const std::__Cr::tuple<base::RepeatingCallback<void (unsigned int)> > &,unsigned int,con [0x568449B1+81] (C:\code\chromium_git\chromium\src\base\functional\bind_internal.h:925)
    base::internal::Invoker<base::internal::BindState<void (*)(const base::RepeatingCallback<void (unsigned int)> &, unsigned int, const mojo::HandleSignalsState &),base::RepeatingCallback<void (unsigned int)> >,void (unsigned int, const mojo::HandleSignalsSt [0x56844953+51] (C:\code\chromium_git\chromium\src\base\functional\bind_internal.h:1025)
    base::internal::Invoker<base::internal::BindState<void (*)(const base::RepeatingCallback<void (unsigned int)> &, unsigned int, const mojo::HandleSignalsState &),base::RepeatingCallback<void (unsigned int)> >,void (unsigned int, const mojo::HandleSignalsSt [0x56844858+88] (C:\code\chromium_git\chromium\src\base\functional\bind_internal.h:989)
    base::RepeatingCallback<void (unsigned int, const mojo::HandleSignalsState &)>::Run [0x567BBE00+128] (C:\code\chromium_git\chromium\src\base\functional\callback.h:334)
    mojo::SimpleWatcher::OnHandleReady [0x567BBAC7+327] (C:\code\chromium_git\chromium\src\mojo\public\cpp\system\simple_watcher.cc:278)
    mojo::SimpleWatcher::Context::Notify [0x567BBF8B+219] (C:\code\chromium_git\chromium\src\mojo\public\cpp\system\simple_watcher.cc:96)
    mojo::SimpleWatcher::Context::CallNotify [0x567BA71E+94] (C:\code\chromium_git\chromium\src\mojo\public\cpp\system\simple_watcher.cc:61)
    mojo::core::ipcz_driver::MojoTrap::DispatchEvent [0x2CD14861+225] (C:\code\chromium_git\chromium\src\mojo\core\ipcz_driver\mojo_trap.cc:575)
    mojo::core::ipcz_driver::MojoTrap::DispatchOrQueueEvent [0x2CD12ED1+449] (C:\code\chromium_git\chromium\src\mojo\core\ipcz_driver\mojo_trap.cc:547)
    mojo::core::ipcz_driver::MojoTrap::HandleEvent [0x2CD1409E+590] (C:\code\chromium_git\chromium\src\mojo\core\ipcz_driver\mojo_trap.cc:436)
    mojo::core::ipcz_driver::MojoTrap::TrapEventHandler [0x2CD13D89+41] (C:\code\chromium_git\chromium\src\mojo\core\ipcz_driver\mojo_trap.cc:388)
    ipcz::TrapEventDispatcher::DispatchAll [0x2CE3A63E+206] (C:\code\chromium_git\chromium\src\third_party\ipcz\src\ipcz\trap_event_dispatcher.cc:23)
    ipcz::TrapEventDispatcher::~TrapEventDispatcher [0x2CE3A554+20] (C:\code\chromium_git\chromium\src\third_party\ipcz\src\ipcz\trap_event_dispatcher.cc:12)
    ipcz::Router::AcceptInboundParcel [0x2CE22F6A+538] (C:\code\chromium_git\chromium\src\third_party\ipcz\src\ipcz\router.cc:264)
    ipcz::NodeLink::AcceptCompleteParcel [0x2CDDE72F+2575] (C:\code\chromium_git\chromium\src\third_party\ipcz\src\ipcz\node_link.cc:1035)
    ipcz::NodeLink::OnAcceptParcel [0x2CDDD246+2150] (C:\code\chromium_git\chromium\src\third_party\ipcz\src\ipcz\node_link.cc:629)
    ipcz::msg::NodeMessageListener::DispatchMessage [0x2CE05FB3+419] (C:\code\chromium_git\chromium\src\third_party\ipcz\src\ipcz\node_messages_generator.h:298)
    ipcz::msg::NodeMessageListener::OnMessage [0x2CE04B0A+26] (C:\code\chromium_git\chromium\src\third_party\ipcz\src\ipcz\node_messages_generator.h:10)
    ipcz::msg::NodeMessageListener::OnTransportMessage [0x2CE0545B+2363] (C:\code\chromium_git\chromium\src\third_party\ipcz\src\ipcz\node_messages_generator.h:298)
    ipcz::DriverTransport::Notify [0x2CDA7D28+120] (C:\code\chromium_git\chromium\src\third_party\ipcz\src\ipcz\driver_transport.cc:126)
    ipcz::`anonymous namespace'::NotifyTransport [0x2CDA7969+265] (C:\code\chromium_git\chromium\src\third_party\ipcz\src\ipcz\driver_transport.cc:46)
    mojo::core::ipcz_driver::Transport::OnChannelMessage [0x2CD24C59+345] (C:\code\chromium_git\chromium\src\mojo\core\ipcz_driver\transport.cc:658)
    mojo::core::Channel::TryDispatchMessage [0x2CCC4C1C+892] (C:\code\chromium_git\chromium\src\mojo\core\channel.cc:996)
    mojo::core::Channel::OnReadComplete [0x2CCC4669+409] (C:\code\chromium_git\chromium\src\mojo\core\channel.cc:941)
    mojo::core::`anonymous namespace'::ChannelWin::OnReadDone [0x2CD8A813+195] (C:\code\chromium_git\chromium\src\mojo\core\channel_win.cc:248)
    mojo::core::`anonymous namespace'::ChannelWin::OnIOCompleted [0x2CD88C15+197] (C:\code\chromium_git\chromium\src\mojo\core\channel_win.cc:234)
    base::MessagePumpForIO::WaitForIOCompletion [0x57F8A279+361] (C:\code\chromium_git\chromium\src\base\message_loop\message_pump_win.cc:786)
    base::MessagePumpForIO::DoRunLoop [0x57F8A00A+186] (C:\code\chromium_git\chromium\src\base\message_loop\message_pump_win.cc:729)
    base::MessagePumpWin::Run [0x57F86603+163] (C:\code\chromium_git\chromium\src\base\message_loop\message_pump_win.cc:79)
    base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run [0x57E54149+809] (C:\code\chromium_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc:651)
    base::RunLoop::Run [0x57D5B608+808] (C:\code\chromium_git\chromium\src\base\run_loop.cc:134)
    base::Thread::Run [0x57EDE491+337] (C:\code\chromium_git\chromium\src\base\threading\thread.cc:342)
    content::`anonymous namespace'::ChildIOThread::Run [0x0F513D50+128] (C:\code\chromium_git\chromium\src\content\child\child_process.cc:55)
    base::Thread::ThreadMain [0x57EDEA34+1364] (C:\code\chromium_git\chromium\src\base\threading\thread.cc:414)
    base::`anonymous namespace'::ThreadFunc [0x57FBCD5F+335] (C:\code\chromium_git\chromium\src\base\threading\platform_thread_win.cc:135)
    BaseThreadInitThunk [0x75FD00C9+25]
    RtlGetAppContainerNamedObjectPath [0x77E87B4E+286]
    RtlGetAppContainerNamedObjectPath [0x77E87B1E+238]
Crash keys:
  "service-name" = "network.mojom.NetworkService"
  "switch-6" = "--field-trial-handle=1676,i,9630346067143683022,8124671299885253"
  "switch-5" = "--user-data-dir=C:\Users\Marshall\AppData\Local\CEF\User Data"
  "switch-4" = "--lang=en-US"
  "switch-3" = "--service-sandbox-type=none"
  "switch-2" = "--lang=en-US"
  "switch-1" = "--utility-sub-type=network.mojom.NetworkService"
  "num-switches" = "11"

[0601/142212.452:ERROR:network_service_instance_impl.cc(581)] Network service crashed, restarting service.
magreenblatt commented 1 year ago

Looks like the Chromium bug at https://bugs.chromium.org/p/chromium/issues/detail?id=1448286. It will need to be fixed in Chromium first.