Move 'text-emphasis-style' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=139285

Reviewed by Sam Weinig.

Move 'text-emphasis-style' CSS property to the new StyleBuilder by
using custom code.

No new tests, no behavior change.

* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue): Deleted.
(WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue): Deleted.
(WebCore::ApplyPropertyTextEmphasisStyle::applyValue): Deleted.
(WebCore::ApplyPropertyTextEmphasisStyle::createHandler): Deleted.
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyInitialWebkitTextEmphasisStyle):
(WebCore::StyleBuilderCustom::applyInheritWebkitTextEmphasisStyle):
(WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@176861 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a private browsing mode to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=139308

Reviewed by Sam Weinig.

Source/WebCore:

Use -1 instead of -2 for the deleted value.

* page/SessionIDHash.h:

Tools:

* MiniBrowser/mac/AppDelegate.m:
(defaultConfiguration):
(-[BrowserAppDelegate newWindow:]):
(-[BrowserAppDelegate newPrivateWindow:]):
* MiniBrowser/mac/MainMenu.xib:
* MiniBrowser/mac/WK2BrowserWindowController.h:
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController awakeFromNib]):
(-[WK2BrowserWindowController initWithConfiguration:]):
(-[WK2BrowserWindowController dealloc]):
(-[WK2BrowserWindowController observeValueForKeyPath:ofObject:change:context:]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@176862 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WTF] MediaTime should support round-tripping from and to doubles.
https://bugs.webkit.org/show_bug.cgi?id=139248

Reviewed by Eric Carlson.

Source/WebCore:

Check whether the MediaTime's underlying data is floating point before converting
to a CMTime or QTTime.

* platform/graphics/avfoundation/MediaTimeAVFoundation.cpp:
(WebCore::toCMTime):
* platform/graphics/mac/MediaTimeQTKit.mm:
(WebCore::toQTTime):

Source/WTF:

MediaTimes should be able to return precisely the same double value as was used
when the MediaTime was created, so long as that MediaTime was not modified in a
non-destructive way. This will allow API which accepts floating-point values to
return the exact same value when asked, but still be able to store that value
as a MediaTime.

* wtf/MediaTime.cpp:
(WTF::MediaTime::createWithFloat): Added; store the floating-point value in a union.
(WTF::MediaTime::createWithDouble): Ditto.
(WTF::MediaTime::toFloat): If the value is a double, just return it.
(WTF::MediaTime::toDouble): Ditto.
(WTF::MediaTime::operator+): Special case when one or both sides are doubles.
(WTF::MediaTime::operator-): Ditto.
(WTF::MediaTime::operator*): Ditto.
(WTF::MediaTime::compare): Ditto.
(WTF::abs): Ditto.
(WTF::MediaTime::setTimeScale): Convert the MediaTime from a double.

Tools:

Add API tests for new features of MediaTime. Update the LLDB python provider to correctly display
the MediaTimes after this change.

* TestWebKitAPI/Tests/WTF/MediaTime.cpp:
(WTF::operator<<):
(TestWebKitAPI::TEST):
* lldb/lldb_webkit.py:
(WTFMediaTime_SummaryProvider):
(WTFMediaTimeProvider.timeValueAsDouble):
(WTFMediaTimeProvider.isIndefinite):
(WTFMediaTimeProvider):
(WTFMediaTimeProvider.hasDoubleValue):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@176863 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix style sharing with the "type" and "readonly" attributes
https://bugs.webkit.org/show_bug.cgi?id=139283

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-12-05
Reviewed by Antti Koivisto.

Source/WebCore:

There are two bugs adressed with this patch:
1) The attributes "type" and "readonly" where only handled correctly
   for input elements. For everything else, they could incorrectly
   be ignored for style sharing.
2) The handling of attributes was incorrect for selector lists, leading
   to various bugs (incorrect style sharing in some cases, disabling
   style sharing on valid cases).

For [1], the problem was that attribute checking had been limited to
StyleResolver::canShareStyleWithControl(). That function is for handling
the special states of input element. For any other element, the attributes
were simply ignored.

For [2], there were a bunch of small problems. First, containsUncommonAttributeSelector()
was not recursive, which caused it to ignored any nested selector list. This used to be
correct but since we have advanced selectors we can no longer assumed selectors are not nested.

A second issue was that any attribute in a selector list was causing us to fall back
to the slow case. Now that we have the fast :matches(), we really don't want that.

The function containsUncommonAttributeSelector() was transformed into a recursive function
tracking where we are in the selector.

At the entry point, we start with the flag "startsOnRightmostElement" set to true. The flag is then
updated on the stack of each recursive call.

For example, "webkit > is:matches(freaking > awesome)". We evalute "is" with the flag to true, then recurse
into evaluating "freaking > awesome" with the flag still set to true. When we evalute ">", the flag
is set to false to evaluate any following selectors.
After evaluating "freaking > awesome", we go back to our previous stack frame, and the flag
is back to true and we can continue evaluating with the curren top level state.

From some logging, I discovered that the attribute handling is way too aggressive.
This is not a regression and I cannot fix that easily so I left a fixme.

Tests: fast/css/data-attribute-style-sharing-1.html
       fast/css/data-attribute-style-sharing-2.html
       fast/css/data-attribute-style-sharing-3.html
       fast/css/data-attribute-style-sharing-4.html
       fast/css/data-attribute-style-sharing-5.html
       fast/css/data-attribute-style-sharing-6.html
       fast/css/data-attribute-style-sharing-7.html
       fast/css/readonly-attribute-style-sharing-1.html
       fast/css/readonly-attribute-style-sharing-2.html
       fast/css/readonly-attribute-style-sharing-3.html
       fast/css/readonly-attribute-style-sharing-4.html
       fast/css/readonly-attribute-style-sharing-5.html
       fast/css/readonly-attribute-style-sharing-6.html
       fast/css/readonly-attribute-style-sharing-7.html
       fast/css/type-attribute-style-sharing-1.html
       fast/css/type-attribute-style-sharing-2.html
       fast/css/type-attribute-style-sharing-3.html
       fast/css/type-attribute-style-sharing-4.html
       fast/css/type-attribute-style-sharing-5.html
       fast/css/type-attribute-style-sharing-6.html
       fast/css/type-attribute-style-sharing-7.html

* css/RuleSet.cpp:
(WebCore::containsUncommonAttributeSelector):
(WebCore::RuleData::RuleData):
(WebCore::selectorListContainsAttributeSelector): Deleted.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithControl):
(WebCore::StyleResolver::canShareStyleWithElement):

LayoutTests:

* fast/css/data-attribute-style-sharing-1-expected.html: Added.
* fast/css/data-attribute-style-sharing-1.html: Added.
* fast/css/data-attribute-style-sharing-2-expected.html: Added.
* fast/css/data-attribute-style-sharing-2.html: Added.
* fast/css/data-attribute-style-sharing-3-expected.html: Added.
* fast/css/data-attribute-style-sharing-3.html: Added.
* fast/css/data-attribute-style-sharing-4-expected.html: Added.
* fast/css/data-attribute-style-sharing-4.html: Added.
* fast/css/data-attribute-style-sharing-5-expected.html: Added.
* fast/css/data-attribute-style-sharing-5.html: Added.
* fast/css/data-attribute-style-sharing-6-expected.html: Added.
* fast/css/data-attribute-style-sharing-6.html: Added.
* fast/css/data-attribute-style-sharing-7-expected.html: Added.
* fast/css/data-attribute-style-sharing-7.html: Added.
* fast/css/readonly-attribute-style-sharing-1-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-1.html: Added.
* fast/css/readonly-attribute-style-sharing-2-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-2.html: Added.
* fast/css/readonly-attribute-style-sharing-3-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-3.html: Added.
* fast/css/readonly-attribute-style-sharing-4-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-4.html: Added.
* fast/css/readonly-attribute-style-sharing-5-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-5.html: Added.
* fast/css/readonly-attribute-style-sharing-6-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-6.html: Added.
* fast/css/readonly-attribute-style-sharing-7-expected.html: Added.
* fast/css/readonly-attribute-style-sharing-7.html: Added.
* fast/css/type-attribute-style-sharing-1-expected.html: Added.
* fast/css/type-attribute-style-sharing-1.html: Added.
* fast/css/type-attribute-style-sharing-2-expected.html: Added.
* fast/css/type-attribute-style-sharing-2.html: Added.
* fast/css/type-attribute-style-sharing-3-expected.html: Added.
* fast/css/type-attribute-style-sharing-3.html: Added.
* fast/css/type-attribute-style-sharing-4-expected.html: Added.
* fast/css/type-attribute-style-sharing-4.html: Added.
* fast/css/type-attribute-style-sharing-5-expected.html: Added.
* fast/css/type-attribute-style-sharing-5.html: Added.
* fast/css/type-attribute-style-sharing-6-expected.html: Added.
* fast/css/type-attribute-style-sharing-6.html: Added.
* fast/css/type-attribute-style-sharing-7-expected.html: Added.
* fast/css/type-attribute-style-sharing-7.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@176864 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Keyboard input should be disabled in the preview popover
https://bugs.webkit.org/show_bug.cgi?id=139219
<rdar://problem/19052381>

Reviewed by Anders Carlsson.

* UIProcess/API/mac/WKView.mm:
(-[WKView performKeyEquivalent:]):
(-[WKView keyUp:]):
(-[WKView keyDown:]):
(-[WKView flagsChanged:]):
There are two implementations of each of these methods in this file.
Adjust the ones that the original patch missed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@176870 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-12-05  Geoffrey Garen  <ggaren@apple.com>

        Removed an unused function.

        Reviewed by Michael Saboff.

        Broken out from https://bugs.webkit.org/show_bug.cgi?id=139305.

        * parser/ParserArena.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@176871 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] DumpRenderTree fails to render every other test when pixel tests are on
https://bugs.webkit.org/show_bug.cgi?id=137581
<rdar://problem/18642906>

Reviewed by Simon Fraser.

Fixes an issue where the DumpRenderTree snapshot may reflect the rendered content
of the test that proceeded the currently running test.

* DumpRenderTree/ios/PixelDumpSupportIOS.mm:
(dumpWebViewAsPixelsAndCompareWithExpected): Ensure that UIKit has performed a layout
of the UIWebBrowserView view. Also, remove unnecessary call to -[UIWebDocumentView layoutTilesNow]
as -[UIWebDocumentView newSnapshotWithRect] will layout the tiles.

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