| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/geolocation/geolocation_exceptions_table_model.h" | 5 #include "chrome/browser/geolocation/geolocation_exceptions_table_model.h" |
| 6 | 6 |
| 7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
| 8 #include "app/l10n_util_collator.h" | 8 #include "app/l10n_util_collator.h" |
| 9 #include "app/table_model_observer.h" | 9 #include "app/table_model_observer.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 entries_.clear(); | 131 entries_.clear(); |
| 132 map_->ResetToDefault(); | 132 map_->ResetToDefault(); |
| 133 if (observer_) | 133 if (observer_) |
| 134 observer_->OnItemsRemoved(0, old_row_count); | 134 observer_->OnItemsRemoved(0, old_row_count); |
| 135 } | 135 } |
| 136 | 136 |
| 137 int GeolocationExceptionsTableModel::RowCount() { | 137 int GeolocationExceptionsTableModel::RowCount() { |
| 138 return entries_.size(); | 138 return entries_.size(); |
| 139 } | 139 } |
| 140 | 140 |
| 141 std::wstring GeolocationExceptionsTableModel::GetText(int row, | 141 string16 GeolocationExceptionsTableModel::GetText(int row, |
| 142 int column_id) { | 142 int column_id) { |
| 143 const Entry& entry = entries_[row]; | 143 const Entry& entry = entries_[row]; |
| 144 if (column_id == IDS_EXCEPTIONS_HOSTNAME_HEADER) { | 144 if (column_id == IDS_EXCEPTIONS_HOSTNAME_HEADER) { |
| 145 if (entry.origin == entry.embedding_origin) { | 145 if (entry.origin == entry.embedding_origin) { |
| 146 return content_settings_helper::OriginToWString(entry.origin); | 146 return content_settings_helper::OriginToString16(entry.origin); |
| 147 } | 147 } |
| 148 std::wstring indent(L" "); | 148 string16 indent(ASCIIToUTF16(" ")); |
| 149 if (entry.embedding_origin.is_empty()) { | 149 if (entry.embedding_origin.is_empty()) { |
| 150 // NOTE: As long as the user cannot add/edit entries from the exceptions | 150 // NOTE: As long as the user cannot add/edit entries from the exceptions |
| 151 // dialog, it's impossible to actually have a non-default setting for some | 151 // dialog, it's impossible to actually have a non-default setting for some |
| 152 // origin "embedded on any other site", so this row will never appear. If | 152 // origin "embedded on any other site", so this row will never appear. If |
| 153 // we add the ability to add/edit exceptions, we'll need to decide when to | 153 // we add the ability to add/edit exceptions, we'll need to decide when to |
| 154 // display this and how "removing" it will function. | 154 // display this and how "removing" it will function. |
| 155 return indent + UTF16ToWideHack(l10n_util::GetStringUTF16( | 155 return indent + l10n_util::GetStringUTF16( |
| 156 IDS_EXCEPTIONS_GEOLOCATION_EMBEDDED_ANY_OTHER)); | 156 IDS_EXCEPTIONS_GEOLOCATION_EMBEDDED_ANY_OTHER); |
| 157 } | 157 } |
| 158 return indent + UTF16ToWideHack(l10n_util::GetStringFUTF16( | 158 return indent + l10n_util::GetStringFUTF16( |
| 159 IDS_EXCEPTIONS_GEOLOCATION_EMBEDDED_ON_HOST, | 159 IDS_EXCEPTIONS_GEOLOCATION_EMBEDDED_ON_HOST, |
| 160 WideToUTF16Hack( | 160 content_settings_helper::OriginToString16(entry.embedding_origin)); |
| 161 content_settings_helper::OriginToWString(entry.embedding_origin)))); | |
| 162 } | 161 } |
| 163 | 162 |
| 164 if (column_id == IDS_EXCEPTIONS_ACTION_HEADER) { | 163 if (column_id == IDS_EXCEPTIONS_ACTION_HEADER) { |
| 165 switch (entry.setting) { | 164 switch (entry.setting) { |
| 166 case CONTENT_SETTING_ALLOW: | 165 case CONTENT_SETTING_ALLOW: |
| 167 return UTF16ToWideHack( | 166 return l10n_util::GetStringUTF16(IDS_EXCEPTIONS_ALLOW_BUTTON); |
| 168 l10n_util::GetStringUTF16(IDS_EXCEPTIONS_ALLOW_BUTTON)); | |
| 169 case CONTENT_SETTING_BLOCK: | 167 case CONTENT_SETTING_BLOCK: |
| 170 return UTF16ToWideHack( | 168 return l10n_util::GetStringUTF16(IDS_EXCEPTIONS_BLOCK_BUTTON); |
| 171 l10n_util::GetStringUTF16(IDS_EXCEPTIONS_BLOCK_BUTTON)); | |
| 172 case CONTENT_SETTING_ASK: | 169 case CONTENT_SETTING_ASK: |
| 173 return UTF16ToWideHack( | 170 return l10n_util::GetStringUTF16(IDS_EXCEPTIONS_ASK_BUTTON); |
| 174 l10n_util::GetStringUTF16(IDS_EXCEPTIONS_ASK_BUTTON)); | |
| 175 case CONTENT_SETTING_DEFAULT: | 171 case CONTENT_SETTING_DEFAULT: |
| 176 return UTF16ToWideHack( | 172 return l10n_util::GetStringUTF16(IDS_EXCEPTIONS_NOT_SET_BUTTON); |
| 177 l10n_util::GetStringUTF16(IDS_EXCEPTIONS_NOT_SET_BUTTON)); | |
| 178 default: | 173 default: |
| 179 break; | 174 break; |
| 180 } | 175 } |
| 181 } | 176 } |
| 182 | 177 |
| 183 NOTREACHED(); | 178 NOTREACHED(); |
| 184 return std::wstring(); | 179 return string16(); |
| 185 } | 180 } |
| 186 | 181 |
| 187 void GeolocationExceptionsTableModel::SetObserver( | 182 void GeolocationExceptionsTableModel::SetObserver( |
| 188 TableModelObserver* observer) { | 183 TableModelObserver* observer) { |
| 189 observer_ = observer; | 184 observer_ = observer; |
| 190 } | 185 } |
| 191 | 186 |
| 192 int GeolocationExceptionsTableModel::CompareValues(int row1, | 187 int GeolocationExceptionsTableModel::CompareValues(int row1, |
| 193 int row2, | 188 int row2, |
| 194 int column_id) { | 189 int column_id) { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 221 // origins will compare. | 216 // origins will compare. |
| 222 while (entries_[row1].origin != entries_[row1].embedding_origin) | 217 while (entries_[row1].origin != entries_[row1].embedding_origin) |
| 223 --row1; | 218 --row1; |
| 224 while (entries_[row2].origin != entries_[row2].embedding_origin) | 219 while (entries_[row2].origin != entries_[row2].embedding_origin) |
| 225 --row2; | 220 --row2; |
| 226 } | 221 } |
| 227 | 222 |
| 228 // The entries are at the same "scope". If we're sorting by action, then do | 223 // The entries are at the same "scope". If we're sorting by action, then do |
| 229 // that now. | 224 // that now. |
| 230 if (column_id == IDS_EXCEPTIONS_ACTION_HEADER) { | 225 if (column_id == IDS_EXCEPTIONS_ACTION_HEADER) { |
| 231 int compare_text = l10n_util::CompareStringWithCollator( | 226 int compare_text = l10n_util::CompareString16WithCollator( |
| 232 GetCollator(), GetText(row1, column_id), GetText(row2, column_id)); | 227 GetCollator(), GetText(row1, column_id), GetText(row2, column_id)); |
| 233 if (compare_text != 0) | 228 if (compare_text != 0) |
| 234 return compare_text; | 229 return compare_text; |
| 235 } | 230 } |
| 236 | 231 |
| 237 // Sort by the relevant origin. | 232 // Sort by the relevant origin. |
| 238 return origin_comparison; | 233 return origin_comparison; |
| 239 } | 234 } |
| 240 | 235 |
| 241 void GeolocationExceptionsTableModel::AddEntriesForOrigin( | 236 void GeolocationExceptionsTableModel::AddEntriesForOrigin( |
| 242 const GURL& origin, | 237 const GURL& origin, |
| 243 const GeolocationContentSettingsMap::OneOriginSettings& settings) { | 238 const GeolocationContentSettingsMap::OneOriginSettings& settings) { |
| 244 GeolocationContentSettingsMap::OneOriginSettings::const_iterator parent = | 239 GeolocationContentSettingsMap::OneOriginSettings::const_iterator parent = |
| 245 settings.find(origin); | 240 settings.find(origin); |
| 246 | 241 |
| 247 // Add the "parent" entry for the non-embedded setting. | 242 // Add the "parent" entry for the non-embedded setting. |
| 248 entries_.push_back(Entry(origin, origin, | 243 entries_.push_back(Entry(origin, origin, |
| 249 (parent == settings.end()) ? CONTENT_SETTING_DEFAULT : parent->second)); | 244 (parent == settings.end()) ? CONTENT_SETTING_DEFAULT : parent->second)); |
| 250 | 245 |
| 251 // Add the "children" for any embedded settings. | 246 // Add the "children" for any embedded settings. |
| 252 GeolocationContentSettingsMap::OneOriginSettings::const_iterator i; | 247 GeolocationContentSettingsMap::OneOriginSettings::const_iterator i; |
| 253 for (i = settings.begin(); i != settings.end(); ++i) { | 248 for (i = settings.begin(); i != settings.end(); ++i) { |
| 254 // Skip the non-embedded setting which we already added above. | 249 // Skip the non-embedded setting which we already added above. |
| 255 if (i == parent) | 250 if (i == parent) |
| 256 continue; | 251 continue; |
| 257 | 252 |
| 258 entries_.push_back(Entry(origin, i->first, i->second)); | 253 entries_.push_back(Entry(origin, i->first, i->second)); |
| 259 } | 254 } |
| 260 } | 255 } |
| OLD | NEW |