Keep AudioScheduledSourceNode alive until onended is called.

Also, if the document has already gone away, we want to avoid firing
the event at all. This is similar to what ScriptProcessorNode does
with events.

BUG=269753

Review URL: https://chromiumcodereview.appspot.com/23596014

git-svn-id: svn://svn.chromium.org/blink/trunk@157615 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add paint flags to allow skipping some paint setup.

This is a continuation of the work jbroman started before his internship ended
(http://crrev.com/22875044).

The setup of the SkPaint object can be expensive. For simple fill operations
we do work to setup the shader and the xfer mode which we don't.
This CL keeps a set of paintFlags to inform us what parts of the paint will
need to be set. If possible, we use those paint flags to early out the
setupPaintForFilling call.

BUG=277807

Review URL: https://chromiumcodereview.appspot.com/23875016

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