| OLD | NEW |
| 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 * Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010 Apple Inc. All rights reserv
ed. | 4 * Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010 Apple Inc. All rights reserv
ed. |
| 5 * | 5 * |
| 6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
| 7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
| 8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
| 9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
| 10 * | 10 * |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 void ImageLoader::doUpdateFromElement(BypassMainWorldBehavior bypassBehavior, Up
dateFromElementBehavior updateBehavior, const KURL& url, ReferrerPolicy referrer
Policy) | 257 void ImageLoader::doUpdateFromElement(BypassMainWorldBehavior bypassBehavior, Up
dateFromElementBehavior updateBehavior, const KURL& url, ReferrerPolicy referrer
Policy) |
| 258 { | 258 { |
| 259 // FIXME: According to | 259 // FIXME: According to |
| 260 // http://www.whatwg.org/specs/web-apps/current-work/multipage/embedded-cont
ent.html#the-img-element:the-img-element-55 | 260 // http://www.whatwg.org/specs/web-apps/current-work/multipage/embedded-cont
ent.html#the-img-element:the-img-element-55 |
| 261 // When "update image" is called due to environment changes and the load fai
ls, onerror should not be called. | 261 // When "update image" is called due to environment changes and the load fai
ls, onerror should not be called. |
| 262 // That is currently not the case. | 262 // That is currently not the case. |
| 263 // | 263 // |
| 264 // We don't need to call clearLoader here: Either we were called from the | 264 // We don't need to call clearLoader here: Either we were called from the |
| 265 // task, or our caller updateFromElement cleared the task's loader (and set | 265 // task, or our caller updateFromElement cleared the task's loader (and set |
| 266 // m_pendingTask to null). | 266 // m_pendingTask to null). |
| 267 m_pendingTask.clear(); | 267 m_pendingTask.reset(); |
| 268 // Make sure to only decrement the count when we exit this function | 268 // Make sure to only decrement the count when we exit this function |
| 269 std::unique_ptr<IncrementLoadEventDelayCount> loadDelayCounter; | 269 std::unique_ptr<IncrementLoadEventDelayCount> loadDelayCounter; |
| 270 loadDelayCounter.swap(m_loadDelayCounter); | 270 loadDelayCounter.swap(m_loadDelayCounter); |
| 271 | 271 |
| 272 Document& document = m_element->document(); | 272 Document& document = m_element->document(); |
| 273 if (!document.isActive()) | 273 if (!document.isActive()) |
| 274 return; | 274 return; |
| 275 | 275 |
| 276 AtomicString imageSourceURL = m_element->imageSourceURL(); | 276 AtomicString imageSourceURL = m_element->imageSourceURL(); |
| 277 ImageResource* newImage = nullptr; | 277 ImageResource* newImage = nullptr; |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 368 if (m_loadingImageDocument && updateBehavior != UpdateForcedReload) { | 368 if (m_loadingImageDocument && updateBehavior != UpdateForcedReload) { |
| 369 setImage(ImageResource::create(imageSourceToKURL(m_element->imageSourceU
RL()))); | 369 setImage(ImageResource::create(imageSourceToKURL(m_element->imageSourceU
RL()))); |
| 370 m_image->setStatus(Resource::Pending); | 370 m_image->setStatus(Resource::Pending); |
| 371 return; | 371 return; |
| 372 } | 372 } |
| 373 | 373 |
| 374 // If we have a pending task, we have to clear it -- either we're | 374 // If we have a pending task, we have to clear it -- either we're |
| 375 // now loading immediately, or we need to reset the task's state. | 375 // now loading immediately, or we need to reset the task's state. |
| 376 if (m_pendingTask) { | 376 if (m_pendingTask) { |
| 377 m_pendingTask->clearLoader(); | 377 m_pendingTask->clearLoader(); |
| 378 m_pendingTask.clear(); | 378 m_pendingTask.reset(); |
| 379 } | 379 } |
| 380 | 380 |
| 381 KURL url = imageSourceToKURL(imageSourceURL); | 381 KURL url = imageSourceToKURL(imageSourceURL); |
| 382 if (shouldLoadImmediately(url)) { | 382 if (shouldLoadImmediately(url)) { |
| 383 doUpdateFromElement(DoNotBypassMainWorldCSP, updateBehavior, url, referr
erPolicy); | 383 doUpdateFromElement(DoNotBypassMainWorldCSP, updateBehavior, url, referr
erPolicy); |
| 384 return; | 384 return; |
| 385 } | 385 } |
| 386 // Allow the idiom "img.src=''; img.src='.." to clear down the image before | 386 // Allow the idiom "img.src=''; img.src='.." to clear down the image before |
| 387 // an asynchronous load completes. | 387 // an asynchronous load completes. |
| 388 if (imageSourceURL.isEmpty()) { | 388 if (imageSourceURL.isEmpty()) { |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 605 | 605 |
| 606 void ImageLoader::elementDidMoveToNewDocument() | 606 void ImageLoader::elementDidMoveToNewDocument() |
| 607 { | 607 { |
| 608 if (m_loadDelayCounter) | 608 if (m_loadDelayCounter) |
| 609 m_loadDelayCounter->documentChanged(m_element->document()); | 609 m_loadDelayCounter->documentChanged(m_element->document()); |
| 610 clearFailedLoadURL(); | 610 clearFailedLoadURL(); |
| 611 setImage(0); | 611 setImage(0); |
| 612 } | 612 } |
| 613 | 613 |
| 614 } // namespace blink | 614 } // namespace blink |
| OLD | NEW |