Commit ffa30b87 authored by Ramin Halavati's avatar Ramin Halavati Committed by Chromium LUCI CQ

Update DevToolsWindow to handle when Browser cannot be created.

DevToolsWindow::CreateDevToolsBrowser() assumes that a browser object
can be created in all conditions which is not true and can result in a
crash.
This is fixed by checking for possibility of Browser creation and
ignoring passed actions if Browser does not exist.

Bug: 1162796
Change-Id: Ibb7cd93b5fa73d00b1223597896e37908e55ad84
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2609133Reviewed-by: default avatarAndrey Kosyakov <caseq@chromium.org>
Commit-Queue: Ramin Halavati <rhalavati@chromium.org>
Cr-Commit-Position: refs/heads/master@{#840561}
parent 43973f65
......@@ -887,6 +887,10 @@ void DevToolsWindow::Show(const DevToolsToggleAction& action) {
if (!browser_)
CreateDevToolsBrowser();
// Ignore action if browser does not exist and could not be created.
if (!browser_)
return;
RegisterModalDialogManager(browser_);
if (should_show_window) {
......@@ -1607,6 +1611,10 @@ void DevToolsWindow::CreateDevToolsBrowser() {
wp_prefs->SetKey(kDevToolsApp, std::move(dev_tools_defaults));
}
if (Browser::GetBrowserCreationStatusForProfile(profile_) !=
Browser::BrowserCreationStatus::kOk) {
return;
}
browser_ =
Browser::Create(Browser::CreateParams::CreateForDevTools(profile_));
browser_->tab_strip_model()->AddWebContents(
......
......@@ -397,8 +397,8 @@ class DevToolsWindow : public DevToolsUIBindings::Delegate,
void ColorPickedInEyeDropper(int r, int g, int b, int a);
// This method create a new Browser object, and passes ownership of
// owned_main_web_contents_ to the tab strip of the Browser.
// This method creates a new Browser object (if possible), and passes
// ownership of owned_main_web_contents_ to the tab strip of the Browser.
void CreateDevToolsBrowser();
BrowserWindow* GetInspectedBrowserWindow();
void ScheduleShow(const DevToolsToggleAction& action);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment