(WebCore::Attr::Attr): Added a call to createTextChild here so callers don't
have to call it explicitly.
(WebCore::Attr::create): Added.
(WebCore::Attr::setValue): Changed to take AtomicString.
(WebCore::Attr::cloneNode): Use create.

(WebCore::Node::initialRefCount): Added. Inline helper function for
the constructor.
(WebCore::Node::isContainer): Ditto.
(WebCore::Node::isElement): Ditto.
(WebCore::Node::isText): Ditto.
(WebCore::Node::Node): Changed to take a construction type argument.
Since m_document is now a normal pointer, added a call to selfOnlyRef.
(WebCore::Node::~Node): Ditto, but selfOnlyDeref.
(WebCore::Node::setDocument): Added selfOnlyRef/Deref calls.
(WebCore::Node::appendTextContent): Use the data function instead of
calling nodeValue functions, which do the same thing in a roundabout way.

dom/Node.h: Made the constructor protected and replaced the multiple

arguments iwth a single ConstructionType argument. Sorted the public
things first.

On Windows, include windows.h, and add a member variable to hold the
handle to the event hook for focus events. Add a declaration for a
function that enables logging of focus events.

DumpRenderTree/gtk/AccessibilityControllerGtk.cpp:

(AccessibilityController::logFocusEvents):
Stubbed.

DumpRenderTree/mac/AccessibilityControllerMac.mm:

(AccessibilityController::logFocusEvents):
Stubbed.

DumpRenderTree/win/AccessibilityControllerWin.cpp:

(AccessibilityController::AccessibilityController):
(AccessibilityController::~AccessibilityController):
If we hooked the focus event, unhook it.
(logFocusEventProc):
When we receive a focus event, get the accessible object for the event,
and log its name to stdout.
(AccessibilityController::logFocusEvents):
Setup the focus event hook to listen for events in the current process.

accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::AXObjectCache):
Changed to take a pointer to its owner document. This is used by
AXObjectCache::handleFocusedUIElementChanged().
(WebCore::AXObjectCache::focusedUIElementForPage):
Code moved from AccessibilityRenderObject::focusedUIElement(). Modified
to be a static function and to take a pointer to a Page.
(WebCore::AXObjectCache::platformGenerateAXID):
Moved the code to generate the next AXID from getAXID() to here. Added
a #if to make this non-WIN only, because Windows has its own
implementation.
(WebCore::AXObjectCache::getAXID):
Ensure that we generate a positive AXID, ranging from 1 to LONG_MAX.

accessibility/AXObjectCache.h:
Add a declaration for Document and Page. Removed the declaration of
AccessibilityObject, because we include the header. Reordered the
declaration of Node alphabetically. Moved the typedef for AXID to
AccessibilityObject. Removed some trailing whitespace. Added a member
variable to hold a pointer to the owner Document.
(WebCore::AXObjectCache::AXObjectCache):
Changed to take a pointer to its owner Document.
(WebCore::AXObjectCache::focusedUIElementForPage):
Added; code moved from AccessiblityRenderObject::focusedUIElement().
Returns the focused element with respect to accessibility.
(WebCore::AXObjectCache::platformGenerateAXID):
Declare a function to generate an AXID.
(WebCore::AXObjectCache::objectFromAXID):
Return the AccessibilityObject with the given AXID.

accessibility/AccessibilityObject.h:
Moved the typedef for AXID from AXObjectCache to here. Made the m_id
member use the typedef.
(WebCore::AccessibilityObject::axObjectID):
Changed the return type to use the typedef.
(WebCore::AccessibilityObject::setAXObjectID):
Changed the argument type to use the typedef.

accessibility/AccessibilityRenderObject.cpp:
Removed some unneeded #includes.
(WebCore::AccessibilityRenderObject::focusedUIElement):
Moved the code to AXObjectCache::focusedUIElementForPage(), which we now
call.

accessibility/win/AXObjectCacheWin.cpp:
(WebCore::AXObjectCache::platformGenerateAXID):
Ensure that we generate an AXID that is in the range 1 to LONG_MAX.
(WebCore::AXObjectCache::handleFocusedUIElementChanged):
If the Document has no Page, return. If the Page has not focused
element (respecting accessibility), return. Assert that the
accessibility of the focused element is not ignored, and that the
object's AXID will be negative and fit into a LONG when negated.
Broadcast a focus event for the object.

dom/Document.cpp:
(WebCore::Document::axObjectCache):
Pass this when creating the AXObjectCache.
(WebCore::Document::setFocusedNode):
Call AXObjectCache::handleFocusedUIElementChanged() on Windows.

​https://bugs.webkit.org/show_bug.cgi?id=28324
First ever test using page cache!
The test verifies that override setting that enables page cache works correctly.
It navigates forward and then back and checks that onload is not fired again
but the timer continues firing.

The fix for bug 28295 assumed that image clients count the number of times
addClient/removeClient is called. That was true for CachedResource clients,
but not StyleGeneratedImage clients, which pass the call onto CSSImageGeneratorValue.

Fix by making CSSImageGeneratorValue count the number of times a client is
added/removed.

Remove the EvalNode and ProgramNode from use in the runtime. They still exist
after this patch, but are hidden behind EvalExecutable and FunctionExecutable,
and are also still reachable behind CodeBlock::m_ownerNode.

The next step will be to beat back FunctionBodyNode in the same fashion.
Then remove the usage via CodeBlock, then only construct these nodes only on
demand during bytecode generation.

platform/haiku/RenderThemeHaiku.cpp: Included RenderThemeHaiku.h
instead of RenderTheme.h.
(WebCore::RenderThemeHaiku::paintCheckbox): Removed the wrong 'virtual'
before the function.
(WebCore::RenderThemeHaiku::paintRadio): Removed the wrong 'virtual'
before the function.

Make the Arguments object conform to the behaviour specified in ES5.
The simple portion of this is to make Arguments use Array.prototype
as its prototype rather than Object.prototype.

The spec then requires us to set instance.constructor to the pristine
Object constructor, and instance.toString and instance.toLocaleString
to the pristine versions from Object.prototype. To do this we now
make the ObjectPrototype constructor return its toString and
toLocaleString functions (similar to the call and apply functions
from FunctionPrototype).

Oddly enough this reports itself as a slight win, but given the code
isn't hit in the tests that claim to have improved I put this down to
code motion.

No new tests added since Access Control was already well tested and this is a pure refactor.

loader/DocumentThreadableLoader.cpp: Move a lot of the access control code from XHR in, preserving its
basic strategy. Also, modify the synchronous path to not be a special case, but reuse more of the async
path.

but more importantly, made it non-virtual (it was already inline)
so it is now as fast as JSObject::inherits was.

runtime/JSObject.h: Removed inherits function since the one

in the base class is fine as-is. Also made various JSCell functions
that should not be called on JSObject uncallable by making them
both private and not implemented.
(JSC::JSCell::inherits): Updated name.
(JSC::JSValue::inherits): Ditto.

Do not unref the main webview, it's owned by its parent
container. Instead destroy the container, which should take care
of everything (not terribly important since we exit right after
that, but still).

rendering/RenderObject.cpp:
(WebCore::RenderObject::updateFillImages):
Simplify the logic to call addClient()/removeClient() for every background
image, but go through the new layers first to avoid removing all the
clients of an image.

Add a bit to TypeInfo to indicate that an object uses the standard
JSObject::markChildren method. This allows us to devirtualise marking
of most objects (though a branch is still needed). We also add a branch
to identify arrays thus devirtualising marking in that case as well.

In order to make the best use of this devirtualisation I've also reworked
the MarkStack::drain() logic to make the iteration more efficient.

Also adds checking to throw an exception if arguments of the incorrect type are
passed to Geolocation methods. Adds a layout test to test this. This test should
pass on all platforms where Geolocation is implemented.

(WebCore::Geolocation::GeoNotifier::GeoNotifier): Modified. Asserts that PositionOptions object is present.
(WebCore::Geolocation::GeoNotifier::startTimer): Modified. Only starts timer if timeout has been set.

Utilizes functions that are being called upon drag and drop actions.
Uses different GTK clipboards that hold different types
of drag data - images, HTML markup, text, URL, URL label.
Also clears each clipboard before setting new data to it.

No new tests - despite some implementations, no new functionality
is added until implementations of the GTK drag and drop protocol
in WebKit part.

(JSC::op_call_JSFunction): Call isHostFunction on the body rather
than on the JSFunction.
(JSC::vm_lazyLinkCall): Ditto.
(JSC::op_construct_JSConstruct): Ditto.

parser/Grammar.y: Changed callers to use new scanRegExp with

out arguments instead of relying on state in the Lexer. And
callers that just want to skip a regular expression to use
skipRegExp.

parser/Lexer.cpp:

(JSC::Lexer::scanRegExp): Changed to use out arguments, and to
add a prefix argument so we can add in the "=" character as needed.
Also rewrote to streamline the logic a bit inspired by suggestions
by David Levin.
(JSC::Lexer::skipRegExp): Added. Version of the function above that
does not actually put the regular expression into a string.
(JSC::Lexer::clear): Removed code to clear m_pattern and m_flags.

parser/Lexer.h: Changed scanRegExp to have out arguments. Added

skipRegExp. Eliminated pattern, flags, m_pattern, and m_flags.

parser/NodeConstructors.h:

(JSC::RegExpNode::RegExpNode): Changed to take const Identifier&.

parser/Nodes.cpp:

(JSC::RegExpNode::emitBytecode): Changed since m_pattern and
m_flags are now Identifier instead of UString.
(JSC::FunctionBodyNode::make): Moved this function here instead
of putting it in the JSFunction.h header.

parser/Nodes.h: Changed RegExpNode to use Identifier.

profiler/Profiler.cpp:

(JSC::Profiler::createCallIdentifier): Changed to use isHostFunction
on the body instead of on the JSFunction object.

runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString): Ditto.

runtime/JSFunction.cpp:

(JSC::JSFunction::isHostFunction): Moved here from header.
(JSC::JSFunction::isHostFunctionNonInline): Added.
(JSC::JSFunction::JSFunction): Removed unneeded initialization of
m_body to 0.
(JSC::JSFunction::setBody): Moved here from header.

runtime/JSFunction.h: Removed unneeded includes. Moved private

constructor down to the private section. Made virtual functions
private. Removed unneeded overload of setBody and moved the body
of the function into the .cpp file. Changed assertions to use
the non-inline version of isHostFunction.

runtime/PropertySlot.cpp:

(JSC::PropertySlot::functionGetter): Use asFunction instead
of doing the unchecked static_cast.

(WebCore::JavaScriptDebugServer::sourceParsed):
Change to not assert if this is called with no listeners.
I don't think this was guaranteed before, and we now use
this code path when recompiling. Slightly less efficient,
but this is a one-time cost when turning on the debugger.
(WebCore::JavaScriptDebugServer::recompileAllJSFunctions):
Change to call Debugger::recompileAllJSFunctions.

media/video-played.html seems always to time out in Windows Debug
builds. A race condition between media/video-test.js's "hang" timer and
DumpRenderTree's built-in "watchdog" timer was causing results for
media/video-played.html to be printed twice, causing all future media
tests to be compared to the previous test's results.

The fix is to make the watchdog timer got through the same code path
as calling notifyDone manually, so that the results will only get
printed once. A subsequent patch will remove video-test.js's hang
timer entirely, since it is redundant.

(LayoutTestController::waitToDumpWatchdogTimerFired): Added. Code came
from Gtk/Mac/Win's watchdog timer handlers, but we now call
notifyDone() instead of dump() so that a subsequent call to
notifyDone() won't print the results out again.

The destination image and the source image was mixed up on creating the
imageData.

This is just a clean up and doesn't affect the current behavior. It's not
possible to test this failure in a LayoutTest. Only canvas uses getImageData
at the moment and returns before calling getImageData, if the image rect does
not contain the requested rect.

RenderFlexibleBox and RenderTable were using the width of overflow
to update height of overflow, so height became wrong value and
width was not updated. As the corresponding code of RenderBlock
was sane, I factored it out and used from RenderFlexibleBox and
RenderTable.

RenderFlexibleBox and RenderTable were using the width of overflow
to update height of overflow, so height became wrong value and
width was not updated. As the corresponding code of RenderBlock
was sane, I factored it out and used from RenderFlexibleBox and
RenderTable.

rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateOverflowWithShadowAndReflection): created from code of layoutBlock
(WebCore::RenderBlock::layoutBlock):

For tightly coupled sequences the BEGIN_UNINTERRUPTED_SEQUENCE and
END_UNINTERRUPTED_SEQUENCE macros have been introduced which ensure
space for instructions and constants of the named sequence. This
method is vital for those architecture which are using constant pool.

The 'latePatch' method - which was linked to JmpSrc - is replaced with
a port specific solution (each calls are marked to place their address
on the constant pool).

This is to add WCSS marquee support , which is defined by OMA and is an extension for CSS2,
It extends CSS display with "display:-wap-marquee;-wap-marquee-dir:xxx;-wap-marquee-speed:xxx;-wap-marquee-style:xxx"
Minor fixes by Eric Seidel and George Staikos.​https://bugs.webkit.org/show_bug.cgi?id=23727

No new tests, the tests have already been landed at LayoutTests/fast/wcss/

Fixing a deadlock caused by two transactions that run on two
different database handles for the same DB. Adding a per-DB thread
transaction coordinator that allows the DB thread to run only one
transaction per DB file at any given time.

Make run_and_throw_if_fail silence STDERR as well as STDIN.
I also changed run_and_throw_if_fail to use the /dev/null trick instead of .communicate() to avoid ever buffering the output (per abarth's suggestion).
Change a few "print" statements to "log" so they appear in the output.
Changed all string + uses to use string formatting instead (this is less error prone as it will automatically convert non-string objects).
Added a little more logging so that --quiet mode is easier to understand.
Changed clear_attachment_review_flag to clear_attachment_flags and made it clear the commit-queue flag as well.
Added the ability for bugzilla-tool to reject patches from the commit-queue when they fail to compile/apply/etc.
Added _find_select_element_for_flag to make the code for finding flag <select> elements clearer.
Made curl call (downloading patch files) quieter.

(WebCore::JSStyleSheet::markChildren): Call markDOMObjectWrapper on
items in the stylesheet.

bindings/js/JSStyleSheetListCustom.cpp:

(WebCore::JSStyleSheetList::markChildren): Added. Calls
markDOMObjectWrapper on stylesheets in the list.

css/CSSRuleList.idl: Added CustomMarkFunction.

css/CSSStyleDeclaration.idl: Ditto.

css/StyleSheetList.idl: Ditto.

dom/Element.idl: Ditto.

html/HTMLCanvasElement.idl: Ditto.

dom/Element.h: Made everything private that could be.

Added access to the attributeMap that does returns
the existing map without doing any of the lazy-updating work. This
is needed to get at the existing attributes during garbage collection
without having side effects.

html/HTMLCanvasElement.h: Cleaned up the header a bit, making

members private. Added renderingContext2D function for use in
JSHTMLCanvasElement::markChildren.

Added workaround for the limitation that VirtualFree with MEM_RELEASE
can only accept the base address returned by VirtualAlloc when the region
was reserved and it can only free the entire region, and not a part of it.

(WebCore::CSSStyleSelector::canShareStyleWithElement): sharing stuff is
aware that only one default button can be present in a form
(WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): applies
the :default CSS pseudoclass

dom/Element.h:

(WebCore::Element::isDefaultButtonForForm): new method to determine
whether a FormControl is a default button for a given form

html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::isDefaultButtonForForm): ditto

html/HTMLFormControlElement.h:

html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::defaultButton): extracts the default button
from the form

Not auto-testable since it is chromim platform specific code, and it involves sending a keyboard
event to the popup, which is not possible (eventSender sends the key
events through webview, we want to go through the webwidget).

platform/chromium/PopupMenuChromium.cpp:
(WebCore::isCharacterTypeEvent): style change.
(WebCore::PopupListBox::handleKeyEvent): typeAheadFind should be called only when the event is
a character type event to avoid calling twice for English.
(WebCore::PopupListBox::typeAheadFind): remove unnecessary checking of isCharacterTypeEvent() since the whole function is only called under that condition.

loader/CachedFont.cpp: Haiku behaves like Qt, Gtk, or Chromium,
so many PLATFORM(HAIKU) were added to these functions.
(WebCore::CachedFont::~CachedFont):
(WebCore::CachedFont::ensureCustomFontData):
(WebCore::CachedFont::platformDataFromCustomData):
(WebCore::CachedFont::allClientsRemoved):

page/EventHandler.cpp: Like the mac and Qt port, Haiku doesn't need the
invertSenseOfTabsToLinks() function.

functions related to the window resizer with unused*() functions. We
can't remove them entirely because we need to keep the vtable
unchanged so new versions of WebKit will work with old versions of
Safari (e.g., for nightlies and WebKit development).

Make run_and_throw_if_fail silence STDERR as well as STDIN.
I also changed run_and_throw_if_fail to use the /dev/null trick instead of .communicate() to avoid ever buffering the out
Change a few "print" statements to "log" so they appear in the output.
Changed all string + uses to use string formatting instead (this is less error prone as it will automatically convert non
Added a little more logging so that --quiet mode is easier to understand.
Changed clear_attachment_review_flag to clear_attachment_flags and made it clear the commit-queue flag as well.
Added the ability for bugzilla-tool to reject patches from the commit-queue when they fail to compile/apply/etc.
Added _find_select_element_for_flag to make the code for finding flag <select> elements clearer.
Made curl call (downloading patch files) quieter.

Webkit uses the runtime patching trick explained by "Feng Yuan" for
hooking these paint functions. It currently supports only 32bit assembly
code. This patch adds support for 64Bit version. Since inline-assemblies
are not supported for 64Bit, we have use a seperate .asm file.

(WebCore::Document::detach):
Notifies SharedWorkerRepository when the document is closing.

loader/FrameLoader.cpp:

Updated FrameLoader to not cache the Document if it is associated with a SharedWorker (since we can't suspend workers yet, we need to shut them down).
(WebCore::FrameLoader::canCachePageContainingThisFrame):
(WebCore::FrameLoader::logCanCacheFrameDecision):

workers/DefaultSharedWorkerRepository.cpp:

(WebCore::SharedWorkerProxy::create):
(WebCore::SharedWorkerProxy::isClosing):
Renamed from closing().
(WebCore::SharedWorkerProxy::matches):
Added manual equality function to replace old hash lookup.
(WebCore::SharedWorkerProxy::isDocumentInWorkerDocuments):
Checks to see if a document is in the worker's list of documents. Used to determine if page is suspendable.
(WebCore::SharedWorkerProxy::SharedWorkerProxy):
(WebCore::SharedWorkerProxy::addToWorkerDocuments):
Added tracking of the worker's list of documents for lifecycle purposes.
(WebCore::SharedWorkerProxy::documentDetached):
Shuts down the proxy when the last associated document is detached.
(WebCore::SharedWorkerProxy::close):
Marks the proxy as closed so it is no longer shared with new instances.
(WebCore::SharedWorkerProxy::workerContextDestroyed):
Removes the proxy from the repository/frees the proxy when the associated SharedWorkerContext is destroyed.
(WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
closing()->isClosing()
(WebCore::SharedWorkerRepository::documentDetached):
(WebCore::SharedWorkerRepository::hasSharedWorkers):
Used by FrameLoader to determine if a page has shared workers and so cannot be suspended/cached.
(WebCore::DefaultSharedWorkerRepository::hasSharedWorkers):
(WebCore::DefaultSharedWorkerRepository::removeProxy):
Invoked by workerContextDestroyed() to remove a SharedWorkerProxy from the repository.
(WebCore::DefaultSharedWorkerRepository::documentDetached):
(WebCore::DefaultSharedWorkerRepository::connectToWorker):
(WebCore::DefaultSharedWorkerRepository::getProxy):

When returning text through the marker range attributes, the list marker text should
also be included. It isn't included by default because a TextIterator is used which
only looks at Nodes for text. A list marker does not have a corresponding node,
so its text is not returned through accessibility. That is, until now.

Adds an implementation of desktop notifications, behind the compile-time
flag ENABLE(NOTIFICATIONS). This code simply relays calls on the JavaScript
API through a NotificationProvider interface, which must provide the services
to actually notify the user and manage the desktop. This provider is injected
into WebKit through the ChromeClient for normal page contexts and through the
WorkerThread for worker contexts.

A permissions API is defined on a per-origin basis, which allows a web page
to check if its origin is allowed to show desktop notifications, and to request
permission for its origin.

inspector/front-end/Drawer.js:
(WebInspector.Drawer.prototype.showView): ensures the drawer will be open and showing the provided view

inspector/front-end/inspector.js:
(WebInspector.showConsole): usees the new showView to guarantee the Drawer will be open
(WebInspector.showChanges): uses the new showView guarantee the Drawer will be open

(resetDefaultsToConsistentValues): new method, resets preferences to same set of value before every test.
(setDefaultsToConsistentValuesForTesting): new method, sets other details of testing environment, every time DRT starts.
(resetWebViewToConsistentStateBeforeTesting): move some preference setting from here to new resetDefaultsToConsistentValues().

DumpRenderTree/mac/LayoutTestControllerMac.mm:

(LayoutTestController::overridePreference):

DumpRenderTree/win/DumpRenderTree.cpp:

(resetDefaultsToConsistentValues): new method, resets preferences to same set of value before every test.
(resetWebViewToConsistentStateBeforeTesting): move some preference setting from here to new resetDefaultsToConsistentValues().
(createWebViewAndOffscreenWindow): same.
(main): same.

DumpRenderTree/win/LayoutTestControllerWin.cpp:

(LayoutTestController::overridePreference):

DumpRenderTree/wx/LayoutTestControllerWx.cpp:

(LayoutTestController::overridePreference):

LayoutTests: Added support for overriding default preferences per-test.
Originally implemented by Glenn Wilson <​gwilson@chromium.org>.
Reviewed by Adam Roben.
Added tests to verify that default preferences can be overridden per-test
and that overridden values are reset between each test.
See ​https://bugs.webkit.org/show_bug.cgi?id=20534

Add results for fast/borders/border-radius-split-inline and remove from platform/qt/Skipped
Note: Results will wrap to 4 lines even though it indicates 3 lines. This is due to font
size differences in Qt, and matches the output of FireFox.

Attempt to fix the Windows test bot. Reverted r47015 caused one of the Windows
bots that runs Layout Tests to save "JS disabled" and "default font 24pt"
preferences permanently. Since these preferences are not initialized explicitly in DRT,
almost all Layout tests are failing. Attempt to fix by explicit
initialization of these into defaults (enabled, 16pt) at the beginning of the DRT.

The public section of the interface is the same, but we use
PLATFORM(CHROMIUM) to identify which parts of the private
section are shared. The chrome specific internals are encapsulated
in a seperate ApplicationCacheHostInternal class. WebCore common
code only contains a forward reference to this class.

Cleanup a couple of stale comments.

Have window.applicationCache return null to script when the
feature is disabled in the preferences.

(resetDefaultsToConsistentValues): new method, resets preferences to same set of value before every test.
(setDefaultsToConsistentValuesForTesting): new method, sets other details of testing environment, every time DRT starts.
(resetWebViewToConsistentStateBeforeTesting): move some preference setting from here to new resetDefaultsToConsistentValues().

DumpRenderTree/mac/LayoutTestControllerMac.mm:

(LayoutTestController::overridePreference):

DumpRenderTree/win/DumpRenderTree.cpp:

(resetDefaultsToConsistentValues): new method, resets preferences to same set of value before every test.
(resetWebViewToConsistentStateBeforeTesting): move some preference setting from here to new resetDefaultsToConsistentValues().
(createWebViewAndOffscreenWindow): same.
(main): same.

DumpRenderTree/win/LayoutTestControllerWin.cpp:

(LayoutTestController::overridePreference):

DumpRenderTree/wx/LayoutTestControllerWx.cpp:

(LayoutTestController::overridePreference):

LayoutTests: Added support for overriding default preferences per-test.
Originally implemented by Glenn Wilson <​gwilson@chromium.org>.
Reviewed by Adam Roben.
Added tests to verify that default preferences can be overridden per-test
and that overridden values are reset between each test.​https://bugs.webkit.org/show_bug.cgi?id=20534

Fix hundreds of "pointer being freed was not allocated" errors seen on the build bot.

Reviewed by Darin Adler.

wtf/FastMalloc.h: Implement nothrow variants of the delete and delete[] operators since

we implement the nothrow variants of new and new[]. The nothrow variant of delete is called
explicitly in the implementation of std::sort which was resulting in FastMalloc-allocated
memory being passed to the system allocator to free.

If a storage namespace is not explicitly closed, be sure to do so on
destruction of the object. In addition, the close call should wait
on the background thread finishing its syncing. (Not doing so is actually
a regression from the original LocalStorage code.)

There's no point to passing in the SecurityOrigin when copying a storage
area since what was passed in is exactly what is stored within each
storage area. In addition, the non-copy constructor should take in a
PassRefPtr rather than a pointer since that pointer was only passed into
the constuctor for RefPtr's anyway.

WebKit.vcproj/WebKit.vcproj: Add new cURL.vsprops property sheet
(which contains link settings for cURL and its dependencies), and
remove the corresponding entries from the vcproj file. Remove
png, jpeg, cairo library linking flags from vcproj, now that they
are in the WinCairo.vsprops file.

(WebCore::selectionShadowAncestor): Added.
(WebCore::DOMSelection::anchorNode): Return the parent of the shadow
ancestor if the selection is in a shadow tree. Matches Firefox.
(WebCore::DOMSelection::anchorOffset): Return the index of the shadow
ancestor if the selection is in a shadow tree. Matches Firefox.
(WebCore::DOMSelection::focusNode): Ditto.
(WebCore::DOMSelection::focusOffset): Ditto.
(WebCore::DOMSelection::baseNode): More of the same, but since this
is a WebKit-invented property, it does not match Firefox.
(WebCore::DOMSelection::baseOffset): Ditto.
(WebCore::DOMSelection::extentNode): Ditto.
(WebCore::DOMSelection::extentOffset): Ditto.
(WebCore::DOMSelection::isCollapsed): Return true even when the
selection is a range, if the selection is in the shadow tree.
Matches Firefox. Also changed behavior when called and the frame
is gone to return true instead of false which makes more sense.
(WebCore::DOMSelection::empty): Use clear() just like the other
selection-clearing function in this file does.
(WebCore::DOMSelection::getRangeAt): Return a range that starts
and ends before the shadow ancestor. Matches Firefox.

Previously the plugin would fail, even though the Carbon event
model was available. The only way to get the Carbon event model
was to pass the "forcecarbon" argument in the test markup, but no
tests were using this.

Now the plugin uses carbon either if it's forced, or if the Cocoa
event model is not supported.

This helps us run most of the plugin tests on Qt/Mac, which still
does not support the Cocoa event model.

[Qt] After ChangeSet ​https://bugs.webkit.org/show_bug.cgi?id=26896, the
DefaultFontSize was changed in Qt DumpRenderTree from 14 to 13. But
any expected file works with the original value. The expected values
should follow this change. This patch contains the new expected
files.

Replace the m_finished state variable and the call to QCoreApplication::processEvents() with
a dedicated QEventLoop, that can be terminated from within WebCoreSynchronousLoader as well
as from Qt through its knowledge of globally registered eventloops.

There is no unit test for this bug as it would require exporting additional symbols and
introduce the synchronous loader as global variable just for the test.