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

Side by Side Diff: third_party/WebKit/Source/core/html/HTMLPlugInElement.cpp

Issue 2905233002: Remove the lifetime hack in ImageLoader where it keeps its assoc element alive (Closed)
Patch Set: Rebase Created 3 years, 6 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 /** 1 /**
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Stefan Schimanski (1Stein@gmx.de) 4 * (C) 2000 Stefan Schimanski (1Stein@gmx.de)
5 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. 5 * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 DCHECK(plugin_wrapper_.IsEmpty()); // cleared in detachLayoutTree() 89 DCHECK(plugin_wrapper_.IsEmpty()); // cleared in detachLayoutTree()
90 DCHECK(!is_delaying_load_event_); 90 DCHECK(!is_delaying_load_event_);
91 } 91 }
92 92
93 DEFINE_TRACE(HTMLPlugInElement) { 93 DEFINE_TRACE(HTMLPlugInElement) {
94 visitor->Trace(image_loader_); 94 visitor->Trace(image_loader_);
95 visitor->Trace(persisted_plugin_); 95 visitor->Trace(persisted_plugin_);
96 HTMLFrameOwnerElement::Trace(visitor); 96 HTMLFrameOwnerElement::Trace(visitor);
97 } 97 }
98 98
99 bool HTMLPlugInElement::HasPendingActivity() const {
100 return image_loader_ && image_loader_->HasPendingActivity();
101 }
102
99 void HTMLPlugInElement::SetPersistedPlugin(PluginView* plugin) { 103 void HTMLPlugInElement::SetPersistedPlugin(PluginView* plugin) {
100 if (persisted_plugin_ == plugin) 104 if (persisted_plugin_ == plugin)
101 return; 105 return;
102 if (persisted_plugin_) { 106 if (persisted_plugin_) {
103 persisted_plugin_->Hide(); 107 persisted_plugin_->Hide();
104 DisposeFrameOrPluginSoon(persisted_plugin_.Release()); 108 DisposeFrameOrPluginSoon(persisted_plugin_.Release());
105 } 109 }
106 persisted_plugin_ = plugin; 110 persisted_plugin_ = plugin;
107 } 111 }
108 112
(...skipping 559 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 672
669 void HTMLPlugInElement::LazyReattachIfNeeded() { 673 void HTMLPlugInElement::LazyReattachIfNeeded() {
670 if (!UseFallbackContent() && NeedsPluginUpdate() && GetLayoutObject() && 674 if (!UseFallbackContent() && NeedsPluginUpdate() && GetLayoutObject() &&
671 !IsImageType()) { 675 !IsImageType()) {
672 LazyReattachIfAttached(); 676 LazyReattachIfAttached();
673 SetPersistedPlugin(nullptr); 677 SetPersistedPlugin(nullptr);
674 } 678 }
675 } 679 }
676 680
677 } // namespace blink 681 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/html/HTMLPlugInElement.h ('k') | third_party/WebKit/Source/core/html/HTMLVideoElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698