[Blink] [PowerProfiler] Support accuracy level attribute for power data provider.

Blink side changes in devtools protocol and front_end to utilize the accuracy level
attribute from power data provider.

BUG=384299
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/blink/trunk@176966 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Oilpan: make shutdown of plugin container objects work better.

The plugin container object/widget that's kept by the plugin element has
a destructor that accesses its element's document in a couple of ways:

 - Optionally notifying that a touch event handler has been removed.
 - Tries to notify element (and its document) that compositing update
   is needed.
 - Indirectly clears out the script objects registered on the document
   frame's ScriptController when destroying the container's plugin object.

With Oilpan, none of these can be done during finalization as the document
cannot be assumed to be alive.

To address, introduce an explicit detach() step for when the element is
cleanly removed from the document (along with its container.) Otherwise,
the plugin container is assumed to go away at the same time as the
element (and the document.) The container's destructor will then only
notify any off-heap objects.

R=tkent@chromium.org,haraken@chromium.org
BUG=340522

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

git-svn-id: svn://svn.chromium.org/blink/trunk@176967 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Let FullscreenElementStack methods take references where possible

The main motivation is requestFullScreenForElement, which handled the
Element* argument being null even though there's no way that could
happen. The fallback to document()->documentElement() was unreachable.

Get rid of fullScreenIsAllowedForElement since it was only used in a
single place.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@176968 bbb929c8-8fbe-4397-9dbb-9b2b20218538
ClipRectsCache never uses 1/3 of its slots

Previously, ClipRectsCache allocated two slots for each type of cached clip
rects, but the only clients that wanted to ignore overflow clip were those that
cared about PaintingClipRects. Rather than using two enums and dodgy math, this
CL makes the slots in the cache explicit.

In this CL, I've also reworked the ClipRectsCache and ClipRectsContext API to
be less baroque and to avoid doing extra work when not necessary.

This CL makes the compositing update for Polymer's calculator 2% faster.

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

git-svn-id: svn://svn.chromium.org/blink/trunk@176969 bbb929c8-8fbe-4397-9dbb-9b2b20218538