source: webkit

Revision Log Mode:


Legend:

Added
Modified
Copied or renamed
Diff Rev Age Author
(edit) @132314   12 years dbarton

Unreviewed gardening. Some linux MathML tests are timing out - see webkit.org/b/100202.

  • platform/chromium/TestExpectations:
(edit) @132313   12 years kihong.kwon

Unreviewed. Adding myself as committer.

  • Scripts/webkitpy/common/config/committers.py:
(edit) @132312   12 years ryuan.choi

Regression(r132303) Broke debug build when SHADOW_DOM is enabled but STYLE_SCOPED is disabled
https://bugs.webkit.org/show_bug.cgi?id=100203

Unreviewed Build fix.

Fix compilation error in StyleResolver.h when SHADOW_DOM flag is
set and STYLE_SCOPED is not.

No new tests, no behavior change.

Patch by Christophe Dumez <Christophe Dumez> on 2012-10-23

  • css/StyleResolver.h:

(WebCore::StyleResolver::ensureScopeResolver):

(edit) @132311   12 years kling

Remove specialized hash traits for GlyphPages.
<http://webkit.org/b/100185>

Reviewed by Dan Bernstein.

Now that the default minimum table size has been lowered for all tables, there's no need
for this specialization anymore.

  • platform/graphics/FontFallbackList.h:

(FontFallbackList):

(edit) @132310   12 years tkent

Multiple fields input UI: Don't use CSS properties for physical direction
https://bugs.webkit.org/show_bug.cgi?id=100195

Reviewed by Kentaro Hara.

Source/WebCore:

CSS declarations such as "padding: 0 0 0 1px;" "margin-left: 0.2em;" are
not direction-neutral, and makes unexpected appearance in RTL. We should
use -webkit-padding-start or -webkit-margin-start.

No new tests. Covered by date-multiple-fields-appearance-l10n.html and
month-multiple-fields-appearance-l10n.html

  • css/html.css:

(input[type="date"]): Use padding:0 and -webkit-padding-start:1px;
(input[type="datetime"]): Ditto.
(input[type="datetime-local"]): Ditto.
(input[type="month"]): Ditto.
(input[type="time"]): Ditto.
(input[type="week"]): Ditto.
(input[type="week"]::-webkit-inner-spin-button):
Use -webkit-margin-start. Also use an integral pixel size instead of
avoid a fractional relative size to avoid subpixel layout rounding.

LayoutTests:

  • platform/chromium-mac/fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n-expected.png:
  • platform/chromium-mac/fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n-expected.png:
(edit) @132309   12 years mitz

Source/WebKit/mac: WebKit/mac part of <rdar://problem/2966974> [mac] Kerning and ligatures are not enabled by default
https://bugs.webkit.org/show_bug.cgi?id=100188

Reviewed by Sam Weinig.

  • WebView/WebView.mm:

(+[WebView initialize]): Added a local variable to hold the standard user defaults. Added
code to register a value of YES for the WebKitKerningAndLigaturesEnabledByDefault user
default. Changed to refer to that default key by name.

Source/WebKit2: WebKit2 part of <rdar://problem/2966974> [mac] Kerning and ligatures are not enabled by default
https://bugs.webkit.org/show_bug.cgi?id=100188

Reviewed by Sam Weinig.

  • UIProcess/mac/WebContextMac.mm:

(WebKit::registerUserDefaultsIfNeeded): Added. Registers a value of YES for the
WebKitKerningAndLigaturesEnabledByDefault user default if it has not been registered yet.
(WebKit::WebContext::platformInitializeWebProcess): Added a call to
registerUserDefaultsIfNeeded, and changed to refer to the defaults key by name.

Tools: Tools changes for <rdar://problem/2966974> [mac] Kerning and ligatures are not enabled by default
https://bugs.webkit.org/show_bug.cgi?id=100188

Reviewed by Sam Weinig.

Disable kerning and ligatures by default when running the tests.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetDefaultsToConsistentValues): Set a value of NO for the
WebKitKerningAndLigaturesEnabledByDefault user default.

  • WebKitTestRunner/mac/main.mm:

(main): Register a value of NO for the WebKitKerningAndLigaturesEnabledByDefault user
default.

(edit) @132308   12 years mitz

The font cache evicts inactive font data too aggressively when not under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=100194

Reviewed by Sam Weinig.

Increasing the number of inactive font data objects the cache may hold increases the hit
rate, leading to improved page load performance. When memory pressure is detected,
MemoryPressureHandler evicts all inactive objects, regardless of the limits we are
increasing here.

  • platform/graphics/FontCache.cpp:

(WebCore): Increased the maximum number of inactive font data objects in the cache from 50
to 225, and the number of objects to evict once the limit is met from 20 to 25.

(edit) @132307   12 years kling

CodeBlock: Give m_putToBaseOperations an inline capacity.
<http://webkit.org/b/100190>
<rdar://problem/12562466>

Reviewed by Oliver Hunt.

Since the CodeBlock constructor always inserts a single PutToBaseOperation, but there's no
guarantee that more will follow, give the m_putToBaseOperations vector an inline capacity of 1.
There are 4009 of these Vectors on Membuster3, and only 126 of them have more than a single entry.

This change yields a 1.90MB reduction in memory usage.

  • bytecode/CodeBlock.h:

(CodeBlock):

(edit) @132306   12 years tkent

[Chromium] Rebaseline for r132291
https://bugs.webkit.org/show_bug.cgi?id=100088

  • platform/chromium-linux/fast/forms/date-multiple-fields/date-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-linux/fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n-expected.png:
  • platform/chromium-linux/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-linux/fast/forms/date-multiple-fields/date-multiple-fields-appearance-style-expected.png:
  • platform/chromium-linux/fast/forms/month-multiple-fields/month-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-linux/fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n-expected.png: Added.
  • platform/chromium-linux/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-linux/fast/forms/month-multiple-fields/month-multiple-fields-appearance-style-expected.png:
  • platform/chromium-linux/fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-linux/fast/forms/time-multiple-fields/time-multiple-fields-appearance-disabled-readonly-expected.png:
  • platform/chromium-linux/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-linux/fast/forms/time-multiple-fields/time-multiple-fields-appearance-style-expected.png:
  • platform/chromium-linux/fast/forms/week-multiple-fields/week-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-linux/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-linux/fast/forms/week-multiple-fields/week-multiple-fields-appearance-style-expected.png:
  • platform/chromium-mac-lion/fast/forms/date-multiple-fields/date-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-mac-lion/fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n-expected.png:
  • platform/chromium-mac-lion/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac-lion/fast/forms/date-multiple-fields/date-multiple-fields-appearance-style-expected.png:
  • platform/chromium-mac-lion/fast/forms/month-multiple-fields/month-multiple-fields-appearance-basic-expected.png: Added.
  • platform/chromium-mac-lion/fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n-expected.png: Added.
  • platform/chromium-mac-lion/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-classes-expected.png: Added.
  • platform/chromium-mac-lion/fast/forms/month-multiple-fields/month-multiple-fields-appearance-style-expected.png: Added.
  • platform/chromium-mac-lion/fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-mac-lion/fast/forms/time-multiple-fields/time-multiple-fields-appearance-disabled-readonly-expected.png:
  • platform/chromium-mac-lion/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-classes-expected.png: Added.
  • platform/chromium-mac-lion/fast/forms/time-multiple-fields/time-multiple-fields-appearance-style-expected.png:
  • platform/chromium-mac-lion/fast/forms/week-multiple-fields/week-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-mac-lion/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac-lion/fast/forms/week-multiple-fields/week-multiple-fields-appearance-style-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/date-multiple-fields/date-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/date-multiple-fields/date-multiple-fields-appearance-style-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/month-multiple-fields/month-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n-expected.png: Added.
  • platform/chromium-mac-snowleopard/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/month-multiple-fields/month-multiple-fields-appearance-style-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/time-multiple-fields/time-multiple-fields-appearance-disabled-readonly-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/time-multiple-fields/time-multiple-fields-appearance-style-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/week-multiple-fields/week-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/week-multiple-fields/week-multiple-fields-appearance-style-expected.png:
  • platform/chromium-mac/fast/forms/date-multiple-fields/date-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-mac/fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n-expected.png:
  • platform/chromium-mac/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac/fast/forms/date-multiple-fields/date-multiple-fields-appearance-style-expected.png:
  • platform/chromium-mac/fast/forms/month-multiple-fields/month-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-mac/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac/fast/forms/month-multiple-fields/month-multiple-fields-appearance-style-expected.png:
  • platform/chromium-mac/fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-mac/fast/forms/time-multiple-fields/time-multiple-fields-appearance-disabled-readonly-expected.png:
  • platform/chromium-mac/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac/fast/forms/time-multiple-fields/time-multiple-fields-appearance-style-expected.png:
  • platform/chromium-mac/fast/forms/week-multiple-fields/week-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-mac/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-mac/fast/forms/week-multiple-fields/week-multiple-fields-appearance-style-expected.png:
  • platform/chromium-win-xp/fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n-expected.png:
  • platform/chromium-win-xp/fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n-expected.png: Added.
  • platform/chromium-win/fast/forms/date-multiple-fields/date-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-win/fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n-expected.png:
  • platform/chromium-win/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-win/fast/forms/date-multiple-fields/date-multiple-fields-appearance-style-expected.png:
  • platform/chromium-win/fast/forms/month-multiple-fields/month-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-win/fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n-expected.png: Added.
  • platform/chromium-win/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-win/fast/forms/month-multiple-fields/month-multiple-fields-appearance-style-expected.png:
  • platform/chromium-win/fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-win/fast/forms/time-multiple-fields/time-multiple-fields-appearance-disabled-readonly-expected.png:
  • platform/chromium-win/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-win/fast/forms/time-multiple-fields/time-multiple-fields-appearance-style-expected.png:
  • platform/chromium-win/fast/forms/week-multiple-fields/week-multiple-fields-appearance-basic-expected.png:
  • platform/chromium-win/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
  • platform/chromium-win/fast/forms/week-multiple-fields/week-multiple-fields-appearance-style-expected.png:
(edit) @132305   12 years ossy

[Qt] Unreviewed nightly gardening, skip new failing tests.

  • platform/qt/TestExpectations:
(edit) @132304   12 years tony

[chromium] Remove duplicate platform/mac entries
https://bugs.webkit.org/show_bug.cgi?id=100167

Reviewed by Dirk Pranke.

We intentionally don't run platform/mac tests in Chromium. Remove lines
that duplicate the directory WontFix.

  • platform/chromium/TestExpectations:
(edit) @132303   12 years tasak

[Shadow DOM] Needs @host rule for ShadowDOM styling
https://bugs.webkit.org/show_bug.cgi?id=88606

Reviewed by Hajime Morita.

Source/WebCore:

Implemented @host-@rules according to the shadow dom spec:
http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
The design doc is:
https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit

Test: fast/dom/shadow/athost-atrules.html

  • css/CSSGrammar.y.in:

Added rules for parsing @host @-rules.

  • css/CSSParser.cpp:

(WebCore::CSSParser::detectAtToken):
Added a new token "@host".
(WebCore::CSSParser::createHostRule):
Added a new method to create an @host @-rule, which is invoked from
(WebCore):

  • css/CSSParser.h:

Added a declaration of the above new method: createHostRule.

  • css/CSSPropertySourceData.h:

Added HOST_RULE to enum Type.

  • css/RuleSet.cpp:

(WebCore::RuleData::RuleData):
Modified multiple bool arguments into one argument. Now it
uses combinations of values from enum AddRuleFlags.
(WebCore::RuleSet::addRule):
(WebCore::RuleSet::addRegionRule):
(WebCore::RuleSet::addStyleRule):
Updated according to the RuleData's change.
Modified to Invoke increaseSpecificity if the given rule is @host
@-rule.
(WebCore::RuleSet::addRulesFromSheet):
Invoked addHostRule if the given rule is @host @-rule.

  • css/RuleSet.h:

(RuleData):
(WebCore::RuleData::increaseSpecificity):
Added a new method to increase selector's specificity. This method is
used to make @host @-rules' specificity larger than normal author
rules' specificity.
(RuleSet):

  • css/StyleResolver.cpp:

(WebCore::makeRuleSet):
(WebCore::StyleResolver::addHostRule):
A wrapper method to invoke StyleScopeResolver::addHostRule. The method
is used to make only StyleResolver know an implementation detail about
class StyleScopeResolver.
(WebCore::StyleResolver::appendAuthorStylesheets):
Updated according to the RuleData's change.
(WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
A new method to find matched host rules when an element is given.
This method invokes
StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
matched host rules.
(WebCore):
(WebCore::StyleResolver::matchHostRules):
A new method to find matched host rules when an element is given.
This method invokes StyleScopeResolver::matchHostRules to find
matched host rules.
(WebCore::StyleResolver::matchScopedAuthorRules):
Modified to invoke matchHostRules.
(WebCore::StyleResolver::locateSharedStyle):
Disable sibling style cache if the given element is a shadow host and
any @host @-rules are applied to the element.

  • css/StyleResolver.h:

(WebCore::StyleResolver::ensureScopeResolver):
If no scopeResolver is created, create and return the instance.
If created, just return the instance.
(StyleResolver):

  • css/StyleRule.cpp:

(WebCore::StyleRuleBase::reportMemoryUsage):
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy):
(WebCore::StyleRuleBase::createCSSOMWrapper):
(WebCore::StyleRuleHost::StyleRuleHost):
Implemented class StyleRuleHost. The class is almost the same as
StyleRuleBlock except type.
(WebCore):

  • css/StyleRule.h:

(WebCore::StyleRuleBase::isHostRule):
(StyleRuleHost):
(WebCore::StyleRuleHost::create):
(WebCore::StyleRuleHost::copy):
(WebCore):

  • css/StyleScopeResolver.cpp:

(WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
A new method to create a new RuleSet for the given shadow root.
(WebCore):
(WebCore::StyleScopeResolver::atHostRuleSetFor):
A new private inline method to obtain @host @-rules declared in
the given shadow root.
(WebCore::StyleScopeResolver::addHostRule):
Added a new method to register @host @-rules with shadow roots.
(WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
A new method to find whether any @host @-rules are applied to
the given host element.
(WebCore::StyleScopeResolver::matchHostRules):
A new method to find matched rules for the given host element.
(WebCore::StyleScopeResolver::reportMemoryUsage):

  • css/StyleScopeResolver.h:

(WebCore):
(StyleScopeResolver):

  • css/StyleSheetContents.cpp:

(WebCore::childRulesHaveFailedOrCanceledSubresources):

LayoutTests:

  • fast/dom/shadow/athost-atrules-expected.txt: Added.
  • fast/dom/shadow/athost-atrules.html: Added.
(edit) @132302   12 years kling

REGRESSION(r130643): ASSERTION FAILED: result.iterator != end() below PluginDatabase::add
<http://webkit.org/b/100065>

Reviewed by Anders Carlsson.

Restore the pre-r130643 hash table size for PluginDatabase to prevent these easily reproducible
collisions. This will need a proper fix at some point.

  • plugins/PluginDatabase.h:
  • plugins/PluginPackage.h:

(PluginPackageHashTraits):

(edit) @132301   12 years ossy

Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
https://bugs.webkit.org/show_bug.cgi?id=100159

Patch by Simon Fraser <Simon Fraser> on 2012-10-23
Reviewed by Tim Horton.

Source/WebCore:

Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.

Test: platform/mac/tiled-drawing/use-tiled-drawing.html

  • page/Frame.h:
  • platform/graphics/GraphicsLayer.cpp:

(showGraphicsLayerTree):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::tiledBacking):

  • platform/graphics/TiledBacking.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::tiledBacking):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):

  • platform/graphics/ca/GraphicsLayerCA.h:

(GraphicsLayerCA):

  • platform/graphics/ca/mac/TileCache.h:

(WebCore::TileCache::tileCoverageRect):
(TileCache):

  • platform/graphics/ca/mac/TileCache.mm:

(WebCore::TileCache::computeTileCoverageRect):
(WebCore::TileCache::revalidateTiles):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerTreeAsText):

  • testing/Internals.cpp:

(WebCore::Internals::layerTreeAsText):

  • testing/Internals.h:
  • testing/Internals.idl:

Tools:

Make WebKitTestRunner use a WKView with a tile cache for tests run in a directory
whose path includes "tiled-drawing". It does this by passing around a WKDictionary
of options, and if the current PlatformWebView doesn't support those options, it will
create a new one.

  • WebKitTestRunner/PlatformWebView.h:

(PlatformWebView): Add a WKDictionaryRef options dictionary argument.
(WTR::PlatformWebView::viewSupportsOptions): Returns true if the view
supports the options in the WKDictionaryRef.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize): Call createWebViewWithOptions() with
no options in the normal case.
(WTR::TestController::createWebViewWithOptions): Moved code into this fuction
so we can call it in two places.
(WTR::TestController::ensureViewSupportsOptions): If the current view
doesn't support the given options, throw it away and makea new one that does.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::shouldUseTiledDrawing): Return true if the directory contains "tiled-drawing".
(WTR::updateTiledDrawingForCurrentTest): Tell the TestController to check whether
the view supports the given options. No-op for non-Mac platforms.
(WTR::TestInvocation::invoke): Call updateTiledDrawingForCurrentTest().

  • WebKitTestRunner/efl/PlatformWebViewEfl.cpp:

(WTR::PlatformWebView::PlatformWebView): New constructor parameter.

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::PlatformWebView): New constructor parameter.

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(-[TestRunnerWKView initWithFrame:contextRef:pageGroupRef:useTiledDrawing:]):
(-[TestRunnerWKView _shouldUseTiledDrawingArea]): Subclass the WKView so we can return
a custom value from this method.
(WTR::PlatformWebView::PlatformWebView):
(WTR::PlatformWebView::viewSupportsOptions):

  • WebKitTestRunner/qt/PlatformWebViewQt.cpp:

(WTR::PlatformWebView::PlatformWebView): New constructor parameter.

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::PlatformWebView): New constructor parameter.

LayoutTests:

A new test that dumps tile cache data for a large page.

  • platform/mac/tiled-drawing/use-tiled-drawing-expected.txt: Added.
  • platform/mac/tiled-drawing/use-tiled-drawing.html: Added.
(edit) @132300   12 years commit-queue

[Texmap][EFL] Add AcceleratedCompositingContextEfl to the build system.
https://bugs.webkit.org/show_bug.cgi?id=88630

Patch by Hyowon Kim <hw1008.kim@samsung.com> on 2012-10-23
Reviewed by Gyuyoung Kim.

Source/WebKit:

  • PlatformEfl.cmake: Add the AcceleratedCompositingContextEfl.cpp file

and INCLUDE paths for TEXTURE_MAPPER_GL.

Source/WebKit/efl:

  • WebCoreSupport/AcceleratedCompositingContextEfl.cpp: Modify the #include file.
(edit) @132299   12 years simon.fraser

Flush pending GraphicsLayer changes when reattaching compositing layers if necessary
https://bugs.webkit.org/show_bug.cgi?id=100187
<rdar://problem/12546770>

Reviewed by Dan Bernstein.

Fix a regression from r131940. That revision changed RenderLayerCompositor::flushPendingLayerChanges()
to bail if the root layer is unattached, which indicates that we're in the page cache, or in a
background tab. However, that dropped the layer flush on the floor, so that any subsequent changes
to GraphicsLayerCAs would just pile up and never get flushed. This was most evident on pages
that require frequent flushing, such as those running animated GIFs.

Fix by setting a flag in flushPendingLayerChanges() if we're unattached. Consult the flag
when re-attaching the root layer, and if it's set, flush the GraphicsLayers.

Not testable because we can't test detaching and re-adding web views in DRT/WTR.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::RenderLayerCompositor): Initialize m_shouldFlushOnReattach to false.
(WebCore::RenderLayerCompositor::flushPendingLayerChanges): If the root layer attachment
is RootLayerUnattached, set the m_shouldFlushOnReattach flag before returning.
(WebCore::RenderLayerCompositor::attachRootLayer): If m_shouldFlushOnReattach, flush the layers,
saying that we're the flush root.

  • rendering/RenderLayerCompositor.h:

(RenderLayerCompositor): Add m_shouldFlushOnReattach flag.

(edit) @132298   12 years ossy

Unreviewed, rolling out r132276.
http://trac.webkit.org/changeset/132276
https://bugs.webkit.org/show_bug.cgi?id=100189

It broke the Qt-WK2 build intentionally (Requested by
Ossy_night on #webkit).

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

Source/WebCore:

  • page/Frame.h:
  • platform/graphics/GraphicsLayer.cpp:

(showGraphicsLayerTree):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::tiledBacking):

  • platform/graphics/TiledBacking.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::tiledBacking):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):

  • platform/graphics/ca/GraphicsLayerCA.h:

(GraphicsLayerCA):

  • platform/graphics/ca/mac/TileCache.h:
  • platform/graphics/ca/mac/TileCache.mm:

(WebCore::TileCache::tileCoverageRect):
(WebCore::TileCache::revalidateTiles):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerTreeAsText):

  • testing/Internals.cpp:

(WebCore::Internals::layerTreeAsText):

  • testing/Internals.h:
  • testing/Internals.idl:

Tools:

  • WebKitTestRunner/PlatformWebView.h:

(PlatformWebView):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

  • WebKitTestRunner/TestController.h:

(TestController):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR):
(WTR::TestInvocation::invoke):

  • WebKitTestRunner/efl/PlatformWebViewEfl.cpp:

(WTR::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/qt/PlatformWebViewQt.cpp:

(WTR::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::PlatformWebView):

LayoutTests:

  • platform/mac/tiled-drawing/use-tiled-drawing-expected.txt: Removed.
  • platform/mac/tiled-drawing/use-tiled-drawing.html: Removed.
(edit) @132297   12 years noel.gordon

exif-orientation tests should use dumpAsText(true)
https://bugs.webkit.org/show_bug.cgi?id=100076

Reviewed by Eric Seidel.

  • fast/images/exif-orientation-css.html: Use dumpAsText(true).
  • fast/images/exif-orientation.html: ditto.
(edit) @132296   12 years noam.rosenthal

Coordinated Graphics: Enable threaded/IPC animations
https://bugs.webkit.org/show_bug.cgi?id=93146

Unreviewed build fix, some function names changed between review and landing.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:

(CoreIPC::encodeTimingFunction):
(CoreIPC::decodeTimingFunction):
(CoreIPC::::encode):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:

(WebCore):

(edit) @132295   12 years pdr

Add extra check for data() in PageSerializer.
https://bugs.webkit.org/show_bug.cgi?id=99102

Reviewed by Eric Seidel.

The image returned from imageForRenderer() does not contain the raw SVG data
so this patch adds a check for image->image()->data() before writing SVG
in PageSerializer::addImageToResources.

Covered by existing test WebPageNewSerializeTest.SVGImageDontCrash.

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::addImageToResources):

(edit) @132294   12 years weinig

Stop using NSHomeDirectory() to get the home directory, it doesn't always return what we want
https://bugs.webkit.org/show_bug.cgi?id=100180

Reviewed by Anders Carlsson.

NSHomeDirectory() doesn't return the real home directory if the host process
is App Sandboxed, so drop down and use getpwuid_r instead.

  • WebProcess/mac/WebProcessMac.mm:

(WebKit::appendReadwriteSandboxDirectory):
There is no reason anymore to try to create the directory.

(WebKit::WebProcess::initializeSandbox):
Switch to getpwuid_r.

(edit) @132293   12 years commit-queue

[EFL] Unreviewed EFL gardening.
https://bugs.webkit.org/show_bug.cgi?id=100125

Added pixel baselines for editing/pasteboard.

Patch by Michał Pakuła vel Rutka <Michał Pakuła vel Rutka> on 2012-10-23

  • platform/efl/editing/pasteboard: 26 new pixel baselines.
(edit) @132292   12 years tkent

Move appendAsLDMLLiteral in LocaleWin.cpp to a common place
https://bugs.webkit.org/show_bug.cgi?id=100129

Reviewed by Kentaro Hara.

We're going to use appendAsLDMLLiteral in other code, and it is
related to DateTimeFormat class. So we move it to DateTimeFormat
class as quoteAndAppendLiteral.

No new tests because of no behavior change.

  • platform/text/DateTimeFormat.cpp:

(WebCore::DateTimeFormat::quoteAndAppendLiteral):
Moved from LocaleWin.cpp

  • platform/text/DateTimeFormat.h:

Declare StringBuilder by wtf/Forward.h. It also declares String.
(DateTimeFormat): Declare quoteAndAppendLiteral.

  • platform/text/LocaleWin.cpp:

(WebCore): Move appendLDMLLiteral to DateTimeFormat.
(WebCore::convertWindowsDateFormatToLDML):
Follow the moving.

(edit) @132291   12 years tkent

REGRESSION(r131421): Text baseline is not aligned in some locales
https://bugs.webkit.org/show_bug.cgi?id=100088

Reviewed by Hajime Morita.

Source/WebCore:

Before this patch, the element with ::-webkit-datetime-edit had
-webkit-align-items:center. It was incorrect at all because it
ignores baselines of each of inner fields. We need to change it to
-webkit-align-items:baseline, or stop using -webkit-flex.

However -webkit-align-items:baseline doesn't work because a spin
button element in the element doesn't have the baseline. If we
specified -webkit-align-items:baseline, the spin button would
shift up.

So, we change the element structure for multiple fields input
elements. Before this patch, the structure was:

input

|

  • ::-webkit-date-and-time-container (flex cotainer) |
::-webkit-datetime-edit (has flexibility in date-and-time-container, also this is a flex container)
|::-webkit-datetime-edit-foo

| | :
| |

|::-webkit-date-time-edit-gap (has flexibility in datetime-edit)

| - ::-webkit-inne-spin-button

  • ::-webkit-calendar-picker-indicator

After the patch, the structure will be:

input

|

  • ::-webkit-date-and-time-container (flexible box) |
::-webkit-datetime-edit (has flexibility in date-and-time-container)
|::-webkit-datetime-edit-foo

| | :
| |
|

::-webkit-inne-spin-button

  • ::-webkit-calendar-picker-indicator

Because the spin button owner is date-and-time-container, we don't
need to make the datetime-edit element a flex container.

Also, we had rounding error by subpixel layout. To avoid it, we
stop using fractional paddings.

In order to implement this, we need to change the SpinButtonOwner
interface provider from DateTimeEditElement to
BaseMultipleFieldsDateAndTimeInputType.

No new tests. Covered by month-multiple-fields-appearance-l10n.html.

  • css/html.css:

(input::-webkit-datetime-edit): Stop making this a flex
container. Inner fields in this use the single baseline.
(input::-webkit-datetime-edit-ampm-field):
Don't use fractional paddings to avoid rounding erros of subpixel
layout. Use integral margin instead to avoid overwrap of focus
ring and background-color of the field.
(input::-webkit-datetime-edit-day-field): Ditto.
(input::-webkit-datetime-edit-hour-field): Ditto.
(input::-webkit-datetime-edit-millisecond-field): Ditto.
(input::-webkit-datetime-edit-minute-field): Ditto.
(input::-webkit-datetime-edit-month-field): Ditto.
(input::-webkit-datetime-edit-second-field): Ditto.
(input::-webkit-datetime-edit-week-field): Ditto.
(input::-webkit-datetime-edit-year-field): Ditto.
(input::-webkit-date-and-time-container): Ditto.

  • html/BaseMultipleFieldsDateAndTimeInputType.h:

(BaseMultipleFieldsDateAndTimeInputType): Overrides
SpinButtonOwner functions, and add m_spinButtonElement.

  • html/BaseMultipleFieldsDateAndTimeInputType.cpp:

(WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner):
Just delegate to DateTimeEditElement::focusIfNoFocus.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents):
Moved from DateTimeEditElement::shouldSpinButtonRespondToMouseEvents.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents):
Moved from DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown):
Delegate to DateTimeEditElement::stepDown.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp):
Delegate to DateTimeEditElement::stepUp.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
Initialize m_spinButtonElement.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
Reset SpinButtonOwner for m_spinButtonElement like the old code of ~DateTimeEditElement.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
Put a SpinButtonElement between the DateTimeEditElement and the PickerIndicatorElement.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent):
Take care of SpinButtonElement.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
Release capture of SpinButtonElement. This corresponds to the old
code of DateTimeEditElement::updateUIState.
(WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): Ditto.

  • html/TextFieldInputType.h:

Make SpinButtonElement::SpinButtonOwner protected to allow overriding.

  • html/shadow/DateTimeEditElement.h:

(DateTimeEditElement): Remove SpniButtonOwner implementation,
m_spinButton, and rename some functions.

  • html/shadow/DateTimeEditElement.cpp:

(WebCore::DateTimeEditElement::DateTimeEditElement):
Remove m_spinButton.
(WebCore::DateTimeEditElement::~DateTimeEditElement): Ditto.
(WebCore::DateTimeEditElement::focusIfNoFocus):
Renamed from focusAndSelectSpinButtonOwner. This is called
BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner.
(WebCore::DateTimeEditElement::layout):
Remove creation code for -webkit-datetime-edit-gap and SpinButtonElement.
(WebCore::DateTimeEditElement::defaultEventHandler):
Move the code for m_spinButton to
BaseMultipleFieldsDateAndTimeInputType::forwardEvent.
(WebCore::DateTimeEditElement::hasFocusedField): A helper for
BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents.
(WebCore::DateTimeEditElement::stepDown): A helper for
BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown.
(WebCore::DateTimeEditElement::stepUp): A helper for
BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp.
(WebCore::DateTimeEditElement::updateUIState): Move the code to
BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged
and readonlyAttributeChanged.

LayoutTests:

Add a pixel image which has notable changes.
Input elements in other tests have slightly small height and
slightly narrow width.

  • platform/chromium-mac/fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n-expected.png:
  • platform/chromium/TestExpectations:
(edit) @132290   12 years commit-queue

[BlackBerry] Web page renders at the wrong zoom level after viewport changes
https://bugs.webkit.org/show_bug.cgi?id=100096

Patch by Robin Cao <robin.cao@torchmobile.com.cn> on 2012-10-23
Reviewed by Rob Buis.

Notify the client of the zoom level change before resuming screen updates.
Otherwise, the user interface thread may blit the content at the wrong
zoom level in some cases. This can also prevent potential flickering.

Reviewed internally by Arvid Nilsson.

PR #225741

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::zoomAboutPoint):
(BlackBerry::WebKit::WebPagePrivate::zoomBlock):

(edit) @132289   12 years mrobinson

POTFILES.in/.skip need updates for translators
https://bugs.webkit.org/show_bug.cgi?id=67580

Reviewed by Xan Lopez.

.:

Now process POTFILES.in during configuration.

  • configure.ac:

Source/WebKit/gtk/po:

Move POTFILES to POTFILES.in to satisfy intltools-update and also update
the list of files with translations. Since the way the path is calculated
is different now, we also need to change the gettext invocation in
GNUmakefile.am.

  • GNUmakefile.am:
  • POTFILES: Removed.
  • POTFILES.in: Added.
(edit) @132288   12 years kling

Shrink immutable ElementAttributeData and StylePropertySet by one pointer each.
<http://webkit.org/b/100123>

Reviewed by Anders Carlsson.

Remove one pointer of unintentional padding in the immutable versions of these objects.
583kB progression on Membuster3.

  • css/StylePropertySet.cpp:

(WebCore::immutableStylePropertySetSize):

  • dom/ElementAttributeData.cpp:

(WebCore::immutableElementAttributeDataSize):

(edit) @132287   12 years japhet

Crash in WebCore::SubresourceLoader::willSendRequest.
https://bugs.webkit.org/show_bug.cgi?id=100147

Reviewed by Abhishek Arya.

No new tests. There is a test case that should cover this, but it doesn't
work correctly on many platforms due to its use of testRunner.addURLToRedirect().
See http/tests/loading/cross-origin-XHR-willLoadRequest.html.
Tested manually on http://www.nick.co.uk/shows/spongebob

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequest):

(edit) @132286   12 years mrobinson

[GTK][Soup] Implement the default authentication dialog via WebCoreSupport
https://bugs.webkit.org/show_bug.cgi?id=99351

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Instead of connecting to the SoupSession::authenticate signal in the API layer
via a SoupSessionFeature, route the message through the typical WebCore authentication
mechanism. This is a step on the path to having full-blown support for authentication
in the API allowing for custom authentication dialogs and behavior in clients.

No new tests. This should not change behavior.

  • GNUmakefile.list.am: Add the new implementation file for the AuthenticationChallenge.
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Include GTK+ here as well.

  • platform/gtk/GtkAuthenticationDialog.cpp: Instead of carrying a raw pointer to a SoupAuth

carry a GRefPtr which will allow the dialog to be used even after the AuthenticationChallenge
is destroyed.

  • platform/gtk/GtkAuthenticationDialog.h: ditto.
  • platform/network/ResourceHandle.h: Add a didReceiveAuthenticationChallenge method.
  • platform/network/ResourceHandleInternal.h:

(ResourceHandleInternal): Remove the getter for the initiating page ID.

  • platform/network/soup/AuthenticationChallenge.h: Added an implementation of AuthenticationChallenge

that takes a bit of data from the handle including SoupMessage, SoupAuth, and SoupSession.

  • platform/network/soup/AuthenticationChallengeSoup.cpp: Added. Ditto.
  • platform/network/soup/ResourceError.h:

(ResourceError): Added a factory for authentication errors.

  • platform/network/soup/ResourceErrorSoup.cpp: Ditto.
  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::setSoupRequestInitiaingPageID): Just get the page directly from the NetworkingContext.
(WebCore::createSoupMessageForHandleAndRequest): Always set the "handle" data on the message.
It's always used now.
(WebCore::ResourceHandle::start): Get the initiating page ID directly from the NetworkingContext.
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Added this method which routes
the authentication challenge to the client.
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added a stub for this method.
(WebCore::ResourceHandle::loadResourceSynchronously): Don't pass the session to the loader.
(WebCore::authenicateCallback): Added.
(WebCore::ResourceHandle::defaultSession): Connect the authenticate callback.

Source/WebKit/gtk:

Instead of using a custom SoupSessionFeature to show the authentication dialog,
show it using the corresponding WebCore message.

  • WebCoreSupport/FrameLoaderClientGtk.cpp:

(WebKit::FrameLoaderClient::dispatchDidReceiveAuthenticationChallenge):
Show the dialog when we need to authenticate. Also, so not show the dialog
if we are in DRT mode.

  • webkit/webkitglobals.cpp:

(webkitInit): No longer install our SoupFeature.

Source/WebKit2:

Instead of using a custom SoupSessionFeature to show the authentication
dialog, show it using the corresponding WebCore message.

  • GNUmakefile.list.am: Removed the SoupSessionFeature files.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit): Only use the default dispatchDidReceiveAuthenticationChallenge
for non-GTK+ ports.

  • WebProcess/WebCoreSupport/gtk/WebFrameLoaderClientGtk.cpp: Added.

(WebKit::WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge): Added
a GTK+-specific implementation that shows the GtkAuthenticationDialog.

  • WebProcess/gtk/WebAuthDialog.cpp: Removed.
  • WebProcess/gtk/WebAuthDialog.h: Removed.
  • WebProcess/gtk/WebProcessMainGtk.cpp:

(WebKit::WebProcessMainGtk): Don't install the custom session feature.

Tools:

We no longer need to turn off the soup authentication dialog soup feature,
because it's not installed.

  • DumpRenderTree/gtk/DumpRenderTree.cpp:

(setDefaultsToConsistentStateValuesForTesting): Don't turn off the feature any longer.

(edit) @132285   12 years abarth

[V8] Simplify GCEpilogueVisitor along the same lines as GCPrologueVisitor
https://bugs.webkit.org/show_bug.cgi?id=100157

Reviewed by Eric Seidel.

This patch removes the traits template parameter from GCEpilogueVisitor
and makes it mirror GCPrologueVisitor again.

  • bindings/v8/V8GCController.cpp:

(WebCore):
(ActiveDOMObjectEpilogueVisitor):
(WebCore::ActiveDOMObjectEpilogueVisitor::ActiveDOMObjectEpilogueVisitor):
(WebCore::ActiveDOMObjectEpilogueVisitor::visitDOMWrapper):
(WebCore::V8GCController::majorGCEpilogue):

(edit) @132284   12 years andersca

Remove deprecatedSend
https://bugs.webkit.org/show_bug.cgi?id=100127

Reviewed by Andreas Kling.

deprecatedSend is no longer used anywhere, remove it.

  • Platform/CoreIPC/Connection.h:

(Connection):

  • UIProcess/WebProcessProxy.h:

(WebProcessProxy):

(edit) @132283   12 years commit-queue

Context menu generated from touch gestures on textareas has
context of the cursor position instead of the position where the event occurs.
https://bugs.webkit.org/show_bug.cgi?id=99520

Patch by Varun Jain <varunjain@chromium.org> on 2012-10-23
Reviewed by Kenneth Rohde Christiansen.

Source/WebCore:

Send a synthetic mouse down event for context menu-summoning-gesture events so
that textareas can correctly set cursors before receiving the context menu event.

Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleGestureEvent):
(WebCore::EventHandler::handleGestureTwoFingerTap):
(WebCore):
(WebCore::EventHandler::sendContextMenuEventForGesture):

  • page/EventHandler.h:

(EventHandler):

Source/WebKit/chromium:

Send a synthetic mouse down event for context menu-summoning-gesture events so
that textareas can correctly set cursors before receiving the context menu event.
Also in this change, WebInputEvent::GestureTwoFingerTap now follows the same
code path as WebInputEvent::GestureLongPress, hence fixing this bug for both gestures.

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::handleGestureEvent):

LayoutTests:

Send a synthetic mouse down event for context menu-summoning-gesture events so that
textareas can correctly set cursors before receiving the context menu event.

  • fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html: Added.
  • platform/chromium/fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position-expected.txt: Added.
(edit) @132282   12 years aestes

[WebKit2 API] Add properties to get textRects from a WKDOMRange or WKDOMNode
https://bugs.webkit.org/show_bug.cgi?id=100162

Reviewed by Sam Weinig.

Source/WebCore:

  • WebCore.exp.in: Exported symbols needed by WebKit2.
  • bindings/objc/DOM.mm:

(-[DOMNode textRects]): Moved some logic into Node::textRects()
(everything but the call to updateLayoutIgnorePendingStylesheets()).

  • dom/Node.cpp:

(WebCore::Node::textRects):

  • dom/Node.h:

Source/WebKit2:

  • WebProcess/InjectedBundle/API/mac/WKDOMInternals.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:

(WebKit::toNSArray): Added a helper function to convert a Vector of IntRects to an NSArray.

  • WebProcess/InjectedBundle/API/mac/WKDOMNode.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:

(-[WKDOMNode textRects]):

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange textRects]):

(edit) @132281   12 years abarth

[V8] Remove unused function from DOM wrapper visitor
https://bugs.webkit.org/show_bug.cgi?id=100163

Reviewed by Eric Seidel.

No one overrides these virtual functions. They were added in
http://trac.webkit.org/changeset/73491, but we don't use them in the GC
controller anymore.

  • bindings/v8/V8DOMMap.h:

(WebCore::WeakReferenceMap::visit):

(edit) @132280   12 years commit-queue

Clear m_mediaSource reference when the MediaSource is closed
https://bugs.webkit.org/show_bug.cgi?id=100047

Patch by Aaron Colwell <acolwell@chromium.org> on 2012-10-23
Reviewed by Eric Carlson.

The m_mediaSource object shouldn't be accessed after the object
transitions to closed so this change simply clears the reference
when that transition happens.

No new tests because the change isn't visible to JavaScript.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource): Removed a closed transition that is actually dead code.
(WebCore::HTMLMediaElement::setSourceState): Clear the m_mediaSource reference on closed transition.

(edit) @132279   12 years commit-queue

[BlackBerry] Cache TouchDown HitTestResult to avoid calling RenderLayer::hitTest unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=99649

Patch by Mike Lattanzio <mlattanzio@rim.com> on 2012-10-23
Reviewed by George Staikos.

Random latency before scroll starts on sites like http://pintrest.com
Internal PR225398

The chief problem here is the all the hit testing that we do for
touch events and simulated mouse events. If the render tree is dirty
hit tests can take a long time in Document::recalcStyle(). Masking
the flags that force style recalculations will make them fast, at the
expense that they might be happening on stale data.

Since we are only using these hit tests to look for event handlers -
we're not actually modifying anything, it is better to skip the
Document::recalcStyle() and save ourselves tons of time.

  • Api/InRegionScroller.cpp:

(BlackBerry::WebKit::InRegionScrollerPrivate::calculateInRegionScrollableAreasForPoint):

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
(BlackBerry::WebKit::WebPage::touchEvent):
(BlackBerry::WebKit::WebPagePrivate::setScrollOriginPoint):
(BlackBerry::WebKit::WebPagePrivate::postponeDocumentStyleRecalc):
(WebKit):
(BlackBerry::WebKit::WebPagePrivate::resumeDocumentStyleRecalc):
(BlackBerry::WebKit::WebPagePrivate::hitTestResult):
(BlackBerry::WebKit::WebPagePrivate::clearCachedHitTestResult):

  • Api/WebPage_p.h:

(WebPagePrivate):

  • WebKitSupport/FatFingers.cpp:

(BlackBerry::WebKit::FatFingers::findBestPoint):
(BlackBerry::WebKit::FatFingers::getRelevantInfoFromCachedHitTest):

  • WebKitSupport/FatFingers.h:
  • WebKitSupport/TouchEventHandler.cpp:

(BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):

(edit) @132278   12 years leviw

The rest of the baselines have landed! Should green the Mac bots for MathML after r132264.

  • platform/chromium-mac-lion/mathml: Added.
  • platform/chromium-mac-lion/mathml/presentation: Added.
  • platform/chromium-mac-lion/mathml/presentation/attributes-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/fenced-mi-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/fractions-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/fractions-vertical-alignment-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/mo-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/mo-stretch-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/mroot-pref-width-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/over-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/roots-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/row-alignment-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/row-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/style-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/sub-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/subsup-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/subsup-expected.txt: Added.
  • platform/chromium-mac-lion/mathml/presentation/sup-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/tables-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/tokenElements-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/under-expected.png: Added.
  • platform/chromium-mac-lion/mathml/presentation/underover-expected.png: Added.
  • platform/chromium-mac-lion/mathml/xHeight-expected.png: Added.
  • platform/chromium-mac/mathml: Added.
  • platform/chromium-mac/mathml/presentation: Added.
  • platform/chromium-mac/mathml/presentation/attributes-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/fenced-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/fenced-mi-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/fractions-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/fractions-vertical-alignment-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/mo-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/mo-stretch-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/mroot-pref-width-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/over-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/roots-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/row-alignment-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/row-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/style-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/sub-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/subsup-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/subsup-expected.txt: Added.
  • platform/chromium-mac/mathml/presentation/sup-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/tables-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/tokenElements-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/under-expected.png: Added.
  • platform/chromium-mac/mathml/presentation/underover-expected.png: Added.
  • platform/chromium-mac/mathml/xHeight-expected.png: Added.
(edit) @132277   12 years leviw

Unreviewed gardening. Updating expectations after r132264.

  • platform/chromium-mac-snowleopard/mathml: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/attributes-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/attributes-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/fenced-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/fenced-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/fenced-mi-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/fenced-mi-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/fractions-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/fractions-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/fractions-vertical-alignment-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/fractions-vertical-alignment-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/mo-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/mo-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/mo-stretch-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/mo-stretch-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/mroot-pref-width-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/mroot-pref-width-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/over-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/over-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/roots-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/roots-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/row-alignment-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/row-alignment-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/row-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/row-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/style-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/style-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/sub-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/sub-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/subsup-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/subsup-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/sup-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/sup-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/tables-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/tables-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/tokenElements-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/tokenElements-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/under-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/under-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/underover-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/presentation/underover-expected.txt: Added.
  • platform/chromium-mac-snowleopard/mathml/xHeight-expected.png: Added.
  • platform/chromium-mac-snowleopard/mathml/xHeight-expected.txt: Added.
(edit) @132276   12 years simon.fraser

Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
https://bugs.webkit.org/show_bug.cgi?id=100159

Reviewed by Tim Horton.

Source/WebCore:

Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.

Test: platform/mac/tiled-drawing/use-tiled-drawing.html

  • page/Frame.h:
  • platform/graphics/GraphicsLayer.cpp:

(showGraphicsLayerTree):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::tiledBacking):

  • platform/graphics/TiledBacking.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::tiledBacking):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):

  • platform/graphics/ca/GraphicsLayerCA.h:

(GraphicsLayerCA):

  • platform/graphics/ca/mac/TileCache.h:

(WebCore::TileCache::tileCoverageRect):
(TileCache):

  • platform/graphics/ca/mac/TileCache.mm:

(WebCore::TileCache::computeTileCoverageRect):
(WebCore::TileCache::revalidateTiles):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerTreeAsText):

  • testing/Internals.cpp:

(WebCore::Internals::layerTreeAsText):

  • testing/Internals.h:
  • testing/Internals.idl:

Tools:

Make WebKitTestRunner use a WKView with a tile cache for tests run in a directory
whose path includes "tiled-drawing". It does this by passing around a WKDictionary
of options, and if the current PlatformWebView doesn't support those options, it will
create a new one.

  • WebKitTestRunner/PlatformWebView.h:

(PlatformWebView): Add a WKDictionaryRef options dictionary argument.
(WTR::PlatformWebView::viewSupportsOptions): Returns true if the view
supports the options in the WKDictionaryRef.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize): Call createWebViewWithOptions() with
no options in the normal case.
(WTR::TestController::createWebViewWithOptions): Moved code into this fuction
so we can call it in two places.
(WTR::TestController::ensureViewSupportsOptions): If the current view
doesn't support the given options, throw it away and makea new one that does.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::shouldUseTiledDrawing): Return true if the directory contains "tiled-drawing".
(WTR::updateTiledDrawingForCurrentTest): Tell the TestController to check whether
the view supports the given options. No-op for non-Mac platforms.
(WTR::TestInvocation::invoke): Call updateTiledDrawingForCurrentTest().

  • WebKitTestRunner/efl/PlatformWebViewEfl.cpp:

(WTR::PlatformWebView::PlatformWebView): New constructor parameter.

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::PlatformWebView): New constructor parameter.

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(-[TestRunnerWKView initWithFrame:contextRef:pageGroupRef:useTiledDrawing:]):
(-[TestRunnerWKView _shouldUseTiledDrawingArea]): Subclass the WKView so we can return
a custom value from this method.
(WTR::PlatformWebView::PlatformWebView):
(WTR::PlatformWebView::viewSupportsOptions):

  • WebKitTestRunner/qt/PlatformWebViewQt.cpp:

(WTR::PlatformWebView::PlatformWebView): New constructor parameter.

  • WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::PlatformWebView): New constructor parameter.

LayoutTests:

A new test that dumps tile cache data for a large page.

  • platform/mac/tiled-drawing/use-tiled-drawing-expected.txt: Added.
  • platform/mac/tiled-drawing/use-tiled-drawing.html: Added.
(edit) @132275   12 years noam.rosenthal

Coordinated Graphics: Enable threaded/IPC animations
https://bugs.webkit.org/show_bug.cgi?id=93146

Reviewed by Kenneth Rohde Christiansen.

Source/WebCore:

Add enablers to TextureMapper and GraphicsLayerAnimation so that they could be used
across processes with IPC. Added some public accessors to GraphicsLayerAnimation,
and allowed a GraphicsLayerTextureMapper to receive a full list of animations.

Covered by existing animation and compositing tests.

  • platform/graphics/GraphicsLayerAnimation.cpp:

(WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):

Initialize the animation with the startTime instead of the offset.

(WebCore::GraphicsLayerAnimations::getActiveAnimations):

  • platform/graphics/GraphicsLayerAnimation.h:

(WebCore::GraphicsLayerAnimation::setState):

Allow setting the pause time as well.

(WebCore::GraphicsLayerAnimation::boxSize):
(WebCore::GraphicsLayerAnimation::startTime):
(WebCore::GraphicsLayerAnimation::pauseTime):
(WebCore::GraphicsLayerAnimation::animation):
(WebCore::GraphicsLayerAnimation::keyframes):
(WebCore::GraphicsLayerAnimation::listsMatch):
(WebCore::GraphicsLayerAnimations::size):
(WebCore::GraphicsLayerAnimations::animations):

Add public accessors to GraphicsLayerAnimation properties.

(GraphicsLayerAnimation):
(GraphicsLayerAnimations):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::addAnimation):
(WebCore::GraphicsLayerTextureMapper::setAnimations):

Allow replacing the entire list of animations.

(WebCore):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:

(GraphicsLayerTextureMapper):

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::applyAnimationsRecursively):
(WebCore):

  • platform/graphics/texmap/TextureMapperLayer.h:

(TextureMapperLayer):

Source/WebKit2:

Re-enable UI-process animations for Coordinated-Graphics/TextureMapper.

  • Added an argument coder for GraphicsLayerAnimations.
  • Allow LayerTreeCoordinator to manage the animations per layer with the proxy, as opposed to applying the animation values in the web process as before.
  • LayerTreeRenderer now calls updateViewport() after painting when an animation is active.

To overcome the problem we've had in the past with synchronizing UI-side and web-side
animations, we now lock the animations in the UI process when a frame starts rendering,
and unlock it when the frame finishes rendering, or if after the layout there is no visible
changes pending on the screen.

  • Scripts/webkit2/messages.py:

(headers_for_type):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:

(CoreIPC):
(CoreIPC::encodeTimingFunction):
(CoreIPC::decodeTimingFunction):
(CoreIPC::::encode):
(CoreIPC::::decode):

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.h:

(WebCore):

Added argument coders for GraphicsLayerAnimations.

  • UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.cpp:

(WebKit::LayerTreeCoordinatorProxy::setLayerAnimations):
(WebKit::LayerTreeCoordinatorProxy::setAnimationsLocked):

  • UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:

(LayerTreeCoordinatorProxy):

  • UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.messages.in:

Added an option to sync the layer's animations, and also to lock/unlock animations.

  • UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:

(WebKit::LayerTreeRenderer::LayerTreeRenderer):
(WebKit::LayerTreeRenderer::paintToCurrentGLContext):

Sync animations if they're not locked, and call updateViewport() if we have animations.

(WebKit::LayerTreeRenderer::flushLayerChanges):
(WebKit::LayerTreeRenderer::setLayerAnimations):
(WebKit::LayerTreeRenderer::setAnimationsLocked):

  • UIProcess/CoordinatedGraphics/LayerTreeRenderer.h:

(LayerTreeRenderer):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::didChangeAnimations):
(WebCore::CoordinatedGraphicsLayer::setShouldUpdateVisibleRect):
(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::syncLayerState):
(WebCore::CoordinatedGraphicsLayer::syncAnimations):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::addAnimation):
(WebCore::CoordinatedGraphicsLayer::pauseAnimation):
(WebCore::CoordinatedGraphicsLayer::removeAnimation):
(WebCore::CoordinatedGraphicsLayer::animationStartedTimerFired):
(WebCore):

Pass the animation info to the UI process instead of applying it in the web process.

(WebCore::CoordinatedGraphicsLayer::hasPendingVisibleChanges):

Compute whether a layer tree might have sync issues or flickers if rendered while
background animations are ongoing.

(WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
(WebCore::CoordinatedGraphicsLayer::selfOrAncestorHaveNonAffineTransforms):

Don't allow progressive tiling for layers with animations.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:

(WebCore):
(CoordinatedGraphicsLayerClient):
(CoordinatedGraphicsLayer):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:

(WebKit::LayerTreeCoordinator::LayerTreeCoordinator):
(WebKit::LayerTreeCoordinator::lockAnimations):
(WebKit):
(WebKit::LayerTreeCoordinator::unlockAnimations):
(WebKit::LayerTreeCoordinator::performScheduledLayerFlush):
(WebKit::LayerTreeCoordinator::setLayerAnimations):

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:

(LayerTreeCoordinator):

(edit) @132274   12 years crogers

Change setTargetValueAtTime() to setTargetAtTime()
https://bugs.webkit.org/show_bug.cgi?id=100153

Reviewed by Adam Barth.

Source/WebCore:

The AudioParam method name has changed due to Web Audio API spec review.
Keep legacy support for the old name.

Test: webaudio/audioparam-setTargetAtTime.html

  • Modules/webaudio/AudioParam.h:

(WebCore::AudioParam::setTargetAtTime):

  • Modules/webaudio/AudioParam.idl:
  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::setTargetAtTime):
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):

  • Modules/webaudio/AudioParamTimeline.h:

(AudioParamTimeline):

LayoutTests:

  • webaudio/audioparam-setTargetAtTime-expected.txt: Renamed from LayoutTests/webaudio/audioparam-setTargetValueAtTime-expected.txt.
  • webaudio/audioparam-setTargetAtTime.html: Renamed from LayoutTests/webaudio/audioparam-setTargetValueAtTime.html.
  • webaudio/resources/audioparam-testing.js:
(edit) @132273   12 years zoltan

Add measurePageLoadTime function to PerfTestRunner
https://bugs.webkit.org/show_bug.cgi?id=100029

Reviewed by Ryosuke Niwa.

Adopt chunk based loading logic from html5-full-render.html into measurePageLoadTime function,
this is needed to measure the performance and the memory consumption of the PageLoadTests as
we do it for all other performancetests.

  • Parser/html5-full-render.html: Move the behavior to runner.js.
  • resources/runner.js:

(.): Add measurePageLoadTime function.

(edit) @132272   12 years benjamin

[Mac] Remove extraneous conversion to String->NSString
https://bugs.webkit.org/show_bug.cgi?id=100044

Reviewed by Darin Adler.

Improve some unfortunate use of String->NSString.

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postPlatformNotification): The variable macNotification is ultimately
needed as NSString, and all its value are or can be NSString.
Convert the last 3 char* values to NSString literal and use NSString* all the way.

  • loader/mac/LoaderNSURLExtras.h:
  • loader/mac/LoaderNSURLExtras.mm:

(suggestedFilenameWithMIMEType):
We converted the String to NSString to pass to suggestedFilenameWithMIMEType. There is no need
for the string to be a NSSTring there, we can leave it in its original type.

The case checking for a nil MIMEType was dead code because the implicit conversion never returns nil.

  • platform/mac/DragImageMac.mm:

(WebCore::createDragImageForLink):
Use String's nsStringNilIfEmpty().

  • platform/mac/HTMLConverter.mm:

(-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
Fix the coding style. Do the conversion to NSString only when needed.

(edit) @132271   12 years roger_fong

[Win] Popup menus positioning needs to take multiple monitors into account.
https://bugs.webkit.org/show_bug.cgi?id=100158

Reviewed by Timothy Horton.

Add screen.x() to repositioning check to account for position of current monitor.

  • platform/win/PopupMenuWin.cpp:

(WebCore::PopupMenuWin::calculatePositionAndSize):

(edit) @132270   12 years commit-queue

[CSS Shaders] Set FilterOperations on GraphicsLayer after the program of CSS Shaders is loaded.
https://bugs.webkit.org/show_bug.cgi?id=99908

Patch by Huang Dongsung <luxtella@company100.net> on 2012-10-23
Reviewed by Dean Jackson.

CSS Shaders can not render anything until the program is loaded. If there is
partial loaded shaders program, whole FilterOperations chain can not render
anything. It occurs a flash. So We have to wait until the program is loaded, to
prevent a flash as RenderLayerBacking::updateImageContents() waits until an
image is fully loaded.

No new tests, CSS Shaders on Accelerated Compositing are not activated yet.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateFilters):

(edit) @132269   12 years commit-queue

Generated should not be supported for things with a shadow
https://bugs.webkit.org/show_bug.cgi?id=98836

Patch by Elliott Sprehn <esprehn@chromium.org> on 2012-10-23
Reviewed by Dimitri Glazkov.

Source/WebCore:

As far as CSS is concerned inputs and things with shadow content inside
shouldn't support pseudo elements like :before, :after or :first-letter.
Neither Gecko or Presto supports it, and we only accidentally supported
it.

Until the spec tells us what to do we should disable support. This is
also neccesary because the new generated content implementation doesn't
support shadows.

Test: fast/forms/pseudo-elements.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::updateFirstLetter):

  • rendering/RenderListBox.h: Added missing canHaveGeneratedChildren() that returns false.
  • rendering/RenderObjectChildList.cpp:

(WebCore::RenderObjectChildList::updateBeforeAfterContent):

LayoutTests:

Change all pseudos on <input> tests to be ref tests and clean up the tests.
They now make sure we don't support generated content on things with a shadow.
Also added another test for the other form control types to ensure they don't
support pseudos either.

  • fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.html: Added.
  • fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.txt: Removed.
  • fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements.html:
  • fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.html: Added.
  • fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.txt: Removed.
  • fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements.html:
  • fast/forms/pseudo-elements-expected.html: Added.
  • fast/forms/pseudo-elements.html: Added.
  • fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.html: Added.
  • fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.txt: Removed.
  • fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements.html:
  • fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.html: Added.
  • fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.txt: Removed.
  • fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html:
  • platform/chromium-linux/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-linux/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-linux/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-linux/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-mac-snowleopard/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-mac-snowleopard/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-mac-snowleopard/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-mac-snowleopard/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-mac/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-mac/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-mac/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-mac/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-win/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-win/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-win/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
  • platform/chromium-win/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements-expected.png: Removed.
(edit) @132268   12 years commit-queue

[CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.
https://bugs.webkit.org/show_bug.cgi?id=98504

Patch by Huang Dongsung <luxtella@company100.net> on 2012-10-23
Reviewed by Dean Jackson.

Source/WebCore:

Add expressions for the aforementioned blend modes. The expressions are lifted
directly from the CSS Compositing and Blending spec [1]. WebKit adds these
blending expressions to the author's shader.

[1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnormal

Test: css3/filters/custom/custom-filter-blend-modes.html

  • platform/graphics/filters/CustomFilterValidatedProgram.cpp:

(WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
(WebCore::CustomFilterValidatedProgram::blendFunctionString):

LayoutTests:

Update the test for the aforementioned blend modes.

  • css3/filters/custom/custom-filter-blend-modes-expected.html:
  • css3/filters/custom/custom-filter-blend-modes.html:
(edit) @132267   12 years commit-queue

[CSS Shaders] Implement all composite operators except destination and lighter.
https://bugs.webkit.org/show_bug.cgi?id=97859

Patch by Huang Dongsung <luxtella@company100.net> on 2012-10-23
Reviewed by Dean Jackson.

Source/WebCore:

Add expressions for all composite operators except destination and
lighter. The expressions are lifted directly from the CSS Compositing
and Blending spec [1]. WebKit adds these compositing expressions to the
author's shader.

[1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing

Test: css3/filters/custom/custom-filter-composite-operators.html

  • platform/graphics/filters/CustomFilterCompiledProgram.cpp:

(WebCore::CustomFilterCompiledProgram::initializeParameterLocations):

Remove ASSERTION checking if glGetUniformLocation returns negative,
because ASSERTION can fail with clear and copy composite operations.
Clear and copy composite operations do not need "css_u_texture"
representing the DOM element texture. If the driver compiler is
smart, "css_u_texture" is not regarded as an active uniform, so
glGetuniformLocation returns -1. glGetAttribLocation ditto.

  • platform/graphics/filters/CustomFilterValidatedProgram.cpp:

(WebCore::CustomFilterValidatedProgram::compiledProgram):

Move the above ASSERTION in CustomFilterCompiledProgram to here.
ASSERTION checks if m_samplerLocation is not -1 when the author
shader needs an input texture.

(WebCore::CustomFilterValidatedProgram::needsInputTexture):
(WebCore):
(WebCore::CustomFilterValidatedProgram::compositeFunctionString):

  • platform/graphics/filters/CustomFilterValidatedProgram.h:

(CustomFilterValidatedProgram):

LayoutTests:

Add test to check that the DOM element texture composites correctly with the css_MixColor
variable from the author's shader for each composite operator.

  • css3/filters/custom/custom-filter-composite-operators-expected.png: Added.
  • css3/filters/custom/custom-filter-composite-operators-expected.txt: Added.
  • css3/filters/custom/custom-filter-composite-operators.html: Added.
(edit) @132266   12 years commit-queue

[CSS Shaders] Changing the blend mode in CSS doesn't update the custom filter rendering
https://bugs.webkit.org/show_bug.cgi?id=99887

Patch by Max Vujovic <mvujovic@adobe.com> on 2012-10-23
Reviewed by Dirk Schulze.

Source/WebCore:

Before this patch, WebKit would not recompute an element's style when just its custom filter
blend mode changed.

For example, suppose an element initially has the style:
-webkit-filter: custom(none mix(url(shader.fs) multiply source-atop));

Then, we change the blend mode from "multiply" to "normal":
-webkit-filter: custom(none mix(url(shader.fs) normal source-atop));

WebKit now detects this change and recomputes the style.

CustomFilterProgram now has an equals operator that considers the program type and the mix
settings. The mix settings contain the blend mode.

Test: css3/filters/custom/custom-filter-change-blend-mode.html

  • platform/graphics/filters/CustomFilterProgram.cpp:

(WebCore::CustomFilterProgram::operator==):

Previously, the equals operator was pure virtual in CustomFilterProgram. Now,
CustomFilterProgram implements it and compares the program type and mix settings, if
appropriate.

(WebCore):

  • platform/graphics/filters/CustomFilterProgram.h:
  • platform/graphics/filters/CustomFilterProgramInfo.cpp:

(WebCore::CustomFilterProgramInfo::hash):

Refactor a repeated condition into a boolean to improve readability.

(WebCore::CustomFilterProgramInfo::operator==):

Refactor repeated conditions to improve readability. Reorder the conditions so the less
expensive ones occur first.

  • rendering/style/StyleCustomFilterProgram.h:

(WebCore::StyleCustomFilterProgram::operator==):

Call the base class's equals operator.

LayoutTests:

Add a test that resolves a custom filter's style with the "multiply" blend mode and then
changes the blend mode to "normal". The test makes sure not to change any other parameters
besides the blend mode, since the other parameters can trigger style recalculations on their
own.

  • css3/filters/custom/custom-filter-change-blend-mode-expected.html: Added.
  • css3/filters/custom/custom-filter-change-blend-mode.html: Added.
(edit) @132265   12 years roger_fong

[WebGL] conformance/textures/texture-size.html is failing on Apple Mountain Lion
https://bugs.webkit.org/show_bug.cgi?id=94041

Reviewed by Dean Jackson.

When binding a texture to GL_TEXTURE_2D when GL_ACTIVE_TEXTURE is 0, we set m_boundTexture0 to the texture unit.
However when we delete the texture, we need to be setting m_boundTexture0 to 0.
Otherwise when we draw to the screen we bind m_boundTexture0 in the prepareTexture() method and since the associated texture
has already been deleted we end up in an error state.

Tested using Khronos WebGL conformance suite:
conformance/textures/texture-size.html

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::deleteTexture):

(edit) @132264   12 years dbarton

[MathML] Symbol font uses greek letters for roman ones on linux and Windows
https://bugs.webkit.org/show_bug.cgi?id=99921

Reviewed by Eric Seidel.

Source/WebCore:

For parts of stretched parentheses and brackets, mathml.css currently uses the Symbol font,
which on linux and Windows has greek letters at roman code points. To fix this, we switch
to the STIXSizeOneSym font when available. However, this can cause vertical gaps between
glyph parts, because of hard-coded constants in RenderMathMLOperator.cpp. We eliminate all
these constants. We also shift glyphs upward by 1px and truncate them to avoid the gaps.

Tested by existing tests, and one test added to LayoutTests/mathml/presentation/mo.xhtml.

  • css/mathml.css:

(math, mfenced > *):

  • Set font-family for mn, mi, etc.

(mo, mfenced):

  • Set font-family for mo and anonymous operators, including extension glyphs for stretched operators like parentheses and brackets.

(math):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore):

  • Change 0x23d0 to 0x23aa for STIX & Cambria Math fonts.

(WebCore::RenderMathMLOperator::glyphHeightForCharacter):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::createStackableStyle):

  • Eliminate unused lineHeight and topRelative parameters, and the hard-coded font size of 14.

(WebCore::RenderMathMLOperator::createGlyph):

  • Eliminate unused lineHeight and topRelative parameters.
  • rendering/mathml/RenderMathMLOperator.h:

(RenderMathMLOperator):

Tools:

Enable the STIXSizeOneSym font for testing.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(allowedFontFamilySet):

  • WebKitTestRunner/InjectedBundle/mac/ActivateFonts.mm:

(WTR::allowedFontFamilySet):

LayoutTests:

  • mathml/presentation/mo.xhtml:
  • platform/chromium/TestExpectations:
  • platform/chromium/mathml/presentation/attributes-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/attributes-expected.txt:
  • platform/chromium/mathml/presentation/fenced-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/fenced-expected.txt:
  • platform/chromium/mathml/presentation/fenced-mi-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/fenced-mi-expected.txt:
  • platform/chromium/mathml/presentation/fractions-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/fractions-expected.txt:
  • platform/chromium/mathml/presentation/fractions-vertical-alignment-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/fractions-vertical-alignment-expected.txt:
  • platform/chromium/mathml/presentation/mo-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/mo-expected.txt:
  • platform/chromium/mathml/presentation/mo-stretch-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/mo-stretch-expected.txt:
  • platform/chromium/mathml/presentation/mroot-pref-width-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/mroot-pref-width-expected.txt:
  • platform/chromium/mathml/presentation/over-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/over-expected.txt:
  • platform/chromium/mathml/presentation/roots-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/roots-expected.txt:
  • platform/chromium/mathml/presentation/row-alignment-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/row-alignment-expected.txt:
  • platform/chromium/mathml/presentation/row-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/row-expected.txt:
  • platform/chromium/mathml/presentation/style-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/style-expected.txt:
  • platform/chromium/mathml/presentation/sub-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/sub-expected.txt:
  • platform/chromium/mathml/presentation/subsup-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/subsup-expected.txt:
  • platform/chromium/mathml/presentation/sup-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/sup-expected.txt:
  • platform/chromium/mathml/presentation/tables-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/tables-expected.txt:
  • platform/chromium/mathml/presentation/tokenElements-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/tokenElements-expected.txt:
  • platform/chromium/mathml/presentation/under-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/under-expected.txt:
  • platform/chromium/mathml/presentation/underover-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/presentation/underover-expected.txt:
  • platform/chromium/mathml/xHeight-expected.png: Modified property svn:mime-type.
  • platform/chromium/mathml/xHeight-expected.txt:
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
(edit) @132263   12 years leviw

Unreviewed gardening. Properly skipping http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout*
tests, as was the author's intention.

  • platform/chromium/TestExpectations:
(edit) @132262   12 years tony

[chromium] Chromium window build system does not rebuild correctly when enabling/disabling a feature
https://bugs.webkit.org/show_bug.cgi?id=38926

Reviewed by Eric Seidel.

Remove hack for clobbering build when features.gypi changes. Now that
Chromium requires VS2010 or newer, this bug has gone away.

  • Scripts/update-webkit:
(edit) @132261   12 years benjamin

WTFURL: Implement KURL::setPort()
https://bugs.webkit.org/show_bug.cgi?id=99898

Reviewed by Adam Barth.

Source/WebCore:

  • platform/KURLWTFURL.cpp:

(WebCore::KURL::setPort):

Source/WTF:

Add an efficient implementation for remplacing the port component
in an URL. This will be the base for replacing other components
efficiently.

The testing is covered by fast/dom/HTMLAnchorElement/set-href-attribute-port.html

  • wtf/url/api/ParsedURL.cpp:

(WTF::generateNewSpecWithPort):
(WTF::replacePortWithString):
(WTF::ParsedURL::replacePort):

  • wtf/url/api/ParsedURL.h:

(ParsedURL):

(edit) @132260   12 years thakis

In the open-source jpeg decoder, read image orientation from the exif data
https://bugs.webkit.org/show_bug.cgi?id=100144

Reviewed by Eric Seidel.

This will be used to implement the shouldRespectImageOrientation
setting (see bug 19688). Currently this isn't hooked up anywhere, so
it has no observable effect for now.

Once it's hooked up, it will be tested by
fast/images/exif-orientation.html

  • platform/graphics/BitmapImage.h:
  • platform/image-decoders/ImageDecoder.h:

(WebCore::ImageDecoder::orientation):
(ImageDecoder):

  • platform/image-decoders/jpeg/JPEGImageDecoder.cpp:

(WebCore::readUint16):
(WebCore):
(WebCore::readUint32):
(WebCore::checkExifHeader):
(WebCore::readImageOrientation):
(WebCore::JPEGImageReader::JPEGImageReader):
(WebCore::JPEGImageReader::decode):

  • platform/image-decoders/jpeg/JPEGImageDecoder.h:

(WebCore::JPEGImageDecoder::setOrientation):

(edit) @132259   12 years crogers

Fix thread safety issue in AudioParamTimeline
https://bugs.webkit.org/show_bug.cgi?id=100154

Reviewed by Kenneth Russell.

Add appropriate locking in AudioParamTimeline::valueForContextTime()

  • Modules/webaudio/AudioParamTimeline.cpp:

(WebCore::AudioParamTimeline::valueForContextTime):

(edit) @132258   12 years alecflett

IndexedDB: refactor backend to use IDB*Metadata
https://bugs.webkit.org/show_bug.cgi?id=100055

Reviewed by Tony Chang.

Source/WebCore:

This further encapsulates the static data in
IDBObjectStoreBackendImpl and IDBIndexBackendImp into their
respective IDB*Metadata structs, in preparation for
https://bugs.webkit.org/show_bug.cgi?id=99774.

No new tests as this is purely a refactor.

  • Modules/indexeddb/IDBBackingStore.h:

(IDBBackingStore):

  • Modules/indexeddb/IDBDatabaseBackendImpl.cpp:

(WebCore::IDBDatabaseBackendImpl::createObjectStore):
(WebCore::IDBDatabaseBackendImpl::loadObjectStores):

  • Modules/indexeddb/IDBIndexBackendImpl.cpp:

(WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
(WebCore::IDBIndexBackendImpl::metadata):

  • Modules/indexeddb/IDBIndexBackendImpl.h:

(WebCore::IDBIndexBackendImpl::create):
(WebCore::IDBIndexBackendImpl::id):
(WebCore::IDBIndexBackendImpl::setId):
(WebCore::IDBIndexBackendImpl::hasValidId):
(WebCore::IDBIndexBackendImpl::name):
(WebCore::IDBIndexBackendImpl::keyPath):
(WebCore::IDBIndexBackendImpl::unique):
(WebCore::IDBIndexBackendImpl::multiEntry):
(IDBIndexBackendImpl):

  • Modules/indexeddb/IDBLevelDBBackingStore.cpp:

(WebCore::IDBLevelDBBackingStore::getObjectStores):
(WebCore::IDBLevelDBBackingStore::getIndexes):

  • Modules/indexeddb/IDBLevelDBBackingStore.h:

(IDBLevelDBBackingStore):

  • Modules/indexeddb/IDBMetadata.h:

(WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):

  • Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:

(WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
(WebCore::IDBObjectStoreBackendImpl::metadata):
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::createIndex):
(WebCore::IDBObjectStoreBackendImpl::loadIndexes):

  • Modules/indexeddb/IDBObjectStoreBackendImpl.h:

(WebCore::IDBObjectStoreBackendImpl::create):
(WebCore::IDBObjectStoreBackendImpl::id):
(WebCore::IDBObjectStoreBackendImpl::setId):
(WebCore::IDBObjectStoreBackendImpl::name):
(WebCore::IDBObjectStoreBackendImpl::keyPath):
(WebCore::IDBObjectStoreBackendImpl::autoIncrement):
(IDBObjectStoreBackendImpl):

Source/WebKit/chromium:

Update tests to reflect refactoring.

  • tests/IDBDatabaseBackendTest.cpp:
  • tests/IDBFakeBackingStore.h:
(edit) @132257   12 years krit

BasicShapePolygon::path takes width instead of height for boundary calculation
https://bugs.webkit.org/show_bug.cgi?id=99919

Reviewed by Darin Adler.

Source/WebCore:

The 'y' parameters of polygon were calculated by the with of the bounding box of the object.
This caused problems on percentage values for point positions.
Changed it to the height of the bounding box.

Test: css3/masking/clip-path-polygon-percentage.html

  • rendering/style/BasicShapes.cpp:

(WebCore::BasicShapePolygon::path):

LayoutTests:

Test that the correct relation is used for calculating point position of an polygon.

  • css3/masking/clip-path-polygon-percentage-expected.html: Added.
  • css3/masking/clip-path-polygon-percentage.html: Added.
(edit) @132256   12 years commit-queue

[Chromium] Add CHROMIUM_texture_from_image extension support.
https://bugs.webkit.org/show_bug.cgi?id=99894

Patch by David Reveman <reveman@chromium.org> on 2012-10-23
Reviewed by James Robinson.

Add bindTexImage2DCHROMIUM and releaseTexImage2DCHROMIUM prototypes to
WebGraphicsContext3D.h.

  • chromium/public/WebGraphicsContext3D.h:

(WebGraphicsContext3D):
(WebKit::WebGraphicsContext3D::bindTexImage2DCHROMIUM):
(WebKit::WebGraphicsContext3D::releaseTexImage2DCHROMIUM):

(edit) @132255   12 years lforschler

Hand merge fix for:
<rdar://problem/12530687>


  • UIProcess/mac/WebContextMac.mm:

(WebKit::WebContext::platformInitializeWebProcess):

(edit) @132254   12 years senorblanco

[chromium] Roll chromium DEPS r163297:163557
https://bugs.webkit.org/show_bug.cgi?id=100146

Reviewed by Adrienne Walker.

(edit) @132253   12 years dpranke

Remove remaining fast/innerHTML pixel test baselines after r131960.

Unreviewed, expectations change.

  • platform/chromium-linux/fast/innerHTML/002-expected.png: Removed.
  • platform/chromium-linux/fast/innerHTML/003-expected.png: Removed.
  • platform/chromium-linux/fast/innerHTML/006-expected.png: Removed.
  • platform/chromium-mac-snowleopard/fast/innerHTML/001-expected.png: Removed.
  • platform/chromium-mac-snowleopard/fast/innerHTML/002-expected.png: Removed.
  • platform/chromium-mac-snowleopard/fast/innerHTML/003-expected.png: Removed.
  • platform/chromium-mac-snowleopard/fast/innerHTML/006-expected.png: Removed.
  • platform/chromium-mac/fast/innerHTML/001-expected.png: Removed.
  • platform/chromium-mac/fast/innerHTML/002-expected.png: Removed.
  • platform/chromium-mac/fast/innerHTML/003-expected.png: Removed.
  • platform/chromium-mac/fast/innerHTML/006-expected.png: Removed.
  • platform/chromium-win/fast/innerHTML/001-expected.png: Removed.
  • platform/chromium-win/fast/innerHTML/001-expected.txt: Removed.
  • platform/chromium-win/fast/innerHTML/002-expected.txt: Removed.
  • platform/chromium-win/fast/innerHTML/003-expected.txt: Removed.
  • platform/chromium-win/fast/innerHTML/006-expected.txt: Removed.
  • platform/efl/fast/innerHTML/001-expected.txt: Removed.
  • platform/efl/fast/innerHTML/002-expected.txt: Removed.
  • platform/efl/fast/innerHTML/003-expected.txt: Removed.
  • platform/efl/fast/innerHTML/006-expected.txt: Removed.
  • platform/gtk/fast/innerHTML/001-expected.txt: Removed.
  • platform/gtk/fast/innerHTML/002-expected.txt: Removed.
  • platform/gtk/fast/innerHTML/003-expected.txt: Removed.
  • platform/gtk/fast/innerHTML/006-expected.txt: Removed.
  • platform/gtk/fast/innerHTML/innerHTML-iframe-expected.txt: Removed.
  • platform/mac/fast/innerHTML/001-expected.txt: Removed.
  • platform/mac/fast/innerHTML/002-expected.txt: Removed.
  • platform/mac/fast/innerHTML/003-expected.txt: Removed.
  • platform/mac/fast/innerHTML/006-expected.txt: Removed.
  • platform/qt/fast/innerHTML/001-expected.txt: Removed.
  • platform/qt/fast/innerHTML/002-expected.txt: Removed.
  • platform/qt/fast/innerHTML/003-expected.txt: Removed.
  • platform/qt/fast/innerHTML/006-expected.txt: Removed.
(edit) @132252   12 years dominik.rottsches

Add timeout support to XMLHttpRequest
https://bugs.webkit.org/show_bug.cgi?id=74802

Reviewed by Nate Chapin.

Source/WebCore:

An implementation of XHR2 timeouts by using ResourceRequest's setTimeoutInterval.
This made several changes necessary in CachedResource and SubresourceLoader in order
to distinguish and forward the timeout case from there.

The case of late updates to the timeout property, changing the timeout value after send()
is not supported yet and handled separately in bug 98156.

XHR2 timeout tests were initially written by Mozilla's Alex Vincent's. He granted
permission to reuse them under PD/BSD license
in https://bugzilla.mozilla.org/show_bug.cgi?id=525816#c86 - big thanks!
I adapted them for W3C testharness.js and split them into groups with shorter test running time
so that they can be used as WebKit layout tests.

Tests: http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html

http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html
http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::notifyFinished): Forward information about timeout case.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didFail): Distinguish timeout case when informing client.

  • loader/cache/CachedResource.h: Distinguishing timeout case for errors.

(WebCore::CachedResource::errorOccurred):
(WebCore::CachedResource::loadFailedOrCanceled):
(WebCore::CachedResource::timedOut):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::XMLHttpRequest): Initializing m_timeout value to zero.
(WebCore::XMLHttpRequest::setTimeout): Setter function, possibly raising JS exception.
(WebCore):
(WebCore::XMLHttpRequest::open): Open call may raise exception for synchronous requests when timeout value is set.
(WebCore::XMLHttpRequest::createRequest): Assigning timeout value to ResourceRequest.
(WebCore::XMLHttpRequest::didFail): Handling timeout case separately.
(WebCore::XMLHttpRequest::didTimeout): Timeout case state transisition and event firing as spec'ed.

  • xml/XMLHttpRequest.h: New event listener, member and callback for handling timeout.

(WebCore::XMLHttpRequest::timeout):
(XMLHttpRequest):

  • xml/XMLHttpRequest.idl: New event listener and property added.
  • xml/XMLHttpRequestException.cpp:
  • xml/XMLHttpRequestException.h: Added an exception value for the timeout case.

LayoutTests:

XHR2 timeout tests were initially written by Mozilla's Alex Vincent's. He granted
permission to reuse them under PD/BSD license
in https://bugzilla.mozilla.org/show_bug.cgi?id=525816#c86 - big thanks!
I adapted them for W3C testharness.js and split them into groups with shorter test running time
so that they can be used as WebKit layout tests. Each individual test should
complete in less than 20 seconds.

The case of late updates to the timeout property, changing the timeout value after send()
is not supported yet and handled separately in bug 98156. Tests that are testing this feature
are commented out until this bug is tackled.

The suffix of the html test filename matches the groups in xmlhttprequest-timeout.js which contains
all tests that are run. The result of assertions is reported back to testharness.js.

For example, the "overrides" group is currently not run yet since all tests in that group are cases
of late updates, see above. Once late updates are supported we can add a file
xmlhttprequest-timeout-overrides.html to run them.

  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-runner.js: Added. Distinguishes which group of tests to run based on filename suffix.

(testResultCallbackHandler.return):
(groupFromLocation):

  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html: Added.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout.js: Added. Contains test cases for all individual test html files.

(message): Wrapper for postMessage in worker and document context case.
(is),
(ok): Assertion functions.
(RequestTracker): Class for variations of the regular timeout case.
(RequestTracker.prototype.startXHR.handleEvent):
(RequestTracker.prototype.startXHR):
(RequestTracker.prototype.getMessage):
(RequestTracker.prototype.handleEvent):
(AbortedRequest): Class for testing timeout event vs. abort events.
(AbortedRequest.prototype.startXHR.handleEvent):
(AbortedRequest.prototype.startXHR.abortReq):
(AbortedRequest.prototype.startXHR.else):
(AbortedRequest.prototype.startXHR):
(AbortedRequest.prototype.noEventsFired):
(AbortedRequest.prototype.getMessage):
(AbortedRequest.prototype.handleEvent):
(SyncRequestSettingTimeoutAfterOpen.startXHR),
(SyncRequestSettingTimeoutBeforeOpen.startXHR): Test classes for synchronous XHR cases.
(TestCounter.testComplete),
(TestCounter.next): Used for cycling through tests.

  • platform/chromium/TestExpectations: Skipping XHR timeout cases since setTimeoutInterval is not supported in Chromium's HTTP stack.
  • platform/gtk/TestExpectations: Marking XHR timeout cases as slow in order to run them with a longer test timeout threshold.
  • platform/qt/TestExpectations: Skipping XHR timeout cases since setTimeoutInterval is not supported in Chromium's HTTP stack.
Note: See TracRevisionLog for help on using the revision log.