Chromium Code Reviews| Index: chrome/browser/chooser_controller/chooser_controller.cc |
| diff --git a/chrome/browser/chooser_controller/chooser_controller.cc b/chrome/browser/chooser_controller/chooser_controller.cc |
| index 00c52f9484c69cd1187deab656d10e1c01e23d93..dd27d086dead936086029705d4a75bb3ced7373f 100644 |
| --- a/chrome/browser/chooser_controller/chooser_controller.cc |
| +++ b/chrome/browser/chooser_controller/chooser_controller.cc |
| @@ -4,7 +4,15 @@ |
| #include "chrome/browser/chooser_controller/chooser_controller.h" |
| +#include "base/strings/utf_string_conversions.h" |
| +#include "chrome/grit/generated_resources.h" |
| +#include "components/url_formatter/elide_url.h" |
| #include "content/public/browser/render_frame_host.h" |
| +#include "content/public/browser/web_contents.h" |
| +#include "extensions/browser/extension_registry.h" |
| +#include "extensions/common/constants.h" |
| +#include "ui/base/l10n/l10n_util.h" |
| +#include "url/gurl.h" |
| #include "url/origin.h" |
| ChooserController::ChooserController(content::RenderFrameHost* owner) |
| @@ -12,7 +20,40 @@ ChooserController::ChooserController(content::RenderFrameHost* owner) |
| ChooserController::~ChooserController() {} |
| -url::Origin ChooserController::GetOrigin() const { |
| - return owning_frame_ ? owning_frame_->GetLastCommittedOrigin() |
| - : url::Origin(); |
| +base::string16 ChooserController::GetTitle() { |
| + return l10n_util::GetStringFUTF16( |
| + title_prefix_has_quote_ ? IDS_DEVICE_CHOOSER_PROMPT_EXTENSION_NAME |
| + : IDS_DEVICE_CHOOSER_PROMPT_ORIGIN, |
| + GetTitlePrefix()); |
| +} |
| + |
| +base::string16 ChooserController::GetTitlePrefix() { |
| + if (!owning_frame_) |
| + return base::string16(); |
| + |
| + base::string16 title_prefix; |
| + url::Origin origin = owning_frame_->GetLastCommittedOrigin(); |
| + if (origin.scheme() == extensions::kExtensionScheme) { |
| + content::WebContents* web_contents = |
| + content::WebContents::FromRenderFrameHost(owning_frame_); |
| + content::BrowserContext* browser_context = |
| + web_contents->GetBrowserContext(); |
| + extensions::ExtensionRegistry* extension_registry = |
| + extensions::ExtensionRegistry::Get(browser_context); |
| + if (extension_registry) { |
| + const extensions::Extension* extension = |
| + extension_registry->enabled_extensions().GetExtensionOrAppByURL( |
| + GURL(origin.Serialize())); |
| + if (extension) |
| + title_prefix = base::UTF8ToUTF16(extension->name()); |
| + } |
| + } |
| + |
| + if (title_prefix.empty()) { |
| + title_prefix = url_formatter::FormatOriginForSecurityDisplay( |
| + origin, url_formatter::SchemeDisplay::OMIT_CRYPTOGRAPHIC); |
| + title_prefix_has_quote_ = false; |
|
Reilly Grant (use Gerrit)
2016/07/11 23:31:40
This field is suspicious. Please just move the bod
juncai
2016/07/12 00:00:42
Done.
|
| + } |
| + |
| + return title_prefix; |
| } |