Refactor Browser::Type
Change from {TABBED, POPUP}, to {NORMAL, POPUP, APP, DEVTOOLS}
Browser::is_type_tabbed() => Browser::is_type_normal()
Browser::is_type_popup() (used to include POPUP, APP, DEVTOOLS)
split into:
* Browser::is_type_popup()
* Browser::is_type_app()
* Browser::is_type_devtools()
Browser::is_app() => Browser::deprecated_is_app() (APP or DEVTOOLS)
and also split into:
* Browser::is_type_app()
* Browser::is_type_devtools()
This is quite a large change, but there is hopefully no or very
little change to any logic. To help reviewers, I have uploaded
10 different patchsets which each perform a small refactoring change
that make up this CL.
Patchset 12: s/TYPE_TABBED/TYPE_NORMAL/
Patchset 13: s/kMatchTabbed/kMatchNormal/
Patchset 14: s/is_type_tabbed/is_type_normal/
Patchset 15: s/is_devtools/is_type_devtools/
Patchset 16: s/is_app/deprecated_is_app/
Patchset 17: s/is_type_popup/!is_type_normal/
Patchset 18: Add TYPE_APP and TYPE_DEVTOOLS (main change)
Patchset 19: SyncedWindowDelegate
Patchset 20: little fixes, git cl format
Patchset 21: Fix types in tests
Patchset 18 is the only one that has any change to non-test
code which is not a pure refactor.
Bug: 990158
Change-Id: I8ade3205ff86fb974f1997daf06f237fdd541e45
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1741434
Commit-Queue: Joel Hockey <[email protected]>
Reviewed-by: Scott Violet <[email protected]>
Reviewed-by: Dana Fried <[email protected]>
Reviewed-by: Elly Fong-Jones <[email protected]>
Cr-Commit-Position: refs/heads/master@{#687078}
diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc
index 18b81d0..9481ea96e 100644
--- a/chrome/browser/extensions/extension_tab_util.cc
+++ b/chrome/browser/extensions/extension_tab_util.cc
@@ -87,7 +87,7 @@
int window_id,
bool user_gesture,
std::string* error) {
- Browser::CreateParams params(Browser::TYPE_TABBED, profile, user_gesture);
+ Browser::CreateParams params(Browser::TYPE_NORMAL, profile, user_gesture);
Browser* browser = Browser::Create(params);
if (!browser) {
*error = tabs_constants::kBrowserWindowNotAllowed;
@@ -150,8 +150,8 @@
return nullptr;
}
- // Ensure the selected browser is tabbed.
- if (!browser->is_type_tabbed() && browser->IsAttemptingToCloseBrowser())
+ // Ensure the selected browser is normal.
+ if (!browser->is_type_normal() && browser->IsAttemptingToCloseBrowser())
browser = chrome::FindTabbedBrowser(
profile, function->include_incognito_information());
if (!browser || !browser->window()) {
@@ -225,7 +225,7 @@
browser = chrome::FindTabbedBrowser(profile, false);
if (!browser) {
Browser::CreateParams params =
- Browser::CreateParams(Browser::TYPE_TABBED, profile, user_gesture);
+ Browser::CreateParams(Browser::TYPE_NORMAL, profile, user_gesture);
browser = Browser::Create(params);
if (!browser) {
*error = tabs_constants::kBrowserWindowNotAllowed;
@@ -334,16 +334,13 @@
// static
std::string ExtensionTabUtil::GetBrowserWindowTypeText(const Browser& browser) {
- if (browser.is_devtools())
+ if (browser.is_type_devtools())
return tabs_constants::kWindowTypeValueDevTools;
- if (browser.is_type_popup())
+ // TODO(crbug.com/990158): We return 'popup' for both popup and app since
+ // chrome.tabs.create({type: 'popup'}) uses
+ // Browser::CreateParams::CreateForApp.
+ if (browser.is_type_popup() || browser.is_type_app())
return tabs_constants::kWindowTypeValuePopup;
- // TODO(devlin): Browser::is_app() returns true whenever Browser::app_name_
- // is non-empty (and includes instances such as devtools). Platform apps
- // should no longer be returned here; are there any other cases (that aren't
- // captured by is_devtools() or is_type_popup() for an app-type browser?
- if (browser.is_app())
- return tabs_constants::kWindowTypeValueApp;
return tabs_constants::kWindowTypeValueNormal;
}
@@ -779,7 +776,7 @@
// static
bool ExtensionTabUtil::BrowserSupportsTabs(Browser* browser) {
- return browser && !browser->is_devtools();
+ return browser && !browser->is_type_devtools();
}
} // namespace extensions