15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_GTK_GTK_CHROME_COOKIE_VIEW_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_GTK_GTK_CHROME_COOKIE_VIEW_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <gtk/gtk.h> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string> 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/browsing_data/browsing_data_appcache_helper.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/browsing_data/browsing_data_database_helper.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/browsing_data/browsing_data_indexed_db_helper.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/browsing_data/browsing_data_local_storage_helper.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GURL; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CanonicalCookie; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)G_BEGIN_DECLS 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GTK_TYPE_CHROME_COOKIE_VIEW gtk_chrome_cookie_view_get_type() 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GTK_CHROME_COOKIE_VIEW(obj) \ 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (G_TYPE_CHECK_INSTANCE_CAST((obj), \ 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GTK_TYPE_CHROME_COOKIE_VIEW, GtkChromeCookieView)) 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GTK_CHROME_COOKIE_VIEW_CLASS(klass) \ 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (G_TYPE_CHECK_CLASS_CAST((klass), \ 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GTK_TYPE_CHROME_COOKIE_VIEW, GtkChromeCookieViewClass)) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GTK_IS_CHROME_COOKIE_VIEW(obj) \ 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (G_TYPE_CHECK_INSTANCE_TYPE((obj), \ 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GTK_TYPE_CHROME_COOKIE_VIEW)) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GTK_IS_CHROME_COOKIE_VIEW_CLASS(klass) \ 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (G_TYPE_CHECK_CLASS_TYPE((klass), \ 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GTK_TYPE_CHROME_COOKIE_VIEW)) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GTK_CHROME_COOKIE_VIEW_GET_CLASS(obj) \ 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) (G_TYPE_INSTANCE_GET_CLASS((obj), \ 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GTK_TYPE_CHROME_COOKIE_VIEW, GtkChromeCookieViewClass)) 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// TODO(erg): Refactor the following class. It's continuously grown as more 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// things have been added to it and should probably become a general key/value 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// table. The problem is that any implementation for that would be much more 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// complicated and would require changing a whole lot of code. 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct { 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkFrame parent; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // All public for testing since I don't think there's a "friend" mechanism in 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // gobject. 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* table_box_; 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A label we keep around so we can access its GtkStyle* once it is realized. 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* first_label_; 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The cookie details widgets. 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* cookie_details_table_; 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* cookie_name_entry_; 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* cookie_content_entry_; 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* cookie_domain_entry_; 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* cookie_path_entry_; 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* cookie_send_for_entry_; 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* cookie_created_entry_; 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Note: These two widgets are mutually exclusive based on what 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // |editable_expiration| was when the cookie view was created. One of these 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // variables will be NULL. 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* cookie_expires_entry_; 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* cookie_expires_combobox_; 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkListStore* cookie_expires_combobox_store_; 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The database details widgets. 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* database_details_table_; 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* database_name_entry_; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* database_description_entry_; 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* database_size_entry_; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* database_last_modified_entry_; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The local storage details widgets. 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* local_storage_details_table_; 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* local_storage_origin_entry_; 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* local_storage_size_entry_; 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* local_storage_last_modified_entry_; 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The appcache details widgets. 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* appcache_details_table_; 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* appcache_manifest_entry_; 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* appcache_size_entry_; 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* appcache_created_entry_; 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* appcache_last_accessed_entry_; 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The IndexedDB details widgets. 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* indexed_db_details_table_; 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* indexed_db_origin_entry_; 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* indexed_db_size_entry_; 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* indexed_db_last_modified_entry_; 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The local storage item widgets. 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* local_storage_item_table_; 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* local_storage_item_origin_entry_; 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* local_storage_item_key_entry_; 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* local_storage_item_value_entry_; 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The database accessed widgets. 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* database_accessed_table_; 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* database_accessed_origin_entry_; 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* database_accessed_name_entry_; 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* database_accessed_description_entry_; 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* database_accessed_size_entry_; 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // The appcache created widgets. 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* appcache_created_table_; 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkWidget* appcache_created_manifest_entry_; 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} GtkChromeCookieView; 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct { 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkFrameClass parent_class; 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} GtkChromeCookieViewClass; 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GType gtk_chrome_cookie_view_get_type(); 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Builds a new cookie view. 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GtkWidget* gtk_chrome_cookie_view_new(gboolean editable_expiration); 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Clears the cookie view. 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void gtk_chrome_cookie_view_clear(GtkChromeCookieView* widget); 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// NOTE: The G_END_DECLS ends here instead of at the end of the document 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// because we want to define some methods on GtkChromeCookieView that take C++ 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// objects. 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)G_END_DECLS 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// NOTE: ^^^^^^^^^^^^^^^^^^^^^^^ 1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Switches the display to showing the passed in cookie. 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void gtk_chrome_cookie_view_display_cookie( 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkChromeCookieView* widget, 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& domain, 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const net::CanonicalCookie& cookie); 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Looks up the cookie_line in CookieMonster and displays that. 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void gtk_chrome_cookie_view_display_cookie_string( 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkChromeCookieView* widget, 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& url, 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& cookie_line); 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Switches the display to showing the passed in database. 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void gtk_chrome_cookie_view_display_database( 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkChromeCookieView* widget, 1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BrowsingDataDatabaseHelper::DatabaseInfo& database_info); 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Switches the display to showing the passed in local storage data. 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void gtk_chrome_cookie_view_display_local_storage( 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkChromeCookieView* widget, 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const BrowsingDataLocalStorageHelper::LocalStorageInfo& 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) local_storage_info); 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Switches the display to showing the passed in app cache. 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void gtk_chrome_cookie_view_display_app_cache( 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkChromeCookieView* widget, 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const appcache::AppCacheInfo& info); 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Switches the display to showing the passed in IndexedDB data. 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void gtk_chrome_cookie_view_display_indexed_db( 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkChromeCookieView* widget, 172c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) const content::IndexedDBInfo& info); 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Switches the display to an individual storage item. 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void gtk_chrome_cookie_view_display_local_storage_item( 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkChromeCookieView* widget, 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& host, 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& key, 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& value); 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void gtk_chrome_cookie_view_display_database_accessed( 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkChromeCookieView* self, 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::string& host, 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& database_name, 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& display_name, 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) unsigned long estimated_size); 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void gtk_chrome_cookie_view_display_appcache_created( 1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GtkChromeCookieView* self, 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const GURL& manifest_url); 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// If |editable_expiration| was true at construction time, returns the value of 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the combo box. Otherwise, returns false. 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool gtk_chrome_cookie_view_session_expires(GtkChromeCookieView* self); 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_UI_GTK_GTK_CHROME_COOKIE_VIEW_H_ 197