| Index: chrome/browser/ui/location_bar/origin_chip_info.cc
|
| diff --git a/chrome/browser/ui/location_bar/origin_chip_info.cc b/chrome/browser/ui/location_bar/origin_chip_info.cc
|
| deleted file mode 100644
|
| index 633b13d2e106b1e64c9ece096b45ddf4db775797..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/location_bar/origin_chip_info.cc
|
| +++ /dev/null
|
| @@ -1,265 +0,0 @@
|
| -// Copyright 2014 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/ui/location_bar/origin_chip_info.h"
|
| -
|
| -#include <string>
|
| -
|
| -#include "base/prefs/pref_service.h"
|
| -#include "base/strings/string_util.h"
|
| -#include "base/strings/utf_string_conversions.h"
|
| -#include "chrome/browser/extensions/extension_util.h"
|
| -#include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/safe_browsing/client_side_detection_host.h"
|
| -#include "chrome/browser/safe_browsing/safe_browsing_tab_observer.h"
|
| -#include "chrome/browser/ui/toolbar/toolbar_model.h"
|
| -#include "chrome/common/extensions/extension_constants.h"
|
| -#include "chrome/common/pref_names.h"
|
| -#include "chrome/common/url_constants.h"
|
| -#include "chrome/grit/chromium_strings.h"
|
| -#include "chrome/grit/generated_resources.h"
|
| -#include "content/public/browser/web_contents.h"
|
| -#include "extensions/browser/extension_icon_image.h"
|
| -#include "extensions/browser/extension_registry.h"
|
| -#include "extensions/common/constants.h"
|
| -#include "extensions/common/manifest_handlers/icons_handler.h"
|
| -#include "grit/components_strings.h"
|
| -#include "grit/theme_resources.h"
|
| -#include "net/base/net_util.h"
|
| -#include "ui/base/l10n/l10n_util.h"
|
| -#include "url/gurl.h"
|
| -
|
| -namespace {
|
| -
|
| -// For selected kChromeUIScheme and url::kAboutScheme, return the string
|
| -// resource
|
| -// number for the title of the page. If we don't have a specialized title,
|
| -// returns -1.
|
| -int StringForChromeHost(const GURL& url) {
|
| - DCHECK(url.is_empty() || url.SchemeIs(content::kChromeUIScheme));
|
| -
|
| - if (url.is_empty())
|
| - return IDS_NEW_TAB_TITLE;
|
| -
|
| - // TODO(gbillock): Just get the page title and special case exceptions?
|
| - std::string host = url.host();
|
| - if (host == chrome::kChromeUIAppLauncherPageHost)
|
| - return IDS_APP_DEFAULT_PAGE_NAME;
|
| - if (host == chrome::kChromeUIBookmarksHost)
|
| - return IDS_BOOKMARK_MANAGER_TITLE;
|
| - if (host == chrome::kChromeUIComponentsHost)
|
| - return IDS_COMPONENTS_TITLE;
|
| - if (host == chrome::kChromeUICrashesHost)
|
| - return IDS_CRASHES_TITLE;
|
| -#if defined(ENABLE_SERVICE_DISCOVERY)
|
| - if (host == chrome::kChromeUIDevicesHost)
|
| - return IDS_LOCAL_DISCOVERY_DEVICES_PAGE_TITLE;
|
| -#endif // ENABLE_SERVICE_DISCOVERY
|
| - if (host == chrome::kChromeUIDownloadsHost)
|
| - return IDS_DOWNLOAD_TITLE;
|
| - if (host == chrome::kChromeUIExtensionsHost)
|
| - return IDS_MANAGE_EXTENSIONS_SETTING_WINDOWS_TITLE;
|
| - if (host == chrome::kChromeUIHelpHost)
|
| - return IDS_ABOUT_TITLE;
|
| - if (host == chrome::kChromeUIHistoryHost)
|
| - return IDS_HISTORY_TITLE;
|
| - if (host == chrome::kChromeUINewTabHost)
|
| - return IDS_NEW_TAB_TITLE;
|
| - if (host == chrome::kChromeUIPluginsHost)
|
| - return IDS_PLUGINS_TITLE;
|
| - if (host == chrome::kChromeUIPolicyHost)
|
| - return IDS_POLICY_TITLE;
|
| -#if defined(ENABLE_PRINT_PREVIEW)
|
| - if (host == chrome::kChromeUIPrintHost)
|
| - return IDS_PRINT_PREVIEW_TITLE;
|
| -#endif // ENABLE_PRINT_PREVIEW
|
| - if (host == chrome::kChromeUISettingsHost)
|
| - return IDS_SETTINGS_TITLE;
|
| - if (host == chrome::kChromeUIVersionHost)
|
| - return IDS_ABOUT_VERSION_TITLE;
|
| -
|
| - return -1;
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -OriginChipInfo::OriginChipInfo(extensions::IconImage::Observer* owner,
|
| - Profile* profile)
|
| - : owner_(owner),
|
| - profile_(profile),
|
| - security_level_(ToolbarModel::NONE),
|
| - is_url_malware_(false),
|
| - icon_(IDR_PRODUCT_LOGO_16) {
|
| -}
|
| -
|
| -OriginChipInfo::~OriginChipInfo() {
|
| -}
|
| -
|
| -bool OriginChipInfo::Update(const content::WebContents* web_contents,
|
| - const ToolbarModel* toolbar_model) {
|
| - GURL displayed_url = toolbar_model->GetURL();
|
| - ToolbarModel::SecurityLevel security_level =
|
| - toolbar_model->GetSecurityLevel(true);
|
| - bool is_url_malware = OriginChip::IsMalware(displayed_url, web_contents);
|
| -
|
| - if ((displayed_url_ == displayed_url) &&
|
| - (security_level_ == security_level) &&
|
| - (is_url_malware_ == is_url_malware))
|
| - return false;
|
| -
|
| - displayed_url_ = displayed_url;
|
| - security_level_ = security_level;
|
| - is_url_malware_ = is_url_malware;
|
| -
|
| - label_ = OriginChip::LabelFromURLForProfile(displayed_url, profile_);
|
| - if (security_level_ == ToolbarModel::EV_SECURE) {
|
| - label_ = l10n_util::GetStringFUTF16(IDS_SITE_CHIP_EV_SSL_LABEL,
|
| - toolbar_model->GetEVCertName(),
|
| - label_);
|
| - }
|
| -
|
| -
|
| - if (displayed_url_.SchemeIs(extensions::kExtensionScheme)) {
|
| - const extensions::Extension* extension =
|
| - extensions::ExtensionRegistry::Get(profile_)
|
| - ->enabled_extensions()
|
| - .GetByID(displayed_url_.host());
|
| -
|
| - if (extension) {
|
| - icon_ = IDR_EXTENSIONS_FAVICON;
|
| - extension_icon_image_.reset(
|
| - new extensions::IconImage(profile_,
|
| - extension,
|
| - extensions::IconsInfo::GetIcons(extension),
|
| - extension_misc::EXTENSION_ICON_BITTY,
|
| - extensions::util::GetDefaultAppIcon(),
|
| - owner_));
|
| -
|
| - // Forces load of the image.
|
| - extension_icon_image_->image_skia().GetRepresentation(1.0f);
|
| - if (!extension_icon_image_->image_skia().image_reps().empty())
|
| - owner_->OnExtensionIconImageChanged(extension_icon_image_.get());
|
| -
|
| - return true;
|
| - }
|
| - }
|
| -
|
| - if (extension_icon_image_) {
|
| - extension_icon_image_.reset();
|
| - owner_->OnExtensionIconImageChanged(NULL);
|
| - }
|
| -
|
| - icon_ = (displayed_url_.is_empty() ||
|
| - displayed_url_.SchemeIs(content::kChromeUIScheme)) ?
|
| - IDR_PRODUCT_LOGO_16 :
|
| - toolbar_model->GetIconForSecurityLevel(security_level_);
|
| -
|
| - return true;
|
| -}
|
| -
|
| -base::string16 OriginChipInfo::Tooltip() const {
|
| - return base::UTF8ToUTF16(displayed_url_.spec());
|
| -}
|
| -
|
| -// static
|
| -bool OriginChip::IsMalware(const GURL& url, const content::WebContents* tab) {
|
| - DCHECK(tab);
|
| -
|
| - if (tab->GetURL() != url)
|
| - return false;
|
| -
|
| - const safe_browsing::SafeBrowsingTabObserver* sb_observer =
|
| - safe_browsing::SafeBrowsingTabObserver::FromWebContents(tab);
|
| - return sb_observer && sb_observer->DidPageReceiveSafeBrowsingMatch();
|
| -}
|
| -
|
| -// static
|
| -base::string16 OriginChip::LabelFromURLForProfile(const GURL& provided_url,
|
| - Profile* profile) {
|
| - // First, strip view-source: if it appears. Note that GetContent removes
|
| - // "view-source:" but leaves the original scheme (http, https, ftp, etc).
|
| - GURL url(provided_url);
|
| - if (url.SchemeIs(content::kViewSourceScheme))
|
| - url = GURL(url.GetContent());
|
| -
|
| - // About scheme pages. Currently all about: URLs other than about:blank
|
| - // redirect to chrome: URLs, so this only affects about:blank.
|
| - if (url.SchemeIs(url::kAboutScheme))
|
| - return base::UTF8ToUTF16(url.spec());
|
| -
|
| - // Chrome built-in pages.
|
| - if (url.is_empty() || url.SchemeIs(content::kChromeUIScheme)) {
|
| - int string_ref = StringForChromeHost(url);
|
| - return l10n_util::GetStringUTF16(
|
| - (string_ref == -1) ? IDS_SHORT_PRODUCT_NAME : string_ref);
|
| - }
|
| -
|
| - // For chrome-extension URLs, return the extension name.
|
| - if (url.SchemeIs(extensions::kExtensionScheme)) {
|
| - const extensions::Extension* extension =
|
| - extensions::ExtensionRegistry::Get(profile)
|
| - ->enabled_extensions()
|
| - .GetByID(url.host());
|
| - return extension ?
|
| - base::UTF8ToUTF16(extension->name()) : base::UTF8ToUTF16(url.host());
|
| - }
|
| -
|
| - if (url.SchemeIsHTTPOrHTTPS() || url.SchemeIs(url::kFtpScheme)) {
|
| - // See ToolbarModelImpl::GetText(). Does not pay attention to any user
|
| - // edits, and uses GetURL/net::FormatUrl -- We don't really care about
|
| - // length or the autocomplete parser.
|
| - // TODO(gbillock): This uses an algorithm very similar to GetText, which
|
| - // is probably too conservative. Try out just using a simpler mechanism of
|
| - // StripWWW() and IDNToUnicode().
|
| - std::string languages;
|
| - if (profile)
|
| - languages = profile->GetPrefs()->GetString(prefs::kAcceptLanguages);
|
| -
|
| - // TODO(macourteau): Extract the bits we care about from FormatUrl to
|
| - // format |url.host()| instead of this.
|
| - base::string16 formatted = net::FormatUrl(url.GetOrigin(), languages,
|
| - net::kFormatUrlOmitAll, net::UnescapeRule::NORMAL, NULL, NULL, NULL);
|
| - // Remove scheme, "www.", and trailing "/".
|
| - if (StartsWith(formatted, base::ASCIIToUTF16("http://"), false))
|
| - formatted = formatted.substr(7);
|
| - else if (StartsWith(formatted, base::ASCIIToUTF16("https://"), false))
|
| - formatted = formatted.substr(8);
|
| - else if (StartsWith(formatted, base::ASCIIToUTF16("ftp://"), false))
|
| - formatted = formatted.substr(6);
|
| - if (StartsWith(formatted, base::ASCIIToUTF16("www."), false))
|
| - formatted = formatted.substr(4);
|
| - if (EndsWith(formatted, base::ASCIIToUTF16("/"), false))
|
| - formatted = formatted.substr(0, formatted.size() - 1);
|
| - return formatted;
|
| - }
|
| -
|
| - // These internal-ish debugging-style schemes we don't expect users
|
| - // to see. In these cases, the site chip will display the first
|
| - // part of the full URL.
|
| - if (url.SchemeIs(chrome::kChromeNativeScheme) ||
|
| - url.SchemeIs(url::kBlobScheme) ||
|
| - url.SchemeIs(content::kChromeDevToolsScheme) ||
|
| - url.SchemeIs(url::kDataScheme) ||
|
| - url.SchemeIs(url::kFileScheme) ||
|
| - url.SchemeIs(url::kFileSystemScheme) ||
|
| - url.SchemeIs(content::kGuestScheme) ||
|
| - url.SchemeIs(url::kJavaScriptScheme) ||
|
| - url.SchemeIs(url::kMailToScheme) ||
|
| - url.SchemeIs(content::kMetadataScheme) ||
|
| - url.SchemeIs(content::kSwappedOutScheme)) {
|
| - std::string truncated_url;
|
| - base::TruncateUTF8ToByteSize(url.spec(), 1000, &truncated_url);
|
| - return base::UTF8ToUTF16(truncated_url);
|
| - }
|
| -
|
| -#if defined(OS_CHROMEOS)
|
| - if (url.SchemeIs(chrome::kCrosScheme) ||
|
| - url.SchemeIs(content::kExternalFileScheme)) {
|
| - return base::UTF8ToUTF16(url.spec());
|
| - }
|
| -#endif
|
| -
|
| - // If all else fails, return the hostname.
|
| - return base::UTF8ToUTF16(url.host());
|
| -}
|
|
|