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..f0fd87fe44aa0be9a01fe8dda2bf4f51749461fe 100644 |
| --- a/chrome/browser/chooser_controller/chooser_controller.cc |
| +++ b/chrome/browser/chooser_controller/chooser_controller.cc |
| @@ -4,7 +4,14 @@ |
| #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 "ui/base/l10n/l10n_util.h" |
| +#include "url/gurl.h" |
| #include "url/origin.h" |
| ChooserController::ChooserController(content::RenderFrameHost* owner) |
| @@ -12,7 +19,39 @@ ChooserController::ChooserController(content::RenderFrameHost* owner) |
| ChooserController::~ChooserController() {} |
| -url::Origin ChooserController::GetOrigin() const { |
| - return owning_frame_ ? owning_frame_->GetLastCommittedOrigin() |
| - : url::Origin(); |
| +base::string16 ChooserController::GetTitle() const { |
| + return l10n_util::GetStringFUTF16(IDS_DEVICE_CHOOSER_PROMPT, |
| + GetTitlePrefix()); |
| +} |
| + |
| +base::string16 ChooserController::GetTitlePrefix() const { |
| + if (!owning_frame_) |
| + return base::string16(); |
| + |
| + base::string16 title_prefix; |
| + url::Origin last_committed_origin = owning_frame_->GetLastCommittedOrigin(); |
| + 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(last_committed_origin.Serialize())); |
| + if (extension) |
| + title_prefix = base::UTF8ToUTF16(extension->name()); |
| + } |
| + |
| + if (title_prefix.empty()) { |
|
Reilly Grant (use Gerrit)
2016/07/11 21:48:03
We can determine if this is an extension URL or no
juncai
2016/07/11 23:16:44
Done.
|
| + title_prefix = url_formatter::FormatOriginForSecurityDisplay( |
| + last_committed_origin, |
| + url_formatter::SchemeDisplay::OMIT_CRYPTOGRAPHIC); |
| + } else { |
| + // Add quote if the it is a Chrome app/extension name. |
|
Reilly Grant (use Gerrit)
2016/07/11 21:48:02
Quotation marks need to be localized. Instead of r
juncai
2016/07/11 23:16:44
Done.
|
| + title_prefix.insert(title_prefix.begin(), '"'); |
| + title_prefix.insert(title_prefix.end(), '"'); |
| + } |
| + |
| + return title_prefix; |
| } |