mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Fix Chrome toolbar initialization (fixes #3898)
Change BrowserWindowFeatures initialization to consider CEF browsers with TYPE_POPUP as normal.
This commit is contained in:
@ -648,3 +648,59 @@ index f12ba73369a65..23c43dcb1dd24 100644
|
|||||||
NavigateParams params(browser, std::move(new_contents));
|
NavigateParams params(browser, std::move(new_contents));
|
||||||
params.source_contents = source_contents;
|
params.source_contents = source_contents;
|
||||||
params.url = target_url;
|
params.url = target_url;
|
||||||
|
diff --git chrome/browser/ui/browser_window/browser_window_features.cc chrome/browser/ui/browser_window/browser_window_features.cc
|
||||||
|
index e584d77d67bda..a38a8504abd85 100644
|
||||||
|
--- chrome/browser/ui/browser_window/browser_window_features.cc
|
||||||
|
+++ chrome/browser/ui/browser_window/browser_window_features.cc
|
||||||
|
@@ -67,6 +67,14 @@ BrowserWindowFeatures::BrowserWindowFeaturesFactory& GetFactory() {
|
||||||
|
return *factory;
|
||||||
|
}
|
||||||
|
|
||||||
|
+bool IsNormalBrowser(Browser* browser) {
|
||||||
|
+ // CEF normal browsers have TYPE_POPUP.
|
||||||
|
+ if (browser->is_type_popup() && browser->cef_delegate()) {
|
||||||
|
+ return true;
|
||||||
|
+ }
|
||||||
|
+ return browser->is_type_normal();
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
// static
|
||||||
|
@@ -153,10 +161,12 @@ void BrowserWindowFeatures::Init(BrowserWindowInterface* browser) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void BrowserWindowFeatures::InitPostWindowConstruction(Browser* browser) {
|
||||||
|
+ const bool supports_toolbar = IsNormalBrowser(browser);
|
||||||
|
+
|
||||||
|
// Features that are only enabled for normal browser windows (e.g. a window
|
||||||
|
// with an omnibox and a tab strip). By default most features should be
|
||||||
|
// instantiated in this block.
|
||||||
|
- if (browser->is_type_normal()) {
|
||||||
|
+ if (supports_toolbar) {
|
||||||
|
if (IsChromeLabsEnabled()) {
|
||||||
|
chrome_labs_coordinator_ =
|
||||||
|
std::make_unique<ChromeLabsCoordinator>(browser);
|
||||||
|
@@ -198,7 +208,7 @@ void BrowserWindowFeatures::InitPostWindowConstruction(Browser* browser) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- if ((browser->is_type_normal() || browser->is_type_app()) &&
|
||||||
|
+ if ((supports_toolbar || browser->is_type_app()) &&
|
||||||
|
base::FeatureList::IsEnabled(toast_features::kToastFramework)) {
|
||||||
|
toast_service_ = std::make_unique<ToastService>(browser);
|
||||||
|
}
|
||||||
|
@@ -231,10 +241,12 @@ void BrowserWindowFeatures::InitPostBrowserViewConstruction(
|
||||||
|
browser_view->browser(),
|
||||||
|
side_panel_coordinator_->GetWindowRegistry());
|
||||||
|
|
||||||
|
+ const bool supports_toolbar = IsNormalBrowser(browser_view->browser());
|
||||||
|
+
|
||||||
|
// Memory Saver mode is default off but is available to turn on.
|
||||||
|
// The controller relies on performance manager which isn't initialized in
|
||||||
|
// some unit tests without browser view.
|
||||||
|
- if (browser_view->GetIsNormalType()) {
|
||||||
|
+ if (supports_toolbar) {
|
||||||
|
memory_saver_opt_in_iph_controller_ =
|
||||||
|
std::make_unique<MemorySaverOptInIPHController>(
|
||||||
|
browser_view->browser());
|
||||||
|
Reference in New Issue
Block a user