Граф коммитов

5378 Коммитов

Автор SHA1 Сообщение Дата
Nicholas Nethercote f5d9c8867c Bug 1488321 - Remove all traces of the "transaction" terminology in SHistory. r=nika.
This patch:

- removes GetTransactionAtIndex(), because getTransactionAtIndex() can be used
  instead;

- renames a lot of things;

- updates some comments.

--HG--
extra : rebase_source : 845a1c1d5fe7f84eaa03db39a344d98fd5784afd
2018-09-05 09:03:22 +10:00
Nicholas Nethercote 13643f64e8 Bug 1488321 - Fix up nsISHEntry.{index,getEntryAtIndex()}. r=nika
nsISHEntry.index is readonly, but if you pass `true` as getEntryAtIndex()'s
second argument, nsISHEntry.index will be modified. This is pretty gross.

This patch changes `index` so it's not readonly (because it's not!) and removes
getEntryAtIndex()'s second argument.

--HG--
extra : rebase_source : c519d77fcc1c3bda2f260b5888ce9cd0f6cfdab5
2018-09-05 09:02:37 +10:00
Nicholas Nethercote 54ca088229 Bug 1488321 - Remove nsISHTransaction. r=nika
Because it's a wafer-thin wrapper around nsISHEntry that just complicates
things.

This patch leaves behind a combination of "entry" and "transaction"
terminology. I'll fix that in a subsequent patch.

--HG--
extra : rebase_source : ca15187447bf3d93c65ed3980ead5bca958471be
2018-09-05 09:02:37 +10:00
Nicholas Nethercote b546759d02 Bug 1488321 - Move the `persist` attribute from nsISHTransaction to nsISHEntry. r=nika
This requires making nsISHEntry `builtinclass`.

--HG--
extra : rebase_source : 90e792ee35c01b0d90c52315e4cb6d85667c58fa
2018-09-05 09:02:37 +10:00
Nicholas Nethercote cd3fc14877 Bug 1488321 - Improve GetTransactionAtIndex() result checking. r=nika
Specifically:

- Check the nsresult consistently, but don't check (unnecessarily) for null on
  success.

- In AddEntry(), move GetTransactionAtIndex() before all state-changing
  operations, so we don't end up with partial state updates upon failure.

- Use early returns to reduce indenting.

--HG--
extra : rebase_source : 17815f6813f024fae1cf4ec3cf1b7985ab7a2ff2
2018-09-05 08:53:28 +10:00
Nicholas Nethercote b212c4a09a Bug 1488321 - Enforce non-nullness for nsISHTransaction.sHEntry. r=nika
In practice it's always non-null, and only half the places that deal with it
have null handling code. So this simplifies things.

--HG--
extra : rebase_source : 250b286b6b2c10aeb0c4486ebe13b1e071bf6c8a
2018-09-05 08:53:28 +10:00
Nicholas Nethercote 268dd7e600 Bug 1488321 - Make nsISHTransaction builtin and its attributes infallible. r=nika
--HG--
extra : rebase_source : 2a4068b80ea20b9c25cbb8239dfada992c758821
2018-08-28 12:00:44 +10:00
Nicholas Nethercote 3062776635 Bug 1488321 - Remove `currentIndex` in nsSHistory::AddEntry(). r=nika
It was used to protect against changes in mIndex by history listeners, but the
new code structure doesn't need it, because we want to use mIndex afterwards.

--HG--
extra : rebase_source : 74f0cc7f696b101b8e9d699790f2f2c141c5f51b
2018-09-04 14:00:45 +10:00
Ehsan Akhgari d37a149353 Bug 1488111 - Remove the XPCOM component registration for nsCommandManager; r=qdot
Differential Revision: https://phabricator.services.mozilla.com/D4834
2018-09-04 15:03:22 -04:00
Ehsan Akhgari 8ee774da84 Bug 1487396 - Part 1: Enable the secure browser UI object to keep track of the newly added content blocking states for each document; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D4809
2018-09-04 14:20:22 -04:00
Nicholas Nethercote 09a6eb41df Bug 1487328 - Make nsSHistory *not* implement nsIWebNavigation. r=nika
nsSHistory currently implements nsIWebNavigation, but only three of the methods
are actually used, and the rest call MOZ_CRASH. This patch removes the
inheritance and changes the implementations of those three methods (Reload(),
GetCurrentURI(), and GotoIndex()) to pure C++.

There is one test, bug662200_window.xul, that calls Reload() from JS, which is
no longer possible. Fortunately, nsSHistory::ReloadCurrentEntry() -- which *is*
available from JS -- is similar enough to Reload(0) that it can be used
instead.

(The only difference between Reload(0) and ReloadCurrentEntry() is that the
former triggers the `OnHistoryReload` notification and the latter triggers
`OnHistoryGotoIndex`, which doesn't matter for this test.)

--HG--
extra : rebase_source : 69dba04f14b1438f50f597f3d16b77225795f8a7
2018-09-03 09:27:37 +10:00
Nicholas Nethercote 70d22aa86a Bug 1487328 - Remove nsISHistoryListener.OnHistoryGo{Back,Forward}. r=nika
As per the previous commit, they are now subsumed by OnHistoryGotoIndex.

--HG--
extra : rebase_source : 627a32ed9378c7dd5364323183297933f90f9d72
2018-09-03 09:27:37 +10:00
Nicholas Nethercote 6347de0109 Bug 1487328 - Clarify which nsIWebNavigation methods in nsSHistory are unreachable. r=nika
The only ones that are reachable are GotoIndex(), GetCurrentURI(), and
Reload(). This patch makes all the others crash.

Note that the reason that Go{Back,Forward}() are unreachable is because of this
behaviour in ChildHistory::Go():

  // XXX(nika): Should we turn Go(-1) and Go(1) to call GoForward and GoBack?
  // They technically fire different change events but I couldn't find anyone
  // who cares, so I'm inclined not to.

I.e. those functions are now subsumed by GotoIndex().

As for CanGo{Back,Forward}(), a try push plus code inspection confirm that they
are unused.

--HG--
extra : rebase_source : 6509e635478f257be1271b51d352e0a9d81899ec
2018-09-03 09:27:37 +10:00
Nicholas Nethercote f369a978ca Bug 1487296 - Merge nsISHistoryInternal into nsISHistory. r=nika
With legacy add-ons gone, there is no benefit to keeping them separate.
2018-08-30 11:37:40 +10:00
Nicholas Nethercote 54524b264e Bug 1487296 - Fix nsIHistory.idl formatting. r=nika
Mostly:
- Fix indenting.
- Remove trailing whitespace.
- Use `aFoo` arguments.
2018-08-30 11:08:59 +10:00
Ciure Andrei db22ef8d8a Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-09-01 02:43:10 +03:00
Masayuki Nakano 9c349ade9b Bug 1487591 - Make Selection treat AccessibleCaretEventHub as concrete class rather than nsISelectionListener r=smaug
AccessibleCaretEventHub is an nsISelectionListener of Selection whose type is
"normal".  This is added only when nsFrameSelection::Init() is called and
accessible caret is enabled.  Additionally, nsFrameSelection::Init() is
always called immediately after creating nsFrameSelection.

Therefore, when AccessibleCaretEventHub is installed to Selection, this is
always second selection listener and won't be installed multiple times.  So,
Selection can store pointer of AccessibleCaretEventHub directly only when
it's enabled and the Selection needs to notify it of selection change.

This patch makes Selection stores AccessibleCaretEventHub with RefPtr, then,
makes Selection::NotifySelectionListeners() call its OnSelectionChange()
immediately after AutoCopyListener.

Unfortunately, this patch includes making of MOZ_CAN_RUN_SCRIPT_BOUNDARY and
MOZ_CAN_RUN_SCRIPT a lot since some methods of AccessibleCaretEventHub are
marked as MOZ_CAN_RUN_SCRIPT and including AccessibleCaretEventHub.h into
Selection.h causes compile the compile errors.

Differential Revision: https://phabricator.services.mozilla.com/D4733

--HG--
extra : moz-landing-system : lando
2018-08-31 21:19:44 +00:00
Boris Zbarsky 5a90b528ce Bug 1486932 part 2. Remove nsIDOMStorage. r=mccr8 2018-08-31 13:56:55 -04:00
Nicholas Nethercote 03f4d6c3ac Bug 1487541 - Keep mRequestedIndex in bounds in PurgeHistory(). r=me
--HG--
extra : rebase_source : 1488b7a2d3bab7e9a746ddd1fbf70a155cec3933
2018-08-31 16:25:32 +10:00
Nicholas Nethercote 1035277500 Bug 1486358 - Mark GetTransactionAtIndex() as NS_IMETHODIMP. r=me
Because of one this bug's earlier commits made it an XPIDL method.

--HG--
extra : rebase_source : d0e69d5c5eb1fd1caf0946872c8319029591fcc3
2018-08-31 15:32:14 +10:00
Nicholas Nethercote 796d9f80d3 Bug 1487333 - Remove nsIExternalSharingAppService. r=jchen
It's unused.

The patch also renames nsIExternalSharingAppService.idl as
nsISharingHandlerApp.idl, because the only thing left in the file is the
declaration of nsISharingHandlerApp.

--HG--
rename : uriloader/exthandler/nsIExternalSharingAppService.idl => uriloader/exthandler/nsISharingHandlerApp.idl
extra : rebase_source : c1375d75f3c824c9fadd4164201a7e78c7227020
2018-08-30 18:54:24 +10:00
arthur.iakab b401573dfe Merge mozilla-central to inbound 2018-08-30 07:38:35 +03:00
Gabriele Svelto 6bddc0a55e Bug 1486772 - Refactor the screen-orientation types and headers r=smaug
This patch removes the 'ScreenOrientationInternal' type from
dom/base/ScreenOrientation.h and moves it into the
HalScreenConfiguration.h header, renaming it simply to 'ScreenOrientation'
in the process. This has several knock-off effects:

- It allows files that needed ScreenOrientationInternal to include a much
  smaller header than before

- It greatly reduces the number of headers pulled in when including Hal.h

- It clarifies the role of the type. The 'Internal' part in the name had
  nothing to do with it being part of the implementation. The type was public
  and called that way only to avoid clashing with the 'ScreenOrientation'
  class. Since we moved it into a different namespace it can be renamed
  safely.

- It allows a file that was manually re-declaring 'ScreenConfigurationInternal'
  type to use the original one

- Finally this fixes a few files which were missing headers they actually
  required but that would still build because unified compilation put them into
  units that already had those headers thanks to ScreenConfiguration.h

Differential Revision: https://phabricator.services.mozilla.com/D4458

--HG--
extra : moz-landing-system : lando
2018-08-29 20:54:56 +00:00
Andreas Farre 82694e9ac3 Bug 1481238 - Create WebIDL interface for BrowsingContext. r=peterv
Expose Chrome only WebIDL to interface with BrowsingContext from
script. The API consists of parent, firstChild and nextSibling
attributes for BrowsingContext, and the browsingContext attribute for
Window.

--HG--
extra : rebase_source : 772d25e8b4e5526453545ddb2b1607845f3b65ea
2018-08-29 05:00:00 +03:00
Nicholas Nethercote cfd6ca43dd Bug 1486358 - Factor out shistory entry window code. r=nika
(It's worth noting that I had to fix one of these instances in the previous
patch, by adding a -1.)

--HG--
extra : rebase_source : ea45cd7dc59b6649f1b46a2c917def79538fcbe8
2018-08-28 12:00:41 +10:00
Andreas Farre d341a7e83a Bug 1481238 - Add tests for BrowsingContext. r=peterv
--HG--
extra : rebase_source : 2507a9b5398810cc39cd0aac0772f3f73c8d09ed
2018-08-28 02:41:00 +03:00
Nicholas Nethercote beb090da4a Bug 1486358 - Change nsISHistory's transactions list to an nsTArray. r=nika
- nsISHistoryInternal loses `rootTransaction`, and gains
  GetTransactionAtIndex(). (The implementing class `nsSHistory` already
  implemented a method by that method.)

- nsSHistory loses `mListRoot` in favour of `mTransactions`. It also loses
  `mLength`, because `mTransactions` tracks the length itself.

- nsISHTransaction.{prev,next} are no longer needed.

- nsISHTransaction.create() is no longer needed, because all it does now is set
  the SHEntry, and we can use SetSHEntry() for that.

Overall this deletes about 200 lines of code.

--HG--
extra : rebase_source : eac6334b653e04634baa86a0f4e3c8f07c06e560
2018-08-27 14:28:46 +10:00
Nicholas Nethercote 814d346fbe Bug 1486358 - Fix nsISHTransaction.idl's formatting.
By replacing tabs with spaces, and cleaning up the comments slightly.

--HG--
extra : rebase_source : dd122be19197614bf3a048b235eb857647456fde
2018-08-27 14:28:44 +10:00
Nicholas Nethercote ac5efebb4b Bug 1486690 - Remove unnecessary checks after moz_xmalloc() calls. r=glandium
There are surprisingly many of them.

(Plus a couple of unnecessary checks after `new` calls that were nearby.)

--HG--
extra : rebase_source : 47b6d5d7c5c99b1b50b396daf7a3b67abfd74fc1
2018-08-28 15:56:01 +10:00
Nicholas Nethercote 4e5b648b58 Bug 1486356 - Remove nsIWebNavigation.LOAD_FLAGS_DISALLOW_INHERIT_OWNER. r=nika
It's a no-longer-needed synonym for LOAD_FLAGS_DISALLOW_INHERIT_PRINCIPAL.

--HG--
extra : rebase_source : 290af53f6c09608e4679f322e705750914bb6061
2018-08-27 14:27:35 +10:00
Nicholas Nethercote f751b544bf Bug 1486356 - Remove the XPCOM component registration for nsSHTransaction. r=nika
--HG--
extra : rebase_source : 992dfc8d0c836f3adf499ca1974a70656ee11791
2018-08-27 14:27:34 +10:00
Nicholas Nethercote a4afa80372 Bug 1486356 - Remove nsISHistory.restoreToEntryAtIndex. r=nika
It's unused.

--HG--
extra : rebase_source : b687ecd1f02f6de141fe03b06b555d742d8f8887
2018-08-27 14:27:34 +10:00
Ehsan Akhgari 888504fd4c Bug 1485870 - Remove the XPCOM registration for nsSHTransaction; r=nika 2018-08-28 08:29:33 -04:00
Ehsan Akhgari 2d62042b5c Bug 1486092 - Part 1: Move the browser.contentblocking.enabled pref to StaticPrefs; r=baku 2018-08-27 09:22:01 -04:00
Kris Maglione 3a5c05e76f Bug 1484496: Part 5e - Convert remaining nsISimpleEnumerator users to use JS iteration. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D3733

--HG--
extra : rebase_source : c0fac176d7b3d840c4dbb14f8d95ccfc7f83a5a8
extra : histedit_source : a92c40117d0808a3ad68c972f622a7a42c9ae8ba
2018-08-18 18:13:14 -07:00
Kris Maglione 2dee0aae3c Bug 1484496: Part 4b - Add intrinsic type information to most nsSimpleEnumerators. r=froydnj
This allows JS callers to automatically get the correct types during
interation, without having to explicitly specify them.

Differential Revision: https://phabricator.services.mozilla.com/D3728

--HG--
extra : rebase_source : b708f382d8ea571d199c669bfed5b5a7ca9ffac4
extra : histedit_source : 7df6feb82088c8a5ca45dc28fe4d2b852c177fee
2018-08-18 21:06:32 -07:00
Kris Maglione 65c28aa0ad Bug 1484496: Part 2 - Add common base class for all nsISimpleEnumerator implementations. r=froydnj
In order to allow JS callers to use nsISimpleEnumerator instances with the JS
iteration protocol, we'll need to additional methods to every instance. Since
we currently have a large number of unrelated implementations, it would be
best if they could share the same implementation for the JS portion of the
protocol.

This patch adds a stub nsSimpleEnumerator base class, and updates all existing
implementations to inherit from it. A follow-up will add a new base interface
to this class, and implement the additional functionality required for JS
iteration.

Differential Revision: https://phabricator.services.mozilla.com/D3725

--HG--
extra : rebase_source : ad66d7b266856d5a750c772e4710679fab9434b1
extra : histedit_source : a83ebffbf2f0b191ba7de9007f73def6b9a955b8
2018-08-18 14:22:47 -07:00
Nicholas Nethercote 8cb0711355 Bug 1485279 - Merge nsISHContainer into nsISHEntry. r=qdot
nsSHEntry is the only class that instantiates those two interfaces, so the
separation is not useful. This lets us remove numerous pointless QIs.

--HG--
extra : rebase_source : 570b7ade669fb89a789184198bec9da186c5f1d3
2018-08-22 19:20:56 +10:00
Nicholas Nethercote d596237589 Bug 1485279 - Merge nsISHEntryInternal into nsISHEntry. r=qdot
nsSHEntry is the only class that instantiates those two interfaces, so the
separation is not useful. This lets us remove several pointless QIs.

The patch also removes RemoveFromBFCache{AS,S}ync, which are unused.

--HG--
extra : rebase_source : 84db7ec180c357ab8c762dc60efb5eed444ba514
2018-08-22 19:13:57 +10:00
James Willcox 89e3bb5c75 Bug 1480095 - Allow loading custom error pages via nsILoadURIDelegate r=esawin,bz,jchen
MozReview-Commit-ID: IhVC9nU60fy
2018-08-22 08:46:41 -05:00
Nicholas Nethercote 5ad84b56e2 Bug 1484944 - Remove nsSHEnumerator. r=qdot
--HG--
extra : rebase_source : 3f52fd7bf780e53631919a0f2e6925345b714517
2018-08-21 19:52:19 +10:00
Eliza Balazs e0f5c50037 Bug 1423959 - Disable browser_loadURI.js on linux and osx. r=jmaher 2018-08-17 05:53:00 -04:00
Kris Maglione f84c2cf454 Bug 1480244: Part 1c - Rename TabChildGlobal to TabChildMessageManager. r=bz
MozReview-Commit-ID: ECtFjFV7dZa

--HG--
extra : rebase_source : 50e64fa4da1099ca2bd9e14c8679bb87c354015e
2018-08-10 14:04:23 -07:00
Henri Sivonen 3edc601325 Bug 1402247 - Use encoding_rs for XPCOM string encoding conversions. r=Nika,erahm,froydnj.
Correctness improvements:

 * UTF errors are handled safely per spec instead of dangerously truncating
   strings.

 * There are fewer converter implementations.

Performance improvements:

 * The old code did exact buffer length math, which meant doing UTF math twice
   on each input string (once for length calculation and another time for
   conversion). Exact length math is more complicated when handling errors
   properly, which the old code didn't do. The new code does UTF math on the
   string content only once (when converting) but risks allocating more than
   once. There are heuristics in place to lower the probability of
   reallocation in cases where the double math avoidance isn't enough of a
   saving to absorb an allocation and memcpy.

 * Previously, in UTF-16 <-> UTF-8 conversions, an ASCII prefix was optimized
   but a single non-ASCII code point pessimized the rest of the string. The
   new code tries to get back on the fast ASCII path.

 * UTF-16 to Latin1 conversion guarantees less about handling of out-of-range
   input to eliminate an operation from the inner loop on x86/x86_64.

 * When assigning to a pre-existing string, the new code tries to reuse the
   old buffer instead of first releasing the old buffer and then allocating a
   new one.

 * When reallocating from the new code, the memcpy covers only the data that
   is part of the logical length of the old string instead of memcpying the
   whole capacity. (For old callers old excess memcpy behavior is preserved
   due to bogus callers. See bug 1472113.)

 * UTF-8 strings in XPConnect that are in the Latin1 range are passed to
   SpiderMonkey as Latin1.

New features:

 * Conversion between UTF-8 and Latin1 is added in order to enable faster
   future interop between Rust code (or otherwise UTF-8-using code) and text
   node and SpiderMonkey code that uses Latin1.

MozReview-Commit-ID: JaJuExfILM9
2018-08-14 14:43:42 +03:00
Margareta Eliza Balazs e53d398574 Merge inbound to mozilla-central. a=merge 2018-08-14 12:30:50 +03:00
Francois Marier 71239f0c25 Bug 1480450 - Honor browser.contentblocking.enabled in tracking protection. r=dimi!
Depends on D3131

Differential Revision: https://phabricator.services.mozilla.com/D3132

--HG--
extra : moz-landing-system : lando
2018-08-13 23:20:40 +00:00
Ciure Andrei 057ea5d560 Backed out 1 changesets (bug 1480450) for mochitest/test_trackingprotection_bug1157081.html failures CLOSED TREE
Backed out changeset 34d3b10c54eb (bug 1480450)
2018-08-13 22:45:37 +03:00
Francois Marier 47ba3463cd Bug 1480450 - Honor browser.contentblocking.enabled in tracking protection. r=dimi!
Depends on D3131

Differential Revision: https://phabricator.services.mozilla.com/D3132

--HG--
extra : moz-landing-system : lando
2018-08-13 14:54:10 +00:00
Ting-Yu Lin 48d02834a5 Bug 1482665 Part 2 - Remove nsPresContext::AppUnitsPerCSSPixel() and replace it with mozilla::AppUnitsPerCSSPixel(). r=dholbert
Differential Revision: https://phabricator.services.mozilla.com/D3155
2018-08-13 14:29:28 -07:00
Gabriele Svelto 15adf94f4d Bug 1348273 - Convert crash annotations into a machine-readable list of constants; r=ted.mielczarek,njn,dholbert,mak,cpearce,mcmanus,froydnj,Dexter,jrmuizel,jchen,jimm,bz,surkov
This introduces the machinery needed to generate crash annotations from a YAML
file. The relevant C++ functions are updated to take a typed enum. JavaScript
calls are unaffected but they will throw if the string argument does not
correspond to one of the known entries in the C++ enum. The existing whitelists
and blacklists of annotations are also generated from the YAML file and all
duplicate code related to them has been consolidated. Once written out to the
.extra file the annotations are converted in string form and are no different
than the existing ones.

All existing annotations have been included in the list (and some obsolete ones
have been removed) and all call sites have been updated including tests where
appropriate.

--HG--
extra : source : 4f6c43f2830701ec5552e08e3f1b06fe6d045860
2018-07-05 15:42:11 +02:00