command_line_private_api.cc revision 5c02ac1a9c1b504631c0a3d2b6e737b5d738bae1
1// Copyright 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/extensions/api/command_line_private/command_line_private_api.h" 6 7#include <string> 8 9#include "base/command_line.h" 10#include "base/memory/scoped_ptr.h" 11#include "base/values.h" 12#include "chrome/common/extensions/api/command_line_private.h" 13 14namespace { 15// This should be consistent with 16// chrome/test/data/extensions/api_test/command_line/basics/test.js. 17const char kEmptySwitchName[] = "Switch name is empty."; 18} // namespace 19 20namespace extensions { 21 22namespace command_line_private = api::command_line_private; 23 24bool CommandLinePrivateHasSwitchFunction::RunSync() { 25 scoped_ptr<command_line_private::HasSwitch::Params> params( 26 command_line_private::HasSwitch::Params::Create(*args_)); 27 EXTENSION_FUNCTION_VALIDATE(params); 28 29 if (params->name.empty()) { 30 error_ = kEmptySwitchName; 31 return false; 32 } 33 34 results_ = command_line_private::HasSwitch::Results::Create( 35 CommandLine::ForCurrentProcess()->HasSwitch(params->name)); 36 return true; 37} 38 39} // namespace extensions 40