| OLD | NEW |
| 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/website_settings.h" | 5 #include "chrome/browser/website_settings.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 24 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
| 25 #include "chrome/browser/ui/website_settings_ui.h" | 25 #include "chrome/browser/ui/website_settings_ui.h" |
| 26 #include "chrome/common/content_settings_pattern.h" | 26 #include "chrome/common/content_settings_pattern.h" |
| 27 #include "content/public/browser/browser_thread.h" | 27 #include "content/public/browser/browser_thread.h" |
| 28 #include "content/public/browser/cert_store.h" | 28 #include "content/public/browser/cert_store.h" |
| 29 #include "content/public/common/ssl_status.h" | 29 #include "content/public/common/ssl_status.h" |
| 30 #include "content/public/common/url_constants.h" | 30 #include "content/public/common/url_constants.h" |
| 31 #include "grit/chromium_strings.h" | 31 #include "grit/chromium_strings.h" |
| 32 #include "grit/generated_resources.h" | 32 #include "grit/generated_resources.h" |
| 33 #include "net/base/cert_status_flags.h" | 33 #include "net/base/cert_status_flags.h" |
| 34 #include "net/base/registry_controlled_domain.h" |
| 34 #include "net/base/ssl_cipher_suite_names.h" | 35 #include "net/base/ssl_cipher_suite_names.h" |
| 35 #include "net/base/ssl_connection_status_flags.h" | 36 #include "net/base/ssl_connection_status_flags.h" |
| 36 #include "net/base/x509_certificate.h" | 37 #include "net/base/x509_certificate.h" |
| 37 #include "ui/base/l10n/l10n_util.h" | 38 #include "ui/base/l10n/l10n_util.h" |
| 38 #include "ui/base/resource/resource_bundle.h" | 39 #include "ui/base/resource/resource_bundle.h" |
| 39 | 40 |
| 40 #if defined(TOOLKIT_GTK) | 41 #if defined(TOOLKIT_GTK) |
| 41 #include "chrome/browser/ui/gtk/website_settings_popup_gtk.h" | 42 #include "chrome/browser/ui/gtk/website_settings_popup_gtk.h" |
| 42 #endif | 43 #endif |
| 43 | 44 |
| 44 using content::BrowserThread; | 45 using content::BrowserThread; |
| 45 | 46 |
| 46 namespace { | 47 namespace { |
| 47 | 48 |
| 48 ContentSettingsType kPermissionType[] = { | 49 ContentSettingsType kPermissionType[] = { |
| 49 CONTENT_SETTINGS_TYPE_POPUPS, | 50 CONTENT_SETTINGS_TYPE_POPUPS, |
| 50 CONTENT_SETTINGS_TYPE_PLUGINS, | 51 CONTENT_SETTINGS_TYPE_PLUGINS, |
| 51 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, | 52 CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
| 52 CONTENT_SETTINGS_TYPE_GEOLOCATION, | 53 CONTENT_SETTINGS_TYPE_GEOLOCATION, |
| 53 }; | 54 }; |
| 54 | 55 |
| 55 size_t GetLocalStoredObjectCount( | |
| 56 const LocalSharedObjectsContainer& local_shared_objects) { | |
| 57 size_t count = 0; | |
| 58 count += local_shared_objects.cookies()->GetCookieCount(); | |
| 59 count += local_shared_objects.databases()->GetDatabaseCount(); | |
| 60 count += local_shared_objects.file_systems()->GetFileSystemCount(); | |
| 61 count += local_shared_objects.indexed_dbs()->GetIndexedDBCount(); | |
| 62 count += local_shared_objects.local_storages()->GetLocalStorageCount(); | |
| 63 count += local_shared_objects.server_bound_certs()->GetCertCount(); | |
| 64 count += local_shared_objects.session_storages()->GetLocalStorageCount(); | |
| 65 return count; | |
| 66 } | |
| 67 | |
| 68 } // namespace | 56 } // namespace |
| 69 | 57 |
| 70 WebsiteSettings::WebsiteSettings( | 58 WebsiteSettings::WebsiteSettings( |
| 71 WebsiteSettingsUI* ui, | 59 WebsiteSettingsUI* ui, |
| 72 Profile* profile, | 60 Profile* profile, |
| 73 TabSpecificContentSettings* tab_specific_content_settings, | 61 TabSpecificContentSettings* tab_specific_content_settings, |
| 74 const GURL& url, | 62 const GURL& url, |
| 75 const content::SSLStatus& ssl, | 63 const content::SSLStatus& ssl, |
| 76 content::CertStore* cert_store) | 64 content::CertStore* cert_store) |
| 77 : TabSpecificContentSettings::SiteDataObserver( | 65 : TabSpecificContentSettings::SiteDataObserver( |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 409 } | 397 } |
| 410 permission_info_list.push_back(permission_info); | 398 permission_info_list.push_back(permission_info); |
| 411 } | 399 } |
| 412 } | 400 } |
| 413 | 401 |
| 414 ui_->SetPermissionInfo(permission_info_list); | 402 ui_->SetPermissionInfo(permission_info_list); |
| 415 } | 403 } |
| 416 | 404 |
| 417 void WebsiteSettings::PresentSiteData() { | 405 void WebsiteSettings::PresentSiteData() { |
| 418 CookieInfoList cookie_info_list; | 406 CookieInfoList cookie_info_list; |
| 407 const LocalSharedObjectsContainer& allowed_objects = |
| 408 tab_specific_content_settings()->allowed_local_shared_objects(); |
| 409 const LocalSharedObjectsContainer& blocked_objects = |
| 410 tab_specific_content_settings()->blocked_local_shared_objects(); |
| 411 |
| 412 // Add first party cookie and site data counts. |
| 419 WebsiteSettingsUI::CookieInfo cookie_info; | 413 WebsiteSettingsUI::CookieInfo cookie_info; |
| 420 cookie_info.cookie_source = site_url_.host(); | 414 std::string cookie_source = |
| 421 cookie_info.allowed = GetLocalStoredObjectCount( | 415 net::RegistryControlledDomainService::GetDomainAndRegistry(site_url_); |
| 422 tab_specific_content_settings()->allowed_local_shared_objects()); | 416 if (cookie_source.empty()) |
| 423 cookie_info.blocked = GetLocalStoredObjectCount( | 417 cookie_source = site_url_.host(); |
| 424 tab_specific_content_settings()->blocked_local_shared_objects()); | 418 cookie_info.cookie_source = cookie_source; |
| 419 cookie_info.allowed = allowed_objects.GetObjectCountForDomain(site_url_); |
| 420 cookie_info.blocked = blocked_objects.GetObjectCountForDomain(site_url_); |
| 421 cookie_info_list.push_back(cookie_info); |
| 422 |
| 423 // Add third party cookie counts. |
| 424 cookie_info.cookie_source = l10n_util::GetStringUTF8( |
| 425 IDS_WEBSITE_SETTINGS_THIRD_PARTY_SITE_DATA); |
| 426 cookie_info.allowed = allowed_objects.GetObjectCount() - cookie_info.allowed; |
| 427 cookie_info.blocked = blocked_objects.GetObjectCount() - cookie_info.blocked; |
| 425 cookie_info_list.push_back(cookie_info); | 428 cookie_info_list.push_back(cookie_info); |
| 426 | 429 |
| 427 ui_->SetCookieInfo(cookie_info_list); | 430 ui_->SetCookieInfo(cookie_info_list); |
| 428 } | 431 } |
| 429 | 432 |
| 430 void WebsiteSettings::PresentSiteIdentity() { | 433 void WebsiteSettings::PresentSiteIdentity() { |
| 431 // After initialization the status about the site's connection | 434 // After initialization the status about the site's connection |
| 432 // and it's identity must be available. | 435 // and it's identity must be available. |
| 433 DCHECK_NE(site_identity_status_, SITE_IDENTITY_STATUS_UNKNOWN); | 436 DCHECK_NE(site_identity_status_, SITE_IDENTITY_STATUS_UNKNOWN); |
| 434 DCHECK_NE(site_connection_status_, SITE_CONNECTION_STATUS_UNKNOWN); | 437 DCHECK_NE(site_connection_status_, SITE_CONNECTION_STATUS_UNKNOWN); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 459 new WebsiteSettings(new WebsiteSettingsPopupGtk(parent, | 462 new WebsiteSettings(new WebsiteSettingsPopupGtk(parent, |
| 460 profile, | 463 profile, |
| 461 tab_contents_wrapper), | 464 tab_contents_wrapper), |
| 462 profile, | 465 profile, |
| 463 tab_contents_wrapper->content_settings(), | 466 tab_contents_wrapper->content_settings(), |
| 464 url, | 467 url, |
| 465 ssl, | 468 ssl, |
| 466 content::CertStore::GetInstance()); | 469 content::CertStore::GetInstance()); |
| 467 #endif | 470 #endif |
| 468 } | 471 } |
| OLD | NEW |