From MozillaWiki
< Features‎ | Mobile‎ | webapps
Jump to: navigation, search

Overview - Web Apps Integration in Firefox for Android

Feature Release Target Dev Lead QA Lead Dev Status QA Status Health
Web Apps Integration in Firefox for Android Firefox 16 Mark Finkle Aaron Train, Jason Smith In Progress In Planning OK


In essence, the goal of web application support in mobile is to expose web apps to users of Firefox for Android. Users should be able to access and manage their apps have ability discover new apps and to have a seamless online apps experience.

Web applications are essentially websites built in web technologies (e.g, HTML, CSS, JavaScript) that users can interact with through a 'chrome-less' window in a native environment (e.g, Android). These web applications intent to act exactly like native applications on the operating system. For a website to become a web application, a developer creates an app manifest for their website and hosts it on an origin (e.g, www.yourhost.com) where the website is located. Then, the app developer adds this manifest to a store (e.g, Firefox Marketplace) to allow the app to be installed on ones machine or mobile device. Users can then go to this store to install any aforementioned application to their native device; manage ones application, launch ones application and or remove it.

For paid applications, users will have to pay for the application through PayPal. Upon making the application payment, a user's device receives a receipt to prove that the application is paid for. A user can then install the paid for application to their device. Upon attempt to install, a confirmation will appear confirming the installation to ones device; upon installation, a user should understand where the application was installed to (Android).

After applications are installed, users can then run these applications in their native environment in a chromeless shell both online and offline. If the application is paid, validation will need to take place using the receipt for the application to ensure that the user paid for the application. On Android, applications are typically ran as shortcuts on the Android home-screen or through the Application dashboard (currently accessible via the chrome URL: about:apps). When an application is launched, a chromeless window starts using Firefox's WebApp mode under the hood with the web application running in the shell. Within the shell, users can interact within the application such as logging in, clicking links within the origin of the application, play a game, and more. Within the shell itself, users have a menu to allow basic applications such as quitting.

If the users no longer wants the application installed on ones device, they can uninstall the application from within Firefox. On Android; uninstalling currently occurs by visiting the application dashboard, selecting the application and invoking a context menu on it with the option to 'Uninstall'. Upon uninstalling an application, all locally stored data that is previously created during installation should be cleared.

Testing Scope

Major Features

For our rounds of testing feature focused testing will focus on the following areas:

  • Web Apps Integration
    • Installing Web Apps
    • Launching Web Apps
    • Using Web Apps
    • Uninstalling Web Apps

Software Qualities

The following software qualities that need to be analyzed are (ordered by priority):

  1. Security
  2. Availability & Resilience
  3. L10N
  4. Location
  5. Performance & Scalability

Edge Cases

The following special edge cases need to be taken into account when testing the major parts of this feature:

  • Browser crashes
  • Loss of internet connection (e.g. offline mode)
  • App state changes (i.e. free to paid, paid to free)
  • Invalid or no receipts for paid apps

Testing Strategy

Akin to desktop there will be a similar and or shared testing strategy. Please see this testing strategy.

Sign Off Criteria


  • No bugs found with flagged as Aurora blockers from Aurora test cases
  • Aurora-level (Phase 1) functional test cases pass
  • Aurora-level (Phase 1) tier 1 app scenario test cases pass
  • No unresolved bugs with Aurora blockers that cause Aurora-level test failures
  • Software Quality Requirements (?)


  • Tier 1 app scenario aurora and beta test cases all pass
  • Aurora and Beta-level (Phase 1) functional test cases pass
  • No unresolved bugs with a severity level of major or higher that cause Aurora or Beta test cases to fail
  • No regressions in Firefox linked to the features code changes detected with a severity of major or higher
  • Software Quality Requirements (?)


  • No bugs found with a severity level of major or higher in test cases
  • All major functional test cases pass
  • Tier 1 app scenario test cases pass
  • No unresolved bugs with a severity level of major or higher that causes tests to fail
  • Software Quality Requirements (?)

Infrastucture Requirements

Test Cases and Results

Test Cases

  • Manual test cases can be found in Moztrap: Web App Integration - Smoke Tests
  • Manual test cases can be found in the Spreadsheet: Google Spreadsheet
  • Exploratory test cases of tier 1 apps can be found in the Spreadsheet: <link>
  • Tier 1 app scenario tests can be found in the Spreadsheet: <link>



Open Bugs

ID Summary Priority Status
741624 Custom message for offline/unreachable apps. P2 NEW
766299 Pop-up windows outside of the main app window need to be shown as so, along with ability to close them P2 NEW
766300 Style doorhangers for WebApps P3 NEW
767376 Support registering webapps as protocol handlers P3 NEW
776677 Catch errors thrown from Webapps.js and show to user P2 NEW
783790 Launching a web app from about:apps persists a not-so-good-looking grey background on the app icon on about:apps P3 NEW
783792 Nit - overuse of dead space on right side of the about:apps UI with multiple apps installed P3 NEW
784108 share credentials with apps P2 NEW
785932 No way to clear doorhanger settings set in a web app P3 NEW
790401 Dashboard not listing newly installed/registered applications — browser re-launch required P2 NEW
790461 Integration of add-ons and webapps P3 NEW
792651 Web Apps should have the ability to specify storage requirements in the permissions property P2 NEW
792876 Add support for multiple orientations in the app manifest for web apps on ff android P3 NEW
793783 Add the name of the app being loaded in the splashscreen during initial startup of the app P3 NEW
817691 Reinstall a web app should refresh the browser cache P3 NEW
818205 Add support for Google Play campaign parameters to Firefox for Android P2 NEW
826780 Splash screen background color is not right for open webapp P3 NEW
839821 Allow passing 'name' and 'icon' with the URL as WEBAPP intent -- NEW
851119 Horoscopo app is not correctly displayed if it is opened in landscape mode P2 NEW
851854 Disable GlobalHistory when running a WebApp P2 NEW
851855 Disable BrowserProvider when running a WebApp P2 NEW
852685 Move DIRECTORY_NAME from Webapps.jsm to AppUtils.jsm P3 NEW
854328 Robocop: Add support for WebApp testing using Robocop P2 NEW
859660 install hosted app that loads appcache, cut network, start app -- app fails with "Firefox can't establish a connection" P2 NEW
863034 Make org.mozilla.gecko/WebApp transparent to minimize the flash when launching a URL based webapp -- NEW
863037 Create a group of reusable, temporary "slots" for URL based webapps P1 NEW
863048 Read app name and splash color from URL launcher Intent and use to create a splash screen P1 NEW
865647 Dungeon Fury fails to load with InvalidStateError P1 NEW
866777 Implement support for the fullscreen app manifest property P2 NEW
872942 "Planet defense" can't be used P3 NEW
879662 Bug 872987 - [WebPayment] [Android] Expose ICC info to the payment provider P2 NEW
883121 Replace inefficient call to navigator.mozApps.mgmt.getAll(); on startup of a Webapp. P3 NEW
889037 Flip on b2g device api's when apps request them in their manifest P2 NEW
898901 Execute test_signed_apps-marketplace.js on Android P2 NEW
915274 Disable the webapps actor in Firefox for Android until it's properly supported P3 NEW
925087 Appcached web apps not being cached on at least Firefox for Android P2 NEW
934482 Android runtime should expose API to "share a picture" P3 NEW
940605 Provide a text selection action mode for webapps P1 NEW
957058 implement WebappOSUtils.isLaunchable for Android P3 NEW
957060 migrate non-APK-installed apps to synthetic APKs P2 NEW
957061 translate Android intents to web activities P2 NEW
957063 notify user and clean up when app install/uninstall process fails P1 NEW
957065 uninstall synthetic APK when web page with privileges calls mozApps.mgmt.uninstall() P1 NEW
960703 Manifest icon not used for synthesized APK in Android 2.3 P3 NEW
965284 Leaked receiver on application swipe off P3 NEW
966480 screen.mozLockOrientation did not work on a Nexus 4 device. -- NEW
967208 StrictMode violation in file:// Uri exposed through Intent.getData() in startActivityForResult P3 NEW
967331 installing packaged app fails with "JSONException: Value undefined… cannot be converted to JSONObject" P3 NEW
970061 Tapping update notification does nothing when browser not running P1 NEW
970131 Takes about a minute of inactivity before Android requests installation on old device P2 NEW
970210 display determinate progress meter while downloading webapp updates P3 NEW
973114 Cut The Rope opens in portrait mode despite manifest.orientation property P1 NEW
973942 Crash on application launch when installed via Guest Browsing P1 NEW
976340 Installation fails with java.io.FileNotFoundException when using Google Install and Verify option P1 NEW
980018 Visible access to non web app context functionality P3 NEW
982548 "Check for Updates" opens Marketplace after previously opening Marketplace via "Browse the Firefox Marketplace" P2 NEW
983688 Re-use existing 'no updates available' notification on check for updates P2 NEW
985515 Unable to install web apps on LG Slider P2 NEW
985604 Fosnews crashes aurora (Fx30) when launching after installation P1 NEW
986085 User-hand-holding to check the Unknown Sources checkbox. P1 NEW
986222 add app's icon to Home screen on installation P1 NEW
986958 WeatherFox is unable to get my location, when installed as open web app via Firefox Marketplace on Android P2 NEW
986962 GeckoEventDispatcher dispatchEvent no listeners for various events P3 NEW
987687 crash in java.lang.NullPointerException: at org.mozilla.gecko.webapp.ApkResources.getManifestUrl(ApkResources.java) P2 NEW
987790 Installed web apps should prefer their source app P3 NEW
987795 [Honeycomb] launcher crash in Android's createIconBitmap on application install (com.android.launcher) P2 NEW
988615 launching sideloaded app on emulator throws NullPointerException at InstallHelper.copyApplicationZipFile P3 NEW
988978 Updated APKs downloaded, but not installed. P1 NEW
988980 during upgrade of open webapps, error: "an existing package by the same name with a conflicting signature is already installed" P1 NEW
989057 Crash in java.lang.SecurityException: Permission Denial: reading org.mozilla.gecko.db.BrowserProvider uri content://org.mozilla.fennec.db.browser/flags?profile=webapp0 P2 NEW
989086 Web App permission granted/denied settings (and other app state) are preserved across uninstall/install cycle, with no obvious way how to clear them P1 NEW
989655 Audio from Web Apps is paused/disabled when screen is turned off (e.g. with SoundCloud, News Podcasts) P1 NEW
990139 allow users to ignore an available update P2 NEW
990274 make "Web App" generic name for legacy shortcut localizable P3 NEW
990959 remove or reuse initial tab when app is ready to load P3 NEW
994982 add allocated but unregistered app to registry on launch P1 NEW
994983 merge UninstallListener.doUninstall and EventListener.uninstallWebapp P2 NEW
994984 sideloaded/directly-installed APKs show wrong splash screen color on firstrun P3 NEW
996068 manifest/minifest mismatch causes packaged app to hang on launch P3 NEW
997644 After Fennec update to a version with Synthetic APKs, the updated apps can not be launched from about:apps P2 NEW
999991 Notification text if no updates for installed web apps available too long/cropped in some languages P2 NEW
1001862 Support short_name in web app manifests on Android P2 NEW
1003551 checking for updates does some work before displaying notification P3 NEW
1003553 Check for Updates… is enabled when you don't have any apps P3 NEW
1003555 app installation fails silently on devices without SD cards P2 NEW
1003561 enable user to restart a stalled manual app update check P2 NEW
1005292 Impossible to open external links from Twitter open web app (since they spawn new tabs, which don't work in open web apps) P1 NEW
1007231 Installing X-Type from Firefox Marketplace on Nexus 4 uses generic android app icon P2 NEW
1008325 this.target is undefined while trying to uninstall an app P3 NEW
1008327 disable slow script dialog for Android runtime P2 NEW
1017232 Implement Power Management WebAPI for Android P1 NEW
1017233 Make the Mobile Connection WebAPI work on Android P2 NEW
1017234 Implement WiFi Connection API on Android P2 NEW
1017868 make webapp update notifications expandable P3 NEW
1017881 use coordinating conjunction in webapp update notifications' list of apps to update P3 NEW
1020493 Kill the prebaked WebApp activities P1 NEW
1021226 clicking on notifications in tray doesn't bring app to foreground P2 NEW
1023574 respond to mozApps.mgmt.uninstall requests after APK uninstallation succeeds/fails P2 NEW
1024533 Support Apple webapp definitions -- NEW
1024724 Can't install app if Fennec is in Italian P1 NEW
1025021 Text edit options broken when in a webapp P1 NEW
1026262 Launching uninstalled app fails, silent NPE P1 NEW
1029033 'pick' webactivity action doesn't return file content P1 NEW
1032416 RingTone App installed from alternate marketplace disappears P2 NEW
1033011 don't show location bar on subdomain of origin's domain P2 NEW
1040161 Refactor sideload install code to make use of addInstalledApp in Webapps.jsm P3 NEW
1041399 Update Notifications Despite No Apps Installed P1 NEW
1044771 crash in java.lang.IllegalArgumentException: Receiver not registered: org.mozilla.gecko.webapp.InstallListener@<addr>: at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java) when activities are destroyed on stop P1 NEW
1045815 Handle 503 responses from the Android APK generator P1 NEW
1048327 Android runtime should honor appcache_path property of app manifest P2 NEW
1049698 Get some automated testing for webapps P1 NEW
1051651 Every web app APK ever is kept in Downloads P2 NEW
1052298 Line Runner starts in portrait orientation P2 NEW
1067465 Error message/notification when trying to install app in guest mode restricted to 2 lines, cut off in many locales P2 NEW
1068047 [Gingerbread] Weird spinning animation on synthetic apps install button -- NEW
1082676 Packaged app on android shows origin -- NEW
1097261 don't show standard context menu, but do show custom one for elements with contextmenu attribute -- NEW
1103358 Possible to open new tabs in a webapp but impossible to switch to them -- NEW
1114631 [parity] Detect "web app capable" sites using meta mobile-web-app-capable or meta application-name -- NEW
1117136 On Android, the DeviceStorage API only finds files in the internal storage, not in the external SD Card -- NEW
1119669 Dismissing app update notifications brings Fennec to the foreground -- NEW
1132417 Capturing volume-up button press does not work -- NEW
1149586 You should not be able to install same app twice -- NEW
1152513 Autophone - webappstart no WEBAPP STARTUP COMPLETE detected in Beta/Release -- NEW
1158819 Support specification of the profile directory for webapps -- NEW
1159258 crash in android.util.SuperNotCalledException: Activity {org.mozilla.fennec/org.mozilla.gecko.webapp.Webapps$Webapp1} did not call through to super.onCreate() at android.app.ActivityThread.performLaunchActivity(ActivityThread.java) -- NEW
1183670 Add telemetry to track the number of webapp runtime launches -- NEW
1189236 crash in java.lang.NullPointerException: Attempt to invoke virtual method ''boolean java.lang.String.equals(java.lang.Object)'' on a null object reference at org.mozilla.gecko.webapp.WebappImpl.onTabChanged(WebappImpl.java) -- NEW
1222712 Firefox crashes when trying to open a link in browser in Tfe RSS -- NEW
1222717 Web Apps not using imported certificates -- NEW

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

Open Bugs: WebRT : Blocking 1

ID Summary Priority Status
738545 Provide opt-in installation of Marketplace Application upon loading of Firefox for Android at a common Firefox for Android location (about:home?) P1 RESOLVED
741621 Mozilla Marketplace activity should open for marketplace URLs P1 VERIFIED
766094 Disable telemetry prompt on chrome-less application launch P1 VERIFIED
766260 Default icon for Webapps pointing to invalid icons P1 VERIFIED
766275 Default context menu for webapps P1 VERIFIED
766389 Add snippet on home screen to advertise the Marketplace P1 VERIFIED
766802 Clicking target=blank links in a web app should load those links in the browser P1 VERIFIED
766808 Cannot launch apps with icons using a relative url P1 VERIFIED
769840 Change the maximum number of apps allowed to be installed in firefox for android to some larger number P1 VERIFIED
771915 Show the origin of the page in the chrome of the app when it is different from webapp's origin P1 VERIFIED
772162 Disable webapps support on FF 15 P1 VERIFIED
779490 Unable to install an application with unicode characters (UTF-8) within the name P1 VERIFIED
781060 All apps should use the same webapp database P1 VERIFIED
781061 System Notifications are broken in webapps P1 VERIFIED
785496 Marketplace app installs 4 shortcuts on dekstop P1 VERIFIED
786058 Disable webapps support on FF 16 P1 VERIFIED
786826 java.lang.NoSuchMethodError: android.content.SharedPreferences$Editor.apply at org.mozilla.gecko.WebAppAllocator.findAndAllocateIndex(WebAppAllocator.java) on Froyo P1 RESOLVED
787188 Hold off on about:home marketplace promo for now P1 RESOLVED
791612 "other origin" bar persists after pressing Back button to return to same-origin page P1 VERIFIED
793750 After starting up the Marketplace app through FF Android in Open with app, then returning to FF Android and reaccessing marketplace.mozilla.org on a new tab, nothing happens P1 VERIFIED
799221 Turn off the marketplace as an app for now -- VERIFIED

21 Total; 0 Open (0%); 3 Resolved (14.29%); 18 Verified (85.71%);

Open Bugs

ID Summary Priority Status

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

Open Bugs: WebRT : Blocking ?

ID Summary Priority Status
776600 Implement the "orientation" property of the app manifest for web apps on Android P1 RESOLVED
784468 Launching an application from the installation success notification from within an application opens the browser instead -- RESOLVED
790392 launching Marketplace from Android notification displays persistent white screen -- VERIFIED

3 Total; 0 Open (0%); 2 Resolved (66.67%); 1 Verified (33.33%);

Open Bugs

ID Summary Priority Status

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

Open Bugs by Severity

Bugs Needing Verification by Severity



Open Questions