summaryrefslogtreecommitdiffstats
path: root/cc/BUILD.gn
Commit message (Collapse)AuthorAgeFilesLines
* Transfer LayerImpl ownership to LayerTreeImplvollick2016-03-221-1/+1
| | | | | | | | | | | | | | | | | | | I have taken a very simple strategy. I have retained all LayerImpl functions related to transfer of ownership (AddChild, etc). These now update raw pointers on the LayerImpl as well as updating true ownership by talking to the LTI. This allows most unit test code to remain as is. LayerImpl's may be constructed and ownership may be transferred just as it had been. BUG=594026 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1801853002 Cr-Commit-Position: refs/heads/master@{#382619}
* cc: Refactor SkipImageCanvas and create it during playback.vmpstr2016-03-141-0/+2
| | | | | | | | | | | | | | | This patch moves SkipImageCanvas into a separate file in the same directory as ImageHijackCanvas and also moves the creation of SkipImageCanvas to raster source playback (the same place as ImageHijackCanvas is created). BUG=594679 R=enne, ericrk CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1799883002 Cr-Commit-Position: refs/heads/master@{#381101}
* CC Animation: Erase cc::LayerSettings everywhere.loyso2016-03-141-4/+0
| | | | | | | | | | | Also, erase LayerTreeSettings::use_compositor_animation_timelines flag. BUG=575041 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1783613004 Cr-Commit-Position: refs/heads/master@{#380914}
* CC Animation: Erase old animation tests.loyso2016-03-101-1/+0
| | | | | | | | | | | | | | Merge tests from layer_tree_host_unittest_animation_timelines.cc onto their respective layer_tree_host_unittest_animation.cc entries. Erase layer_tree_host_unittest_animation_timelines.cc. BUG=575041 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1766483002 Cr-Commit-Position: refs/heads/master@{#380343}
* Hook up BeginFrameSource to SurfaceFactoryClient via SurfaceManagerenne2016-03-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | SurfaceManager now maintains a dag of surface id namespaces. Optionally, a single BeginFrameSource input can be attached to a single namespace node. Every namespace node also has a SurfaceFactoryClient. This client is informed of a current BeginFrameSource, which is chosen from any BeginFrameSource attached to it or a parent of that node. Any children of that namespace also are able to use that source. SurfaceManager is responsible for picking which source to use, of which it currently just picks the first one until that source goes is removed after which it arbitrarily picks another valid one. In practice, this means that a window moved to another display in ChromeOS will switch its BeginFrameSource after the window is dropped onto the new window. Because the users of this dag all have very different requirements, the ordering of SurfaceFactoryClient registration, namespace hierarchy registration, and BeginFrameSource attaching are not particularly strict. BeginFrameSources, SurfaceFactoryClients, and hierarchies can be registered and unregistered in any order with respect to each other. BUG=401331 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1673783004 Cr-Commit-Position: refs/heads/master@{#379988}
* cc: ImageDecodes: Move ImageHijackCanvas to a separate file.vmpstr2016-03-041-0/+2
| | | | | | | | | | | | | | | This patch moves ImageHijackCanvas to a separate file in preparation for overriding SkCanvas instead. This would mean that the canvas has to be plumbed from earlier in the pipeline and having it in a separate file helps. R=enne, ericrk BUG=590859 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1758113004 Cr-Commit-Position: refs/heads/master@{#379146}
* cc: Move SyncedScrollOffset to scroll treesunxd2016-03-031-0/+3
| | | | | | | | | | | | | | | | Now updating scrolling information on impl side can be independent of layer impl. There are still some left-over changes corresponding to NoteLayerPropertiesChanged. SyncedScrollOffset of scrollable layers are now stored in property trees instead of layer impl. The main thread property tree has one copy while pending and active share one. BUG=568830 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1736073002 Cr-Commit-Position: refs/heads/master@{#379116}
* Clean up function names with from property treesweiliangc2016-03-031-2/+0
| | | | | | | | | | | | | Now we are always using property trees, the names saying from property trees are redundant. BUG= R=enne CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1751983002 Cr-Commit-Position: refs/heads/master@{#379042}
* cc: Separate ImageDecodeController into software and gpu parts.vmpstr2016-03-031-2/+5
| | | | | | | | | | | | | | | | | This patch separates ImageDecodeController into the software and gpu components, which are created when tile manager resources are set. This allows independent development of the two paths without extra complications involved trying to handle both cases in the same class. R=enne, ericrk BUG=581423 CQ_EXTRA_TRYBOTS=tryserver.blink:linux_blink_rel CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1642803003 Cr-Commit-Position: refs/heads/master@{#378895}
* Introduce LayerListIteratorvollick2016-03-021-0/+3
| | | | | | | | | | | | | | | | | | This iterator (unlike the other iterators which are intended to operate on the RSLL) will traverse a collection of LayerImpls. It is intended to be used whenever we currently do a walk over the LayerImpl tree. It currently operates on a tree of layers, but if we migrate all code to work in terms of this iterator, when we change the underlying iterator implementation to work on lists, all code will be updated in unison. BUG=557194 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1758823003 Cr-Commit-Position: refs/heads/master@{#378827}
* Revert of Introduce LayerListImpl (patchset #11 id:200001 of ↵vollick2016-03-011-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1746603002/ ) Reason for revert: I'm going to try another, less code churny approach to the layer list refactor. Original issue's description: > Introduce LayerListImpl > > In this cl, the LayerTreeImpl constructs a LayerListImpl. > The idea being that most plumbing won't need to change at > first to get the list to where it needs to be. The first > consumer of the LayerTreeImpl that I'm attempting to > teach to speak LayerListImpl-ese is the LayerImpl. That > has not been completely finished in this cl so that it > doesn't become too big and difficult to review. > > NB: since the actual storage of the LayerImpls doesn't > change in this cl (they're still in the LayerTreeImpl), > there's no need to guard this work behind a flag. > > BUG=557194 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/299bf1f63b8253c77530b904874f3435f9bde6d3 > Cr-Commit-Position: refs/heads/master@{#378398} TBR=weiliangc@chromium.org,ajuma@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=557194 Review URL: https://codereview.chromium.org/1751243002 Cr-Commit-Position: refs/heads/master@{#378608}
* Introduce LayerListImplvollick2016-03-011-0/+2
| | | | | | | | | | | | | | | | | | | | | In this cl, the LayerTreeImpl constructs a LayerListImpl. The idea being that most plumbing won't need to change at first to get the list to where it needs to be. The first consumer of the LayerTreeImpl that I'm attempting to teach to speak LayerListImpl-ese is the LayerImpl. That has not been completely finished in this cl so that it doesn't become too big and difficult to review. NB: since the actual storage of the LayerImpls doesn't change in this cl (they're still in the LayerTreeImpl), there's no need to guard this work behind a flag. BUG=557194 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1746603002 Cr-Commit-Position: refs/heads/master@{#378398}
* CC Animation: Expose TargetProperty enum to be aliased in Blink Platform.loyso2016-02-251-0/+2
| | | | | | | | | | | | | | | | | | | TargetProperty is intended to be used as an alias in Source/platform/animation/CompositorTargetProperty.h This is slightly better then untyped approach used here: https://codereview.chromium.org/1599673002 where we setup struct with constants in it and pass uint32_t everywhere. An alternative approach with strongly typed enum considered too verbose: https://codereview.chromium.org/1698813002/ BUG=577016 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1700653002 Cr-Commit-Position: refs/heads/master@{#377501}
* CC Animation: Move scrollbar* files to cc/inputloyso2016-02-241-8/+8
| | | | | | | | | BUG=575053 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1730853002 Cr-Commit-Position: refs/heads/master@{#377200}
* Mac Overlays: Remove OverlayStrategySandwichccameron2016-02-191-2/+0
| | | | | | | | | | | This isn't being used anymore. BUG=581526 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1711283002 Cr-Commit-Position: refs/heads/master@{#376367}
* Add framework for (de)serialization of images in SkPicturenyquist2016-02-121-0/+3
| | | | | | | | | | | | This CL adds Plumbing for picture serialization and deserialization from //blimp to DrawingDisplayItem. BUG=577262 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1675763002 Cr-Commit-Position: refs/heads/master@{#375053}
* CC Animation: Add perf test for AnimationHost PushPropertiesTo.loyso2016-02-101-0/+1
| | | | | | | | | | | | | | | This is a fine-grained rework of https://codereview.chromium.org/1679923004/ The diff: 1) We test more general AnimationHost::PushPropertiesTo 2) We spawn unique layer for each player instead of using just one root layer. BUG=574859 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1680373004 Cr-Commit-Position: refs/heads/master@{#374613}
* Remove DelegatedRendererLayerjbauman2016-02-091-17/+0
| | | | | | | | | | | We now use SurfaceLayer instead in all cases. BUG=579275 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1675023002 Cr-Commit-Position: refs/heads/master@{#374311}
* Move gn _run target generation into test(). (RELAND)jbudorick2016-02-031-9/+0
| | | | | | | | | | | | | | This is a reland of https://codereview.chromium.org/1653003006/ Consolidating the _run targets into the test template should make them easier to maintain (and, eventually, remove). BUG=583694 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1662053002 Cr-Commit-Position: refs/heads/master@{#373385}
* Revert of Move gn _run target generation into test(). (patchset #1 id:1 of ↵dpranke2016-02-031-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1653003006/ ) Reason for revert: Broke angle_unittests_run, which doesn't follow the template: https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Linux%20Builder/builds/53646/steps/compile/logs/stdio Original issue's description: > Move gn _run target generation into test(). > > TBR=brettw@chromium.org > BUG= > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/6b1b03783b81ea27bb521c02aa84b74f06d6f71a > Cr-Commit-Position: refs/heads/master@{#373232} TBR=phosek@chromium.org,brettw@chromium.org,jbudorick@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1664653003 Cr-Commit-Position: refs/heads/master@{#373257}
* Move gn _run target generation into test().jbudorick2016-02-031-9/+0
| | | | | | | | | | TBR=brettw@chromium.org BUG= CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1653003006 Cr-Commit-Position: refs/heads/master@{#373232}
* cc: Route output surface requests and visiblity calls for the remotekhushalsagar2016-01-301-0/+1
| | | | | | | | | | | | | client LayerTreeHost. This also fixes the error for commits aborted on the server due to output surface lost. BUG=550687, 577301 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1583033002 Cr-Commit-Position: refs/heads/master@{#372522}
* cc:: Add remote mode to the compositor.khushalsagar2016-01-291-0/+10
| | | | | | | | | | | | | | | | | - Added RemoteChannelMain and RemoteChannelImpl to serialize and transmit inter-proxy messages between the main and impl components of the compositor using protobufs. - Added RemoteChannelHost to be used by the cc embedder as the API for interacting with the impl components of the remote compositor. - Added tests to verify the initialization and shutdown sequence for the remote compositor. BUG=550687 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1513643010 Cr-Commit-Position: refs/heads/master@{#372236}
* cc: Add image decode control in the compositor.vmpstr2016-01-191-0/+3
| | | | | | | | | | | | | | | | | | | This patch reworks ImageDecodeController and the surrounding system to give control over image decodes to the compositor. Perf note: This is disabled on android, and should only affect desktop. That being said, this patch changes the behavior with respect to image decodes, so some perf changes are expected. BUG=516751 R=enne, reed1 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1418573002 Cr-Commit-Position: refs/heads/master@{#370188}
* (De)-serialize BeginMainFrameAndCommitState to protobuf.khushalsagar2016-01-151-0/+4
| | | | | | | | | BUG=550687 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1581773002 Cr-Commit-Position: refs/heads/master@{#369836}
* cc:: (De)-serialize CommitEarlyOutReason to protobufkhushalsagar2016-01-141-0/+2
| | | | | | | | | BUG=550687 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1583023004 Cr-Commit-Position: refs/heads/master@{#369541}
* Add support for (de)serializing LayerTreeHost.nyquist2016-01-141-0/+1
| | | | | | | | | | | | | | As part of the cc commit flow, we need to be able to serialize the LayerTreeHost. Not all state is necessary to serialize to be able to do a commit on the client side, so only some members are included in the proto. BUG=561210 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1519293002 Cr-Commit-Position: refs/heads/master@{#369450}
* Add task categories to the task graphericrk2016-01-131-0/+1
| | | | | | | | | | | | | | | | This change assigns one of three possible categories: GPU, HIGH_PRIORITY and LOW_PRIORITY to each task. There will be a follow-up CL which makes RasterWorkerPool respect these categories (rather than just treating them as an additional priority). BUG= CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1493703004 Cr-Commit-Position: refs/heads/master@{#369085}
* Serialize PictureLayer properties.dtrainor2016-01-041-0/+2
| | | | | | | | | | | | | | | | | | | | | Serialize the properties specific to the PictureLayer subclass. This required a few slight changes: - Don't query LayerImpl::bounds() in PictureLayer::PushPropertiesTo(). Instead rely on either Layer::bounds() or Layer::paint_properties().bounds depending on the source_frame_number. Since LayerImpl's bounds are set by Layer::PushPropertiesTo() right before this check, this should result in the same behavior. - Create an EmptyContentLayerClient to be used by all PictureLayer instances created by LayerProtoConverter::FindOrAllocateAndConstruct(). BUG=538710 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1527863002 Cr-Commit-Position: refs/heads/master@{#367300}
* Add support for (de)serializing LayerSelectionBound.nyquist2015-12-181-0/+1
| | | | | | | | | | | | As part of serializing cc::LayerTreeHost, we also need to serialize the cc::LayerTreeBounds. BUG=561210 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1532973002 Cr-Commit-Position: refs/heads/master@{#366155}
* cc: Fix error in smoothness_priority_expiration_notifier for ProxyImplkhushalsagar2015-12-161-0/+3
| | | | | | | | | | | | | | | | | The error was introduced by https://codereview.chromium.org/1417053005/ where using TimeDelta::FromSeconds for a double value caused the DelayedUniqueNotifier to be initialized with zero delay. This also fixes the flakiness for BenchmarkSmokeTest.thread_times on Win7 bots, caused by an increase in the number of trace events from the DelayedUniqueNotifier running with zero delay. BUG=568120, 569658 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1527893002 Cr-Commit-Position: refs/heads/master@{#365492}
* Factor cc::ScrollStateData out of cc::ScrollState.tdresser2015-12-141-0/+2
| | | | | | | | | | | | | | | | | | | For compositor worker scroll customization, we need a dumb struct which contains all of the scroll state. This enables let's us easily convert between the blink and cc scroll state types. See https://codereview.chromium.org/1419663005/ for high level context, and https://codereview.chromium.org/1415703002/ for the blink equivalent to this patch. BUG=505851 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1508093002 Cr-Commit-Position: refs/heads/master@{#365028}
* cc: Fix recording of GPU rasterization histogram for renderer compositor.khushalsagar2015-12-101-0/+1
| | | | | | | | | | The recording was disabled in https://codereview.chromium.org/1464313007/ CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1511743004 Cr-Commit-Position: refs/heads/master@{#364456}
* Add support for LayerTreeSettings (de)serializationnyquist2015-12-101-0/+1
| | | | | | | | | | | | As part of serializing cc::LayerTreeHost, we also need to serialize the cc::LayerTreeSettings. BUG=561210 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1504273002 Cr-Commit-Position: refs/heads/master@{#364452}
* cc: Split ThreadProxy into ProxyMain and ProxyImplkhushalsagar2015-12-091-2/+10
| | | | | | | | | | | | | | | | | | | | | | | This is the final patch that splits ThreadProxy into ProxyMain and ProxyImpl routing all inter-proxy communication using ChannelMain and ChannelImpl. ThreadProxy currently implements the logic for glueing together the Scheduler, LayerTreeHostImpl and the LayerTreeHost and separating these components across the main and impl thread boundary. This patch isolates the logic for this glue code in ThreadProxy exclusive to each thread to ProxyMain and ProxyImpl. This will allow us to abstract the medium the 2 sides use to communicate with each other so these components can be run across a thread/process/network boundary. ThreadedChannel implements the in-process threaded case. BUG=527200 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1417053005 Cr-Commit-Position: refs/heads/master@{#364034}
* cc: Introduce CompositorMode enum.khushalsagar2015-12-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | The compositor can currently be run in single threaded or threaded mode. The LayerTreeHost needs to be aware of the mode it is running in for 2 reasons: 1) To safely cast Proxy to SingleThreadProxy to make calls which are supported only in single threaded mode. 2) To make decisions which require excluding browser compositors which run only in single threaded mode. The LayerTreeHost checks if it has the impl task runner to know the mode of operation. Using the enum will make the purpose of this check explicit at the call sites and allow the addition of the remote mode to the compositor which will be run in the renderer but will not have an impl task runner since all impl thread operations will be run on the client compositor. BUG=550687 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1464313007 Cr-Commit-Position: refs/heads/master@{#363708}
* cc: Move the MockBeginFrameObserver (and helper macros) into cc/test directory.mithro2015-12-041-0/+5
| | | | | | | | | | | | | | | | | | | | | | This allows usage in other tests which interface with observers. The change also refactors the EXPECT_* macros so they can be used with further expectations and closer match the EXPECT_CALL form. The EXPECT_* macros also now work with a second implicit sequence such as; { ::testing::InSequence seq; EXPECT_BEGIN_FRAME_USED(obs, 100, 200, 300); EXPECT_CALL(other, Function()); EXPECT_BEGIN_FRAME_USED(obs, 400, 500, 600); } R=brianderson CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1493233002 Cr-Commit-Position: refs/heads/master@{#363147}
* Add support for ManagedMemoryPolicy (de)serializationnyquist2015-12-021-0/+4
| | | | | | | | | | | | | | | | As part of serializing cc::LayerTreeHost, we also need to serialize the cc::LayerTreeSettings and the cc::ManagedMemoryPolicy. This CL focuses on the cc::ManagedMemoryPolicy and the gpu::MemoryAllocation::PriorityCutoff enum. BUG=561210 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1490513005 Cr-Commit-Position: refs/heads/master@{#362603}
* Added support for (de)serializing cc::RendererSettingsnyquist2015-12-021-0/+1
| | | | | | | | | | | | | | As part of serializing cc::LayerTreeHost, we also need to serialize the cc::LayerTreeSettings and the cc::RendererSettings. This CL focuses only on the renderer settings. BUG=561210 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1476753002 Cr-Commit-Position: refs/heads/master@{#362558}
* Verifies PropertyTrees on impl for all cc_unittestsweiliangc2015-12-011-0/+2
| | | | | | | | | | | | Turn on verify property trees for all cc_unittests. R=ajuma BUG= CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1484143004 Cr-Commit-Position: refs/heads/master@{#362538}
* Added support for (de)serializing cc::LayerTreeDebugStatenyquist2015-12-011-0/+1
| | | | | | | | | | | | | | | | As part of serializing cc::LayerTreeHost, we also need to serialize the cc::LayerTreeSettings and the cc::LayerTreeDebugState. This CL focuses only on the debug state. BUG=561210 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1469393004 Cr-Commit-Position: refs/heads/master@{#362534}
* Interface-izes TaskGraphRunner and moves implementation helpers to ↵ericrk2015-12-011-1/+10
| | | | | | | | | | | | | | | | | TaskGraphWorkQueue. There are two new classes: SynchronousTaskGraphRunner - used in some tests and by LayerTreeHostImpl SingleThreadTaskGraphRunner - used in a number of tests (wrapped by TestTaskGraphRunner) and by GpuProcessTransportFactory and CompositorImplAndroid. Additionally RasterWorkerPool has been re-worked to use the new helper. BUG= CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1449133002 Cr-Commit-Position: refs/heads/master@{#362338}
* cc: Use contiguous container for display listenne2015-12-011-0/+1
| | | | | | | | | | | | | Along with future patches, this will help reduce sizes of display lists and minorly improve raster performance. This is a Chromium restyled version of Blink's ContiguousContainer. CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1479593003 Cr-Commit-Position: refs/heads/master@{#362308}
* cc: Fix draw transform computation for non-drawn layersajuma2015-11-301-0/+2
| | | | | | | | | | | | | | | When property trees are enabled, draw properties are only computed for drawn layers. This means that when a non-drawn layer's draw transform is needed, it must be computed on-demand using the transform tree rather than being read from the layer's draw properties. BUG=560275 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1479883002 Cr-Commit-Position: refs/heads/master@{#362196}
* Mac: Don't repaint scrollbars every frameccameron2015-11-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The core issue here is that Blink, when it sees that it needs to change the scrollbar in any way (even just moving the thumb), uses the signal blink::Scrollbar::setNeedsPaintInvalidation(). This will trigger a call to cc::PaintedScrollbarLayer::Update(), which will re-paint all controls into textures and then emit quads the quads for the controls. We often only need to re-arrange the quads for the controls of the scrollbar, not re-paint them. The system that knows whether or not the controls need to be repainted is blink::ScrollbarTheme (because that's the code that knows the theme that will be used to do the painting). Add blink::ScrollbarTheme::shouldRepaintAllPartsOnInvalidation() to indicate if a call to blink::Scrollbar::setNeedsPaintInvalidation() should cause re-painting of all of the controls. If this returns false for a given theme, then methods blink::Scrollbar::setNeedsPaintTrack() and blink::Scrollbar::setNeedsPaintThumb() may be used to specify more granular control. Back in cc::PaintedScrollbarLayer::Update(), use the methods cc::Scrollbar::NeedsPaintPart() to check if re-paint is needed (it is hooked up to the bit that is set by the blink::Scrollbar methods). While we're in the neighborhood, it is worth noting that most of the repainting of scrollbars on Mac is due to the alpha of the thumb or the track changing. Add methods to blink::Scrollbar to query the opacity of the controls, so that we can do the blending at compositing time instead of requiring a repaint. And, while we're in that neighborhood, fix cc::CALayerOverlay's FromTextureQuad function to correctly take into account per-vertex opacity. BUG=549277 TEST= - Set the system to only show scrollbars while scrolling - Open a page with a vertical scrollbar - Scroll to make the scroll thumb appear - Hover the mouse somewhere below the thumb - The thumb should become thicker and the track should appear - After some time, the thumb and the track should fade away TEST= - Open a page with a scrollbar and search (command-F) for some text - Ensure that the ticks on the vertical scrollbar appear CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1458703010 Cr-Commit-Position: refs/heads/master@{#361938}
* Add support for converting cc::Region to and from protobuf.nyquist2015-11-241-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | For the (de)serialization of property trees and layers, we need to be able to serialize several data types and this CL adds conversions and a unit test for the cc::Region type. The conversion of cc::Region happens by serializing a list of gfx::Rect objects, and then on the deserialization side the union of the gfx::Rect objects are created to recreate the cc::Region. The initial version of this CL used writeToMemory and readFromMemory in Skia, and a suggestion was made to fix using uint8_t instead of char[], and this change still keeps this fix, even after those methods are not in use anymore. This is done in a separate CL to keep the logic-changing CLs clean and focused. BUG=538710 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1460503004 Cr-Commit-Position: refs/heads/master@{#361302}
* Run gn --format over all .gn filesagrieve2015-11-201-3/+3
| | | | | | | | | | | | | | | | The recent formatter alphebetizing change is causing a lot of noise in code reviews. Figured it'd be worth a clean-up CL. Exact command I ran: find . -name "*.gn*" -exec gn format --in-place "{}" \; TBR=ddorwin@chromium.org BUG=554928 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1464873002 Cr-Commit-Position: refs/heads/master@{#360891}
* Add IPC messages to transfer compositor protosdtrainor2015-11-191-0/+1
| | | | | | | | | | | | | | | | | | - Be able to send and receive compositor protos to/from the render process and the browser process. Messages are piped through the browser process to/from the network and renderer. A separate client (go/blimp) will render the compositor protos. This is part of the compositor refactor around splitting ThreadProxy into two components. - Hook the proto sending into the BlimpEngineSession class. - Set up a RemoteProtoChannel interface on the CC side to be used by the ChannelMain class once we start building that from the LayerTreeHost. BUG=552055 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1442853005 Cr-Commit-Position: refs/heads/master@{#360452}
* Move cc::LayerSettings to cc/layers/layer_settings.h.jbroman2015-11-181-0/+2
| | | | | | | | | | | It's somewhat confusing to have to find it in cc/trees/layer_tree_settings.h. CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel TBR=dtrainor@chromium.org,piman@chromium.org Review URL: https://codereview.chromium.org/1462613002 Cr-Commit-Position: refs/heads/master@{#360441}
* cc: Remove ScopedPtrVector and cc::remove_if.vmpstr2015-11-181-1/+0
| | | | | | | | | | | | This patch removes ScopedPtrVector and cc::remove_if. It depends on https://codereview.chromium.org/1441613002 for TakeBack. R=danakj CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1437413002 Cr-Commit-Position: refs/heads/master@{#360318}