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

Side by Side Diff: chrome/browser/ui/gtk/collected_cookies_gtk.cc

Issue 10545115: TabContentsWrapper -> TabContents, part 41. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #include "chrome/browser/browsing_data_appcache_helper.h" 8 #include "chrome/browser/browsing_data_appcache_helper.h"
9 #include "chrome/browser/browsing_data_cookie_helper.h" 9 #include "chrome/browser/browsing_data_cookie_helper.h"
10 #include "chrome/browser/browsing_data_database_helper.h" 10 #include "chrome/browser/browsing_data_database_helper.h"
11 #include "chrome/browser/browsing_data_file_system_helper.h" 11 #include "chrome/browser/browsing_data_file_system_helper.h"
12 #include "chrome/browser/browsing_data_indexed_db_helper.h" 12 #include "chrome/browser/browsing_data_indexed_db_helper.h"
13 #include "chrome/browser/browsing_data_local_storage_helper.h" 13 #include "chrome/browser/browsing_data_local_storage_helper.h"
14 #include "chrome/browser/browsing_data_server_bound_cert_helper.h" 14 #include "chrome/browser/browsing_data_server_bound_cert_helper.h"
15 #include "chrome/browser/content_settings/cookie_settings.h" 15 #include "chrome/browser/content_settings/cookie_settings.h"
16 #include "chrome/browser/content_settings/local_shared_objects_container.h" 16 #include "chrome/browser/content_settings/local_shared_objects_container.h"
17 #include "chrome/browser/content_settings/tab_specific_content_settings.h" 17 #include "chrome/browser/content_settings/tab_specific_content_settings.h"
18 #include "chrome/browser/cookies_tree_model.h" 18 #include "chrome/browser/cookies_tree_model.h"
19 #include "chrome/browser/infobars/infobar_tab_helper.h" 19 #include "chrome/browser/infobars/infobar_tab_helper.h"
20 #include "chrome/browser/prefs/pref_service.h" 20 #include "chrome/browser/prefs/pref_service.h"
21 #include "chrome/browser/profiles/profile.h" 21 #include "chrome/browser/profiles/profile.h"
22 #include "chrome/browser/ui/collected_cookies_infobar_delegate.h" 22 #include "chrome/browser/ui/collected_cookies_infobar_delegate.h"
23 #include "chrome/browser/ui/browser_dialogs.h" 23 #include "chrome/browser/ui/browser_dialogs.h"
24 #include "chrome/browser/ui/gtk/constrained_window_gtk.h" 24 #include "chrome/browser/ui/gtk/constrained_window_gtk.h"
25 #include "chrome/browser/ui/gtk/gtk_chrome_cookie_view.h" 25 #include "chrome/browser/ui/gtk/gtk_chrome_cookie_view.h"
26 #include "chrome/browser/ui/gtk/gtk_util.h" 26 #include "chrome/browser/ui/gtk/gtk_util.h"
27 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" 27 #include "chrome/browser/ui/tab_contents/tab_contents.h"
28 #include "chrome/common/chrome_notification_types.h" 28 #include "chrome/common/chrome_notification_types.h"
29 #include "chrome/common/pref_names.h" 29 #include "chrome/common/pref_names.h"
30 #include "content/public/browser/notification_source.h" 30 #include "content/public/browser/notification_source.h"
31 #include "grit/generated_resources.h" 31 #include "grit/generated_resources.h"
32 #include "ui/base/gtk/gtk_hig_constants.h" 32 #include "ui/base/gtk/gtk_hig_constants.h"
33 #include "ui/base/l10n/l10n_util.h" 33 #include "ui/base/l10n/l10n_util.h"
34 34
35 namespace { 35 namespace {
36 // Width and height of the cookie tree view. 36 // Width and height of the cookie tree view.
37 const int kTreeViewWidth = 450; 37 const int kTreeViewWidth = 450;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 return std::string(); 87 return std::string();
88 } 88 }
89 } 89 }
90 90
91 } // namespace 91 } // namespace
92 92
93 namespace browser { 93 namespace browser {
94 94
95 // Declared in browser_dialogs.h so others don't have to depend on our header. 95 // Declared in browser_dialogs.h so others don't have to depend on our header.
96 void ShowCollectedCookiesDialog(gfx::NativeWindow parent_window, 96 void ShowCollectedCookiesDialog(gfx::NativeWindow parent_window,
97 TabContentsWrapper* wrapper) { 97 TabContents* tab_contents) {
98 // Deletes itself on close. 98 // Deletes itself on close.
99 new CollectedCookiesGtk(parent_window, wrapper); 99 new CollectedCookiesGtk(parent_window, tab_contents);
100 } 100 }
101 101
102 } // namespace browser 102 } // namespace browser
103 103
104 CollectedCookiesGtk::CollectedCookiesGtk(GtkWindow* parent, 104 CollectedCookiesGtk::CollectedCookiesGtk(GtkWindow* parent,
105 TabContentsWrapper* wrapper) 105 TabContents* tab_contents)
106 : wrapper_(wrapper), 106 : tab_contents_(tab_contents),
107 status_changed_(false) { 107 status_changed_(false) {
108 registrar_.Add(this, chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN, 108 registrar_.Add(this, chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN,
109 content::Source<TabSpecificContentSettings>( 109 content::Source<TabSpecificContentSettings>(
110 wrapper->content_settings())); 110 tab_contents->content_settings()));
111 111
112 Init(); 112 Init();
113 } 113 }
114 114
115 void CollectedCookiesGtk::Init() { 115 void CollectedCookiesGtk::Init() {
116 dialog_ = gtk_vbox_new(FALSE, ui::kContentAreaSpacing); 116 dialog_ = gtk_vbox_new(FALSE, ui::kContentAreaSpacing);
117 gtk_box_set_spacing(GTK_BOX(dialog_), ui::kContentAreaSpacing); 117 gtk_box_set_spacing(GTK_BOX(dialog_), ui::kContentAreaSpacing);
118 118
119 GtkWidget* label = gtk_label_new( 119 GtkWidget* label = gtk_label_new(
120 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_DIALOG_TITLE).c_str()); 120 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_DIALOG_TITLE).c_str());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 gtk_button_set_label(GTK_BUTTON(close_button_), 177 gtk_button_set_label(GTK_BUTTON(close_button_),
178 l10n_util::GetStringUTF8(IDS_CLOSE).c_str()); 178 l10n_util::GetStringUTF8(IDS_CLOSE).c_str());
179 g_signal_connect(close_button_, "clicked", G_CALLBACK(OnCloseThunk), this); 179 g_signal_connect(close_button_, "clicked", G_CALLBACK(OnCloseThunk), this);
180 gtk_box_pack_end(GTK_BOX(button_box), close_button_, FALSE, TRUE, 0); 180 gtk_box_pack_end(GTK_BOX(button_box), close_button_, FALSE, TRUE, 0);
181 181
182 // Show the dialog. 182 // Show the dialog.
183 allowed_cookies_tree_adapter_->Init(); 183 allowed_cookies_tree_adapter_->Init();
184 blocked_cookies_tree_adapter_->Init(); 184 blocked_cookies_tree_adapter_->Init();
185 EnableControls(); 185 EnableControls();
186 ShowCookieInfo(gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook_))); 186 ShowCookieInfo(gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook_)));
187 window_ = new ConstrainedWindowGtk(wrapper_, this); 187 window_ = new ConstrainedWindowGtk(tab_contents_, this);
188 } 188 }
189 189
190 GtkWidget* CollectedCookiesGtk::CreateAllowedPane() { 190 GtkWidget* CollectedCookiesGtk::CreateAllowedPane() {
191 GtkWidget* cookie_list_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing); 191 GtkWidget* cookie_list_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing);
192 192
193 GtkWidget* label = gtk_label_new( 193 GtkWidget* label = gtk_label_new(
194 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_ALLOWED_COOKIES_LABEL). 194 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_ALLOWED_COOKIES_LABEL).
195 c_str()); 195 c_str());
196 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); 196 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
197 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, FALSE, FALSE, 197 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, FALSE, FALSE,
198 ui::kControlSpacing); 198 ui::kControlSpacing);
199 199
200 GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL); 200 GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL);
201 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), 201 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window),
202 GTK_POLICY_AUTOMATIC, 202 GTK_POLICY_AUTOMATIC,
203 GTK_POLICY_AUTOMATIC); 203 GTK_POLICY_AUTOMATIC);
204 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window), 204 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window),
205 GTK_SHADOW_ETCHED_IN); 205 GTK_SHADOW_ETCHED_IN);
206 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0); 206 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0);
207 207
208 TabSpecificContentSettings* content_settings = wrapper_->content_settings(); 208 TabSpecificContentSettings* content_settings =
209 tab_contents_->content_settings();
209 210
210 const LocalSharedObjectsContainer& allowed_lsos = 211 const LocalSharedObjectsContainer& allowed_lsos =
211 content_settings->allowed_local_shared_objects(); 212 content_settings->allowed_local_shared_objects();
212 allowed_cookies_tree_model_.reset( 213 allowed_cookies_tree_model_.reset(
213 new CookiesTreeModel(allowed_lsos.cookies()->Clone(), 214 new CookiesTreeModel(allowed_lsos.cookies()->Clone(),
214 allowed_lsos.databases()->Clone(), 215 allowed_lsos.databases()->Clone(),
215 allowed_lsos.local_storages()->Clone(), 216 allowed_lsos.local_storages()->Clone(),
216 allowed_lsos.session_storages()->Clone(), 217 allowed_lsos.session_storages()->Clone(),
217 allowed_lsos.appcaches()->Clone(), 218 allowed_lsos.appcaches()->Clone(),
218 allowed_lsos.indexed_dbs()->Clone(), 219 allowed_lsos.indexed_dbs()->Clone(),
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 264
264 // Wrap the vbox inside an hbox so that we can specify padding along the 265 // Wrap the vbox inside an hbox so that we can specify padding along the
265 // horizontal axis. 266 // horizontal axis.
266 GtkWidget* box = gtk_hbox_new(FALSE, 0); 267 GtkWidget* box = gtk_hbox_new(FALSE, 0);
267 gtk_box_pack_start(GTK_BOX(box), cookie_list_vbox, TRUE, TRUE, 268 gtk_box_pack_start(GTK_BOX(box), cookie_list_vbox, TRUE, TRUE,
268 ui::kControlSpacing); 269 ui::kControlSpacing);
269 return box; 270 return box;
270 } 271 }
271 272
272 GtkWidget* CollectedCookiesGtk::CreateBlockedPane() { 273 GtkWidget* CollectedCookiesGtk::CreateBlockedPane() {
273 PrefService* prefs = wrapper_->profile()->GetPrefs(); 274 PrefService* prefs = tab_contents_->profile()->GetPrefs();
274 275
275 GtkWidget* cookie_list_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing); 276 GtkWidget* cookie_list_vbox = gtk_vbox_new(FALSE, ui::kControlSpacing);
276 277
277 GtkWidget* label = gtk_label_new( 278 GtkWidget* label = gtk_label_new(
278 l10n_util::GetStringUTF8( 279 l10n_util::GetStringUTF8(
279 prefs->GetBoolean(prefs::kBlockThirdPartyCookies) ? 280 prefs->GetBoolean(prefs::kBlockThirdPartyCookies) ?
280 IDS_COLLECTED_COOKIES_BLOCKED_THIRD_PARTY_BLOCKING_ENABLED : 281 IDS_COLLECTED_COOKIES_BLOCKED_THIRD_PARTY_BLOCKING_ENABLED :
281 IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL).c_str()); 282 IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL).c_str());
282 gtk_widget_set_size_request(label, kTreeViewWidth, -1); 283 gtk_widget_set_size_request(label, kTreeViewWidth, -1);
283 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); 284 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
284 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); 285 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
285 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, TRUE, TRUE, 286 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, TRUE, TRUE,
286 ui::kControlSpacing); 287 ui::kControlSpacing);
287 288
288 GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL); 289 GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL);
289 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), 290 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window),
290 GTK_POLICY_AUTOMATIC, 291 GTK_POLICY_AUTOMATIC,
291 GTK_POLICY_AUTOMATIC); 292 GTK_POLICY_AUTOMATIC);
292 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window), 293 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window),
293 GTK_SHADOW_ETCHED_IN); 294 GTK_SHADOW_ETCHED_IN);
294 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0); 295 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0);
295 296
296 TabSpecificContentSettings* content_settings = wrapper_->content_settings(); 297 TabSpecificContentSettings* content_settings =
298 tab_contents_->content_settings();
297 299
298 const LocalSharedObjectsContainer& blocked_lsos = 300 const LocalSharedObjectsContainer& blocked_lsos =
299 content_settings->blocked_local_shared_objects(); 301 content_settings->blocked_local_shared_objects();
300 blocked_cookies_tree_model_.reset( 302 blocked_cookies_tree_model_.reset(
301 new CookiesTreeModel(blocked_lsos.cookies()->Clone(), 303 new CookiesTreeModel(blocked_lsos.cookies()->Clone(),
302 blocked_lsos.databases()->Clone(), 304 blocked_lsos.databases()->Clone(),
303 blocked_lsos.local_storages()->Clone(), 305 blocked_lsos.local_storages()->Clone(),
304 blocked_lsos.session_storages()->Clone(), 306 blocked_lsos.session_storages()->Clone(),
305 blocked_lsos.appcaches()->Clone(), 307 blocked_lsos.appcaches()->Clone(),
306 blocked_lsos.indexed_dbs()->Clone(), 308 blocked_lsos.indexed_dbs()->Clone(),
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 465
464 void CollectedCookiesGtk::Observe(int type, 466 void CollectedCookiesGtk::Observe(int type,
465 const content::NotificationSource& source, 467 const content::NotificationSource& source,
466 const content::NotificationDetails& details) { 468 const content::NotificationDetails& details) {
467 DCHECK(type == chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN); 469 DCHECK(type == chrome::NOTIFICATION_COLLECTED_COOKIES_SHOWN);
468 window_->CloseConstrainedWindow(); 470 window_->CloseConstrainedWindow();
469 } 471 }
470 472
471 void CollectedCookiesGtk::OnClose(GtkWidget* close_button) { 473 void CollectedCookiesGtk::OnClose(GtkWidget* close_button) {
472 if (status_changed_) { 474 if (status_changed_) {
473 InfoBarTabHelper* infobar_helper = wrapper_->infobar_tab_helper(); 475 InfoBarTabHelper* infobar_helper = tab_contents_->infobar_tab_helper();
474 infobar_helper->AddInfoBar( 476 infobar_helper->AddInfoBar(
475 new CollectedCookiesInfoBarDelegate(infobar_helper)); 477 new CollectedCookiesInfoBarDelegate(infobar_helper));
476 } 478 }
477 window_->CloseConstrainedWindow(); 479 window_->CloseConstrainedWindow();
478 } 480 }
479 481
480 void CollectedCookiesGtk::AddExceptions(GtkTreeSelection* selection, 482 void CollectedCookiesGtk::AddExceptions(GtkTreeSelection* selection,
481 gtk_tree::TreeAdapter* adapter, 483 gtk_tree::TreeAdapter* adapter,
482 ContentSetting setting) { 484 ContentSetting setting) {
483 GtkTreeModel* model; 485 GtkTreeModel* model;
484 GList* paths = 486 GList* paths =
485 gtk_tree_selection_get_selected_rows(selection, &model); 487 gtk_tree_selection_get_selected_rows(selection, &model);
486 string16 last_domain_name; 488 string16 last_domain_name;
487 bool multiple_domains_added = false; 489 bool multiple_domains_added = false;
488 for (GList* item = paths; item; item = item->next) { 490 for (GList* item = paths; item; item = item->next) {
489 GtkTreeIter iter; 491 GtkTreeIter iter;
490 gtk_tree_model_get_iter( 492 gtk_tree_model_get_iter(
491 model, &iter, reinterpret_cast<GtkTreePath*>(item->data)); 493 model, &iter, reinterpret_cast<GtkTreePath*>(item->data));
492 CookieTreeNode* node = 494 CookieTreeNode* node =
493 static_cast<CookieTreeNode*>(adapter->GetNode(&iter)); 495 static_cast<CookieTreeNode*>(adapter->GetNode(&iter));
494 if (node->GetDetailedInfo().node_type != 496 if (node->GetDetailedInfo().node_type !=
495 CookieTreeNode::DetailedInfo::TYPE_ORIGIN) 497 CookieTreeNode::DetailedInfo::TYPE_ORIGIN)
496 continue; 498 continue;
497 CookieTreeOriginNode* origin_node = static_cast<CookieTreeOriginNode*>( 499 CookieTreeOriginNode* origin_node = static_cast<CookieTreeOriginNode*>(
498 node); 500 node);
499 if (origin_node->CanCreateContentException()) { 501 if (origin_node->CanCreateContentException()) {
500 if (!last_domain_name.empty()) 502 if (!last_domain_name.empty())
501 multiple_domains_added = true; 503 multiple_domains_added = true;
502 last_domain_name = origin_node->GetTitle(); 504 last_domain_name = origin_node->GetTitle();
503 Profile* profile = wrapper_->profile(); 505 Profile* profile = tab_contents_->profile();
504 origin_node->CreateContentException( 506 origin_node->CreateContentException(
505 CookieSettings::Factory::GetForProfile(profile), setting); 507 CookieSettings::Factory::GetForProfile(profile), setting);
506 } 508 }
507 } 509 }
508 g_list_foreach(paths, reinterpret_cast<GFunc>(gtk_tree_path_free), NULL); 510 g_list_foreach(paths, reinterpret_cast<GFunc>(gtk_tree_path_free), NULL);
509 g_list_free(paths); 511 g_list_free(paths);
510 if (last_domain_name.empty()) { 512 if (last_domain_name.empty()) {
511 gtk_widget_hide(infobar_); 513 gtk_widget_hide(infobar_);
512 } else { 514 } else {
513 gtk_label_set_text( 515 gtk_label_set_text(
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this); 550 tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this);
549 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_view), path, TRUE); 551 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_view), path, TRUE);
550 g_signal_handlers_unblock_by_func( 552 g_signal_handlers_unblock_by_func(
551 tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this); 553 tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this);
552 } 554 }
553 555
554 void CollectedCookiesGtk::OnTreeViewSelectionChange(GtkWidget* selection) { 556 void CollectedCookiesGtk::OnTreeViewSelectionChange(GtkWidget* selection) {
555 EnableControls(); 557 EnableControls();
556 ShowCookieInfo(gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook_))); 558 ShowCookieInfo(gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook_)));
557 } 559 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/collected_cookies_gtk.h ('k') | chrome/browser/ui/gtk/constrained_web_dialog_delegate_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698