gecko-dev/services
Gregory Szorc 8ea5c183d9 Bug 1055102 - Properly handle Unicode in Bagheera payloads; r=bsmedberg
It was observed that FHR was sending invalid JSON payloads to the
server. Specifically, JSON payloads contained invalid Unicode strings.

Investigation revealed that the culprint was CommonUtils.convertString()
silently swallowing high bytes. When the Bagheera client went to gzip
the JSON payload, the input buffer into gzip was missing high bytes.

This patch changes the bagheera client to UTF-8 encode strings before
gzip, thus ensuring all data is preserved. A corresponding change was
also added to the mock bagheera server implementation.

Alternatively, we could have changed CommonUtils.convertString() to
be high byte aware. However, many consumers rely on this function.
This patch is written with the intent of being uplifted and the change
performed is targeted at the specific problem.

Tests for Unicode preserving behavior have been added to both the
generic Bagheera client and to FHR. The latter test is arguably
not necessary, but peace of mind is a good thing, especially with
FHR.

See also bug 915850.

--HG--
extra : rebase_source : 4efddea7767c2e5f8cf19df247c3aba07c40eec6
extra : amend_source : ae3b6d89efa54fc9ed1794404476622946ad4b22
2014-08-19 09:12:12 -07:00
..
common Bug 1055102 - Properly handle Unicode in Bagheera payloads; r=bsmedberg 2014-08-19 09:12:12 -07:00
crypto Bug 1054476 - move INSTALL_TARGETS in services/ Makefiles to EXTRA_{PP_,}JS_MODULES; r=gps 2014-07-28 15:24:01 -04:00
datareporting Bug 1054476 - move INSTALL_TARGETS in services/ Makefiles to EXTRA_{PP_,}JS_MODULES; r=gps 2014-07-28 15:24:01 -04:00
docs Bug 961146 - Refactor Health Report documentation, import external docs; r=rnewman 2014-01-22 17:47:15 -08:00
fxaccounts Bug 1053948 - declare AccountState in fxAccounts. r=gavin 2014-08-19 08:47:37 +10:00
healthreport Bug 1055102 - Properly handle Unicode in Bagheera payloads; r=bsmedberg 2014-08-19 09:12:12 -07:00
metrics Bug 1054476 - move INSTALL_TARGETS in services/ Makefiles to EXTRA_{PP_,}JS_MODULES; r=gps 2014-07-28 15:24:01 -04:00
mobileid Bug 1044792 - Send MCC and MNC on POST /sms/mt/verify. r=spenrose 2014-07-29 14:27:03 +02:00
sync Bug 1054476 - move INSTALL_TARGETS in services/ Makefiles to EXTRA_{PP_,}JS_MODULES; r=gps 2014-07-28 15:24:01 -04:00
moz.build Bug 1043820 - Remove PARALLEL_DIRS. r=gps 2014-07-29 08:57:59 +09:00