No - in the current design, the "data" portion of the addon (which is like any other website) is POSTing the data, which is why you're having issues with CORS. In this PR, you moved that code into the "lib" portion of the addon, which runs with Chrome privs and uses Request (aka system XHR) and is not bound by same-origin.

So currently:
1. "lib" collects the data (via the observer)
2. whenever "data" is opened, "lib" detects it and pushes all data collected since the last time it was opened over.
3. "data" runs a timer and sends new data every 5 minutes.

Another potential problem: since the submission loop is in "data", the addon is actually sharing data every 5 minutes *as long as the Lightbeam tab is open*. Not sure if this is what we want.

With this PR, everything's the same except there's an additional step:
4. the new submission is converted into json by "data", then sent over to "lib" to be POSTed to the upload server

What I'm proposing instead is to do all of this in "lib". "data" should only be involved in the UX (detecting the state of the opt-in toggle).