Ensure that if FrameView::isScrollable() is false, the assoc WebLayer is, too.

Currently, we ignore main thread scrolling reasons when
FrameView::isScrollable() returns false. Unfortunately, this can be the case
even if the main frame would indeed respond to scrolls on the impl thread.
This can happen when the main frame is overflow: hidden. This should never be.
This CL builds on the existing machinery in ScrollingCoordinator to detect when
the main frame's scrollability is dirty to ensure that its associated WebLayer's
scrollability is correct.

R=shawnsingh@chromium.org
BUG=328672

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

git-svn-id: svn://svn.chromium.org/blink/trunk@164629 bbb929c8-8fbe-4397-9dbb-9b2b20218538
IndexedDB: Ensure IDBRequest and IDBCursor wrapper lifetimes are bound

As long as script holds onto an IDBCursor wrapper the IDBRequest
wrapper that produced it must be retained so that event listeners will
still fire. Conversely, as long as the IDBRequest wrapper is held by
script the IDBCursor wrapper should be retained even if script has no
references.

Note: Normally this sort of thing would be done via the
ActiveDOMObject::hasPendingActivity() method but in this case the
IDBRequest has dispatched events and will not do anything unless the
cursor is poked by script. Returning "true" from hasPendingActivity()
would retain the request and cursor until the end of the transaction
even when the script dropped references.

[PERF SHERIFFS: May regress some recent optimizations.]

R=dgrogan,alecflett,haraken
BUG=329471

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

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