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

Side by Side Diff: extensions/browser/guest_view/guest_view_base.cc

Issue 444813002: Remove BrowserPlugin's -internal-attach method (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Don't crash on tear down Created 6 years, 4 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
OLDNEW
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 "extensions/browser/guest_view/guest_view_base.h" 5 #include "extensions/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 "content/public/browser/render_frame_host.h" 9 #include "content/public/browser/render_frame_host.h"
10 #include "content/public/browser/render_process_host.h" 10 #include "content/public/browser/render_process_host.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 DidAttachToEmbedder(); 303 DidAttachToEmbedder();
304 304
305 SendQueuedEvents(); 305 SendQueuedEvents();
306 } 306 }
307 307
308 void GuestViewBase::ElementSizeChanged(const gfx::Size& old_size, 308 void GuestViewBase::ElementSizeChanged(const gfx::Size& old_size,
309 const gfx::Size& new_size) { 309 const gfx::Size& new_size) {
310 element_size_ = new_size; 310 element_size_ = new_size;
311 } 311 }
312 312
313 int GuestViewBase::GetGuestInstanceID() const {
314 return guest_instance_id_;
315 }
316
317 void GuestViewBase::GuestSizeChanged(const gfx::Size& old_size, 313 void GuestViewBase::GuestSizeChanged(const gfx::Size& old_size,
318 const gfx::Size& new_size) { 314 const gfx::Size& new_size) {
319 if (!auto_size_enabled_) 315 if (!auto_size_enabled_)
320 return; 316 return;
321 guest_size_ = new_size; 317 guest_size_ = new_size;
322 GuestSizeChangedDueToAutoSize(old_size, new_size); 318 GuestSizeChangedDueToAutoSize(old_size, new_size);
323 } 319 }
324 320
321 void GuestViewBase::SetAttachParams(const base::DictionaryValue& params) {
322 attach_params_.reset(params.DeepCopy());
323 attach_params_->GetInteger(guestview::kParameterInstanceId,
324 &view_instance_id_);
325 }
326
325 void GuestViewBase::SetOpener(GuestViewBase* guest) { 327 void GuestViewBase::SetOpener(GuestViewBase* guest) {
326 if (guest && guest->IsViewType(GetViewType())) { 328 if (guest && guest->IsViewType(GetViewType())) {
327 opener_ = guest->AsWeakPtr(); 329 opener_ = guest->AsWeakPtr();
328 return; 330 return;
329 } 331 }
330 opener_ = base::WeakPtr<GuestViewBase>(); 332 opener_ = base::WeakPtr<GuestViewBase>();
331 } 333 }
332 334
333 void GuestViewBase::RegisterDestructionCallback( 335 void GuestViewBase::RegisterDestructionCallback(
334 const DestructionCallback& callback) { 336 const DestructionCallback& callback) {
335 destruction_callback_ = callback; 337 destruction_callback_ = callback;
336 } 338 }
337 339
338 void GuestViewBase::WillAttach(content::WebContents* embedder_web_contents, 340 void GuestViewBase::WillAttach(content::WebContents* embedder_web_contents) {
339 const base::DictionaryValue& extra_params) {
340 // After attachment, this GuestViewBase's lifetime is restricted to the 341 // After attachment, this GuestViewBase's lifetime is restricted to the
341 // lifetime of its embedder WebContents. Observing the RenderProcessHost 342 // lifetime of its embedder WebContents. Observing the RenderProcessHost
342 // of the embedder is no longer necessary. 343 // of the embedder is no longer necessary.
343 embedder_web_contents->GetRenderProcessHost()->RemoveObserver(this); 344 embedder_web_contents->GetRenderProcessHost()->RemoveObserver(this);
344 embedder_web_contents_ = embedder_web_contents; 345 embedder_web_contents_ = embedder_web_contents;
345 embedder_web_contents_observer_.reset( 346 embedder_web_contents_observer_.reset(
346 new EmbedderWebContentsObserver(this)); 347 new EmbedderWebContentsObserver(this));
347 extra_params.GetInteger(guestview::kParameterInstanceId, &view_instance_id_);
348 extra_params_.reset(extra_params.DeepCopy());
349 348
350 WillAttachToEmbedder(); 349 WillAttachToEmbedder();
351 } 350 }
352 351
353 void GuestViewBase::DidStopLoading(content::RenderViewHost* render_view_host) { 352 void GuestViewBase::DidStopLoading(content::RenderViewHost* render_view_host) {
354 if (!IsDragAndDropEnabled()) { 353 if (!IsDragAndDropEnabled()) {
355 const char script[] = "window.addEventListener('dragstart', function() { " 354 const char script[] = "window.addEventListener('dragstart', function() { "
356 " window.event.preventDefault(); " 355 " window.event.preventDefault(); "
357 "});"; 356 "});";
358 render_view_host->GetMainFrame()->ExecuteJavaScript( 357 render_view_host->GetMainFrame()->ExecuteJavaScript(
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 guest_web_contents); 439 guest_web_contents);
441 callback.Run(guest_web_contents); 440 callback.Run(guest_web_contents);
442 } 441 }
443 442
444 // static 443 // static
445 void GuestViewBase::RegisterGuestViewTypes() { 444 void GuestViewBase::RegisterGuestViewTypes() {
446 ExtensionsAPIClient::Get()->RegisterGuestViewTypes(); 445 ExtensionsAPIClient::Get()->RegisterGuestViewTypes();
447 } 446 }
448 447
449 } // namespace extensions 448 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/browser/guest_view/guest_view_base.h ('k') | extensions/browser/guest_view/guest_view_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698