├── lib ├── user.js ├── channels.js ├── chrome-md5.js ├── rtc.js ├── startup-panel.js ├── main.js ├── sidebar.js └── sharer.js ├── site ├── blank.html ├── share-link-screenshot.png ├── share-button-screenshot.png ├── share-link-2-screenshot.png ├── bootstrap │ ├── img │ │ ├── glyphicons-halflings.png │ │ └── glyphicons-halflings-white.png │ └── js │ │ └── bootstrap.min.js ├── homepage.css ├── view-inner.html ├── share-html-inner.js ├── view.html ├── homepage.html ├── share-html.js └── client.js ├── .gitignore ├── data ├── sharing.html ├── sharing.js ├── wsecho.js ├── audio-iframe.html ├── login-iframe.html ├── startup-help.html ├── logging.js ├── login-iframe.js ├── chat-rtc.js ├── share-worker.js ├── audio-iframe.js ├── chat.html ├── rtc.js ├── user.js ├── freeze.js ├── md5.js ├── domutils.js ├── master.js └── channels.js ├── package.json ├── test ├── test_jsmirror.html └── test_diff.html ├── todo.txt ├── README.md ├── examples └── index.html └── server.js /lib/user.js: -------------------------------------------------------------------------------- 1 | ../data/user.js -------------------------------------------------------------------------------- /site/blank.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lib/channels.js: -------------------------------------------------------------------------------- 1 | ../data/channels.js -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Profile 2 | data/browsermirror.xpi 3 | -------------------------------------------------------------------------------- /data/sharing.html: -------------------------------------------------------------------------------- 1 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "browsermirror",
3 | "license": "MPL 1.1/GPL 2.0/LGPL 2.1",
4 | "author": "Ian Bicking Thanks for checking out BrowserMirror!
10 | 11 |You should see a link/button at the bottom right of the 12 | browser: share — if you don't then you need to show the 14 | Add-on Bar:
15 | 16 |Go to View > Toolbars > Add-on bar to 17 | display the bar 18 | (or read 19 | more here).
20 | 21 |Once you see the button, click it to start sharing your session. 22 | Once you are sharing you have to tell someone else; on the sidebar on 23 | the left click "share" and it will give you a link 24 | that you can give to someone else to start sharing your session.
25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /data/logging.js: -------------------------------------------------------------------------------- 1 | VERBOSE = 10; DEBUG = 20; INFO = 30; NOTIFY = 40; WARN = ERROR = 50; CRITICAL = 60; 2 | LOG_LEVEL = DEBUG; 3 | 4 | function log(level) { 5 | if (level > WARN && console.trace) { 6 | console.trace(); 7 | } 8 | if (typeof console == 'undefined') { 9 | return; 10 | } 11 | if (level < LOG_LEVEL) { 12 | return; 13 | } 14 | var args = []; 15 | for (var i=1; i
30 | $ el = document.getElementById('test1');
31 | $ writeln(serializeElement(el));
32 | [
33 | "DIV",
34 | {id: "test1"},
35 | [
36 | "\n ",
37 | ["<!--COMMENT-->", {}, [" some content: "]],
38 | "\n ",
39 | ["TEXTAREA", {name: "foo"}, ["test"]],
40 | "\n ",
41 | ["SPAN", {style: "color: red "}, ["you & me"]],
42 | "\n "
43 | ]
44 | ]
45 | $ newEl = deserializeElement(serializeElement(el));
46 | $ x = document.createElement('div');
47 | $ x.appendChild(newEl);
48 | $ writeln(x.innerHTML);
49 | <div id="test1">
50 | <!-- some content: -->
51 | <textarea name="foo">test</textarea>
52 | <span style="color: red ">you & me</span>
53 | </div>
54 |
55 |