Chromium Code Reviews| Index: chrome/browser/ui/omnibox/omnibox_view.cc |
| diff --git a/chrome/browser/ui/omnibox/omnibox_view.cc b/chrome/browser/ui/omnibox/omnibox_view.cc |
| index a7ead88ae454aec011e2e2f6da1929650fffe828..a1f6d7f496d0a67d0241bebd8b49f3da7e99040d 100644 |
| --- a/chrome/browser/ui/omnibox/omnibox_view.cc |
| +++ b/chrome/browser/ui/omnibox/omnibox_view.cc |
| @@ -10,9 +10,11 @@ |
| #include "base/string_util.h" |
| #include "base/string16.h" |
| #include "base/utf_string_conversions.h" |
| +#include "chrome/browser/autocomplete/autocomplete_match.h" |
| #include "chrome/browser/browser_process.h" |
| #include "ui/base/clipboard/clipboard.h" |
| +// static |
| string16 OmniboxView::StripJavascriptSchemas(const string16& text) { |
| const string16 kJsPrefix(ASCIIToUTF16(chrome::kJavaScriptScheme) + |
| ASCIIToUTF16(":")); |
| @@ -66,3 +68,80 @@ string16 OmniboxView::GetClipboardText() { |
| return string16(); |
| } |
| + |
| +OmniboxView::~OmniboxView() { |
| +} |
| + |
| +void OmniboxView::OpenMatch(const AutocompleteMatch& match, |
| + WindowOpenDisposition disposition, |
| + const GURL& alternate_nav_url, |
| + size_t selected_line) { |
| + // Invalid URLs such as chrome://history can end up here. |
|
Peter Kasting
2012/08/07 02:47:05
Oh? I thought this didn't happen? Did you find a
dominich
2012/08/07 17:48:20
Yes - typing chrome://history :)
|
| + if (!match.destination_url.is_valid()) |
| + return; |
| + // |model_| can be NULL in tests. |
|
Peter Kasting
2012/08/07 02:47:05
Nit: Instead of putting these comments in every fu
dominich
2012/08/07 17:48:20
Done.
|
| + if (model_.get()) |
| + model_->OpenMatch(match, disposition, alternate_nav_url, selected_line); |
| +} |
| + |
| +bool OmniboxView::IsEditingOrEmpty() const { |
| + // |model_| can be NULL in tests. |
| + return (model_.get() && model_->user_input_in_progress()) || |
| + (GetOmniboxTextLength() == 0); |
| +} |
| + |
| +int OmniboxView::GetIcon() const { |
| + // |model_| can be NULL in tests. |
| + return IsEditingOrEmpty() ? |
|
Peter Kasting
2012/08/07 02:47:05
Nit: Don't nest ?:s
dominich
2012/08/07 17:48:20
Done.
|
| + AutocompleteMatch::TypeToIcon(model_.get() ? |
| + model_->CurrentTextType() : AutocompleteMatch::URL_WHAT_YOU_TYPED) : |
| + toolbar_model_->GetIcon(); |
| +} |
| + |
| +void OmniboxView::SetUserText(const string16& text) { |
| + SetUserText(text, text, true); |
| +} |
| + |
| +void OmniboxView::SetUserText(const string16& text, |
| + const string16& display_text, |
| + bool update_popup) { |
| + // |model_| can be NULL in tests. |
| + if (model_.get()) |
| + model_->SetUserText(text); |
| + // TODO(deanm): something about selection / focus change here. |
|
Peter Kasting
2012/08/07 02:47:05
Nit: I thought you were going to kill this comment
dominich
2012/08/07 17:48:20
Done.
|
| + SetWindowTextAndCaretPos(display_text, display_text.length(), update_popup, |
| + true); |
| +} |
| + |
| +void OmniboxView::RevertAll() { |
| + CloseAutocompletePopup(); |
| + // |model_| can be NULL in tests. |
| + if (model_.get()) |
| + model_->Revert(); |
| + TextChanged(); |
| +} |
| + |
| +void OmniboxView::CloseAutocompletePopup() { |
| + // |model_| can be NULL in tests. |
| + if (model_.get()) |
| + model_->StopAutocomplete(); |
| +} |
| + |
| +OmniboxView::OmniboxView(Profile* profile, |
| + OmniboxEditController* controller, |
| + ToolbarModel* toolbar_model, |
| + CommandUpdater* command_updater) |
| + : controller_(controller), |
| + toolbar_model_(toolbar_model), |
| + command_updater_(command_updater) { |
| + // |profile| can be NULL in tests. |
| + if (profile) |
| + model_.reset(new OmniboxEditModel(this, controller, profile)); |
| +} |
| + |
| +void OmniboxView::TextChanged() { |
| + EmphasizeURLComponents(); |
| + // |model_| can be NULL in tests. |
| + if (model_.get()) |
| + model_->OnChanged(); |
| +} |