While screencasting a tab, do not disable rendering updates while hidden.

Approach: There is already a mechanism in WebContentsImpl to prevent WasHidden() from bubbling down to RWHV during tab dragging.  This mechanism is extended to also include the span of tab mirroring sessions.  A counter is used to account for both dragging a tab and screencasting it at the same time.

Fixed a bug in tab_drag_controller.cc where SetCapturingContents(false) was not being called after a drag in some circumstances.

Note on GTK-specific drag controller change: WebContents::SetCapturingContents(true) is never called, making the Set(false) call a no-op.  Removed the Set(false) call and confirmed this did not affect tab dragging behavior on Linux.

BUG=154184
TEST=Win/Mac/Linux: Tested that hidden tabs continue to render with both GPU and software compositing paths.  Also, ran through several tab dragging scenarios with and without screencasting engaged.


Review URL: https://chromiumcodereview.appspot.com/12179007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180857 0039d316-1c4b-4281-b951-d872f2087c98
6 files changed