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

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

Issue 3108029: Display an infobar when content settings were created. (Closed)
Patch Set: updates Created 10 years, 4 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
« no previous file with comments | « chrome/browser/gtk/collected_cookies_gtk.h ('k') | chrome/browser/gtk/gtk_tree.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/gtk/collected_cookies_gtk.h" 5 #include "chrome/browser/gtk/collected_cookies_gtk.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "chrome/browser/cookies_tree_model.h" 8 #include "chrome/browser/cookies_tree_model.h"
9 #include "chrome/browser/gtk/gtk_util.h" 9 #include "chrome/browser/gtk/gtk_util.h"
10 #include "chrome/browser/profile.h" 10 #include "chrome/browser/profile.h"
11 #include "chrome/browser/tab_contents/tab_contents.h" 11 #include "chrome/browser/tab_contents/tab_contents.h"
12 #include "chrome/common/notification_service.h" 12 #include "chrome/common/notification_service.h"
13 #include "grit/generated_resources.h" 13 #include "grit/generated_resources.h"
14 14
15 namespace { 15 namespace {
16 // Height of the cookie tree view. 16 // Width and height of the cookie tree view.
17 const int kTreeViewWidth = 450;
17 const int kTreeViewHeight = 150; 18 const int kTreeViewHeight = 150;
19
20 // Padding within the banner box.
21 const int kBannerPadding = 3;
22
23 // Returns the text to display in the info bar when content settings were
24 // created.
25 const std::string GetInfobarLabel(ContentSetting setting,
26 bool multiple_domains_added,
27 const string16& domain_name) {
28 if (multiple_domains_added) {
29 switch (setting) {
30 case CONTENT_SETTING_BLOCK:
31 return l10n_util::GetStringUTF8(
32 IDS_COLLECTED_COOKIES_MULTIPLE_BLOCK_RULES_CREATED);
33
34 case CONTENT_SETTING_ALLOW:
35 return l10n_util::GetStringUTF8(
36 IDS_COLLECTED_COOKIES_MULTIPLE_ALLOW_RULES_CREATED);
37
38 case CONTENT_SETTING_SESSION_ONLY:
39 return l10n_util::GetStringUTF8(
40 IDS_COLLECTED_COOKIES_MULTIPLE_SESSION_RULES_CREATED);
41
42 default:
43 NOTREACHED();
44 return std::string();
45 }
46 }
47
48 switch (setting) {
49 case CONTENT_SETTING_BLOCK:
50 return l10n_util::GetStringFUTF8(
51 IDS_COLLECTED_COOKIES_BLOCK_RULE_CREATED, domain_name);
52
53 case CONTENT_SETTING_ALLOW:
54 return l10n_util::GetStringFUTF8(
55 IDS_COLLECTED_COOKIES_ALLOW_RULE_CREATED, domain_name);
56
57 case CONTENT_SETTING_SESSION_ONLY:
58 return l10n_util::GetStringFUTF8(
59 IDS_COLLECTED_COOKIES_SESSION_RULE_CREATED, domain_name);
60
61 default:
62 NOTREACHED();
63 return std::string();
64 }
65 }
18 } // namespace 66 } // namespace
19 67
20 CollectedCookiesGtk::CollectedCookiesGtk(GtkWindow* parent, 68 CollectedCookiesGtk::CollectedCookiesGtk(GtkWindow* parent,
21 TabContents* tab_contents) 69 TabContents* tab_contents)
22 : tab_contents_(tab_contents) { 70 : tab_contents_(tab_contents) {
23 TabSpecificContentSettings* content_settings = 71 TabSpecificContentSettings* content_settings =
24 tab_contents->GetTabSpecificContentSettings(); 72 tab_contents->GetTabSpecificContentSettings();
25 registrar_.Add(this, NotificationType::COLLECTED_COOKIES_SHOWN, 73 registrar_.Add(this, NotificationType::COLLECTED_COOKIES_SHOWN,
26 Source<TabSpecificContentSettings>(content_settings)); 74 Source<TabSpecificContentSettings>(content_settings));
27 75
28 Init(); 76 Init();
29 } 77 }
30 78
31 void CollectedCookiesGtk::Init() { 79 void CollectedCookiesGtk::Init() {
80 HostContentSettingsMap* host_content_settings_map =
81 tab_contents_->profile()->GetHostContentSettingsMap();
82
32 dialog_ = gtk_vbox_new(FALSE, gtk_util::kContentAreaSpacing); 83 dialog_ = gtk_vbox_new(FALSE, gtk_util::kContentAreaSpacing);
33 gtk_box_set_spacing(GTK_BOX(dialog_), gtk_util::kContentAreaSpacing); 84 gtk_box_set_spacing(GTK_BOX(dialog_), gtk_util::kContentAreaSpacing);
34 85
35 GtkWidget* label = gtk_label_new( 86 GtkWidget* label = gtk_label_new(
36 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_DIALOG_TITLE).c_str()); 87 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_DIALOG_TITLE).c_str());
37 gtk_box_pack_start(GTK_BOX(dialog_), label, TRUE, TRUE, 0); 88 gtk_box_pack_start(GTK_BOX(dialog_), label, TRUE, TRUE, 0);
38 89
39 // Allowed Cookie list. 90 // Allowed Cookie list.
40 GtkWidget* cookie_list_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); 91 GtkWidget* cookie_list_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing);
41 gtk_box_pack_start(GTK_BOX(dialog_), cookie_list_vbox, TRUE, TRUE, 0); 92 gtk_box_pack_start(GTK_BOX(dialog_), cookie_list_vbox, TRUE, TRUE, 0);
(...skipping 14 matching lines...) Expand all
56 107
57 TabSpecificContentSettings* content_settings = 108 TabSpecificContentSettings* content_settings =
58 tab_contents_->GetTabSpecificContentSettings(); 109 tab_contents_->GetTabSpecificContentSettings();
59 110
60 allowed_cookies_tree_model_.reset( 111 allowed_cookies_tree_model_.reset(
61 content_settings->GetAllowedCookiesTreeModel()); 112 content_settings->GetAllowedCookiesTreeModel());
62 allowed_cookies_tree_adapter_.reset( 113 allowed_cookies_tree_adapter_.reset(
63 new gtk_tree::TreeAdapter(this, allowed_cookies_tree_model_.get())); 114 new gtk_tree::TreeAdapter(this, allowed_cookies_tree_model_.get()));
64 allowed_tree_ = gtk_tree_view_new_with_model( 115 allowed_tree_ = gtk_tree_view_new_with_model(
65 GTK_TREE_MODEL(allowed_cookies_tree_adapter_->tree_store())); 116 GTK_TREE_MODEL(allowed_cookies_tree_adapter_->tree_store()));
66 gtk_widget_set_size_request(allowed_tree_, -1, kTreeViewHeight); 117 gtk_widget_set_size_request(allowed_tree_, kTreeViewWidth, kTreeViewHeight);
67 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(allowed_tree_), FALSE); 118 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(allowed_tree_), FALSE);
68 gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(allowed_tree_), TRUE); 119 gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(allowed_tree_), TRUE);
69 gtk_container_add(GTK_CONTAINER(scroll_window), allowed_tree_); 120 gtk_container_add(GTK_CONTAINER(scroll_window), allowed_tree_);
70 121
71 GtkTreeViewColumn* title_column = gtk_tree_view_column_new(); 122 GtkTreeViewColumn* title_column = gtk_tree_view_column_new();
72 GtkCellRenderer* pixbuf_renderer = gtk_cell_renderer_pixbuf_new(); 123 GtkCellRenderer* pixbuf_renderer = gtk_cell_renderer_pixbuf_new();
73 gtk_tree_view_column_pack_start(title_column, pixbuf_renderer, FALSE); 124 gtk_tree_view_column_pack_start(title_column, pixbuf_renderer, FALSE);
74 gtk_tree_view_column_add_attribute(title_column, pixbuf_renderer, "pixbuf", 125 gtk_tree_view_column_add_attribute(title_column, pixbuf_renderer, "pixbuf",
75 gtk_tree::TreeAdapter::COL_ICON); 126 gtk_tree::TreeAdapter::COL_ICON);
76 GtkCellRenderer* title_renderer = gtk_cell_renderer_text_new(); 127 GtkCellRenderer* title_renderer = gtk_cell_renderer_text_new();
(...skipping 15 matching lines...) Expand all
92 GtkWidget* button_box = gtk_hbutton_box_new(); 143 GtkWidget* button_box = gtk_hbutton_box_new();
93 gtk_button_box_set_layout(GTK_BUTTON_BOX(button_box), GTK_BUTTONBOX_START); 144 gtk_button_box_set_layout(GTK_BUTTON_BOX(button_box), GTK_BUTTONBOX_START);
94 gtk_box_set_spacing(GTK_BOX(button_box), gtk_util::kControlSpacing); 145 gtk_box_set_spacing(GTK_BOX(button_box), gtk_util::kControlSpacing);
95 gtk_box_pack_start(GTK_BOX(dialog_), button_box, FALSE, FALSE, 0); 146 gtk_box_pack_start(GTK_BOX(dialog_), button_box, FALSE, FALSE, 0);
96 block_allowed_cookie_button_ = gtk_button_new_with_label( 147 block_allowed_cookie_button_ = gtk_button_new_with_label(
97 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_BLOCK_BUTTON).c_str()); 148 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_BLOCK_BUTTON).c_str());
98 g_signal_connect(block_allowed_cookie_button_, "clicked", 149 g_signal_connect(block_allowed_cookie_button_, "clicked",
99 G_CALLBACK(OnBlockAllowedButtonClickedThunk), this); 150 G_CALLBACK(OnBlockAllowedButtonClickedThunk), this);
100 gtk_container_add(GTK_CONTAINER(button_box), block_allowed_cookie_button_); 151 gtk_container_add(GTK_CONTAINER(button_box), block_allowed_cookie_button_);
101 152
153 GtkWidget* separator = gtk_hseparator_new();
154 gtk_box_pack_start(GTK_BOX(dialog_), separator, TRUE, TRUE, 0);
155
102 // Blocked Cookie list. 156 // Blocked Cookie list.
103 cookie_list_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); 157 cookie_list_vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing);
104 gtk_box_pack_start(GTK_BOX(dialog_), cookie_list_vbox, TRUE, TRUE, 0); 158 gtk_box_pack_start(GTK_BOX(dialog_), cookie_list_vbox, TRUE, TRUE, 0);
105 159
106 label = gtk_label_new( 160 label = gtk_label_new(
107 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL). 161 l10n_util::GetStringUTF8(
108 c_str()); 162 host_content_settings_map->BlockThirdPartyCookies() ?
163 IDS_COLLECTED_COOKIES_BLOCKED_THIRD_PARTY_BLOCKING_ENABLED :
164 IDS_COLLECTED_COOKIES_BLOCKED_COOKIES_LABEL).c_str());
165 gtk_widget_set_size_request(label, kTreeViewWidth, -1);
166 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
109 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); 167 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
110 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, FALSE, FALSE, 0); 168 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), label, TRUE, TRUE, 0);
111 169
112 scroll_window = gtk_scrolled_window_new(NULL, NULL); 170 scroll_window = gtk_scrolled_window_new(NULL, NULL);
113 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), 171 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window),
114 GTK_POLICY_AUTOMATIC, 172 GTK_POLICY_AUTOMATIC,
115 GTK_POLICY_AUTOMATIC); 173 GTK_POLICY_AUTOMATIC);
116 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window), 174 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window),
117 GTK_SHADOW_ETCHED_IN); 175 GTK_SHADOW_ETCHED_IN);
118 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0); 176 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0);
119 177
120 blocked_cookies_tree_model_.reset( 178 blocked_cookies_tree_model_.reset(
121 content_settings->GetBlockedCookiesTreeModel()); 179 content_settings->GetBlockedCookiesTreeModel());
122 blocked_cookies_tree_adapter_.reset( 180 blocked_cookies_tree_adapter_.reset(
123 new gtk_tree::TreeAdapter(this, blocked_cookies_tree_model_.get())); 181 new gtk_tree::TreeAdapter(this, blocked_cookies_tree_model_.get()));
124 blocked_tree_ = gtk_tree_view_new_with_model( 182 blocked_tree_ = gtk_tree_view_new_with_model(
125 GTK_TREE_MODEL(blocked_cookies_tree_adapter_->tree_store())); 183 GTK_TREE_MODEL(blocked_cookies_tree_adapter_->tree_store()));
126 gtk_widget_set_size_request(blocked_tree_, -1, kTreeViewHeight); 184 gtk_widget_set_size_request(blocked_tree_, kTreeViewWidth, kTreeViewHeight);
127 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(blocked_tree_), FALSE); 185 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(blocked_tree_), FALSE);
128 gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(blocked_tree_), TRUE); 186 gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(blocked_tree_), TRUE);
129 gtk_container_add(GTK_CONTAINER(scroll_window), blocked_tree_); 187 gtk_container_add(GTK_CONTAINER(scroll_window), blocked_tree_);
130 188
131 title_column = gtk_tree_view_column_new(); 189 title_column = gtk_tree_view_column_new();
132 pixbuf_renderer = gtk_cell_renderer_pixbuf_new(); 190 pixbuf_renderer = gtk_cell_renderer_pixbuf_new();
133 gtk_tree_view_column_pack_start(title_column, pixbuf_renderer, FALSE); 191 gtk_tree_view_column_pack_start(title_column, pixbuf_renderer, FALSE);
134 gtk_tree_view_column_add_attribute(title_column, pixbuf_renderer, "pixbuf", 192 gtk_tree_view_column_add_attribute(title_column, pixbuf_renderer, "pixbuf",
135 gtk_tree::TreeAdapter::COL_ICON); 193 gtk_tree::TreeAdapter::COL_ICON);
136 title_renderer = gtk_cell_renderer_text_new(); 194 title_renderer = gtk_cell_renderer_text_new();
(...skipping 22 matching lines...) Expand all
159 G_CALLBACK(OnAllowBlockedButtonClickedThunk), this); 217 G_CALLBACK(OnAllowBlockedButtonClickedThunk), this);
160 gtk_container_add(GTK_CONTAINER(button_box), allow_blocked_cookie_button_); 218 gtk_container_add(GTK_CONTAINER(button_box), allow_blocked_cookie_button_);
161 for_session_blocked_cookie_button_ = gtk_button_new_with_label( 219 for_session_blocked_cookie_button_ = gtk_button_new_with_label(
162 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_SESSION_ONLY_BUTTON). 220 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_SESSION_ONLY_BUTTON).
163 c_str()); 221 c_str());
164 g_signal_connect(for_session_blocked_cookie_button_, "clicked", 222 g_signal_connect(for_session_blocked_cookie_button_, "clicked",
165 G_CALLBACK(OnForSessionBlockedButtonClickedThunk), this); 223 G_CALLBACK(OnForSessionBlockedButtonClickedThunk), this);
166 gtk_container_add(GTK_CONTAINER(button_box), 224 gtk_container_add(GTK_CONTAINER(button_box),
167 for_session_blocked_cookie_button_); 225 for_session_blocked_cookie_button_);
168 226
227 // Infobar.
228 infobar_ = gtk_frame_new(NULL);
229 GtkWidget* infobar_contents = gtk_hbox_new(FALSE, kBannerPadding);
230 gtk_container_set_border_width(GTK_CONTAINER(infobar_contents),
231 kBannerPadding);
232 gtk_container_add(GTK_CONTAINER(infobar_), infobar_contents);
233 GtkWidget* info_image =
234 gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO,
235 GTK_ICON_SIZE_SMALL_TOOLBAR);
236 gtk_box_pack_start(GTK_BOX(infobar_contents), info_image, FALSE, FALSE, 0);
237 infobar_label_ = gtk_label_new(NULL);
238 gtk_box_pack_start(
239 GTK_BOX(infobar_contents), infobar_label_, FALSE, FALSE, 0);
240 gtk_widget_show_all(infobar_);
241 gtk_widget_set_no_show_all(infobar_, TRUE);
242 gtk_widget_hide(infobar_);
243 gtk_box_pack_start(GTK_BOX(dialog_), infobar_, TRUE, TRUE, 0);
244
169 // Close button. 245 // Close button.
170 button_box = gtk_hbutton_box_new(); 246 button_box = gtk_hbutton_box_new();
171 gtk_button_box_set_layout(GTK_BUTTON_BOX(button_box), GTK_BUTTONBOX_END); 247 gtk_button_box_set_layout(GTK_BUTTON_BOX(button_box), GTK_BUTTONBOX_END);
172 gtk_box_set_spacing(GTK_BOX(button_box), gtk_util::kControlSpacing); 248 gtk_box_set_spacing(GTK_BOX(button_box), gtk_util::kControlSpacing);
173 gtk_box_pack_end(GTK_BOX(dialog_), button_box, FALSE, TRUE, 0); 249 gtk_box_pack_end(GTK_BOX(dialog_), button_box, FALSE, TRUE, 0);
174 GtkWidget* close = gtk_button_new_from_stock(GTK_STOCK_CLOSE); 250 GtkWidget* close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
175 gtk_button_set_label(GTK_BUTTON(close), 251 gtk_button_set_label(GTK_BUTTON(close),
176 l10n_util::GetStringUTF8(IDS_CLOSE).c_str()); 252 l10n_util::GetStringUTF8(IDS_CLOSE).c_str());
177 g_signal_connect(close, "clicked", G_CALLBACK(OnCloseThunk), this); 253 g_signal_connect(close, "clicked", G_CALLBACK(OnCloseThunk), this);
178 gtk_box_pack_end(GTK_BOX(button_box), close, FALSE, TRUE, 0); 254 gtk_box_pack_end(GTK_BOX(button_box), close, FALSE, TRUE, 0);
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 void CollectedCookiesGtk::OnClose(GtkWidget* close_button) { 328 void CollectedCookiesGtk::OnClose(GtkWidget* close_button) {
253 window_->CloseConstrainedWindow(); 329 window_->CloseConstrainedWindow();
254 } 330 }
255 331
256 void CollectedCookiesGtk::AddExceptions(GtkTreeSelection* selection, 332 void CollectedCookiesGtk::AddExceptions(GtkTreeSelection* selection,
257 gtk_tree::TreeAdapter* adapter, 333 gtk_tree::TreeAdapter* adapter,
258 ContentSetting setting) { 334 ContentSetting setting) {
259 GtkTreeModel* model; 335 GtkTreeModel* model;
260 GList* paths = 336 GList* paths =
261 gtk_tree_selection_get_selected_rows(selection, &model); 337 gtk_tree_selection_get_selected_rows(selection, &model);
338 string16 last_domain_name;
339 bool multiple_domains_added = false;
262 for (GList* item = paths; item; item = item->next) { 340 for (GList* item = paths; item; item = item->next) {
263 GtkTreeIter iter; 341 GtkTreeIter iter;
264 gtk_tree_model_get_iter( 342 gtk_tree_model_get_iter(
265 model, &iter, reinterpret_cast<GtkTreePath*>(item->data)); 343 model, &iter, reinterpret_cast<GtkTreePath*>(item->data));
266 CookieTreeOriginNode* node = static_cast<CookieTreeOriginNode*>( 344 CookieTreeOriginNode* node = static_cast<CookieTreeOriginNode*>(
267 adapter->GetNode(&iter)); 345 adapter->GetNode(&iter));
268 if (node->CanCreateContentException()) { 346 if (node->CanCreateContentException()) {
347 if (!last_domain_name.empty())
348 multiple_domains_added = true;
349 last_domain_name = node->GetTitleAsString16();
269 node->CreateContentException( 350 node->CreateContentException(
270 tab_contents_->profile()->GetHostContentSettingsMap(), setting); 351 tab_contents_->profile()->GetHostContentSettingsMap(), setting);
271 } 352 }
272 } 353 }
273 g_list_foreach(paths, reinterpret_cast<GFunc>(gtk_tree_path_free), NULL); 354 g_list_foreach(paths, reinterpret_cast<GFunc>(gtk_tree_path_free), NULL);
274 g_list_free(paths); 355 g_list_free(paths);
356 if (last_domain_name.empty()) {
357 gtk_widget_hide(infobar_);
358 } else {
359 gtk_label_set_text(
360 GTK_LABEL(infobar_label_), GetInfobarLabel(
361 setting, multiple_domains_added, last_domain_name).c_str());
362 gtk_widget_show(infobar_);
363 }
275 } 364 }
276 365
277 void CollectedCookiesGtk::OnBlockAllowedButtonClicked(GtkWidget* button) { 366 void CollectedCookiesGtk::OnBlockAllowedButtonClicked(GtkWidget* button) {
278 AddExceptions(allowed_selection_, allowed_cookies_tree_adapter_.get(), 367 AddExceptions(allowed_selection_, allowed_cookies_tree_adapter_.get(),
279 CONTENT_SETTING_BLOCK); 368 CONTENT_SETTING_BLOCK);
280 } 369 }
281 370
282 void CollectedCookiesGtk::OnAllowBlockedButtonClicked(GtkWidget* button) { 371 void CollectedCookiesGtk::OnAllowBlockedButtonClicked(GtkWidget* button) {
283 AddExceptions(blocked_selection_, blocked_cookies_tree_adapter_.get(), 372 AddExceptions(blocked_selection_, blocked_cookies_tree_adapter_.get(),
284 CONTENT_SETTING_ALLOW); 373 CONTENT_SETTING_ALLOW);
(...skipping 11 matching lines...) Expand all
296 g_signal_handlers_block_by_func( 385 g_signal_handlers_block_by_func(
297 tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this); 386 tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this);
298 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_view), path, TRUE); 387 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_view), path, TRUE);
299 g_signal_handlers_unblock_by_func( 388 g_signal_handlers_unblock_by_func(
300 tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this); 389 tree_view, reinterpret_cast<gpointer>(OnTreeViewRowExpandedThunk), this);
301 } 390 }
302 391
303 void CollectedCookiesGtk::OnTreeViewSelectionChange(GtkWidget* selection) { 392 void CollectedCookiesGtk::OnTreeViewSelectionChange(GtkWidget* selection) {
304 EnableControls(); 393 EnableControls();
305 } 394 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/collected_cookies_gtk.h ('k') | chrome/browser/gtk/gtk_tree.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698