Copy the downloaded file of ResourceResponse to the other threads

To leverage the downloadToFile option in XHR, copying downloadedFile is
needed since XHR can work in the worker threads.
To copy the File to the other threads, we take the similar aproach to
RedirectToFileResourceHandler and SerializedScriptValue. Cloning the
internal Blob URL to keep the life of the File and reconstitute a File
in the other threads from the path, this internal URL and the type.

Currently the downloadToFile interface is not exposed to the script, so
we cannot test it. However, when XHR uses the downloadToFile option,
this change will be tested by LayoutTests.

BUG=230560, 269055

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

git-svn-id: svn://svn.chromium.org/blink/trunk@157011 bbb929c8-8fbe-4397-9dbb-9b2b20218538
[SVG] Handle endEvent for svg animations

Handled endEvent for svg animations according to http://www.w3.org/TR/SMIL3/smil-timing.html#q135

R=pdr@chromium.org, schenney@chromium.org, dschulze@chromium.org, fmalita@chromium.org
BUG=269648

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

git-svn-id: svn://svn.chromium.org/blink/trunk@157012 bbb929c8-8fbe-4397-9dbb-9b2b20218538
TestExpectations: fast/mediastream/RTCPeerConnection-stats.html is failing

BUG=282620
TBR=tommyw@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@157013 bbb929c8-8fbe-4397-9dbb-9b2b20218538
WebCrypto: Add interface for exportKey().

The spec defines it on SubtleCrypto (http://www.w3.org/TR/WebCryptoAPI/#subtlecrypto-interface) but doesn't give any other details. (The behavior with regard to extractability is inferred by this change)

BUG=245025

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

git-svn-id: svn://svn.chromium.org/blink/trunk@157014 bbb929c8-8fbe-4397-9dbb-9b2b20218538
setAttributeNode() does not set the new value to an existing attribute if specified attribute is in a different case.

setAttributeNode() now performs a case-insensitive search for an existing attribute
and if found, retrieves the index of such an attribute. For setting the value we
call upon setAttributeInternal() to which we pass both the index as well as the name.
The name passed to this method is the same as the one passed to the setAttributeNode() API from the webpage and thus can be in any case.

However, setAttributeInternal() uses this name to get the corresponding existing node.
Since this retrieval is not case-insensitive, the existing node is not found and thus
the new value is not set on the existing node.
We should instead use the passed index and use that to retrieve the existing node.

Note that obtaining the attribute's value using getAttributeNode() would still
return the correct value, i.e. the new one.

Also, this now makes our behavior similar to that of FF and IE.

BUG= 279193
R= esprehn@chromium.org,eseidel@chromium.org,ojan@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@157015 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Cleanup: Remove the WebCryptoAlgorithm::name() attribute.

This wasn't needed on the embedder's side so may as well remove it from the public API and save a word. (it was also awkward having to pass this in when constructing a WebCryptoAlgorithm)

BUG=245025

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

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