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

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

Issue 1774005: GTK: The cookie prompt should allow the user to set expire date for HTML cookies (Closed) Base URL: git://codf21.jail.google.com/chromium.git
Patch Set: Fix tests Created 10 years, 8 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
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/gtk_chrome_cookie_view.h" 5 #include "chrome/browser/gtk/gtk_chrome_cookie_view.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/i18n/time_formatting.h" 8 #include "base/i18n/time_formatting.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/gtk/gtk_util.h" 10 #include "chrome/browser/gtk/gtk_util.h"
(...skipping 10 matching lines...) Expand all
21 // GTK_NO_WINDOW widgets like GtkLabel don't draw their own background, so we 21 // GTK_NO_WINDOW widgets like GtkLabel don't draw their own background, so we
22 // combine the normal or insensitive foreground of the label style with the 22 // combine the normal or insensitive foreground of the label style with the
23 // normal background of the window style to achieve the "normal label" and 23 // normal background of the window style to achieve the "normal label" and
24 // "insensitive label" colors. 24 // "insensitive label" colors.
25 gtk_widget_modify_base(entry, GTK_STATE_NORMAL, 25 gtk_widget_modify_base(entry, GTK_STATE_NORMAL,
26 &dialog_style->bg[GTK_STATE_NORMAL]); 26 &dialog_style->bg[GTK_STATE_NORMAL]);
27 gtk_widget_modify_base(entry, GTK_STATE_INSENSITIVE, 27 gtk_widget_modify_base(entry, GTK_STATE_INSENSITIVE,
28 &dialog_style->bg[GTK_STATE_NORMAL]); 28 &dialog_style->bg[GTK_STATE_NORMAL]);
29 } 29 }
30 30
31 GtkWidget* InitDetailRow(int row, int label_id, 31 GtkWidget* InitRowLabel(int row, int label_id, GtkWidget* details_table) {
32 GtkWidget* details_table, GtkWidget** entry) {
33 GtkWidget* name_label = gtk_label_new( 32 GtkWidget* name_label = gtk_label_new(
34 l10n_util::GetStringUTF8(label_id).c_str()); 33 l10n_util::GetStringUTF8(label_id).c_str());
35 gtk_misc_set_alignment(GTK_MISC(name_label), 1, 0.5); 34 gtk_misc_set_alignment(GTK_MISC(name_label), 1, 0.5);
36 gtk_table_attach(GTK_TABLE(details_table), name_label, 35 gtk_table_attach(GTK_TABLE(details_table), name_label,
37 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0); 36 0, 1, row, row + 1, GTK_FILL, GTK_FILL, 0, 0);
38 37
38 return name_label;
39 }
40
41 GtkWidget* InitDetailRow(int row, int label_id,
42 GtkWidget* details_table, GtkWidget** entry) {
43 GtkWidget* name_label = InitRowLabel(row, label_id, details_table);
44
39 *entry = gtk_entry_new(); 45 *entry = gtk_entry_new();
40
41 gtk_entry_set_editable(GTK_ENTRY(*entry), FALSE); 46 gtk_entry_set_editable(GTK_ENTRY(*entry), FALSE);
42 gtk_entry_set_has_frame(GTK_ENTRY(*entry), FALSE); 47 gtk_entry_set_has_frame(GTK_ENTRY(*entry), FALSE);
43 gtk_table_attach_defaults(GTK_TABLE(details_table), *entry, 48 gtk_table_attach_defaults(GTK_TABLE(details_table), *entry,
44 1, 2, row, row + 1); 49 1, 2, row, row + 1);
45 50
46 return name_label; 51 return name_label;
47 } 52 }
48 53
54 GtkWidget* InitComboboxRow(int row, int label_id,
55 GtkWidget* details_table,
56 GtkWidget** combobox,
57 GtkListStore** store) {
58 GtkWidget* name_label = InitRowLabel(row, label_id, details_table);
59
60 *store = gtk_list_store_new(1, G_TYPE_STRING);
61 *combobox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(*store));
62 g_object_unref(*store);
63
64 GtkCellRenderer* cell = gtk_cell_renderer_text_new();
65 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(*combobox), cell, TRUE);
66 gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(*combobox), cell,
67 "text", 0, NULL);
68
69 GtkWidget* hbox = gtk_hbox_new(FALSE, 0);
70 gtk_box_pack_start(GTK_BOX(hbox), *combobox, FALSE, FALSE, 0);
71
72 gtk_table_attach_defaults(GTK_TABLE(details_table), hbox,
73 1, 2, row, row + 1);
74
75 return name_label;
76 }
77
49 void InitStyles(GtkChromeCookieView *self) { 78 void InitStyles(GtkChromeCookieView *self) {
50 GtkStyle* label_style = gtk_widget_get_style(self->first_label_); 79 GtkStyle* label_style = gtk_widget_get_style(self->first_label_);
51 GtkStyle* dialog_style = gtk_widget_get_style(GTK_WIDGET(self)); 80 GtkStyle* dialog_style = gtk_widget_get_style(GTK_WIDGET(self));
52 81
53 // Cookie details. 82 // Cookie details.
54 InitBrowserDetailStyle(self->cookie_name_entry_, label_style, dialog_style); 83 InitBrowserDetailStyle(self->cookie_name_entry_, label_style, dialog_style);
55 InitBrowserDetailStyle(self->cookie_content_entry_, label_style, 84 InitBrowserDetailStyle(self->cookie_content_entry_, label_style,
56 dialog_style); 85 dialog_style);
57 InitBrowserDetailStyle(self->cookie_domain_entry_, label_style, dialog_style); 86 InitBrowserDetailStyle(self->cookie_domain_entry_, label_style, dialog_style);
58 InitBrowserDetailStyle(self->cookie_path_entry_, label_style, dialog_style); 87 InitBrowserDetailStyle(self->cookie_path_entry_, label_style, dialog_style);
59 InitBrowserDetailStyle(self->cookie_send_for_entry_, label_style, 88 InitBrowserDetailStyle(self->cookie_send_for_entry_, label_style,
60 dialog_style); 89 dialog_style);
61 InitBrowserDetailStyle(self->cookie_created_entry_, label_style, 90 InitBrowserDetailStyle(self->cookie_created_entry_, label_style,
62 dialog_style); 91 dialog_style);
63 InitBrowserDetailStyle(self->cookie_expires_entry_, label_style, 92 if (self->cookie_expires_entry_) {
64 dialog_style); 93 InitBrowserDetailStyle(self->cookie_expires_entry_, label_style,
94 dialog_style);
95 }
65 96
66 // Database details. 97 // Database details.
67 InitBrowserDetailStyle(self->database_name_entry_, label_style, dialog_style); 98 InitBrowserDetailStyle(self->database_name_entry_, label_style, dialog_style);
68 InitBrowserDetailStyle(self->database_description_entry_, label_style, 99 InitBrowserDetailStyle(self->database_description_entry_, label_style,
69 dialog_style); 100 dialog_style);
70 InitBrowserDetailStyle(self->database_size_entry_, label_style, dialog_style); 101 InitBrowserDetailStyle(self->database_size_entry_, label_style, dialog_style);
71 InitBrowserDetailStyle(self->database_last_modified_entry_, label_style, 102 InitBrowserDetailStyle(self->database_last_modified_entry_, label_style,
72 dialog_style); 103 dialog_style);
73 104
74 // Local storage details. 105 // Local storage details.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 } 143 }
113 144
114 void SetCookieDetailsSensitivity(GtkChromeCookieView *self, 145 void SetCookieDetailsSensitivity(GtkChromeCookieView *self,
115 gboolean enabled) { 146 gboolean enabled) {
116 gtk_widget_set_sensitive(self->cookie_name_entry_, enabled); 147 gtk_widget_set_sensitive(self->cookie_name_entry_, enabled);
117 gtk_widget_set_sensitive(self->cookie_content_entry_, enabled); 148 gtk_widget_set_sensitive(self->cookie_content_entry_, enabled);
118 gtk_widget_set_sensitive(self->cookie_domain_entry_, enabled); 149 gtk_widget_set_sensitive(self->cookie_domain_entry_, enabled);
119 gtk_widget_set_sensitive(self->cookie_path_entry_, enabled); 150 gtk_widget_set_sensitive(self->cookie_path_entry_, enabled);
120 gtk_widget_set_sensitive(self->cookie_send_for_entry_, enabled); 151 gtk_widget_set_sensitive(self->cookie_send_for_entry_, enabled);
121 gtk_widget_set_sensitive(self->cookie_created_entry_, enabled); 152 gtk_widget_set_sensitive(self->cookie_created_entry_, enabled);
122 gtk_widget_set_sensitive(self->cookie_expires_entry_, enabled); 153 if (self->cookie_expires_entry_)
154 gtk_widget_set_sensitive(self->cookie_expires_entry_, enabled);
155 else
156 gtk_widget_set_sensitive(self->cookie_expires_combobox_, enabled);
123 } 157 }
124 158
125 void SetDatabaseDetailsSensitivity(GtkChromeCookieView *self, 159 void SetDatabaseDetailsSensitivity(GtkChromeCookieView *self,
126 gboolean enabled) { 160 gboolean enabled) {
127 gtk_widget_set_sensitive(self->database_name_entry_, enabled); 161 gtk_widget_set_sensitive(self->database_name_entry_, enabled);
128 gtk_widget_set_sensitive(self->database_description_entry_, enabled); 162 gtk_widget_set_sensitive(self->database_description_entry_, enabled);
129 gtk_widget_set_sensitive(self->database_size_entry_, enabled); 163 gtk_widget_set_sensitive(self->database_size_entry_, enabled);
130 gtk_widget_set_sensitive(self->database_last_modified_entry_, enabled); 164 gtk_widget_set_sensitive(self->database_last_modified_entry_, enabled);
131 } 165 }
132 166
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 gtk_entry_set_text(GTK_ENTRY(self->cookie_name_entry_), 205 gtk_entry_set_text(GTK_ENTRY(self->cookie_name_entry_),
172 no_cookie.c_str()); 206 no_cookie.c_str());
173 gtk_entry_set_text(GTK_ENTRY(self->cookie_content_entry_), 207 gtk_entry_set_text(GTK_ENTRY(self->cookie_content_entry_),
174 no_cookie.c_str()); 208 no_cookie.c_str());
175 gtk_entry_set_text(GTK_ENTRY(self->cookie_domain_entry_), 209 gtk_entry_set_text(GTK_ENTRY(self->cookie_domain_entry_),
176 no_cookie.c_str()); 210 no_cookie.c_str());
177 gtk_entry_set_text(GTK_ENTRY(self->cookie_path_entry_), 211 gtk_entry_set_text(GTK_ENTRY(self->cookie_path_entry_),
178 no_cookie.c_str()); 212 no_cookie.c_str());
179 gtk_entry_set_text(GTK_ENTRY(self->cookie_created_entry_), 213 gtk_entry_set_text(GTK_ENTRY(self->cookie_created_entry_),
180 no_cookie.c_str()); 214 no_cookie.c_str());
181 gtk_entry_set_text(GTK_ENTRY(self->cookie_expires_entry_), 215 if (self->cookie_expires_entry_) {
182 no_cookie.c_str()); 216 gtk_entry_set_text(GTK_ENTRY(self->cookie_expires_entry_),
217 no_cookie.c_str());
218 } else {
219 GtkListStore* store = self->cookie_expires_combobox_store_;
220 GtkTreeIter iter;
221 gtk_list_store_clear(store);
222
223 gtk_list_store_append(store, &iter);
224 gtk_list_store_set(store, &iter, 0, no_cookie.c_str(), -1);
225
226 gtk_combo_box_set_active(GTK_COMBO_BOX(self->cookie_expires_combobox_),
227 0);
228 }
183 gtk_entry_set_text(GTK_ENTRY(self->cookie_send_for_entry_), 229 gtk_entry_set_text(GTK_ENTRY(self->cookie_send_for_entry_),
184 no_cookie.c_str()); 230 no_cookie.c_str());
185 SetCookieDetailsSensitivity(self, FALSE); 231 SetCookieDetailsSensitivity(self, FALSE);
186 } 232 }
187 233
188 void UpdateVisibleDetailedInfo(GtkChromeCookieView *self, GtkWidget* table) { 234 void UpdateVisibleDetailedInfo(GtkChromeCookieView *self, GtkWidget* table) {
189 SetCookieDetailsSensitivity(self, table == self->cookie_details_table_); 235 SetCookieDetailsSensitivity(self, table == self->cookie_details_table_);
190 SetDatabaseDetailsSensitivity(self, table == self->database_details_table_); 236 SetDatabaseDetailsSensitivity(self, table == self->database_details_table_);
191 SetLocalStorageDetailsSensitivity(self, 237 SetLocalStorageDetailsSensitivity(self,
192 table == self->local_storage_details_table_); 238 table == self->local_storage_details_table_);
(...skipping 26 matching lines...) Expand all
219 } 265 }
220 266
221 } // namespace 267 } // namespace
222 268
223 G_DEFINE_TYPE(GtkChromeCookieView, gtk_chrome_cookie_view, GTK_TYPE_FRAME) 269 G_DEFINE_TYPE(GtkChromeCookieView, gtk_chrome_cookie_view, GTK_TYPE_FRAME)
224 270
225 static void gtk_chrome_cookie_view_class_init(GtkChromeCookieViewClass *klass) { 271 static void gtk_chrome_cookie_view_class_init(GtkChromeCookieViewClass *klass) {
226 } 272 }
227 273
228 static void gtk_chrome_cookie_view_init(GtkChromeCookieView *self) { 274 static void gtk_chrome_cookie_view_init(GtkChromeCookieView *self) {
275 }
276
277 void BuildWidgets(GtkChromeCookieView *self, gboolean editable_expiration) {
229 self->table_box_ = gtk_vbox_new(FALSE, 0); 278 self->table_box_ = gtk_vbox_new(FALSE, 0);
230 gtk_widget_set_no_show_all(self->table_box_, TRUE); 279 gtk_widget_set_no_show_all(self->table_box_, TRUE);
231 280
232 // Cookie details. 281 // Cookie details.
233 self->cookie_details_table_ = gtk_table_new(7, 2, FALSE); 282 self->cookie_details_table_ = gtk_table_new(7, 2, FALSE);
234 gtk_container_add(GTK_CONTAINER(self->table_box_), 283 gtk_container_add(GTK_CONTAINER(self->table_box_),
235 self->cookie_details_table_); 284 self->cookie_details_table_);
236 gtk_table_set_col_spacing(GTK_TABLE(self->cookie_details_table_), 0, 285 gtk_table_set_col_spacing(GTK_TABLE(self->cookie_details_table_), 0,
237 gtk_util::kLabelSpacing); 286 gtk_util::kLabelSpacing);
238 287
239 int row = 0; 288 int row = 0;
240 self->first_label_ = InitDetailRow(row++, IDS_COOKIES_COOKIE_NAME_LABEL, 289 self->first_label_ = InitDetailRow(row++, IDS_COOKIES_COOKIE_NAME_LABEL,
241 self->cookie_details_table_, &self->cookie_name_entry_); 290 self->cookie_details_table_, &self->cookie_name_entry_);
242 InitDetailRow(row++, IDS_COOKIES_COOKIE_CONTENT_LABEL, 291 InitDetailRow(row++, IDS_COOKIES_COOKIE_CONTENT_LABEL,
243 self->cookie_details_table_, &self->cookie_content_entry_); 292 self->cookie_details_table_, &self->cookie_content_entry_);
244 InitDetailRow(row++, IDS_COOKIES_COOKIE_DOMAIN_LABEL, 293 InitDetailRow(row++, IDS_COOKIES_COOKIE_DOMAIN_LABEL,
245 self->cookie_details_table_, &self->cookie_domain_entry_); 294 self->cookie_details_table_, &self->cookie_domain_entry_);
246 InitDetailRow(row++, IDS_COOKIES_COOKIE_PATH_LABEL, 295 InitDetailRow(row++, IDS_COOKIES_COOKIE_PATH_LABEL,
247 self->cookie_details_table_, &self->cookie_path_entry_); 296 self->cookie_details_table_, &self->cookie_path_entry_);
248 InitDetailRow(row++, IDS_COOKIES_COOKIE_SENDFOR_LABEL, 297 InitDetailRow(row++, IDS_COOKIES_COOKIE_SENDFOR_LABEL,
249 self->cookie_details_table_, &self->cookie_send_for_entry_); 298 self->cookie_details_table_, &self->cookie_send_for_entry_);
250 InitDetailRow(row++, IDS_COOKIES_COOKIE_CREATED_LABEL, 299 InitDetailRow(row++, IDS_COOKIES_COOKIE_CREATED_LABEL,
251 self->cookie_details_table_, &self->cookie_created_entry_); 300 self->cookie_details_table_, &self->cookie_created_entry_);
252 InitDetailRow(row++, IDS_COOKIES_COOKIE_EXPIRES_LABEL, 301 if (editable_expiration) {
253 self->cookie_details_table_, &self->cookie_expires_entry_); 302 InitComboboxRow(row++, IDS_COOKIES_COOKIE_EXPIRES_LABEL,
303 self->cookie_details_table_,
304 &self->cookie_expires_combobox_,
305 &self->cookie_expires_combobox_store_);
306 } else {
307 InitDetailRow(row++, IDS_COOKIES_COOKIE_EXPIRES_LABEL,
308 self->cookie_details_table_, &self->cookie_expires_entry_);
309 }
254 310
255 // Database details. 311 // Database details.
256 self->database_details_table_ = gtk_table_new(4, 2, FALSE); 312 self->database_details_table_ = gtk_table_new(4, 2, FALSE);
257 gtk_container_add(GTK_CONTAINER(self->table_box_), 313 gtk_container_add(GTK_CONTAINER(self->table_box_),
258 self->database_details_table_); 314 self->database_details_table_);
259 gtk_table_set_col_spacing(GTK_TABLE(self->database_details_table_), 0, 315 gtk_table_set_col_spacing(GTK_TABLE(self->database_details_table_), 0,
260 gtk_util::kLabelSpacing); 316 gtk_util::kLabelSpacing);
261 317
262 InitDetailRow(row++, IDS_COOKIES_COOKIE_NAME_LABEL, 318 InitDetailRow(row++, IDS_COOKIES_COOKIE_NAME_LABEL,
263 self->database_details_table_, &self->database_name_entry_); 319 self->database_details_table_, &self->database_name_entry_);
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 gtk_util::kLabelSpacing); 410 gtk_util::kLabelSpacing);
355 row = 0; 411 row = 0;
356 InitDetailRow(row++, IDS_COOKIES_APPLICATION_CACHE_MANIFEST_LABEL, 412 InitDetailRow(row++, IDS_COOKIES_APPLICATION_CACHE_MANIFEST_LABEL,
357 self->appcache_created_table_, 413 self->appcache_created_table_,
358 &self->appcache_created_manifest_entry_); 414 &self->appcache_created_manifest_entry_);
359 415
360 gtk_frame_set_shadow_type(GTK_FRAME(self), GTK_SHADOW_ETCHED_IN); 416 gtk_frame_set_shadow_type(GTK_FRAME(self), GTK_SHADOW_ETCHED_IN);
361 gtk_container_add(GTK_CONTAINER(self), self->table_box_); 417 gtk_container_add(GTK_CONTAINER(self), self->table_box_);
362 } 418 }
363 419
364 GtkChromeCookieView* gtk_chrome_cookie_view_new() { 420 GtkWidget* gtk_chrome_cookie_view_new(gboolean editable_expiration) {
365 GtkChromeCookieView* view = GTK_CHROME_COOKIE_VIEW( 421 GtkChromeCookieView* view = GTK_CHROME_COOKIE_VIEW(
366 g_object_new(GTK_TYPE_CHROME_COOKIE_VIEW, NULL)); 422 g_object_new(GTK_TYPE_CHROME_COOKIE_VIEW, NULL));
423 BuildWidgets(view, editable_expiration);
367 g_signal_connect(view, "realize", G_CALLBACK(InitStyles), NULL); 424 g_signal_connect(view, "realize", G_CALLBACK(InitStyles), NULL);
368 return view; 425 return GTK_WIDGET(view);
369 } 426 }
370 427
371 void gtk_chrome_cookie_view_clear(GtkChromeCookieView* self) { 428 void gtk_chrome_cookie_view_clear(GtkChromeCookieView* self) {
372 UpdateVisibleDetailedInfo(self, self->cookie_details_table_); 429 UpdateVisibleDetailedInfo(self, self->cookie_details_table_);
373 ClearCookieDetails(self); 430 ClearCookieDetails(self);
374 } 431 }
375 432
376 // Switches the display to showing the passed in cookie. 433 // Switches the display to showing the passed in cookie.
377 void gtk_chrome_cookie_view_display_cookie( 434 void gtk_chrome_cookie_view_display_cookie(
378 GtkChromeCookieView* self, 435 GtkChromeCookieView* self,
379 const std::string& domain, 436 const std::string& domain,
380 const net::CookieMonster::CanonicalCookie& cookie) { 437 const net::CookieMonster::CanonicalCookie& cookie) {
381 UpdateVisibleDetailedInfo(self, self->cookie_details_table_); 438 UpdateVisibleDetailedInfo(self, self->cookie_details_table_);
382 439
383 gtk_entry_set_text(GTK_ENTRY(self->cookie_name_entry_), 440 gtk_entry_set_text(GTK_ENTRY(self->cookie_name_entry_),
384 cookie.Name().c_str()); 441 cookie.Name().c_str());
385 gtk_entry_set_text(GTK_ENTRY(self->cookie_content_entry_), 442 gtk_entry_set_text(GTK_ENTRY(self->cookie_content_entry_),
386 cookie.Value().c_str()); 443 cookie.Value().c_str());
387 gtk_entry_set_text(GTK_ENTRY(self->cookie_domain_entry_), 444 gtk_entry_set_text(GTK_ENTRY(self->cookie_domain_entry_),
388 domain.c_str()); 445 domain.c_str());
389 gtk_entry_set_text(GTK_ENTRY(self->cookie_path_entry_), 446 gtk_entry_set_text(GTK_ENTRY(self->cookie_path_entry_),
390 cookie.Path().c_str()); 447 cookie.Path().c_str());
391 gtk_entry_set_text(GTK_ENTRY(self->cookie_created_entry_), 448 gtk_entry_set_text(GTK_ENTRY(self->cookie_created_entry_),
392 WideToUTF8(base::TimeFormatFriendlyDateAndTime( 449 WideToUTF8(base::TimeFormatFriendlyDateAndTime(
393 cookie.CreationDate())).c_str()); 450 cookie.CreationDate())).c_str());
394 if (cookie.DoesExpire()) { 451
452 std::string expire_text = cookie.DoesExpire() ?
453 WideToUTF8(base::TimeFormatFriendlyDateAndTime(cookie.ExpiryDate())) :
454 l10n_util::GetStringUTF8(IDS_COOKIES_COOKIE_EXPIRES_SESSION);
455
456 if (self->cookie_expires_entry_) {
395 gtk_entry_set_text(GTK_ENTRY(self->cookie_expires_entry_), 457 gtk_entry_set_text(GTK_ENTRY(self->cookie_expires_entry_),
396 WideToUTF8(base::TimeFormatFriendlyDateAndTime( 458 expire_text.c_str());
397 cookie.ExpiryDate())).c_str());
398 } else { 459 } else {
399 gtk_entry_set_text(GTK_ENTRY(self->cookie_expires_entry_), 460 GtkListStore* store = self->cookie_expires_combobox_store_;
400 l10n_util::GetStringUTF8( 461 GtkTreeIter iter;
401 IDS_COOKIES_COOKIE_EXPIRES_SESSION).c_str()); 462 gtk_list_store_clear(store);
463
464 if (cookie.DoesExpire()) {
465 gtk_list_store_append(store, &iter);
466 gtk_list_store_set(store, &iter, 0, expire_text.c_str(), -1);
467 }
468
469 gtk_list_store_append(store, &iter);
470 gtk_list_store_set(
471 store, &iter, 0,
472 l10n_util::GetStringUTF8(IDS_COOKIES_COOKIE_EXPIRES_SESSION).c_str(),
473 -1);
474
475 gtk_combo_box_set_active(GTK_COMBO_BOX(self->cookie_expires_combobox_),
476 0);
402 } 477 }
478
403 gtk_entry_set_text( 479 gtk_entry_set_text(
404 GTK_ENTRY(self->cookie_send_for_entry_), 480 GTK_ENTRY(self->cookie_send_for_entry_),
405 l10n_util::GetStringUTF8(cookie.IsSecure() ? 481 l10n_util::GetStringUTF8(cookie.IsSecure() ?
406 IDS_COOKIES_COOKIE_SENDFOR_SECURE : 482 IDS_COOKIES_COOKIE_SENDFOR_SECURE :
407 IDS_COOKIES_COOKIE_SENDFOR_ANY).c_str()); 483 IDS_COOKIES_COOKIE_SENDFOR_ANY).c_str());
408 SetCookieDetailsSensitivity(self, TRUE); 484 SetCookieDetailsSensitivity(self, TRUE);
409 } 485 }
410 486
411 void gtk_chrome_cookie_view_display_cookie_string( 487 void gtk_chrome_cookie_view_display_cookie_string(
412 GtkChromeCookieView* self, 488 GtkChromeCookieView* self,
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 } 603 }
528 604
529 void gtk_chrome_cookie_view_display_appcache_created( 605 void gtk_chrome_cookie_view_display_appcache_created(
530 GtkChromeCookieView* self, 606 GtkChromeCookieView* self,
531 const GURL& manifest_url) { 607 const GURL& manifest_url) {
532 UpdateVisibleDetailedInfo(self, self->appcache_created_table_); 608 UpdateVisibleDetailedInfo(self, self->appcache_created_table_);
533 gtk_entry_set_text(GTK_ENTRY(self->appcache_created_manifest_entry_), 609 gtk_entry_set_text(GTK_ENTRY(self->appcache_created_manifest_entry_),
534 manifest_url.spec().c_str()); 610 manifest_url.spec().c_str());
535 SetAppCacheCreatedSensitivity(self, TRUE); 611 SetAppCacheCreatedSensitivity(self, TRUE);
536 } 612 }
613
614 bool gtk_chrome_cookie_view_session_expires(GtkChromeCookieView* self) {
615 if (self->cookie_expires_entry_)
616 return false;
617
618 GtkListStore* store = self->cookie_expires_combobox_store_;
619 int store_size = gtk_tree_model_iter_n_children(GTK_TREE_MODEL(store), NULL);
620 if (store_size == 1)
621 return false;
622
623 DCHECK_EQ(2, store_size);
624
625 int selected = gtk_combo_box_get_active(GTK_COMBO_BOX(
626 self->cookie_expires_combobox_));
627 return selected == 1;
628 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698