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 #import "ios/web/navigation/crw_session_controller.h" | 5 #import "ios/web/navigation/crw_session_controller.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <utility> | 10 #include <utility> |
(...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
592 _previousItemIndex--; | 592 _previousItemIndex--; |
593 | 593 |
594 if (_navigationManager) | 594 if (_navigationManager) |
595 _navigationManager->OnNavigationItemsPruned(1U); | 595 _navigationManager->OnNavigationItemsPruned(1U); |
596 } | 596 } |
597 | 597 |
598 - (BOOL)isSameDocumentNavigationBetweenItem:(web::NavigationItem*)firstItem | 598 - (BOOL)isSameDocumentNavigationBetweenItem:(web::NavigationItem*)firstItem |
599 andItem:(web::NavigationItem*)secondItem { | 599 andItem:(web::NavigationItem*)secondItem { |
600 if (!firstItem || !secondItem || firstItem == secondItem) | 600 if (!firstItem || !secondItem || firstItem == secondItem) |
601 return NO; | 601 return NO; |
602 NSUInteger firstIndex = [self indexOfItem:firstItem]; | 602 int firstIndex = [self indexOfItem:firstItem]; |
603 NSUInteger secondIndex = [self indexOfItem:secondItem]; | 603 int secondIndex = [self indexOfItem:secondItem]; |
604 if (firstIndex == NSNotFound || secondIndex == NSNotFound) | 604 if (firstIndex == -1 || secondIndex == -1) |
605 return NO; | 605 return NO; |
606 NSUInteger startIndex = firstIndex < secondIndex ? firstIndex : secondIndex; | 606 int startIndex = firstIndex < secondIndex ? firstIndex : secondIndex; |
607 NSUInteger endIndex = firstIndex < secondIndex ? secondIndex : firstIndex; | 607 int endIndex = firstIndex < secondIndex ? secondIndex : firstIndex; |
608 | 608 |
609 for (NSUInteger i = startIndex + 1; i <= endIndex; i++) { | 609 for (int i = startIndex + 1; i <= endIndex; i++) { |
610 web::NavigationItemImpl* item = self.items[i].get(); | 610 web::NavigationItemImpl* item = self.items[i].get(); |
611 // Every item in the sequence has to be created from a hash change or | 611 // Every item in the sequence has to be created from a hash change or |
612 // pushState() call. | 612 // pushState() call. |
613 if (!item->IsCreatedFromPushState() && !item->IsCreatedFromHashChange()) | 613 if (!item->IsCreatedFromPushState() && !item->IsCreatedFromHashChange()) |
614 return NO; | 614 return NO; |
615 // Every item in the sequence has to have a URL that could have been | 615 // Every item in the sequence has to have a URL that could have been |
616 // created from a pushState() call. | 616 // created from a pushState() call. |
617 if (!web::history_state_util::IsHistoryStateChangeValid(firstItem->GetURL(), | 617 if (!web::history_state_util::IsHistoryStateChangeValid(firstItem->GetURL(), |
618 item->GetURL())) | 618 item->GetURL())) |
619 return NO; | 619 return NO; |
620 } | 620 } |
621 return YES; | 621 return YES; |
622 } | 622 } |
623 | 623 |
624 - (NSInteger)indexOfItem:(const web::NavigationItem*)item { | 624 - (int)indexOfItem:(const web::NavigationItem*)item { |
625 DCHECK(item); | 625 DCHECK(item); |
626 for (size_t index = 0; index < self.items.size(); ++index) { | 626 for (size_t index = 0; index < self.items.size(); ++index) { |
627 if (self.items[index].get() == item) | 627 if (self.items[index].get() == item) |
628 return index; | 628 return index; |
629 } | 629 } |
630 return NSNotFound; | 630 return -1; |
631 } | 631 } |
632 | 632 |
633 - (web::NavigationItemImpl*)itemAtIndex:(NSInteger)index { | 633 - (web::NavigationItemImpl*)itemAtIndex:(NSInteger)index { |
634 if (index < 0 || self.items.size() <= static_cast<NSUInteger>(index)) | 634 if (index < 0 || self.items.size() <= static_cast<NSUInteger>(index)) |
635 return nullptr; | 635 return nullptr; |
636 return self.items[index].get(); | 636 return self.items[index].get(); |
637 } | 637 } |
638 | 638 |
639 #pragma mark - | 639 #pragma mark - |
640 #pragma mark Private methods | 640 #pragma mark Private methods |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
684 return item; | 684 return item; |
685 } | 685 } |
686 | 686 |
687 - (BOOL)isRedirectTransitionForItemAtIndex:(size_t)index { | 687 - (BOOL)isRedirectTransitionForItemAtIndex:(size_t)index { |
688 DCHECK_LT(index, self.items.size()); | 688 DCHECK_LT(index, self.items.size()); |
689 ui::PageTransition transition = self.items[index]->GetTransitionType(); | 689 ui::PageTransition transition = self.items[index]->GetTransitionType(); |
690 return (transition & ui::PAGE_TRANSITION_IS_REDIRECT_MASK) ? YES : NO; | 690 return (transition & ui::PAGE_TRANSITION_IS_REDIRECT_MASK) ? YES : NO; |
691 } | 691 } |
692 | 692 |
693 @end | 693 @end |
OLD | NEW |