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

Side by Side Diff: chrome/browser/instant/instant_loader.cc

Issue 7034043: Prerender/Instant interopability. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 7 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 "chrome/browser/instant/instant_loader.h" 5 #include "chrome/browser/instant/instant_loader.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 host->Send(new ViewMsg_DetermineIfPageSupportsInstant( 132 host->Send(new ViewMsg_DetermineIfPageSupportsInstant(
133 host->routing_id(), text_, verbatim_, text_length, text_length)); 133 host->routing_id(), text_, verbatim_, text_length, text_length));
134 break; 134 break;
135 } 135 }
136 default: 136 default:
137 NOTREACHED(); 137 NOTREACHED();
138 break; 138 break;
139 } 139 }
140 } 140 }
141 141
142 // If this is being called, something is swapping in to our preview_contents_
143 // before we've added it to the tab strip.
144 void InstantLoader::SwapTabContents(TabContentsWrapper* old_tc,
145 TabContentsWrapper* new_tc) {
146 DCHECK(old_tc == preview_contents_);
147 // We release here without deleting so that the caller still has reponsibility
148 // for deleting the TabContentsWrapper. The (void) cast is so that we use the
149 // returned value.
150 TabContentsWrapper* tab_contents_wrapper = preview_contents_.release();
sky 2011/05/19 19:53:55 ignore_result
dominich 2011/05/19 23:57:28 Done.
151 (void) tab_contents_wrapper;
152 preview_contents_.reset(new_tc);
sky 2011/05/19 19:53:55 I'm not sure under when this might be invoked. Cou
dominich 2011/05/19 23:57:28 It's invoked if the InstantLoader is the delegate
153 }
154
142 // TabContentsDelegateImpl ----------------------------------------------------- 155 // TabContentsDelegateImpl -----------------------------------------------------
143 156
144 class InstantLoader::TabContentsDelegateImpl 157 class InstantLoader::TabContentsDelegateImpl
145 : public TabContentsDelegate, 158 : public TabContentsDelegate,
146 public NotificationObserver, 159 public NotificationObserver,
147 public TabContentsObserver, 160 public TabContentsObserver,
148 public DownloadTabHelperDelegate { 161 public DownloadTabHelperDelegate {
149 public: 162 public:
150 explicit TabContentsDelegateImpl(InstantLoader* loader); 163 explicit TabContentsDelegateImpl(InstantLoader* loader);
151 164
(...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after
989 host->Send(new ViewMsg_SearchBoxResize( 1002 host->Send(new ViewMsg_SearchBoxResize(
990 host->routing_id(), GetOmniboxBoundsInTermsOfPreview())); 1003 host->routing_id(), GetOmniboxBoundsInTermsOfPreview()));
991 } 1004 }
992 } 1005 }
993 1006
994 void InstantLoader::CreatePreviewContents(TabContentsWrapper* tab_contents) { 1007 void InstantLoader::CreatePreviewContents(TabContentsWrapper* tab_contents) {
995 TabContents* new_contents = 1008 TabContents* new_contents =
996 new TabContents( 1009 new TabContents(
997 tab_contents->profile(), NULL, MSG_ROUTING_NONE, NULL, NULL); 1010 tab_contents->profile(), NULL, MSG_ROUTING_NONE, NULL, NULL);
998 preview_contents_.reset(new TabContentsWrapper(new_contents)); 1011 preview_contents_.reset(new TabContentsWrapper(new_contents));
1012 preview_contents_->set_delegate(this);
999 preview_contents_->blocked_content_tab_helper()->SetAllContentsBlocked(true); 1013 preview_contents_->blocked_content_tab_helper()->SetAllContentsBlocked(true);
1000 // Propagate the max page id. That way if we end up merging the two 1014 // Propagate the max page id. That way if we end up merging the two
1001 // NavigationControllers (which happens if we commit) none of the page ids 1015 // NavigationControllers (which happens if we commit) none of the page ids
1002 // will overlap. 1016 // will overlap.
1003 int32 max_page_id = tab_contents->tab_contents()->GetMaxPageID(); 1017 int32 max_page_id = tab_contents->tab_contents()->GetMaxPageID();
1004 if (max_page_id != -1) 1018 if (max_page_id != -1)
1005 preview_contents_->controller().set_max_restored_page_id(max_page_id + 1); 1019 preview_contents_->controller().set_max_restored_page_id(max_page_id + 1);
1006 1020
1007 preview_tab_contents_delegate_.reset(new TabContentsDelegateImpl(this)); 1021 preview_tab_contents_delegate_.reset(new TabContentsDelegateImpl(this));
1008 new_contents->set_delegate(preview_tab_contents_delegate_.get()); 1022 new_contents->set_delegate(preview_tab_contents_delegate_.get());
(...skipping 18 matching lines...) Expand all
1027 Source<NavigationController>(&preview_contents_->controller())); 1041 Source<NavigationController>(&preview_contents_->controller()));
1028 #endif 1042 #endif
1029 1043
1030 registrar_.Add( 1044 registrar_.Add(
1031 this, 1045 this,
1032 NotificationType::NAV_ENTRY_COMMITTED, 1046 NotificationType::NAV_ENTRY_COMMITTED,
1033 Source<NavigationController>(&preview_contents_->controller())); 1047 Source<NavigationController>(&preview_contents_->controller()));
1034 1048
1035 preview_contents_->tab_contents()->ShowContents(); 1049 preview_contents_->tab_contents()->ShowContents();
1036 } 1050 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698