12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/app_mode/app_mode_utils.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h"
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/command_line.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/logging.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/app/chrome_command_ids.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/common/chrome_switches.h"
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace chrome {
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool IsCommandAllowedInAppMode(int command_id) {
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  DCHECK(IsRunningInForcedAppMode());
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  const int kAllowed[] = {
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_BACK,
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_FORWARD,
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_RELOAD,
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_STOP,
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_RELOAD_IGNORING_CACHE,
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_RELOAD_CLEARING_CACHE,
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_CUT,
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_COPY,
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_PASTE,
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_ZOOM_PLUS,
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_ZOOM_NORMAL,
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    IDC_ZOOM_MINUS,
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  };
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  for (size_t i = 0; i < arraysize(kAllowed); ++i) {
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    if (kAllowed[i] == command_id)
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      return true;
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return false;
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool IsRunningInAppMode() {
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  CommandLine* command_line = CommandLine::ForCurrentProcess();
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return command_line->HasSwitch(switches::kKioskMode) ||
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      IsRunningInForcedAppMode();
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool IsRunningInForcedAppMode() {
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  CommandLine* command_line = CommandLine::ForCurrentProcess();
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return command_line->HasSwitch(switches::kForceAppMode) &&
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      command_line->HasSwitch(switches::kAppId);
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}  // namespace chrome
54