| 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 #include "components/sessions/serialized_navigation_entry.h" | 5 #include "components/sessions/serialized_navigation_entry.h" |
| 6 | 6 |
| 7 #include "base/pickle.h" | 7 #include "base/pickle.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "content/public/browser/favicon_status.h" | 9 #include "content/public/browser/favicon_status.h" |
| 10 #include "content/public/browser/navigation_controller.h" | 10 #include "content/public/browser/navigation_controller.h" |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 SerializedNavigationEntry SerializedNavigationEntry::FromSyncData( | 62 SerializedNavigationEntry SerializedNavigationEntry::FromSyncData( |
| 63 int index, | 63 int index, |
| 64 const sync_pb::TabNavigation& sync_data) { | 64 const sync_pb::TabNavigation& sync_data) { |
| 65 SerializedNavigationEntry navigation; | 65 SerializedNavigationEntry navigation; |
| 66 navigation.index_ = index; | 66 navigation.index_ = index; |
| 67 navigation.unique_id_ = sync_data.unique_id(); | 67 navigation.unique_id_ = sync_data.unique_id(); |
| 68 navigation.referrer_ = | 68 navigation.referrer_ = |
| 69 content::Referrer(GURL(sync_data.referrer()), | 69 content::Referrer(GURL(sync_data.referrer()), |
| 70 blink::WebReferrerPolicyDefault); | 70 blink::WebReferrerPolicyDefault); |
| 71 navigation.virtual_url_ = GURL(sync_data.virtual_url()); | 71 navigation.virtual_url_ = GURL(sync_data.virtual_url()); |
| 72 navigation.title_ = UTF8ToUTF16(sync_data.title()); | 72 navigation.title_ = base::UTF8ToUTF16(sync_data.title()); |
| 73 navigation.page_state_ = | 73 navigation.page_state_ = |
| 74 content::PageState::CreateFromEncodedData(sync_data.state()); | 74 content::PageState::CreateFromEncodedData(sync_data.state()); |
| 75 | 75 |
| 76 uint32 transition = 0; | 76 uint32 transition = 0; |
| 77 if (sync_data.has_page_transition()) { | 77 if (sync_data.has_page_transition()) { |
| 78 switch (sync_data.page_transition()) { | 78 switch (sync_data.page_transition()) { |
| 79 case sync_pb::SyncEnums_PageTransition_LINK: | 79 case sync_pb::SyncEnums_PageTransition_LINK: |
| 80 transition = content::PAGE_TRANSITION_LINK; | 80 transition = content::PAGE_TRANSITION_LINK; |
| 81 break; | 81 break; |
| 82 case sync_pb::SyncEnums_PageTransition_TYPED: | 82 case sync_pb::SyncEnums_PageTransition_TYPED: |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 transition |= content::PAGE_TRANSITION_HOME_PAGE; | 134 transition |= content::PAGE_TRANSITION_HOME_PAGE; |
| 135 if (sync_data.navigation_chain_start()) | 135 if (sync_data.navigation_chain_start()) |
| 136 transition |= content::PAGE_TRANSITION_CHAIN_START; | 136 transition |= content::PAGE_TRANSITION_CHAIN_START; |
| 137 if (sync_data.navigation_chain_end()) | 137 if (sync_data.navigation_chain_end()) |
| 138 transition |= content::PAGE_TRANSITION_CHAIN_END; | 138 transition |= content::PAGE_TRANSITION_CHAIN_END; |
| 139 | 139 |
| 140 navigation.transition_type_ = | 140 navigation.transition_type_ = |
| 141 static_cast<content::PageTransition>(transition); | 141 static_cast<content::PageTransition>(transition); |
| 142 | 142 |
| 143 navigation.timestamp_ = base::Time(); | 143 navigation.timestamp_ = base::Time(); |
| 144 navigation.search_terms_ = UTF8ToUTF16(sync_data.search_terms()); | 144 navigation.search_terms_ = base::UTF8ToUTF16(sync_data.search_terms()); |
| 145 if (sync_data.has_favicon_url()) | 145 if (sync_data.has_favicon_url()) |
| 146 navigation.favicon_url_ = GURL(sync_data.favicon_url()); | 146 navigation.favicon_url_ = GURL(sync_data.favicon_url()); |
| 147 | 147 |
| 148 navigation.http_status_code_ = sync_data.http_status_code(); | 148 navigation.http_status_code_ = sync_data.http_status_code(); |
| 149 | 149 |
| 150 // We shouldn't sync session data for managed users down at the moment. | 150 // We shouldn't sync session data for managed users down at the moment. |
| 151 DCHECK(!sync_data.has_blocked_state()); | 151 DCHECK(!sync_data.has_blocked_state()); |
| 152 DCHECK_EQ(0, sync_data.content_pack_categories_size()); | 152 DCHECK_EQ(0, sync_data.content_pack_categories_size()); |
| 153 | 153 |
| 154 return navigation; | 154 return navigation; |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 return entry.Pass(); | 361 return entry.Pass(); |
| 362 } | 362 } |
| 363 | 363 |
| 364 // TODO(zea): perhaps sync state (scroll position, form entries, etc.) as well? | 364 // TODO(zea): perhaps sync state (scroll position, form entries, etc.) as well? |
| 365 // See http://crbug.com/67068. | 365 // See http://crbug.com/67068. |
| 366 sync_pb::TabNavigation SerializedNavigationEntry::ToSyncData() const { | 366 sync_pb::TabNavigation SerializedNavigationEntry::ToSyncData() const { |
| 367 sync_pb::TabNavigation sync_data; | 367 sync_pb::TabNavigation sync_data; |
| 368 sync_data.set_virtual_url(virtual_url_.spec()); | 368 sync_data.set_virtual_url(virtual_url_.spec()); |
| 369 // FIXME(zea): Support referrer policy? | 369 // FIXME(zea): Support referrer policy? |
| 370 sync_data.set_referrer(referrer_.url.spec()); | 370 sync_data.set_referrer(referrer_.url.spec()); |
| 371 sync_data.set_title(UTF16ToUTF8(title_)); | 371 sync_data.set_title(base::UTF16ToUTF8(title_)); |
| 372 | 372 |
| 373 // Page transition core. | 373 // Page transition core. |
| 374 COMPILE_ASSERT(content::PAGE_TRANSITION_LAST_CORE == | 374 COMPILE_ASSERT(content::PAGE_TRANSITION_LAST_CORE == |
| 375 content::PAGE_TRANSITION_KEYWORD_GENERATED, | 375 content::PAGE_TRANSITION_KEYWORD_GENERATED, |
| 376 PageTransitionCoreBounds); | 376 PageTransitionCoreBounds); |
| 377 switch (PageTransitionStripQualifier(transition_type_)) { | 377 switch (PageTransitionStripQualifier(transition_type_)) { |
| 378 case content::PAGE_TRANSITION_LINK: | 378 case content::PAGE_TRANSITION_LINK: |
| 379 sync_data.set_page_transition( | 379 sync_data.set_page_transition( |
| 380 sync_pb::SyncEnums_PageTransition_LINK); | 380 sync_pb::SyncEnums_PageTransition_LINK); |
| 381 break; | 381 break; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 sync_data.set_navigation_chain_start( | 442 sync_data.set_navigation_chain_start( |
| 443 (transition_type_ & content::PAGE_TRANSITION_CHAIN_START) != 0); | 443 (transition_type_ & content::PAGE_TRANSITION_CHAIN_START) != 0); |
| 444 sync_data.set_navigation_chain_end( | 444 sync_data.set_navigation_chain_end( |
| 445 (transition_type_ & content::PAGE_TRANSITION_CHAIN_END) != 0); | 445 (transition_type_ & content::PAGE_TRANSITION_CHAIN_END) != 0); |
| 446 | 446 |
| 447 sync_data.set_unique_id(unique_id_); | 447 sync_data.set_unique_id(unique_id_); |
| 448 sync_data.set_timestamp_msec(syncer::TimeToProtoTime(timestamp_)); | 448 sync_data.set_timestamp_msec(syncer::TimeToProtoTime(timestamp_)); |
| 449 // The full-resolution timestamp works as a global ID. | 449 // The full-resolution timestamp works as a global ID. |
| 450 sync_data.set_global_id(timestamp_.ToInternalValue()); | 450 sync_data.set_global_id(timestamp_.ToInternalValue()); |
| 451 | 451 |
| 452 sync_data.set_search_terms(UTF16ToUTF8(search_terms_)); | 452 sync_data.set_search_terms(base::UTF16ToUTF8(search_terms_)); |
| 453 | 453 |
| 454 sync_data.set_http_status_code(http_status_code_); | 454 sync_data.set_http_status_code(http_status_code_); |
| 455 | 455 |
| 456 if (favicon_url_.is_valid()) | 456 if (favicon_url_.is_valid()) |
| 457 sync_data.set_favicon_url(favicon_url_.spec()); | 457 sync_data.set_favicon_url(favicon_url_.spec()); |
| 458 | 458 |
| 459 if (blocked_state_ != STATE_INVALID) { | 459 if (blocked_state_ != STATE_INVALID) { |
| 460 sync_data.set_blocked_state( | 460 sync_data.set_blocked_state( |
| 461 static_cast<sync_pb::TabNavigation_BlockedState>(blocked_state_)); | 461 static_cast<sync_pb::TabNavigation_BlockedState>(blocked_state_)); |
| 462 } | 462 } |
| (...skipping 16 matching lines...) Expand all Loading... |
| 479 for (std::vector<SerializedNavigationEntry>::const_iterator | 479 for (std::vector<SerializedNavigationEntry>::const_iterator |
| 480 it = navigations.begin(); it != navigations.end(); ++it) { | 480 it = navigations.begin(); it != navigations.end(); ++it) { |
| 481 entries.push_back( | 481 entries.push_back( |
| 482 it->ToNavigationEntry(page_id, browser_context).release()); | 482 it->ToNavigationEntry(page_id, browser_context).release()); |
| 483 ++page_id; | 483 ++page_id; |
| 484 } | 484 } |
| 485 return entries; | 485 return entries; |
| 486 } | 486 } |
| 487 | 487 |
| 488 } // namespace sessions | 488 } // namespace sessions |
| OLD | NEW |