New issue
Advanced search Search tips

Issue 912147 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug



Sign in to add a comment

100% DCHECK Crash when trying to request a download of a potentially dangerous file

Project Member Reported by tienmai@google.com, Dec 5

Issue description

Chrome Version: (72.0.3624.0)
OS: Observed on Windows but most likely all.

What steps will reproduce the problem?
(0). Chrome must be build with gn flag dcheck_always_on = true
(1). Go any site and try to download a file that may be marked dangerous (on my end I was downloading a .zip file that was shared through google drive).
(2) Chrome will warn you that the file is not commonly downloaded and may be dangerous. 
(3) Click on the ^ to try to download the file anyways


What is the expected result?

Chrome crashes 100%

What happens instead?

Chrome brings up the context menu to allow you to download the file anyways.

Code crashes on the following line: 

DCHECK(WantsContextMenu(download_));

I suspect the logic of the function WantsContextMenu is inverted.

The callstack of the crash is:


 	chrome.dll!base::debug::BreakDebugger() Line 27	C++
 	chrome.dll!logging::LogMessage::~LogMessage() Line 876	C++
>	chrome.dll!DownloadShelfContextMenu::GetMenuModel() Line 40	C++
 	chrome.dll!DownloadShelfContextMenuView::Run(views::Widget * parent_widget, const gfx::Rect & rect, ui::MenuSourceType source_type, const base::RepeatingCallback<void ()> & on_menu_closed_callback) Line 27	C++
 	chrome.dll!DownloadItemView::ShowContextMenuImpl(const gfx::Rect & rect, ui::MenuSourceType source_type) Line 802	C++
 	chrome.dll!DownloadItemView::ButtonPressed(views::Button * sender, const ui::Event & event) Line 546	C++
 	chrome.dll!views::Button::OnMouseReleased(const ui::MouseEvent & event) Line 279	C++
 	chrome.dll!ui::ScopedTargetHandler::OnEvent(ui::Event * event) Line 34	C++
 	chrome.dll!ui::EventDispatcher::DispatchEvent(ui::EventHandler * handler, ui::Event * event) Line 194	C++
 	chrome.dll!ui::EventDispatcher::ProcessEvent(ui::EventTarget * target, ui::Event * event) Line 143	C++
 	chrome.dll!ui::EventDispatcherDelegate::DispatchEventToTarget(ui::EventTarget * target, ui::Event * event) Line 87	C++
 	chrome.dll!ui::EventDispatcherDelegate::DispatchEvent(ui::EventTarget * target, ui::Event * event) Line 58	C++
 	chrome.dll!views::internal::RootView::OnMouseReleased(const ui::MouseEvent & event) Line 447	C++
 	chrome.dll!views::Widget::OnMouseEvent(ui::MouseEvent * event) Line 1241	C++
 	chrome.dll!views::DesktopNativeWidgetAura::OnMouseEvent(ui::MouseEvent * event) Line 1104	C++
 	chrome.dll!ui::EventDispatcher::DispatchEvent(ui::EventHandler * handler, ui::Event * event) Line 194	C++
 	chrome.dll!ui::EventDispatcher::ProcessEvent(ui::EventTarget * target, ui::Event * event) Line 143	C++
 	chrome.dll!ui::EventDispatcherDelegate::DispatchEventToTarget(ui::EventTarget * target, ui::Event * event) Line 87	C++
 	chrome.dll!ui::EventDispatcherDelegate::DispatchEvent(ui::EventTarget * target, ui::Event * event) Line 58	C++
 	chrome.dll!ui::EventProcessor::OnEventFromSource(ui::Event * event) Line 57	C++
 	chrome.dll!ui::EventSource::DeliverEventToSink(ui::Event * event) Line 106	C++
 	chrome.dll!ui::EventSource::SendEventToSinkFromRewriter(ui::Event * event, const ui::EventRewriter * rewriter) Line 85	C++
 	chrome.dll!ui::EventSource::SendEventToSink(ui::Event * event) Line 43	C++
 	chrome.dll!views::DesktopWindowTreeHostWin::HandleGestureEvent(ui::GestureEvent * event) Line 904	C++
 	chrome.dll!views::HWNDMessageHandler::HandleMouseEventInternal(unsigned int message, unsigned __int64 w_param, __int64 l_param, bool track_mouse) Line 2907	C++
 	chrome.dll!views::HWNDMessageHandler::_ProcessWindowMessage(HWND__ * hWnd, unsigned int uMsg, unsigned __int64 wParam, __int64 lParam, __int64 & lResult, unsigned long dwMsgMapID) Line 0	C++
 	chrome.dll!views::HWNDMessageHandler::OnWndProc(unsigned int message, unsigned __int64 w_param, __int64 l_param) Line 976	C++
 	chrome.dll!gfx::WindowImpl::WndProc(HWND__ * hwnd, unsigned int message, unsigned __int64 w_param, __int64 l_param) Line 303	C++
 	chrome.dll!base::win::WrappedWindowProc<&gfx::WindowImpl::WndProc>(HWND__ * hwnd, unsigned int message, unsigned __int64 wparam, __int64 lparam) Line 79	C++
 	[External Code]	
 	chrome.dll!base::MessagePumpForUI::ProcessMessageHelper(const tagMSG & msg) Line 380	C++
 	chrome.dll!base::MessagePumpForUI::DoRunLoop() Line 175	C++
 	chrome.dll!base::MessagePumpWin::Run(base::MessagePump::Delegate * delegate) Line 54	C++
 	chrome.dll!base::MessageLoopImpl::Run(bool application_tasks_allowed) Line 328	C++
 	chrome.dll!base::RunLoop::Run() Line 105	C++
 	chrome.dll!ChromeBrowserMainParts::MainMessageLoopRun(int * result_code) Line 1890	C++
 	chrome.dll!content::BrowserMainLoop::RunMainMessageLoopParts() Line 1001	C++
 	chrome.dll!content::BrowserMainRunnerImpl::Run() Line 166	C++
 	chrome.dll!content::BrowserMain(const content::MainFunctionParams & parameters) Line 47	C++
 	chrome.dll!content::RunBrowserProcessMain(const content::MainFunctionParams & main_function_params, content::ContentMainDelegate * delegate) Line 543	C++
 	chrome.dll!content::ContentMainRunnerImpl::RunServiceManager(content::MainFunctionParams & main_params, bool start_service_manager_only) Line 941	C++
 	chrome.dll!content::ContentMainRunnerImpl::Run(bool start_service_manager_only) Line 0	C++
 	chrome.dll!service_manager::Main(const service_manager::MainParams & params) Line 472	C++
 	chrome.dll!content::ContentMain(const content::ContentMainParams & params) Line 19	C++
 	chrome.dll!ChromeMain(HINSTANCE__ * instance, sandbox::SandboxInterfaceInfo * sandbox_info, __int64 exe_entry_point_ticks) Line 0	C++
 	chrome.exe!MainDllLoader::Launch(HINSTANCE__ * instance, base::TimeTicks exe_entry_point_ticks) Line 201	C++
 	chrome.exe!wWinMain(HINSTANCE__ * instance, HINSTANCE__ * prev, wchar_t *, int) Line 229	C++

 

Sign in to add a comment