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

Unified Diff: Source/core/loader/ImageLoader.cpp

Issue 19393004: Allow eviction of ImageBitmaps that are created from ImageElements. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix drawImage out of bounds src rect. Created 7 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: Source/core/loader/ImageLoader.cpp
diff --git a/Source/core/loader/ImageLoader.cpp b/Source/core/loader/ImageLoader.cpp
index 9fbabee79622c331ba92247f7abdc00eb8968b9a..73fa90a5042561d00acf68b6469811382e4ad928 100644
--- a/Source/core/loader/ImageLoader.cpp
+++ b/Source/core/loader/ImageLoader.cpp
@@ -115,6 +115,7 @@ void ImageLoader::setImageWithoutConsideringPendingLoadEvent(CachedImage* newIma
ASSERT(m_failedLoadURL.isEmpty());
CachedImage* oldImage = m_image.get();
if (newImage != oldImage) {
+ sourceImageChanged();
m_image = newImage;
if (m_hasPendingBeforeLoadEvent) {
beforeLoadEventSender().cancelEvent(this);
@@ -190,9 +191,11 @@ void ImageLoader::updateFromElement()
m_hasPendingErrorEvent = true;
errorEventSender().dispatchEventSoon(this);
}
-
+
CachedImage* oldImage = m_image.get();
if (newImage != oldImage) {
+ sourceImageChanged();
+
if (m_hasPendingBeforeLoadEvent) {
beforeLoadEventSender().cancelEvent(this);
m_hasPendingBeforeLoadEvent = false;
@@ -444,6 +447,15 @@ void ImageLoader::elementDidMoveToNewDocument()
setImage(0);
}
+void ImageLoader::sourceImageChanged()
+{
+ HashSet<ImageLoaderClient*>::iterator end = m_clients.end();
+ for (HashSet<ImageLoaderClient*>::iterator it = m_clients.begin(); it != end; ++it) {
+ ImageLoaderClient* handle = *it;
+ handle->notifyImageSourceChanged();
+ }
+}
+
inline void ImageLoader::clearFailedLoadURL()
{
m_failedLoadURL = AtomicString();

Powered by Google App Engine
This is Rietveld 408576698