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

Side by Side Diff: chrome/browser/ui/webui/constrained_html_ui_delegate_impl.cc

Issue 10214001: WebDialogs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 8 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
(Empty)
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 "chrome/browser/ui/webui/constrained_html_ui_delegate_impl.h"
6
7 #include <string>
8
9 #include "base/property_bag.h"
10 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/ui/constrained_window.h"
12 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h"
13 #include "chrome/browser/ui/webui/html_dialog_tab_contents_delegate.h"
14 #include "chrome/browser/ui/webui/html_dialog_ui.h"
15 #include "content/public/browser/web_contents.h"
16
17 using content::WebContents;
18
19 ConstrainedHtmlUIDelegateImpl::ConstrainedHtmlUIDelegateImpl(
20 Profile* profile,
21 HtmlDialogUIDelegate* delegate,
22 HtmlDialogTabContentsDelegate* tab_delegate)
23 : HtmlDialogTabContentsDelegate(profile),
24 html_delegate_(delegate),
25 window_(NULL),
26 closed_via_webui_(false),
27 release_tab_on_close_(false) {
28 CHECK(delegate);
29 WebContents* web_contents =
30 WebContents::Create(profile, NULL, MSG_ROUTING_NONE, NULL, NULL);
31 tab_.reset(new TabContentsWrapper(web_contents));
32 if (tab_delegate) {
33 override_tab_delegate_.reset(tab_delegate);
34 web_contents->SetDelegate(tab_delegate);
35 } else {
36 web_contents->SetDelegate(this);
37 }
38 // Set |this| as a property so the ConstrainedHtmlUI can retrieve it.
39 ConstrainedHtmlUI::GetPropertyAccessor().SetProperty(
40 web_contents->GetPropertyBag(), this);
41
42 web_contents->GetController().LoadURL(delegate->GetDialogContentURL(),
43 content::Referrer(),
44 content::PAGE_TRANSITION_START_PAGE,
45 std::string());
46 }
47
48 ConstrainedHtmlUIDelegateImpl::~ConstrainedHtmlUIDelegateImpl() {
49 if (release_tab_on_close_)
50 ignore_result(tab_.release());
51 }
52
53 const HtmlDialogUIDelegate*
54 ConstrainedHtmlUIDelegateImpl::GetHtmlDialogUIDelegate() const {
55 return html_delegate_;
56 }
57
58 HtmlDialogUIDelegate*
59 ConstrainedHtmlUIDelegateImpl::GetHtmlDialogUIDelegate() {
60 return html_delegate_;
61 }
62
63 void ConstrainedHtmlUIDelegateImpl::OnDialogCloseFromWebUI() {
64 closed_via_webui_ = true;
65 window_->CloseConstrainedWindow();
66 }
67
68 void ConstrainedHtmlUIDelegateImpl::set_window(ConstrainedWindow* window) {
69 window_ = window;
70 }
71
72 void ConstrainedHtmlUIDelegateImpl::set_override_tab_delegate(
73 HtmlDialogTabContentsDelegate* override_tab_delegate) {
74 override_tab_delegate_.reset(override_tab_delegate);
75 }
76
77 bool ConstrainedHtmlUIDelegateImpl::closed_via_webui() const {
78 return closed_via_webui_;
79 }
80
81 void ConstrainedHtmlUIDelegateImpl::ReleaseTabContentsOnDialogClose() {
82 release_tab_on_close_ = true;
83 }
84
85 ConstrainedWindow* ConstrainedHtmlUIDelegateImpl::window() {
86 return window_;
87 }
88
89 TabContentsWrapper* ConstrainedHtmlUIDelegateImpl::tab() {
90 return tab_.get();
91 }
92
93 void ConstrainedHtmlUIDelegateImpl::HandleKeyboardEvent(
94 const NativeWebKeyboardEvent& event) {
95 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698