Re: Include out of viewport frames in display list
[email protected] Thu, 21 Jul 2016 07:12:27 -0700 (PDT)
| Newsgroups | gmane.comp.mozilla.devel.layout |
|---|---|
| Message-ID | <[email protected]> |
I decided to improve the output of my function further.
The output I'm aiming for is like this:
{
"documentHeight": 539,
"documentWidth": 1436,
"levels": [
[
{
"nodeIndex": 0,
"x": 0,
"y": 0,
"w": 100,
"h": 200
},
{
"nodeIndex": 1,
"x": 0,
"y": 0,
"w": 300,
"h": 400
}
],
[
{
"nodeIndex": 2,
"x": 0,
"y": 0,
"w": 100,
"h": 200
},
{
"nodeIndex": 3,
"x": 0,
"y": 0,
"w": 300,
"h": 400
}
]
],
"nodes": [
"node1",
"node2",
"node3",
"node4"
]
}
After your previous comments I thought it would be straightforward, but I've been trying all day without success.
Somehow I have declared the dictionaries as protected?
This is what I have with the errors raised:
// in Document.webidl
dictionary myFunctionElementInfo {
required unsigned long nodeIndex;
required long x;
required long y;
required unsigned long w;
required unsigned long h;
};
dictionary myFunctionResultContainer {
required sequence<Node> nodes;
required sequence<sequence<myFunctionElementInfo>> levels;
required unsigned long documentWidth;
required unsigned long documentHeight;
};
// http://dev.w3.org/csswg/cssom-view/#extensions-to-the-document-interface
partial interface Document {
myFunctionResultContainer myFunction ();
};
0:15.57 /source/release/dom/base/nsDocument.cpp:3585:24: error: 'AppendElement' is a protected member of 'nsTArray_Impl<mozilla::OwningNonNull<nsINode>, nsTArrayFallibleAllocator>'
0:15.57 aResult.mNodes.AppendElement(node);
0:15.57 ~~~~~~~~~~~~~~~^~~~~~~~~~~~~
0:15.57 /build/dist/include/nsTArray.h:1589:14: note: declared protected here
0:15.57 elem_type* AppendElement(Item&& aItem)
0:15.57 ^
0:15.57 In file included from /build/dom/base/Unified_cpp_dom_base5.cpp:92:
0:15.57 /source/release/dom/base/nsDocument.cpp:3586:25: error: 'EnsureLengthAtLeast' is a protected member of 'nsTArray_Impl<mozilla::dom::Sequence<mozilla::dom::myFunctionElementInfo>, nsTArrayFallibleAllocator>'
0:15.57 aResult.mLevels.EnsureLengthAtLeast(level+1);
0:15.57 ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
0:15.57 /build/dist/include/nsTArray.h:1809:36: note: declared protected here
0:15.57 typename ActualAlloc::ResultType EnsureLengthAtLeast(size_type aMinLen)
0:15.57 ^
0:15.57 In file included from /build/dom/base/Unified_cpp_dom_base5.cpp:92:
0:15.57 /source/release/dom/base/nsDocument.cpp:3587:84: error: 'AppendElement' is a protected member of 'nsTArray_Impl<mozilla::dom::myFunctionElementInfo, nsTArrayFallibleAllocator>'
0:15.57 mozilla::dom::myFunctionElementInfo* e = aResult.mLevels.ElementAt(level).AppendElement();
0:15.57 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
0:15.57 /build/dist/include/nsTArray.h:1642:14: note: declared protected here
0:15.57 elem_type* AppendElement()
0:15.57 ^
0:16.49 /build/dist/include/nsTArray.h:527:34: error: no matching constructor for initialization of 'mozilla::OwningNonNull<nsINode>'
0:16.50 new (static_cast<void*>(aE)) E(mozilla::Forward<A>(aArg));
0:16.50 ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
0:16.50 /build/dist/include/nsTArray.h:1596:18: note: in instantiation of function template specialization 'nsTArrayElementTraits<mozilla::OwningNonNull<nsINode> >::Construct<nsIContent *&>' requested here
0:16.50 elem_traits::Construct(elem, mozilla::Forward<Item>(aItem));
0:16.50 ^
0:16.50 /source/release/dom/base/nsDocument.cpp:3585:24: note: in instantiation of function template specialization 'nsTArray_Impl<mozilla::OwningNonNull<nsINode>, nsTArrayFallibleAllocator>::AppendElement<nsIContent *&, nsTArrayFallibleAllocator>' requested here
0:16.50 aResult.mNodes.AppendElement(node);
0:16.50 ^
0:16.50 /build/dist/include/mozilla/OwningNonNull.h:23:16: note: candidate constructor not viable: no known conversion from 'nsIContent *' to 'nsINode &' for 1st argument; dereference the argument with *
0:16.50 MOZ_IMPLICIT OwningNonNull(T& aValue)
0:16.50 ^
0:16.50 /build/dist/include/mozilla/OwningNonNull.h:18:7: note: candidate constructor (the implicit move constructor) not viable: no known conversion from 'nsIContent *' to 'mozilla::OwningNonNull<nsINode>' for 1st argument
0:16.50 class OwningNonNull
0:16.50 ^
0:16.50 /build/dist/include/mozilla/OwningNonNull.h:18:7: note: candidate constructor (the implicit copy constructor) not viable: no known conversion from 'nsIContent *' to 'const mozilla::OwningNonNull<nsINode>' for 1st argument
0:16.50 class OwningNonNull
0:16.50 ^
0:16.50 /build/dist/include/mozilla/OwningNonNull.h:29:16: note: candidate template ignored: could not match 'already_AddRefed<type-parameter-0-0>' against 'nsIContent *'
0:16.50 MOZ_IMPLICIT OwningNonNull(already_AddRefed<U>&& aValue)
0:16.50 ^
0:16.50 /build/dist/include/mozilla/OwningNonNull.h:21:3: note: candidate constructor not viable: requires 0 arguments, but 1 was provided
0:16.50 OwningNonNull() {}
0:16.50 ^
0:16.62 4 errors generated.