Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(578)

Side by Side Diff: content/browser/tab_contents/tab_contents.cc

Issue 7618016: Additional fixes for prerender/instant + browsing history. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Wrong signature Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "content/browser/tab_contents/tab_contents.h" 5 #include "content/browser/tab_contents/tab_contents.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 FOR_EACH_OBSERVER(TabContentsObserver, 589 FOR_EACH_OBSERVER(TabContentsObserver,
590 observers_, 590 observers_,
591 NavigateToPendingEntry(entry.url(), reload_type)); 591 NavigateToPendingEntry(entry.url(), reload_type));
592 592
593 if (delegate_) 593 if (delegate_)
594 delegate_->DidNavigateToPendingEntry(this); 594 delegate_->DidNavigateToPendingEntry(this);
595 595
596 return true; 596 return true;
597 } 597 }
598 598
599 void TabContents::SetHistoryLengthAndClear(int history_length) { 599 void TabContents::SetHistoryLengthAndPrune(const SiteInstance* site_instance,
600 int history_length,
601 int32 minimum_page_id) {
602 // SetHistoryLengthAndPrune doesn't handle pending cross-site navigations
603 // cleanly. Since it's only used when swapping in instant and prerendered
jam 2011/08/15 15:59:10 ditto
604 // TabContents, checks are done at a higher level to ensure that the pages
605 // are not swapped in during this case.
606 if (render_manager_.pending_render_view_host()) {
607 NOTREACHED();
608 return;
609 }
600 RenderViewHost* rvh = render_view_host(); 610 RenderViewHost* rvh = render_view_host();
601 if (!rvh) 611 if (!rvh) {
612 NOTREACHED();
602 return; 613 return;
603 rvh->Send(new ViewMsg_SetHistoryLengthAndClear(rvh->routing_id(), 614 }
604 history_length)); 615 if (site_instance && rvh->site_instance() != site_instance) {
616 NOTREACHED();
617 return;
618 }
619 rvh->Send(new ViewMsg_SetHistoryLengthAndPrune(rvh->routing_id(),
620 history_length,
621 minimum_page_id));
605 } 622 }
606 623
607 void TabContents::Stop() { 624 void TabContents::Stop() {
608 render_manager_.Stop(); 625 render_manager_.Stop();
609 FOR_EACH_OBSERVER(TabContentsObserver, observers_, StopNavigation()); 626 FOR_EACH_OBSERVER(TabContentsObserver, observers_, StopNavigation());
610 } 627 }
611 628
612 TabContents* TabContents::Clone() { 629 TabContents* TabContents::Clone() {
613 // We create a new SiteInstance so that the new tab won't share processes 630 // We create a new SiteInstance so that the new tab won't share processes
614 // with the old one. This can be changed in the future if we need it to share 631 // with the old one. This can be changed in the future if we need it to share
(...skipping 1305 matching lines...) Expand 10 before | Expand all | Expand 10 after
1920 } 1937 }
1921 1938
1922 void TabContents::SwapInRenderViewHost(RenderViewHost* rvh) { 1939 void TabContents::SwapInRenderViewHost(RenderViewHost* rvh) {
1923 render_manager_.SwapInRenderViewHost(rvh); 1940 render_manager_.SwapInRenderViewHost(rvh);
1924 } 1941 }
1925 1942
1926 void TabContents::CreateViewAndSetSizeForRVH(RenderViewHost* rvh) { 1943 void TabContents::CreateViewAndSetSizeForRVH(RenderViewHost* rvh) {
1927 RenderWidgetHostView* rwh_view = view()->CreateViewForWidget(rvh); 1944 RenderWidgetHostView* rwh_view = view()->CreateViewForWidget(rvh);
1928 rwh_view->SetSize(view()->GetContainerSize()); 1945 rwh_view->SetSize(view()->GetContainerSize());
1929 } 1946 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698