1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// Use of this source code is governed by a BSD-style license that can be
306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// found in the LICENSE file.
406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "base/command_line.h"
606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "base/path_service.h"
706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "base/string16.h"
806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "base/utf_string_conversions.h"
906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "build/build_config.h"
1006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "chrome/common/chrome_paths.h"
1106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "chrome/common/chrome_switches.h"
12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "content/plugin/npobject_util.h"
1306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "googleurl/src/url_util.h"
1472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/base/l10n/l10n_util.h"
1572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/base/ui_base_switches.h"
1606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "webkit/glue/webkit_glue.h"
1706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
1806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochnamespace webkit_glue {
1906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
2006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochbool GetExeDirectory(FilePath* path) {
2106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  return PathService::Get(base::DIR_EXE, path);
2206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch}
2306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
2406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochbool GetApplicationDirectory(FilePath* path) {
2506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  return PathService::Get(chrome::DIR_APP, path);
2606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch}
2706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
2806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochbool IsPluginRunningInRendererProcess() {
2906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  return !IsPluginProcess();
3006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch}
3106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickstd::string GetWebKitLocale() {
3306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  // The browser process should have passed the locale to the renderer via the
3406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  // --lang command line flag.  In single process mode, this will return the
3506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  // wrong value.  TODO(tc): Fix this for single process mode.
3606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  const CommandLine& parsed_command_line = *CommandLine::ForCurrentProcess();
373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  const std::string& lang =
383345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick      parsed_command_line.GetSwitchValueASCII(switches::kLang);
3906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  DCHECK(!lang.empty() ||
4006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch      (!parsed_command_line.HasSwitch(switches::kRendererProcess) &&
4106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch       !parsed_command_line.HasSwitch(switches::kPluginProcess)));
4206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  return lang;
4306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch}
4406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
4506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochstring16 GetLocalizedString(int message_id) {
463345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick  return l10n_util::GetStringUTF16(message_id);
4706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch}
4806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
4906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch}  // namespace webkit_glue
50