summaryrefslogtreecommitdiffstats
path: root/blimp
Commit message (Collapse)AuthorAgeFilesLines
* Remove the record_full_layer layer tree setting.chrishtr2015-12-031-1/+0
| | | | | | | | | | Blink now implements the same thing in its interest rect code. CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1485823005 Cr-Commit-Position: refs/heads/master@{#363012}
* Add NavigationMessageProcessor for Blimpdtrainor2015-12-0314-37/+506
| | | | | | | | | | | | | | - Add a class to handle serializing and deserializing protobufs of the BlimpMessage::NAVIGATION type. - Tied a delegate for this class into the Blimp Android Toolbar class to visually represent changes from the engine and to dispatch user changes from the client. BUG=552576 Review URL: https://codereview.chromium.org/1464713002 Cr-Commit-Position: refs/heads/master@{#362885}
* Make PacketReader/PacketWriter interfaces async-only.kmarshall2015-12-0314-363/+190
| | | | | | | | | | | | | | | Adapts synchronous I/O completion to use callbacks, so downstream callers are insulated from having to manage the complexities of mixed sync and async I/O. Updated logic of all PacketReader/PacketWriter dependents. R=haibinlu@chromium.org,wez@chromium.org BUG=558643 Review URL: https://codereview.chromium.org/1452823011 Cr-Commit-Position: refs/heads/master@{#362833}
* Implementation for the Blimp Message Buffer.kmarshall2015-12-028-28/+476
| | | | | | | | | | | | | This class provides a FIFO buffer for reliable, ordered message delivery, and schedules completion callbacks in response to message delivery acknowledgements. BUG=557360 R=wez@chromium.org,haibinlu@chromium.org Review URL: https://codereview.chromium.org/1458633002 Cr-Commit-Position: refs/heads/master@{#362769}
* Move blimp/net/test_common.h/cc to a separate source_set.dtrainor2015-12-025-45/+29
| | | | | | | | | | - Allow blimp/net/test_common to be used by other packages that might need to create a MockBlimpMessageProcessor without depending on the whole //blimp/net:tests target. BUG=550693 Review URL: https://codereview.chromium.org/1486543003 Cr-Commit-Position: refs/heads/master@{#362765}
* Add blimp_engine_bundle and blimp_tests to blimp meta-target.wez2015-12-023-18/+30
| | | | | | | | | | This allows the blimp meta-target to be used to build all of the relevant artefacts on the target platform, rather than having to explicitly call out tests, etc. The bundle_bimp_engine step is renamed to blimp_engine_bundle, to fit better as a target name, and the implementation is commented & cleaned up a little (e.g. using underscore prefix to denote variables local to the action, versus GN variables). Review URL: https://codereview.chromium.org/1472413003 Cr-Commit-Position: refs/heads/master@{#362591}
* CC Animations: Make sure that Blimp uses compositor-animation-timelinesloyso2015-12-014-2/+17
| | | | | | | | | | | | | | | | Blimp doesn't add animations to cc::Layers for now. Make sure that Blimp always uses the new animation system (cc::AnimationHost). In practice this means that cc::Layers in Blimp compositor don't have LayerAnimationController. Eventually, we will delete LayerSettings everywhere. BUG=394777 Review URL: https://codereview.chromium.org/1482933002 Cr-Commit-Position: refs/heads/master@{#362348}
* Interface-izes TaskGraphRunner and moves implementation helpers to ↵ericrk2015-12-012-21/+8
| | | | | | | | | | | | | | | | | 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}
* Add glue between the client and engine for Blimpdtrainor2015-12-0132-339/+1425
| | | | | | | | | | | | | | | | - Add BlimpMessageProcessors to handle RENDER_WIDGET, INPUT, and COMPOSITOR message types to/from the client and engine. - Tie the message processors into BlimpCompositor on the client and BlimpEngineSession on the server. - Update BlimpView and BlimpCompositor to fix how we handle output surfaces and how we shut down and build the LayerTreeHost based on incoming RENDER_WIDGET and COMPOSITOR messages. BUG=550693 Review URL: https://codereview.chromium.org/1450423002 Cr-Commit-Position: refs/heads/master@{#362299}
* [Blimp Net] Implement Engine Connection Manager.haibinlu2015-11-3012-21/+196
| | | | | | | | It handles multiple transports, and accepts new BlimpConnections from these transports as fast as they arrive. Review URL: https://codereview.chromium.org/1467193004 Cr-Commit-Position: refs/heads/master@{#362277}
* Move all Pass() calls in blimp/ to std::move()dtrainor2015-11-3015-46/+55
| | | | | | | | | | | Updated all .Pass() methods to be std::move() now that is approved for Chromium code. BUG=557422 Review URL: https://codereview.chromium.org/1473933002 Cr-Commit-Position: refs/heads/master@{#362211}
* [Blimp Net] Adds BrowserConnectionHandler.haibinlu2015-11-305-3/+168
| | | | | | | | | | | | | It Contains a demultiplexer for routing incoming messages to their respective features, and a multiplexer/buffer object for writing outgoing messages. It is created on browser startup, and persists for the lifetime of the application. BUG=561207 Review URL: https://codereview.chromium.org/1474583002 Cr-Commit-Position: refs/heads/master@{#362192}
* Serialize a subset of WebInputEvents to protobufs.dtrainor2015-11-309-17/+677
| | | | | | | | | | | | | - Add (de)serialization methods for WebGestureEvents (a subset of WebInputEvents). - Add unit tests to validate that moving to and from these events works properly. BUG=548806 Review URL: https://codereview.chromium.org/1426993008 Cr-Commit-Position: refs/heads/master@{#362089}
* Define a Java-side global application context.torne2015-11-242-6/+5
| | | | | | | | | | | | | | | | | Instead of each user of base setting the native-side global app context separately, introduce a Java-side global app context, which is always in sync with the native-side one. Switch most callers to setting it on the Java side, except where this is problematic. Callers of ApplicationStatus.getApplicationContext will be updated incrementally in followup CLs once it's been verified that they only require a Context and not a BaseChromiumApplication. BUG=552419 Review URL: https://codereview.chromium.org/1407233017 Cr-Commit-Position: refs/heads/master@{#361306}
* Add UNKNOWN values to blimp proto enumsmaniscalco2015-11-234-4/+10
| | | | | | | | BUG=559338 Review URL: https://codereview.chromium.org/1469503002 Cr-Commit-Position: refs/heads/master@{#361186}
* [Blimp Net] Makes BlimpTransport.Connect async-onlyhaibinlu2015-11-206-26/+36
| | | | | | | | BUG=558643 Review URL: https://codereview.chromium.org/1459923004 Cr-Commit-Position: refs/heads/master@{#360919}
* Run gn --format over all .gn filesagrieve2015-11-202-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}
* [Blimp Net] Implement BlimpConnection.haibinlu2015-11-207-11/+335
| | | | | | Review URL: https://codereview.chromium.org/1460593002 Cr-Commit-Position: refs/heads/master@{#360712}
* Add IPC messages to transfer compositor protosdtrainor2015-11-192-1/+10
| | | | | | | | | | | | | | | | | | - 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-182-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: Clean up max frames/swaps pending usage.brianderson2015-11-181-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | All output surfaces used by the Renderer and UI should only need a max swaps pending of 1, especially considering Surfaces and CompositorTimingHistory don't support multiple queued frames. The output suface used by the cc::Display, however, may have more than 1 swap pending - especially on platforms like CrOS where the SwapAck is deferred until the buffer is actually displayed. This patch: 1) Changes the default max pending frames/swaps from 2 to 1. 2) Changes Blimp to have only 1 pending frame. 3) DCHECKS that all Renderers and UIs have a max swaps pending of 1. 4) Sets the default value in the constructor of OutpuSurface::Capabilities, rather than through an extra check for zero + init. BUG=525756 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1435133004 Cr-Commit-Position: refs/heads/master@{#360283}
* [Blimp]Add BlimpMessagePump to BlimpConnection.haibinlu2015-11-1714-17/+396
| | | | | | | | | | It deserializes incoming messages and forwards it to a message processsor. BUG= 556715 Review URL: https://codereview.chromium.org/1437003007 Cr-Commit-Position: refs/heads/master@{#360203}
* Make operators on scoped_ptr match the ones defined for std::unique_ptrdanakj2015-11-171-1/+1
| | | | | | | | | | | | | | | | | | | | | Currently scoped_ptr is missing comparison operators other than == and !=, and it defines those operators incorrectly (it compares to a raw pointer but unique_ptr compares to a unique_ptr). This fixes the operator== and !=, and adds .get() at a bunch of callsites. And adds the < > <= >= operators so that we don't have any differences in where you can use it. This will help the transition from scoped_ptr to unique_ptr as no code will have to change along with the rename wrt these operators. R=Nico, dcheng TBR=ellyjones, sky, jochen, wez, rockot, droger BUG=554390 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1440593004 Cr-Commit-Position: refs/heads/master@{#359957}
* Add implementation and unit tests for BlimpMessageMultiplexer.kmarshall2015-11-134-0/+216
| | | | | | | | | | | | This creates MessageProcessors that receive outgoing messages and multiplex them on to a single output message processor. R=wez@chromium.org,haibinlu@chromium.org BUG=554179 Review URL: https://codereview.chromium.org/1434533005 Cr-Commit-Position: refs/heads/master@{#359603}
* Fix gpu command buffer use after free by GrContextjunov2015-11-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ContextProviderCommandBuffer owns a WebGraphicsContext3DCommandBufferImpl and a GrContextForWebGraphicsContext3D via scoped_ptr. The problem was that the GrContext object held by GrContextForWebGraphicsContext3D depended on interface pointers that reference an interface that is owned by WebGraphicsContext3DCommandBufferImpl, so whenever the GrContext outlived the ContextProviderCommandBuffer, we ended up in a state where the interface function pointers are deallocated, but still referenced. Then, attempts to use the GrContext would result in using deallocated function pointers. Because the GrContext is a ref counted object, it can easily outlive the ContextProviderCommandBuffer. This led to a dangerous situation where we had to be careful about object destruction order. This CL fixes the problem for good by wrapping the ownership of the WebGraphicsContext3DCommandBufferImpl into a subclass of GrGLInterface, which is a ref counted object that can be owned jointly by the GrContext and the ContextProviderCommandBuffer, thus guaranteeing that the command buffer interface will remain valid for the lifetimes of the GrContext and of the ContextProviderCommandBuffer. BUG=551143 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1414683003 Cr-Commit-Position: refs/heads/master@{#359493}
* [Blimp] Add tcp server transport.haibinlu2015-11-135-1/+221
| | | | | | Review URL: https://codereview.chromium.org/1432213004 Cr-Commit-Position: refs/heads/master@{#359468}
* Change BlimpMessageProcessor to take scoped_ptr messages.kmarshall2015-11-1211-41/+56
| | | | | | | | | | This allows message processors to receive and retain BlimpMessage objects without making copies. BUG=555012 Review URL: https://codereview.chromium.org/1441153002 Cr-Commit-Position: refs/heads/master@{#359416}
* Add interfaces for most major Blimp net components.kmarshall2015-11-122-2/+3
| | | | | | | | | | | | | | | | | This CL contains interfaces and implementation stubs for network components. It will be used as a foundation for implementation work done in parallel. Other changes made to existing net code include: Rename BlimpMessageReceiver to BlimpMessageProcessor. Make BlimpMessageProcessor async-only. BUG=555012 R=wez@chromium.org,haibinlu@chromium.org Committed: https://crrev.com/3f89b699c0672552f6471e6d085c81500b40d4af Cr-Commit-Position: refs/heads/master@{#359375} Review URL: https://codereview.chromium.org/1429193002 Cr-Commit-Position: refs/heads/master@{#359411}
* Add interfaces for most major Blimp net components.kmarshall2015-11-1224-143/+489
| | | | | | | | | | | | | | This CL contains interfaces and implementation stubs for network components. It will be used as a foundation for implementation work done in parallel. Other changes made to existing net code include: Rename BlimpMessageReceiver to BlimpMessageProcessor. Make BlimpMessageProcessor async-only. BUG=555012 R=wez@chromium.org,haibinlu@chromium.org Review URL: https://codereview.chromium.org/1429193002 Cr-Commit-Position: refs/heads/master@{#359375}
* Add a basic UI to the Android Blimp client.dtrainor2015-11-1128-29/+586
| | | | | | | | | | | | | - Hook up a toolbar with a reload button and a url entry field. - Hook up the phone back button to route through the toolbar. - Tie the toolbar code into native where it can hit the network layer. - Mutate the navigation proto to match the design. BUG=552576 Review URL: https://codereview.chromium.org/1422363008 Cr-Commit-Position: refs/heads/master@{#359186}
* Remove the native_theme dependency from blimp_common.wez2015-11-111-1/+0
| | | | | | | | | | | | The Blimp client directly imports the native_theme_switches dependency, so having the additional dependency in common leads to symbol conflicts in the blimp_client build. BUG=553633 Review URL: https://codereview.chromium.org/1408123015 Cr-Commit-Position: refs/heads/master@{#359012}
* Change BlimpTransport to vend BlimpConnections.kmarshall2015-11-103-11/+12
| | | | | | | | | | | | | | | | | | | | This removes the dependency StreamSocket from BlimpTransport. Make PacketReader and PacketWriter stream/datagram agnostic, moving framing logic to the new classes StreamPacketReader and StreamPacketWriter. Add channel reader/writer objects and fields to BlimpConnection, and create a specialization of BlimpConnection for receiving ownership of StreamSocket. R=wez@chromium.org BUG= Committed: https://crrev.com/90e22697d8d163452c067e88c2bae8b476380077 Cr-Commit-Position: refs/heads/master@{#358142} Review URL: https://codereview.chromium.org/1430963002 Cr-Commit-Position: refs/heads/master@{#358881}
* Move blimp_layer_tree_settings.h/cc to client.dtrainor2015-11-108-50/+46
| | | | | | | | | | | These aren't needed by the engine, so I'm moving this to blimp/client from blimp/common to fix an engine build error. BUG=527655 Review URL: https://codereview.chromium.org/1420883006 Cr-Commit-Position: refs/heads/master@{#358721}
* Add a missing blimp_common build dep to content/content_switches.cc.kmarshall2015-11-061-9/+5
| | | | | | | | | | | The Blimp engine app wouldn't link due to missing symbol errors. R=dtrainor@chromium.org,nyquist@chromium.org BUG= Review URL: https://codereview.chromium.org/1431083002 Cr-Commit-Position: refs/heads/master@{#358443}
* Change blimp_engine's data_deps to be both deps and data_depsmaniscalco2015-11-061-1/+5
| | | | | | | | | | | | | | | | | | blimp_engine's dependencies should be listed as both deps and data_deps to ensure that when invoking the bundle_blimp_engine action, the deps (like blimp_engine_app and chrome_sandbox) are rebuilt if they have changed. If the dependencies aren't listed as deps, changes to them won't trigger execution of the bundle_blimp_engine action (no work to do). If the dependencies aren't listed as data_deps, "gn desc foo runtime_deps" won't show any dependencies. BUG=552102 Review URL: https://codereview.chromium.org/1430163002 Cr-Commit-Position: refs/heads/master@{#358202}
* Remove setuid bit from blimp's chrome-sandboxmaniscalco2015-11-051-5/+0
| | | | | | | | | | | Now that we've udpated our environment to allow non-privileged users to CLONE_NEWUSER, we no longer need a setuid sandbox. BUG=551140 Review URL: https://codereview.chromium.org/1427523006 Cr-Commit-Position: refs/heads/master@{#358176}
* Change BlimpTransport to vend BlimpConnections.kmarshall2015-11-0519-246/+380
| | | | | | | | | | | | | | | | | This removes the dependency StreamSocket from BlimpTransport. Make PacketReader and PacketWriter stream/datagram agnostic, moving framing logic to the new classes StreamPacketReader and StreamPacketWriter. Add channel reader/writer objects and fields to BlimpConnection, and create a specialization of BlimpConnection for receiving ownership of StreamSocket. R=wez@chromium.org BUG= Review URL: https://codereview.chromium.org/1430963002 Cr-Commit-Position: refs/heads/master@{#358142}
* Change ownership and +s chrome-sandboxsriramsr2015-11-041-0/+5
| | | | | | | | | | Without this the container fails to start as the sandbox is not correctly setup. BUG=551140 Review URL: https://codereview.chromium.org/1414793011 Cr-Commit-Position: refs/heads/master@{#357851}
* [Blimp] Update build rule since the engine no longer depends on x11.haibinlu2015-11-045-28/+19
| | | | | | | | TEST = "docker run" locally Review URL: https://codereview.chromium.org/1428153002 Cr-Commit-Position: refs/heads/master@{#357694}
* Define BlimpTransport abstract base class,kmarshall2015-11-034-0/+142
| | | | | | | | | | | | which defines a common interface for connecting net::Socket objects in a transport-agnostic fashion. Create TCP client connection class on top of BlimpTransport. BUG=545198 Review URL: https://codereview.chromium.org/1413563003 Cr-Commit-Position: refs/heads/master@{#357673}
* Rename legacy 'Layout' methods across Blink and cc.wkorman2015-11-032-2/+2
| | | | | | | | | | | | | | | | | | | | | | | - rename WebWidget::layout to updateAllLifecyclePhases as the core Blink-exposed method for running all that's needed to generate a frame. - rename {LayerTreeHostClient, CompositorClient}::layout to UpdateLayerTreeHost to match above from cc perspective. - rename LayerTreeHost::layout to RequestMainFrameUpdate for consistency with the host side of things. And a TODO to further revise the Android JNI plumbing following this naming, for example, onCompositorLayout should become onCompositorUpdateLayerTreeHost. BUG=490921,476158 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1411303005 Cr-Commit-Position: refs/heads/master@{#357530}
* We'd like the VM where Blimp Engine will run as small as possible (less ↵haibinlu2015-11-0220-23/+427
| | | | | | | | | | | | | memory and CPU usage). The X server can take 100MB+ memory. Blimp Engine can still be built with USE_X11 rather than USE_OZONE, as a development aid. BUG=540932 Review URL: https://codereview.chromium.org/1398353004 Cr-Commit-Position: refs/heads/master@{#357447}
* Add haibinlu to blimp/ OWNERS.kmarshall2015-10-301-0/+2
| | | | | | | | | R=haibinlu@chromium.org BUG= Review URL: https://codereview.chromium.org/1407103005 Cr-Commit-Position: refs/heads/master@{#357195}
* Make HttpCache constructors take scoped_ptrs.mmenke2015-10-291-3/+3
| | | | | | | | | | | | This is a reland of https://codereview.chromium.org/1406203008/, which was reverted due iOS failures on code not built on the iOS trybots. TBR=sgurun@chromium.org, kmarshall@chromium.org, peter@chromium.org BUG=479898 Review URL: https://codereview.chromium.org/1423583003 Cr-Commit-Position: refs/heads/master@{#356832}
* Revert of Make HttpCache constructors take scoped_ptrs. (patchset #6 ↵dgozman2015-10-281-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | id:120001 of https://codereview.chromium.org/1406203008/ ) Reason for revert: Broke iOS Device (ninja) compilation. See https://build.chromium.org/p/chromium.mac/builders/iOS_Device_%28ninja%29/builds/27454 Original issue's description: > Make HttpCache constructors take scoped_ptrs. > > BUG=479898 > > Committed: https://crrev.com/d76f6c556e4f24218ee0a66e4208151aaff13f40 > Cr-Commit-Position: refs/heads/master@{#356630} TBR=pauljensen@chromium.org,sgurun@chromium.org,kmarshall@chromium.org,peter@chromium.org,mmenke@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=479898 Review URL: https://codereview.chromium.org/1425533004 Cr-Commit-Position: refs/heads/master@{#356635}
* Make HttpCache constructors take scoped_ptrs.mmenke2015-10-281-3/+3
| | | | | | | | BUG=479898 Review URL: https://codereview.chromium.org/1406203008 Cr-Commit-Position: refs/heads/master@{#356630}
* Created BlimpMessageWriter, which frames and sends data over a Socket.kmarshall2015-10-276-3/+504
| | | | | | | | | | | | | | The conversion from BlimpMessages to bytes will be handled in another class as part of a followup CL. Added unit tests for BlimpMessageWriter. R=wez@chromium.org CC=dtrainor@chromium.org,haibinlu@chromium.org,nyquist@chromium.org BUG= Review URL: https://codereview.chromium.org/1392753002 Cr-Commit-Position: refs/heads/master@{#356431}
* blimp: Override RequestPermissions in BlimpPermissionManager.tfarina2015-10-262-0/+17
| | | | | | | | | | | | | content::PermissionManager is an abstract class, i.e. contains only pure virtual methods and thus all methods should be overridden otherwise things won't compile. BUG=None R=kmarshall@chromium.org,dtrainor@chromium.org Review URL: https://codereview.chromium.org/1409073008 Cr-Commit-Position: refs/heads/master@{#356149}
* Rename BlimpClientSession to BlimpConnection, which is shared between client ↵haibinlu2015-10-266-31/+26
| | | | | | | | and engine. Review URL: https://codereview.chromium.org/1407033005 Cr-Commit-Position: refs/heads/master@{#356134}
* Updating XTBs based on .GRDs from branch masterKrishna Govind2015-10-266-6/+6
| | | | Cr-Commit-Position: refs/heads/master@{#356081}