| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "ui/web_dialogs/web_dialog_web_contents_delegate.h" |
| |
| #include "base/logging.h" |
| #include "content/public/browser/web_contents.h" |
| |
| using content::BrowserContext; |
| using content::OpenURLParams; |
| using content::WebContents; |
| |
| namespace ui { |
| |
| // Incognito profiles are not long-lived, so we always want to store a |
| // non-incognito profile. |
| // |
| // TODO(akalin): Should we make it so that we have a default incognito |
| // profile that's long-lived? Of course, we'd still have to clear it out |
| // when all incognito browsers close. |
| WebDialogWebContentsDelegate::WebDialogWebContentsDelegate( |
| content::BrowserContext* browser_context, |
| WebContentsHandler* handler) |
| : browser_context_(browser_context), |
| handler_(handler) { |
| CHECK(handler_.get()); |
| } |
| |
| WebDialogWebContentsDelegate::~WebDialogWebContentsDelegate() { |
| } |
| |
| void WebDialogWebContentsDelegate::Detach() { |
| browser_context_ = NULL; |
| } |
| |
| WebContents* WebDialogWebContentsDelegate::OpenURLFromTab( |
| WebContents* source, const OpenURLParams& params) { |
| return handler_->OpenURLFromTab(browser_context_, source, params); |
| } |
| |
| void WebDialogWebContentsDelegate::AddNewContents( |
| WebContents* source, WebContents* new_contents, |
| WindowOpenDisposition disposition, const gfx::Rect& initial_pos, |
| bool user_gesture, |
| bool* was_blocked) { |
| handler_->AddNewContents(browser_context_, source, new_contents, disposition, |
| initial_pos, user_gesture); |
| } |
| |
| bool WebDialogWebContentsDelegate::IsPopupOrPanel( |
| const WebContents* source) const { |
| // This needs to return true so that we are allowed to be resized by our |
| // contents. |
| return true; |
| } |
| |
| } // namespace ui |