Reimplement CustomElementCallbackDispatcher to use a processing stack.

This starts to revise the way Custom Element callbacks are dispatched
to match this proposal:
<https://www.w3.org/Bugs/Public/show_bug.cgi?id=22459>

Instead of a queue of callbacks, there is a processing stack which
reflects recursion arising from script; each entry in the stack is an
element queue that orders elements which have callbacks to be
processed at that level; and each element has a local queue of
callbacks.

CustomElementCallbackDispatcher implements the processing stack and
element queues using one flat vector; different stack entries are
delimited by indexes into the vector. This is makes it extremely cheap
to push and pop entries that end up not scheduling any callbacks,
which is nice because as new kinds of Custom Element callbacks are
added this processing will be necessary in many DOM bindings.

This is covered by existing tests. Because there is only one kind of
callback, CustomElementCallbackQueue::processInQueue is only trivially covered. New
kinds of callbacks which exercise this fully are coming right up.

BUG=234509
R=morrita@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@153616 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fix dependencies in bindings_derived_sources and bindings_sources

When refactoring derived_sources.gyp, I removed some dependencies that
looked redundant. Turns out they *are* necessary, which shows up if you
add or remove IDL files.
This restores the dependencies, listing them on the correct (split up)
targets, together with comments on why the dependencies are needed,
since this is confusing.

Original CL:
Issue 18346015: Refactor sources and derived sources in derived_sources.gyp
https://chromiumcodereview.appspot.com/18346015

Nico identified this problem and posted a fix here, which I've made more
comprehensive.
Issue 18085003: bindings_derived_sources and bindings_sources should depend on supplemental_dependency.tmp
https://codereview.chromium.org/18085003/

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

git-svn-id: svn://svn.chromium.org/blink/trunk@153617 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Fix mislead method name in ScriptDebugServer

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

git-svn-id: svn://svn.chromium.org/blink/trunk@153618 bbb929c8-8fbe-4397-9dbb-9b2b20218538
backgroundIsKnownToBeObscured should return false when RenderBox has box-shadow.

box-shadow is painted in paintFillLayers (invoked from paintBackground).
However, if background is known to be obscured, the paintFillLayers will not be invoked.
So if RenderBox has any box-shadow, its backgroundIsKnownToBeObscured should return false.

BUG=242624

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

git-svn-id: svn://svn.chromium.org/blink/trunk@153619 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Remove gen/webcore (replace with gen/webkit)

The gen/webcore directory is a hack, used to hold auto-generated
bindings .cpp files, while .h files go in gen/webkit.
This exists because we can't specify the same directory twice in
the command lines of various Actions and Rules in GYP, since GYP doesn't
allow duplicate values in lists.

This is fixed by only specifying a single directory on the command line,
and then using the value of that flag for both the .cpp and .h files.
(Namely: if the --outputHeaderDir flag is omitted, use the value for
the .cpp output directory.)

In fact, generate-bindings.pl already has this behavior in the script,
but the GYP file didn't use it.
This change required changes across a couple of GYP files.

Other than the bindings, a few Inspector rules used 'webcore',
which I've also fixed (fixed GYP files and updated scripts to use
the .cpp output directory if no header directory specified).
In a clean build, gen/webcore no longer exists, and the files are all
in gen/webkit!

This also fixes tabs in devtools.gyp (replaces with spaces), as lint
was complaining during presubmit.

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

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