OLD | NEW |
1 /* | 1 /* |
2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) | 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) |
3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) | 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) |
4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) | 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) |
5 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) | 5 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
6 Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 6 Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
7 | 7 |
8 This library is free software; you can redistribute it and/or | 8 This library is free software; you can redistribute it and/or |
9 modify it under the terms of the GNU Library General Public | 9 modify it under the terms of the GNU Library General Public |
10 License as published by the Free Software Foundation; either | 10 License as published by the Free Software Foundation; either |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 setLoading(false); | 90 setLoading(false); |
91 setCustomAcceptHeader(); | 91 setCustomAcceptHeader(); |
92 } | 92 } |
93 | 93 |
94 ImageResource::~ImageResource() | 94 ImageResource::~ImageResource() |
95 { | 95 { |
96 WTF_LOG(Timers, "~ImageResource %p", this); | 96 WTF_LOG(Timers, "~ImageResource %p", this); |
97 clearImage(); | 97 clearImage(); |
98 } | 98 } |
99 | 99 |
| 100 DEFINE_TRACE(ImageResource) |
| 101 { |
| 102 Resource::trace(visitor); |
| 103 ImageObserver::trace(visitor); |
| 104 } |
| 105 |
100 void ImageResource::load(ResourceFetcher* fetcher, const ResourceLoaderOptions&
options) | 106 void ImageResource::load(ResourceFetcher* fetcher, const ResourceLoaderOptions&
options) |
101 { | 107 { |
102 if (!fetcher || fetcher->autoLoadImages()) | 108 if (!fetcher || fetcher->autoLoadImages()) |
103 Resource::load(fetcher, options); | 109 Resource::load(fetcher, options); |
104 else | 110 else |
105 setLoading(false); | 111 setLoading(false); |
106 } | 112 } |
107 | 113 |
108 void ImageResource::didAddClient(ResourceClient* c) | 114 void ImageResource::didAddClient(ResourceClient* c) |
109 { | 115 { |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 | 277 |
272 if (m_response.mimeType() == "image/svg+xml") { | 278 if (m_response.mimeType() == "image/svg+xml") { |
273 m_image = SVGImage::create(this); | 279 m_image = SVGImage::create(this); |
274 } else { | 280 } else { |
275 m_image = BitmapImage::create(this); | 281 m_image = BitmapImage::create(this); |
276 } | 282 } |
277 } | 283 } |
278 | 284 |
279 inline void ImageResource::clearImage() | 285 inline void ImageResource::clearImage() |
280 { | 286 { |
| 287 if (!m_image) |
| 288 return; |
| 289 |
281 // If our Image has an observer, it's always us so we need to clear the back
pointer | 290 // If our Image has an observer, it's always us so we need to clear the back
pointer |
282 // before dropping our reference. | 291 // before dropping our reference. |
283 if (m_image) | 292 m_image->setImageObserver(nullptr); |
284 m_image->setImageObserver(nullptr); | |
285 m_image.clear(); | 293 m_image.clear(); |
286 } | 294 } |
287 | 295 |
288 void ImageResource::appendData(const char* data, size_t length) | 296 void ImageResource::appendData(const char* data, size_t length) |
289 { | 297 { |
290 Resource::appendData(data, length); | 298 Resource::appendData(data, length); |
291 if (!loadingMultipartContent()) | 299 if (!loadingMultipartContent()) |
292 updateImage(false); | 300 updateImage(false); |
293 } | 301 } |
294 | 302 |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 return true; | 464 return true; |
457 return !securityOrigin->taintsCanvas(response().url()); | 465 return !securityOrigin->taintsCanvas(response().url()); |
458 } | 466 } |
459 | 467 |
460 bool ImageResource::loadingMultipartContent() const | 468 bool ImageResource::loadingMultipartContent() const |
461 { | 469 { |
462 return m_loader && m_loader->loadingMultipartContent(); | 470 return m_loader && m_loader->loadingMultipartContent(); |
463 } | 471 } |
464 | 472 |
465 } // namespace blink | 473 } // namespace blink |
OLD | NEW |