Commit 0b8f7f4c authored by Antonio Gomes's avatar Antonio Gomes Committed by Commit Bot

Introduce SnapControllerLacros

Implementation is stubbed out today, but still needed so that
BrowserNonClientFrameViewChromeOS can be adopted on lacros builds.

SnapControllerLacros inherits the pure virtual
chromeos::SnapController, and "maximizing" lacros chrome windows
require an instance to exist (held by ChromeBrowserMainExtraPartsViewsLacros).

Similarly to ash::SnapControllerImpl, SnapControllerLacros
is created from the newly added
ChromeBrowserMainExtraPartsViewsLacros::PreProfileInit().

BUG=1113900
R=jamescook@chromium.org

Change-Id: I86a034ddcba7c12c3a7d7b2736058476c2db3ba2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2547045
Commit-Queue: Antonio Gomes <tonikitoo@igalia.com>
Reviewed-by: default avatarJames Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#828976}
parent 05801f76
...@@ -4517,6 +4517,8 @@ static_library("browser") { ...@@ -4517,6 +4517,8 @@ static_library("browser") {
"lacros/immersive_context_lacros.h", "lacros/immersive_context_lacros.h",
"lacros/lacros_chrome_service_delegate_impl.cc", "lacros/lacros_chrome_service_delegate_impl.cc",
"lacros/lacros_chrome_service_delegate_impl.h", "lacros/lacros_chrome_service_delegate_impl.h",
"lacros/snap_controller_lacros.cc",
"lacros/snap_controller_lacros.h",
"lacros/system_logs/lacros_system_log_fetcher.cc", "lacros/system_logs/lacros_system_log_fetcher.cc",
"lacros/system_logs/lacros_system_log_fetcher.h", "lacros/system_logs/lacros_system_log_fetcher.h",
"metrics/enrollment_status.h", "metrics/enrollment_status.h",
......
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/lacros/snap_controller_lacros.h"
#include "base/notreached.h"
SnapControllerLacros::SnapControllerLacros() = default;
SnapControllerLacros::~SnapControllerLacros() = default;
bool SnapControllerLacros::CanSnap(aura::Window* window) {
NOTIMPLEMENTED();
return false;
}
void SnapControllerLacros::ShowSnapPreview(aura::Window* window,
chromeos::SnapDirection snap) {
NOTIMPLEMENTED();
}
void SnapControllerLacros::CommitSnap(aura::Window* window,
chromeos::SnapDirection snap) {
NOTIMPLEMENTED();
}
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_LACROS_SNAP_CONTROLLER_LACROS_H_
#define CHROME_BROWSER_LACROS_SNAP_CONTROLLER_LACROS_H_
#include "chromeos/ui/frame/caption_buttons/snap_controller.h"
// Stub Lacros implementation of chromeos::SnapController.
class SnapControllerLacros : public chromeos::SnapController {
public:
SnapControllerLacros();
SnapControllerLacros(const SnapControllerLacros&) = delete;
SnapControllerLacros& operator=(const SnapControllerLacros&) = delete;
~SnapControllerLacros() override;
// chromeos::SnapController:
bool CanSnap(aura::Window* window) override;
void ShowSnapPreview(aura::Window* window,
chromeos::SnapDirection snap) override;
void CommitSnap(aura::Window* window, chromeos::SnapDirection snap) override;
};
#endif // CHROME_BROWSER_LACROS_SNAP_CONTROLLER_LACROS_H_
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_lacros.h" #include "chrome/browser/ui/views/chrome_browser_main_extra_parts_views_lacros.h"
#include "chrome/browser/lacros/immersive_context_lacros.h" #include "chrome/browser/lacros/immersive_context_lacros.h"
#include "chrome/browser/lacros/snap_controller_lacros.h"
#include "chromeos/ui/base/tablet_state.h" #include "chromeos/ui/base/tablet_state.h"
ChromeBrowserMainExtraPartsViewsLacros:: ChromeBrowserMainExtraPartsViewsLacros::
...@@ -15,6 +16,7 @@ ChromeBrowserMainExtraPartsViewsLacros:: ...@@ -15,6 +16,7 @@ ChromeBrowserMainExtraPartsViewsLacros::
void ChromeBrowserMainExtraPartsViewsLacros::PreProfileInit() { void ChromeBrowserMainExtraPartsViewsLacros::PreProfileInit() {
immersive_context_ = std::make_unique<ImmersiveContextLacros>(); immersive_context_ = std::make_unique<ImmersiveContextLacros>();
snap_controller_ = std::make_unique<SnapControllerLacros>();
tablet_state_ = std::make_unique<chromeos::TabletState>(); tablet_state_ = std::make_unique<chromeos::TabletState>();
ChromeBrowserMainExtraPartsViews::PreProfileInit(); ChromeBrowserMainExtraPartsViews::PreProfileInit();
......
...@@ -14,6 +14,7 @@ class TabletState; ...@@ -14,6 +14,7 @@ class TabletState;
} }
class ImmersiveContextLacros; class ImmersiveContextLacros;
class SnapControllerLacros;
class ChromeBrowserMainExtraPartsViewsLacros class ChromeBrowserMainExtraPartsViewsLacros
: public ChromeBrowserMainExtraPartsViews { : public ChromeBrowserMainExtraPartsViews {
...@@ -30,6 +31,7 @@ class ChromeBrowserMainExtraPartsViewsLacros ...@@ -30,6 +31,7 @@ class ChromeBrowserMainExtraPartsViewsLacros
void PreProfileInit() override; void PreProfileInit() override;
std::unique_ptr<ImmersiveContextLacros> immersive_context_; std::unique_ptr<ImmersiveContextLacros> immersive_context_;
std::unique_ptr<SnapControllerLacros> snap_controller_;
std::unique_ptr<chromeos::TabletState> tablet_state_; std::unique_ptr<chromeos::TabletState> tablet_state_;
}; };
......
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