Index: chrome/browser/toolbar_model.cc |
=================================================================== |
--- chrome/browser/toolbar_model.cc (revision 68008) |
+++ chrome/browser/toolbar_model.cc (working copy) |
@@ -1,129 +0,0 @@ |
-// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/toolbar_model.h" |
- |
-#include "base/utf_string_conversions.h" |
-#include "chrome/browser/autocomplete/autocomplete.h" |
-#include "chrome/browser/autocomplete/autocomplete_edit.h" |
-#include "chrome/browser/cert_store.h" |
-#include "chrome/browser/prefs/pref_service.h" |
-#include "chrome/browser/profile.h" |
-#include "chrome/browser/ssl/ssl_error_info.h" |
-#include "chrome/browser/tab_contents/navigation_controller.h" |
-#include "chrome/browser/tab_contents/navigation_entry.h" |
-#include "chrome/browser/tab_contents/tab_contents.h" |
-#include "chrome/browser/ui/browser.h" |
-#include "chrome/common/chrome_constants.h" |
-#include "chrome/common/pref_names.h" |
-#include "chrome/common/url_constants.h" |
-#include "grit/generated_resources.h" |
-#include "grit/theme_resources.h" |
-#include "net/base/cert_status_flags.h" |
-#include "net/base/net_util.h" |
- |
-ToolbarModel::ToolbarModel(Browser* browser) |
- : browser_(browser), |
- input_in_progress_(false) { |
-} |
- |
-ToolbarModel::~ToolbarModel() { |
-} |
- |
-// ToolbarModel Implementation. |
-std::wstring ToolbarModel::GetText() const { |
- GURL url(chrome::kAboutBlankURL); |
- std::string languages; // Empty if we don't have a |navigation_controller|. |
- |
- NavigationController* navigation_controller = GetNavigationController(); |
- if (navigation_controller) { |
- languages = navigation_controller->profile()->GetPrefs()->GetString( |
- prefs::kAcceptLanguages); |
- NavigationEntry* entry = navigation_controller->GetActiveEntry(); |
- if (!navigation_controller->tab_contents()->ShouldDisplayURL()) { |
- // Explicitly hide the URL for this tab. |
- url = GURL(); |
- } else if (entry) { |
- url = entry->virtual_url(); |
- } |
- } |
- if (url.spec().length() > chrome::kMaxURLDisplayChars) |
- url = url.IsStandard() ? url.GetOrigin() : GURL(url.scheme() + ":"); |
- // Note that we can't unescape spaces here, because if the user copies this |
- // and pastes it into another program, that program may think the URL ends at |
- // the space. |
- return AutocompleteInput::FormattedStringWithEquivalentMeaning(url, |
- UTF16ToWideHack(net::FormatUrl(url, languages, net::kFormatUrlOmitAll, |
- UnescapeRule::NORMAL, NULL, NULL, NULL))); |
-} |
- |
-ToolbarModel::SecurityLevel ToolbarModel::GetSecurityLevel() const { |
- if (input_in_progress_) // When editing, assume no security style. |
- return NONE; |
- |
- NavigationController* navigation_controller = GetNavigationController(); |
- if (!navigation_controller) // We might not have a controller on init. |
- return NONE; |
- |
- NavigationEntry* entry = navigation_controller->GetActiveEntry(); |
- if (!entry) |
- return NONE; |
- |
- const NavigationEntry::SSLStatus& ssl = entry->ssl(); |
- switch (ssl.security_style()) { |
- case SECURITY_STYLE_UNKNOWN: |
- case SECURITY_STYLE_UNAUTHENTICATED: |
- return NONE; |
- |
- case SECURITY_STYLE_AUTHENTICATION_BROKEN: |
- return SECURITY_ERROR; |
- |
- case SECURITY_STYLE_AUTHENTICATED: |
- if (ssl.displayed_insecure_content()) |
- return SECURITY_WARNING; |
- if (net::IsCertStatusError(ssl.cert_status())) { |
- DCHECK_EQ(ssl.cert_status() & net::CERT_STATUS_ALL_ERRORS, |
- net::CERT_STATUS_UNABLE_TO_CHECK_REVOCATION); |
- return SECURITY_WARNING; |
- } |
- if ((ssl.cert_status() & net::CERT_STATUS_IS_EV) && |
- CertStore::GetSharedInstance()->RetrieveCert(ssl.cert_id(), NULL)) |
- return EV_SECURE; |
- return SECURE; |
- |
- default: |
- NOTREACHED(); |
- return NONE; |
- } |
-} |
- |
-int ToolbarModel::GetIcon() const { |
- static int icon_ids[NUM_SECURITY_LEVELS] = { |
- IDR_OMNIBOX_HTTP, |
- IDR_OMNIBOX_HTTPS_VALID, |
- IDR_OMNIBOX_HTTPS_VALID, |
- IDR_OMNIBOX_HTTPS_WARNING, |
- IDR_OMNIBOX_HTTPS_INVALID, |
- }; |
- DCHECK(arraysize(icon_ids) == NUM_SECURITY_LEVELS); |
- return icon_ids[GetSecurityLevel()]; |
-} |
- |
-std::wstring ToolbarModel::GetEVCertName() const { |
- DCHECK_EQ(GetSecurityLevel(), EV_SECURE); |
- scoped_refptr<net::X509Certificate> cert; |
- // Note: Navigation controller and active entry are guaranteed non-NULL or |
- // the security level would be NONE. |
- CertStore::GetSharedInstance()->RetrieveCert( |
- GetNavigationController()->GetActiveEntry()->ssl().cert_id(), &cert); |
- return SSLManager::GetEVCertName(*cert); |
-} |
- |
-NavigationController* ToolbarModel::GetNavigationController() const { |
- // This |current_tab| can be NULL during the initialization of the |
- // toolbar during window creation (i.e. before any tabs have been added |
- // to the window). |
- TabContents* current_tab = browser_->GetSelectedTabContents(); |
- return current_tab ? ¤t_tab->controller() : NULL; |
-} |