Cherry-pick: [Android] Prevent re-entrance into ContentVideoView.exitFullscreen

Cherry-pick of Chromium crrev.com/r226859

BUG: 11057493

Original description:

For Android WebView, if app decides to call exitFullscreen from
onDestroyContentVideoView, then re-entering into exitFullscreen and
causing an infinite recursion.

Fix by moving the onDestroyContentVideoView to after removeSurfaceView.
The next time destroyContentVideoView in, onDestroyContentVideoView will
not be called since mVideoSurfaceView is already null.

Change-Id: I5c4de70d1fe34a82e3393ed7d9164555040f5919
Merge "Cherry-pick: [Android WebView] Change default tile size to 512x512" into klp-dev
Merge "Cherry-pick: [Android] Prevent re-entrance into ContentVideoView.exitFullscreen" into klp-dev
am 83f0adcf: Cherry-pick: [Android] Restore EGL Context after collecting GPU info

* commit '83f0adcf664daf43b691f703508068b17b86196d':
  Cherry-pick: [Android] Restore EGL Context after collecting GPU info
am 7211bb13: Cherry-pick: [Android WebView] OnMemoryPressure to drop tile memory

* commit '7211bb133f06cafe148e28f08fbfe0b90c4b1b78':
  Cherry-pick: [Android WebView] OnMemoryPressure to drop tile memory
am d3df597f: Cherry-pick: [Android WebView] Fix invalidate corner case

* commit 'd3df597fc02afb0e88fef13c90cd425c2065bbf6':
  Cherry-pick: [Android WebView] Fix invalidate corner case
am c7bc4150: Android code should not assume main thread == UI thread.

* commit 'c7bc4150c7dee00c658772863a771d00102e00fb':
  Android code should not assume main thread == UI thread.
am e61eb146: Split AwSettings contruction out of AwContents

* commit 'e61eb146503996483746547b385915c34528d838':
  Split AwSettings contruction out of AwContents
am e0f9243d: Merge "Cherry-pick: [Android WebView] Change default tile size to 512x512" into klp-dev

* commit 'e0f9243d15bc8219966c275be63014ac035046e8':
  Cherry-pick: [Android WebView] Change default tile size to 512x512
am 00bdd09e: Merge "Cherry-pick: [Android] Prevent re-entrance into ContentVideoView.exitFullscreen" into klp-dev

* commit '00bdd09e0836be18c4253b10d2cf84dfba5cfd3f':
  Cherry-pick: [Android] Prevent re-entrance into ContentVideoView.exitFullscreen
Cherry-pick: [Android WebView] Check AwContentsIoThreadClient usage

Cherry-pick of Chromium crrev.com/r226947

BUG: 11063091

Original description:

The instance of AwContentsIoThreadClient is uninstalled when AwContents
(along with WebContents and RenderViewHost) is destroyed. But RenderView
can still be alive and send more requests. It may also be possible for
AwContentsIoThreadClient to be uninstalled after a request has started.
So null check all usage of AwContentsIoThreadClient::FromID to make sure
it returns a real object.

Change-Id: I17e7b7a8cccb6e833a8a176a236437688891dd16
am 1e62f0c0: Cherry-pick: [Android WebView] Check AwContentsIoThreadClient usage

* commit '1e62f0c031cc1d397084dfe50a26162f857ae4c9':
  Cherry-pick: [Android WebView] Check AwContentsIoThreadClient usage
Allow CookieManager to be used without starting Chromium.

Refactor the CookieManager to allow it to be used without starting
Chromium. If Chromium has not been started when the cookie manager is
first used, a temporary cookie monster will be created and used to
service requests (with its own client/backend threads). If the app
subsequently triggers regular Chromium startup (e.g. by creating a
WebView) then the temporary one will be shut down cleanly before the
real instance is created.

Bug: 10969703
Change-Id: I903630cbdbccc61958e5e8b9179c0a3d09594a8b
am 20a183ad: Allow CookieManager to be used without starting Chromium.

* commit '20a183ad098c05cd932b716c568006ea05000542':
  Allow CookieManager to be used without starting Chromium.
Cherry Pick [Android WebView] Add an API to control favicon loading.

Cherry pick of https://chromiumcodereview.appspot.com/25878003/

Bug: 10825362

Original Description:
[Android WebView] Add an API to control favicon loading.

Change-Id: If752842bbff8f5b07719d84d69cad8bb4642bd45
Cherry-pick: [Android WebView] Check AwContentsIoThreadClient usage

Cherry-pick of Chromium crrev.com/r226947

BUG: 11063091

Original description:

The instance of AwContentsIoThreadClient is uninstalled when AwContents
(along with WebContents and RenderViewHost) is destroyed. But RenderView
can still be alive and send more requests. It may also be possible for
AwContentsIoThreadClient to be uninstalled after a request has started.
So null check all usage of AwContentsIoThreadClient::FromID to make sure
it returns a real object.

Change-Id: I17e7b7a8cccb6e833a8a176a236437688891dd16
Cherry pick [Android WebView] Disable WebRTC.

Cherry pick of https://codereview.chromium.org/25453008/

Bug: 7882891

Original Description:
[Android WebView] Disable WebRTC.

Android WebView compiles out WebRTC, so we should disable runtime
interfaces too.

Change-Id: I72da32a95af8feb395a144a64a267061a6179fd0
Fork: Activation do not depend on BeginFrame

BUG: 11001058

Webview does not use ProactiveBeginFrame, so cannot depend on BeginFrame
for activation.

Note that this patch as is cannot land in upstream Chromium since all
other platforms do use ProactiveBeginFrame.

Forking since Chromium trunk looks very different so fixes there cannot
be cherry-picked now.

Change-Id: I6a6e2e6f9dcfc7b29d0af2e0f04e2e042610380e
am d3b04d94: Fork: Activation do not depend on BeginFrame

* commit 'd3b04d94ac5d69bc004407623274e7b4f78fe950':
  Fork: Activation do not depend on BeginFrame
merge in klp-release history after reset to klp-dev