Changeset 162679 in webkit


Ignore:
Timestamp:
Jan 23, 2014 6:55:15 PM (10 years ago)
Author:
jhoneycutt@apple.com
Message:

Assertion failure in WebCore::PseudoElement::didRecalcStyle()
<https://bugs.webkit.org/show_bug.cgi?id=126761>
<rdar://problem/15793540>

Source/WebCore:

Reviewed by Andy Estes.

Test: fast/images/animate-list-item-image-assertion.html

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::didRecalcStyle):
Check isRenderImage() rather than isImage() before casting to
RenderImage.

  • editing/ios/EditorIOS.mm:

(WebCore::getImage):
Ditto.

  • editing/mac/EditorMac.mm:

(WebCore::getImage):
Ditto.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::didAttachRenderers):
Ditto.

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::renderImageResource):
Ditto.

  • page/DragController.cpp:

(WebCore::getCachedImage):
Ditto.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::isDirectlyCompositedImage):
(WebCore::RenderLayerBacking::updateImageContents):
Ditto.

Source/WebKit/mac:

Some areas of code were erroneously checking the value of
RenderObject::isImage() rather than RenderObject::isRenderImage()
before casting the object to RenderImage.

This could lead to an assertion failure for RenderListMarkers, which
may return true for isImage(), but are not RenderImages.

Reviewed by Andy Estes.

  • Misc/WebNSPasteboardExtras.mm:

(-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
Check isRenderImage() rather than isImage() before casting to
RenderImage.

Source/WebKit2:

Reviewed by Andy Estes.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):
Check isRenderImage() rather than isImage() before casting to
RenderImage.

LayoutTests:

Reviewed by Andy Estes.

  • fast/images/animate-list-item-image-assertion-expected.txt: Added.
  • fast/images/animate-list-item-image-assertion.html: Added.
Location:
trunk
Files:
2 added
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r162676 r162679  
     12014-01-23  Jon Honeycutt  <jhoneycutt@apple.com>
     2
     3        Assertion failure in WebCore::PseudoElement::didRecalcStyle()
     4        <https://bugs.webkit.org/show_bug.cgi?id=126761>
     5        <rdar://problem/15793540>
     6
     7        Reviewed by Andy Estes.
     8
     9        * fast/images/animate-list-item-image-assertion-expected.txt: Added.
     10        * fast/images/animate-list-item-image-assertion.html: Added.
     11
    1122014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
    213
  • trunk/Source/WebCore/ChangeLog

    r162676 r162679  
     12014-01-23  Jon Honeycutt  <jhoneycutt@apple.com>
     2
     3        Assertion failure in WebCore::PseudoElement::didRecalcStyle()
     4        <https://bugs.webkit.org/show_bug.cgi?id=126761>
     5        <rdar://problem/15793540>
     6
     7        Reviewed by Andy Estes.
     8
     9        Test: fast/images/animate-list-item-image-assertion.html
     10
     11        * dom/PseudoElement.cpp:
     12        (WebCore::PseudoElement::didRecalcStyle):
     13        Check isRenderImage() rather than isImage() before casting to
     14        RenderImage.
     15
     16        * editing/ios/EditorIOS.mm:
     17        (WebCore::getImage):
     18        Ditto.
     19
     20        * editing/mac/EditorMac.mm:
     21        (WebCore::getImage):
     22        Ditto.
     23
     24        * html/HTMLImageElement.cpp:
     25        (WebCore::HTMLImageElement::parseAttribute):
     26        (WebCore::HTMLImageElement::didAttachRenderers):
     27        Ditto.
     28
     29        * loader/ImageLoader.cpp:
     30        (WebCore::ImageLoader::renderImageResource):
     31        Ditto.
     32
     33        * page/DragController.cpp:
     34        (WebCore::getCachedImage):
     35        Ditto.
     36
     37        * rendering/RenderLayerBacking.cpp:
     38        (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
     39        (WebCore::RenderLayerBacking::updateImageContents):
     40        Ditto.
     41
    1422014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
    243
  • trunk/Source/WebCore/dom/PseudoElement.cpp

    r161153 r162679  
    113113    for (RenderObject* child = renderer->nextInPreOrder(renderer); child; child = child->nextInPreOrder(renderer)) {
    114114        // We only manage the style for the generated content which must be images or text.
    115         if (!child->isImage())
     115        if (!child->isRenderImage())
    116116            continue;
    117117        toRenderImage(*child).setStyle(RenderImage::createStyleInheritingFromPseudoStyle(renderer->style()));
  • trunk/Source/WebCore/editing/ios/EditorIOS.mm

    r162158 r162679  
    346346{
    347347    auto renderer = imageElement.renderer();
    348     if (!renderer || !renderer->isImage())
     348    if (!renderer || !renderer->isRenderImage())
    349349        return;
    350350
  • trunk/Source/WebCore/editing/mac/EditorMac.mm

    r162158 r162679  
    367367{
    368368    auto renderer = imageElement.renderer();
    369     if (!renderer || !renderer->isImage())
     369    if (!renderer || !renderer->isRenderImage())
    370370        return;
    371371
  • trunk/Source/WebCore/html/HTMLAreaElement.cpp

    r160733 r162679  
    221221
    222222    auto renderer = imageElement->renderer();
    223     if (!renderer || !renderer->isImage())
     223    if (!renderer || !renderer->isRenderImage())
    224224        return;
    225225
  • trunk/Source/WebCore/html/HTMLImageElement.cpp

    r162356 r162679  
    116116{
    117117    if (name == altAttr) {
    118         if (renderer() && renderer()->isImage())
     118        if (renderer() && renderer()->isRenderImage())
    119119            toRenderImage(renderer())->updateAltText();
    120120    } else if (name == srcAttr || name == srcsetAttr) {
     
    193193void HTMLImageElement::didAttachRenderers()
    194194{
    195     if (!renderer() || !renderer()->isImage())
     195    if (!renderer() || !renderer()->isRenderImage())
    196196        return;
    197197    if (m_imageLoader.hasPendingBeforeLoadEvent())
  • trunk/Source/WebCore/loader/ImageLoader.cpp

    r162356 r162679  
    326326    // We don't return style generated image because it doesn't belong to the ImageLoader.
    327327    // See <https://bugs.webkit.org/show_bug.cgi?id=42840>
    328     if (renderer->isImage() && !toRenderImage(*renderer).isGeneratedContent())
     328    if (renderer->isRenderImage() && !toRenderImage(*renderer).isGeneratedContent())
    329329        return &toRenderImage(*renderer).imageResource();
    330330
  • trunk/Source/WebCore/page/DragController.cpp

    r162451 r162679  
    656656{
    657657    RenderObject* renderer = element.renderer();
    658     if (!renderer || !renderer->isImage())
     658    if (!renderer || !renderer->isRenderImage())
    659659        return 0;
    660660    RenderImage* image = toRenderImage(renderer);
  • trunk/Source/WebCore/rendering/RenderLayerBacking.cpp

    r162663 r162679  
    18661866bool RenderLayerBacking::isDirectlyCompositedImage() const
    18671867{
    1868     if (!renderer().isImage() || m_owningLayer.hasBoxDecorationsOrBackground() || renderer().hasClip())
     1868    if (!renderer().isRenderImage() || m_owningLayer.hasBoxDecorationsOrBackground() || renderer().hasClip())
    18691869        return false;
    18701870
     
    19131913void RenderLayerBacking::updateImageContents()
    19141914{
    1915     ASSERT(renderer().isImage());
     1915    ASSERT(renderer().isRenderImage());
    19161916    RenderImage& imageRenderer = toRenderImage(renderer());
    19171917
  • trunk/Source/WebKit/mac/ChangeLog

    r162676 r162679  
     12014-01-23  Jon Honeycutt  <jhoneycutt@apple.com>
     2
     3        Assertion failure in WebCore::PseudoElement::didRecalcStyle()
     4        <https://bugs.webkit.org/show_bug.cgi?id=126761>
     5        <rdar://problem/15793540>
     6
     7        Some areas of code were erroneously checking the value of
     8        RenderObject::isImage() rather than RenderObject::isRenderImage()
     9        before casting the object to RenderImage.
     10
     11        This could lead to an assertion failure for RenderListMarkers, which
     12        may return true for isImage(), but are not RenderImages.
     13
     14        Reviewed by Andy Estes.
     15
     16        * Misc/WebNSPasteboardExtras.mm:
     17        (-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
     18        Check isRenderImage() rather than isImage() before casting to
     19        RenderImage.
     20
    1212014-01-23  Joseph Pecoraro  <pecoraro@apple.com>
    222
  • trunk/Source/WebKit/mac/Misc/WebNSPasteboardExtras.mm

    r161185 r162679  
    273273    NSString *extension = @"";
    274274    if (RenderObject* renderer = core(element)->renderer()) {
    275         if (renderer->isImage()) {
     275        if (renderer->isRenderImage()) {
    276276            if (CachedImage* image = toRenderImage(renderer)->cachedImage()) {
    277277                extension = image->image()->filenameExtension();
  • trunk/Source/WebKit2/ChangeLog

    r162678 r162679  
     12014-01-23  Jon Honeycutt  <jhoneycutt@apple.com>
     2
     3        Assertion failure in WebCore::PseudoElement::didRecalcStyle()
     4        <https://bugs.webkit.org/show_bug.cgi?id=126761>
     5        <rdar://problem/15793540>
     6
     7        Reviewed by Andy Estes.
     8
     9        * WebProcess/WebPage/ios/WebPageIOS.mm:
     10        (WebKit::WebPage::getPositionInformation):
     11        Check isRenderImage() rather than isImage() before casting to
     12        RenderImage.
     13
    1142014-01-23  Anders Carlsson  <andersca@apple.com>
    215
  • trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm

    r162582 r162679  
    824824            return;
    825825
    826         if (element->renderer() && element->renderer()->isImage()) {
     826        if (element->renderer() && element->renderer()->isRenderImage()) {
    827827            URL url = toRenderImage(element->renderer())->cachedImage()->url();
    828828            if (!url.string().isNull())
Note: See TracChangeset for help on using the changeset viewer.