1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "ui/web_dialogs/web_dialog_web_contents_delegate.h" 6 7#include "base/logging.h" 8#include "content/public/browser/web_contents.h" 9 10using content::BrowserContext; 11using content::OpenURLParams; 12using content::WebContents; 13 14namespace ui { 15 16// Incognito profiles are not long-lived, so we always want to store a 17// non-incognito profile. 18// 19// TODO(akalin): Should we make it so that we have a default incognito 20// profile that's long-lived? Of course, we'd still have to clear it out 21// when all incognito browsers close. 22WebDialogWebContentsDelegate::WebDialogWebContentsDelegate( 23 content::BrowserContext* browser_context, 24 WebContentsHandler* handler) 25 : browser_context_(browser_context), 26 handler_(handler) { 27 CHECK(handler_.get()); 28} 29 30WebDialogWebContentsDelegate::~WebDialogWebContentsDelegate() { 31} 32 33void WebDialogWebContentsDelegate::Detach() { 34 browser_context_ = NULL; 35} 36 37WebContents* WebDialogWebContentsDelegate::OpenURLFromTab( 38 WebContents* source, const OpenURLParams& params) { 39 return handler_->OpenURLFromTab(browser_context_, source, params); 40} 41 42void WebDialogWebContentsDelegate::AddNewContents( 43 WebContents* source, WebContents* new_contents, 44 WindowOpenDisposition disposition, const gfx::Rect& initial_pos, 45 bool user_gesture, 46 bool* was_blocked) { 47 handler_->AddNewContents(browser_context_, source, new_contents, disposition, 48 initial_pos, user_gesture); 49} 50 51bool WebDialogWebContentsDelegate::IsPopupOrPanel( 52 const WebContents* source) const { 53 // This needs to return true so that we are allowed to be resized by our 54 // contents. 55 return true; 56} 57 58} // namespace ui 59