Index: chrome/browser/notifications/notification_exceptions_table_model.cc |
diff --git a/chrome/browser/notifications/notification_exceptions_table_model.cc b/chrome/browser/notifications/notification_exceptions_table_model.cc |
deleted file mode 100644 |
index f147af579778b94e164aaa2a38a0586636d1abd6..0000000000000000000000000000000000000000 |
--- a/chrome/browser/notifications/notification_exceptions_table_model.cc |
+++ /dev/null |
@@ -1,144 +0,0 @@ |
-// Copyright (c) 2011 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/notifications/notification_exceptions_table_model.h" |
- |
-#include <algorithm> |
-#include <string> |
- |
-#include "base/auto_reset.h" |
-#include "base/utf_string_conversions.h" |
-#include "chrome/browser/content_settings/host_content_settings_map.h" |
-#include "chrome/common/chrome_notification_types.h" |
-#include "chrome/common/content_settings.h" |
-#include "chrome/common/content_settings_pattern.h" |
-#include "chrome/common/content_settings_types.h" |
-#include "chrome/common/url_constants.h" |
-#include "content/common/notification_service.h" |
-#include "grit/generated_resources.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/base/models/table_model_observer.h" |
- |
-struct NotificationExceptionsTableModel::Entry { |
- Entry(const ContentSettingsPattern& origin, ContentSetting setting); |
- bool operator<(const Entry& b) const; |
- |
- ContentSettingsPattern origin; |
- ContentSetting setting; |
-}; |
- |
-NotificationExceptionsTableModel::NotificationExceptionsTableModel( |
- DesktopNotificationService* service) |
- : service_(service), |
- updates_disabled_(false), |
- observer_(NULL) { |
- registrar_.Add(this, |
- chrome::NOTIFICATION_DESKTOP_NOTIFICATION_SETTINGS_CHANGED, |
- Source<DesktopNotificationService>(service)); |
- LoadEntries(); |
-} |
- |
-NotificationExceptionsTableModel::~NotificationExceptionsTableModel() {} |
- |
-bool NotificationExceptionsTableModel::CanRemoveRows( |
- const Rows& rows) const { |
- return !rows.empty(); |
-} |
- |
-void NotificationExceptionsTableModel::RemoveRows(const Rows& rows) { |
- AutoReset<bool> tmp(&updates_disabled_, true); |
- // This is O(n^2) in rows.size(). Since n is small, that's ok. |
- for (Rows::const_reverse_iterator i(rows.rbegin()); i != rows.rend(); ++i) { |
- size_t row = *i; |
- Entry* entry = &entries_[row]; |
- DCHECK(entry->setting == CONTENT_SETTING_ALLOW || |
- entry->setting == CONTENT_SETTING_BLOCK); |
- service_->ClearSetting(entry->origin); |
- entries_.erase(entries_.begin() + row); // Note: |entry| is now garbage. |
- if (observer_) |
- observer_->OnItemsRemoved(row, 1); |
- } |
-} |
- |
-void NotificationExceptionsTableModel::RemoveAll() { |
- AutoReset<bool> tmp(&updates_disabled_, true); |
- entries_.clear(); |
- service_->ResetAllOrigins(); |
- if (observer_) |
- observer_->OnModelChanged(); |
-} |
- |
-int NotificationExceptionsTableModel::RowCount() { |
- return static_cast<int>(entries_.size()); |
-} |
- |
-string16 NotificationExceptionsTableModel::GetText(int row, |
- int column_id) { |
- const Entry& entry = entries_[row]; |
- if (column_id == IDS_EXCEPTIONS_HOSTNAME_HEADER) { |
- return UTF8ToUTF16(entry.origin.ToString()); |
- } |
- |
- if (column_id == IDS_EXCEPTIONS_ACTION_HEADER) { |
- switch (entry.setting) { |
- case CONTENT_SETTING_ALLOW: |
- return l10n_util::GetStringUTF16(IDS_EXCEPTIONS_ALLOW_BUTTON); |
- case CONTENT_SETTING_BLOCK: |
- return l10n_util::GetStringUTF16(IDS_EXCEPTIONS_BLOCK_BUTTON); |
- default: |
- break; |
- } |
- } |
- |
- NOTREACHED(); |
- return string16(); |
-} |
- |
-void NotificationExceptionsTableModel::SetObserver( |
- ui::TableModelObserver* observer) { |
- observer_ = observer; |
-} |
- |
-void NotificationExceptionsTableModel::Observe( |
- int type, |
- const NotificationSource& source, |
- const NotificationDetails& details) { |
- if (!updates_disabled_) { |
- DCHECK_EQ(type, chrome::NOTIFICATION_DESKTOP_NOTIFICATION_SETTINGS_CHANGED); |
- DCHECK_EQ(Source<DesktopNotificationService>(source).ptr(), service_); |
- entries_.clear(); |
- LoadEntries(); |
- |
- if (observer_) |
- observer_->OnModelChanged(); |
- } |
-} |
- |
-void NotificationExceptionsTableModel::LoadEntries() { |
- HostContentSettingsMap::SettingsForOneType settings; |
- service_->GetNotificationsSettings(&settings); |
- |
- entries_.reserve(settings.size()); |
- for (HostContentSettingsMap::SettingsForOneType::const_iterator i = |
- settings.begin(); |
- i != settings.end(); |
- ++i) { |
- const HostContentSettingsMap::PatternSettingSourceTuple& tuple(*i); |
- entries_.push_back(Entry(tuple.a, tuple.c)); |
- } |
- std::sort(entries_.begin(), entries_.end()); |
-} |
- |
-NotificationExceptionsTableModel::Entry::Entry( |
- const ContentSettingsPattern& in_origin, |
- ContentSetting in_setting) |
- : origin(in_origin), |
- setting(in_setting) { |
-} |
- |
-bool NotificationExceptionsTableModel::Entry::operator<( |
- const NotificationExceptionsTableModel::Entry& b) const { |
- DCHECK_NE(origin, b.origin); |
- return origin.ToString() < b.origin.ToString(); |
-} |