Closed Bug 1358117 Opened 7 years ago Closed 7 years ago

Allow User to reset their LeanPlum Tracking (Android)

Categories

(Firefox for Android Graveyard :: General, defect, P1)

Other
Android
defect

Tracking

(firefox55 fixed)

RESOLVED FIXED
Firefox 55
Tracking Status
firefox55 --- fixed

People

(Reporter: jcheng, Assigned: cnevinchen, NeedInfo)

References

Details

(Whiteboard: [MMA] [MobileCore][LP_M1])

Attachments

(1 file)

+++ This bug was initially created as a clone of Bug #1353820 +++

Ability for users to turn on/off tracking and to reset their device ID. This should tie to the same setting as Adjust.
No longer depends on: 1353820
ni Marshall 

Similarly for Android, Do you suggest we include Leanplum into the "Firefox Health Report" to share anonymous data opt-in/out setting in Firefox, like we did with Adjust?

Thanks
Depends on: 1353820
Flags: needinfo?(merwin)
No longer blocks: 1351446
No longer depends on: 1353820
Hi Joe,

Yes, that approach makes sense to me. However, can you clarify what we are discussing here.  Your question suggests that we are integrating LeanPlum into Firefox desktop, which I did not know we were doing. Am I reading this correctly?

Marshall
Flags: needinfo?(merwin)
Hi Marshall, 

I'm discussing about the Firefox Android mobile browser. LeanPlum is being worked on for both iOS and Android on mobile (not on desktop). 

Joe
Priority: -- → P2
Whiteboard: [mma] → [MMA] [MobileCore]
Iteration: --- → 1.20
Priority: P2 → P1
Iteration: 1.20 → 1.21
Iteration: 1.21 → ---
OS: iOS → Android
Comment on attachment 8869370 [details]
Bug 1358117 - Add pref to turn on/off leanplum.

Now we can use Gecko Pref "mma.enabled" and Android Pref "Internet Health Report" to disable / stop leanplum
Comment on attachment 8869370 [details]
Bug 1358117 - Add pref to turn on/off leanplum.

https://reviewboard.mozilla.org/r/141014/#review145458
Attachment #8869370 - Flags: review?(max) → review+
Assignee: nobody → cnevinchen
Status: NEW → ASSIGNED
Comment on attachment 8869370 [details]
Bug 1358117 - Add pref to turn on/off leanplum.

https://reviewboard.mozilla.org/r/141014/#review145538

::: mobile/android/app/mobile.js:417
(Diff revision 1)
> +#if MOZ_UPDATE_CHANNEL == nightly
> +pref("mma.enabled", true);
> +#elif MOZ_UPDATE_CHANNEL == beta
> +pref("mma.enabled", true);
> +#else
> +pref("mma.enabled", true);
> +#endif

I remember talking to Max about this. Why are they all true? And shouldn't this be disabled for at least local builds?

::: mobile/android/base/java/org/mozilla/gecko/mma/MmaDelegate.java:33
(Diff revision 1)
> -    public void start(Context context) {
> -        mmaHelper.start(context);
> +    private static void setupPrefHandler(final Application application) {
> +        PrefsHelper.PrefHandler handler = new PrefsHelper.PrefHandlerBase() {
> +            @Override
> +            public void prefValue(String pref, boolean value) {
> +                if (pref.equals(ENABLE_PREF)) {
> +                    if (value) {
> +                        mmaHelper.init(application);
> +                    } else {
> +                        mmaHelper.stop();
> -    }
> +                    }
>  
> -}
> +                }
> +            }
> +        };
> +        PrefsHelper.addObserver(prefs, handler);
> +    }

I do not fully understand why this needs to be a Gecko preference?

Can't you enable/disable this on start based on the health shared preference? (And update it whenever the health preference is switched?)

::: mobile/android/base/java/org/mozilla/gecko/mma/MmaLeanplumImp.java:54
(Diff revision 1)
> +    public void stop() {
> +        Leanplum.stop();
> +    }

I saw that iOS were facing problems with the SDK that this wouldn't actually stop collecting data until the app was restarted - Do we have the same problem or does this really stop all actions?

::: mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java:1224
(Diff revision 1)
> +            if (!newBooleanValue) {
> +                MmaDelegate.stop();
> +            }

What about starting it when the user enabled the setting again?
Attachment #8869370 - Flags: review?(s.kaspari)
Hi Sebastian
Could you please help add an experiment for Leanplum on Switchboard Server(Production) ?
Do I need anything else to apply ? Thanks!

      {
         "match":{
            "lang":"eng",
            "country":"USA"
         },
         "id":"ba240d9e-aeba-4d22-a79f-93a9541cb7fa",
         "buckets":{
            "max":"10",
            "min":"0"
         },
         "schema":1489587478953,
         "name":"leanplum-start",
         "last_modified":149552
Flags: needinfo?(s.kaspari)
(In reply to Sebastian Kaspari (:sebastian) from comment #8)
> Comment on attachment 8869370 [details]
> Bug1358117 - Add pref to turn on/off leanplum> 
> I do not fully understand why this needs to be a Gecko preference?
> 
> Can't you enable/disable this on start based on the health shared
> preference? (And update it whenever the health preference is switched?)
> 
Yes. But I also want to let RM to have the control to pref off LP. And using only IHR pref will disable Core Ping.

> ::: mobile/android/base/java/org/mozilla/gecko/mma/MmaLeanplumImp.java:54
> I saw that iOS were facing problems with the SDK that this wouldn't actually
> stop collecting data until the app was restarted - Do we have the same
> problem or does this really stop all actions?
> 

We have the same problem . I'll submit a PR for that. Main work is at com.leanplum.internal.SocketIOClient.disconnect()
> :::
> mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java: 1224
> > +            if (!newBooleanValue) {
> > +                MmaDelegate.stop();
> > +            }
> 
> What about starting it when the user enabled the setting again?
I prefer to start Leanplum next time when user start the app. Due to Leanplum initialization may bound to Activity life cycle call back, I want to make it simpler here.
Comment on attachment 8869370 [details]
Bug 1358117 - Add pref to turn on/off leanplum.

https://reviewboard.mozilla.org/r/141014/#review145538

> I remember talking to Max about this. Why are they all true? And shouldn't this be disabled for at least local builds?

---Why are they all true?  
This pref is just for RM to disable Leanplum using another patch (and keep MOZ_ANDROID_MMA =1 so we can pref on it if there's a future dot release.) 

---And shouldn't this be disabled for at least local builds?
In local build we should still enable it. 
So interenal developer can update his mozconfig to add sdk token without know to pref it on manually.
For external contributor, this still can be enable, but they'll got stum implementation cause the build flag isn't set.

> I do not fully understand why this needs to be a Gecko preference?
> 
> Can't you enable/disable this on start based on the health shared preference? (And update it whenever the health preference is switched?)

---why this needs to be a Gecko preference
If it's Gecko preference, releng can have full control on it( They can submit patch to turn it off)

--Why not just health preference
If we only use health report, it'll also blck core ping. The users won't know this pref

> I saw that iOS were facing problems with the SDK that this wouldn't actually stop collecting data until the app was restarted - Do we have the same problem or does this really stop all actions?

This will need Leanplum to fix for us in their SDK. There's nothing we can do here( except we are goning to stop the socket manually)
What I do here is to add another check everytime before I send a Leanplum event.

> What about starting it when the user enabled the setting again?

We are not going to provide that feature. Since Leanplum need to hoop activity lifecycle while init their SDK. So I set the limit here. If the user stops it, he'll need to start the app again to get Leanplum initialized again.
hg error in cmd: hg push -r tip ssh://hg.mozilla.org/integration/autoland: pushing to ssh://hg.mozilla.org/integration/autoland
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 7 changes to 7 files
remote: 
remote: 
remote: ************************** ERROR ****************************
remote: Rev 820aeef57962 needs "Bug N" or "No bug" in the commit message.
remote: Nevin Chen <cnevinchen@gmail.com>
remote: Bug1358117 - Add pref to turn on/off leanplum. r=maliu
remote: 
remote: MozReview-Commit-ID: 8LHvMPSxAdl
remote: *************************************************************
remote: 
remote: 
remote: transaction abort!
remote: rollback completed
remote: pretxnchangegroup.c_commitmessage hook failed
abort: push failed on remote
Pushed by nechen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/fba7b035a4f9
Add pref to turn on/off leanplum. r=maliu
Backed out for bustage at mobile/android/base/java/org/mozilla/gecko/mma/MmaDelegate.java:25: symbol not found and linting failures:

https://hg.mozilla.org/integration/autoland/rev/5a8db189930cedc0ec845ced1970837c187b9003

Also had to back out bug 1361664 to get this out:

https://hg.mozilla.org/integration/autoland/rev/11de121a061f10049f0c4bb63498722d237efe1e
https://hg.mozilla.org/integration/autoland/rev/48b319f9d3f25088d45ba7b3bfdda0e57eb6ea8b


Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=fba7b035a4f98e9b74aa1e21916822593cc0c39d&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=102305960&repo=autoland

[task 2017-05-26T11:29:56.756655Z] 11:29:56     INFO -    Copying resources from program jar [/home/worker/workspace/build/src/obj-firefox/dist/exploded-aar/play-services-measurement-8.4.0/play-services-measurement-8.4.0-classes.jar]
[task 2017-05-26T11:29:59.855502Z] 11:29:59     INFO -  /home/worker/workspace/build/src/mobile/android/base/java/org/mozilla/gecko/mma/MmaDelegate.java:25: error: cannot find symbol
[task 2017-05-26T11:29:59.856485Z] 11:29:59     INFO -          setupPrefHandler(application);
[task 2017-05-26T11:29:59.856551Z] 11:29:59     INFO -          ^
[task 2017-05-26T11:29:59.856634Z] 11:29:59     INFO -    symbol:   method setupPrefHandler(Application)
[task 2017-05-26T11:29:59.856674Z] 11:29:59     INFO -    location: class MmaDelegate
Flags: needinfo?(cnevinchen)
Nevin, either you do not request review from me or you wait until the patch has been r+. I've come across multiple bugs now where you requested review and landed without it (at least from me).
Flags: needinfo?(s.kaspari)
(In reply to Nevin Chen [:nechen] from comment #9)
> Hi Sebastian
> Could you please help add an experiment for Leanplum on Switchboard
> Server(Production) ?

Added the experiment to the production configuration:
https://firefox.settings.services.mozilla.com/v1/buckets/fennec/collections/experiments/records?nocache
(In reply to Nevin Chen [:nechen] from comment #11)
> ---Why are they all true?  
> This pref is just for RM to disable Leanplum using another patch (and keep
> MOZ_ANDROID_MMA =1 so we can pref on it if there's a future dot release.) 

Okay. I guess RM is release management? I'm not convinced that a *gecko* preference is the best approach here (I think that's a pattern that makes sense on desktop but not necessarily on mobile) - now we have to wait for Gecko to startup before we can do anything. But as it's only temporary .. okay, let's roll with it.


> ---And shouldn't this be disabled for at least local builds?
> In local build we should still enable it. 
> So interenal developer can update his mozconfig to add sdk token without
> know to pref it on manually.
> For external contributor, this still can be enable, but they'll got stum
> implementation cause the build flag isn't set.

Okay, if a missing SDK token is another barrier and the SDK won't be initialized without it then this sounds okay. But why all those if-else-cases then and not just one line pref("mma.enabled", true);?


> > > I saw that iOS were facing problems with the SDK that this wouldn't actually stop collecting data until the app was restarted - Do we have the same problem or does this really stop all actions?
> 
> This will need Leanplum to fix for us in their SDK. There's nothing we can
> do here( except we are goning to stop the socket manually)
> What I do here is to add another check everytime before I send a Leanplum
> event.

There might be nothing *we* can do, but it nevertheless sounds like an issue that might block a release? At least it sounded like that on iOS. Do we at least have a bug filed for this so that we can discuss whether this is a blocker or not (and track that it will get fixed eventually)?

> > What about starting it when the user enabled the setting again?
> 
> We are not going to provide that feature. Since Leanplum need to hoop
> activity lifecycle while init their SDK. So I set the limit here. If the
> user stops it, he'll need to start the app again to get Leanplum initialized
> again.

Okay, fair enough. :)
Comment on attachment 8869370 [details]
Bug 1358117 - Add pref to turn on/off leanplum.

https://reviewboard.mozilla.org/r/141014/#review146970

I left some comments in the bug. You closed the issues on mozreview, so I couldn't reply (and it seems like your comments are not on mozreview either).
Attachment #8869370 - Flags: review?(s.kaspari) → review+
(In reply to Sebastian Kaspari (:sebastian) from comment #18)
> Okay, if a missing SDK token is another barrier and the SDK won't be
> initialized without it then this sounds okay. But why all those
> if-else-cases then and not just one line pref("mma.enabled", true);?

If the pref-off-by-releng unfotunatley happed, we still want a chance to make it at least stay at some channcel. Not all of them.
That's why there's a if-else here..

 
> There might be nothing *we* can do, but it nevertheless sounds like an issue
> that might block a release? At least it sounded like that on iOS. Do we at
> least have a bug filed for this so that we can discuss whether this is a
> blocker or not (and track that it will get fixed eventually)?

There's a bug about it. I'll add you to the cc list later.

> Nevin, either you do not request review from me or you wait until the patch has been r+.
> I've come across multiple bugs now where you requested review and landed without it (

I'm really sorry about this. I didn't notice that. I'll be more careful in the future.
Pushed by nechen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c77265a29cc7
Add pref to turn on/off leanplum. r=maliu,sebastian
Backed out for mobile/android/base/java/org/mozilla/gecko/mma/MmaDelegate.java:25: error: cannot find symbol, e.g. in findbugs job (same failure like earlier today):

https://hg.mozilla.org/integration/autoland/rev/81e3ade6c8d54daff35f292821bb21e5adee5e50

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=c77265a29cc7046d3904f06dda96225e222ebdca&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=102420285&repo=autoland

[task 2017-05-26T18:24:56.417939Z] 18:24:56     INFO -    Copying resources from program jar [/home/worker/workspace/build/src/obj-firefox/dist/exploded-aar/play-services-measurement-8.4.0/play-services-measurement-8.4.0-classes.jar]
[task 2017-05-26T18:24:59.826872Z] 18:24:59     INFO -  /home/worker/workspace/build/src/mobile/android/base/java/org/mozilla/gecko/mma/MmaDelegate.java:25: error: cannot find symbol
[task 2017-05-26T18:24:59.827183Z] 18:24:59     INFO -          setupPrefHandler(application);
[task 2017-05-26T18:24:59.827429Z] 18:24:59     INFO -          ^
[task 2017-05-26T18:24:59.827753Z] 18:24:59     INFO -    symbol:   method setupPrefHandler(Application)
[task 2017-05-26T18:24:59.827923Z] 18:24:59     INFO -    location: class MmaDelegate
[task 2017-05-26T18:25:00.165770Z] 18:25:00     INFO -  Note: Some input files use or override a deprecated API.
[task 2017-05-26T18:25:00.165938Z] 18:25:00     INFO -  Note: Recompile with -Xlint:deprecation for details.
[task 2017-05-26T18:25:00.166060Z] 18:25:00     INFO -  1 error
Pushed by nechen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/08b93bba921c
Add pref to turn on/off leanplum. r=maliu,sebastian
https://hg.mozilla.org/mozilla-central/rev/08b93bba921c
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 55
Backed bug 1358117 and bug 1361664 out for Android Nightly bustage:

Bug 1358117
https://hg.mozilla.org/mozilla-central/rev/66c73b65bf2d02c59f361b89135dc56553c3e4eb

Bug 1361664
https://hg.mozilla.org/mozilla-central/rev/590a85b31999a060e30bbf31352216860ba081a9
https://hg.mozilla.org/mozilla-central/rev/fa869ff5ecf6259451b656d879dde8371a6a4483

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-central&revision=ebad93e117700d8e2d65573b824beb18a8cc2030&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable&filter-searchStr=android
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=102554687&repo=mozilla-central

[task 2017-05-27T10:32:16.942194Z] 10:32:16     INFO -  Note: com.google.android.gms.common.internal.DowngradeableSafeParcel accesses a field 'NULL' dynamically
[task 2017-05-27T10:32:16.943430Z] 10:32:16     INFO -        Maybe this is program field 'com.google.android.gms.common.internal.safeparcel.SafeParcelable { java.lang.String NULL; }'
[task 2017-05-27T10:32:16.959109Z] 10:32:16     INFO -        Maybe this is library field 'android.util.JsonToken { android.util.JsonToken NULL; }'
[task 2017-05-27T10:32:16.959746Z] 10:32:16     INFO -        Maybe this is library field 'java.sql.Types { int NULL; }'
[task 2017-05-27T10:32:16.959815Z] 10:32:16     INFO -        Maybe this is library field 'org.json.JSONObject { java.lang.Object NULL; }'
[task 2017-05-27T10:32:16.974939Z] 10:32:16     INFO -  Note: com.google.android.gms.measurement.internal.zzab accesses a declared method 'initialize(android.content.Context)' dynamically
[task 2017-05-27T10:32:17.204721Z] 10:32:17     INFO -  Note: there were 2 accesses to class members by means of introspection.
[task 2017-05-27T10:32:17.204960Z] 10:32:17     INFO -        You should consider explicitly keeping the mentioned class members
[task 2017-05-27T10:32:17.205210Z] 10:32:17     INFO -        (using '-keep' or '-keepclassmembers').
[task 2017-05-27T10:32:17.205280Z] 10:32:17     INFO -  Ignoring unused library classes...
[task 2017-05-27T10:32:17.205921Z] 10:32:17     INFO -    Original number of library classes: 3633
[task 2017-05-27T10:32:17.205975Z] 10:32:17     INFO -    Final number of library classes:    1101
[task 2017-05-27T10:32:17.206000Z] 10:32:17     INFO -  Obfuscating...
[task 2017-05-27T10:32:17.325260Z] 10:32:17     INFO -  /home/worker/workspace/build/src/mobile/android/base/java/org/mozilla/gecko/mma/MmaLeanplumImp.java:22: error: package org.mozilla.gecko.util does not exist
[task 2017-05-27T10:32:17.325532Z] 10:32:17     INFO -  import org.mozilla.gecko.util.ContextUtils;
[task 2017-05-27T10:32:17.325595Z] 10:32:17     INFO -                               ^
[task 2017-05-27T10:32:17.325754Z] 10:32:17     INFO -  /home/worker/workspace/build/src/mobile/android/base/java/org/mozilla/gecko/mma/MmaLeanplumImp.java:27: error: cannot find symbol
[task 2017-05-27T10:32:17.325849Z] 10:32:17     INFO -  import static org.mozilla.gecko.mma.MmaDelegate.LAUNCH_BUT_NOT_DEFAULT_BROWSER;
[task 2017-05-27T10:32:17.326209Z] 10:32:17     INFO -                                     ^
[task 2017-05-27T10:32:17.326279Z] 10:32:17     INFO -    symbol:   class MmaDelegate
[task 2017-05-27T10:32:17.326430Z] 10:32:17     INFO -    location: package org.mozilla.gecko.mma
[task 2017-05-27T10:32:17.326535Z] 10:32:17     INFO -  /home/worker/workspace/build/src/mobile/android/base/java/org/mozilla/gecko/mma/MmaLeanplumImp.java:27: error: static import only from classes and interfaces
[task 2017-05-27T10:32:17.326752Z] 10:32:17     INFO -  import static org.mozilla.gecko.mma.MmaDelegate.LAUNCH_BUT_NOT_DEFAULT_BROWSER;
[task 2017-05-27T10:32:17.326884Z] 10:32:17     INFO -  ^
[task 2017-05-27T10:32:17.433549Z] 10:32:17     INFO -  /home/worker/workspace/build/src/mobile/android/base/java/org/mozilla/gecko/mma/MmaLeanplumImp.java:47: error: cannot find symbol
[task 2017-05-27T10:32:17.433647Z] 10:32:17     INFO -          boolean installedFocus = ContextUtils.isPackageInstalled(activity, "org.mozilla.focus");
[task 2017-05-27T10:32:17.433688Z] 10:32:17     INFO -                                   ^
[task 2017-05-27T10:32:17.433723Z] 10:32:17     INFO -    symbol:   variable ContextUtils
[task 2017-05-27T10:32:17.433756Z] 10:32:17     INFO -    location: class MmaLeanplumImp
[task 2017-05-27T10:32:17.433819Z] 10:32:17     INFO -  /home/worker/workspace/build/src/mobile/android/base/java/org/mozilla/gecko/mma/MmaLeanplumImp.java:48: error: cannot find symbol
[task 2017-05-27T10:32:17.433881Z] 10:32:17     INFO -          boolean installedKlar = ContextUtils.isPackageInstalled(activity, "org.mozilla.klar");
[task 2017-05-27T10:32:17.434880Z] 10:32:17     INFO -                                  ^
[task 2017-05-27T10:32:17.435330Z] 10:32:17     INFO -    symbol:   variable ContextUtils
[task 2017-05-27T10:32:17.435851Z] 10:32:17     INFO -    location: class MmaLeanplumImp
[task 2017-05-27T10:32:17.436692Z] 10:32:17     INFO -  /home/worker/workspace/build/src/mobile/android/base/java/org/mozilla/gecko/mma/MmaLeanplumImp.java:54: error: cannot find symbol
[task 2017-05-27T10:32:17.436974Z] 10:32:17     INFO -              Leanplum.track(LAUNCH_BUT_NOT_DEFAULT_BROWSER);
[task 2017-05-27T10:32:17.437753Z] 10:32:17     INFO -                             ^
[task 2017-05-27T10:32:17.438106Z] 10:32:17     INFO -    symbol:   variable LAUNCH_BUT_NOT_DEFAULT_BROWSER
[task 2017-05-27T10:32:17.438427Z] 10:32:17     INFO -    location: class MmaLeanplumImp
[task 2017-05-27T10:32:17.453721Z] 10:32:17     INFO -  Note: /home/worker/workspace/build/src/mobile/android/geckoview/src/main/java/org/mozilla/gecko/SysInfo.java uses or overrides a deprecated API.
[task 2017-05-27T10:32:17.454007Z] 10:32:17     INFO -  Note: Recompile with -Xlint:deprecation for details.
[task 2017-05-27T10:32:17.454388Z] 10:32:17     INFO -  6 errors
[task 2017-05-27T10:32:17.489685Z] 10:32:17     INFO -  /home/worker/workspace/build/src/config/makefiles/java-build.mk:149: recipe for target 'constants.jar' failed
[task 2017-05-27T10:32:17.489946Z] 10:32:17     INFO -  gmake[5]: *** [constants.jar] Error 1
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Pushed by nechen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/c4633ac3f49c
Add pref to turn on/off leanplum. r=maliu,sebastian
Flags: needinfo?(cnevinchen)
https://hg.mozilla.org/mozilla-central/rev/c4633ac3f49c
Status: REOPENED → RESOLVED
Closed: 7 years ago7 years ago
Resolution: --- → FIXED
We're sorry - something has gone wrong while rewriting or rebasing your commits. The commits being pushed no longer match what was requested. Please file a bug.
I've filed a bug for comment 30 using Bug 1368522.
But it looks like what I wanted is already merged to m-c.
Flags: needinfo?(autoland)
Whiteboard: [MMA] [MobileCore] → [MMA] [MobileCore][LP_M2]
Whiteboard: [MMA] [MobileCore][LP_M2] → [MMA] [MobileCore][LP_M1]
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: