gecko-dev/browser/components/loop
Mark Banner e884167ff5 Follow-up to bug 1142514 - make the pref name checks match the real pref name even though its spelt wrong. rs=mikedeboer over irc. 2015-04-21 15:40:01 +01:00
..
content Follow-up to bug 1142514 - make the pref name checks match the real pref name even though its spelt wrong. rs=mikedeboer over irc. 2015-04-21 15:40:01 +01:00
standalone Bug 1142588 - Implement context in conversations display for Loop's standalone UI. r=mikedeboer 2015-04-15 13:06:34 +01:00
test Bug 1142514: add tests for the context views in the Loop conversation window. r=Standard8 2015-04-21 12:07:02 +02:00
ui Bug 1154806 - Loop's ui-showcase has stopped scrolling since bug 1132301. r=mikedeboer 2015-04-17 08:34:02 +01:00
.eslintignore Bug 1150632 - Extend eslint to Loop's .jsm files. r=dmose 2015-04-04 14:43:27 +01:00
.eslintrc Bug 1150632 - Extend eslint to Loop's .jsm files. r=dmose 2015-04-04 14:43:27 +01:00
.gitignore Bug 1044796 Provide an option to Loop's standalone client makefile to create a version.txt file. r=nperriault 2014-07-30 17:13:16 +01:00
CardDavImporter.jsm Bug 972079 - CardDAV Address Importer for Loop r=MattN 2014-08-29 13:31:46 -05:00
GoogleImporter.jsm Bug 1150632 - Extend eslint to Loop's .jsm files. r=dmose 2015-04-04 14:43:27 +01:00
LoopCalls.jsm Bug 1152245 - Receiving a call whilst in private browsing or not browser windows open can stop any calls to contacts being made or received. r=mikedeboer 2015-04-08 17:12:01 +01:00
LoopContacts.jsm Bug 1079941: implement LoopContacts.search to allow searching for contacts by query and use that to find out if a contact who's trying to call you is blocked. r=abr 2014-10-16 16:35:10 +02:00
LoopRooms.jsm Bug 1142522 - Part 2 Hook up encryption for room contexts in guest mode. r=mikedeboer 2015-04-13 11:54:26 +01:00
LoopStorage.jsm Bug 1150632 - Extend eslint to Loop's .jsm files. r=dmose 2015-04-04 14:43:27 +01:00
MozLoopAPI.jsm Bug 1152733: Convert all Loop keyed histograms to be enumerated types and opt-out, which helps reporting tremendously. r=vladan,dmose 2015-04-17 11:14:55 +02:00
MozLoopPushHandler.jsm Bug 1099296 - Attach LoadInfo to remaining callers of ioService and ProtocolHandlers - websocket changes in browser/ (r=gavin) 2015-02-17 10:10:06 -08:00
MozLoopService.jsm Bug 1152733: Convert all Loop keyed histograms to be enumerated types and opt-out, which helps reporting tremendously. r=vladan,dmose 2015-04-17 11:14:55 +02:00
MozLoopWorker.js Bug 998989 - anonymize sensitive data in telemetry log. r=ekr, r=dveditz 2014-07-10 19:53:44 -04:00
README.txt Follow-up to bug 1150632 - add documentation for running eslint against Loop's jsm files. rs=dmose over irc. NPOTB DONTBUILD 2015-04-07 21:56:59 +01:00
build-jsx Bug 1045690 Ensure the correct version of react is used when building the Loop jsx files. r=Standard8 2014-09-16 11:38:59 +01:00
jar.mn Bug 1152296 - Move roomStore.js from shared code to desktop specific code for Loop. r=mikedeboer 2015-04-08 17:13:03 +01:00
manifest.ini Bug 1088006 - Hook up Loop's ui-showcase to unit tests so that we don't keep on breaking it, and so that it can possibly catch use of es6 errors. r=dmose 2015-03-12 08:04:51 +00:00
moz.build Bug 1142522 - Part 1 Share utils and crypto content modules with chrome as well. r=Standard8 2015-04-13 11:54:25 +01:00
run-all-loop-tests.sh No bug. Update Loop's run-all-loop-tests.sh to reference the new location of browser_UITour_loop.js. rs=mikedeboer over irc. NPOTB DONTBUILD 2015-04-13 14:48:02 +01:00

README.txt

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

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

    cd browser/components/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/components/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/components/loop directory:

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

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/components/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/