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/guest_view_manager.h" | 9 #include "chrome/browser/guest_view/guest_view_manager.h" |
10 #include "content/public/browser/render_frame_host.h" | 10 #include "content/public/browser/render_frame_host.h" |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 } | 314 } |
315 | 315 |
316 void GuestViewBase::GuestSizeChanged(const gfx::Size& old_size, | 316 void GuestViewBase::GuestSizeChanged(const gfx::Size& old_size, |
317 const gfx::Size& new_size) { | 317 const gfx::Size& new_size) { |
318 if (!auto_size_enabled_) | 318 if (!auto_size_enabled_) |
319 return; | 319 return; |
320 guest_size_ = new_size; | 320 guest_size_ = new_size; |
321 GuestSizeChangedDueToAutoSize(old_size, new_size); | 321 GuestSizeChangedDueToAutoSize(old_size, new_size); |
322 } | 322 } |
323 | 323 |
| 324 void GuestViewBase::SetAttachParams(const base::DictionaryValue& params) { |
| 325 attach_params_.reset(params.DeepCopy()); |
| 326 attach_params_->GetInteger(guestview::kParameterInstanceId, |
| 327 &view_instance_id_); |
| 328 } |
| 329 |
324 void GuestViewBase::SetOpener(GuestViewBase* guest) { | 330 void GuestViewBase::SetOpener(GuestViewBase* guest) { |
325 if (guest && guest->IsViewType(GetViewType())) { | 331 if (guest && guest->IsViewType(GetViewType())) { |
326 opener_ = guest->AsWeakPtr(); | 332 opener_ = guest->AsWeakPtr(); |
327 return; | 333 return; |
328 } | 334 } |
329 opener_ = base::WeakPtr<GuestViewBase>(); | 335 opener_ = base::WeakPtr<GuestViewBase>(); |
330 } | 336 } |
331 | 337 |
332 void GuestViewBase::RegisterDestructionCallback( | 338 void GuestViewBase::RegisterDestructionCallback( |
333 const DestructionCallback& callback) { | 339 const DestructionCallback& callback) { |
334 destruction_callback_ = callback; | 340 destruction_callback_ = callback; |
335 } | 341 } |
336 | 342 |
337 void GuestViewBase::WillAttach(content::WebContents* embedder_web_contents, | 343 void GuestViewBase::WillAttach(content::WebContents* embedder_web_contents) { |
338 const base::DictionaryValue& extra_params) { | |
339 // After attachment, this GuestViewBase's lifetime is restricted to the | 344 // After attachment, this GuestViewBase's lifetime is restricted to the |
340 // lifetime of its embedder WebContents. Observing the RenderProcessHost | 345 // lifetime of its embedder WebContents. Observing the RenderProcessHost |
341 // of the embedder is no longer necessary. | 346 // of the embedder is no longer necessary. |
342 embedder_web_contents->GetRenderProcessHost()->RemoveObserver(this); | 347 embedder_web_contents->GetRenderProcessHost()->RemoveObserver(this); |
343 embedder_web_contents_ = embedder_web_contents; | 348 embedder_web_contents_ = embedder_web_contents; |
344 embedder_web_contents_observer_.reset( | 349 embedder_web_contents_observer_.reset( |
345 new EmbedderWebContentsObserver(this)); | 350 new EmbedderWebContentsObserver(this)); |
346 extra_params.GetInteger(guestview::kParameterInstanceId, &view_instance_id_); | |
347 extra_params_.reset(extra_params.DeepCopy()); | |
348 | 351 |
349 WillAttachToEmbedder(); | 352 WillAttachToEmbedder(); |
350 } | 353 } |
351 | 354 |
352 void GuestViewBase::DidStopLoading(content::RenderViewHost* render_view_host) { | 355 void GuestViewBase::DidStopLoading(content::RenderViewHost* render_view_host) { |
353 if (!IsDragAndDropEnabled()) { | 356 if (!IsDragAndDropEnabled()) { |
354 const char script[] = "window.addEventListener('dragstart', function() { " | 357 const char script[] = "window.addEventListener('dragstart', function() { " |
355 " window.event.preventDefault(); " | 358 " window.event.preventDefault(); " |
356 "});"; | 359 "});"; |
357 render_view_host->GetMainFrame()->ExecuteJavaScript( | 360 render_view_host->GetMainFrame()->ExecuteJavaScript( |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
441 InitWithWebContents(embedder_extension_id, | 444 InitWithWebContents(embedder_extension_id, |
442 embedder_render_process_id, | 445 embedder_render_process_id, |
443 guest_web_contents); | 446 guest_web_contents); |
444 callback.Run(guest_web_contents); | 447 callback.Run(guest_web_contents); |
445 } | 448 } |
446 | 449 |
447 // static | 450 // static |
448 void GuestViewBase::RegisterGuestViewTypes() { | 451 void GuestViewBase::RegisterGuestViewTypes() { |
449 extensions::ExtensionsAPIClient::Get()->RegisterGuestViewTypes(); | 452 extensions::ExtensionsAPIClient::Get()->RegisterGuestViewTypes(); |
450 } | 453 } |
OLD | NEW |