Diff
Modified: branches/chromium/1084/Source/WebCore/ChangeLog (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/ChangeLog 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/ChangeLog 2012-03-28 19:28:57 UTC (rev 112426)
@@ -1,142 +1,3 @@
-2012-03-27 Dana Jansens <[email protected]>
-
- [chromium] Rename opaqueContentsRegion() to visibleContentOpaqueRegion()
- https://bugs.webkit.org/show_bug.cgi?id=81689
-
- Reviewed by Adrienne Walker.
-
- The return value from this function is a region of opaque pixels in the
- layer's content space that intersect with its visible rect. Rather than
- adding a comment to this effect, renaming the method to make it clear.
-
- * platform/graphics/chromium/LayerChromium.h:
- (WebCore::LayerChromium::visibleContentOpaqueRegion):
- * platform/graphics/chromium/TiledLayerChromium.cpp:
- (WebCore::TiledLayerChromium::visibleContentOpaqueRegion):
- * platform/graphics/chromium/TiledLayerChromium.h:
- * platform/graphics/chromium/cc/CCLayerImpl.h:
- (WebCore::CCLayerImpl::visibleContentOpaqueRegion):
- * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
- (WebCore::computeOcclusionBehindLayer):
- * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
- (WebCore::CCTiledLayerImpl::visibleContentOpaqueRegion):
- * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
- (CCTiledLayerImpl):
-
-2012-03-27 James Robinson <[email protected]>
-
- Scrollable plugins not registered properly in ScrollingCoordinator
- https://bugs.webkit.org/show_bug.cgi?id=82163
-
- Reviewed by Anders Carlsson.
-
- Whenever a ScrollableArea is added or removed from a FrameView's ScrollableAreaSet, we have to recalculate the
- nonFastScrollableRegion. This can happen for certain types of plugins that are scrollable.
-
- This also reverts 112142 which was a not quite right way to handle these plugins.
-
- * page/FrameView.cpp:
- (WebCore::FrameView::addScrollableArea):
- (WebCore::FrameView::removeScrollableArea):
- * page/scrolling/ScrollingCoordinator.cpp:
- (WebCore::computeNonFastScrollableRegion):
- (WebCore::ScrollingCoordinator::frameViewScrollableAreasDidChange):
- (WebCore):
- * page/scrolling/ScrollingCoordinator.h:
- (ScrollingCoordinator):
- * plugins/PluginViewBase.h:
-
-2012-03-27 Adam Klein <[email protected]>
-
- Hold a reference to refChild in insertBefore before calling collectChildrenAndRemoveFromOldParent
- https://bugs.webkit.org/show_bug.cgi?id=82377
-
- Reviewed by Ryosuke Niwa.
-
- This fixes a regression from r111925.
-
- Test: fast/dom/insertBefore-refChild-crash.html
-
- * dom/ContainerNode.cpp:
- (WebCore::ContainerNode::insertBefore): Move the 'next' RefPtr above the call to
- collectChildrenAndRemoveFromOldParent and rename refChildPreviousSibling
- to 'prev' (matching appendChild and replaceChild).
-
-2012-03-27 Ryosuke Niwa <[email protected]>
-
- cssText should not generate literal 'initial' in shorthand properties
- https://bugs.webkit.org/show_bug.cgi?id=82364
-
- Reviewed by Antti Koivisto.
-
- Fixed the bug by treating initial value as if the value is not set.
- While this is incorrect for properties that inherits by default,
- it's strictly better than generating unparsable value as we do today.
-
- The proper fix is for CSSInitialValue::cssText to fetch the respective
- default value from what's currently in CSSStyleSelector code but that requires
- a considerable amount of refactoring and work.
-
- * css/StylePropertySet.cpp:
- (WebCore::StylePropertySet::getShorthandValue):
- (WebCore::StylePropertySet::getCommonValue):
-
-2012-03-26 Adam Klein <[email protected]>
-
- Always set V8 wrappers via V8DOMWrapper::setJSWrapperFor* instead of WeakReferenceMap::set()
- https://bugs.webkit.org/show_bug.cgi?id=82256
-
- Reviewed by Adam Barth.
-
- This moves leakRef() calls out of generated code, centralizing them in
- V8DOMWrapper implementation. Ideally, WeakReferenceMap::set would take
- PassRefPtrs, but that's tricky given that some WeakReferenceMap's KeyType is 'void'
- (which clearly can't be wrapped in a PassRefPtr).
-
- Updated binding tests to reflect changes in CodeGeneratorV8.pm, no change in behavior.
-
- Relanding r112207 with setJSWrapperForDOMSVGElementInstance defined
- out-of-line to avoid SVG header dependencies.
-
- * bindings/scripts/CodeGeneratorV8.pm:
- (GenerateConstructorCallback): Use GetDomMapFunction instead of custom logic.
- (GenerateNamedConstructorCallback): ditto.
- (GenerateToV8Converters): Call V8DOMWrapper::setJSWrapper* method
- instead of directly accessing the wrapper maps and calling set.
- (GetDomMapFunction): Refactored to call new GetDomWrapperMapName function.
- (GetDomWrapperMapName): Helper pulled out of GetDomMapFunction.
- * bindings/scripts/test/V8/V8Float64Array.cpp:
- (WebCore::V8Float64Array::wrapSlow):
- * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
- (WebCore::V8TestActiveDOMObject::wrapSlow):
- * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
- (WebCore::V8TestCustomNamedGetter::wrapSlow):
- * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
- (WebCore::V8TestEventConstructor::wrapSlow):
- * bindings/scripts/test/V8/V8TestEventTarget.cpp:
- (WebCore::V8TestEventTarget::wrapSlow):
- * bindings/scripts/test/V8/V8TestInterface.cpp:
- (WebCore::V8TestInterface::wrapSlow):
- * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
- (WebCore::V8TestMediaQueryListListener::wrapSlow):
- * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
- (WebCore::V8TestNamedConstructor::wrapSlow):
- * bindings/scripts/test/V8/V8TestObj.cpp:
- (WebCore::V8TestObj::wrapSlow):
- * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
- (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
- * bindings/v8/V8DOMWrapper.cpp: Moved setJSWrapperForDOMNode method to header to inline it.
- (WebCore::V8DOMWrapper::setJSWrapperForDOMSVGElementInstance): New helper method for SVGElementInstances.
- Not inline to avoid header dependency on SVGElementInstance.h.
- * bindings/v8/V8DOMWrapper.h:
- (V8DOMWrapper):
- (WebCore::V8DOMWrapper::setJSWrapperForDOMObject): Made inline.
- (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject): ditto.
- (WebCore::V8DOMWrapper::setJSWrapperForDOMNode): Refactored into two methods;
- this one handles non-active Nodes.
- (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode): Pulled out of previouse
- DOMNode method, now handles only active Nodes.
-
2012-03-27 Levi Weintraub <[email protected]>
Correct LayoutUnit usage in virtual function layoutBlock in RenderFlexibleBox
Modified: branches/chromium/1084/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm 2012-03-28 19:28:57 UTC (rev 112426)
@@ -1752,7 +1752,13 @@
push(@implContent, " goto fail;\n");
}
- my $DOMObject = GetDomWrapperMapName($dataNode, $implClassName);
+ my $DOMObject = "DOMObject";
+ if (IsNodeSubType($dataNode)) {
+ $DOMObject = "DOMNode";
+ } elsif ($dataNode->extendedAttributes->{"ActiveDOMObject"}) {
+ $DOMObject = "ActiveDOMObject";
+ }
+
push(@implContent, <<END);
V8DOMWrapper::setDOMWrapper(wrapper, &info, impl.get());
@@ -1926,7 +1932,14 @@
push(@implContent, " goto fail;\n");
}
- my $DOMObject = GetDomWrapperMapName($dataNode, $implClassName);
+ my $DOMObject = "DOMObject";
+ # A DOMObject that is an ActiveDOMObject and also a DOMNode should be treated as an DOMNode here.
+ # setJSWrapperForDOMNode() will look if node is active and choose correct map to add node to.
+ if (IsNodeSubType($dataNode)) {
+ $DOMObject = "DOMNode";
+ } elsif ($dataNode->extendedAttributes->{"ActiveDOMObject"}) {
+ $DOMObject = "ActiveDOMObject";
+ }
push(@implContent, <<END);
V8DOMWrapper::setDOMWrapper(wrapper, &V8${implClassName}Constructor::info, impl.get());
@@ -3080,7 +3093,7 @@
my $className = shift;
my $nativeType = shift;
- my $domMapName = GetDomWrapperMapName($dataNode, $interfaceName);
+ my $domMapFunction = GetDomMapFunction($dataNode, $interfaceName);
my $forceNewObjectInput = IsDOMNodeType($interfaceName) ? ", bool forceNewObject" : "";
my $forceNewObjectCall = IsDOMNodeType($interfaceName) ? ", forceNewObject" : "";
my $wrapSlowArgumentType = GetPassRefPtrType($nativeType);
@@ -3169,7 +3182,7 @@
END
}
push(@implContent, <<END);
- V8DOMWrapper::setJSWrapperFor${domMapName}(impl, wrapperHandle);
+ ${domMapFunction}.set(impl.leakRef(), wrapperHandle);
return wrapper;
}
END
@@ -3177,19 +3190,13 @@
sub GetDomMapFunction
{
- my $mapName = GetDomWrapperMapName(@_);
- return "get${mapName}Map()";
-}
-
-sub GetDomWrapperMapName
-{
my $dataNode = shift;
my $type = shift;
- return "DOMSVGElementInstance" if $type eq "SVGElementInstance";
- return "ActiveDOMNode" if (IsNodeSubType($dataNode) && $dataNode->extendedAttributes->{"ActiveDOMObject"});
- return "DOMNode" if (IsNodeSubType($dataNode));
- return "ActiveDOMObject" if $dataNode->extendedAttributes->{"ActiveDOMObject"};
- return "DOMObject";
+ return "getDOMSVGElementInstanceMap()" if $type eq "SVGElementInstance";
+ return "getActiveDOMNodeMap()" if (IsNodeSubType($dataNode) && $dataNode->extendedAttributes->{"ActiveDOMObject"});
+ return "getDOMNodeMap()" if (IsNodeSubType($dataNode));
+ return "getActiveDOMObjectMap()" if $dataNode->extendedAttributes->{"ActiveDOMObject"};
+ return "getDOMObjectMap()";
}
sub GetNativeTypeForConversions
Modified: branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8Float64Array.cpp 2012-03-28 19:28:57 UTC (rev 112426)
@@ -132,7 +132,7 @@
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
+ getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
return wrapper;
}
Modified: branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp 2012-03-28 19:28:57 UTC (rev 112426)
@@ -188,7 +188,7 @@
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
+ getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
return wrapper;
}
Modified: branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp 2012-03-28 19:28:57 UTC (rev 112426)
@@ -122,7 +122,7 @@
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
+ getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
return wrapper;
}
Modified: branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestEventConstructor.cpp 2012-03-28 19:28:57 UTC (rev 112426)
@@ -157,7 +157,7 @@
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
+ getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
return wrapper;
}
Modified: branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestEventTarget.cpp 2012-03-28 19:28:57 UTC (rev 112426)
@@ -185,7 +185,7 @@
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
+ getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
return wrapper;
}
Modified: branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestInterface.cpp 2012-03-28 19:28:57 UTC (rev 112426)
@@ -317,7 +317,7 @@
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- V8DOMWrapper::setJSWrapperForActiveDOMObject(impl, wrapperHandle);
+ getActiveDOMObjectMap().set(impl.leakRef(), wrapperHandle);
return wrapper;
}
Modified: branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp 2012-03-28 19:28:57 UTC (rev 112426)
@@ -122,7 +122,7 @@
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
+ getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
return wrapper;
}
Modified: branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestNamedConstructor.cpp 2012-03-28 19:28:57 UTC (rev 112426)
@@ -166,7 +166,7 @@
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- V8DOMWrapper::setJSWrapperForActiveDOMObject(impl, wrapperHandle);
+ getActiveDOMObjectMap().set(impl.leakRef(), wrapperHandle);
return wrapper;
}
Modified: branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp 2012-03-28 19:28:57 UTC (rev 112426)
@@ -2172,7 +2172,7 @@
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
+ getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
return wrapper;
}
Modified: branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp 2012-03-28 19:28:57 UTC (rev 112426)
@@ -288,7 +288,7 @@
if (!hasDependentLifetime)
wrapperHandle.MarkIndependent();
- V8DOMWrapper::setJSWrapperForDOMObject(impl, wrapperHandle);
+ getDOMObjectMap().set(impl.leakRef(), wrapperHandle);
return wrapper;
}
Modified: branches/chromium/1084/Source/WebCore/bindings/v8/V8DOMWrapper.cpp (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/v8/V8DOMWrapper.cpp 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/v8/V8DOMWrapper.cpp 2012-03-28 19:28:57 UTC (rev 112426)
@@ -36,7 +36,6 @@
#include "EventTargetHeaders.h"
#include "EventTargetInterfaces.h"
#include "FrameLoaderClient.h"
-#include "SVGElementInstance.h"
#include "StylePropertySet.h"
#include "V8AbstractEventListener.h"
#include "V8Binding.h"
@@ -67,13 +66,14 @@
namespace WebCore {
-#if ENABLE(SVG)
-void V8DOMWrapper::setJSWrapperForDOMSVGElementInstance(PassRefPtr<SVGElementInstance> element, v8::Persistent<v8::Object> wrapper)
+void V8DOMWrapper::setJSWrapperForDOMNode(PassRefPtr<Node> node, v8::Persistent<v8::Object> wrapper)
{
ASSERT(maybeDOMWrapper(wrapper));
- getDOMSVGElementInstanceMap().set(element.leakRef(), wrapper);
+ if (node->isActiveNode())
+ getActiveDOMNodeMap().set(node.leakRef(), wrapper);
+ else
+ getDOMNodeMap().set(node.leakRef(), wrapper);
}
-#endif
v8::Local<v8::Function> V8DOMWrapper::getConstructor(WrapperTypeInfo* type, v8::Handle<v8::Value> objectPrototype)
{
Modified: branches/chromium/1084/Source/WebCore/bindings/v8/V8DOMWrapper.h (112425 => 112426)
--- branches/chromium/1084/Source/WebCore/bindings/v8/V8DOMWrapper.h 2012-03-28 19:25:02 UTC (rev 112425)
+++ branches/chromium/1084/Source/WebCore/bindings/v8/V8DOMWrapper.h 2012-03-28 19:28:57 UTC (rev 112426)
@@ -110,10 +110,6 @@
template<typename T> static void setJSWrapperForDOMObject(PassRefPtr<T>, v8::Persistent<v8::Object>);
template<typename T> static void setJSWrapperForActiveDOMObject(PassRefPtr<T>, v8::Persistent<v8::Object>);
static void setJSWrapperForDOMNode(PassRefPtr<Node>, v8::Persistent<v8::Object>);
- static void setJSWrapperForActiveDOMNode(PassRefPtr<Node>, v8::Persistent<v8::Object>);
-#if ENABLE(SVG)
- static void setJSWrapperForDOMSVGElementInstance(PassRefPtr<SVGElementInstance>, v8::Persistent<v8::Object>);
-#endif
static bool isValidDOMObject(v8::Handle<v8::Value>);
@@ -154,7 +150,7 @@
};
template<typename T>
- inline void V8DOMWrapper::setJSWrapperForDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper)
+ void V8DOMWrapper::setJSWrapperForDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper)
{
ASSERT(maybeDOMWrapper(wrapper));
ASSERT(!domWrapperType(wrapper)->toActiveDOMObjectFunction);
@@ -162,29 +158,12 @@
}
template<typename T>
- inline void V8DOMWrapper::setJSWrapperForActiveDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper)
+ void V8DOMWrapper::setJSWrapperForActiveDOMObject(PassRefPtr<T> object, v8::Persistent<v8::Object> wrapper)
{
ASSERT(maybeDOMWrapper(wrapper));
ASSERT(domWrapperType(wrapper)->toActiveDOMObjectFunction);
getActiveDOMObjectMap().set(object.leakRef(), wrapper);
}
-
- inline void V8DOMWrapper::setJSWrapperForDOMNode(PassRefPtr<Node> node, v8::Persistent<v8::Object> wrapper)
- {
- ASSERT(maybeDOMWrapper(wrapper));
- ASSERT(!domWrapperType(wrapper)->toActiveDOMObjectFunction);
- ASSERT(!node->isActiveNode());
- getDOMNodeMap().set(node.leakRef(), wrapper);
- }
-
- inline void V8DOMWrapper::setJSWrapperForActiveDOMNode(PassRefPtr<Node> node, v8::Persistent<v8::Object> wrapper)
- {
- ASSERT(maybeDOMWrapper(wrapper));
- ASSERT(domWrapperType(wrapper)->toActiveDOMObjectFunction);
- ASSERT(node->isActiveNode());
- getActiveDOMNodeMap().set(node.leakRef(), wrapper);
- }
-
} // namespace WebCore
#endif // V8DOMWrapper_h