diff options
Diffstat (limited to 'chrome/browser/app_mode/app_mode_utils.cc')
-rw-r--r-- | chrome/browser/app_mode/app_mode_utils.cc | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/chrome/browser/app_mode/app_mode_utils.cc b/chrome/browser/app_mode/app_mode_utils.cc index ca3baa5..c4cdeb2 100644 --- a/chrome/browser/app_mode/app_mode_utils.cc +++ b/chrome/browser/app_mode/app_mode_utils.cc @@ -4,16 +4,51 @@ #include "chrome/browser/app_mode/app_mode_utils.h" +#include "base/basictypes.h" #include "base/command_line.h" +#include "base/logging.h" +#include "chrome/app/chrome_command_ids.h" #include "chrome/common/chrome_switches.h" namespace chrome { +bool IsCommandAllowedInAppMode(int command_id) { + DCHECK(IsRunningInForcedAppMode()); + + const int kAllowed[] = { + IDC_BACK, + IDC_FORWARD, + IDC_RELOAD, + IDC_STOP, + IDC_RELOAD_IGNORING_CACHE, + IDC_RELOAD_CLEARING_CACHE, + IDC_CUT, + IDC_COPY, + IDC_COPY_URL, + IDC_PASTE, + IDC_ZOOM_PLUS, + IDC_ZOOM_NORMAL, + IDC_ZOOM_MINUS, + }; + + for (size_t i = 0; i < arraysize(kAllowed); ++i) { + if (kAllowed[i] == command_id) + return true; + } + + return false; +} + bool IsRunningInAppMode() { CommandLine* command_line = CommandLine::ForCurrentProcess(); return command_line->HasSwitch(switches::kKioskMode) || - (command_line->HasSwitch(switches::kForceAppMode) && - command_line->HasSwitch(switches::kAppId)); + IsRunningInForcedAppMode(); +} + +bool IsRunningInForcedAppMode() { + CommandLine* command_line = CommandLine::ForCurrentProcess(); + return command_line->HasSwitch(switches::kForceAppMode) && + command_line->HasSwitch(switches::kAppId); } } // namespace switches |