Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: DCHECK entering fullscreen while loading url #35111

Merged
merged 2 commits into from Aug 1, 2022
Merged

Conversation

codebytere
Copy link
Member

Description of Change

Fixes a DCHECK introduced by #32905. This was happening because I adapted WebContents::IsFullscreenForTabOrPending to also return true if the window was in a fullscreen transition state, but this only applies in the context of the problem is the window is entering fullscreen from html. e.g. with document.enterFullscreen(). This change makes it so that html fullscreen and native fullscreen both receive appropriate values.

Stacktrace
88442:0728/112318.332158:FATAL:web_contents_impl.cc(5858)] Check failed: !IsFullscreen(). 
0   Electron Framework                  0x000000012a8a7ec2 base::debug::CollectStackTrace(void**, unsigned long) + 18
1   Electron Framework                  0x000000012a7c5223 base::debug::StackTrace::StackTrace() + 19
2   Electron Framework                  0x000000012a7deda7 logging::LogMessage::~LogMessage() + 183
3   Electron Framework                  0x000000012a7dfc3e logging::LogMessage::~LogMessage() + 14
4   Electron Framework                  0x0000000129b41aad content::WebContentsImpl::DidNavigateMainFramePreCommit(content::FrameTreeNode*, bool) + 237
5   Electron Framework                  0x000000012990de69 content::Navigator::DidNavigate(content::RenderFrameHostImpl*, content::mojom::DidCommitProvisionalLoadParams const&, std::Cr::unique_ptr<content::NavigationRequest, std::Cr::default_delete<content::NavigationRequest>>, bool) + 841
6   Electron Framework                  0x0000000129930f52 content::RenderFrameHostImpl::DidCommitNavigationInternal(std::Cr::unique_ptr<content::NavigationRequest, std::Cr::default_delete<content::NavigationRequest>>, mojo::StructPtr<content::mojom::DidCommitProvisionalLoadParams>, mojo::InlinedStructPtr<content::mojom::DidCommitSameDocumentNavigationParams>) + 5602
7   Electron Framework                  0x000000012992f34f content::RenderFrameHostImpl::DidCommitNavigation(content::NavigationRequest*, mojo::StructPtr<content::mojom::DidCommitProvisionalLoadParams>, mojo::StructPtr<content::mojom::DidCommitProvisionalLoadInterfaceParams>) + 1023
8   Electron Framework                  0x000000012996d002 base::internal::Invoker<base::internal::BindState<void (content::RenderFrameHostImpl::*)(content::NavigationRequest*, mojo::StructPtr<content::mojom::DidCommitProvisionalLoadParams>, mojo::StructPtr<content::mojom::DidCommitProvisionalLoadInterfaceParams>), base::internal::UnretainedWrapper<content::RenderFrameHostImpl>, base::internal::UnretainedWrapper<content::NavigationRequest>>, void (mojo::StructPtr<content::mojom::DidCommitProvisionalLoadParams>, mojo::StructPtr<content::mojom::DidCommitProvisionalLoadInterfaceParams>)>::RunOnce(base::internal::BindStateBase*, mojo::StructPtr<content::mojom::DidCommitProvisionalLoadParams>&&, mojo::StructPtr<content::mojom::DidCommitProvisionalLoadInterfaceParams>&&) + 82
9   Electron Framework                  0x00000001274b7415 content::mojom::NavigationClient_CommitNavigation_ForwardToCallback::Accept(mojo::Message*) + 293
10  Electron Framework                  0x000000012abdda22 mojo::InterfaceEndpointClient::HandleValidatedMessage(mojo::Message*) + 1554
11  Electron Framework                  0x000000012abe3d99 mojo::MessageDispatcher::Accept(mojo::Message*) + 265
12  Electron Framework                  0x000000012abdf55a mojo::InterfaceEndpointClient::HandleIncomingMessage(mojo::Message*) + 154
13  Electron Framework                  0x000000012b02aec1 IPC::(anonymous namespace)::ChannelAssociatedGroupController::AcceptOnEndpointThread(mojo::Message) + 721
14  Electron Framework                  0x000000012b0281cc base::internal::Invoker<base::internal::BindState<void (IPC::(anonymous namespace)::ChannelAssociatedGroupController::*)(mojo::Message), scoped_refptr<IPC::(anonymous namespace)::ChannelAssociatedGroupController>, mojo::Message>, void ()>::RunOnce(base::internal::BindStateBase*) + 140
15  Electron Framework                  0x000000012a83b7a9 base::TaskAnnotator::RunTaskImpl(base::PendingTask&) + 313
16  Electron Framework                  0x000000012a864505 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl(base::sequence_manager::LazyNow*) + 1669
17  Electron Framework                  0x000000012a86399b base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() + 123
18  Electron Framework                  0x000000012a864cf5 non-virtual thunk to base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork() + 21
19  Electron Framework                  0x000000012a8bd93b base::MessagePumpCFRunLoopBase::RunWork() + 91
20  Electron Framework                  0x000000012a8bc8b2 base::mac::CallWithEHFrame(void () block_pointer) + 10
21  Electron Framework                  0x000000012a8bce7f base::MessagePumpCFRunLoopBase::RunWorkSource(void*) + 63
22  CoreFoundation                      0x00007ff80289619b __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
23  CoreFoundation                      0x00007ff802896103 __CFRunLoopDoSource0 + 180
24  CoreFoundation                      0x00007ff802895e7d __CFRunLoopDoSources0 + 242
25  CoreFoundation                      0x00007ff802894898 __CFRunLoopRun + 892
26  CoreFoundation                      0x00007ff802893e5c CFRunLoopRunSpecific + 562
27  HIToolbox                           0x00007ff80b53b5e6 RunCurrentEventLoopInMode + 292
28  HIToolbox                           0x00007ff80b53b34a ReceiveNextEventCommon + 594
29  HIToolbox                           0x00007ff80b53b0e5 _BlockUntilNextEventMatchingListInModeWithFilter + 70
30  AppKit                              0x00007ff8052d31fd _DPSNextEvent + 927
31  AppKit                              0x00007ff8052d18ba -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1394
32  AppKit                              0x00007ff8052c3f69 -[NSApplication run] + 586
33  Electron Framework                  0x000000012a8be36c base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*) + 348
34  Electron Framework                  0x000000012a8bc964 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 164
35  Electron Framework                  0x000000012a865287 base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run(bool, base::TimeDelta) + 679
36  Electron Framework                  0x000000012a813fb6 base::RunLoop::Run(base::Location const&) + 726
37  Electron Framework                  0x00000001293da6b3 content::BrowserMainLoop::RunMainMessageLoop() + 243
38  Electron Framework                  0x00000001293dc5f2 content::BrowserMainRunnerImpl::Run() + 82
39  Electron Framework                  0x00000001293d79ce content::BrowserMain(content::MainFunctionParams) + 270
40  Electron Framework                  0x0000000126055852 content::RunBrowserProcessMain(content::MainFunctionParams, content::ContentMainDelegate*) + 258
41  Electron Framework                  0x0000000126056f47 content::ContentMainRunnerImpl::RunBrowser(content::MainFunctionParams, bool) + 1383
42  Electron Framework                  0x0000000126056955 content::ContentMainRunnerImpl::Run() + 1125
43  Electron Framework                  0x0000000126055177 content::RunContentProcess(content::ContentMainParams, content::ContentMainRunner*) + 2679
44  Electron Framework                  0x0000000126055292 content::ContentMain(content::ContentMainParams) + 98
45  Electron Framework                  0x0000000125c0e7fd ElectronMain + 157
46  dyld                                0x000000010ff7851e start + 462
Task trace:
0   Electron Framework                  0x000000012b027290 IPC::(anonymous namespace)::ChannelAssociatedGroupController::Accept(mojo::Message*) + 784
1   Electron Framework                  0x000000012ac078de mojo::SimpleWatcher::Context::Notify(unsigned int, MojoHandleSignalsState, unsigned int) + 430
Crash keys:
  "amfi-status" = "rv=0 status=0x0 allow_everything=0"
  "ui_scheduler_async_stack" = "0x12B027290 0x12AC078DE"
  "io_scheduler_async_stack" = "0x129D6E721 0x129D6DC96"
  "platform" = "darwin"
  "process_type" = "browser"

Electron exited with signal SIGTRAP.

Checklist

Release Notes

Notes: none.

@codebytere codebytere added semver/patch backwards-compatible bug fixes target/19-x-y labels Jul 28, 2022
@electron-cation electron-cation bot added the new-pr 🌱 PR opened in the last 24 hours label Jul 28, 2022
Copy link
Contributor

@jkleinsc jkleinsc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It appears that this change is causing test failures

@codebytere codebytere requested a review from jkleinsc July 28, 2022 17:33
@electron-cation electron-cation bot removed the new-pr 🌱 PR opened in the last 24 hours label Jul 29, 2022
@jkleinsc jkleinsc merged commit 7588bb7 into main Aug 1, 2022
@jkleinsc jkleinsc deleted the fix-dcheck-fullscreen branch August 1, 2022 20:53
@release-clerk
Copy link

release-clerk bot commented Aug 1, 2022

No Release Notes

@trop
Copy link
Contributor

trop bot commented Aug 1, 2022

I have automatically backported this PR to "19-x-y", please check out #35164

@trop
Copy link
Contributor

trop bot commented Aug 1, 2022

I have automatically backported this PR to "20-x-y", please check out #35165

schetle pushed a commit to schetle/electron that referenced this pull request Nov 3, 2022
* fix: DCHECK entering fullscreen while loading url

* spec: fixup test
khalwa pushed a commit to solarwindscloud/electron that referenced this pull request Feb 22, 2023
* fix: DCHECK entering fullscreen while loading url

* spec: fixup test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
semver/patch backwards-compatible bug fixes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants