Community:SummerOfCode16/AndroidDownloadableContent: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
No edit summary
Line 7: Line 7:
* IRC: [[IRC|irc.mozilla.org #mobile]]
* IRC: [[IRC|irc.mozilla.org #mobile]]


== Groundwork ==
== Getting ready ==
 
Before starting the project and maybe even before applying for GSoC get familiar with the codebase and how to contribute patches to Firefox for Android:
 
* '''Build environment:''' Create a build environment for building Firefox for Android: [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Simple_Firefox_for_Android_build Simple Firefox for Android build]
** A "front-end" build will be enough for most of the tasks and is much faster. However if you are going to edit C++ code you will need to setup a "back-end" build.
 
* '''Write patches:''' To get familiar with the code base, the tools and creating patches, pick one of the mentor bugs that matches your skill set: [http://www.joshmatthews.net/bugsahoy/?mobileandroid=1&simple=1 Bugs Ahoy!]
** Those bugs have a mentor assigned. The mentor will help you and answer your questions.
 
== The project ==
 
=== Groundwork ===


* For downloading fonts at runtime we implemented a background service that uses a static catalog of downloadable content. [https://bugzilla.mozilla.org/showdependencytree.cgi?id=1194338&hide_resolved=0 See dependency tree].
* For downloading fonts at runtime we implemented a background service that uses a static catalog of downloadable content. [https://bugzilla.mozilla.org/showdependencytree.cgi?id=1194338&hide_resolved=0 See dependency tree].
Line 13: Line 25:
* Currently in development is a client that synchronizes the catalog of downloadable content from a Kinto server. [https://bugzilla.mozilla.org/show_bug.cgi?id=1201059 See Bug 1201059]
* Currently in development is a client that synchronizes the catalog of downloadable content from a Kinto server. [https://bugzilla.mozilla.org/show_bug.cgi?id=1201059 See Bug 1201059]


== Project tasks ==
=== Project tasks ===


=== Preparation ===
==== Preparation ====


* Create a build without hyphenation dictionaries (MOZ_EXCLUDE_HYPHENATION_DICTIONARIES)
* Create a build without hyphenation dictionaries (MOZ_EXCLUDE_HYPHENATION_DICTIONARIES)
Line 21: Line 33:
* Create or find a test page that you can use to easily test if a hyphenation dictionary by a build (For testing later).
* Create or find a test page that you can use to easily test if a hyphenation dictionary by a build (For testing later).


=== Main tasks ===
==== Main tasks ====


* [https://bugzilla.mozilla.org/show_bug.cgi?id=1175555 Bug 1175555] - Exclude hyphenation dictionaries from builds via build flag - '''Already done'''
* [https://bugzilla.mozilla.org/show_bug.cgi?id=1175555 Bug 1175555] - Exclude hyphenation dictionaries from builds via build flag - '''Already done'''
Line 31: Line 43:
* Bug ??? - Add hyphenation dictionaries to online catalog of content in Kinto
* Bug ??? - Add hyphenation dictionaries to online catalog of content in Kinto


=== Landing ===
==== Landing ====


* Bug ??? - Land your changes behind a Nightly flag
* Bug ??? - Land your changes behind a Nightly flag
* Verify that Nightly behaves correctly and the hyphenation dictionaries are downloaded
* Verify that Nightly behaves correctly and the hyphenation dictionaries are downloaded
* Bug ??? - Let your changes ride the trains
* Bug ??? - Let your changes ride the trains
=== Code ===
The existing (Java) code for downloadable content can be found in the [https://dxr.mozilla.org/mozilla-central/source/mobile/android/base/java/org/mozilla/gecko/dlc org.mozilla.gecko.dlc package].
== Follow-up project ==
For a very experienced developer the hyphenation dictionaries project could be too small for a 3 month period. There's a follow-up project about adding support for downloading localization files at runtime ([https://bugzilla.mozilla.org/show_bug.cgi?id=945123 Bug 945123]). But this project contains much more unknowns and research tasks which makes it hard to estimate.


== Bonus tasks ==
== Bonus tasks ==
Line 41: Line 61:
* There are various open follow-up bugs to improve the background service for downloading content as well as the sync client (Actual list of bugs TBD).
* There are various open follow-up bugs to improve the background service for downloading content as well as the sync client (Actual list of bugs TBD).


== Code ==
== FAQ ==


The existing (Java) code for downloadable content can be found in the [https://dxr.mozilla.org/mozilla-central/source/mobile/android/base/java/org/mozilla/gecko/dlc org.mozilla.gecko.dlc package].
* '''What are hyphenation dictionaries?'''
** Hyphenation dictionaries define how words in a specific language can be broken in parts, see [https://en.wikipedia.org/wiki/Hyphen#Separating Wikipedia]. [https://dxr.mozilla.org/mozilla-central/search?q=path%3Adic+path%3Ahyphenation&redirect=false&case=true Those are the hyphenation dictionaries in the tree].
118

edits

Navigation menu