summaryrefslogtreecommitdiffstats
path: root/android_webview/browser/browser_view_renderer_impl.cc
Commit message (Collapse)AuthorAgeFilesLines
* Delete the browser-compositor webview render modejoth@chromium.org2013-06-131-571/+0
| | | | | | | | | | | | | This mode is now obsolete. Follow-up patches can from content APIs only needed by this, e.g. kEnableWebViewSynchronousAPIs and DIRECT_CONTEXT_ON_DRAW_THREAD. NOTRY=true BUG=179436 Review URL: https://chromiumcodereview.appspot.com/16796002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@206108 0039d316-1c4b-4281-b951-d872f2087c98
* Fix error in fallback SW renderingjoth@chromium.org2013-06-051-1/+2
| | | | | | | | | | | The clip-observing auxiliary bitmap needs to be translated on screen in accordance with the top-left corner of the clipping. BUG= Review URL: https://chromiumcodereview.appspot.com/16290010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204142 0039d316-1c4b-4281-b951-d872f2087c98
* Move synchronous compositor into content/browserjoth@chromium.org2013-05-311-1/+1
| | | | | | | | | | | | | | | This means all the hookup can remain in content/ so less internal details need to be revealed in the public API long-term. Now there is a single API to intialize the sync compositor mode per process, and per WebContents, rather than a collection of flags and hooks. The bulk of the browser->renderer hookup is done in content/ so android_webview InProcessViewRenderer can be greatly simplified. (depends on pending CL https://codereview.chromium.org/15875009/) Review URL: https://chromiumcodereview.appspot.com/15851006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203351 0039d316-1c4b-4281-b951-d872f2087c98
* Cache auxiliary bitmap across draw framesjoth@chromium.org2013-05-241-2/+2
| | | | | | | | | | | | | While this mode isn't intended to be used in anger, the slow down caused by reallocating the temp bitmap every frame is very high even for a development configuration. Also add a bunch of useful tracing. BUG= Review URL: https://chromiumcodereview.appspot.com/15795002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202035 0039d316-1c4b-4281-b951-d872f2087c98
* Bring up Software rendering in merged thread modejoth@chromium.org2013-05-161-1/+12
| | | | | | | | | | | | | | | | | Plumbs through demand-software-drawing from the view to the synchronous compositor. Migrates the SW draw machinery from BrowserViewRendererImpl to InProcessViewRenderer needed to implement this. (DrawSw CapturePicture are copied across; I've not attempted to factor them out as the former class is going to be deleted next.) Removes kEnableCompositorFrameMessage from all android configs except the old webview render path, to avoid the FrameAck handshaking in synchronous mode. TEST=Use with --merge-ui-and-compositor-threads to see SW rendering everywhere. BUG=230226 Review URL: https://chromiumcodereview.appspot.com/15120003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200498 0039d316-1c4b-4281-b951-d872f2087c98
* Implement capturePicture in terms of a SW drawjoth@chromium.org2013-05-131-13/+27
| | | | | | | | | | | | This inverts the SW draw / capturePicture releationship, as SW draw is now the underlying primative upon which we are building the other. BUG=230226 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/14736002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199691 0039d316-1c4b-4281-b951-d872f2087c98
* Fix bug in cl 14668007kristianm@chromium.org2013-05-101-0/+10
| | | | | | | | | | Update to https://codereview.chromium.org/14668007 BUG= Review URL: https://chromiumcodereview.appspot.com/14672013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199463 0039d316-1c4b-4281-b951-d872f2087c98
* Hardware draw init in android_webviewboliu@chromium.org2013-05-091-4/+5
| | | | | | | | | | | | | Add code for requesting a draw functor in invoke mode and all the pieces of assuming there is already a way synchronously initialize hardware draw in cc. BUG=230197 Android only change. Ran through android bots NOTRY=true Review URL: https://chromiumcodereview.appspot.com/14820020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199245 0039d316-1c4b-4281-b951-d872f2087c98
* Android WebView Merged-Thread Hardware Drawboliu@chromium.org2013-05-091-26/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | InProcessViewRenderer no longer inherits from the current implementation class, with most methods left unimplemented for now. This means the browser compositor is removed when merged thread mode is turned on. Synchronous input filter logic is moved to AwContentRenderer[Host]Ext, since ViewRenderer[Host] will go away after merged thread draw path is ready. UpdatePageScaleFactor moved similarly. Need to temporarily add a global AllowIO to temporarily work around compositor joining raster threads on UI thread on shutdown. Caveats: * This code is still not used until some flags are turned on. * Will break merged thread mode with existing browser compositor draw path * cc initialization changes required for webview are not there. * Lots more work required related to GL state restore and respecting transforms etc * Patch ignores software draw path, including case of not attached to window. BUG=230202, 230195 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/14888002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199223 0039d316-1c4b-4281-b951-d872f2087c98
* Made the following changes to enable merge modemichaelbai@chromium.org2013-05-091-3/+3
| | | | | | | | | | | | | - only set EnableWebViewSynchronousAPIs in unmerge mode - Allow wait in UI thread - Disable 8 unit tests since SW renderer didn't work. BUG=235702, 239144, 238735 Review URL: https://chromiumcodereview.appspot.com/13907007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199128 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for bug 235641, remove kOnNewPictureEnabledkristianm@chromium.org2013-05-081-35/+10
| | | | | | | | | | | | | | | This mode is now obsolete. Android webview only patch that get stuck on different trybots each time. Adding notry: NOTRY=true BUG=235641 R=joth@chromium.org Review URL: https://codereview.chromium.org/14668007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198904 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce SynchronousCompositor + Clientjoth@chromium.org2013-05-011-0/+25
| | | | | | | | | | | | | | | | | | (Re-lands crrev.com/197660 with fixed gypi files) Makes a direct API from aw/browser into the content/renderer compositor (for use in single process only). Plumb through the webview SW draw path as first step to removing the synchronous IPC path. BUG=230226 NOTRY=true Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=197660 Review URL: https://chromiumcodereview.appspot.com/14445008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197695 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 197660 "Introduce SynchronousCompositor + Client" which has incorrect ↵mattm@chromium.org2013-05-011-25/+0
| | | | | | | | | | | | | | | | | | | | | | gyp paths. > Introduce SynchronousCompositor + Client > > Makes a direct API from aw/browser into the content/renderer > compositor (for use in single process only). > Plumb through the webview SW draw path as first step to removing > the synchronous IPC path. > > BUG=230226 > NOTRY=true > > Review URL: https://chromiumcodereview.appspot.com/14445008 TBR=joth@chromium.org Review URL: https://codereview.chromium.org/14598003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197676 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce SynchronousCompositor + Clientjoth@chromium.org2013-05-011-0/+25
| | | | | | | | | | | | | | Makes a direct API from aw/browser into the content/renderer compositor (for use in single process only). Plumb through the webview SW draw path as first step to removing the synchronous IPC path. BUG=230226 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/14445008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197660 0039d316-1c4b-4281-b951-d872f2087c98
* android_webview: Remove use of ALLOW_THIS_IN_INITIALIZER_LIST.scherkus@chromium.org2013-04-261-2/+2
| | | | | | | | | | It's no longer providing value as the MSVC warning is disabled during compilation. Refer to bug for details. BUG=234765 Review URL: https://codereview.chromium.org/14497005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196810 0039d316-1c4b-4281-b951-d872f2087c98
* [Android WebView] Don't trigger a client invalidation from DrawGLbenm@chromium.org2013-04-251-2/+13
| | | | | | | | | | | | DrawGL needs to invalidate the compositor, but must not invalidate the client. This is because the client will trigger an asynchronous call to DrawGL again, and we end up in a loop. BUG=b/8707883 Review URL: https://chromiumcodereview.appspot.com/14060019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196519 0039d316-1c4b-4281-b951-d872f2087c98
* Invalidate before composite for WebViewboliu@chromium.org2013-04-241-0/+1
| | | | | | | | | | BUG= Android only change. Ran through Android bot. NOTRY=true Review URL: https://chromiumcodereview.appspot.com/14238018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196044 0039d316-1c4b-4281-b951-d872f2087c98
* [android] Resize the android_webview if it's 0x0 initially.mkosiba@chromium.org2013-04-191-0/+11
| | | | | | | | | | | | | | | | This changes the content size update path for android_webview to use the preferred size RenderView mechanism instead of the CompositorFrameMetadata. The reason for the change is due to the fact that the CompositorFrameMetadata is not updated when the view size is 0x0, which is a common use case for the WebView when it's layout mode is set to "wrap content". BUG=b/8187850 TEST=AndroidWebViewTests Review URL: https://chromiumcodereview.appspot.com/12567020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195135 0039d316-1c4b-4281-b951-d872f2087c98
* Part 10 of cc/ directory shuffles: layersjamesr@chromium.org2013-03-181-1/+1
| | | | | | | | | | | Continuation of https://src.chromium.org/viewvc/chrome?view=rev&revision=188681 BUG=190824 TBR=enne@chromium.org, piman@chromium.org, jschuh@chromium.org, joth@chromium.org Review URL: https://codereview.chromium.org/12916002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188703 0039d316-1c4b-4281-b951-d872f2087c98
* [Android WebView] Provide more information about WebView for web debuggingmnaganov@chromium.org2013-03-121-0/+15
| | | | | | | | | | Using only page title is not enough for identifying a WebView. This change adds to the remote web debugging landing page more information about debuggable WebViews. Review URL: https://codereview.chromium.org/12697002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187573 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Chromify Layer and LayerImpl classes.danakj@chromium.org2013-03-121-21/+21
| | | | | | | | | | | | Style-only change. Bring the Layer and LayerImpl classes into the Chromium style. R=enne,piman,jamesr TBR=joth Review URL: https://chromiumcodereview.appspot.com/12774006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187555 0039d316-1c4b-4281-b951-d872f2087c98
* Reduce the GL functor OpenGL state restoration to the minimum possible.leandrogracia@chromium.org2013-03-111-153/+4
| | | | | | | | | | | | | | | | | | | | Currently, an extensive GL state restore/save safeguard is used to discard any problems caused by GL state inconsistency between the Android View System and Chromium's compositor. This patch reduces this safeguard to its possible minimum for the sake of performance and to expose any further hidden problems. This should be handled in the future by an automated GL state restoration mechanism that would prevent Chromium's compositor from affecting Android View System compositing when rendering into the device screen directly. BUG=164140 TEST=Look for any new graphical glitches while testing HW-accelerated WebView. Review URL: https://chromiumcodereview.appspot.com/12600008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187370 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for crash in testWindows testjoth@chromium.org2013-03-111-5/+39
| | | | | | | | | | Avoid using Web Contents after it maybe deleted. BUG=b/8341990 Review URL: https://chromiumcodereview.appspot.com/12668003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187319 0039d316-1c4b-4281-b951-d872f2087c98
* Fix page scaling in Android Webview SW rendering.leandrogracia@chromium.org2013-03-061-15/+49
| | | | | | | | | BUG= Review URL: https://chromiumcodereview.appspot.com/12310136 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186532 0039d316-1c4b-4281-b951-d872f2087c98
* Return empty Picture objects for empty SkPictures.leandrogracia@chromium.org2013-02-271-0/+6
| | | | | | | | | | | | | The current code is not properly handling the empty vs NULL Picture case. Fix this to prevent trying to create empty auxiliary bitmaps, which raises Java exceptions. BUG= NOTRY=true Review URL: https://chromiumcodereview.appspot.com/12340105 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@184943 0039d316-1c4b-4281-b951-d872f2087c98
* [Android WebView] Migrate the rendering code to a separate set of classes.leandrogracia@chromium.org2013-02-151-0/+596
| | | | | | | | | | | | | | | | | | | | | It takes from https://codereview.chromium.org/11823027/ and assumes SW rendering and Capture Picture to be ready and enabled. Most changes just move around code. The major structural changes are: - Introduce a browser-layer view renderer interface and move the code to its implementation. - Take out the rendering-related IPC to its own separate set of host/renderer classes. - Change the way the view hierarchy and the compositor are initialized. Now they are created and set on BrowserViewRendererImpl construction. - Content is now provided via a ContentViewCore object when initialized, updating the layer to use and the WebContents to observe. - Remove/update the DEPS and gyp changes introduced to support rendering in the native layer. BUG=167913,167908,161409 NOTRY=true Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=182710 Review URL: https://chromiumcodereview.appspot.com/12041009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182717 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 182710, this broke check_deps.marja@chromium.org2013-02-151-596/+0
| | | | | | | | | | | | | | | | | | | | | | | | > [Android WebView] Migrate the rendering code to a separate set of classes. > > It takes from https://codereview.chromium.org/11823027/ > and assumes SW rendering and Capture Picture to be ready and enabled. > > Most changes just move around code. The major structural changes are: > - Introduce a browser-layer view renderer interface and move the code to its implementation. > - Take out the rendering-related IPC to its own separate set of host/renderer classes. > - Change the way the view hierarchy and the compositor are initialized. Now they are created and set on BrowserViewRendererImpl construction. > - Content is now provided via a ContentViewCore object when initialized, updating the layer to use and the WebContents to observe. > - Remove/update the DEPS and gyp changes introduced to support rendering in the native layer. > > BUG=167913,167908,161409 > NOTRY=true > > Review URL: https://chromiumcodereview.appspot.com/12041009 TBR=leandrogracia@chromium.org Review URL: https://codereview.chromium.org/12230059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182712 0039d316-1c4b-4281-b951-d872f2087c98
* [Android WebView] Migrate the rendering code to a separate set of classes.leandrogracia@chromium.org2013-02-151-0/+596
It takes from https://codereview.chromium.org/11823027/ and assumes SW rendering and Capture Picture to be ready and enabled. Most changes just move around code. The major structural changes are: - Introduce a browser-layer view renderer interface and move the code to its implementation. - Take out the rendering-related IPC to its own separate set of host/renderer classes. - Change the way the view hierarchy and the compositor are initialized. Now they are created and set on BrowserViewRendererImpl construction. - Content is now provided via a ContentViewCore object when initialized, updating the layer to use and the WebContents to observe. - Remove/update the DEPS and gyp changes introduced to support rendering in the native layer. BUG=167913,167908,161409 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/12041009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182710 0039d316-1c4b-4281-b951-d872f2087c98