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

Side by Side Diff: Source/core/loader/ImageLoader.cpp

Issue 923953002: Move rendering/RenderImage* to layout/LayoutImage* (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « Source/core/loader/ImageLoader.h ('k') | Source/core/page/DragController.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 * 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 17 matching lines...) Expand all
28 #include "core/dom/IncrementLoadEventDelayCount.h" 28 #include "core/dom/IncrementLoadEventDelayCount.h"
29 #include "core/dom/Microtask.h" 29 #include "core/dom/Microtask.h"
30 #include "core/events/Event.h" 30 #include "core/events/Event.h"
31 #include "core/events/EventSender.h" 31 #include "core/events/EventSender.h"
32 #include "core/fetch/FetchRequest.h" 32 #include "core/fetch/FetchRequest.h"
33 #include "core/fetch/MemoryCache.h" 33 #include "core/fetch/MemoryCache.h"
34 #include "core/fetch/ResourceFetcher.h" 34 #include "core/fetch/ResourceFetcher.h"
35 #include "core/frame/LocalFrame.h" 35 #include "core/frame/LocalFrame.h"
36 #include "core/html/HTMLImageElement.h" 36 #include "core/html/HTMLImageElement.h"
37 #include "core/html/parser/HTMLParserIdioms.h" 37 #include "core/html/parser/HTMLParserIdioms.h"
38 #include "core/layout/LayoutImage.h"
38 #include "core/layout/LayoutVideo.h" 39 #include "core/layout/LayoutVideo.h"
39 #include "core/rendering/RenderImage.h"
40 #include "core/rendering/svg/RenderSVGImage.h" 40 #include "core/rendering/svg/RenderSVGImage.h"
41 #include "platform/Logging.h" 41 #include "platform/Logging.h"
42 #include "platform/weborigin/SecurityOrigin.h" 42 #include "platform/weborigin/SecurityOrigin.h"
43 #include "public/platform/WebURLRequest.h" 43 #include "public/platform/WebURLRequest.h"
44 44
45 namespace blink { 45 namespace blink {
46 46
47 static ImageEventSender& loadEventSender() 47 static ImageEventSender& loadEventSender()
48 { 48 {
49 DEFINE_STATIC_LOCAL(ImageEventSender, sender, (EventTypeNames::load)); 49 DEFINE_STATIC_LOCAL(ImageEventSender, sender, (EventTypeNames::load));
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 errorEventSender().cancelEvent(this); 173 errorEventSender().cancelEvent(this);
174 m_hasPendingErrorEvent = false; 174 m_hasPendingErrorEvent = false;
175 } 175 }
176 m_imageComplete = true; 176 m_imageComplete = true;
177 if (newImage) 177 if (newImage)
178 newImage->addClient(this); 178 newImage->addClient(this);
179 if (oldImage) 179 if (oldImage)
180 oldImage->removeClient(this); 180 oldImage->removeClient(this);
181 } 181 }
182 182
183 if (RenderImageResource* imageResource = renderImageResource()) 183 if (LayoutImageResource* imageResource = layoutImageResource())
184 imageResource->resetAnimation(); 184 imageResource->resetAnimation();
185 } 185 }
186 186
187 static void configureRequest(FetchRequest& request, ImageLoader::BypassMainWorld Behavior bypassBehavior, Element& element) 187 static void configureRequest(FetchRequest& request, ImageLoader::BypassMainWorld Behavior bypassBehavior, Element& element)
188 { 188 {
189 if (bypassBehavior == ImageLoader::BypassMainWorldCSP) 189 if (bypassBehavior == ImageLoader::BypassMainWorldCSP)
190 request.setContentSecurityCheck(DoNotCheckContentSecurityPolicy); 190 request.setContentSecurityCheck(DoNotCheckContentSecurityPolicy);
191 191
192 AtomicString crossOriginMode = element.fastGetAttribute(HTMLNames::crossorig inAttr); 192 AtomicString crossOriginMode = element.fastGetAttribute(HTMLNames::crossorig inAttr);
193 if (!crossOriginMode.isNull()) 193 if (!crossOriginMode.isNull())
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 307
308 updateRenderer(); 308 updateRenderer();
309 // If newImage exists and is cached, addClient() will result in the load event 309 // If newImage exists and is cached, addClient() will result in the load event
310 // being queued to fire. Ensure this happens after beforeload is dispatc hed. 310 // being queued to fire. Ensure this happens after beforeload is dispatc hed.
311 if (newImage) 311 if (newImage)
312 newImage->addClient(this); 312 newImage->addClient(this);
313 313
314 if (oldImage) 314 if (oldImage)
315 oldImage->removeClient(this); 315 oldImage->removeClient(this);
316 } else if (updateBehavior == UpdateSizeChanged && m_element->renderer() && m _element->renderer()->isImage()) { 316 } else if (updateBehavior == UpdateSizeChanged && m_element->renderer() && m _element->renderer()->isImage()) {
317 toRenderImage(m_element->renderer())->intrinsicSizeChanged(); 317 toLayoutImage(m_element->renderer())->intrinsicSizeChanged();
318 } 318 }
319 319
320 if (RenderImageResource* imageResource = renderImageResource()) 320 if (LayoutImageResource* imageResource = layoutImageResource())
321 imageResource->resetAnimation(); 321 imageResource->resetAnimation();
322 322
323 // Only consider updating the protection ref-count of the Element immediatel y before returning 323 // Only consider updating the protection ref-count of the Element immediatel y before returning
324 // from this function as doing so might result in the destruction of this Im ageLoader. 324 // from this function as doing so might result in the destruction of this Im ageLoader.
325 updatedHasPendingEvent(); 325 updatedHasPendingEvent();
326 } 326 }
327 327
328 void ImageLoader::updateFromElement(UpdateFromElementBehavior updateBehavior) 328 void ImageLoader::updateFromElement(UpdateFromElementBehavior updateBehavior)
329 { 329 {
330 AtomicString imageSourceURL = m_element->imageSourceURL(); 330 AtomicString imageSourceURL = m_element->imageSourceURL();
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 if (resource->wasCanceled()) { 419 if (resource->wasCanceled()) {
420 m_hasPendingLoadEvent = false; 420 m_hasPendingLoadEvent = false;
421 // Only consider updating the protection ref-count of the Element immedi ately before returning 421 // Only consider updating the protection ref-count of the Element immedi ately before returning
422 // from this function as doing so might result in the destruction of thi s ImageLoader. 422 // from this function as doing so might result in the destruction of thi s ImageLoader.
423 updatedHasPendingEvent(); 423 updatedHasPendingEvent();
424 return; 424 return;
425 } 425 }
426 loadEventSender().dispatchEventSoon(this); 426 loadEventSender().dispatchEventSoon(this);
427 } 427 }
428 428
429 RenderImageResource* ImageLoader::renderImageResource() 429 LayoutImageResource* ImageLoader::layoutImageResource()
430 { 430 {
431 LayoutObject* renderer = m_element->renderer(); 431 LayoutObject* renderer = m_element->renderer();
432 432
433 if (!renderer) 433 if (!renderer)
434 return 0; 434 return 0;
435 435
436 // We don't return style generated image because it doesn't belong to the Im ageLoader. 436 // We don't return style generated image because it doesn't belong to the Im ageLoader.
437 // See <https://bugs.webkit.org/show_bug.cgi?id=42840> 437 // See <https://bugs.webkit.org/show_bug.cgi?id=42840>
438 if (renderer->isImage() && !static_cast<RenderImage*>(renderer)->isGenerated Content()) 438 if (renderer->isImage() && !static_cast<LayoutImage*>(renderer)->isGenerated Content())
439 return toRenderImage(renderer)->imageResource(); 439 return toLayoutImage(renderer)->imageResource();
440 440
441 if (renderer->isSVGImage()) 441 if (renderer->isSVGImage())
442 return toRenderSVGImage(renderer)->imageResource(); 442 return toRenderSVGImage(renderer)->imageResource();
443 443
444 if (renderer->isVideo()) 444 if (renderer->isVideo())
445 return toLayoutVideo(renderer)->imageResource(); 445 return toLayoutVideo(renderer)->imageResource();
446 446
447 return 0; 447 return 0;
448 } 448 }
449 449
450 void ImageLoader::updateRenderer() 450 void ImageLoader::updateRenderer()
451 { 451 {
452 RenderImageResource* imageResource = renderImageResource(); 452 LayoutImageResource* imageResource = layoutImageResource();
453 453
454 if (!imageResource) 454 if (!imageResource)
455 return; 455 return;
456 456
457 // Only update the renderer if it doesn't have an image or if what we have 457 // Only update the renderer if it doesn't have an image or if what we have
458 // is a complete image. This prevents flickering in the case where a dynami c 458 // is a complete image. This prevents flickering in the case where a dynami c
459 // change is happening between two images. 459 // change is happening between two images.
460 ImageResource* cachedImage = imageResource->cachedImage(); 460 ImageResource* cachedImage = imageResource->cachedImage();
461 if (m_image != cachedImage && (m_imageComplete || !cachedImage)) 461 if (m_image != cachedImage && (m_imageComplete || !cachedImage))
462 imageResource->setImageResource(m_image.get()); 462 imageResource->setImageResource(m_image.get());
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
589 #endif 589 #endif
590 } 590 }
591 591
592 #if ENABLE(OILPAN) 592 #if ENABLE(OILPAN)
593 ImageLoader::ImageLoaderClientRemover::~ImageLoaderClientRemover() 593 ImageLoader::ImageLoaderClientRemover::~ImageLoaderClientRemover()
594 { 594 {
595 m_loader.willRemoveClient(m_client); 595 m_loader.willRemoveClient(m_client);
596 } 596 }
597 #endif 597 #endif
598 } 598 }
OLDNEW
« no previous file with comments | « Source/core/loader/ImageLoader.h ('k') | Source/core/page/DragController.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698