OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 #ifndef CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_ | 5 #ifndef CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_ |
6 #define CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_ | 6 #define CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <set> | 9 #include <set> |
10 #include <string> | 10 #include <string> |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 const AutocompleteMatch& match, | 81 const AutocompleteMatch& match, |
82 const string16& user_text, | 82 const string16& user_text, |
83 bool verbatim, | 83 bool verbatim, |
84 string16* suggested_text); | 84 string16* suggested_text); |
85 | 85 |
86 // Sets the bounds of the omnibox (in screen coordinates). The bounds are | 86 // Sets the bounds of the omnibox (in screen coordinates). The bounds are |
87 // remembered until the preview is committed or destroyed. This is only used | 87 // remembered until the preview is committed or destroyed. This is only used |
88 // when showing results for a search provider that supports instant. | 88 // when showing results for a search provider that supports instant. |
89 void SetOmniboxBounds(const gfx::Rect& bounds); | 89 void SetOmniboxBounds(const gfx::Rect& bounds); |
90 | 90 |
91 // Destroys the preview TabContents. Does nothing if the preview TabContents | 91 // Notifies the delegate to hide the preview and destroys the preview |
92 // has not been created. | 92 // TabContents. Does nothing if the preview TabContents has not been created. |
93 void DestroyPreviewContents(); | 93 void DestroyPreviewContents(); |
94 | 94 |
95 // Destroys the current loaders but remains active. | 95 // Notifies the delegate to hide the preview but leaves it around in hopes it |
96 void DestroyPreviewContentsAndLeaveActive(); | 96 // can be subsequently used. The preview will not be used until Update() (with |
| 97 // valid parameters) is invoked. |
| 98 void Hide(); |
97 | 99 |
98 // Returns true if we're showing the last URL passed to |Update|. If this is | 100 // Returns true if we're showing the last URL passed to |Update|. If this is |
99 // false a commit does not result in committing the last url passed to update. | 101 // false a commit does not result in committing the last url passed to update. |
100 // A return value of false happens if we're in the process of determining if | 102 // A return value of false happens if we're in the process of determining if |
101 // the page supports instant. | 103 // the page supports instant. |
102 bool IsCurrent(); | 104 bool IsCurrent(); |
103 | 105 |
104 // Returns true if the caller should proceed with committing the preview. A | 106 // Returns true if the caller should proceed with committing the preview. A |
105 // return value of false means that there is no valid preview to commit. This | 107 // return value of false means that there is no valid preview to commit. This |
106 // is used by Browser, when the user presses <Enter>, to decide whether to | 108 // is used by Browser, when the user presses <Enter>, to decide whether to |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 // Does cleanup after the preview contents has been added to the tabstrip. | 144 // Does cleanup after the preview contents has been added to the tabstrip. |
143 // Invoke this if you explicitly invoke ReleasePreviewContents. | 145 // Invoke this if you explicitly invoke ReleasePreviewContents. |
144 void CompleteRelease(TabContentsWrapper* tab); | 146 void CompleteRelease(TabContentsWrapper* tab); |
145 | 147 |
146 // TabContents the match is being shown for. | 148 // TabContents the match is being shown for. |
147 TabContentsWrapper* tab_contents() const { return tab_contents_; } | 149 TabContentsWrapper* tab_contents() const { return tab_contents_; } |
148 | 150 |
149 // The preview TabContents; may be null. | 151 // The preview TabContents; may be null. |
150 TabContentsWrapper* GetPreviewContents(); | 152 TabContentsWrapper* GetPreviewContents(); |
151 | 153 |
152 // Returns true if |Update| has been invoked without a corresponding call to | |
153 // |DestroyPreviewContents| or |CommitCurrentPreview|. | |
154 bool is_active() const { return is_active_; } | |
155 | |
156 // Returns true if the preview TabContents is ready to be displayed. In some | 154 // Returns true if the preview TabContents is ready to be displayed. In some |
157 // situations this may return false yet GetPreviewContents() returns non-NULL. | 155 // situations this may return false yet GetPreviewContents() returns non-NULL. |
158 bool is_displayable() const { return is_displayable_; } | 156 bool is_displayable() const { return is_displayable_; } |
159 | 157 |
160 // Returns the transition type of the last AutocompleteMatch passed to Update. | 158 // Returns the transition type of the last AutocompleteMatch passed to Update. |
161 content::PageTransition last_transition_type() const { | 159 content::PageTransition last_transition_type() const { |
162 return last_transition_type_; | 160 return last_transition_type_; |
163 } | 161 } |
164 | 162 |
165 // InstantLoaderDelegate | 163 // InstantLoaderDelegate |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 void ScheduleDestroy(InstantLoader* loader); | 216 void ScheduleDestroy(InstantLoader* loader); |
219 | 217 |
220 // Destroys all loaders scheduled for destruction in |ScheduleForDestroy|. | 218 // Destroys all loaders scheduled for destruction in |ScheduleForDestroy|. |
221 void DestroyLoaders(); | 219 void DestroyLoaders(); |
222 | 220 |
223 InstantDelegate* delegate_; | 221 InstantDelegate* delegate_; |
224 | 222 |
225 // The TabContents last passed to |Update|. | 223 // The TabContents last passed to |Update|. |
226 TabContentsWrapper* tab_contents_; | 224 TabContentsWrapper* tab_contents_; |
227 | 225 |
228 // See description above getter for details. | |
229 bool is_active_; | |
230 | |
231 scoped_ptr<InstantLoader> loader_; | |
232 | |
233 // True if |loader_| is ready to be displayed. | 226 // True if |loader_| is ready to be displayed. |
234 bool is_displayable_; | 227 bool is_displayable_; |
235 | 228 |
| 229 // Set to true in Hide() and false in UpdateLoader(). Used when we persist |
| 230 // the |loader_|, but it isn't up to date. |
| 231 bool is_out_of_date_; |
| 232 |
| 233 scoped_ptr<InstantLoader> loader_; |
| 234 |
236 // See description above setter. | 235 // See description above setter. |
237 gfx::Rect omnibox_bounds_; | 236 gfx::Rect omnibox_bounds_; |
238 | 237 |
239 // See description above CommitOnMouseUp. | 238 // See description above CommitOnMouseUp. |
240 bool commit_on_mouse_up_; | 239 bool commit_on_mouse_up_; |
241 | 240 |
242 // See description above getter. | 241 // See description above getter. |
243 content::PageTransition last_transition_type_; | 242 content::PageTransition last_transition_type_; |
244 | 243 |
245 // The IDs of any search engines that don't support instant. We assume all | 244 // The IDs of any search engines that don't support instant. We assume all |
(...skipping 11 matching lines...) Expand all Loading... |
257 // The URL of the most recent match passed to |Update|. | 256 // The URL of the most recent match passed to |Update|. |
258 GURL last_url_; | 257 GURL last_url_; |
259 | 258 |
260 // The most recent user_text passed to |Update|. | 259 // The most recent user_text passed to |Update|. |
261 string16 last_user_text_; | 260 string16 last_user_text_; |
262 | 261 |
263 DISALLOW_COPY_AND_ASSIGN(InstantController); | 262 DISALLOW_COPY_AND_ASSIGN(InstantController); |
264 }; | 263 }; |
265 | 264 |
266 #endif // CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_ | 265 #endif // CHROME_BROWSER_INSTANT_INSTANT_CONTROLLER_H_ |
OLD | NEW |