| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/guest_view/guest_view_base.h" | 5 #include "chrome/browser/guest_view/guest_view_base.h" |
| 6 | 6 |
| 7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "chrome/browser/guest_view/app_view/app_view_guest.h" | 9 #include "chrome/browser/guest_view/app_view/app_view_guest.h" |
| 10 #include "chrome/browser/guest_view/extension_options/extension_options_guest.h" | 10 #include "chrome/browser/guest_view/extension_options/extension_options_guest.h" |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 // Give the derived class an opportunity to perform some actions. | 265 // Give the derived class an opportunity to perform some actions. |
| 266 DidAttachToEmbedder(); | 266 DidAttachToEmbedder(); |
| 267 | 267 |
| 268 SendQueuedEvents(); | 268 SendQueuedEvents(); |
| 269 } | 269 } |
| 270 | 270 |
| 271 int GuestViewBase::GetGuestInstanceID() const { | 271 int GuestViewBase::GetGuestInstanceID() const { |
| 272 return guest_instance_id_; | 272 return guest_instance_id_; |
| 273 } | 273 } |
| 274 | 274 |
| 275 void GuestViewBase::SetAttachParams(const base::DictionaryValue& params) { |
| 276 attach_params_.reset(params.DeepCopy()); |
| 277 attach_params_->GetInteger(guestview::kParameterInstanceId, |
| 278 &view_instance_id_); |
| 279 } |
| 280 |
| 275 void GuestViewBase::SetOpener(GuestViewBase* guest) { | 281 void GuestViewBase::SetOpener(GuestViewBase* guest) { |
| 276 if (guest && guest->IsViewType(GetViewType())) { | 282 if (guest && guest->IsViewType(GetViewType())) { |
| 277 opener_ = guest->AsWeakPtr(); | 283 opener_ = guest->AsWeakPtr(); |
| 278 return; | 284 return; |
| 279 } | 285 } |
| 280 opener_ = base::WeakPtr<GuestViewBase>(); | 286 opener_ = base::WeakPtr<GuestViewBase>(); |
| 281 } | 287 } |
| 282 | 288 |
| 283 void GuestViewBase::RegisterDestructionCallback( | 289 void GuestViewBase::RegisterDestructionCallback( |
| 284 const DestructionCallback& callback) { | 290 const DestructionCallback& callback) { |
| 285 destruction_callback_ = callback; | 291 destruction_callback_ = callback; |
| 286 } | 292 } |
| 287 | 293 |
| 288 void GuestViewBase::WillAttach(content::WebContents* embedder_web_contents, | 294 void GuestViewBase::WillAttach(content::WebContents* embedder_web_contents) { |
| 289 const base::DictionaryValue& extra_params) { | |
| 290 // After attachment, this GuestViewBase's lifetime is restricted to the | 295 // After attachment, this GuestViewBase's lifetime is restricted to the |
| 291 // lifetime of its embedder WebContents. Observing the RenderProcessHost | 296 // lifetime of its embedder WebContents. Observing the RenderProcessHost |
| 292 // of the embedder is no longer necessary. | 297 // of the embedder is no longer necessary. |
| 293 embedder_web_contents->GetRenderProcessHost()->RemoveObserver(this); | 298 embedder_web_contents->GetRenderProcessHost()->RemoveObserver(this); |
| 294 embedder_web_contents_ = embedder_web_contents; | 299 embedder_web_contents_ = embedder_web_contents; |
| 295 embedder_web_contents_observer_.reset( | 300 embedder_web_contents_observer_.reset( |
| 296 new EmbedderWebContentsObserver(this)); | 301 new EmbedderWebContentsObserver(this)); |
| 297 extra_params.GetInteger(guestview::kParameterInstanceId, &view_instance_id_); | |
| 298 extra_params_.reset(extra_params.DeepCopy()); | |
| 299 | 302 |
| 300 WillAttachToEmbedder(); | 303 WillAttachToEmbedder(); |
| 301 } | 304 } |
| 302 | 305 |
| 303 void GuestViewBase::DidStopLoading(content::RenderViewHost* render_view_host) { | 306 void GuestViewBase::DidStopLoading(content::RenderViewHost* render_view_host) { |
| 304 if (!IsDragAndDropEnabled()) { | 307 if (!IsDragAndDropEnabled()) { |
| 305 const char script[] = "window.addEventListener('dragstart', function() { " | 308 const char script[] = "window.addEventListener('dragstart', function() { " |
| 306 " window.event.preventDefault(); " | 309 " window.event.preventDefault(); " |
| 307 "});"; | 310 "});"; |
| 308 render_view_host->GetMainFrame()->ExecuteJavaScript( | 311 render_view_host->GetMainFrame()->ExecuteJavaScript( |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 guest_web_contents); | 387 guest_web_contents); |
| 385 callback.Run(guest_web_contents); | 388 callback.Run(guest_web_contents); |
| 386 } | 389 } |
| 387 | 390 |
| 388 // static | 391 // static |
| 389 void GuestViewBase::RegisterGuestViewTypes() { | 392 void GuestViewBase::RegisterGuestViewTypes() { |
| 390 AppViewGuest::Register(); | 393 AppViewGuest::Register(); |
| 391 ExtensionOptionsGuest::Register(); | 394 ExtensionOptionsGuest::Register(); |
| 392 WebViewGuest::Register(); | 395 WebViewGuest::Register(); |
| 393 } | 396 } |
| OLD | NEW |