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 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("///ui/ozone/ozone.gni")
import("//build/config/jumbo.gni")
import("//build/config/ui.gni")
......@@ -91,6 +92,7 @@ jumbo_component("clipboard") {
"clipboard_ozone.cc",
"clipboard_ozone.h",
]
deps += [ "//ui/base" ]
} else if (use_x11) {
sources += [
"clipboard_x11.cc",
......@@ -104,6 +106,16 @@ jumbo_component("clipboard") {
"//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) {
# This file is used for all non-X11, non-Windows aura Builds.
sources += [
......
......@@ -2,6 +2,7 @@ include_rules = [
"-ui/ozone/*",
"+ui/base/ui_base_jni_headers",
"+third_party/mozilla",
"+ui/ozone/buildflags.h",
"+ui/ozone/public/ozone_platform.h",
"+ui/ozone/public/platform_clipboard.h",
]
......@@ -24,6 +24,7 @@
#include "ui/base/clipboard/clipboard_monitor.h"
#include "ui/base/clipboard/custom_data_helper.h"
#include "ui/gfx/geometry/size.h"
#include "ui/ozone/buildflags.h"
namespace ui {
......@@ -410,10 +411,14 @@ class ClipboardDataBuilder {
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* Clipboard::Create() {
return new ClipboardAura;
}
#endif
// ClipboardAura implementation.
ClipboardAura::ClipboardAura()
......
......@@ -19,9 +19,16 @@
#include "ui/base/clipboard/clipboard_constants.h"
#include "ui/base/clipboard/custom_data_helper.h"
#include "ui/gfx/codec/png_codec.h"
#include "ui/ozone/buildflags.h"
#include "ui/ozone/public/ozone_platform.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 {
......@@ -285,6 +292,14 @@ class ClipboardOzone::AsyncClipboardOzone {
// Clipboard factory method.
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;
}
......
......@@ -41,6 +41,11 @@ const char kDisableTouchAdjustment[] = "disable-touch-adjustment";
// Disables touch event based drag and 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.
const char kEnableTouchDragDrop[] = "enable-touch-drag-drop";
......@@ -59,14 +64,9 @@ const char kForceHighContrast[] = "force-high-contrast";
// language[-country] where language is the 2 letter code from ISO-639.
const char kLang[] = "lang";
// 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";
// Transform localized strings to be longer, with beginning and end markers to
// make truncation visually apparent.
const char kMangleLocalizedStrings[] = "mangle-localized-strings";
// 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
......@@ -80,15 +80,6 @@ const char kUIDisablePartialSwap[] = "ui-disable-partial-swap";
// Red: Overdrawn four or more times.
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.
// Give a slow down factor to cause renderer to take that many times longer to
// complete, such as --slow-down-compositing-scale-factor=2.
......@@ -98,4 +89,16 @@ const char kSlowDownCompositingScaleFactor[] =
// Tint GL-composited color.
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
......@@ -38,6 +38,7 @@ UI_BASE_EXPORT extern const char kTopChromeTouchUiAuto[];
UI_BASE_EXPORT extern const char kTopChromeTouchUiDisabled[];
UI_BASE_EXPORT extern const char kTopChromeTouchUiEnabled[];
UI_BASE_EXPORT extern const char kUIDisablePartialSwap[];
UI_BASE_EXPORT extern const char kUseSystemClipboard[];
// Test related.
UI_BASE_EXPORT extern const char kDisallowNonExactResourceReuse[];
......
......@@ -2,6 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/buildflag_header.gni")
import("//build/config/jumbo.gni")
import("//build/config/ui.gni")
import("//gpu/vulkan/features.gni")
......@@ -195,6 +196,7 @@ jumbo_component("ozone") {
visibility = []
visibility = [ "*" ]
public_deps = [
":buildflags",
":platform",
"//ui/ozone/public/mojom",
]
......@@ -310,3 +312,8 @@ if (ozone_platform_x11) {
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