Mobile/Get Involved

From MozillaWiki
Jump to: navigation, search

This page is the place to learn how to start contributing to Mobile Firefox, which includes Firefox for Android (a.k.a. Fennec) and Firefox for iOS.

Firefox for Android and iOS are developed by the Mozilla community. We're currently focused on making Firefox rock on Android and iOS phones and tablets. We hope this page will help you become an active member of our community! If you're looking for other ways to contribute to Mozilla, have a look at Mozilla's global page for new contributors. Either way, you should also take a look at the Mozilla Community Participation Guidelines.

If you still feel that you don't know where to start after reading this page, feel free to ping us on IRC, we can probably give you some ideas. We're always looking for ways to improve this page to make it easier to start contributing. Suggestions and general feedback are more than welcome.


Setting up a development environment for Mobile Firefox is relatively easy.

For Firefox for Android, just follow our build instructions and you'll be ready to start hacking after a couple of hours—mostly waiting for everything to compile. Unfortunately, Firefox for Android is more complicated than a basic Android app, so we recommend that you're comfortable using a command line before getting started.

While you're waiting for your build, take a look at our suggested workflow page.

For Firefox for iOS, you should follow the instructions in the Firefox for iOS github repo.

Before starting to work on a bug, you should make sure you have your development environment set up. When you're ready to start hacking, it's a good idea to add a comment to the bug report letting the mentor know that you want to work on it. Ideally, the bug report should already have relevant source code links to help you get started. If you're unsure whether to take a certain bug or not, you can always contact us for clarification. If the bug you're working on involves UI changes, request feedback from the UX team (see contact list below) before landing.


Here's a list of resources that you may find useful for hacking on Fennec. Feel free to add more if you find things are missing!


Mentor Bugs

If you are looking for a bug with guidance, we maintain a set of bugs that are marked with an assigned mentor (see "Whiteboard" field). The mentor will help you get the necessary information to understand the issue, point out relevant parts of the code to look at, etc. You can browse these bugs on Bugs Ahoy!, but here's a list of unassigned mentor bugs to get you started:

ID Summary Whiteboard
583242 Add contact support to form autocomplete (Android) [lang=java]
648548 Provide a UI to allow users to download fonts (for web content) that are missing from their system [lang=js]
701895 [IME] return key does not cause the urlbar to go to the website using simeji [testday-20111111], [VKB]
706500 ANR in keyDispatchingTimedOut due to blockage in GeckoLayerClient.compositionPauseRequested()
721117 extension to exercise hooks in Native UI
723664 Asus Transformer hardware keyboard will replace the previous character in the text box with the next character typed.
725919 Visual cursor position is different from the actual one on Etherpad [badfirstbug]
737024 Show new types of bookmarks (separator, livemark, and query) where applicable
747633 Back button behaviour should be consistent regardless of tabs open
755909 Text is selected when clicking textbox with Swype keyboard
768291 Image title is shown truncated in context menu [MTD]
795767 There is no way to see and/or undo any certificate error overrides in Firefox for Android [parity-desktop]
818994 clear private data not working when "Don't keep activities" is enabled [lang=java]
825399 Download large images ( > 5MB) to disk when setting wallpaper from context menu [lang=java]
825752 Minus key (-) generates 0 keycode instead of 109 on TF300T [lang=c++]
833045 “Clear Private Data” should notify Sync
858137 Animated GIFs not working properly on the Samsung Galaxy SII (i9100) [lang=c++][likely much investigation needed]
881510 Accept-Language header customization UI for Android
893822 addon-options-hidden doesn't Firefox for options on Mobile [lang=js]
895750 Strange doorhanger behavior - persists between tabs [lang=java]
904217 Write robocop test for switch-to-tab [lang=java]
912343 Extend testBookmarkKeyword to check for search term [lang=java]
926234 Eliminate combined_with_favicons view [lang=java][good next bug][needs SQL experience]
942653 Proxy setting support for Fennec network operations
945123 Fennec support for downloadable localization files
949045 Persist open tabs more quickly, sync all the damn time [qa+][parallel]
949637 Use LocalBroadcastManager to create more efficient and secure broadcasts [lang=java]
956079 Leaked IntentReceiver in BrowserLocaleManager
956865 Calling BrowserApp.addTab with no parameters causes odd behavior [lang=js]
959203 Experiment: Try using only XXHDPI resources
965454 Stress test home panel JS API [lang=js]
965817 Empty space at the Tools menu display - HTC Sensation 4G
966707 Delete old addons.sqlite and extensions.sqlite [lang=java]
968533 Separate Fennec-specific code and resources from generic Gecko code and resources
972042 Audit UITest's use of Solo.getView [lang=java]
972058 Disable strictmode warnings during known violations [lang=java]
972624 Add tests to ensure each device configuration has the appropriate toolbar/menu buttons [lang=java]
975212 Finish encapsulating access to profiles.ini within GeckoProfileDirectories
976511 Text cut off on panels from reading list or recent tabs for (pt-PT), (hu-HU) [lang=js]
990042 Sync Promo banner shown after account addition [good next bug][lang=js]
1001084 Remove ToolbarEditLayout [lang=java][bad first bug]
1002711 Authentication state pref remains after panel is uninstalled [lang=js]
1004153 Only show the home banner some of the time [lang=js]
1004517 Allow including local images for Home.panels imageUrl fields [bad first bug][lang=java]
1007489 Applications page (Tools > Applications) not locale-switching-aware [good second bug][lang=js]
1007793 Notify HomeProvider consumers when they're storing too much data [lang=js]
1009250 Investigate drawing efficiency in editing mode on non-animating phone devices [lang=java]
1014163 Add views to display more content in dynamic panel list items [lang=js][lang=java][bad first bug]
1015467 Add a new tab by long-tapping on the empty space of horizontal tab strip [lang=java]
1018456 (experiment) Blur effect for private tab thumbnails
1018466 (experiment) Press down to peek original thumbnail of a private tab
1018481 Pin a tab on horizontal tab strip [lang=java][ux needed]
1020738 Normal selected tab stays selected after opening a private tab [lang=java]
1021364 Tabs tray does not update strings on locale change [lang=java]
1022091 [Roku] Feature request: allow casting from local files
1022679 Add network analytics [lang=C++]
1023551 Add hooks to let add-on know when a panel is enabled/disabled [lang=java][lang=js]
1023571 Strangely poor performance on fairly simple app
1024426 [Meta] Tablet tab redesign v2 [mentor project]
1024816 Tab overflow on horizontal tab strip
1025546 Support various image views in Hub panels [lang=java][bad first bug]
1040206 Improvements to SuggestClient
1043141 [TABLET] Overflow menu button in GONE state during try run [lang=java]
1045887 Implement a simple janitor for deleting stale files
1051544 Favicon cache doesn't update history entries with favicon ids
1053397 [meta] Improve about:addons page [mentor project]
1057650 Investigate whether new_tablet_browser_toolbar can be a LinearLayout
1058149 Lock screen widget/shortcut for Guest Sessions on Android 4.2 and above [lang=java]
1061382 If background syncs are disabled, Add to Firefox can never send a tab
1065752 Lockscreen widget should prompt before starting guest mode [lang=java]
1067539 Remove OnUrlOpenListener from HomeListView
1069687 Robocop tests run against the default profile [has bitrotted patch]
1070211 Invalidate Gecko locale service when app locale changes
1071118 crash in java.lang.IllegalArgumentException: View=android.widget.PopupWindow$PopupViewContainer{420dd738 V.E..... ......ID 0,0-768,297} not attached to window manager at android.view.WindowManagerGlobal.findViewLocked(
1073412 Tab panels can get out of focus after changing the device orientation to portrait on tablets
1075550 Locale option displayed even if some fonts support are missing
1077614 Adjust width between close button and favicon in new tablet tab strip to 12dp [lang=java][bad first bug]
1078301 Search engine color can be slow to appear [lang=java][shovel-ready]
1079416 [meta] Improvements to Lightweight Theme support [mentor project]
1080671 Upload pre- and post-ProGuard javap outputs
1081877 Visited links with long urls don't show purple as expected. [lang=C++]
1084523 nothing matches overlay file [exploration needed]
1086980 Copy desktop behavior for back/forward buttons in tablet editing mode [lang=java][see comment 2]
1087654 Add about:logcat
1093199 Fix sizing issues during forward button animation [lang=java]
1093640 Improve tablet keyboard navigation [lang=java]
1093643 crash in java.lang.NullPointerException: at org.mozilla.gecko.GuestSession.isSecureKeyguardLocked(
1095719 [meta] Download hyphenation dictionaries at runtime
1098544 Add meta theme-color support to toolbar
1098657 Don't expose PageActions implementation internals to consumers [lang=js]
1101190 Remove new tablet edit_cancel button [lang=java]
1105997 Layout in settings differs on tablet rotation [lang=java][good next bug]
1110502 aboutAddons.js needs to clear add-on options dynamically inserted by add-on SDK [lang=js]
1110965 Usage of android:defaultValue and android:persistent are not consistent
1111820 Explore: layering tabs in tab strip over and under add tab button when scrolling [lang=java]
1112865 [tabs tray] Swipe to switch tabs trays [lang=java][bad next bug]
1113848 Clean up GeckoAppShell.getOpenURIIntent
1116280 Use download.launch in DownloadNotifications.jsm [lang=js]
1116571 verify profilePath is correctly set in BaseRobocopTest
1119341 Thumbnail size selection depends on TopSitesGridView
1119401 Images are shared with wrong extension [good next bug][lang=java]
1120022 Move logic to update reader mode page action icon out of browser.js [lang=js]
1122056 Move tablet action bar to cover tabs, rather than toolbar
1123040 Videos are saved with a wrong file name [good next bug]
1125043 Download notifications are cleared from Android notification bar after you enter/exit Guest Mode [lang=js]
1125050 Big space between thumbnail rows on Kindle Fire [lang=java]
1128526 "Add login" form in about:logins on mobile
1129935 fennec nightly sometimes gets two tabs for page only opened from Homescreen bookmark
1129998 Listen for LoginManagerContent events in content.js [lang=js]
1130254 Clean up DirectoryProvider to handle localized values of general.useragent.locale [good next bug][lang=js]
1130809 Batch-load thumbnails from DB [good next bug][lang=java]
1130810 Use ContentProviderClient in LocalBrowserDB [good next bug][lang=java]
1131177 Restoring defaults does not preserve ordering [lang=java][lang=js][bad first bug]
1132341 Geolocation prompt immediately dismisses on google maps [platform-rel-Google][platform-rel-GoogleMaps]
1133157 Add telemetry for reader cache record sizes [good next bug][lang=js]
1133560 Underline divider missing from top and second level search results in Android 5.0+ [lang=java]
1136325 Disable fullscreen mode when the hardware menu button is pressed [lang=java][exploration needed]
1137283 Centralize fullscreen interactions with FullScreenUtils or similar
1137737 Investigate use of colorAccent attribute in Lollipop theme [lang=java][lang=xml][exploration needed]
1137928 Share overlay unexpectedly appears in recent app stack on Android L [bad first bug][lang=java]
1137992 feature: draw theme under system bars [ux needed][exploration needed][lang=java]
1139013 Settings menu unexpectedly accessible from fullscreen mode on devices w/ hardware menu buttons [lang=java]
1140048 Add "Send to device" Shareplane to top level menu
1141142 propagate referrer policy in android [lang=js][bad first bug][tpe-seceng]
1141898 [meta] Improve about: pages [mentor project]
1142308 [research] ActionOverlayService is only killed by the system [lang=java]
1145505 screen shots of private tabs can show up in recent apps list
1148244 Investigate removing share overlay outermost FrameLayout
1148919 Robocop: Extend the testStateWhileLoading test to assert the state of the forward button too [lang=java]
1153211 download silently continues on cell mobile data
1153804 Keyboard pops up unexpectedly in the tab switcher
1154473 Pre-resolve queued URLs
1157964 [meta] Fennec UX polish [mentor project]
1158994 Draw url_bar_entry asset with code & remove assets
1160673 Investigate (and remove?) selectTab in Tabs.loadUrl
1160692 Consider removing GeckoApp.ACTION_LOAD
1161109 Don't indiscriminately sleep in Robocop tests [lang=java][good nth bug]
1161222 Be more circumspect when retrieving strings in GeckoPreferences [good next bug][lang=js]
1161667 Handle tab queues with Browser.EXTRA_APPLICATION_ID [lang=java]
1162107 [meta] Problems with add-on images in native UI [mentor project]
1165511 Rewrite testInputUrlBar to extend UITest [lang=java]
1166385 Make it possible to enable/disable quick share menu [lang=java]
1167446 Consolidate magnifying glass icons [lang=java]
1167942 Replace ListView in search list with RecyclerView
1168315 Double tapping the "-" control from reader view toolbar will zoom in the text and the toolbar with "Always enable zoom" option enabled [lang=js]
1175377 Replace about:reader png images with svg [lang=css][lang=svg]
1179015 Add SimplePush GCM router bridge to Fennec installation
1180597 Wrong display for more than two doohangers [good next bug][lang=java]
1181314 Use same assets for url bar on both phone and tablet (through scaling) [lang=java][good next bug]
1183225 [meta] v2 about:logins [mentor project]
1185777 Make the edit login show/hide button more localization friendly [mentor=ally][lang=js]
1188925 Use facebook/proguard rather than Vanilla proguard [lang=make][lang=Python][good next bug]
1192436 Ensure openNoHandler has a play store market to open, else go to fallback uri, else error [lang=java][good next bug]
1194338 [meta] Fennec support for downloadable fonts
1197440 Make forward button look enabled while animating to avoid pop in
1197866 Use a more efficient scheme for tracking visited URLs in GlobalHistory [good next bug][lang=java]
1198050 Change alpha of disabled text in menu to @color/disabled_grey [lang=java][bad first bug]
1198060 Support files in doorhanger security types [good next bug][lang=java]
1200363 [eng polish] Rejigger suggestion_item.xml to use compound drawables [good next bug]
1200521 SSL lock icon is clipped on the right, in URL bar, on Nexus 7 tablet [lang=java][good next bug]
1201054 Multiple tabs can be selected in tab tray
1201627 Unify alert_* icons across API levels [lang=java]
1207022 Refactor SearchEngineRow's update logic [good next bug]
1207876 Allow search engine suggestion count to be greater than 3 on tablets
1207948 FHR data upload remains disabled in about:telemetry regardless the state of FHR pref in settings [unifiedTelemetry] [measurement:client] [lang=js] [good next bug]
1208195 Show sites opened from Android home screen bookmarks as separate entries in the Android recent apps list
1208577 Change appearance of quick share button in toolbar menu [lang=java]
1208757 Stop preprocessing mobile/android/chrome/content/about.{js,xhtml} [lang=js][good next bug]
1209475 Search Suggestion prompt is not displayed if the user switches device orientation [lang=java][good next bug]
1212629 Consolidate green checkbox icons [lang=java]
1213760 Scroll refresh action should not be visible when switching calendar section [lang=java]
1215304 Don't marquee page URL in share overlay, truncate instead [lang=java]
1216307 Remove unused method hasOtherSyncClients [lang=java]
1216312 Remove unused icon_shareplane [lang=java]
1216971 Browser toolbar is highlighted when tapping margin at the edge of the screen
1217174 Implement helper UI for send to device when user is not ready to send a tab (e.g. no account) [lang=java][see comment 13]
1219042 Correct StrictMode violation work-around in FirefoxAccounts.getPickledAccount [lang=java]
1222538 Escape hatch improvement: Show notification and offer download of correct APK
1222647 ViewStub ActionModeCompatView [lang=java]
1226650 Ensure that bulk-deleting history, form history, search terms, and logins results in deletions being synced
1227954 Incorrect redirect page result after tapping on signed in account [lang=java]
1229378 Don't create an ImageContainer for each frame [2016-GBT-Y]
1232863 Investigate adding Facebook screenshot-tests regression tool to automation
1234967 Open and delete bookmarks by ID instead of by URL when possible.
1235090 Update settings l10n notes to indicate that preference titles don't wrap
1238068 Tab is lost if crash occurs after tab queue notification is tapped [lang=java]
1243953 Shortened URL should be displayed while loading pages [lang=java]
1244278 Fetch verified about: pages dynamically instead of using browser.js whitelist [good next bug][lang=js]
1245556 Dismiss Tab Queue Notification Permission from notification bar when choosing "Go to Settings" [lang=java][good next bug]
1247999 [meta] Prototype a native login manager
1251053 Make Android Unit tests run in parallel [lang=java][good next bug]
1251642 TestBrowserProvider should test ContentResolver.query
1252336 Remove unnecessary LinearLayout from OverlayDialogButton [lang=java][good next bug]
1253119 Pressing tabs tray button or menu button hides first run with no obvious way to get it back
1258575 Add regression test for setting a homepage
1259137 Create custom android lint check to prevent unnecessary support library classes from returning
1259170 FeedService: Insert feed for websites in one step
1259179 Extend testBrowserProvider to test new UrlAnnotations methods (FeedService)
1259256 Continue investigating replacing AppCompat methods with built-in framework methods, post GB, to save APK size
1259267 Rename URLMetadata and its inheritors to *URLImageData* [lang=java][good next bug]
1259519 Try to disentangle Context from SearchEngineManager [lang=java]
1260474 [meta] Move ContentProviderTests to unit tests
1260582 Investigate GeckoProfile initialization in onCreate
1260927 Add action to “reload” page for “Showing cached version” snackbar [good next bug]
1261037 Cleanup resource overlays: Make v15 our new baseline [good next bug][lang=java]
1261979 [infer] Errors in GeckoProfile [lang=java][good next bug]
1261981 [infer] Errors in LocalBrowserDB [lang=java][good next bug]
1261984 [infer] Errors in BitmapUtils [lang=java][good next bug]
1261986 [infer] Errors in SearchEngineManager [lang=java][good next bug]
1261987 [infer] Errors in Tab* [lang=java][good next bug]
1261988 [infer] Errors in PageActionLayout [lang=java][good next bug]
1261989 [infer] Errors in SiteIdentityPopup [lang=java][good next bug]
1261991 [infer] Errors in INIParser [lang=java][good next bug]
1261992 [infer] Errors in Firefox Accounts [lang=java][good next bug]
1261994 [infer] Errors in ActivityChooserModel [lang=java][good next bug]
1261996 [infer] Errors in sync [lang=java][good next bug]
1261997 [infer] Errors in sync repositories [lang=java][good next bug]
1262285 Update copy for empty state of Combined History to promote Sync [lang=java][good first bug]
1262795 After tab queue is enabled from the prompt, only the second external link opened is put in tab queue [lang=java][good next bug]
1263059 [checkstyle] Add CAST to WhitespaceAfter [lang=java]
1263693 Investigate use of strictmode-notifier in local builds
1266057 Shrinking unoptimized PNGs
1268613 Consider replacing java.util.timer* with android Handler class [lang=java]
1269478 Remove code that assumes SearchEngineRow is clickable [lang=java][see comment 3]
1277117 Move Gecko env var mapping code to IntentUtils.getEnvVarMap
1286137 Text selection action bars inconsistent [lang=java][lang=js][good next bug]
1286698 Distribution leaks a Context
1288871 Fennec should offer to fill in passwords for other Android apps
1290557 Add basic notification tests [lang=java]
1298347 Refresh cached reader-view content when updated original page is available [lang=js][good next bug]
1301448 Reading List smart folder title should be 14sp [lang=java][good next bug]
1320521 Duplicate bookmarks create duplicate shortcuts in the Top Sites Panel
1349797 Domain autocompletion is case-sensitive [good next bug][lang=java]
1351269 [meta] GSoC 2017: Android WebExtensions
1358429 play video on Youtube are always stuck
1381747 "browser.display.history.maxresults" pref can be removed [good first bug]

236 Total; 236 Open (100%); 0 Resolved (0%); 0 Verified (0%);

Whiteboard tags

There are some whiteboard tags we use to characterize introductory bugs. Click the links below to see the list of those bugs!


If you want to help us find issues on the latest Fennec releases, join the Mobile QA team and participate in the breadth of areas that are offered. We're always looking for assorted Android Device coverage and a breadth of website compatibility testing.

Start by filing Firefox for Android Issues or converse directly with us on IRC about the bugs you find. Or watch the Events calendar for upcoming Mobile Testdays on focused topics! Testdays are an interactive opportunity to participate in real time with other community testers on testing and debugging.

Finally, subscribe to our bi-monthly newsletter on the latest and greatest in Fennec features!

Useful links:


Join our amazing volunteer support community dedicated to helping people get the most out of Firefox Mobile!

  1. Create an account on SUMO - Creating an account gives you access to answering questions and editing articles about Firefox Mobile, where we give you credit for your contributions.
  2. Answer support questions - Share your knowledge of Firefox Mobile by pointing people to the right help articles and providing troubleshooting steps for their individual questions. View and reply to the unanswered mobile support questions.
  3. Improve the Knowledge Base - If you like to write or teach, improving the articles in the Knowledge Base is great way to help thousands of people each week. Currently we are looking for contributors to document the new Camera UI feature in Firefox Mobile and the new Tablet UI.



To keep in touch with the Mobile team on a daily basis, you should hang out on the #mobile channel at irc:// We're always there, in different timezones. You can read the general Mozilla IRC wiki page for more details about joining IRC.

#mobile tries to be new contributor friendly. We love it when new folks want to get involved. It's totally reasonable to just sign-on, introduce yourself, and listen to the chatter. And always ask your questions! But be patient: folks are busy and you might need repeat your question, or come online at different times of day, to get feedback.

If you want to talk to people from specific areas or have any questions, here are a few people you can ping:

  • Android front-end: liuche, margaret, mcomella, sebastian, ahunt, mfinkle, nalexander, rnewman
  • iOS: st3fan, sleroux, bnicholson, jhugman, fluffyemily
  • Android platform: blassey, esawin, gcp, jchen, kats, rbarker, snorp, droeh
  • QA: AaronMT, kbrosnan
  • Design: antlam, tecgirl, darrin
  • Marketing: mhan
  • Support: rolandtanglao, rrayborn
  • Project management: jchaulk
  • Product management: kar, bbermes, mpopova

Mailing list

Subscribe to the mobile-firefox-dev mailing list to follow and participate in development discussions.


For the latest developments, updates, pro-tips and happenings in the world of Firefox on Android, you should follow @FennecNightly on Twitter. You can also read our development blogs on planet mobile.

You should also be able to find us in the mobile Mozillians group.


  • [good first bug] - a whiteboard comment that means this bug is a great one to start with. These bugs are ready for you to work on as soon as you have a development environment configured. Good first bugs should be small and include detailed instructions explaining what needs to be done.
  • [good second bug] - a whiteboard comment that means this is a great bug to follow your first bug with. These bugs are ready for you to work once you've submitted a patch and gotten review on your first bug. They should be small and include some instructions about what needs to be done.
  • [bad first bug] - a whiteboard comment that means this bug looks very simple but is harder than it looks! Consult the bugs mentor or ask in #mobile about tackling it if you think you're ready.