Commit ba0a4527 authored by Joel Hockey's avatar Joel Hockey Committed by Commit Bot

Add --use-system-clipboard flag for linux-chromeos

Bug: 985187
Change-Id: I789786546d0ca7556d4f17bc87b6c0ff5eb02f45
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1826754
Commit-Queue: Joel Hockey <joelhockey@chromium.org>
Reviewed-by: default avatarJames Cook <jamescook@chromium.org>
Reviewed-by: default avatarScott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#701327}
parent 220cd627
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import("///ui/ozone/ozone.gni")
import("//build/config/jumbo.gni") import("//build/config/jumbo.gni")
import("//build/config/ui.gni") import("//build/config/ui.gni")
...@@ -91,6 +92,7 @@ jumbo_component("clipboard") { ...@@ -91,6 +92,7 @@ jumbo_component("clipboard") {
"clipboard_ozone.cc", "clipboard_ozone.cc",
"clipboard_ozone.h", "clipboard_ozone.h",
] ]
deps += [ "//ui/base" ]
} else if (use_x11) { } else if (use_x11) {
sources += [ sources += [
"clipboard_x11.cc", "clipboard_x11.cc",
...@@ -104,6 +106,16 @@ jumbo_component("clipboard") { ...@@ -104,6 +106,16 @@ jumbo_component("clipboard") {
"//ui/gfx/x", "//ui/gfx/x",
] ]
} }
} else if (is_chromeos && ozone_platform_x11) {
# linux-chromeos uses aura clipboard by default, but supports ozone x11
# with flag --use-system-clipbboard.
sources += [
"clipboard_aura.cc",
"clipboard_aura.h",
"clipboard_ozone.cc",
"clipboard_ozone.h",
]
deps += [ "//ui/base" ]
} else if (!is_win) { } else if (!is_win) {
# This file is used for all non-X11, non-Windows aura Builds. # This file is used for all non-X11, non-Windows aura Builds.
sources += [ sources += [
......
...@@ -2,6 +2,7 @@ include_rules = [ ...@@ -2,6 +2,7 @@ include_rules = [
"-ui/ozone/*", "-ui/ozone/*",
"+ui/base/ui_base_jni_headers", "+ui/base/ui_base_jni_headers",
"+third_party/mozilla", "+third_party/mozilla",
"+ui/ozone/buildflags.h",
"+ui/ozone/public/ozone_platform.h", "+ui/ozone/public/ozone_platform.h",
"+ui/ozone/public/platform_clipboard.h", "+ui/ozone/public/platform_clipboard.h",
] ]
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "ui/base/clipboard/clipboard_monitor.h" #include "ui/base/clipboard/clipboard_monitor.h"
#include "ui/base/clipboard/custom_data_helper.h" #include "ui/base/clipboard/custom_data_helper.h"
#include "ui/gfx/geometry/size.h" #include "ui/gfx/geometry/size.h"
#include "ui/ozone/buildflags.h"
namespace ui { namespace ui {
...@@ -410,10 +411,14 @@ class ClipboardDataBuilder { ...@@ -410,10 +411,14 @@ class ClipboardDataBuilder {
ClipboardData* ClipboardDataBuilder::current_data_ = nullptr; ClipboardData* ClipboardDataBuilder::current_data_ = nullptr;
// linux-chromeos uses aura clipboard by default, but supports ozone x11
// with flag --use-system-clipbboard.
#if !defined(OS_CHROMEOS) || !BUILDFLAG(OZONE_PLATFORM_X11)
// Clipboard factory method. // Clipboard factory method.
Clipboard* Clipboard::Create() { Clipboard* Clipboard::Create() {
return new ClipboardAura; return new ClipboardAura;
} }
#endif
// ClipboardAura implementation. // ClipboardAura implementation.
ClipboardAura::ClipboardAura() ClipboardAura::ClipboardAura()
......
...@@ -19,9 +19,16 @@ ...@@ -19,9 +19,16 @@
#include "ui/base/clipboard/clipboard_constants.h" #include "ui/base/clipboard/clipboard_constants.h"
#include "ui/base/clipboard/custom_data_helper.h" #include "ui/base/clipboard/custom_data_helper.h"
#include "ui/gfx/codec/png_codec.h" #include "ui/gfx/codec/png_codec.h"
#include "ui/ozone/buildflags.h"
#include "ui/ozone/public/ozone_platform.h" #include "ui/ozone/public/ozone_platform.h"
#include "ui/ozone/public/platform_clipboard.h" #include "ui/ozone/public/platform_clipboard.h"
#if defined(OS_CHROMEOS) && BUILDFLAG(OZONE_PLATFORM_X11)
#include "base/command_line.h"
#include "ui/base/clipboard/clipboard_aura.h"
#include "ui/base/ui_base_switches.h"
#endif
namespace ui { namespace ui {
namespace { namespace {
...@@ -285,6 +292,14 @@ class ClipboardOzone::AsyncClipboardOzone { ...@@ -285,6 +292,14 @@ class ClipboardOzone::AsyncClipboardOzone {
// Clipboard factory method. // Clipboard factory method.
Clipboard* Clipboard::Create() { Clipboard* Clipboard::Create() {
// linux-chromeos uses aura clipboard by default, but supports ozone x11
// with flag --use-system-clipbboard.
#if defined(OS_CHROMEOS) && BUILDFLAG(OZONE_PLATFORM_X11)
if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kUseSystemClipboard)) {
return new ClipboardAura;
}
#endif
return new ClipboardOzone; return new ClipboardOzone;
} }
......
...@@ -41,6 +41,11 @@ const char kDisableTouchAdjustment[] = "disable-touch-adjustment"; ...@@ -41,6 +41,11 @@ const char kDisableTouchAdjustment[] = "disable-touch-adjustment";
// Disables touch event based drag and drop. // Disables touch event based drag and drop.
const char kDisableTouchDragDrop[] = "disable-touch-drag-drop"; const char kDisableTouchDragDrop[] = "disable-touch-drag-drop";
// Disable re-use of non-exact resources to fulfill ResourcePool requests.
// Intended only for use in layout or pixel tests to reduce noise.
const char kDisallowNonExactResourceReuse[] =
"disallow-non-exact-resource-reuse";
// Enables touch event based drag and drop. // Enables touch event based drag and drop.
const char kEnableTouchDragDrop[] = "enable-touch-drag-drop"; const char kEnableTouchDragDrop[] = "enable-touch-drag-drop";
...@@ -59,14 +64,9 @@ const char kForceHighContrast[] = "force-high-contrast"; ...@@ -59,14 +64,9 @@ const char kForceHighContrast[] = "force-high-contrast";
// language[-country] where language is the 2 letter code from ISO-639. // language[-country] where language is the 2 letter code from ISO-639.
const char kLang[] = "lang"; const char kLang[] = "lang";
// Controls touch-optimized UI layout for top chrome. // Transform localized strings to be longer, with beginning and end markers to
const char kTopChromeTouchUi[] = "top-chrome-touch-ui"; // make truncation visually apparent.
const char kTopChromeTouchUiAuto[] = "auto"; const char kMangleLocalizedStrings[] = "mangle-localized-strings";
const char kTopChromeTouchUiDisabled[] = "disabled";
const char kTopChromeTouchUiEnabled[] = "enabled";
// Disable partial swap which is needed for some OpenGL drivers / emulators.
const char kUIDisablePartialSwap[] = "ui-disable-partial-swap";
// Visualize overdraw by color-coding elements based on if they have other // Visualize overdraw by color-coding elements based on if they have other
// elements drawn underneath. This is good for showing where the UI might be // elements drawn underneath. This is good for showing where the UI might be
...@@ -80,15 +80,6 @@ const char kUIDisablePartialSwap[] = "ui-disable-partial-swap"; ...@@ -80,15 +80,6 @@ const char kUIDisablePartialSwap[] = "ui-disable-partial-swap";
// Red: Overdrawn four or more times. // Red: Overdrawn four or more times.
const char kShowOverdrawFeedback[] = "show-overdraw-feedback"; const char kShowOverdrawFeedback[] = "show-overdraw-feedback";
// Disable re-use of non-exact resources to fulfill ResourcePool requests.
// Intended only for use in layout or pixel tests to reduce noise.
const char kDisallowNonExactResourceReuse[] =
"disallow-non-exact-resource-reuse";
// Transform localized strings to be longer, with beginning and end markers to
// make truncation visually apparent.
const char kMangleLocalizedStrings[] = "mangle-localized-strings";
// Re-draw everything multiple times to simulate a much slower machine. // Re-draw everything multiple times to simulate a much slower machine.
// Give a slow down factor to cause renderer to take that many times longer to // Give a slow down factor to cause renderer to take that many times longer to
// complete, such as --slow-down-compositing-scale-factor=2. // complete, such as --slow-down-compositing-scale-factor=2.
...@@ -98,4 +89,16 @@ const char kSlowDownCompositingScaleFactor[] = ...@@ -98,4 +89,16 @@ const char kSlowDownCompositingScaleFactor[] =
// Tint GL-composited color. // Tint GL-composited color.
const char kTintGlCompositedContent[] = "tint-gl-composited-content"; const char kTintGlCompositedContent[] = "tint-gl-composited-content";
// Controls touch-optimized UI layout for top chrome.
const char kTopChromeTouchUi[] = "top-chrome-touch-ui";
const char kTopChromeTouchUiAuto[] = "auto";
const char kTopChromeTouchUiDisabled[] = "disabled";
const char kTopChromeTouchUiEnabled[] = "enabled";
// Disable partial swap which is needed for some OpenGL drivers / emulators.
const char kUIDisablePartialSwap[] = "ui-disable-partial-swap";
// Enables the ozone x11 clipboard for linux-chromeos.
const char kUseSystemClipboard[] = "use-system-clipboard";
} // namespace switches } // namespace switches
...@@ -38,6 +38,7 @@ UI_BASE_EXPORT extern const char kTopChromeTouchUiAuto[]; ...@@ -38,6 +38,7 @@ UI_BASE_EXPORT extern const char kTopChromeTouchUiAuto[];
UI_BASE_EXPORT extern const char kTopChromeTouchUiDisabled[]; UI_BASE_EXPORT extern const char kTopChromeTouchUiDisabled[];
UI_BASE_EXPORT extern const char kTopChromeTouchUiEnabled[]; UI_BASE_EXPORT extern const char kTopChromeTouchUiEnabled[];
UI_BASE_EXPORT extern const char kUIDisablePartialSwap[]; UI_BASE_EXPORT extern const char kUIDisablePartialSwap[];
UI_BASE_EXPORT extern const char kUseSystemClipboard[];
// Test related. // Test related.
UI_BASE_EXPORT extern const char kDisallowNonExactResourceReuse[]; UI_BASE_EXPORT extern const char kDisallowNonExactResourceReuse[];
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be # Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file. # found in the LICENSE file.
import("//build/buildflag_header.gni")
import("//build/config/jumbo.gni") import("//build/config/jumbo.gni")
import("//build/config/ui.gni") import("//build/config/ui.gni")
import("//gpu/vulkan/features.gni") import("//gpu/vulkan/features.gni")
...@@ -195,6 +196,7 @@ jumbo_component("ozone") { ...@@ -195,6 +196,7 @@ jumbo_component("ozone") {
visibility = [] visibility = []
visibility = [ "*" ] visibility = [ "*" ]
public_deps = [ public_deps = [
":buildflags",
":platform", ":platform",
"//ui/ozone/public/mojom", "//ui/ozone/public/mojom",
] ]
...@@ -310,3 +312,8 @@ if (ozone_platform_x11) { ...@@ -310,3 +312,8 @@ if (ozone_platform_x11) {
assert_no_deps = [ "//ui/ozone" ] assert_no_deps = [ "//ui/ozone" ]
} }
} }
buildflag_header("buildflags") {
header = "buildflags.h"
flags = [ "OZONE_PLATFORM_X11=$ozone_platform_x11" ]
}
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