Make viewport units work in CSS gradients
https://bugs.webkit.org/show_bug.cgi?id=133204
<rdar://problem/17012259>

Source/WebCore:

Reviewed by Tim Horton.

Make viewport percentage lengths work in gradients.

Test: fast/gradients/viewport-units-gradient.html

* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::addStops):
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::createGradient):
* css/CSSGradientValue.h:

LayoutTests:

Reviewed by Tim Horton.

Make viewport percentage lengths work in gradients.

* fast/gradients/viewport-units-gradient-expected.html: Added.
* fast/gradients/viewport-units-gradient.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169248 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Curl] Crash when exceeding maximum cache limit.
https://bugs.webkit.org/show_bug.cgi?id=133185

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-05-22
Reviewed by Brent Fulgham.

When the maximum cache limit is exceeded, I get a crash.
This happens when deleting cache entries, because a reference to the url string object in the LRU list
is used as a parameter to invalidateCacheEntry(), when called from makeRoomForNewEntry().
When the string is removed from the LRU list in makeRoomForNewEntry(), the string is deleted.
Next, the string is accessed again to remove the url from the index, and we crash.

This can be fixed by removing the string from the LRU list after it is removed from the index.

Fixing the crash also revealed an infinite loop problem.
If the url for some reason only exist in the LRU list, and not in the index,
we will inifitely loop in makeRoomForNewEntry(), trying to remove this url from the cache, but never succeeding.
This can be fixed by removing the url from the LRU list, also when it's not in the index.

* platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::makeRoomForNewEntry): Avoid infinite loop by checking if there are more cache entries to remove.
(WebCore::CurlCacheManager::invalidateCacheEntry): Avoid crash and infinite loop by removing url from LRU list last.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169249 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move the passed-in Vector<Attachment> in MessageDecoder constructor down into ArgumentDecoder
https://bugs.webkit.org/show_bug.cgi?id=133080

Reviewed by Andreas Kling.

* Platform/IPC/MessageDecoder.cpp:
(IPC::MessageDecoder::MessageDecoder): The Vector<Attachment> object was passed in by value.
Move it into the ArgumentDecoder constructor as it is not used elsewhere in this constructor
and produces a copy otherwise.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169250 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Have the decoded element in VectorArgumentCoder::decode() moved into Vector::append()
https://bugs.webkit.org/show_bug.cgi?id=133082

Reviewed by Andreas Kling.

* Platform/IPC/ArgumentCoders.h: Move the decoded element into the Vector::append() call.
This enforces a move instead of a copy if the decoded element's type is move-constructible.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169251 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add the partial specialization for VectorTraits<std::unique_ptr<P>>
https://bugs.webkit.org/show_bug.cgi?id=133083

Reviewed by Andreas Kling.

* wtf/VectorTraits.h: Like for RefPtr<P>, OwnPtr<P> and Ref<P>, the partial
specialization for VectorTraits<std::unique_ptr<P>> should exist and should
inherit from SimpleClassVector.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169252 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Try to fix windows build.

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@169253 268f45cc-cd09-0410-ab3c-d52691b4dbfc