| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/ui/gtk/collected_cookies_gtk.h" | 5 #include "chrome/browser/ui/gtk/collected_cookies_gtk.h" | 
| 6 | 6 | 
| 7 #include <string> | 7 #include <string> | 
| 8 | 8 | 
| 9 #include "chrome/browser/content_settings/host_content_settings_map.h" | 9 #include "chrome/browser/content_settings/host_content_settings_map.h" | 
| 10 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 10 #include "chrome/browser/content_settings/tab_specific_content_settings.h" | 
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 70 | 70 | 
| 71     case CONTENT_SETTING_SESSION_ONLY: | 71     case CONTENT_SETTING_SESSION_ONLY: | 
| 72       return l10n_util::GetStringFUTF8( | 72       return l10n_util::GetStringFUTF8( | 
| 73           IDS_COLLECTED_COOKIES_SESSION_RULE_CREATED, domain_name); | 73           IDS_COLLECTED_COOKIES_SESSION_RULE_CREATED, domain_name); | 
| 74 | 74 | 
| 75     default: | 75     default: | 
| 76       NOTREACHED(); | 76       NOTREACHED(); | 
| 77       return std::string(); | 77       return std::string(); | 
| 78   } | 78   } | 
| 79 } | 79 } | 
|  | 80 | 
| 80 }  // namespace | 81 }  // namespace | 
| 81 | 82 | 
| 82 CollectedCookiesGtk::CollectedCookiesGtk(GtkWindow* parent, | 83 CollectedCookiesGtk::CollectedCookiesGtk(GtkWindow* parent, | 
| 83                                          TabContents* tab_contents) | 84                                          TabContentsWrapper* wrapper) | 
| 84     : tab_contents_(tab_contents), | 85     : wrapper_(wrapper), | 
| 85       status_changed_(false) { | 86       status_changed_(false) { | 
| 86   TabSpecificContentSettings* content_settings = |  | 
| 87       TabContentsWrapper::GetCurrentWrapperForContents(tab_contents)-> |  | 
| 88           content_settings(); |  | 
| 89   registrar_.Add(this, chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN, | 87   registrar_.Add(this, chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN, | 
| 90                  Source<TabSpecificContentSettings>(content_settings)); | 88                  Source<TabSpecificContentSettings>( | 
|  | 89                      wrapper->content_settings())); | 
| 91 | 90 | 
| 92   Init(); | 91   Init(); | 
| 93 } | 92 } | 
| 94 | 93 | 
| 95 void CollectedCookiesGtk::Init() { | 94 void CollectedCookiesGtk::Init() { | 
| 96   dialog_ = gtk_vbox_new(FALSE, ui::kContentAreaSpacing); | 95   dialog_ = gtk_vbox_new(FALSE, ui::kContentAreaSpacing); | 
| 97   gtk_box_set_spacing(GTK_BOX(dialog_), ui::kContentAreaSpacing); | 96   gtk_box_set_spacing(GTK_BOX(dialog_), ui::kContentAreaSpacing); | 
| 98 | 97 | 
| 99   GtkWidget* label = gtk_label_new( | 98   GtkWidget* label = gtk_label_new( | 
| 100       l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_DIALOG_TITLE).c_str()); | 99       l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_DIALOG_TITLE).c_str()); | 
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 157   gtk_button_set_label(GTK_BUTTON(close_button_), | 156   gtk_button_set_label(GTK_BUTTON(close_button_), | 
| 158                        l10n_util::GetStringUTF8(IDS_CLOSE).c_str()); | 157                        l10n_util::GetStringUTF8(IDS_CLOSE).c_str()); | 
| 159   g_signal_connect(close_button_, "clicked", G_CALLBACK(OnCloseThunk), this); | 158   g_signal_connect(close_button_, "clicked", G_CALLBACK(OnCloseThunk), this); | 
| 160   gtk_box_pack_end(GTK_BOX(button_box), close_button_, FALSE, TRUE, 0); | 159   gtk_box_pack_end(GTK_BOX(button_box), close_button_, FALSE, TRUE, 0); | 
| 161 | 160 | 
| 162   // Show the dialog. | 161   // Show the dialog. | 
| 163   allowed_cookies_tree_adapter_->Init(); | 162   allowed_cookies_tree_adapter_->Init(); | 
| 164   blocked_cookies_tree_adapter_->Init(); | 163   blocked_cookies_tree_adapter_->Init(); | 
| 165   EnableControls(); | 164   EnableControls(); | 
| 166   ShowCookieInfo(gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook_))); | 165   ShowCookieInfo(gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook_))); | 
| 167   window_ = new ConstrainedWindowGtk(tab_contents_, this); | 166   window_ = new ConstrainedWindowGtk(wrapper_->tab_contents(), this); | 
| 168 } | 167 } | 
| 169 | 168 | 
| 170 GtkWidget* CollectedCookiesGtk::CreateAllowedPane() { | 169 GtkWidget* CollectedCookiesGtk::CreateAllowedPane() { | 
| 171   GtkWidget* cookie_list_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing); | 170   GtkWidget* cookie_list_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing); | 
| 172 | 171 | 
| 173   GtkWidget* label = gtk_label_new( | 172   GtkWidget* label = gtk_label_new( | 
| 174       l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_ALLOWED_COOKIES_LABEL). | 173       l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_ALLOWED_COOKIES_LABEL). | 
| 175           c_str()); | 174           c_str()); | 
| 176   gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 175   gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 
| 177   gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, FALSE, FALSE, | 176   gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, FALSE, FALSE, | 
| 178                      ui::kControlSpacing); | 177                      ui::kControlSpacing); | 
| 179 | 178 | 
| 180   GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL); | 179   GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL); | 
| 181   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), | 180   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), | 
| 182                                  GTK_POLICY_AUTOMATIC, | 181                                  GTK_POLICY_AUTOMATIC, | 
| 183                                  GTK_POLICY_AUTOMATIC); | 182                                  GTK_POLICY_AUTOMATIC); | 
| 184   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window), | 183   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window), | 
| 185                                       GTK_SHADOW_ETCHED_IN); | 184                                       GTK_SHADOW_ETCHED_IN); | 
| 186   gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0); | 185   gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0); | 
| 187 | 186 | 
| 188   TabSpecificContentSettings* content_settings = | 187   TabSpecificContentSettings* content_settings = wrapper_->content_settings(); | 
| 189       TabContentsWrapper::GetCurrentWrapperForContents(tab_contents_)-> |  | 
| 190           content_settings(); |  | 
| 191 | 188 | 
| 192   allowed_cookies_tree_model_.reset( | 189   allowed_cookies_tree_model_.reset( | 
| 193       content_settings->GetAllowedCookiesTreeModel()); | 190       content_settings->GetAllowedCookiesTreeModel()); | 
| 194   allowed_cookies_tree_adapter_.reset( | 191   allowed_cookies_tree_adapter_.reset( | 
| 195       new gtk_tree::TreeAdapter(this, allowed_cookies_tree_model_.get())); | 192       new gtk_tree::TreeAdapter(this, allowed_cookies_tree_model_.get())); | 
| 196   allowed_tree_ = gtk_tree_view_new_with_model( | 193   allowed_tree_ = gtk_tree_view_new_with_model( | 
| 197       GTK_TREE_MODEL(allowed_cookies_tree_adapter_->tree_store())); | 194       GTK_TREE_MODEL(allowed_cookies_tree_adapter_->tree_store())); | 
| 198   gtk_widget_set_size_request(allowed_tree_, kTreeViewWidth, kTreeViewHeight); | 195   gtk_widget_set_size_request(allowed_tree_, kTreeViewWidth, kTreeViewHeight); | 
| 199   gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(allowed_tree_), FALSE); | 196   gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(allowed_tree_), FALSE); | 
| 200   gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(allowed_tree_), TRUE); | 197   gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(allowed_tree_), TRUE); | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 234 | 231 | 
| 235   // Wrap the vbox inside an hbox so that we can specify padding along the | 232   // Wrap the vbox inside an hbox so that we can specify padding along the | 
| 236   // horizontal axis. | 233   // horizontal axis. | 
| 237   GtkWidget* box = gtk_hbox_new(FALSE, 0); | 234   GtkWidget* box = gtk_hbox_new(FALSE, 0); | 
| 238   gtk_box_pack_start(GTK_BOX(box), cookie_list_vbox, TRUE, TRUE, | 235   gtk_box_pack_start(GTK_BOX(box), cookie_list_vbox, TRUE, TRUE, | 
| 239                      ui::kControlSpacing); | 236                      ui::kControlSpacing); | 
| 240   return box; | 237   return box; | 
| 241 } | 238 } | 
| 242 | 239 | 
| 243 GtkWidget* CollectedCookiesGtk::CreateBlockedPane() { | 240 GtkWidget* CollectedCookiesGtk::CreateBlockedPane() { | 
| 244   TabContentsWrapper* wrapper = |  | 
| 245       TabContentsWrapper::GetCurrentWrapperForContents(tab_contents_); |  | 
| 246   HostContentSettingsMap* host_content_settings_map = | 241   HostContentSettingsMap* host_content_settings_map = | 
| 247       wrapper->profile()->GetHostContentSettingsMap(); | 242       wrapper_->profile()->GetHostContentSettingsMap(); | 
| 248 | 243 | 
| 249   GtkWidget* cookie_list_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing); | 244   GtkWidget* cookie_list_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing); | 
| 250 | 245 | 
| 251   GtkWidget* label = gtk_label_new( | 246   GtkWidget* label = gtk_label_new( | 
| 252       l10n_util::GetStringUTF8( | 247       l10n_util::GetStringUTF8( | 
| 253           host_content_settings_map->BlockThirdPartyCookies() ? | 248           host_content_settings_map->BlockThirdPartyCookies() ? | 
| 254               IDS_COLLECTED_COOKIES_BLOCKED_THIRD_PARTY_BLOCKING_ENABLED : | 249               IDS_COLLECTED_COOKIES_BLOCKED_THIRD_PARTY_BLOCKING_ENABLED : | 
| 255               IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL).c_str()); | 250               IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL).c_str()); | 
| 256   gtk_widget_set_size_request(label, kTreeViewWidth, -1); | 251   gtk_widget_set_size_request(label, kTreeViewWidth, -1); | 
| 257   gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | 252   gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | 
| 258   gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 253   gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); | 
| 259   gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, TRUE, TRUE, | 254   gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, TRUE, TRUE, | 
| 260                      ui::kControlSpacing); | 255                      ui::kControlSpacing); | 
| 261 | 256 | 
| 262   GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL); | 257   GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL); | 
| 263   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), | 258   gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), | 
| 264                                  GTK_POLICY_AUTOMATIC, | 259                                  GTK_POLICY_AUTOMATIC, | 
| 265                                  GTK_POLICY_AUTOMATIC); | 260                                  GTK_POLICY_AUTOMATIC); | 
| 266   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window), | 261   gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window), | 
| 267                                       GTK_SHADOW_ETCHED_IN); | 262                                       GTK_SHADOW_ETCHED_IN); | 
| 268   gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0); | 263   gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0); | 
| 269 | 264 | 
| 270   TabSpecificContentSettings* content_settings = wrapper->content_settings(); | 265   TabSpecificContentSettings* content_settings = wrapper_->content_settings(); | 
| 271 | 266 | 
| 272   blocked_cookies_tree_model_.reset( | 267   blocked_cookies_tree_model_.reset( | 
| 273       content_settings->GetBlockedCookiesTreeModel()); | 268       content_settings->GetBlockedCookiesTreeModel()); | 
| 274   blocked_cookies_tree_adapter_.reset( | 269   blocked_cookies_tree_adapter_.reset( | 
| 275       new gtk_tree::TreeAdapter(this, blocked_cookies_tree_model_.get())); | 270       new gtk_tree::TreeAdapter(this, blocked_cookies_tree_model_.get())); | 
| 276   blocked_tree_ = gtk_tree_view_new_with_model( | 271   blocked_tree_ = gtk_tree_view_new_with_model( | 
| 277       GTK_TREE_MODEL(blocked_cookies_tree_adapter_->tree_store())); | 272       GTK_TREE_MODEL(blocked_cookies_tree_adapter_->tree_store())); | 
| 278   gtk_widget_set_size_request(blocked_tree_, kTreeViewWidth, kTreeViewHeight); | 273   gtk_widget_set_size_request(blocked_tree_, kTreeViewWidth, kTreeViewHeight); | 
| 279   gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(blocked_tree_), FALSE); | 274   gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(blocked_tree_), FALSE); | 
| 280   gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(blocked_tree_), TRUE); | 275   gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(blocked_tree_), TRUE); | 
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 426 | 421 | 
| 427 void CollectedCookiesGtk::Observe(int type, | 422 void CollectedCookiesGtk::Observe(int type, | 
| 428                                   const NotificationSource& source, | 423                                   const NotificationSource& source, | 
| 429                                   const NotificationDetails& details) { | 424                                   const NotificationDetails& details) { | 
| 430   DCHECK(type == chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN); | 425   DCHECK(type == chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN); | 
| 431   window_->CloseConstrainedWindow(); | 426   window_->CloseConstrainedWindow(); | 
| 432 } | 427 } | 
| 433 | 428 | 
| 434 void CollectedCookiesGtk::OnClose(GtkWidget* close_button) { | 429 void CollectedCookiesGtk::OnClose(GtkWidget* close_button) { | 
| 435   if (status_changed_) { | 430   if (status_changed_) { | 
| 436     TabContentsWrapper::GetCurrentWrapperForContents(tab_contents_)-> | 431     wrapper_->infobar_tab_helper()->AddInfoBar( | 
| 437         infobar_tab_helper()->AddInfoBar( | 432         new CollectedCookiesInfoBarDelegate(wrapper_->tab_contents())); | 
| 438             new CollectedCookiesInfoBarDelegate(tab_contents_)); |  | 
| 439   } | 433   } | 
| 440   window_->CloseConstrainedWindow(); | 434   window_->CloseConstrainedWindow(); | 
| 441 } | 435 } | 
| 442 | 436 | 
| 443 void CollectedCookiesGtk::AddExceptions(GtkTreeSelection* selection, | 437 void CollectedCookiesGtk::AddExceptions(GtkTreeSelection* selection, | 
| 444                                         gtk_tree::TreeAdapter* adapter, | 438                                         gtk_tree::TreeAdapter* adapter, | 
| 445                                         ContentSetting setting) { | 439                                         ContentSetting setting) { | 
| 446   GtkTreeModel* model; | 440   GtkTreeModel* model; | 
| 447   GList* paths = | 441   GList* paths = | 
| 448       gtk_tree_selection_get_selected_rows(selection, &model); | 442       gtk_tree_selection_get_selected_rows(selection, &model); | 
| 449   string16 last_domain_name; | 443   string16 last_domain_name; | 
| 450   bool multiple_domains_added = false; | 444   bool multiple_domains_added = false; | 
| 451   for (GList* item = paths; item; item = item->next) { | 445   for (GList* item = paths; item; item = item->next) { | 
| 452     GtkTreeIter iter; | 446     GtkTreeIter iter; | 
| 453     gtk_tree_model_get_iter( | 447     gtk_tree_model_get_iter( | 
| 454         model, &iter, reinterpret_cast<GtkTreePath*>(item->data)); | 448         model, &iter, reinterpret_cast<GtkTreePath*>(item->data)); | 
| 455     CookieTreeNode* node = | 449     CookieTreeNode* node = | 
| 456         static_cast<CookieTreeNode*>(adapter->GetNode(&iter)); | 450         static_cast<CookieTreeNode*>(adapter->GetNode(&iter)); | 
| 457     if (node->GetDetailedInfo().node_type != | 451     if (node->GetDetailedInfo().node_type != | 
| 458         CookieTreeNode::DetailedInfo::TYPE_ORIGIN) | 452         CookieTreeNode::DetailedInfo::TYPE_ORIGIN) | 
| 459       continue; | 453       continue; | 
| 460     CookieTreeOriginNode* origin_node = static_cast<CookieTreeOriginNode*>( | 454     CookieTreeOriginNode* origin_node = static_cast<CookieTreeOriginNode*>( | 
| 461         node); | 455         node); | 
| 462     if (origin_node->CanCreateContentException()) { | 456     if (origin_node->CanCreateContentException()) { | 
| 463       if (!last_domain_name.empty()) | 457       if (!last_domain_name.empty()) | 
| 464         multiple_domains_added = true; | 458         multiple_domains_added = true; | 
| 465       last_domain_name = origin_node->GetTitle(); | 459       last_domain_name = origin_node->GetTitle(); | 
| 466       Profile* profile = | 460       Profile* profile = wrapper_->profile(); | 
| 467           Profile::FromBrowserContext(tab_contents_->browser_context()); |  | 
| 468       origin_node->CreateContentException( | 461       origin_node->CreateContentException( | 
| 469           profile->GetHostContentSettingsMap(), setting); | 462           profile->GetHostContentSettingsMap(), setting); | 
| 470     } | 463     } | 
| 471   } | 464   } | 
| 472   g_list_foreach(paths, reinterpret_cast<GFunc>(gtk_tree_path_free), NULL); | 465   g_list_foreach(paths, reinterpret_cast<GFunc>(gtk_tree_path_free), NULL); | 
| 473   g_list_free(paths); | 466   g_list_free(paths); | 
| 474   if (last_domain_name.empty()) { | 467   if (last_domain_name.empty()) { | 
| 475     gtk_widget_hide(infobar_); | 468     gtk_widget_hide(infobar_); | 
| 476   } else { | 469   } else { | 
| 477     gtk_label_set_text( | 470     gtk_label_set_text( | 
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 512       tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this); | 505       tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this); | 
| 513   gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_view), path, TRUE); | 506   gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_view), path, TRUE); | 
| 514   g_signal_handlers_unblock_by_func( | 507   g_signal_handlers_unblock_by_func( | 
| 515       tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this); | 508       tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this); | 
| 516 } | 509 } | 
| 517 | 510 | 
| 518 void CollectedCookiesGtk::OnTreeViewSelectionChange(GtkWidget* selection) { | 511 void CollectedCookiesGtk::OnTreeViewSelectionChange(GtkWidget* selection) { | 
| 519   EnableControls(); | 512   EnableControls(); | 
| 520   ShowCookieInfo(gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook_))); | 513   ShowCookieInfo(gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook_))); | 
| 521 } | 514 } | 
| OLD | NEW | 
|---|