15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/ui/webui/options/chromeos/proxy_handler.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/callback.h"
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/stl_util.h"
10868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/time/time.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/values.h"
13558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "chrome/browser/chromeos/system/input_device_settings.h"
14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/common/chrome_constants.h"
151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/grit/generated_resources.h"
161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/grit/locale_settings.h"
17a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)#include "chromeos/chromeos_constants.h"
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/public/browser/web_ui.h"
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/base/l10n/l10n_util.h"
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chromeos {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace options {
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ProxyHandler::ProxyHandler() {
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ProxyHandler::~ProxyHandler() {
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void ProxyHandler::GetLocalizedValues(
315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    base::DictionaryValue* localized_strings) {
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DCHECK(localized_strings);
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Proxy page - ChromeOS
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  static OptionsStringResource resources[] = {
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "proxyPage", IDS_OPTIONS_PROXY_TAB_LABEL },
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "proxyDirectInternetConnection", IDS_PROXY_DIRECT_CONNECTION },
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "proxyManual", IDS_PROXY_MANUAL_CONFIG },
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "sameProxyProtocols", IDS_PROXY_SAME_FORALL },
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "httpProxy", IDS_PROXY_HTTP_PROXY },
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "secureHttpProxy", IDS_PROXY_HTTP_SECURE_HTTP_PROXY },
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "ftpProxy", IDS_PROXY_FTP_PROXY },
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "socksHost", IDS_PROXY_SOCKS_HOST },
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "proxyAutomatic", IDS_PROXY_AUTOMATIC },
45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    { "proxyUseConfigUrl", IDS_PROXY_USE_AUTOCONFIG_URL },
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "addHost", IDS_PROXY_ADD_HOST },
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "removeHost", IDS_PROXY_REMOVE_HOST },
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "proxyPort", IDS_PROXY_PORT },
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "proxyBypass", IDS_PROXY_BYPASS },
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "proxyBannerPolicy", IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_PROXY_POLICY },
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "proxyBannerExtension",
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_PROXY_EXTENSION },
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { "proxyBannerOther",
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_PROXY_OTHER_PRECEDE }
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  };
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  RegisterStrings(localized_strings, resources, arraysize(resources));
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  localized_strings->SetString("proxyBannerShared",
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      l10n_util::GetStringFUTF16(
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          IDS_OPTIONS_SETTINGS_INTERNET_OPTIONS_PROXY_ENABLE_SHARED_HINT,
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          l10n_util::GetStringUTF16(IDS_OPTIONS_SETTINGS_USE_SHARED_PROXIES)));
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void ProxyHandler::InitializePage() {
66c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  ::options::OptionsPageUIHandler::InitializePage();
67c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
68558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch  bool keyboard_driven_oobe =
695d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)      system::InputDeviceSettings::Get()->ForceKeyboardDrivenUINavigation();
70c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  if (keyboard_driven_oobe) {
71c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    web_ui()->CallJavascriptFunction(
72c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)        "DetailsInternetPage.initializeKeyboardFlow");
73c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  }
74c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace options
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace chromeos
78