WebKit-https.git
4 years ago[CSS Grid Layout] Upgrade align-self and align-items parsing to CSS 3
jfernandez@igalia.com [Mon, 17 Nov 2014 19:52:42 +0000 (19:52 +0000)]
[CSS Grid Layout] Upgrade align-self and align-items parsing to CSS 3
https://bugs.webkit.org/show_bug.cgi?id=133359

Reviewed by David Hyatt.

Source/WebCore:

Broaden justify-self's parsing name as a preparation of migrating
align-self, align-items and justify-items to the CSS 3 Alignment syntax.

The current naming was too tied to justify-self and needs to
be broadened. This will reduce the follow-up implementations'
patches.

Upgrade align-self and align-items parsing to CSS 3

This change migrates the 2 properties to the CSS 3 Alignment
parsing. The new parsing is identical to how we parse
'justify-self'. The 2 properties need to be migrated together
as they are used in tandem in CSSComputedStyleDeclaration.

This change also removes EAlignItems as it is now unused.

Tests: css3/parse-align-items.html
       css3/parse-align-self.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForItemPositionWithOverflowAlignment): Added. Builds the CSSValue for the for the alignment properties.
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isKeywordPropertyID): Removed align-items and align-self from the list.
(WebCore::isValidKeywordPropertyAndValue): Removed align-items and align-self from the list.
(WebCore::CSSParser::parseValue): Added align-items and align-self to the list and call to the generic parsing fuction for the alignment properties.
(WebCore::isBaselinePositionKeyword): Utility function added to identify Baseline keyword values.
(WebCore::CSSParser::parseItemPositionOverflowPosition): Generic parsing fuction for the alignment properties.
(WebCore::CSSParser::parseJustifySelf): Deleted.
* css/CSSParser.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Refactoring some mapping functions.
       (WebCore::CSSPrimitiveValue::operator ItemPosition): Added. Replace the old EAlignItems enumeration.
(WebCore::CSSPrimitiveValue::operator OverflowAlignment): Added.
(WebCore::CSSPrimitiveValue::operator EAlignItems): Deleted.
(WebCore::CSSPrimitiveValue::operator EJustifySelf): Deleted.
(WebCore::CSSPrimitiveValue::operator EJustifySelfOverflowAlignment): Deleted.
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): Added a new adjustment to resolve the "auto" vale on the alignment properties.
(WebCore::StyleResolver::adjustStyleForAlignment): Added. Function to resolve the "auto" vale on the alignment properties.
(WebCore::StyleResolver::applyProperty):
(WebCore::isDisplayFlexibleBox): Deleted. Moved to the RenderStyle.
(WebCore::isDisplayGridBox): Deleted. Moved to the RenderStyle.
(WebCore::isDisplayFlexibleOrGridBox): Deleted. Moved to the RenderStyle.
* css/StyleResolver.h:
* rendering/RenderBox.cpp:
(WebCore::flexItemHasStretchAlignment): Adapted to the new ItemPosition enum.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::firstLineBaseline): Adapted to the new ItemPosition enum.
(WebCore::resolveAlignment): Consider also that align-items could be "auto", since it's the default now.
(WebCore::RenderFlexibleBox::styleDidChange): Adapted to the new ItemPosition enum.
(WebCore::RenderFlexibleBox::alignmentForChild): Adapted to the new ItemPosition enum.
(WebCore::RenderFlexibleBox::needToStretchChild): Adapted to the new ItemPosition enum.
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren): Adapted to the new ItemPosition enum.
(WebCore::RenderFlexibleBox::alignChildren): Adapted to the new ItemPosition enum.
* rendering/RenderFlexibleBox.h:
* rendering/RenderFullScreen.cpp:
(WebCore::createFullScreenStyle): Adapted to the new ItemPosition enum.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::adjustInnerStyle): Adapted to the new ItemPosition enum.
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::updateStyle): Adapted to the new ItemPosition enum.
* rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair): Adapted to the new ItemPosition enum.
(WebCore::RenderMathMLScripts::fixAnonymousStyles): Adapted to the new ItemPosition enum.
* rendering/style/RenderStyle.h: Adapted to the new ItemPosition enum.
* rendering/style/RenderStyleConstants.h: Adapted to the new ItemPosition enum.
* rendering/style/StyleRareNonInheritedData.cpp: Adapted to the new ItemPosition enum.
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): Adapted to the new ItemPosition enum.
(WebCore::StyleRareNonInheritedData::operator==): Adapted to the new ItemPosition enum.
* rendering/style/StyleRareNonInheritedData.h: Adapted to the new ItemPosition enum.
* style/StyleResolveTree.cpp:
(WebCore::Style::determineChange): Changes in the alignItems property will cause a Detach.

LayoutTests:

From Blink r164817 and r165264 by <jchaffraix@chromium.org>

Broaden justify-self's parsing name and upgrade align-self and
align-items parsing to CSS 3.

* css3/flexbox/css-properties-expected.txt:
* css3/flexbox/css-properties.html:
* css3/parse-align-items-expected.txt: Added.
* css3/parse-align-items.html: Added.
* css3/parse-align-self-expected.txt: Added.
* css3/parse-align-self.html: Added.
* css3/resources/alignment-parsing-utils.js: Added.
(checkValues):
(checkBadValues):
(checkInitialValues):
(checkInheritValues):
(checkLegacyValues):
* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* fast/css/getComputedStyle/resources/property-names.js:
* svg/css/getComputedStyle-basic-expected.txt:
* platform/gtk/TestExpectations: Report new failures and update expectations.

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

4 years agoFix WTF build with newer versions of clang.
andersca@apple.com [Mon, 17 Nov 2014 19:48:47 +0000 (19:48 +0000)]
Fix WTF build with newer versions of clang.
<rdar://problem/18978705>

* wtf/HashTable.h:
(WTF::removeIterator):
* wtf/dtoa/utils.h:
(WTF::double_conversion::BitCast):

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

4 years agoAttribute text in HTMLAnchorElement should behave as per specification.
commit-queue@webkit.org [Mon, 17 Nov 2014 19:24:52 +0000 (19:24 +0000)]
Attribute text in HTMLAnchorElement should behave as per specification.
https://bugs.webkit.org/show_bug.cgi?id=138557

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-11-17
Reviewed by Darin Adler.

Source/WebCore:

attribute text in HTMLAnchorElement should not be readonly as per specification
http://www.w3.org/TR/html/text-level-semantics.html#dom-a-text. It should behave as textContent attribute.
Also This matches the behavior of Chrome 38 and FireFox.

Test: fast/dom/HTMLAnchorElement/anchor-text-attribute.html

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::text):
(WebCore::HTMLAnchorElement::setText):
* html/HTMLAnchorElement.h:
* html/HTMLAnchorElement.idl:

LayoutTests:

* fast/dom/HTMLAnchorElement/anchor-text-attribute-expected.txt: Added.
* fast/dom/HTMLAnchorElement/anchor-text-attribute.html: Added.

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

4 years agoThrottle timers that change the style of elements outside the viewport
cdumez@apple.com [Mon, 17 Nov 2014 19:23:43 +0000 (19:23 +0000)]
Throttle timers that change the style of elements outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=138292

Reviewed by Antti Koivisto.

Throttle timers that change the style of elements outside the viewport
to 1 second, similarly to what was already done for timers interacting
with non user observable plugins. To be conservative, we don't throttle
timers that also cause DOM Tree modifications (e.g. adding/removing
nodes, modify element attributes).

On huffingtonpost.com, the CPU usage is at ~17% when the top scrolling
banner is inside the viewport on my machine. Without this patch, CPU
usage would stay ~17% when the banner is outside the viewport. Thanks
to timer throttling, CPU usage now goes down to ~1.5%, without user
observable side effects. The timers get unthrottled when they are
inside the viewport again (i.e. due to scrolling or layout).

On espn.com, the CPU usage goes down from ~7% at the top of the page
to ~1% when scrolling to the bottom of the page. On ebay.com, CPU
usage goes down from ~25% at the top of the page to less than 1% when
scrolling to the bottom of the page.

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

4 years agoHaving 30+ flaky failures breaks EWS
commit-queue@webkit.org [Mon, 17 Nov 2014 19:06:38 +0000 (19:06 +0000)]
Having 30+ flaky failures breaks EWS
https://bugs.webkit.org/show_bug.cgi?id=138743

Patch by Jake Nielsen <jacob_nielsen@apple.com> on 2014-11-17
Reviewed by Alexey Proskuryakov.

Adds tests to ensure that the problem has been solved.
* Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:
(test_first_failure_limit):
(test_first_failure_limit_with_some_tree_redness):
(test_second_failure_limit):
(test_tree_failure_limit_with_patch_that_potentially_fixes_some_redness):
(test_first_and_second_failure_limit):
(test_first_and_clean_failure_limit):
(test_first_second_and_clean_failure_limit):
(test_very_red_tree_retry): Deleted.
Really this was renamed to test_first_second_and_clean_failure_limit.
* Scripts/webkitpy/tool/bot/patchanalysistask.py:
Makes the appropriate changes to PatchAnalysisTask to make sure that
even when the first test run hits the failure limit, it will still try
a second run.
(PatchAnalysisTask._results_failed_different_tests):
(PatchAnalysisTask._test_patch):
(PatchAnalysisTask._continue_testing_patch_that_exceeded_failure_limit_on_first_or_second_try): Deleted.

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

4 years ago[WinCairo] Compile error, CoreGraphics header file included.
commit-queue@webkit.org [Mon, 17 Nov 2014 18:58:58 +0000 (18:58 +0000)]
[WinCairo] Compile error, CoreGraphics header file included.
https://bugs.webkit.org/show_bug.cgi?id=138795

Patch by peavo@outlook.com <peavo@outlook.com> on 2014-11-17
Reviewed by Brent Fulgham.

CoreGraphics is not available on WinCairo.

* platform/graphics/win/FontCacheWin.cpp:

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

4 years agomedia/track/track-cues-sorted-before-dispatch.html is flaky on Mountain Lion
ap@apple.com [Mon, 17 Nov 2014 18:56:36 +0000 (18:56 +0000)]
media/track/track-cues-sorted-before-dispatch.html is flaky on Mountain Lion
https://bugs.webkit.org/show_bug.cgi?id=138798

* platform/mac/TestExpectations: Marked it as such.

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

4 years agoUnreviewed, rolling out r176169.
commit-queue@webkit.org [Mon, 17 Nov 2014 18:48:51 +0000 (18:48 +0000)]
Unreviewed, rolling out r176169.
https://bugs.webkit.org/show_bug.cgi?id=138797

Appears to have broken svg/custom/anchor-on-use.svg (Requested
by ap on #webkit).

Reverted changeset:

"Attribute text in HTMLAnchorElement should behave as per
specification."
https://bugs.webkit.org/show_bug.cgi?id=138557
http://trac.webkit.org/changeset/176169

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

4 years agoUpdate WebKit to build with LLVM TOT
commit-queue@webkit.org [Mon, 17 Nov 2014 18:42:14 +0000 (18:42 +0000)]
Update WebKit to build with LLVM TOT
https://bugs.webkit.org/show_bug.cgi?id=138519

Patch by Juergen Ributzka <juergen@apple.com> on 2014-11-17
Reviewed by Alexey Proskuryakov.

* Configurations/LLVMForJSC.xcconfig:
* llvm/LLVMAPIFunctions.h:
* llvm/library/LLVMExports.cpp:
(initializeAndGetJSCLLVMAPI):

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

4 years ago[iOS] AVKit and MediaPlayer SPI are not available in public SDK
dbates@webkit.org [Mon, 17 Nov 2014 18:30:18 +0000 (18:30 +0000)]
[iOS] AVKit and MediaPlayer SPI are not available in public SDK
https://bugs.webkit.org/show_bug.cgi?id=138756

Reviewed by Eric Carlson.

Source/WebCore:

Add a SPI wrapper headers {AVKit, MPAVRoutingController}SPI.h that forward declares
AVKit and MPAVRoutingController SPI, respectively, and use these header instead of
including private headers of AVKit and MediaPlayer directly.

* WebCore.xcodeproj/project.pbxproj: Add project and private header AVKitSPI.h
and MPAVRoutingControllerSPI.h, respectively.
* platform/audio/ios/MediaSessionManagerIOS.mm: Include header MPAVRoutingControllerSPI.h
instead of including the private header MPAVRoutingController.h.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Include header AVKitSPI.h
instead of including AVKit headers directly.

Source/WebKit2:

Include header MPAVRoutingControllerSPI.h instead of including the
private header MPAVRoutingController.h.

Additionally, sort the list of #import directives.

* UIProcess/ios/forms/WKAirPlayRoutePicker.mm:

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

4 years agoAttempt to fix the Mac build after <https://trac.webkit.org/changeset/176204>
dbates@webkit.org [Mon, 17 Nov 2014 17:56:00 +0000 (17:56 +0000)]
Attempt to fix the Mac build after <https://trac.webkit.org/changeset/176204>
(https://bugs.webkit.org/show_bug.cgi?id=138751)

Move declaration of CAContext to be before the declaration of CALayer since
the latter depends on the former.

* platform/spi/cocoa/QuartzCoreSPI.h:

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

4 years ago[iOS] QuartzCore SPI not available in public SDK
dbates@webkit.org [Mon, 17 Nov 2014 17:44:43 +0000 (17:44 +0000)]
[iOS] QuartzCore SPI not available in public SDK
https://bugs.webkit.org/show_bug.cgi?id=138751

Reviewed by David Kilzer.

Source/WebCore:

Add a SPI wrapper header called QuartzCoreSPI.h that forward declares
QuartzCore SPI and use this header instead of including private headers
of QuartzCore directly.

* WebCore.xcodeproj/project.pbxproj: Added private header QuartzCoreSPI.h.
* platform/graphics/ca/mac/PlatformCAFiltersMac.h: Removed; incorporated its
functionality into QuartzCoreSPI.h.
* platform/graphics/ca/mac/PlatformCAFiltersMac.mm: Substitute header
QuartzCoreSPI.h for PlatformCAFiltersMac.h as the content of the latter
was incorporated into the former.
* platform/graphics/ca/mac/PlatformCALayerMac.mm: Move CALayer and CATiledLayer
forward declarations from this file to file QuartzCoreSPI.h and include
header QuartzCoreSPI.h instead of including CATiledLayerPrivate.h directly. Also
remove header PlatformCAFiltersMac.h as its content is incorporated into QuartzCoreSPI.h
* platform/ios/LegacyTileCache.mm: Include headers CoreGraphicsSPI.h and QuartzCoreSPI.h
instead of including QuartzCore headers directly.
* platform/ios/LegacyTileGrid.mm: Include header QuartzCoreSPI.h instead
of including QuartzCore headers directly. Also sort the list of #include directives.
* platform/ios/LegacyTileGridTile.mm: Include header QuartzCoreSPI.h
instead of including QuartzCore headers directly.
* platform/spi/cocoa/QuartzCoreSPI.h: Added.

Source/WebKit/mac:

Include header QuartzCoreSPI.h instead of including QuartzCore headers directly.

* WebInspector/WebNodeHighlight.mm:
* WebView/WebIndicateLayer.mm:

Source/WebKit2:

* Shared/mac/RemoteLayerBackingStore.mm: Move CALayer forward declaration
from this file to file QuartzCoreSPI.h and include header QuartzCoreSPI.h.
* Shared/mac/RemoteLayerTreePropertyApplier.mm: Ditto.
* UIProcess/API/Cocoa/WKWebView.mm: Include header QuartzCoreSPI.h instead
of including QuartzCore headers directly.
* UIProcess/ios/ViewGestureControllerIOS.mm: Ditto.
* UIProcess/ios/WKContentView.mm: Ditto.
* UIProcess/ios/WKPDFPageNumberIndicator.mm: Ditto.
* UIProcess/mac/ViewGestureControllerMac.mm: Move CAFilter forward declarations
from this file to fileQuartzCoreSPI.h and include header QuartzCoreSPI.h.
Also sort the list of #import directives.
* UIProcess/mac/ViewSnapshotStore.mm: Include header QuartzCoreSPI.h
instead of including QuartzCore headers directly.

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

4 years agoApp.Manifest shouldn't use App.__container__.lookup
rniwa@webkit.org [Mon, 17 Nov 2014 17:07:13 +0000 (17:07 +0000)]
App.Manifest shouldn't use App.__container__.lookup
https://bugs.webkit.org/show_bug.cgi?id=138768

Reviewed by Andreas Kling.

Removed the hack to find the store object via App.__container__.lookup.
Pass around the store object instead.

* public/v2/app.js:
(App.DashboardRow._createPane): Add "store" property to the pane.
(App.DashboardPaneProxyForPicker._platformOrMetricIdChanged): Ditto.
(App.IndexController.gridChanged): Ditto.
(App.IndexController.actions.addRow): Ditto.
(App.IndexController.init): Ditto.
(App.Pane._fetch): Ditto.
(App.ChartsController._parsePaneList): Ditto.
(App.ChartsController._updateQueryString): Ditto.
(App.ChartsController.actions.addPaneByMetricAndPlatform): Ditto.
(App.BuildPopup): Ditto.
(App.AnalysisTaskRoute.model): Ditto.
(App.AnalysisTaskViewModel._taskUpdated): Ditto.

* public/v2/manifest.js:
(App.Manifest.fetch): Removed the code to find the store object.

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

4 years agoMove more CSS properties to the new StyleBuilder
cdumez@apple.com [Mon, 17 Nov 2014 16:43:59 +0000 (16:43 +0000)]
Move more CSS properties to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138766

Reviewed by Darin Adler.

Move more CSS properties from DeprecatedStyleBuilder to the new
StyleBuilder:
line-height
word-spacing
-webkit-marquee-repetition
-webkit-text-underline-position

No new tests, no behavior change.

* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::csstoLengthConversionDataWithTextZoomFactor): Deleted.
(WebCore::ApplyPropertyMarqueeRepetition::applyValue): Deleted.
(WebCore::ApplyPropertyMarqueeRepetition::createHandler): Deleted.
(WebCore::ApplyPropertyTextUnderlinePosition::applyValue): Deleted.
(WebCore::ApplyPropertyTextUnderlinePosition::createHandler): Deleted.
(WebCore::ApplyPropertyLineHeight::applyValue): Deleted.
(WebCore::ApplyPropertyLineHeight::createHandler): Deleted.
(WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue): Deleted.
(WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyInitialValue): Deleted.
(WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyInheritValue): Deleted.
(WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::createHandler): Deleted.
(WebCore::ApplyPropertyWordSpacing::applyValue): Deleted.
(WebCore::ApplyPropertyWordSpacing::createHandler): Deleted.
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertMarqueeRepetition):
(WebCore::StyleBuilderConverter::convertTextUnderlinePosition):
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderFunctions::csstoLengthConversionDataWithTextZoomFactor):
(WebCore::StyleBuilderFunctions::convertLineHeight):
(WebCore::StyleBuilderFunctions::applyValueWordSpacing):
(WebCore::StyleBuilderFunctions::applyInheritLineHeight):
(WebCore::StyleBuilderFunctions::applyInitialLineHeight):
(WebCore::StyleBuilderFunctions::applyValueLineHeight):

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

4 years agoAvoid synchronous style recalc when mutating a Node inside FrameSelection.
akling@apple.com [Mon, 17 Nov 2014 16:22:40 +0000 (16:22 +0000)]
Avoid synchronous style recalc when mutating a Node inside FrameSelection.
<https://webkit.org/b/138791>

Reviewed by Antti Koivisto.

Source/WebCore:

We can safely clear the RenderView's selection without doing a synchronous
style recalc first.

This is a small progression on Speedometer locally.

* editing/FrameSelection.cpp:
(WebCore::DragCaretController::nodeWillBeRemoved):
(WebCore::FrameSelection::respondToNodeModification):
(WebCore::clearRenderViewSelection): Deleted.

    Merged clearRenderViewSelection() into the call sites and removed
    the now-unnecessary protection of the Document.

LayoutTests:

Rebaseline fast/dynamic/move-node-with-selection.html.
This is a progression, we avoid littering the render tree with some empty
text renderers due to deferring the style recalc in selection clearing.

* platform/efl/fast/dynamic/move-node-with-selection-expected.txt:
* platform/gtk/fast/dynamic/move-node-with-selection-expected.txt:
* platform/ios-sim-deprecated/fast/dynamic/move-node-with-selection-expected.txt:
* platform/ios-simulator/fast/dynamic/move-node-with-selection-expected.txt:
* platform/mac/fast/dynamic/move-node-with-selection-expected.txt:

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

4 years ago[EFL] Skip timeouting editing tests
commit-queue@webkit.org [Mon, 17 Nov 2014 14:41:00 +0000 (14:41 +0000)]
[EFL] Skip timeouting editing tests
https://bugs.webkit.org/show_bug.cgi?id=138693

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-11-17
Reviewed by Csaba Osztrogonác.

* platform/efl/TestExpectations:

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

4 years ago[iOS] allow host application to opt-out of alternate fullscreen
eric.carlson@apple.com [Mon, 17 Nov 2014 14:07:04 +0000 (14:07 +0000)]
[iOS] allow host application to opt-out of alternate fullscreen
https://bugs.webkit.org/show_bug.cgi?id=138787

Reviewed by Darin Adler.

Source/WebCore:

* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::optimizedFullscreenSupported): Check mediaSession().allowsAlternateFullscreen.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::enterFullscreenOptimized): Do nothing if
    mediaSession().allowsAlternateFullscreen says it isn't allowed.

* html/HTMLMediaSession.cpp:
(WebCore::HTMLMediaSession::allowsAlternateFullscreen): New, check settings.
* html/HTMLMediaSession.h:

* page/Settings.cpp: Add allowsAlternateFullscreen.
* page/Settings.in: Ditto.

Source/WebKit/mac:

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences allowsAlternateFullscreen]):
(-[WebPreferences setAllowsAlternateFullscreen:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Source/WebKit2:

* Shared/WebPreferencesDefinitions.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAllowsAlternateFullscreen):
(WKPreferencesGetAllowsAlternateFullscreen):
* UIProcess/API/C/WKPreferencesRefPrivate.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.h:
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

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

4 years ago[GTK] Add library search paths from LDFLAGS before pkg-config --libs
commit-queue@webkit.org [Mon, 17 Nov 2014 10:48:39 +0000 (10:48 +0000)]
[GTK] Add library search paths from LDFLAGS before pkg-config --libs
https://bugs.webkit.org/show_bug.cgi?id=136018

Patch by Ting-Wei Lan <lantw44@gmail.com> on 2014-11-17
Reviewed by Carlos Garcia Campos.

It is possible that the order of -L arguments in the output of
pkg-config is wrong, which causes the linker to find the wrong
version (usually older version) of libraries when running
gtkdoc-scangobj.

* gtk/gtkdoc.py:
(GTKDoc._run_gtkdoc_scangobj):

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

4 years agoUnreviewed GTK+ gardening. Skip more tests failing after r175776.
carlosgc@webkit.org [Mon, 17 Nov 2014 10:27:56 +0000 (10:27 +0000)]
Unreviewed GTK+ gardening. Skip more tests failing after r175776.

There is no network load scheduling or prioritization with NetworkProcess.

* platform/gtk/TestExpectations:

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

4 years agoBump EFL version to 1.12.0
evab.u-szeged@partner.samsung.com [Mon, 17 Nov 2014 09:53:36 +0000 (09:53 +0000)]
Bump EFL version to 1.12.0
https://bugs.webkit.org/show_bug.cgi?id=138733

Reviewed by Gyuyoung Kim.

* efl/jhbuild.modules:

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

4 years agoReplace RenderSVGResource::cast<T>() with downcast<T>()
zandobersek@gmail.com [Mon, 17 Nov 2014 07:44:20 +0000 (07:44 +0000)]
Replace RenderSVGResource::cast<T>() with downcast<T>()
https://bugs.webkit.org/show_bug.cgi?id=138290

Reviewed by Chris Dumez.

Add type traits for the RenderSVGResource hierarchy. This enables
using the typecasting framework in getRenderSVGResourceById() that
in return renders the RenderSVGResource::cast<>() template and all
the static s_resourceType member variables in the hierarchy removable.

* WebCore.order:
* rendering/svg/RenderSVGResource.h:
(WebCore::RenderSVGResource::cast): Deleted.
* rendering/svg/RenderSVGResourceClipper.h:
* rendering/svg/RenderSVGResourceContainer.h:
(WebCore::getRenderSVGResourceById):
* rendering/svg/RenderSVGResourceFilter.h:
(isType):
* rendering/svg/RenderSVGResourceLinearGradient.h:
* rendering/svg/RenderSVGResourceMarker.h:
* rendering/svg/RenderSVGResourceMasker.h:
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/RenderSVGResourceRadialGradient.h:
* rendering/svg/RenderSVGResourceSolidColor.h:

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

4 years agoStart cleaning up minimal UI from WKWebView
benjamin@webkit.org [Mon, 17 Nov 2014 07:03:06 +0000 (07:03 +0000)]
Start cleaning up minimal UI from WKWebView
https://bugs.webkit.org/show_bug.cgi?id=138725

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-16
Reviewed by Sam Weinig.

Start removing the old update path for minimumLayoutSize/maximumUnobscuredSize.

Unfortunately, I cannot remove everything yet because the clients still did not have
alternatives to [_overrideLayoutParametersWithMinimumLayoutSize:minimumLayoutSizeForMinimalUI:maximumUnobscuredSizeOverride]
and might change the minimal UI options.

This patch adds [_overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride] to move
in the right direction. Next we'll udpate the client code and get rid of all the useless code.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:minimumLayoutSizeForMinimalUI:maximumUnobscuredSizeOverride:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):
(-[WKWebView _minimumLayoutSizeOverrideForMinimalUI]): Deleted.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:

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

4 years agoImplement :valid and :invalid matching for the fieldset element
benjamin@webkit.org [Mon, 17 Nov 2014 07:01:21 +0000 (07:01 +0000)]
Implement :valid and :invalid matching for the fieldset element
https://bugs.webkit.org/show_bug.cgi?id=138769

Reviewed by Darin Adler.

Source/WebCore:

In the latest HTML spec, the pseudo classes :valid and :invalid match
a fieldset element based on its descendants:
    https://html.spec.whatwg.org/#selector-valid
    https://html.spec.whatwg.org/#selector-invalid

This patch adds that behavior.

There are two key problems to solve with these pseudo classes on fieldset:
-Efficient matching.
-Style invalidation when any of the descendant changes.

To implement the style invalidation, I have modified HTMLFormControlElement
to notify its ancestor when its state changes.

The first change is making the state fully internal to HTMLFormControlElement,
we do not want subclass to be able to change the behavior and forget to update
the ancestors.

To achieve that encapsulation, the interface was changed a bit:
-Neither willValidate() nor isValidFormControlElement() inherit from Element.
 Instead, willValidate() is the implementation of FormAssociatedElement's interface
 and it is final. The method isValidFormControlElement() becomes completely internal
 to HTMLFormControlElement.
-Since willValidate() should no longer be re-implemented by subclass, the elements
 that were depending on it have been migrated to recalcWillValidate() to set
 the initial state as needed.

With the validity state fully encapsulated in HTMLFormControlElement, all I need
is a way to communicate that information to HTMLFieldSetElement ancestors.
This is done in two cases:
-The validity state changes.
-The tree changes in a way that would make the input element not a descendant
 of a HTMLFieldSetElement.

The invalidation is simply done by walking up the ancestors and adding the current
element to a "validity dependency list" on each HTMLFieldSetElement.

Tests: fast/css/pseudo-invalid-fieldset-invalidation-optimization.html
       fast/css/pseudo-invalid-fieldset-style-sharing.html
       fast/css/pseudo-invalid-fieldset.html
       fast/css/pseudo-valid-fieldset-invalidation-optimization.html
       fast/css/pseudo-valid-fieldset-style-sharing.html
       fast/css/pseudo-valid-fieldset.html
       fast/selectors/invalid-fieldset-style-update-1.html
       fast/selectors/invalid-fieldset-style-update-2.html
       fast/selectors/invalid-fieldset-style-update-3.html
       fast/selectors/invalid-fieldset-style-update-4.html
       fast/selectors/invalid-fieldset-style-update-5.html
       fast/selectors/valid-fieldset-style-update-1.html
       fast/selectors/valid-fieldset-style-update-2.html
       fast/selectors/valid-fieldset-style-update-3.html
       fast/selectors/valid-fieldset-style-update-4.html
       fast/selectors/valid-fieldset-style-update-5.html

* css/SelectorCheckerTestFunctions.h:
(WebCore::isInRange):
(WebCore::isOutOfRange):
(WebCore::isInvalid):
(WebCore::isValid):
The hack "ContainsValidityStyleRules" is in the way of correct styling
of FieldSet and Form.
It is not the right way to get stylesheet properties anyway.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithControl):
Make sure style sharing does not incorrectly share style for fieldset elements.

* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
(WebCore::Document::containsValidityStyleRules): Deleted.
(WebCore::Document::setContainsValidityStyleRules): Deleted.
* dom/Element.h:
(WebCore::Element::matchesValidPseudoClass):
(WebCore::Element::matchesInvalidPseudoClass):
(WebCore::Element::willValidate): Deleted.
(WebCore::Element::isValidFormControlElement): Deleted.
* html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::customError):
* html/FormAssociatedElement.h:

* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::matchesValidPseudoClass):
(WebCore::HTMLFieldSetElement::matchesInvalidPseudoClass):
(WebCore::HTMLFieldSetElement::addInvalidDescendant):
(WebCore::HTMLFieldSetElement::removeInvalidDescendant):
Each HTMLFormControlElement that has constraint validation adds or removes
itself from its HTMLFieldSetElement ancestors.

It should be possible to just keep track of a count instead of a HashSet.
I decided to got with the HashSet to make the code more robust and easier
to debug. A few assertions ensure that the HashSet is actually used as a counter.

* html/HTMLFieldSetElement.h:
* html/HTMLFormControlElement.cpp:
(WebCore::addInvalidElementToAncestorFromInsertionPoint):
(WebCore::removeInvalidElementToAncestorFromInsertionPoint):

(WebCore::HTMLFormControlElement::insertedInto):
(WebCore::HTMLFormControlElement::removedFrom):
One tricky part of those two functions is that we cannot use
matchesValidPseudoClass() or matchesInvalidPseudoClass().

The reason is that HTMLFieldSetElement is a subclass of HTMLFormControlElement
and it has its own definition of what Valid and Invalid mean when matching selectors.

In HTMLFormControlElement, we must use the internal state,
willValidate() and isValidFormControlElement() must be used directly.

(WebCore::HTMLFormControlElement::matchesValidPseudoClass):
(WebCore::HTMLFormControlElement::matchesInvalidPseudoClass):
(WebCore::HTMLFormControlElement::willValidate):
(WebCore::addInvalidElementToAncestors):
(WebCore::removeInvalidElementFromAncestors):
(WebCore::HTMLFormControlElement::setNeedsWillValidateCheck):
(WebCore::HTMLFormControlElement::setNeedsValidityCheck):
(WebCore::HTMLFormControlElement::isValidFormControlElement): Deleted.
* html/HTMLFormControlElement.h:
(WebCore::HTMLFormControlElement::isValidFormControlElement):
* html/HTMLKeygenElement.h:
* html/HTMLObjectElement.h:
* html/HTMLOutputElement.h:

LayoutTests:

There are many ways to change the validation state of a submittable element.
I included a series of test trying to exercises as many combination
as possible.

* fast/css/pseudo-valid-unapplied-expected.txt:
* fast/css/pseudo-valid-unapplied.html:
This test was checking that :valid and :invalid are not applied
to fieldset. Such results are incorrect with the latest specification.

* fast/css/pseudo-invalid-fieldset-expected.html: Added.
* fast/css/pseudo-invalid-fieldset-invalidation-optimization-expected.txt: Added.
* fast/css/pseudo-invalid-fieldset-invalidation-optimization.html: Added.
* fast/css/pseudo-invalid-fieldset-style-sharing-expected.html: Added.
* fast/css/pseudo-invalid-fieldset-style-sharing.html: Added.
* fast/css/pseudo-invalid-fieldset.html: Added.
* fast/css/pseudo-valid-fieldset-expected.html: Added.
* fast/css/pseudo-valid-fieldset-invalidation-optimization-expected.txt: Added.
* fast/css/pseudo-valid-fieldset-invalidation-optimization.html: Added.
* fast/css/pseudo-valid-fieldset-style-sharing-expected.html: Added.
* fast/css/pseudo-valid-fieldset-style-sharing.html: Added.
* fast/css/pseudo-valid-fieldset.html: Added.
* fast/selectors/invalid-fieldset-style-update-1-expected.txt: Added.
* fast/selectors/invalid-fieldset-style-update-1.html: Added.
* fast/selectors/invalid-fieldset-style-update-2-expected.txt: Added.
* fast/selectors/invalid-fieldset-style-update-2.html: Added.
* fast/selectors/invalid-fieldset-style-update-3-expected.txt: Added.
* fast/selectors/invalid-fieldset-style-update-3.html: Added.
* fast/selectors/invalid-fieldset-style-update-4-expected.txt: Added.
* fast/selectors/invalid-fieldset-style-update-4.html: Added.
* fast/selectors/invalid-fieldset-style-update-5-expected.txt: Added.
* fast/selectors/invalid-fieldset-style-update-5.html: Added.
* fast/selectors/valid-fieldset-style-update-1-expected.txt: Added.
* fast/selectors/valid-fieldset-style-update-1.html: Added.
* fast/selectors/valid-fieldset-style-update-2-expected.txt: Added.
* fast/selectors/valid-fieldset-style-update-2.html: Added.
* fast/selectors/valid-fieldset-style-update-3-expected.txt: Added.
* fast/selectors/valid-fieldset-style-update-3.html: Added.
* fast/selectors/valid-fieldset-style-update-4-expected.txt: Added.
* fast/selectors/valid-fieldset-style-update-4.html: Added.
* fast/selectors/valid-fieldset-style-update-5-expected.txt: Added.
* fast/selectors/valid-fieldset-style-update-5.html: Added.

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

4 years ago[TexMap] Add typecasting support for GraphicsLayerTextureMapper
zandobersek@gmail.com [Mon, 17 Nov 2014 06:49:41 +0000 (06:49 +0000)]
[TexMap] Add typecasting support for GraphicsLayerTextureMapper
https://bugs.webkit.org/show_bug.cgi?id=138741

Reviewed by Martin Robinson.

Source/WebCore:

Add type traits for the GraphicsLayerTextureMapper class.
This enables using typecasting functions instead of
toGraphicsLayerTextureMapper().

Remove toTextureMapperLayer() casting function which actually
returned the TextureMapperLayer object that belonged to the
passed-in GraphicsLayerTextureMapper. Instead, the GraphicsLayer
object is now downcasted and the TextureMapperLayer is accessed
by calling the GraphicsLayerTextureMapper::layer() method.

* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::isGraphicsLayerTextureMapper):
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::toTextureMapperLayerVector):
(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
(WebCore::toTextureMapperLayer): Deleted.
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
(WebCore::toGraphicsLayerTextureMapper): Deleted.

Source/WebKit/win:

Switch to using downcast<GraphicsLayerTextureMapper>() and replace
uses of toTextureMapperLayer() with downcasting and calling
the GraphicsLayerTextureMapper::layer() method.

* WebCoreSupport/AcceleratedCompositingContext.cpp:
(AcceleratedCompositingContext::initialize):
(AcceleratedCompositingContext::startedAnimation):
(AcceleratedCompositingContext::compositeLayersToContext):

Source/WebKit2:

Replace uses of toTextureMapperLayer() with downcasting and
calling the GraphicsLayerTextureMapper::layer() method.

* WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::initialize):
(WebKit::LayerTreeHostGtk::layerFlushTimerFired):
(WebKit::LayerTreeHostGtk::compositeLayersToContext):

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

4 years agoMove WebCore/loader to std::unique_ptr
gyuyoung.kim@samsung.com [Mon, 17 Nov 2014 06:46:24 +0000 (06:46 +0000)]
Move WebCore/loader to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=138646

Reviewed by Chris Dumez.

Replace OwnPtr with std::unique_ptr<> and std::make_unique<>.
However this patch leaves ResourceRequest::adopt() because this need
to be handled by different patch.

No new tests, no behavior changes.

* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::preflightSuccess):
* loader/DocumentThreadableLoader.h:
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::notifyDone):
* loader/SubresourceLoader.h:
* loader/TextTrackLoader.h:
* loader/appcache/ApplicationCacheHost.h:
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::storeCopyOfCache):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestPreload):
(WebCore::CachedResourceLoader::clearPreloads):
(WebCore::CachedResourceLoader::printPreloadStats):
* loader/cache/CachedResourceLoader.h:
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::deleteAllPreparedStatements):
(WebCore::readySQLiteStatement):
* loader/icon/IconDatabase.h:
* loader/icon/IconRecord.h:

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

4 years agoCrash when setting 'order' CSS property to a calculated value
cdumez@apple.com [Mon, 17 Nov 2014 05:41:05 +0000 (05:41 +0000)]
Crash when setting 'order' CSS property to a calculated value
https://bugs.webkit.org/show_bug.cgi?id=138780

Reviewed by Darin Adler.

Source/WebCore:

CSS Calculated values were not handled by the CSS parser for 'order'
CSS property. As a result, using calculated values wouldn't work in
release builds and would hit an assertion in debug builds.

This patch updates the CSS parser to directly convert the
CSS Calculated value into a simple integer CSSPrimitiveValue for
'order' property. We could have marked CSS Calculated values as
valid in the CSS Parser instead but this would have brought issues:
- The calculated value needs to be adjusted to INT_MIN + 2 if it is less
  than that. This would force us to calculate the expression anyway.
- The StyleBuilder would need updating to properly handle CSS Calculated
  values for 'order'.

Test: fast/css/order-calculated-value.html

* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):

LayoutTests:

Add a layout test to validate that setting a calculated value to the
'order' CSS property does not crash and behaves as expected.

* fast/css/order-calculated-value-expected.txt: Added.
* fast/css/order-calculated-value.html: Added.

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

4 years agoAssertion hit when setting a very large value to 'border-width' / 'font-size' CSS...
cdumez@apple.com [Mon, 17 Nov 2014 05:38:05 +0000 (05:38 +0000)]
Assertion hit when setting a very large value to 'border-width' / 'font-size' CSS properties
https://bugs.webkit.org/show_bug.cgi?id=138770

Reviewed by Darin Adler.

Source/WebCore:

When setting a very large value to a CSS property, it is represented internally as
infinity. r166114 already tried to deal with this by adding an std::isinf() check
in CSSValuePool::createValue() and returning an identifier CSSPrimitiveValue with
CSSValueInvalid value in such case. The issue is that doing leads to the
StyleBuilder getting a CSSValueInvalid CSSPrimitive value as input, which is not
handled and leads to assertions.

This patch updates the CSSParser to detect cases where the double value is
infinity earlier (in CSSParser::validUnit() and parseSimpleLengthValue()), so
that we mark the value as invalid and actually drop it. As a result,
CSSPrimitiveValues with CSSValueInvalid value no longer make their way to the
StyleBuilder.

Test: fast/css/style-builder-infinite-value.html
      fast/css/infinite-floating-value.html

* css/CSSParser.cpp:
(WebCore::parseSimpleLengthValue):
(WebCore::CSSParser::validUnit):
* css/CSSValuePool.cpp:
(WebCore::CSSValuePool::createValue):

LayoutTests:

Add a layout test setting very large values to 'border-width' and
'font-size' CSS properties.

* fast/css/style-builder-infinite-value-expected.txt: Added.
* fast/css/style-builder-infinite-value.html: Added.

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

4 years agoAttribute text in HTMLAnchorElement should behave as per specification.
commit-queue@webkit.org [Mon, 17 Nov 2014 05:14:47 +0000 (05:14 +0000)]
Attribute text in HTMLAnchorElement should behave as per specification.
https://bugs.webkit.org/show_bug.cgi?id=138557

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-11-16
Reviewed by Darin Adler.

Source/WebCore:

attribute text in HTMLAnchorElement should not be readonly as per specification
http://www.w3.org/TR/html/text-level-semantics.html#dom-a-text. It should behave as textContent attribute.
Also This matches the behavior of Chrome 38 and FireFox.

Test: fast/dom/HTMLAnchorElement/anchor-text-attribute.html

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::text):
(WebCore::HTMLAnchorElement::setText):
* html/HTMLAnchorElement.h:
* html/HTMLAnchorElement.idl:

LayoutTests:

* fast/dom/HTMLAnchorElement/anchor-text-attribute-expected.txt: Added.
* fast/dom/HTMLAnchorElement/anchor-text-attribute.html: Added.

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

4 years agoMove 'vertical-align' CSS property to the new StyleBuilder
cdumez@apple.com [Mon, 17 Nov 2014 04:35:23 +0000 (04:35 +0000)]
Move 'vertical-align' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138764

Reviewed by Darin Adler.

Move 'vertical-align' CSS property from DeprecatedStyleBuilder to the
new StyleBuilder by using custom code.

No new tests, no behavior change.

* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyVerticalAlign::applyValue): Deleted.
(WebCore::ApplyPropertyVerticalAlign::createHandler): Deleted.
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderFunctions::applyValueVerticalAlign):

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

4 years agoTest expectation gardening.
ap@apple.com [Mon, 17 Nov 2014 03:27:48 +0000 (03:27 +0000)]
Test expectation gardening.

* platform/mac/TestExpectations:

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

4 years agoUse TextIndicator instead of the built in Lookup highlight
timothy_horton@apple.com [Mon, 17 Nov 2014 01:57:26 +0000 (01:57 +0000)]
Use TextIndicator instead of the built in Lookup highlight
https://bugs.webkit.org/show_bug.cgi?id=138775
<rdar://problem/18953982>

Follow-up to r176164.

* UIProcess/API/mac/WKView.mm:
(-[WKView dealloc]):
(-[WKView initWithFrame:context:configuration:webView:]):
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didPerformDictionaryLookup):
Include the softlinking macros directly in the files they're used
in, as they're supposed to be used.

* platform/spi/mac/LookupSPI.h:
(WebCore::canDisableLookupIndicator): Deleted.
Remove canDisableLookupIndicator.

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

4 years agoCrash when setting '-webkit-line-clamp' CSS property to a calculated value
cdumez@apple.com [Mon, 17 Nov 2014 01:18:32 +0000 (01:18 +0000)]
Crash when setting '-webkit-line-clamp' CSS property to a calculated value
https://bugs.webkit.org/show_bug.cgi?id=138777

Reviewed by Benjamin Poulain.

Source/WebCore:

CSS Calculated values were not handled when converting a CSSPrimitiveValue
to a LineClampValue. As a result, we would hit an ASSERT_NOT_REACHED()
assertion. To address this issue, this patch updates the code to use
primitiveType() / getValue<>() instead of m_primitiveUnitType /
m_value.num, as those getter function properly handle CSS Calculated
values.

Test: fast/css/webkit-line-clamp-calculated-value.html

* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator LineClampValue):

LayoutTests:

Add a layout test to check that assigning calculated values to the
'-webkit-line-clamp' CSS property does not crash and behaves as
expected.

* fast/css/webkit-line-clamp-calculated-value-expected.txt: Added.
* fast/css/webkit-line-clamp-calculated-value.html: Added.

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

4 years agoUse TextIndicator instead of the built in Lookup highlight
timothy_horton@apple.com [Sun, 16 Nov 2014 20:41:27 +0000 (20:41 +0000)]
Use TextIndicator instead of the built in Lookup highlight
https://bugs.webkit.org/show_bug.cgi?id=138775
<rdar://problem/18953982>

Reviewed by Anders Carlsson.

In order to make the yellow highlight for Lookup more accurately match the
painted content of the web page (in light of e.g. Web fonts, and interesting
text features that only WebKit implements and cannot round-trip through
NSAttributedString), use a TextIndicator instead of the built-in Lookup
highlight where possible.

* Configurations/BaseTarget.xcconfig:
Make it possible to include headers from private frameworks. This matches WebCore.

* Shared/DictionaryPopupInfo.cpp:
(WebKit::DictionaryPopupInfo::encode):
(WebKit::DictionaryPopupInfo::decode):
* Shared/DictionaryPopupInfo.h:
Include the attributed string inside the DictionaryPopupInfo, instead of
as a secondary argument to DidPerformDictionaryLookup.
Add a TextIndicator to DictionaryPopupInfo, which can be used to highlight
the text in the UI process.

* UIProcess/API/mac/WKView.mm:
(-[WKView dealloc]):
(-[WKView viewDidMoveToWindow]):
(-[WKView _dictionaryLookupPopoverWillClose:]):
(-[WKView _setTextIndicator:fadeOut:animate:animationCompletionHandler:]):
(-[WKView _setTextIndicator:fadeOut:animate:]):
(-[WKView initWithFrame:context:configuration:webView:]):
(+[WKView hideWordDefinitionWindow]):
* UIProcess/API/mac/WKViewInternal.h:
Adopt the Lookup SPI header.
If we have the requisite API, register the notification that Lookup sends
when the popover closes, and hook that up to hide the text indicator.
Add a version of _setTextIndicator: that takes an animation completion handler.

* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didPerformDictionaryLookup):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::didPerformDictionaryLookup):
Adjust to the new didPerformDictionaryLookup signature.

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
Remove a WKSI import.

* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::didPerformDictionaryLookup):
If we have the requisite API, disable Lookup's built-in highlight and
present a TextIndicator instead.
We currently have to run the animations serially (first bounce the TextIndicator,
then animate in the Lookup popover) because the act of adding the Lookup popover
blocks us from getting any animation events for the TextIndicator, and breaks
the bounce. We could also fix this by using a threaded animation for the TextIndicator,
but it's not clear that it's safe to do so.

(WebKit::PageClientImpl::dismissDictionaryLookupPanel):
When explicitly dismissing the Lookup panel, also hide the text indicator.

* UIProcess/mac/TextIndicatorWindow.h:
* UIProcess/mac/TextIndicatorWindow.mm:
(WebKit::TextIndicatorWindow::setTextIndicator):
Store the completion handler.

(WebKit::TextIndicatorWindow::bounceAnimationDidEnd):
Call the completion handler when the animation completes.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _createActionMenuItemForTag:]):
Disable the Lookup item if lookup is not available.

* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::showDefinitionForAttributedString):
Adjust to the new didPerformDictionaryLookup signature.
Since PDFPlugin can't trivially repaint the required part of the PDF,
we don't build a TextIndicator. This will result in PDFPlugin continuing
to use Lookup's built-in highlight.

* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupForRange):
Build a TextIndicator from the Lookup range and pass it along with
the DictionaryPopupInfo.

* WebCore.exp.in:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
Remove a WKSI import/export that we don't need anymore.

* platform/spi/mac/LookupSPI.h: Added.
(WebCore::canDisableLookupIndicator):
Add Lookup SPI header.
Add a 'canDisableLookupIndicator', which must be called in any translation
unit that wants to use either of the soft-linked constants related to
that functionality, before calling the get* function.

* WebCore.xcodeproj/project.pbxproj:
* editing/mac/DictionaryLookup.mm:
(WebCore::rangeForDictionaryLookupForSelection):
(WebCore::rangeForDictionaryLookupAtHitTestResult):
Adopt the Lookup SPI header.

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
Remove a WKSI import.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _lookupText:]):
(-[WebActionMenuController _createActionMenuItemForTag:]):
Make use of the new Lookup SPI header.
Disable the Lookup item if lookup is not available.

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

4 years agoAX: [ATK] REGRESSION(r166288): Accessible values are no longer accessible via AT...
jdiggs@igalia.com [Sun, 16 Nov 2014 17:13:18 +0000 (17:13 +0000)]
AX: [ATK] REGRESSION(r166288): Accessible values are no longer accessible via AT-SPI2
https://bugs.webkit.org/show_bug.cgi?id=138776

Reviewed by Chris Fleizach.

r166288 used #if...#else instead of #if...#endif, thus disabling the old
AtkValue support. Unfortunately AT-SPI2 doesn't yet have support for the
new AtkValue API. Thus r166288 broke access to value-holding elements for
AT-SPI2 assistive technologies. Replacing #else with #endif fixes things.

No new tests because catching this regression would require AT-SPI2.

* accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
(webkitAccessibleValueGetMinimumIncrement):
(webkitAccessibleValueInterfaceInit):

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

4 years agoAX: [ATK] Expose the blockquote element using ATK_ROLE_BLOCK_QUOTE
jdiggs@igalia.com [Sun, 16 Nov 2014 16:51:08 +0000 (16:51 +0000)]
AX: [ATK] Expose the blockquote element using ATK_ROLE_BLOCK_QUOTE
https://bugs.webkit.org/show_bug.cgi?id=138771

Reviewed by Chris Fleizach.

Source/WebCore:

Add BlockquoteRole and assigns it to blockquote elements. Make
corresponding changes to platform role mappings: ATK_ROLE_BLOCK_QUOTE
for GTK and EFL; AXGroup (which was being used already) for the Mac.

No new tests are required. Instead, updated the existing expectations
to reflect the new mapping.

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isBlockquote):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):

Tools:

Add mapping for ATK_ROLE_BLOCK_QUOTE in roleToString()

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

LayoutTests:

Updated the expectations for GTK and EFL as there is a new role
being used. The Mac expectations were not updated because the
new role on that platform continues to be to AXGroup.

* platform/efl/accessibility/roles-exposed-expected.txt: Updated
* platform/gtk/accessibility/roles-exposed-expected.txt: Updated

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

4 years agoCrash when setting 'alt' CSS property to inherit or initial
cdumez@apple.com [Sun, 16 Nov 2014 15:54:51 +0000 (15:54 +0000)]
Crash when setting 'alt' CSS property to inherit or initial
https://bugs.webkit.org/show_bug.cgi?id=138774
<rdar://problem/18995409>

Reviewed by Chris Fleizach.

Source/WebCore:

The StyleResolver was not handling 'inherit' or 'initial' values for
'alt' CSS property. As a result, the code was assuming the CSSValue
was a CSSPrimitiveValue (although it could be a CSSInitialValue or
a CSSInheritValue). In such case, the code would dereference a null
pointer because primitiveValue is initialized using:
CSSPrimitiveValue* primitiveValue = is<CSSPrimitiveValue>(*value)
    ? downcast<CSSPrimitiveValue>(value)
    : nullptr;

Test: fast/css/alt-inherit-initial.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):

LayoutTests:

Add a layout test to verify that setting the 'alt' CSS property to
inherit / initial is not crashing and working as intended.

* fast/css/alt-inherit-initial-expected.txt: Added.
* fast/css/alt-inherit-initial.html: Added.

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

4 years agoAX: [ATK] Lists with selectable children should have ATK_ROLE_LIST_BOX
jdiggs@igalia.com [Sun, 16 Nov 2014 07:34:26 +0000 (07:34 +0000)]
AX: [ATK] Lists with selectable children should have ATK_ROLE_LIST_BOX
https://bugs.webkit.org/show_bug.cgi?id=127060

Reviewed by Chris Fleizach.

Source/WebCore:

Corrected the mapping from ATK_ROLE_LIST to ATK_ROLE_LIST_BOX.

No new tests. Instead, updated the expectations of roles-exposed.html to
reflect the corrected mapping.

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):

LayoutTests:

Updated the expectations to reflect the corrected role.

* platform/efl/accessibility/roles-exposed-expected.txt: updated
* platform/gtk/accessibility/roles-exposed-expected.txt: updated

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

4 years agoAX: [ATK] Video and audio elements should be exposed using ATK's video and audio...
jdiggs@igalia.com [Sun, 16 Nov 2014 07:32:08 +0000 (07:32 +0000)]
AX: [ATK] Video and audio elements should be exposed using ATK's video and audio roles.
https://bugs.webkit.org/show_bug.cgi?id=138767

Reviewed by Chris Fleizach.

Source/WebCore:

Map AudioRole and VideoRole to ATK_ROLE_AUDIO and ATK_ROLE_VIDEO
respectively, falling back on the existing mapping to ATK_ROLE_EMBEDDED
in environments which have an older version of ATK.

No new tests are required. Instead, existing expectations were updated
to reflect the new mapping.

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):

Tools:

Add mappings for ATK_ROLE_AUDIO and ATK_ROLE_VIDEO to roleToString().

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

LayoutTests:

Updated expectations to reflect the new mapping to ATK_ROLE_AUDIO and
ATK_ROLE_VIDEO.

* platform/efl/accessibility/media-element-expected.txt: updated
* platform/efl/accessibility/media-emits-object-replacement-expected.txt: updated
* platform/gtk/accessibility/media-controls-panel-title-expected.txt: updated
* platform/gtk/accessibility/media-controls-panel-title.html: updated
* platform/gtk/accessibility/media-element-expected.txt: updated
* platform/gtk/accessibility/media-emits-object-replacement-expected.txt: updated

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

4 years agoAX: [ATK] Expose the footer element as ATK_ROLE_FOOTER
jdiggs@igalia.com [Sun, 16 Nov 2014 07:26:41 +0000 (07:26 +0000)]
AX: [ATK] Expose the footer element as ATK_ROLE_FOOTER
https://bugs.webkit.org/show_bug.cgi?id=138773

Reviewed by Chris Fleizach.

Source/WebCore:

Map FooterRole to ATK_ROLE_FOOTER.

No new tests. Unskipped a test that verifies this mapping.

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):

LayoutTests:

* accessibility/roles-exposed.html: Unskip the footer element test for GTK and EFL
* platform/efl/accessibility/roles-exposed-expected.txt: Updated expectations
* platform/gtk/accessibility/roles-exposed-expected.txt: Updated expectations

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

4 years agoRename WebKitCSSKeyframe(s)Rule into CSSKeyframe(s)Rule
dino@apple.com [Sat, 15 Nov 2014 23:02:43 +0000 (23:02 +0000)]
Rename WebKitCSSKeyframe(s)Rule into CSSKeyframe(s)Rule
https://bugs.webkit.org/show_bug.cgi?id=138763
<rdar://problem/18991569>

Reviewed by Simon Fraser.

Source/WebCore:

Globally rename WebKitCSSKeyframeRule and WebKitCSSKeyframesRule to
CSSKeyframeRule and CSSKeyframesRule respectively.

This *may* break some existing content, but is compatible with
what Blink and Firefox are doing. To minimize breakage, I kept an
alias for the old constant values on CSSRule: WEBKIT_KEYFRAMES_RULE
and WEBKIT_KEYFRAME_RULE.

Covered by existing tests.

* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/objc/DOMCSS.mm:
(kitClass):
* css/CSSGrammar.y.includes:
* css/CSSKeyframeRule.cpp: Renamed from Source/WebCore/css/WebKitCSSKeyframeRule.cpp.
(WebCore::StyleKeyframe::StyleKeyframe):
(WebCore::StyleKeyframe::~StyleKeyframe):
(WebCore::StyleKeyframe::mutableProperties):
(WebCore::StyleKeyframe::parseKeyString):
(WebCore::StyleKeyframe::cssText):
(WebCore::CSSKeyframeRule::CSSKeyframeRule):
(WebCore::CSSKeyframeRule::~CSSKeyframeRule):
(WebCore::CSSKeyframeRule::style):
(WebCore::CSSKeyframeRule::reattach):
* css/CSSKeyframeRule.h: Renamed from Source/WebCore/css/WebKitCSSKeyframeRule.h.
(WebCore::StyleKeyframe::create):
(WebCore::StyleKeyframe::keyText):
(WebCore::StyleKeyframe::setKeyText):
(WebCore::StyleKeyframe::getKeys):
(WebCore::StyleKeyframe::properties):
* css/CSSKeyframeRule.idl: Renamed from Source/WebCore/css/WebKitCSSKeyframeRule.idl.
* css/CSSKeyframesRule.cpp: Renamed from Source/WebCore/css/WebKitCSSKeyframesRule.cpp.
(WebCore::StyleRuleKeyframes::StyleRuleKeyframes):
(WebCore::StyleRuleKeyframes::~StyleRuleKeyframes):
(WebCore::StyleRuleKeyframes::parserAppendKeyframe):
(WebCore::StyleRuleKeyframes::wrapperAppendKeyframe):
(WebCore::StyleRuleKeyframes::wrapperRemoveKeyframe):
(WebCore::StyleRuleKeyframes::findKeyframeIndex):
(WebCore::CSSKeyframesRule::CSSKeyframesRule):
(WebCore::CSSKeyframesRule::~CSSKeyframesRule):
(WebCore::CSSKeyframesRule::setName):
(WebCore::CSSKeyframesRule::appendRule):
(WebCore::CSSKeyframesRule::insertRule):
(WebCore::CSSKeyframesRule::deleteRule):
(WebCore::CSSKeyframesRule::findRule):
(WebCore::CSSKeyframesRule::cssText):
(WebCore::CSSKeyframesRule::length):
(WebCore::CSSKeyframesRule::item):
(WebCore::CSSKeyframesRule::cssRules):
(WebCore::CSSKeyframesRule::reattach):
* css/CSSKeyframesRule.h: Renamed from Source/WebCore/css/WebKitCSSKeyframesRule.h.
(WebCore::StyleRuleKeyframes::create):
(WebCore::StyleRuleKeyframes::keyframes):
(WebCore::StyleRuleKeyframes::name):
(WebCore::StyleRuleKeyframes::setName):
(WebCore::StyleRuleKeyframes::copy):
* css/CSSKeyframesRule.idl: Renamed from Source/WebCore/css/WebKitCSSKeyframesRule.idl.
* css/CSSParser.cpp:
* css/CSSRule.h:
* css/CSSRule.idl:
* css/CSSStyleSheet.cpp:
* css/RuleSet.cpp:
* css/StyleResolver.cpp:
* css/StyleRule.cpp:
(WebCore::StyleRuleBase::createCSSOMWrapper):
* inspector/InspectorStyleSheet.cpp:
(WebCore::asCSSRuleList):

LayoutTests:

Some of the tests use the prefixed interface name. Replace that
with the unprefixed version.

The "keyframes-rule.html" test added a check to make sure the
old constant WEBKIT_KEYFRAMES_RULE is the same as the new
constant KEYFRAMES_RULE.

* animations/keyframes-rule-expected.txt:
* animations/keyframes-rule.html:
* fast/dom/resources/wrapper-identity-base.js:
* fast/dom/wrapper-classes.html:
* fast/dom/wrapper-identity-expected.txt:
* platform/efl/js/dom/global-constructors-attributes-expected.txt:
* platform/gtk/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-mavericks/js/dom/global-constructors-attributes-expected.txt:
* platform/mac-mountainlion/js/dom/global-constructors-attributes-expected.txt:
* platform/mac/fast/dom/objc-wrapper-identity-expected.txt:
* platform/mac/js/dom/global-constructors-attributes-expected.txt:
* platform/win/js/dom/global-constructors-attributes-expected.txt:

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

4 years agoREGRESSION (r176137): iOS build broke after moving DataDetectors scanning code to...
ddkilzer@apple.com [Sat, 15 Nov 2014 18:57:31 +0000 (18:57 +0000)]
REGRESSION (r176137): iOS build broke after moving DataDetectors scanning code to WebCore

This regressed with the following commit:

    Move DataDetectors scanning code to WebCore
    https://bugs.webkit.org/show_bug.cgi?id=138731
    <rdar://problem/18877535>

Source/WebCore:

This fixes the following build failures:

    In file included from WebCore/editing/mac/DataDetection.mm:29:
    WebCore/platform/spi/mac/DataDetectorsSPI.h:66:11: error: unknown type name 'NSRect'
    @property NSRect highlightFrame;
              ^
    WebCore/editing/mac/DataDetection.mm:42:28: error: use of undeclared identifier 'DataDetection'
    RetainPtr<DDActionContext> DataDetection::detectItemAroundHitTestResult(const HitTestResult& hitTestResult, FloatRect& detectedDataBoundingBox, RefPtr<Range>& detectedDataRange)
                               ^
    2 errors generated.

* WebCore.exp.in:
(DataDetection::detectItemAroundHitTestResult): Move symbol from
shared section to Mac-only section.
* editing/mac/DataDetection.mm: Add PLATFORM(MAC) check around
the entire implementation since it it unused on iOS.
* platform/spi/mac/DataDetectorsSPI.h: Expand PLATFORM(MAC)
check around DDActionContext class declarations.

Source/WebKit2:

* Shared/mac/ActionMenuHitTestResult.mm: Add PLATFORM(MAC) check
around the entire implementation since it it unused on iOS.

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

4 years agoRaise an exception if -[WKWebView initWithFrame:configuration:] is passed a nil confi...
andersca@apple.com [Sat, 15 Nov 2014 18:41:25 +0000 (18:41 +0000)]
Raise an exception if -[WKWebView initWithFrame:configuration:] is passed a nil configuration
https://bugs.webkit.org/show_bug.cgi?id=138757

Reviewed by Simon Fraser.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView initWithFrame:configuration:]):

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

4 years agoNetwork process crash when running http/tests/appcache/fallback.html
carlosgc@webkit.org [Sat, 15 Nov 2014 08:37:10 +0000 (08:37 +0000)]
Network process crash when running http/tests/appcache/fallback.html
https://bugs.webkit.org/show_bug.cgi?id=138740

Reviewed by Alexey Proskuryakov.

It happens because ResourceHandle::continueWillSendRequest() is
called with a null request. We could handle that case in the
ResourceHandle, but the thing is tha the behaviour is
not the same for async loads, or when loading in the web
process. In WebResourceLoader::willSendRequest(),
ResourceRequest::willSendRequest() is called, and cancels the load
if the client returns a null request. In this case, the
ResourceLoader is detached and WebResourceLoader::willSendRequest()
returns early without sending the ContinueWillSendRequest message
to the network process. However, for synchronous loads,
NetworkResourceLoader::continueWillSendRequest() is always called.

Fixes http/tests/appcache/fallback.html for GTK port when using
the network process.

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRequest): Do not
call ResourceHandle::continueWillSendRequest() if the client
request is null, since the load is going to be cancelled.

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

4 years agoImplement data detectors and mailto action menus for WebKit1
timothy_horton@apple.com [Sat, 15 Nov 2014 08:12:52 +0000 (08:12 +0000)]
Implement data detectors and mailto action menus for WebKit1
https://bugs.webkit.org/show_bug.cgi?id=138765
<rdar://problem/18877535>

Reviewed by Beth Dakin.

* WebView/WebActionMenuController.h:
* WebView/WebActionMenuController.mm:
(-[WebActionMenuController willOpenMenu:withEvent:]):
Tell DataDetectors that the menu is going to open.
Select the text (or not) based on the number of items in the menu, just like WebKit2.

(-[WebActionMenuController didCloseMenu:withEvent:]):
Tell DataDetectors that the menu closed.

(-[WebActionMenuController _defaultMenuItemsForLink]):
Move these checks out of _defaultMenuItemsForLink, because we expect this
to always return a complete link menu.

(-[WebActionMenuController _defaultMenuItemsForMailtoLink]):
Implement. More or less copied from WebKit2.

(-[WebActionMenuController _selectDataDetectedText]):
Select the stashed range.

(-[WebActionMenuController _defaultMenuItemsForDataDetectedText]):
Implement. More or less copied from WebKit2.
The yellow highlight isn't hooked up yet.
Give the client a chance to override via _webView:actionContextForHitTestResult:range:.

(-[WebActionMenuController _selectLookupText]):
Remove an unnecessary return.

(-[WebActionMenuController _defaultMenuItems]):
Call into the two new menu types.

* WebView/WebUIDelegatePrivate.h:

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForMailtoLink]):

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

4 years agoCompute the selector specificity as we match simple selectors
benjamin@webkit.org [Sat, 15 Nov 2014 02:32:37 +0000 (02:32 +0000)]
Compute the selector specificity as we match simple selectors
https://bugs.webkit.org/show_bug.cgi?id=138718

Reviewed by Andreas Kling.

This is an other tiny step toward dynamic specificity. Instead of computing
the entire specificity at the end, compute it dynamically as we are matching
each individual simple selector.

* css/CSSSelector.cpp:
(WebCore::CSSSelector::specificity):
(WebCore::CSSSelector::simpleSelectorSpecificity):
(WebCore::CSSSelector::addSpecificities):
(WebCore::CSSSelector::specificityForPage):
(WebCore::CSSSelector::specificityForOneSelector): Deleted.
* css/CSSSelector.h:
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::match):
(WebCore::SelectorChecker::matchRecursively):
(WebCore::SelectorChecker::checkOne):
(WebCore::SelectorChecker::matchSelectorList):
* css/SelectorChecker.h:

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

4 years agoSTRH can store values with the wrong offset
benjamin@webkit.org [Sat, 15 Nov 2014 02:31:28 +0000 (02:31 +0000)]
STRH can store values with the wrong offset
https://bugs.webkit.org/show_bug.cgi?id=138723

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-14
Reviewed by Michael Saboff.

This is the counterpart of r176083 for the str instruction.

I believe this code is currently unreachable because there is only one client of strh()
in the MacroAssembler and it always setup the scale explicitely.

* assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::strh):

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

4 years agoRemove pre-[DDActionContext contextForView:...] fallback path
timothy_horton@apple.com [Sat, 15 Nov 2014 01:58:52 +0000 (01:58 +0000)]
Remove pre-[DDActionContext contextForView:...] fallback path
https://bugs.webkit.org/show_bug.cgi?id=138735
<rdar://problem/18982046>

Reviewed by Simon Fraser.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController willOpenMenu:withEvent:]):
(-[WKActionMenuController didCloseMenu:withEvent:]):
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
(hasDataDetectorsCompletionAPI): Deleted.
Remove the now-unnecessary fallback path.

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

4 years ago[mac] Only images that are actually purgeable should be advertised as such.
akling@apple.com [Sat, 15 Nov 2014 00:36:00 +0000 (00:36 +0000)]
[mac] Only images that are actually purgeable should be advertised as such.
<https://webkit.org/b/138759>
<rdar://problem/13205438>

Reviewed by Tim Horton.

Instead of saying that all images on >=Yosemite are purgeable, have BitmapImage
forward the question to CGImage for the correct answer.

The memory may be marked non-volatile by frameworks underneath WebKit at any
given time, but that's not something we need to worry about.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::decodedDataIsPurgeable):
* platform/graphics/BitmapImage.h:
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::decodedDataIsPurgeable):
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::createFrameAtIndex):
* platform/spi/cg/CoreGraphicsSPI.h:

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

4 years agoFrequent crashes under actionContextForResultAtPoint
timothy_horton@apple.com [Sat, 15 Nov 2014 00:31:51 +0000 (00:31 +0000)]
Frequent crashes under actionContextForResultAtPoint
https://bugs.webkit.org/show_bug.cgi?id=138761
<rdar://problem/18990684>

Reviewed by Dean Jackson.

* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
(PageOverlayClientImpl::actionContextForResultAtPoint):
Initialize apiRange.

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

4 years agoRemove computeTextPaintStyle's RenderText dependency.
zalan@apple.com [Sat, 15 Nov 2014 00:26:56 +0000 (00:26 +0000)]
Remove computeTextPaintStyle's RenderText dependency.
https://bugs.webkit.org/show_bug.cgi?id=138754

Reviewed by Simon Fraser.

So that we can compute text paint style across renderers in simple line layout.

No change in functionality.

* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
* rendering/TextPaintStyle.cpp:
(WebCore::computeTextPaintStyle):
* rendering/TextPaintStyle.h:

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

4 years agoGet rid of WebFontCache
mmaxfield@apple.com [Sat, 15 Nov 2014 00:02:57 +0000 (00:02 +0000)]
Get rid of WebFontCache
https://bugs.webkit.org/show_bug.cgi?id=134752

Reviewed by Dave Hyatt.

Source/WebCore:

No new tests because there is no behavior change.

* Configurations/WebCore.xcconfig:
* PlatformMac.cmake:
* WebCore.exp.in:
* WebCore.order:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::acceptableChoice):
(WebCore::betterChoice):
(WebCore::toTraitsMask):
(WebCore::desiredFamilyToAvailableFamilyDictionary):
(WebCore::rememberDesiredFamilyToAvailableFamilyMapping):
(WebCore::fontWithFamily):
(WebCore::invalidateFontCache):
(WebCore::FontCache::getTraitsInFamily):
(WebCore::FontCache::createFontPlatformData):
* platform/mac/WebFontCache.h: Removed.
* platform/mac/WebFontCache.mm: Removed.

Source/WebKit/mac:

* WebView/WebHTMLView.mm:

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

4 years agoUpdate some artwork for the legacy WebKit action menu
timothy_horton@apple.com [Fri, 14 Nov 2014 23:50:35 +0000 (23:50 +0000)]
Update some artwork for the legacy WebKit action menu
https://bugs.webkit.org/show_bug.cgi?id=138758
<rdar://problem/18989840>

* WebView/WebActionMenuController.mm:
(webKitBundleImageNamed): Deleted.
Fix the build.

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

4 years agoImport w3c tests for canvas
commit-queue@webkit.org [Fri, 14 Nov 2014 23:45:41 +0000 (23:45 +0000)]
Import w3c tests for canvas
https://bugs.webkit.org/show_bug.cgi?id=138324.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-11-14
Reviewed by Dean Jackson.

804 tests are ported from w3c canvas test suite. There are 39 tests failed on WebKit
and there are 45 tests need to be changed such that they can be automatically verified.

* canvas: Added.
* canvas/2d.canvas.readonly-expected.txt: Added.
* canvas/2d.canvas.readonly.html: Added.
* canvas/2d.canvas.reference-expected.txt: Added.
* canvas/2d.canvas.reference.html: Added.
* canvas/2d.clearRect.basic-expected.txt: Added.
* canvas/2d.clearRect.basic.html: Added.
* canvas/2d.clearRect.clip-expected.txt: Added.
* canvas/2d.clearRect.clip.html: Added.
* canvas/2d.clearRect.globalalpha-expected.txt: Added.
* canvas/2d.clearRect.globalalpha.html: Added.
* canvas/2d.clearRect.globalcomposite-expected.txt: Added.
* canvas/2d.clearRect.globalcomposite.html: Added.
* canvas/2d.clearRect.negative-expected.txt: Added.
* canvas/2d.clearRect.negative.html: Added.
* canvas/2d.clearRect.nonfinite-expected.txt: Added.
* canvas/2d.clearRect.nonfinite.html: Added.
* canvas/2d.clearRect.path-expected.txt: Added.
* canvas/2d.clearRect.path.html: Added.
* canvas/2d.clearRect.shadow-expected.txt: Added.
* canvas/2d.clearRect.shadow.html: Added.
* canvas/2d.clearRect.transform-expected.txt: Added.
* canvas/2d.clearRect.transform.html: Added.
* canvas/2d.clearRect.zero-expected.txt: Added.
* canvas/2d.clearRect.zero.html: Added.
* canvas/2d.composite.canvas.copy-expected.txt: Added.
* canvas/2d.composite.canvas.copy.html: Added.
* canvas/2d.composite.canvas.destination-atop-expected.txt: Added.
* canvas/2d.composite.canvas.destination-atop.html: Added.
* canvas/2d.composite.canvas.destination-in-expected.txt: Added.
* canvas/2d.composite.canvas.destination-in.html: Added.
* canvas/2d.composite.canvas.destination-out-expected.txt: Added.
* canvas/2d.composite.canvas.destination-out.html: Added.
* canvas/2d.composite.canvas.destination-over-expected.txt: Added.
* canvas/2d.composite.canvas.destination-over.html: Added.
* canvas/2d.composite.canvas.lighter-expected.txt: Added.
* canvas/2d.composite.canvas.lighter.html: Added.
* canvas/2d.composite.canvas.source-atop-expected.txt: Added.
* canvas/2d.composite.canvas.source-atop.html: Added.
* canvas/2d.composite.canvas.source-in-expected.txt: Added.
* canvas/2d.composite.canvas.source-in.html: Added.
* canvas/2d.composite.canvas.source-out-expected.txt: Added.
* canvas/2d.composite.canvas.source-out.html: Added.
* canvas/2d.composite.canvas.source-over-expected.txt: Added.
* canvas/2d.composite.canvas.source-over.html: Added.
* canvas/2d.composite.canvas.xor-expected.txt: Added.
* canvas/2d.composite.canvas.xor.html: Added.
* canvas/2d.composite.clip.copy-expected.txt: Added.
* canvas/2d.composite.clip.copy.html: Added.
* canvas/2d.composite.clip.destination-atop-expected.txt: Added.
* canvas/2d.composite.clip.destination-atop.html: Added.
* canvas/2d.composite.clip.destination-in-expected.txt: Added.
* canvas/2d.composite.clip.destination-in.html: Added.
* canvas/2d.composite.clip.destination-out-expected.txt: Added.
* canvas/2d.composite.clip.destination-out.html: Added.
* canvas/2d.composite.clip.destination-over-expected.txt: Added.
* canvas/2d.composite.clip.destination-over.html: Added.
* canvas/2d.composite.clip.lighter-expected.txt: Added.
* canvas/2d.composite.clip.lighter.html: Added.
* canvas/2d.composite.clip.source-atop-expected.txt: Added.
* canvas/2d.composite.clip.source-atop.html: Added.
* canvas/2d.composite.clip.source-in-expected.txt: Added.
* canvas/2d.composite.clip.source-in.html: Added.
* canvas/2d.composite.clip.source-out-expected.txt: Added.
* canvas/2d.composite.clip.source-out.html: Added.
* canvas/2d.composite.clip.source-over-expected.txt: Added.
* canvas/2d.composite.clip.source-over.html: Added.
* canvas/2d.composite.clip.xor-expected.txt: Added.
* canvas/2d.composite.clip.xor.html: Added.
* canvas/2d.composite.globalAlpha.canvas-expected.txt: Added.
* canvas/2d.composite.globalAlpha.canvas.html: Added.
* canvas/2d.composite.globalAlpha.canvaspattern-expected.txt: Added.
* canvas/2d.composite.globalAlpha.canvaspattern.html: Added.
* canvas/2d.composite.globalAlpha.default-expected.txt: Added.
* canvas/2d.composite.globalAlpha.default.html: Added.
* canvas/2d.composite.globalAlpha.fill-expected.txt: Added.
* canvas/2d.composite.globalAlpha.fill.html: Added.
* canvas/2d.composite.globalAlpha.image-expected.txt: Added.
* canvas/2d.composite.globalAlpha.image.html: Added.
* canvas/2d.composite.globalAlpha.imagepattern-expected.txt: Added.
* canvas/2d.composite.globalAlpha.imagepattern.html: Added.
* canvas/2d.composite.globalAlpha.invalid-expected.txt: Added.
* canvas/2d.composite.globalAlpha.invalid.html: Added.
* canvas/2d.composite.globalAlpha.range-expected.txt: Added.
* canvas/2d.composite.globalAlpha.range.html: Added.
* canvas/2d.composite.image.copy-expected.txt: Added.
* canvas/2d.composite.image.copy.html: Added.
* canvas/2d.composite.image.destination-atop-expected.txt: Added.
* canvas/2d.composite.image.destination-atop.html: Added.
* canvas/2d.composite.image.destination-in-expected.txt: Added.
* canvas/2d.composite.image.destination-in.html: Added.
* canvas/2d.composite.image.destination-out-expected.txt: Added.
* canvas/2d.composite.image.destination-out.html: Added.
* canvas/2d.composite.image.destination-over-expected.txt: Added.
* canvas/2d.composite.image.destination-over.html: Added.
* canvas/2d.composite.image.lighter-expected.txt: Added.
* canvas/2d.composite.image.lighter.html: Added.
* canvas/2d.composite.image.source-atop-expected.txt: Added.
* canvas/2d.composite.image.source-atop.html: Added.
* canvas/2d.composite.image.source-in-expected.txt: Added.
* canvas/2d.composite.image.source-in.html: Added.
* canvas/2d.composite.image.source-out-expected.txt: Added.
* canvas/2d.composite.image.source-out.html: Added.
* canvas/2d.composite.image.source-over-expected.txt: Added.
* canvas/2d.composite.image.source-over.html: Added.
* canvas/2d.composite.image.xor-expected.txt: Added.
* canvas/2d.composite.image.xor.html: Added.
* canvas/2d.composite.operation.casesensitive-expected.txt: Added.
* canvas/2d.composite.operation.casesensitive.html: Added.
* canvas/2d.composite.operation.clear-expected.txt: Added.
* canvas/2d.composite.operation.clear.html: Added.
* canvas/2d.composite.operation.darker-expected.txt: Added.
* canvas/2d.composite.operation.darker.html: Added.
* canvas/2d.composite.operation.default-expected.txt: Added.
* canvas/2d.composite.operation.default.html: Added.
* canvas/2d.composite.operation.get-expected.txt: Added.
* canvas/2d.composite.operation.get.html: Added.
* canvas/2d.composite.operation.highlight-expected.txt: Added.
* canvas/2d.composite.operation.highlight.html: Added.
* canvas/2d.composite.operation.over-expected.txt: Added.
* canvas/2d.composite.operation.over.html: Added.
* canvas/2d.composite.operation.unrecognised-expected.txt: Added.
* canvas/2d.composite.operation.unrecognised.html: Added.
* canvas/2d.composite.solid.copy-expected.txt: Added.
* canvas/2d.composite.solid.copy.html: Added.
* canvas/2d.composite.solid.destination-atop-expected.txt: Added.
* canvas/2d.composite.solid.destination-atop.html: Added.
* canvas/2d.composite.solid.destination-in-expected.txt: Added.
* canvas/2d.composite.solid.destination-in.html: Added.
* canvas/2d.composite.solid.destination-out-expected.txt: Added.
* canvas/2d.composite.solid.destination-out.html: Added.
* canvas/2d.composite.solid.destination-over-expected.txt: Added.
* canvas/2d.composite.solid.destination-over.html: Added.
* canvas/2d.composite.solid.lighter-expected.txt: Added.
* canvas/2d.composite.solid.lighter.html: Added.
* canvas/2d.composite.solid.source-atop-expected.txt: Added.
* canvas/2d.composite.solid.source-atop.html: Added.
* canvas/2d.composite.solid.source-in-expected.txt: Added.
* canvas/2d.composite.solid.source-in.html: Added.
* canvas/2d.composite.solid.source-out-expected.txt: Added.
* canvas/2d.composite.solid.source-out.html: Added.
* canvas/2d.composite.solid.source-over-expected.txt: Added.
* canvas/2d.composite.solid.source-over.html: Added.
* canvas/2d.composite.solid.xor-expected.txt: Added.
* canvas/2d.composite.solid.xor.html: Added.
* canvas/2d.composite.transparent.copy-expected.txt: Added.
* canvas/2d.composite.transparent.copy.html: Added.
* canvas/2d.composite.transparent.destination-atop-expected.txt: Added.
* canvas/2d.composite.transparent.destination-atop.html: Added.
* canvas/2d.composite.transparent.destination-in-expected.txt: Added.
* canvas/2d.composite.transparent.destination-in.html: Added.
* canvas/2d.composite.transparent.destination-out-expected.txt: Added.
* canvas/2d.composite.transparent.destination-out.html: Added.
* canvas/2d.composite.transparent.destination-over-expected.txt: Added.
* canvas/2d.composite.transparent.destination-over.html: Added.
* canvas/2d.composite.transparent.lighter-expected.txt: Added.
* canvas/2d.composite.transparent.lighter.html: Added.
* canvas/2d.composite.transparent.source-atop-expected.txt: Added.
* canvas/2d.composite.transparent.source-atop.html: Added.
* canvas/2d.composite.transparent.source-in-expected.txt: Added.
* canvas/2d.composite.transparent.source-in.html: Added.
* canvas/2d.composite.transparent.source-out-expected.txt: Added.
* canvas/2d.composite.transparent.source-out.html: Added.
* canvas/2d.composite.transparent.source-over-expected.txt: Added.
* canvas/2d.composite.transparent.source-over.html: Added.
* canvas/2d.composite.transparent.xor-expected.txt: Added.
* canvas/2d.composite.transparent.xor.html: Added.
* canvas/2d.composite.uncovered.fill.copy-expected.txt: Added.
* canvas/2d.composite.uncovered.fill.copy.html: Added.
* canvas/2d.composite.uncovered.fill.destination-atop-expected.txt: Added.
* canvas/2d.composite.uncovered.fill.destination-atop.html: Added.
* canvas/2d.composite.uncovered.fill.destination-in-expected.txt: Added.
* canvas/2d.composite.uncovered.fill.destination-in.html: Added.
* canvas/2d.composite.uncovered.fill.source-in-expected.txt: Added.
* canvas/2d.composite.uncovered.fill.source-in.html: Added.
* canvas/2d.composite.uncovered.fill.source-out-expected.txt: Added.
* canvas/2d.composite.uncovered.fill.source-out.html: Added.
* canvas/2d.composite.uncovered.image.copy-expected.txt: Added.
* canvas/2d.composite.uncovered.image.copy.html: Added.
* canvas/2d.composite.uncovered.image.destination-atop-expected.txt: Added.
* canvas/2d.composite.uncovered.image.destination-atop.html: Added.
* canvas/2d.composite.uncovered.image.destination-in-expected.txt: Added.
* canvas/2d.composite.uncovered.image.destination-in.html: Added.
* canvas/2d.composite.uncovered.image.source-in-expected.txt: Added.
* canvas/2d.composite.uncovered.image.source-in.html: Added.
* canvas/2d.composite.uncovered.image.source-out-expected.txt: Added.
* canvas/2d.composite.uncovered.image.source-out.html: Added.
* canvas/2d.composite.uncovered.nocontext.copy-expected.txt: Added.
* canvas/2d.composite.uncovered.nocontext.copy.html: Added.
* canvas/2d.composite.uncovered.nocontext.destination-atop-expected.txt: Added.
* canvas/2d.composite.uncovered.nocontext.destination-atop.html: Added.
* canvas/2d.composite.uncovered.nocontext.destination-in-expected.txt: Added.
* canvas/2d.composite.uncovered.nocontext.destination-in.html: Added.
* canvas/2d.composite.uncovered.nocontext.source-in-expected.txt: Added.
* canvas/2d.composite.uncovered.nocontext.source-in.html: Added.
* canvas/2d.composite.uncovered.nocontext.source-out-expected.txt: Added.
* canvas/2d.composite.uncovered.nocontext.source-out.html: Added.
* canvas/2d.composite.uncovered.pattern.copy-expected.txt: Added.
* canvas/2d.composite.uncovered.pattern.copy.html: Added.
* canvas/2d.composite.uncovered.pattern.destination-atop-expected.txt: Added.
* canvas/2d.composite.uncovered.pattern.destination-atop.html: Added.
* canvas/2d.composite.uncovered.pattern.destination-in-expected.txt: Added.
* canvas/2d.composite.uncovered.pattern.destination-in.html: Added.
* canvas/2d.composite.uncovered.pattern.source-in-expected.txt: Added.
* canvas/2d.composite.uncovered.pattern.source-in.html: Added.
* canvas/2d.composite.uncovered.pattern.source-out-expected.txt: Added.
* canvas/2d.composite.uncovered.pattern.source-out.html: Added.
* canvas/2d.coordinatespace.html: Added.
* canvas/2d.drawImage.3arg-expected.txt: Added.
* canvas/2d.drawImage.3arg.html: Added.
* canvas/2d.drawImage.5arg-expected.txt: Added.
* canvas/2d.drawImage.5arg.html: Added.
* canvas/2d.drawImage.9arg.basic-expected.txt: Added.
* canvas/2d.drawImage.9arg.basic.html: Added.
* canvas/2d.drawImage.9arg.destpos-expected.txt: Added.
* canvas/2d.drawImage.9arg.destpos.html: Added.
* canvas/2d.drawImage.9arg.destsize-expected.txt: Added.
* canvas/2d.drawImage.9arg.destsize.html: Added.
* canvas/2d.drawImage.9arg.sourcepos-expected.txt: Added.
* canvas/2d.drawImage.9arg.sourcepos.html: Added.
* canvas/2d.drawImage.9arg.sourcesize-expected.txt: Added.
* canvas/2d.drawImage.9arg.sourcesize.html: Added.
* canvas/2d.drawImage.alpha-expected.txt: Added.
* canvas/2d.drawImage.alpha.html: Added.
* canvas/2d.drawImage.animated.apng.html: Added.
* canvas/2d.drawImage.animated.gif.html: Added.
* canvas/2d.drawImage.animated.poster-expected.txt: Added.
* canvas/2d.drawImage.animated.poster.html: Added.
* canvas/2d.drawImage.broken-expected.txt: Added.
* canvas/2d.drawImage.broken.html: Added.
* canvas/2d.drawImage.canvas-expected.txt: Added.
* canvas/2d.drawImage.canvas.html: Added.
* canvas/2d.drawImage.clip-expected.txt: Added.
* canvas/2d.drawImage.clip.html: Added.
* canvas/2d.drawImage.composite-expected.txt: Added.
* canvas/2d.drawImage.composite.html: Added.
* canvas/2d.drawImage.floatsource-expected.txt: Added.
* canvas/2d.drawImage.floatsource.html: Added.
* canvas/2d.drawImage.image.incomplete.empty-expected.txt: Added.
* canvas/2d.drawImage.image.incomplete.empty.html: Added.
* canvas/2d.drawImage.image.incomplete.omitted-expected.txt: Added.
* canvas/2d.drawImage.image.incomplete.omitted.html: Added.
* canvas/2d.drawImage.incomplete-expected.txt: Added.
* canvas/2d.drawImage.incomplete.html: Added.
* canvas/2d.drawImage.negativedest-expected.txt: Added.
* canvas/2d.drawImage.negativedest.html: Added.
* canvas/2d.drawImage.negativedir-expected.txt: Added.
* canvas/2d.drawImage.negativedir.html: Added.
* canvas/2d.drawImage.negativesource-expected.txt: Added.
* canvas/2d.drawImage.negativesource.html: Added.
* canvas/2d.drawImage.nonfinite-expected.txt: Added.
* canvas/2d.drawImage.nonfinite.html: Added.
* canvas/2d.drawImage.nowrap-expected.txt: Added.
* canvas/2d.drawImage.nowrap.html: Added.
* canvas/2d.drawImage.null-expected.txt: Added.
* canvas/2d.drawImage.null.html: Added.
* canvas/2d.drawImage.path-expected.txt: Added.
* canvas/2d.drawImage.path.html: Added.
* canvas/2d.drawImage.self.1-expected.txt: Added.
* canvas/2d.drawImage.self.1.html: Added.
* canvas/2d.drawImage.self.2-expected.txt: Added.
* canvas/2d.drawImage.self.2.html: Added.
* canvas/2d.drawImage.transform-expected.txt: Added.
* canvas/2d.drawImage.transform.html: Added.
* canvas/2d.drawImage.wrongtype-expected.txt: Added.
* canvas/2d.drawImage.wrongtype.html: Added.
* canvas/2d.drawImage.zerocanvas-expected.txt: Added.
* canvas/2d.drawImage.zerocanvas.html: Added.
* canvas/2d.drawImage.zerosource-expected.txt: Added.
* canvas/2d.drawImage.zerosource.html: Added.
* canvas/2d.fillRect.basic-expected.txt: Added.
* canvas/2d.fillRect.basic.html: Added.
* canvas/2d.fillRect.clip-expected.txt: Added.
* canvas/2d.fillRect.clip.html: Added.
* canvas/2d.fillRect.negative-expected.txt: Added.
* canvas/2d.fillRect.negative.html: Added.
* canvas/2d.fillRect.nonfinite-expected.txt: Added.
* canvas/2d.fillRect.nonfinite.html: Added.
* canvas/2d.fillRect.path-expected.txt: Added.
* canvas/2d.fillRect.path.html: Added.
* canvas/2d.fillRect.shadow-expected.txt: Added.
* canvas/2d.fillRect.shadow.html: Added.
* canvas/2d.fillRect.transform-expected.txt: Added.
* canvas/2d.fillRect.transform.html: Added.
* canvas/2d.fillRect.zero-expected.txt: Added.
* canvas/2d.fillRect.zero.html: Added.
* canvas/2d.fillStyle.default-expected.txt: Added.
* canvas/2d.fillStyle.default.html: Added.
* canvas/2d.fillStyle.get.semitransparent-expected.txt: Added.
* canvas/2d.fillStyle.get.semitransparent.html: Added.
* canvas/2d.fillStyle.get.solid-expected.txt: Added.
* canvas/2d.fillStyle.get.solid.html: Added.
* canvas/2d.fillStyle.get.transparent-expected.txt: Added.
* canvas/2d.fillStyle.get.transparent.html: Added.
* canvas/2d.fillStyle.invalidstring-expected.txt: Added.
* canvas/2d.fillStyle.invalidstring.html: Added.
* canvas/2d.fillStyle.invalidtype-expected.txt: Added.
* canvas/2d.fillStyle.invalidtype.html: Added.
* canvas/2d.fillStyle.parse.current.basic-expected.txt: Added.
* canvas/2d.fillStyle.parse.current.basic.html: Added.
* canvas/2d.fillStyle.parse.current.changed-expected.txt: Added.
* canvas/2d.fillStyle.parse.current.changed.html: Added.
* canvas/2d.fillStyle.parse.current.removed-expected.txt: Added.
* canvas/2d.fillStyle.parse.current.removed.html: Added.
* canvas/2d.fillStyle.parse.hex3-expected.txt: Added.
* canvas/2d.fillStyle.parse.hex3.html: Added.
* canvas/2d.fillStyle.parse.hex6-expected.txt: Added.
* canvas/2d.fillStyle.parse.hex6.html: Added.
* canvas/2d.fillStyle.parse.hsl-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsl-1.html: Added.
* canvas/2d.fillStyle.parse.hsl-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsl-2.html: Added.
* canvas/2d.fillStyle.parse.hsl-3-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsl-3.html: Added.
* canvas/2d.fillStyle.parse.hsl-4-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsl-4.html: Added.
* canvas/2d.fillStyle.parse.hsl-5-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsl-5.html: Added.
* canvas/2d.fillStyle.parse.hsl-6-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsl-6.html: Added.
* canvas/2d.fillStyle.parse.hsl-clamp-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsl-clamp-1.html: Added.
* canvas/2d.fillStyle.parse.hsl-clamp-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsl-clamp-2.html: Added.
* canvas/2d.fillStyle.parse.hsl-clamp-3-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsl-clamp-3.html: Added.
* canvas/2d.fillStyle.parse.hsl-clamp-4-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsl-clamp-4.html: Added.
* canvas/2d.fillStyle.parse.hsla-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsla-1.html: Added.
* canvas/2d.fillStyle.parse.hsla-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsla-2.html: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-1.html: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-2.html: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-3-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-3.html: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-4-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-4.html: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-5-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-5.html: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-6-expected.txt: Added.
* canvas/2d.fillStyle.parse.hsla-clamp-6.html: Added.
* canvas/2d.fillStyle.parse.html4-expected.txt: Added.
* canvas/2d.fillStyle.parse.html4.html: Added.
* canvas/2d.fillStyle.parse.invalid.hex1-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hex1.html: Added.
* canvas/2d.fillStyle.parse.invalid.hex2-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hex2.html: Added.
* canvas/2d.fillStyle.parse.invalid.hex3-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hex3.html: Added.
* canvas/2d.fillStyle.parse.invalid.hex4-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hex4.html: Added.
* canvas/2d.fillStyle.parse.invalid.hex5-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hex5.html: Added.
* canvas/2d.fillStyle.parse.invalid.hex6-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hex6.html: Added.
* canvas/2d.fillStyle.parse.invalid.hex7-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hex7.html: Added.
* canvas/2d.fillStyle.parse.invalid.hex8-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hex8.html: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-1.html: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-2.html: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-3-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-3.html: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-4-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-4.html: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-5-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-5.html: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-6-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hsl-6.html: Added.
* canvas/2d.fillStyle.parse.invalid.hsla-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hsla-1.html: Added.
* canvas/2d.fillStyle.parse.invalid.hsla-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.hsla-2.html: Added.
* canvas/2d.fillStyle.parse.invalid.name-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.name-1.html: Added.
* canvas/2d.fillStyle.parse.invalid.name-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.name-2.html: Added.
* canvas/2d.fillStyle.parse.invalid.name-3-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.name-3.html: Added.
* canvas/2d.fillStyle.parse.invalid.name-4-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.name-4.html: Added.
* canvas/2d.fillStyle.parse.invalid.name-5-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.name-5.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-1.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-2.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-3-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-3.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-4-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-4.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-5-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-5.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-6-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-6.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-7-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgb-7.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-1.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-2.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-3-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-3.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-4-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-4.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-5-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-5.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-6-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-6.html: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-7-expected.txt: Added.
* canvas/2d.fillStyle.parse.invalid.rgba-7.html: Added.
* canvas/2d.fillStyle.parse.rgb-clamp-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgb-clamp-1.html: Added.
* canvas/2d.fillStyle.parse.rgb-clamp-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgb-clamp-2.html: Added.
* canvas/2d.fillStyle.parse.rgb-clamp-3-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgb-clamp-3.html: Added.
* canvas/2d.fillStyle.parse.rgb-clamp-4-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgb-clamp-4.html: Added.
* canvas/2d.fillStyle.parse.rgb-clamp-5-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgb-clamp-5.html: Added.
* canvas/2d.fillStyle.parse.rgb-eof-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgb-eof.html: Added.
* canvas/2d.fillStyle.parse.rgb-num-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgb-num.html: Added.
* canvas/2d.fillStyle.parse.rgb-percent-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgb-percent.html: Added.
* canvas/2d.fillStyle.parse.rgba-clamp-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgba-clamp-1.html: Added.
* canvas/2d.fillStyle.parse.rgba-clamp-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgba-clamp-2.html: Added.
* canvas/2d.fillStyle.parse.rgba-eof-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgba-eof.html: Added.
* canvas/2d.fillStyle.parse.rgba-num-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgba-num-1.html: Added.
* canvas/2d.fillStyle.parse.rgba-num-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgba-num-2.html: Added.
* canvas/2d.fillStyle.parse.rgba-percent-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgba-percent.html: Added.
* canvas/2d.fillStyle.parse.rgba-solid-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgba-solid-1.html: Added.
* canvas/2d.fillStyle.parse.rgba-solid-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgba-solid-2.html: Added.
* canvas/2d.fillStyle.parse.rgba-solid-3-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgba-solid-3.html: Added.
* canvas/2d.fillStyle.parse.rgba-solid-4-expected.txt: Added.
* canvas/2d.fillStyle.parse.rgba-solid-4.html: Added.
* canvas/2d.fillStyle.parse.svg-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.svg-1.html: Added.
* canvas/2d.fillStyle.parse.svg-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.svg-2.html: Added.
* canvas/2d.fillStyle.parse.system-expected.txt: Added.
* canvas/2d.fillStyle.parse.system.html: Added.
* canvas/2d.fillStyle.parse.transparent-1-expected.txt: Added.
* canvas/2d.fillStyle.parse.transparent-1.html: Added.
* canvas/2d.fillStyle.parse.transparent-2-expected.txt: Added.
* canvas/2d.fillStyle.parse.transparent-2.html: Added.
* canvas/2d.getcontext.exists-expected.txt: Added.
* canvas/2d.getcontext.exists.html: Added.
* canvas/2d.getcontext.extraargs-expected.txt: Added.
* canvas/2d.getcontext.extraargs.html: Added.
* canvas/2d.getcontext.shared-expected.txt: Added.
* canvas/2d.getcontext.shared.html: Added.
* canvas/2d.getcontext.unique-expected.txt: Added.
* canvas/2d.getcontext.unique.html: Added.
* canvas/2d.gradient.empty-expected.txt: Added.
* canvas/2d.gradient.empty.html: Added.
* canvas/2d.gradient.interpolate.alpha-expected.txt: Added.
* canvas/2d.gradient.interpolate.alpha.html: Added.
* canvas/2d.gradient.interpolate.colour-expected.txt: Added.
* canvas/2d.gradient.interpolate.colour.html: Added.
* canvas/2d.gradient.interpolate.colouralpha-expected.txt: Added.
* canvas/2d.gradient.interpolate.colouralpha.html: Added.
* canvas/2d.gradient.interpolate.multiple-expected.txt: Added.
* canvas/2d.gradient.interpolate.multiple.html: Added.
* canvas/2d.gradient.interpolate.outside-expected.txt: Added.
* canvas/2d.gradient.interpolate.outside.html: Added.
* canvas/2d.gradient.interpolate.overlap-expected.txt: Added.
* canvas/2d.gradient.interpolate.overlap.html: Added.
* canvas/2d.gradient.interpolate.overlap2-expected.txt: Added.
* canvas/2d.gradient.interpolate.overlap2.html: Added.
* canvas/2d.gradient.interpolate.solid-expected.txt: Added.
* canvas/2d.gradient.interpolate.solid.html: Added.
* canvas/2d.gradient.interpolate.vertical-expected.txt: Added.
* canvas/2d.gradient.interpolate.vertical.html: Added.
* canvas/2d.gradient.interpolate.zerosize-expected.txt: Added.
* canvas/2d.gradient.interpolate.zerosize.fill-expected.txt: Added.
* canvas/2d.gradient.interpolate.zerosize.fill.html: Added.
* canvas/2d.gradient.interpolate.zerosize.fillRect-expected.txt: Added.
* canvas/2d.gradient.interpolate.zerosize.fillRect.html: Added.
* canvas/2d.gradient.interpolate.zerosize.fillText-expected.txt: Added.
* canvas/2d.gradient.interpolate.zerosize.fillText.html: Added.
* canvas/2d.gradient.interpolate.zerosize.html: Added.
* canvas/2d.gradient.interpolate.zerosize.stroke-expected.txt: Added.
* canvas/2d.gradient.interpolate.zerosize.stroke.html: Added.
* canvas/2d.gradient.interpolate.zerosize.strokeRect-expected.txt: Added.
* canvas/2d.gradient.interpolate.zerosize.strokeRect.html: Added.
* canvas/2d.gradient.interpolate.zerosize.strokeText-expected.txt: Added.
* canvas/2d.gradient.interpolate.zerosize.strokeText.html: Added.
* canvas/2d.gradient.linear.nonfinite-expected.txt: Added.
* canvas/2d.gradient.linear.nonfinite.html: Added.
* canvas/2d.gradient.linear.transform.1-expected.txt: Added.
* canvas/2d.gradient.linear.transform.1.html: Added.
* canvas/2d.gradient.linear.transform.2-expected.txt: Added.
* canvas/2d.gradient.linear.transform.2.html: Added.
* canvas/2d.gradient.linear.transform.3-expected.txt: Added.
* canvas/2d.gradient.linear.transform.3.html: Added.
* canvas/2d.gradient.object.compare-expected.txt: Added.
* canvas/2d.gradient.object.compare.html: Added.
* canvas/2d.gradient.object.crosscanvas-expected.txt: Added.
* canvas/2d.gradient.object.crosscanvas.html: Added.
* canvas/2d.gradient.object.current-expected.txt: Added.
* canvas/2d.gradient.object.current.html: Added.
* canvas/2d.gradient.object.invalidcolour-expected.txt: Added.
* canvas/2d.gradient.object.invalidcolour.html: Added.
* canvas/2d.gradient.object.invalidoffset-expected.txt: Added.
* canvas/2d.gradient.object.invalidoffset.html: Added.
* canvas/2d.gradient.object.return-expected.txt: Added.
* canvas/2d.gradient.object.return.html: Added.
* canvas/2d.gradient.object.update-expected.txt: Added.
* canvas/2d.gradient.object.update.html: Added.
* canvas/2d.gradient.radial.cone.behind-expected.txt: Added.
* canvas/2d.gradient.radial.cone.behind.html: Added.
* canvas/2d.gradient.radial.cone.beside-expected.txt: Added.
* canvas/2d.gradient.radial.cone.beside.html: Added.
* canvas/2d.gradient.radial.cone.bottom-expected.txt: Added.
* canvas/2d.gradient.radial.cone.bottom.html: Added.
* canvas/2d.gradient.radial.cone.cylinder-expected.txt: Added.
* canvas/2d.gradient.radial.cone.cylinder.html: Added.
* canvas/2d.gradient.radial.cone.front-expected.txt: Added.
* canvas/2d.gradient.radial.cone.front.html: Added.
* canvas/2d.gradient.radial.cone.shape1-expected.txt: Added.
* canvas/2d.gradient.radial.cone.shape1.html: Added.
* canvas/2d.gradient.radial.cone.shape2-expected.txt: Added.
* canvas/2d.gradient.radial.cone.shape2.html: Added.
* canvas/2d.gradient.radial.cone.top-expected.txt: Added.
* canvas/2d.gradient.radial.cone.top.html: Added.
* canvas/2d.gradient.radial.equal-expected.txt: Added.
* canvas/2d.gradient.radial.equal.html: Added.
* canvas/2d.gradient.radial.inside1-expected.txt: Added.
* canvas/2d.gradient.radial.inside1.html: Added.
* canvas/2d.gradient.radial.inside2-expected.txt: Added.
* canvas/2d.gradient.radial.inside2.html: Added.
* canvas/2d.gradient.radial.inside3-expected.txt: Added.
* canvas/2d.gradient.radial.inside3.html: Added.
* canvas/2d.gradient.radial.negative-expected.txt: Added.
* canvas/2d.gradient.radial.negative.html: Added.
* canvas/2d.gradient.radial.nonfinite-expected.txt: Added.
* canvas/2d.gradient.radial.nonfinite.html: Added.
* canvas/2d.gradient.radial.outside1-expected.txt: Added.
* canvas/2d.gradient.radial.outside1.html: Added.
* canvas/2d.gradient.radial.outside2-expected.txt: Added.
* canvas/2d.gradient.radial.outside2.html: Added.
* canvas/2d.gradient.radial.outside3-expected.txt: Added.
* canvas/2d.gradient.radial.outside3.html: Added.
* canvas/2d.gradient.radial.touch1-expected.txt: Added.
* canvas/2d.gradient.radial.touch1.html: Added.
* canvas/2d.gradient.radial.touch2-expected.txt: Added.
* canvas/2d.gradient.radial.touch2.html: Added.
* canvas/2d.gradient.radial.touch3-expected.txt: Added.
* canvas/2d.gradient.radial.touch3.html: Added.
* canvas/2d.gradient.radial.transform.1-expected.txt: Added.
* canvas/2d.gradient.radial.transform.1.html: Added.
* canvas/2d.gradient.radial.transform.2-expected.txt: Added.
* canvas/2d.gradient.radial.transform.2.html: Added.
* canvas/2d.gradient.radial.transform.3-expected.txt: Added.
* canvas/2d.gradient.radial.transform.3.html: Added.
* canvas/2d.imageData.create1.basic-expected.txt: Added.
* canvas/2d.imageData.create1.basic.html: Added.
* canvas/2d.imageData.create1.initial-expected.txt: Added.
* canvas/2d.imageData.create1.initial.html: Added.
* canvas/2d.imageData.create1.type-expected.txt: Added.
* canvas/2d.imageData.create1.type.html: Added.
* canvas/2d.imageData.create1.zero-expected.txt: Added.
* canvas/2d.imageData.create1.zero.html: Added.
* canvas/2d.imageData.create2.basic-expected.txt: Added.
* canvas/2d.imageData.create2.basic.html: Added.
* canvas/2d.imageData.create2.initial-expected.txt: Added.
* canvas/2d.imageData.create2.initial.html: Added.
* canvas/2d.imageData.create2.large-expected.txt: Added.
* canvas/2d.imageData.create2.large.html: Added.
* canvas/2d.imageData.create2.negative-expected.txt: Added.
* canvas/2d.imageData.create2.negative.html: Added.
* canvas/2d.imageData.create2.nonfinite-expected.txt: Added.
* canvas/2d.imageData.create2.nonfinite.html: Added.
* canvas/2d.imageData.create2.round-expected.txt: Added.
* canvas/2d.imageData.create2.round.html: Added.
* canvas/2d.imageData.create2.tiny-expected.txt: Added.
* canvas/2d.imageData.create2.tiny.html: Added.
* canvas/2d.imageData.create2.type-expected.txt: Added.
* canvas/2d.imageData.create2.type.html: Added.
* canvas/2d.imageData.create2.zero-expected.txt: Added.
* canvas/2d.imageData.create2.zero.html: Added.
* canvas/2d.imageData.get.basic-expected.txt: Added.
* canvas/2d.imageData.get.basic.html: Added.
* canvas/2d.imageData.get.clamp-expected.txt: Added.
* canvas/2d.imageData.get.clamp.html: Added.
* canvas/2d.imageData.get.length-expected.txt: Added.
* canvas/2d.imageData.get.length.html: Added.
* canvas/2d.imageData.get.nonfinite-expected.txt: Added.
* canvas/2d.imageData.get.nonfinite.html: Added.
* canvas/2d.imageData.get.nonpremul-expected.txt: Added.
* canvas/2d.imageData.get.nonpremul.html: Added.
* canvas/2d.imageData.get.order.alpha-expected.txt: Added.
* canvas/2d.imageData.get.order.alpha.html: Added.
* canvas/2d.imageData.get.order.cols-expected.txt: Added.
* canvas/2d.imageData.get.order.cols.html: Added.
* canvas/2d.imageData.get.order.rgb-expected.txt: Added.
* canvas/2d.imageData.get.order.rgb.html: Added.
* canvas/2d.imageData.get.order.rows-expected.txt: Added.
* canvas/2d.imageData.get.order.rows.html: Added.
* canvas/2d.imageData.get.range-expected.txt: Added.
* canvas/2d.imageData.get.range.html: Added.
* canvas/2d.imageData.get.source.negative-expected.txt: Added.
* canvas/2d.imageData.get.source.negative.html: Added.
* canvas/2d.imageData.get.source.outside-expected.txt: Added.
* canvas/2d.imageData.get.source.outside.html: Added.
* canvas/2d.imageData.get.source.size-expected.txt: Added.
* canvas/2d.imageData.get.source.size.html: Added.
* canvas/2d.imageData.get.tiny-expected.txt: Added.
* canvas/2d.imageData.get.tiny.html: Added.
* canvas/2d.imageData.get.type-expected.txt: Added.
* canvas/2d.imageData.get.type.html: Added.
* canvas/2d.imageData.get.unaffected-expected.txt: Added.
* canvas/2d.imageData.get.unaffected.html: Added.
* canvas/2d.imageData.get.zero-expected.txt: Added.
* canvas/2d.imageData.get.zero.html: Added.
* canvas/2d.imageData.object.clamp-expected.txt: Added.
* canvas/2d.imageData.object.clamp.html: Added.
* canvas/2d.imageData.object.ctor-expected.txt: Added.
* canvas/2d.imageData.object.ctor.html: Added.
* canvas/2d.imageData.object.nan-expected.txt: Added.
* canvas/2d.imageData.object.nan.html: Added.
* canvas/2d.imageData.object.properties-expected.txt: Added.
* canvas/2d.imageData.object.properties.html: Added.
* canvas/2d.imageData.object.readonly-expected.txt: Added.
* canvas/2d.imageData.object.readonly.html: Added.
* canvas/2d.imageData.object.round-expected.txt: Added.
* canvas/2d.imageData.object.round.html: Added.
* canvas/2d.imageData.object.set-expected.txt: Added.
* canvas/2d.imageData.object.set.html: Added.
* canvas/2d.imageData.object.string-expected.txt: Added.
* canvas/2d.imageData.object.string.html: Added.
* canvas/2d.imageData.object.undefined-expected.txt: Added.
* canvas/2d.imageData.object.undefined.html: Added.
* canvas/2d.imageData.put.alpha-expected.txt: Added.
* canvas/2d.imageData.put.alpha.html: Added.
* canvas/2d.imageData.put.basic-expected.txt: Added.
* canvas/2d.imageData.put.basic.html: Added.
* canvas/2d.imageData.put.clip-expected.txt: Added.
* canvas/2d.imageData.put.clip.html: Added.
* canvas/2d.imageData.put.created-expected.txt: Added.
* canvas/2d.imageData.put.created.html: Added.
* canvas/2d.imageData.put.cross-expected.txt: Added.
* canvas/2d.imageData.put.cross.html: Added.
* canvas/2d.imageData.put.dirty.negative-expected.txt: Added.
* canvas/2d.imageData.put.dirty.negative.html: Added.
* canvas/2d.imageData.put.dirty.outside-expected.txt: Added.
* canvas/2d.imageData.put.dirty.outside.html: Added.
* canvas/2d.imageData.put.dirty.rect1-expected.txt: Added.
* canvas/2d.imageData.put.dirty.rect1.html: Added.
* canvas/2d.imageData.put.dirty.rect2-expected.txt: Added.
* canvas/2d.imageData.put.dirty.rect2.html: Added.
* canvas/2d.imageData.put.dirty.zero-expected.txt: Added.
* canvas/2d.imageData.put.dirty.zero.html: Added.
* canvas/2d.imageData.put.modified-expected.txt: Added.
* canvas/2d.imageData.put.modified.html: Added.
* canvas/2d.imageData.put.nonfinite-expected.txt: Added.
* canvas/2d.imageData.put.nonfinite.html: Added.
* canvas/2d.imageData.put.null-expected.txt: Added.
* canvas/2d.imageData.put.null.html: Added.
* canvas/2d.imageData.put.path-expected.txt: Added.
* canvas/2d.imageData.put.path.html: Added.
* canvas/2d.imageData.put.unaffected-expected.txt: Added.
* canvas/2d.imageData.put.unaffected.html: Added.
* canvas/2d.imageData.put.unchanged-expected.txt: Added.
* canvas/2d.imageData.put.unchanged.html: Added.
* canvas/2d.imageData.put.wrongtype-expected.txt: Added.
* canvas/2d.imageData.put.wrongtype.html: Added.
* canvas/2d.line.cap.butt-expected.txt: Added.
* canvas/2d.line.cap.butt.html: Added.
* canvas/2d.line.cap.closed-expected.txt: Added.
* canvas/2d.line.cap.closed.html: Added.
* canvas/2d.line.cap.open-expected.txt: Added.
* canvas/2d.line.cap.open.html: Added.
* canvas/2d.line.cap.round-expected.txt: Added.
* canvas/2d.line.cap.round.html: Added.
* canvas/2d.line.cap.square-expected.txt: Added.
* canvas/2d.line.cap.square.html: Added.
* canvas/2d.line.cap.valid-expected.txt: Added.
* canvas/2d.line.cap.valid.html: Added.
* canvas/2d.line.cross-expected.txt: Added.
* canvas/2d.line.cross.html: Added.
* canvas/2d.line.defaults-expected.txt: Added.
* canvas/2d.line.defaults.html: Added.
* canvas/2d.line.join.bevel-expected.txt: Added.
* canvas/2d.line.join.bevel.html: Added.
* canvas/2d.line.join.closed-expected.txt: Added.
* canvas/2d.line.join.closed.html: Added.
* canvas/2d.line.join.miter-expected.txt: Added.
* canvas/2d.line.join.miter.html: Added.
* canvas/2d.line.join.open-expected.txt: Added.
* canvas/2d.line.join.open.html: Added.
* canvas/2d.line.join.parallel-expected.txt: Added.
* canvas/2d.line.join.parallel.html: Added.
* canvas/2d.line.join.round-expected.txt: Added.
* canvas/2d.line.join.round.html: Added.
* canvas/2d.line.join.valid-expected.txt: Added.
* canvas/2d.line.join.valid.html: Added.
* canvas/2d.line.miter.acute-expected.txt: Added.
* canvas/2d.line.miter.acute.html: Added.
* canvas/2d.line.miter.exceeded-expected.txt: Added.
* canvas/2d.line.miter.exceeded.html: Added.
* canvas/2d.line.miter.invalid-expected.txt: Added.
* canvas/2d.line.miter.invalid.html: Added.
* canvas/2d.line.miter.lineedge-expected.txt: Added.
* canvas/2d.line.miter.lineedge.html: Added.
* canvas/2d.line.miter.obtuse-expected.txt: Added.
* canvas/2d.line.miter.obtuse.html: Added.
* canvas/2d.line.miter.rightangle-expected.txt: Added.
* canvas/2d.line.miter.rightangle.html: Added.
* canvas/2d.line.miter.valid-expected.txt: Added.
* canvas/2d.line.miter.valid.html: Added.
* canvas/2d.line.miter.within-expected.txt: Added.
* canvas/2d.line.miter.within.html: Added.
* canvas/2d.line.union-expected.txt: Added.
* canvas/2d.line.union.html: Added.
* canvas/2d.line.width.basic-expected.txt: Added.
* canvas/2d.line.width.basic.html: Added.
* canvas/2d.line.width.invalid-expected.txt: Added.
* canvas/2d.line.width.invalid.html: Added.
* canvas/2d.line.width.scaledefault-expected.txt: Added.
* canvas/2d.line.width.scaledefault.html: Added.
* canvas/2d.line.width.transformed-expected.txt: Added.
* canvas/2d.line.width.transformed.html: Added.
* canvas/2d.line.width.valid-expected.txt: Added.
* canvas/2d.line.width.valid.html: Added.
* canvas/2d.path.arc.angle.1-expected.txt: Added.
* canvas/2d.path.arc.angle.1.html: Added.
* canvas/2d.path.arc.angle.2-expected.txt: Added.
* canvas/2d.path.arc.angle.2.html: Added.
* canvas/2d.path.arc.angle.3-expected.txt: Added.
* canvas/2d.path.arc.angle.3.html: Added.
* canvas/2d.path.arc.angle.4-expected.txt: Added.
* canvas/2d.path.arc.angle.4.html: Added.
* canvas/2d.path.arc.angle.5-expected.txt: Added.
* canvas/2d.path.arc.angle.5.html: Added.
* canvas/2d.path.arc.angle.6-expected.txt: Added.
* canvas/2d.path.arc.angle.6.html: Added.
* canvas/2d.path.arc.default-expected.txt: Added.
* canvas/2d.path.arc.default.html: Added.
* canvas/2d.path.arc.empty-expected.txt: Added.
* canvas/2d.path.arc.empty.html: Added.
* canvas/2d.path.arc.end-expected.txt: Added.
* canvas/2d.path.arc.end.html: Added.
* canvas/2d.path.arc.negative-expected.txt: Added.
* canvas/2d.path.arc.negative.html: Added.
* canvas/2d.path.arc.nonempty-expected.txt: Added.
* canvas/2d.path.arc.nonempty.html: Added.
* canvas/2d.path.arc.nonfinite-expected.txt: Added.
* canvas/2d.path.arc.nonfinite.html: Added.
* canvas/2d.path.arc.scale.1-expected.txt: Added.
* canvas/2d.path.arc.scale.1.html: Added.
* canvas/2d.path.arc.scale.2-expected.txt: Added.
* canvas/2d.path.arc.scale.2.html: Added.
* canvas/2d.path.arc.selfintersect.1-expected.txt: Added.
* canvas/2d.path.arc.selfintersect.1.html: Added.
* canvas/2d.path.arc.selfintersect.2-expected.txt: Added.
* canvas/2d.path.arc.selfintersect.2.html: Added.
* canvas/2d.path.arc.shape.1-expected.txt: Added.
* canvas/2d.path.arc.shape.1.html: Added.
* canvas/2d.path.arc.shape.2-expected.txt: Added.
* canvas/2d.path.arc.shape.2.html: Added.
* canvas/2d.path.arc.shape.3-expected.txt: Added.
* canvas/2d.path.arc.shape.3.html: Added.
* canvas/2d.path.arc.shape.4-expected.txt: Added.
* canvas/2d.path.arc.shape.4.html: Added.
* canvas/2d.path.arc.shape.5-expected.txt: Added.
* canvas/2d.path.arc.shape.5.html: Added.
* canvas/2d.path.arc.twopie.1-expected.txt: Added.
* canvas/2d.path.arc.twopie.1.html: Added.
* canvas/2d.path.arc.twopie.2-expected.txt: Added.
* canvas/2d.path.arc.twopie.2.html: Added.
* canvas/2d.path.arc.twopie.3-expected.txt: Added.
* canvas/2d.path.arc.twopie.3.html: Added.
* canvas/2d.path.arc.twopie.4-expected.txt: Added.
* canvas/2d.path.arc.twopie.4.html: Added.
* canvas/2d.path.arc.zero.1-expected.txt: Added.
* canvas/2d.path.arc.zero.1.html: Added.
* canvas/2d.path.arc.zero.2-expected.txt: Added.
* canvas/2d.path.arc.zero.2.html: Added.
* canvas/2d.path.arc.zeroradius-expected.txt: Added.
* canvas/2d.path.arc.zeroradius.html: Added.
* canvas/2d.path.arcTo.coincide.1-expected.txt: Added.
* canvas/2d.path.arcTo.coincide.1.html: Added.
* canvas/2d.path.arcTo.coincide.2-expected.txt: Added.
* canvas/2d.path.arcTo.coincide.2.html: Added.
* canvas/2d.path.arcTo.collinear.1-expected.txt: Added.
* canvas/2d.path.arcTo.collinear.1.html: Added.
* canvas/2d.path.arcTo.collinear.2-expected.txt: Added.
* canvas/2d.path.arcTo.collinear.2.html: Added.
* canvas/2d.path.arcTo.collinear.3-expected.txt: Added.
* canvas/2d.path.arcTo.collinear.3.html: Added.
* canvas/2d.path.arcTo.ensuresubpath.1-expected.txt: Added.
* canvas/2d.path.arcTo.ensuresubpath.1.html: Added.
* canvas/2d.path.arcTo.ensuresubpath.2-expected.txt: Added.
* canvas/2d.path.arcTo.ensuresubpath.2.html: Added.
* canvas/2d.path.arcTo.negative-expected.txt: Added.
* canvas/2d.path.arcTo.negative.html: Added.
* canvas/2d.path.arcTo.nonfinite-expected.txt: Added.
* canvas/2d.path.arcTo.nonfinite.html: Added.
* canvas/2d.path.arcTo.scale-expected.txt: Added.
* canvas/2d.path.arcTo.scale.html: Added.
* canvas/2d.path.arcTo.shape.curve1-expected.txt: Added.
* canvas/2d.path.arcTo.shape.curve1.html: Added.
* canvas/2d.path.arcTo.shape.curve2-expected.txt: Added.
* canvas/2d.path.arcTo.shape.curve2.html: Added.
* canvas/2d.path.arcTo.shape.end-expected.txt: Added.
* canvas/2d.path.arcTo.shape.end.html: Added.
* canvas/2d.path.arcTo.shape.start-expected.txt: Added.
* canvas/2d.path.arcTo.shape.start.html: Added.
* canvas/2d.path.arcTo.transformation-expected.txt: Added.
* canvas/2d.path.arcTo.transformation.html: Added.
* canvas/2d.path.arcTo.zero.1-expected.txt: Added.
* canvas/2d.path.arcTo.zero.1.html: Added.
* canvas/2d.path.arcTo.zero.2-expected.txt: Added.
* canvas/2d.path.arcTo.zero.2.html: Added.
* canvas/2d.path.beginPath-expected.txt: Added.
* canvas/2d.path.beginPath.html: Added.
* canvas/2d.path.bezierCurveTo.basic-expected.txt: Added.
* canvas/2d.path.bezierCurveTo.basic.html: Added.
* canvas/2d.path.bezierCurveTo.ensuresubpath.1-expected.txt: Added.
* canvas/2d.path.bezierCurveTo.ensuresubpath.1.html: Added.
* canvas/2d.path.bezierCurveTo.ensuresubpath.2-expected.txt: Added.
* canvas/2d.path.bezierCurveTo.ensuresubpath.2.html: Added.
* canvas/2d.path.bezierCurveTo.nonfinite-expected.txt: Added.
* canvas/2d.path.bezierCurveTo.nonfinite.html: Added.
* canvas/2d.path.bezierCurveTo.scaled-expected.txt: Added.
* canvas/2d.path.bezierCurveTo.scaled.html: Added.
* canvas/2d.path.bezierCurveTo.shape-expected.txt: Added.
* canvas/2d.path.bezierCurveTo.shape.html: Added.
* canvas/2d.path.clip.basic.1-expected.txt: Added.
* canvas/2d.path.clip.basic.1.html: Added.
* canvas/2d.path.clip.basic.2-expected.txt: Added.
* canvas/2d.path.clip.basic.2.html: Added.
* canvas/2d.path.clip.empty-expected.txt: Added.
* canvas/2d.path.clip.empty.html: Added.
* canvas/2d.path.clip.intersect-expected.txt: Added.
* canvas/2d.path.clip.intersect.html: Added.
* canvas/2d.path.clip.unaffected-expected.txt: Added.
* canvas/2d.path.clip.unaffected.html: Added.
* canvas/2d.path.clip.winding.1-expected.txt: Added.
* canvas/2d.path.clip.winding.1.html: Added.
* canvas/2d.path.clip.winding.2-expected.txt: Added.
* canvas/2d.path.clip.winding.2.html: Added.
* canvas/2d.path.closePath.empty-expected.txt: Added.
* canvas/2d.path.closePath.empty.html: Added.
* canvas/2d.path.closePath.newline-expected.txt: Added.
* canvas/2d.path.closePath.newline.html: Added.
* canvas/2d.path.closePath.nextpoint-expected.txt: Added.
* canvas/2d.path.closePath.nextpoint.html: Added.
* canvas/2d.path.fill.closed.basic-expected.txt: Added.
* canvas/2d.path.fill.closed.basic.html: Added.
* canvas/2d.path.fill.closed.unaffected-expected.txt: Added.
* canvas/2d.path.fill.closed.unaffected.html: Added.
* canvas/2d.path.fill.overlap-expected.txt: Added.
* canvas/2d.path.fill.overlap.html: Added.
* canvas/2d.path.fill.winding.add-expected.txt: Added.
* canvas/2d.path.fill.winding.add.html: Added.
* canvas/2d.path.fill.winding.subtract.1-expected.txt: Added.
* canvas/2d.path.fill.winding.subtract.1.html: Added.
* canvas/2d.path.fill.winding.subtract.2-expected.txt: Added.
* canvas/2d.path.fill.winding.subtract.2.html: Added.
* canvas/2d.path.fill.winding.subtract.3-expected.txt: Added.
* canvas/2d.path.fill.winding.subtract.3.html: Added.
* canvas/2d.path.initial-expected.txt: Added.
* canvas/2d.path.initial.html: Added.
* canvas/2d.path.isPointInPath.arc-expected.txt: Added.
* canvas/2d.path.isPointInPath.arc.html: Added.
* canvas/2d.path.isPointInPath.basic.1-expected.txt: Added.
* canvas/2d.path.isPointInPath.basic.1.html: Added.
* canvas/2d.path.isPointInPath.basic.2-expected.txt: Added.
* canvas/2d.path.isPointInPath.basic.2.html: Added.
* canvas/2d.path.isPointInPath.bezier-expected.txt: Added.
* canvas/2d.path.isPointInPath.bezier.html: Added.
* canvas/2d.path.isPointInPath.bigarc-expected.txt: Added.
* canvas/2d.path.isPointInPath.bigarc.html: Added.
* canvas/2d.path.isPointInPath.edge-expected.txt: Added.
* canvas/2d.path.isPointInPath.edge.html: Added.
* canvas/2d.path.isPointInPath.empty-expected.txt: Added.
* canvas/2d.path.isPointInPath.empty.html: Added.
* canvas/2d.path.isPointInPath.nonfinite-expected.txt: Added.
* canvas/2d.path.isPointInPath.nonfinite.html: Added.
* canvas/2d.path.isPointInPath.outside-expected.txt: Added.
* canvas/2d.path.isPointInPath.outside.html: Added.
* canvas/2d.path.isPointInPath.subpath-expected.txt: Added.
* canvas/2d.path.isPointInPath.subpath.html: Added.
* canvas/2d.path.isPointInPath.transform.1-expected.txt: Added.
* canvas/2d.path.isPointInPath.transform.1.html: Added.
* canvas/2d.path.isPointInPath.transform.2-expected.txt: Added.
* canvas/2d.path.isPointInPath.transform.2.html: Added.
* canvas/2d.path.isPointInPath.transform.3-expected.txt: Added.
* canvas/2d.path.isPointInPath.transform.3.html: Added.
* canvas/2d.path.isPointInPath.unclosed-expected.txt: Added.
* canvas/2d.path.isPointInPath.unclosed.html: Added.
* canvas/2d.path.isPointInPath.winding-expected.txt: Added.
* canvas/2d.path.isPointInPath.winding.html: Added.
* canvas/2d.path.lineTo.basic-expected.txt: Added.
* canvas/2d.path.lineTo.basic.html: Added.
* canvas/2d.path.lineTo.ensuresubpath.1-expected.txt: Added.
* canvas/2d.path.lineTo.ensuresubpath.1.html: Added.
* canvas/2d.path.lineTo.ensuresubpath.2-expected.txt: Added.
* canvas/2d.path.lineTo.ensuresubpath.2.html: Added.
* canvas/2d.path.lineTo.nextpoint-expected.txt: Added.
* canvas/2d.path.lineTo.nextpoint.html: Added.
* canvas/2d.path.lineTo.nonfinite-expected.txt: Added.
* canvas/2d.path.lineTo.nonfinite.html: Added.
* canvas/2d.path.moveTo.basic-expected.txt: Added.
* canvas/2d.path.moveTo.basic.html: Added.
* canvas/2d.path.moveTo.multiple-expected.txt: Added.
* canvas/2d.path.moveTo.multiple.html: Added.
* canvas/2d.path.moveTo.newsubpath-expected.txt: Added.
* canvas/2d.path.moveTo.newsubpath.html: Added.
* canvas/2d.path.moveTo.nonfinite-expected.txt: Added.
* canvas/2d.path.moveTo.nonfinite.html: Added.
* canvas/2d.path.quadraticCurveTo.basic-expected.txt: Added.
* canvas/2d.path.quadraticCurveTo.basic.html: Added.
* canvas/2d.path.quadraticCurveTo.ensuresubpath.1-expected.txt: Added.
* canvas/2d.path.quadraticCurveTo.ensuresubpath.1.html: Added.
* canvas/2d.path.quadraticCurveTo.ensuresubpath.2-expected.txt: Added.
* canvas/2d.path.quadraticCurveTo.ensuresubpath.2.html: Added.
* canvas/2d.path.quadraticCurveTo.nonfinite-expected.txt: Added.
* canvas/2d.path.quadraticCurveTo.nonfinite.html: Added.
* canvas/2d.path.quadraticCurveTo.scaled-expected.txt: Added.
* canvas/2d.path.quadraticCurveTo.scaled.html: Added.
* canvas/2d.path.quadraticCurveTo.shape-expected.txt: Added.
* canvas/2d.path.quadraticCurveTo.shape.html: Added.
* canvas/2d.path.rect.basic-expected.txt: Added.
* canvas/2d.path.rect.basic.html: Added.
* canvas/2d.path.rect.closed-expected.txt: Added.
* canvas/2d.path.rect.closed.html: Added.
* canvas/2d.path.rect.end.1-expected.txt: Added.
* canvas/2d.path.rect.end.1.html: Added.
* canvas/2d.path.rect.end.2-expected.txt: Added.
* canvas/2d.path.rect.end.2.html: Added.
* canvas/2d.path.rect.negative-expected.txt: Added.
* canvas/2d.path.rect.negative.html: Added.
* canvas/2d.path.rect.newsubpath-expected.txt: Added.
* canvas/2d.path.rect.newsubpath.html: Added.
* canvas/2d.path.rect.nonfinite-expected.txt: Added.
* canvas/2d.path.rect.nonfinite.html: Added.
* canvas/2d.path.rect.selfintersect-expected.txt: Added.
* canvas/2d.path.rect.selfintersect.html: Added.
* canvas/2d.path.rect.winding-expected.txt: Added.
* canvas/2d.path.rect.winding.html: Added.
* canvas/2d.path.rect.zero.1-expected.txt: Added.
* canvas/2d.path.rect.zero.1.html: Added.
* canvas/2d.path.rect.zero.2-expected.txt: Added.
* canvas/2d.path.rect.zero.2.html: Added.
* canvas/2d.path.rect.zero.3-expected.txt: Added.
* canvas/2d.path.rect.zero.3.html: Added.
* canvas/2d.path.rect.zero.4-expected.txt: Added.
* canvas/2d.path.rect.zero.4.html: Added.
* canvas/2d.path.rect.zero.5-expected.txt: Added.
* canvas/2d.path.rect.zero.5.html: Added.
* canvas/2d.path.rect.zero.6-expected.txt: Added.
* canvas/2d.path.rect.zero.6.html: Added.
* canvas/2d.path.stroke.empty-expected.txt: Added.
* canvas/2d.path.stroke.empty.html: Added.
* canvas/2d.path.stroke.overlap-expected.txt: Added.
* canvas/2d.path.stroke.overlap.html: Added.
* canvas/2d.path.stroke.prune.arc-expected.txt: Added.
* canvas/2d.path.stroke.prune.arc.html: Added.
* canvas/2d.path.stroke.prune.closed-expected.txt: Added.
* canvas/2d.path.stroke.prune.closed.html: Added.
* canvas/2d.path.stroke.prune.corner-expected.txt: Added.
* canvas/2d.path.stroke.prune.corner.html: Added.
* canvas/2d.path.stroke.prune.curve-expected.txt: Added.
* canvas/2d.path.stroke.prune.curve.html: Added.
* canvas/2d.path.stroke.prune.line-expected.txt: Added.
* canvas/2d.path.stroke.prune.line.html: Added.
* canvas/2d.path.stroke.prune.rect-expected.txt: Added.
* canvas/2d.path.stroke.prune.rect.html: Added.
* canvas/2d.path.stroke.scale1-expected.txt: Added.
* canvas/2d.path.stroke.scale1.html: Added.
* canvas/2d.path.stroke.scale2-expected.txt: Added.
* canvas/2d.path.stroke.scale2.html: Added.
* canvas/2d.path.stroke.skew-expected.txt: Added.
* canvas/2d.path.stroke.skew.html: Added.
* canvas/2d.path.stroke.unaffected-expected.txt: Added.
* canvas/2d.path.stroke.unaffected.html: Added.
* canvas/2d.path.stroke.union-expected.txt: Added.
* canvas/2d.path.stroke.union.html: Added.
* canvas/2d.path.transformation.basic-expected.txt: Added.
* canvas/2d.path.transformation.basic.html: Added.
* canvas/2d.path.transformation.changing-expected.txt: Added.
* canvas/2d.path.transformation.changing.html: Added.
* canvas/2d.path.transformation.multiple-expected.txt: Added.
* canvas/2d.path.transformation.multiple.html: Added.
* canvas/2d.pattern.animated.gif.html: Added.
* canvas/2d.pattern.basic.canvas-expected.txt: Added.
* canvas/2d.pattern.basic.canvas.html: Added.
* canvas/2d.pattern.basic.image-expected.txt: Added.
* canvas/2d.pattern.basic.image.html: Added.
* canvas/2d.pattern.basic.nocontext-expected.txt: Added.
* canvas/2d.pattern.basic.nocontext.html: Added.
* canvas/2d.pattern.basic.type-expected.txt: Added.
* canvas/2d.pattern.basic.type.html: Added.
* canvas/2d.pattern.basic.zerocanvas-expected.txt: Added.
* canvas/2d.pattern.basic.zerocanvas.html: Added.
* canvas/2d.pattern.crosscanvas-expected.txt: Added.
* canvas/2d.pattern.crosscanvas.html: Added.
* canvas/2d.pattern.image.incomplete-expected.txt: Added.
* canvas/2d.pattern.image.incomplete.empty-expected.txt: Added.
* canvas/2d.pattern.image.incomplete.empty.html: Added.
* canvas/2d.pattern.image.incomplete.html: Added.
* canvas/2d.pattern.image.incomplete.omitted-expected.txt: Added.
* canvas/2d.pattern.image.incomplete.omitted.html: Added.
* canvas/2d.pattern.image.null-expected.txt: Added.
* canvas/2d.pattern.image.null.html: Added.
* canvas/2d.pattern.image.string-expected.txt: Added.
* canvas/2d.pattern.image.string.html: Added.
* canvas/2d.pattern.image.undefined-expected.txt: Added.
* canvas/2d.pattern.image.undefined.html: Added.
* canvas/2d.pattern.modify.canvas1-expected.txt: Added.
* canvas/2d.pattern.modify.canvas1.html: Added.
* canvas/2d.pattern.modify.canvas2-expected.txt: Added.
* canvas/2d.pattern.modify.canvas2.html: Added.
* canvas/2d.pattern.modify.image1.html: Added.
* canvas/2d.pattern.modify.image2.html: Added.
* canvas/2d.pattern.paint.norepeat.basic-expected.txt: Added.
* canvas/2d.pattern.paint.norepeat.basic.html: Added.
* canvas/2d.pattern.paint.norepeat.coord1-expected.txt: Added.
* canvas/2d.pattern.paint.norepeat.coord1.html: Added.
* canvas/2d.pattern.paint.norepeat.coord2-expected.txt: Added.
* canvas/2d.pattern.paint.norepeat.coord2.html: Added.
* canvas/2d.pattern.paint.norepeat.coord3-expected.txt: Added.
* canvas/2d.pattern.paint.norepeat.coord3.html: Added.
* canvas/2d.pattern.paint.norepeat.outside-expected.txt: Added.
* canvas/2d.pattern.paint.norepeat.outside.html: Added.
* canvas/2d.pattern.paint.orientation.canvas-expected.txt: Added.
* canvas/2d.pattern.paint.orientation.canvas.html: Added.
* canvas/2d.pattern.paint.orientation.image-expected.txt: Added.
* canvas/2d.pattern.paint.orientation.image.html: Added.
* canvas/2d.pattern.paint.repeat.basic-expected.txt: Added.
* canvas/2d.pattern.paint.repeat.basic.html: Added.
* canvas/2d.pattern.paint.repeat.coord1-expected.txt: Added.
* canvas/2d.pattern.paint.repeat.coord1.html: Added.
* canvas/2d.pattern.paint.repeat.coord2-expected.txt: Added.
* canvas/2d.pattern.paint.repeat.coord2.html: Added.
* canvas/2d.pattern.paint.repeat.coord3-expected.txt: Added.
* canvas/2d.pattern.paint.repeat.coord3.html: Added.
* canvas/2d.pattern.paint.repeat.outside-expected.txt: Added.
* canvas/2d.pattern.paint.repeat.outside.html: Added.
* canvas/2d.pattern.paint.repeatx.basic-expected.txt: Added.
* canvas/2d.pattern.paint.repeatx.basic.html: Added.
* canvas/2d.pattern.paint.repeatx.coord1-expected.txt: Added.
* canvas/2d.pattern.paint.repeatx.coord1.html: Added.
* canvas/2d.pattern.paint.repeatx.outside-expected.txt: Added.
* canvas/2d.pattern.paint.repeatx.outside.html: Added.
* canvas/2d.pattern.paint.repeaty.basic-expected.txt: Added.
* canvas/2d.pattern.paint.repeaty.basic.html: Added.
* canvas/2d.pattern.paint.repeaty.coord1-expected.txt: Added.
* canvas/2d.pattern.paint.repeaty.coord1.html: Added.
* canvas/2d.pattern.paint.repeaty.outside-expected.txt: Added.
* canvas/2d.pattern.paint.repeaty.outside.html: Added.
* canvas/2d.pattern.repeat.case-expected.txt: Added.
* canvas/2d.pattern.repeat.case.html: Added.
* canvas/2d.pattern.repeat.empty-expected.txt: Added.
* canvas/2d.pattern.repeat.empty.html: Added.
* canvas/2d.pattern.repeat.null-expected.txt: Added.
* canvas/2d.pattern.repeat.null.html: Added.
* canvas/2d.pattern.repeat.undefined-expected.txt: Added.
* canvas/2d.pattern.repeat.undefined.html: Added.
* canvas/2d.pattern.repeat.unrecognised-expected.txt: Added.
* canvas/2d.pattern.repeat.unrecognised.html: Added.
* canvas/2d.scaled.html: Added.
* canvas/2d.shadow.alpha.1-expected.txt: Added.
* canvas/2d.shadow.alpha.1.html: Added.
* canvas/2d.shadow.alpha.2-expected.txt: Added.
* canvas/2d.shadow.alpha.2.html: Added.
* canvas/2d.shadow.alpha.3-expected.txt: Added.
* canvas/2d.shadow.alpha.3.html: Added.
* canvas/2d.shadow.alpha.4-expected.txt: Added.
* canvas/2d.shadow.alpha.4.html: Added.
* canvas/2d.shadow.alpha.5-expected.txt: Added.
* canvas/2d.shadow.alpha.5.html: Added.
* canvas/2d.shadow.attributes.shadowBlur.initial-expected.txt: Added.
* canvas/2d.shadow.attributes.shadowBlur.initial.html: Added.
* canvas/2d.shadow.attributes.shadowBlur.invalid-expected.txt: Added.
* canvas/2d.shadow.attributes.shadowBlur.invalid.html: Added.
* canvas/2d.shadow.attributes.shadowBlur.valid-expected.txt: Added.
* canvas/2d.shadow.attributes.shadowBlur.valid.html: Added.
* canvas/2d.shadow.attributes.shadowColor.initial-expected.txt: Added.
* canvas/2d.shadow.attributes.shadowColor.initial.html: Added.
* canvas/2d.shadow.attributes.shadowColor.invalid-expected.txt: Added.
* canvas/2d.shadow.attributes.shadowColor.invalid.html: Added.
* canvas/2d.shadow.attributes.shadowColor.valid-expected.txt: Added.
* canvas/2d.shadow.attributes.shadowColor.valid.html: Added.
* canvas/2d.shadow.attributes.shadowOffset.initial-expected.txt: Added.
* canvas/2d.shadow.attributes.shadowOffset.initial.html: Added.
* canvas/2d.shadow.attributes.shadowOffset.invalid-expected.txt: Added.
* canvas/2d.shadow.attributes.shadowOffset.invalid.html: Added.
* canvas/2d.shadow.attributes.shadowOffset.valid-expected.txt: Added.
* canvas/2d.shadow.attributes.shadowOffset.valid.html: Added.
* canvas/2d.shadow.blur.high.html: Added.
* canvas/2d.shadow.blur.low.html: Added.
* canvas/2d.shadow.canvas.alpha-expected.txt: Added.
* canvas/2d.shadow.canvas.alpha.html: Added.
* canvas/2d.shadow.canvas.basic-expected.txt: Added.
* canvas/2d.shadow.canvas.basic.html: Added.
* canvas/2d.shadow.canvas.transparent.1-expected.txt: Added.
* canvas/2d.shadow.canvas.transparent.1.html: Added.
* canvas/2d.shadow.canvas.transparent.2-expected.txt: Added.
* canvas/2d.shadow.canvas.transparent.2.html: Added.
* canvas/2d.shadow.clip.1-expected.txt: Added.
* canvas/2d.shadow.clip.1.html: Added.
* canvas/2d.shadow.clip.2-expected.txt: Added.
* canvas/2d.shadow.clip.2.html: Added.
* canvas/2d.shadow.clip.3-expected.txt: Added.
* canvas/2d.shadow.clip.3.html: Added.
* canvas/2d.shadow.composite.1-expected.txt: Added.
* canvas/2d.shadow.composite.1.html: Added.
* canvas/2d.shadow.composite.2-expected.txt: Added.
* canvas/2d.shadow.composite.2.html: Added.
* canvas/2d.shadow.composite.3-expected.txt: Added.
* canvas/2d.shadow.composite.3.html: Added.
* canvas/2d.shadow.enable.blur-expected.txt: Added.
* canvas/2d.shadow.enable.blur.html: Added.
* canvas/2d.shadow.enable.off.1-expected.txt: Added.
* canvas/2d.shadow.enable.off.1.html: Added.
* canvas/2d.shadow.enable.off.2-expected.txt: Added.
* canvas/2d.shadow.enable.off.2.html: Added.
* canvas/2d.shadow.enable.x-expected.txt: Added.
* canvas/2d.shadow.enable.x.html: Added.
* canvas/2d.shadow.enable.y-expected.txt: Added.
* canvas/2d.shadow.enable.y.html: Added.
* canvas/2d.shadow.gradient.alpha-expected.txt: Added.
* canvas/2d.shadow.gradient.alpha.html: Added.
* canvas/2d.shadow.gradient.basic-expected.txt: Added.
* canvas/2d.shadow.gradient.basic.html: Added.
* canvas/2d.shadow.gradient.transparent.1-expected.txt: Added.
* canvas/2d.shadow.gradient.transparent.1.html: Added.
* canvas/2d.shadow.gradient.transparent.2-expected.txt: Added.
* canvas/2d.shadow.gradient.transparent.2.html: Added.
* canvas/2d.shadow.image.alpha-expected.txt: Added.
* canvas/2d.shadow.image.alpha.html: Added.
* canvas/2d.shadow.image.basic-expected.txt: Added.
* canvas/2d.shadow.image.basic.html: Added.
* canvas/2d.shadow.image.scale-expected.txt: Added.
* canvas/2d.shadow.image.scale.html: Added.
* canvas/2d.shadow.image.section-expected.txt: Added.
* canvas/2d.shadow.image.section.html: Added.
* canvas/2d.shadow.image.transparent.1-expected.txt: Added.
* canvas/2d.shadow.image.transparent.1.html: Added.
* canvas/2d.shadow.image.transparent.2-expected.txt: Added.
* canvas/2d.shadow.image.transparent.2.html: Added.
* canvas/2d.shadow.offset.negativeX-expected.txt: Added.
* canvas/2d.shadow.offset.negativeX.html: Added.
* canvas/2d.shadow.offset.negativeY-expected.txt: Added.
* canvas/2d.shadow.offset.negativeY.html: Added.
* canvas/2d.shadow.offset.positiveX-expected.txt: Added.
* canvas/2d.shadow.offset.positiveX.html: Added.
* canvas/2d.shadow.offset.positiveY-expected.txt: Added.
* canvas/2d.shadow.offset.positiveY.html: Added.
* canvas/2d.shadow.outside-expected.txt: Added.
* canvas/2d.shadow.outside.html: Added.
* canvas/2d.shadow.pattern.alpha-expected.txt: Added.
* canvas/2d.shadow.pattern.alpha.html: Added.
* canvas/2d.shadow.pattern.basic-expected.txt: Added.
* canvas/2d.shadow.pattern.basic.html: Added.
* canvas/2d.shadow.pattern.transparent.1-expected.txt: Added.
* canvas/2d.shadow.pattern.transparent.1.html: Added.
* canvas/2d.shadow.pattern.transparent.2-expected.txt: Added.
* canvas/2d.shadow.pattern.transparent.2.html: Added.
* canvas/2d.shadow.stroke.basic-expected.txt: Added.
* canvas/2d.shadow.stroke.basic.html: Added.
* canvas/2d.shadow.stroke.cap.1-expected.txt: Added.
* canvas/2d.shadow.stroke.cap.1.html: Added.
* canvas/2d.shadow.stroke.cap.2-expected.txt: Added.
* canvas/2d.shadow.stroke.cap.2.html: Added.
* canvas/2d.shadow.stroke.join.1-expected.txt: Added.
* canvas/2d.shadow.stroke.join.1.html: Added.
* canvas/2d.shadow.stroke.join.2-expected.txt: Added.
* canvas/2d.shadow.stroke.join.2.html: Added.
* canvas/2d.shadow.stroke.join.3-expected.txt: Added.
* canvas/2d.shadow.stroke.join.3.html: Added.
* canvas/2d.shadow.transform.1-expected.txt: Added.
* canvas/2d.shadow.transform.1.html: Added.
* canvas/2d.shadow.transform.2-expected.txt: Added.
* canvas/2d.shadow.transform.2.html: Added.
* canvas/2d.state.saverestore.bitmap-expected.txt: Added.
* canvas/2d.state.saverestore.bitmap.html: Added.
* canvas/2d.state.saverestore.clip-expected.txt: Added.
* canvas/2d.state.saverestore.clip.html: Added.
* canvas/2d.state.saverestore.fillStyle-expected.txt: Added.
* canvas/2d.state.saverestore.fillStyle.html: Added.
* canvas/2d.state.saverestore.font-expected.txt: Added.
* canvas/2d.state.saverestore.font.html: Added.
* canvas/2d.state.saverestore.globalAlpha-expected.txt: Added.
* canvas/2d.state.saverestore.globalAlpha.html: Added.
* canvas/2d.state.saverestore.globalCompositeOperation-expected.txt: Added.
* canvas/2d.state.saverestore.globalCompositeOperation.html: Added.
* canvas/2d.state.saverestore.lineCap-expected.txt: Added.
* canvas/2d.state.saverestore.lineCap.html: Added.
* canvas/2d.state.saverestore.lineJoin-expected.txt: Added.
* canvas/2d.state.saverestore.lineJoin.html: Added.
* canvas/2d.state.saverestore.lineWidth-expected.txt: Added.
* canvas/2d.state.saverestore.lineWidth.html: Added.
* canvas/2d.state.saverestore.miterLimit-expected.txt: Added.
* canvas/2d.state.saverestore.miterLimit.html: Added.
* canvas/2d.state.saverestore.path-expected.txt: Added.
* canvas/2d.state.saverestore.path.html: Added.
* canvas/2d.state.saverestore.shadowBlur-expected.txt: Added.
* canvas/2d.state.saverestore.shadowBlur.html: Added.
* canvas/2d.state.saverestore.shadowColor-expected.txt: Added.
* canvas/2d.state.saverestore.shadowColor.html: Added.
* canvas/2d.state.saverestore.shadowOffsetX-expected.txt: Added.
* canvas/2d.state.saverestore.shadowOffsetX.html: Added.
* canvas/2d.state.saverestore.shadowOffsetY-expected.txt: Added.
* canvas/2d.state.saverestore.shadowOffsetY.html: Added.
* canvas/2d.state.saverestore.stack-expected.txt: Added.
* canvas/2d.state.saverestore.stack.html: Added.
* canvas/2d.state.saverestore.stackdepth-expected.txt: Added.
* canvas/2d.state.saverestore.stackdepth.html: Added.
* canvas/2d.state.saverestore.strokeStyle-expected.txt: Added.
* canvas/2d.state.saverestore.strokeStyle.html: Added.
* canvas/2d.state.saverestore.textAlign-expected.txt: Added.
* canvas/2d.state.saverestore.textAlign.html: Added.
* canvas/2d.state.saverestore.textBaseline-expected.txt: Added.
* canvas/2d.state.saverestore.textBaseline.html: Added.
* canvas/2d.state.saverestore.transformation-expected.txt: Added.
* canvas/2d.state.saverestore.transformation.html: Added.
* canvas/2d.state.saverestore.underflow-expected.txt: Added.
* canvas/2d.state.saverestore.underflow.html: Added.
* canvas/2d.strokeRect.basic-expected.txt: Added.
* canvas/2d.strokeRect.basic.html: Added.
* canvas/2d.strokeRect.clip-expected.txt: Added.
* canvas/2d.strokeRect.clip.html: Added.
* canvas/2d.strokeRect.globalalpha-expected.txt: Added.
* canvas/2d.strokeRect.globalalpha.html: Added.
* canvas/2d.strokeRect.globalcomposite-expected.txt: Added.
* canvas/2d.strokeRect.globalcomposite.html: Added.
* canvas/2d.strokeRect.negative-expected.txt: Added.
* canvas/2d.strokeRect.negative.html: Added.
* canvas/2d.strokeRect.nonfinite-expected.txt: Added.
* canvas/2d.strokeRect.nonfinite.html: Added.
* canvas/2d.strokeRect.path-expected.txt: Added.
* canvas/2d.strokeRect.path.html: Added.
* canvas/2d.strokeRect.shadow-expected.txt: Added.
* canvas/2d.strokeRect.shadow.html: Added.
* canvas/2d.strokeRect.transform-expected.txt: Added.
* canvas/2d.strokeRect.transform.html: Added.
* canvas/2d.strokeRect.zero.1-expected.txt: Added.
* canvas/2d.strokeRect.zero.1.html: Added.
* canvas/2d.strokeRect.zero.2-expected.txt: Added.
* canvas/2d.strokeRect.zero.2.html: Added.
* canvas/2d.strokeRect.zero.3-expected.txt: Added.
* canvas/2d.strokeRect.zero.3.html: Added.
* canvas/2d.strokeRect.zero.5-expected.txt: Added.
* canvas/2d.strokeRect.zero.5.html: Added.
* canvas/2d.strokeStyle.default-expected.txt: Added.
* canvas/2d.strokeStyle.default.html: Added.
* canvas/2d.text.align.default-expected.txt: Added.
* canvas/2d.text.align.default.html: Added.
* canvas/2d.text.align.valid-expected.txt: Added.
* canvas/2d.text.align.valid.html: Added.
* canvas/2d.text.baseline.default-expected.txt: Added.
* canvas/2d.text.baseline.default.html: Added.
* canvas/2d.text.baseline.valid-expected.txt: Added.
* canvas/2d.text.baseline.valid.html: Added.
* canvas/2d.text.draw.align.center.html: Added.
* canvas/2d.text.draw.align.end.ltr.html: Added.
* canvas/2d.text.draw.align.end.rtl.html: Added.
* canvas/2d.text.draw.align.left.html: Added.
* canvas/2d.text.draw.align.right.html: Added.
* canvas/2d.text.draw.align.start.ltr.html: Added.
* canvas/2d.text.draw.align.start.rtl.html: Added.
* canvas/2d.text.draw.baseline.alphabetic.html: Added.
* canvas/2d.text.draw.fill.basic.html: Added.
* canvas/2d.text.draw.fill.maxWidth.bound.html: Added.
* canvas/2d.text.draw.fill.maxWidth.fontface.html: Added.
* canvas/2d.text.draw.fill.maxWidth.large.html: Added.
* canvas/2d.text.draw.fill.maxWidth.negative-expected.txt: Added.
* canvas/2d.text.draw.fill.maxWidth.negative.html: Added.
* canvas/2d.text.draw.fill.maxWidth.small.html: Added.
* canvas/2d.text.draw.fill.maxWidth.zero.html: Added.
* canvas/2d.text.draw.fill.rtl.html: Added.
* canvas/2d.text.draw.fill.unaffected-expected.txt: Added.
* canvas/2d.text.draw.fill.unaffected.html: Added.
* canvas/2d.text.draw.fontface.html: Added.
* canvas/2d.text.draw.fontface.notinpage.html: Added.
* canvas/2d.text.draw.fontface.repeat.html: Added.
* canvas/2d.text.draw.kern.consistent.html: Added.
* canvas/2d.text.draw.space.basic.html: Added.
* canvas/2d.text.draw.space.collapse.nonspace.html: Added.
* canvas/2d.text.draw.stroke.basic.html: Added.
* canvas/2d.text.draw.stroke.unaffected-expected.txt: Added.
* canvas/2d.text.draw.stroke.unaffected.html: Added.
* canvas/2d.text.font.default-expected.txt: Added.
* canvas/2d.text.font.default.html: Added.
* canvas/2d.text.font.parse.basic-expected.txt: Added.
* canvas/2d.text.font.parse.basic.html: Added.
* canvas/2d.text.font.parse.complex-expected.txt: Added.
* canvas/2d.text.font.parse.complex.html: Added.
* canvas/2d.text.font.parse.invalid-expected.txt: Added.
* canvas/2d.text.font.parse.invalid.html: Added.
* canvas/2d.text.font.parse.size.percentage-expected.txt: Added.
* canvas/2d.text.font.parse.size.percentage.default-expected.txt: Added.
* canvas/2d.text.font.parse.size.percentage.default.html: Added.
* canvas/2d.text.font.parse.size.percentage.html: Added.
* canvas/2d.text.font.parse.system-expected.txt: Added.
* canvas/2d.text.font.parse.system.html: Added.
* canvas/2d.text.measure.width.basic.html: Added.
* canvas/2d.text.measure.width.empty-expected.txt: Added.
* canvas/2d.text.measure.width.empty.html: Added.
* canvas/2d.transformation.order-expected.txt: Added.
* canvas/2d.transformation.order.html: Added.
* canvas/2d.transformation.rotate.direction-expected.txt: Added.
* canvas/2d.transformation.rotate.direction.html: Added.
* canvas/2d.transformation.rotate.nonfinite-expected.txt: Added.
* canvas/2d.transformation.rotate.nonfinite.html: Added.
* canvas/2d.transformation.rotate.radians-expected.txt: Added.
* canvas/2d.transformation.rotate.radians.html: Added.
* canvas/2d.transformation.rotate.wrap-expected.txt: Added.
* canvas/2d.transformation.rotate.wrap.html: Added.
* canvas/2d.transformation.rotate.wrapnegative-expected.txt: Added.
* canvas/2d.transformation.rotate.wrapnegative.html: Added.
* canvas/2d.transformation.rotate.zero-expected.txt: Added.
* canvas/2d.transformation.rotate.zero.html: Added.
* canvas/2d.transformation.scale.basic-expected.txt: Added.
* canvas/2d.transformation.scale.basic.html: Added.
* canvas/2d.transformation.scale.large-expected.txt: Added.
* canvas/2d.transformation.scale.large.html: Added.
* canvas/2d.transformation.scale.multiple-expected.txt: Added.
* canvas/2d.transformation.scale.multiple.html: Added.
* canvas/2d.transformation.scale.negative-expected.txt: Added.
* canvas/2d.transformation.scale.negative.html: Added.
* canvas/2d.transformation.scale.nonfinite-expected.txt: Added.
* canvas/2d.transformation.scale.nonfinite.html: Added.
* canvas/2d.transformation.scale.zero-expected.txt: Added.
* canvas/2d.transformation.scale.zero.html: Added.
* canvas/2d.transformation.setTransform.multiple-expected.txt: Added.
* canvas/2d.transformation.setTransform.multiple.html: Added.
* canvas/2d.transformation.setTransform.nonfinite-expected.txt: Added.
* canvas/2d.transformation.setTransform.nonfinite.html: Added.
* canvas/2d.transformation.setTransform.skewed-expected.txt: Added.
* canvas/2d.transformation.setTransform.skewed.html: Added.
* canvas/2d.transformation.transform.identity-expected.txt: Added.
* canvas/2d.transformation.transform.identity.html: Added.
* canvas/2d.transformation.transform.multiply-expected.txt: Added.
* canvas/2d.transformation.transform.multiply.html: Added.
* canvas/2d.transformation.transform.nonfinite-expected.txt: Added.
* canvas/2d.transformation.transform.nonfinite.html: Added.
* canvas/2d.transformation.transform.skewed-expected.txt: Added.
* canvas/2d.transformation.transform.skewed.html: Added.
* canvas/2d.transformation.translate.basic-expected.txt: Added.
* canvas/2d.transformation.translate.basic.html: Added.
* canvas/2d.transformation.translate.nonfinite-expected.txt: Added.
* canvas/2d.transformation.translate.nonfinite.html: Added.
* canvas/2d.type.delete-expected.txt: Added.
* canvas/2d.type.delete.html: Added.
* canvas/2d.voidreturn-expected.txt: Added.
* canvas/2d.voidreturn.html: Added.
* canvas/canvas_colorsandstyles_addcolorstop_001-expected.txt: Added.
* canvas/canvas_colorsandstyles_addcolorstop_001.htm: Added.
* canvas/canvas_colorsandstyles_createlineargradient_001.htm: Added.
* canvas/canvas_complexshapes_arcto_001.htm: Added.
* canvas/canvas_complexshapes_beziercurveto_001.htm: Added.
* canvas/canvas_complexshapes_ispointInpath_001-expected.txt: Added.
* canvas/canvas_complexshapes_ispointInpath_001.htm: Added.
* canvas/canvas_compositing_globalcompositeoperation_001.htm: Added.
* canvas/canvas_linestyles_linecap_001.htm: Added.
* canvas/canvas_shadows_001.htm: Added.
* canvas/canvas_state_restore_001.htm: Added.
* canvas/canvas_text_font_001.htm: Added.
* canvas/canvas_transformations_scale_001.htm: Added.
* canvas/context.casesensitive-expected.txt: Added.
* canvas/context.casesensitive.html: Added.
* canvas/context.emptystring-expected.txt: Added.
* canvas/context.emptystring.html: Added.
* canvas/context.unrecognised.badname-expected.txt: Added.
* canvas/context.unrecognised.badname.html: Added.
* canvas/context.unrecognised.badsuffix-expected.txt: Added.
* canvas/context.unrecognised.badsuffix.html: Added.
* canvas/context.unrecognised.nullsuffix-expected.txt: Added.
* canvas/context.unrecognised.nullsuffix.html: Added.
* canvas/context.unrecognised.unicode-expected.txt: Added.
* canvas/context.unrecognised.unicode.html: Added.
* canvas/fallback.basic-expected.txt: Added.
* canvas/fallback.basic.html: Added.
* canvas/fallback.multiple-expected.txt: Added.
* canvas/fallback.multiple.html: Added.
* canvas/fallback.nested-expected.txt: Added.
* canvas/fallback.nested.html: Added.
* canvas/initial.colour-expected.txt: Added.
* canvas/initial.colour.html: Added.
* canvas/initial.reset.2dstate-expected.txt: Added.
* canvas/initial.reset.2dstate.html: Added.
* canvas/initial.reset.clip-expected.txt: Added.
* canvas/initial.reset.clip.html: Added.
* canvas/initial.reset.different-expected.txt: Added.
* canvas/initial.reset.different.html: Added.
* canvas/initial.reset.gradient-expected.txt: Added.
* canvas/initial.reset.gradient.html: Added.
* canvas/initial.reset.path-expected.txt: Added.
* canvas/initial.reset.path.html: Added.
* canvas/initial.reset.pattern-expected.txt: Added.
* canvas/initial.reset.pattern.html: Added.
* canvas/initial.reset.same-expected.txt: Added.
* canvas/initial.reset.same.html: Added.
* canvas/initial.reset.transform-expected.txt: Added.
* canvas/initial.reset.transform.html: Added.
* canvas/resources: Added.
* canvas/resources/2d.composite.canvas.copy.png: Added.
* canvas/resources/2d.composite.canvas.destination-atop.png: Added.
* canvas/resources/2d.composite.canvas.destination-in.png: Added.
* canvas/resources/2d.composite.canvas.destination-out.png: Added.
* canvas/resources/2d.composite.canvas.destination-over.png: Added.
* canvas/resources/2d.composite.canvas.lighter.png: Added.
* canvas/resources/2d.composite.canvas.source-atop.png: Added.
* canvas/resources/2d.composite.canvas.source-in.png: Added.
* canvas/resources/2d.composite.canvas.source-out.png: Added.
* canvas/resources/2d.composite.canvas.source-over.png: Added.
* canvas/resources/2d.composite.canvas.xor.png: Added.
* canvas/resources/2d.composite.image.copy.png: Added.
* canvas/resources/2d.composite.image.destination-atop.png: Added.
* canvas/resources/2d.composite.image.destination-in.png: Added.
* canvas/resources/2d.composite.image.destination-out.png: Added.
* canvas/resources/2d.composite.image.destination-over.png: Added.
* canvas/resources/2d.composite.image.lighter.png: Added.
* canvas/resources/2d.composite.image.source-atop.png: Added.
* canvas/resources/2d.composite.image.source-in.png: Added.
* canvas/resources/2d.composite.image.source-out.png: Added.
* canvas/resources/2d.composite.image.source-over.png: Added.
* canvas/resources/2d.composite.image.xor.png: Added.
* canvas/resources/2d.composite.solid.copy.png: Added.
* canvas/resources/2d.composite.solid.destination-atop.png: Added.
* canvas/resources/2d.composite.solid.destination-in.png: Added.
* canvas/resources/2d.composite.solid.destination-out.png: Added.
* canvas/resources/2d.composite.solid.destination-over.png: Added.
* canvas/resources/2d.composite.solid.lighter.png: Added.
* canvas/resources/2d.composite.solid.source-atop.png: Added.
* canvas/resources/2d.composite.solid.source-in.png: Added.
* canvas/resources/2d.composite.solid.source-out.png: Added.
* canvas/resources/2d.composite.solid.source-over.png: Added.
* canvas/resources/2d.composite.solid.xor.png: Added.
* canvas/resources/2d.composite.transparent.copy.png: Added.
* canvas/resources/2d.composite.transparent.destination-atop.png: Added.
* canvas/resources/2d.composite.transparent.destination-in.png: Added.
* canvas/resources/2d.composite.transparent.destination-out.png: Added.
* canvas/resources/2d.composite.transparent.destination-over.png: Added.
* canvas/resources/2d.composite.transparent.lighter.png: Added.
* canvas/resources/2d.composite.transparent.source-atop.png: Added.
* canvas/resources/2d.composite.transparent.source-in.png: Added.
* canvas/resources/2d.composite.transparent.source-out.png: Added.
* canvas/resources/2d.composite.transparent.source-over.png: Added.
* canvas/resources/2d.composite.transparent.xor.png: Added.
* canvas/resources/2d.composite.uncovered.fill.copy.png: Added.
* canvas/resources/2d.composite.uncovered.fill.destination-atop.png: Added.
* canvas/resources/2d.composite.uncovered.fill.destination-in.png: Added.
* canvas/resources/2d.composite.uncovered.fill.source-in.png: Added.
* canvas/resources/2d.composite.uncovered.fill.source-out.png: Added.
* canvas/resources/2d.composite.uncovered.image.copy.png: Added.
* canvas/resources/2d.composite.uncovered.image.destination-atop.png: Added.
* canvas/resources/2d.composite.uncovered.image.destination-in.png: Added.
* canvas/resources/2d.composite.uncovered.image.source-in.png: Added.
* canvas/resources/2d.composite.uncovered.image.source-out.png: Added.
* canvas/resources/2d.composite.uncovered.nocontext.copy.png: Added.
* canvas/resources/2d.composite.uncovered.nocontext.destination-atop.png: Added.
* canvas/resources/2d.composite.uncovered.nocontext.destination-in.png: Added.
* canvas/resources/2d.composite.uncovered.nocontext.source-in.png: Added.
* canvas/resources/2d.composite.uncovered.nocontext.source-out.png: Added.
* canvas/resources/2d.composite.uncovered.pattern.copy.png: Added.
* canvas/resources/2d.composite.uncovered.pattern.destination-atop.png: Added.
* canvas/resources/2d.composite.uncovered.pattern.destination-in.png: Added.
* canvas/resources/2d.composite.uncovered.pattern.source-in.png: Added.
* canvas/resources/2d.composite.uncovered.pattern.source-out.png: Added.
* canvas/resources/2d.coordinatespace.png: Added.
* canvas/resources/2d.fillStyle.parse.current.removed.png: Added.
* canvas/resources/2d.fillStyle.parse.hex3.png: Added.
* canvas/resources/2d.fillStyle.parse.hex6.png: Added.
* canvas/resources/2d.fillStyle.parse.hsl-1.png: Added.
* canvas/resources/2d.fillStyle.parse.hsl-2.png: Added.
* canvas/resources/2d.fillStyle.parse.hsl-3.png: Added.
* canvas/resources/2d.fillStyle.parse.hsl-4.png: Added.
* canvas/resources/2d.fillStyle.parse.hsl-5.png: Added.
* canvas/resources/2d.fillStyle.parse.hsl-6.png: Added.
* canvas/resources/2d.fillStyle.parse.hsl-clamp-1.png: Added.
* canvas/resources/2d.fillStyle.parse.hsl-clamp-2.png: Added.
* canvas/resources/2d.fillStyle.parse.hsl-clamp-3.png: Added.
* canvas/resources/2d.fillStyle.parse.hsl-clamp-4.png: Added.
* canvas/resources/2d.fillStyle.parse.hsla-1.png: Added.
* canvas/resources/2d.fillStyle.parse.hsla-2.png: Added.
* canvas/resources/2d.fillStyle.parse.hsla-clamp-1.png: Added.
* canvas/resources/2d.fillStyle.parse.hsla-clamp-2.png: Added.
* canvas/resources/2d.fillStyle.parse.hsla-clamp-3.png: Added.
* canvas/resources/2d.fillStyle.parse.hsla-clamp-4.png: Added.
* canvas/resources/2d.fillStyle.parse.hsla-clamp-5.png: Added.
* canvas/resources/2d.fillStyle.parse.hsla-clamp-6.png: Added.
* canvas/resources/2d.fillStyle.parse.html4.png: Added.
* canvas/resources/2d.fillStyle.parse.rgb-clamp-1.png: Added.
* canvas/resources/2d.fillStyle.parse.rgb-clamp-2.png: Added.
* canvas/resources/2d.fillStyle.parse.rgb-clamp-3.png: Added.
* canvas/resources/2d.fillStyle.parse.rgb-clamp-4.png: Added.
* canvas/resources/2d.fillStyle.parse.rgb-clamp-5.png: Added.
* canvas/resources/2d.fillStyle.parse.rgb-eof.png: Added.
* canvas/resources/2d.fillStyle.parse.rgb-num.png: Added.
* canvas/resources/2d.fillStyle.parse.rgb-percent.png: Added.
* canvas/resources/2d.fillStyle.parse.rgba-clamp-1.png: Added.
* canvas/resources/2d.fillStyle.parse.rgba-clamp-2.png: Added.
* canvas/resources/2d.fillStyle.parse.rgba-eof.png: Added.
* canvas/resources/2d.fillStyle.parse.rgba-num-1.png: Added.
* canvas/resources/2d.fillStyle.parse.rgba-num-2.png: Added.
* canvas/resources/2d.fillStyle.parse.rgba-percent.png: Added.
* canvas/resources/2d.fillStyle.parse.rgba-solid-1.png: Added.
* canvas/resources/2d.fillStyle.parse.rgba-solid-2.png: Added.
* canvas/resources/2d.fillStyle.parse.rgba-solid-3.png: Added.
* canvas/resources/2d.fillStyle.parse.rgba-solid-4.png: Added.
* canvas/resources/2d.fillStyle.parse.svg-1.png: Added.
* canvas/resources/2d.fillStyle.parse.svg-2.png: Added.
* canvas/resources/2d.fillStyle.parse.transparent-1.png: Added.
* canvas/resources/2d.fillStyle.parse.transparent-2.png: Added.
* canvas/resources/2d.gradient.interpolate.alpha.png: Added.
* canvas/resources/2d.gradient.interpolate.colour.png: Added.
* canvas/resources/2d.gradient.interpolate.colouralpha.png: Added.
* canvas/resources/2d.gradient.interpolate.multiple.png: Added.
* canvas/resources/2d.gradient.interpolate.overlap.png: Added.
* canvas/resources/2d.gradient.interpolate.vertical.png: Added.
* canvas/resources/2d.gradient.object.current.png: Added.
* canvas/resources/2d.imageData.put.alpha.png: Added.
* canvas/resources/2d.path.fill.overlap.png: Added.
* canvas/resources/2d.path.stroke.overlap.png: Added.
* canvas/resources/2d.scaled.png: Added.
* canvas/resources/2d.shadow.alpha.2.png: Added.
* canvas/resources/2d.shadow.alpha.3.png: Added.
* canvas/resources/2d.shadow.alpha.4.png: Added.
* canvas/resources/2d.shadow.alpha.5.png: Added.
* canvas/resources/2d.shadow.blur.high.png: Added.
* canvas/resources/2d.shadow.blur.low.png: Added.
* canvas/resources/2d.shadow.canvas.alpha.png: Added.
* canvas/resources/2d.shadow.gradient.alpha.png: Added.
* canvas/resources/2d.shadow.image.alpha.png: Added.
* canvas/resources/2d.shadow.pattern.alpha.png: Added.
* canvas/resources/2d.text.draw.fill.basic.png: Added.
* canvas/resources/2d.text.draw.fill.maxWidth.large.png: Added.
* canvas/resources/2d.text.draw.fill.rtl.png: Added.
* canvas/resources/2d.text.draw.stroke.basic.png: Added.
* canvas/resources/anim-gr.gif: Added.
* canvas/resources/anim-gr.png: Added.
* canvas/resources/anim-poster-gr.png: Added.
* canvas/resources/broken.png: Added.
* canvas/resources/clear-100x50.png: Added.
* canvas/resources/ggrr-256x256.png: Added.
* canvas/resources/green-100x50.png: Added.
* canvas/resources/green-1x1.png: Added.
* canvas/resources/green.png: Added.
* canvas/resources/initial.colour.png: Added.
* canvas/resources/initial.reset.different.png: Added.
* canvas/resources/initial.reset.path.png: Added.
* canvas/resources/initial.reset.same.png: Added.
* canvas/resources/red-16x16.png: Added.
* canvas/resources/red.png: Added.
* canvas/resources/redtransparent.png: Added.
* canvas/resources/rgrg-256x256.png: Added.
* canvas/resources/rrgg-256x256.png: Added.
* canvas/resources/size.attributes.default.png: Added.
* canvas/resources/size.attributes.get.png: Added.
* canvas/resources/size.attributes.parse.decimal.png: Added.
* canvas/resources/size.attributes.parse.em.png: Added.
* canvas/resources/size.attributes.parse.empty.png: Added.
* canvas/resources/size.attributes.parse.exp.png: Added.
* canvas/resources/size.attributes.parse.junk.png: Added.
* canvas/resources/size.attributes.parse.minus.png: Added.
* canvas/resources/size.attributes.parse.octal.png: Added.
* canvas/resources/size.attributes.parse.onlyspace.png: Added.
* canvas/resources/size.attributes.parse.percent.png: Added.
* canvas/resources/size.attributes.parse.plus.png: Added.
* canvas/resources/size.attributes.parse.space.png: Added.
* canvas/resources/size.attributes.parse.trailingjunk.png: Added.
* canvas/resources/size.attributes.parse.whitespace.png: Added.
* canvas/resources/size.attributes.reflect.setcontent.png: Added.
* canvas/resources/size.attributes.reflect.setidl.png: Added.
* canvas/resources/size.attributes.removed.png: Added.
* canvas/resources/size.attributes.set.png: Added.
* canvas/resources/size.attributes.setAttribute.decimal.png: Added.
* canvas/resources/size.attributes.setAttribute.em.png: Added.
* canvas/resources/size.attributes.setAttribute.empty.png: Added.
* canvas/resources/size.attributes.setAttribute.exp.png: Added.
* canvas/resources/size.attributes.setAttribute.junk.png: Added.
* canvas/resources/size.attributes.setAttribute.minus.png: Added.
* canvas/resources/size.attributes.setAttribute.octal.png: Added.
* canvas/resources/size.attributes.setAttribute.onlyspace.png: Added.
* canvas/resources/size.attributes.setAttribute.percent.png: Added.
* canvas/resources/size.attributes.setAttribute.plus.png: Added.
* canvas/resources/size.attributes.setAttribute.space.png: Added.
* canvas/resources/size.attributes.setAttribute.trailingjunk.png: Added.
* canvas/resources/size.attributes.setAttribute.whitespace.png: Added.
* canvas/resources/size.attributes.style.png: Added.
* canvas/resources/toDataURL.jpeg.alpha.png: Added.
* canvas/resources/toDataURL.jpeg.primarycolours.png: Added.
* canvas/resources/toDataURL.jpeg.quality.basic.png: Added.
* canvas/resources/toDataURL.png.complexcolours.png: Added.
* canvas/resources/toDataURL.png.primarycolours.png: Added.
* canvas/resources/transparent.png: Added.
* canvas/resources/transparent50.png: Added.
* canvas/resources/yellow.png: Added.
* canvas/resources/yellow75.png: Added.
* canvas/security.dataURI.html: Added.
* canvas/security.drawImage.canvas-expected.txt: Added.
* canvas/security.drawImage.canvas.html: Added.
* canvas/security.drawImage.image-expected.txt: Added.
* canvas/security.drawImage.image.html: Added.
* canvas/security.pattern.canvas.fillStyle-expected.txt: Added.
* canvas/security.pattern.canvas.fillStyle.html: Added.
* canvas/security.pattern.canvas.strokeStyle-expected.txt: Added.
* canvas/security.pattern.canvas.strokeStyle.html: Added.
* canvas/security.pattern.canvas.timing-expected.txt: Added.
* canvas/security.pattern.canvas.timing.html: Added.
* canvas/security.pattern.create-expected.txt: Added.
* canvas/security.pattern.create.html: Added.
* canvas/security.pattern.cross-expected.txt: Added.
* canvas/security.pattern.cross.html: Added.
* canvas/security.pattern.image.fillStyle-expected.txt: Added.
* canvas/security.pattern.image.fillStyle.html: Added.
* canvas/security.pattern.image.strokeStyle-expected.txt: Added.
* canvas/security.pattern.image.strokeStyle.html: Added.
* canvas/security.reset-expected.txt: Added.
* canvas/security.reset.html: Added.
* canvas/size.attributes.default-expected.txt: Added.
* canvas/size.attributes.default.html: Added.
* canvas/size.attributes.get-expected.txt: Added.
* canvas/size.attributes.get.html: Added.
* canvas/size.attributes.idl-expected.txt: Added.
* canvas/size.attributes.idl.html: Added.
* canvas/size.attributes.idl.set.zero-expected.txt: Added.
* canvas/size.attributes.idl.set.zero.html: Added.
* canvas/size.attributes.parse.decimal-expected.txt: Added.
* canvas/size.attributes.parse.decimal.html: Added.
* canvas/size.attributes.parse.em-expected.txt: Added.
* canvas/size.attributes.parse.em.html: Added.
* canvas/size.attributes.parse.empty-expected.txt: Added.
* canvas/size.attributes.parse.empty.html: Added.
* canvas/size.attributes.parse.exp-expected.txt: Added.
* canvas/size.attributes.parse.exp.html: Added.
* canvas/size.attributes.parse.hex-expected.txt: Added.
* canvas/size.attributes.parse.hex.html: Added.
* canvas/size.attributes.parse.junk-expected.txt: Added.
* canvas/size.attributes.parse.junk.html: Added.
* canvas/size.attributes.parse.minus-expected.txt: Added.
* canvas/size.attributes.parse.minus.html: Added.
* canvas/size.attributes.parse.octal-expected.txt: Added.
* canvas/size.attributes.parse.octal.html: Added.
* canvas/size.attributes.parse.onlyspace-expected.txt: Added.
* canvas/size.attributes.parse.onlyspace.html: Added.
* canvas/size.attributes.parse.percent-expected.txt: Added.
* canvas/size.attributes.parse.percent.html: Added.
* canvas/size.attributes.parse.plus-expected.txt: Added.
* canvas/size.attributes.parse.plus.html: Added.
* canvas/size.attributes.parse.space-expected.txt: Added.
* canvas/size.attributes.parse.space.html: Added.
* canvas/size.attributes.parse.trailingjunk-expected.txt: Added.
* canvas/size.attributes.parse.trailingjunk.html: Added.
* canvas/size.attributes.parse.whitespace-expected.txt: Added.
* canvas/size.attributes.parse.whitespace.html: Added.
* canvas/size.attributes.parse.zero-expected.txt: Added.
* canvas/size.attributes.parse.zero.html: Added.
* canvas/size.attributes.reflect.setcontent-expected.txt: Added.
* canvas/size.attributes.reflect.setcontent.html: Added.
* canvas/size.attributes.reflect.setidl-expected.txt: Added.
* canvas/size.attributes.reflect.setidl.html: Added.
* canvas/size.attributes.reflect.setidlzero-expected.txt: Added.
* canvas/size.attributes.reflect.setidlzero.html: Added.
* canvas/size.attributes.removed-expected.txt: Added.
* canvas/size.attributes.removed.html: Added.
* canvas/size.attributes.set-expected.txt: Added.
* canvas/size.attributes.set.html: Added.
* canvas/size.attributes.setAttribute.decimal-expected.txt: Added.
* canvas/size.attributes.setAttribute.decimal.html: Added.
* canvas/size.attributes.setAttribute.em-expected.txt: Added.
* canvas/size.attributes.setAttribute.em.html: Added.
* canvas/size.attributes.setAttribute.empty-expected.txt: Added.
* canvas/size.attributes.setAttribute.empty.html: Added.
* canvas/size.attributes.setAttribute.exp-expected.txt: Added.
* canvas/size.attributes.setAttribute.exp.html: Added.
* canvas/size.attributes.setAttribute.hex-expected.txt: Added.
* canvas/size.attributes.setAttribute.hex.html: Added.
* canvas/size.attributes.setAttribute.junk-expected.txt: Added.
* canvas/size.attributes.setAttribute.junk.html: Added.
* canvas/size.attributes.setAttribute.minus-expected.txt: Added.
* canvas/size.attributes.setAttribute.minus.html: Added.
* canvas/size.attributes.setAttribute.octal-expected.txt: Added.
* canvas/size.attributes.setAttribute.octal.html: Added.
* canvas/size.attributes.setAttribute.onlyspace-expected.txt: Added.
* canvas/size.attributes.setAttribute.onlyspace.html: Added.
* canvas/size.attributes.setAttribute.percent-expected.txt: Added.
* canvas/size.attributes.setAttribute.percent.html: Added.
* canvas/size.attributes.setAttribute.plus-expected.txt: Added.
* canvas/size.attributes.setAttribute.plus.html: Added.
* canvas/size.attributes.setAttribute.space-expected.txt: Added.
* canvas/size.attributes.setAttribute.space.html: Added.
* canvas/size.attributes.setAttribute.trailingjunk-expected.txt: Added.
* canvas/size.attributes.setAttribute.trailingjunk.html: Added.
* canvas/size.attributes.setAttribute.whitespace-expected.txt: Added.
* canvas/size.attributes.setAttribute.whitespace.html: Added.
* canvas/size.attributes.setAttribute.zero-expected.txt: Added.
* canvas/size.attributes.setAttribute.zero.html: Added.
* canvas/size.attributes.style-expected.txt: Added.
* canvas/size.attributes.style.html: Added.
* canvas/toDataURL.arguments.1-expected.txt: Added.
* canvas/toDataURL.arguments.1.html: Added.
* canvas/toDataURL.arguments.2-expected.txt: Added.
* canvas/toDataURL.arguments.2.html: Added.
* canvas/toDataURL.arguments.3-expected.txt: Added.
* canvas/toDataURL.arguments.3.html: Added.
* canvas/toDataURL.bogustype-expected.txt: Added.
* canvas/toDataURL.bogustype.html: Added.
* canvas/toDataURL.default-expected.txt: Added.
* canvas/toDataURL.default.html: Added.
* canvas/toDataURL.jpeg.alpha.html: Added.
* canvas/toDataURL.jpeg.primarycolours.html: Added.
* canvas/toDataURL.jpeg.quality.basic.html: Added.
* canvas/toDataURL.jpeg.quality.notnumber-expected.txt: Added.
* canvas/toDataURL.jpeg.quality.notnumber.html: Added.
* canvas/toDataURL.jpeg.quality.outsiderange-expected.txt: Added.
* canvas/toDataURL.jpeg.quality.outsiderange.html: Added.
* canvas/toDataURL.lowercase.ascii-expected.txt: Added.
* canvas/toDataURL.lowercase.ascii.html: Added.
* canvas/toDataURL.lowercase.unicode-expected.txt: Added.
* canvas/toDataURL.lowercase.unicode.html: Added.
* canvas/toDataURL.nocontext-expected.txt: Added.
* canvas/toDataURL.nocontext.html: Added.
* canvas/toDataURL.png-expected.txt: Added.
* canvas/toDataURL.png.complexcolours.html: Added.
* canvas/toDataURL.png.html: Added.
* canvas/toDataURL.png.primarycolours.html: Added.
* canvas/toDataURL.unrecognised-expected.txt: Added.
* canvas/toDataURL.unrecognised.html: Added.
* canvas/toDataURL.zerosize-expected.txt: Added.
* canvas/toDataURL.zerosize.html: Added.
* canvas/type.delete-expected.txt: Added.
* canvas/type.delete.html: Added.
* canvas/type.exists-expected.txt: Added.
* canvas/type.exists.html: Added.
* canvas/type.extend-expected.txt: Added.
* canvas/type.extend.html: Added.
* canvas/type.name-expected.txt: Added.
* canvas/type.name.html: Added.
* canvas/type.prototype-expected.txt: Added.
* canvas/type.prototype.html: Added.
* canvas/type.replace-expected.txt: Added.
* canvas/type.replace.html: Added.
* common: Added.
* common/canvas-frame.css: Added.
* common/canvas-index.css: Added.
* common/canvas-spec.css: Added.
* common/canvas-tests.css: Added.
* common/canvas-tests.js: Added.
* common/domtestcase.js: Added.
* common/media.js: Added.
* common/text-plain.txt: Added.

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

4 years agoUpdate some artwork for the legacy WebKit action menu
timothy_horton@apple.com [Fri, 14 Nov 2014 23:38:55 +0000 (23:38 +0000)]
Update some artwork for the legacy WebKit action menu
https://bugs.webkit.org/show_bug.cgi?id=138758
<rdar://problem/18989840>

Reviewed by Simon Fraser.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _createActionMenuItemForTag:]):

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

4 years ago[iOS] NSFileManager and QuickLook SPI not available in public SDK
dbates@webkit.org [Fri, 14 Nov 2014 23:31:48 +0000 (23:31 +0000)]
[iOS] NSFileManager and QuickLook SPI not available in public SDK
https://bugs.webkit.org/show_bug.cgi?id=138742

Reviewed by Pratik Solanki.

Source/WebCore:

Add a SPI wrapper headers {NSFileManager, QuickLook}SPI.h that forward declares
NSFileManager and QuickLook SPI, respectively, and use these header instead of
including private headers of Foundation and QuickLook directly.

* WebCore.xcodeproj/project.pbxproj: Add project and private header QuickLookSPI.h
and NSFileManagerSPI.h, respectively.
* platform/network/ios/QuickLook.mm: Include headers QuickLookSPI.h and NSFileManagerSPI.h
instead of including headers of QuickLook and Foundation directly.
* platform/spi/cocoa/NSFileManagerSPI.h: Added.
* platform/spi/ios/QuickLookSPI.h: Added.

Source/WebKit/mac:

Include header NSFileManagerSPI.h instead of the private header NSFileManager_NSURLExtras.h.

* WebCoreSupport/WebFrameLoaderClient.mm:

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

4 years agoApplication test expectation gardening on WK2.
ap@apple.com [Fri, 14 Nov 2014 23:06:30 +0000 (23:06 +0000)]
Application test expectation gardening on WK2.

* platform/mac-wk2/TestExpectations: Skip two tests that toggle private browsing,
and added a bug number to http/tests/appcache/auth.html.

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

4 years ago[iOS] CoreGraphics SPI not available in public SDK
dbates@webkit.org [Fri, 14 Nov 2014 22:27:58 +0000 (22:27 +0000)]
[iOS] CoreGraphics SPI not available in public SDK
https://bugs.webkit.org/show_bug.cgi?id=138709

Reviewed by David Kilzer.

Source/WebCore:

Add a SPI wrapper header called CoreGraphicsSPI.h that forward declares
CoreGraphics SPI and use this header instead of including private headers
of CoreGraphics directly.

* WebCore.xcodeproj/project.pbxproj: Add WebCore private header CoreGraphicsSPI.h. Also remove header
CGFontUnicodeSupportSPI.h as its functionality has been incorporated into header CoreGraphicsSPI.h.
* WebCore.vcxproj/WebCore.vcxproj: Add WebCore private header CoreGraphicsSPI.h.
* WebCore.vcxproj/WebCore.vcxproj.filters: Add directories platform/spi and platform/spi/cg.
* WebCore.vcxproj/WebCoreCG.props: Add include directory platform/spi/cg.
* WebCore.vcxproj/copyForwardingHeaders.cmd: Copy WebCore headers from directory platform/spi/cg. This
is necessary because WebCore/platform/graphics/SimpleFontData.h includes CoreGraphicsSPI.h. And
WebCore/platform/graphics/SimpleFontData.h is compiled for the Apple Windows port.
* platform/graphics/SimpleFontData.h: Move CGFontRenderingStyle declaration and associated enum
from this file to file CoreGraphicsSPI.h and include header CoreGraphicsSPI.h.
* platform/graphics/cg/BitmapImageCG.cpp: Remove unnecessary #include of header CGContextPrivate.h.
* platform/graphics/cg/ColorCG.cpp: Include header CoreGraphicsSPI.h instead of including headers
of CoreGraphics directly.
* platform/graphics/cg/GraphicsContextCG.cpp: Move forward declarations of CoreGraphics functions
from this file to file CoreGraphicsSPI.h and include header CoreGraphicsSPI.h. Also sort the list
of #include directives.
* platform/graphics/cg/ImageSourceCG.cpp: Include header CoreGraphicsSPI.h instead of including
headers of CoreGraphics directly.
* platform/graphics/cg/PDFDocumentImage.cpp: Ditto.
* platform/graphics/cocoa/FontPlatformDataCocoa.mm: Ditto.
* platform/graphics/ios/FontCacheIOS.mm: Include header CoreGraphicsSPI.h instead of including
header <CoreGraphics/CGFontUnicodeSupport.h> directly.
* platform/graphics/ios/FontServicesIOS.mm: Include header CoreGraphicsSPI.h instead of including
headers of CoreGraphics directly.
* platform/graphics/ios/SimpleFontDataIOS.mm: Ditto.
* platform/graphics/mac/FontMac.mm: Move forward declarations of CoreGraphics functions from this
file to file CoreGraphicsSPI.h and include header CoreGraphicsSPI.h.
* platform/graphics/mac/GlyphPageTreeNodeMac.cpp: Substitute header CoreGraphicsSPI.h for CGFontUnicodeSupportSPI.h
and remove #include of headers CGFontUnicodeSupport.h (it will be included by CoreGraphicsSPI.h).
* platform/graphics/mac/SimpleFontDataMac.mm: Move forward declarations of CoreGraphics functions
from this file to file CoreGraphicsSPI.h and include header CoreGraphicsSPI.h.
* platform/ios/LegacyTileGrid.mm: Include header CoreGraphicsSPI.h instead of including headers of
CoreGraphics directly.
* platform/ios/wak/WKGraphics.h: Remove #include of header CoreGraphicsPrivate.h and forward declare
CGFontAntialiasingStyle Additionally, declare WKCompositeOperation as an alias of int and use this
data type instead of CGCompositeOperation (SPI). This approach lets us keep the definition of
CGCompositeOperation in file CoreGraphicsSPI.h, where all the other definitions/forward declarations
of CoreGraphics data types reside, as opposed to defining it in this file.
* platform/ios/wak/WKGraphics.mm:
(WKRectFillUsingOperation): Cast data type WKCompositeOperation to CGCompositeOperation and added
compile-time assert to ensure that the size of WKCompositeOperation is identical to the size of CGCompositeOperation.
* platform/graphics/cg/ImageSourceCG.cpp: Move CGImageCachingFlags declaration, associated enum, and
forward declaration of CGImageSetCachingFlags() from this file to file CoreGraphicsSPI.h and include
header CoreGraphicsSPI.h.
(WebCore::ImageSource::createFrameAtIndex): Fix incorrect comment.
* platform/spi/cocoa/CGFontUnicodeSupportSPI.h: Removed; moved its functionality into header CoreGraphicsSPI.h.
* platform/spi/cg/CoreGraphicsSPI.h: Added.
(CGFloatMin):
* rendering/RenderThemeIOS.mm: Substitute header CoreGraphics.h for CGPathPrivate.h as we no longer
make use of any functionality from CGPathPrivate.h in this file. The functionality we used from
CGPathPrivate.h, including CGPathAddRoundedRect(), has been moved to the public API header, CGPath.h,
which is included from header CoreGraphics.h.

Source/WebKit/ios:

Include header CoreGraphicsSPI.h instead of the private header CGFloat.h.

* WebCoreSupport/WebFixedPositionContent.mm:

Source/WebKit2:

Include header CoreGraphicsSPI.h instead of including headers of
CoreGraphics directly.

* UIProcess/API/Cocoa/WKWebView.mm:
* UIProcess/ios/WKScrollView.mm:

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

4 years ago[Media] Timeline scrubber not updating as the video plays
dino@apple.com [Fri, 14 Nov 2014 21:55:40 +0000 (21:55 +0000)]
[Media] Timeline scrubber not updating as the video plays
https://bugs.webkit.org/show_bug.cgi?id=138717
<rdar://problem/18957509>

Reviewed by Jer Noble.

Source/WebCore:

There is some confusing logic that determines
whether or not the controls are hidden, and a
slight error caused timelines to not advance unless
they were explicitly showing.

The fix was to be a bit more liberal in deciding
when the controls are showing, but still cautious
enough to stop up causing repaints when things
are hidden.

Test: media/media-controls-timeline-updates.html

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.controlsAreHidden): We only need
to check if we're an audio element or explicitly
hidden.
(Controller.prototype.showControls): Explicitly call
updateTime.

LayoutTests:

Tests that an inline video will actually advance the
timeline scrubber if it plays momentarily.

Eric wrote all the hard bits here. I just changed
a few lines to test if the timeline had moved from 0.
Unfortunately we can't rely on the timeline value
being identical to the currentTime of the media element,
because we only move the timeline when we get events.

* media/media-controls-timeline-updates.html: Added.

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

4 years agoMove DataDetectors scanning code to WebCore
timothy_horton@apple.com [Fri, 14 Nov 2014 21:33:03 +0000 (21:33 +0000)]
Move DataDetectors scanning code to WebCore
https://bugs.webkit.org/show_bug.cgi?id=138731
<rdar://problem/18877535>

Reviewed by Anders Carlsson.

Move DataDetectors scanning code to WebCore, so that both WebKits can use it.

* Shared/TextIndicator.cpp:
(WebKit::TextIndicator::createWithRange):
Move createWithRange in from WebPageMac's textIndicatorForRange.

(WebKit::TextIndicator::createWithSelectionInFrame):
* Shared/TextIndicator.h:
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createSelectionSnapshot):
* WebProcess/WebPage/WebFrame.h:
Constify some things.

* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performActionMenuHitTestAtLocation):
Avoid using the DD result if it didn't come with a non-null Range.
Make use of detectItemAroundHitTestResult and TextIndicator::createWithRange.

(WebKit::scanForDataDetectedItems): Deleted.
(WebKit::textIndicatorForRange): Deleted.
Moved these two to other places.

* WebCore.exp.in:
Export our new function.

* WebCore.xcodeproj/project.pbxproj:
Add DataDetection.{mm, h}
Adjust the project so that editing/mac actually points to editing/mac instead of editing/

* editing/mac/DictionaryLookup.h:
* editing/mac/DictionaryLookup.mm:
Swap to PLATFORM(MAC) instead of !PLATFORM(IOS).
Move DictionaryLookup.{mm, h} to editing/mac, where they were in the project but not on disk.

* editing/mac/DataDetection.h: Added.
* editing/mac/DataDetection.mm: Added.
(WebCore::DataDetection::detectItemAroundHitTestResult):
Moved from WebKit2.

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

4 years ago<rdar://problem/18978497> Wrong (off-by-1) navigation snapshots shown after a mix...
mitz@apple.com [Fri, 14 Nov 2014 21:28:53 +0000 (21:28 +0000)]
<rdar://problem/18978497> Wrong (off-by-1) navigation snapshots shown after a mix of gesture and button back/forward navigation
https://bugs.webkit.org/show_bug.cgi?id=138753

Reviewed by Tim Horton.

Source/WebCore:

Removed a FrameLoaderClient function that no one overrides anymore.

* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::willChangeCurrentHistoryItem): Deleted.
* loader/HistoryController.cpp:
(WebCore::HistoryController::setCurrentItem): Removed call to willChangeCurrentHistoryItem.
(WebCore::HistoryController::replaceCurrentItem): Ditto.

Source/WebKit2:

Rather than having the UI process record a snapshot jut before the Web Content process’s
notion of its current back/forward list item changes, have the UI process record a snapshot
right before its own current back/forward list item changes. This ensures that the right
snapshot gets attached to the right item in the UI process.

* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::addItem): If there is a current item, record a navigation
snapshot of it before making the new item current.
(WebKit::WebBackForwardList::goToItem): If there is a current item, record a navigation
snapshot of it before making another item current.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::willChangeCurrentHistoryItemForMainFrame): Deleted.
* UIProcess/WebPageProxy.h:

* UIProcess/WebPageProxy.messages.in: Removed willChangeCurrentHistoryItemForMainFrame
message.

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::willChangeCurrentHistoryItem): Deleted.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h: Removed declaration of
willChangeCurrentHistoryItem override.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willChangeCurrentHistoryItemForMainFrame): Deleted.
* WebProcess/WebPage/WebPage.h:

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

4 years agoDo proper teardown for optimized fullscreen
commit-queue@webkit.org [Fri, 14 Nov 2014 20:44:49 +0000 (20:44 +0000)]
Do proper teardown for optimized fullscreen
https://bugs.webkit.org/show_bug.cgi?id=138648

Patch by Jeremy Jones <jeremyj@apple.com> on 2014-11-14
Reviewed by Eric Carlson.

* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::invalidate): must do corresponding teardown based on mode.

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

4 years agoReduce amount of cut-and-paste needed for probe mechanism implementations.
mark.lam@apple.com [Fri, 14 Nov 2014 20:24:55 +0000 (20:24 +0000)]
Reduce amount of cut-and-paste needed for probe mechanism implementations.
<https://webkit.org/b/138671>

Reviewed by Geoffrey Garen.

The existing code requires that each MacroAssembler implementation provide
their own copy of all of the probe implementations even when most of it is
identical.  This patch hoists the common parts into AbstractMacroAssembler
(with some minor renaming).  Each target specific MacroAssembler now only
need to implement a few target specific methods that are expected by and
documented in AbstractMacroAssembler.h in the ENABLE(MASM_PROBE) section.

In this patch, I also simplified the X86 and X86_64 ports to use the same
port implementation.  The ARMv7 probe implementation should not conditionally
exclude the higher FP registers (since the JIT doesn't).  Fixed the ARMv7
probe code to include the higher FP registers always.

This is all done in preparation to add printing functionality in JITted code
for debugging.

* assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::Label::Label):
(JSC::AbstractMacroAssembler::ConvertibleLoadLabel::ConvertibleLoadLabel):
(JSC::AbstractMacroAssembler::DataLabelPtr::DataLabelPtr):
(JSC::AbstractMacroAssembler::DataLabel32::DataLabel32):
(JSC::AbstractMacroAssembler::DataLabelCompact::DataLabelCompact):
(JSC::AbstractMacroAssembler::Jump::link):
(JSC::AbstractMacroAssembler::Jump::linkTo):
(JSC::AbstractMacroAssembler::JumpList::link):
(JSC::AbstractMacroAssembler::JumpList::linkTo):
(JSC::AbstractMacroAssembler::ProbeContext::print):
(JSC::AbstractMacroAssembler::printIndent):
(JSC::AbstractMacroAssembler::printCPU):
(JSC::AbstractMacroAssembler::CachedTempRegister::CachedTempRegister):
- Except for the 3 printing methods (which are for the probe), the rest
  are touched simply because we need to add the MacroAssemblerType to the
  template args.
  The MacroAssemblerType is used by the abstract probe code to call the
  few probe methods that need to have CPU specific implementations.

* assembler/MacroAssemblerARM.cpp:
(JSC::MacroAssemblerARM::printCPURegisters):
- This was refactored from ProbeContext::dumpCPURegisters() which no
  longer exists.
(JSC::MacroAssemblerARM::ProbeContext::dumpCPURegisters): Deleted.
(JSC::MacroAssemblerARM::ProbeContext::dump): Deleted.

* assembler/MacroAssemblerARM.h:
* assembler/MacroAssemblerARM64.h:

* assembler/MacroAssemblerARMv7.cpp:
(JSC::MacroAssemblerARMv7::printCPURegisters):
- This was refactored from ProbeContext::dumpCPURegisters() which no
  longer exists.
(JSC::MacroAssemblerARMv7::ProbeContext::dumpCPURegisters): Deleted.
(JSC::MacroAssemblerARMv7::ProbeContext::dump): Deleted.

* assembler/MacroAssemblerARMv7.h:
* assembler/MacroAssemblerMIPS.h:
* assembler/MacroAssemblerSH4.h:
* assembler/MacroAssemblerX86.h:
(JSC::MacroAssemblerX86::trustedImm32FromPtr): Deleted.
(JSC::MacroAssemblerX86::probe): Deleted.

* assembler/MacroAssemblerX86Common.cpp:
(JSC::MacroAssemblerX86Common::printCPURegisters):
- This was refactored from ProbeContext::dumpCPURegisters() which no
  longer exists.
(JSC::MacroAssemblerX86Common::probe):
- This implementation of probe() is based on the one originally in
  MacroAssemblerX86_64.h.  It is generic and should work for both
  32-bit and 64-bit.
(JSC::MacroAssemblerX86Common::ProbeContext::dumpCPURegisters): Deleted.
(JSC::MacroAssemblerX86Common::ProbeContext::dump): Deleted.

* assembler/MacroAssemblerX86Common.h:
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::trustedImm64FromPtr): Deleted.
(JSC::MacroAssemblerX86_64::probe): Deleted.
* jit/JITStubsARMv7.h:

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

4 years agoAdd some tracing to help investigating <rdar://problem/18905383> [iOS] Crash due...
mitz@apple.com [Fri, 14 Nov 2014 20:05:26 +0000 (20:05 +0000)]
Add some tracing to help investigating <rdar://problem/18905383> [iOS] Crash due to null m_webPageProxyForBackForwardListForCurrentSwipe in ViewGestureController::endSwipeGesture
https://bugs.webkit.org/show_bug.cgi?id=138750

Reviewed by Tim Horton.

Emit trace messages at various points, and log them prior to crashing if the error condition
occurs. Otherwise, clear the trace messages.

* UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::addLogEntry): Helper function that adds a message, including a time stamp and a
backtrace, to m_logEntries.
(WebKit::dumpLogEntries): Helper function that logs everything in m_logEntries.
(WebKit::ViewGestureController::beginSwipeGesture): Add a log entry.
(WebKit::ViewGestureController::endSwipeGesture): If
m_webPageProxyForBackForwardListForCurrentSwipe is null, dump the log entries just before
crashing. Otherwise, clear m_logEntries.
(WebKit::ViewGestureController::willCommitPostSwipeTransitionLayerTree): Add a log entry.
(WebKit::ViewGestureController::removeSwipeSnapshot): Add a log entry.
* UIProcess/mac/ViewGestureController.h: Defined ENABLE_VIEW_GESTURE_CONTROLLER_TRACING,
and added m_logEntries member variable.

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

4 years agoWK1: Webpage preview can come up in wrong location
bdakin@apple.com [Fri, 14 Nov 2014 19:25:34 +0000 (19:25 +0000)]
WK1: Webpage preview can come up in wrong location
https://bugs.webkit.org/show_bug.cgi?id=138747
-and corresponding-
rdar://problem/18979004

Reviewed by Tim Horton.

Converting to window twice is bad.
* WebView/WebActionMenuController.mm:
(elementBoundingBoxInWindowCoordinatesFromNode):
(-[WebActionMenuController _quickLookURLFromActionMenu:]):
(elementBoundingBoxFromNode): Deleted.

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

4 years agoURLs for some videos are not valid URLs, should not be exposed to action menu
bdakin@apple.com [Fri, 14 Nov 2014 19:12:51 +0000 (19:12 +0000)]
URLs for some videos are not valid URLs, should not be exposed to action menu
https://bugs.webkit.org/show_bug.cgi?id=138746
-and corresponding-
rdar://problem/18941927

Reviewed by Tim Horton.

If the video cannot be downloaded, that is also an indication that the URL of the
video will not be valid on its own. In these cases, we should share or copy the
main page’s URL.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForVideo]):
(-[WKActionMenuController _copyVideoURL:]):

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

4 years agoTest that small caps of web fonts works regardless of where the font face is declared
ap@apple.com [Fri, 14 Nov 2014 18:26:20 +0000 (18:26 +0000)]
Test that small caps of web fonts works regardless of where the font face is declared
https://bugs.webkit.org/show_bug.cgi?id=138700

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-11-14
Reviewed by Alexey Proskuryakov.

* fast/text/svg-small-caps-expected.html: Added.
* fast/text/svg-small-caps.html: Added.

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

4 years agoAdd shortcut macros to Mac TestExpectations
ap@apple.com [Fri, 14 Nov 2014 18:25:44 +0000 (18:25 +0000)]
Add shortcut macros to Mac TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=138729

Reviewed by Simon Fraser.

* Scripts/webkitpy/port/mac.py: (MacPort.configuration_specifier_macros):
Add version macros for current OS versions.

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

4 years agoTest that small caps of web fonts works regardless of where the font face is declared
mmaxfield@apple.com [Fri, 14 Nov 2014 18:21:53 +0000 (18:21 +0000)]
Test that small caps of web fonts works regardless of where the font face is declared
https://bugs.webkit.org/show_bug.cgi?id=138700

Reviewed by Alexey Proskuryakov.

* fast/text/svg-small-caps-expected.html: Added.
* fast/text/svg-small-caps.html: Added.

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

4 years agoMany (most?) transitions tests are very flaky, frequently failing all at once
ap@apple.com [Fri, 14 Nov 2014 18:00:58 +0000 (18:00 +0000)]
Many (most?)  transitions tests are very flaky, frequently failing all at once
https://bugs.webkit.org/show_bug.cgi?id=137883

* TestExpectations:
* platform/mac/TestExpectations:
Add more affected tests to unbreak EWS.

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

4 years agoTable rows repaint entire table when their background color changes.
hyatt@apple.com [Fri, 14 Nov 2014 16:53:03 +0000 (16:53 +0000)]
Table rows repaint entire table when their background color changes.
https://bugs.webkit.org/show_bug.cgi?id=26662

Reviewed by Simon Fraser.

Added fast/repaint/table-row-repaint.html

Source/WebCore:

* rendering/RenderTableCell.h:
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::clippedOverflowRectForRepaint):
Improve table row's function to unite with the cell rects that can possibly
have the the row's background color painted behind them.

LayoutTests:

* fast/repaint/table-row-repaint-expected.txt: Added.
* fast/repaint/table-row-repaint.html: Added.
* platform/mac/accessibility/table-detection-expected.txt:

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

4 years agoSimple line layout: Move simple line layout RunResolver and LineResolver implementati...
zalan@apple.com [Fri, 14 Nov 2014 16:20:18 +0000 (16:20 +0000)]
Simple line layout: Move simple line layout RunResolver and LineResolver implementation to SimpleLineLayoutResolver.cpp
https://bugs.webkit.org/show_bug.cgi?id=138704

Reviewed by Antti Koivisto.

No change in functionality.

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* rendering/SimpleLineLayoutResolver.cpp: Added.
(WebCore::SimpleLineLayout::RunResolver::Run::Run):
(WebCore::SimpleLineLayout::RunResolver::Run::rect):
(WebCore::SimpleLineLayout::RunResolver::Run::baseline):
(WebCore::SimpleLineLayout::RunResolver::Run::text):
(WebCore::SimpleLineLayout::RunResolver::Iterator::Iterator):
(WebCore::SimpleLineLayout::RunResolver::Iterator::advance):
(WebCore::SimpleLineLayout::RunResolver::Iterator::advanceLines):
(WebCore::SimpleLineLayout::RunResolver::RunResolver):
(WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight):
(WebCore::SimpleLineLayout::RunResolver::rangeForRect):
(WebCore::SimpleLineLayout::LineResolver::Iterator::Iterator):
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator*):
(WebCore::SimpleLineLayout::LineResolver::LineResolver):
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Run::Run): Deleted.
(WebCore::SimpleLineLayout::RunResolver::Run::rect): Deleted.
(WebCore::SimpleLineLayout::RunResolver::Run::baseline): Deleted.
(WebCore::SimpleLineLayout::RunResolver::Run::text): Deleted.
(WebCore::SimpleLineLayout::RunResolver::Iterator::Iterator): Deleted.
(WebCore::SimpleLineLayout::RunResolver::Iterator::advance): Deleted.
(WebCore::SimpleLineLayout::RunResolver::Iterator::advanceLines): Deleted.
(WebCore::SimpleLineLayout::RunResolver::RunResolver): Deleted.
(WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight): Deleted.
(WebCore::SimpleLineLayout::RunResolver::rangeForRect): Deleted.
(WebCore::SimpleLineLayout::LineResolver::Iterator::Iterator): Deleted.
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator*): Deleted.
(WebCore::SimpleLineLayout::LineResolver::LineResolver): Deleted.

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

4 years agoAX: Improve AccessibilityTableCell isColumnHeaderCell function.
commit-queue@webkit.org [Fri, 14 Nov 2014 11:27:54 +0000 (11:27 +0000)]
AX: Improve AccessibilityTableCell isColumnHeaderCell function.
https://bugs.webkit.org/show_bug.cgi?id=138423

Patch by Andrzej Badowski <a.badowski@samsung.com> on 2014-11-14
Reviewed by Chris Fleizach.

Source/WebCore:

<th> cell in the zero row should be column header.

New tests are not necessary.

* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::isColumnHeaderCell):

LayoutTests:

Files of expected type are adapted to changes in the code of the function.

* accessibility/table-cells-roles-expected.txt:
* platform/efl/accessibility/table-attributes-expected.txt:
* platform/efl/accessibility/table-cells-expected.txt:
* platform/gtk/accessibility/table-attributes-expected.txt:
* platform/gtk/accessibility/table-cells-expected.txt:
* platform/mac/accessibility/table-attributes-expected.txt:
* platform/mac/accessibility/table-cells-expected.txt:

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

4 years agoUnreviewed GTK+ gardening. Skip http/tests/appcache/auth.html after r175776.
carlosgc@webkit.org [Fri, 14 Nov 2014 10:33:58 +0000 (10:33 +0000)]
Unreviewed GTK+ gardening. Skip http/tests/appcache/auth.html after r175776.

Appcache manifest is still downloaded in the WebProcess.

* platform/gtk/TestExpectations:

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

4 years ago[SOUP] Use GMainLoopSource for request timeout in ResourceHandle
carlosgc@webkit.org [Fri, 14 Nov 2014 09:21:48 +0000 (09:21 +0000)]
[SOUP] Use GMainLoopSource for request timeout in ResourceHandle
https://bugs.webkit.org/show_bug.cgi?id=138695

Reviewed by Sergio Villar Senin.

We are currently using soup_timeout_add() that simply creates a
GSource and attaches it to the given context. Using
GMainLoopSource we simplify the code and fix any potential problem
of converting the double value into milliseconds.

* platform/network/ResourceHandleInternal.h:
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::cleanupSoupRequestOperation):
(WebCore::ResourceHandle::sendPendingRequest):
(WebCore::ResourceHandle::platformSetDefersLoading):
(WebCore::requestTimeoutCallback): Deleted.

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

4 years ago[SOUP] Encode/Decode allowCookies in ResourceRequest
carlosgc@webkit.org [Fri, 14 Nov 2014 08:49:55 +0000 (08:49 +0000)]
[SOUP] Encode/Decode allowCookies in ResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=138730

Reviewed by Sergio Villar Senin.

We are not sending this information to the network process, making
cookies always available. Fixes
http/tests/xmlhttprequest/cross-origin-no-authorization.html when
network process is enabled.

* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):

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

4 years agoUnreviewed build fix for the GTK+ port using Clang.
zandobersek@gmail.com [Fri, 14 Nov 2014 08:43:05 +0000 (08:43 +0000)]
Unreviewed build fix for the GTK+ port using Clang.

* UIProcess/gtk/RedirectedXCompositeWindow.h: Include the <functional>
header for the use of std::function<>.

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

4 years agoRemove some ineffective entries.
ap@apple.com [Fri, 14 Nov 2014 08:21:40 +0000 (08:21 +0000)]
Remove some ineffective entries.

* platform/mac/TestExpectations: Remove entries that were meant to override other
ones, but don't.

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

4 years agoTwo WKWebView internal methods are implemented in a category
mitz@apple.com [Fri, 14 Nov 2014 06:57:52 +0000 (06:57 +0000)]
Two WKWebView internal methods are implemented in a category
https://bugs.webkit.org/show_bug.cgi?id=138728

Reviewed by Tim HOrton.

Moved the implementations from the category to the class.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _ignoresNonWheelMouseEvents]):
(-[WKWebView _setIgnoresNonWheelMouseEvents:]):

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

4 years ago[mac] Keep around more decoded image data, since it's purgeable
timothy_horton@apple.com [Fri, 14 Nov 2014 04:26:45 +0000 (04:26 +0000)]
[mac] Keep around more decoded image data, since it's purgeable
https://bugs.webkit.org/show_bug.cgi?id=125273
<rdar://problem/13205438>

Reviewed by Simon Fraser.

No new tests, just an optimization.

Instead of throwing away decoded image data eagerly, allow the operating
system to manage the memory via the standard purgeability mechanism,
where it can.

This improves the performance on some pathological cases (extremely large
animated GIFs) by up to 8x.

* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::pruneLiveResourcesToSize):
Don't prune live resources' decoded data if it is purgeable.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedDataIfNecessary):
Don't eagerly throw away decoded image data if it's purgeable.

* loader/cache/CachedImage.h:
* loader/cache/CachedResource.h:
(WebCore::CachedResource::decodedDataIsPurgeable):
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.h:
(WebCore::Image::decodedDataIsPurgeable):

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

4 years agoAddressing post-review comment
mmaxfield@apple.com [Fri, 14 Nov 2014 02:53:22 +0000 (02:53 +0000)]
Addressing post-review comment
https://bugs.webkit.org/show_bug.cgi?id=138633

* platform/spi/cg/CoreGraphicsSPI.h:

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

4 years agoRebaseline iOS layout tests
psolanki@apple.com [Fri, 14 Nov 2014 02:45:16 +0000 (02:45 +0000)]
Rebaseline iOS layout tests
https://bugs.webkit.org/show_bug.cgi?id=138721

Reviewed by Simon Fraser.

Rebaseline many of the failures in compositing tests.

* platform/ios-simulator/compositing/absolute-inside-out-of-view-fixed-expected.txt:
* platform/ios-simulator/compositing/backing/backface-visibility-flip-expected.txt:
* platform/ios-simulator/compositing/backing/backface-visibility-in-3dtransformed-expected.txt:
* platform/ios-simulator/compositing/backing/border-radius-no-backing-expected.txt:
* platform/ios-simulator/compositing/backing/child-layer-no-backing-expected.txt:
* platform/ios-simulator/compositing/backing/filter-no-backing-expected.txt:
* platform/ios-simulator/compositing/backing/inline-block-no-backing-expected.txt:
* platform/ios-simulator/compositing/backing/masked-child-no-backing-expected.txt:
* platform/ios-simulator/compositing/backing/no-backing-for-clip-expected.txt:
* platform/ios-simulator/compositing/backing/no-backing-for-clip-overhang-expected.txt:
* platform/ios-simulator/compositing/backing/no-backing-for-clip-overlap-expected.txt:
* platform/ios-simulator/compositing/backing/no-backing-for-perspective-expected.txt:
* platform/ios-simulator/compositing/backing/replaced-child-no-backing-expected.txt:
* platform/ios-simulator/compositing/backing/whitespace-nodes-no-backing-expected.txt:
* platform/ios-simulator/compositing/bounds-in-flipped-writing-mode-expected.txt:
* platform/ios-simulator/compositing/clip-child-by-non-stacking-ancestor-expected.txt:
* platform/ios-simulator/compositing/columns/ancestor-clipped-in-paginated-expected.txt:
* platform/ios-simulator/compositing/columns/clipped-in-paginated-expected.txt:
* platform/ios-simulator/compositing/columns/composited-columns-expected.txt:
* platform/ios-simulator/compositing/columns/composited-columns-vertical-rl-expected.txt:
* platform/ios-simulator/compositing/columns/composited-in-paginated-expected.txt:
* platform/ios-simulator/compositing/columns/composited-in-paginated-rl-expected.txt:
* platform/ios-simulator/compositing/columns/composited-in-paginated-writing-mode-rl-expected.txt:
* platform/ios-simulator/compositing/columns/composited-lr-paginated-repaint-expected.txt:
* platform/ios-simulator/compositing/columns/composited-nested-columns-expected.txt:
* platform/ios-simulator/compositing/columns/composited-rl-paginated-repaint-expected.txt:
* platform/ios-simulator/compositing/columns/hittest-composited-in-paginated-expected.txt:
* platform/ios-simulator/compositing/columns/rotated-in-paginated-expected.txt:
* platform/ios-simulator/compositing/columns/untransformed-composited-in-paginated-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/background-clip-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/background-color-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/body-background-painted-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/body-background-skipped-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/control-layer-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/filter-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/hidden-with-visible-child-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/hidden-with-visible-text-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/layer-opacity-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/layer-transform-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/overflow-hidden-child-layers-expected.txt:
* platform/ios-simulator/compositing/contents-opaque/visibility-hidden-expected.txt:
* platform/ios-simulator/compositing/contents-scale/animating-expected.txt:
* platform/ios-simulator/compositing/contents-scale/rounded-contents-scale-expected.txt:
* platform/ios-simulator/compositing/contents-scale/scaled-ancestor-expected.txt:
* platform/ios-simulator/compositing/contents-scale/simple-scale-expected.txt:
* platform/ios-simulator/compositing/contents-scale/z-translate-expected.txt:
* platform/ios-simulator/compositing/filters/sw-layer-overlaps-hw-shadow-expected.txt:
* platform/ios-simulator/compositing/filters/sw-nested-shadow-overlaps-hw-nested-shadow-expected.txt:
* platform/ios-simulator/compositing/filters/sw-shadow-overlaps-hw-layer-expected.txt:
* platform/ios-simulator/compositing/filters/sw-shadow-overlaps-hw-shadow-expected.txt:
* platform/ios-simulator/compositing/fixed-image-loading-expected.txt:
* platform/ios-simulator/compositing/geometry/ancestor-overflow-change-expected.txt:
* platform/ios-simulator/compositing/geometry/bounds-clipped-composited-child-expected.txt:
* platform/ios-simulator/compositing/geometry/bounds-ignores-hidden-composited-descendant-expected.txt:
* platform/ios-simulator/compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt:
* platform/ios-simulator/compositing/geometry/bounds-ignores-hidden-dynamic-negzindex-expected.txt:
* platform/ios-simulator/compositing/geometry/bounds-ignores-hidden-expected.txt:
* platform/ios-simulator/compositing/geometry/clip-expected.txt:
* platform/ios-simulator/compositing/geometry/clip-inside-expected.txt:
* platform/ios-simulator/compositing/geometry/composited-in-columns-expected.txt:
* platform/ios-simulator/compositing/geometry/fixed-position-composited-switch-expected.txt:
* platform/ios-simulator/compositing/geometry/flipped-writing-mode-expected.txt:
* platform/ios-simulator/compositing/geometry/foreground-layer-expected.txt:
* platform/ios-simulator/compositing/geometry/layer-due-to-layer-children-deep-switch-expected.txt:
* platform/ios-simulator/compositing/geometry/layer-due-to-layer-children-switch-expected.txt:
* platform/ios-simulator/compositing/geometry/limit-layer-bounds-fixed-expected.txt:
* platform/ios-simulator/compositing/geometry/limit-layer-bounds-fixed-positioned-expected.txt:
* platform/ios-simulator/compositing/geometry/limit-layer-bounds-overflow-root-expected.txt:
* platform/ios-simulator/compositing/geometry/limit-layer-bounds-positioned-expected.txt:
* platform/ios-simulator/compositing/geometry/limit-layer-bounds-positioned-transition-expected.txt:
* platform/ios-simulator/compositing/geometry/limit-layer-bounds-transformed-expected.txt:
* platform/ios-simulator/compositing/geometry/limit-layer-bounds-transformed-overflow-expected.txt:
* platform/ios-simulator/compositing/geometry/negative-text-indent-with-overflow-hidden-layer-expected.txt:
* platform/ios-simulator/compositing/geometry/preserve-3d-switching-expected.txt:
* platform/ios-simulator/compositing/geometry/vertical-scroll-composited-expected.txt:
* platform/ios-simulator/compositing/iframes/become-composited-nested-iframes-expected.txt:
* platform/ios-simulator/compositing/iframes/become-overlapped-iframe-expected.txt:
* platform/ios-simulator/compositing/iframes/composited-parent-iframe-expected.txt:
* platform/ios-simulator/compositing/iframes/connect-compositing-iframe-delayed-expected.txt:
* platform/ios-simulator/compositing/iframes/connect-compositing-iframe-expected.txt:
* platform/ios-simulator/compositing/iframes/connect-compositing-iframe2-expected.txt:
* platform/ios-simulator/compositing/iframes/connect-compositing-iframe3-expected.txt:
* platform/ios-simulator/compositing/iframes/enter-compositing-iframe-expected.txt:
* platform/ios-simulator/compositing/iframes/iframe-resize-expected.txt:
* platform/ios-simulator/compositing/iframes/iframe-size-from-zero-expected.txt:
* platform/ios-simulator/compositing/iframes/iframe-size-to-zero-expected.txt: Progression.
* platform/ios-simulator/compositing/iframes/iframe-src-change-expected.txt: Progression.
* platform/ios-simulator/compositing/iframes/invisible-nested-iframe-hide-expected.txt:
* platform/ios-simulator/compositing/iframes/leave-compositing-iframe-expected.txt:
* platform/ios-simulator/compositing/iframes/overlapped-iframe-expected.txt:
* platform/ios-simulator/compositing/iframes/overlapped-iframe-iframe-expected.txt:
* platform/ios-simulator/compositing/iframes/overlapped-nested-iframes-expected.txt:
* platform/ios-simulator/compositing/iframes/page-cache-layer-tree-expected.txt:
* platform/ios-simulator/compositing/iframes/resizer-expected.txt:
* platform/ios-simulator/compositing/iframes/scrolling-iframe-expected.txt:
* platform/ios-simulator/compositing/images/clip-on-directly-composited-image-expected.txt:
* platform/ios-simulator/compositing/layer-creation/animation-overlap-with-children-expected.txt:
* platform/ios-simulator/compositing/layer-creation/fixed-position-and-transform-expected.txt:
* platform/ios-simulator/compositing/layer-creation/fixed-position-change-out-of-view-in-view-expected.txt:
* platform/ios-simulator/compositing/layer-creation/fixed-position-out-of-view-expected.txt:
* platform/ios-simulator/compositing/layer-creation/fixed-position-out-of-view-scaled-expected.txt:
* platform/ios-simulator/compositing/layer-creation/fixed-position-out-of-view-scaled-scroll-expected.txt:
* platform/ios-simulator/compositing/layer-creation/fixed-position-transformed-into-view-expected.txt:
* platform/ios-simulator/compositing/layer-creation/fixed-position-under-transform-expected.txt:
* platform/ios-simulator/compositing/layer-creation/no-compositing-for-fixed-position-under-transform-expected.txt:
* platform/ios-simulator/compositing/layer-creation/no-compositing-for-preserve-3d-expected.txt:
* platform/ios-simulator/compositing/layer-creation/no-compositing-for-sticky-expected.txt:
* platform/ios-simulator/compositing/layer-creation/overflow-scroll-overlap-expected.txt:
* platform/ios-simulator/compositing/layer-creation/overlap-child-layer-expected.txt:
* platform/ios-simulator/compositing/layer-creation/overlap-clipping-expected.txt:
* platform/ios-simulator/compositing/layer-creation/overlap-transformed-3d-expected.txt:
* platform/ios-simulator/compositing/layer-creation/overlap-transformed-and-clipped-expected.txt:
* platform/ios-simulator/compositing/layer-creation/overlap-transformed-layer-expected.txt:
* platform/ios-simulator/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt:
* platform/ios-simulator/compositing/layer-creation/overlap-transforms-expected.txt:
* platform/ios-simulator/compositing/layer-creation/rotate3d-overlap-expected.txt:
* platform/ios-simulator/compositing/layer-creation/scroll-partial-update-expected.txt:
* platform/ios-simulator/compositing/layer-creation/stacking-context-overlap-expected.txt:
* platform/ios-simulator/compositing/layer-creation/stacking-context-overlap-nested-expected.txt:
* platform/ios-simulator/compositing/layer-creation/translatez-overlap-expected.txt:
* platform/ios-simulator/compositing/masks/mask-layer-size-expected.txt:
* platform/ios-simulator/compositing/overflow-trumps-transform-style-expected.txt:
* platform/ios-simulator/compositing/overflow/automatically-opt-into-composited-scrolling-expected.txt: Progression.
* platform/ios-simulator/compositing/overflow/clip-descendents-expected.txt:
* platform/ios-simulator/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
* platform/ios-simulator/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt:
* platform/ios-simulator/compositing/overflow/content-gains-scrollbars-expected.txt:
* platform/ios-simulator/compositing/overflow/content-loses-scrollbars-expected.txt:
* platform/ios-simulator/compositing/overflow/overflow-auto-with-touch-expected.txt:
* platform/ios-simulator/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt:
* platform/ios-simulator/compositing/overflow/overflow-overlay-with-touch-expected.txt:
* platform/ios-simulator/compositing/overflow/overflow-scrollbar-layer-positions-expected.txt:
* platform/ios-simulator/compositing/overflow/overflow-scrollbar-layers-expected.txt:
* platform/ios-simulator/compositing/overflow/resize-painting-expected.txt:
* platform/ios-simulator/compositing/regions/fixed-in-named-flow-clip-descendant-expected.txt:
* platform/ios-simulator/compositing/regions/fixed-in-named-flow-expected.txt:
* platform/ios-simulator/compositing/regions/fixed-in-named-flow-from-abs-in-named-flow-expected.txt:
* platform/ios-simulator/compositing/regions/fixed-in-named-flow-from-outflow-expected.txt:
* platform/ios-simulator/compositing/regions/fixed-in-named-flow-got-transformed-parent-expected.txt:
* platform/ios-simulator/compositing/regions/fixed-in-named-flow-lost-transformed-parent-expected.txt:
* platform/ios-simulator/compositing/regions/fixed-in-named-flow-overlap-composited-expected.txt:
* platform/ios-simulator/compositing/regions/fixed-in-named-flow-transformed-parent-expected.txt:
* platform/ios-simulator/compositing/regions/fixed-transformed-in-named-flow-expected.txt:
* platform/ios-simulator/compositing/repaint/absolute-painted-into-composited-ancestor-expected.txt:
* platform/ios-simulator/compositing/repaint/become-overlay-composited-layer-expected.txt:
* platform/ios-simulator/compositing/repaint/fixed-background-scroll-expected.txt:
* platform/ios-simulator/compositing/repaint/invalidations-on-composited-layers-expected.txt:
* platform/ios-simulator/compositing/repaint/positioned-movement-expected.txt:
* platform/ios-simulator/compositing/repaint/repaint-on-layer-grouping-change-expected.txt:
* platform/ios-simulator/compositing/repaint/resize-repaint-expected.txt:
* platform/ios-simulator/compositing/rtl/rtl-absolute-expected.txt:
* platform/ios-simulator/compositing/rtl/rtl-absolute-overflow-expected.txt:
* platform/ios-simulator/compositing/rtl/rtl-absolute-overflow-scrolled-expected.txt:
* platform/ios-simulator/compositing/rtl/rtl-fixed-expected.txt:
* platform/ios-simulator/compositing/rtl/rtl-fixed-overflow-expected.txt:
* platform/ios-simulator/compositing/rtl/rtl-fixed-overflow-scrolled-expected.txt:
* platform/ios-simulator/compositing/rtl/rtl-iframe-absolute-expected.txt:
* platform/ios-simulator/compositing/rtl/rtl-iframe-absolute-overflow-expected.txt:
* platform/ios-simulator/compositing/rtl/rtl-iframe-fixed-expected.txt:
* platform/ios-simulator/compositing/rtl/rtl-iframe-relative-expected.txt:
* platform/ios-simulator/compositing/rtl/rtl-relative-expected.txt:
* platform/ios-simulator/compositing/scrolling/touch-scroll-to-clip-expected.txt:
* platform/ios-simulator/compositing/tiled-layers-hidpi-expected.txt:
* platform/ios-simulator/compositing/tiling/backface-preserve-3d-tiled-expected.txt:
* platform/ios-simulator/compositing/tiling/crash-reparent-tiled-layer-expected.txt:
* platform/ios-simulator/compositing/tiling/huge-layer-add-remove-child-expected.txt:
* platform/ios-simulator/compositing/tiling/huge-layer-img-expected.txt:
* platform/ios-simulator/compositing/tiling/huge-layer-with-layer-children-expected.txt:
* platform/ios-simulator/compositing/tiling/huge-layer-with-layer-children-resize-expected.txt:
* platform/ios-simulator/compositing/tiling/rotated-tiled-clamped-expected.txt:
* platform/ios-simulator/compositing/tiling/rotated-tiled-preserve3d-clamped-expected.txt:
* platform/ios-simulator/compositing/tiling/tile-cache-zoomed-expected.txt:
* platform/ios-simulator/compositing/tiling/tiled-layer-resize-expected.txt:
* platform/ios-simulator/compositing/visibility/layer-visible-content-expected.txt:
* platform/ios-simulator/compositing/visibility/visibility-image-layers-dynamic-expected.txt:
* platform/ios-simulator/compositing/visible-rect/2d-transformed-expected.txt:
* platform/ios-simulator/compositing/visible-rect/3d-transform-style-expected.txt:
* platform/ios-simulator/compositing/visible-rect/3d-transformed-expected.txt:
* platform/ios-simulator/compositing/visible-rect/clipped-by-viewport-expected.txt:
* platform/ios-simulator/compositing/visible-rect/clipped-visible-rect-expected.txt:
* platform/ios-simulator/compositing/visible-rect/flipped-preserve-3d-expected.txt:
* platform/ios-simulator/compositing/visible-rect/iframe-and-layers-expected.txt:
* platform/ios-simulator/compositing/visible-rect/nested-transform-expected.txt:
* platform/ios-simulator/compositing/visible-rect/scrolled-expected.txt:

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

4 years agoMove FontMac and FontCacheMac off of WKSI
mmaxfield@apple.com [Fri, 14 Nov 2014 02:19:29 +0000 (02:19 +0000)]
Move FontMac and FontCacheMac off of WKSI
https://bugs.webkit.org/show_bug.cgi?id=138633

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2014-11-13
Reviewed by NOBODY (OOPS!).

Source/WebCore:

No new tests because there is no behavior change.

* WebCore.exp.in:
* WebCore.order:
* WebCore.vcxproj/WebCoreCG.props:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::FontCache::platformInit):
* platform/graphics/mac/FontCacheMac.mm:
(WebCore::FontCache::platformInit):
(WebCore::FontCache::systemFallbackForCharacters):
* platform/graphics/mac/FontMac.mm:
(WebCore::isIntegral):
(WebCore::setCGFontRenderingMode):
(WebCore::Font::drawGlyphs):
* platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::platformInit):
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
* platform/spi/cocoa/CoreGraphicsSPI.h: Copied from Source/WebCore/platform/spi/cocoa/CGFontUnicodeSupportSPI.h.
* platform/spi/cocoa/CoreTextSPI.h:
* platform/spi/mac/NSFontSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/CGFontUnicodeSupportSPI.h.

Source/WebKit/mac:

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* WebKit.order:

Source/WebKit2:

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* mac/WebKit2.order:

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

4 years agoMove 'image-resolution' CSS property to the new StyleBuilder
cdumez@apple.com [Fri, 14 Nov 2014 02:16:19 +0000 (02:16 +0000)]
Move 'image-resolution' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138715

Reviewed by Andreas Kling.

Move 'image-resolution' CSS property from DeprecatedStyleBuilder to
the new StyleBuilder by using custom code.

No new tests, no behavior change.

* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyImageResolution::applyInheritValue): Deleted.
(WebCore::ApplyPropertyImageResolution::applyInitialValue): Deleted.
(WebCore::ApplyPropertyImageResolution::applyValue): Deleted.
(WebCore::ApplyPropertyImageResolution::createHandler): Deleted.
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderFunctions::applyInheritImageResolution):
(WebCore::StyleBuilderFunctions::applyInitialImageResolution):
(WebCore::StyleBuilderFunctions::applyValueImageResolution):

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

4 years agoUnreviewed, rolling out r176106.
akling@apple.com [Fri, 14 Nov 2014 01:15:34 +0000 (01:15 +0000)]
Unreviewed, rolling out r176106.
https://bugs.webkit.org/show_bug.cgi?id=138719

needs build love (Requested by kling on #webkit).

Reverted changeset:

"[mac] Keep around more decoded image data, since it's
purgeable"
https://bugs.webkit.org/show_bug.cgi?id=125273
http://trac.webkit.org/changeset/176106

Patch by Commit Queue <commit-queue@webkit.org> on 2014-11-13

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

4 years agoAdd scope operand to op_new_func* byte codes
msaboff@apple.com [Fri, 14 Nov 2014 01:07:48 +0000 (01:07 +0000)]
Add scope operand to op_new_func* byte codes
https://bugs.webkit.org/show_bug.cgi?id=138707

Reviewed by Mark Lam.

Added scope operand to op_new_func and op_new_func_expr to replace the implicit use
of exec->scope().

* bytecode/BytecodeList.json: Increased size of op_new_func & op_new_func_expr bytecodes.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode): Added scope operand to dump output.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitNewFunctionInternal):
(JSC::BytecodeGenerator::emitNewFunctionExpression):
Emit scope operand.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
Added new scope source nodes to NewFunction, NewFunctionExpression & NewFunctionNoCheck.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewFunctionNoCheck):
(JSC::DFG::SpeculativeJIT::compileNewFunctionExpression):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
Use scope children when making new function JIT_Operation calls.  Use JSScope* value instead of
exec->scope().

* dfg/DFGOperations.h:
* dfg/DFGOperations.cpp:
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* jit/JIT.h:
* jit/JITInlines.h:
(JSC::JIT::callOperation):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_new_func):
(JSC::JIT::emit_op_new_func_exp):
* jit/JITOperations.cpp:
* jit/JITOperations.h:
Added new Jsc JIT_Operation parameter type for JSScope* values.  Created declarations and
definitions for new JIT_Operations with Jsc parameters.  Use the JSScope* parameters in lieu
of exec->scope() in operationNewFunction().
Removed comment for unused Jsa (JSLexicalEnvironment*) JIT_Operation parameter type.

* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
Use the scope operand instead of exec->scope().

* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
Changed the operand indecies for added scope operand.

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

4 years agoContext menus should not offer the "Download video" option for videos that cannot
bdakin@apple.com [Fri, 14 Nov 2014 00:46:53 +0000 (00:46 +0000)]
Context menus should not offer the "Download video" option for videos that cannot
be downloaded
https://bugs.webkit.org/show_bug.cgi?id=138530
-and corresponding-
rdar://problem/18919130

Patch by Eric Carlson <eric.carlson@apple.com> on 2014-11-13
Reviewed by Tim Horton.

Source/WebCore:

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::canSaveMediaData):
(WebCore::MediaPlayer::supportsSave): Deleted.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::supportsFullscreen):
(WebCore::MediaPlayerPrivateInterface::canSaveMediaData):
(WebCore::MediaPlayerPrivateInterface::supportsSave): Deleted.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::resolvedURL):
(WebCore::MediaPlayerPrivateAVFoundation::canSaveMediaData):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::resolvedURL):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::canSaveMediaData):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::canSaveMediaData):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::isDownloadableMedia):

Source/WebKit2:

Expose isDownloadableMedia() to the InjectedBundleHitTestResult.
* WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
(WKBundleHitTestResultIsDownloadableMedia):
* WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.h:
* WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
(WebKit::InjectedBundleHitTestResult::isDownloadableMedia):
* WebProcess/InjectedBundle/InjectedBundleHitTestResult.h:

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

4 years agoWK1: Clean up WebActionMenuController to use the _hitTestResult ivar
bdakin@apple.com [Fri, 14 Nov 2014 00:37:53 +0000 (00:37 +0000)]
WK1: Clean up WebActionMenuController to use the _hitTestResult ivar
https://bugs.webkit.org/show_bug.cgi?id=138716
-and corresponding-
rdar://problem/18977222

Reviewed by Tim Horton.

It’s not necessary to use the WebElementDictionary for so many things now that we
are caching the HitTestResult. We should just use the HitTestResult.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController prepareForMenu:withEvent:]):
(-[WebActionMenuController _openURLFromActionMenu:]):
(-[WebActionMenuController _addToReadingListFromActionMenu:]):
(elementBoundingBoxFromNode):
(-[WebActionMenuController _quickLookURLFromActionMenu:]):
(-[WebActionMenuController _defaultMenuItemsForLink]):
(-[WebActionMenuController _defaultMenuItemsForImage]):
(-[WebActionMenuController _defaultMenuItemsForVideo]):
(-[WebActionMenuController _defaultMenuItemsForText]):
(-[WebActionMenuController _defaultMenuItemsForEditableText]):
(-[WebActionMenuController _defaultMenuItemsForEditableTextWithSuggestions]):
(-[WebActionMenuController _defaultMenuItemsForWhitespaceInEditableArea]):
(-[WebActionMenuController _createActionMenuItemForTag:]):
(-[WebActionMenuController _defaultMenuItems]):
(-[WebActionMenuController _elementBoundingBoxFromDOMElement:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForLink:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForImage:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForVideo:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForText:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForEditableText:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForEditableTextWithSuggestions:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForWhitespaceInEditableArea:]): Deleted.
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]): Deleted.
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]): Deleted.

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

4 years ago[mac] Keep around more decoded image data, since it's purgeable
akling@apple.com [Fri, 14 Nov 2014 00:36:33 +0000 (00:36 +0000)]
[mac] Keep around more decoded image data, since it's purgeable
<https://webkit.org/b/125273>
<rdar://problem/13205438>

Patch by Tim Horton <timothy_horton@apple.com> on 2014-11-02
Reviewed by Simon Fraser and Andreas Kling.

No new tests, just an optimization.

Instead of throwing away decoded image data eagerly, allow the operating
system to manage the memory via the standard purgeability mechanism,
where it can.

This improves the performance on some pathological cases (extremely large
animated GIFs) by up to 8x.

* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::pruneLiveResourcesToSize):
Don't prune live resources' decoded data if it is purgeable.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedDataIfNecessary):
Don't eagerly throw away decoded image data if it's purgeable.

* loader/cache/CachedImage.h:
* loader/cache/CachedResource.h:
(WebCore::CachedResource::decodedDataIsPurgeable):
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.h:
(WebCore::Image::decodedDataIsPurgeable):

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

4 years ago[iOS] NSGeometry data types are not available in the public SDK
dbates@webkit.org [Fri, 14 Nov 2014 00:34:29 +0000 (00:34 +0000)]
[iOS] NSGeometry data types are not available in the public SDK
https://bugs.webkit.org/show_bug.cgi?id=137536

Reviewed by David Kilzer.

Source/WebCore:

Towards building iOS WebKit with the public iOS SDK, define NSGeometry
data types and functions in terms of CGGeometry data types and functions
because the former is SPI on iOS.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: Include
header WAKAppKitStubs.h when building for iOS. Otherwise, include header NSGeometry.h.
* platform/graphics/ca/mac/PlatformCALayerMac.mm: Remove import of private header NSGeometry.h.
We will use the NSGeometry data types defined in WAKAppKitStubs.h, which is implicitly imported
by header WAKWindow.h.
* platform/graphics/mac/MediaPlayerProxy.h: Substitute WAKAppKitStubs.h for NSGeometry.h.
* platform/ios/PlatformEventFactoryIOS.mm: Ditto. Also fix up style issues with #import directives.
* platform/ios/WebEvent.mm: Ditto.
* platform/ios/wak/WAKAppKitStubs.h: Define typedefs and macros that map NSGeometry data types
and functions to the analogous CGGeometry data types and functions. Also, remove #ifdef __OBJC__-
guard as the existing content in WAKAppKitStubs.h assumes that this file will only be included
in an Objective-C/Objective-C++ file.
* platform/ios/wak/WAKView.h: Import header WAKAppKitStubs.h instead of defining macros for some
NSGeometry data types.

Source/WebKit/mac:

Substitute header WAKAppKitStubs.h for NSGeometry.h as the latter is a
private header.

* DOM/WebDOMOperationsPrivate.h:

Source/WebKit2:

Substitute header WAKAppKitStubs.h for NSGeometry.h as the latter is a
private header.

* Shared/ios/NativeWebTouchEventIOS.mm:

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

4 years agohttps://bugs.webkit.org/show_bug.cgi?id=138628
ap@apple.com [Fri, 14 Nov 2014 00:33:03 +0000 (00:33 +0000)]
https://bugs.webkit.org/show_bug.cgi?id=138628
A patch that doesn't apply is stuck in commit queue

Rubber-stamped by David Kilzer.

This also hopefully fixes other issues:
- a patch that has cq+ flag set by a non-committer kills commit queue;
- EWS never reports failing tests, and keeps spinning instead.

* Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
(Bugzilla.set_flag_on_attachment):
(Bugzilla.obsolete_attachment):
Apply the fix from r174797 to more places.

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

4 years agoChange X86/64 JIT probes to save/restore xmm regs as double instead of __m128. [Follo...
mark.lam@apple.com [Thu, 13 Nov 2014 23:43:46 +0000 (23:43 +0000)]
Change X86/64 JIT probes to save/restore xmm regs as double instead of __m128. [Follow up]
<https://webkit.org/b/138708>

Reviewed by Michael Saboff.

Removed a stale comment and a now unnecessary #include.

* assembler/X86Assembler.h:

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

4 years agoWK1: Support default actions for video
bdakin@apple.com [Thu, 13 Nov 2014 23:30:45 +0000 (23:30 +0000)]
WK1: Support default actions for video
https://bugs.webkit.org/show_bug.cgi?id=138713
-and corresponding-
rdar://problem/18877520

Reviewed by Tim Horton.

Call setToNonShadowAncestor() for media HitTestResults.
* WebView/WebActionMenuController.mm:
(-[WebActionMenuController performHitTestAtPoint:]):

Default items and actions.
(-[WebActionMenuController _defaultMenuItemsForVideo:]):
(-[WebActionMenuController _copyVideoURL:]):
(-[WebActionMenuController _saveVideoToDownloads:]):
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):
* WebView/WebUIDelegatePrivate.h:

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

4 years agoUnreviewed, rolling out r176087.
commit-queue@webkit.org [Thu, 13 Nov 2014 23:30:03 +0000 (23:30 +0000)]
Unreviewed, rolling out r176087.
https://bugs.webkit.org/show_bug.cgi?id=138714

Broke the build (Requested by ap on #webkit).

Reverted changeset:

"Update WebKit to build with LLVM TOT"
https://bugs.webkit.org/show_bug.cgi?id=138519
http://trac.webkit.org/changeset/176087

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

4 years ago[WK2] Fire a layout milestone on session restore based on render tree size
simon.fraser@apple.com [Thu, 13 Nov 2014 23:27:26 +0000 (23:27 +0000)]
[WK2] Fire a layout milestone on session restore based on render tree size
https://bugs.webkit.org/show_bug.cgi?id=138711
rdar://problem/16033854

Reviewed by Anders Carlsson.
Source/WebCore:

New layout milestone for session restore based on render tree size. Only used
in WK2 at present.

* page/LayoutMilestones.h:

Source/WebKit2:

Add a session-restore layout milestone which fires after restoring a session,
when the render tree size reaches 50% of the size saved in the session state.

* Shared/SessionState.h: Add renderTreeSize.
* UIProcess/API/Cocoa/WKWebView.mm:
(layoutMilestones): Translate from SPI to WebCore milestones.
* UIProcess/API/Cocoa/WKWebViewPrivate.h: New iOS-only milestone, er, event.
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::renderingProgressEvents): Translate from WebCore milestone to rendering event.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy): Init stuff.
(WebKit::WebPageProxy::sessionState):
(WebKit::WebPageProxy::restoreFromSessionState): Zero out the target render tree size,
then get it out of session state and set the flag to say that we haven't reached it yet.
(WebKit::WebPageProxy::listenForLayoutMilestones): Set a flag to know that we should fire
the milestone. The other milestones get sent directly to WebCore.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::exceedsRenderTreeSizeSizeThreshold): Return true when we've reached 50%.
(WebKit::WebPageProxy::didCommitLayerTree): Fire the milestone when appropriate.
* UIProcess/mac/LegacySessionStateCoding.cpp: Rev the session state data for iOS
(where doing so is less disruptive). Standardize some CFString constants.
(WebKit::encodeSessionHistory): Wrap for legibility.
(WebKit::encodeLegacySessionState): Make a CFNumber for render tree size, and store
it in the root dictionary.
(WebKit::decodeBackForwardTreeNode): Move a comment to match another similar block.
(WebKit::decodeLegacySessionState): Decode render tree size and store it.

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

4 years agoPolicy client not called for navigations through the page cache
mitz@apple.com [Thu, 13 Nov 2014 23:22:50 +0000 (23:22 +0000)]
Policy client not called for navigations through the page cache
https://bugs.webkit.org/show_bug.cgi?id=138703

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test added to TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadDifferentDocumentItem): When using a cached page, which already
has a document loader, set the document loader’s triggering action (so that the policy
client sees that this is a back/forward navigation) and clear its last checked request (so
that the policy client gets called).

Tools:

* TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:
(-[DecidePolicyForPageCacheNavigationDelegate webView:didFinishNavigation:]):
(-[DecidePolicyForPageCacheNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):

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

4 years agoChange X86/64 JIT probes to save/restore xmm regs as double instead of __m128.
mark.lam@apple.com [Thu, 13 Nov 2014 23:00:07 +0000 (23:00 +0000)]
Change X86/64 JIT probes to save/restore xmm regs as double instead of __m128.
<https://webkit.org/b/138708>

Reviewed by Michael Saboff.

The JIT code only uses the xmm regs as double registers.  This patch changes
the storage types of the FP registers in X86Assembler.h to double instead of
__m128, and updates the X86 and X86_64 JIT probe implementations accordingly.

Also made some minor cosmetic changes in the output of the probe dump functions.

* assembler/MacroAssemblerX86Common.cpp:
(JSC::MacroAssemblerX86Common::ProbeContext::dumpCPURegisters):
* assembler/X86Assembler.h:
* jit/JITStubsX86.h:
* jit/JITStubsX86Common.h:
* jit/JITStubsX86_64.h:

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

4 years agoUpdate expected .png for platform/mac/editing/input/devanagari-ligature.html
mmaxfield@apple.com [Thu, 13 Nov 2014 22:59:04 +0000 (22:59 +0000)]
Update expected .png for platform/mac/editing/input/devanagari-ligature.html
https://bugs.webkit.org/show_bug.cgi?id=138712

This doesn't actually fix the test, it just updates the image.

Reviewed by Zalan Bujtas.

* platform/mac/editing/input/devanagari-ligature-expected.png:

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

4 years agoWK1: Update icon for Add to Reading List
timothy_horton@apple.com [Thu, 13 Nov 2014 22:51:25 +0000 (22:51 +0000)]
WK1: Update icon for Add to Reading List
https://bugs.webkit.org/show_bug.cgi?id=138710
<rdar://problem/18975774>

Reviewed by Beth Dakin.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
Use the right icon, matching WebKit2.

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

4 years agoAX: [ATK] Do not return ATK_ROLE_UNKNOWN for null or otherwise invalid accessible...
jdiggs@igalia.com [Thu, 13 Nov 2014 22:11:41 +0000 (22:11 +0000)]
AX: [ATK] Do not return ATK_ROLE_UNKNOWN for null or otherwise invalid accessible objects
https://bugs.webkit.org/show_bug.cgi?id=137867

Reviewed by Chris Fleizach.

Source/WebCore:

Return ATK_ROLE_INVALID for null or otherwise invalid accessible objects.

Test: platform/gtk/accessibility/detached-object-role.html

* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetRole):

Tools:

Add ATK_ROLE_INVALID to roleToString. Remove the null AtkRole check in
AccessibilityUIElement::role: ATK_ROLE_INVALID = 0, and we need to be
able to test for the presence of ATK_ROLE_INVALID.

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::role):

LayoutTests:

* platform/gtk/accessibility/detached-object-role-expected.txt: Added.
* platform/gtk/accessibility/detached-object-role.html: Added.

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

4 years ago[iOS] update optimized fullscreen media controls artwork
eric.carlson@apple.com [Thu, 13 Nov 2014 22:10:33 +0000 (22:10 +0000)]
[iOS] update optimized fullscreen media controls artwork
https://bugs.webkit.org/show_bug.cgi?id=138705

Reviewed by Dean Jackson.

* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::mediaUIImageData): Remove one button.
* Modules/mediacontrols/MediaControlsHost.idl:

* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.controlsAreHidden): Add parentheses to fix the logic.

* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.shouldHaveStartPlaybackButton): The big play button should not be
    visible during playback.
(ControllerIOS.prototype.createControls): No longer necessary to insert style dynamically,
(ControllerIOS.prototype.setPlaying): Call the base class first so "isPlaying" is set before
    calling updateControls, which calls shouldHaveStartPlaybackButton.

* platform/ios/WebCoreSystemInterfaceIOS.h: Update constants.

* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::mediaControlsStyleSheet): Add button style to the media controls sheet.

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