Provide TARGETING_TIGER and TARGETING_LEOPARD as analogues to
BUILDING_ON_TIGER and BUILDING_ON_LEOPARD. The TARGETING_ macros
consider the deployment target; the BUILDING_ON_ macros consider the
headers being built against.

editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::mergeParagraphs): Block images, tables and HRs cannot
be made inline with other content. Instead of merging, just move the caret to just before
the selection we deleted.

The ARMv7 JIT is currently using ARMv7Assembler::ConditionEQ to branch
for DoubleEqualOrUnordered, however this is incorrect – ConditionEQ won't
branch on unordered operands. Similarly, DoubleLessThanOrUnordered &
DoubleLessThanOrEqualOrUnordered use ARMv7Assembler::ConditionLO &
ARMv7Assembler::ConditionLS, whereas they should be using
ARMv7Assembler::ConditionLT & ARMv7Assembler::ConditionLE.

Fix dumping of constants in bytecode so that they aren't printed as large positive register numbers.

Reviewed by Sam Weinig.

We do this by having the registerName function return information about the constant if the register
number corresponds to a constant. This requires that registerName, and several functions that call it,
be converted to member functions of CodeBlock so that the constant value can be retrieved. The
ExecState also needs to be threaded down through these functions so that it can be passed on to
constantName when needed.

The hang was caused by an infinite loop inside outdentRegion.
The code did not account for the fact that, when a list item
cointains multiple paragraphs, outdent moves all paragraphs at
once, invalidating some of the position we keep track of in the loop.
Some code refactoring has also been done to minimize duplicate code.

Test: editing/execCommand/outdent-multiparagraph-list.html

editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::indentRegion): Moved code in common with
outdentRegion to doApply.
(WebCore::IndentOutdentCommand::outdentRegion): Fixed endless loop.
(WebCore::IndentOutdentCommand::doApply): Some code refactoring.

Fixed an incorrect if statement that prevents volume slider
being updated.

The statement checks if the slider value equals to the current
volume value of the media control to avoid updating the volume
slider. Updating the volume slider control shouldn't be within
this condition because we explicitly set them to be equals
during creation of the controls and also when mouse events are
received on the volume control.

No new tests because existing code breaks:
LayoutTests/media/video-volume-slider.html

It should now start passing on Chromium.

rendering/MediaControlElements.cpp:
(WebCore::MediaControlVolumeSliderElement::update):
Update the volume slider regardless of the current volume value
of the media control.

platform/network/CredentialStorage.cpp: (WebCore::CredentialStorage::set): Account for the
possibility of null url. Release mode changes are likely inconsequential - e.g. we used to
add ":" to origin set, which is weird, but safe.

Also remove all conditional code and workarounds for older versions of
Cairo.
In particular, gain image quality by removing the use of
CAIRO_FILTER_NEAREST when rendering images and use the default
bilinear filter instead.​https://bugs.webkit.org/show_bug.cgi?id=19266

On LocalStoragethread: Remove reference counting. Get rid of locking. Make some
of the method names a bit more clear. Assert proper thread usage. Join rather
than detaching the thread and doing an ad-hoc form of join. Avoid touching
variables on the background thread when simple to do so. Also create a generic
scheduleTask function rather than one for each task.

Initial version of this patch by Jürg Billeter and Naiem Shaik.
Patch 2/4 - Moving TextCodecs to GLib

Added probing for a hard-coded lists of text encodings.
The basis of this list is taken from the encodings supported by iconv,
then extended by e.g. tis-620, windows-1251, euc-kr, windows-1253 and
a number of Chinese ones.

Probing is necessary with the current design of text codecs
as iconv/GLib do not support enumerating available encodings.

Make Committer and Reviewer constructors take a single email or a list of emails.
Change committer_by_bugzilla_email functions to committer_by_email to support lookup by any email.
Expose reviewers(), used by validate-committer-lists on bug 30970.

Remove FontFallbackListQt and rely on the common FontFallbackList
to handle the fonts. FontCache and FontPlatformData have been
updated to work with the common FontFallbackList.

In the previous implementation, FontPlatformDataCacheKey
was a clone of FontPlatformData with the hashing
capabilities added in order to use it as a key in the cache's
hashmap. FontPlatformData has been modified to handle the hashing
function directly so the data are not copied twice in memory.

FontFallbackList::fontDataAt() from FontFallbackListQt was a copy of
code from FontCache::getFontData() and FontFallbackList::fontDataAt().
The behavior is similar except currFamily->family().length() was
not tested and the fallback fonts selector were not used.

Add hashing capabilities to be able to use the data with the FontCache.
This was previously done in FontCacheQt.cpp
(WebCore::FontPlatformData::FontPlatformData):
Added a boolean to identify deleted value in the hash table.
(WebCore::FontPlatformData::isHashTableDeletedValue):
(WebCore::FontPlatformData::hash):
(WebCore::FontPlatformData::operator==):

As specified in the document, the behavior of the browser is determined
by the current registered handler. The state of a registered handler
can change at any time, with the user clearing a registered handler,
registering a different page as handler, or deferring the hander to the
OS. If webkit was to track the state of the currently registered
handlers, it would need more APIs and complexity to keep in sync with
user actions reported to webkit from the UA. For simplicity, the state
of protocol handlers should be kept isolated from webkit and webkit only
notifies the UA that a page has made the call. The UA is then
responsible for correctly handling the registerProtocolHandler call and
the redirects which result from registration.

We do however follow the specification in insuring that the reserved
schemes and mimeTypes are not passed to the UA as custom handler
registration tests. We also insure that the "%s" token is present as
required by the specification.

There is a default implimentation for these APIs, hence all platforms
with the navigator-detached-no-crash-expect and
window-properties-expected tests needed to be updated. While
isolatedWorlds has a window-properties-expected test, it has no window
object and hence does not need to be updaetd.

We add two fast/dom tests to insure that the proper exceptions are
thrown when bad syntax or security violations are made by calling the
methods.

These crashes were caused by plug-in code running during detach(),
causing re-entry into RenderWidget::destroy() in one case and a call
into attach() in the other. The fix is to prevent plug-in code from
being called at certain unsafe times (during attach(), detach(), and
recalcStyle()) by deferring changes to the widget hierarchy.

are not suspended, because this function updates the widget’s
bounds, which can result in arbitrary native and JavaScript code
execution. I think this assertion is true thanks to some deferred-
update mechanisms that have already been deployed in other places
in the code.

"​http://trac.webkit.org/changeset/50315" makes links mouse
focusable only on GTK and QT, so win has same behavior as mac now
Remove the win specific expected results for tests failed
due to the patch.

Several calls in CanvasRenderingContext3D are allowed to
have a null value passed, which indicated that the
object is being unbound. Handle this case and the corresponding
null handling in GraphicsContext3DMac.

(WTF::MessageQueue::alwaysTruePredicate):
(WTF::MessageQueue::~MessageQueue):
(WTF::MessageQueue::append):
(WTF::MessageQueue::appendAndCheckEmpty):
(WTF::MessageQueue::prepend):
(WTF::MessageQueue::waitForMessage):
(WTF::MessageQueue::waitForMessageFilteredWithTimeout):
(WTF::MessageQueue::tryGetMessage):
(WTF::MessageQueue::removeIf):
The MessageQueue is changed to act as a queue of OwnPtr<DataType>. It takes ownership
of posted tasks and passes it to the new owner (in another thread) when the task is fetched.
All methods have arguments of type PassOwnPtr<DataType> and return the same type.

Made the remaining time display show negative zero at the end of the
video.

Reviewed by Anders Carlsson.

Made other cleanup.

WebView/WebVideoFullscreenHUDWindowController.h: Reverted the types of

_timeline and _volumeSlider to the more generic NSControl.

WebView/WebVideoFullscreenHUDWindowController.mm:

(-[WebVideoFullscreenHUDWindowController scheduleTimeUpdate]): Cleaned
up style.
(-[WebVideoFullscreenHUDWindowController windowDidLoad]): Added an
assertion that the cast to NSButton * is legal. Removed casts.
(-[WebVideoFullscreenHUDWindowController updateTime]): Use
-setValue:forKey: instead of an NSSlider method.
(timeToString): Changed to support only non-negative values and
simplified.
(-[WebVideoFullscreenHUDWindowController remainingTimeText]): Always
prepend a “-” to the time.

Bump version before release (or post-release, depending on your
point of view) so that we can make applications depending on
unreleased APIs in WebKit svn fail at configure time when the
requirements are not met.

Test: scrollbars/overflow-scrollbar-combinations.html
This crash only seems to repro when WebKit draws the play controls,
so the crash repros in chromium running this test but not WebKit
nightlies which use QuickTime to draw the controls.

This is the WebKit-side change needed to fix canvas.getImageData() for
Chromium. The unpremultiply code in Skia assumes that unpremultiplied
values should be rounded, while CG does not. In addition, the fixed
point inversion used by Skia introduces slight inaccuracies that make
us fail this test. This change brings Chromium in line with
the CG path.​https://bugs.webkit.org/show_bug.cgi?id=30825

Made the full-screen video HUD respond to the up and down arrow keys by
increasing and decreasing the volume by 1/10 of the range or, when
combined with the Option key, all the way up or down.

Reviewed by Mark Rowe.

Made the volume buttons in the full-screen video HUD match the behavior
of their equivalents in the QuickTime Player HUD by turning the volume
all the way up or down.

Made the volume slider update immediately when the keyboard or volume
buttons are used to change the volume, rather than at the nearest 1/4
second interval.

Made the elapsed and remaining time displays update immediately when the
play head is dragged across the timeline, rather than at 1/4 second
intervals.

WebView/WebVideoFullscreenHUDWindowController.mm:

(-[WebVideoFullscreenHUDWindowController keyDown:]): Handle the up and
down arrow keys.
(-[WebVideoFullscreenHUDWindowController windowDidLoad]): Changed the
actions of the volume up and volume down buttons.
(-[WebVideoFullscreenHUDWindowController setCurrentTime:]): Call
-updateTime.
(-[WebVideoFullscreenHUDWindowController setVolumeToZero:]): Added this
action for the volume down button.
(-[WebVideoFullscreenHUDWindowController setVolumeToMaximum:]): Added
this action for the volume up button.
(-[WebVideoFullscreenHUDWindowController decrementVolume]): No longer
and action method.
(-[WebVideoFullscreenHUDWindowController incrementVolume]): Ditto.
(-[WebVideoFullscreenHUDWindowController setVolume:]): Call
-updateVolume.

Bug 30902: Need a layout test for Bug 28284
This change just adds a simple test that calls TextInputController.firstRectForCharacterRange()
before and after inserting a Thai character and compare their results.​https://bugs.webkit.org/show_bug.cgi?id=30902

fast/text/international/thai-cursor-position-expected.txt: Added.

fast/text/international/thai-cursor-position.html: Added.

platform/gtk/Skipped: Skip this test because TextInputController is not implemented.