[BlackBerry] Support copying image data in WebOverlay.
https://bugs.webkit.org/show_bug.cgi?id=96684
RIM PR 195444

Reviewed by Rob Buis.
Internally reviewed by Arvid Nilsson.

The publicly exposed WebOverlay class provides a method
setContentsToImage() to assign a pointer to pixel data,
which is later used to provide texture data for the
underlying compositing layer. This works well for static
images that stay in memory and never change, but not
so well for images with changing contents or where the
image data is being reassigned from different image
sources that are not constantly kept around in memory.

Due to the delayed upload and delayed fetching of
EGLImage data by the GPU, we shouldn't assume the caller
to know how long the image should be retained. Instead,
we should offer another method of setting image data
that takes ownership of the pixel data.

This patch adds an option to setContentsToImage() that
copies the passed pixel data and doesn't destroy it
until both the texture is destroyed and the image
contents are changed. Using this method, the caller can
withdraw the passed pixel array right after the
setContentsToImage() call without consequences.

* Api/WebOverlay.cpp:
(BlackBerry::WebKit::WebOverlay::setContentsToImage):
(BlackBerry::WebKit::WebOverlayPrivateWebKitThread::setContentsToImage):
(BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::WebOverlayLayerCompositingThreadClient):
(BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::invalidate):
(BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::setContents):
(WebKit):
(BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::clearUploadedContents):
(BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::setContentsToColor):
(BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::uploadTexturesIfNeeded):
(BlackBerry::WebKit::WebOverlayLayerCompositingThreadClient::deleteTextures):
(BlackBerry::WebKit::WebOverlayPrivateCompositingThread::setContentsToImage):
* Api/WebOverlay.h:
* Api/WebOverlay_p.h:
(WebOverlayPrivate):
(WebOverlayPrivateWebKitThread):
(WebOverlayLayerCompositingThreadClient):
(WebOverlayPrivateCompositingThread):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128755 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] To support "Frames View" of "TimeLine" panel in Inspector
https://bugs.webkit.org/show_bug.cgi?id=96077

Patch by Peter Wang <peter.wang@torchmobile.com.cn> on 2012-09-17
Reviewed by Rob Buis.

Invoke the "instrumentBeginFrame" and "instrumentCancelFrame" at the start and end of processing
render message to record one time of page's update.

* Api/BackingStore.cpp:
(BlackBerry::WebKit::BackingStorePrivate::instrumentBeginFrame):
(WebKit):
(BlackBerry::WebKit::BackingStorePrivate::instrumentCancelFrame):
* Api/BackingStore_p.h:
* WebKitSupport/RenderQueue.cpp:
(BlackBerry::WebKit::RenderQueue::render):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128756 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[TouchAdjustment] Adjusted point outside bounds for non-rectilinear targets
https://bugs.webkit.org/show_bug.cgi?id=96098

Reviewed by Antonio Gomes.

Source/WebCore:

Simplifies how snapTo tries to restrict the adjustment to the touch-area, and
at the same fix it to give better guarantees.

Test: touchadjustment/rotated-node.html

* page/TouchAdjustment.cpp:
(WebCore::TouchAdjustment::snapTo):

LayoutTests:

Expands the test of rotated nodes to also perform checks of the validity of the adjusted points.

* touchadjustment/resources/touchadjustment.js:
(adjustTouchPoint):
* touchadjustment/rotated-node-expected.txt:
* touchadjustment/rotated-node.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128757 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Revert r127457 and following fixes due to several hit-testing regressions
https://bugs.webkit.org/show_bug.cgi?id=96830

Reviewed by Antonio Gomes.

The revert misssed one related follow-up.

* dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128759 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Use glDeleteProgram to delete OpenGL shader programs.
https://bugs.webkit.org/show_bug.cgi?id=96771

Patch by Filip Spacek <fspacek@rim.com> on 2012-09-17
Reviewed by Rob Buis.

Reviewed internally by Arvid Nilsson.

* platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
(WebCore::EGLImageLayerWebKitThread::EGLImageLayerWebKitThread):
(WebCore::EGLImageLayerWebKitThread::~EGLImageLayerWebKitThread):
(WebCore::EGLImageLayerWebKitThread::deleteFrontBuffer):
(WebCore::EGLImageLayerWebKitThread::createShaderIfNeeded):
(WebCore::EGLImageLayerWebKitThread::blitToFrontBuffer):
* platform/graphics/blackberry/EGLImageLayerWebKitThread.h:
(EGLImageLayerWebKitThread):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128760 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Web Inspector: NMI: now when we can detect instrumented classes we can
remove addInstrumentedMember and use addMember for everything.
https://bugs.webkit.org/show_bug.cgi?id=96913

Reviewed by Yury Semikhatsky.

Source/WebCore:

* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::reportMemoryUsage):
* bindings/v8/IntrusiveDOMWrapperMap.h:
* bindings/v8/V8PerIsolateData.cpp:
(WebCore::V8PerIsolateData::reportMemoryUsage):
* css/CSSBorderImageSliceValue.cpp:
(WebCore::CSSBorderImageSliceValue::reportDescendantMemoryUsage):
* css/CSSCalculationValue.cpp:
* css/CSSCanvasValue.cpp:
(WebCore::CSSCanvasValue::reportDescendantMemoryUsage):
* css/CSSCharsetRule.cpp:
(WebCore::CSSCharsetRule::reportDescendantMemoryUsage):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::reportMemoryUsage):
* css/CSSCrossfadeValue.cpp:
(WebCore::CSSCrossfadeValue::reportDescendantMemoryUsage):
* css/CSSFontFaceRule.cpp:
(WebCore::CSSFontFaceRule::reportDescendantMemoryUsage):
* css/CSSFontFaceSrcValue.cpp:
(WebCore::CSSFontFaceSrcValue::reportDescendantMemoryUsage):
* css/CSSFunctionValue.cpp:
(WebCore::CSSFunctionValue::reportDescendantMemoryUsage):
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientColorStop::reportMemoryUsage):
(WebCore::CSSGradientValue::reportBaseClassMemoryUsage):
(WebCore::CSSLinearGradientValue::reportDescendantMemoryUsage):
(WebCore::CSSRadialGradientValue::reportDescendantMemoryUsage):
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::ImageWithScale::reportMemoryUsage):
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::reportDescendantMemoryUsage):
* css/CSSImportRule.cpp:
(WebCore::CSSImportRule::reportDescendantMemoryUsage):
* css/CSSMediaRule.cpp:
(WebCore::CSSMediaRule::reportDescendantMemoryUsage):
* css/CSSPageRule.cpp:
(WebCore::CSSPageRule::reportDescendantMemoryUsage):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::reportMemoryUsage):
* css/CSSReflectValue.cpp:
(WebCore::CSSReflectValue::reportDescendantMemoryUsage):
* css/CSSRule.cpp:
(WebCore::CSSRule::reportBaseClassMemoryUsage):
* css/CSSRuleList.h:
* css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::reportDescendantMemoryUsage):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::reportMemoryUsage):
* css/CSSValue.cpp:
(WebCore::TextCloneCSSValue::reportDescendantMemoryUsage):
* css/CSSVariableValue.h:
(WebCore::CSSVariableValue::reportDescendantMemoryUsage):
* css/FontFeatureValue.cpp:
(WebCore::FontFeatureValue::reportDescendantMemoryUsage):
* css/FontValue.cpp:
(WebCore::FontValue::reportDescendantMemoryUsage):
* css/MediaList.cpp:
(WebCore::MediaList::reportMemoryUsage):
* css/MediaQuery.cpp:
(WebCore::MediaQuery::reportMemoryUsage):
* css/MediaQueryExp.cpp:
(WebCore::MediaQueryExp::reportMemoryUsage):
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::reportMemoryUsage):
(WebCore::StyleRuleCSSStyleDeclaration::reportMemoryUsage):
(WebCore::InlineCSSStyleDeclaration::reportMemoryUsage):
* css/ShadowValue.cpp:
(WebCore::ShadowValue::reportDescendantMemoryUsage):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::reportMemoryUsage):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRulesForList):
* css/StyleRule.cpp:
(WebCore::StyleRule::reportDescendantMemoryUsage):
(WebCore::StyleRulePage::reportDescendantMemoryUsage):
(WebCore::StyleRuleFontFace::reportDescendantMemoryUsage):
(WebCore::StyleRuleMedia::reportDescendantMemoryUsage):
(WebCore::StyleRuleRegion::reportDescendantMemoryUsage):
* css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::reportDescendantMemoryUsage):
* css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::reportMemoryUsage):
* css/WebKitCSSKeyframeRule.cpp:
(WebCore::StyleKeyframe::reportMemoryUsage):
(WebCore::WebKitCSSKeyframeRule::reportDescendantMemoryUsage):
* css/WebKitCSSKeyframesRule.cpp:
(WebCore::StyleRuleKeyframes::reportDescendantMemoryUsage):
(WebCore::WebKitCSSKeyframesRule::reportDescendantMemoryUsage):
* css/WebKitCSSRegionRule.cpp:
(WebCore::WebKitCSSRegionRule::reportDescendantMemoryUsage):
* css/WebKitCSSSVGDocumentValue.cpp:
(WebCore::WebKitCSSSVGDocumentValue::reportDescendantMemoryUsage):
* css/WebKitCSSShaderValue.cpp:
(WebCore::WebKitCSSShaderValue::reportDescendantMemoryUsage):
* dom/Attribute.h:
(WebCore::Attribute::reportMemoryUsage):
* dom/CharacterData.cpp:
(WebCore::CharacterData::reportMemoryUsage):
* dom/ContainerNode.h:
(WebCore::ContainerNode::reportMemoryUsage):
* dom/Document.cpp:
(WebCore::Document::reportMemoryUsage):
* dom/Element.h:
(WebCore::Element::reportMemoryUsage):
* dom/ElementAttributeData.cpp:
(WebCore::ElementAttributeData::reportMemoryUsage):
* dom/Event.cpp:
(WebCore::Event::reportMemoryUsage):
* dom/Node.cpp:
(WebCore::Node::reportMemoryUsage):
* dom/QualifiedName.cpp:
(WebCore::QualifiedName::reportMemoryUsage):
(WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::reportMemoryUsage):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::reportMemoryUsage):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reportMemoryUsage):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::reportMemoryUsage):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::reportMemoryUsage):
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::reportMemoryUsage):
* loader/SubstituteData.cpp:
(WebCore::SubstituteData::reportMemoryUsage):
* loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::reportMemoryUsage):
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::reportMemoryUsage):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::reportMemoryUsage):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::reportMemoryUsage):
* loader/cache/CachedResourceHandle.cpp:
(WebCore::CachedResourceHandleBase::reportMemoryUsage):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::reportMemoryUsage):
* loader/cache/CachedSVGDocument.cpp:
(WebCore::CachedSVGDocument::reportMemoryUsage):
* loader/cache/CachedScript.cpp:
(WebCore::CachedScript::reportMemoryUsage):
* loader/cache/CachedShader.cpp:
(WebCore::CachedShader::reportMemoryUsage):
* loader/cache/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::reportMemoryUsage):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::reportMemoryUsage):
* page/Frame.cpp:
(WebCore::Frame::reportMemoryUsage):
* platform/KURL.cpp:
(WebCore::KURL::reportMemoryUsage):
* platform/KURLGoogle.cpp:
(WebCore::KURLGooglePrivate::reportMemoryUsage):
* platform/KURLWTFURLImpl.h:
(WebCore::KURLWTFURLImpl::reportMemoryUsage):
* platform/TreeShared.h:
(WebCore::TreeShared::reportMemoryUsage):
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::reportMemoryUsage):
* platform/graphics/Image.cpp:
(WebCore::Image::reportMemoryUsage):
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::reportMemoryUsage):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::reportMemoryUsage):
* rendering/style/DataRef.h:
(WebCore::DataRef::reportMemoryUsage):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::reportMemoryUsage):
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::reportMemoryUsage):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::reportMemoryUsage):
* svg/SVGPaint.cpp:
(WebCore::SVGPaint::reportDescendantMemoryUsage):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::reportMemoryUsage):

Source/WebKit/chromium:

* tests/MemoryInstrumentationTest.cpp:
(WebCore::InstrumentedDOM::reportMemoryUsage):
(WebCore::NonVirtualInstrumented::reportMemoryUsage):
(WebCore::InstrumentedOwner::reportMemoryUsage):

Source/WTF:

* wtf/MemoryInstrumentation.h:
(WTF::MemoryInstrumentation::addRootObject):
(WTF::MemoryInstrumentation::addObject):
(WTF::MemoryInstrumentation::addObjectImpl):
(WTF):
(WTF::MemoryInstrumentation::addInstrumentedCollection):
(WTF::MemoryInstrumentation::addInstrumentedMapEntries):
(WTF::MemoryInstrumentation::addInstrumentedMapValues):
* wtf/text/AtomicString.cpp:
(WTF::AtomicString::reportMemoryUsage):
* wtf/text/CString.h:
(WTF::CString::reportMemoryUsage):
* wtf/text/StringImpl.cpp:
(WTF::StringImpl::reportMemoryUsage):
* wtf/text/WTFString.cpp:
(WTF::String::reportMemoryUsage):
* wtf/url/api/ParsedURL.cpp:
(WTF::ParsedURL::reportMemoryUsage):
* wtf/url/api/URLString.cpp:
(WTF::URLString::reportMemoryUsage):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128762 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] Clean up Skipped list
https://bugs.webkit.org/show_bug.cgi?id=96918

Unreviewed EFL gardening.

Unskip several test cases that are now passing for
EFL port.

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-09-17

* platform/efl/Skipped:
* platform/efl/editing/input/caret-at-the-edge-of-input-expected.png: Added.
* platform/efl/editing/input/caret-at-the-edge-of-input-expected.txt: Added.
* platform/efl/editing/unsupported-content/list-delete-001-expected.png:
* platform/efl/editing/unsupported-content/list-type-after-expected.png:
* platform/efl/fast/block/basic/fieldset-stretch-to-legend-expected.png:
* platform/efl/fast/block/basic/fieldset-stretch-to-legend-expected.txt:

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