Commit Graph

962 Commits

Author SHA1 Message Date
Dan Finlay daaac17be2 Fix dev tasks for multi browser copying 2016-07-28 10:50:14 -07:00
Dan Finlay a259dfad25 Merge pull request #497 from MetaMask/FixBuild
Fix nondeterministic build
2016-07-27 17:03:47 -07:00
Dan Finlay 7f00ee43ba Fix nondeterministic build
We used to be able to copy static resources while we built js, but now part of the copy task is copying firefox built files into chrome, so they need to be done in order.

This could probably be optimized a bit more, but for now it builds reliably again.
2016-07-27 16:58:00 -07:00
Dan Finlay ba21195a49 Merge pull request #496 from MetaMask/Version2.7.1
Version 2.7.1
2016-07-27 16:51:39 -07:00
Dan Finlay 43784e2143 Version 2.7.1 2016-07-27 16:49:11 -07:00
Dan Finlay 482e15c573 Merge pull request #493 from MetaMask/droppo-fix
Droppo fix
2016-07-27 01:29:01 -07:00
Kevin Serrano f8f8e78c55 Changelog add. 2016-07-27 15:34:12 +09:00
Kevin Serrano cf14eb4043 Merge branch 'master' into droppo-fix 2016-07-27 15:32:12 +09:00
Kevin Serrano 3a4744dec1 Fix menu droppo issues caused by Chrome 52. 2016-07-27 15:31:30 +09:00
Dan Finlay 7a8d049732 Merge pull request #492 from MetaMask/FixChromeBuild
Fix chrome build
2016-07-26 17:38:22 -07:00
Dan Finlay c759bc5871 Correct typo comment 2016-07-26 17:25:15 -07:00
Dan Finlay 32335434e3 Merge branch 'master' into FixChromeBuild 2016-07-26 17:15:36 -07:00
Dan Finlay 0b620026c2 Fix copy task 2016-07-26 17:13:52 -07:00
Dan Finlay 7fe3170c6f Enhance manifest details 2016-07-26 17:02:54 -07:00
Dan Finlay c6ec3fc714 Cleanup Changelog 2016-07-26 17:02:31 -07:00
Dan Finlay 407d2e884b Merge remote-tracking branch 'origin/Version2.7.0' into FixChromeBuild 2016-07-26 17:01:48 -07:00
Dan Finlay 79ce99db07 Merge pull request #491 from MetaMask/FixChromeBuild
Fix chrome build
2016-07-26 16:51:54 -07:00
Dan Finlay de5a2bf9bc Fix chrome build 2016-07-26 16:48:48 -07:00
Dan Finlay ec5b1b6159 Merge pull request #489 from MetaMask/FixDeploySteps
Fixed deploy instructions
2016-07-26 16:41:06 -07:00
Dan Finlay a1e1a6544e Fixed deploy instructions 2016-07-26 16:04:26 -07:00
Dan Finlay 89ff78a4e1 Merge pull request #488 from MetaMask/BuildsFolder
Store versioned builds in builds folder
2016-07-26 15:41:10 -07:00
Dan Finlay 5276897668 Store versioned builds in builds folder 2016-07-26 15:35:48 -07:00
Dan Finlay 2368c2993d Add platform specific builds and zip tasks (#486)
* Add platform specific folders to dist folder

* Remove gulp hacks

* Add platform specific bundling

dev and dist tasks now build into platform-specific folders within the `dist` folder.

Added tasks `gulp zip` and `gulp dist`.

`zip` builds the platform-specific folders into platform-specific bundles within the `dist` folder.

`dist` builds and then zips all at once.

* Fix chrome bundle zipping

* Fix broken reference in eth warning

* Fix but where web3.eth.accounts are not available in firefox.

* Bump changelog
2016-07-26 15:15:40 -07:00
kumavis 04f755a132 Merge pull request #482 from MetaMask/FirefoxCompatibility
Fix inpage script race condition
2016-07-26 10:37:10 +09:00
Dan Finlay 0eb7354c1a Bump changelog 2016-07-25 17:51:28 -07:00
Dan Finlay b43b9f13e9 Fix integration tests 2016-07-25 17:47:14 -07:00
Dan Finlay be74589f49 Fix extension tests 2016-07-25 17:33:22 -07:00
Dan Finlay d484cb8f51 Merge branch 'master' into FirefoxCompatibility 2016-07-25 16:43:03 -07:00
Dan Finlay 11dfb8e869 Ui testing (#481)
* Add UI Testing Framework and Simple UI Test

Added a Testem configuration that launches a Qunit page with an iFrame that builds and loads our mock-dev page and can interact with it and run tests on it.

Wrote a simple test that accepts the terms and conditions and transitions to the next page.

I am not doing any fancy redux-hooks for the async waiting, I've simply added a `tests/integration/helpers.js` file with a `wait()` function that returns a promise that should wait long enough.

Long term we should hook into the app lifecycle by some means for testing, so we only wait the right amount of time, and wait long enough for slower processes to complete, but this may work for the time being, just enough to run some basic automated browser tests.

* Separate UI tests from normal unit test suite

* Add UI tests to CI test script

* Add testem and phantom to circleCI pre-script

* Fix circle pre script

* Move pre scripts to dependencies key

* Remove phantom from build deps

* Fix testem runner page

* Add promise polyfill for PhantomJS

* Skip PhantomJS in testem

* Run browser tests in parallel

* Fix promise usage?

* Correct skip usage
2016-07-25 16:42:39 -07:00
Dan Finlay 913a9e85bd Inject inpage script synchronously
Huge thanks to the Firefox team, for their help on the issue of our long-standing inpage script race condition.

http://stackoverflow.com/questions/38577656/how-can-i-make-a-firefox-add-on-contentscript-inject-and-run-a-script-before-oth

The problem is that we were injecting a `script` tag and assigning its `src` attribute, which triggers an asynchronous fetch request, and does not guarantee execution order! (That was news to me!)

Instead, I'm now assigning the `script` tag a `textContent` value of the script to inject, and it seems to fix the problem!

There is also a Firefox-only API that could solve this whole problem in an even more elegant way, so we might want to expose a code path for that solution later on:

https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.exportFunction

Allows you to expose an object from one scope to another. There was even talk of creating a polyfill for it that does virtually what we do, message passing between contexts.
2016-07-25 16:38:07 -07:00
Dan Finlay 6fa1d6efff Add note about firefox stackoverflow to readme 2016-07-25 14:50:19 -07:00
Dan Finlay dcd1665e90 Add note about mozilla irc 2016-07-25 14:03:53 -07:00
Dan Finlay b07bbc14e1 Clean up extension polyfill abstraction 2016-07-25 13:46:33 -07:00
Dan Finlay 0880721d84 Add firefox instructions to readme 2016-07-25 13:36:30 -07:00
Dan Finlay f3ea891e72 Allow page injection to look for cross-browser APIs appropriately 2016-07-25 13:28:38 -07:00
Dan Finlay 5476cb9a2c Correct skip usage 2016-07-22 17:09:50 -07:00
Dan Finlay 6b3ffc9e5d Fix promise usage? 2016-07-22 17:08:17 -07:00
Dan Finlay ae6fa76241 Run browser tests in parallel 2016-07-22 17:03:37 -07:00
Dan Finlay f12394f7d5 Skip PhantomJS in testem 2016-07-22 17:02:59 -07:00
Dan Finlay 9f4f5f4bce Add promise polyfill for PhantomJS 2016-07-22 16:58:35 -07:00
Dan Finlay b939da8508 Fix testem runner page 2016-07-22 16:52:01 -07:00
Dan Finlay 11ef342c61 Remove phantom from build deps 2016-07-22 16:39:55 -07:00
Dan Finlay b37b2bcbdc Move pre scripts to dependencies key 2016-07-22 16:34:53 -07:00
Dan Finlay ee3a2a65de Fix circle pre script 2016-07-22 16:30:56 -07:00
Dan Finlay bf1bfdf87a Add testem and phantom to circleCI pre-script 2016-07-22 16:28:35 -07:00
Dan Finlay c15ff7164e Add UI tests to CI test script 2016-07-22 16:23:52 -07:00
Dan Finlay 2e61102147 Separate UI tests from normal unit test suite 2016-07-22 16:20:43 -07:00
Dan Finlay b724dd009c Add UI Testing Framework and Simple UI Test
Added a Testem configuration that launches a Qunit page with an iFrame that builds and loads our mock-dev page and can interact with it and run tests on it.

Wrote a simple test that accepts the terms and conditions and transitions to the next page.

I am not doing any fancy redux-hooks for the async waiting, I've simply added a `tests/integration/helpers.js` file with a `wait()` function that returns a promise that should wait long enough.

Long term we should hook into the app lifecycle by some means for testing, so we only wait the right amount of time, and wait long enough for slower processes to complete, but this may work for the time being, just enough to run some basic automated browser tests.
2016-07-22 15:43:30 -07:00
Kevin Serrano bf5f1df20e Merge pull request #477 from MetaMask/MockDev
Add mock dev mode
2016-07-21 19:05:54 -07:00
Dan Finlay 5b4e2ffeac Add mock dev mode 2016-07-21 18:08:35 -07:00