| Index: chrome/browser/gtk/collected_cookies_gtk.cc
|
| diff --git a/chrome/browser/gtk/collected_cookies_gtk.cc b/chrome/browser/gtk/collected_cookies_gtk.cc
|
| index 2992120c613e28b9b62e86af4c53c822136d5a78..8d4dbf712f90566dfdbc7b0ca9d9fa62fd9dbd29 100644
|
| --- a/chrome/browser/gtk/collected_cookies_gtk.cc
|
| +++ b/chrome/browser/gtk/collected_cookies_gtk.cc
|
| @@ -13,8 +13,56 @@
|
| #include "grit/generated_resources.h"
|
|
|
| namespace {
|
| -// Height of the cookie tree view.
|
| +// Width and height of the cookie tree view.
|
| +const int kTreeViewWidth = 450;
|
| const int kTreeViewHeight = 150;
|
| +
|
| +// Padding within the banner box.
|
| +const int kBannerPadding = 3;
|
| +
|
| +// Returns the text to display in the info bar when content settings were
|
| +// created.
|
| +const std::string GetInfobarLabel(ContentSetting setting,
|
| + bool multiple_domains_added,
|
| + const string16& domain_name) {
|
| + if (multiple_domains_added) {
|
| + switch (setting) {
|
| + case CONTENT_SETTING_BLOCK:
|
| + return l10n_util::GetStringUTF8(
|
| + IDS_COLLECTED_COOKIES_MULTIPLE_BLOCK_RULES_CREATED);
|
| +
|
| + case CONTENT_SETTING_ALLOW:
|
| + return l10n_util::GetStringUTF8(
|
| + IDS_COLLECTED_COOKIES_MULTIPLE_ALLOW_RULES_CREATED);
|
| +
|
| + case CONTENT_SETTING_SESSION_ONLY:
|
| + return l10n_util::GetStringUTF8(
|
| + IDS_COLLECTED_COOKIES_MULTIPLE_SESSION_RULES_CREATED);
|
| +
|
| + default:
|
| + NOTREACHED();
|
| + return std::string();
|
| + }
|
| + }
|
| +
|
| + switch (setting) {
|
| + case CONTENT_SETTING_BLOCK:
|
| + return l10n_util::GetStringFUTF8(
|
| + IDS_COLLECTED_COOKIES_BLOCK_RULE_CREATED, domain_name);
|
| +
|
| + case CONTENT_SETTING_ALLOW:
|
| + return l10n_util::GetStringFUTF8(
|
| + IDS_COLLECTED_COOKIES_ALLOW_RULE_CREATED, domain_name);
|
| +
|
| + case CONTENT_SETTING_SESSION_ONLY:
|
| + return l10n_util::GetStringFUTF8(
|
| + IDS_COLLECTED_COOKIES_SESSION_RULE_CREATED, domain_name);
|
| +
|
| + default:
|
| + NOTREACHED();
|
| + return std::string();
|
| + }
|
| +}
|
| } // namespace
|
|
|
| CollectedCookiesGtk::CollectedCookiesGtk(GtkWindow* parent,
|
| @@ -29,6 +77,9 @@ CollectedCookiesGtk::CollectedCookiesGtk(GtkWindow* parent,
|
| }
|
|
|
| void CollectedCookiesGtk::Init() {
|
| + HostContentSettingsMap* host_content_settings_map =
|
| + tab_contents_->profile()->GetHostContentSettingsMap();
|
| +
|
| dialog_ = gtk_vbox_new(FALSE, gtk_util::kContentAreaSpacing);
|
| gtk_box_set_spacing(GTK_BOX(dialog_), gtk_util::kContentAreaSpacing);
|
|
|
| @@ -63,7 +114,7 @@ void CollectedCookiesGtk::Init() {
|
| new gtk_tree::TreeAdapter(this, allowed_cookies_tree_model_.get()));
|
| allowed_tree_ = gtk_tree_view_new_with_model(
|
| GTK_TREE_MODEL(allowed_cookies_tree_adapter_->tree_store()));
|
| - gtk_widget_set_size_request(allowed_tree_, -1, kTreeViewHeight);
|
| + gtk_widget_set_size_request(allowed_tree_, kTreeViewWidth, kTreeViewHeight);
|
| gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(allowed_tree_), FALSE);
|
| gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(allowed_tree_), TRUE);
|
| gtk_container_add(GTK_CONTAINER(scroll_window), allowed_tree_);
|
| @@ -99,15 +150,22 @@ void CollectedCookiesGtk::Init() {
|
| G_CALLBACK(OnBlockAllowedButtonClickedThunk), this);
|
| gtk_container_add(GTK_CONTAINER(button_box), block_allowed_cookie_button_);
|
|
|
| + GtkWidget* separator = gtk_hseparator_new();
|
| + gtk_box_pack_start(GTK_BOX(dialog_), separator, TRUE, TRUE, 0);
|
| +
|
| // Blocked Cookie list.
|
| cookie_list_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing);
|
| gtk_box_pack_start(GTK_BOX(dialog_), cookie_list_vbox, TRUE, TRUE, 0);
|
|
|
| label = gtk_label_new(
|
| - l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL).
|
| - c_str());
|
| + l10n_util::GetStringUTF8(
|
| + host_content_settings_map->BlockThirdPartyCookies() ?
|
| + IDS_COLLECTED_COOKIES_BLOCKED_THIRD_PARTY_BLOCKING_ENABLED :
|
| + IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL).c_str());
|
| + gtk_widget_set_size_request(label, kTreeViewWidth, -1);
|
| + gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
|
| gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
|
| - gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, FALSE, FALSE, 0);
|
| + gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, TRUE, TRUE, 0);
|
|
|
| scroll_window = gtk_scrolled_window_new(NULL, NULL);
|
| gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window),
|
| @@ -123,7 +181,7 @@ void CollectedCookiesGtk::Init() {
|
| new gtk_tree::TreeAdapter(this, blocked_cookies_tree_model_.get()));
|
| blocked_tree_ = gtk_tree_view_new_with_model(
|
| GTK_TREE_MODEL(blocked_cookies_tree_adapter_->tree_store()));
|
| - gtk_widget_set_size_request(blocked_tree_, -1, kTreeViewHeight);
|
| + gtk_widget_set_size_request(blocked_tree_, kTreeViewWidth, kTreeViewHeight);
|
| gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(blocked_tree_), FALSE);
|
| gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(blocked_tree_), TRUE);
|
| gtk_container_add(GTK_CONTAINER(scroll_window), blocked_tree_);
|
| @@ -166,6 +224,24 @@ void CollectedCookiesGtk::Init() {
|
| gtk_container_add(GTK_CONTAINER(button_box),
|
| for_session_blocked_cookie_button_);
|
|
|
| + // Infobar.
|
| + infobar_ = gtk_frame_new(NULL);
|
| + GtkWidget* infobar_contents = gtk_hbox_new(FALSE, kBannerPadding);
|
| + gtk_container_set_border_width(GTK_CONTAINER(infobar_contents),
|
| + kBannerPadding);
|
| + gtk_container_add(GTK_CONTAINER(infobar_), infobar_contents);
|
| + GtkWidget* info_image =
|
| + gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO,
|
| + GTK_ICON_SIZE_SMALL_TOOLBAR);
|
| + gtk_box_pack_start(GTK_BOX(infobar_contents), info_image, FALSE, FALSE, 0);
|
| + infobar_label_ = gtk_label_new(NULL);
|
| + gtk_box_pack_start(
|
| + GTK_BOX(infobar_contents), infobar_label_, FALSE, FALSE, 0);
|
| + gtk_widget_show_all(infobar_);
|
| + gtk_widget_set_no_show_all(infobar_, TRUE);
|
| + gtk_widget_hide(infobar_);
|
| + gtk_box_pack_start(GTK_BOX(dialog_), infobar_, TRUE, TRUE, 0);
|
| +
|
| // Close button.
|
| button_box = gtk_hbutton_box_new();
|
| gtk_button_box_set_layout(GTK_BUTTON_BOX(button_box), GTK_BUTTONBOX_END);
|
| @@ -259,6 +335,8 @@ void CollectedCookiesGtk::AddExceptions(GtkTreeSelection* selection,
|
| GtkTreeModel* model;
|
| GList* paths =
|
| gtk_tree_selection_get_selected_rows(selection, &model);
|
| + string16 last_domain_name;
|
| + bool multiple_domains_added = false;
|
| for (GList* item = paths; item; item = item->next) {
|
| GtkTreeIter iter;
|
| gtk_tree_model_get_iter(
|
| @@ -266,12 +344,23 @@ void CollectedCookiesGtk::AddExceptions(GtkTreeSelection* selection,
|
| CookieTreeOriginNode* node = static_cast<CookieTreeOriginNode*>(
|
| adapter->GetNode(&iter));
|
| if (node->CanCreateContentException()) {
|
| + if (!last_domain_name.empty())
|
| + multiple_domains_added = true;
|
| + last_domain_name = node->GetTitleAsString16();
|
| node->CreateContentException(
|
| tab_contents_->profile()->GetHostContentSettingsMap(), setting);
|
| }
|
| }
|
| g_list_foreach(paths, reinterpret_cast<GFunc>(gtk_tree_path_free), NULL);
|
| g_list_free(paths);
|
| + if (last_domain_name.empty()) {
|
| + gtk_widget_hide(infobar_);
|
| + } else {
|
| + gtk_label_set_text(
|
| + GTK_LABEL(infobar_label_), GetInfobarLabel(
|
| + setting, multiple_domains_added, last_domain_name).c_str());
|
| + gtk_widget_show(infobar_);
|
| + }
|
| }
|
|
|
| void CollectedCookiesGtk::OnBlockAllowedButtonClicked(GtkWidget* button) {
|
|
|