Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / omnibox / omnibox_view.cc
index ab3aed7..9395546 100644 (file)
 #include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/autocomplete/autocomplete_match.h"
+#include "chrome/browser/search_engines/template_url.h"
+#include "chrome/browser/search_engines/template_url_service.h"
+#include "chrome/browser/search_engines/template_url_service_factory.h"
 #include "chrome/browser/ui/omnibox/omnibox_edit_controller.h"
 #include "chrome/browser/ui/toolbar/toolbar_model.h"
+#include "grit/generated_resources.h"
 #include "ui/base/clipboard/clipboard.h"
+#include "ui/base/l10n/l10n_util.h"
 
 // static
 base::string16 OmniboxView::StripJavascriptSchemas(const base::string16& text) {
@@ -82,12 +87,13 @@ OmniboxView::~OmniboxView() {
 void OmniboxView::OpenMatch(const AutocompleteMatch& match,
                             WindowOpenDisposition disposition,
                             const GURL& alternate_nav_url,
+                            const base::string16& pasted_text,
                             size_t selected_line) {
   // Invalid URLs such as chrome://history can end up here.
-  if (!match.destination_url.is_valid())
-    return;
-  if (model_.get())
-    model_->OpenMatch(match, disposition, alternate_nav_url, selected_line);
+  if (match.destination_url.is_valid() && model_) {
+    model_->OpenMatch(match, disposition, alternate_nav_url, pasted_text,
+                      selected_line);
+  }
 }
 
 bool OmniboxView::IsEditingOrEmpty() const {
@@ -102,6 +108,25 @@ int OmniboxView::GetIcon() const {
       model_->CurrentTextType() : AutocompleteMatchType::URL_WHAT_YOU_TYPED);
 }
 
+base::string16 OmniboxView::GetHintText() const {
+  // Attempt to determine the default search provider and use that in the hint
+  // text.
+  TemplateURLService* template_url_service =
+      TemplateURLServiceFactory::GetForProfile(model_->profile());
+  if (template_url_service) {
+    TemplateURL* template_url =
+        template_url_service->GetDefaultSearchProvider();
+    if (template_url)
+      return l10n_util::GetStringFUTF16(
+          IDS_OMNIBOX_EMPTY_HINT_WITH_DEFAULT_SEARCH_PROVIDER,
+          template_url->AdjustedShortNameForLocaleDirection());
+  }
+
+  // Otherwise return a hint based on there being no default search provider.
+  return l10n_util::GetStringUTF16(
+      IDS_OMNIBOX_EMPTY_HINT_NO_DEFAULT_SEARCH_PROVIDER);
+}
+
 void OmniboxView::SetUserText(const base::string16& text) {
   SetUserText(text, text, true);
 }