summaryrefslogtreecommitdiff
path: root/chromium/ui/display/manager
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/display/manager')
-rw-r--r--chromium/ui/display/manager/configure_displays_task.cc1
-rw-r--r--chromium/ui/display/manager/display_change_observer.cc64
-rw-r--r--chromium/ui/display/manager/display_change_observer.h2
-rw-r--r--chromium/ui/display/manager/display_change_observer_unittest.cc134
-rw-r--r--chromium/ui/display/manager/display_configurator.cc22
-rw-r--r--chromium/ui/display/manager/display_manager.cc12
-rw-r--r--chromium/ui/display/manager/display_manager.h2
-rw-r--r--chromium/ui/display/manager/display_util.cc8
-rw-r--r--chromium/ui/display/manager/display_util.h3
-rw-r--r--chromium/ui/display/manager/managed_display_info.cc17
-rw-r--r--chromium/ui/display/manager/managed_display_info.h10
-rw-r--r--chromium/ui/display/manager/managed_display_info_unittest.cc4
-rw-r--r--chromium/ui/display/manager/touch_device_manager.cc1
-rw-r--r--chromium/ui/display/manager/touch_transform_controller.cc1
-rw-r--r--chromium/ui/display/manager/update_display_configuration_task.cc1
15 files changed, 242 insertions, 40 deletions
diff --git a/chromium/ui/display/manager/configure_displays_task.cc b/chromium/ui/display/manager/configure_displays_task.cc
index 1b37056d62c..9bb4b1a4967 100644
--- a/chromium/ui/display/manager/configure_displays_task.cc
+++ b/chromium/ui/display/manager/configure_displays_task.cc
@@ -7,6 +7,7 @@
#include "base/auto_reset.h"
#include "base/bind.h"
#include "base/containers/queue.h"
+#include "base/logging.h"
#include "base/metrics/histogram_functions.h"
#include "base/stl_util.h"
#include "ui/display/manager/display_util.h"
diff --git a/chromium/ui/display/manager/display_change_observer.cc b/chromium/ui/display/manager/display_change_observer.cc
index 93961fa5a03..89a9139d3fe 100644
--- a/chromium/ui/display/manager/display_change_observer.cc
+++ b/chromium/ui/display/manager/display_change_observer.cc
@@ -77,6 +77,51 @@ ManagedDisplayInfo::ManagedDisplayModeList GetModeListWithAllRefreshRates(
return display_mode_list;
}
+#if defined(OS_CHROMEOS)
+// Constructs the raster DisplayColorSpaces out of |snapshot_color_space|,
+// including the HDR ones if present and |allow_high_bit_depth| is set.
+gfx::DisplayColorSpaces FillDisplayColorSpaces(
+ const gfx::ColorSpace& snapshot_color_space,
+ bool allow_high_bit_depth) {
+ // ChromeOS VMs (e.g. amd64-generic or betty) have INVALID Primaries; just
+ // pass the color space along.
+ if (!snapshot_color_space.IsValid()) {
+ return gfx::DisplayColorSpaces(snapshot_color_space,
+ DisplaySnapshot::PrimaryFormat());
+ }
+
+ // TODO(b/158126931): |snapshot_color_space| Primaries/Transfer function
+ // cannot be used directly, as users prefer saturated colors to accurate ones.
+ // Instead, clamp at DCI-P3 and clamp at that level or with a small overshoot.
+ gfx::DisplayColorSpaces display_color_spaces(
+ gfx::ColorSpace::CreateSRGB(), DisplaySnapshot::PrimaryFormat());
+
+ if (allow_high_bit_depth) {
+ constexpr float kSDRJoint = 0.5;
+ constexpr float kHDRLevel = 3.0;
+ const auto primary_id = snapshot_color_space.GetPrimaryID();
+ gfx::ColorSpace hdr_color_space;
+ if (primary_id == gfx::ColorSpace::PrimaryID::CUSTOM) {
+ skcms_Matrix3x3 primary_matrix{};
+ snapshot_color_space.GetPrimaryMatrix(&primary_matrix);
+ hdr_color_space = gfx::ColorSpace::CreatePiecewiseHDR(
+ primary_id, kSDRJoint, kHDRLevel, &primary_matrix);
+ } else {
+ hdr_color_space =
+ gfx::ColorSpace::CreatePiecewiseHDR(primary_id, kSDRJoint, kHDRLevel);
+ }
+
+ display_color_spaces.SetOutputColorSpaceAndBufferFormat(
+ gfx::ContentColorUsage::kHDR, false /* needs_alpha */, hdr_color_space,
+ gfx::BufferFormat::RGBA_1010102);
+ display_color_spaces.SetOutputColorSpaceAndBufferFormat(
+ gfx::ContentColorUsage::kHDR, true /* needs_alpha */, hdr_color_space,
+ gfx::BufferFormat::RGBA_1010102);
+ }
+ return display_color_spaces;
+}
+#endif
+
} // namespace
// static
@@ -337,21 +382,22 @@ ManagedDisplayInfo DisplayChangeObserver::CreateManagedDisplayInfo(
if (dpi)
new_info.set_device_dpi(dpi);
+#if !defined(OS_CHROMEOS)
// TODO(crbug.com/1012846): This should configure the HDR color spaces.
gfx::DisplayColorSpaces display_color_spaces(
snapshot->color_space(), DisplaySnapshot::PrimaryFormat());
new_info.set_display_color_spaces(display_color_spaces);
new_info.set_bits_per_channel(snapshot->bits_per_channel());
-
- // TODO(crbug.com/1012846): Remove this flag and provision when HDR is fully
- // supported on ChromeOS.
-#if defined(OS_CHROMEOS)
+#else
+ // TODO(crbug.com/1012846): Remove kEnableUseHDRTransferFunction usage when
+ // HDR is fully supported on ChromeOS.
+ const bool allow_high_bit_depth =
+ base::FeatureList::IsEnabled(features::kUseHDRTransferFunction);
+ new_info.set_display_color_spaces(
+ FillDisplayColorSpaces(snapshot->color_space(), allow_high_bit_depth));
constexpr int32_t kNormalBitDepth = 8;
- if (new_info.bits_per_channel() > kNormalBitDepth &&
- !base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnableUseHDRTransferFunction)) {
- new_info.set_bits_per_channel(kNormalBitDepth);
- }
+ new_info.set_bits_per_channel(
+ allow_high_bit_depth ? snapshot->bits_per_channel() : kNormalBitDepth);
#endif
new_info.set_refresh_rate(mode_info->refresh_rate());
diff --git a/chromium/ui/display/manager/display_change_observer.h b/chromium/ui/display/manager/display_change_observer.h
index 0e896e24e5e..5c17ce60977 100644
--- a/chromium/ui/display/manager/display_change_observer.h
+++ b/chromium/ui/display/manager/display_change_observer.h
@@ -60,6 +60,8 @@ class DISPLAY_MANAGER_EXPORT DisplayChangeObserver
DISPLAY_EXPORT static float FindDeviceScaleFactor(float dpi);
private:
+ friend class DisplayChangeObserverTest;
+
void UpdateInternalDisplay(
const DisplayConfigurator::DisplayStateList& display_states);
diff --git a/chromium/ui/display/manager/display_change_observer_unittest.cc b/chromium/ui/display/manager/display_change_observer_unittest.cc
index bb900209bac..91d90d99f55 100644
--- a/chromium/ui/display/manager/display_change_observer_unittest.cc
+++ b/chromium/ui/display/manager/display_change_observer_unittest.cc
@@ -14,8 +14,11 @@
#include "ui/display/display_switches.h"
#include "ui/display/fake/fake_display_snapshot.h"
#include "ui/display/manager/display_configurator.h"
+#include "ui/display/manager/display_manager.h"
#include "ui/display/manager/managed_display_info.h"
+#include "ui/display/screen.h"
#include "ui/display/types/display_mode.h"
+#include "ui/events/devices/device_data_manager.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/size.h"
@@ -60,6 +63,13 @@ class DisplayChangeObserverTest : public testing::Test,
Test::SetUp();
}
+ // Pass through method to be called by individual test cases.
+ ManagedDisplayInfo CreateManagedDisplayInfo(DisplayChangeObserver* observer,
+ const DisplaySnapshot* snapshot,
+ const DisplayMode* mode_info) {
+ return observer->CreateManagedDisplayInfo(snapshot, mode_info);
+ }
+
private:
base::test::ScopedFeatureList scoped_feature_list_;
@@ -175,7 +185,8 @@ TEST_P(DisplayChangeObserverTest, GetEmptyExternalManagedDisplayModeList) {
FakeDisplaySnapshot display_snapshot(
123, gfx::Point(), gfx::Size(), DISPLAY_CONNECTION_TYPE_UNKNOWN, false,
false, PrivacyScreenState::kNotSupported, false, false, std::string(), {},
- nullptr, nullptr, 0, gfx::Size());
+ nullptr, nullptr, 0, gfx::Size(), gfx::ColorSpace(),
+ /*bits_per_channel=*/8u);
ManagedDisplayInfo::ManagedDisplayModeList display_modes =
DisplayChangeObserver::GetExternalManagedDisplayModeList(
@@ -294,6 +305,127 @@ TEST_P(DisplayChangeObserverTest,
}
}
+TEST_P(DisplayChangeObserverTest, InvalidDisplayColorSpaces) {
+ const std::unique_ptr<DisplaySnapshot> display_snapshot =
+ FakeDisplaySnapshot::Builder()
+ .SetId(123)
+ .SetName("AmazingFakeDisplay")
+ .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60))
+ .SetColorSpace(gfx::ColorSpace())
+ .Build();
+
+ ui::DeviceDataManager::CreateInstance();
+ DisplayManager manager(nullptr);
+ const auto display_mode = MakeDisplayMode(1920, 1080, true, 60);
+ DisplayChangeObserver observer(&manager);
+ const ManagedDisplayInfo display_info = CreateManagedDisplayInfo(
+ &observer, display_snapshot.get(), display_mode.get());
+
+ EXPECT_EQ(display_info.bits_per_channel(), 8u);
+ const auto display_color_spaces = display_info.display_color_spaces();
+ EXPECT_FALSE(display_color_spaces.SupportsHDR());
+
+ EXPECT_EQ(
+ DisplaySnapshot::PrimaryFormat(),
+ display_color_spaces.GetOutputBufferFormat(gfx::ContentColorUsage::kSRGB,
+ /*needs_alpha=*/true));
+
+ const auto color_space = display_color_spaces.GetRasterColorSpace();
+ // DisplayColorSpaces will fix an invalid ColorSpace to return sRGB.
+ EXPECT_TRUE(color_space.IsValid());
+ EXPECT_EQ(color_space, gfx::ColorSpace::CreateSRGB());
+}
+
+TEST_P(DisplayChangeObserverTest, SDRDisplayColorSpaces) {
+ const std::unique_ptr<DisplaySnapshot> display_snapshot =
+ FakeDisplaySnapshot::Builder()
+ .SetId(123)
+ .SetName("AmazingFakeDisplay")
+ .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60))
+ .SetColorSpace(gfx::ColorSpace::CreateSRGB())
+ .Build();
+
+ ui::DeviceDataManager::CreateInstance();
+ DisplayManager manager(nullptr);
+ const auto display_mode = MakeDisplayMode(1920, 1080, true, 60);
+ DisplayChangeObserver observer(&manager);
+ const ManagedDisplayInfo display_info = CreateManagedDisplayInfo(
+ &observer, display_snapshot.get(), display_mode.get());
+
+ EXPECT_EQ(display_info.bits_per_channel(), 8u);
+
+ const auto display_color_spaces = display_info.display_color_spaces();
+ EXPECT_FALSE(display_color_spaces.SupportsHDR());
+
+ EXPECT_EQ(
+ DisplaySnapshot::PrimaryFormat(),
+ display_color_spaces.GetOutputBufferFormat(gfx::ContentColorUsage::kSRGB,
+ /*needs_alpha=*/true));
+
+ const auto color_space = display_color_spaces.GetRasterColorSpace();
+ EXPECT_TRUE(color_space.IsValid());
+ EXPECT_EQ(color_space.GetPrimaryID(), gfx::ColorSpace::PrimaryID::BT709);
+ EXPECT_EQ(color_space.GetTransferID(),
+ gfx::ColorSpace::TransferID::IEC61966_2_1);
+}
+
+#if defined(OS_CHROMEOS)
+TEST_P(DisplayChangeObserverTest, HDRDisplayColorSpaces) {
+ // TODO(crbug.com/1012846): Remove this flag and provision when HDR is fully
+ // supported on ChromeOS.
+ base::test::ScopedFeatureList scoped_feature_list;
+ scoped_feature_list.InitAndEnableFeature(features::kUseHDRTransferFunction);
+
+ const std::unique_ptr<DisplaySnapshot> display_snapshot =
+ FakeDisplaySnapshot::Builder()
+ .SetId(123)
+ .SetName("AmazingFakeDisplay")
+ .SetNativeMode(MakeDisplayMode(1920, 1080, true, 60))
+ .SetColorSpace(gfx::ColorSpace::CreateHDR10(100.0f))
+ .SetBitsPerChannel(10u)
+ .Build();
+
+ ui::DeviceDataManager::CreateInstance();
+ DisplayManager manager(nullptr);
+ const auto display_mode = MakeDisplayMode(1920, 1080, true, 60);
+ DisplayChangeObserver observer(&manager);
+ const ManagedDisplayInfo display_info = CreateManagedDisplayInfo(
+ &observer, display_snapshot.get(), display_mode.get());
+
+ EXPECT_EQ(display_info.bits_per_channel(), 10u);
+
+ const auto display_color_spaces = display_info.display_color_spaces();
+ EXPECT_TRUE(display_color_spaces.SupportsHDR());
+
+ // |display_color_spaces| still supports SDR rendering.
+ EXPECT_EQ(
+ DisplaySnapshot::PrimaryFormat(),
+ display_color_spaces.GetOutputBufferFormat(gfx::ContentColorUsage::kSRGB,
+ /*needs_alpha=*/true));
+
+ const auto sdr_color_space =
+ display_color_spaces.GetOutputColorSpace(gfx::ContentColorUsage::kSRGB,
+ /*needs_alpha=*/true);
+ EXPECT_TRUE(sdr_color_space.IsValid());
+ EXPECT_EQ(sdr_color_space.GetPrimaryID(), gfx::ColorSpace::PrimaryID::BT709);
+ EXPECT_EQ(sdr_color_space.GetTransferID(),
+ gfx::ColorSpace::TransferID::IEC61966_2_1);
+
+ EXPECT_EQ(
+ display_color_spaces.GetOutputBufferFormat(gfx::ContentColorUsage::kHDR,
+ /*needs_alpha=*/true),
+ gfx::BufferFormat::RGBA_1010102);
+
+ const auto hdr_color_space =
+ display_color_spaces.GetOutputColorSpace(gfx::ContentColorUsage::kHDR,
+ /*needs_alpha=*/true);
+ EXPECT_TRUE(hdr_color_space.IsValid());
+ EXPECT_EQ(hdr_color_space.GetPrimaryID(), gfx::ColorSpace::PrimaryID::BT2020);
+ EXPECT_EQ(hdr_color_space.GetTransferID(),
+ gfx::ColorSpace::TransferID::PIECEWISE_HDR);
+}
+#endif
+
INSTANTIATE_TEST_SUITE_P(All,
DisplayChangeObserverTest,
::testing::Values(false, true));
diff --git a/chromium/ui/display/manager/display_configurator.cc b/chromium/ui/display/manager/display_configurator.cc
index 0f078a96d7a..30774956842 100644
--- a/chromium/ui/display/manager/display_configurator.cc
+++ b/chromium/ui/display/manager/display_configurator.cc
@@ -785,24 +785,26 @@ bool DisplayConfigurator::SetGammaCorrection(
bool DisplayConfigurator::IsPrivacyScreenSupportedOnInternalDisplay() const {
return current_internal_display_ &&
- current_internal_display_->privacy_screen_state() != kNotSupported;
+ current_internal_display_->privacy_screen_state() != kNotSupported &&
+ current_internal_display_->current_mode();
}
bool DisplayConfigurator::SetPrivacyScreenOnInternalDisplay(bool enabled) {
- if (!current_internal_display_) {
- LOG(ERROR) << "This device does not have an internal display.";
- return false;
+ if (IsPrivacyScreenSupportedOnInternalDisplay()) {
+ native_display_delegate_->SetPrivacyScreen(
+ current_internal_display_->display_id(), enabled);
+ return true;
}
- if (!IsPrivacyScreenSupportedOnInternalDisplay()) {
+ if (!current_internal_display_) {
+ LOG(ERROR) << "This device does not have an internal display.";
+ } else if (current_internal_display_->privacy_screen_state() ==
+ kNotSupported) {
LOG(ERROR) << "The internal display of this device does not support "
- "privacy screeny.";
- return false;
+ "privacy screen.";
}
- native_display_delegate_->SetPrivacyScreen(
- current_internal_display_->display_id(), enabled);
- return true;
+ return false;
}
chromeos::DisplayPowerState DisplayConfigurator::GetRequestedPowerState()
diff --git a/chromium/ui/display/manager/display_manager.cc b/chromium/ui/display/manager/display_manager.cc
index 11423d46aae..7d909dddb79 100644
--- a/chromium/ui/display/manager/display_manager.cc
+++ b/chromium/ui/display/manager/display_manager.cc
@@ -33,6 +33,7 @@
#include "ui/display/display_observer.h"
#include "ui/display/display_switches.h"
#include "ui/display/manager/display_layout_store.h"
+#include "ui/display/manager/display_util.h"
#include "ui/display/manager/managed_display_info.h"
#include "ui/display/screen.h"
#include "ui/display/types/display_snapshot.h"
@@ -47,7 +48,6 @@
#include "chromeos/system/devicemode.h"
#include "ui/display/manager/display_change_observer.h"
#include "ui/display/manager/display_configurator.h"
-#include "ui/display/manager/display_util.h"
#include "ui/display/types/native_display_delegate.h"
#include "ui/events/devices/touchscreen_device.h"
#endif
@@ -985,6 +985,16 @@ void DisplayManager::UpdateDisplaysWith(
if (current_display.rotation() != new_display.rotation())
metrics |= DisplayObserver::DISPLAY_METRIC_ROTATION;
+ if (!WithinEpsilon(current_display.display_frequency(),
+ new_display.display_frequency())) {
+ metrics |= DisplayObserver::DISPLAY_METRIC_REFRESH_RATE;
+ }
+
+ if (current_display_info.is_interlaced() !=
+ new_display_info.is_interlaced()) {
+ metrics |= DisplayObserver::DISPLAY_METRIC_INTERLACED;
+ }
+
if (metrics != DisplayObserver::DISPLAY_METRIC_NONE) {
display_changes.insert(
std::pair<size_t, uint32_t>(new_displays.size(), metrics));
diff --git a/chromium/ui/display/manager/display_manager.h b/chromium/ui/display/manager/display_manager.h
index d979f1f4e07..9520879323a 100644
--- a/chromium/ui/display/manager/display_manager.h
+++ b/chromium/ui/display/manager/display_manager.h
@@ -16,9 +16,9 @@
#include <vector>
#include "base/callback.h"
+#include "base/check_op.h"
#include "base/compiler_specific.h"
#include "base/gtest_prod_util.h"
-#include "base/logging.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
diff --git a/chromium/ui/display/manager/display_util.cc b/chromium/ui/display/manager/display_util.cc
index 310e6293da6..c6b5b32b23a 100644
--- a/chromium/ui/display/manager/display_util.cc
+++ b/chromium/ui/display/manager/display_util.cc
@@ -62,10 +62,6 @@ constexpr std::array<ZoomListBucketDsf, 6> kZoomListBucketsForDsf{{
{1.f / kDsf_2_666, 0.5f, 0.6f, 0.8f, 0.9f, 1.f, 1.2f, 1.35f, 1.5f}},
}};
-bool WithinEpsilon(float a, float b) {
- return std::abs(a - b) < std::numeric_limits<float>::epsilon();
-}
-
} // namespace
#if defined(OS_CHROMEOS)
@@ -108,6 +104,10 @@ int GetDisplayPower(const std::vector<DisplaySnapshot*>& displays,
#endif // defined(OS_CHROMEOS)
+bool WithinEpsilon(float a, float b) {
+ return std::abs(a - b) < std::numeric_limits<float>::epsilon();
+}
+
std::string MultipleDisplayStateToString(MultipleDisplayState state) {
switch (state) {
case MULTIPLE_DISPLAY_STATE_INVALID:
diff --git a/chromium/ui/display/manager/display_util.h b/chromium/ui/display/manager/display_util.h
index e90f055eeaa..a51c684318d 100644
--- a/chromium/ui/display/manager/display_util.h
+++ b/chromium/ui/display/manager/display_util.h
@@ -34,6 +34,9 @@ GetDisplayPower(const std::vector<DisplaySnapshot*>& displays,
#endif // defined(OS_CHROMEOS)
+// Determines whether |a| is within an epsilon of |b|.
+bool WithinEpsilon(float a, float b);
+
// Returns a string describing |state|.
std::string MultipleDisplayStateToString(MultipleDisplayState state);
diff --git a/chromium/ui/display/manager/managed_display_info.cc b/chromium/ui/display/manager/managed_display_info.cc
index e40b18c2cce..60720f12024 100644
--- a/chromium/ui/display/manager/managed_display_info.cc
+++ b/chromium/ui/display/manager/managed_display_info.cc
@@ -70,6 +70,11 @@ struct ManagedDisplayModeSorter {
}
};
+bool IsWithinEpsilon(float a, float b) {
+ constexpr float kEpsilon = 0.0001f;
+ return std::abs(a - b) < kEpsilon;
+}
+
} // namespace
ManagedDisplayMode::ManagedDisplayMode() {}
@@ -104,6 +109,13 @@ ManagedDisplayMode::ManagedDisplayMode(const ManagedDisplayMode& other) =
ManagedDisplayMode& ManagedDisplayMode::operator=(
const ManagedDisplayMode& other) = default;
+bool ManagedDisplayMode::operator==(const ManagedDisplayMode& other) const {
+ return size_ == other.size_ && is_interlaced_ == other.is_interlaced_ &&
+ native_ == other.native_ &&
+ IsWithinEpsilon(refresh_rate_, other.refresh_rate_) &&
+ IsWithinEpsilon(device_scale_factor_, other.device_scale_factor_);
+}
+
gfx::Size ManagedDisplayMode::GetSizeInDIP() const {
gfx::SizeF size_dip(size_);
size_dip.Scale(1.0f / device_scale_factor_);
@@ -114,9 +126,8 @@ bool ManagedDisplayMode::IsEquivalent(const ManagedDisplayMode& other) const {
if (display::features::IsListAllDisplayModesEnabled())
return *this == other;
- const float kEpsilon = 0.0001f;
return size_ == other.size_ &&
- std::abs(device_scale_factor_ - other.device_scale_factor_) < kEpsilon;
+ IsWithinEpsilon(device_scale_factor_, other.device_scale_factor_);
}
std::string ManagedDisplayMode::ToString() const {
@@ -208,7 +219,7 @@ ManagedDisplayInfo ManagedDisplayInfo::CreateFromSpecWithID(
base::SPLIT_WANT_NONEMPTY);
for (size_t i = 0; i < parts.size(); ++i) {
gfx::Size size;
- float refresh_rate = 0.0f;
+ float refresh_rate = 60.0f;
bool is_interlaced = false;
gfx::Rect mode_bounds;
diff --git a/chromium/ui/display/manager/managed_display_info.h b/chromium/ui/display/manager/managed_display_info.h
index e340223f8e0..f99bf46bbcf 100644
--- a/chromium/ui/display/manager/managed_display_info.h
+++ b/chromium/ui/display/manager/managed_display_info.h
@@ -40,6 +40,7 @@ class DISPLAY_MANAGER_EXPORT ManagedDisplayMode {
~ManagedDisplayMode();
ManagedDisplayMode(const ManagedDisplayMode& other);
ManagedDisplayMode& operator=(const ManagedDisplayMode& other);
+ bool operator==(const ManagedDisplayMode& other) const;
// Returns the size in DIP which is visible to the user.
gfx::Size GetSizeInDIP() const;
@@ -66,15 +67,6 @@ class DISPLAY_MANAGER_EXPORT ManagedDisplayMode {
float device_scale_factor_ = 1.0f; // The device scale factor of the mode.
};
-inline bool operator==(const ManagedDisplayMode& lhs,
- const ManagedDisplayMode& rhs) {
- return lhs.size() == rhs.size() &&
- lhs.is_interlaced() == rhs.is_interlaced() &&
- lhs.refresh_rate() == rhs.refresh_rate() &&
- lhs.native() == rhs.native() &&
- lhs.device_scale_factor() == rhs.device_scale_factor();
-}
-
inline bool operator!=(const ManagedDisplayMode& lhs,
const ManagedDisplayMode& rhs) {
return !(lhs == rhs);
diff --git a/chromium/ui/display/manager/managed_display_info_unittest.cc b/chromium/ui/display/manager/managed_display_info_unittest.cc
index b73f335bed0..115214dd8be 100644
--- a/chromium/ui/display/manager/managed_display_info_unittest.cc
+++ b/chromium/ui/display/manager/managed_display_info_unittest.cc
@@ -68,11 +68,11 @@ TEST_F(DisplayInfoTest, CreateFromSpec) {
EXPECT_EQ("200x200", info.display_modes()[3].size().ToString());
EXPECT_EQ("300x200", info.display_modes()[4].size().ToString());
- EXPECT_EQ(0.0f, info.display_modes()[0].refresh_rate());
+ EXPECT_EQ(60.0f, info.display_modes()[0].refresh_rate());
EXPECT_EQ(60.0f, info.display_modes()[1].refresh_rate());
EXPECT_EQ(30.0f, info.display_modes()[2].refresh_rate());
EXPECT_EQ(59.9f, info.display_modes()[3].refresh_rate());
- EXPECT_EQ(0.0f, info.display_modes()[4].refresh_rate());
+ EXPECT_EQ(60.0f, info.display_modes()[4].refresh_rate());
EXPECT_EQ(2.0f, info.display_modes()[0].device_scale_factor());
EXPECT_EQ(1.0f, info.display_modes()[1].device_scale_factor());
diff --git a/chromium/ui/display/manager/touch_device_manager.cc b/chromium/ui/display/manager/touch_device_manager.cc
index fc7499a38ca..4b2766bd236 100644
--- a/chromium/ui/display/manager/touch_device_manager.cc
+++ b/chromium/ui/display/manager/touch_device_manager.cc
@@ -11,6 +11,7 @@
#include "base/files/file_util.h"
#include "base/hash/hash.h"
+#include "base/logging.h"
#include "base/stl_util.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
diff --git a/chromium/ui/display/manager/touch_transform_controller.cc b/chromium/ui/display/manager/touch_transform_controller.cc
index 62ce69c4fc5..d2f07a537c6 100644
--- a/chromium/ui/display/manager/touch_transform_controller.cc
+++ b/chromium/ui/display/manager/touch_transform_controller.cc
@@ -7,6 +7,7 @@
#include <utility>
#include <vector>
+#include "base/logging.h"
#include "third_party/skia/include/core/SkMatrix44.h"
#include "ui/display/display_layout.h"
#include "ui/display/manager/display_manager.h"
diff --git a/chromium/ui/display/manager/update_display_configuration_task.cc b/chromium/ui/display/manager/update_display_configuration_task.cc
index 0dd56cd85de..bfee8b7d58e 100644
--- a/chromium/ui/display/manager/update_display_configuration_task.cc
+++ b/chromium/ui/display/manager/update_display_configuration_task.cc
@@ -5,6 +5,7 @@
#include "ui/display/manager/update_display_configuration_task.h"
#include "base/bind.h"
+#include "base/logging.h"
#include "base/metrics/histogram_functions.h"
#include "ui/display/manager/configure_displays_task.h"
#include "ui/display/manager/display_layout_manager.h"