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_PASTE,
28    IDC_ZOOM_PLUS,
29    IDC_ZOOM_NORMAL,
30    IDC_ZOOM_MINUS,
31  };
32
33  for (size_t i = 0; i < arraysize(kAllowed); ++i) {
34    if (kAllowed[i] == command_id)
35      return true;
36  }
37
38  return false;
39}
40
41bool IsRunningInAppMode() {
42  CommandLine* command_line = CommandLine::ForCurrentProcess();
43  return command_line->HasSwitch(switches::kKioskMode) ||
44      IsRunningInForcedAppMode();
45}
46
47bool IsRunningInForcedAppMode() {
48  CommandLine* command_line = CommandLine::ForCurrentProcess();
49  return command_line->HasSwitch(switches::kForceAppMode) &&
50      command_line->HasSwitch(switches::kAppId);
51}
52
53}  // namespace chrome
54