OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 CONTENT_BROWSER_FRAME_HOST_NAVIGATION_CONTROLLER_IMPL_H_ | 5 #ifndef CONTENT_BROWSER_FRAME_HOST_NAVIGATION_CONTROLLER_IMPL_H_ |
6 #define CONTENT_BROWSER_FRAME_HOST_NAVIGATION_CONTROLLER_IMPL_H_ | 6 #define CONTENT_BROWSER_FRAME_HOST_NAVIGATION_CONTROLLER_IMPL_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 | 200 |
201 // Sets the screenshot manager for this NavigationControllerImpl. Setting a | 201 // Sets the screenshot manager for this NavigationControllerImpl. Setting a |
202 // NULL manager recreates the default screenshot manager and uses that. | 202 // NULL manager recreates the default screenshot manager and uses that. |
203 void SetScreenshotManager( | 203 void SetScreenshotManager( |
204 std::unique_ptr<NavigationEntryScreenshotManager> manager); | 204 std::unique_ptr<NavigationEntryScreenshotManager> manager); |
205 | 205 |
206 // Discards only the pending entry. |was_failure| should be set if the pending | 206 // Discards only the pending entry. |was_failure| should be set if the pending |
207 // entry is being discarded because it failed to load. | 207 // entry is being discarded because it failed to load. |
208 void DiscardPendingEntry(bool was_failure); | 208 void DiscardPendingEntry(bool was_failure); |
209 | 209 |
| 210 // Sets a flag on the pending NavigationEntryImpl instance if any that the |
| 211 // navigation failed due to an SSL error. |
| 212 void SetPendingNavigationSSLError(bool error); |
| 213 |
210 private: | 214 private: |
211 friend class RestoreHelper; | 215 friend class RestoreHelper; |
212 | 216 |
213 FRIEND_TEST_ALL_PREFIXES(NavigationControllerTest, | 217 FRIEND_TEST_ALL_PREFIXES(NavigationControllerTest, |
214 PurgeScreenshot); | 218 PurgeScreenshot); |
215 FRIEND_TEST_ALL_PREFIXES(TimeSmoother, Basic); | 219 FRIEND_TEST_ALL_PREFIXES(TimeSmoother, Basic); |
216 FRIEND_TEST_ALL_PREFIXES(TimeSmoother, SingleDuplicate); | 220 FRIEND_TEST_ALL_PREFIXES(TimeSmoother, SingleDuplicate); |
217 FRIEND_TEST_ALL_PREFIXES(TimeSmoother, ManyDuplicates); | 221 FRIEND_TEST_ALL_PREFIXES(TimeSmoother, ManyDuplicates); |
218 FRIEND_TEST_ALL_PREFIXES(TimeSmoother, ClockBackwardsJump); | 222 FRIEND_TEST_ALL_PREFIXES(TimeSmoother, ClockBackwardsJump); |
219 | 223 |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 | 365 |
362 // An entry we haven't gotten a response for yet. This will be discarded | 366 // An entry we haven't gotten a response for yet. This will be discarded |
363 // when we navigate again. It's used only so we know what the currently | 367 // when we navigate again. It's used only so we know what the currently |
364 // displayed tab is. | 368 // displayed tab is. |
365 // | 369 // |
366 // This may refer to an item in the entries_ list if the pending_entry_index_ | 370 // This may refer to an item in the entries_ list if the pending_entry_index_ |
367 // == -1, or it may be its own entry that should be deleted. Be careful with | 371 // == -1, or it may be its own entry that should be deleted. Be careful with |
368 // the memory management. | 372 // the memory management. |
369 NavigationEntryImpl* pending_entry_; | 373 NavigationEntryImpl* pending_entry_; |
370 | 374 |
| 375 // Navigations could occur in succession. This field holds the last pending |
| 376 // entry for which we haven't received a response yet. |
| 377 NavigationEntryImpl* last_pending_entry_; |
| 378 |
371 // If a new entry fails loading, details about it are temporarily held here | 379 // If a new entry fails loading, details about it are temporarily held here |
372 // until the error page is shown (or 0 otherwise). | 380 // until the error page is shown (or 0 otherwise). |
373 // | 381 // |
374 // TODO(avi): We need a better way to handle the connection between failed | 382 // TODO(avi): We need a better way to handle the connection between failed |
375 // loads and the subsequent load of the error page. This current approach has | 383 // loads and the subsequent load of the error page. This current approach has |
376 // issues: 1. This might hang around longer than we'd like if there is no | 384 // issues: 1. This might hang around longer than we'd like if there is no |
377 // error page loaded, and 2. This doesn't work very well for frames. | 385 // error page loaded, and 2. This doesn't work very well for frames. |
378 // http://crbug.com/474261 | 386 // http://crbug.com/474261 |
379 int failed_pending_entry_id_; | 387 int failed_pending_entry_id_; |
380 | 388 |
381 // The index of the currently visible entry. | 389 // The index of the currently visible entry. |
382 int last_committed_entry_index_; | 390 int last_committed_entry_index_; |
383 | 391 |
384 // The index of the pending entry if it is in entries_, or -1 if | 392 // The index of the pending entry if it is in entries_, or -1 if |
385 // pending_entry_ is a new entry (created by LoadURL). | 393 // pending_entry_ is a new entry (created by LoadURL). |
386 int pending_entry_index_; | 394 int pending_entry_index_; |
387 | 395 |
388 // The index for the entry that is shown until a navigation occurs. This is | 396 // The index for the entry that is shown until a navigation occurs. This is |
389 // used for interstitial pages. -1 if there are no such entry. | 397 // used for interstitial pages. -1 if there are no such entry. |
390 // Note that this entry really appears in the list of entries, but only | 398 // Note that this entry really appears in the list of entries, but only |
391 // temporarily (until the next navigation). Any index pointing to an entry | 399 // temporarily (until the next navigation). Any index pointing to an entry |
392 // after the transient entry will become invalid if you navigate forward. | 400 // after the transient entry will become invalid if you navigate forward. |
393 int transient_entry_index_; | 401 int transient_entry_index_; |
394 | 402 |
| 403 // The index of the last pending entry if it is in entries, or -1 if it was |
| 404 // created by LoadURL. |
| 405 int last_pending_entry_index_; |
| 406 |
| 407 // The index of the last transient entry. Defaults to -1. |
| 408 int last_transient_entry_index_; |
| 409 |
395 // The delegate associated with the controller. Possibly NULL during | 410 // The delegate associated with the controller. Possibly NULL during |
396 // setup. | 411 // setup. |
397 NavigationControllerDelegate* delegate_; | 412 NavigationControllerDelegate* delegate_; |
398 | 413 |
399 // Manages the SSL security UI. | 414 // Manages the SSL security UI. |
400 SSLManager ssl_manager_; | 415 SSLManager ssl_manager_; |
401 | 416 |
402 // Whether we need to be reloaded when made active. | 417 // Whether we need to be reloaded when made active. |
403 bool needs_reload_; | 418 bool needs_reload_; |
404 | 419 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
443 // these are ReloadType::NONE and a null timestamp, respectively. | 458 // these are ReloadType::NONE and a null timestamp, respectively. |
444 ReloadType last_committed_reload_type_; | 459 ReloadType last_committed_reload_type_; |
445 base::Time last_committed_reload_time_; | 460 base::Time last_committed_reload_time_; |
446 | 461 |
447 DISALLOW_COPY_AND_ASSIGN(NavigationControllerImpl); | 462 DISALLOW_COPY_AND_ASSIGN(NavigationControllerImpl); |
448 }; | 463 }; |
449 | 464 |
450 } // namespace content | 465 } // namespace content |
451 | 466 |
452 #endif // CONTENT_BROWSER_FRAME_HOST_NAVIGATION_CONTROLLER_IMPL_H_ | 467 #endif // CONTENT_BROWSER_FRAME_HOST_NAVIGATION_CONTROLLER_IMPL_H_ |
OLD | NEW |