Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(384)

Unified Diff: chrome/browser/chooser_controller/chooser_controller.cc

Issue 2122073004: Display extension name on device chooser title (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@move_chooser_controller_to_chrome_browser
Patch Set: rebase Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}

Powered by Google App Engine
This is Rietveld 408576698