Make ScreenOrientationController a FrameDestructionObserver.

With LocalFrame now on the heap, switch this controller to be a frame
destruction observer so as to conventionally handle tracing of the
frame during GCs, and eventual frame detach.

This is a tidying change; what's currently provided isn't unsafe, as
the controller is also a page lifecycle observer and uses the lack of
a page to detect detached operation. But it is preferable overall
to handle frame access and lifetime using FrameDestructionObserver.

R=haraken,mlamouri
BUG=340522

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182497 bbb929c8-8fbe-4397-9dbb-9b2b20218538
IDL: Remove the CompareHow special case

It's a special type used only for Range.compareBoundaryPoints()'s |how|
argument, and all the bindings layer actually does is cast a 32-bit int to
the Range::CompareHow C++ enumeration, without any checks. The spec's IDL
has the argument's type as |unsigned short|.

This doesn't change any behavior (the value checks were always in the C++
code, and still are), aligns our IDL files with the spec, and, most
significantly, removes the special case from the code generator.

BUG=413257

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

git-svn-id: svn://svn.chromium.org/blink/trunk@182498 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Oilpan: Hide callback-stack blocks behind an abstraction and add constant-time append.

R=ager@chromium.org, erik.corry@gmail.com, wibling@chromium.org
BUG=

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

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