tomz@codeaurora.org [Sun, 29 Apr 2012 18:22:22 +0000 (18:22 +0000)]
PerfTestRunner.computeStatistics incorrectly calculates min, max and median
https://bugs.webkit.org/show_bug.cgi?id=85111
Reviewed by Ryosuke Niwa.
The sort of the data input was being done alphabetically.
So I provided a numeric compare function.
* resources/runner.js:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115598
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sun, 29 Apr 2012 15:25:13 +0000 (15:25 +0000)]
[GTK] DRT needs an implementation of layoutTestController.setDomainRelaxationForbiddenForURLScheme
https://bugs.webkit.org/show_bug.cgi?id=85131
Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-04-29
Reviewed by Martin Robinson.
Source/WebKit/gtk:
Add support for setDomainRelaxationForbiddenForURLScheme which allow
disabling domain relaxation.
* WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
(DumpRenderTreeSupportGtk::setDomainRelaxationForbiddenForURLScheme):
* WebCoreSupport/DumpRenderTreeSupportGtk.h:
(DumpRenderTreeSupportGtk):
Tools:
Add missing implementation setDomainRelaxationForbiddenForURLScheme to
GTK's LayoutTestController.
* DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:
(LayoutTestController::setDomainRelaxationForbiddenForURLScheme):
LayoutTests:
Unskip http/tests/security/setDomainRelaxationForbiddenForURLScheme.html
* platform/gtk/test_expectations.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115597
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
noam.rosenthal@nokia.com [Sun, 29 Apr 2012 15:20:12 +0000 (15:20 +0000)]
[Texmap] Leaves demo: wrong geometry when opacity animation kicks in
https://bugs.webkit.org/show_bug.cgi?id=85096
Reviewed by Kenneth Rohde Christiansen.
We should use combined() instead of combinedForChildren() since we don't allow
intermediate surfaces for preserves-3d. Also, we should apply the offset before
multiplying the transforms, otherwise the transform-origin is incorrect.
Covered by existing compositing tests.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintRecursive):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115596
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pilgrim@chromium.org [Sun, 29 Apr 2012 08:58:05 +0000 (08:58 +0000)]
[Chromium] Call highUsageDeltaMB directly
https://bugs.webkit.org/show_bug.cgi?id=84844
Reviewed by Kentaro Hara.
Part of a refactoring series. See tracking bug 82948.
Source/WebCore:
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::checkMemoryUsage):
* platform/MemoryUsageSupport.cpp:
(WebCore):
(WebCore::MemoryUsageSupport::highUsageDeltaMB):
* platform/MemoryUsageSupport.h:
(MemoryUsageSupport):
* platform/chromium/MemoryUsageSupportChromium.cpp:
(WebCore::MemoryUsageSupport::highUsageDeltaMB):
(WebCore):
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
Source/WebKit/chromium:
* src/PlatformSupport.cpp:
(WebCore):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115595
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
haraken@chromium.org [Sun, 29 Apr 2012 08:07:50 +0000 (08:07 +0000)]
REGRESSION(r113086): onresize event handler can be deleted in popup window
https://bugs.webkit.org/show_bug.cgi?id=84908
Reviewed by Ojan Vafai.
In a nutshell, an onresize event handler in the popup window
can be non-deterministically deleted. For more details, please
look at Chromium issue 123642:
http://code.google.com/p/chromium/issues/detail?id=123642
I confirmed that this bug is the regression caused by r113086.
r113086 introduced the following code:
void V8LazyEventListener::prepareListenerObject(...) {
if (hasExistingListenerObject())
return;
...;
// Since we only parse once, there's no need to keep data
// used for parsing around anymore.
m_functionName = String();
m_code = String();
m_eventParameterName = String();
m_sourceURL = String();
setListenerObject(wrappedFunction);
}
This is not correct. The parsing can be done more than once,
and thus we cannot clear data. This patch removes the above code.
Consider the following situation:
(1) Assume '<body onresize="f()"></body>'.
(2) prepareListenerObject() runs.
(3) Since this is the first parsing, hasExistingListenerObject()
returns false. After the parsing, the listener object is set
by setListenerObject().
(4) GC runs. Since there is no strong reference to the listener
object, weakEventListenerCallback() is called back, and the listener
object is disposed.
(5) A resize event is triggered.
(6) prepareListenerObject() is called again. Since the listener object
is already disposed, hasExistingListenerObject() returns false,
and the second parsing starts.
In my investigation, the above situation is happening in the reported
Chromium bug. Anyway, I am sure that potentially the parsing can be
done more than once, and thus we must keep m_xxxx data.
However, this is just a temporary fix. We should fix the code so that
an alive event listener object is never reclaimed.
See https://bugs.webkit.org/show_bug.cgi?id=85152 for more details.
No tests: I tried hard to create a DRT test, but could not.
The bug depends on the behavior of GC, and thus the reported bug is
non-deterministic. For example, (as explained in the Chromium issue,)
the bug does not happen if we load an HTML from network because
the network latency hides the bug. Also the bug happens in the
popup window only. If we open the reported HTML in the main window,
we cannot reproduce the bug.
* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115594
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Sun, 29 Apr 2012 07:09:36 +0000 (07:09 +0000)]
Unreviewed, gardening after revisions 115573 and 115582.
* platform/gtk/fast/dom/Window/window-properties-expected.txt:
* platform/gtk/fast/dom/constructed-objects-prototypes-expected.txt:
* platform/gtk/fast/forms/001-expected.txt:
* platform/gtk/fast/html/details-position-expected.txt: Added.
* platform/gtk/fast/replaced/width100percent-checkbox-expected.txt:
* platform/gtk/fast/replaced/width100percent-radio-expected.txt:
* platform/gtk/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt: Added.
* platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
* platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115593
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ossy@webkit.org [Sun, 29 Apr 2012 06:04:15 +0000 (06:04 +0000)]
[Qt] Unreviewed weekend gardening, update test results, skip new failing tests.
* fast/files/workers/inline-worker-via-blob-url.html: Trivial typo fix after r115582.
* platform/qt-4.8/fast/dom/Window/window-properties-expected.txt: Updated after r115582.
* platform/qt-5.0-wk2/fast/dom/Window/window-properties-expected.txt: Updated after r115582.
* platform/qt-5.0/fast/dom/Window/window-properties-expected.txt: Updated after r115582.
* platform/qt/Skipped: Skip a new failing reftest after r115554.
* platform/qt/fast/dom/constructed-objects-prototypes-expected.txt:
* platform/qt/fast/html/details-position-expected.png: Updated after r115573.
* platform/qt/fast/html/details-position-expected.txt: Updated after r115573.
* platform/qt/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt: Updated after r115573.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115592
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sun, 29 Apr 2012 01:53:22 +0000 (01:53 +0000)]
Smooth scrolling needs a new key
<rdar://problem/
11331632>
Reviewed by Dan Bernstein.
* DumpRenderTree/mac/DumpRenderTree.mm:
(resetDefaultsToConsistentValues):
* TestWebKitAPI/mac/InjectedBundleControllerMac.mm:
(TestWebKitAPI::InjectedBundleController::platformInitialize):
* WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:
(WTR::InjectedBundle::platformInitialize):
Update for new key.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115591
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Sun, 29 Apr 2012 01:44:37 +0000 (01:44 +0000)]
Factored threaded block allocation into a separate object
https://bugs.webkit.org/show_bug.cgi?id=85148
Reviewed by Sam Weinig.
99% of this patch just moves duplicated block allocation and
deallocation code into a new object named BlockAllocator, with these
exceptions:
* heap/BlockAllocator.h: Added.
(BlockAllocator::BlockAllocator): The order of declarations here now
guards us against an unlikely race condition during startup.
* heap/BlockAllocator.cpp:
JSC::BlockAllocator::blockFreeingThreadMain): Added a FIXME to
highlight a lack of clarity we have in our block deallocation routines.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115590
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sun, 29 Apr 2012 01:32:16 +0000 (01:32 +0000)]
Smooth scrolling needs a new key
<rdar://problem/
11331632>
Reviewed by Geoffrey Garen.
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::scrollAnimationEnabledForSystem):
(WebCore::ScrollAnimatorMac::scroll):
Update for new key.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115589
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sun, 29 Apr 2012 01:14:05 +0000 (01:14 +0000)]
MessagePort must set m_closed to be true at the end of MessagePort::close function
https://bugs.webkit.org/show_bug.cgi?id=85139
Source/WebCore:
In the function MessagePort::close, the "m_closed = true" must be executed at the end, not at the beginning.
Or, the m_entangledChannel->close() will not be executed.
And it resulted in the failure of MS bench mark messagechannel_close.htm.
http://samples.msdn.microsoft.com/ietestcenter/WebWorkers/messagechannel_close.htm
Patch by Li Yin <li.yin@intel.com> on 2012-04-28
Reviewed by Kentaro Hara.
Test: fast/events/message-port-close.html
* dom/MessagePort.cpp:
(WebCore::MessagePort::close):
LayoutTests:
Test MessageChannel.port whether can receive message after it is closed.
Patch by Li Yin <li.yin@intel.com> on 2012-04-28
Reviewed by Kentaro Hara.
* fast/events/message-port-close-expected.txt: Added.
* fast/events/message-port-close.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115588
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sat, 28 Apr 2012 22:50:02 +0000 (22:50 +0000)]
Try to fix the Qt build.
* heap/Heap.cpp:
(JSC::Heap::lastChanceToFinalize):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115586
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sat, 28 Apr 2012 22:45:37 +0000 (22:45 +0000)]
And again.
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCallback):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115585
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sat, 28 Apr 2012 22:39:17 +0000 (22:39 +0000)]
Once again, try to make these puppies work.
* bindings/v8/custom/V8BlobCustom.cpp:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115584
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sat, 28 Apr 2012 22:33:50 +0000 (22:33 +0000)]
Fix the Chromium build.
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCallback):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115583
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
weinig@apple.com [Sat, 28 Apr 2012 22:24:48 +0000 (22:24 +0000)]
Add support for the Blob constructor
https://bugs.webkit.org/show_bug.cgi?id=84555
Reviewed by Maciej Stachowiak.
Source/WebCore:
Test: fast/files/blob-constructor.html
This adds an implementation of the Blob constructor that willfully
violates the W3C Editor’s Draft 29 February 2012 in the following ways:
- Elements in the parts array are coerced to DOMStrings https://www.w3.org/Bugs/Public/show_bug.cgi?id=16721
- Don't throw for invalid key in the dictionary https://www.w3.org/Bugs/Public/show_bug.cgi?id=16727
- Values for the endings property are treated as enums https://www.w3.org/Bugs/Public/show_bug.cgi?id=16729
* bindings/js/JSBlobCustom.cpp:
(WebCore::JSBlobConstructor::constructJSBlob):
Implement blob constructor.
* bindings/v8/custom/V8BlobCustom.cpp:
(WebCore::V8Blob::constructorCallback):
Implement blob constructor.
* fileapi/Blob.idl:
Add constructor to IDL.
* workers/WorkerContext.idl:
Add Blob constructor to the worker global object.
LayoutTests:
Switch tests that were not directly testing BlobBuilder over to
using the Blob constructor, to get test coverage of standard way
constructing blobs.
* fast/files/blob-constructor.html: Added.
* fast/files/blob-constructor-expected.txt: Added.
* fast/files/script-tests/blob-constructor.js: Added.
New test.
* fast/dom/HTMLAnchorElement/anchor-download-unset.html:
* fast/dom/HTMLAnchorElement/anchor-download.html:
* fast/dom/HTMLAnchorElement/anchor-nodownload-set.html:
* fast/dom/HTMLAnchorElement/anchor-nodownload.html:
* fast/dom/constructed-objects-prototypes-expected.txt:
* fast/dom/window-domurl-crash.html:
* fast/files/blob-slice-overflow.html:
* fast/files/blob-slice-test.html:
* fast/files/file-reader-fffd-expected.txt:
* fast/files/file-reader-fffd.html:
* fast/files/not-enough-arguments-expected.txt:
* fast/files/not-enough-arguments.html:
* fast/files/resources/read-blob-test-cases.js:
* fast/files/resources/read-common.js:
* fast/files/workers/inline-worker-via-blob-url.html:
* fast/filesystem/resources/file-writer-abort-continue.js:
* fast/filesystem/resources/file-writer-abort-depth.js:
* fast/filesystem/resources/file-writer-abort.js:
* fast/filesystem/resources/file-writer-events.js:
* fast/filesystem/resources/file-writer-gc-blob.js:
* fast/filesystem/resources/file-writer-sync-truncate-extend.js:
* fast/filesystem/resources/file-writer-sync-write-overlapped.js:
* fast/filesystem/resources/file-writer-utils.js:
* http/tests/fileapi/create-blob-url-from-data-url.html:
* http/tests/filesystem/no-cache-filesystem-url.html:
* http/tests/local/blob/resources/hybrid-blob-util.js:
* http/tests/security/resources/create-filesystem-file.html:
* http/tests/websocket/tests/hixie76/send-object.html:
* http/tests/websocket/tests/hybi/bufferedAmount-after-close-in-busy.html:
* http/tests/websocket/tests/hybi/bufferedAmount-after-close.html:
* http/tests/websocket/tests/hybi/send-blob.html:
* http/tests/websocket/tests/hybi/send-file-blob-fail.html:
* http/tests/websocket/tests/hybi/send-file-blob.html:
* http/tests/websocket/tests/hybi/workers/resources/send-blob.js:
* platform/mac/fast/dom/Window/window-properties-expected.txt:
* storage/indexeddb/noblobs.html:
* storage/indexeddb/structured-clone.html:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115582
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
igor.o@sisa.samsung.com [Sat, 28 Apr 2012 20:59:06 +0000 (20:59 +0000)]
Move PropertyWrapper out of the AnimationBase
https://bugs.webkit.org/show_bug.cgi?id=84978
Reviewed by Dean Jackson.
AnimationBase is a complex class. It has a state machine and a bunch of
property handlers. This patch moves the property handlers to a separate
class making AnimationBase simpler.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* page/animation/AnimationBase.cpp:
* page/animation/AnimationBase.h:
(AnimationBase):
* page/animation/AnimationController.cpp:
(WebCore::AnimationController::supportsAcceleratedAnimationOfProperty):
* page/animation/CSSPropertyAnimation.cpp: Added.
(WebCore):
(WebCore::blendFunc):
(WebCore::crossfadeBlend):
(AnimationPropertyWrapperBase):
(WebCore::AnimationPropertyWrapperBase::AnimationPropertyWrapperBase):
(WebCore::AnimationPropertyWrapperBase::~AnimationPropertyWrapperBase):
(WebCore::AnimationPropertyWrapperBase::isShorthandWrapper):
(WebCore::AnimationPropertyWrapperBase::property):
(WebCore::AnimationPropertyWrapperBase::animationIsAccelerated):
(WebCore::addPropertyWrapper):
(WebCore::wrapperForProperty):
(PropertyWrapperGetter):
(WebCore::PropertyWrapperGetter::PropertyWrapperGetter):
(WebCore::PropertyWrapperGetter::equals):
(PropertyWrapper):
(WebCore::PropertyWrapper::PropertyWrapper):
(WebCore::PropertyWrapper::blend):
(RefCountedPropertyWrapper):
(WebCore::RefCountedPropertyWrapper::RefCountedPropertyWrapper):
(WebCore::RefCountedPropertyWrapper::blend):
(StyleImagePropertyWrapper):
(WebCore::StyleImagePropertyWrapper::StyleImagePropertyWrapper):
(WebCore::StyleImagePropertyWrapper::equals):
(PropertyWrapperColor):
(WebCore::PropertyWrapperColor::PropertyWrapperColor):
(WebCore::PropertyWrapperColor::blend):
(PropertyWrapperAcceleratedOpacity):
(WebCore::PropertyWrapperAcceleratedOpacity::PropertyWrapperAcceleratedOpacity):
(WebCore::PropertyWrapperAcceleratedOpacity::animationIsAccelerated):
(WebCore::PropertyWrapperAcceleratedOpacity::blend):
(PropertyWrapperAcceleratedTransform):
(WebCore::PropertyWrapperAcceleratedTransform::PropertyWrapperAcceleratedTransform):
(WebCore::PropertyWrapperAcceleratedTransform::animationIsAccelerated):
(WebCore::PropertyWrapperAcceleratedTransform::blend):
(PropertyWrapperAcceleratedFilter):
(WebCore::PropertyWrapperAcceleratedFilter::PropertyWrapperAcceleratedFilter):
(WebCore::PropertyWrapperAcceleratedFilter::animationIsAccelerated):
(WebCore::PropertyWrapperAcceleratedFilter::blend):
(WebCore::shadowListLength):
(WebCore::shadowForBlending):
(PropertyWrapperShadow):
(WebCore::PropertyWrapperShadow::PropertyWrapperShadow):
(WebCore::PropertyWrapperShadow::equals):
(WebCore::PropertyWrapperShadow::blend):
(WebCore::PropertyWrapperShadow::blendSimpleOrMatchedShadowLists):
(WebCore::PropertyWrapperShadow::blendMismatchedShadowLists):
(PropertyWrapperMaybeInvalidColor):
(WebCore::PropertyWrapperMaybeInvalidColor::PropertyWrapperMaybeInvalidColor):
(WebCore::PropertyWrapperMaybeInvalidColor::equals):
(WebCore::PropertyWrapperMaybeInvalidColor::blend):
(PropertyWrapperVisitedAffectedColor):
(WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
(WebCore::PropertyWrapperVisitedAffectedColor::equals):
(WebCore::PropertyWrapperVisitedAffectedColor::blend):
(FillLayerAnimationPropertyWrapperBase):
(WebCore::FillLayerAnimationPropertyWrapperBase::FillLayerAnimationPropertyWrapperBase):
(WebCore::FillLayerAnimationPropertyWrapperBase::~FillLayerAnimationPropertyWrapperBase):
(FillLayerPropertyWrapperGetter):
(WebCore::FillLayerPropertyWrapperGetter::FillLayerPropertyWrapperGetter):
(WebCore::FillLayerPropertyWrapperGetter::equals):
(FillLayerPropertyWrapper):
(WebCore::FillLayerPropertyWrapper::FillLayerPropertyWrapper):
(WebCore::FillLayerPropertyWrapper::blend):
(FillLayerRefCountedPropertyWrapper):
(WebCore::FillLayerRefCountedPropertyWrapper::FillLayerRefCountedPropertyWrapper):
(WebCore::FillLayerRefCountedPropertyWrapper::blend):
(FillLayerStyleImagePropertyWrapper):
(WebCore::FillLayerStyleImagePropertyWrapper::FillLayerStyleImagePropertyWrapper):
(WebCore::FillLayerStyleImagePropertyWrapper::equals):
(FillLayersPropertyWrapper):
(WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
(WebCore::FillLayersPropertyWrapper::equals):
(WebCore::FillLayersPropertyWrapper::blend):
(ShorthandPropertyWrapper):
(WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper):
(WebCore::ShorthandPropertyWrapper::isShorthandWrapper):
(WebCore::ShorthandPropertyWrapper::equals):
(WebCore::ShorthandPropertyWrapper::blend):
(WebCore::ShorthandPropertyWrapper::propertyWrappers):
(PropertyWrapperFlex):
(WebCore::PropertyWrapperFlex::PropertyWrapperFlex):
(WebCore::PropertyWrapperFlex::equals):
(WebCore::PropertyWrapperFlex::blend):
(PropertyWrapperSVGPaint):
(WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint):
(WebCore::PropertyWrapperSVGPaint::equals):
(WebCore::PropertyWrapperSVGPaint::blend):
(WebCore::addShorthandProperties):
(WebCore::CSSPropertyAnimation::ensurePropertyMap):
(WebCore::gatherEnclosingShorthandProperties):
(WebCore::CSSPropertyAnimation::blendProperties):
(WebCore::CSSPropertyAnimation::animationOfPropertyIsAccelerated):
(WebCore::CSSPropertyAnimation::animatableShorthandsAffectingProperty):
(WebCore::CSSPropertyAnimation::propertiesEqual):
(WebCore::CSSPropertyAnimation::getPropertyAtIndex):
(WebCore::CSSPropertyAnimation::getNumProperties):
* page/animation/CSSPropertyAnimation.h: Added.
(WebCore):
(CSSPropertyAnimation):
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateTransitions):
(WebCore::CompositeAnimation::pauseTransitionAtTime):
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::animate):
(WebCore::ImplicitAnimation::getAnimatedStyle):
(WebCore::ImplicitAnimation::isTargetPropertyEqual):
(WebCore::ImplicitAnimation::blendPropertyValueInStyle):
(WebCore::ImplicitAnimation::timeToNextService):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::animate):
(WebCore::KeyframeAnimation::getAnimatedStyle):
(WebCore::KeyframeAnimation::timeToNextService):
* rendering/style/RenderStyle.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115581
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Sat, 28 Apr 2012 20:58:47 +0000 (20:58 +0000)]
2012-04-28 Geoffrey Garen <ggaren@apple.com>
Try to fix the Windows build.
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115580
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Sat, 28 Apr 2012 20:51:27 +0000 (20:51 +0000)]
Clarified JSGlobalData (JavaScript VM) lifetime
https://bugs.webkit.org/show_bug.cgi?id=85142
Reviewed by Anders Carlsson.
Source/JavaScriptCore:
This was so confusing that I didn't feel like I could reason about
memory lifetime in the heap without fixing it.
The rules are:
(1) JSGlobalData owns the virtual machine and all memory in it.
(2) Deleting a JSGlobalData frees the virtual machine and all memory
in it.
(Caveat emptor: if you delete the virtual machine while you're running
JIT code or accessing GC objects, you're gonna have a bad time.)
(I opted not to make arbitrary sub-objects keep the virtual machine
alive automatically because:
(a) doing that right would be complex and slow;
(b) in the case of an exiting thread or process, there's no
clear way to give the garbage collector a chance to try again
later;
(c) continuing to run the garbage collector after we've been
asked to shut down the virtual machine seems rude;
(d) we've never really supported that feature, anyway.)
(3) Normal ref-counting will do. No need to call a battery of
specialty functions to tear down a JSGlobalData. Its foibles
notwithstanding, C++ does in fact know how to execute destructors in
order.
* API/JSContextRef.cpp:
(JSGlobalContextCreate): Removed compatibility shim for older
operating systems because it's no longer used.
(JSGlobalContextRelease): Now that we can rely on JSGlobalData to "do
the right thing", this code is much simpler. We still have one special
case to notify the garbage collector if we're removing the last
reference to the global object, since this can improve memory behavior.
* heap/CopiedSpace.cpp:
(JSC::CopiedSpace::freeAllBlocks):
* heap/CopiedSpace.h:
(CopiedSpace): Renamed "destroy" => "freeAllBlocks" because true
destruction-time behaviors should be limited to our C++ destructor.
* heap/Heap.cpp:
(JSC::Heap::~Heap):
(JSC):
(JSC::Heap::lastChanceToFinalize):
* heap/Heap.h:
(Heap):
(JSC::Heap::heap): Renamed "destroy" => "lastChanceToFinalize" because
true destruction-time behaviors should be limited to our C++
destructor.
Reorganized the code, putting code that must run before any objects
get torn down into lastChanceToFinalize, and code that just tears down
objects into our destructor.
* heap/Local.h:
(JSC::LocalStack::LocalStack):
(JSC::LocalStack::push):
(LocalStack): See rule (2).
* jsc.cpp:
(functionQuit):
(main):
(printUsageStatement):
(parseArguments):
(jscmain):
* testRegExp.cpp:
(main):
(printUsageStatement):
(parseArguments):
(realMain): See rule (3).
I removed the feature of ensuring orderly tear-down when calling quit()
or running in --help mode because it didn't seem very useful and
making it work with Windows structured exception handling and
NO_RETURN didn't seem like a fun way to spend a Saturday.
* runtime/JSGlobalData.h:
* runtime/JSGlobalData.cpp:
(JSC::JSGlobalData::JSGlobalData): Moved heap to be the first data
member in JSGlobalData to ensure that it's destructed last, so other
objects that reference it destruct without crashing. This allowed me
to remove clearBuiltinStructures() altogether, and helped guarantee
rule (3).
(JSC::JSGlobalData::~JSGlobalData): Explicitly call
lastChanceToFinalize() at the head of our destructor to ensure that
all pending finalizers run while the virtual machine is still in a
valid state. Trying to resurrect (re-ref) the virtual machine at this
point is not valid, but all other operations are.
Changed a null to a 0xbbadbeef to clarify just how bad this beef is.
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
* runtime/JSGlobalObject.h:
(JSGlobalObject):
(JSC::JSGlobalObject::globalData): See rule (3).
Source/WebCore:
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::~WorkerScriptController): Slightly
simpler than before. We can't just rely on our default destructor
because we need to hold the JSLock when we tear down the VM.
* bridge/NP_jsobject.cpp:
(_NPN_InvokeDefault):
(_NPN_Invoke):
(_NPN_Evaluate):
(_NPN_Construct): Don't RefPtr<> the JSGlobalData because it makes it
seem like you know something the rest of our code doesn't know. The
plugin JSGlobalData is immortal, anyway.
I also removed some timeout checker related code because that feature
doesn't work anymore, so it was effectively dead code.
Source/WebKit/mac:
* Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::invoke):
(WebKit::NetscapePluginInstanceProxy::invokeDefault):
(WebKit::NetscapePluginInstanceProxy::construct):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115579
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Sat, 28 Apr 2012 19:22:33 +0000 (19:22 +0000)]
Unreviewed, removing a Mac WebKit2-specific test result for
http/tests/xmlviewer/dumpAsText/frames.html that is not required
anymore after changes in r115572.
* platform/mac-wk2/http/tests/xmlviewer: Removed.
* platform/mac-wk2/http/tests/xmlviewer/dumpAsText: Removed.
* platform/mac-wk2/http/tests/xmlviewer/dumpAsText/frames-expected.txt: Removed.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115578
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
loislo@chromium.org [Sat, 28 Apr 2012 19:11:45 +0000 (19:11 +0000)]
Web Inspector: InspectorFrontendHost.append has to be implemented for saving heap snapshots.
https://bugs.webkit.org/show_bug.cgi?id=85137
We can save a file with help of InspectorFrontendHost.save method,
but it is suitable only for relatively small portions of data and
can't process the 6Gb heap snapshot.
These methods just pass the url and content into embedder.
Reviewed by Yury Semikhatsky.
Source/WebCore:
* inspector/InspectorFrontendClient.h:
(InspectorFrontendClient):
* inspector/InspectorFrontendClientLocal.h:
(WebCore::InspectorFrontendClientLocal::append):
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::append):
(WebCore):
* inspector/InspectorFrontendHost.h:
(InspectorFrontendHost):
* inspector/InspectorFrontendHost.idl:
Source/WebKit/chromium:
* public/WebDevToolsFrontendClient.h:
(WebKit::WebDevToolsFrontendClient::append):
* src/InspectorFrontendClientImpl.cpp:
(WebKit::InspectorFrontendClientImpl::append):
(WebKit):
* src/InspectorFrontendClientImpl.h:
(InspectorFrontendClientImpl):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115577
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
noam.rosenthal@nokia.com [Sat, 28 Apr 2012 18:53:08 +0000 (18:53 +0000)]
[Qt][Texmap] Error of cross-compiling webkit with Qt 4.8.1
https://bugs.webkit.org/show_bug.cgi?id=84321
Speculative build-fix for Qt 4.8.
Use QGLContext for Qt 4.x instead of the platform-specific context.
Reviewed by Simon Hausmann.
No new tests, build fix.
* platform/graphics/texmap/TextureMapperGL.cpp:
(SharedGLData):
(WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115576
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eae@chromium.org [Sat, 28 Apr 2012 17:31:52 +0000 (17:31 +0000)]
Unreviewed rebaseline for tests affected by Length change in r115573.
* fast/borders/border-radius-huge-assert-expected.txt: Added.
* fast/html/details-position-expected.txt: Added.
* platform/chromium-mac-leopard/fast/forms/001-expected.png:
* platform/chromium-mac-leopard/fast/replaced/width100percent-checkbox-expected.png:
* platform/chromium-mac-leopard/fast/replaced/width100percent-radio-expected.png:
* platform/chromium-mac-leopard/tables/mozilla/bugs/bug1318-expected.png:
* platform/chromium-mac-leopard/tables/mozilla/bugs/bug4527-expected.png:
* platform/chromium-mac-snowleopard/fast/forms/001-expected.png:
* platform/chromium-mac-snowleopard/fast/replaced/width100percent-checkbox-expected.png:
* platform/chromium-mac-snowleopard/fast/replaced/width100percent-radio-expected.png:
* platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug1318-expected.png:
* platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug4527-expected.png:
* platform/chromium-mac/fast/forms/001-expected.png:
* platform/chromium-mac/fast/replaced/width100percent-checkbox-expected.png:
* platform/chromium-mac/fast/replaced/width100percent-radio-expected.png:
* platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt: Added.
* platform/chromium-mac/tables/mozilla/bugs/bug1318-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.png:
* platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.txt:
* platform/chromium-win/fast/borders/border-radius-huge-assert-expected.png:
* platform/chromium-win/fast/html/details-position-expected.txt:
* platform/chromium-win/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
* platform/efl/fast/borders/border-radius-huge-assert-expected.txt: Removed.
* platform/efl/fast/html/details-position-expected.txt: Removed.
* platform/efl/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt: Removed.
* platform/efl/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt: Removed.
* platform/gtk/fast/borders/border-radius-huge-assert-expected.txt: Removed.
* platform/gtk/fast/html/details-position-expected.txt: Removed.
* platform/gtk/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt: Removed.
* platform/gtk/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt: Removed.
* svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt: Added.
* svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115575
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
noam.rosenthal@nokia.com [Sat, 28 Apr 2012 17:26:58 +0000 (17:26 +0000)]
[Texmap] Falling leaves demo missing opacity fade out animation
https://bugs.webkit.org/show_bug.cgi?id=83691
Reviewed by Martin Robinson.
The bug originated from clearing an intermediate surface with glClear while the scissor
state was wrong.
When using intermediate surfaces, maintain a clip-stack for each surface, rather than
a single clip-stack for the whole scene. When a surface is bound, its clip stack should
be applied.
Covered by existing compositing tests.
* platform/graphics/texmap/TextureMapperGL.cpp:
(SharedGLData):
(WebCore::TextureMapperGL::ClipStack::push):
(WebCore):
(WebCore::TextureMapperGL::ClipStack::pop):
(WebCore::scissorClip):
(WebCore::TextureMapperGL::ClipStack::apply):
(WebCore::TextureMapperGL::clipStack):
(WebCore::TextureMapperGL::beginPainting):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::BitmapTextureGL::didReset):
(WebCore::BitmapTextureGL::clearIfNeeded):
(WebCore::BitmapTextureGL::createFboIfNeeded):
(WebCore::BitmapTextureGL::bind):
(WebCore::TextureMapperGL::bindDefaultSurface):
(WebCore::TextureMapperGL::bindSurface):
(WebCore::TextureMapperGL::beginScissorClip):
(WebCore::TextureMapperGL::beginClip):
(WebCore::TextureMapperGL::endClip):
* platform/graphics/texmap/TextureMapperGL.h:
(TextureMapperGL):
(ClipState):
(WebCore::TextureMapperGL::ClipState::ClipState):
(ClipStack):
(WebCore::TextureMapperGL::ClipStack::current):
(WebCore::TextureMapperGL::ClipStack::clear):
(BitmapTextureGL):
(WebCore::BitmapTextureGL::BitmapTextureGL):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115574
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eae@chromium.org [Sat, 28 Apr 2012 16:27:15 +0000 (16:27 +0000)]
Move Length and CSS length computation to float
https://bugs.webkit.org/show_bug.cgi?id=84801
Source/WebCore:
Patch by Emil A Eklund <eae@chromium.org> and Levi Weintraub <leviw@chromium.org> on 2012-04-26
Reviewed by Eric Seidel.
Change Length and CSS length computation to floating point. This gets us
closer to the goal of supporting subpixel layout and improves precision
for SVG which already uses floating point for its layout.
This change makes computedStyle return fractional values for pixel values
if a fraction is specified. It also changes the result of computations
where two or more values with fractional precision. Prior to this change
the result of Length(2.9) + Length(2.9) would be 4 as each value would be
floored. With this change the result is 5 as the addition is done with
floating point precision and then the result will be floored. Once we
enable subpixel layout the resulting value in this example would be 5.8.
Updated existing layout tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::zoomAdjustedPixelValue):
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::computeLength):
* css/CSSPrimitiveValue.h:
(WebCore):
(WebCore::roundForImpreciseConversion):
Add specialized float version of roundForImpreciseConversion that matches
the int versions rounding logic.
If a value is sufficiently close to the next integer round it up to
ensure that a style rule such as "width: 4.999px" evaluates to 5px
instead of 4px. This is needed as, although Lengths are using floating
point, the layout system still uses integer precision and floors the
Length values.
This will change once we move to FractionalLayoutUnits but for now this
is needed to ensure compatibility with the existing system and tests.
Without this specialized rounding logic we fail a handful of tests
including acid3.
* platform/Length.h:
(WebCore::Length::value):
(Length):
(WebCore::Length::intValue):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::styleOrColLogicalWidth):
LayoutTests:
Reviewed by Eric Seidel.
Change Length and CSS length computation to floating point. This gets us
closer to the goal of supporting subpixel layout and improves precision
for SVG which already uses floating point for its layout.
This change makes computedStyle return fractional values for pixel values
if a fraction is specified. It also changes the result of computations
where two or more values with fractional precision. Prior to this change
the result of Length(2.9) + Length(2.9) would be 4 as each value would be
floored. with this change the result is 5 as the addition is done with
floating point precision and then the result will be floored. Once we
enable subpixel layout the resulting value in this example would be 5.8.
* fast/dom/length-attribute-mapping-expected.txt:
* fast/dom/length-attribute-mapping.html:
* platform/mac-snowleopard/fast/forms/001-expected.png:
* platform/mac-snowleopard/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.png:
* platform/mac/fast/forms/001-expected.txt:
* platform/mac/fast/html/details-position-expected.png:
* platform/mac/fast/html/details-position-expected.txt:
* platform/mac/fast/replaced/width100percent-checkbox-expected.png:
* platform/mac/fast/replaced/width100percent-checkbox-expected.txt:
* platform/mac/fast/replaced/width100percent-radio-expected.png:
* platform/mac/fast/replaced/width100percent-radio-expected.txt:
* platform/mac/mathml/presentation/fractions-expected.png:
* platform/mac/mathml/presentation/fractions-expected.txt:
* platform/mac/mathml/presentation/fractions-vertical-alignment-expected.png:
* platform/mac/mathml/presentation/fractions-vertical-alignment-expected.txt:
* platform/mac/mathml/presentation/mo-stretch-expected.png:
* platform/mac/mathml/presentation/mo-stretch-expected.txt:
* platform/mac/mathml/presentation/subsup-expected.png:
* platform/mac/mathml/presentation/subsup-expected.txt:
* platform/mac/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
* platform/mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
* platform/mac/tables/mozilla/bugs/bug1318-expected.png:
* platform/mac/tables/mozilla/bugs/bug1318-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115573
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Sat, 28 Apr 2012 16:00:53 +0000 (16:00 +0000)]
[WK2] http/tests/navigation/anchor-frames-gbk.html fails
https://bugs.webkit.org/show_bug.cgi?id=76896
Reviewed by Darin Adler.
Tools:
Only dump as text if currently dumping render tree. This ensures that
calling dumpAsText in a test with dumpChildFramesAsText already being
called doesn't override the first decision, possibly making tests fail.
* WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:
(WTR::LayoutTestController::dumpAsText):
LayoutTests:
Unskip the now-passing test for Mac and Qt WK2 ports.
* platform/mac-wk2/Skipped:
* platform/qt-5.0-wk2/Skipped:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115572
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Sat, 28 Apr 2012 15:57:46 +0000 (15:57 +0000)]
Unreviewed, adding a Gtk-specific baseline for
fast/dom/Window/window-lookup-precedence.html.
* platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115571
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
danw@gnome.org [Sat, 28 Apr 2012 15:42:27 +0000 (15:42 +0000)]
watchlist: Add danw@gnome.org to SoupNetwork
* Scripts/webkitpy/common/config/watchlist:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115570
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
apavlov@chromium.org [Sat, 28 Apr 2012 14:20:37 +0000 (14:20 +0000)]
Web Inspector: Enable touch events feature fails touch feature detection
https://bugs.webkit.org/show_bug.cgi?id=84397
Source/WebCore:
Whenever the touch emulation is enabled, Inspector adds a script to evaluate on load,
that adds ontouch(start|end|move|cancel) properties to window.__proto__ and document.__proto__.
Reviewed by Pavel Feldman.
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.get if):
(WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.scriptAddedCallback):
(WebInspector.DOMAgent.prototype._emulateTouchEventsChanged):
* inspector/front-end/inspector.js:
LayoutTests:
Reviewed by Pavel Feldman.
* fast/events/touch/emulate-touch-events-expected.txt:
* fast/events/touch/emulate-touch-events.html:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115569
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 28 Apr 2012 14:11:02 +0000 (14:11 +0000)]
Web Inspector: Shortcuts screen UI polish
https://bugs.webkit.org/show_bug.cgi?id=84708
1) remove inconsistent shadow;
2) reduce border radius;
3) vertically center the “X” button;
4) replace unreadable symbolic shortcuts with text;
5) gaps / colors / opacity adjustments;
6) section-to-column distribution algorithm is replaced with a fair one.
Patch by Eugene Klyuchnikov <eustas.bug@gmail.com> on 2012-04-28
Reviewed by Pavel Feldman.
This is a UI polising patch, so no new tests added.
* English.lproj/localizedStrings.js: added keyboars arrow keys items
* inspector/front-end/KeyboardShortcut.js: replace unreadable symbolic shortcuts with text
* inspector/front-end/ShortcutsScreen.js:
(WebInspector.ShortcutsScreen):
(WebInspector.ShortcutsScreen.prototype.show): remove redundant parameter
(WebInspector.ShortcutsScreen.prototype._buildTable): change section distributing algorithm
(WebInspector.ShortcutsSection.prototype.renderSection): render colon with margins
(WebInspector.ShortcutsSection.prototype._renderHeader): apply classname to th elements
* inspector/front-end/helpScreen.css:
(.help-window-main): reduce radius, remove shadow; tune color and opacity
(.help-window-caption): fix spacing; add ruler
(.help-window-title): fix spacing; remove ruler
(.help-content): fix spacing
(.help-close-button): fix spacing; adjust background color
(.help-column-table): fix spacing
(.help-table > tr > th): fix color
(.help-key): fix color
(.help-combine-keys, .help-key-delimiter): extract common style
(.help-combine-keys): remove dupe
(.help-section-title): add space between sections
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115568
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
noel.gordon@gmail.com [Sat, 28 Apr 2012 12:47:18 +0000 (12:47 +0000)]
Remove PlatformTouchPointQt.cpp PlatformTouchEventQt.cpp from the gyp projects
https://bugs.webkit.org/show_bug.cgi?id=85132
Unreviewed VS2010 gyp project generation fix.
PlatformTouchPointQt.cpp and PlatformTouchEventQt.cpp were removed in r115312,
so remove them from the gyp projects.
* WebCore.gypi:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115567
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zimmermann@webkit.org [Sat, 28 Apr 2012 12:01:48 +0000 (12:01 +0000)]
<animateTransform type="scale"> should use '0' as effective from value not '1', if no base value is specified and from is not given
https://bugs.webkit.org/show_bug.cgi?id=85133
Source/WebCore:
It should start from scale=0. I had that fixed before, but it got lost during merging. Restore the fix.
See bug 85051, for more context why this is correct.
Tests: svg/animations/animateTransform-by-scale-1-expected.svg
svg/animations/animateTransform-by-scale-1.svg
* svg/SVGAnimatedTransformList.cpp:
(WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):
LayoutTests:
Reviewed by Antti Koivisto.
* svg/animations/animateTransform-by-scale-1-expected.svg: Added.
* svg/animations/animateTransform-by-scale-1.svg: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115566
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
noel.gordon@gmail.com [Sat, 28 Apr 2012 11:21:13 +0000 (11:21 +0000)]
[chromium] http/tests/websocket/tests/hixie76/url-parsing.html is failing
https://bugs.webkit.org/show_bug.cgi?id=85130
Unreviewed test expectations update: fix expected text after r115533.
* platform/chromium-mac/http/tests/websocket/tests/hixie76/url-parsing-expected.txt: Removed.
* platform/chromium-win/http/tests/websocket/tests/hixie76/url-parsing-expected.txt: Removed.
* platform/chromium/http/tests/websocket/tests/hixie76/url-parsing-expected.txt: Renamed from LayoutTests/platform/chromium-linux/http/tests/websocket/tests/hixie76/url-parsing-expected.txt.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115565
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zimmermann@webkit.org [Sat, 28 Apr 2012 11:03:11 +0000 (11:03 +0000)]
SVGAnimateColorElement doesn't support by/to animations properly
https://bugs.webkit.org/show_bug.cgi?id=36704
Reviewed by Antti Koivisto.
Source/WebCore:
Switch AnimatedColorAnimator to use the standard animateAdditiveNumber() method, taking progress & repeatCount into account.
This gives us accumulation/repeatCount support for free.
We just animate the four color components on their own now and clamp once at the end after addition/accumulation finished.
Import <animateColor> tests from Dr. Olaf Hoffmanns SVG Animation test suite, which all pass now.
While I was at it, remove the includeSMILProperties boolean from computeCSSPropertyValue - we always use the computed style
without SMIL effects included, whenever we want to retrieve the "base value", or handle "inherit/currentColor".
Tests: svg/animations/animateColor-additive-2a-expected.svg
svg/animations/animateColor-additive-2a.svg
svg/animations/animateColor-additive-2b-expected.svg
svg/animations/animateColor-additive-2b.svg
svg/animations/animateColor-additive-2c-expected.svg
svg/animations/animateColor-additive-2c.svg
svg/animations/animateColor-additive-2d-expected.svg
svg/animations/animateColor-additive-2d.svg
* svg/ColorDistance.cpp:
(WebCore::ColorDistance::clampColor):
(WebCore::ColorDistance::addColors):
(WebCore::ColorDistance::addToColor):
* svg/ColorDistance.h:
(ColorDistance):
* svg/SVGAnimateElement.cpp:
(WebCore::SVGAnimateElement::resetToBaseValue):
* svg/SVGAnimatedColor.cpp:
(WebCore::SVGAnimatedColorAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedColorAnimator::calculateAnimatedValue):
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::computeCSSPropertyValue):
(WebCore::SVGAnimationElement::adjustForInheritance):
* svg/SVGAnimationElement.h:
(SVGAnimationElement):
LayoutTests:
* svg/animations/animateColor-additive-2a-expected.svg: Added.
* svg/animations/animateColor-additive-2a.svg: Added.
* svg/animations/animateColor-additive-2b-expected.svg: Added.
* svg/animations/animateColor-additive-2b.svg: Added.
* svg/animations/animateColor-additive-2c-expected.svg: Added.
* svg/animations/animateColor-additive-2c.svg: Added.
* svg/animations/animateColor-additive-2d-expected.svg: Added.
* svg/animations/animateColor-additive-2d.svg: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115564
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
caseq@chromium.org [Sat, 28 Apr 2012 09:57:14 +0000 (09:57 +0000)]
[chromium] add frame boundaries instrumentation for the threaded compositor
https://bugs.webkit.org/show_bug.cgi?id=83926
- call instrumentBeginFrame() in a callback invoked by CCThreadProxy to fix frame marks in WebInspector's
timeline panel, currently broken for threaded compositor.
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::willBeginFrame):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115563
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yurys@chromium.org [Sat, 28 Apr 2012 09:49:06 +0000 (09:49 +0000)]
Unreviewed. Gtk build fix after r115553.
* Source/autotools/symbols.filter:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115562
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zimmermann@webkit.org [Sat, 28 Apr 2012 09:44:39 +0000 (09:44 +0000)]
2012-04-28 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Fix Qt build -- I was too quick.
* rendering/svg/SVGPathData.cpp: Add back Path.h include.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115561
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zimmermann@webkit.org [Sat, 28 Apr 2012 09:29:32 +0000 (09:29 +0000)]
Rename SVGPathParserFactory to SVGPathUtilities and remove the obsolete singleton
https://bugs.webkit.org/show_bug.cgi?id=85129
SVGPathParserFactory implements the singleton pattern, but stores no members.
Remove the singleton and move all functions to free-functions into SVGPathUtilities.h.
Makes the code easier to read - doesn't affect any tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromPathElement):
* rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::operator<<):
* svg/SVGAllInOne.cpp:
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::parseAttribute):
* svg/SVGAnimatedPath.cpp:
(WebCore::SVGAnimatedPathAnimator::constructFromString):
(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedPathAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue):
* svg/SVGAnimatedType.cpp:
* svg/SVGGlyphElement.cpp:
(WebCore::SVGGlyphElement::buildGenericGlyphIdentifier):
* svg/SVGPathBlender.cpp: Fix typo s/;;/;/
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::getTotalLength):
(WebCore::SVGPathElement::getPointAtLength):
(WebCore::SVGPathElement::getPathSegAtLength):
(WebCore::SVGPathElement::parseAttribute):
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::lookupOrCreateDWrapper):
(WebCore::SVGPathElement::pathSegListChanged):
* svg/SVGPathParserFactory.h: Removed.
* svg/SVGPathSegList.cpp:
(WebCore::SVGPathSegList::valueAsString):
* svg/SVGPathUtilities.cpp: Renamed from Source/WebCore/svg/SVGPathParserFactory.cpp.
(WebCore):
(WebCore::globalSVGPathBuilder):
(WebCore::globalSVGPathSegListBuilder):
(WebCore::globalSVGPathByteStreamBuilder):
(WebCore::globalSVGPathStringBuilder):
(WebCore::globalSVGPathTraversalStateBuilder):
(WebCore::globalSVGPathParser):
(WebCore::globalSVGPathBlender):
(WebCore::buildPathFromString):
(WebCore::buildSVGPathByteStreamFromSVGPathSegList):
(WebCore::buildPathFromByteStream):
(WebCore::buildSVGPathSegListFromByteStream):
(WebCore::buildStringFromByteStream):
(WebCore::buildStringFromSVGPathSegList):
(WebCore::buildSVGPathByteStreamFromString):
(WebCore::buildAnimatedSVGPathByteStream):
(WebCore::addToSVGPathByteStream):
(WebCore::getSVGPathSegAtLengthFromSVGPathByteStream):
(WebCore::getTotalLengthOfSVGPathByteStream):
(WebCore::getPointAtLengthOfSVGPathByteStream):
* svg/SVGPathUtilities.h: Added.
(WebCore):
* svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
(WebCore::SVGAnimatedPathSegListPropertyTearOff::animValDidChange):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115560
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yurys@chromium.org [Sat, 28 Apr 2012 09:20:24 +0000 (09:20 +0000)]
Unreviewed. Added new exported symbols after r115553.
* win/WebKit2.def:
* win/WebKit2CFLite.def:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115559
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zimmermann@webkit.org [Sat, 28 Apr 2012 09:16:27 +0000 (09:16 +0000)]
2012-04-28 Nikolas Zimmermann <nzimmermann@rim.com>
Fix repetitions & by animation support for path animations
https://bugs.webkit.org/show_bug.cgi?id=85071
Rubber-stamped by Antti Koivisto.
Cleanup SVGPathBlender, to make it more readable.
* svg/SVGPathBlender.cpp:
(WebCore::SVGPathBlender::blendLineToHorizontalSegment):
(WebCore::SVGPathBlender::blendLineToVerticalSegment):
(WebCore::SVGPathBlender::blendArcToSegment):
(WebCore::SVGPathBlender::blendAnimatedPath):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115558
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yurys@chromium.org [Sat, 28 Apr 2012 09:07:54 +0000 (09:07 +0000)]
2012-04-28 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Qt build fix: added new exported symbols.
* WebCore.exp.in:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115557
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yurys@chromium.org [Sat, 28 Apr 2012 08:49:22 +0000 (08:49 +0000)]
Unreviewed. Fix Qt minimal build after r115553.
* inspector/InspectorConsoleAgent.h:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115556
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zimmermann@webkit.org [Sat, 28 Apr 2012 08:27:08 +0000 (08:27 +0000)]
Fix repetitions & by animation support for path animations
https://bugs.webkit.org/show_bug.cgi?id=85071
Reviewed by Antti Koivisto.
Source/WebCore:
Implement additive="sum" / by-animation support for path animations, eg.
<path d="M 10 10 L 10 100 Z">
<animate attributeName="d" begin="0s" dur="4s" by="M 0 0 L 90 0 Z"/>
<path>
animates the d attribute to "M 10 10 L 100 100 0 Z".
Now only <animateColor> and <animateMotion> are left to be fixed, all other types are working as expected now in all additive/accumulate/from-by/by/from-to animations.
Tests: svg/animations/path-animation-expected.svg
svg/animations/repeating-path-animation-expected.svg
svg/animations/repeating-path-animation.svg
* svg/SVGAnimatedPath.cpp:
(WebCore::SVGAnimatedPathAnimator::addAnimatedTypes): Implemented, to support by-animations, instead of falling back to to-animations.
(WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue): Handle repetitions, accumulation & addition.
* svg/SVGPathBlender.cpp: Allow empty from source everywhere, use default values if no from value is specified, needed for by-animations.
(WebCore::SVGPathBlender::SVGPathBlender):
(WebCore::SVGPathBlender::blendAnimatedDimensonalFloat):
(WebCore::SVGPathBlender::blendAnimatedFloatPoint):
(WebCore::SVGPathBlender::blendMoveToSegment):
(WebCore::SVGPathBlender::blendLineToSegment):
(WebCore::SVGPathBlender::blendLineToHorizontalSegment):
(WebCore::SVGPathBlender::blendLineToVerticalSegment):
(WebCore::SVGPathBlender::blendCurveToCubicSegment):
(WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment):
(WebCore::SVGPathBlender::blendCurveToQuadraticSegment):
(WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment):
(WebCore::SVGPathBlender::blendArcToSegment):
(WebCore::SVGPathBlender::addAnimatedPath):
(WebCore::SVGPathBlender::blendAnimatedPath):
* svg/SVGPathBlender.h: Add new addAnimatedPath function.
(SVGPathBlender):
* svg/SVGPathByteStream.h:
(SVGPathByteStream): Make SVGPathByteStreams copyable, needed for SVGAnimatedPathAnimator.
(WebCore::SVGPathByteStream::size): Returns size of the SVGPathByteStream.
* svg/SVGPathParserFactory.cpp:
(WebCore::SVGPathParserFactory::buildAnimatedSVGPathByteStream): Allow empty from streams, needed for by animations.
(WebCore::SVGPathParserFactory::addToSVGPathByteStream): Add 'byStream' 'repeatCount' times to 'toStream'. Both streams must match in size.
* svg/SVGPathParserFactory.h: Add new addToSVGPathByteStream function.
* svg/SVGPointList.cpp: Remove dead code.
* svg/SVGPointList.h: Ditto.
(SVGPointList):
LayoutTests:
* svg/animations/path-animation.svg: Added.
* svg/animations/path-animation-expected.svg: Added.
* svg/animations/repeating-path-animation-expected.svg: Added.
* svg/animations/repeating-path-animation.svg: Added.
* svg/animations/script-tests/svgpath-animation-1.js: Correct testcase, now that by animations are supported.
(sample2):
(sample3):
(executeTest):
* svg/animations/svgpath-animation-1-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115555
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zimmermann@webkit.org [Sat, 28 Apr 2012 08:22:07 +0000 (08:22 +0000)]
SVGAnimateMotion does not handle accumulation
https://bugs.webkit.org/show_bug.cgi?id=18564
Reviewed by Antti Koivisto.
Source/WebCore:
Implement accumulation for <animateMotion>. Add lots of new
reftests, verifying additive/accumulate behavior is correct.
Tests: svg/animations/animateMotion-additive-1-expected.svg
svg/animations/animateMotion-additive-1.svg
svg/animations/animateMotion-additive-2a-expected.svg
svg/animations/animateMotion-additive-2a.svg
svg/animations/animateMotion-additive-2b-expected.svg
svg/animations/animateMotion-additive-2b.svg
svg/animations/animateMotion-additive-2c-expected.svg
svg/animations/animateMotion-additive-2c.svg
svg/animations/animateMotion-additive-2d-expected.svg
svg/animations/animateMotion-additive-2d.svg
svg/animations/mozilla/animateMotion-by-1-expected.svg
svg/animations/mozilla/animateMotion-by-1.svg
svg/animations/mozilla/animateMotion-from-to-1-expected.svg
svg/animations/mozilla/animateMotion-from-to-1.svg
svg/animations/mozilla/animateMotion-indefinite-to-1-expected.svg
svg/animations/mozilla/animateMotion-indefinite-to-1.svg
svg/animations/mozilla/animateMotion-indefinite-to-2-expected.svg
svg/animations/mozilla/animateMotion-indefinite-to-2.svg
svg/animations/mozilla/animateMotion-mpath-pathLength-1-expected.svg
svg/animations/mozilla/animateMotion-mpath-pathLength-1.svg
svg/animations/mozilla/animateMotion-mpath-targetChange-1-expected.svg
svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg
svg/animations/mozilla/animateMotion-to-overridden-1-expected.svg
svg/animations/mozilla/animateMotion-to-overridden-1.svg
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
(WebCore::SVGAnimateMotionElement::buildTransformForProgress):
(WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
* svg/SVGAnimateMotionElement.h:
LayoutTests:
Import mozilla <animateMotion> reftests, and two testscases from
Dr. Olaf Hoffmanns SVG test suite, covering all additive/accumulate modes
for <animateMotion>.
* svg/animations/animateMotion-additive-1-expected.svg: Added.
* svg/animations/animateMotion-additive-1.svg: Added.
* svg/animations/animateMotion-additive-2a-expected.svg: Added.
* svg/animations/animateMotion-additive-2a.svg: Added.
* svg/animations/animateMotion-additive-2b-expected.svg: Added.
* svg/animations/animateMotion-additive-2b.svg: Added.
* svg/animations/animateMotion-additive-2c-expected.svg: Added.
* svg/animations/animateMotion-additive-2c.svg: Added.
* svg/animations/animateMotion-additive-2d-expected.svg: Added.
* svg/animations/animateMotion-additive-2d.svg: Added.
* svg/animations/mozilla/animateMotion-by-1-expected.svg: Added.
* svg/animations/mozilla/animateMotion-by-1.svg: Added.
* svg/animations/mozilla/animateMotion-from-to-1-expected.svg: Added.
* svg/animations/mozilla/animateMotion-from-to-1.svg: Added.
* svg/animations/mozilla/animateMotion-indefinite-to-1-expected.svg: Added.
* svg/animations/mozilla/animateMotion-indefinite-to-1.svg: Added.
* svg/animations/mozilla/animateMotion-indefinite-to-2-expected.svg: Added.
* svg/animations/mozilla/animateMotion-indefinite-to-2.svg: Added.
* svg/animations/mozilla/animateMotion-mpath-pathLength-1-expected.svg: Added.
* svg/animations/mozilla/animateMotion-mpath-pathLength-1.svg: Added.
* svg/animations/mozilla/animateMotion-mpath-targetChange-1-expected.svg: Added.
* svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg: Added.
* svg/animations/mozilla/animateMotion-to-overridden-1-expected.svg: Added.
* svg/animations/mozilla/animateMotion-to-overridden-1.svg: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115554
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yurys@chromium.org [Sat, 28 Apr 2012 08:20:27 +0000 (08:20 +0000)]
ScriptStateProtectedPtr should not keep a strong reference to the context
https://bugs.webkit.org/show_bug.cgi?id=85009
Source/WebCore:
Delete console message arguments when DOMWindow where the messages were created
is reset on its frame.
Reviewed by Pavel Feldman.
Test: http/tests/inspector-enabled/console-clear-arguments-on-frame-navigation.html
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::addToFrontend):
(WebCore::ConsoleMessage::windowCleared):
(WebCore::ConsoleMessage::argumentCount):
(WebCore):
* inspector/ConsoleMessage.h:
(ConsoleMessage):
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::consoleMessageArgumentCounts):
(WebCore):
* inspector/InspectorConsoleAgent.h:
(InspectorConsoleAgent):
* page/Frame.cpp:
(WebCore::Frame::clearDOMWindow):
(WebCore::Frame::setDOMWindow):
* testing/Internals.cpp:
(WebCore):
(WebCore::Internals::consoleMessageArgumentCounts):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:
LayoutTests:
Test that after frame navigation all arguments passed to the console messages
created in that frame will be discarded and not prevent the frame context from
being GC'ed.
Reviewed by Pavel Feldman.
* http/tests/inspector-enabled/console-clear-arguments-on-frame-navigation-expected.txt: Added.
* http/tests/inspector-enabled/console-clear-arguments-on-frame-navigation.html: Added.
* http/tests/inspector-enabled/console-clear-arguments-on-frame-remove-expected.txt:
* http/tests/inspector-enabled/console-clear-arguments-on-frame-remove.html:
* http/tests/inspector-enabled/resources/console-clear-arguments-test.js: Added.
(print):
(dumpConsoleMessageArgumentCounts):
* http/tests/inspector/console-test.js:
(initialize_ConsoleTest.InspectorTest.checkConsoleMessagesDontHaveParameters):
(initialize_ConsoleTest):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115553
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ossy@webkit.org [Sat, 28 Apr 2012 08:08:45 +0000 (08:08 +0000)]
[Qt] Unreviewed weekend gardening, skip new failing tests.
* platform/qt/Skipped:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115552
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
noel.gordon@gmail.com [Sat, 28 Apr 2012 07:02:12 +0000 (07:02 +0000)]
Layout Test fast/images/gif-large-checkerboard.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=85073
Unreviewed text expectations update. Test has been a solid PASS for past 12 hours
since the patch for bug 85077 rolled in.
* platform/chromium/test_expectations.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115551
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ossy@webkit.org [Sat, 28 Apr 2012 06:32:14 +0000 (06:32 +0000)]
Unreviewed gardening, update expected files after r115446.
* fast/dom/Window/window-lookup-precedence-expected.txt: Updated after r115446.
* platform/qt-4.8/fast/dom/Window/window-properties-expected.txt: Updated after r115446.
* platform/qt-5.0-wk2/fast/dom/Window/window-properties-expected.txt: Updated after r115446.
* platform/qt-5.0-wk2/fast/dom/prototype-inheritance-2-expected.txt: Updated after r115446.
* platform/qt-5.0/fast/dom/Window/window-properties-expected.txt: Updated after r115446.
* platform/qt-5.0/fast/dom/prototype-inheritance-2-expected.txt: Updated after r115446.
* platform/qt/fast/dom/prototype-inheritance-2-expected.txt: Updated after r115446.
* platform/qt/fast/js/global-constructors-expected.txt: Updated after r115446.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115550
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jochen@chromium.org [Sat, 28 Apr 2012 06:28:37 +0000 (06:28 +0000)]
Ensure that there's always a provisional document loader if the frame loader is in provisional state
https://bugs.webkit.org/show_bug.cgi?id=83894
Reviewed by Nate Chapin.
We're still seeing crashes in the FrameLoader where the FrameLoader's
state is "provisional" but there is no provisional document loader. I
added code to update the FrameLoader's state everytime the provisional
document loader is cleared, and added checks that the FrameLoader's
state can't be set to provisional without a provisional loader.
If the crashes go away, or the newly added checks reveal the culprit,
we should relex the checks to use ASSERT() instead of CRASH().
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::init):
(WebCore::FrameLoader::setupForReplace):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::clearProvisionalLoad):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115549
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Sat, 28 Apr 2012 06:06:14 +0000 (06:06 +0000)]
Try to fix the Windows build.
* heap/WeakBlock.h:
(WeakBlock):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115548
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zandobersek@gmail.com [Sat, 28 Apr 2012 06:05:00 +0000 (06:05 +0000)]
Unreviewed, rebaselining after revisions 115446, 115510 and 115533.
* fast/dom/Window/window-lookup-precedence-expected.txt:
* http/tests/websocket/tests/hixie76/url-parsing-expected.txt:
* http/tests/websocket/tests/hybi/url-parsing-expected.txt:
* platform/gtk/media/video-colorspace-yuv420-expected.txt:
* platform/gtk/media/video-colorspace-yuv422-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115547
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Sat, 28 Apr 2012 06:02:42 +0000 (06:02 +0000)]
Try to fix the Qt build.
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMethod::finishCreation):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115546
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Sat, 28 Apr 2012 05:57:46 +0000 (05:57 +0000)]
Made WeakSet::allocate() static and removed its JSGlobalData argument
https://bugs.webkit.org/show_bug.cgi?id=85128
Reviewed by Anders Carlsson.
../JavaScriptCore:
This is a step toward faster finalization.
WeakSet::allocate() now deduces which WeakSet to allocate from based on
its JSCell* argument. (Currently, there's only one WeakSet, but soon
there will be many.)
This was a global replace of "globalData.heap.weakSet()->allocate" with
"WeakSet::allocate", plus by-hand removal of the JSGlobalData argument.
* heap/WeakSetInlines.h: Copied from Source/JavaScriptCore/heap/WeakSet.h.
I had to split out WeakSet::allocate() in to a separate header to avoid
a cycle.
(JSC::WeakSet::allocate): We can mask the pointer we're passed to
figure out where to allocate our WeakImpl. (Soon, we'll use this to
associate the WeakImpl with the GC block it references.)
../WebCore:
Mechanically removed JSGlobalData arguments from PassWeak<T> and Weak<T> allocation.
* bindings/js/JSDOMBinding.cpp:
(WebCore::jsStringSlowCase):
* bindings/js/JSEventListener.h:
(WebCore::JSEventListener::setWrapper):
* bindings/js/JSNodeFilterCondition.cpp:
(WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
* bindings/js/ScriptWrappable.h:
(WebCore::ScriptWrappable::setWrapper):
* bridge/jsc/BridgeJSC.cpp:
(JSC::Bindings::Instance::createRuntimeObject):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMethod::finishCreation):
* bridge/runtime_root.cpp:
(JSC::Bindings::RootObject::addRuntimeObject):
../WebKit2:
Mechanically removed JSGlobalData arguments from PassWeak<T> and Weak<T> allocation.
* WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
(WebKit::NPRuntimeObjectMap::getOrCreateJSObject):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115545
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Sat, 28 Apr 2012 05:31:32 +0000 (05:31 +0000)]
<rdar://problem/
10346980> REGRESSION: Cannot enter text in Dashboard widget fields that have placeholder attribute
Remove a dashboard backwards compatibility quirk that was in place to support an old version
of the Stocks widget. It prevented the pointer-events property from being applied in Dashboard
widgets, which caused -webkit-input-placeholder elements to eat mouse clicks rather than giving
focus to the containing input elements. The offending widget has long since been fixed.
Reviewed by Dan Bernstein.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::collectMatchingRulesForList):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115544
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dino@apple.com [Sat, 28 Apr 2012 04:59:53 +0000 (04:59 +0000)]
Support reverse and alternate-reverse in CA animations
https://bugs.webkit.org/show_bug.cgi?id=78041
Reviewed by Beth Dakin.
Source/WebCore:
CoreAnimation does not natively support reverse and alternate-reverse
animation directions so we need to flip the animation values (keyframe
keys and timing functions) that we send to GraphicsLayerCA. Unfortunately
this code adds a lot of conditionals because it isn't as simple as
reversing the order of keys. You also now have a different alignment of
timing functions to the reversed list.
New tests to cover the two new directions, making sure the timing
functions are correctly inverted, and exercising fill modes.
Tests: animations/animation-direction-reverse-fill-mode-hardware.html
animations/animation-direction-reverse-fill-mode.html
animations/animation-direction-reverse-hardware-opacity.html
animations/animation-direction-reverse-hardware.html
animations/animation-direction-reverse-non-hardware.html
animations/animation-direction-reverse-timing-functions-hardware.html
animations/animation-direction-reverse-timing-functions.html
* platform/graphics/ca/GraphicsLayerCA.cpp:
Handle the previously unsupported animation directions, reversing
the list of values and keytimes that would be used to create
the CA Animation.
(WebCore::GraphicsLayerCA::addAnimation):
Do not create an animation if on Windows and using a reverse
direction.
(WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::setupAnimation):
(WebCore::GraphicsLayerCA::setAnimationEndpoints):
(WebCore::GraphicsLayerCA::setAnimationKeyframes):
(WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
(WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
(WebCore::GraphicsLayerCA::setFilterAnimationEndpoints):
(WebCore::GraphicsLayerCA::setFilterAnimationKeyframes):
* platform/graphics/ca/PlatformCAAnimation.h:
(PlatformCAAnimation): Pass through a flag that tells the CA Animation
that it should invert the timing functions.
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(toCAMediaTimingFunction): Add a parameter that will invert the timing
function coefficients if necessary.
(PlatformCAAnimation::setTimingFunction):
(PlatformCAAnimation::setTimingFunctions):
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
(toCACFTimingFunction):
New unused parameter.
LayoutTests:
Tests support for reverse and alternate-reverse animations on
CoreAnimation objects, as well as filling out some of the software
animator tests. There are three variables to exercise: reverse vs
forward direction animations, whether reversed timing functions are
inverted correctly, and that fill mode respects the direction of
animation.
Refactored the animation test helper class so we could reuse
property parsing and evaluation.
* animations/animation-direction-reverse-fill-mode-expected.txt: Added.
* animations/animation-direction-reverse-fill-mode-hardware-expected.txt: Added.
* animations/animation-direction-reverse-fill-mode-hardware.html: Added.
* animations/animation-direction-reverse-fill-mode.html: Added.
* animations/animation-direction-reverse-hardware-expected.txt: Added.
* animations/animation-direction-reverse-hardware-opacity-expected.txt: Added.
* animations/animation-direction-reverse-hardware-opacity.html: Added.
* animations/animation-direction-reverse-hardware.html: Added.
* animations/animation-direction-reverse-non-hardware-expected.txt: Added.
* animations/animation-direction-reverse-non-hardware.html: Added.
* animations/animation-direction-reverse-timing-functions-expected.txt: Added.
* animations/animation-direction-reverse-timing-functions-hardware-expected.txt: Added.
* animations/animation-direction-reverse-timing-functions-hardware.html: Added.
* animations/animation-direction-reverse-timing-functions.html: Added.
* animations/resources/animation-test-helpers.js:
(checkExpectedValue):
(getPropertyValue):
(comparePropertyValue):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115540
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 28 Apr 2012 04:57:04 +0000 (04:57 +0000)]
Unreviewed, rolling out r115407.
http://trac.webkit.org/changeset/115407
https://bugs.webkit.org/show_bug.cgi?id=85126
Caused heap use after free (Requested by keishi_ on #webkit).
Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-04-27
Source/WebCore:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::HTMLFormControlElement):
(WebCore::HTMLFormControlElement::updateFieldSetAndLegendAncestor):
(WebCore::HTMLFormControlElement::insertedInto):
(WebCore::HTMLFormControlElement::removedFrom):
(WebCore::HTMLFormControlElement::disabled):
(WebCore::HTMLFormControlElement::recalcWillValidate):
(WebCore::HTMLFormControlElement::setNeedsWillValidateCheck):
* html/HTMLFormControlElement.h:
(HTMLFormControlElement):
LayoutTests:
* fast/forms/datalist/datalist-child-validation-expected.txt: Removed.
* fast/forms/datalist/datalist-child-validation.html: Removed.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115539
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Sat, 28 Apr 2012 04:26:01 +0000 (04:26 +0000)]
Stop using aligned allocation for WeakBlock
https://bugs.webkit.org/show_bug.cgi?id=85124
Reviewed by Anders Carlsson.
We don't actually use the alignment for anything.
* heap/WeakBlock.cpp:
(JSC::WeakBlock::create):
(JSC::WeakBlock::WeakBlock): Switched from aligned allocation to regular
allocation.
* heap/WeakBlock.h:
(WeakBlock): Don't use HeapBlock because HeapBlock requires aligned
allocation. This change required me to add some declarations that we used
to inherit from HeapBlock.
(WeakBlock::blockFor): Removed. This function relied on aligned allocation
but didn't do anything for us.
(WeakBlock::deallocate): Removed. WeakBlock doesn't own any of the deallocation
logic, so it shouldn't own the function.
* heap/WeakSet.cpp:
(JSC::WeakSet::~WeakSet):
(JSC::WeakSet::finalizeAll):
(JSC::WeakSet::visitLiveWeakImpls):
(JSC::WeakSet::visitDeadWeakImpls):
(JSC::WeakSet::sweep):
(JSC::WeakSet::shrink):
(JSC::WeakSet::resetAllocator):
(JSC::WeakSet::tryFindAllocator):
* heap/WeakSet.h:
(WeakSet): Updated declarations to reflect WeakBlock not inheriting from
HeapBlock. This allowed me to remove some casts, which was nice.
(JSC::WeakSet::deallocate): Directly set the deallocated flag instead of
asking WeakBlock to do it for us. We don't need to have a WeakBlock
pointer to set the flag, so stop asking for one.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115538
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 28 Apr 2012 04:16:22 +0000 (04:16 +0000)]
Unreviewed, rolling out r115529.
http://trac.webkit.org/changeset/115529
https://bugs.webkit.org/show_bug.cgi?id=85125
Broke Clang build (Requested by enne on #webkit).
Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-04-27
* WebKit.gypi:
* src/WebMediaPlayerClientImpl.cpp:
(WebKit::WebMediaPlayerClientImpl::setVideoFrameProviderClient):
* src/WebMediaPlayerClientImpl.h:
(WebMediaPlayerClientImpl):
* tests/WebMediaPlayerClientImplTest.cpp: Removed.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115537
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
haraken@chromium.org [Sat, 28 Apr 2012 03:58:33 +0000 (03:58 +0000)]
[JSC] Implement a helper method createNotEnoughArgumentsError()
https://bugs.webkit.org/show_bug.cgi?id=85102
Reviewed by Geoffrey Garen.
In bug 84787, kbr@ requested to avoid hard-coding
createTypeError(exec, "Not enough arguments") here and there.
This patch implements createNotEnoughArgumentsError(exec)
and uses it in JSC bindings.
c.f. a corresponding bug for V8 bindings is bug 85097.
Source/JavaScriptCore:
* runtime/Error.cpp:
(JSC::createNotEnoughArgumentsError):
(JSC):
* runtime/Error.h:
(JSC):
Source/WebCore:
Test: bindings/scripts/test/TestObj.idl
* bindings/scripts/CodeGeneratorJS.pm: Modified as described above.
(GenerateArgumentsCountCheck):
* bindings/js/JSDataViewCustom.cpp: Ditto.
(WebCore::getDataViewMember):
(WebCore::setDataViewMember):
* bindings/js/JSDeprecatedPeerConnectionCustom.cpp:
(WebCore::JSDeprecatedPeerConnectionConstructor::constructJSDeprecatedPeerConnection):
* bindings/js/JSDirectoryEntryCustom.cpp:
(WebCore::JSDirectoryEntry::getFile):
(WebCore::JSDirectoryEntry::getDirectory):
* bindings/js/JSSharedWorkerCustom.cpp:
(WebCore::JSSharedWorkerConstructor::constructJSSharedWorker):
* bindings/js/JSWebKitMutationObserverCustom.cpp:
(WebCore::JSWebKitMutationObserverConstructor::constructJSWebKitMutationObserver):
(WebCore::JSWebKitMutationObserver::observe):
* bindings/js/JSWorkerCustom.cpp:
(WebCore::JSWorkerConstructor::constructJSWorker):
* bindings/scripts/test/JS/JSFloat64Array.cpp: Updated run-bindings-tests.
(WebCore::jsFloat64ArrayPrototypeFunctionFoo):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItem):
(WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
(WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
(WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::constructJSTestObj):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionSerializedValue):
(WebCore::jsTestObjPrototypeFunctionIdbKey):
(WebCore::jsTestObjPrototypeFunctionOptionsObject):
(WebCore::jsTestObjPrototypeFunctionAddEventListener):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjConstructorFunctionClassMethod2):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongArray):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionConvert2):
(WebCore::jsTestObjPrototypeFunctionConvert3):
(WebCore::jsTestObjPrototypeFunctionConvert4):
(WebCore::jsTestObjPrototypeFunctionConvert5):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115536
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pilgrim@chromium.org [Sat, 28 Apr 2012 03:56:53 +0000 (03:56 +0000)]
[Chromium] Call highMemoryUsageMB directly
https://bugs.webkit.org/show_bug.cgi?id=84841
Reviewed by Kentaro Hara.
Part of a refactoring series. See tracking bug 82948.
Source/WebCore:
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::checkMemoryUsage):
* platform/MemoryUsageSupport.cpp:
(WebCore::MemoryUsageSupport::highMemoryUsageMB):
(WebCore):
* platform/MemoryUsageSupport.h:
(MemoryUsageSupport):
* platform/chromium/MemoryUsageSupportChromium.cpp:
(WebCore::MemoryUsageSupport::highMemoryUsageMB):
(WebCore):
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
Source/WebKit/chromium:
* src/PlatformSupport.cpp:
(WebCore):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115535
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Sat, 28 Apr 2012 03:43:29 +0000 (03:43 +0000)]
Only allow non-null pointers in the WeakSet
https://bugs.webkit.org/show_bug.cgi?id=85119
Reviewed by Darin Adler.
../JavaScriptCore:
This is a step toward more efficient finalization.
No clients put non-pointers (JSValues) into Weak<T> and PassWeak<T>.
Some clients put null pointers into Weak<T> and PassWeak<T>, but this is
more efficient and straight-forward to model with a null in the Weak<T>
or PassWeak<T> instead of allocating a WeakImpl just to hold null.
* heap/PassWeak.h:
(JSC): Removed the Unknown (JSValue) type of weak pointer because it's
unused now.
(PassWeak): Don't provide a default initializer for our JSCell* argument.
This feature was only used in one place, and it was a bug.
(JSC::::get): Don't check for a null stored inside our WeakImpl: that's
not allowed anymore.
(JSC::PassWeak::PassWeak): Handle null as a null WeakImpl instead of
allocating a WeakImpl and storing null into it.
* heap/Weak.h:
(Weak):
(JSC::::Weak): Same changes as in PassWeak<T>.
* heap/WeakBlock.cpp:
(JSC::WeakBlock::visitLiveWeakImpls):
(JSC::WeakBlock::visitDeadWeakImpls): Only non-null cells are valid in
the WeakSet now, so no need to check for non-cells and null cell pointers.
* heap/WeakImpl.h:
(JSC::WeakImpl::WeakImpl): Only non-null cells are valid in the WeakSet
now, so ASSERT that.
../WebCore:
* bridge/jsc/BridgeJSC.cpp:
(JSC::Bindings::Instance::Instance): Don't allocate a WeakImpl just to
store null. This was needless, and is now a compile error. Instead,
rely on the default constructor, which will produce a cheap null.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115534
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
haraken@chromium.org [Sat, 28 Apr 2012 03:30:28 +0000 (03:30 +0000)]
"Not enough arguments" error should be TypeError
https://bugs.webkit.org/show_bug.cgi?id=84628
Reviewed by Darin Adler.
Source/WebCore:
Currently, some custom bindings implement "Not enough arguments"
error as SyntaxError. The Web IDL spec requires that it should be
TypeError: http://www.w3.org/TR/WebIDL/#dfn-overload-resolution-algorithm
Thus, this patch changes SyntaxError to TypeError.
Tests: http/tests/websocket/tests/hixie76/url-parsing.html:
http/tests/websocket/tests/hybi/url-parsing.html:
http/tests/xmlhttprequest/exceptions.html:
svg/dom/SVGLength.html:
webaudio/audionode.html:
* bindings/js/JSAudioContextCustom.cpp:
(WebCore::JSAudioContextConstructor::constructJSAudioContext):
* bindings/js/JSSVGLengthCustom.cpp:
(WebCore::JSSVGLength::convertToSpecifiedUnits):
* bindings/js/JSWebSocketCustom.cpp:
(WebCore::JSWebSocketConstructor::constructJSWebSocket):
(WebCore::JSWebSocket::send):
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::open):
* bindings/v8/custom/V8AudioContextCustom.cpp:
(WebCore::V8AudioContext::constructorCallback):
* bindings/v8/custom/V8SVGLengthCustom.cpp:
(WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):
* bindings/v8/custom/V8WebSocketCustom.cpp:
(WebCore::V8WebSocket::constructorCallback):
(WebCore::V8WebSocket::sendCallback):
* bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
(WebCore::V8XMLHttpRequest::openCallback):
LayoutTests:
Currently, some custom bindings implement "Not enough arguments"
error as SyntaxError. The Web IDL spec requires that it should be
TypeError: http://www.w3.org/TR/WebIDL/#dfn-overload-resolution-algorithm
Thus, this patch changes SyntaxError to TypeError, and adds test
cases for the exception.
* http/tests/websocket/tests/hixie76/send-empty-expected.txt:
* http/tests/websocket/tests/hixie76/url-parsing.html:
* http/tests/websocket/tests/hybi/send-empty-expected.txt:
* http/tests/websocket/tests/hybi/url-parsing.html:
* http/tests/xmlhttprequest/exceptions-expected.txt:
* http/tests/xmlhttprequest/exceptions.html:
* platform/chromium-linux/http/tests/websocket/tests/hixie76/url-parsing-expected.txt:
* platform/chromium/http/tests/websocket/tests/hybi/url-parsing-expected.txt:
* svg/dom/SVGLength-expected.txt:
* webaudio/audionode-expected.txt:
* webaudio/audionode.html:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115533
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kov@webkit.org [Sat, 28 Apr 2012 03:23:49 +0000 (03:23 +0000)]
[GTK] jhbuild cloning is not following WEBKITOUTPUTDIR.
https://bugs.webkit.org/show_bug.cgi?id=76161
Reviewed by Martin Robinson.
* Scripts/webkitdirs.pm:
(getJhbuildPath): New method to obtain the jhbuild base directory,
using the product base directory
(jhbuildConfigurationChanged): Use the new method
(buildAutotoolsProject): Ditto.
* efl/jhbuildrc: Use WEBKITOUTPUTDIR when calculating the path.
* gtk/jhbuildrc: Ditto.
* jhbuild/jhbuild-wrapper: Ditto.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115532
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
kbr@google.com [Sat, 28 Apr 2012 03:20:53 +0000 (03:20 +0000)]
Remove SHADER_COMPILER constant
https://bugs.webkit.org/show_bug.cgi?id=85115
Reviewed by Darin Adler.
Source/WebCore:
Removed constant which was previously removed from spec. Updated
layout test and expected results.
* html/canvas/WebGLRenderingContext.idl:
LayoutTests:
* fast/canvas/webgl/constants-expected.txt: Updated expected results.
* fast/canvas/webgl/constants.html: Synced test with Khronos repository.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115531
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 28 Apr 2012 03:12:25 +0000 (03:12 +0000)]
[BlackBerry] Fixed background is scrolling in nieuwecode.nl
https://bugs.webkit.org/show_bug.cgi?id=85109
Patch by Arvid Nilsson <anilsson@rim.com> on 2012-04-27
Reviewed by Antonio Gomes.
Since the BlackBerry port uses very similar fixed position acceleration
as the Qt WebKit2 port, the same fix that worked for them in bug 83980
works for us.
Fixed by opting in to the FIXED_POSITION_CREATES_STACKING_CONTEXT
mechanism.
Covered by existing manual test fixed-position-no-z-index.html.
* css/StyleResolver.cpp:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115530
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
enne@google.com [Sat, 28 Apr 2012 02:55:49 +0000 (02:55 +0000)]
[chromium] Allow WebMediaPlayerClientImpl to switch clients
https://bugs.webkit.org/show_bug.cgi?id=85093
Reviewed by James Robinson.
WebVideoFrameProviderClient has a 1:1 relationship with a
WebVideoFrameProvider. The client here is CCVideoLayerImpl and the
provider is WebMediaPlayerClientImpl. If the provider gets a new
client, then the old client needs to be informed to stop using the
provider.
If this doesn't happen, then the old client will have an unsafe
pointer to the provider, will not get informed if the provider gets
deleted, and the client will crash when it dereferences the provider
pointer trying to tell the provider that its client is going away.
Test: WebMediaPlayerClientImplTest.InitialNullVideoClient
WebMediaPlayerClientImplTest.SetAndUnsetVideoClient
WebMediaPlayerClientImplTest.DestroyProvider
WebMediaPlayerClientImplTest.SetMultipleVideoClients
* WebKit.gypi:
* src/WebMediaPlayerClientImpl.cpp:
(WebKit::WebMediaPlayerClientImpl::setVideoFrameProviderClient):
* src/WebMediaPlayerClientImpl.h:
(WebMediaPlayerClientImpl):
* tests/WebMediaPlayerClientImplTest.cpp: Added.
(WebKit):
(FakeWebMediaPlayerClientImpl):
(WebKit::FakeWebMediaPlayerClientImpl::create):
(WebKit::FakeWebMediaPlayerClientImpl::FakeWebMediaPlayerClientImpl):
(FakeVideoFrameProviderClient):
(WebKit::FakeVideoFrameProviderClient::create):
(WebKit::FakeVideoFrameProviderClient::~FakeVideoFrameProviderClient):
(WebKit::FakeVideoFrameProviderClient::didReceiveFrame):
(WebKit::FakeVideoFrameProviderClient::didUpdateMatrix):
(WebKit::FakeVideoFrameProviderClient::stopUsingProvider):
(WebKit::FakeVideoFrameProviderClient::provider):
(WebKit::FakeVideoFrameProviderClient::FakeVideoFrameProviderClient):
(WebKit::TEST):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115529
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 28 Apr 2012 02:43:48 +0000 (02:43 +0000)]
[BlackBerry] Double tap zooming does nothing on table element on bustedtees.com
https://bugs.webkit.org/show_bug.cgi?id=85104
Patch by Jacky Jiang <zhajiang@rim.com> on 2012-04-27
Reviewed by George Staikos.
PR: 147006
This was caused by the incorrect fix master_33/SHA:
612caec4.
Calculations like this "originalArea / pageArea" would always return 0
so that the incorrect node and blockRect were used by block zoom. This
patch takes care of it.
* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::blockZoomRectForNode):
(BlackBerry::WebKit::WebPage::blockZoom):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115528
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
tony@chromium.org [Sat, 28 Apr 2012 02:29:26 +0000 (02:29 +0000)]
[chromium] Fix compiler warning in CCSchedulerTest.cpp with gcc 4.6.3
https://bugs.webkit.org/show_bug.cgi?id=85110
Reviewed by James Robinson.
Using gcc 4.6.3 (default on Precise), I get:
third_party/WebKit/Source/WebKit/chromium/tests/CCSchedulerTest.cpp:188:5: error: converting 'false' to pointer type
for argument 1 of 'char testing::internal::IsNullLiteralHelper(testing::internal::Secret*)' [-Werror=conversion-null]
* tests/CCSchedulerTest.cpp:
(WebKitTests::TEST):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115527
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 28 Apr 2012 02:16:31 +0000 (02:16 +0000)]
fast/forms/listbox-clear-restore.html is failing
https://bugs.webkit.org/show_bug.cgi?id=82818
Patch by Joe Thomas <joethomas@motorola.com> on 2012-04-27
Reviewed by Darin Adler.
This testcase was flaky on the bot and from the screenshots it looks like the timer failed to fire.
Using document.body.offsetWidth to force a layout instead of timer.
* fast/forms/listbox-clear-restore.html:
* platform/mac/Skipped:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115526
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
nduca@chromium.org [Sat, 28 Apr 2012 01:28:07 +0000 (01:28 +0000)]
Expose high-resolution on requestAnimationFrame callback
https://bugs.webkit.org/show_bug.cgi?id=66683
This changes requestAnimationFrame's animationStartTime argument
to be a high resolution DOM timestamp, per disucssion here:
http://lists.w3.org/Archives/Public/public-web-perf/2012Apr/0004.html
Reviewed by James Robinson.
Source/WebCore:
Covered by existing requestAnimationFrame tests.
* dom/Document.cpp:
(WebCore::Document::serviceScriptedAnimations):
* dom/Document.h:
(Document):
* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
(WebCore):
(WebCore::ScriptedAnimationController::windowScreenDidChange):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::animationTimerFired):
(WebCore::ScriptedAnimationController::displayRefreshFired):
* dom/ScriptedAnimationController.h:
(ScriptedAnimationController):
* page/FrameView.cpp:
(WebCore::FrameView::serviceScriptedAnimations):
* page/FrameView.h:
(FrameView):
* platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
(WebCore::DisplayRefreshMonitor::notifyClients):
* platform/graphics/DisplayRefreshMonitor.h:
(DisplayRefreshMonitor):
* platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
(WebCore::DisplayRefreshMonitor::displayLinkFired):
* platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
(WebCore):
(WebCore::DisplayRefreshMonitor::requestRefreshCallback):
(WebCore::DisplayRefreshMonitor::displayLinkFired):
Source/WebKit/chromium:
* src/PageWidgetDelegate.cpp:
(WebKit::PageWidgetDelegate::animate):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::updateAnimations):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115525
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
scherkus@chromium.org [Sat, 28 Apr 2012 01:26:30 +0000 (01:26 +0000)]
[Chromium] Unreviewed, updating baselines for media/video-colorspace-yuv420/422.html due to r115510.
* platform/chromium-linux/media/video-colorspace-yuv420-expected.png:
* platform/chromium-linux/media/video-colorspace-yuv422-expected.png:
* platform/chromium-mac-leopard/media/video-colorspace-yuv420-expected.png:
* platform/chromium-mac-leopard/media/video-colorspace-yuv422-expected.png:
* platform/chromium-mac-snowleopard/media/video-colorspace-yuv420-expected.png:
* platform/chromium-mac-snowleopard/media/video-colorspace-yuv422-expected.png:
* platform/chromium-mac/media/video-colorspace-yuv420-expected.png:
* platform/chromium-mac/media/video-colorspace-yuv420-expected.txt:
* platform/chromium-mac/media/video-colorspace-yuv422-expected.png:
* platform/chromium-mac/media/video-colorspace-yuv422-expected.txt:
* platform/chromium-win/media/video-colorspace-yuv420-expected.png:
* platform/chromium-win/media/video-colorspace-yuv420-expected.txt:
* platform/chromium-win/media/video-colorspace-yuv422-expected.png:
* platform/chromium-win/media/video-colorspace-yuv422-expected.txt:
* platform/chromium/test_expectations.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115524
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
barraclough@apple.com [Sat, 28 Apr 2012 01:02:03 +0000 (01:02 +0000)]
<rdar://problem/7909395> Math in JavaScript is inaccurate on iOS
By defalut IEEE754 denormal support is disabled on iOS;
turn it on.
Reviewed by Filip Pizlo.
* jsc.cpp:
(main):
- clear the appropriate bit in the fpscr.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115523
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
haraken@chromium.org [Sat, 28 Apr 2012 01:00:47 +0000 (01:00 +0000)]
[V8] Implement a helper method V8Proxy::throwNotEnoughArgumentsError()
https://bugs.webkit.org/show_bug.cgi?id=85097
Reviewed by Kenneth Russell.
In bug 84787, kbr requested to avoid hard-coding
throwError("Not enough arguments", V8Proxy::TypeError) here and there.
This patch implements V8Proxy::throwNotEnoughArgumentsError()
and uses it in V8 bindings.
No tests. No change in behavior.
* bindings/scripts/CodeGeneratorV8.pm:
(GenerateArgumentsCountCheck):
(GenerateEventConstructorCallback):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::throwNotEnoughArgmentsError):
(WebCore):
* bindings/v8/V8Proxy.h:
(V8Proxy):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::getInt8Callback):
(WebCore::V8DataView::getUint8Callback):
(WebCore::V8DataView::setInt8Callback):
(WebCore::V8DataView::setUint8Callback):
* bindings/v8/custom/V8DirectoryEntryCustom.cpp:
(WebCore::V8DirectoryEntry::getDirectoryCallback):
(WebCore::V8DirectoryEntry::getFileCallback):
* bindings/v8/custom/V8IntentConstructor.cpp:
(WebCore::V8Intent::constructorCallback):
* bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
(WebCore::V8WebKitMutationObserver::constructorCallback):
(WebCore::V8WebKitMutationObserver::observeCallback):
Test: bindings/scripts/test/TestObj.idl
* bindings/scripts/CodeGeneratorV8.pm: Modified as described above.
(GenerateArgumentsCountCheck):
(GenerateEventConstructorCallback):
* bindings/v8/V8Proxy.cpp: Ditto.
(WebCore::V8Proxy::throwNotEnoughArgumentsError):
(WebCore):
* bindings/v8/V8Proxy.h:
(V8Proxy):
* bindings/v8/custom/V8DataViewCustom.cpp:
(WebCore::V8DataView::getInt8Callback):
(WebCore::V8DataView::getUint8Callback):
(WebCore::V8DataView::setInt8Callback):
(WebCore::V8DataView::setUint8Callback):
* bindings/v8/custom/V8DirectoryEntryCustom.cpp:
(WebCore::V8DirectoryEntry::getDirectoryCallback):
(WebCore::V8DirectoryEntry::getFileCallback):
* bindings/v8/custom/V8IntentConstructor.cpp:
(WebCore::V8Intent::constructorCallback):
* bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
(WebCore::V8WebKitMutationObserver::constructorCallback):
(WebCore::V8WebKitMutationObserver::observeCallback):
* bindings/scripts/test/V8/V8Float64Array.cpp: Updated run-bindings-tests.
(WebCore::Float64ArrayV8Internal::fooCallback):
* bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
(WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):
* bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
(WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):
* bindings/scripts/test/V8/V8TestEventConstructor.cpp:
(WebCore::V8TestEventConstructor::constructorCallback):
* bindings/scripts/test/V8/V8TestEventTarget.cpp:
(WebCore::TestEventTargetV8Internal::itemCallback):
(WebCore::TestEventTargetV8Internal::dispatchEventCallback):
* bindings/scripts/test/V8/V8TestInterface.cpp:
(WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
(WebCore::V8TestInterface::constructorCallback):
* bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
(WebCore::TestMediaQueryListListenerV8Internal::methodCallback):
* bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
(WebCore::V8TestNamedConstructorConstructorCallback):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
(WebCore::TestObjV8Internal::intMethodWithArgsCallback):
(WebCore::TestObjV8Internal::objMethodWithArgsCallback):
(WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
(WebCore::TestObjV8Internal::methodReturningSequenceCallback):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
(WebCore::TestObjV8Internal::serializedValueCallback):
(WebCore::TestObjV8Internal::idbKeyCallback):
(WebCore::TestObjV8Internal::optionsObjectCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
(WebCore::TestObjV8Internal::methodWithCallbackArgCallback):
(WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
(WebCore::TestObjV8Internal::overloadedMethod1Callback):
(WebCore::TestObjV8Internal::overloadedMethod2Callback):
(WebCore::TestObjV8Internal::overloadedMethod3Callback):
(WebCore::TestObjV8Internal::overloadedMethod4Callback):
(WebCore::TestObjV8Internal::overloadedMethod5Callback):
(WebCore::TestObjV8Internal::overloadedMethod6Callback):
(WebCore::TestObjV8Internal::overloadedMethod7Callback):
(WebCore::TestObjV8Internal::overloadedMethod11Callback):
(WebCore::TestObjV8Internal::overloadedMethod12Callback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
(WebCore::TestObjV8Internal::convert1Callback):
(WebCore::TestObjV8Internal::convert2Callback):
(WebCore::TestObjV8Internal::convert3Callback):
(WebCore::TestObjV8Internal::convert4Callback):
(WebCore::TestObjV8Internal::convert5Callback):
(WebCore::TestObjV8Internal::strictFunctionCallback):
(WebCore::V8TestObj::constructorCallback):
* bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
(WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115522
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pilgrim@chromium.org [Sat, 28 Apr 2012 00:34:57 +0000 (00:34 +0000)]
[Chromium] Call lowMemoryUsageMB directly
https://bugs.webkit.org/show_bug.cgi?id=84840
Reviewed by Kentaro Hara.
Part of a refactoring series. See tracking bug 82948.
Source/WebCore:
* bindings/v8/V8GCController.cpp:
(WebCore::V8GCController::checkMemoryUsage):
* platform/MemoryUsageSupport.cpp:
(WebCore::MemoryUsageSupport::lowMemoryUsageMB):
(WebCore):
* platform/MemoryUsageSupport.h:
(MemoryUsageSupport):
* platform/chromium/MemoryUsageSupportChromium.cpp:
(WebCore::MemoryUsageSupport::lowMemoryUsageMB):
(WebCore):
* platform/chromium/PlatformSupport.h:
(PlatformSupport):
Source/WebKit/chromium:
* src/PlatformSupport.cpp:
(WebCore):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115521
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yi.4.shen@nokia.com [Sat, 28 Apr 2012 00:10:23 +0000 (00:10 +0000)]
REGRESSION(113723): Pressing enter in this list example deletes the whole list
https://bugs.webkit.org/show_bug.cgi?id=85016
Reviewed by Enrica Casucci.
The bug was caused by CompositeEditCommand::breakOutOfEmptyListItem, which calls isListItem
on the empty list's siblings to decide which part of the list should get removed. However,
the check fails when the empty list's sibling is a text node, or a list element (e.g. ul, ol).
Fixed it by skipping empty list's non-element sibling and calling isListElement to do further
check.
Source/WebCore:
Test: added new test cases in the existing test (break-out-of-empty-list-item.html)
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
LayoutTests:
* editing/execCommand/break-out-of-empty-list-item-expected.txt:
* editing/execCommand/script-tests/break-out-of-empty-list-item.js:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115520
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Sat, 28 Apr 2012 00:07:49 +0000 (00:07 +0000)]
[chromium] Add pause and resume support for accelerated css animations.
https://bugs.webkit.org/show_bug.cgi?id=84601
Patch by Ian Vollick <vollick@chromium.org> on 2012-04-27
Reviewed by James Robinson.
Source/WebCore:
Tested in:
CCLayerAnimationControllerTest.syncPauseResume
CCActiveAnimationTest.TrimTimeTimeOffset
CCActiveAnimationTest.TrimTimeSuspendResume
CCActiveAnimationTest.IsFinishedNeedsSynchronizedStartTime
CCActiveAnimationTest.RunStateChangesIgnoredWhileSuspended
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::suspendAnimations):
(WebCore::GraphicsLayerChromium::resumeAnimations):
* platform/graphics/chromium/GraphicsLayerChromium.h:
(GraphicsLayerChromium):
* platform/graphics/chromium/LayerChromium.cpp:
(WebCore::LayerChromium::suspendAnimations):
(WebCore::LayerChromium::resumeAnimations):
* platform/graphics/chromium/LayerChromium.h:
(LayerChromium):
* platform/graphics/chromium/cc/CCActiveAnimation.cpp:
(WebCore::CCActiveAnimation::CCActiveAnimation):
(WebCore::CCActiveAnimation::setRunState):
(WebCore::CCActiveAnimation::suspend):
(WebCore::CCActiveAnimation::resume):
(WebCore::CCActiveAnimation::isFinishedAt):
(WebCore::CCActiveAnimation::trimTimeToCurrentIteration):
(WebCore::CCActiveAnimation::cloneForImplThread):
(WebCore::CCActiveAnimation::pushPropertiesTo):
* platform/graphics/chromium/cc/CCActiveAnimation.h:
(CCActiveAnimation):
(WebCore::CCActiveAnimation::setStartTime):
(WebCore::CCActiveAnimation::timeOffset):
(WebCore::CCActiveAnimation::setTimeOffset):
(WebCore::CCActiveAnimation::isFinished):
* platform/graphics/chromium/cc/CCLayerAnimationController.cpp:
(WebCore::CCLayerAnimationController::addAnimation):
(WebCore::CCLayerAnimationController::pauseAnimation):
(WebCore::CCLayerAnimationController::suspendAnimations):
(WebCore::CCLayerAnimationController::resumeAnimations):
(WebCore::CCLayerAnimationController::pushAnimationUpdatesTo):
(WebCore::CCLayerAnimationController::getActiveAnimation):
(WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
(WebCore::CCLayerAnimationController::removeAnimationsCompletedOnMainThread):
(WebCore::CCLayerAnimationController::pushPropertiesToImplThread):
(WebCore):
(WebCore::CCLayerAnimationController::tickAnimations):
* platform/graphics/chromium/cc/CCLayerAnimationController.h:
(CCLayerAnimationController):
Source/WebKit/chromium:
* tests/CCActiveAnimationTest.cpp:
(WebCore::TEST):
(WebCore):
* tests/CCLayerAnimationControllerTest.cpp:
(WebKitTests::TEST):
(WebKitTests):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115519
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Sat, 28 Apr 2012 00:04:50 +0000 (00:04 +0000)]
SMIL animation causes leak of the related Document (and many elements)
https://bugs.webkit.org/show_bug.cgi?id=83856
<rdar://problem/
11216047>
Reviewed by Dean Jackson.
The SVGAnimatedProperty cache was previously holding a reference to the properties it contained;
said references were cleared in the SVGAnimatedProperty destructor (which was never called because
there was always one remaining reference from the cache).
The SVGAnimatedProperty cache now holds raw pointers instead of RefPtrs; the SVGAnimateElement now
owns its own SVGAnimatedProperties, both for itself and for any <use/> instances of itself. They're
cleared and destroyed within SVGAnimateElement::targetElementWillChange, at which time they're removed
from the cache.
SVGPropertyTearOffs now keep a reference to their SVGElement (m_contextElement) instead of their SVGAnimatedProperty;
this way, there is no reference cycle, but the animated property (owned by the element) and the element itself are
kept alive until the TearOff is garbage collected.
Add a few tests for different parts of this patch: smil-leak-elements tests that animated
elements are garbage collected properly after being removed from the page;
smil-leak-element-instances and its related smil-leak-element-instances-noBaseValRef test
that we don't leak instances after they're removed from the document while the original element is still alive;
smil-leak-dynamically-added-element-instances tests the same thing, but adds half of the instances
while the animation is in the middle of running;
svglength-element-removed-crash ensures that an animated element is not freed
if JavaScript code is holding a reference to an animated property wrapper.
File lists left off because they're very long.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115518
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
adamk@chromium.org [Fri, 27 Apr 2012 23:56:42 +0000 (23:56 +0000)]
Remove misspelled, unused, unimplemented method from V8Proxy
https://bugs.webkit.org/show_bug.cgi?id=85091
Reviewed by Dimitri Glazkov.
* bindings/v8/V8Proxy.h:
(V8Proxy):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115517
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
msaboff@apple.com [Fri, 27 Apr 2012 23:51:17 +0000 (23:51 +0000)]
Memory wasted in JSString for non-rope strings
https://bugs.webkit.org/show_bug.cgi?id=84907
Reviewed by Geoffrey Garen.
Split JSString into two classes, JSString as a base class that does not
include the fibers of a Rope, and a subclass JSRopeString that has the
rope functionality. Both classes "share" the same ClassInfo. Added
a bool to JSString to indicate that the string was allocated as a JSRopeString
to properly handle visiting the fiber children when the rope is resolved and
the JSRopeString appears as a JSString. Didn't change the interface of JSString
to require any JIT changes.
As part of this change, removed "cellSize" from ClassInfo since both classes
share the same ClassInfo, but have different sizes. The only use I could find
for cellSize was an ASSERT in allocateCell().
This appears to be neutral on performance tests.
* JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Changed JSString::resolveRope
to JSRopeString::resolveRope
* runtime/ClassInfo.h:
(JSC):
(ClassInfo):
* runtime/JSCell.h:
(JSC::allocateCell):
* runtime/JSString.cpp:
(JSC::JSRopeString::RopeBuilder::expand):
(JSC::JSString::visitChildren):
(JSC):
(JSC::JSRopeString::visitFibers):
(JSC::JSRopeString::resolveRope):
(JSC::JSRopeString::resolveRopeSlowCase8):
(JSC::JSRopeString::resolveRopeSlowCase):
(JSC::JSRopeString::outOfMemory):
(JSC::JSRopeString::getIndexSlowCase):
* runtime/JSString.h:
(JSC):
(JSString):
(JSC::JSString::finishCreation):
(JSC::JSString::create):
(JSC::JSString::isRope):
(JSC::JSString::is8Bit):
(JSRopeString):
(RopeBuilder):
(JSC::JSRopeString::RopeBuilder::RopeBuilder):
(JSC::JSRopeString::RopeBuilder::append):
(JSC::JSRopeString::RopeBuilder::release):
(JSC::JSRopeString::RopeBuilder::length):
(JSC::JSRopeString::JSRopeString):
(JSC::JSRopeString::finishCreation):
(JSC::JSRopeString::createNull):
(JSC::JSRopeString::create):
(JSC::JSString::value):
(JSC::JSString::tryGetValue):
(JSC::JSString::getIndex):
(JSC::jsStringBuilder):
* runtime/Operations.h:
(JSC::jsString):
(JSC::jsStringFromArguments):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115516
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
yael.aharon@nokia.com [Fri, 27 Apr 2012 23:48:57 +0000 (23:48 +0000)]
[Qt][WK2] Don't call syncRemoteContents from WebLayerTreeRenderer::paintToCurrentGLContext
https://bugs.webkit.org/show_bug.cgi?id=85088
Reviewed by Noam Rosenthal.
Remove the call to syncRemoteContents from WebLayerTreeRenderer::paintToCurrentGLContext,
since it was moved to QQuickWebPage::updatePaintNode.
To make sure that we always sync before painting, this patch also calls page->update()
when the viewport changes.
* UIProcess/API/qt/qquickwebview.cpp:
(QQuickWebViewFlickablePrivate::_q_contentViewportChanged):
* UIProcess/WebLayerTreeRenderer.cpp:
(WebKit::WebLayerTreeRenderer::paintToCurrentGLContext):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115515
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dpranke@chromium.org [Fri, 27 Apr 2012 23:31:58 +0000 (23:31 +0000)]
Mark tables/mozilla/other/slashlogo.html as SLOW
https://bugs.webkit.org/show_bug.cgi?id=85106
* platform/chromium/test_expectations.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115514
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jpfau@apple.com [Fri, 27 Apr 2012 23:27:01 +0000 (23:27 +0000)]
Disable RTF in JavaScript drag-and-drop
https://bugs.webkit.org/show_bug.cgi?id=76597
Reviewed by Maciej Stachowiak.
Source/WebCore:
Test: fast/events/drag-and-drop-subframe-dataTransfer.html
* platform/mac/ClipboardMac.mm:
(WebCore::cocoaTypeFromHTMLClipboardType):
LayoutTests:
* fast/events/drag-and-drop-subframe-dataTransfer-expected.txt: Added.
* fast/events/drag-and-drop-subframe-dataTransfer.html: Added.
* fast/events/resources/file-for-drag-and-drop-subframe-dataTransfer.html: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115513
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 27 Apr 2012 23:23:12 +0000 (23:23 +0000)]
[EFL] [DRT] Unskip passing tests related to editing commands
https://bugs.webkit.org/show_bug.cgi?id=84944
Unreviewed, unskip passing editing commands tests.
Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-04-27
* platform/efl/Skipped:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115511
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
scherkus@chromium.org [Fri, 27 Apr 2012 23:18:38 +0000 (23:18 +0000)]
Support video format yuv422p tests on different ports.
https://bugs.webkit.org/show_bug.cgi?id=82281
Patch by Shadi Khalek <shadi@chromium.org>
Reviewed by Eric Carlson.
* media/content/test_yuv420.mp4: Added.
* media/content/test_yuv420.ogv:
* media/content/test_yuv422.mp4: Added.
* media/content/test_yuv422.ogv:
* media/video-colorspace-yuv420.html:
* media/video-colorspace-yuv422.html:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115510
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jamesr@google.com [Fri, 27 Apr 2012 23:15:53 +0000 (23:15 +0000)]
[chromium] Separate IOSurface layer type from texture layers
https://bugs.webkit.org/show_bug.cgi?id=85030
Reviewed by Adrienne Walker.
Source/Platform:
Adds a new layer type for IOSurface backed layers, instead of sharing that functionality in
WebExternalTextureLayer. IOSurface backed layers do not share any other properties with external texture layers.
* Platform.gypi:
* chromium/public/WebExternalTextureLayer.h:
(WebExternalTextureLayer):
* chromium/public/WebIOSurfaceLayer.h:
(WebCore):
(WebKit):
(WebIOSurfaceLayer):
(WebKit::WebIOSurfaceLayer::WebIOSurfaceLayer):
(WebKit::WebIOSurfaceLayer::~WebIOSurfaceLayer):
Source/WebCore:
Adds a new layer type for IOSurface layers and pipes through a separate path through to rendering. IOSurface
layers are very simple - they have an IOSurface id and size, nothing else. All IOSurface layers are "flipped" in
our terminology.
* WebCore.gypi:
* platform/graphics/chromium/IOSurfaceLayerChromium.cpp:
(WebCore):
(WebCore::IOSurfaceLayerChromium::create):
(WebCore::IOSurfaceLayerChromium::IOSurfaceLayerChromium):
(WebCore::IOSurfaceLayerChromium::~IOSurfaceLayerChromium):
(WebCore::IOSurfaceLayerChromium::setIOSurfaceProperties):
(WebCore::IOSurfaceLayerChromium::createCCLayerImpl):
(WebCore::IOSurfaceLayerChromium::drawsContent):
(WebCore::IOSurfaceLayerChromium::pushPropertiesTo):
* platform/graphics/chromium/IOSurfaceLayerChromium.h:
(WebCore):
(IOSurfaceLayerChromium):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::drawIOSurfaceQuad):
(WebCore::LayerRendererChromium::cleanupSharedObjects):
* platform/graphics/chromium/LayerRendererChromium.h:
(LayerRendererChromium):
* platform/graphics/chromium/TextureLayerChromium.cpp:
(WebCore::TextureLayerChromium::TextureLayerChromium):
(WebCore::TextureLayerChromium::drawsContent):
(WebCore::TextureLayerChromium::pushPropertiesTo):
* platform/graphics/chromium/TextureLayerChromium.h:
(TextureLayerChromium):
* platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp:
(WebCore::CCIOSurfaceDrawQuad::create):
(WebCore::CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad):
* platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h:
(CCIOSurfaceDrawQuad):
* platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
(WebCore):
(WebCore::CCIOSurfaceLayerImpl::CCIOSurfaceLayerImpl):
(WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
(WebCore::CCIOSurfaceLayerImpl::willDraw):
(WebCore::CCIOSurfaceLayerImpl::appendQuads):
(WebCore::CCIOSurfaceLayerImpl::dumpLayerProperties):
(WebCore::CCIOSurfaceLayerImpl::didLoseContext):
(WebCore::CCIOSurfaceLayerImpl::setIOSurfaceProperties):
* platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.h:
(WebCore):
(CCIOSurfaceLayerImpl):
(WebCore::CCIOSurfaceLayerImpl::create):
* platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
(WebCore::CCTextureLayerImpl::CCTextureLayerImpl):
(WebCore::CCTextureLayerImpl::~CCTextureLayerImpl):
(WebCore::CCTextureLayerImpl::appendQuads):
(WebCore::CCTextureLayerImpl::didLoseContext):
* platform/graphics/chromium/cc/CCTextureLayerImpl.h:
(CCTextureLayerImpl):
Source/WebKit/chromium:
Update WebPluginContainerImpl to support having either a texture or IOSurface layer (but never both) depending
on the plugin's contents.
* WebKit.gyp:
* src/WebExternalTextureLayer.cpp:
* src/WebIOSurfaceLayer.cpp:
(WebKit):
(WebKit::WebIOSurfaceLayer::create):
(WebKit::WebIOSurfaceLayer::setIOSurfaceProperties):
(WebKit::WebIOSurfaceLayer::WebIOSurfaceLayer):
* src/WebPluginContainerImpl.cpp:
(WebKit::WebPluginContainerImpl::setBackingTextureId):
(WebKit::WebPluginContainerImpl::setBackingIOSurfaceId):
(WebKit::WebPluginContainerImpl::commitBackingTexture):
(WebKit::WebPluginContainerImpl::setOpaque):
(WebKit::WebPluginContainerImpl::platformLayer):
(WebKit::WebPluginContainerImpl::WebPluginContainerImpl):
* src/WebPluginContainerImpl.h:
(WebPluginContainerImpl):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115509
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dglazkov@chromium.org [Fri, 27 Apr 2012 23:13:02 +0000 (23:13 +0000)]
[Chromium] fast/js/dfg-uint32array.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=85090
* platform/chromium/test_expectations.txt: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115508
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dglazkov@chromium.org [Fri, 27 Apr 2012 23:09:04 +0000 (23:09 +0000)]
Mark svg/as-image/svg-as-relative-image-with-explicit-size.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=85107
* platform/chromium/test_expectations.txt: Registered flakiness.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115507
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 27 Apr 2012 23:08:10 +0000 (23:08 +0000)]
[BlackBerry] OpenGL related bug fixes
https://bugs.webkit.org/show_bug.cgi?id=84836
Patch by Arvid Nilsson <anilsson@rim.com> on 2012-04-27
Reviewed by Antonio Gomes.
PR147254, 148933, 149117, 149721, 150228
No new tests, covered by existing BlackBerry browser stress tests
* platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:
(WebCore::CanvasLayerWebKitThread::updateTextureContentsIfNeeded):
* platform/graphics/blackberry/LayerCompositingThread.cpp:
(WebCore::LayerCompositingThread::drawTextures):
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::~LayerRenderer):
(WebCore::LayerRenderer::drawLayers):
(WebCore::LayerRenderer::initializeSharedGLObjects):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115506
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dglazkov@chromium.org [Fri, 27 Apr 2012 23:06:46 +0000 (23:06 +0000)]
Mark tables/mozilla/other/slashlogo.html as flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=85106
* platform/chromium/test_expectations.txt: Marked.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115505
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dglazkov@chromium.org [Fri, 27 Apr 2012 23:03:52 +0000 (23:03 +0000)]
[Chromium] Remove remaining mentions of platform/mac-leopard.
* platform/chromium/test_expectations.txt: Removed.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115504
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
nduca@chromium.org [Fri, 27 Apr 2012 22:34:46 +0000 (22:34 +0000)]
Source/WebCore: Implement high-resolution time via window.performance.webkitNow()
https://bugs.webkit.org/show_bug.cgi?id=66684
This implements the high resolution time spec from
http://www.w3.org/TR/hr-time/, giving javascript access to
sub-millisecond timestamps that increase over time instead of being
subject to skewing, for example when the host machine's clock changes.
Reviewed by Tony Gentilcore.
Test: fast/performance/performance-now-timestamps.html
* page/Performance.cpp:
(WebCore::Performance::now):
(WebCore):
* page/Performance.h:
(Performance):
* page/Performance.idl:
LayoutTests: Implement high-resolution time via window.performance.now()
https://bugs.webkit.org/show_bug.cgi?id=66684
This implements the high resolution time spec from
http://www.w3.org/TR/hr-time/, giving javascript access to
sub-millisecond timestamps that increase over time instead of being
subject to skewing, for example when the host machine's clock changes.
Reviewed by Tony Gentilcore.
* fast/dom/Window/window-properties-performance-expected.txt:
* fast/performance/performance-now-timestamps-expected.txt: Added.
* fast/performance/performance-now-timestamps.html: Added.
* fast/performance/script-tests/TEMPLATE.html: Added.
* fast/performance/script-tests/performance-now-timestamps.js: Added.
(busyWait):
* platform/qt/fast/dom/Window/window-properties-performance-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115503
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
tony@chromium.org [Fri, 27 Apr 2012 22:30:39 +0000 (22:30 +0000)]
remove LayoutTests/platform/mac-leopard
https://bugs.webkit.org/show_bug.cgi?id=84999
These results are no longer used by any ports.
* platform/mac-leopard: Removed.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115502
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mrowe@apple.com [Fri, 27 Apr 2012 22:14:49 +0000 (22:14 +0000)]
<rdar://problem/
11339645> WebKit projects should explicitly ask for dSYM files in production builds
Rubber-stamped by Dan Bernstein.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115501
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 27 Apr 2012 22:11:56 +0000 (22:11 +0000)]
[chromium] make case of npTestNetscapePlugIn.dll match case in copy rule
https://bugs.webkit.org/show_bug.cgi?id=85083
Patch by Scott Graham <scottmg@chromium.org> on 2012-04-27
Reviewed by Dirk Pranke.
Make output product_name for npTestNetscapePlugIn.dll match the case
of the copy_TestNetscapePlugIn rule. This is required for ninja, which
is more particular about case matching in rules than the VS build.
* DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115500
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 27 Apr 2012 22:02:23 +0000 (22:02 +0000)]
[EFL] Several media layout tests need rebaselining
https://bugs.webkit.org/show_bug.cgi?id=84943
Unreviewed, rebaseline EFL media layout tests due to r114957.
Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-04-27
* platform/efl/media/media-controls-clone-expected.txt:
* platform/efl/media/video-empty-source-expected.txt:
* platform/efl/media/video-zoom-controls-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115499
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 27 Apr 2012 21:55:29 +0000 (21:55 +0000)]
If you get a list of DOMWrapperWorld*'s and then plan to allocate in the heap, you should ref
the DOMWrapperWorld*'s
https://bugs.webkit.org/show_bug.cgi?id=85098
<rdar://problem/
11318170>
Reviewed by Sam Weinig.
No new tests because this addresses hard-to-repro flaky behavior arising from GCs at inconvenient
times.
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::getAllWorlds):
* bindings/js/ScriptController.h:
(ScriptController):
* bindings/js/WebCoreJSClientData.h:
(WebCore::WebCoreJSClientData::getAllWorlds):
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::getAllWorlds):
* bindings/v8/ScriptController.h:
(ScriptController):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchDidClearWindowObjectsInAllWorlds):
(WebCore::FrameLoader::dispatchGlobalObjectAvailableInAllWorlds):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115498
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Fri, 27 Apr 2012 21:47:49 +0000 (21:47 +0000)]
Fixed accidental ';' in ChangeLog
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115497
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ggaren@apple.com [Fri, 27 Apr 2012 21:46:11 +0000 (21:46 +0000)]
;2012-04-27 Geoffrey Garen <ggaren@apple.com>
Removed the sole use of Weak<Unknown>
https://bugs.webkit.org/show_bug.cgi?id=85099
Reviewed by Sam Weinig.
The semantics and implementation of Weak<Unknown> are unclear because:
- Should you call a finalizer for a non-GC thingy? If so, when?
* Possible answer: No.
- If WeakImpls for GC thingies live with the GC thingies in the
heap, where do WeakImpls for non-GC thingies live?
* Possible answer: Directly in the Weak<T>.
Since no clients actually want these behaviors, it's hard to tell if
they're the right behaviors, and it's not worth the implementation
complexity. If we come up with a client that wants these behaviors, we
can always revisit this.
* bindings/js/JSNodeFilterCondition.cpp:
(WebCore::JSNodeFilterCondition::JSNodeFilterCondition): Just leave our
filter NULL if it's not an object -- that's a better way to indicate
"not a valid filter object".
(WebCore::JSNodeFilterCondition::acceptNode): Fixed up some naming to
clarify that the object we're working with is not necessarily a function.
* bindings/js/JSNodeFilterCondition.h:
(JSNodeFilterCondition): Use Weak<JSObject>, since that more closely
matches what we're trying to do.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115496
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
haraken@chromium.org [Fri, 27 Apr 2012 21:38:39 +0000 (21:38 +0000)]
[V8] Pass Isolate to getDOMXXXMap()
https://bugs.webkit.org/show_bug.cgi?id=85022
Reviewed by Nate Chapin.
The objective is to pass Isolate around in V8 bindings.
This patch passes Isolate to getDOMXXXMap().
Also this patch removes DOMMap::getDOMDataStore() and
DOMData::getDefalutStore(), since the indirection by the
methods is redundant. This is not for performance
optimization but just for refactoring.
No tests. No change in behavior.
* bindings/v8/DOMData.cpp:
(WebCore::DOMData::getCurrentStore):
* bindings/v8/DOMData.h:
(DOMData):
* bindings/v8/V8DOMMap.cpp:
(WebCore::getDOMNodeMap):
(WebCore::getActiveDOMNodeMap):
(WebCore::getDOMObjectMap):
(WebCore::getActiveDOMObjectMap):
(WebCore::removeAllDOMObjects):
* bindings/v8/V8DOMMap.h:
(WebCore):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115495
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
haraken@chromium.org [Fri, 27 Apr 2012 21:36:19 +0000 (21:36 +0000)]
[V8] Pass Isolate to V8BindingPerIsolateData::current()
https://bugs.webkit.org/show_bug.cgi?id=85023
Reviewed by Nate Chapin.
The objective is to pass Isolate around in V8 bindings.
This patch passes Isolate to V8BindingPerIsolateData::current().
No tests. No change in behavior.
* bindings/v8/V8Binding.h:
(WebCore::V8BindingPerIsolateData::current):
(WebCore::v8ExternalString):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@115494
268f45cc-cd09-0410-ab3c-
d52691b4dbfc