summaryrefslogtreecommitdiffstats
path: root/cc/blink/web_display_item_list_impl.cc
Commit message (Collapse)AuthorAgeFilesLines
* Use sk_sp-based picture recording APIsfmalita2016-03-221-3/+3
| | | | | | | | | | | | | | | | 1) use SkPictureRecorder::finishRecordingAsPicture() over endRecordingAsPicture() 2) convert to sk_sp<SkPicture> fields/params where feasible BUG=skia:5077 R=reed@google.com,danakj@chromium.org,enne@chromium.org TBR=pdr@chromium.org,alekseys@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1819683002 Cr-Commit-Position: refs/heads/master@{#382563}
* CC Animation: Move files from cc_blink to Source/platform/animationloyso2016-02-101-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disclaimer: This CL is only about moving files and sections of code. We: - Remove Web prefixes on files/classes and add Compositor prefix where necessary. - Move exported/WebTransformKeyframe.cpp and exported/WebFilterKeyframe.cpp to animation/ to group them with their headers. - Move CompositorFilterOperations not to animation/ but to graphics/ folder, because it's a property of WebLayer. - Introduce CompositorFactory singleton (works as Platform) to create CC objects in blink. All animation methods are moved from CompositorSupport to CompositorFactory. Other methods are also expected to be moved there. - Decouple WebLayer and WebCompositorAnimation interfaces by using cc::Animation class. It allows us to make WebCompositorAnimation non-public. WebLayer animation dependencies will go away when we erase the old animation system (it's already disabled). http://crbug.com/575041 - Move static asserts from content/child/assert_matching_enums.cc to Source/platform/WebCompositorAnimation.cpp (so the enum becomes non-public). What's next (separate CLs): - Remove virtual functions (when gmock-based tests erased) - Remove redundant enum declarations (using alias). - Erase the animation delegate adapter. BUG=577016 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1616653002 Cr-Commit-Position: refs/heads/master@{#374792}
* Make cc::DrawingDisplayItem hold a const SkPicture.jbroman2016-01-081-3/+2
| | | | | | | | | | | This lets us remove const_cast<SkPicture*> from callers (i.e. Blink) which hold SkPicture through const pointers. CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1564233005 Cr-Commit-Position: refs/heads/master@{#368444}
* Switch to standard integer types in cc/.avi2015-12-211-0/+3
| | | | | | | | | | BUG=138542 TBR=danakj@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1539203002 Cr-Commit-Position: refs/heads/master@{#366333}
* Allow background tab titles to use LCD AA.pkasting2015-12-121-2/+4
| | | | | | | | | | | | | This involves plumbing an additional flag through CompositingRecorder and CompositingDisplayItem to use the new Skia functionality just added for this. BUG=none TEST=Titles on background tabs should use LCD antialiasing. CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1506203008 Cr-Commit-Position: refs/heads/master@{#364903}
* cc: Shrink size of display itemenne2015-12-101-42/+25
| | | | | | | | | | | | | | | | | | | | | This removes all of the base class members from display item and instead calculates them during allocation. This is done by processing each item as it is added, which requires passing in all the ctor args to CreateAndAppendItem. This reduces the size of all display items by 16 bytes so that the largest is now "only" 80 bytes and the smallest is 8. Also, DisplayItemList had a bug where it would allocate an item, (maybe) process all added items, and then SetNew on that last item. In that case, the processing would skip the final item because it was just a newly allocated item. This patch fixes that by the above changes to CreateAndAppendItem. R=vmpstr@chromium.org,chrishtr@chromium.org CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1494223003 Cr-Commit-Position: refs/heads/master@{#364437}
* Avoid duplicate matrix and transform initialization.wkorman2015-12-011-2/+2
| | | | | | | | | | | Breakout from work by enne@/vmpstr@ in http://crrev.com/1459003003 BUG=529938 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1484283003 Cr-Commit-Position: refs/heads/master@{#362527}
* Further plumb visual rect into cc:DisplayItemList.wkorman2015-11-251-14/+26
| | | | | | | | | | | | | | | | | | | | Save rects off in cc:DisplayItemList and clear them out in Finalize(), with TODO(vmpstr) to actually use them to build the RTree. Pass along the Blink visual rect obtained via work in http://crrev.com/1426963002. Add logic to UI compositor display item list callsites to pass along a relevant visual rect. Note the Blink side is still passing dummy visual rects. BUG=529938 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1423653005 Cr-Commit-Position: refs/heads/master@{#361612}
* Plumb display item visual rect to compositor.wkorman2015-11-021-16/+35
| | | | | | | | | | | | | Note: - currently passing empty rect from all callsites - currently not saving rect off CC-side BUG=529938 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1426963002 Cr-Commit-Position: refs/heads/master@{#357465}
* cc: Unify DisplayItemList::Create calls to use the settings.vmpstr2015-09-161-1/+2
| | | | | | | | | | | | | There are currently three different variations of DisplayItemList Create function. This patch removes two of them in order to have a consistent way to create a display item list. R=enne, danakj CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1348593003 Cr-Commit-Position: refs/heads/master@{#349269}
* Cleanup: move declarations closer to use.chrishtr2015-07-041-2/+2
| | | | | | | | CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1220823006 Cr-Commit-Position: refs/heads/master@{#337332}
* SP: stop storing display items in a throwaway list container during commit.chrishtr2015-06-301-26/+97
| | | | | | | | | | | | We don't need this overhead during phase 1. When re re-add it, we will not have to replay into an SkPicture any more and so will save that time instead. BUG=503705 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1214183006 Cr-Commit-Position: refs/heads/master@{#336712}
* Adding support for sidecars to cc::DisplayItemList.jbroman2015-06-021-1/+12
| | | | | | | | | | | | This is in anticipation of Blink storing its display item data inline in the cc-side DisplayItemList. BUG=484943 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1154303004 Cr-Commit-Position: refs/heads/master@{#332317}
* cc: Support creating display item lists via the Blink API.jbroman2015-05-261-0/+4
| | | | | | | | | | | | This permits Blink to create cc-backed display item lists for it to store its data in, which owns a reference to a cc::DisplayItemList. BUG=484943 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1160563002 Cr-Commit-Position: refs/heads/master@{#331433}
* cc: Move files out of cc/resources/.danakj2015-05-181-7/+7
| | | | | | | | | | | | | | This moves files into cc/playback/ cc/raster/ cc/tiles/ and cc/output/ and is based on the proposal found in https://docs.google.com/spreadsheets/d/1wmPOmV9uqd9zNJ5l2TGePH7_vlSvPeXbC-Y3SeGJ_rc/edit#gid=0 R=enne, vmpstr TBR=piman BUG=488755 Review URL: https://codereview.chromium.org/1144693002 Cr-Commit-Position: refs/heads/master@{#330396}
* cc: Use a ListContainer for DisplayItemList to reduce allocations.danakj2015-05-071-19/+26
| | | | | | | | | | | | | | | | | | | | | | Currently every DisplayItem is malloced/freed individually. Follow the pattern used for DrawQuads instead, using ListContainer to allocate log(n) times instead of once for each item. This replaces each DisplayFooItem::Create(...) with a default constructor and a DisplayFooItem::SetNew(...) that must be called on newly constructed items before they are used. This patch changes the time to do UpdateLayers (after making gfx::ImageSkiaReps immutable cuz they dominate times for now) for a single tab loading spinner from .174ms to .167ms on a linux x620, giving a 4% reduction in frame record time. I used a mean of 3000 samples in each run to reduce noise. R=ajuma, enne BUG=466426 Review URL: https://codereview.chromium.org/1123983002 Cr-Commit-Position: refs/heads/master@{#328797}
* Revert "Speculative revert by sheriff"Bartosz Fabianowski2015-04-161-6/+3
| | | | | | | | | | | This reverts commit 919dce4400651813d5ff6e8a85b944a5987adcb7. BUG=None TBR=akuegel Review URL: https://codereview.chromium.org/1094553002 Cr-Commit-Position: refs/heads/master@{#325412}
* Speculative revert by sheriffBartosz Fabianowski2015-04-161-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I am reverting all CLs that could have caused this failure: http://build.chromium.org/p/chromium.linux/builders/ Android%20Tests%20%28dbg%29/builds/27276 I will start re-landing vindicated CLs shortly. Revert "Convert a11y_page.css to a11y_page_style.html. See http://goo.gl/vIGSCO for more information." This reverts commit eb48d65705e44b80d1d7a3b4f21c567802c102bb. Revert "Supply build properties to run-bisect-perf regression for android bisects." This reverts commit 9d70bb94984b02c17678ccf482d1a7b7c760a43f. Revert "[cros New-GAIA] Webview login and new GAIA endpoint enabled by default" This reverts commit 29061783f8b59f1e78286a87a3bb7d18129f639a. Revert "Prime the landing pad for the new video rendering pipeline." This reverts commit 45a3c93f745eabf6c1b1cbdac87ed4350a919e76. Revert "Implement separate error dialog for cws widget container" This reverts commit 7ed1f876f6f4d79ac074b25f2066d514603aa18d. Revert "Create device_bluetooth watchlist; add scheib." This reverts commit 40514c99cd45d1c8e9caef3245d42533d9810179. Revert "Convert checkbox.css to checkbox_style.html. See http://goo.gl/vIGSCO for more information." This reverts commit a687f31a786645508622482e9033f497364a43cd. Revert "Created new URLRequestContext for secure proxy check." This reverts commit 652eabf1141c00594aa6e9ed81beb980aec89198. Revert "Revert of Fix scroll regression when specifying an extension id. (patchset #4 id:60001 of https://codereview.chromium.org/1064573003/)" This reverts commit 488846cd562f444831982d82ef0bc9ca0dd79028. Revert "Sync: Add Android test for downloading a bookmark" This reverts commit 9c052713563111ac3d6cc64d4b5cfdfa27c202f4. Revert "ScreenOrientationController to start observing even without an internal display." This reverts commit 31fed68a524d49f99cebf02dca6ad49019e9900c. Revert "Fix MB configurations for Mac and Win GN bots." This reverts commit 31a66f3e705d20a39033a7b7d7f09a60517e6b9d. Revert "Add tool/perf/measurements path to check for CQ jobs." This reverts commit 99e1ac1d217174dad7a862f6a0fc44950d503737. Revert "Implement Notification.data for persistent notifications." This reverts commit 539f51d6af62097059c34b1c19dfbc4352413ad7. Revert "Fix playback rate calculations for WallClockTimeSource." This reverts commit 3ec02d642465872d9ab7d7db600d0480a57b3cab. Revert "Roll src/third_party/pdfium eddab44:b330016" This reverts commit 81d51e253cfacd5648cca9f12b605e63971a9ab1. Revert "cc: Make DisplayItemList::Append replay into an SkPicture" This reverts commit ec7c07e57bc5f91e3ba0bdeba8b6f534978615b0. Revert "Clean up URLFetcher unit tests, part 5." This reverts commit 8eeb3bf4a02be612cacb3cdbb5c223d909939527. BUG=None TBR=akuegel Review URL: https://codereview.chromium.org/1083683003 Cr-Commit-Position: refs/heads/master@{#325411}
* cc: Make DisplayItemList::Append replay into an SkPictureajuma2015-04-151-6/+3
| | | | | | | | | | | | | | | | This makes DisplayItemList no longer retain individual display items when caching into a picture is enabled, except when tracing is also enabled (so that per-item trace output can still be produced). Instead, only an SkPicture representation is retained. This avoids the memory cost of storing both the SkPicture representation (which is needed for raster performance) as well as the individual display items. BUG=476073 Review URL: https://codereview.chromium.org/1077033004 Cr-Commit-Position: refs/heads/master@{#325292}
* ui: Add --ui-enable-slimming-paint and DisplayItem-backed PaintContext.danakj2015-04-091-1/+7
| | | | | | | | | | | | | | | | | | | | | With the new flag enabled, ui::Layer will paint by emiting a cc::DisplayItemList instead of painting into a gfx::Canvas supplied by the compositor. This patch adds a constructor to PaintContext that takes a cc::DisplayItemList instead of a gfx::Canvas, and updates the various Recorder classes to support emitting cc::DisplayItems if there is no Canvas present in the PaintContext. With this the UI paints correctly via the display-item backend (though without caching to make it speedy). R=piman@chromium.org, senorblanco@chromium.org, ajuma BUG=466426 Review URL: https://codereview.chromium.org/1073603003 Cr-Commit-Position: refs/heads/master@{#324489}
* cc: Remove the unused function appendCompositingItem with 3 parametershuayong.xu2015-03-301-10/+0
| | | | | | | | | Remove a TODO, because Blink had already removed this function calls. Meanwhile remove some unused includes. Review URL: https://codereview.chromium.org/1019263002 Cr-Commit-Position: refs/heads/master@{#322808}
* Remove unused transparency display items.pdr2015-02-261-14/+0
| | | | | | | | | | With the brand new Compositing display items, we no longer need these transparency methods. This patch depends on a blink-side patch: https://codereview.chromium.org/953143003. Review URL: https://codereview.chromium.org/956813002 Cr-Commit-Position: refs/heads/master@{#318152}
* Add layer bounds to compositing_dislay_itempdr2015-02-251-1/+10
| | | | | | | | | | | | | | | | | | This patch adds an SkRect for bounds to compositing_display_item and uses it for setting the canvas layer bounds. With this patch and the associated blink-side patch [1] we pass the following additional layout tests: LayoutTests/svg/zoom/page/zoom-mask-with-percentages.svg LayoutTests/svg/transforms/text-with-mask-with-svg-transform.svg LayoutTests/svg/custom/absolute-sized-content-with-resources.xhtml LayoutTests/svg/custom/mask-excessive-malloc.svg LayoutTests/svg/batik/masking/maskRegions.svg [1] https://codereview.chromium.org/960483002 Review URL: https://codereview.chromium.org/952123002 Cr-Commit-Position: refs/heads/master@{#318127}
* Add a compositing display item which replaces transparency display itempdr2015-02-241-4/+20
| | | | | | | | | | | | | This patch adds a compositing display item which is similar to the transparency display item (to be removed in a followup) but sports SkXfermode (combining blendmode and compositing op) as well as color filters. With this new object we can implement SVG masking. See associated blink patch: https://codereview.chromium.org/947893002 Review URL: https://codereview.chromium.org/942403002 Cr-Commit-Position: refs/heads/master@{#317905}
* Resolve FIXMEs in cc for Display Item Lists.schenney2015-02-191-8/+13
| | | | | | | | | | | | | This is the final patch for removing location and making SkPicture const in drawing display items, and the first patch in adding scroll display item support in cc. R=ajuma@chromium.org BUG=458240 Review URL: https://codereview.chromium.org/939463003 Cr-Commit-Position: refs/heads/master@{#317060}
* Remove #ifs from WebDisplayItemListImplajuma2015-02-181-12/+0
| | | | | | | | | | | This removes #ifs that are no longer needed since Blink-side changes (http://crrev.com/875423003) have landed. BUG=453924 Review URL: https://codereview.chromium.org/940463005 Cr-Commit-Position: refs/heads/master@{#316892}
* Fix location setting for Drawing Display Items in cc.schenney2015-02-171-2/+1
| | | | | | | | | | | Fix for incorrect previous patch. TBR=ajuma BUG=458240 Review URL: https://codereview.chromium.org/937463002 Cr-Commit-Position: refs/heads/master@{#316656}
* Constify SkPicture in DrawingDisplayItemschenney2015-02-131-0/+6
| | | | | | | | | | | | | | | | | | This initial patch just adds the web-facing methods for cc, allowing the Blink side web classes to change to the new form. Yet another patch will move cc completely to the new form. The SkPicture is immutable and should be const in a DrawingDisplayItem. And there is no need for the location point; it is stored in the cullRect of the picture. R=ajuma@chromium.org BUG=458240 Review URL: https://codereview.chromium.org/913413005 Cr-Commit-Position: refs/heads/master@{#316116}
* cc: Use FilterOperations instead of SkImageFilter in FilterDisplayItemajuma2015-02-121-1/+16
| | | | | | | | | | | | | | | | | This replaces FilterDisplayItem's SkImageFilter with FilterOperations. Currently, filters on Layers are set using FilterOperations; this allows filters to be animated on the compositor thread. Using FilterOperations rather than an SkImageFilter in FilterDisplayItems will allow cc to continue to be able to animate filters once cc becomes responsible for layerization decisions. The Blink side of this is http://crrev.com/875423003 BUG=453924 Review URL: https://codereview.chromium.org/904513004 Cr-Commit-Position: refs/heads/master@{#315996}
* Pipe ClipPathDisplayItem down to CCleviw2015-01-161-0/+12
| | | | | | | | | CC-side of ClipPath before I flip the switch in Blink with https://codereview.chromium.org/851363002. Review URL: https://codereview.chromium.org/855573002 Cr-Commit-Position: refs/heads/master@{#311975}
* cc: Define FloatClip display itemajuma2015-01-061-0/+10
| | | | | | | | | | | | This adds FloatClipDisplayItem and EndFloatClipDisplayItem, needed for plumbing the corresponding Blink display item sub-types to DisplayItemList. BUG=None Review URL: https://codereview.chromium.org/831353002 Cr-Commit-Position: refs/heads/master@{#310083}
* cc: Implement a display-list-based RecordingSource and RasterSourceajuma2014-11-271-0/+90
This defines a RecordingSource that records into a display list. This also defines a corresponding RasterSource. Bug=None Review URL: https://codereview.chromium.org/753263002 Cr-Commit-Position: refs/heads/master@{#305982}