Implementation of 2D canvas context lost/restored events

This change adds the APIs specified in the feature proposal found here:
http://wiki.whatwg.org/wiki/Canvas_Context_Loss_and_Restoration
The API changes are hidden behind the experimental canvas features flag.

This change does not implement any elective canvas evictions. Those will
be added in a future change. Only pre-existing context loss use cases
are handled, such as failure to allocate a backing store, and gpu
failures.

The strategy for recovering from a GPU context lost was modified
substantially in order to accomodate synchronization issues with the
context restored event. Context restoration is now attempted proactively
through a scheduled event. Prior to this change, restoration happened
lazily when trying to use the canvas.

BUG=322335
R=senorblanco@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@170572 bbb929c8-8fbe-4397-9dbb-9b2b20218538
DevTools: hide autocomplete when the autocompletion prefix is empty

This patch hides autocomplete suggestion box in editor whenever
autocopmletion prefix length is zero.

BUG=358255

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

git-svn-id: svn://svn.chromium.org/blink/trunk@170573 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Use OwnPtr|PassOwnPtr to pass a pointer of SpeechInputClient

As r170438, WebViewImpl has owned m_m_speechInputClient member variable. However, it is also only used for
passing a pointer of SpeechInputClient. It is useless. To remove it, we need to change parameter
type to OwnPtr|PassOwnPtr in SpeechInput class. Besides OwnPtr|PassOwnPtr help to manage the client pointer more safely.

BUG=N/A

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

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