#include "base/strings/string16.h"
#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/search.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 "components/omnibox/autocomplete_match.h"
+#include "components/search_engines/template_url.h"
+#include "components/search_engines/template_url_service.h"
+#include "grit/component_scaled_resources.h"
#include "grit/generated_resources.h"
+#include "grit/theme_resources.h"
#include "ui/base/clipboard/clipboard.h"
#include "ui/base/l10n/l10n_util.h"
// static
base::string16 OmniboxView::StripJavascriptSchemas(const base::string16& text) {
const base::string16 kJsPrefix(
- base::ASCIIToUTF16(content::kJavaScriptScheme) + base::ASCIIToUTF16(":"));
+ base::ASCIIToUTF16(url::kJavaScriptScheme) + base::ASCIIToUTF16(":"));
base::string16 out(text);
- while (StartsWith(out, kJsPrefix, false))
- TrimWhitespace(out.substr(kJsPrefix.length()), TRIM_LEADING, &out);
+ while (StartsWith(out, kJsPrefix, false)) {
+ base::TrimWhitespace(out.substr(kJsPrefix.length()), base::TRIM_LEADING,
+ &out);
+ }
return out;
}
// trailing whitespace when making this determination.
for (size_t i = 0; i < text.size(); ++i) {
if (IsWhitespace(text[i]) && text[i] != '\n' && text[i] != '\r') {
- const base::string16 collapsed = CollapseWhitespace(text, false);
+ const base::string16 collapsed = base::CollapseWhitespace(text, false);
// If the user is pasting all-whitespace, paste a single space
// rather than nothing, since pasting nothing feels broken.
return collapsed.empty() ?
}
// Otherwise, all whitespace is newlines; remove it entirely.
- return StripJavascriptSchemas(CollapseWhitespace(text, true));
+ return StripJavascriptSchemas(base::CollapseWhitespace(text, true));
}
// static
OmniboxView::~OmniboxView() {
}
+void OmniboxView::HandleOriginChipMouseRelease() {
+ // Only hide if there isn't any current text in the Omnibox (e.g. search
+ // terms).
+ if (controller()->GetToolbarModel()->GetText().empty())
+ controller()->HideOriginChip();
+}
+
+void OmniboxView::OnDidKillFocus() {
+ if (chrome::ShouldDisplayOriginChip() && !model()->user_input_in_progress())
+ controller()->ShowOriginChip();
+}
+
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() && model_) {
- model_->OpenMatch(match, disposition, alternate_nav_url, pasted_text,
- selected_line);
- }
+ if (!match.destination_url.is_valid() || !model_)
+ return;
+ model_->OpenMatch(
+ match, disposition, alternate_nav_url, pasted_text, selected_line);
+ OnMatchOpened(match, controller_->GetWebContents());
}
bool OmniboxView::IsEditingOrEmpty() const {
int OmniboxView::GetIcon() const {
if (!IsEditingOrEmpty())
return controller_->GetToolbarModel()->GetIcon();
- return AutocompleteMatch::TypeToLocationBarIcon(model_.get() ?
+ int id = AutocompleteMatch::TypeToIcon(model_.get() ?
model_->CurrentTextType() : AutocompleteMatchType::URL_WHAT_YOU_TYPED);
+ return (id == IDR_OMNIBOX_HTTP) ? IDR_LOCATION_BAR_HTTP : id;
}
base::string16 OmniboxView::GetHintText() const {
+ // If the user is in keyword mode (the "Search <some site>:" chip is showing)
+ // then it doesn't make sense to show the "Search <default search engine>"
+ // hint text.
+ if (model_->is_keyword_selected())
+ return base::string16();
+
// Attempt to determine the default search provider and use that in the hint
// text.
TemplateURLService* template_url_service =
void OmniboxView::ShowURL() {
SetFocus();
+ controller_->GetToolbarModel()->set_origin_chip_enabled(false);
controller_->GetToolbarModel()->set_url_replacement_enabled(false);
model_->UpdatePermanentText();
RevertWithoutResettingSearchTermReplacement();
SelectAll(true);
}
+void OmniboxView::HideURL() {
+ controller_->GetToolbarModel()->set_origin_chip_enabled(true);
+ controller_->GetToolbarModel()->set_url_replacement_enabled(true);
+ model_->UpdatePermanentText();
+ RevertWithoutResettingSearchTermReplacement();
+}
+
void OmniboxView::RevertAll() {
+ controller_->GetToolbarModel()->set_origin_chip_enabled(true);
controller_->GetToolbarModel()->set_url_replacement_enabled(true);
RevertWithoutResettingSearchTermReplacement();
}
return false;
}
+void OmniboxView::OnMatchOpened(const AutocompleteMatch& match,
+ content::WebContents* web_contents) {
+}
+
OmniboxView::OmniboxView(Profile* profile,
OmniboxEditController* controller,
CommandUpdater* command_updater)