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 "ui/views/controls/webview/webview.h" | 5 #include "ui/views/controls/webview/webview.h" |
6 | 6 |
7 #include "content/public/browser/browser_context.h" | 7 #include "content/public/browser/browser_context.h" |
8 #include "content/public/browser/navigation_controller.h" | 8 #include "content/public/browser/navigation_controller.h" |
9 #include "content/public/browser/notification_details.h" | 9 #include "content/public/browser/notification_details.h" |
10 #include "content/public/browser/notification_registrar.h" | 10 #include "content/public/browser/notification_registrar.h" |
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
154 else | 154 else |
155 return preferred_size_; | 155 return preferred_size_; |
156 } | 156 } |
157 | 157 |
158 //////////////////////////////////////////////////////////////////////////////// | 158 //////////////////////////////////////////////////////////////////////////////// |
159 // WebView, content::NotificationObserver implementation: | 159 // WebView, content::NotificationObserver implementation: |
160 | 160 |
161 void WebView::Observe(int type, | 161 void WebView::Observe(int type, |
162 const content::NotificationSource& source, | 162 const content::NotificationSource& source, |
163 const content::NotificationDetails& details) { | 163 const content::NotificationDetails& details) { |
164 if (type == content::NOTIFICATION_RENDER_VIEW_HOST_CHANGED) { | 164 if (type == content::NOTIFICATION_WEB_CONTENTS_SWAPPED) { |
165 std::pair<content::RenderViewHost*, content::RenderViewHost*>* | 165 std::pair<content::RenderViewHost*, content::RenderViewHost*>* |
166 switched_details = | 166 switched_details = |
167 content::Details<std::pair<content::RenderViewHost*, | 167 content::Details<std::pair<content::RenderViewHost*, |
168 content::RenderViewHost*> >( | 168 content::RenderViewHost*> >( |
169 details).ptr(); | 169 details).ptr(); |
170 RenderViewHostChanged(switched_details->first, | 170 RenderViewHostChanged(switched_details->first, |
171 switched_details->second); | 171 switched_details->second); |
172 } else if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) { | 172 } else if (type == content::NOTIFICATION_WEB_CONTENTS_DESTROYED) { |
173 WebContentsDestroyed(content::Source<content::WebContents>(source).ptr()); | 173 WebContentsDestroyed(content::Source<content::WebContents>(source).ptr()); |
174 } else { | 174 } else { |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
223 | 223 |
224 // The WebContentsView will not be focused automatically when it is | 224 // The WebContentsView will not be focused automatically when it is |
225 // attached, so we need to pass on focus to it if the FocusManager thinks | 225 // attached, so we need to pass on focus to it if the FocusManager thinks |
226 // the WebView is focused. Note that not every Widget has a focus manager. | 226 // the WebView is focused. Note that not every Widget has a focus manager. |
227 FocusManager* focus_manager = GetFocusManager(); | 227 FocusManager* focus_manager = GetFocusManager(); |
228 if (focus_manager && focus_manager->GetFocusedView() == this) | 228 if (focus_manager && focus_manager->GetFocusedView() == this) |
229 web_contents_->GetView()->Focus(); | 229 web_contents_->GetView()->Focus(); |
230 | 230 |
231 registrar_.Add( | 231 registrar_.Add( |
232 this, | 232 this, |
233 content::NOTIFICATION_RENDER_VIEW_HOST_CHANGED, | 233 content::NOTIFICATION_WEB_CONTENTS_SWAPPED, |
234 content::Source<content::NavigationController>( | 234 content::Source<content::WebContents>(web_contents_)); |
235 &web_contents_->GetController())); | |
236 registrar_.Add( | 235 registrar_.Add( |
237 this, | 236 this, |
238 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, | 237 content::NOTIFICATION_WEB_CONTENTS_DESTROYED, |
239 content::Source<content::WebContents>(web_contents_)); | 238 content::Source<content::WebContents>(web_contents_)); |
240 } | 239 } |
241 | 240 |
242 #if defined(OS_WIN) && defined(USE_AURA) | 241 #if defined(OS_WIN) && defined(USE_AURA) |
243 web_contents_->SetParentNativeViewAccessible( | 242 web_contents_->SetParentNativeViewAccessible( |
244 parent()->GetNativeViewAccessible()); | 243 parent()->GetNativeViewAccessible()); |
245 #endif | 244 #endif |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 if (!contents) { | 286 if (!contents) { |
288 content::WebContents::CreateParams create_params( | 287 content::WebContents::CreateParams create_params( |
289 browser_context, site_instance); | 288 browser_context, site_instance); |
290 return content::WebContents::Create(create_params); | 289 return content::WebContents::Create(create_params); |
291 } | 290 } |
292 | 291 |
293 return contents; | 292 return contents; |
294 } | 293 } |
295 | 294 |
296 } // namespace views | 295 } // namespace views |
OLD | NEW |