summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/views/frame/native_browser_frame_factory.cc
blob: 45b1c75fb13fe24c731d929df834c9957f853a6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Copyright 2013 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/native_browser_frame_factory.h"

#include "build/build_config.h"
#include "chrome/browser/ui/views/frame/native_browser_frame.h"

namespace {

NativeBrowserFrameFactory* factory = nullptr;

}

// static
NativeBrowserFrame* NativeBrowserFrameFactory::CreateNativeBrowserFrame(
    BrowserFrame* browser_frame,
    BrowserView* browser_view) {
  if (!factory)
    factory = new NativeBrowserFrameFactory;
  return factory->Create(browser_frame, browser_view);
}

// static
void NativeBrowserFrameFactory::Set(NativeBrowserFrameFactory* new_factory) {
  delete factory;
  factory = new_factory;
}

#if !defined(OS_WIN)
// static
chrome::HostDesktopType NativeBrowserFrameFactory::AdjustHostDesktopType(
    chrome::HostDesktopType desktop_type) {
  return desktop_type;
}
#endif  // !defined(OS_WIN)

#if !defined(USE_ASH) || defined(OS_CHROMEOS)
// static
bool NativeBrowserFrameFactory::ShouldCreateForAshDesktop(
    BrowserView* browser_view) {
  NOTREACHED();
  return false;
}
#endif  // !defined(OS_WIN) || !defined(USE_ASH)