| Index: chrome/browser/instant/instant_loader.cc | 
| =================================================================== | 
| --- chrome/browser/instant/instant_loader.cc	(revision 66453) | 
| +++ chrome/browser/instant/instant_loader.cc	(working copy) | 
| @@ -26,6 +26,7 @@ | 
| #include "chrome/browser/tab_contents/tab_contents.h" | 
| #include "chrome/browser/tab_contents/tab_contents_delegate.h" | 
| #include "chrome/browser/tab_contents/tab_contents_view.h" | 
| +#include "chrome/browser/tab_contents_wrapper.h" | 
| #include "chrome/common/chrome_switches.h" | 
| #include "chrome/common/notification_observer.h" | 
| #include "chrome/common/notification_registrar.h" | 
| @@ -152,7 +153,7 @@ | 
|  | 
| // Commits the currently buffered history. | 
| void CommitHistory() { | 
| -    TabContents* tab = loader_->preview_contents(); | 
| +    TabContents* tab = loader_->preview_contents()->tab_contents(); | 
| if (tab->profile()->IsOffTheRecord()) | 
| return; | 
|  | 
| @@ -315,7 +316,7 @@ | 
|  | 
| virtual void OnSetSuggestions(int32 page_id, | 
| const std::vector<std::string>& suggestions) { | 
| -    TabContents* source = loader_->preview_contents(); | 
| +    TabContentsWrapper* source = loader_->preview_contents(); | 
| if (!source->controller().GetActiveEntry() || | 
| page_id != source->controller().GetActiveEntry()->page_id()) | 
| return; | 
| @@ -329,7 +330,7 @@ | 
| } | 
|  | 
| virtual void OnInstantSupportDetermined(int32 page_id, bool result) { | 
| -    TabContents* source = loader_->preview_contents(); | 
| +    TabContents* source = loader_->preview_contents()->tab_contents(); | 
| if (!source->controller().GetActiveEntry() || | 
| page_id != source->controller().GetActiveEntry()->page_id()) | 
| return; | 
| @@ -395,7 +396,7 @@ | 
| preview_contents_.reset(NULL); | 
| } | 
|  | 
| -void InstantLoader::Update(TabContents* tab_contents, | 
| +void InstantLoader::Update(TabContentsWrapper* tab_contents, | 
| const TemplateURL* template_url, | 
| const GURL& url, | 
| PageTransition::Type transition_type, | 
| @@ -412,18 +413,19 @@ | 
|  | 
| bool created_preview_contents; | 
| if (preview_contents_.get() == NULL) { | 
| -    preview_contents_.reset( | 
| -        new TabContents(tab_contents->profile(), NULL, MSG_ROUTING_NONE, | 
| -                        NULL, NULL)); | 
| -    preview_contents_->SetAllContentsBlocked(true); | 
| +    TabContents* new_contents = | 
| +        new TabContents( | 
| +            tab_contents->profile(), NULL, MSG_ROUTING_NONE, NULL, NULL); | 
| +    preview_contents_.reset(new TabContentsWrapper(new_contents)); | 
| +    new_contents->SetAllContentsBlocked(true); | 
| // Propagate the max page id. That way if we end up merging the two | 
| // NavigationControllers (which happens if we commit) none of the page ids | 
| // will overlap. | 
| -    int32 max_page_id = tab_contents->GetMaxPageID(); | 
| +    int32 max_page_id = tab_contents->tab_contents()->GetMaxPageID(); | 
| if (max_page_id != -1) | 
| preview_contents_->controller().set_max_restored_page_id(max_page_id + 1); | 
|  | 
| -    preview_contents_->set_delegate(preview_tab_contents_delegate_.get()); | 
| +    new_contents->set_delegate(preview_tab_contents_delegate_.get()); | 
|  | 
| gfx::Rect tab_bounds; | 
| tab_contents->view()->GetContainerBounds(&tab_bounds); | 
| @@ -433,8 +435,8 @@ | 
| // If |preview_contents_| does not currently have a RWHV, we will call | 
| // SetTakesFocusOnlyOnMouseDown() as a result of the | 
| // RENDER_VIEW_HOST_CHANGED notification. | 
| -    if (preview_contents_->GetRenderWidgetHostView()) { | 
| -      preview_contents_->GetRenderWidgetHostView()-> | 
| +    if (preview_contents_->tab_contents()->GetRenderWidgetHostView()) { | 
| +      preview_contents_->tab_contents()->GetRenderWidgetHostView()-> | 
| SetTakesFocusOnlyOnMouseDown(true); | 
| } | 
| registrar_.Add( | 
| @@ -443,7 +445,7 @@ | 
| Source<NavigationController>(&preview_contents_->controller())); | 
| #endif | 
|  | 
| -    preview_contents_->ShowContents(); | 
| +    preview_contents_->tab_contents()->ShowContents(); | 
| created_preview_contents = true; | 
| } else { | 
| created_preview_contents = false; | 
| @@ -489,7 +491,8 @@ | 
| preview_contents_->controller().LoadURL( | 
| instant_url, GURL(), transition_type); | 
| frame_load_observer_.reset( | 
| -          new FrameLoadObserver(preview_contents(), user_text_)); | 
| +          new FrameLoadObserver(preview_contents()->tab_contents(), | 
| +                                user_text_)); | 
| } | 
| } else { | 
| DCHECK(template_url_id_ == 0); | 
| @@ -520,7 +523,8 @@ | 
| return preview_tab_contents_delegate_->is_mouse_down_from_activate(); | 
| } | 
|  | 
| -TabContents* InstantLoader::ReleasePreviewContents(InstantCommitType type) { | 
| +TabContentsWrapper* InstantLoader::ReleasePreviewContents( | 
| +    InstantCommitType type) { | 
| if (!preview_contents_.get()) | 
| return NULL; | 
|  | 
| @@ -545,11 +549,11 @@ | 
| preview_tab_contents_delegate_->CommitHistory(); | 
| // Destroy the paint observer. | 
| // RenderWidgetHostView may be null during shutdown. | 
| -    if (preview_contents_->GetRenderWidgetHostView()) { | 
| -      preview_contents_->GetRenderWidgetHostView()->GetRenderWidgetHost()-> | 
| -          set_paint_observer(NULL); | 
| +    if (preview_contents_->tab_contents()->GetRenderWidgetHostView()) { | 
| +      preview_contents_->tab_contents()->GetRenderWidgetHostView()-> | 
| +          GetRenderWidgetHost()->set_paint_observer(NULL); | 
| #if defined(OS_MACOSX) | 
| -      preview_contents_->GetRenderWidgetHostView()-> | 
| +      preview_contents_->tab_contents()->GetRenderWidgetHostView()-> | 
| SetTakesFocusOnlyOnMouseDown(false); | 
| registrar_.Remove( | 
| this, | 
|  |