summaryrefslogtreecommitdiffstats
path: root/content/browser/android/in_process
Commit message (Collapse)AuthorAgeFilesLines
* sync compositor: Add output_surface_id plumbingboliu2016-03-224-19/+26
| | | | | | | | | | | | | | | | | | The output_surface_id is unique for a particular renderer compositor instance. It is used to avoid returning resources from lost context to compositor with new context. Plumb output_surface_id from SynchronousOutputSurface all the way to android_webview::HardwareRenderer. To avoid having to send down a map<id, resource list>, a simpler guarantee is to assume the output_surface_id is increasing, so only need to return resources of with highest output surface id and drop resources other resources. BUG=592744 Review URL: https://codereview.chromium.org/1769913003 Cr-Commit-Position: refs/heads/master@{#382636}
* Change the non-blocking event queue to the main thread event queue.dtapuska2016-03-172-3/+3
| | | | | | | | | | | | | | | | | | A problem with the design in that blocking touch events could get ahead of the non-blocking events was revealed in discussions. Change the queue so that it processes all events going to the main thread. It may elect to put blocking events in queues that it maintains so that events are not re-ordered when dispatched to the main thread. Force the ack behavior in the renderer to match the disposition of the event. The benefit of this is uncancelable touch events now can be coalesced if the main thread is behind. BUG=489802 Review URL: https://codereview.chromium.org/1780953003 Cr-Commit-Position: refs/heads/master@{#381821}
* blink: Remove unused or rarely used methods from WebGraphicsContext3Ddanakj2016-03-161-2/+1
| | | | | | | | | | | | | | | | | This is toward deleting the class entirely. These methods were not used at all, or for a couple of them, had one caller which we redirect to the GLES2Interface directly. Adds a DEPS entry for core/testing/ to use GLES2Interface as there's code in there calling things on WebGraphicsContext3D now. R=kbr,esprehn,sievers,chrishtr BUG=584497 CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel;tryserver.chromium.mac:mac_optional_gpu_tests_rel Review URL: https://codereview.chromium.org/1809553002 Cr-Commit-Position: refs/heads/master@{#381586}
* sync compositor: Merge input path with chromeboliu2016-03-116-22/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | Use chrome's async input delivery path in Android WebView. See bug for potential incompatibility risk. Existing code path is not removed in case compatibility is an issue. Refactor out ui::SynchronousInputHandlerProxy parts from InputHandlerManagerClient into a separate interface so that sync compositor can use SynchronousInputHandlerProxy even without routing input synchronously. Then just stop filtering input events in sync compositor, hook up overscroll, and everything just works. Tests: testNoSpuriousOverScrolls requires synchronous input to maintain the property that a single scroll call happens. Asynchronously the test is not valid AwContents.zoomIn is no longer synchronous which breaks testPinchZoomUpdatesScrollRangeSynchronously. Can fix this independently if this becomes a problem later. BUG=545628 Review URL: https://codereview.chromium.org/1620053002 Cr-Commit-Position: refs/heads/master@{#380563}
* Plumb firing passive event listeners.dtapuska2016-02-182-0/+6
| | | | | | | | | | | | | | Detect whether passive event listeners exist when handling wheel and touch events. If the events can be handled on the compositor thread and an event posted to main thread dispatch that. Add an event queue for wheel and touch so that we can coalesce pending events for the main thread. BUG=489802 Review URL: https://codereview.chromium.org/1631963002 Cr-Commit-Position: refs/heads/master@{#376182}
* sync compositor: Avoid software copy for in-procboliu2016-02-172-0/+31
| | | | | | | | | | | | | | | | | | Avoid regressing performance and memory when shipping the IPC path for existing devices that only support running webview in single process mode. Use c/b/a/in_process to set a global SkCanvas pointer on the renderer and use this SkCanvas pointer when in-process. This is memory and thread safe because renderer only accesses the pointer as a response to a synchronous IPC from browser, and the IPC itself provides a memory barrier. BUG=583455 Review URL: https://codereview.chromium.org/1697853002 Cr-Commit-Position: refs/heads/master@{#375750}
* sync compositor: Allow sync stream texture over ipc compositingboliu2016-02-114-79/+101
| | | | | | | | | | | | | | | | | | | | | The one-copy inline video path is not fully working yet on all GPUs. This patch makes the existing code path that uses the in-process command buffer keep working, even with --ipc-sync-compositing. Separate stream texture part of SynchronousCompositorFactory into SynchronousCompositorStreamTextureFactory. Then also set it in the IPC-sync compositing path when running in single process. BUG=583455 Previous Committed: https://crrev.com/28a28af2a5488703659d4cada9c2da7c736407cb Cr-Commit-Position: refs/heads/master@{#374304} Review URL: https://codereview.chromium.org/1657093002 Cr-Commit-Position: refs/heads/master@{#374958}
* Revert of sync compositor: Allow sync stream texture over ipc compositing ↵boliu2016-02-104-101/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #6 id:100001 of https://codereview.chromium.org/1657093002/ ) Reason for revert: Broke webview unit tests which test runner silently ignored. BUG=585585 Original issue's description: > sync compositor: Allow sync stream texture over ipc compositing > > The one-copy inline video path is not fully working yet on > all GPUs. This patch makes the existing code path that uses > the in-process command buffer keep working, even with > --ipc-sync-compositing. > > Separate stream texture part of SynchronousCompositorFactory > into SynchronousCompositorStreamTextureFactory. Then also set > it in the IPC-sync compositing path when running in single > process. > > BUG=583455 > > Committed: https://crrev.com/28a28af2a5488703659d4cada9c2da7c736407cb > Cr-Commit-Position: refs/heads/master@{#374304} TBR=sievers@chromium.org NOPRESUBMIT=true NOTREECHECKS=true BUG=583455 Review URL: https://codereview.chromium.org/1681323003 Cr-Commit-Position: refs/heads/master@{#374545}
* sync compositor: Allow sync stream texture over ipc compositingboliu2016-02-094-79/+101
| | | | | | | | | | | | | | | | | | The one-copy inline video path is not fully working yet on all GPUs. This patch makes the existing code path that uses the in-process command buffer keep working, even with --ipc-sync-compositing. Separate stream texture part of SynchronousCompositorFactory into SynchronousCompositorStreamTextureFactory. Then also set it in the IPC-sync compositing path when running in single process. BUG=583455 Review URL: https://codereview.chromium.org/1657093002 Cr-Commit-Position: refs/heads/master@{#374304}
* Add begin frame paused signalboliu2016-01-131-0/+6
| | | | | | | | | | | | | | | | | | | This avoids a deadlock situation in android webview where begin frames have stopped, but the blink main thread is blocked indefinitely waiting for activation. See bug for details. Plumb a signal that the BeginFrameSource is paused directly through BeginFrameSourceObserver, and force activate any pending activations when paused. This is similar to when compositor becomes invisible, but BFS allows webview send the signal without a hop to blink main thread. BUG=539373 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1536353003 Cr-Commit-Position: refs/heads/master@{#369238}
* Convert Pass()→std::move() in //content (Android edition)dcheng2015-12-302-5/+7
| | | | | | | | | | | (╯^□^)╯︵ ❄☃❄ BUG=557422 R=avi@chromium.org Review URL: https://codereview.chromium.org/1552733002 Cr-Commit-Position: refs/heads/master@{#367130}
* sync compositor: Send ipc reply in swapboliu2015-12-292-15/+25
| | | | | | | | | | | | | | | | | Refactor SynchronousCompositorOutputSurface to expose the SwapBuffers call to client. For IPC implementation, send the reply IPC inside SwapBuffers instead of waiting for OnDraw to return. This allows more code to run in parallel, since OnDraw generally calls PrepareTiles after DrawAndSwap; now PrepareTiles can run in parallel with IO/UI code. Depending on scheduling and available cores, this can save up to ~0.7ms per frame of waiting time on UI thread. BUG=545633 Review URL: https://codereview.chromium.org/1546383002 Cr-Commit-Position: refs/heads/master@{#367111}
* Switch to standard integer types in content/browser/android/.avi2015-12-256-4/+13
| | | | | | | | | BUG=138542 TBR=skyostil@chromium.org Review URL: https://codereview.chromium.org/1549943002 Cr-Commit-Position: refs/heads/master@{#366844}
* Support multiple RenderViewHosts per WebContents in Android WebView.hush2015-12-172-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | This CL makes sure the resources in the cc::Surfaces are returned to the correct synchronous compositor. In order to achieve this, each ChildFrame (a wrapper around CompositorFrame) will be tagged with the BrowserViewRenderer-generated ID of the frame-producing compositor. A separate cc::SurfaceFactory will be created for a new compositor. The SurfaceFactory that corresponds to the old compositor will be destroyed when a new RVH becomes current and sends a CompositorFrame tagged with the new compositor's ID. When a resource is no longer needed, it will be inserted into a map keyed by the ID of the compositor. Other WebView APIs like onDraw, SetViewVisibility, etc. will be applied to the compositor owned by the current RWHVA. BUG=533516 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1456763002 Cr-Commit-Position: refs/heads/master@{#365726}
* Remove ScopedVector from frame_swap_message_queuemartina.kollarova2015-12-091-5/+3
| | | | | | | | | | | Usage of std::vector for movable types has been recently whitelisted. https://chromium-cpp.appspot.com/#library-whitelist BUG=554289 Review URL: https://codereview.chromium.org/1467413004 Cr-Commit-Position: refs/heads/master@{#364073}
* Enforce marking "override" for functions overriding Blink.Avi Drissman2015-12-071-2/+2
| | | | | | | | | | | | | | | BUG=535367 TEST=it all stays working CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel R=thakis@chromium.org TBR=ben@chromium.org Committed: https://crrev.com/32ff552858e014d454ce8b181f5aca1dfcf8f8fd Cr-Commit-Position: refs/heads/master@{#363482} Review URL: https://codereview.chromium.org/1370923002 . Cr-Commit-Position: refs/heads/master@{#363564}
* Revert of Enforce marking "override" for functions overriding Blink. ↵avi2015-12-071-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #19 id:360001 of https://codereview.chromium.org/1370923002/ ) Reason for revert: Missed one. Original issue's description: > Enforce marking "override" for functions overriding Blink. > > BUG=535367 > TEST=it all stays working > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > TBR=ben@chromium.org > > Committed: https://crrev.com/32ff552858e014d454ce8b181f5aca1dfcf8f8fd > Cr-Commit-Position: refs/heads/master@{#363482} TBR=thakis@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=535367 Review URL: https://codereview.chromium.org/1504913002 Cr-Commit-Position: refs/heads/master@{#363492}
* Enforce marking "override" for functions overriding Blink.avi2015-12-071-2/+2
| | | | | | | | | | | BUG=535367 TEST=it all stays working CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel TBR=ben@chromium.org Review URL: https://codereview.chromium.org/1370923002 Cr-Commit-Position: refs/heads/master@{#363482}
* Move content/renderer input handling for web input events to ui.khushalsagar2015-11-237-13/+20
| | | | | | | | | | | | The InputHandlerProxy in content/renderer implements the logic for sending the intercepted web input events to the compositor. Move this logic to ui to be used by mus/blimp. BUG=550531 Review URL: https://codereview.chromium.org/1415953004 Cr-Commit-Position: refs/heads/master@{#361207}
* Remove CreateStreamTexture from GL interfaces.siva.gunturi2015-11-151-0/+4
| | | | | | | | | | | | | | Remove CreateStreamTexture from gpu_control.h. Use CreateStreamTexture as a non virtual function in command_buffer_proxy and in_process_command_buffer (for STFSynchronous).Use CreateStreamTexture instead of gl->CreateStreamTextureCHROMIUM. BUG=516585, 339191 Review URL: https://codereview.chromium.org/1385883002 Cr-Commit-Position: refs/heads/master@{#359778}
* Fix gpu command buffer use after free by GrContextjunov2015-11-132-20/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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}
* Android Webview IPC-based sync compositingboliu2015-11-055-68/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Existing browser-renderer call path uses SynchronousCompositorImpl to cross the logical process boundary: [BrowserViewRenderer, RenderWidgetHostViewAndroid] <-> SynchronousCompositorImpl <-> [SynchronousCompositorOutputSurface, SynchronousCompositorExternalBeginFrameSource] New call path, added behind kIPCSyncCompositing switch essentially replaces SynchronousCompositorImpl with actual IPC code. New call path looks like this: [BrowserViewRenderer, RenderWidgetHostViewAndroid] <-> SynchronousCompositorHost <-> IPC <-> SynchronousCompositorFilter <-> SynchronousCompositorProxy <-> [SynchronousCompositorOutputSurface, SynchronousCompositorExternalBeginFrameSource] Browser side: Introduce SynchronousCompositorBase which adds methods used by RWHVA. Add SynchronousCompositorHost which instead of calling to renderer directly, uses sync IPCs instead. Renderer side: Add SynchronousCompositorFilter which is responsible for filtering sync compositing messages and sending them to compositor thread. The filter doubles as the SynchronousCompositorRegistry implementation. Filter is owned by RenderThreadImpl so should outlive all other objects and the compositor thread itself. Add SynchronousCompositorProxy. This takes the place of SynchronousCompositorImpl for the single-process path; the proxy is the client for OutputSurface and BeginFrameSource. Proxy also receives sync IPC from SynchronousCompositorHost and send replies and async IPCs back. Proxy is used on the compositor thread only. Proxy lifetime is controlled by the filter (registry) and is outlived by both OutputSurface and BeginFrameSource so life time management is simple. OutputSurface and BeginFrameSource are re-used. IPCs: There are common browser and renderer states that are sent on each message from and to browser side. There is a versioning system for the renderer state since messages may arrive out of order on the browser side. BUG=526842 Review URL: https://codereview.chromium.org/1408123005 Cr-Commit-Position: refs/heads/master@{#357955}
* sync compositor: pass simple gfx types by const refboliu2015-10-282-8/+8
| | | | | | | | | | See bug for reasoning BUG=159273 Review URL: https://codereview.chromium.org/1417893006 Cr-Commit-Position: refs/heads/master@{#356653}
* Remove ContextProvider::VerifyContexts.dcastagna2015-10-222-9/+0
| | | | | | | | | | | ContextProvider::VerifyContexts is not used anywhere. BUG=544547 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1419923002 Cr-Commit-Position: refs/heads/master@{#355643}
* Remove ContextProvider::DestroyedOnMainThread.dcastagna2015-10-212-18/+0
| | | | | | | | | | | | | | | | | | | ContextProvider::DestroyedOnMainThread was used on the main thread to check when a context bound to different thread had been destroyed. After crrev.com/1369843002, the only place where DestroyedOnMainThread is called is on the shared main thread context, that is already bound to the main thread. DestroyedOnMainThread and the lock used to protect |destroyed| are no longer needed. BUG=544547 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1406923004 Cr-Commit-Position: refs/heads/master@{#355431}
* Separate RenderViewHost from RenderWidgetHost, part 1: public interface.avi2015-10-151-1/+2
| | | | | | | | | | | This is the first part of the separation of RenderViewHost and RenderWidgetHost. The separation of the Impls is yet to come. BUG=478281 TEST=all green Review URL: https://codereview.chromium.org/1392323003 Cr-Commit-Position: refs/heads/master@{#354258}
* Share context creation logic with sync compositorboliu2015-10-132-84/+6
| | | | | | | | | | | | Other than memory limits, synchronous compositor and regular regular compositor share the same context creation logic. So actually share the code path as well. BUG=526842 Review URL: https://codereview.chromium.org/1395923003 Cr-Commit-Position: refs/heads/master@{#353837}
* Move sync compositor objects to rendererboliu2015-10-1213-645/+80
| | | | | | | | | | | | | | | | | | | Create SynchronousCompositorRegistry interface in renderer and rename implementation to InProc. Move ExternalBeginFrameSource, OutputSurface implementations to renderer, and create client interfaces as necessary to break dependency on browser objects. Remove SynchronousCompositorContextProvider since it is no longer needed. BUG=526842 Review URL: https://codereview.chromium.org/1360133004 Cr-Commit-Position: refs/heads/master@{#353632}
* Have RenderWidgetHostViewAndroid own sync compositorboliu2015-10-092-100/+68
| | | | | | | | | | | | Also simplify object lifetimes. Have SynchronousCompositorClient outlive SynchronousCompositor so no need to have code to handle setting and unsetting client. BUG=509702 Review URL: https://codereview.chromium.org/1385543003 Cr-Commit-Position: refs/heads/master@{#353221}
* Don't use view contexts in the rendererpiman2015-10-051-6/+1
| | | | | | | | BUG=487471 Review URL: https://codereview.chromium.org/1368583006 Cr-Commit-Position: refs/heads/master@{#352372}
* android webview: Remove support for in-proc command bufferboliu2015-10-053-129/+24
| | | | | | | | | | | For most things in android webview except in-line video. IPC-based command buffer path is ready. See bug for details. BUG=509702 Review URL: https://codereview.chromium.org/1325733003 Cr-Commit-Position: refs/heads/master@{#352350}
* Move gpu memory calculations to Compositor.sohan.jyoti2015-10-054-17/+0
| | | | | | | | | | | | This moves gpu memory policy code from gpumemorymanager to renderer compositor. It will be useful for renderer to use off screen context. BUG=526196 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1324413003 Cr-Commit-Position: refs/heads/master@{#352301}
* Remove surface_id from RenderWidget/RenderWidgetHost and friendspiman2015-09-242-3/+6
| | | | | | | | | | We don't need them any more. BUG=487471 Review URL: https://codereview.chromium.org/1359163005 Cr-Commit-Position: refs/heads/master@{#350686}
* Re-land: cc: Implement shared worker contexts.reveman2015-09-244-7/+82
| | | | | | | | | | | | | | | | | | This moves the responsibility to call BindToCurrentThread/SetupLock out of cc::OutputSurface and to the maintainer of the (possibly) shared context. OutputSurface now needs to be destroyed on the same thread they were created. OutputSurface::DetachFromClient() can be used to destroy any resources that need to be destroyed on the thread that the OutputSurface has been bound to. BUG=523411,525811 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1336733002 Cr-Commit-Position: refs/heads/master@{#350409}
* Remove LayerScrollOffsetDelegate, make all input paths go thru proxy.danakj2015-09-216-37/+21
| | | | | | | | | | | | | | | | | | | This removes the cc::LayerScrollOffsetDelegate interface, moving it into the InputHandlerClient interface. It also removes the pointer to cc::LayerTreeHostImpl (as a cc::InputHandler*) from the WebView embedder code. Instead make the WebView code always go through the SynchronousInputHandlerProxy (which is the InputHandlerProxy) to talk to the compositor about input-related things. R=boliu, jdduke@chromium.org BUG=531746 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1353013002 Cr-Commit-Position: refs/heads/master@{#350056}
* Revert of cc: Implement shared worker contexts. (patchset #9 id:160001 of ↵kbr2015-09-174-49/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://codereview.chromium.org/1336733002/ ) Reason for revert: Broke GPU rasterization on Mac OS; please see https://code.google.com/p/chromium/issues/detail?id=523411#c26 . I'm really sorry -- I don't know how this got past the CQ. Original issue's description: > cc: Implement shared worker contexts. > > This moves the responsibility to call BindToCurrentThread/SetupLock out > of cc::OutputSurface and to the maintainer of the (possibly) shared > context. > > OutputSurface now needs to be destroyed on the same thread they > were created. OutputSurface::DetachFromClient() can be used to > destroy any resources that need to be destroyed on the thread > that the OutputSurface has been bound to. > > BUG=523411 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/a47ef41ea03d3a5b8965eb700b682ddf8a1f055a > Cr-Commit-Position: refs/heads/master@{#349274} TBR=danakj@chromium.org,piman@chromium.org,sievers@chromium.org,reveman@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=523411 Review URL: https://codereview.chromium.org/1356463002 Cr-Commit-Position: refs/heads/master@{#349313}
* cc: Implement shared worker contexts.reveman2015-09-164-8/+49
| | | | | | | | | | | | | | | | | | This moves the responsibility to call BindToCurrentThread/SetupLock out of cc::OutputSurface and to the maintainer of the (possibly) shared context. OutputSurface now needs to be destroyed on the same thread they were created. OutputSurface::DetachFromClient() can be used to destroy any resources that need to be destroyed on the thread that the OutputSurface has been bound to. BUG=523411 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1336733002 Cr-Commit-Position: refs/heads/master@{#349274}
* webview: Remove LayerScrollOffsetDelegate::GetTotalScrollOffset.danakj2015-09-152-16/+6
| | | | | | | | | | | | | | | This method is only called in one place, immediately after calling UpdateRootLayerState, which sets the total scroll offset to the one given. So cc can just re-use the offset it handed off directly instead of setting it then getting it. R=boliu, jdduke BUG=531746 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1341973002 Cr-Commit-Position: refs/heads/master@{#348926}
* Fix sync compositor root flingboliu2015-09-101-1/+1
| | | | | | | | | | | | | Need to unset need_animate_input_ before calling SynchronouslyAnimate, since calling SynchronouslyAnimate can set need_animate_input_ again for the next animation tick. BUG=530124 R=danakj, jdduke Review URL: https://codereview.chromium.org/1334773002 Cr-Commit-Position: refs/heads/master@{#348176}
* input: Avoid a round trip for OnRootLayerDelegatedScrollOffsetChanged.danakj2015-09-101-2/+4
| | | | | | | | | | | | | | | | | | | | Currently the SynchronousCompositorImpl knows the offset changed, so it calles the InputHandler (LayerTreeHostImpl) which calls the LayerTreeImpl. Then LayerTreeImpl needs to know the offset, so it calls back to the SynchronousCompositorImpl through the LayerScrollOffsetDelegate. Just pass the offset to OnRootLayerDelegatedScrollOffsetChanged to make this simpler and avoid the anti-pattern of having class A call class B just to have class B get data from class A. R=boliu, jdduke BUG=522658 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1334573002 Cr-Commit-Position: refs/heads/master@{#348063}
* Move the AnimateInput paths for WebView around to not path through cc.danakj2015-09-096-24/+59
| | | | | | | | | | | | | | | | | | | | | | | They don't need to go through cc, so let's not and this lets cc reason about when/how things happen better. Adds 2 new interfaces: - SynchronousInputHandlerProxy. A limited view of the InputHandlerProxy given out to WebView to control animating timing. It lets WebView call SynchronouslyAnimate() to do animations. And if cc tried to also animate, we'd hit a DCHECK. - SynchronousInputHandler. An interface given to the InputHandlerProxy as an alternate place to handle requests for animation. When it's present animate requests go there instead of the usual InputHandler. R=boliu, enne, hush, jdduke, sievers BUG=522658 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1307203003 Cr-Commit-Position: refs/heads/master@{#348014}
* Move RecordFullDocument to WebPreferencesboliu2015-09-043-20/+1
| | | | | | | | | | | | | | | So it no longer depends on in_process code, in particular having android webview be single process. Preference is passed to RenderViewImpl on init, which is then used to initialize blink and the compositor. BUG=526842 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1309003006 Cr-Commit-Position: refs/heads/master@{#347528}
* [Android WebView] Add switch for enabling experimental renderer sandboxingmnaganov2015-09-021-2/+6
| | | | | | | | | | | | | | To run AwShell in this mode (no graphical output): build/android/adb_android_webview_command_line --webview-sandboxed-renderer Added a simple test for this mode. The next step will be to run all AW instrumentation tests like this in addition to normal mode. BUG=156062,525697 Review URL: https://codereview.chromium.org/1315633003 Cr-Commit-Position: refs/heads/master@{#346963}
* Revert of cc: Move worker context BindToCurrentThread/SetupLock calls out of ↵jbauman2015-09-011-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cc::OutputSurface. (patchset #5 id:80001 of https://codereview.chromium.org/1317743002/ ) Reason for revert: Likely causes crash on Mac: https://build.chromium.org/p/chromium.gpu/builders/Mac%20Release%20%28Intel%29/builds/54667 Going to see if reverting helps. BUG=527186 Original issue's description: > cc: Move worker context BindToCurrentThread/SetupLock calls out of cc::OutputSurface. > > This moves the responsibility to call these functions from > cc:OutputSurface to the code that creates the context. > > BUG=523411 > CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel > > Committed: https://crrev.com/10b73d7c140bc67ddeeaf716eb31df0977fe2497 > Cr-Commit-Position: refs/heads/master@{#346712} TBR=avi@chromium.org,danakj@chromium.org,reveman@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=523411 Review URL: https://codereview.chromium.org/1317533003 Cr-Commit-Position: refs/heads/master@{#346736}
* cc: Move worker context BindToCurrentThread/SetupLock calls out of ↵reveman2015-09-011-0/+8
| | | | | | | | | | | | | | cc::OutputSurface. This moves the responsibility to call these functions from cc:OutputSurface to the code that creates the context. BUG=523411 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1317743002 Cr-Commit-Position: refs/heads/master@{#346712}
* cc: Remove LayerScrollOffsetDelegate IsExternalScrollActiveboliu2015-09-012-9/+0
| | | | | | | | | | | | This has not been in use since r342756 when smoothness is disabled. New plan to enable smoothness no longer involves this call. BUG=520149 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1316933003 Cr-Commit-Position: refs/heads/master@{#346527}
* Sync compositor: Ignore command buffer memory callbackboliu2015-08-073-2/+55
| | | | | | | | | | | | | | Synchronous compositor client directly controls memory allocation. After switching to ipc-based command buffer, this conflicts the memory allocation callbacks from the command buffer. Note in-process command buffer never supposed memory callbacks. BUG=509702 Review URL: https://codereview.chromium.org/1268383003 Cr-Commit-Position: refs/heads/master@{#342267}
* Remove SoftwareFrameDatajbauman2015-08-071-1/+1
| | | | | | | | | | We never transmit software frames over IPC anymore, so this is unnecessary. CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review URL: https://codereview.chromium.org/1265243004 Cr-Commit-Position: refs/heads/master@{#342265}
* Sync Compositor: Create onscreen ipc contextboliu2015-07-292-4/+8
| | | | | | | | | | | | Pass surface_id when trying to create OutputSurface. surface_id is used to create the onscreen ipc context, which matches rest of chrome, and also works around an initialization issue on start up. BUG=509702 Review URL: https://codereview.chromium.org/1257723005 Cr-Commit-Position: refs/heads/master@{#340847}
* Add switch to use ipc command buffer in Android WebViewboliu2015-07-233-15/+66
| | | | | | | | | | | | | | | | | | | Still default to use in-process command buffer. Add switch to make testing easier. With ipc command buffer, no need to initialize bindings early in start up. This is ok because ipc command buffer is guaranteed to start before the in-process one on render thread is created. Video still runs with context on render thread. Child compositor, WebGL and accelerated canvas will run with ipc command buffer when switch is present. BUG=509702 Review URL: https://codereview.chromium.org/1253553002 Cr-Commit-Position: refs/heads/master@{#339999}