Commit f6b08610 authored by Sadrul Habib Chowdhury's avatar Sadrul Habib Chowdhury Committed by Commit Bot

mus/aura: Make sure the root window always has a valid LocalSurfaceId.

When running with mus, and mus is not hosting viz, aura has to generate
the LocalSurfaceId. It needs to make sure the root window always has a
valid LocalSurfaceId, because that's what is fed into ui::Compositor,
and without a valid id, it never shows anything on screen.

BUG=786453

Change-Id: Ie075246937f7e607afdc945ea1cea0b021595e50
Reviewed-on: https://chromium-review.googlesource.com/807886Reviewed-by: default avatarScott Violet <sky@chromium.org>
Commit-Queue: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521762}
parent 449f246d
......@@ -17,6 +17,7 @@
#include "ui/aura/window.h"
#include "ui/aura/window_delegate.h"
#include "ui/aura/window_observer.h"
#include "ui/aura/window_tree_host.h"
#include "ui/base/class_property.h"
#include "ui/base/ui_base_switches_util.h"
#include "ui/display/display.h"
......@@ -401,7 +402,12 @@ void WindowPortMus::AllocateLocalSurfaceId() {
}
const viz::LocalSurfaceId& WindowPortMus::GetLocalSurfaceId() {
return local_surface_id_;
if (switches::IsMusHostingViz())
return local_surface_id_;
if (window_->GetRootWindow() != window_)
return local_surface_id_;
return GetOrAllocateLocalSurfaceId(
window_->GetHost()->GetBoundsInPixels().size());
}
std::unique_ptr<WindowMusChangeData>
......
......@@ -35,6 +35,7 @@
#include "ui/aura/window_tree_host.h"
#include "ui/base/class_property.h"
#include "ui/base/hit_test.h"
#include "ui/base/ui_base_switches_util.h"
#include "ui/compositor/layer.h"
#include "ui/compositor/layer_animation_observer.h"
#include "ui/compositor/layer_animator.h"
......@@ -420,6 +421,11 @@ TEST_P(WindowTest, ContainsMouse) {
EXPECT_FALSE(w_test_api.ContainsMouse());
}
// Tests that the root window gets a valid LocalSurfaceId.
TEST_P(WindowTest, RootWindowHasValidLocalSurfaceId) {
EXPECT_TRUE(root_window()->GetLocalSurfaceId().is_valid());
}
// Test Window::ConvertPointToWindow() with transform to root_window.
TEST_P(WindowTest, MoveCursorToWithTransformRootWindow) {
gfx::Transform transform;
......
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