Commit a04e5845 authored by Ian Vollick's avatar Ian Vollick Committed by Commit Bot

[vr] Use alternate colors for environments with gradients

This CL uses base::Versions built-in comparison logic rather than
my incorrect, hand-rolled code. It also swaps out the color scheme
when the component has a gradient.

Also reduces the number of stars used with these environments.

Bug: 806452,806471
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_vr;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I250692105e680e1f3d0fee372f6886f35f2ced95
Reviewed-on: https://chromium-review.googlesource.com/889842
Commit-Queue: Ian Vollick <vollick@chromium.org>
Reviewed-by: default avatarTibor Goldschwendt <tiborg@chromium.org>
Reviewed-by: default avatarChristopher Grant <cjgrant@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532240}
parent c646e48f
......@@ -10,7 +10,6 @@
#include "base/task_scheduler/task_traits.h"
#include "base/threading/thread_task_runner_handle.h"
#include "base/values.h"
#include "base/version.h"
#include "chrome/browser/vr/metrics_helper.h"
#include "chrome/browser/vr/model/assets.h"
#include "content/public/browser/browser_thread.h"
......@@ -35,8 +34,7 @@ static const base::FilePath::CharType kPngExtension[] =
static const base::FilePath::CharType kJpegExtension[] =
FILE_PATH_LITERAL("jpeg");
constexpr uint32_t kMinMinorVersionWithGradients = 1;
constexpr uint32_t kMinMajorVersionWithGradients = 1;
constexpr char kMinVersionWithGradients[] = "1.1";
} // namespace
......@@ -51,6 +49,11 @@ AssetsLoader* AssetsLoader::GetInstance() {
return base::Singleton<AssetsLoader, AssetsLoaderSingletonTrait>::get();
}
// static
base::Version AssetsLoader::MinVersionWithGradients() {
return base::Version(kMinVersionWithGradients);
}
void AssetsLoader::OnComponentReady(
const base::Version& version,
const base::FilePath& install_dir,
......@@ -146,8 +149,7 @@ void AssetsLoader::LoadAssetsTask(
status = LoadImage(component_install_dir, kBackgroundBaseFilename,
&assets->background);
if (component_version.components()[0] >= kMinMajorVersionWithGradients &&
component_version.components()[1] >= kMinMinorVersionWithGradients) {
if (component_version >= AssetsLoader::MinVersionWithGradients()) {
if (status == AssetsLoadStatus::kSuccess) {
status = LoadImage(component_install_dir, kNormalGradientBaseFilename,
&assets->normal_gradient);
......
......@@ -46,6 +46,8 @@ class AssetsLoader {
// Returns the single assets instance and creates it on first call.
static AssetsLoader* GetInstance();
static base::Version MinVersionWithGradients();
// Tells VR assets that a new VR assets component version is ready for use.
void OnComponentReady(const base::Version& version,
const base::FilePath& install_dir,
......
......@@ -14,7 +14,7 @@
namespace vr {
namespace {
constexpr size_t kNumStars = 2000lu;
constexpr size_t kNumStars = 500lu;
// Position & opacity.
constexpr size_t kFloatsPerStarVertex = 5lu;
......
......@@ -6,6 +6,7 @@
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "chrome/browser/vr/assets_loader.h"
#include "ui/gfx/color_palette.h"
namespace vr {
......@@ -314,4 +315,81 @@ const ColorScheme& ColorScheme::GetColorScheme(ColorScheme::Mode mode) {
return g_normal_scheme.Get();
}
void ColorScheme::UpdateForComponent(const base::Version& component_version) {
if (component_version >= AssetsLoader::MinVersionWithGradients()) {
ColorScheme& normal_scheme = g_normal_scheme.Get();
normal_scheme.element_background = 0xFFEEEEEE;
normal_scheme.element_background_hover = 0xFFFFFFFF;
normal_scheme.button_colors.foreground = 0xA6000000;
normal_scheme.button_colors.background = 0xCCEEEEEE;
normal_scheme.button_colors.foreground_disabled = 0x33000000;
normal_scheme.url_bar_separator = 0xFFD0D0D0;
normal_scheme.url_bar.emphasized = 0xFF333333;
normal_scheme.url_bar.deemphasized = 0x61333333;
normal_scheme.back_button.background = normal_scheme.element_background;
normal_scheme.back_button.background_down =
normal_scheme.element_background_down;
normal_scheme.back_button.background_hover =
normal_scheme.element_background_hover;
normal_scheme.back_button.foreground = normal_scheme.element_foreground;
normal_scheme.back_button.foreground_disabled = 0x33333333;
normal_scheme.button_colors.background = normal_scheme.element_background;
normal_scheme.button_colors.background_hover =
normal_scheme.element_background_hover;
normal_scheme.button_colors.background_down =
normal_scheme.element_background_down;
normal_scheme.system_indicator_foreground =
normal_scheme.element_foreground;
normal_scheme.system_indicator_background =
normal_scheme.element_background;
normal_scheme.audio_permission_prompt_secondary_button_colors
.foreground_disabled = normal_scheme.button_colors.foreground_disabled;
normal_scheme.audio_permission_prompt_secondary_button_colors.background =
normal_scheme.audio_permission_prompt_background;
ColorScheme& incognito_scheme = g_incognito_scheme.Get();
incognito_scheme.element_foreground = 0xA6FFFFFF;
incognito_scheme.element_background = 0xFF263238;
incognito_scheme.element_background_hover = 0xCC404A50;
incognito_scheme.element_background_down = 0xCC212B31;
incognito_scheme.url_bar_separator = 0xFF445056;
incognito_scheme.url_bar.deemphasized = 0x80FFFFFF;
incognito_scheme.url_bar.emphasized = 0xCCFFFFFF;
incognito_scheme.url_bar.separator = 0xFF445056;
incognito_scheme.url_bar.default_icon = 0xA7FFFFFF;
incognito_scheme.url_bar.dangerous_icon = 0xA7FFFFFF;
incognito_scheme.url_bar.offline_page_warning = 0xA7FFFFFF;
incognito_scheme.omnibox_background = incognito_scheme.element_background;
incognito_scheme.omnibox_icon = 0xA7FFFFFF;
incognito_scheme.button_colors.background =
incognito_scheme.element_background;
incognito_scheme.button_colors.background_hover =
incognito_scheme.element_background_hover;
incognito_scheme.button_colors.background_down =
incognito_scheme.element_background_down;
incognito_scheme.system_indicator_foreground =
incognito_scheme.element_foreground;
incognito_scheme.system_indicator_background =
incognito_scheme.element_background;
incognito_scheme.back_button.background =
incognito_scheme.element_background;
incognito_scheme.back_button.background_down =
incognito_scheme.element_background_down;
incognito_scheme.back_button.background_hover = 0xFF445056;
incognito_scheme.back_button.foreground =
incognito_scheme.element_foreground;
incognito_scheme.suggestion_button_colors.foreground =
incognito_scheme.suggestion_text;
incognito_scheme.suggestion_button_colors.background =
incognito_scheme.omnibox_background;
incognito_scheme.suggestion_button_colors.background_hover = 0xFF3A464C;
incognito_scheme.suggestion_button_colors.background_down = 0xFF3A464C;
}
}
} // namespace vr
......@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_VR_MODEL_COLOR_SCHEME_H_
#define CHROME_BROWSER_VR_MODEL_COLOR_SCHEME_H_
#include "base/version.h"
#include "third_party/skia/include/core/SkColor.h"
namespace vr {
......@@ -43,6 +44,7 @@ struct ColorScheme {
};
static const ColorScheme& GetColorScheme(Mode mode);
static void UpdateForComponent(const base::Version& component_version);
ColorScheme();
ColorScheme(const ColorScheme& other);
......
......@@ -366,6 +366,7 @@ void Ui::OnAssetsLoaded(AssetsLoadStatus status,
std::move(assets->incognito_gradient),
std::move(assets->fullscreen_gradient));
ColorScheme::UpdateForComponent(component_version);
model_->background_loaded = true;
}
......
......@@ -1647,7 +1647,6 @@ void UiSceneCreator::CreateOmnibox() {
auto omnibox_outer_layout = std::make_unique<LinearLayout>(LinearLayout::kUp);
omnibox_outer_layout->set_hit_testable(false);
omnibox_outer_layout->SetName(kOmniboxOuterLayout);
omnibox_outer_layout->set_margin(kSuggestionGapDMM);
omnibox_outer_layout->SetTranslate(
0, kUrlBarVerticalOffsetDMM - 0.5f * kOmniboxHeightDMM,
kOmniboxShadowOffset);
......@@ -1663,6 +1662,13 @@ void UiSceneCreator::CreateOmnibox() {
},
omnibox_outer_layout.get())));
auto omnibox_outer_layout_spacer = Create<Rect>(kNone, kPhaseForeground);
omnibox_outer_layout_spacer->SetSize(kOmniboxWidthDMM, kSuggestionGapDMM);
VR_BIND_COLOR(model_, omnibox_outer_layout_spacer.get(),
&ColorScheme::url_bar_separator, &Rect::SetColor);
VR_BIND_VISIBILITY(omnibox_outer_layout_spacer,
!model->omnibox_suggestions.empty());
auto omnibox_container = std::make_unique<Rect>();
omnibox_container->SetName(kOmniboxContainer);
omnibox_container->SetDrawPhase(kPhaseForeground);
......@@ -1841,6 +1847,7 @@ void UiSceneCreator::CreateOmnibox() {
omnibox_container->AddChild(std::move(text_field_layout));
omnibox_outer_layout->AddChild(std::move(omnibox_container));
omnibox_outer_layout->AddChild(std::move(omnibox_outer_layout_spacer));
omnibox_outer_layout->AddChild(std::move(suggestions_outer_layout));
shadow->AddChild(std::move(omnibox_outer_layout));
......
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