app_mode_utils.cc revision 2a99a7e74a7f215066514fe81d2bfa6639d9eddd
1// Copyright (c) 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/app_mode/app_mode_utils.h"
6
7#include "base/basictypes.h"
8#include "base/command_line.h"
9#include "base/logging.h"
10#include "chrome/app/chrome_command_ids.h"
11#include "chrome/common/chrome_switches.h"
12
13namespace chrome {
14
15bool IsCommandAllowedInAppMode(int command_id) {
16  DCHECK(IsRunningInForcedAppMode());
17
18  const int kAllowed[] = {
19    IDC_BACK,
20    IDC_FORWARD,
21    IDC_RELOAD,
22    IDC_STOP,
23    IDC_RELOAD_IGNORING_CACHE,
24    IDC_RELOAD_CLEARING_CACHE,
25    IDC_CUT,
26    IDC_COPY,
27    IDC_COPY_URL,
28    IDC_PASTE,
29    IDC_ZOOM_PLUS,
30    IDC_ZOOM_NORMAL,
31    IDC_ZOOM_MINUS,
32  };
33
34  for (size_t i = 0; i < arraysize(kAllowed); ++i) {
35    if (kAllowed[i] == command_id)
36      return true;
37  }
38
39  return false;
40}
41
42bool IsRunningInAppMode() {
43  CommandLine* command_line = CommandLine::ForCurrentProcess();
44  return command_line->HasSwitch(switches::kKioskMode) ||
45      IsRunningInForcedAppMode();
46}
47
48bool IsRunningInForcedAppMode() {
49  CommandLine* command_line = CommandLine::ForCurrentProcess();
50  return command_line->HasSwitch(switches::kForceAppMode) &&
51      command_line->HasSwitch(switches::kAppId);
52}
53
54bool ShouldForceFullscreenApp() {
55  CommandLine* command_line = CommandLine::ForCurrentProcess();
56  return IsRunningInForcedAppMode() &&
57      !command_line->HasSwitch(switches::kDisableFullscreenApp);
58}
59
60}  // namespace switches
61