Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1244)

Unified Diff: chrome/browser/ui/views/options/content_filter_page_view.cc

Issue 6670011: Options: Remove the GTK and Views native options code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/options/content_filter_page_view.cc
diff --git a/chrome/browser/ui/views/options/content_filter_page_view.cc b/chrome/browser/ui/views/options/content_filter_page_view.cc
deleted file mode 100644
index 32d842d8a3542d4c832e39827c7078e47f9cd64d..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/views/options/content_filter_page_view.cc
+++ /dev/null
@@ -1,297 +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/ui/views/options/content_filter_page_view.h"
-
-#include "base/command_line.h"
-#include "base/utf_string_conversions.h"
-#include "chrome/browser/content_settings/content_settings_details.h"
-#include "chrome/browser/geolocation/geolocation_content_settings_map.h"
-#include "chrome/browser/geolocation/geolocation_exceptions_table_model.h"
-#include "chrome/browser/notifications/desktop_notification_service.h"
-#include "chrome/browser/notifications/notification_exceptions_table_model.h"
-#include "chrome/browser/plugin_exceptions_table_model.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/views/options/exceptions_view.h"
-#include "chrome/browser/ui/views/options/simple_content_exceptions_view.h"
-#include "chrome/common/chrome_switches.h"
-#include "content/common/notification_details.h"
-#include "content/common/notification_service.h"
-#include "content/common/notification_type.h"
-#include "grit/generated_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "views/controls/button/radio_button.h"
-#include "views/layout/grid_layout.h"
-#include "views/layout/layout_constants.h"
-#include "views/window/window.h"
-
-ContentFilterPageView::ContentFilterPageView(Profile* profile,
- ContentSettingsType content_type)
- : OptionsPageView(profile),
- content_type_(content_type),
- allow_radio_(NULL),
- ask_radio_(NULL),
- block_radio_(NULL),
- exceptions_button_(NULL) {
-}
-
-ContentFilterPageView::~ContentFilterPageView() {
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// ContentFilterPageView, OptionsPageView implementation:
-
-void ContentFilterPageView::InitControlLayout() {
- using views::GridLayout;
-
- GridLayout* layout = new GridLayout(this);
- SetLayoutManager(layout);
-
- const int single_column_set_id = 0;
- views::ColumnSet* column_set = layout->AddColumnSet(single_column_set_id);
- column_set->AddPaddingColumn(0, views::kRelatedControlVerticalSpacing);
- column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1,
- GridLayout::USE_PREF, 0, 0);
- layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
-
- static const int kTitleIDs[] = {
- IDS_MODIFY_COOKIE_STORING_LABEL,
- IDS_IMAGES_SETTING_LABEL,
- IDS_JS_SETTING_LABEL,
- IDS_PLUGIN_SETTING_LABEL,
- IDS_POPUP_SETTING_LABEL,
- IDS_GEOLOCATION_SETTING_LABEL,
- IDS_NOTIFICATIONS_SETTING_LABEL,
- 0,
- };
- COMPILE_ASSERT(arraysize(kTitleIDs) == CONTENT_SETTINGS_NUM_TYPES,
- Need_a_setting_for_every_content_settings_type);
- views::Label* title_label = new views::Label(
- UTF16ToWide(l10n_util::GetStringUTF16(kTitleIDs[content_type_])));
- title_label->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
- title_label->SetMultiLine(true);
-
- layout->StartRow(0, single_column_set_id);
- layout->AddView(title_label);
- layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
-
- static const int kAllowIDs[] = {
- IDS_COOKIES_ALLOW_RADIO,
- IDS_IMAGES_LOAD_RADIO,
- IDS_JS_ALLOW_RADIO,
- IDS_PLUGIN_LOAD_RADIO,
- IDS_POPUP_ALLOW_RADIO,
- IDS_GEOLOCATION_ALLOW_RADIO,
- IDS_NOTIFICATIONS_ALLOW_RADIO,
- 0,
- };
- COMPILE_ASSERT(arraysize(kAllowIDs) == CONTENT_SETTINGS_NUM_TYPES,
- Need_a_setting_for_every_content_settings_type);
- const int radio_button_group = 0;
- allow_radio_ = new views::RadioButton(
- UTF16ToWide(l10n_util::GetStringUTF16(kAllowIDs[content_type_])),
- radio_button_group);
- allow_radio_->set_listener(this);
- allow_radio_->SetMultiLine(true);
- layout->StartRow(0, single_column_set_id);
- layout->AddView(allow_radio_);
- layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
-
- static const int kAskIDs[] = {
- IDS_COOKIES_ASK_EVERY_TIME_RADIO,
- 0,
- 0,
- IDS_PLUGIN_ASK_RADIO,
- 0,
- IDS_GEOLOCATION_ASK_RADIO,
- IDS_NOTIFICATIONS_ASK_RADIO,
- 0,
- };
- COMPILE_ASSERT(arraysize(kAskIDs) == CONTENT_SETTINGS_NUM_TYPES,
- Need_a_setting_for_every_content_settings_type);
- if (content_type_ != CONTENT_SETTINGS_TYPE_COOKIES) {
- int askID = kAskIDs[content_type_];
- if (content_type_ == CONTENT_SETTINGS_TYPE_PLUGINS &&
- !CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnableClickToPlay)) {
- askID = 0;
- }
- if (askID != 0) {
- ask_radio_ = new views::RadioButton(
- UTF16ToWide(l10n_util::GetStringUTF16(askID)), radio_button_group);
- ask_radio_->set_listener(this);
- ask_radio_->SetMultiLine(true);
- layout->StartRow(0, single_column_set_id);
- layout->AddView(ask_radio_);
- layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
- }
- }
-
- static const int kBlockIDs[] = {
- IDS_COOKIES_BLOCK_RADIO,
- IDS_IMAGES_NOLOAD_RADIO,
- IDS_JS_DONOTALLOW_RADIO,
- IDS_PLUGIN_NOLOAD_RADIO,
- IDS_POPUP_BLOCK_RADIO,
- IDS_GEOLOCATION_BLOCK_RADIO,
- IDS_NOTIFICATIONS_BLOCK_RADIO,
- 0,
- };
- COMPILE_ASSERT(arraysize(kBlockIDs) == CONTENT_SETTINGS_NUM_TYPES,
- Need_a_setting_for_every_content_settings_type);
- block_radio_ = new views::RadioButton(
- UTF16ToWide(l10n_util::GetStringUTF16(kBlockIDs[content_type_])),
- radio_button_group);
- block_radio_->set_listener(this);
- block_radio_->SetMultiLine(true);
- layout->StartRow(0, single_column_set_id);
- layout->AddView(block_radio_);
- layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
-
- exceptions_button_ = new views::NativeButton(this,
- UTF16ToWide(l10n_util::GetStringUTF16(IDS_COOKIES_EXCEPTIONS_BUTTON)));
-
- layout->StartRow(0, single_column_set_id);
- layout->AddView(exceptions_button_, 1, 1, GridLayout::LEADING,
- GridLayout::FILL);
-
- UpdateView();
-
- registrar_.Add(this, NotificationType::CONTENT_SETTINGS_CHANGED,
- NotificationService::AllSources());
- registrar_.Add(this, NotificationType::DESKTOP_NOTIFICATION_DEFAULT_CHANGED,
- NotificationService::AllSources());
- registrar_.Add(this, NotificationType::GEOLOCATION_SETTINGS_CHANGED,
- NotificationService::AllSources());
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// ContentFilterPageView,
-void ContentFilterPageView::UpdateView() {
- ContentSetting default_setting;
- bool is_content_type_managed = false;
- if (content_type_ == CONTENT_SETTINGS_TYPE_GEOLOCATION) {
- default_setting = profile()->GetGeolocationContentSettingsMap()->
- GetDefaultContentSetting();
- is_content_type_managed = profile()->GetGeolocationContentSettingsMap()->
- IsDefaultContentSettingManaged();
- } else if (content_type_ == CONTENT_SETTINGS_TYPE_NOTIFICATIONS) {
- default_setting = profile()->GetDesktopNotificationService()->
- GetDefaultContentSetting();
- is_content_type_managed = profile()->GetDesktopNotificationService()->
- IsDefaultContentSettingManaged();
- } else {
- default_setting = profile()->GetHostContentSettingsMap()->
- GetDefaultContentSetting(content_type_);
- is_content_type_managed = profile()->GetHostContentSettingsMap()->
- IsDefaultContentSettingManaged(content_type_);
- }
- // Now that these have been added to the view hierarchy, it's safe to call
- // SetChecked() on them.
- if (default_setting == CONTENT_SETTING_ALLOW) {
- allow_radio_->SetChecked(true);
- } else if (default_setting == CONTENT_SETTING_ASK) {
- DCHECK(ask_radio_ != NULL);
- ask_radio_->SetChecked(true);
- } else {
- DCHECK(default_setting == CONTENT_SETTING_BLOCK);
- block_radio_->SetChecked(true);
- }
-
- // Set enable state of the buttons.
- allow_radio_->SetEnabled(!is_content_type_managed);
- if (ask_radio_)
- ask_radio_->SetEnabled(!is_content_type_managed);
- block_radio_->SetEnabled(!is_content_type_managed);
- exceptions_button_->SetEnabled(!is_content_type_managed);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// ContentFilterPageView, views::ButtonListener implementation:
-
-void ContentFilterPageView::ButtonPressed(views::Button* sender,
- const views::Event& event) {
- if (sender == exceptions_button_) {
- if (content_type_ == CONTENT_SETTINGS_TYPE_GEOLOCATION) {
- SimpleContentExceptionsView::ShowExceptionsWindow(
- GetWindow()->GetNativeWindow(),
- new GeolocationExceptionsTableModel(
- profile()->GetGeolocationContentSettingsMap()),
- IDS_GEOLOCATION_EXCEPTION_TITLE);
- } else if (content_type_ == CONTENT_SETTINGS_TYPE_NOTIFICATIONS) {
- SimpleContentExceptionsView::ShowExceptionsWindow(
- GetWindow()->GetNativeWindow(),
- new NotificationExceptionsTableModel(
- profile()->GetDesktopNotificationService()),
- IDS_NOTIFICATIONS_EXCEPTION_TITLE);
- } else {
- HostContentSettingsMap* settings = profile()->GetHostContentSettingsMap();
- HostContentSettingsMap* otr_settings =
- profile()->HasOffTheRecordProfile() ?
- profile()->GetOffTheRecordProfile()->GetHostContentSettingsMap() :
- NULL;
- if (content_type_ == CONTENT_SETTINGS_TYPE_PLUGINS &&
- CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnableResourceContentSettings)) {
- PluginExceptionsTableModel* model =
- new PluginExceptionsTableModel(settings, otr_settings);
- model->LoadSettings();
- SimpleContentExceptionsView::ShowExceptionsWindow(
- GetWindow()->GetNativeWindow(),
- model,
- IDS_PLUGINS_EXCEPTION_TITLE);
- } else {
- ExceptionsView::ShowExceptionsWindow(GetWindow()->GetNativeWindow(),
- settings,
- otr_settings,
- content_type_);
- }
- }
- return;
- }
-
- DCHECK((sender == allow_radio_) || (sender == ask_radio_) ||
- (sender == block_radio_));
- ContentSetting default_setting = allow_radio_->checked() ?
- CONTENT_SETTING_ALLOW :
- (block_radio_->checked() ? CONTENT_SETTING_BLOCK : CONTENT_SETTING_ASK);
- if (content_type_ == CONTENT_SETTINGS_TYPE_GEOLOCATION) {
- profile()->GetGeolocationContentSettingsMap()->SetDefaultContentSetting(
- default_setting);
- } else if (content_type_ == CONTENT_SETTINGS_TYPE_NOTIFICATIONS) {
- profile()->GetDesktopNotificationService()->SetDefaultContentSetting(
- default_setting);
- } else {
- profile()->GetHostContentSettingsMap()->SetDefaultContentSetting(
- content_type_, default_setting);
- }
-}
-
-void ContentFilterPageView::NotifyContentSettingsChanged(
- const ContentSettingsDetails* details) {
- if (details->type() == CONTENT_SETTINGS_TYPE_DEFAULT ||
- details->type() == content_type_) {
- UpdateView();
- }
-}
-
-void ContentFilterPageView::Observe(NotificationType type,
- const NotificationSource& source,
- const NotificationDetails& details) {
- if (type == NotificationType::CONTENT_SETTINGS_CHANGED) {
- NotifyContentSettingsChanged(
- Details<ContentSettingsDetails>(details).ptr());
- } else if (type == NotificationType::GEOLOCATION_SETTINGS_CHANGED) {
- NotifyContentSettingsChanged(
- Details<ContentSettingsDetails>(details).ptr());
- } else if (type == NotificationType::DESKTOP_NOTIFICATION_DEFAULT_CHANGED) {
- ContentSettingsDetails content_settings_details(
- ContentSettingsPattern(),
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
- "");
- NotifyContentSettingsChanged(&content_settings_details);
- } else {
- OptionsPageBase::Observe(type, source, details);
- }
-}
« no previous file with comments | « chrome/browser/ui/views/options/content_filter_page_view.h ('k') | chrome/browser/ui/views/options/content_page_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698