(into master) Bug 975211 - Create backend logic to provide list of Tiles and associated metadata (image, text, background color)
(external patch) Bug 911307 - Changes to top sites aren't immediately reflected in about:newtab
https://bugzilla.mozilla.org/show_bug.cgi?id=911307
DirectoryTilesProvider with sample data and placeholder image
replace providerData.thumbUrl and placeholder.jpg by providerData.imageUri and embedded base64 encoded images
Copy over getLocale() code from toolkit/mozapps/extensions/AddonManager.jsm that wraps calls with try/catch.
identity assertion in head_newtab.js
change private variable names, use pref observers
handle asynchronicity with tiles URL fetching
swap the order of actual and expected in isIdentical newtab test helper
fix private member naming style issues in DirectoryTilesProvider
remove getLinks promise return value in DirectoryTilesProvider
fat arrow on _fetchLinks asyncFetch
Remove trailing spaces.
Use different background colors for testing.
directory tiles source pref to use camelCasing
import Promises.js from the Promise.jsm module rather than commonjs
variable name change in observer add/remove
explicit string return in getLocale
catch errors from Services.prefs.getBookPref(PREF_MATCH_OS_LOCALE) separately from getLocaleComponentForUserAgent
DirectoryTilesProvider to provide newtab updates