Commit 9c234ce5 authored by Tom Anderson's avatar Tom Anderson Committed by Commit Bot

Remove unnecessary ENABLE_NATIVE_NAV_BUTTONS flag

The flag was set iff is_desktop_linux, so remove it to reduce
some complexity.

R=sky
BUG=None

Change-Id: I4948debfa1eafa33532689c7d3f847a1b0cb9a21
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2092875
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#748325}
parent 3a8f3f7d
......@@ -3459,7 +3459,7 @@ jumbo_static_library("ui") {
allow_circular_includes_from += [ "//chrome/browser/ui/views" ]
if (enable_native_window_nav_buttons) {
if (is_desktop_linux) {
sources += [
"views/frame/desktop_linux_browser_frame_view.cc",
"views/frame/desktop_linux_browser_frame_view.h",
......
......@@ -61,6 +61,7 @@
#include "ui/views/controls/button/label_button.h"
#include "ui/views/controls/button/label_button_border.h"
#include "ui/views/linux_ui/device_scale_factor_observer.h"
#include "ui/views/linux_ui/nav_button_provider.h"
#include "ui/views/linux_ui/window_button_order_observer.h"
#if defined(USE_GIO)
......@@ -83,10 +84,6 @@
#include "printing/printing_context_linux.h"
#endif
#if BUILDFLAG(ENABLE_NATIVE_WINDOW_NAV_BUTTONS)
#include "chrome/browser/ui/views/nav_button_provider.h"
#endif
namespace gtk {
namespace {
......@@ -749,13 +746,11 @@ bool GtkUi::AnimationsEnabled() const {
return animations_enabled;
}
#if BUILDFLAG(ENABLE_NATIVE_WINDOW_NAV_BUTTONS)
std::unique_ptr<views::NavButtonProvider> GtkUi::CreateNavButtonProvider() {
if (GtkVersionCheck(3, 14))
return std::make_unique<gtk::NavButtonProviderGtk>();
return nullptr;
}
#endif
// Mapping from GDK dead keys to corresponding printable character.
static struct {
......
......@@ -101,9 +101,7 @@ class GtkUi : public views::LinuxUI {
views::DeviceScaleFactorObserver* observer) override;
bool PreferDarkTheme() const override;
bool AnimationsEnabled() const override;
#if BUILDFLAG(ENABLE_NATIVE_WINDOW_NAV_BUTTONS)
std::unique_ptr<views::NavButtonProvider> CreateNavButtonProvider() override;
#endif
base::flat_map<std::string, std::string> GetKeyboardLayoutMap() override;
std::string GetCursorThemeName() override;
int GetCursorThemeSize() override;
......
......@@ -9,9 +9,9 @@
#include "base/component_export.h"
#include "chrome/browser/ui/frame_button_display_types.h"
#include "chrome/browser/ui/views/nav_button_provider.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/views/controls/button/button.h"
#include "ui/views/linux_ui/nav_button_provider.h"
namespace gtk {
......
......@@ -43,12 +43,4 @@ component("views") {
if (is_chromeos) {
deps += [ "//ash" ]
}
if (enable_native_window_nav_buttons) {
sources += [ "nav_button_provider.h" ]
deps += [
"//ui/views",
"//ui/views:buildflags",
]
}
}
......@@ -14,13 +14,10 @@
#endif
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
#include "ui/views/linux_ui/linux_ui.h"
#endif
#if BUILDFLAG(ENABLE_NATIVE_WINDOW_NAV_BUTTONS)
#include "chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.h"
#include "chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.h"
#include "chrome/browser/ui/views/nav_button_provider.h"
#include "ui/views/linux_ui/linux_ui.h"
#include "ui/views/linux_ui/nav_button_provider.h"
#endif
namespace chrome {
......@@ -30,20 +27,18 @@ namespace {
OpaqueBrowserFrameView* CreateOpaqueBrowserFrameView(
BrowserFrame* frame,
BrowserView* browser_view) {
#if BUILDFLAG(ENABLE_NATIVE_WINDOW_NAV_BUTTONS)
std::unique_ptr<views::NavButtonProvider> nav_button_provider;
#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
if (ThemeServiceFactory::GetForProfile(browser_view->browser()->profile())
->UsingSystemTheme() &&
views::LinuxUI::instance()) {
nav_button_provider = views::LinuxUI::instance()->CreateNavButtonProvider();
}
#endif
if (nav_button_provider) {
return new DesktopLinuxBrowserFrameView(
frame, browser_view,
new DesktopLinuxBrowserFrameViewLayout(nav_button_provider.get()),
std::move(nav_button_provider));
auto* linux_ui = views::LinuxUI::instance();
auto* profile = browser_view->browser()->profile();
auto* theme_service_factory = ThemeServiceFactory::GetForProfile(profile);
if (linux_ui && theme_service_factory->UsingSystemTheme()) {
auto nav_button_provider = linux_ui->CreateNavButtonProvider();
if (nav_button_provider) {
return new DesktopLinuxBrowserFrameView(
frame, browser_view,
new DesktopLinuxBrowserFrameViewLayout(nav_button_provider.get()),
std::move(nav_button_provider));
}
}
#endif
return new OpaqueBrowserFrameView(frame, browser_view,
......
......@@ -5,8 +5,8 @@
#include "chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.h"
#include "chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.h"
#include "chrome/browser/ui/views/nav_button_provider.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/linux_ui/nav_button_provider.h"
bool DesktopLinuxBrowserFrameView::DrawFrameButtonParams::operator==(
const DrawFrameButtonParams& other) const {
......
......@@ -4,7 +4,7 @@
#include "chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.h"
#include "chrome/browser/ui/views/nav_button_provider.h"
#include "ui/views/linux_ui/nav_button_provider.h"
DesktopLinuxBrowserFrameViewLayout::DesktopLinuxBrowserFrameViewLayout(
views::NavButtonProvider* nav_button_provider)
......
......@@ -8,10 +8,10 @@
#include "base/macros.h"
#include "chrome/browser/ui/layout_constants.h"
#include "chrome/browser/ui/views/nav_button_provider.h"
#include "chrome/test/views/chrome_views_test_base.h"
#include "ui/views/background.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/linux_ui/nav_button_provider.h"
namespace {
......
......@@ -5357,7 +5357,7 @@ test("unit_tests") {
"../browser/ui/views/toolbar/toolbar_button_unittest.cc",
"../browser/ui/views/translate/translate_bubble_view_unittest.cc",
]
if (enable_native_window_nav_buttons) {
if (is_desktop_linux) {
sources += [ "../browser/ui/views/frame/desktop_linux_browser_frame_view_layout_unittest.cc" ]
}
if (enable_plugins) {
......
......@@ -57,10 +57,7 @@ aggregate_vector_icons("views_vector_icons") {
buildflag_header("buildflags") {
header = "buildflags.h"
flags = [
"ENABLE_NATIVE_WINDOW_NAV_BUTTONS=$enable_native_window_nav_buttons",
"ENABLE_DESKTOP_AURA=$enable_desktop_aura",
]
flags = [ "ENABLE_DESKTOP_AURA=$enable_desktop_aura" ]
}
jumbo_component("views") {
......@@ -533,6 +530,7 @@ jumbo_component("views") {
public += [
"linux_ui/device_scale_factor_observer.h",
"linux_ui/linux_ui.h",
"linux_ui/nav_button_provider.h",
"linux_ui/status_icon_linux.h",
"linux_ui/window_button_order_observer.h",
]
......
......@@ -7,9 +7,3 @@ import("//build/config/ui.gni")
# Enable desktop-oriented features implemented by DesktopNativeWidgetAura.
enable_desktop_aura = use_aura && !is_chromeos && !is_chromecast
declare_args() {
# Whether we should draw the minimize, maximize/restore, and close
# buttons using the system theme. Only used on Linux.
enable_native_window_nav_buttons = enable_desktop_aura && is_linux
}
......@@ -47,11 +47,8 @@ class Border;
class DeviceScaleFactorObserver;
class LabelButton;
class LabelButtonBorder;
class WindowButtonOrderObserver;
#if BUILDFLAG(ENABLE_NATIVE_WINDOW_NAV_BUTTONS)
class NavButtonProvider;
#endif
class WindowButtonOrderObserver;
// Adapter class with targets to render like different toolkits. Set by any
// project that wants to do linux desktop native rendering.
......@@ -173,11 +170,9 @@ class VIEWS_EXPORT LinuxUI : public ui::LinuxInputMethodContextFactory,
// preferred.
virtual bool PreferDarkTheme() const = 0;
#if BUILDFLAG(ENABLE_NATIVE_WINDOW_NAV_BUTTONS)
// Returns a new NavButtonProvider, or nullptr if the underlying
// toolkit does not support drawing client-side navigation buttons.
virtual std::unique_ptr<NavButtonProvider> CreateNavButtonProvider() = 0;
#endif
// Returns a map of KeyboardEvent code to KeyboardEvent key values.
virtual base::flat_map<std::string, std::string> GetKeyboardLayoutMap() = 0;
......
......@@ -2,17 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_VIEWS_NAV_BUTTON_PROVIDER_H_
#define CHROME_BROWSER_UI_VIEWS_NAV_BUTTON_PROVIDER_H_
#ifndef UI_VIEWS_LINUX_UI_NAV_BUTTON_PROVIDER_H_
#define UI_VIEWS_LINUX_UI_NAV_BUTTON_PROVIDER_H_
#include "build/buildflag.h"
#include "ui/views/buildflags.h"
#include "ui/views/controls/button/button.h"
#if !BUILDFLAG(ENABLE_NATIVE_WINDOW_NAV_BUTTONS)
#error "Include not allowed."
#endif
namespace chrome {
enum class FrameButtonDisplayType;
}
......@@ -57,4 +53,4 @@ class NavButtonProvider {
} // namespace views
#endif // CHROME_BROWSER_UI_VIEWS_NAV_BUTTON_PROVIDER_H_
#endif // UI_VIEWS_LINUX_UI_NAV_BUTTON_PROVIDER_H_
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