| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/instant/instant_loader.h" | 5 #include "chrome/browser/instant/instant_loader.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 #include <vector> | 10 #include <vector> |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 web_contents_->GetController().GetActiveEntry(); | 159 web_contents_->GetController().GetActiveEntry(); |
| 160 if (!active_entry || active_entry->GetPageID() != page_id || | 160 if (!active_entry || active_entry->GetPageID() != page_id || |
| 161 active_entry->GetUniqueID() != unique_id_) { | 161 active_entry->GetUniqueID() != unique_id_) { |
| 162 return; | 162 return; |
| 163 } | 163 } |
| 164 loader_->SendBoundsToPage(true); | 164 loader_->SendBoundsToPage(true); |
| 165 // TODO: support real cursor position. | 165 // TODO: support real cursor position. |
| 166 int text_length = static_cast<int>(text_.size()); | 166 int text_length = static_cast<int>(text_.size()); |
| 167 RenderViewHost* host = web_contents_->GetRenderViewHost(); | 167 RenderViewHost* host = web_contents_->GetRenderViewHost(); |
| 168 host->Send(new ChromeViewMsg_DetermineIfPageSupportsInstant( | 168 host->Send(new ChromeViewMsg_DetermineIfPageSupportsInstant( |
| 169 host->routing_id(), text_, verbatim_, text_length, text_length)); | 169 host->GetRoutingID(), text_, verbatim_, text_length, text_length)); |
| 170 break; | 170 break; |
| 171 } | 171 } |
| 172 default: | 172 default: |
| 173 NOTREACHED(); | 173 NOTREACHED(); |
| 174 break; | 174 break; |
| 175 } | 175 } |
| 176 } | 176 } |
| 177 | 177 |
| 178 // TabContentsDelegateImpl ----------------------------------------------------- | 178 // TabContentsDelegateImpl ----------------------------------------------------- |
| 179 | 179 |
| (...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 frame_load_observer_->set_text(user_text_); | 682 frame_load_observer_->set_text(user_text_); |
| 683 frame_load_observer_->set_verbatim(verbatim); | 683 frame_load_observer_->set_verbatim(verbatim); |
| 684 preview_tab_contents_delegate_->set_user_typed_before_load(); | 684 preview_tab_contents_delegate_->set_user_typed_before_load(); |
| 685 return true; | 685 return true; |
| 686 } | 686 } |
| 687 // TODO: support real cursor position. | 687 // TODO: support real cursor position. |
| 688 int text_length = static_cast<int>(user_text_.size()); | 688 int text_length = static_cast<int>(user_text_.size()); |
| 689 RenderViewHost* host = | 689 RenderViewHost* host = |
| 690 preview_contents_->web_contents()->GetRenderViewHost(); | 690 preview_contents_->web_contents()->GetRenderViewHost(); |
| 691 host->Send(new ChromeViewMsg_SearchBoxChange( | 691 host->Send(new ChromeViewMsg_SearchBoxChange( |
| 692 host->routing_id(), user_text_, verbatim, text_length, text_length)); | 692 host->GetRoutingID(), |
| 693 user_text_, |
| 694 verbatim, |
| 695 text_length, |
| 696 text_length)); |
| 693 | 697 |
| 694 string16 complete_suggested_text_lower = base::i18n::ToLower( | 698 string16 complete_suggested_text_lower = base::i18n::ToLower( |
| 695 complete_suggested_text_); | 699 complete_suggested_text_); |
| 696 string16 user_text_lower = base::i18n::ToLower(user_text_); | 700 string16 user_text_lower = base::i18n::ToLower(user_text_); |
| 697 if (!verbatim && | 701 if (!verbatim && |
| 698 complete_suggested_text_lower.size() > user_text_lower.size() && | 702 complete_suggested_text_lower.size() > user_text_lower.size() && |
| 699 !complete_suggested_text_lower.compare(0, user_text_lower.size(), | 703 !complete_suggested_text_lower.compare(0, user_text_lower.size(), |
| 700 user_text_lower)) { | 704 user_text_lower)) { |
| 701 *suggested_text = last_suggestion_ = | 705 *suggested_text = last_suggestion_ = |
| 702 complete_suggested_text_.substr(user_text_.size()); | 706 complete_suggested_text_.substr(user_text_.size()); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 753 return NULL; | 757 return NULL; |
| 754 | 758 |
| 755 // FrameLoadObserver is only used for instant results, and instant results are | 759 // FrameLoadObserver is only used for instant results, and instant results are |
| 756 // only committed if active (when the FrameLoadObserver isn't installed). | 760 // only committed if active (when the FrameLoadObserver isn't installed). |
| 757 DCHECK(type == INSTANT_COMMIT_DESTROY || !frame_load_observer_.get()); | 761 DCHECK(type == INSTANT_COMMIT_DESTROY || !frame_load_observer_.get()); |
| 758 | 762 |
| 759 if (type != INSTANT_COMMIT_DESTROY && is_showing_instant()) { | 763 if (type != INSTANT_COMMIT_DESTROY && is_showing_instant()) { |
| 760 RenderViewHost* host = | 764 RenderViewHost* host = |
| 761 preview_contents_->web_contents()->GetRenderViewHost(); | 765 preview_contents_->web_contents()->GetRenderViewHost(); |
| 762 if (type == INSTANT_COMMIT_FOCUS_LOST) { | 766 if (type == INSTANT_COMMIT_FOCUS_LOST) { |
| 763 host->Send(new ChromeViewMsg_SearchBoxCancel(host->routing_id())); | 767 host->Send(new ChromeViewMsg_SearchBoxCancel(host->GetRoutingID())); |
| 764 } else { | 768 } else { |
| 765 host->Send(new ChromeViewMsg_SearchBoxSubmit( | 769 host->Send(new ChromeViewMsg_SearchBoxSubmit( |
| 766 host->routing_id(), user_text_, | 770 host->GetRoutingID(), user_text_, |
| 767 type == INSTANT_COMMIT_PRESSED_ENTER)); | 771 type == INSTANT_COMMIT_PRESSED_ENTER)); |
| 768 } | 772 } |
| 769 } | 773 } |
| 770 omnibox_bounds_ = gfx::Rect(); | 774 omnibox_bounds_ = gfx::Rect(); |
| 771 last_omnibox_bounds_ = gfx::Rect(); | 775 last_omnibox_bounds_ = gfx::Rect(); |
| 772 GURL url; | 776 GURL url; |
| 773 url.Swap(&url_); | 777 url.Swap(&url_); |
| 774 user_text_.clear(); | 778 user_text_.clear(); |
| 775 complete_suggested_text_.clear(); | 779 complete_suggested_text_.clear(); |
| 776 if (preview_contents_.get()) { | 780 if (preview_contents_.get()) { |
| (...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 991 void InstantLoader::SendBoundsToPage(bool force_if_waiting) { | 995 void InstantLoader::SendBoundsToPage(bool force_if_waiting) { |
| 992 if (last_omnibox_bounds_ == omnibox_bounds_) | 996 if (last_omnibox_bounds_ == omnibox_bounds_) |
| 993 return; | 997 return; |
| 994 | 998 |
| 995 if (preview_contents_.get() && is_showing_instant() && | 999 if (preview_contents_.get() && is_showing_instant() && |
| 996 (force_if_waiting || !is_determining_if_page_supports_instant())) { | 1000 (force_if_waiting || !is_determining_if_page_supports_instant())) { |
| 997 last_omnibox_bounds_ = omnibox_bounds_; | 1001 last_omnibox_bounds_ = omnibox_bounds_; |
| 998 RenderViewHost* host = | 1002 RenderViewHost* host = |
| 999 preview_contents_->web_contents()->GetRenderViewHost(); | 1003 preview_contents_->web_contents()->GetRenderViewHost(); |
| 1000 host->Send(new ChromeViewMsg_SearchBoxResize( | 1004 host->Send(new ChromeViewMsg_SearchBoxResize( |
| 1001 host->routing_id(), GetOmniboxBoundsInTermsOfPreview())); | 1005 host->GetRoutingID(), GetOmniboxBoundsInTermsOfPreview())); |
| 1002 } | 1006 } |
| 1003 } | 1007 } |
| 1004 | 1008 |
| 1005 void InstantLoader::ReplacePreviewContents(TabContentsWrapper* old_tc, | 1009 void InstantLoader::ReplacePreviewContents(TabContentsWrapper* old_tc, |
| 1006 TabContentsWrapper* new_tc) { | 1010 TabContentsWrapper* new_tc) { |
| 1007 DCHECK(old_tc == preview_contents_); | 1011 DCHECK(old_tc == preview_contents_); |
| 1008 // We release here without deleting so that the caller still has reponsibility | 1012 // We release here without deleting so that the caller still has reponsibility |
| 1009 // for deleting the TabContentsWrapper. | 1013 // for deleting the TabContentsWrapper. |
| 1010 ignore_result(preview_contents_.release()); | 1014 ignore_result(preview_contents_.release()); |
| 1011 preview_contents_.reset(new_tc); | 1015 preview_contents_.reset(new_tc); |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1113 preview_contents_->web_contents()->HideContents(); | 1117 preview_contents_->web_contents()->HideContents(); |
| 1114 | 1118 |
| 1115 // If user_text is empty, this must be a preload of the search homepage. In | 1119 // If user_text is empty, this must be a preload of the search homepage. In |
| 1116 // that case, send down a SearchBoxResize message, which will switch the page | 1120 // that case, send down a SearchBoxResize message, which will switch the page |
| 1117 // to "search results" UI. This avoids flicker when the page is shown with | 1121 // to "search results" UI. This avoids flicker when the page is shown with |
| 1118 // results. In addition, we don't want the page accidentally causing the | 1122 // results. In addition, we don't want the page accidentally causing the |
| 1119 // preloaded page to be displayed yet (by calling setSuggestions), so don't | 1123 // preloaded page to be displayed yet (by calling setSuggestions), so don't |
| 1120 // send a SearchBoxChange message. | 1124 // send a SearchBoxChange message. |
| 1121 if (user_text.empty()) { | 1125 if (user_text.empty()) { |
| 1122 host->Send(new ChromeViewMsg_SearchBoxResize( | 1126 host->Send(new ChromeViewMsg_SearchBoxResize( |
| 1123 host->routing_id(), GetOmniboxBoundsInTermsOfPreview())); | 1127 host->GetRoutingID(), GetOmniboxBoundsInTermsOfPreview())); |
| 1124 } else { | 1128 } else { |
| 1125 host->Send(new ChromeViewMsg_SearchBoxChange( | 1129 host->Send(new ChromeViewMsg_SearchBoxChange( |
| 1126 host->routing_id(), user_text, verbatim, 0, 0)); | 1130 host->GetRoutingID(), user_text, verbatim, 0, 0)); |
| 1127 } | 1131 } |
| 1128 | 1132 |
| 1129 frame_load_observer_.reset(new FrameLoadObserver( | 1133 frame_load_observer_.reset(new FrameLoadObserver( |
| 1130 this, preview_contents()->web_contents(), user_text, verbatim)); | 1134 this, preview_contents()->web_contents(), user_text, verbatim)); |
| 1131 } | 1135 } |
| OLD | NEW |