| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 #ifndef IOS_WEB_NAVIGATION_CRW_SESSION_CONTROLLER_H_ | 5 #ifndef IOS_WEB_NAVIGATION_CRW_SESSION_CONTROLLER_H_ |
| 6 #define IOS_WEB_NAVIGATION_CRW_SESSION_CONTROLLER_H_ | 6 #define IOS_WEB_NAVIGATION_CRW_SESSION_CONTROLLER_H_ |
| 7 | 7 |
| 8 #import <Foundation/Foundation.h> | 8 #import <Foundation/Foundation.h> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #import "ios/web/navigation/navigation_item_impl_list.h" | 11 #include "ios/web/public/navigation_item_list.h" |
| 12 #include "ui/base/page_transition_types.h" | 12 #include "ui/base/page_transition_types.h" |
| 13 #include "url/gurl.h" | 13 #include "url/gurl.h" |
| 14 | 14 |
| 15 @class CRWSessionEntry; | 15 @class CRWSessionEntry; |
| 16 @class CRWSessionCertificatePolicyManager; | 16 @class CRWSessionCertificatePolicyManager; |
| 17 | 17 |
| 18 namespace web { | 18 namespace web { |
| 19 class BrowserState; | 19 class BrowserState; |
| 20 class NavigationItemImpl; | 20 class NavigationItemImpl; |
| 21 class NavigationManagerImpl; | 21 class NavigationManagerImpl; |
| (...skipping 17 matching lines...) Expand all Loading... |
| 39 @property(nonatomic, copy) NSString* windowName; | 39 @property(nonatomic, copy) NSString* windowName; |
| 40 // Indicates whether the page was opened by DOM (e.g. with |window.open| | 40 // Indicates whether the page was opened by DOM (e.g. with |window.open| |
| 41 // JavaScript call or by clicking a link with |_blank| target). | 41 // JavaScript call or by clicking a link with |_blank| target). |
| 42 @property(nonatomic, readonly, getter=isOpenedByDOM) BOOL openedByDOM; | 42 @property(nonatomic, readonly, getter=isOpenedByDOM) BOOL openedByDOM; |
| 43 @property(nonatomic, readonly, strong) | 43 @property(nonatomic, readonly, strong) |
| 44 CRWSessionCertificatePolicyManager* sessionCertificatePolicyManager; | 44 CRWSessionCertificatePolicyManager* sessionCertificatePolicyManager; |
| 45 @property(nonatomic, assign) NSTimeInterval lastVisitedTimestamp; | 45 @property(nonatomic, assign) NSTimeInterval lastVisitedTimestamp; |
| 46 @property(nonatomic, readonly, copy) NSString* openerId; | 46 @property(nonatomic, readonly, copy) NSString* openerId; |
| 47 @property(nonatomic, readonly, assign) NSInteger openerNavigationIndex; | 47 @property(nonatomic, readonly, assign) NSInteger openerNavigationIndex; |
| 48 | 48 |
| 49 // The ScopedNavigationItemImplList used to store the NavigationItemImpls for | 49 // The list of CRWSessionEntries in |_entries|'s NavigationItemImpls. |
| 50 // this session. | 50 @property(nonatomic, readonly) web::NavigationItemList items; |
| 51 @property(nonatomic, readonly) const web::ScopedNavigationItemImplList& items; | |
| 52 // The current NavigationItem. During a pending navigation, returns the | 51 // The current NavigationItem. During a pending navigation, returns the |
| 53 // NavigationItem for that navigation. If a transient NavigationItem exists, | 52 // NavigationItem for that navigation. If a transient NavigationItem exists, |
| 54 // this NavigationItem will be returned. | 53 // this NavigationItem will be returned. |
| 55 @property(nonatomic, readonly) web::NavigationItemImpl* currentItem; | 54 @property(nonatomic, readonly) web::NavigationItemImpl* currentItem; |
| 56 // Returns the NavigationItem whose URL should be displayed to the user. | 55 // Returns the NavigationItem whose URL should be displayed to the user. |
| 57 @property(nonatomic, readonly) web::NavigationItemImpl* visibleItem; | 56 @property(nonatomic, readonly) web::NavigationItemImpl* visibleItem; |
| 58 // Returns the NavigationItem corresponding to a load for which no data has yet | 57 // Returns the NavigationItem corresponding to a load for which no data has yet |
| 59 // been received. | 58 // been received. |
| 60 @property(nonatomic, readonly) web::NavigationItemImpl* pendingItem; | 59 @property(nonatomic, readonly) web::NavigationItemImpl* pendingItem; |
| 61 // Returns the NavigationItem corresponding with a transient navigation (i.e. | 60 // Returns the NavigationItem corresponding with a transient navigation (i.e. |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 transition:(ui::PageTransition)transition; | 129 transition:(ui::PageTransition)transition; |
| 131 | 130 |
| 132 // Updates the URL and state object for the current item. | 131 // Updates the URL and state object for the current item. |
| 133 - (void)updateCurrentItemWithURL:(const GURL&)url | 132 - (void)updateCurrentItemWithURL:(const GURL&)url |
| 134 stateObject:(NSString*)stateObject; | 133 stateObject:(NSString*)stateObject; |
| 135 | 134 |
| 136 // Removes the pending and transient NavigationItems. | 135 // Removes the pending and transient NavigationItems. |
| 137 - (void)discardNonCommittedItems; | 136 - (void)discardNonCommittedItems; |
| 138 | 137 |
| 139 // Inserts history state from |otherController| to the front of |items|. This | 138 // Inserts history state from |otherController| to the front of |items|. This |
| 140 // function will create copies of |otherController|'s NavigationItems. | 139 // function transfers ownership of |otherController|'s NavigationItems to the |
| 140 // receiver. |
| 141 - (void)insertStateFromSessionController:(CRWSessionController*)otherController; | 141 - (void)insertStateFromSessionController:(CRWSessionController*)otherController; |
| 142 | 142 |
| 143 // Sets |currentNavigationIndex_| to the |index| if it's in the entries bounds. | 143 // Sets |currentNavigationIndex_| to the |index| if it's in the entries bounds. |
| 144 - (void)goToItemAtIndex:(NSInteger)index; | 144 - (void)goToItemAtIndex:(NSInteger)index; |
| 145 | 145 |
| 146 // Removes the item at |index| after discarding any noncomitted entries. | 146 // Removes the item at |index| after discarding any noncomitted entries. |
| 147 // |index| must not be the index of the last committed item, or a noncomitted | 147 // |index| must not be the index of the last committed item, or a noncomitted |
| 148 // item. | 148 // item. |
| 149 - (void)removeItemAtIndex:(NSInteger)index; | 149 - (void)removeItemAtIndex:(NSInteger)index; |
| 150 | 150 |
| 151 // Determines whether a navigation between |firstEntry| and |secondEntry| is a | 151 // Determines whether a navigation between |firstEntry| and |secondEntry| is a |
| 152 // same-document navigation. Entries can be passed in any order. | 152 // same-document navigation. Entries can be passed in any order. |
| 153 - (BOOL)isSameDocumentNavigationBetweenItem:(web::NavigationItem*)firstItem | 153 - (BOOL)isSameDocumentNavigationBetweenItem:(web::NavigationItem*)firstItem |
| 154 andItem:(web::NavigationItem*)secondItem; | 154 andItem:(web::NavigationItem*)secondItem; |
| 155 | 155 |
| 156 // Set |useDesktopUserAgentForNextPendingItem_| to YES if there is no pending | 156 // Set |useDesktopUserAgentForNextPendingItem_| to YES if there is no pending |
| 157 // entry, otherwise set |useDesktopUserAgent| in the pending entry. | 157 // entry, otherwise set |useDesktopUserAgent| in the pending entry. |
| 158 - (void)useDesktopUserAgentForNextPendingItem; | 158 - (void)useDesktopUserAgentForNextPendingItem; |
| 159 | 159 |
| 160 // Returns the index of |item| in |items|. | 160 // Returns the index of |item| in |items|. |
| 161 - (NSInteger)indexOfItem:(web::NavigationItem*)item; | 161 - (NSInteger)indexOfItem:(web::NavigationItem*)item; |
| 162 | 162 |
| 163 @end | 163 @end |
| 164 | 164 |
| 165 #endif // IOS_WEB_NAVIGATION_CRW_SESSION_CONTROLLER_H_ | 165 #endif // IOS_WEB_NAVIGATION_CRW_SESSION_CONTROLLER_H_ |
| OLD | NEW |