| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "ios/web/navigation/navigation_item_impl.h" | 5 #include "ios/web/navigation/navigation_item_impl.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "net/base/net_util.h" | 9 #include "net/base/net_util.h" |
| 10 #include "ui/base/page_transition_types.h" | 10 #include "ui/base/page_transition_types.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 namespace web { | 24 namespace web { |
| 25 | 25 |
| 26 // static | 26 // static |
| 27 scoped_ptr<NavigationItem> NavigationItem::Create() { | 27 scoped_ptr<NavigationItem> NavigationItem::Create() { |
| 28 return scoped_ptr<NavigationItem>(new NavigationItemImpl()); | 28 return scoped_ptr<NavigationItem>(new NavigationItemImpl()); |
| 29 } | 29 } |
| 30 | 30 |
| 31 NavigationItemImpl::NavigationItemImpl() | 31 NavigationItemImpl::NavigationItemImpl() |
| 32 : unique_id_(GetUniqueIDInConstructor()), | 32 : unique_id_(GetUniqueIDInConstructor()), |
| 33 page_id_(-1), | 33 page_id_(-1), |
| 34 transition_type_(ui::PAGE_TRANSITION_LINK) { | 34 transition_type_(ui::PAGE_TRANSITION_LINK), |
| 35 is_renderer_initiated_(false), |
| 36 is_unsafe_(false), |
| 37 facade_delegate_(nullptr) { |
| 35 } | 38 } |
| 36 | 39 |
| 37 NavigationItemImpl::~NavigationItemImpl() { | 40 NavigationItemImpl::~NavigationItemImpl() { |
| 38 } | 41 } |
| 39 | 42 |
| 43 NavigationItemImpl::NavigationItemImpl(const NavigationItemImpl& item) |
| 44 : unique_id_(item.unique_id_), |
| 45 url_(item.url_), |
| 46 referrer_(item.referrer_), |
| 47 virtual_url_(item.virtual_url_), |
| 48 title_(item.title_), |
| 49 page_id_(item.page_id_), |
| 50 page_scroll_state_(item.page_scroll_state_), |
| 51 transition_type_(item.transition_type_), |
| 52 favicon_(item.favicon_), |
| 53 ssl_(item.ssl_), |
| 54 timestamp_(item.timestamp_), |
| 55 is_renderer_initiated_(item.is_renderer_initiated_), |
| 56 is_unsafe_(item.is_unsafe_), |
| 57 cached_display_title_(item.cached_display_title_), |
| 58 facade_delegate_(nullptr) { |
| 59 } |
| 60 |
| 61 void NavigationItemImpl::SetFacadeDelegate( |
| 62 scoped_ptr<NavigationItemFacadeDelegate> facade_delegate) { |
| 63 facade_delegate_ = facade_delegate.Pass(); |
| 64 } |
| 65 |
| 66 NavigationItemFacadeDelegate* NavigationItemImpl::GetFacadeDelegate() const { |
| 67 return facade_delegate_.get(); |
| 68 } |
| 69 |
| 40 int NavigationItemImpl::GetUniqueID() const { | 70 int NavigationItemImpl::GetUniqueID() const { |
| 41 return unique_id_; | 71 return unique_id_; |
| 42 } | 72 } |
| 43 | 73 |
| 44 void NavigationItemImpl::SetURL(const GURL& url) { | 74 void NavigationItemImpl::SetURL(const GURL& url) { |
| 45 url_ = url; | 75 url_ = url; |
| 46 cached_display_title_.clear(); | 76 cached_display_title_.clear(); |
| 47 } | 77 } |
| 48 | 78 |
| 49 const GURL& NavigationItemImpl::GetURL() const { | 79 const GURL& NavigationItemImpl::GetURL() const { |
| (...skipping 27 matching lines...) Expand all Loading... |
| 77 } | 107 } |
| 78 | 108 |
| 79 void NavigationItemImpl::SetPageID(int page_id) { | 109 void NavigationItemImpl::SetPageID(int page_id) { |
| 80 page_id_ = page_id; | 110 page_id_ = page_id; |
| 81 } | 111 } |
| 82 | 112 |
| 83 int32 NavigationItemImpl::GetPageID() const { | 113 int32 NavigationItemImpl::GetPageID() const { |
| 84 return page_id_; | 114 return page_id_; |
| 85 } | 115 } |
| 86 | 116 |
| 117 void NavigationItemImpl::SetPageScrollState( |
| 118 const web::PageScrollState& scroll_state) { |
| 119 page_scroll_state_ = scroll_state; |
| 120 } |
| 121 |
| 122 const PageScrollState& NavigationItemImpl::GetPageScrollState() const { |
| 123 return page_scroll_state_; |
| 124 } |
| 125 |
| 87 const base::string16& NavigationItemImpl::GetTitleForDisplay( | 126 const base::string16& NavigationItemImpl::GetTitleForDisplay( |
| 88 const std::string& languages) const { | 127 const std::string& languages) const { |
| 89 // Most pages have real titles. Don't even bother caching anything if this is | 128 // Most pages have real titles. Don't even bother caching anything if this is |
| 90 // the case. | 129 // the case. |
| 91 if (!title_.empty()) | 130 if (!title_.empty()) |
| 92 return title_; | 131 return title_; |
| 93 | 132 |
| 94 // More complicated cases will use the URLs as the title. This result we will | 133 // More complicated cases will use the URLs as the title. This result we will |
| 95 // cache since it's more complicated to compute. | 134 // cache since it's more complicated to compute. |
| 96 if (!cached_display_title_.empty()) | 135 if (!cached_display_title_.empty()) |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 141 } | 180 } |
| 142 | 181 |
| 143 void NavigationItemImpl::SetTimestamp(base::Time timestamp) { | 182 void NavigationItemImpl::SetTimestamp(base::Time timestamp) { |
| 144 timestamp_ = timestamp; | 183 timestamp_ = timestamp; |
| 145 } | 184 } |
| 146 | 185 |
| 147 base::Time NavigationItemImpl::GetTimestamp() const { | 186 base::Time NavigationItemImpl::GetTimestamp() const { |
| 148 return timestamp_; | 187 return timestamp_; |
| 149 } | 188 } |
| 150 | 189 |
| 190 void NavigationItemImpl::ResetForCommit() { |
| 191 // Any state that only matters when a navigation item is pending should be |
| 192 // cleared here. |
| 193 set_is_renderer_initiated(false); |
| 194 } |
| 195 |
| 196 void NavigationItemImpl::SetUnsafe(bool is_unsafe) { |
| 197 is_unsafe_ = is_unsafe; |
| 198 } |
| 199 |
| 200 bool NavigationItemImpl::IsUnsafe() const { |
| 201 return is_unsafe_; |
| 202 } |
| 203 |
| 151 } // namespace web | 204 } // namespace web |
| OLD | NEW |