mozilla :: #mobile

18 Apr 2017
00:19ahuntIm trying to call some webview c++ methods - Ive managed to (hackily) link against at buildtime (plus copied some headers over), but Android barfs when loading my own native library via System.loadLibrary() with "dlopen failed: library "" not found. libmonochrome should already be loaded in the same process
00:19ahunt(webview will have already loaded it) - does anyone know what could cause matching it to break?
00:19ahunt(Yes, Im aware that this is all completely insane)
03:07jchenahunt: i don't think System.loadLibrary looks for libraries that you already loaded through other means
08:18JuPanameyou need shell account for free ? contact me =)
08:22jlazbanned the user above
14:05mkaplyThe non multi locale builds use the updater as well, don't they?
14:06mkaplyAnd Google play is offered in 145 countries, but there are 196 countries.
14:28Pikemkaply: yeah
14:32mkaplySo we definitely can't kill the updater.
16:41JanHcan anybody remember what we did in 53 that caused the "Check for updates" button to stop showing in about:firefox on builds that don't have the updater enabled?
16:44rnewmanJanH: bet it's related to bug 1220773
16:44firebot FIXED, Expose Android getInstallerPackageName within Fennec
16:45JanHrnewman: hmm, but that landed in 50
16:46rnewmanJanH: yes, but it's a prerequisite for figuring out whether to show the button
16:55ahuntsebastian: re: both DNT and data measuring: I did see one SO example where someone implemented their own http request handling (all via WebViews shouldInterceptRequest, where you can return your own request object) - and that would possibly even let us do all our own cert checking too (and any other network related stuff we might need)
16:55sebastianahunt: Heh. Interesting. I wonder how this impact performance. :)
16:56ahuntWe could even import necko to do our networking :p? (disclaimer: I have no idea how it works)
16:57sebastianahunt: I was wondering whether we could ask the android system for the data used. It already tracks that (although this would include telemetry etc. too)
16:58ahuntHmm - that would be simpler (are we doing our own networking for telemetry? We could count that/subtract it from the overall data use?)
17:01sebastianyeah, we do (HttpUrlConnection)
17:03JanHrnewman: I don't think our JS-code there is even set up to completely hide that button
17:04JanHI've checked the 52 and the 53 beta, and for some reason in 53 the #ifdef MOZ_UPDATER ( is suddenly actually having any effect
17:04JanHeven though I don't see any changes in about.xhtml
17:05JanHour mozconfig continues setting --enabled-updater, and our release branding configure continues to unset it (*configure+MOZ_UPDATER)
17:10njparkmcomella: i was curious about Fennec BrowserApp- so is it written in a special manner where unit tests can't be written? wondering what makes it so difficult
17:15sebastiannjpark: I guess it depends on what part of it you want to test. It's just a complex class and instantiating will require a lot of other dependencies to exist - so it's not easy to test it in isolation in a unit test
17:15njparksebastian: ah dependencies, I see, so it's not like you can run a single class instance atomically
17:17njparksebastian:oh btw, is it okay if we talk about focus code coverage tomorrow? I'll try to play around with it today
17:17sebastiannjpark: I wanted to write a unit test for ToolbarDisplayLayout - because we are fixing things in it like every couple of weeks. But even that class is hard to instantiate in isolation.
17:17sebastiannjpark: sure!
17:18njparksebastian: yeah I thought there is probably a good reason why there is a small number of unit tests - okay that makes sense
17:18njparksebastian: and probably creating stubs/ driver is a headache too in this case
17:19sebastianI tried it for ToolbarDisplayLayout and gave up several levels deep. I guess in this case it might be simpler to refactor the class first.
17:19sebastian(and introducing a couple of new bugs :)
17:20njparkchrist :|
17:51walkingicePhoton is in the corner so I guess we will change ToolbarDisplayLayout soon :P
17:51sebastianwalkingice: I was hoping that this would be the result of you working on the custom tabs toolbar :)
17:54walkingiceI hope so, however it likely won't happen in near future :)
18:37mcomellanjpark: s.ebastian summed it up (as dependencies) but to be specific, when you write unit tests, it's easier to write your functions such that they don't rely on state outside of the function (whether global state or state from the instance for which the unit test is contained). However, we didn't write the code that way so it makes it hard to test.
18:40njparkmcomella: thanks, yeah I can see unit tests would be hard when there are many dependencies, hmm, since code coverage and unit tests go together, I should poke around a bit more to see which approach will provide benefits with least pain
18:41mcomellanjpark: fwiw, if we were to set up code coverage and, as a team, start to have better unit testing practices, over time, as we change code, we'd probably start to refactor in a way that will allow us to write unit tests, improve code coverage, and (hopefully!) have more robust code
18:42mcomellaI think having the tools in place and easy to use is really important, or else no one will use them! See also: how difficult it is to write robocop tests and how few we write :(
18:42mcomellaWhich is why I got the linters in place even though I didn't finish turning on the important features
18:44njparkwas thinking 'maybe limiting to UI code might be worth it' but if even toolbar is difficult to write unit tests, yeah might be hard. yes, that's the idea I have as well. something that can easily (and accurately) tell the current state might encourage refactoring + unit tests. will need to investigate more
18:45SeburoHi. Is it still the case that if Firefox for Android (Release or Beta) is installed directly from the apk (instead of through Google Play) that it will not get updates?
18:48AaronMTfairly certain that's still the case
18:50SeburoAaronMT: Thanks, appreciate it. There are a number of people that are using Aurora on Kindle and one has raised the "what now?" question. I shall tell them that in time they will be automatically moved to Nightly(?).
18:51AaronMTno idea (Sylvestre ?)
18:52ahuntSpeaking of linters and co, Ive got a fair few infer patches that Im seeking reviewers for, feel free to let me know if you want to volunteer.
18:53ahuntOtherwise Ill just pick at random
19:40njparkis it possible to make fennec using console gradle command like ./gradle build?
19:42ahuntnjpark: yup, but I think you always have to start with |mach build| && |mach package|, after which |gradlew build| should run
19:43njparkahunt: ahh thanks!
19:43ahunt(Im not 100% sure if thats still necessary and/or if it will always be necessary)
19:43njparkahunt: because just running ./gradlew clean app:assembleLocalOldDebug gives me errors
19:49lizzardHi, does anyone here know if we expect and use update ping data from fennec on release channels?
19:51lizzardmkaply: ping. did we expect this to be the case for 53? bug 1357288
19:51firebot NEW, [about:firefox] Inconsistency between 53 and older version
19:52sebastianmkaply: I think I remember reviewing a patch from you about hiding the button in release?
19:53sebastian(Can't find the bug though)
19:53mkaplysebastian: The patch I did was for prefs. The patch for about never happened. We were going to make it redirect to google play.
19:53mkaplyI think the problem here is that the updater was somehow turned on for release for 52.
19:53lizzardoh interesting
19:53mkaplybecause the code is supposed hide that button if MOZ_UPDATER is off
19:53lizzardand it should be off for 52/53?
19:55mkaplyMy understanding is that we turn the updater off for beta/release because they get updated from Google Play. At least that was what was supposed to happen
19:55lizzardyeah. i believe its off for 53 and i certainly dont see an update button in fennec 53 beta right now
19:55lizzardSo thats good?
19:55firebotBug 1289495 DUPLICATE, Do not show update button in about: if app is installed from google play
19:56mkaplyThis is interesting
19:56firebotBug 800397 NEW, Conflicting configurations for the updater on Release/Beta are confusing
19:56lizzardAnd no one is like eagerly watching for balrog data on fennec, is my other hope
19:56mkaplyso snorp Should probably be in this discussion
19:57mkaplyI guess the only open question would be does this mean the updater is turned off or on for single locale builds
19:57mkaplyWhat a mess
19:57mkaplyIt looks like that might be the reason we did it this way. But it half works
19:59* mkaply wonders if he has to say snorp three times
19:59lizzardInvoke the snorp
20:00snorpmkaply: single locale is the reason I think?
20:00snorpthat it's on
20:00mkaplySo then do we need to respin 53 with it turned back on?
20:00lizzardOh. so if its missing for single locale users then they cant update?
20:01lizzardThat doesnt sound good.
20:01lizzardwho are those users?
20:01snorpI have no idea
20:01snorpI just vaguely remember that was a thing
20:02snorpmaybe it's not anymore?
20:02lizzardI really just need to know if i have to hold back the fennec 53 release for this issue
20:02mkaplyLet me install a single locale build
20:03lizzardi bet the l1on team knows this answer
20:04mkaplyYeah. No updater on single locale. That's why we need it. For the single locales. We put up with it not working in release in exchange for it being there for single locales
20:05lizzardand thats what wed be breaking with 53 release if we dont respin
20:05lizzardugh i shoudl probably respin if we can figure out how to fix this quickly
20:05lizzardWhat do you think?
20:06lizzardCan we release on the play store but not allow single locale users to update?
20:07mkaplyWell, in theory you could release on play store but not publish single locales until they get respun.
20:07mkaplyAs long as you didn't make the single locales public yet, people wouldn't get them
20:07lizzardyeah thats what im asking releng now
20:07mkaplyAnd if anyone grabbed them from candidates, that's their problem.
20:07mkaply(until we get it fixed)
20:08lizzardThat might be my best option but im not sure how hard it is to do that
20:10lizzardmkaply: Does fennec (single locale) check for updates automatically itself or do you always have to go poke the button in the About screen?
20:11mkaplyif MOZ_UPDATER is turned off, I believe all the update infrastructure is gone. The button being gone is just a symptom.
20:12lizzardflod is saying maybe we dont or shouldnt have single locale release users
20:12lizzardand it might be mostly for new locales
20:13flodwe ask people to install aurora single locale builds for testing, since they're not available in the multilocale build
20:14flodbut those builds are on FTP, and anyone could grab them
20:15flod(they're also NOT available on
20:23floddelphine: in case ^^ (since I'm going offline in 5 minutes)
20:34njparkahunt: so.. what exactly does /gradlew clean app:assembleLocalOldDebug build?
20:34njparki somehow got FBinfer working with above build command
20:35ahuntnjpark: I think assembleLocalOldDebug assembles just the Android 4+ single-dex fennec apk
20:35ahuntnjpark: Ive been using infer ./gradlew assemble locally
20:35njparki see, so what's the std build command? ooh okay, will try that
20:35ahuntassemble builds _all_ configurations, without tests
20:35njparkinfer is now analyzing aobut 1800 files, will see what that spits out
20:36ahunt(build includes tests, and it doesnt seem worthwhile running infer on tests for now, since that doubles the number of issues it finds)
20:37njparkmake sense, yeah will do that
20:37ahuntnjpark: Ive got patches for most resource leaks, so those can probably be ignored (Bug 1356693)
20:37firebot NEW, [infer] Fix all RESOURCE_LEAK's
20:38ahunt(There are a few false positives - mostly because infer cant seem to understand MergeCursor, and one or two I need to investigate in more detail)
20:39njparkahh i see, hopefully they made improvements. was infer tried out recently?
20:40ahuntnjpark: IIRC we have infer running in automation somewhere (but it seems to be mostly ignored) - Sylvestre might know more about that
20:40ahuntnjpark: the various reports in bugzill are outdated, it looks like there used to be more false positives (which I didnt see while running an up to date infer)
20:41njparkahunt: yeah mcomella mentioned it in his pastebin- luckily it runs locally for me now, if FPs are easy to isolate, it may be worthwhile to look at since it's pretty cheap to run
20:42ahunt(Ive started working through NULL_DEREFERENCE reports and havent seen any false positives there yet - squashing those would be good since wed then be able to immediately see when newly landed code can cause an NPE, which happens a lot)
20:43njparkahunt: maybe if we can put the infer_out as tier3 in treeherder, might be useful?
20:43njparkalthough, it does look like it takes some time, so probably not like every checkin
20:44mcomellaI believe Infer constantly improves so it can be better than when I last used it
20:45ahuntIt looks like you can suppress false positives with @SuppressWarnings("infer), Ill test that when I get back to looking into infer
20:46njparki should play around with other relatively easily accessible tools as well
20:47ahuntTbh even (automatically?) emailing an infer report to the ML weekly should be enough to make it useful (once weve fixed all the existing issues that is, for now its too noisy)
20:50njparkcurious, is there like, weekly fennec android health report of some kind? I suspected not
20:51mkaplyDoes this seem right?
20:51firebotBug 1357353 UNCONFIRMED, Firefox used data activity during Sign-in soak testing
20:51mkaplyDo we really pull down over a meg of data without the user doing anything (in the first 25 hours)
20:54ahuntThe disconnect blacklist is 260k, so 413k in total for tracking protection at least isnt _entirely_ surprising (Im not sure how the firefox lists are processed, 260k is for the raw input).
20:56ahuntI think fonts are fetched via kinto ( when the app is first used, but I dont know what size theyre expected to be
21:06mkaplyDo we download the entire tracking every time? Or do we do diffs after that?
21:47snorpjchen: woooo prompts
22:03mkaplyIs this a sprint identifier?
22:04mkaply(in a bugzilla bug)
22:06nalexandermkaply: Safe Browsing V4, Milestone 8?
22:07mkaplynalexander: That makes sense.
23:12Caspy7I have repeatedly seen reports on reddit that Firefox stopped playing youtube in the background for people. Can anyone clue me in to if this is a known issue?
23:35ahuntHmm, I ran infer again and now its picking up a ton of issues in httpclientlib (it didnt complain until I rebased and did a clean build)
23:52lizzardCaspy7: not sure. on 52?
23:54Caspy7lizzard: yes
23:58Caspy7lizzard: apparently has a theory going that Youtube itself is pausing backgrounded videos as an A/B experiment.
23:58firebotBug 1353273 NEW, Background media playback not working any longer
23:59Caspy7as referenced by KWierso at
23:59lizzardcapsy7: aha. so,
23:59firebotBug 1355407 NEW, The music from youtube does not continue once the Firefox is sent to background
19 Apr 2017
No messages
Last message: 10 days and 2 hours ago