[EFL][WK2][Texmap] Set gl context in GraphicsContext3DPrivate
https://bugs.webkit.org/show_bug.cgi?id=99325

Patch by Yael Aharon <yael.aharon@intel.com> on 2012-10-15
Reviewed by Kenneth Rohde Christiansen.

Based on a patch from Regina Chung.
This piece of code was lost in the final patch of https://bugs.webkit.org/show_bug.cgi?id=96627.
The gl context is used as key in a hash map and cannot be NULL.

No new tests. Accelerated compositing is not yet enabled in the EFL port.

* platform/graphics/efl/GraphicsContext3DEfl.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131355 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: Key paths should support non-ASCII identifiers
https://bugs.webkit.org/show_bug.cgi?id=98814

Reviewed by Kentaro Hara.

Source/WebCore:

Update the parser for key paths to use the unicode classes from
the IdentifierName production in ECMA-262.

Test: storage/indexeddb/keypath-basics.html

* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore):
(WebCore::IDBKeyPathLexer::lexIdentifier):

LayoutTests:

Test representative characters from various Unicode character classes
as valid (or invalid) identifier lead and trailing characters.

* storage/indexeddb/keypath-basics-expected.txt:
* storage/indexeddb/resources/keypath-basics.js:
(testValidKeyPaths):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131356 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Shaders] Add CustomFilterProgramType to CustomFilterProgramInfo
https://bugs.webkit.org/show_bug.cgi?id=96448

Reviewed by Kenneth Rohde Christiansen.

CustomFilterProgramInfo has been refactored to decouple the CustomFilterProgramType from
the CustomFilterProgramMixSetting: m_mixSettings.enabled was redundant in light of the fact
that m_programType encoded the very same information. Dependencies have been updated to reflect
this change.

Current tests already cover this code.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::valueForFilter): The check for mixSettings.enabled has been replaced
by an explicit check for PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE program type.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createCustomFilterOperation): Setting the program type explicitly while creating a
new filter program.
* platform/graphics/filters/CustomFilterProgram.cpp:
(WebCore::CustomFilterProgram::CustomFilterProgram): CustomFilterProgram's constructor has been updated to
reflect the need of setting the program type explicitly.
(WebCore::CustomFilterProgram::programInfo): Updated to create new CustomFilterProgramInfo setting the program
type explicitly.
* platform/graphics/filters/CustomFilterProgram.h:
* platform/graphics/filters/CustomFilterProgramInfo.cpp:
(WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo): Added m_programType and udpated the related getter.
(WebCore::CustomFilterProgramInfo::hash): ditto
(WebCore::CustomFilterProgramInfo::operator==): MixSettings' equality check is being performed only whether
the CustomFilterProgramInfo's program type is PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE.
* platform/graphics/filters/CustomFilterProgramInfo.h:
(WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings): Got rid of the redundant enabled flag.
(WebCore::CustomFilterProgramMixSettings::operator==): ditto
(CustomFilterProgramInfo):
(WebCore::CustomFilterProgramInfo::programType):
* platform/graphics/filters/CustomFilterValidatedProgram.cpp: The right shader validator is now being
created according to the program type.
(WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
(WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader): The reference to MixSettings' enabled flag
has been replaced with a check for the program type.
(WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): ditto
* rendering/style/StyleCustomFilterProgram.h:
(WebCore::StyleCustomFilterProgram::create): Updated to be aware of the program type.
(WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): ditto


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131357 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Revert rounding change in RenderTable::paintObject
https://bugs.webkit.org/show_bug.cgi?id=99364

Reviewed by Levi Weintraub.

Source/WebCore: 

Bug 91410 changed RenderTable::paintObject to round the offset
in order to avoid table-background bleed through. The root cause
for that has since been fixed and the rounding workaround is no
longer needed. This change reverts the code change from bug
91410 while preserving the test added as a part of that change
as it now passes without the workaround.

No new tests, covered by fast/sub-pixel/table-rows-no-gaps-expected.html

* rendering/RenderTable.cpp:
(WebCore::RenderTable::paintObject):
Remove unnecessary rounding.

LayoutTests: 

Revert pixel expected results to what we had prior to r122769.

* platform/chromium/TestExpectations:
* platform/chromium-linux/css1/basic/inheritance-expected.png:
* platform/chromium-linux/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-linux/fast/sub-pixel/selection/selection-rect-in-sub-pixel-table-expected.png:
* platform/chromium-linux/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.png:
* platform/chromium-linux/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.png:
* platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
* platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
* platform/chromium-linux/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
* platform/chromium-linux/tables/mozilla/bugs/bug73321-expected.png:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131358 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Regression r130057: incorrect block pref width for alternating InlineFlow and inline Replaced
https://bugs.webkit.org/show_bug.cgi?id=99194

Reviewed by Eric Seidel.

Source/WebCore:

Correctly breaking lines after inline replaced elements that follow inline flows. Previously, alternating
these two types of elements would cause us to increase our preferred width forever.

Test: fast/block/block-with-inline-replaced-children-in-inline-flows.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeInlinePreferredLogicalWidths):

LayoutTests:

* fast/block/block-with-inline-replaced-children-in-inline-flows-expected.html: Added.
* fast/block/block-with-inline-replaced-children-in-inline-flows.html: Added.


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

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rebaseline webaudio/codec-tests/vorbis/vbr-70kbps-44khz.html for Mac/Win
https://bugs.webkit.org/show_bug.cgi?id=99368

Unreviewed rebaseline.

* platform/chromium-mac-snowleopard/webaudio/codec-tests/vorbis/vbr-70kbps-44khz-expected.wav: Added.
* platform/chromium-win-xp/webaudio/codec-tests/vorbis/vbr-70kbps-44khz-expected.wav: Added.
* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131361 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove WTF::fastDeleteAllValues().
<http://webkit.org/b/99345>

Reviewed by Eric Seidel.

It was only used to fastDelete() a class that was already overriding operator delete
by way of WTF_MAKE_FAST_ALLOCATED anyway.

Source/WebCore:

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

Source/WTF:

* wtf/HashSet.h:
(WTF):
(HashSet):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131362 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix build broken by r131348.
https://bugs.webkit.org/show_bug.cgi?id=97533.

Not reviewed.

* rendering/RenderView.cpp:
(WebCore::RenderView::layoutContent):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131363 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Only reallocate buffers that were allocated before suspending
https://bugs.webkit.org/show_bug.cgi?id=99205
RIM PR 99395

Reviewed by Antonio Gomes.

When we call releaseBuffers(), not all of the backingstore
tile buffers might have been allocated yet. Still we try
to release all of them, which causes us to lazy-initialize
the tile buffers so we can release them again.

This is stupid and we should just ignore buffers that
haven't been initialized yet. This patch makes that change.

* WebKitSupport/BackingStoreTile.cpp:
(BlackBerry::WebKit::TileBuffer::wasNativeBufferCreated):
(WebKit):
* WebKitSupport/BackingStoreTile.h:
(TileBuffer):
* WebKitSupport/SurfacePool.cpp:
(BlackBerry::WebKit::SurfacePool::createBuffers):
(BlackBerry::WebKit::SurfacePool::releaseBuffers):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131364 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: WebCore part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
https://bugs.webkit.org/show_bug.cgi?id=99113

Reviewed by Tim Horton.

* WebCore.exp.in: Exported wkCTFontTransformGlyphs.
* platform/graphics/Font.cpp:
(WebCore::Font::width): Added a local GlyphBuffer to pass to floatWidthForSimpleText().
(WebCore::Font::codePath): Rather than always use the complex code path when any typesetting
features are enabled, changed to do so only if WidthIterator doesn’t support this Font’s
typesetting features.
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::getGlyphsAndAdvancesForSimpleText): Added a local GlyphBuffer to pass to
WidthIterator::advance() when advancing to or from the range of interest. Added a FIXME
about how this is not entirely correct when kerning or ligatures are enabled.
(WebCore::Font::selectionRectForSimpleText): Added a local GlyphBuffer to pass to
WidthIterator::advance() when advancing to or from the range of interest.
(WebCore::Font::offsetForPositionForSimpleText): Updated for the change to
WidthIterator::advanceOneCharacter().
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::applyTransforms): Added. Calls wkCTFontTransformGlyphs() where
available.
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::WidthIterator): Added initializer for the new m_typesettingFeatures
data member.
(OriginalAdvancesForCharacterTreatedAsSpace): Added this data type, used to track spaces and
characters treated as spaces.
(WebCore::applyFontTransforms): Added. Applies shaping and positioning transforms, as
required by the typesetting features, to the glyphs recently added to a GlyphBuffer, while
maintaining the advances of characters that are treated as spaces and the characters
preceding them, if necessary.
(WebCore::WidthIterator::advanceInternal): Added calls to applyFontTransforms() at the end
of each contiguous run of glyphs from the same font. Also added code to maintain a vector
of spaces and characters treated as space.
(WebCore::WidthIterator::advanceOneCharacter): Changed the parameter type from a pointer to
a reference.
* platform/graphics/WidthIterator.h:
(WebCore::WidthIterator::supportsTypesettingFeatures): Added. Returns whether WidthIterator
instances support the typesetting features of the given font. Returns true if the font is
not a screen font and its typesetting features are kerning, ligatures or both.
(WebCore::WidthIterator::shouldApplyFontTransforms): Added. Returns true if the typesetting
features include kerning or ligatures.
* platform/mac/WebCoreSystemInterface.h: Defined wkCTFontTransformOptions and declared
wkCTFontTransformGlyphs.
* platform/mac/WebCoreSystemInterface.mm: Defined wkCTFontTransformGlyphs.
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::advanceSimpleText): Added a local GlyphBuffer to pass to
WidthIterator::advance().
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Ditto.

Source/WebKit/mac: WebKit/mac part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
https://bugs.webkit.org/show_bug.cgi?id=99113

Reviewed by Tim Horton.

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Added wkCTFontTransformGlyphs.

Source/WebKit2: WebKit2 part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
https://bugs.webkit.org/show_bug.cgi?id=99113

Reviewed by Tim Horton.

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Added wkCTFontTransformGlyphs.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131365 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make RenderTable columns() and columnPositions() return a const reference
https://bugs.webkit.org/show_bug.cgi?id=99339

Reviewed by Abhishek Arya.

The 2 getters were returning a non-const reference. This means that callers
could have modified the Vector's where only FixedTableLayout and AutoTableLayout
were expected to (for columnPositions(), no one should modify columns()).

Refactoring covered by existing tests.

* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::layout):
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::layout):
Updated those functions to use the new setter.

* rendering/RenderTable.h:
(WebCore::RenderTable::columns):
(WebCore::RenderTable::columnPositions):
Made the 2 functions return a const reference. They are also const now!

(WebCore::RenderTable::setColumnPosition):
Added this setter.

* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addCell):
(WebCore::RenderTableSection::setCellLogicalWidths):
(WebCore::RenderTableSection::dirtiedColumns):
Updated to use a const reference.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131366 268f45cc-cd09-0410-ab3c-d52691b4dbfc
input[type=range] as a flex item renders thumb at wrong position
https://bugs.webkit.org/show_bug.cgi?id=98666

Reviewed by Ojan Vafai.

Source/WebCore:

Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
The previous code was trying to set the height to 100% and had a bunch of hacks in
the renderer code to set an explicit height. Using the new flexbox allows us to
remove these renderer hacks.

Test: css3/flexbox/flexitem-stretch-range.html

* css/html.css:
(input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
(input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
(input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
no longer setting top/left in the layout code.
* css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
* css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
since the height of the control should change when adding/removing a datalist.
* html/shadow/SliderThumbElement.cpp:
(WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
(WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
we use the intrinsic size.
(WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
This used to be handled in the thumb's layout method, but I deleted that.
* html/shadow/SliderThumbElement.h:
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::RenderSlider): Use new flexbox.
(WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
and expects the input to also have a height of 1px.  It worked before because the height of the input
didn't depend on the height of its children.
* rendering/RenderSlider.h: Fix indentation.
(RenderSlider): Use new flexible box.

LayoutTests:

Changing the render tree to use RenderFlexibleBox instead of RenderDeprecatedFlexibleBox
and not using a RenderLayer unless noted otherwise.

* css3/flexbox/flexitem-stretch-range-expected.html: Added.
* css3/flexbox/flexitem-stretch-range.html: Added. New test to verify stretched flex item has the
thumb in the correct place.
* platform/chromium-linux/fast/dom/HTMLInputElement/input-slider-update-expected.txt:
* platform/chromium-linux/fast/dom/HTMLInputElement/input-slider-update-styled-expected.txt:
* platform/chromium-linux/fast/forms/box-shadow-override-expected.txt:
* platform/chromium-linux/fast/forms/datalist/input-appearance-range-with-datalist-expected.png: Changed the default height to
129px for vertical controls. This makes more sense than having a height of 100%.
* platform/chromium-linux/fast/forms/input-appearance-height-expected.txt:
* platform/chromium-linux/fast/forms/range/input-appearance-range-expected.png: The thumb now appears below the
focus ring. This matches other form controls like buttons and textareas.
* platform/chromium-linux/fast/forms/range/input-appearance-range-expected.txt:
* platform/chromium-linux/fast/forms/range/range-thumb-height-percentage-expected.txt:
* platform/chromium-linux/fast/forms/range/slider-padding-expected.txt:
* platform/chromium-linux/fast/forms/range/slider-thumb-shared-style-expected.txt:
* platform/chromium-linux/fast/forms/range/slider-thumb-stylability-expected.txt:
* platform/chromium-linux/fast/hidpi/video-controls-in-hidpi-expected.txt:
* platform/chromium-linux/fast/multicol/client-rects-expected.txt:
* platform/chromium-linux/fast/repaint/slider-thumb-drag-release-expected.txt:
* platform/chromium-linux/fast/repaint/slider-thumb-float-expected.txt:
* platform/chromium-linux/media/track/track-cue-rendering-vertical-expected.txt:
* platform/chromium-win/fast/layers/video-layer-expected.txt:
* platform/chromium-win/media/audio-controls-rendering-expected.txt:
* platform/chromium-win/media/audio-repaint-expected.txt:
* platform/chromium-win/media/controls-after-reload-expected.txt:
* platform/chromium-win/media/controls-strict-expected.txt:
* platform/chromium-win/media/controls-styling-expected.txt:
* platform/chromium-win/media/controls-styling-strict-expected.txt:
* platform/chromium-win/media/controls-without-preload-expected.txt:
* platform/chromium-win/media/media-controls-clone-expected.txt:
* platform/chromium-win/media/media-document-audio-repaint-expected.txt:
* platform/chromium-win/media/track/track-cue-rendering-horizontal-expected.txt:
* platform/chromium-win/media/video-controls-rendering-expected.txt:
* platform/chromium-win/media/video-display-toggle-expected.txt:
* platform/chromium-win/media/video-empty-source-expected.txt:
* platform/chromium-win/media/video-no-audio-expected.txt:
* platform/chromium-win/media/video-playing-and-pause-expected.txt:
* platform/chromium-win/media/video-zoom-controls-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rebaselines after 131358

Unreviewed gardening.

* platform/chromium-mac-snowleopard/css1/basic/inheritance-expected.png:
* platform/chromium-mac-snowleopard/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-mac-snowleopard/fast/sub-pixel/selection/selection-rect-in-sub-pixel-table-expected.png:
* platform/chromium-mac-snowleopard/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.png:
* platform/chromium-mac-snowleopard/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.png:
* platform/chromium-mac-snowleopard/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
* platform/chromium-mac-snowleopard/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
* platform/chromium-mac-snowleopard/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
* platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug73321-expected.png:
* platform/chromium-mac/fast/forms/date-multiple-fields/date-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-mac/fast/sub-pixel/selection/selection-rect-in-sub-pixel-table-expected.png:
* platform/chromium-mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.png:
* platform/chromium-mac/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.png:
* platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.png:
* platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.png:
* platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug73321-expected.png:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131368 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rebaselines after 131358.

Unreviewed gardening.

* platform/chromium-mac-snowleopard/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-classes-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/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug18359-expected.png:
* platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug24200-expected.png:
* platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug28928-expected.png:
* platform/chromium-mac/fast/forms/month-multiple-fields/month-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-mac/fast/forms/time-multiple-fields/time-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-mac/fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug18359-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug24200-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug28928-expected.png:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131369 268f45cc-cd09-0410-ab3c-d52691b4dbfc
In Skia's ImageFrame, only set the isOpaque flag when the frame is complete
https://bugs.webkit.org/show_bug.cgi?id=99326

Reviewed by Stephen White.

No new tests -- existing layouttests exercise this, esp.
  png-partial-load-no-alpha.html
  webp-partial-load.html
These two fail if skia is told that these are opaque, which it is w/o this CL.

At the moment, Skia has a hack to ignore the opaque-setting, so that these tests will pass as is.
This change is to first, correct webkit to only set isOpaque when the frame is complete, so that
in a later change, Skia can remove the hack, and re-enable its opaqueness optimization.

* platform/image-decoders/skia/ImageDecoderSkia.cpp:
(WebCore::ImageFrame::ImageFrame):
(WebCore::ImageFrame::operator=):
(WebCore::ImageFrame::zeroFillPixelData):
(WebCore::ImageFrame::hasAlpha):
(WebCore::ImageFrame::setHasAlpha):
(WebCore::ImageFrame::setStatus):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131370 268f45cc-cd09-0410-ab3c-d52691b4dbfc
IndexedDB: Pass type of error causing abort to IDBTransaction::onAbort
https://bugs.webkit.org/show_bug.cgi?id=99097

Reviewed by Tony Chang.

Source/WebCore:

Include the error causing the abort in the callback from back end to
front end so it can be exposed on the IDBTransaction.error property.

Test: lazy-index-population.html

* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setVersionInternal):
(WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
* Modules/indexeddb/IDBDatabaseCallbacks.h:
* Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
(WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::onAbort):
* Modules/indexeddb/IDBTransaction.h:
(IDBTransaction):
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::abort):
(WebCore):
(WebCore::IDBTransactionBackendImpl::commit):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
(IDBTransactionBackendImpl):
* Modules/indexeddb/IDBTransactionCallbacks.h:
(IDBTransactionCallbacks):
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore):

Source/WebKit/chromium:

Plumbing to pass details about the cause of the transaction abort through to the
front end.

* public/WebIDBTransactionCallbacks.h:
(WebKit):
(WebKit::WebIDBTransactionCallbacks::onAbort):
* src/IDBTransactionCallbacksProxy.cpp:
(WebKit::IDBTransactionCallbacksProxy::onAbort):
* src/IDBTransactionCallbacksProxy.h:
(IDBTransactionCallbacksProxy):
* src/WebIDBTransactionCallbacksImpl.cpp:
(WebKit::WebIDBTransactionCallbacksImpl::onAbort):
* src/WebIDBTransactionCallbacksImpl.h:
(WebIDBTransactionCallbacksImpl):

LayoutTests:

Verify that IDBTransaction.error is reporting ConstraintError when indexing fails.

* storage/indexeddb/lazy-index-population-expected.txt:
* storage/indexeddb/lazy-index-population.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131371 268f45cc-cd09-0410-ab3c-d52691b4dbfc
MediaStream API: Implement RTCDataChannel
https://bugs.webkit.org/show_bug.cgi?id=99080

Reviewed by Adam Barth.

This patch introduces RTCDataChannel which is a pipe for sending data between two RTCPeerConnections.
Since the data channel belongs to a peer connection object I have reused part of its infrastructure.

Not currently testable. My next patch will add the chromium WebKit functionality, together with mocks and tests.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCDataChannel.cpp: Added.
(WebCore):
(WebCore::RTCDataChannel::create):
(WebCore::RTCDataChannel::RTCDataChannel):
(WebCore::RTCDataChannel::~RTCDataChannel):
(WebCore::RTCDataChannel::label):
(WebCore::RTCDataChannel::reliable):
(WebCore::RTCDataChannel::readyState):
(WebCore::RTCDataChannel::bufferedAmount):
(WebCore::RTCDataChannel::binaryType):
(WebCore::RTCDataChannel::setBinaryType):
(WebCore::RTCDataChannel::send):
(WebCore::RTCDataChannel::close):
(WebCore::RTCDataChannel::readyStateChanged):
(WebCore::RTCDataChannel::dataArrived):
(WebCore::RTCDataChannel::error):
(WebCore::RTCDataChannel::descriptor):
(WebCore::RTCDataChannel::interfaceName):
(WebCore::RTCDataChannel::scriptExecutionContext):
(WebCore::RTCDataChannel::stop):
(WebCore::RTCDataChannel::eventTargetData):
(WebCore::RTCDataChannel::ensureEventTargetData):
* Modules/mediastream/RTCDataChannel.h: Added.
(WebCore):
(RTCDataChannel):
(WebCore::RTCDataChannel::refEventTarget):
(WebCore::RTCDataChannel::derefEventTarget):
* Modules/mediastream/RTCDataChannel.idl: Added.
* Modules/mediastream/RTCDataChannelEvent.cpp: Added.
(WebCore):
(WebCore::RTCDataChannelEvent::create):
(WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
(WebCore::RTCDataChannelEvent::~RTCDataChannelEvent):
(WebCore::RTCDataChannelEvent::channel):
(WebCore::RTCDataChannelEvent::interfaceName):
* Modules/mediastream/RTCDataChannelEvent.h: Added.
(WebCore):
(RTCDataChannelEvent):
* Modules/mediastream/RTCDataChannelEvent.idl: Added.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::createDataChannel):
(WebCore):
(WebCore::RTCPeerConnection::close):
(WebCore::RTCPeerConnection::didAddRemoteDataChannel):
(WebCore::RTCPeerConnection::stop):
* Modules/mediastream/RTCPeerConnection.h:
(WebCore):
(RTCPeerConnection):
* Modules/mediastream/RTCPeerConnection.idl:
* WebCore.gypi:
* dom/EventNames.h:
(WebCore):
* dom/EventNames.in:
* dom/EventTargetFactory.in:
* platform/mediastream/RTCDataChannelDescriptor.cpp: Added.
(WebCore):
(WebCore::RTCDataChannelDescriptor::create):
(WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
(WebCore::RTCDataChannelDescriptor::~RTCDataChannelDescriptor):
(WebCore::RTCDataChannelDescriptor::readyStateChanged):
(WebCore::RTCDataChannelDescriptor::dataArrived):
(WebCore::RTCDataChannelDescriptor::error):
* platform/mediastream/RTCDataChannelDescriptor.h: Added.
(WebCore):
(RTCDataChannelDescriptorClient):
(WebCore::RTCDataChannelDescriptorClient::~RTCDataChannelDescriptorClient):
(RTCDataChannelDescriptor):
(ExtraData):
(WebCore::RTCDataChannelDescriptor::ExtraData::~ExtraData):
(WebCore::RTCDataChannelDescriptor::client):
(WebCore::RTCDataChannelDescriptor::setClient):
(WebCore::RTCDataChannelDescriptor::label):
(WebCore::RTCDataChannelDescriptor::reliable):
(WebCore::RTCDataChannelDescriptor::readyState):
(WebCore::RTCDataChannelDescriptor::bufferedAmount):
(WebCore::RTCDataChannelDescriptor::setBufferedAmount):
(WebCore::RTCDataChannelDescriptor::extraData):
(WebCore::RTCDataChannelDescriptor::setExtraData):
* platform/mediastream/RTCPeerConnectionHandler.cpp:
(RTCPeerConnectionHandlerDummy):
(WebCore::RTCPeerConnectionHandlerDummy::openDataChannel):
(WebCore):
(WebCore::RTCPeerConnectionHandlerDummy::sendStringData):
(WebCore::RTCPeerConnectionHandlerDummy::sendRawData):
(WebCore::RTCPeerConnectionHandlerDummy::closeDataChannel):
* platform/mediastream/RTCPeerConnectionHandler.h:
(WebCore):
(RTCPeerConnectionHandler):
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
(WebCore):
(RTCPeerConnectionHandlerClient):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
(WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
(WebCore):
(WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
(WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
(WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
* platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
(RTCPeerConnectionHandlerChromium):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131372 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Ensure that GraphicsLayer positions are updated while doing threaded scrolling
https://bugs.webkit.org/show_bug.cgi?id=99372

Reviewed by Anders Carlsson.

When doing threaded scrolling, the scrolling thread updates the positions of CALayers,
but doesn't update GraphicsLayers. This means that code that relies on GraphicsLayer positions
works incorrectly.

Threaded scrolling is not testabled in layout tests.

* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer):
(WebCore::GraphicsLayer::syncPosition):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Try to fix the Chromium Mac build after r131365.

* platform/graphics/GlyphBuffer.h:
(WebCore::GlyphBufferAdvance::height): Added.
* platform/graphics/skia/FontSkia.cpp:
(WebCore::Font::drawGlyphs): Changed to use accessors for the GlyphBufferAdvance’s width and height.



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