gecko-dev/browser/extensions/loop
2016-01-07 19:07:31 +00:00
..
content Bug 1220564 - Update chrome code uses of genexprs and legacy comprehensions. (r=billm) 2016-01-06 16:02:16 -08:00
skin Bug 1205661 - Blue shade of icon in toolbar does not match other blue icons. r=mikedeboer 2016-01-07 19:07:31 +00:00
standalone Bug 1178304 - Facebook share button in conversation when waiting alone. r=dmose 2016-01-06 10:20:15 +00:00
test Bug 1178304 - Facebook share button in conversation when waiting alone. r=dmose 2016-01-06 10:20:15 +00:00
ui Bug 1219158 - update Hello FTU panel height, r=mikedeboer 2015-12-15 16:28:27 -08:00
.eslintrc Bug 1230088 - Update Loop's use of eslint and eslint-plugin-react, fix warnings in latest versions and add a few more rules. r=mancus 2015-12-03 12:18:53 +00:00
.eslintrc-gecko Bug 1223573 - Part 7. Add support in bootstrap.js for starting Loop and displaying the button. Also get all tests passing again. r=mikedeboer 2015-11-29 17:08:35 +00:00
.gitignore Bug 1223573 - Part 1. Move loop to browser/extensions/loop. r=mikedeboer 2015-11-29 17:08:34 +00:00
bootstrap.js Bug 1231808 - Hide Pause button in Infobar using CSS r=Standard8 2016-01-05 19:17:54 +00:00
build-jsx Bug 1223573 - Part 5. Update uris and paths for files in Loop's system add-on. r=mikedeboer 2015-11-29 17:08:35 +00:00
install.rdf.in Bug 1223573 - Part 4. Build system changes for Loop as a system add-on. r=mikedeboer,r=glandium 2015-11-29 17:08:35 +00:00
jar.mn Bug 1205661 - Blue shade of icon in toolbar does not match other blue icons. r=mikedeboer 2016-01-07 19:07:31 +00:00
manifest.ini Bug 1223573 - Part 1. Move loop to browser/extensions/loop. r=mikedeboer 2015-11-29 17:08:34 +00:00
moz.build Bug 1228998 - Avoid setting FINAL_TARGET in browser/extensions/loop/moz.build. r=mshal 2015-12-31 07:45:50 +09:00
README.txt Bug 1223573 - Part 5. Update uris and paths for files in Loop's system add-on. r=mikedeboer 2015-11-29 17:08:35 +00:00
run-all-loop-tests.sh Bug 1225832: partially fix UITour for Loop without navigator.mozLoop present. r=Standard8 2015-12-01 12:17:28 +01:00

This is the directory for the Loop desktop implementation and the standalone
client.

The desktop implementation is the UX built into Firefox, activated by the Loop
button on the toolbar. The standalone client is the link-clicker UX for any
modern browser that supports WebRTC.

The standalone client is a set of web pages intended to be hosted on a
standalone server referenced by the loop-server.

The standalone client exists in standalone/ but shares items
(from content/shared/) with the desktop implementation. See the README.md
file in the standalone/ directory for how to run the server locally.

Working with React JSX files
============================

Our views use [React](http://facebook.github.io/react/) written in JSX files
and transpiled to JS before we commit. You need to install the JSX compiler
using npm in order to compile the .jsx files into regular .js ones:

    npm install -g react-tools@0.12.2

Once installed, run build-jsx with the --watch option from
browser/extensions/loop, eg.:

    cd browser/extensions/loop
    ./build-jsx --watch

build-jsx can also be do a one-time compile pass instead of watching if
the --watch argument is omitted.  Be sure to commit any transpiled files
at the same time as changes to their sources.


Hacking
=======
Please be sure to execute

  browser/extensions/loop/run-all-loop-tests.sh

from the top level before requesting review on a patch.

Linting
=======
run-all-loop-tests.sh will take care of this for you automatically, after
you've installed the dependencies by typing:

  ( cd standalone ; make install )

If you install eslint and the react plugin globally:

  npm install -g eslint
  npm install -g eslint-plugin-react

You can also run it by hand in the browser/extensions/loop directory:

  eslint --ext .js --ext .jsx --ext .jsm .

Test coverage
=============
Initial setup
  cd test
  npm install

To run
  npm run build-coverage

It will create a `coverage` folder under test/

Front-End Unit Tests
====================
The unit tests for Loop reside in three directories:

- test/desktop-local
- test/shared
- test/standalone

You can run these as part of the run-all-loop-tests.sh command above, or you can run these individually in Firefox. To run them individually, start the standalone client (see standalone/README.md) and load:

  http://localhost:3000/test/


Functional Tests
================
These are currently a work in progress, but it's already possible to run a test
if you have a [loop-server](https://github.com/mozilla-services/loop-server)
install that is properly configured.  From the top-level gecko directory,
execute:

  export LOOP_SERVER=/Users/larry/src/loop-server
  ./mach marionette-test browser/extensions/loop/test/functional/manifest.ini

Once the automation is complete, we'll include this in run-all-loop-tests.sh
as well.


UI-Showcase
===========
This is a tool giving the layouts for all the frontend views of Loop, allowing debugging and testing of css layouts and local component behavior.

To access it, start the standalone client (see standalone/README.md) and load:

  http://localhost:3000/ui/