Bug 143277 - Lots of time spent querying table cell borders, when there are none.
Summary: Lots of time spent querying table cell borders, when there are none.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: zalan
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2015-03-31 14:39 PDT by zalan
Modified: 2015-04-01 08:57 PDT (History)
7 users (show)

See Also:


Attachments
long-table (collapsed borders) (380 bytes, text/html)
2015-03-31 14:39 PDT, zalan
no flags Details
Patch (30.17 KB, patch)
2015-03-31 15:15 PDT, zalan
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ews106 for mac-mavericks-wk2 (559.66 KB, application/zip)
2015-03-31 16:10 PDT, Build Bot
no flags Details
Archive of layout-test-results from ews100 for mac-mavericks (583.12 KB, application/zip)
2015-03-31 17:53 PDT, Build Bot
no flags Details
Patch (32.31 KB, patch)
2015-04-01 07:24 PDT, zalan
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description zalan 2015-03-31 14:39:43 PDT
Created attachment 249854 [details]
long-table (collapsed borders)

Profiling the attached content, there's lots of time spent fetching cell border properties, when the cells have no borders.
Comment 1 zalan 2015-03-31 14:40:13 PDT
rdar://problem/20200735
Comment 2 zalan 2015-03-31 15:15:42 PDT
Created attachment 249859 [details]
Patch
Comment 3 Simon Fraser (smfr) 2015-03-31 16:00:18 PDT
Comment on attachment 249859 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=249859&action=review

> Source/WebCore/rendering/RenderTableCell.cpp:521
> +        return emptyBorder;

Return CollapsedBorderValue(BorderValue(), Color(), BCELL); or CollapsedBorderValue::emptyBorder();

> Source/WebCore/rendering/RenderTableCell.cpp:524
> +        return emptyBorder;

Ditto.

> Source/WebCore/rendering/RenderTableSection.cpp:1576
> +    HashMap<std::pair<const RenderTableCell*, int>, CollapsedBorderValue>::iterator it = m_cellsCollapsedBorders.find(std::make_pair(&cell, side));

auto!
Comment 4 Build Bot 2015-03-31 16:10:27 PDT
Comment on attachment 249859 [details]
Patch

Attachment 249859 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/5151410542870528

New failing tests:
fast/table/border-collapsing/dynamic-border-width-change.html
Comment 5 Build Bot 2015-03-31 16:10:32 PDT
Created attachment 249866 [details]
Archive of layout-test-results from ews106 for mac-mavericks-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews106  Port: mac-mavericks-wk2  Platform: Mac OS X 10.9.5
Comment 6 Build Bot 2015-03-31 17:53:10 PDT
Comment on attachment 249859 [details]
Patch

Attachment 249859 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/4741910644129792

New failing tests:
fast/table/border-collapsing/dynamic-border-width-change.html
Comment 7 Build Bot 2015-03-31 17:53:14 PDT
Created attachment 249872 [details]
Archive of layout-test-results from ews100 for mac-mavericks

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews100  Port: mac-mavericks  Platform: Mac OS X 10.9.5
Comment 8 zalan 2015-04-01 07:24:08 PDT
Created attachment 249920 [details]
Patch
Comment 9 WebKit Commit Bot 2015-04-01 08:57:23 PDT
Comment on attachment 249920 [details]
Patch

Clearing flags on attachment: 249920

Committed r182235: <http://trac.webkit.org/changeset/182235>
Comment 10 WebKit Commit Bot 2015-04-01 08:57:28 PDT
All reviewed patches have been landed.  Closing bug.