OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/login/simple_web_view_dialog.h" | 5 #include "chrome/browser/chromeos/login/simple_web_view_dialog.h" |
6 | 6 |
7 #include "ash/shell.h" | 7 #include "ash/shell.h" |
8 #include "ash/shell_window_ids.h" | 8 #include "ash/shell_window_ids.h" |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
11 #include "chrome/app/chrome_command_ids.h" | 11 #include "chrome/app/chrome_command_ids.h" |
12 #include "chrome/browser/chromeos/login/captive_portal_window_proxy.h" | 12 #include "chrome/browser/chromeos/login/captive_portal_window_proxy.h" |
13 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile_manager.h" |
14 #include "chrome/browser/ui/browser.h" | 14 #include "chrome/browser/ui/browser.h" |
15 #include "chrome/browser/ui/content_settings/content_setting_bubble_model_delega
te.h" | 15 #include "chrome/browser/ui/content_settings/content_setting_bubble_model_delega
te.h" |
| 16 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
16 #include "chrome/browser/ui/toolbar/toolbar_model.h" | 17 #include "chrome/browser/ui/toolbar/toolbar_model.h" |
17 #include "chrome/browser/ui/view_ids.h" | 18 #include "chrome/browser/ui/view_ids.h" |
18 #include "chrome/browser/ui/views/location_bar/location_icon_view.h" | 19 #include "chrome/browser/ui/views/location_bar/location_icon_view.h" |
19 #include "chrome/browser/ui/views/page_info_bubble_view.h" | 20 #include "chrome/browser/ui/views/page_info_bubble_view.h" |
20 #include "chrome/browser/ui/views/reload_button.h" | 21 #include "chrome/browser/ui/views/reload_button.h" |
21 #include "content/public/browser/navigation_controller.h" | 22 #include "content/public/browser/navigation_controller.h" |
22 #include "content/public/browser/navigation_entry.h" | 23 #include "content/public/browser/navigation_entry.h" |
23 #include "content/public/browser/web_contents.h" | 24 #include "content/public/browser/web_contents.h" |
24 #include "grit/generated_resources.h" | 25 #include "grit/generated_resources.h" |
25 #include "grit/theme_resources.h" | 26 #include "grit/theme_resources.h" |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 // WebView can't be deleted immediately, because it could be on the stack. | 135 // WebView can't be deleted immediately, because it could be on the stack. |
135 web_view_->web_contents()->SetDelegate(NULL); | 136 web_view_->web_contents()->SetDelegate(NULL); |
136 MessageLoop::current()->DeleteSoon( | 137 MessageLoop::current()->DeleteSoon( |
137 FROM_HERE, web_view_container_.release()); | 138 FROM_HERE, web_view_container_.release()); |
138 } | 139 } |
139 } | 140 } |
140 | 141 |
141 void SimpleWebViewDialog::StartLoad(const GURL& url) { | 142 void SimpleWebViewDialog::StartLoad(const GURL& url) { |
142 web_view_container_.reset(new views::WebView(profile_)); | 143 web_view_container_.reset(new views::WebView(profile_)); |
143 web_view_ = web_view_container_.get(); | 144 web_view_ = web_view_container_.get(); |
144 web_view_->GetWebContents()->SetDelegate(this); | 145 |
| 146 // We create the WebContents ourselves because the TCW assumes ownership of |
| 147 // it. This should be reworked once we don't need to use the TCW here. |
| 148 WebContents* web_contents = |
| 149 WebContents::Create(ProfileManager::GetDefaultProfile(), |
| 150 NULL, |
| 151 MSG_ROUTING_NONE, |
| 152 NULL, |
| 153 NULL); |
| 154 wrapper_.reset(new TabContentsWrapper(web_contents)); |
| 155 web_view_->SetWebContents(web_contents); |
| 156 web_contents->SetDelegate(this); |
145 web_view_->LoadInitialURL(url); | 157 web_view_->LoadInitialURL(url); |
146 } | 158 } |
147 | 159 |
148 void SimpleWebViewDialog::Init() { | 160 void SimpleWebViewDialog::Init() { |
149 set_background(views::Background::CreateSolidBackground(SK_ColorWHITE)); | 161 set_background(views::Background::CreateSolidBackground(SK_ColorWHITE)); |
150 | 162 |
151 // Back/Forward buttons. | 163 // Back/Forward buttons. |
152 back_ = new views::ImageButton(this); | 164 back_ = new views::ImageButton(this); |
153 back_->set_triggerable_event_flags(ui::EF_LEFT_MOUSE_BUTTON | | 165 back_->set_triggerable_event_flags(ui::EF_LEFT_MOUSE_BUTTON | |
154 ui::EF_MIDDLE_MOUSE_BUTTON); | 166 ui::EF_MIDDLE_MOUSE_BUTTON); |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 | 385 |
374 void SimpleWebViewDialog::UpdateReload(bool is_loading, bool force) { | 386 void SimpleWebViewDialog::UpdateReload(bool is_loading, bool force) { |
375 if (reload_) { | 387 if (reload_) { |
376 reload_->ChangeMode( | 388 reload_->ChangeMode( |
377 is_loading ? ReloadButton::MODE_STOP : ReloadButton::MODE_RELOAD, | 389 is_loading ? ReloadButton::MODE_STOP : ReloadButton::MODE_RELOAD, |
378 force); | 390 force); |
379 } | 391 } |
380 } | 392 } |
381 | 393 |
382 } // namespace chromeos | 394 } // namespace chromeos |
OLD | NEW |