Additionally, move some history tests to the history folder, split insertMany tests into their own test file.
Also, remove some no more needed android annotations, Firefox for Android doesn't use nor build Places anymore.
MozReview-Commit-ID: 6p4mazeUjsw
--HG--
rename : toolkit/components/places/tests/unit/test_async_history_api.js => toolkit/components/places/tests/history/test_async_history_api.js
rename : toolkit/components/places/tests/history/test_updatePlaces_sameUri_titleChanged.js => toolkit/components/places/tests/history/test_sameUri_titleChanged.js
extra : rebase_source : 1061f3ceb6dc20b9a94a39a7d400670ac45657d0
The MigrationUtils change is because 99% of the time we will only have
1 visit per URI, and so we spend silly amounts of time doing nothing.
Time spent in composing our undo structure went from ~800ms to ~550ms
with this change.
The other change just seemed obvious - when visits aren't recent,
we shouldn't add them to 'recently visited' lists, which seem to use
'time this function was called' as the time associated with an entry,
which is incorrect.
MozReview-Commit-ID: 2I0D5ApOCI7
--HG--
extra : rebase_source : 8032e6644337c6758bf5653ef0a149d4f39b0085
This sets a property on the callback object rather than passing an argument
to handleCompletion, to avoid accidentally breaking consumers who don't
expect arguments. The downside is that this required more changes to C++
consumers, but we control all of those so that seemed an acceptable
trade-off.
We should probably actually report errors for all the migrators, but I didn't
want to add risk (what if in some edge-case there are lots?) so I didn't. I'll
file a followup to update them to Cu.reportError() any errors.
MozReview-Commit-ID: Hue9Ci3hyVz
--HG--
extra : rebase_source : e853911e2ec8fe2e1273baa1f31fd557935ef896
When updating a large number of places, sending runnables to the main thread
for every single one of them whose frecency we update is not conducive to a
responsive UI. This only gets worse once more observers care about these
notifications (e.g. when the library is open).
To avoid this on startup when importing from other browsers, this patch adds
and uses an option to group the frecency notifications. Later patches will
also use the option to avoid other notifications where possible.
MozReview-Commit-ID: D5KqPDu86bo
--HG--
extra : rebase_source : ad5bbce40eaa802a6a88bc0c9a9c7026fd056598
The new name makes the sense of the condition much clearer. E.g. compare:
NS_WARN_IF_FALSE(!rv.Failed());
with:
NS_WARNING_ASSERTION(!rv.Failed());
The new name also makes it clearer that it only has effect in debug builds,
because that's standard for assertions.
--HG--
extra : rebase_source : 886e57a9e433e0cb6ed635cc075b34b7ebf81853
This patch removes checking of all the callback calls in memory reporter
CollectReport() functions, because it's not useful.
The patch also does some associated clean-up.
- Replaces some uses of nsIMemoryReporterCallback with the preferred
nsIHandleReportCallback typedef.
- Replaces aCallback/aCb/aClosure with aHandleRepor/aData for CollectReports()
parameter names, for consistency.
- Adds MOZ_MUST_USE/[must_use] in a few places in nsIMemoryReporter.idl.
- Uses the MOZ_COLLECT_REPORT macro in all suitable places.
Overall the patch reduces code size by ~300 lines and reduces the size of
libxul by about 37 KiB on my Linux64 builds.
--HG--
extra : rebase_source : e94323614bd10463a0c5134a7276238a7ca1cf23
The patch is generated from following command:
rgrep -l unused.h|xargs sed -i -e s,mozilla/unused.h,mozilla/Unused.h,
MozReview-Commit-ID: AtLcWApZfES
--HG--
rename : mfbt/unused.h => mfbt/Unused.h
This patch makes most Run() declarations in subclasses of nsIRunnable have the
same form: |NS_IMETHOD Run() override|.
As a result of these changes, I had to add |override| to a couple of other
functions to satisfy clang's -Winconsistent-missing-override warning.
--HG--
extra : rebase_source : 815d0018b0b13329bb5698c410f500dddcc3ee12
This aims at speeding up DELETE FROM moz_places like queries.
The primary reason of slowness is the FOR EACH ROW trigger that takes care of updating the moz_hosts table when places are removed.
Unfortunately Sqlite doesn't support FOR EACH STATEMENT triggers, that means the trigger will hit multiple times for pages in the same host.
The patch introduces an additional temp table to accumulate hosts during a delete, then a trigger takes care of updating moz_hosts only once per touched host, rather than once per removed place.
MozReview-Commit-ID: BlJRLQZoC07
--HG--
extra : rebase_source : 5715efe580348b3810000d67a0a692dece36d306
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout. The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.
CLOSED TREE makes big refactorings like this a piece of cake.
# The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
xargs perl -p -i -e '
s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
s/nsRefPtr ?</RefPtr</g; # handle declarations and variables
'
# Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h
# Handle nsRefPtr.h itself, a couple places that define constructors
# from nsRefPtr, and code generators specially. We do this here, rather
# than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
# things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
mfbt/nsRefPtr.h \
xpcom/glue/nsCOMPtr.h \
xpcom/base/OwningNonNull.h \
ipc/ipdl/ipdl/lower.py \
ipc/ipdl/ipdl/builtin.py \
dom/bindings/Codegen.py \
python/lldbutils/lldbutils/utils.py
# In our indiscriminate substitution above, we renamed
# nsRefPtrGetterAddRefs, the class behind getter_AddRefs. Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'
if [ -d .git ]; then
git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
The bulk of this commit was generated by running:
run-clang-tidy.py \
-checks='-*,llvm-namespace-comment' \
-header-filter=^/.../mozilla-central/.* \
-fix