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, 2008, 2010 Apple Inc. All rights reserv
ed. | 4 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2010 Apple Inc. All rights reserv
ed. |
5 * Copyright (C) 2010 Google Inc. All rights reserved. | 5 * Copyright (C) 2010 Google Inc. All rights reserved. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 26 matching lines...) Expand all Loading... |
37 #include "core/frame/UseCounter.h" | 37 #include "core/frame/UseCounter.h" |
38 #include "core/html/HTMLAnchorElement.h" | 38 #include "core/html/HTMLAnchorElement.h" |
39 #include "core/html/HTMLCanvasElement.h" | 39 #include "core/html/HTMLCanvasElement.h" |
40 #include "core/html/HTMLFormElement.h" | 40 #include "core/html/HTMLFormElement.h" |
41 #include "core/html/HTMLImageFallbackHelper.h" | 41 #include "core/html/HTMLImageFallbackHelper.h" |
42 #include "core/html/HTMLSourceElement.h" | 42 #include "core/html/HTMLSourceElement.h" |
43 #include "core/html/canvas/CanvasRenderingContext.h" | 43 #include "core/html/canvas/CanvasRenderingContext.h" |
44 #include "core/html/parser/HTMLParserIdioms.h" | 44 #include "core/html/parser/HTMLParserIdioms.h" |
45 #include "core/html/parser/HTMLSrcsetParser.h" | 45 #include "core/html/parser/HTMLSrcsetParser.h" |
46 #include "core/inspector/ConsoleMessage.h" | 46 #include "core/inspector/ConsoleMessage.h" |
| 47 #include "core/layout/LayoutImage.h" |
47 #include "core/page/Page.h" | 48 #include "core/page/Page.h" |
48 #include "core/rendering/RenderBlockFlow.h" | 49 #include "core/rendering/RenderBlockFlow.h" |
49 #include "core/rendering/RenderImage.h" | |
50 #include "platform/ContentType.h" | 50 #include "platform/ContentType.h" |
51 #include "platform/EventDispatchForbiddenScope.h" | 51 #include "platform/EventDispatchForbiddenScope.h" |
52 #include "platform/MIMETypeRegistry.h" | 52 #include "platform/MIMETypeRegistry.h" |
53 #include "platform/RuntimeEnabledFeatures.h" | 53 #include "platform/RuntimeEnabledFeatures.h" |
54 | 54 |
55 namespace blink { | 55 namespace blink { |
56 | 56 |
57 using namespace HTMLNames; | 57 using namespace HTMLNames; |
58 | 58 |
59 class HTMLImageElement::ViewportChangeListener final : public MediaQueryListList
ener { | 59 class HTMLImageElement::ViewportChangeListener final : public MediaQueryListList
ener { |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 float candidateDensity = candidate.density(); | 244 float candidateDensity = candidate.density(); |
245 if (candidateDensity >= 0) | 245 if (candidateDensity >= 0) |
246 m_imageDevicePixelRatio = 1.0 / candidateDensity; | 246 m_imageDevicePixelRatio = 1.0 / candidateDensity; |
247 if (candidate.resourceWidth() > 0) { | 247 if (candidate.resourceWidth() > 0) { |
248 m_intrinsicSizingViewportDependant = true; | 248 m_intrinsicSizingViewportDependant = true; |
249 UseCounter::count(document(), UseCounter::SrcsetWDescriptor); | 249 UseCounter::count(document(), UseCounter::SrcsetWDescriptor); |
250 } else if (!candidate.srcOrigin()) { | 250 } else if (!candidate.srcOrigin()) { |
251 UseCounter::count(document(), UseCounter::SrcsetXDescriptor); | 251 UseCounter::count(document(), UseCounter::SrcsetXDescriptor); |
252 } | 252 } |
253 if (renderer() && renderer()->isImage()) | 253 if (renderer() && renderer()->isImage()) |
254 toRenderImage(renderer())->setImageDevicePixelRatio(m_imageDevicePixelRa
tio); | 254 toLayoutImage(renderer())->setImageDevicePixelRatio(m_imageDevicePixelRa
tio); |
255 } | 255 } |
256 | 256 |
257 void HTMLImageElement::parseAttribute(const QualifiedName& name, const AtomicStr
ing& value) | 257 void HTMLImageElement::parseAttribute(const QualifiedName& name, const AtomicStr
ing& value) |
258 { | 258 { |
259 if (name == altAttr || name == titleAttr) { | 259 if (name == altAttr || name == titleAttr) { |
260 if (userAgentShadowRoot()) { | 260 if (userAgentShadowRoot()) { |
261 Element* text = userAgentShadowRoot()->getElementById("alttext"); | 261 Element* text = userAgentShadowRoot()->getElementById("alttext"); |
262 String value = altText(); | 262 String value = altText(); |
263 if (text && text->textContent() != value) | 263 if (text && text->textContent() != value) |
264 text->setTextContent(altText()); | 264 text->setTextContent(altText()); |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
334 } | 334 } |
335 | 335 |
336 LayoutObject* HTMLImageElement::createRenderer(const LayoutStyle& style) | 336 LayoutObject* HTMLImageElement::createRenderer(const LayoutStyle& style) |
337 { | 337 { |
338 if (style.hasContent()) | 338 if (style.hasContent()) |
339 return LayoutObject::createObject(this, style); | 339 return LayoutObject::createObject(this, style); |
340 | 340 |
341 if (m_useFallbackContent) | 341 if (m_useFallbackContent) |
342 return new RenderBlockFlow(this); | 342 return new RenderBlockFlow(this); |
343 | 343 |
344 RenderImage* image = new RenderImage(this); | 344 LayoutImage* image = new LayoutImage(this); |
345 image->setImageResource(RenderImageResource::create()); | 345 image->setImageResource(LayoutImageResource::create()); |
346 image->setImageDevicePixelRatio(m_imageDevicePixelRatio); | 346 image->setImageDevicePixelRatio(m_imageDevicePixelRatio); |
347 return image; | 347 return image; |
348 } | 348 } |
349 | 349 |
350 void HTMLImageElement::attach(const AttachContext& context) | 350 void HTMLImageElement::attach(const AttachContext& context) |
351 { | 351 { |
352 HTMLElement::attach(context); | 352 HTMLElement::attach(context); |
353 | 353 |
354 if (renderer() && renderer()->isImage()) { | 354 if (renderer() && renderer()->isImage()) { |
355 RenderImage* renderImage = toRenderImage(renderer()); | 355 LayoutImage* layoutImage = toLayoutImage(renderer()); |
356 RenderImageResource* renderImageResource = renderImage->imageResource(); | 356 LayoutImageResource* layoutImageResource = layoutImage->imageResource(); |
357 if (m_isFallbackImage) { | 357 if (m_isFallbackImage) { |
358 float deviceScaleFactor = blink::deviceScaleFactor(renderImage->fram
e()); | 358 float deviceScaleFactor = blink::deviceScaleFactor(layoutImage->fram
e()); |
359 pair<Image*, float> brokenImageAndImageScaleFactor = ImageResource::
brokenImage(deviceScaleFactor); | 359 pair<Image*, float> brokenImageAndImageScaleFactor = ImageResource::
brokenImage(deviceScaleFactor); |
360 ImageResource* newImageResource = new ImageResource(brokenImageAndIm
ageScaleFactor.first); | 360 ImageResource* newImageResource = new ImageResource(brokenImageAndIm
ageScaleFactor.first); |
361 renderImage->imageResource()->setImageResource(newImageResource); | 361 layoutImage->imageResource()->setImageResource(newImageResource); |
362 } | 362 } |
363 if (renderImageResource->hasImage()) | 363 if (layoutImageResource->hasImage()) |
364 return; | 364 return; |
365 | 365 |
366 if (!imageLoader().image() && !renderImageResource->cachedImage()) | 366 if (!imageLoader().image() && !layoutImageResource->cachedImage()) |
367 return; | 367 return; |
368 renderImageResource->setImageResource(imageLoader().image()); | 368 layoutImageResource->setImageResource(imageLoader().image()); |
369 } | 369 } |
370 } | 370 } |
371 | 371 |
372 Node::InsertionNotificationRequest HTMLImageElement::insertedInto(ContainerNode*
insertionPoint) | 372 Node::InsertionNotificationRequest HTMLImageElement::insertedInto(ContainerNode*
insertionPoint) |
373 { | 373 { |
374 if (!m_formWasSetByParser || NodeTraversal::highestAncestorOrSelf(*insertion
Point) != NodeTraversal::highestAncestorOrSelf(*m_form.get())) | 374 if (!m_formWasSetByParser || NodeTraversal::highestAncestorOrSelf(*insertion
Point) != NodeTraversal::highestAncestorOrSelf(*m_form.get())) |
375 resetFormOwner(); | 375 resetFormOwner(); |
376 if (m_listener) | 376 if (m_listener) |
377 document().mediaQueryMatcher().addViewportListener(m_listener); | 377 document().mediaQueryMatcher().addViewportListener(m_listener); |
378 | 378 |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 return FloatSize(image->imageSizeForRenderer(renderer(), 1.0f)); | 623 return FloatSize(image->imageSizeForRenderer(renderer(), 1.0f)); |
624 } | 624 } |
625 | 625 |
626 FloatSize HTMLImageElement::defaultDestinationSize() const | 626 FloatSize HTMLImageElement::defaultDestinationSize() const |
627 { | 627 { |
628 ImageResource* image = cachedImage(); | 628 ImageResource* image = cachedImage(); |
629 if (!image) | 629 if (!image) |
630 return FloatSize(); | 630 return FloatSize(); |
631 LayoutSize size; | 631 LayoutSize size; |
632 size = image->imageSizeForRenderer(renderer(), 1.0f); | 632 size = image->imageSizeForRenderer(renderer(), 1.0f); |
633 if (renderer() && renderer()->isRenderImage() && image->image() && !image->i
mage()->hasRelativeWidth()) | 633 if (renderer() && renderer()->isLayoutImage() && image->image() && !image->i
mage()->hasRelativeWidth()) |
634 size.scale(toRenderImage(renderer())->imageDevicePixelRatio()); | 634 size.scale(toLayoutImage(renderer())->imageDevicePixelRatio()); |
635 return FloatSize(size); | 635 return FloatSize(size); |
636 } | 636 } |
637 | 637 |
638 void HTMLImageElement::selectSourceURL(ImageLoader::UpdateFromElementBehavior be
havior) | 638 void HTMLImageElement::selectSourceURL(ImageLoader::UpdateFromElementBehavior be
havior) |
639 { | 639 { |
640 if (!document().isActive()) | 640 if (!document().isActive()) |
641 return; | 641 return; |
642 | 642 |
643 bool foundURL = false; | 643 bool foundURL = false; |
644 if (RuntimeEnabledFeatures::pictureEnabled()) { | 644 if (RuntimeEnabledFeatures::pictureEnabled()) { |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
726 ensureUserAgentShadowRoot(); | 726 ensureUserAgentShadowRoot(); |
727 } | 727 } |
728 | 728 |
729 bool HTMLImageElement::isOpaque() const | 729 bool HTMLImageElement::isOpaque() const |
730 { | 730 { |
731 Image* image = const_cast<HTMLImageElement*>(this)->imageContents(); | 731 Image* image = const_cast<HTMLImageElement*>(this)->imageContents(); |
732 return image && image->currentFrameKnownToBeOpaque(); | 732 return image && image->currentFrameKnownToBeOpaque(); |
733 } | 733 } |
734 | 734 |
735 } | 735 } |
OLD | NEW |