| Index: chrome/browser/tab_contents/interstitial_page.cc
|
| ===================================================================
|
| --- chrome/browser/tab_contents/interstitial_page.cc (revision 11029)
|
| +++ chrome/browser/tab_contents/interstitial_page.cc (working copy)
|
| @@ -21,6 +21,9 @@
|
| #include "chrome/browser/renderer_host/render_widget_host_view_win.h"
|
| #include "chrome/browser/tab_contents/web_contents_view_win.h"
|
| #include "chrome/views/window.h"
|
| +#else
|
| +#include "chrome/browser/renderer_host/render_widget_host_view.h"
|
| +#include "chrome/browser/tab_contents/web_contents_view.h"
|
| #endif
|
|
|
| namespace {
|
| @@ -263,11 +266,22 @@
|
|
|
| return render_view_host;
|
| #else
|
| - // TODO(port): RenderWidgetHost* is implemented, but Create and
|
| - // set_parent_hwnd are specific to RenderWidgetHostWin, so this should
|
| - // probably be refactored.
|
| + // It is untested, whether this code is sufficiently generic that it
|
| + // works with Windows, and thus obsoletes the special-cased code above.
|
| + // If it does work, don't forget to also clean up the include statements!
|
| NOTIMPLEMENTED();
|
| - return NULL;
|
| +
|
| + RenderViewHost* render_view_host = new RenderViewHost(
|
| + SiteInstance::CreateSiteInstance(tab()->profile()),
|
| + this, MSG_ROUTING_NONE, NULL);
|
| + WebContentsView* web_contents_view = tab()->view();
|
| + RenderWidgetHostView* view =
|
| + web_contents_view->CreateViewForWidget(render_view_host);
|
| + render_view_host->set_view(view);
|
| + render_view_host->AllowDomAutomationBindings();
|
| + render_view_host->CreateRenderView();
|
| + view->SetSize(web_contents_view->GetContainerSize());
|
| + return render_view_host;
|
| #endif
|
| }
|
|
|
| @@ -348,7 +362,6 @@
|
| void InterstitialPage::DidNavigate(
|
| RenderViewHost* render_view_host,
|
| const ViewHostMsg_FrameNavigate_Params& params) {
|
| -#if defined(OS_WIN)
|
| // A fast user could have navigated away from the page that triggered the
|
| // interstitial while the interstitial was loading, that would have disabled
|
| // us. In that case we can dismiss ourselves.
|
| @@ -366,10 +379,6 @@
|
| // by the UI tests) expects to consider a navigation as complete. Without this,
|
| // navigating in a UI test to a URL that triggers an interstitial would hang.
|
| tab_->SetIsLoading(false, NULL);
|
| -#else
|
| - // TODO(port): we need RenderViewHost.
|
| - NOTIMPLEMENTED();
|
| -#endif
|
| }
|
|
|
| void InterstitialPage::RenderViewGone(RenderViewHost* render_view_host) {
|
| @@ -512,4 +521,3 @@
|
| int request_id, int number_of_matches, const gfx::Rect& selection_rect,
|
| int active_match_ordinal, bool final_update) {
|
| }
|
| -
|
|
|