cc: Allow layers to have tilings even if twin doesn't

This fixes a bug where an active layer has a valid raster scale but
can't have tilings.  When a pending layer that could have tilings syncs
to it, it picks up these raster scales and so doesn't think it needs to
change tilings, even though it doesn't have any.  Worse, this state
would continue to persist for every future pending layer that can have
tilings because they would also pick up these raster scales without
tilings and think they were in an acceptable state.

This patch addresses this problem by always making sure that raster
scales are reset whenever a layer can't have tilings.  This causes
PictureLayerImpl::ManageTilings to not early out and to create new
tilings as soon as it is possible.

R=danakj@chromium.org
BUG=313598

Review URL: https://codereview.chromium.org/78853006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236716 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 236716
Track Dynamically Assigned Command IDs in Background Menu Generation

Menu items require that Command IDs be unique. For a single profile,
collisions don't happen. For multiple profiles, the profile menu
as well as its submenus start at Command ID 0, confusing the menu
system when it tries to identify or change and item.

The fix here creates an vector to hold the extension indexes
using the vector index as a Command ID. For profile menu labels,
the extension index is -1.

As a bonus, we now clean up the background submenus when multiple profiles exist. Previously, the submenus were leaking away.

BUG=315164

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=236489

Review URL: https://codereview.chromium.org/75973004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236717 0039d316-1c4b-4281-b951-d872f2087c98
RenderWidget and RenderWidgetCompositor cleanup

This patch can be considered as two logical changes that are orthogonal.
Both of the changes don't affect code behavior.

[2/2] Add LayerTreeHostSingleThreadClient::ScheduleAnimation

widget_->scheduleAnimation() should be routed through SingleThreadProxy::
SetNeedsAnimate().

This way we can reduce many CC API inconsistencies between single thread and
threaded mode.

[1/2] Remove ScheduleCompositeImpl

The force_redraw parameter of ScheduleCompositeImpl only makes a difference
in threaded-compositing mode. The only user of ScheduleCompositeImpl(true)
always calls SetNeedsAnimate, so it doesn't harm to call it one more time.
--> ScheduleCompositeImpl is fully equivalent to scheduleComposite

This patch merges ScheduleCompositeImpl into scheduleComposite.

R=jamesr,piman

Review URL: https://codereview.chromium.org/80173002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236718 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 236718
gpu: Allow TEXTURE_RECTANGLE_ARB and other targets to be used with CHROMIUM_texture_from_image.

This makes it up to the GLImage implementation to decide if target is supported or not instead of enforcing a restriction at the decoder level.

BUG=321795

Review URL: https://codereview.chromium.org/81103002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236719 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 236719