| 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 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 m_image = newImage; | 237 m_image = newImage; |
| 238 if (m_hasPendingLoadEvent) { | 238 if (m_hasPendingLoadEvent) { |
| 239 loadEventSender().cancelEvent(this); | 239 loadEventSender().cancelEvent(this); |
| 240 m_hasPendingLoadEvent = false; | 240 m_hasPendingLoadEvent = false; |
| 241 } | 241 } |
| 242 if (m_hasPendingErrorEvent) { | 242 if (m_hasPendingErrorEvent) { |
| 243 errorEventSender().cancelEvent(this); | 243 errorEventSender().cancelEvent(this); |
| 244 m_hasPendingErrorEvent = false; | 244 m_hasPendingErrorEvent = false; |
| 245 } | 245 } |
| 246 m_imageComplete = true; | 246 m_imageComplete = true; |
| 247 if (newImage) | 247 if (newImage) { |
| 248 newImage->addClient(this); | 248 newImage->addClient(this); |
| 249 if (oldImage) | 249 newImage->addObserver(this); |
| 250 } |
| 251 if (oldImage) { |
| 250 oldImage->removeClient(this); | 252 oldImage->removeClient(this); |
| 253 oldImage->removeObserver(this); |
| 254 } |
| 251 } | 255 } |
| 252 | 256 |
| 253 if (LayoutImageResource* imageResource = layoutImageResource()) | 257 if (LayoutImageResource* imageResource = layoutImageResource()) |
| 254 imageResource->resetAnimation(); | 258 imageResource->resetAnimation(); |
| 255 } | 259 } |
| 256 | 260 |
| 257 static void configureRequest(FetchRequest& request, ImageLoader::BypassMainWorld
Behavior bypassBehavior, Element& element, const ClientHintsPreferences& clientH
intsPreferences) | 261 static void configureRequest(FetchRequest& request, ImageLoader::BypassMainWorld
Behavior bypassBehavior, Element& element, const ClientHintsPreferences& clientH
intsPreferences) |
| 258 { | 262 { |
| 259 if (bypassBehavior == ImageLoader::BypassMainWorldCSP) | 263 if (bypassBehavior == ImageLoader::BypassMainWorldCSP) |
| 260 request.setContentSecurityCheck(DoNotCheckContentSecurityPolicy); | 264 request.setContentSecurityCheck(DoNotCheckContentSecurityPolicy); |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 383 m_hasPendingErrorEvent = false; | 387 m_hasPendingErrorEvent = false; |
| 384 } | 388 } |
| 385 | 389 |
| 386 m_image = newImage; | 390 m_image = newImage; |
| 387 m_hasPendingLoadEvent = newImage; | 391 m_hasPendingLoadEvent = newImage; |
| 388 m_imageComplete = !newImage; | 392 m_imageComplete = !newImage; |
| 389 | 393 |
| 390 updateLayoutObject(); | 394 updateLayoutObject(); |
| 391 // If newImage exists and is cached, addClient() will result in the load
event | 395 // If newImage exists and is cached, addClient() will result in the load
event |
| 392 // being queued to fire. Ensure this happens after beforeload is dispatc
hed. | 396 // being queued to fire. Ensure this happens after beforeload is dispatc
hed. |
| 393 if (newImage) | 397 if (newImage) { |
| 394 newImage->addClient(this); | 398 newImage->addClient(this); |
| 395 | 399 newImage->addObserver(this); |
| 396 if (oldImage) | 400 } |
| 401 if (oldImage) { |
| 397 oldImage->removeClient(this); | 402 oldImage->removeClient(this); |
| 403 oldImage->removeObserver(this); |
| 404 } |
| 398 } | 405 } |
| 399 | 406 |
| 400 if (LayoutImageResource* imageResource = layoutImageResource()) | 407 if (LayoutImageResource* imageResource = layoutImageResource()) |
| 401 imageResource->resetAnimation(); | 408 imageResource->resetAnimation(); |
| 402 | 409 |
| 403 // Only consider updating the protection ref-count of the Element immediatel
y before returning | 410 // Only consider updating the protection ref-count of the Element immediatel
y before returning |
| 404 // from this function as doing so might result in the destruction of this Im
ageLoader. | 411 // from this function as doing so might result in the destruction of this Im
ageLoader. |
| 405 updatedHasPendingEvent(); | 412 updatedHasPendingEvent(); |
| 406 } | 413 } |
| 407 | 414 |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 646 memoryCache()->updateDecodedResource(m_image.get(), UpdateForPropert
yChange, MemoryCacheLiveResourcePriorityLow); | 653 memoryCache()->updateDecodedResource(m_image.get(), UpdateForPropert
yChange, MemoryCacheLiveResourcePriorityLow); |
| 647 } | 654 } |
| 648 } | 655 } |
| 649 | 656 |
| 650 void ImageLoader::removeClient(ImageLoaderClient* client) | 657 void ImageLoader::removeClient(ImageLoaderClient* client) |
| 651 { | 658 { |
| 652 willRemoveClient(*client); | 659 willRemoveClient(*client); |
| 653 m_clients.remove(client); | 660 m_clients.remove(client); |
| 654 } | 661 } |
| 655 | 662 |
| 656 bool ImageLoader::getImageAnimationPolicy(ImageResource*, ImageAnimationPolicy&
policy) | 663 bool ImageLoader::getImageAnimationPolicy(ImageAnimationPolicy& policy) |
| 657 { | 664 { |
| 658 if (!element()->document().settings()) | 665 if (!element()->document().settings()) |
| 659 return false; | 666 return false; |
| 660 | 667 |
| 661 policy = element()->document().settings()->imageAnimationPolicy(); | 668 policy = element()->document().settings()->imageAnimationPolicy(); |
| 662 return true; | 669 return true; |
| 663 } | 670 } |
| 664 | 671 |
| 665 void ImageLoader::dispatchPendingLoadEvents() | 672 void ImageLoader::dispatchPendingLoadEvents() |
| 666 { | 673 { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 682 | 689 |
| 683 void ImageLoader::sourceImageChanged() | 690 void ImageLoader::sourceImageChanged() |
| 684 { | 691 { |
| 685 for (auto& client : m_clients) { | 692 for (auto& client : m_clients) { |
| 686 ImageLoaderClient* handle = client; | 693 ImageLoaderClient* handle = client; |
| 687 handle->notifyImageSourceChanged(); | 694 handle->notifyImageSourceChanged(); |
| 688 } | 695 } |
| 689 } | 696 } |
| 690 | 697 |
| 691 } // namespace blink | 698 } // namespace blink |
| OLD | NEW |