| Index: chrome/browser/ui/views/frame/browser_frame_android.cc
|
| diff --git a/chrome/browser/ui/views/frame/browser_frame_android.cc b/chrome/browser/ui/views/frame/browser_frame_android.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..883ee6781473c5a117f7d8a4dc82c1825afd2fd0
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/views/frame/browser_frame_android.cc
|
| @@ -0,0 +1,80 @@
|
| +// Copyright 2015 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/ui/views/frame/browser_frame_android.h"
|
| +
|
| +#include "chrome/browser/ui/views/frame/browser_shutdown.h"
|
| +#include "chrome/browser/ui/views/frame/browser_view.h"
|
| +#include "ui/aura/window.h"
|
| +#include "ui/aura/window_tree_host_platform.h"
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +// BrowserFrameAndroid, public:
|
| +
|
| +// static
|
| +const char BrowserFrameAndroid::kWindowName[] = "BrowserFrameAndroid";
|
| +
|
| +namespace {
|
| +// |g_host| should be set before browser frame instantiation. It is used to get
|
| +// the window which is needed for creating the widget for the browser frame.
|
| +// TODO(moshayedi): crbug.com/551055. This is temporary until we have
|
| +// multi-window support.
|
| +aura::WindowTreeHostPlatform* g_host = nullptr;
|
| +}
|
| +
|
| +BrowserFrameAndroid::BrowserFrameAndroid(BrowserFrame* browser_frame,
|
| + BrowserView* browser_view)
|
| + : views::NativeWidgetAura(browser_frame), browser_view_(browser_view) {
|
| + GetNativeWindow()->SetName(kWindowName);
|
| +}
|
| +
|
| +// static
|
| +void BrowserFrameAndroid::SetHost(aura::WindowTreeHostPlatform* host) {
|
| + g_host = host;
|
| +}
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +// BrowserFrameAndroid, views::NativeWidgetAura overrides:
|
| +
|
| +void BrowserFrameAndroid::OnWindowDestroying(aura::Window* window) {
|
| + // Destroy any remaining WebContents early on. Doing so may result in
|
| + // calling back to one of the Views/LayoutManagers or supporting classes of
|
| + // BrowserView. By destroying here we ensure all said classes are valid.
|
| + DestroyBrowserWebContents(browser_view_->browser());
|
| + NativeWidgetAura::OnWindowDestroying(window);
|
| +}
|
| +
|
| +////////////////////////////////////////////////////////////////////////////////
|
| +// BrowserFrameAndroid, NativeBrowserFrame implementation:
|
| +
|
| +views::Widget::InitParams BrowserFrameAndroid::GetWidgetParams() {
|
| + DCHECK(g_host);
|
| +
|
| + views::Widget::InitParams params;
|
| + params.native_widget = this;
|
| + params.context = g_host->window();
|
| + return params;
|
| +}
|
| +
|
| +bool BrowserFrameAndroid::UseCustomFrame() const {
|
| + return true;
|
| +}
|
| +
|
| +bool BrowserFrameAndroid::UsesNativeSystemMenu() const {
|
| + return false;
|
| +}
|
| +
|
| +int BrowserFrameAndroid::GetMinimizeButtonOffset() const {
|
| + return 0;
|
| +}
|
| +
|
| +bool BrowserFrameAndroid::ShouldSaveWindowPlacement() const {
|
| + return false;
|
| +}
|
| +
|
| +void BrowserFrameAndroid::GetWindowPlacement(
|
| + gfx::Rect* bounds,
|
| + ui::WindowShowState* show_state) const {}
|
| +
|
| +BrowserFrameAndroid::~BrowserFrameAndroid() {}
|
|
|