This patch splits FontTableURI and BlobURL in 2 classes:
FontTableURIProtocolHandler and BlobURLProtocolHandler
both under mozilla::dom.
It also removes a memory reporter because that report is already covered by the
BlobURL one.
--HG--
rename : dom/file/nsHostObjectProtocolHandler.cpp => dom/file/BlobURLProtocolHandler.cpp
rename : dom/file/nsHostObjectProtocolHandler.h => dom/file/BlobURLProtocolHandler.h
Same approach as the other bug, mostly replacing automatically by removing
'using mozilla::Forward;' and then:
s/mozilla::Forward/std::forward/
s/Forward</std::forward</
The only file that required manual fixup was TestTreeTraversal.cpp, which had
a class called TestNodeForward with template parameters :)
MozReview-Commit-ID: A88qFG5AccP
This was done automatically replacing:
s/mozilla::Move/std::move/
s/ Move(/ std::move(/
s/(Move(/(std::move(/
Removing the 'using mozilla::Move;' lines.
And then with a few manual fixups, see the bug for the split series..
MozReview-Commit-ID: Jxze3adipUh
Just a cleanup patch, this function would be cleaner without the
nesting.
MozReview-Commit-ID: DD48E2HSQOL
--HG--
extra : rebase_source : 79cf6b3eee00149fa5993c10bd69649633307fee
extra : histedit_source : 1fde6b0291acddcf73569b2e43757030c38d9e69
This updates the not-really-correct code to flush the WR pipeline before
doing a readback. It now uses the flushing functions introduced in bug
1417784 to ensure things are flushed properly.
MozReview-Commit-ID: 90BZuLKcjUi
--HG--
extra : rebase_source : 2180aa0ac7ff7b46467e0c24094fcc99479120f7
This updates the GetTargetAPZC function to produce a
HitTestingTreeNodeAutoLock out-param instead of a
RefPtr<HitTestingTreeNode>, to ensure that the node can be used safely
in calling functions. It then propagates that change outward as needed,
which covers all the scrollbar dragging code.
MozReview-Commit-ID: 43K4eSECb4E
--HG--
extra : rebase_source : b34a880c6fd60069f7a4fa0527cbb5e903085356
This adds the HitTestingTreeNodeAutoLock RAII class that allows using
a HitTestingTreeNode safely outside a tree lock, and ensures that the
node won't get destroyed or recycled concurrently.
MozReview-Commit-ID: 8Tb3vdIeUgr
--HG--
extra : rebase_source : 6eed3e733edcaa4088da52882a9b3dc8c2355c2e
This patch makes three related changes:
- A non-functional change that factors a IsRecyclable function on
HitTestingTreeNode.
- A non-functional change that sprinkles proof-of-tree-lock arguments to
a few HitTestingTreeNode functions, to ensure at compile-time that they
can only be called while holding the tree lock.
- A functional change that stops clearing mLayersId in
HitTestingTreeNode::Destroy, so that if a node is non-recyclable, and
it gets Destroy()'d while other code still has a RefPtr to it, that
other code can still read the layers id off in a safe manner.
These changes provide a stronger set of checks around node recycling,
and allows for a safe mechanism to use a HitTestingTreeNode on the
controller thread without having to lock the entire APZ tree. The
mechanism is effectively a per-node lock, which will be added in the
next patch.
MozReview-Commit-ID: DBIjFDZJwhE
--HG--
extra : rebase_source : 318c27c4473e54b30a0393fca6c2fc76083036b2
We can easily use Maybe<DataSourceSurface::ScopedMap> instead of
allocated the map on the heap. This does require some minor changes to
ScopedMap to properly support moves, but should be much more efficient.