mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-07 18:04:46 +00:00
Bug 1335368 part 22. Get rid of IsCallerChrome in geometry utils. r=dholbert
This commit is contained in:
parent
970a120fb5
commit
c9fc3601f5
@ -1268,36 +1268,43 @@ nsINode::GetEventTargetParent(EventChainPreVisitor& aVisitor)
|
||||
void
|
||||
nsINode::GetBoxQuads(const BoxQuadOptions& aOptions,
|
||||
nsTArray<RefPtr<DOMQuad> >& aResult,
|
||||
CallerType aCallerType,
|
||||
mozilla::ErrorResult& aRv)
|
||||
{
|
||||
mozilla::GetBoxQuads(this, aOptions, aResult, aRv);
|
||||
mozilla::GetBoxQuads(this, aOptions, aResult, aCallerType, aRv);
|
||||
}
|
||||
|
||||
already_AddRefed<DOMQuad>
|
||||
nsINode::ConvertQuadFromNode(DOMQuad& aQuad,
|
||||
const GeometryNode& aFrom,
|
||||
const ConvertCoordinateOptions& aOptions,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
return mozilla::ConvertQuadFromNode(this, aQuad, aFrom, aOptions, aRv);
|
||||
return mozilla::ConvertQuadFromNode(this, aQuad, aFrom, aOptions, aCallerType,
|
||||
aRv);
|
||||
}
|
||||
|
||||
already_AddRefed<DOMQuad>
|
||||
nsINode::ConvertRectFromNode(DOMRectReadOnly& aRect,
|
||||
const GeometryNode& aFrom,
|
||||
const ConvertCoordinateOptions& aOptions,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
return mozilla::ConvertRectFromNode(this, aRect, aFrom, aOptions, aRv);
|
||||
return mozilla::ConvertRectFromNode(this, aRect, aFrom, aOptions, aCallerType,
|
||||
aRv);
|
||||
}
|
||||
|
||||
already_AddRefed<DOMPoint>
|
||||
nsINode::ConvertPointFromNode(const DOMPointInit& aPoint,
|
||||
const GeometryNode& aFrom,
|
||||
const ConvertCoordinateOptions& aOptions,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
return mozilla::ConvertPointFromNode(this, aPoint, aFrom, aOptions, aRv);
|
||||
return mozilla::ConvertPointFromNode(this, aPoint, aFrom, aOptions,
|
||||
aCallerType, aRv);
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
@ -1882,19 +1882,23 @@ public:
|
||||
|
||||
void GetBoxQuads(const BoxQuadOptions& aOptions,
|
||||
nsTArray<RefPtr<DOMQuad> >& aResult,
|
||||
mozilla::ErrorResult& aRv);
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv);
|
||||
|
||||
already_AddRefed<DOMQuad> ConvertQuadFromNode(DOMQuad& aQuad,
|
||||
const TextOrElementOrDocument& aFrom,
|
||||
const ConvertCoordinateOptions& aOptions,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv);
|
||||
already_AddRefed<DOMQuad> ConvertRectFromNode(DOMRectReadOnly& aRect,
|
||||
const TextOrElementOrDocument& aFrom,
|
||||
const ConvertCoordinateOptions& aOptions,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv);
|
||||
already_AddRefed<DOMPoint> ConvertPointFromNode(const DOMPointInit& aPoint,
|
||||
const TextOrElementOrDocument& aFrom,
|
||||
const ConvertCoordinateOptions& aOptions,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv);
|
||||
|
||||
protected:
|
||||
|
@ -23,13 +23,13 @@ dictionary ConvertCoordinateOptions {
|
||||
|
||||
[NoInterfaceObject]
|
||||
interface GeometryUtils {
|
||||
[Throws, Func="nsINode::HasBoxQuadsSupport"]
|
||||
[Throws, Func="nsINode::HasBoxQuadsSupport", NeedsCallerType]
|
||||
sequence<DOMQuad> getBoxQuads(optional BoxQuadOptions options);
|
||||
[Throws, Pref="layout.css.convertFromNode.enabled"]
|
||||
[Throws, Pref="layout.css.convertFromNode.enabled", NeedsCallerType]
|
||||
DOMQuad convertQuadFromNode(DOMQuad quad, GeometryNode from, optional ConvertCoordinateOptions options);
|
||||
[Throws, Pref="layout.css.convertFromNode.enabled"]
|
||||
[Throws, Pref="layout.css.convertFromNode.enabled", NeedsCallerType]
|
||||
DOMQuad convertRectFromNode(DOMRectReadOnly rect, GeometryNode from, optional ConvertCoordinateOptions options);
|
||||
[Throws, Pref="layout.css.convertFromNode.enabled"]
|
||||
[Throws, Pref="layout.css.convertFromNode.enabled", NeedsCallerType]
|
||||
DOMPoint convertPointFromNode(DOMPointInit point, GeometryNode from, optional ConvertCoordinateOptions options);
|
||||
};
|
||||
|
||||
|
@ -235,14 +235,15 @@ FindTopLevelPresContext(nsPresContext* aPC)
|
||||
}
|
||||
|
||||
static bool
|
||||
CheckFramesInSameTopLevelBrowsingContext(nsIFrame* aFrame1, nsIFrame* aFrame2)
|
||||
CheckFramesInSameTopLevelBrowsingContext(nsIFrame* aFrame1, nsIFrame* aFrame2,
|
||||
CallerType aCallerType)
|
||||
{
|
||||
nsPresContext* pc1 = aFrame1->PresContext();
|
||||
nsPresContext* pc2 = aFrame2->PresContext();
|
||||
if (pc1 == pc2) {
|
||||
return true;
|
||||
}
|
||||
if (nsContentUtils::IsCallerChrome()) {
|
||||
if (aCallerType == CallerType::System) {
|
||||
return true;
|
||||
}
|
||||
if (FindTopLevelPresContext(pc1) == FindTopLevelPresContext(pc2)) {
|
||||
@ -254,6 +255,7 @@ CheckFramesInSameTopLevelBrowsingContext(nsIFrame* aFrame1, nsIFrame* aFrame2)
|
||||
void GetBoxQuads(nsINode* aNode,
|
||||
const dom::BoxQuadOptions& aOptions,
|
||||
nsTArray<RefPtr<DOMQuad> >& aResult,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
nsIFrame* frame = GetFrameForNode(aNode);
|
||||
@ -279,7 +281,8 @@ void GetBoxQuads(nsINode* aNode,
|
||||
aRv.Throw(NS_ERROR_DOM_NOT_FOUND_ERR);
|
||||
return;
|
||||
}
|
||||
if (!CheckFramesInSameTopLevelBrowsingContext(frame, relativeToFrame)) {
|
||||
if (!CheckFramesInSameTopLevelBrowsingContext(frame, relativeToFrame,
|
||||
aCallerType)) {
|
||||
aRv.Throw(NS_ERROR_DOM_NOT_FOUND_ERR);
|
||||
return;
|
||||
}
|
||||
@ -294,7 +297,8 @@ void GetBoxQuads(nsINode* aNode,
|
||||
static void
|
||||
TransformPoints(nsINode* aTo, const GeometryNode& aFrom,
|
||||
uint32_t aPointCount, CSSPoint* aPoints,
|
||||
const ConvertCoordinateOptions& aOptions, ErrorResult& aRv)
|
||||
const ConvertCoordinateOptions& aOptions,
|
||||
CallerType aCallerType, ErrorResult& aRv)
|
||||
{
|
||||
nsIFrame* fromFrame = GetFirstNonAnonymousFrameForGeometryNode(aFrom);
|
||||
nsWeakFrame weakFrame(fromFrame);
|
||||
@ -309,7 +313,7 @@ TransformPoints(nsINode* aTo, const GeometryNode& aFrom,
|
||||
aRv.Throw(NS_ERROR_DOM_NOT_FOUND_ERR);
|
||||
return;
|
||||
}
|
||||
if (!CheckFramesInSameTopLevelBrowsingContext(fromFrame, toFrame)) {
|
||||
if (!CheckFramesInSameTopLevelBrowsingContext(fromFrame, toFrame, aCallerType)) {
|
||||
aRv.Throw(NS_ERROR_DOM_NOT_FOUND_ERR);
|
||||
return;
|
||||
}
|
||||
@ -338,6 +342,7 @@ already_AddRefed<DOMQuad>
|
||||
ConvertQuadFromNode(nsINode* aTo, dom::DOMQuad& aQuad,
|
||||
const GeometryNode& aFrom,
|
||||
const dom::ConvertCoordinateOptions& aOptions,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
CSSPoint points[4];
|
||||
@ -349,7 +354,7 @@ ConvertQuadFromNode(nsINode* aTo, dom::DOMQuad& aQuad,
|
||||
}
|
||||
points[i] = CSSPoint(p->X(), p->Y());
|
||||
}
|
||||
TransformPoints(aTo, aFrom, 4, points, aOptions, aRv);
|
||||
TransformPoints(aTo, aFrom, 4, points, aOptions, aCallerType, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return nullptr;
|
||||
}
|
||||
@ -361,6 +366,7 @@ already_AddRefed<DOMQuad>
|
||||
ConvertRectFromNode(nsINode* aTo, dom::DOMRectReadOnly& aRect,
|
||||
const GeometryNode& aFrom,
|
||||
const dom::ConvertCoordinateOptions& aOptions,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
CSSPoint points[4];
|
||||
@ -369,7 +375,7 @@ ConvertRectFromNode(nsINode* aTo, dom::DOMRectReadOnly& aRect,
|
||||
points[1] = CSSPoint(x + w, y);
|
||||
points[2] = CSSPoint(x + w, y + h);
|
||||
points[3] = CSSPoint(x, y + h);
|
||||
TransformPoints(aTo, aFrom, 4, points, aOptions, aRv);
|
||||
TransformPoints(aTo, aFrom, 4, points, aOptions, aCallerType, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return nullptr;
|
||||
}
|
||||
@ -381,6 +387,7 @@ already_AddRefed<DOMPoint>
|
||||
ConvertPointFromNode(nsINode* aTo, const dom::DOMPointInit& aPoint,
|
||||
const GeometryNode& aFrom,
|
||||
const dom::ConvertCoordinateOptions& aOptions,
|
||||
CallerType aCallerType,
|
||||
ErrorResult& aRv)
|
||||
{
|
||||
if (aPoint.mW != 1.0 || aPoint.mZ != 0.0) {
|
||||
@ -388,7 +395,7 @@ ConvertPointFromNode(nsINode* aTo, const dom::DOMPointInit& aPoint,
|
||||
return nullptr;
|
||||
}
|
||||
CSSPoint point(aPoint.mX, aPoint.mY);
|
||||
TransformPoints(aTo, aFrom, 1, &point, aOptions, aRv);
|
||||
TransformPoints(aTo, aFrom, 1, &point, aOptions, aCallerType, aRv);
|
||||
if (aRv.Failed()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -28,6 +28,7 @@ class DOMPoint;
|
||||
struct DOMPointInit;
|
||||
class OwningTextOrElementOrDocument;
|
||||
class TextOrElementOrDocument;
|
||||
enum class CallerType : uint32_t;
|
||||
} // namespace dom
|
||||
|
||||
typedef dom::TextOrElementOrDocument GeometryNode;
|
||||
@ -40,24 +41,28 @@ typedef dom::OwningTextOrElementOrDocument OwningGeometryNode;
|
||||
void GetBoxQuads(nsINode* aNode,
|
||||
const dom::BoxQuadOptions& aOptions,
|
||||
nsTArray<RefPtr<dom::DOMQuad> >& aResult,
|
||||
dom::CallerType aCallerType,
|
||||
ErrorResult& aRv);
|
||||
|
||||
already_AddRefed<dom::DOMQuad>
|
||||
ConvertQuadFromNode(nsINode* aTo, dom::DOMQuad& aQuad,
|
||||
const GeometryNode& aFrom,
|
||||
const dom::ConvertCoordinateOptions& aOptions,
|
||||
dom::CallerType aCallerType,
|
||||
ErrorResult& aRv);
|
||||
|
||||
already_AddRefed<dom::DOMQuad>
|
||||
ConvertRectFromNode(nsINode* aTo, dom::DOMRectReadOnly& aRect,
|
||||
const GeometryNode& aFrom,
|
||||
const dom::ConvertCoordinateOptions& aOptions,
|
||||
dom::CallerType aCallerType,
|
||||
ErrorResult& aRv);
|
||||
|
||||
already_AddRefed<dom::DOMPoint>
|
||||
ConvertPointFromNode(nsINode* aTo, const dom::DOMPointInit& aPoint,
|
||||
const GeometryNode& aFrom,
|
||||
const dom::ConvertCoordinateOptions& aOptions,
|
||||
dom::CallerType aCallerType,
|
||||
ErrorResult& aRv);
|
||||
|
||||
} // namespace mozilla
|
||||
|
Loading…
Reference in New Issue
Block a user