This function existed to service the LegacyHTMLTreeBuilder. The new
HTMLTreeBuilder has this logic internalized. Pulling on this thread
caused me to remove a legacyParserAddChild and to discover some code
that shouldn't be calling these parser-specific APIs.

Right now commit-queue/EWS only report failures when the
patch under testing fails. We should report all failures
to the status server so that we can diagnose when the bots
are wedged w/o needing to log into the machines.

I also reduced the amount of data we upload since we've seen
timeouts during status upload.

Add http/tests/security/xssAuditor/dom-write-location-inline-event.html
to the Skipped list. It's flaky after enabling the HTML5 fragment
parser. I need to investigate. However, I'm planning to redesign the
XSSAuditor to make use of the new parser, so it seems to make sense to
wait a bit.

Fixes an issue where the decimal suffix is not used for
ordinals that cannot be represented by the alphabetic list
style type.

Currently, for ordinals that cannot be represented in the
alphabetic list style we use the suffix associated with the
list style. Instead, we should use the suffix for the decimal
list style ('.'). For instance, when the list style type is
Afar and the starting ordinal is 0, then we fallback to the
decimal list style suffix '.' because 0 cannot be represented
in Afar.

We were blocking popups created by Flash Player because we were never
setting the UserGestureIndicator for events. Most WebKit ports handle
events through EventHandler, but Chromium is special (for some unknown
reason) and dispatches events directly. That means Chromium misses out
on some of the work done by EventHandler, including setting the
UserGestureIndicator.

I suspect this is covered by an existing LayoutTest, but I don't have
the ability to run the Chromium LayoutTests on this machine. :(

New class to perform double to string conversion.
Has three constructors, which allow conversion with no rounding,
rounding to significant-figures, or rounding to decimal-places,
and two methods for formatting strings, either using decimal
fraction or exponential encoding. Internal implementation uses
pre-rounding of the values before calling dtoa rather than
relying on dtoa to correctly round, which does not produce
fully accurate results. Hopefully we can address this in the
near future.

wtf/dtoa.cpp:

(WTF::intPow10):

wtf/dtoa.h:

intPow10 is used internally by DecimalNumber.

wtf/text/WTFString.cpp:

(WTF::copyToString):
(WTF::nanOrInfToString):

Used internally in numberToString for NaN/Infinity handling.

(WTF::numberToString):

Added new method to convert doubles to strings.

wtf/text/WTFString.h:

Added declaration for numberToString. This is here because
we should switch over to using this for all double to string
conversion in WebCore (see section 2.4.4.3 of the HTML5 spec).

This patch changes some layout test results - in all these cases we were
not previously accurate to spec defined behaviour, and we are still not

but overall this changes reduces the overall magnitude of error due to

rounding differences. The underlying problem is that we should be using
dtoa to generate results to a specified accuracy, rather than relying on
pre-rounding the input values. We should look at reenabling our dtoa
implementation to work in this fashion as a separate change.

In the example from the page we were accessing document()
after DocumentParser::detach() was called. To prevent this
I added an ASSERT(m_document) to document(), causing many
test cases to cover the bug shown in bug 44533.

To fix the bug, I implemented XMLDocumentParser::detach()
and had it call clearCurrentNodeStack(), thus making
it impossible for XMLDocumentParser to still have the Document
on the node stack after detach (which was what was causing this bug).

While fixing this, I noticed that XMLDocumentParser may have the
same trouble crashing that the HTMLDocumentParser did when
synchronously deleted from JS (for example by an iframe navigation).
I added a test case to cover this and protected the parser after
the two places it executes scripts.

This change revamps the way we store test data for new-run-webkit-tests.
Previously we had a few copies of test files from the main test tree.
Now we have a bunch of completely fake test data and use the test
data to generate different kinds of test failures, getting
much better coverage.

Add a --no-record-results flag that turns off generating the JSON
results file on every test run. Generating the file requires us to
fetch the old results down from the bots, which can be slow. This
flag is off by default.

Reduce the sleep time in wait_for_threads_to_finish from 0.1s to 0.01s.

inspector/front-end/CSSCompletions.js:
(WebInspector.CSSCompletions._firstIndexOfPrefix): handle a possible error case before properties have loaded.
(WebInspector.CSSCompletions._load): fill up the special array with the received properties.

inspector/front-end/SourceCSSTokenizer.js:
(WebInspector.SourceCSSTokenizer): use the list of support properties from the backend.

Speculative fix for perf test flakiness. Use chromium.Interval
to get a microsecond granularity timer. If this does end up
reducing flakiness, then we can expose something similar for
JSC and/or layoutTestController.

(WebCore::V8DOMWrapper::wrapNativeNodeFilter): This function
should always create a filter. V8NodeFilterCondition::acceptNode()
will check if the given object can be used as a filter, and throw
an exception if it can't.

bindings/v8/V8NodeFilterCondition.cpp:

(WebCore::V8NodeFilterCondition::acceptNode): Update this binding
to do the same thing that the JS binding does.

These are all font differences from the windows and mac results. On
Linux, we have stronger anti-aliasing of fonts than windows although
we match the windows font metrics (which is why these are only pixel
results).

TreeWalker's nextSibling() and previousSibling() behaved incorrectly
when traversing down a subtree where all nodes are skipped; it backed all
the way up to the root of the subtree, then jump to the subtree's parentNode.
This would skip later siblings.

Fix by resetting 'node' when traversing to children so that node = node->parentNode()
gets the correct node later.

DumpRenderTree/gtk/EventSender.cpp:
(prepareMouseButtonEvent): Use gdk_event_new and reference the reference the GdkWindow
when setting it on the event. It is dereferenced by gdk_event_free(...).
(contextClickCallback): Ditto.
(mouseDownCallback): Ditto.
(mouseUpCallback): Ditto.
(mouseMoveToCallback): Ditto.
(mouseWheelToCallback): Ditto.
(sendOrQueueEvent): Take a GdkEvent* instead of a GdkEvent.
(dispatchEvent): Ditto. Also free the event when we are done with it.
(keyDownCallback): Use gdk_event_new and reference the GdkWindow.

The mac implementation of paste in WebKit was accidentally calling
Editor::tryDHTMLPaste twice, once in -[WebHTMLView paste:] and once
in Editor::pasteAsPlainText (which is called -[WebHTMLView paste:]).
Use the new pasteAsPlainTextBypassingDHTML function to bypass the
second call.

Test: editing/pasteboard/paste-event-only-once.html

WebCore.exp.in:

editing/Editor.cpp:

(WebCore::Editor::pasteAsPlainTextBypassingDHTML):

editing/Editor.h:

Expose a function which just pastes using from the general pasteboard,
bypassing all the checking and DHTML pasting.

WebKit/mac:

The mac implementation of paste in WebKit was accidentally calling
Editor::tryDHTMLPaste twice, once in -[WebHTMLView paste:] and once
in Editor::pasteAsPlainText (which is called -[WebHTMLView paste:]).
Use the new pasteAsPlainTextBypassingDHTML function to bypass the
second call.

Make fillAndStrokePath a member function of RenderPath, to avoid having to pass the const Path& and this paramters.
Don't leave the GraphicsContext mutated after applying non-scaling-stroke transformation, otherwhise markers will be renderer
in the wrong coordinate space, and thus don't show up anymore.

Add new tests covering nesting of clippers and maskers, with different unitTypes for the content coordinate system.
Scale all ImageBuffer content to take into account that ImageBuffers use integer based sizes, where the content
is floating-point sized. This compensates rounded errors, when scaling the document.

rendering/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyResource): Return the value of applyClippingToContext, instead of always true.
(WebCore::RenderSVGResourceClipper::applyClippingToContext): Moved some code from createClipData, to avoid having to pass 5 arguments to createClipData.
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage): Renamed from createClipData.

rendering/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource): Adapt to calculateTransformationToOutermostSVGCoordinateSystem changes. AffineTransform is now passed as reference.
(WebCore::RenderSVGResourcePattern::createTileImage): ImageBuffer content scaling is now handled by createImageBuffer.

rendering/SVGImageBufferTools.cpp:
(WebCore::SVGImageBufferTools::calculateTransformationToOutermostSVGCoordinateSystem): Renamed. Don't return an AffineTransform copy, but instead pass it as reference.
(WebCore::SVGImageBufferTools::createImageBuffer): Always scale the ImageBuffer content, to compensate rounding effects (code was only present in patterns so far).

Now also needs the 'absoluteTargetRect' parameter, not only 'clampedAbsoluteTargetRect'.

(WebCore::SVGImageBufferTools::renderSubtreeToImageBuffer): Moved from SVGRenderSupport.
(WebCore::SVGImageBufferTools::clipToImageBuffer): Pass ImageBuffer as OwnPtr reference, to allow to clear it under certain circumstances (see comment).
(WebCore::SVGImageBufferTools::clampedAbsoluteTargetRectForRenderer): Remove AffineTransform parameter, absoluteTargetRect is calculated before passing into this function.

The HTML5 TreeBuilder is ready to be used for all parsing
including fragments! This is the last change to move trunk
off of the LegacyHTMLTreeBuilder. We'll go through and
delete the thousands of lines of code supporting the old
parser in a separate patch.

The HTML5 TreeBuilder is ready to be used for all parsing
including fragments! This is the last change to move trunk
off of the LegacyHTMLTreeBuilder. We'll go through and
delete the thousands of lines of code supporting the old
parser in a separate patch.

(WebCore::RenderMeter::updatePartsState): Cast the node to HTMLElement* before
passing it to the function that creates the shadow element. We know the node is
a HTMLMeterElement, but the node function doesn't know that.

rendering/RenderProgress.cpp:

(WebCore::RenderProgress::updatePartsState): Ditto.

rendering/RenderSlider.cpp:

(WebCore::SliderThumbElement::SliderThumbElement): More of the same.
(WebCore::SliderThumbElement::create): Ditto.
(WebCore::RenderSlider::updateFromElement): Ditto.

WebKit2: * WebProcess/InjectedBundle/API/c/WKBundleNode.cpp:
(WKBundleNodeGetParent): Update since parent now returns a
ContainerNode*. The toRef function is a bit too picky to convert
it without a bit of help.

parserInsertBefore functions, which should never have been in the Node class.

dom/Node.h: Ditto.

html/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::attach): Changed argument type to ContainerNode*
because we never need to attach a child to a non-container node.
(WebCore::HTMLConstructionSite::findFosterSite): Cast the result of the parent
function to ContainerNode*. A parent is always guaranteed to be a container, but
the parent function returns a Node* so that callers can use it without including
ContainerNode's header. That seems like something we can easily fix later.

The problem here is that using the documentElement as the context puts
the tree builder into the BeforeHead insertion mode, which strips
leading spaces. This code is confused about what it wants, but it
certainly doesn't want to be in that insertion mode. Looking through
the callers, they'd much rather be in the InBody insertion mode. We
can get them there by creating a fake body element as the context
element.

In the long term, all this code needs to be changed to move away from
deprecatedCreateContextualFragment, which does a bunch of nasty stuff
like removing certain kinds of elements. However, that's a battle for
another day.

This patch is a step down a trail of tears. As far as I can tell,
there's no spec for XSLTProcessor.transformToFragment. This patch
attempts to infer the proper behavior from test cases and the Mozilla
wiki.

Fixed case where a single character search string in a string.replace()
did not properly handle back reference replacement. The fix is to
check for a '$' as part of the check to see if we can execute the
single character replace optimization.​https://bugs.webkit.org/show_bug.cgi?id=44067

LayoutTests/fast/canvas/canvas-incremental-repaint.html (top middle
pane).
Failing because we were not applying the CTM in clearRect(). Now using
the fast path when the CTM is identity, and a fillRect() for the rest.
LayoutTests/fast/canvas/canvas-strokeRect.html
LayoutTests/fast/canvas/shadow-offset-[1-7].html
Failing because we weren't switching to the software path when a
shadow is present.
Also refactor the two versions of fillRect(), and use TRIANGLE_STRIP
strip instead of TRIANGLES, which lets us get rid of the element array
and use drawArrays() instead of drawElements().

Covered by the above layout tests.

platform/graphics/chromium/GLES2Canvas.cpp:
(WebCore::GLES2Canvas::GLES2Canvas):
(WebCore::GLES2Canvas::~GLES2Canvas):
Remove m_quadIndices (now unused).
(WebCore::GLES2Canvas::clearRect):
Use a glClear() fast path for the identity-CTM clear, and fillRect()
for the rest.
(WebCore::GLES2Canvas::fillRect):
Refactor the two versions of fillRect().
(WebCore::GLES2Canvas::drawTexturedRect):
(WebCore::GLES2Canvas::drawTexturedRectTile):
Get rid of the ELEMENT_ARRAY_BUFFER bind. Use drawArrays() instead of
drawElements().
(WebCore::GLES2Canvas::getQuadVertices):
Re-order the vertices so they form a triangle strip.

Always unschedule any pending relayouts when changing the view, not just
when we're not using the page cache. Otherwise touching the DOM during
the pagehide handler can lead to layouts that will be done by the time
the view has changed, which triggers an assert.

Always unschedule any pending relayouts when changing the view, not just
when we're not using the page cache. Otherwise touching the DOM during
the pagehide handler can lead to layouts that will be done by the time
the view has changed, which triggers an assert.

JavaScriptCore.exp: Add an export that is neede by BlobResourceHandle.

WebCore:

To provide lower level blob reosurce handling for all possible ports,
BlobResourceHandle derived from ResourceHandle is implemented. It provides
both synchronous and asynchronous resource loading for blob URL.

BlobResourceHandle needs to create a FileStreamProxy instance in order to
asynchronous file stream operation. To achive this, a hook createAsyncFileStream
is added to ResourceHandleClient interface. When ResourceLoader implements
ths hook, it creates and returns FileStreamProxy.

BlobResourceHandle.* is not added to chromium port since it will implement
its own blob resource handling.

We only accepted raw functions as the NodeFilter on TreeWalker. Fix this to
look for an 'acceptNode' function on the filter object, and use that if present.
Also throw an exception if the filter object does not have an acceptNode function.

Our list of special tags is out of sync with the HTML5 spec. This
patch adds HTML to the list, which fixs a ton of crashers when parsing
fragments. We neet to sync up the list at some point, but we want to
make sure we have test coverage for all those changes, so I've left
that for a future patch.

Substitute "sizeof("javascript:") - 1" for the hardcoded constant 11 when
extracting the JavaScript code portion of a JavaScript URL so as to make
it clearer that the 11 represents the length of the scheme portion of
a JavaScript URL.

Implement RenderThemeEfl::systemFont to render "Missing plugin" when we
don't have proper plugin.
In this case, RenderEmbeddedObject::paintReplaced call systemFont and
pass returned font to GraphicsContext.

WebInspector: inspector protocol should be switched from array based
message format to object based message format.
Almost all the protocol related things is generated by CodeGeneratorInspector.pm
It was changed a bit. As result InspectorBackendStub.js wraps the
calls into Request objects. InspectorBackendDispatcher.cpp unwraps
these objects and calls corresponding agents. These two files and
RemoteInspectorFrontend are generated by CodeGeneratorInspector.pm
Dispatching part of WebInspector also was adjusted for handling Event
objects produced by RemoteInspectorFrontend.cpp and Response objects
produced by InspectorBackendDispatcher.cpp​https://bugs.webkit.org/show_bug.cgi?id=44338

MiniBrowser/qt/BrowserWindow.cpp: Use normal (not framework style) includes here.
The new script does not satisfy the needs of this file however using normal includes
is generally better here.

MiniBrowser/qt/MiniBrowser.pro: Added include paths.

Scripts/enumerate-included-framework-headers: Enumerates headers included from the
given frameworks by files in the current directory (and subdirectories).
In the future this needs to be rewritten in perl for being able to use on Windows.

There's now no longer any way to access the description from JS.
The main premise of the manual test is now obsolete. Over time we'll
be able to add to it again. While I'm at it, I cleaned up the format
of the manual test to be easier to follow (code and usage wise).

WebInspector: inspector protocol should be switched from array based
message format to object based message format.
Almost all the protocol related things is generated by CodeGeneratorInspector.pm
It was changed a bit. As result InspectorBackendStub.js wraps the
calls into Request objects. InspectorBackendDispatcher.cpp unwraps
these objects and calls corresponding agents. These two files and
RemoteInspectorFrontend are generated by CodeGeneratorInspector.pm
Dispatching part of WebInspector also was adjusted for handling Event
objects produced by RemoteInspectorFrontend.cpp and Response objects
produced by InspectorBackendDispatcher.cpp​https://bugs.webkit.org/show_bug.cgi?id=44338

WebCore::Timer can't be used in a static object bcause it relies on
thread global data, which is invalid once the application instance is
destroyed. To overcome the problem, use QObject's timer support for
the ShadowBuffer class.

This patch adds support for QTouchEvents in WebKit2. A new WebEvent-class
is created for touchevents, WebTouchEvent. Also touchpoints needed a new
class, WebPlatformTouchPoint. This is similar solution like in other
events(like MouseEvent) on WebKit2. These classes are introduced in WebEvent.h
Also there was a need to create an empty constructor to PlatformTouchPoint-class.

This patch adds support for QTouchEvents in WebKit2. A new WebEvent-class
is created for touchevents, WebTouchEvent. Also touchpoints needed a new
class, WebPlatformTouchPoint. This is similar solution like in other
events(like MouseEvent) on WebKit2. These classes are introduced in WebEvent.h
Also there was a need to create an empty constructor to PlatformTouchPoint-class.

dom/Document.cpp:
(WebCore::Document::removedLastRef): Modified to call DocumentMarkerController::detach().
(WebCore::Document::~Document): Removed "deleteAllValues(m_markers)" as DocumentMarkerController
is stored in OwnPtr; so it will be destroyed automatically on Document destruction.
(WebCore::Document::textInserted): Modified to use marker controller.
(WebCore::Document::textRemoved): Ditto.

The pair beginShadowLayer and endShadowLayer creates a temporary image
where the caller can draw onto, using the returned QPainter. When
endShadowLayer is called, the temporary image will be filtered, using
the specified shadow color and blur radius, and drawn to the graphics
context.

html5lib/resources/adoption02.dat: A crazy DOM from ​https://bugs.webkig.org/show_bug.cgi?id=44170 which previously crashed. The expectation doesn't appear to be correct, but it behaves the same in Firefox 4, so I'm going to file a spec bug.

fast/parser/remove-misnested-iframe-in-beforeload-expected.txt:

fast/parser/remove-misnested-iframe-in-beforeload.html: Misnest a node in a table and remove it during its beforeload handler. The node should not be in the tree.

fast/parser/remove-misnested-iframe-parent-in-beforeload.html: Misnest a node in a table and remove its parent during its beforeload handler. The adoption agency should have already changed its parent to the one before the table and it and its parent should be removed.

html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::attach):
(WebCore::HTMLConstructionSite::attachAtSite): Use new parserInsertBefore.

html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
(WebCore::HTMLTreeBuilder::reparentChildren):
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency): Was missing a key bit from the spec about removing the old parent if it exists.

On elements with a reflection and backface-visibility: hidden, set the doubleSided property on the
reflection flattening layer so that backface-visibility works in all configurations.

Test: compositing/reflections/backface-hidden-reflection.html

platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::updateBackfaceVisibility): Call setDoubleSided: on the structural
layer for reflections.
(WebCore::GraphicsLayerCA::ensureStructuralLayer): Fix a comment typo, and call updateBackfaceVisibility()
when we gain a structural layer.

UIProcess/API/qt/qgraphicswkview.cpp: Added updateCursor slot to be connected to the QWKPage::setCursor signal.
(QGraphicsWKView::QGraphicsWKView):
(QGraphicsWKView::updateCursor): Sets the cursor of the widget.

platform/gtk/CursorGtk.cpp:
(WebCore::createPixmapFromBits): Added this method which turns the inline data
structures into GdkPixmaps using Cairo and GDK-Cairo.
(WebCore::createNamedCursor): Modified this method to use the new helper.

platform/gtk/CursorGtk.h: Changed all inline data structures to be unsigned
char arrays (which Cairo requires). The progress cursor is known in X11 icon themes
as "left_ptr_watch." This change to the name preserves the old behavior of taking this
icon from the theme when available. It seems that this worked in the past due to a fluke
or failure of the previous code.

Allow setting the inspector resources path via an environment variables
and add a method, inspectorFilesPath, to the WebKit InspectorClient that
encapsulates this logic.

WebCoreSupport/InspectorClientGtk.cpp:
(WebKit::InspectorClient::openInspectorFrontend): Use the new inspectorFilesPath method to
get the path to the resource.
(WebKit::InspectorClient::inspectorFilesPath): Added.
(WebKit::InspectorFrontendClient::localizedStringsURL): Use inspectorFilesPath method.

WebCoreSupport/InspectorClientGtk.h: Add method and member variables for caching the result.

Added the following test cases:
"SVN: binary file (isBinary true) using Windows line endings"
"SVN: property diff, followed by file change diff using Windows line endings"
"SVN: two consecutive property diffs using Windows line endings"
"SVN: binary file with executable bit change usng Windows line endings"
"SVN: binary file followed by property change on different file using Windows line endings"
"SVN: binary file followed by file change on different file using Windows line endings"
"SVN: file change diff with property change, followed by property change diff using Windows line endings"
"SVN: file change diff with property change, followed by file change diff using Windows line endings"

Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl:

Added the following test cases:
"add svn:executable, followed by empty line and start of next diff using Windows line endings"
"add svn:executable, followed by empty line and start of next property diff using Windows line endings"
"multi-line '+' change, followed by empty line and start of next diff using Windows line endings"
"multi-line '+' change, followed by empty line and start of next property diff using Windows line endings"
"add svn:executable, followed by empty line and start of binary patch using Windows line endings"
"multi-line '+' change, followed by empty line and start of binary patch using Windows line endings"
"multi-line '-' change, followed by multi-line '+' change, empty line, and start of binary patch using Windows line endings"
"single-line '+' with trailing new line using Windows line endings"
"single-line '+' with trailing new line, followed by empty line and start of binary patch using Windows line endings"
"single-line '-' change with trailing new line, and single-line '+' change using Windows line endings"
"multi-line '-' change with trailing new line, and multi-line '+' change using Windows line endings"

Scripts/webkitperl/VCSUtils_unittest/parseSvnPropertyValue.pl:

Added the following test cases:
"single-line '-' change followed by empty line with Windows line endings"
"multi-line '+' change and start of binary patch with Windows line endings"

As opposed to WebCore, JavascriptCore and wtf, webkit is always a
shared library. After r65366, libewebkit.so was not being installed
anymore when building with SHARED_CORE=0 (which is the default). This
partially reverts that revision in order to fix this issue.

Fixes an issue where an empty line following the property value
in an SVN property change diff would not be detected if it had
Windows line endings (i.e. ended in CRLF). Hence it was consumed
as if it was part of a multi-line property value.

Scripts/VCSUtils.pm:

Modified parseSvnPropertyValue() to detect empty line
with Windows line endings.

Added toWindowsLineEndings().

Scripts/webkitperl/VCSUtils_unittest/parseDiff.pl:

Added the following test cases:
"SVN: binary file (isBinary true) using Windows line endings"
"SVN: property diff, followed by file change diff using Windows line endings"
"SVN: two consecutive property diffs using Windows line endings"
"SVN: binary file with executable bit change usng Windows line endings"
"SVN: binary file followed by property change on different file using Windows line endings"
"SVN: binary file followed by file change on different file using Windows line endings"
"SVN: file change diff with property change, followed by property change diff using Windows line endings"
"SVN: file change diff with property change, followed by file change diff using Windows line endings"

Scripts/webkitperl/VCSUtils_unittest/parseSvnProperty.pl:

Added the following test cases:
"add svn:executable, followed by empty line and start of next diff using Windows line endings"
"add svn:executable, followed by empty line and start of next property diff using Windows line endings"
"multi-line '+' change, followed by empty line and start of next diff using Windows line endings"
"multi-line '+' change, followed by empty line and start of next property diff using Windows line endings"
"add svn:executable, followed by empty line and start of binary patch using Windows line endings"
"multi-line '+' change, followed by empty line and start of binary patch using Windows line endings"
"multi-line '-' change, followed by multi-line '+' change, empty line, and start of binary patch using Windows line endings"
"single-line '+' with trailing new line using Windows line endings"
"single-line '+' with trailing new line, followed by empty line and start of binary patch using Windows line endings"
"single-line '-' change with trailing new line, and single-line '+' change using Windows line endings"
"multi-line '-' change with trailing new line, and multi-line '+' change using Windows line endings"

Scripts/webkitperl/VCSUtils_unittest/parseSvnPropertyValue.pl:

Added the following test cases:
"single-line '-' change followed by empty line with Windows line endings"
"multi-line '+' change and start of binary patch with Windows line endings"

Use SVGImageBufferTools logic for RenderSVGResourceClipper, just like RenderSVGResourceMasker/Gradient,
to avoid pixelation, when the clipper is applied to a scaled target object, or when the document is scaled.

(WebCore::FontPlatformData::FontPlatformData): Asserted that the NSFont parameter is not nil,
and removed nil check.
(WebCore::FontPlatformData::setFont): Asserted that the NSFont parameter is not nil and that
this is not the deleted value, and removed code to handle those cases.