| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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/options/cookies_view.h" | 5 #include "chrome/browser/gtk/options/cookies_view.h" |
| 6 | 6 |
| 7 #include <gdk/gdkkeysyms.h> | 7 #include <gdk/gdkkeysyms.h> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 28 | 28 |
| 29 // Response ids for our custom buttons. | 29 // Response ids for our custom buttons. |
| 30 enum { | 30 enum { |
| 31 RESPONSE_REMOVE = 1, | 31 RESPONSE_REMOVE = 1, |
| 32 RESPONSE_REMOVE_ALL | 32 RESPONSE_REMOVE_ALL |
| 33 }; | 33 }; |
| 34 | 34 |
| 35 // The currently open cookie manager, if any. | 35 // The currently open cookie manager, if any. |
| 36 CookiesView* instance_ = NULL; | 36 CookiesView* instance_ = NULL; |
| 37 | 37 |
| 38 void InitCookieDetailStyle(GtkWidget* entry, GtkStyle* label_style, | 38 void InitBrowserDetailStyle(GtkWidget* entry, GtkStyle* label_style, |
| 39 GtkStyle* dialog_style) { | 39 GtkStyle* dialog_style) { |
| 40 gtk_widget_modify_fg(entry, GTK_STATE_NORMAL, | 40 gtk_widget_modify_fg(entry, GTK_STATE_NORMAL, |
| 41 &label_style->fg[GTK_STATE_NORMAL]); | 41 &label_style->fg[GTK_STATE_NORMAL]); |
| 42 gtk_widget_modify_fg(entry, GTK_STATE_INSENSITIVE, | 42 gtk_widget_modify_fg(entry, GTK_STATE_INSENSITIVE, |
| 43 &label_style->fg[GTK_STATE_INSENSITIVE]); | 43 &label_style->fg[GTK_STATE_INSENSITIVE]); |
| 44 // GTK_NO_WINDOW widgets like GtkLabel don't draw their own background, so we | 44 // GTK_NO_WINDOW widgets like GtkLabel don't draw their own background, so we |
| 45 // combine the normal or insensitive foreground of the label style with the | 45 // combine the normal or insensitive foreground of the label style with the |
| 46 // normal background of the window style to achieve the "normal label" and | 46 // normal background of the window style to achieve the "normal label" and |
| 47 // "insensitive label" colors. | 47 // "insensitive label" colors. |
| 48 gtk_widget_modify_base(entry, GTK_STATE_NORMAL, | 48 gtk_widget_modify_base(entry, GTK_STATE_NORMAL, |
| 49 &dialog_style->bg[GTK_STATE_NORMAL]); | 49 &dialog_style->bg[GTK_STATE_NORMAL]); |
| 50 gtk_widget_modify_base(entry, GTK_STATE_INSENSITIVE, | 50 gtk_widget_modify_base(entry, GTK_STATE_INSENSITIVE, |
| 51 &dialog_style->bg[GTK_STATE_NORMAL]); | 51 &dialog_style->bg[GTK_STATE_NORMAL]); |
| 52 } | 52 } |
| 53 | 53 |
| 54 } // namespace | 54 } // namespace |
| 55 | 55 |
| 56 CookiesView::~CookiesView() { | 56 CookiesView::~CookiesView() { |
| 57 } | 57 } |
| 58 | 58 |
| 59 // static | 59 // static |
| 60 void CookiesView::Show(Profile* profile) { | 60 void CookiesView::Show( |
| 61 Profile* profile, |
| 62 BrowsingDataLocalStorageHelper* browsing_data_local_storage_helper) { |
| 61 DCHECK(profile); | 63 DCHECK(profile); |
| 64 DCHECK(browsing_data_local_storage_helper); |
| 62 | 65 |
| 63 // If there's already an existing editor window, activate it. | 66 // If there's already an existing editor window, activate it. |
| 64 if (instance_) { | 67 if (instance_) { |
| 65 gtk_window_present(GTK_WINDOW(instance_->dialog_)); | 68 gtk_window_present(GTK_WINDOW(instance_->dialog_)); |
| 66 } else { | 69 } else { |
| 67 instance_ = new CookiesView(profile); | 70 instance_ = new CookiesView(profile, browsing_data_local_storage_helper); |
| 68 instance_->InitStylesAndShow(); | 71 instance_->InitStylesAndShow(); |
| 69 } | 72 } |
| 70 } | 73 } |
| 71 | 74 |
| 72 CookiesView::CookiesView(Profile* profile) | 75 CookiesView::CookiesView( |
| 76 Profile* profile, |
| 77 BrowsingDataLocalStorageHelper* browsing_data_local_storage_helper) |
| 73 : profile_(profile), | 78 : profile_(profile), |
| 79 browsing_data_local_storage_helper_(browsing_data_local_storage_helper), |
| 74 filter_update_factory_(this) { | 80 filter_update_factory_(this) { |
| 75 Init(); | 81 Init(); |
| 76 } | 82 } |
| 77 | 83 |
| 78 void CookiesView::Init() { | 84 void CookiesView::Init() { |
| 79 dialog_ = gtk_dialog_new_with_buttons( | 85 dialog_ = gtk_dialog_new_with_buttons( |
| 80 l10n_util::GetStringUTF8( | 86 l10n_util::GetStringUTF8( |
| 81 IDS_COOKIES_WEBSITE_PERMISSIONS_WINDOW_TITLE).c_str(), | 87 IDS_COOKIES_WEBSITE_PERMISSIONS_WINDOW_TITLE).c_str(), |
| 82 NULL, | 88 NULL, |
| 83 GTK_DIALOG_NO_SEPARATOR, | 89 GTK_DIALOG_NO_SEPARATOR, |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 FALSE, FALSE, 0); | 159 FALSE, FALSE, 0); |
| 154 | 160 |
| 155 GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL); | 161 GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL); |
| 156 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), | 162 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), |
| 157 GTK_POLICY_AUTOMATIC, | 163 GTK_POLICY_AUTOMATIC, |
| 158 GTK_POLICY_AUTOMATIC); | 164 GTK_POLICY_AUTOMATIC); |
| 159 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window), | 165 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window), |
| 160 GTK_SHADOW_ETCHED_IN); | 166 GTK_SHADOW_ETCHED_IN); |
| 161 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0); | 167 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0); |
| 162 | 168 |
| 163 cookies_tree_model_.reset(new CookiesTreeModel(profile_)); | 169 cookies_tree_model_.reset(new CookiesTreeModel( |
| 170 profile_, browsing_data_local_storage_helper_)); |
| 164 cookies_tree_adapter_.reset( | 171 cookies_tree_adapter_.reset( |
| 165 new gtk_tree::TreeAdapter(this, cookies_tree_model_.get())); | 172 new gtk_tree::TreeAdapter(this, cookies_tree_model_.get())); |
| 166 tree_ = gtk_tree_view_new_with_model( | 173 tree_ = gtk_tree_view_new_with_model( |
| 167 GTK_TREE_MODEL(cookies_tree_adapter_->tree_store())); | 174 GTK_TREE_MODEL(cookies_tree_adapter_->tree_store())); |
| 168 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_), FALSE); | 175 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_), FALSE); |
| 169 gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(tree_), TRUE); | 176 gtk_tree_view_set_enable_tree_lines(GTK_TREE_VIEW(tree_), TRUE); |
| 170 gtk_container_add(GTK_CONTAINER(scroll_window), tree_); | 177 gtk_container_add(GTK_CONTAINER(scroll_window), tree_); |
| 171 | 178 |
| 172 GtkTreeViewColumn* title_column = gtk_tree_view_column_new(); | 179 GtkTreeViewColumn* title_column = gtk_tree_view_column_new(); |
| 173 GtkCellRenderer* pixbuf_renderer = gtk_cell_renderer_pixbuf_new(); | 180 GtkCellRenderer* pixbuf_renderer = gtk_cell_renderer_pixbuf_new(); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 186 G_CALLBACK(OnTreeViewKeyPress), this); | 193 G_CALLBACK(OnTreeViewKeyPress), this); |
| 187 g_signal_connect(G_OBJECT(tree_), "row-expanded", | 194 g_signal_connect(G_OBJECT(tree_), "row-expanded", |
| 188 G_CALLBACK(OnTreeViewRowExpanded), this); | 195 G_CALLBACK(OnTreeViewRowExpanded), this); |
| 189 | 196 |
| 190 selection_ = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_)); | 197 selection_ = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_)); |
| 191 gtk_tree_selection_set_mode(selection_, GTK_SELECTION_SINGLE); | 198 gtk_tree_selection_set_mode(selection_, GTK_SELECTION_SINGLE); |
| 192 g_signal_connect(G_OBJECT(selection_), "changed", | 199 g_signal_connect(G_OBJECT(selection_), "changed", |
| 193 G_CALLBACK(OnSelectionChanged), this); | 200 G_CALLBACK(OnSelectionChanged), this); |
| 194 | 201 |
| 195 // Cookie details. | 202 // Cookie details. |
| 196 GtkWidget* details_frame = gtk_frame_new(NULL); | 203 GtkWidget* cookie_details_frame = gtk_frame_new(NULL); |
| 197 gtk_frame_set_shadow_type(GTK_FRAME(details_frame), GTK_SHADOW_ETCHED_IN); | 204 gtk_frame_set_shadow_type(GTK_FRAME(cookie_details_frame), |
| 198 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), details_frame, | 205 GTK_SHADOW_ETCHED_IN); |
| 206 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), cookie_details_frame, |
| 199 FALSE, FALSE, 0); | 207 FALSE, FALSE, 0); |
| 200 cookie_details_table_ = gtk_table_new(7, 2, FALSE); | 208 cookie_details_table_ = gtk_table_new(7, 2, FALSE); |
| 201 gtk_container_add(GTK_CONTAINER(details_frame), cookie_details_table_); | 209 gtk_container_add(GTK_CONTAINER(cookie_details_frame), cookie_details_table_); |
| 202 gtk_table_set_col_spacing(GTK_TABLE(cookie_details_table_), 0, | 210 gtk_table_set_col_spacing(GTK_TABLE(cookie_details_table_), 0, |
| 203 gtk_util::kLabelSpacing); | 211 gtk_util::kLabelSpacing); |
| 204 | 212 |
| 205 int row = 0; | 213 int row = 0; |
| 206 InitCookieDetailRow(row++, IDS_COOKIES_COOKIE_NAME_LABEL, | 214 InitDetailRow(row++, IDS_COOKIES_COOKIE_NAME_LABEL, |
| 207 &cookie_name_entry_); | 215 cookie_details_table_, &cookie_name_entry_); |
| 208 InitCookieDetailRow(row++, IDS_COOKIES_COOKIE_CONTENT_LABEL, | 216 InitDetailRow(row++, IDS_COOKIES_COOKIE_CONTENT_LABEL, |
| 209 &cookie_content_entry_); | 217 cookie_details_table_, &cookie_content_entry_); |
| 210 InitCookieDetailRow(row++, IDS_COOKIES_COOKIE_DOMAIN_LABEL, | 218 InitDetailRow(row++, IDS_COOKIES_COOKIE_DOMAIN_LABEL, |
| 211 &cookie_domain_entry_); | 219 cookie_details_table_, &cookie_domain_entry_); |
| 212 InitCookieDetailRow(row++, IDS_COOKIES_COOKIE_PATH_LABEL, | 220 InitDetailRow(row++, IDS_COOKIES_COOKIE_PATH_LABEL, |
| 213 &cookie_path_entry_); | 221 cookie_details_table_, &cookie_path_entry_); |
| 214 InitCookieDetailRow(row++, IDS_COOKIES_COOKIE_SENDFOR_LABEL, | 222 InitDetailRow(row++, IDS_COOKIES_COOKIE_SENDFOR_LABEL, |
| 215 &cookie_send_for_entry_); | 223 cookie_details_table_, &cookie_send_for_entry_); |
| 216 InitCookieDetailRow(row++, IDS_COOKIES_COOKIE_CREATED_LABEL, | 224 InitDetailRow(row++, IDS_COOKIES_COOKIE_CREATED_LABEL, |
| 217 &cookie_created_entry_); | 225 cookie_details_table_, &cookie_created_entry_); |
| 218 InitCookieDetailRow(row++, IDS_COOKIES_COOKIE_EXPIRES_LABEL, | 226 InitDetailRow(row++, IDS_COOKIES_COOKIE_EXPIRES_LABEL, |
| 219 &cookie_expires_entry_); | 227 cookie_details_table_, &cookie_expires_entry_); |
| 220 | 228 |
| 229 // Local storage details. |
| 230 GtkWidget* local_storage_details_frame = gtk_frame_new(NULL); |
| 231 gtk_frame_set_shadow_type(GTK_FRAME(local_storage_details_frame), |
| 232 GTK_SHADOW_ETCHED_IN); |
| 233 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), local_storage_details_frame, |
| 234 FALSE, FALSE, 0); |
| 235 local_storage_details_table_ = gtk_table_new(3, 2, FALSE); |
| 236 gtk_container_add(GTK_CONTAINER(local_storage_details_frame), |
| 237 local_storage_details_table_); |
| 238 gtk_table_set_col_spacing(GTK_TABLE(local_storage_details_table_), 0, |
| 239 gtk_util::kLabelSpacing); |
| 240 |
| 241 row = 0; |
| 242 InitDetailRow(row++, IDS_COOKIES_LOCAL_STORAGE_ORIGIN_LABEL, |
| 243 local_storage_details_table_, &local_storage_origin_entry_); |
| 244 InitDetailRow(row++, IDS_COOKIES_LOCAL_STORAGE_SIZE_ON_DISK_LABEL, |
| 245 local_storage_details_table_, &local_storage_size_entry_); |
| 246 InitDetailRow(row++, IDS_COOKIES_LOCAL_STORAGE_LAST_MODIFIED_LABEL, |
| 247 local_storage_details_table_, |
| 248 &local_storage_last_modified_entry_); |
| 249 |
| 250 UpdateVisibleDetailedInfo(cookie_details_table_); |
| 221 // Populate the view. | 251 // Populate the view. |
| 222 cookies_tree_adapter_->Init(); | 252 cookies_tree_adapter_->Init(); |
| 223 SetInitialTreeState(); | 253 SetInitialTreeState(); |
| 224 EnableControls(); | 254 EnableControls(); |
| 225 } | 255 } |
| 226 | 256 |
| 227 void CookiesView::InitStylesAndShow() { | 257 void CookiesView::InitStylesAndShow() { |
| 228 // Realize a label so that its style gets initialized. | 258 // Realize a label so that its style gets initialized. |
| 229 gtk_widget_realize(description_label_); | 259 gtk_widget_realize(description_label_); |
| 230 gtk_widget_realize(dialog_); | 260 gtk_widget_realize(dialog_); |
| 231 GtkStyle* label_style = gtk_widget_get_style(description_label_); | 261 GtkStyle* label_style = gtk_widget_get_style(description_label_); |
| 232 GtkStyle* dialog_style = gtk_widget_get_style(dialog_); | 262 GtkStyle* dialog_style = gtk_widget_get_style(dialog_); |
| 233 | 263 |
| 234 InitCookieDetailStyle(cookie_name_entry_, label_style, dialog_style); | 264 // Cookie details. |
| 235 InitCookieDetailStyle(cookie_content_entry_, label_style, dialog_style); | 265 InitBrowserDetailStyle(cookie_name_entry_, label_style, dialog_style); |
| 236 InitCookieDetailStyle(cookie_domain_entry_, label_style, dialog_style); | 266 InitBrowserDetailStyle(cookie_content_entry_, label_style, dialog_style); |
| 237 InitCookieDetailStyle(cookie_path_entry_, label_style, dialog_style); | 267 InitBrowserDetailStyle(cookie_domain_entry_, label_style, dialog_style); |
| 238 InitCookieDetailStyle(cookie_send_for_entry_, label_style, dialog_style); | 268 InitBrowserDetailStyle(cookie_path_entry_, label_style, dialog_style); |
| 239 InitCookieDetailStyle(cookie_created_entry_, label_style, dialog_style); | 269 InitBrowserDetailStyle(cookie_send_for_entry_, label_style, dialog_style); |
| 240 InitCookieDetailStyle(cookie_expires_entry_, label_style, dialog_style); | 270 InitBrowserDetailStyle(cookie_created_entry_, label_style, dialog_style); |
| 271 InitBrowserDetailStyle(cookie_expires_entry_, label_style, dialog_style); |
| 272 |
| 273 // Local storage details. |
| 274 InitBrowserDetailStyle(local_storage_origin_entry_, label_style, |
| 275 dialog_style); |
| 276 InitBrowserDetailStyle(local_storage_size_entry_, label_style, dialog_style); |
| 277 InitBrowserDetailStyle(local_storage_last_modified_entry_, label_style, |
| 278 dialog_style); |
| 241 | 279 |
| 242 gtk_widget_show_all(dialog_); | 280 gtk_widget_show_all(dialog_); |
| 243 } | 281 } |
| 244 | 282 |
| 245 void CookiesView::InitCookieDetailRow(int row, int label_id, | 283 void CookiesView::InitDetailRow(int row, int label_id, |
| 246 GtkWidget** entry) { | 284 GtkWidget* details_table, GtkWidget** entry) { |
| 247 GtkWidget* name_label = gtk_label_new( | 285 GtkWidget* name_label = gtk_label_new( |
| 248 l10n_util::GetStringUTF8(label_id).c_str()); | 286 l10n_util::GetStringUTF8(label_id).c_str()); |
| 249 gtk_misc_set_alignment(GTK_MISC(name_label), 1, 0.5); | 287 gtk_misc_set_alignment(GTK_MISC(name_label), 1, 0.5); |
| 250 gtk_table_attach(GTK_TABLE(cookie_details_table_), name_label, | 288 gtk_table_attach(GTK_TABLE(details_table), name_label, |
| 251 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); | 289 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); |
| 252 | 290 |
| 253 *entry = gtk_entry_new(); | 291 *entry = gtk_entry_new(); |
| 254 | 292 |
| 255 gtk_entry_set_editable(GTK_ENTRY(*entry), FALSE); | 293 gtk_entry_set_editable(GTK_ENTRY(*entry), FALSE); |
| 256 gtk_entry_set_has_frame(GTK_ENTRY(*entry), FALSE); | 294 gtk_entry_set_has_frame(GTK_ENTRY(*entry), FALSE); |
| 257 gtk_table_attach_defaults(GTK_TABLE(cookie_details_table_), *entry, | 295 gtk_table_attach_defaults(GTK_TABLE(details_table), *entry, |
| 258 1, 2, row, row + 1); | 296 1, 2, row, row + 1); |
| 259 } | 297 } |
| 260 | 298 |
| 261 void CookiesView::SetInitialTreeState() { | 299 void CookiesView::SetInitialTreeState() { |
| 262 if (cookies_tree_model_->GetChildCount(cookies_tree_model_->GetRoot())) | 300 if (cookies_tree_model_->GetChildCount(cookies_tree_model_->GetRoot())) |
| 263 gtk_tree::SelectAndFocusRowNum(0, GTK_TREE_VIEW(tree_)); | 301 gtk_tree::SelectAndFocusRowNum(0, GTK_TREE_VIEW(tree_)); |
| 264 } | 302 } |
| 265 | 303 |
| 266 void CookiesView::EnableControls() { | 304 void CookiesView::EnableControls() { |
| 267 GtkTreeIter iter; | 305 GtkTreeIter iter; |
| 268 bool selected = gtk_tree_selection_get_selected(selection_, NULL, &iter); | 306 bool selected = gtk_tree_selection_get_selected(selection_, NULL, &iter); |
| 269 gtk_widget_set_sensitive(remove_button_, selected); | 307 gtk_widget_set_sensitive(remove_button_, selected); |
| 270 gtk_widget_set_sensitive( | 308 gtk_widget_set_sensitive( |
| 271 remove_all_button_, | 309 remove_all_button_, |
| 272 cookies_tree_model_->GetChildCount(cookies_tree_model_->GetRoot())); | 310 cookies_tree_model_->GetChildCount(cookies_tree_model_->GetRoot())); |
| 273 | 311 |
| 274 const gchar* filter_text = gtk_entry_get_text(GTK_ENTRY(filter_entry_)); | 312 const gchar* filter_text = gtk_entry_get_text(GTK_ENTRY(filter_entry_)); |
| 275 gtk_widget_set_sensitive(filter_clear_button_, filter_text && *filter_text); | 313 gtk_widget_set_sensitive(filter_clear_button_, filter_text && *filter_text); |
| 276 | 314 |
| 277 if (selected) { | 315 if (selected) { |
| 278 CookieTreeNode::DetailedInfo detailed_info = | 316 CookieTreeNode::DetailedInfo detailed_info = |
| 279 static_cast<CookieTreeNode*>( | 317 static_cast<CookieTreeNode*>( |
| 280 cookies_tree_adapter_->GetNode(&iter))->GetDetailedInfo(); | 318 cookies_tree_adapter_->GetNode(&iter))->GetDetailedInfo(); |
| 281 if (detailed_info.node_type == CookieTreeNode::DetailedInfo::TYPE_COOKIE) { | 319 if (detailed_info.node_type == CookieTreeNode::DetailedInfo::TYPE_COOKIE) { |
| 320 UpdateVisibleDetailedInfo(cookie_details_table_); |
| 282 PopulateCookieDetails(detailed_info.cookie->first, | 321 PopulateCookieDetails(detailed_info.cookie->first, |
| 283 detailed_info.cookie->second); | 322 detailed_info.cookie->second); |
| 323 } else if (detailed_info.node_type == |
| 324 CookieTreeNode::DetailedInfo::TYPE_LOCAL_STORAGE) { |
| 325 UpdateVisibleDetailedInfo(local_storage_details_table_); |
| 326 PopulateLocalStorageDetails(*detailed_info.local_storage_info); |
| 284 } else { | 327 } else { |
| 328 UpdateVisibleDetailedInfo(cookie_details_table_); |
| 285 ClearCookieDetails(); | 329 ClearCookieDetails(); |
| 286 } | 330 } |
| 287 } else { | 331 } else { |
| 288 ClearCookieDetails(); | 332 ClearCookieDetails(); |
| 289 } | 333 } |
| 290 } | 334 } |
| 291 | 335 |
| 292 void CookiesView::SetCookieDetailsSensitivity(gboolean enabled) { | 336 void CookiesView::SetCookieDetailsSensitivity(gboolean enabled) { |
| 293 gtk_widget_set_sensitive(cookie_name_entry_, enabled); | 337 gtk_widget_set_sensitive(cookie_name_entry_, enabled); |
| 294 gtk_widget_set_sensitive(cookie_content_entry_, enabled); | 338 gtk_widget_set_sensitive(cookie_content_entry_, enabled); |
| 295 gtk_widget_set_sensitive(cookie_domain_entry_, enabled); | 339 gtk_widget_set_sensitive(cookie_domain_entry_, enabled); |
| 296 gtk_widget_set_sensitive(cookie_path_entry_, enabled); | 340 gtk_widget_set_sensitive(cookie_path_entry_, enabled); |
| 297 gtk_widget_set_sensitive(cookie_send_for_entry_, enabled); | 341 gtk_widget_set_sensitive(cookie_send_for_entry_, enabled); |
| 298 gtk_widget_set_sensitive(cookie_created_entry_, enabled); | 342 gtk_widget_set_sensitive(cookie_created_entry_, enabled); |
| 299 gtk_widget_set_sensitive(cookie_expires_entry_, enabled); | 343 gtk_widget_set_sensitive(cookie_expires_entry_, enabled); |
| 300 } | 344 } |
| 301 | 345 |
| 346 void CookiesView::SetLocalStorageDetailsSensitivity(gboolean enabled) { |
| 347 gtk_widget_set_sensitive(local_storage_origin_entry_, enabled); |
| 348 gtk_widget_set_sensitive(local_storage_size_entry_, enabled); |
| 349 gtk_widget_set_sensitive(local_storage_last_modified_entry_, enabled); |
| 350 } |
| 351 |
| 302 void CookiesView::PopulateCookieDetails( | 352 void CookiesView::PopulateCookieDetails( |
| 303 const std::string& domain, | 353 const std::string& domain, |
| 304 const net::CookieMonster::CanonicalCookie& cookie) { | 354 const net::CookieMonster::CanonicalCookie& cookie) { |
| 305 gtk_entry_set_text(GTK_ENTRY(cookie_name_entry_), cookie.Name().c_str()); | 355 gtk_entry_set_text(GTK_ENTRY(cookie_name_entry_), cookie.Name().c_str()); |
| 306 gtk_entry_set_text(GTK_ENTRY(cookie_content_entry_), cookie.Value().c_str()); | 356 gtk_entry_set_text(GTK_ENTRY(cookie_content_entry_), cookie.Value().c_str()); |
| 307 gtk_entry_set_text(GTK_ENTRY(cookie_domain_entry_), domain.c_str()); | 357 gtk_entry_set_text(GTK_ENTRY(cookie_domain_entry_), domain.c_str()); |
| 308 gtk_entry_set_text(GTK_ENTRY(cookie_path_entry_), cookie.Path().c_str()); | 358 gtk_entry_set_text(GTK_ENTRY(cookie_path_entry_), cookie.Path().c_str()); |
| 309 gtk_entry_set_text(GTK_ENTRY(cookie_created_entry_), | 359 gtk_entry_set_text(GTK_ENTRY(cookie_created_entry_), |
| 310 WideToUTF8(base::TimeFormatFriendlyDateAndTime( | 360 WideToUTF8(base::TimeFormatFriendlyDateAndTime( |
| 311 cookie.CreationDate())).c_str()); | 361 cookie.CreationDate())).c_str()); |
| 312 if (cookie.DoesExpire()) { | 362 if (cookie.DoesExpire()) { |
| 313 gtk_entry_set_text(GTK_ENTRY(cookie_expires_entry_), | 363 gtk_entry_set_text(GTK_ENTRY(cookie_expires_entry_), |
| 314 WideToUTF8(base::TimeFormatFriendlyDateAndTime( | 364 WideToUTF8(base::TimeFormatFriendlyDateAndTime( |
| 315 cookie.ExpiryDate())).c_str()); | 365 cookie.ExpiryDate())).c_str()); |
| 316 } else { | 366 } else { |
| 317 gtk_entry_set_text(GTK_ENTRY(cookie_expires_entry_), | 367 gtk_entry_set_text(GTK_ENTRY(cookie_expires_entry_), |
| 318 l10n_util::GetStringUTF8( | 368 l10n_util::GetStringUTF8( |
| 319 IDS_COOKIES_COOKIE_EXPIRES_SESSION).c_str()); | 369 IDS_COOKIES_COOKIE_EXPIRES_SESSION).c_str()); |
| 320 } | 370 } |
| 321 gtk_entry_set_text( | 371 gtk_entry_set_text( |
| 322 GTK_ENTRY(cookie_send_for_entry_), | 372 GTK_ENTRY(cookie_send_for_entry_), |
| 323 l10n_util::GetStringUTF8(cookie.IsSecure() ? | 373 l10n_util::GetStringUTF8(cookie.IsSecure() ? |
| 324 IDS_COOKIES_COOKIE_SENDFOR_SECURE : | 374 IDS_COOKIES_COOKIE_SENDFOR_SECURE : |
| 325 IDS_COOKIES_COOKIE_SENDFOR_ANY).c_str()); | 375 IDS_COOKIES_COOKIE_SENDFOR_ANY).c_str()); |
| 326 SetCookieDetailsSensitivity(TRUE); | 376 SetCookieDetailsSensitivity(TRUE); |
| 327 } | 377 } |
| 328 | 378 |
| 379 void CookiesView::PopulateLocalStorageDetails( |
| 380 const BrowsingDataLocalStorageHelper::LocalStorageInfo& |
| 381 local_storage_info) { |
| 382 gtk_entry_set_text(GTK_ENTRY(local_storage_origin_entry_), |
| 383 local_storage_info.origin.c_str()); |
| 384 gtk_entry_set_text(GTK_ENTRY(local_storage_size_entry_), |
| 385 WideToUTF8(FormatBytes( |
| 386 local_storage_info.size, |
| 387 GetByteDisplayUnits(local_storage_info.size), |
| 388 true)).c_str()); |
| 389 gtk_entry_set_text(GTK_ENTRY(local_storage_last_modified_entry_), |
| 390 WideToUTF8(base::TimeFormatFriendlyDateAndTime( |
| 391 local_storage_info.last_modified)).c_str()); |
| 392 SetLocalStorageDetailsSensitivity(TRUE); |
| 393 } |
| 394 |
| 329 void CookiesView::ClearCookieDetails() { | 395 void CookiesView::ClearCookieDetails() { |
| 330 std::string no_cookie = | 396 std::string no_cookie = |
| 331 l10n_util::GetStringUTF8(IDS_COOKIES_COOKIE_NONESELECTED); | 397 l10n_util::GetStringUTF8(IDS_COOKIES_COOKIE_NONESELECTED); |
| 332 gtk_entry_set_text(GTK_ENTRY(cookie_name_entry_), no_cookie.c_str()); | 398 gtk_entry_set_text(GTK_ENTRY(cookie_name_entry_), no_cookie.c_str()); |
| 333 gtk_entry_set_text(GTK_ENTRY(cookie_content_entry_), no_cookie.c_str()); | 399 gtk_entry_set_text(GTK_ENTRY(cookie_content_entry_), no_cookie.c_str()); |
| 334 gtk_entry_set_text(GTK_ENTRY(cookie_domain_entry_), no_cookie.c_str()); | 400 gtk_entry_set_text(GTK_ENTRY(cookie_domain_entry_), no_cookie.c_str()); |
| 335 gtk_entry_set_text(GTK_ENTRY(cookie_path_entry_), no_cookie.c_str()); | 401 gtk_entry_set_text(GTK_ENTRY(cookie_path_entry_), no_cookie.c_str()); |
| 336 gtk_entry_set_text(GTK_ENTRY(cookie_created_entry_), no_cookie.c_str()); | 402 gtk_entry_set_text(GTK_ENTRY(cookie_created_entry_), no_cookie.c_str()); |
| 337 gtk_entry_set_text(GTK_ENTRY(cookie_expires_entry_), no_cookie.c_str()); | 403 gtk_entry_set_text(GTK_ENTRY(cookie_expires_entry_), no_cookie.c_str()); |
| 338 gtk_entry_set_text(GTK_ENTRY(cookie_send_for_entry_), no_cookie.c_str()); | 404 gtk_entry_set_text(GTK_ENTRY(cookie_send_for_entry_), no_cookie.c_str()); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 EnableControls(); | 446 EnableControls(); |
| 381 } | 447 } |
| 382 | 448 |
| 383 // static | 449 // static |
| 384 void CookiesView::OnResponse(GtkDialog* dialog, int response_id, | 450 void CookiesView::OnResponse(GtkDialog* dialog, int response_id, |
| 385 CookiesView* window) { | 451 CookiesView* window) { |
| 386 if (response_id == RESPONSE_REMOVE) { | 452 if (response_id == RESPONSE_REMOVE) { |
| 387 window->RemoveSelectedItems(); | 453 window->RemoveSelectedItems(); |
| 388 } else if (response_id == RESPONSE_REMOVE_ALL) { | 454 } else if (response_id == RESPONSE_REMOVE_ALL) { |
| 389 window->cookies_tree_model_->DeleteAllCookies(); | 455 window->cookies_tree_model_->DeleteAllCookies(); |
| 456 window->browsing_data_local_storage_helper_->DeleteAllLocalStorageFiles(); |
| 390 } else { | 457 } else { |
| 391 gtk_widget_destroy(window->dialog_); | 458 gtk_widget_destroy(window->dialog_); |
| 392 } | 459 } |
| 393 } | 460 } |
| 394 | 461 |
| 395 // static | 462 // static |
| 396 void CookiesView::OnWindowDestroy(GtkWidget* widget, CookiesView* window) { | 463 void CookiesView::OnWindowDestroy(GtkWidget* widget, CookiesView* window) { |
| 397 instance_ = NULL; | 464 instance_ = NULL; |
| 398 MessageLoop::current()->DeleteSoon(FROM_HERE, window); | 465 MessageLoop::current()->DeleteSoon(FROM_HERE, window); |
| 399 } | 466 } |
| (...skipping 30 matching lines...) Expand all Loading... |
| 430 } | 497 } |
| 431 | 498 |
| 432 void CookiesView::UpdateFilterResults() { | 499 void CookiesView::UpdateFilterResults() { |
| 433 const gchar* text = gtk_entry_get_text(GTK_ENTRY(filter_entry_)); | 500 const gchar* text = gtk_entry_get_text(GTK_ENTRY(filter_entry_)); |
| 434 if (text) { | 501 if (text) { |
| 435 cookies_tree_model_->UpdateSearchResults(UTF8ToWide(text)); | 502 cookies_tree_model_->UpdateSearchResults(UTF8ToWide(text)); |
| 436 SetInitialTreeState(); | 503 SetInitialTreeState(); |
| 437 } | 504 } |
| 438 } | 505 } |
| 439 | 506 |
| 507 void CookiesView::UpdateVisibleDetailedInfo(GtkWidget* table) { |
| 508 // Toggle the parent (the table frame) visibility and sensitivity. |
| 509 gtk_widget_show(gtk_widget_get_parent(table)); |
| 510 // Toggle the other tables. |
| 511 if (table == cookie_details_table_) { |
| 512 SetCookieDetailsSensitivity(true); |
| 513 SetLocalStorageDetailsSensitivity(false); |
| 514 gtk_widget_hide(gtk_widget_get_parent(local_storage_details_table_)); |
| 515 } else if (table == local_storage_details_table_) { |
| 516 SetCookieDetailsSensitivity(false); |
| 517 SetLocalStorageDetailsSensitivity(true); |
| 518 gtk_widget_hide(gtk_widget_get_parent(cookie_details_table_)); |
| 519 } |
| 520 } |
| 521 |
| 440 // static | 522 // static |
| 441 void CookiesView::OnFilterEntryActivated(GtkEntry* entry, CookiesView* window) { | 523 void CookiesView::OnFilterEntryActivated(GtkEntry* entry, CookiesView* window) { |
| 442 window->filter_update_factory_.RevokeAll(); | 524 window->filter_update_factory_.RevokeAll(); |
| 443 window->UpdateFilterResults(); | 525 window->UpdateFilterResults(); |
| 444 } | 526 } |
| 445 | 527 |
| 446 // static | 528 // static |
| 447 void CookiesView::OnFilterEntryChanged(GtkEditable* editable, | 529 void CookiesView::OnFilterEntryChanged(GtkEditable* editable, |
| 448 CookiesView* window) { | 530 CookiesView* window) { |
| 449 window->filter_update_factory_.RevokeAll(); | 531 window->filter_update_factory_.RevokeAll(); |
| 450 MessageLoop::current()->PostDelayedTask(FROM_HERE, | 532 MessageLoop::current()->PostDelayedTask(FROM_HERE, |
| 451 window->filter_update_factory_.NewRunnableMethod( | 533 window->filter_update_factory_.NewRunnableMethod( |
| 452 &CookiesView::UpdateFilterResults), kSearchFilterDelayMs); | 534 &CookiesView::UpdateFilterResults), kSearchFilterDelayMs); |
| 453 window->EnableControls(); | 535 window->EnableControls(); |
| 454 } | 536 } |
| 455 | 537 |
| 456 // static | 538 // static |
| 457 void CookiesView::OnFilterClearButtonClicked(GtkButton* button, | 539 void CookiesView::OnFilterClearButtonClicked(GtkButton* button, |
| 458 CookiesView* window) { | 540 CookiesView* window) { |
| 459 gtk_entry_set_text(GTK_ENTRY(window->filter_entry_), ""); | 541 gtk_entry_set_text(GTK_ENTRY(window->filter_entry_), ""); |
| 460 window->filter_update_factory_.RevokeAll(); | 542 window->filter_update_factory_.RevokeAll(); |
| 461 window->UpdateFilterResults(); | 543 window->UpdateFilterResults(); |
| 462 } | 544 } |
| OLD | NEW |