[BlackBerry] Fix wrong include path for notifications.
https://bugs.webkit.org/show_bug.cgi?id=93714

Reviewed by Rob Buis.

* PlatformBlackBerry.cmake: Change path from notifications to Modules/notifications.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125300 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Wrap INLINE_FLEX in a #if ENABLE(CSS3_FLEXBOX).
Unreviewed build fix.

* rendering/style/RenderStyle.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125301 268f45cc-cd09-0410-ab3c-d52691b4dbfc
New test introduced in r125262 css3/flexbox/inline-flex-crash2.html fails
https://bugs.webkit.org/show_bug.cgi?id=93718

Test uses layoutTestController instead of testRunner.

* css3/flexbox/inline-flex-crash2.html:
* platform/qt/Skipped:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125302 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed GTK gardening.

Removing expectation for css3/flexbox/inline-flex-crash2.html after
the fix for it was landed in r125302.

* platform/gtk/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125303 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: box-shadow creates incorrect shadow when border-radius is too large
https://bugs.webkit.org/show_bug.cgi?id=72103

Patch by Takashi Sakamoto <tasak@google.com> on 2012-08-10
Reviewed by Simon Fraser.

Added a code for adjusting a rounded rect before paintBoxShadow in
a similar way to getRoundedRectFor.

Test: fast/borders/border-shadow-large-radius.html

* platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::adjustRadii):
Added a new method to set radii's scale to fit into rect.
* platform/graphics/RoundedRect.h:
(RoundedRect):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintBoxShadow):
A rounded rect for box-shadow is not checked whether the raii matches
the rect or not. Added the code to adjust radii's scale if the rounded
rect is not renderable, the case: RoundedRect::isRenderable is false.

LayoutTests: box-shadow creates incorrect shadow when border-radius is too large.
https://bugs.webkit.org/show_bug.cgi?id=72103

Patch by Takashi Sakamoto <tasak@google.com> on 2012-08-10
Reviewed by Simon Fraser.

* fast/borders/border-shadow-large-radius.html: Added.
* fast/borders/border-shadow-large-radius-expected.txt: Added.
* platform/chromium-linux/fast/borders/border-shadow-large-radius-expected.png: Added.
* platform/chromium-mac/fast/borders/border-shadow-large-radius-expected.png: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125304 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed gardening: build fix for 32bit platforms after 125294.

* css/StyleResolver.cpp:
(RuleData):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125305 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Transforms] Hit test issue with large scale() transform
https://bugs.webkit.org/show_bug.cgi?id=23170

Reviewed by Simon Fraser.

Source/WebCore:

By using normal rounding to determine the top-left corner of the
hit-tested rectangle, we end up offsetting the hit test by up to
half a pixel, once scaled to x60, this creates a 30px error.

Normal rounding is replaced with floored rounding which means the
hit-tested pixel will now always be the pixel containing the
point.

Test: fast/transforms/hit-test-large-scale.html

* rendering/HitTestResult.cpp:
(WebCore::HitTestPoint::HitTestPoint):
(WebCore::HitTestPoint::intersectsRect):
(WebCore::HitTestPoint::rectForPoint):

LayoutTests:

New test checking that we can hit the bottom-right part of an element with
a large scale transformation.

Modified test-input on perspective-clipped.html, since it was mathematically
0.1px inside the transformed target, but used to miss due to bad rounding.

* fast/transforms/hit-test-large-scale-expected.txt: Added.
* fast/transforms/hit-test-large-scale.html: Added.
* transforms/3d/hit-testing/perspective-clipped-expected.txt:
* transforms/3d/hit-testing/perspective-clipped.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125306 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed.  Rolled DEPS.

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-08-10

* DEPS:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125310 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CMAKE] Fix wrong idl include path in CMakeList.txt
https://bugs.webkit.org/show_bug.cgi?id=93715

Reviewed by Rob Buis.

No new tests. No change in behavior.

* CMakeLists.txt: Fix notifications path.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125312 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed GTK gardening.

Updating or adding newly-generated pixel baselines for tests in animations,
dom/xhtml/level3/core, scrollbars, transforms and transitions directories.

* platform/gtk/animations/3d/change-transform-in-end-event-expected.png: Added.
* platform/gtk/animations/3d/matrix-transform-type-animation-expected.png: Added.
* platform/gtk/animations/3d/replace-filling-transform-expected.png: Added.
* platform/gtk/animations/3d/state-at-end-event-transform-expected.png: Added.
* platform/gtk/animations/additive-transform-animations-expected.png: Added.
* platform/gtk/animations/cross-fade-background-image-expected.png: Added.
* platform/gtk/animations/cross-fade-border-image-source-expected.png: Added.
* platform/gtk/animations/cross-fade-list-style-image-expected.png: Added.
* platform/gtk/animations/cross-fade-webkit-mask-box-image-expected.png: Added.
* platform/gtk/animations/cross-fade-webkit-mask-image-expected.png: Added.
* platform/gtk/animations/missing-values-last-keyframe-expected.png: Added.
* platform/gtk/animations/opacity-transform-animation-expected.png: Added.
* platform/gtk/animations/state-at-end-event-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/canonicalform08-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/canonicalform09-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/documentgetinputencoding03-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/entitygetinputencoding02-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/entitygetxmlversion02-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/nodegetbaseuri05-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/nodegetbaseuri07-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/nodegetbaseuri09-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/nodegetbaseuri10-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/nodegetbaseuri11-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/nodegetbaseuri15-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/nodegetbaseuri17-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/nodegetbaseuri18-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/nodelookupnamespaceuri01-expected.png: Added.
* platform/gtk/dom/xhtml/level3/core/nodelookupprefix19-expected.png: Added.
* platform/gtk/scrollbars/basic-scrollbar-expected.png: Added.
* platform/gtk/scrollbars/custom-scrollbar-with-incomplete-style-expected.png:
* platform/gtk/scrollbars/disabled-scrollbar-expected.png: Added.
* platform/gtk/scrollbars/listbox-scrollbar-combinations-expected.png: Added.
* platform/gtk/scrollbars/overflow-scrollbar-combinations-expected.png: Added.
* platform/gtk/scrollbars/scrollbar-buttons-expected.png: Added.
* platform/gtk/scrollbars/scrollbar-orientation-expected.png: Added.
* platform/gtk/scrollbars/scrollbars-on-positioned-content-expected.png:
* platform/gtk/transforms/2d/compound-transforms-vs-containers-expected.png: Added.
* platform/gtk/transforms/2d/hindi-rotated-expected.png:
* platform/gtk/transforms/2d/transform-borderbox-expected.png: Added.
* platform/gtk/transforms/2d/transform-fixed-container-expected.png:
* platform/gtk/transforms/2d/transform-origin-borderbox-expected.png: Added.
* platform/gtk/transforms/2d/zoom-menulist-expected.png:
* platform/gtk/transforms/svg-vs-css-expected.png: Added.
* platform/gtk/transitions/cross-fade-background-image-expected.png: Added.
* platform/gtk/transitions/cross-fade-border-image-expected.png: Added.
* platform/gtk/transitions/default-timing-function-expected.png:
* platform/gtk/transitions/move-after-transition-expected.png: Added.
* platform/gtk/transitions/opacity-transition-zindex-expected.png: Added.
* platform/gtk/transitions/suspend-transform-transition-expected.png: Added.
* platform/gtk/transitions/svg-text-shadow-transition-expected.png: Added.
* platform/gtk/transitions/transition-end-event-rendering-expected.png: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125313 268f45cc-cd09-0410-ab3c-d52691b4dbfc
<rdar://problem/11855229> When in paginated mode, the layout timer fires continually
https://bugs.webkit.org/show_bug.cgi?id=91038

Reviewed by Simon Fraser.

* page/Page.cpp:
(WebCore::Page::pageCount): Changed to only trigger layout if needed.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Crash on accessing a removed layout root in FrameView::scheduleRelayout.
https://bugs.webkit.org/show_bug.cgi?id=91368

Reviewed by Levi Weintraub.

We were calling setNeedsLayoutAndPrefWidthsRecalc() in RenderBlock::collapseAnonymousBoxChild
even when documentBeingDestroyed() was true. This ends up accessing stale layout root and bypasses
mitigation added in r109406. There is no need to waste time merging up anonymous blocks in
RenderBlock::removeChild when documentBeingDestroyed() is true.

No new tests. The test is time sensitive, requires a bunch of reloads, and only reproduces on chromium linux.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::collapseAnonymousBoxChild):
(WebCore::RenderBlock::removeChild):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125315 268f45cc-cd09-0410-ab3c-d52691b4dbfc
NRWT crashes when DRT with --encode-binary crashes just before it dumps pixels
https://bugs.webkit.org/show_bug.cgi?id=93728

Reviewed by Dirk Pranke.

* Scripts/webkitpy/layout_tests/port/driver.py:
(ContentBlock.decode_content): Check self.content is not None before calling base64.b64decode().


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125316 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed; fix an insanely silly typo.

* resources/results-template.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125317 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use the new AVPlayerItemVideoOutput API in MediaPlayerPrivateAVFoundation.
https://bugs.webkit.org/show_bug.cgi?id=93591

Reviewed by Eric Carlson.

Support the new AVPlayerItemVideoOutput API from Mountain Lion, which has much increased performance over
AVAssetImageGenerator.

No new tests; Performance change only, no net change in functionality.

AVPlayerItemVideoOutput requires an attached CALayer for rendering to occur.  Make the rendering modes non-exclusive,
so layer-rendering and context-rendering can exist simultaneously:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h: Make the MediaRenderingMode enum
    a bitfield.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::currentRenderingModes): Renamed from currentRenderingMode().
(WebCore::MediaPlayerPrivateAVFoundation::setUpVideoRendering): Check for the presence of the MediaRenderingToLayer bit.
(WebCore::MediaPlayerPrivateAVFoundation::prepareForRendering): Ditto.
(WebCore::MediaPlayerPrivateAVFoundation::updateStates): Ditto.

Pull out existing the AVAssetImageGenerator into its own functions:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageGenerator):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyImageGenerator):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator):

Add new AVPlayerItemVideoOutput equivalent functions:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):

Switch between the AVAssetImageGenerator and AVPlayerItemVideoOutput functions from
within the original functions:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createContextVideoRenderer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasContextRenderer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paint):

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): Call the
    AVAssetImageGenerator creation function directly.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125318 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Crash exiting from HTML5 FS mode to normal mode via ESC key
https://bugs.webkit.org/show_bug.cgi?id=93663

Reviewed by Eric Carlson.

Crash is due to a refcount underrun with _watchdogTimer due to adopting an autoreleased NSTimer.
Use the non-autoreleased NSTimer creation method and manually add to the main NSRunLoop.

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController cancelOperation:]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125319 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add support for String initialization from literal to WTFString
https://bugs.webkit.org/show_bug.cgi?id=93426

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-08-10
Reviewed by Anders Carlsson.

Source/WTF: 

This patch adds two constructor to WTF::String in order to support fast initialization from literal:
-String(ASCIILiteral): Constructor similar to String(const char*) while being faster. This constructor
 does not incur any overhead over String(const char*).
-String(char[], ConstructFromLiteralTag): Template constructor that encode explicitely the size of the
 string.

String(ASCIILiteral) is expected to be used in most cases to avoid regressions. This constructor was
added because of what we have learned from r124922: inlining the string length in the code causes a code bloat
that is not always welcome.

Regarding performance of string initialization, the constructors performance are (6 characters string):
-String(ASCIILiteral): 16% faster.
-String(char[], ConstructFromLiteralTag): 33% faster (the delta increases with the string length).

In addition, no memory is allocated for the characters.

* wtf/text/StringImpl.cpp:
* wtf/text/StringImpl.h:
(WTF::StringImpl::createFromLiteral): Extend StringImpl::createFromLiteral to have a version
with strlen() which avoids loading one extra argument.
* wtf/text/WTFString.cpp:
(WTF::String::String):
* wtf/text/WTFString.h:
(WTF::String::String):
(ASCIILiteral): This class is aimed at making the construction of WTFString from a literal very easy.
By using the explicit constructor ASCIILiteral(char *), one can expect the implicit conversion to String
when needed.
(WTF::ASCIILiteral::ASCIILiteral):
(WTF::ASCIILiteral::operator const char*):

Tools: 

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WTF/StringImpl.cpp:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/WTFString.cpp: Copied from Tools/TestWebKitAPI/Tests/WTF/StringImpl.cpp.
(TestWebKitAPI):
(TestWebKitAPI::TEST):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125320 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Broken implementation of AtkText and AtkEditableText for password fields
https://bugs.webkit.org/show_bug.cgi?id=93621

Reviewed by Chris Fleizach.

Source/WebCore:

Fix broken implementation of AtkText and AtkEditableText
interfaces in the GTK port for password input fields.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::stringValue): Call the new
function passwordFieldValue() for password input fields.
(WebCore::AccessibilityRenderObject::text): Ditto.
(WebCore::AccessibilityRenderObject::textLength): Return the
actual length of the password in the field for GTK, return -1
otherwise (not to break current behavior in other platforms).
(WebCore::AccessibilityRenderObject::doAXStringForRange): Don't
early return for password fields in GTK (will rely on text()).
(WebCore::AccessibilityRenderObject::passwordFieldValue): New, it
returns the text being actually rendered for a password input
field (normally a masked string) in GTK. It returns String() in
the rest of platforms, to ensure we don't break anything there.
(WebCore):
* accessibility/AccessibilityRenderObject.h:
(AccessibilityRenderObject):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::passwordFieldValue): Default
implementation of this new method, returning an empty string.
(AccessibilityObject):

Ensure the 'text-insert' and 'text-remove' signals for the AtkText
interface are properly emitted for password input fields.

* accessibility/gtk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::nodeTextChangePlatformNotification): Make
sure we never emit the password value for an input field in plain
text when inserting or removing text. Emit the masked text instead.

Source/WebKit/gtk:

Update unit test to ensure that password input fields behave
as expected when inserting and removing characters in them.

* tests/testatk.c:
(testWebkitAtkTextChangedNotifications): Updated unit test to
cover the special case of password input fields.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125321 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Enable relro link option for JSC executable
https://bugs.webkit.org/show_bug.cgi?id=93726

Reviewed by Yong Li.

Enable relro link option for JSC executable.

* Source/cmake/OptionsBlackBerry.cmake:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@125322 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r125310.
http://trac.webkit.org/changeset/125310
https://bugs.webkit.org/show_bug.cgi?id=93739

The DEPS roll broke Android. One does not simply break
Android. (Requested by fmalita_ on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-08-10

* DEPS:

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