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

308 Коммитов

Автор SHA1 Сообщение Дата
Sylvestre Ledru a1dce6440a Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-22 16:35:03 +00:00
Dave Townsend 2f0f64f3fb Bug 1529879: Block changing the profile list when another process has changed it. r=froydnj,Gijs,flod
On startup we record the size and modified time of the profile lists. If
changed we refuse to flush any new changes to disk. Also adds a getter to check
if they've changed so the UI can do something sensible.

All attempts to flush are now checked for success. In some cases in early
startup the failure mode isn't great, we just quit startup. The assumption
though is that it's extremely unlikely that the files will have changed on disk
in the time between when they are read and when profile selection occurs, likely
less than a second later.

The profile reset flow is changed to only delete the old profile and flush once
all the migration has completed, so if something fails the user gets back to
their old profile.

In testing I ended up having to fix bug 1522584 so background file deletions on
a background thread are safer.

I haven't implemented any UI tests right now since making modifications to the
profiles means modifying the actual user's profiles which I'm not keen to do.
See bug 1539868.

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

--HG--
extra : rebase_source : b9fb01c5f2faaf7d534800b700bb02b8c88af023
extra : source : ad5ac4d5c8f7240809a205be2960924813f1e705
2019-03-05 12:51:44 -08:00
Brian Grinstead 911776d674 Bug 1544322 - Part 3 - Remove the [type] attribute for multiline <script> tags loading files in chrome://mochikit/content/ r=bzbarsky
This is an autogenerated commit to handle scripts loading mochitest harness files, in
the case where the script src is on the line below the script tag.

This was generated with https://bug1544322.bmoattachments.org/attachment.cgi?id=9058170
using the `--part 3` argument.

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

--HG--
extra : moz-landing-system : lando
2019-04-16 03:59:25 +00:00
Dave Townsend 58c5da3a73 Bug 1542716: Allow overriding the update channel that is used when generating the default profile name. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D26632

--HG--
extra : moz-landing-system : lando
2019-04-09 18:38:17 +00:00
Dave Townsend 756e9d9e2a Bug 1542221: Correctly save the state of nsIToolkitProfileService.startWithLastProfile. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D26576

--HG--
extra : moz-landing-system : lando
2019-04-08 22:50:42 +00:00
Geoff Brown 8d88b9a596 Bug 1318091 - Disable failing android gtests; r=bc
Disable gtests observed to fail on Android. Some of these are simple build
failures and failures due to file permissions or paths, while other failures
are more obscure.
Once Android gtests are running on mozilla-central, I will file follow-up
bugs inviting teams to investigate the failures and re-enable Android gtests
that are important to them.

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

--HG--
extra : moz-landing-system : lando
2019-04-08 20:58:21 +00:00
Sylvestre Ledru 03fc65347c Bug 1542146 - Apply the change with the option StatementMacros from clang-format-8 r=andi
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-05 21:42:17 +00:00
Csoregi Natalia ba58e936bd Backed out changeset 4ad80127f89f (bug 1519636) for bustage on MarkupMap.h and nsAccessibilityService.cpp. CLOSED TREE 2019-04-05 09:48:19 +03:00
Sylvestre Ledru d1c1878603 Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-04 21:36:16 +00:00
Dave Townsend 332067407d Bug 1539820: Fix test_claim_locked.js to work with dev-edition. r=Gijs
The original name of the profile is irrelevant here since we aren't testing
a migration to profiles-per-install. On dev-edition DEDICATED_NAME is the same
as PROFILE_DEFAULT so we correctly make a new profile with a unique name.

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

--HG--
extra : moz-landing-system : lando
2019-04-04 21:56:42 +00:00
Dave Townsend 00de7dca50 Bug 1541804: Make profile refresh for non-ascii named profiles work correctly. r=Gijs
This fixes two bugs. The first is that when the firefox profile migrator doesn't
know which profile to migrate it attempts to fall back to another profile. I
think this was intended to be the default but in bug 1322797 I ended up making
it the current profile, which is the profile we're restoring into now. I think
at this stage the profile directory doesn't even exist so things go wrong.
Changing to use the actual default works but....

When the profile migrator UI doesn't know what profile to migrate from it uses
the default profile. So if the profile you're actually trying to restore is not
the default we'll effectively throw its data into the archive and replace it
with data from the default profile. I'm inclined to say that if the migrator
does not know what profile to migrate from it should error at that point for
safety.

Why would the profile migrator not know what profile to migrate from? Because of
a long-standing text encoding problem. In C++ profile names are encoded in UTF8.
But we try to pass them to JS through an IDL parameter of type ACString. This
does no UTF8 decoding and so JS recieves an incorrect name if the name includes
non-ascii characters and so can't find the profile.

This patch fixes the IDL parameter to AUTF8String which does the decoding
correctly and so JS gets the name correctly.

We should probably think about whether just passing the nsIToolkitProfile object
to the migrator is a better choice here.

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

--HG--
extra : moz-landing-system : lando
2019-04-04 21:53:01 +00:00
Narcis Beleuzu 24dbe577a5 Backed out changeset 389b6bbd76db (bug 1519636) for bustages on MarkupMap.h . CLOSED TREE 2019-04-05 00:27:56 +03:00
Sylvestre Ledru 399dbd28fe Bug 1519636 - clang-format-8: Reformat recent changes to the Google coding style r=Ehsan
clang-format-8 upstream had some improvements wrt macros
See: https://reviews.llvm.org/D33440
This is why the diff is bigger than usual

# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-04-04 20:12:23 +00:00
Jonas Allmann df684f89db Bug 1498569, Replace wizard.xml attributes with event listeners, r=Gijs
* Removed all occurences of custom onwizard* attributes.
* Removed custom handler code from wizard.xml.
* Updated eval()-usage whitelist.

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

--HG--
extra : moz-landing-system : lando
2019-04-02 08:56:25 +00:00
Dave Townsend 6403c58cd7 Bug 1527704: Store install information in profiles.ini and use installs.ini as a backup in case an earlier Firefox throws it away. r=froydnj
Originally we stored the new information about installation defaults in
installs.ini since older versions of Firefox would throw away any new data in
profiles.ini any time they made changes to the profiles. That does however mean
we have to load two files on startup.

This changes things so that we save all the data in profiles.ini as well as a
version tag and still save the install data into installs.ini. An older version
will throw away the install data and version tag from profiles.ini but leave
installs.ini alone. On startup if the version tag is gone from profiles.ini then
we reload the install data from installs.ini and put it back into profiles.ini.

At some point in the future where we don't care about supporting older versions
of Firefox we can just drop installs.ini entirely.

A lot of the changes here involve moving to loading profiles.ini into an
in-memory ini, keeping it up to date and flushing it to disk. This means that we
no longer throw away any information in the ini file that this version does not
understand allowing the possibility of adding new data to this file in the
future.

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

--HG--
extra : rebase_source : d00edf1ceb200a73a60bb1a90afabcdf95b01acf
extra : intermediate-source : e1c9790cd3bee060da99ffe37026721e36bc46c3
extra : source : d4feb17faf013134f5eac8b5e19b714c56410973
2019-03-27 14:41:04 -07:00
Cosmin Sabou 3c71fa6b4d Backed out changeset 084974858a7b (bug 1527704) for xpcshell failures on test_remove.js.
--HG--
extra : rebase_source : e6067e8aef9c5ffb7438e33ac75963a76a3d4d21
2019-03-27 02:11:22 +02:00
Dave Townsend 72aea9cb20 Bug 1527704: Store install information in profiles.ini and use installs.ini as a backup in case an earlier Firefox throws it away. r=froydnj
Originally we stored the new information about installation defaults in
installs.ini since older versions of Firefox would throw away any new data in
profiles.ini any time they made changes to the profiles. That does however mean
we have to load two files on startup.

This changes things so that we save all the data in profiles.ini as well as a
version tag and still save the install data into installs.ini. An older version
will throw away the install data and version tag from profiles.ini but leave
installs.ini alone. On startup if the version tag is gone from profiles.ini then
we reload the install data from installs.ini and put it back into profiles.ini.

At some point in the future where we don't care about supporting older versions
of Firefox we can just drop installs.ini entirely.

A lot of the changes here involve moving to loading profiles.ini into an
in-memory ini, keeping it up to date and flushing it to disk. This means that we
no longer throw away any information in the ini file that this version does not
understand allowing the possibility of adding new data to this file in the
future.

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

--HG--
extra : moz-landing-system : lando
2019-03-26 21:29:47 +00:00
Jonas Allmann 1db9db7604 Bug 1529231, Remove all occurences of ondialogaccept and ondialogcancel, r=Gijs
Removed all occurences of ondialogaccept.
Removed all occurences of ondialogcancel.
Replaced all removed attributes with event handlers.

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

--HG--
extra : moz-landing-system : lando
2019-03-26 18:34:02 +00:00
shindli cfc1229145 Backed out changeset 1c16d4ce9107 (bug 1527704) for build bustages in builds/worker/workspace/build/src/toolkit/profile/nsToolkitProfileService.cpp CLOSED TREE 2019-03-26 03:16:51 +02:00
Dave Townsend ca3a12dacd Bug 1527704: Store install information in profiles.ini and use installs.ini as a backup in case an earlier Firefox throws it away. r=froydnj
Originally we stored the new information about installation defaults in
installs.ini since older versions of Firefox would throw away any new data in
profiles.ini any time they made changes to the profiles. That does however mean
we have to load two files on startup.

This changes things so that we save all the data in profiles.ini as well as a
version tag and still save the install data into installs.ini. An older version
will throw away the install data and version tag from profiles.ini but leave
installs.ini alone. On startup if the version tag is gone from profiles.ini then
we reload the install data from installs.ini and put it back into profiles.ini.

At some point in the future where we don't care about supporting older versions
of Firefox we can just drop installs.ini entirely.

A lot of the changes here involve moving to loading profiles.ini into an
in-memory ini, keeping it up to date and flushing it to disk. This means that we
no longer throw away any information in the ini file that this version does not
understand allowing the possibility of adding new data to this file in the
future.

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

--HG--
extra : moz-landing-system : lando
2019-03-26 00:16:59 +00:00
Dave Townsend 6c329e613c Bug 1535021: Check if there is an existing instance of Firefox using the default selected profile before showing the profile manager. r=froydnj
If configured to show the profile manager on startup we want to defer doing that
until after attempting to remote to an existing Firefox. So in the default
startup case (not first run, not when a profile is selected on the command line
and not when the profile manager is requested on the command line) let default
profile selection complete, check for an existing Firefox and only then check
that we're configure to show the profile manager on startup and show it then.

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

--HG--
extra : moz-landing-system : lando
2019-03-14 19:55:31 +00:00
Dave Townsend 8f11ae1903 Bug 1535367: Remove temporary migration code added in bug 1525119. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D23555

--HG--
extra : moz-landing-system : lando
2019-03-14 19:03:56 +00:00
Sylvestre Ledru 4aa92e3091 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D22514
2019-03-13 10:19:06 +01:00
Dave Townsend c5f24f32dc Backed out changeset 455e57b39067 from bug 1530615 for causing bug 1534186. r=backout 2019-03-11 08:43:20 -07:00
Dave Townsend 1b23785c0c Bug 1533677: Don't lock the profile when selecting one from the profile manager until we've attempted to remote our arguments to an existing instance. r=Gijs
If the user selects a profile we will either remote the current arguments to it
or we'll restart into it. Either way we don't need to check if the profile is
locked at this point.

We also don't need to double check if the profile is missing since bug 1530615
landed.

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

--HG--
extra : moz-landing-system : lando
2019-03-08 20:43:42 +00:00
Dave Townsend c1a0af0769 Bug 1530615: Remove missing profiles from the profile service when showing the profile manager or about:profiles. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D22146

--HG--
extra : moz-landing-system : lando
2019-03-07 18:22:29 +00:00
Dave Townsend e5046fd820 Bug 1527851: Continue to use dev-edition-default as the default profile name for developer edition. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D21452

--HG--
extra : moz-landing-system : lando
2019-02-28 15:36:22 +00:00
Dave Townsend 91ba9ea2fa Bug 1531153: Fix tests to also pass on dev-edition builds. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D21442

--HG--
extra : moz-landing-system : lando
2019-02-28 15:38:03 +00:00
Dave Townsend 3073e9d542 Bug 1528998: Apply profile snatching behaviour when the first run of a dedicated build is after a restart. r=froydnj
If Firefox was using the default profile before restarting to upgrade to a build
supporting dedicated profiles then we should check if we can make the selected
profile the default for this build and if not create the user a new profile.

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

--HG--
extra : moz-landing-system : lando
2019-02-27 19:24:04 +00:00
Jonas Allmann 9e8cf63b9b Bug 1525636, Replace ondialogextra1 and ondialogextra2 attributes with event handlers, r=Gijs
Remove all occurences of the above mentioned attributes and replace them by event handlers.
Minor changes to consuming functions to preserve functionality.

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

--HG--
extra : moz-landing-system : lando
2019-02-20 11:11:31 +00:00
Ehsan Akhgari f4ca99275d Bug 1528568 - Add error handling for the call to nsIFile::Exists() in nsToolkitProfileService::SelectStartupProfile(); r=mossop
Differential Revision: https://phabricator.services.mozilla.com/D20079

--HG--
extra : moz-landing-system : lando
2019-02-16 22:21:41 +00:00
Dave Townsend ef53454138 Bug 1527499: Show the profile manager by default in preference to assigning or creating an initial profile. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D19592

--HG--
extra : moz-landing-system : lando
2019-02-13 14:04:23 +00:00
Dave Townsend 014a32958e Bug 1518639: Hold the profile service as its concrete type. r=froydnj
We cast the nsIToolkitProfileService to nsToolkitProfileService in a bunch of
places, might as well just hold that instead.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 20:14:33 +00:00
Coroiu Cristina 315837ca18 Backed out 6 changesets (bug 1518639) for build bustages at builds/worker/workspace/build/src/toolkit/xre/nsAppRunner.cpp on a CLOSED TREE
Backed out changeset 9f51da716b8a (bug 1518639)
Backed out changeset e2a0ca34bab9 (bug 1518639)
Backed out changeset 0780bd0ba2e1 (bug 1518639)
Backed out changeset 14c454f88604 (bug 1518639)
Backed out changeset 51becd44a8cb (bug 1518639)
Backed out changeset e8f1e89edf7f (bug 1518639)
2019-02-12 19:51:52 +02:00
Dave Townsend eb44cb01c4 Bug 1518639: Hold the profile service as its concrete type. r=froydnj
We cast the nsIToolkitProfileService to nsToolkitProfileService in a bunch of
places, might as well just hold that instead.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 17:36:13 +00:00
Bogdan Tara dee73f16c3 Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE 2019-02-12 00:01:16 +02:00
Dave Townsend b73275a5ee Bug 1525297: Don't use empty profiles for dedicated profiles and don't show the welcome page in this case. r=froydnj
Using an old default profile that is empty (like from bug 1518591) causes us to
also show the user a welcome page when that isn't necessary.

Instead leave old empty profiles alone (older versions will use them as the
default), create a new profile but don't set the flag to say that the old
default was skipped.

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

--HG--
extra : moz-landing-system : lando
2019-02-11 15:29:34 +00:00
Magnus Melin 1584297cc4 Bug 1525889 - make sure profileDowngrade doesn't break when sync is not enabled for an application. r=mossop 2019-02-11 23:04:09 +02:00
Varun Dey 2c911ec44a Bug 1524227 Replacing getParentProcessScalar with generic getProcessScalar r=chutten
Replacing existing getParentProcessScalars with a generic implementation of getProcessScalars

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

--HG--
extra : moz-landing-system : lando
2019-02-07 18:11:56 +00:00
Dave Townsend 49c86a9c8b Bug 1525119: Check if this is the default install and if so lock the profile. r=froydnj
Previously we attempted to do this when XPCOM wasn't available so it always
failed to get the shell service. Instead set a flag telling us to do it later
when we choose the old default profile.

Also includes a block of code to attempt to fix the issue for existing nightly
users, this can be removed before betas.

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

--HG--
extra : moz-landing-system : lando
2019-02-05 23:14:08 +00:00
Dave Townsend d026b0f026 Bug 1524252: Make test_lock.js work in dev-edition builds too. r=Gijs
This test verifies that taking the old-style default profile works. But on
dev-edition the old-style default is defined by the name not the default flag.
So make the test profile have both the default flag and the right name.

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

--HG--
extra : moz-landing-system : lando
2019-02-05 22:25:47 +00:00
Dave Townsend 1e3b008bd7 Bug 1455707: Detect when running an older version than previously ran with the selected profile. r=froydnj, r=mconley, r=Gijs
Use the information in compatibility.ini to detect that the current running
application is an older version than previously ran with the profile and in
that case open a UI allowing the user to launch the profile manager, launch
the previous instance of the application or quit.

Also includes the patch from bug 1523725.

--HG--
rename : browser/themes/shared/information.svg => toolkit/themes/shared/profile/information.svg
extra : rebase_source : 3bf8b329eb5ea9e71fe2f0ed34a7e44dfdc434fd
extra : intermediate-source : 21a801ca5f6d435509f93e1dee187cb6ca868c8f
extra : source : c9d89812bc226ca593119bf440cb4f5e50ac2ace
2019-01-30 14:56:30 -08:00
Dave Townsend 0b0a1e8daa Bug 1522934: Add telemetry data to record what happened during profile selection at startup. r=froydnj, datareview=chutten
Set a telemetry scalar depending on the path taken during profile selection at
startup.

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

--HG--
extra : rebase_source : bb4056c1c234f3aa61aedc8fddc87193f7aa45a9
extra : source : ebcd8225434ae82b837d632b5ef44bcc9dd5c5b0
2019-01-25 14:05:39 -08:00
Dave Townsend ca5293cbed Bug 1474285: Implement dedicated profiles per install. r=froydnj, r=Gijs
Uses a different profile depending on the install directory of the application.
installs.ini is used to map a hash of the install directory to a profile
directory.

If no profile is marked as default for the current install we use a heuristic
explained in the code to decide whether to use the profile that would have
been used before this feature.

The feature is disabled in snap builds where the install directory changes for
every version of the app, but multiple instances cannot share profiles anyway.
A boolean flag is used to turn on the feature because in a later patch we need
to be able to turn off the behaviour at runtime.

Includes code folded in from bug 1518634, bug 1522751, bug 1518632 and bug 1523024.

--HG--
extra : rebase_source : 0250c70e992fd8369e52ccee3755cf116a894791
extra : intermediate-source : e69cac07b209ad4ef4229815ffd8138ed64c348e
extra : source : e406bf0bcd665bd0e54ddb13d9ae880004badef1
2019-01-25 16:02:28 -08:00
Dave Townsend 9127e8bbdc Bug 1322797: Replace selectedProfile with currentProfile and fix defaultProfile. r=froydnj, r=flod
The current properties selectedProfile and defaultProfile are somewhat confusing
selectedProfile actually returns the default profile for the build and
defaultProfile returns the default profile for non-dev-edition builds. This
confusion leads to callers doing the wrong thing in some places.

What most code actually cares about is being able to set/get the default profile
for this build and getting the current profile in use. So this patch replaces
the previous properties with currentProfile and defaultProfile which do what
makes more sense.

This patch also switches from using the preprocessor to change behaviour for
dev-edition builds to using a boolean flag since some code was incorrectly
ignoring the setting to make dev-edition use the same profile as normal builds.

In order to make currentProfile correct when resetting a profile I had to move
CreateResetProfile into nsToolkitProfileService.

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

--HG--
extra : rebase_source : cefe252618cd3a1b0e0cd5a71b056dd2b557f1a3
extra : intermediate-source : 35af79575f54f75d22e213fdac7ddd704b40807a
extra : source : 732d1ce192408d4f595f2fce16f45c7354ce3097
2018-12-28 09:44:47 -08:00
Coroiu Cristina 98ec0ea927 Backed out 7 changesets (bug 1518632, bug 1463198, bug 1455707, bug 1522934, bug 1322797, bug 1474285) for build bustages at /builds/worker/workspace/build/src/toolkit/xre/nsAppRunner.cpp on a CLOSED TREE
Backed out changeset 82355ab7e063 (bug 1455707)
Backed out changeset b965981c9ce0 (bug 1463198)
Backed out changeset 21a801ca5f6d (bug 1455707)
Backed out changeset 05200c5388b4 (bug 1518632)
Backed out changeset ebcd8225434a (bug 1522934)
Backed out changeset e69cac07b209 (bug 1474285)
Backed out changeset 35af79575f54 (bug 1322797)
2019-01-31 03:34:49 +02:00
Dave Townsend 25ec38eec8 Bug 1455707: Detect when running an older version than previously ran with the selected profile. r=froydnj, r=mconley, r=Gijs
Use the information in compatibility.ini to detect that the current running
application is an older version than previously ran with the profile and in
that case open a UI allowing the user to launch the profile manager, launch
the previous instance of the application or quit.

Also includes the patch from bug 1523725.

--HG--
rename : browser/themes/shared/information.svg => toolkit/themes/shared/profile/information.svg
extra : rebase_source : f81be6c98b8248ca9a09c1e3d70cff2f925ad77f
extra : intermediate-source : 198a6d5b96d4127b6d21485a3b1b0ab2d3bc2f72
extra : source : c9d89812bc226ca593119bf440cb4f5e50ac2ace
2019-01-30 14:56:30 -08:00
Dave Townsend 1fb2dfc2ee Bug 1522934: Add telemetry data to record what happened during profile selection at startup. r=froydnj, datareview=chutten
Set a telemetry scalar depending on the path taken during profile selection at
startup.

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

--HG--
extra : rebase_source : 6c797b4a8122db69e61d0d954dcfd726d3d1970e
2019-01-25 14:05:39 -08:00
Dave Townsend 007be95c70 Bug 1474285: Implement dedicated profiles per install. r=froydnj, r=Gijs
Uses a different profile depending on the install directory of the application.
installs.ini is used to map a hash of the install directory to a profile
directory.

If no profile is marked as default for the current install we use a heuristic
explained in the code to decide whether to use the profile that would have
been used before this feature.

The feature is disabled in snap builds where the install directory changes for
every version of the app, but multiple instances cannot share profiles anyway.
A boolean flag is used to turn on the feature because in a later patch we need
to be able to turn off the behaviour at runtime.

Includes code folded in from bug 1518634, bug 1522751, bug 1518632 and bug 1523024.

--HG--
extra : rebase_source : b4608f6e8800af4f154daf0e0262f521c8ebd9fd
extra : intermediate-source : ba34b021c8e995ec7fc7c7fbb3dcc5dcf268278c
extra : source : e406bf0bcd665bd0e54ddb13d9ae880004badef1
2019-01-25 16:02:28 -08:00
Dave Townsend dd2eee0019 Bug 1322797: Replace selectedProfile with currentProfile and fix defaultProfile. r=froydnj, r=flod
The current properties selectedProfile and defaultProfile are somewhat confusing
selectedProfile actually returns the default profile for the build and
defaultProfile returns the default profile for non-dev-edition builds. This
confusion leads to callers doing the wrong thing in some places.

What most code actually cares about is being able to set/get the default profile
for this build and getting the current profile in use. So this patch replaces
the previous properties with currentProfile and defaultProfile which do what
makes more sense.

This patch also switches from using the preprocessor to change behaviour for
dev-edition builds to using a boolean flag since some code was incorrectly
ignoring the setting to make dev-edition use the same profile as normal builds.

In order to make currentProfile correct when resetting a profile I had to move
CreateResetProfile into nsToolkitProfileService.

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

--HG--
extra : rebase_source : 24feb46363b5e43f35b51614d9dc6ae20ae49b65
extra : amend_source : 3c2051b98f19dc3288c59b0028db7d33c6953be3
extra : intermediate-source : 8404cc6140177a40c7086ddd4bf5d84735681048
extra : source : 732d1ce192408d4f595f2fce16f45c7354ce3097
2018-12-28 09:44:47 -08:00