Changeset 186134 in webkit


Ignore:
Timestamp:
Jun 30, 2015 3:00:36 PM (9 years ago)
Author:
Simon Fraser
Message:

Crash under _layoutForNodeHighlight: when inspecting espn.com
https://bugs.webkit.org/show_bug.cgi?id=146422

Reviewed by Joseph Pecoraro.
Source/WebKit/mac:

When inspecting espn.com, MobileSafari sometimes crashes, because
highlight.quads is empty. I was not able to quickly determine why.

Fix by bailing in this case.

  • WebInspector/WebNodeHighlightView.mm:

(-[WebNodeHighlightView _layoutForNodeHighlight:parent:]):

Source/WebKit2:

When inspecting espn.com, MobileSafari sometimes crashes, because
highlight.quads is empty. I was not able to quickly determine why.

Fix by bailing in this case.

  • UIProcess/WKInspectorHighlightView.mm:

(-[WKInspectorHighlightView _layoutForNodeHighlight:]):

Location:
trunk/Source
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/mac/ChangeLog

    r186124 r186134  
     12015-06-30  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Crash under _layoutForNodeHighlight: when inspecting espn.com
     4        https://bugs.webkit.org/show_bug.cgi?id=146422
     5
     6        Reviewed by Joseph Pecoraro.
     7
     8        When inspecting espn.com, MobileSafari sometimes crashes, because
     9        highlight.quads is empty. I was not able to quickly determine why.
     10
     11        Fix by bailing in this case.
     12
     13        * WebInspector/WebNodeHighlightView.mm:
     14        (-[WebNodeHighlightView _layoutForNodeHighlight:parent:]):
     15
    1162015-06-30  Anders Carlsson  <andersca@apple.com>
    217
  • trunk/Source/WebKit/mac/WebInspector/WebNodeHighlightView.mm

    r178636 r186134  
    262262}
    263263
    264 - (void)_layoutForNodeHighlight:(Highlight*)h parent:(CALayer *)parentLayer
    265 {
     264- (void)_layoutForNodeHighlight:(Highlight*)highlight parent:(CALayer *)parentLayer
     265{
     266    if (!highlight->quads.size()) {
     267        [self _removeAllLayers];
     268        return;
     269    }
     270
    266271    [self _attach:parentLayer numLayers:4];
    267272
     
    271276    CAShapeLayer *contentLayer = [_layers objectAtIndex:3];
    272277
    273     FloatQuad marginQuad = h->quads[0];
    274     FloatQuad borderQuad = h->quads[1];
    275     FloatQuad paddingQuad = h->quads[2];
    276     FloatQuad contentQuad = h->quads[3];
    277 
    278     marginLayer.fillColor = cachedCGColor(h->marginColor, ColorSpaceDeviceRGB);
    279     borderLayer.fillColor = cachedCGColor(h->borderColor, ColorSpaceDeviceRGB);
    280     paddingLayer.fillColor = cachedCGColor(h->paddingColor, ColorSpaceDeviceRGB);
    281     contentLayer.fillColor = cachedCGColor(h->contentColor, ColorSpaceDeviceRGB);
     278    FloatQuad marginQuad = highlight->quads[0];
     279    FloatQuad borderQuad = highlight->quads[1];
     280    FloatQuad paddingQuad = highlight->quads[2];
     281    FloatQuad contentQuad = highlight->quads[3];
     282
     283    marginLayer.fillColor = cachedCGColor(highlight->marginColor, ColorSpaceDeviceRGB);
     284    borderLayer.fillColor = cachedCGColor(highlight->borderColor, ColorSpaceDeviceRGB);
     285    paddingLayer.fillColor = cachedCGColor(highlight->paddingColor, ColorSpaceDeviceRGB);
     286    contentLayer.fillColor = cachedCGColor(highlight->contentColor, ColorSpaceDeviceRGB);
    282287
    283288    layerPathWithHole(marginLayer, marginQuad, borderQuad);
     
    287292}
    288293
    289 - (void)_layoutForRectsHighlight:(Highlight*)h parent:(CALayer *)parentLayer
    290 {
    291     NSUInteger numLayers = (NSUInteger)h->quads.size();
     294- (void)_layoutForRectsHighlight:(Highlight*)highlight parent:(CALayer *)parentLayer
     295{
     296    NSUInteger numLayers = highlight->quads.size();
    292297    if (!numLayers) {
    293298        [self _removeAllLayers];
     
    297302    [self _attach:parentLayer numLayers:numLayers];
    298303
    299     CGColorRef contentColor = cachedCGColor(h->contentColor, ColorSpaceDeviceRGB);
     304    CGColorRef contentColor = cachedCGColor(highlight->contentColor, ColorSpaceDeviceRGB);
    300305    for (NSUInteger i = 0; i < numLayers; ++i) {
    301306        CAShapeLayer *layer = [_layers objectAtIndex:i];
    302307        layer.fillColor = contentColor;
    303         layerPath(layer, h->quads[i]);
     308        layerPath(layer, highlight->quads[i]);
    304309    }
    305310}
  • trunk/Source/WebKit2/ChangeLog

    r186133 r186134  
     12015-06-30  Simon Fraser  <simon.fraser@apple.com>
     2
     3        Crash under _layoutForNodeHighlight: when inspecting espn.com
     4        https://bugs.webkit.org/show_bug.cgi?id=146422
     5
     6        Reviewed by Joseph Pecoraro.
     7       
     8        When inspecting espn.com, MobileSafari sometimes crashes, because
     9        highlight.quads is empty. I was not able to quickly determine why.
     10
     11        Fix by bailing in this case.
     12
     13        * UIProcess/WKInspectorHighlightView.mm:
     14        (-[WKInspectorHighlightView _layoutForNodeHighlight:]):
     15
    1162015-06-30  Matt Baker  <mattbaker@apple.com>
    217
  • trunk/Source/WebKit2/UIProcess/WKInspectorHighlightView.mm

    r178636 r186134  
    215215- (void)_layoutForNodeHighlight:(const Highlight&)highlight
    216216{
     217    if (!highlight.quads.size()) {
     218        [self _removeAllLayers];
     219        return;
     220    }
     221
    217222    [self _createLayers:4];
    218223
     
    240245- (void)_layoutForRectsHighlight:(const Highlight&)highlight
    241246{
    242     NSUInteger numLayers = (NSUInteger)highlight.quads.size();
     247    NSUInteger numLayers = highlight.quads.size();
    243248    if (!numLayers) {
    244249        [self _removeAllLayers];
Note: See TracChangeset for help on using the changeset viewer.