| Index: chrome/browser/encoding_menu_controller.cc
 | 
| ===================================================================
 | 
| --- chrome/browser/encoding_menu_controller.cc	(revision 68008)
 | 
| +++ chrome/browser/encoding_menu_controller.cc	(working copy)
 | 
| @@ -1,141 +0,0 @@
 | 
| -// Copyright (c) 2009 The Chromium Authors. All rights reserved.
 | 
| -// Use of this source code is governed by a BSD-style license that can be
 | 
| -// found in the LICENSE file.
 | 
| -
 | 
| -#include "chrome/browser/encoding_menu_controller.h"
 | 
| -
 | 
| -#include "app/l10n_util.h"
 | 
| -#include "base/i18n/rtl.h"
 | 
| -#include "base/utf_string_conversions.h"
 | 
| -#include "chrome/app/chrome_command_ids.h"
 | 
| -#include "chrome/browser/browser_process.h"
 | 
| -#include "chrome/browser/character_encoding.h"
 | 
| -#include "chrome/browser/prefs/pref_service.h"
 | 
| -#include "chrome/browser/profile.h"
 | 
| -#include "chrome/common/pref_names.h"
 | 
| -#include "grit/generated_resources.h"
 | 
| -
 | 
| -const int EncodingMenuController::kValidEncodingIds[] = {
 | 
| -    IDC_ENCODING_UTF8,
 | 
| -    IDC_ENCODING_UTF16LE,
 | 
| -    IDC_ENCODING_ISO88591,
 | 
| -    IDC_ENCODING_WINDOWS1252,
 | 
| -    IDC_ENCODING_GBK,
 | 
| -    IDC_ENCODING_GB18030,
 | 
| -    IDC_ENCODING_BIG5,
 | 
| -    IDC_ENCODING_BIG5HKSCS,
 | 
| -    IDC_ENCODING_KOREAN,
 | 
| -    IDC_ENCODING_SHIFTJIS,
 | 
| -    IDC_ENCODING_ISO2022JP,
 | 
| -    IDC_ENCODING_EUCJP,
 | 
| -    IDC_ENCODING_THAI,
 | 
| -    IDC_ENCODING_ISO885915,
 | 
| -    IDC_ENCODING_MACINTOSH,
 | 
| -    IDC_ENCODING_ISO88592,
 | 
| -    IDC_ENCODING_WINDOWS1250,
 | 
| -    IDC_ENCODING_ISO88595,
 | 
| -    IDC_ENCODING_WINDOWS1251,
 | 
| -    IDC_ENCODING_KOI8R,
 | 
| -    IDC_ENCODING_KOI8U,
 | 
| -    IDC_ENCODING_ISO88597,
 | 
| -    IDC_ENCODING_WINDOWS1253,
 | 
| -    IDC_ENCODING_ISO88594,
 | 
| -    IDC_ENCODING_ISO885913,
 | 
| -    IDC_ENCODING_WINDOWS1257,
 | 
| -    IDC_ENCODING_ISO88593,
 | 
| -    IDC_ENCODING_ISO885910,
 | 
| -    IDC_ENCODING_ISO885914,
 | 
| -    IDC_ENCODING_ISO885916,
 | 
| -    IDC_ENCODING_WINDOWS1254,
 | 
| -    IDC_ENCODING_ISO88596,
 | 
| -    IDC_ENCODING_WINDOWS1256,
 | 
| -    IDC_ENCODING_ISO88598,
 | 
| -    IDC_ENCODING_WINDOWS1255,
 | 
| -    IDC_ENCODING_WINDOWS1258,
 | 
| -    IDC_ENCODING_ISO88598I,
 | 
| -};
 | 
| -
 | 
| -bool EncodingMenuController::DoesCommandBelongToEncodingMenu(int id) {
 | 
| -  if (id == IDC_ENCODING_AUTO_DETECT) {
 | 
| -    return true;
 | 
| -  }
 | 
| -
 | 
| -  for (size_t i = 0; i < arraysize(kValidEncodingIds); ++i) {
 | 
| -    if (id == kValidEncodingIds[i]) {
 | 
| -      return true;
 | 
| -    }
 | 
| -  }
 | 
| -
 | 
| -  return false;
 | 
| -}
 | 
| -
 | 
| -const int* EncodingMenuController::ValidGUIEncodingIDs() {
 | 
| -  return kValidEncodingIds;
 | 
| -}
 | 
| -
 | 
| -int EncodingMenuController::NumValidGUIEncodingIDs() {
 | 
| -  return arraysize(kValidEncodingIds);
 | 
| -}
 | 
| -
 | 
| -bool EncodingMenuController::IsItemChecked(
 | 
| -    Profile* browser_profile,
 | 
| -    const std::string& current_tab_encoding,
 | 
| -    int item_id) {
 | 
| -  if (!DoesCommandBelongToEncodingMenu(item_id))
 | 
| -    return false;
 | 
| -
 | 
| -  std::string encoding = current_tab_encoding;
 | 
| -  if (encoding.empty())
 | 
| -    encoding = browser_profile->GetPrefs()->GetString(prefs::kDefaultCharset);
 | 
| -
 | 
| -  if (item_id == IDC_ENCODING_AUTO_DETECT) {
 | 
| -    return browser_profile->GetPrefs()->GetBoolean(
 | 
| -        prefs::kWebKitUsesUniversalDetector);
 | 
| -  }
 | 
| -
 | 
| -  if (!encoding.empty()) {
 | 
| -    return encoding ==
 | 
| -        CharacterEncoding::GetCanonicalEncodingNameByCommandId(item_id);
 | 
| -  }
 | 
| -
 | 
| -  return false;
 | 
| -}
 | 
| -
 | 
| -void EncodingMenuController::GetEncodingMenuItems(Profile* profile,
 | 
| -    EncodingMenuItemList* menuItems) {
 | 
| -
 | 
| -  DCHECK(menuItems);
 | 
| -  EncodingMenuItem separator(0, string16());
 | 
| -
 | 
| -  menuItems->clear();
 | 
| -  menuItems->push_back(
 | 
| -      EncodingMenuItem(IDC_ENCODING_AUTO_DETECT,
 | 
| -                       l10n_util::GetStringUTF16(IDS_ENCODING_AUTO_DETECT)));
 | 
| -  menuItems->push_back(separator);
 | 
| -
 | 
| -  // Create current display encoding list.
 | 
| -  const std::vector<CharacterEncoding::EncodingInfo>* encodings;
 | 
| -
 | 
| -  // Build the list of encoding ids : It is made of the
 | 
| -  // locale-dependent short list, the cache of recently selected
 | 
| -  // encodings and other encodings.
 | 
| -  encodings = CharacterEncoding::GetCurrentDisplayEncodings(
 | 
| -      g_browser_process->GetApplicationLocale(),
 | 
| -      profile->GetPrefs()->GetString(prefs::kStaticEncodings),
 | 
| -      profile->GetPrefs()->GetString(prefs::kRecentlySelectedEncoding));
 | 
| -  DCHECK(encodings);
 | 
| -  DCHECK(!encodings->empty());
 | 
| -
 | 
| -  // Build up output list for menu.
 | 
| -  std::vector<CharacterEncoding::EncodingInfo>::const_iterator it;
 | 
| -  for (it = encodings->begin(); it != encodings->end(); ++it) {
 | 
| -    if (it->encoding_id) {
 | 
| -      std::wstring encoding = it->encoding_display_name;
 | 
| -      base::i18n::AdjustStringForLocaleDirection(&encoding);
 | 
| -      menuItems->push_back(EncodingMenuItem(it->encoding_id,
 | 
| -                                            WideToUTF16(encoding)));
 | 
| -    } else {
 | 
| -      menuItems->push_back(separator);
 | 
| -    }
 | 
| -  }
 | 
| -}
 | 
| 
 |