Giter VIP home page Giter VIP logo

signal-muon's Introduction

Build Status

Signal Muon

UPDATE (10/31/17): This project is no longer actively maintained since https://signal.org/blog/standalone-signal-desktop/ is out now.

Signal Desktop built on top of Muon so you can run it without Google Chrome.

THIS IS NOT PRODUCTION READY. Use at your own risk. I am in no way affiliated with WhisperSystems.

Installing

Prerequisites

You must have git, node 7.x, and either npm or Yarn installed. Then:

git clone --recursive https://github.com/diracdeltas/signal-muon.git
cd signal-muon
npm install

Building

With npm:

npm run build

With Yarn:

yarn run build

Then open the app in the build directory logged in the console. Ex: open Signal-darwin-x64/Signal.app/ on MacOS.

Updating

First fetch changes:

git pull origin master
git submodule update --recursive

If you are updating by a MAJOR or MINOR version number (ex: 0.0.3 to 0.1.0, or 0.1.0 to 1.0.0), run the following step to get an updated version of chromium. If you are updating by a PATCH version (ex: 0.0.2 to 0.0.3), skip the following step.

npm run muon-update

Then re-build the package.

Running in development mode

To run in development mode with the Signal staging server (no need to pair with a mobile device), do npm/yarn start instead of npm/yarn run build.

Caveats

In development mode, you can only message accounts that are registered on the Signal staging server, so you will probably be very lonely unless you want to talk to other Signal contributors. If you want someone to talk to, my test number is (oldest telephone area code in San Francisco) + (decimal char code of capital Epsilon) + (the 513th prime).

If you want to link Signal-Muon to your mobile device so that you can talk to your contacts, you need to do a build.

signal-muon's People

Contributors

asafonov avatar bs avatar diracdeltas avatar mammuth avatar maxkorp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

signal-muon's Issues

Indication of unread messages on app icon

I can only speak for macOS and Ubuntu with Unity. But there, the Signal-Desktop Icon bounces or glows if there are unread messages.

Such a behavior indicating unread messages is currently missing in Signal Muon.
Maybe Muon allows us to even improve the behavior of Signal-Desktop by additionally displaying a badge with the count of unread messages.

Maybe not needed for a MVP

Window size is not saved

Steps to reproduce:

  • Open Signal Muon
  • Resize the window to your needs
  • Close Signal Muon
  • Open it again

Expected Result: The window has the size that was previously set by the user
Actual Result: Window is again 800x700

@diracdeltas are those issues welcomed or not needed/wished?

Missing License and Version Info

v1.4.31
Linux Chrome Version 56.0.2924.87 (64-bit)

Add an "About" screen with License and Version Number (or put both at the bottom of the settings screen)

Extension Load Error on Start

Hello,

I am running on Ubuntu 16.04 with Node 7.7.2.

I followed the installation steps, and run npm start and receive the following output:

> [email protected] start /home/foobar/Code/signal-muon
> node ./tools/start.js --debug=5859 --enable-logging --v=0 --enable-extension-activity-logging --enable-sandbox-logging --enable-dcheck

extension load error 

Make it difficult to attack

When main window is created in main.js it better have webPreferences.nodeIntegration = false or better webPreferences.sandbox = true in eletron's terms.
Without this, we are not using electron/muon's gift for secure software, which is a possibility to keep sensitive stuff in core/main, and all UI in renderer processes, isolated from each other as much as possible.
Call it security in depth. Others call it lazy security.

I realize, you are working with existing code, porting from electron to muon. Thus, as part of reshuffling, you have a chance to make it better.

When you split all crypto, sessions, whatnot into main process, and have UI in sandbox-ed renderer, then it would be possible to try out UI skins written by others. Like a cat-themed UI :) , for example. Removing the worry about UI effort messing up critical parts. The lazy thing is a proper reference here at minute 52.

Can't create window after closing it on Mac

When all windows are closed, on mac the app still stays running (as added intentionally). However, a window should be able to be recreated, when clicking on the icon of the running app. That's the common macOS behavior.

Reproduce:

  • Open Signal Muon
  • Close it by eg. clicking on the red close-button
  • Click on the icon in the dock of the still running app

Expected: A new window spawns
Actual: Nothing happens

Signal doesn't start as an app but does launch in debugging mode

Since before the 0.2.0 launch Signal has been failing to launch for me. Before that it worked without a problem.
Self-built with yarn run build or the pre-built package found under the releases here both don't open a window when I start them even though its process is active in the activity monitor, the icon shows active in the Dock and in the screen.

When I launch in debugging mode from yarn run however the window opens without a problem.

It seems likely to be a graphics issue as this has started to happen around the same time that the bundled Muon (from Signal) tries to read my Brave GPUCache at ~/Library/Application Support/brave/ShaderCache/GPUCache/index. When I start the app in debugging mode it asks for read access to a lot of Brave files but not the GPU cache and launches without problem.

This is on a first generation Retina Macbook (Early 2015) on an updated MacOS Sierra (10.12.4 currently).

Clarity about chrome

It sounds like brave is using chromium. Electron is using chromium. Am I missing some difference between the two uses? Licensing?

Bad MAC address errors | MacOS X(signal dmg pre-release) + Android sync (nexus5) | v0.0.1

I tested syncing with my Android (Nexus 5) Signal app.

Note (my blundah): I just noticed there is a 0.0.2, this test was run on .01 - will attempt on .02 tomorrow, but wanted to share these results in case they have been experienced in 0.0.2.

  • Sync initiates and completes via QR code scan
  • Email contacts and verified phone contacts import, but unverified SMS contacts that I message with on my phone do not (probably expected behavior, can't recall right now).
  • Texted my own #, and it worked.
  • Texted verified signal contact, and it worked.
  • Keyed a contact # that I regularly SMS with, received unverified user error (probably expected)

For verified users things appear to work pretty well from a functional level.

I did run into some errors on import from sync:

  • Dates are Jan 1 on a lot of the errors
  • Received a lot of these BAD MAC errors

1489226995690

Hope this helps. Can double check the above tomorrow from the latest version.

App won't open at all

Thought at first it was related to #33 but it never starts up (rather app starts, about works, but no window ever comes up). Tried rebooting, no help there. Digging around but not finding anything yet. Very familiar with electron but first time ever looking at a muon project.

OSX 10.12.4 (16E195)
MacBook Pro (Retina, 15-inch, Mid 2015)
2.2 GHz Intel Core i7
16 GB 1600 MHz DDR3
Intel Iris Pro 1536 MB

node v7.5.0
npm v4.1.2

Messaging myself

v1.4.31
Linux Chrome Version 56.0.2924.87 (64-bit)
Android 7.0

So I sent myself some messages (which is weird) and the replies dont show up in the Desktop App but do in Android 7.0

s3

s4

dark theme shows a white border

if you go to Settings > Theme and select Android (dark), there is an ugly white border around the edge of the window which is otherwise dark. the white border is also present in the other themes, but is is less noticeable/ugly in those.

Click on the "Attach" button does nothing

When I click "Attach" button, nothing happens, only one string in console:

"[15939:0307/165918:INFO:CONSOLE(49)] "index.html: ", source: chrome-extension://iopnjipkpnmbpjaalcjcpcbfcnjknmmo/js/debugLog.js (49)"

App doesn't use system-language and date-time format

The app always uses english and the english date-time format.

Switching the line in js/i18n.js:
let localesFile = chrome-extension://iopnjipkpnmbpjaalcjcpcbfcnjknmmo/_locales/en/messages.json
to the local language works as a hack for the messages

in js/chromium.js the function:

i18n.getLocale = function() {
    if (window.chrome && chrome.i18n) {
        return chrome.i18n.getUILanguage();
    }
    return 'en';
};

Always returns 'en' even if the system language is another language.

If implementing a date or time input field in a html form, the english standard is used (YYYY-MM-DD and 12 hour time format)

Focus message box when the app gets focus

Do:

  • Have Signal in foreground
  • Open another app so Signal is in background
  • Focus Signal again

Expected: The message box of the first conversation should be focused so the user can immediately type
Actual: Message box is not focused

Problem: Build on windows fails

I show you in detail what the problem is. I'm running Node.js version: 8.4.0. NPM version: 5.3.0.
Step-by-step procedure:
I create a carpet on the local disk D called Signal Muon. I open the Git Bash and I write (with results):

Cyberhack@Cyberhack-PC MINGW32 /d/Signal Muon
$ git clone --recursive https://github.com/diracdeltas/signal-muon.git
Cloning into 'signal-muon'...
remote: Counting objects: 215, done.
Receiving objects: 68% (147/remote: Total 215 (delta 0), reused 0 (delta 0), pa ck-reused 215
Receiving objects: 100% (215/215), 98.37 KiB | 585.00 KiB/s, done.
Resolving deltas: 100% (110/110), done.
Submodule 'Signal-Desktop' (https://github.com/diracdeltas/Signal-Desktop.git) r egistered for path 'Signal-Desktop'
Cloning into 'D:/Signal Muon/signal-muon/Signal-Desktop'...
remote: Counting objects: 22251, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 22251 (delta 2), reused 0 (delta 0), pack-reused 22247
Receiving objects: 100% (22251/22251), 48.63 MiB | 1.05 MiB/s, done.
Resolving deltas: 100% (12905/12905), done.
Submodule path 'Signal-Desktop': checked out '1316ebe2502d9b44752b265abcf5e99f3c 00c57a'

Cyberhack@Cyberhack-PC MINGW32 /d/Signal Muon
$ cd signal-muon

Cyberhack@Cyberhack-PC MINGW32 /d/Signal Muon/signal-muon (master)
$ npm install

[email protected] postinstall D:\Signal Muon\signal-muon\node_modules\electron-prebuilt
node install.js

added 338 packages in 71.99s

Cyberhack@Cyberhack-PC MINGW32 /d/Signal Muon/signal-muon (master)
$ npm run build

[email protected] build D:\Signal Muon\signal-muon
node ./tools/buildPackage.js

Building in Signal-win32-x64
echo cleaning up target...&&(if exist Signal-win32-x64 rmdir /s /q Signal-win32-x64)&&(if exist Signal-win32-ia32 rmdir /s /q Signal-win32-ia32)&&(if exist dist-x64 rmdir /s /q dist-x64)&&echo done&&echo starting build...&&node ./node_modules/electron-packager/cli.js . Signal --overwrite --platform=win32 --arch=x64 --version=4.0.3 --icon=img/icon.ico --asar=false --app-version=0.3.0 --build-version=4.0.3&&(if not exist Signal-win32-x64\resources mkdir Signal-win32-x64\resources)&&xcopy /e /i Signal-Desktop Signal-win32-x64\resources&&"node_modules/rcedit/bin/rcedit.exe" ./Signal-win32-x64/Signal.exe --set-version-string "SquirrelAwareVersion" "1"
cleaning up target...
done
starting build...
Packaging app for platform win32 x64 using electron v4.0.3
Fatal error: Unable to load file
undefined
buildPackage failed { Error: Command failed: echo cleaning up target...&&(if exist Signal-win32-x64 rmdir /s /q Signal-win32-x64)&&(if exist Signal-win32-ia32 rmdir /s /q Signal-win32-ia32)&&(if exist dist-x64 rmdir /s /q dist-x64)&&echo done&&echo starting build...&&node ./node_modules/electron-packager/cli.js . Signal --overwrite --platform=win32 --arch=x64 --version=4.0.3 --icon=img/icon.ico --asar=false --app-version=0.3.0 --build-version=4.0.3&&(if not exist Signal-win32-x64\resources mkdir Signal-win32-x64\resources)&&xcopy /e /i Signal-Desktop Signal-win32-x64\resources&&"node_modules/rcedit/bin/rcedit.exe" ./Signal-win32-x64/Signal.exe --set-version-string "SquirrelAwareVersion" "1"
Packaging app for platform win32 x64 using electron v4.0.3
Fatal error: Unable to load file
undefined

at ChildProcess.exithandler (child_process.js:270:12)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at maybeClose (internal/child_process.js:927:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)

killed: false,
code: 1,
signal: null,
cmd: 'echo cleaning up target...&&(if exist Signal-win32-x64 rmdir /s /q Signal-win32-x64)&&(if exist Signal-win32-ia32 rmdir /s /q Signal-win32-ia32)&&(if exist dist-x64 rmdir /s /q dist-x64)&&echo done&&echo starting build...&&node ./node_modules/electron-packager/cli.js . Signal --overwrite --platform=win32 --arch=x64 --version=4.0.3 --icon=img/icon.ico --asar=false --app-version=0.3.0 --build-version=4.0.3&&(if not exist Signal-win32-x64\resources mkdir Signal-win32-x64\resources)&&xcopy /e /i Signal-Desktop Signal-win32-x64\resources&&"node_modules/rcedit/bin/rcedit.exe" ./Signal-win32-x64/Signal.exe --set-version-string "SquirrelAwareVersion" "1"' }
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] build: node ./tools/buildPackage.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Cyberhack\npm-cache_logs\2017-08-28T11_49_12_002Z-debug.log

fresh install: app opens with no windows

  • cloned the repo
  • npm install
  • npm run build
  • open Signal-darwin-x64/Signal.app

App opens, but… nothing. The Signal menu just has "About Application" and "Quit".

For reference this is 58765f3. sw_vers:

ProductName:	Mac OS X
ProductVersion:	10.12.3
BuildVersion:	16D32

Please let me know if there's any more useful diagnostic info I can provide.

Clicking new message notification raises an exception on Mac

Steps to Reproduce

  1. Someone sends you a message
  2. A notification dialog appears in the top right corner of the screen
  3. You think "Oh, neat! Someone out there still likes me. Let's see what they have to say..."
  4. You click on the notification dialog

Expected Behavior

The app is focused, and the new message (that triggered the notification) is displayed.

Observed Behavior

screen shot 2017-03-06 at 1 50 49 am

AUR package install fails

Here's the error i get:

> [email protected] postinstall /tmp/yaourt-tmp-tyler/aur-signal-muon-git/src/signal-muon/node_modules/electron-prebuilt                                                  
> node install.js                           

module.js:487                               
    throw err;                              
    ^                                       

Error: Cannot find module 'electron-download'                                           
    at Function.Module._resolveFilename (module.js:485:15)                              
    at Function.Module._load (module.js:437:25)                                         
    at Module.require (module.js:513:17)    
    at require (internal/module.js:11:18)   
    at Object.<anonymous> (/tmp/yaourt-tmp-tyler/aur-signal-muon-git/src/signal-muon/node_modules/electron-prebuilt/install.js:10:16)                                            
    at Module._compile (module.js:569:30)   
    at Object.Module._extensions..js (module.js:580:10)                                 
    at Module.load (module.js:503:32)       
    at tryModuleLoad (module.js:466:12)     
    at Function.Module._load (module.js:458:3)                                          
npm ERR! code ELIFECYCLE                    
npm ERR! errno 1                            
npm ERR! [email protected] postinstall: `node install.js`                        
npm ERR! Exit status 1                      
npm ERR!                                    
npm ERR! Failed at the [email protected] postinstall script.                     
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.                                                                               

npm ERR! A complete log of this run can be found in:                                    
npm ERR!     /home/tyler/.npm/_logs/2017-07-14T16_36_49_499Z-debug.log                  
==> ERROR: A failure occurred in prepare(). 
    Aborting...                             
==> ERROR: Makepkg was unable to build signal-muon-git.                                 
==> Restart building signal-muon-git ? [y/N]
==> ----------------------------------------

Build on windows fails

Building the package only works when commenting out some options in tools\buildPackage.js out:

cmds = cmds.concat([
'node ./node_modules/electron-packager/cli.js . Signal' +
' --overwrite' +
' --platform=' + process.platform +
' --arch=' + arch +
' --version=' + electronVersion +
// ' --icon=' + appIcon +
' --asar=false'
// ' --app-version=' + signalVersion +
// ' --build-version=' + electronVersion
])

also the command "mkdir" doesn't know the flag "-p" on windows:
// cmds.push('mkdir -p ' + extensionsPath)

Registering an existing number goes nowhere (npm)

"license": "MPL-2.0",
"version": "0.0.1",
Linux stalane 4.4.0-66
Linux Chrome Version 56.0.2924.87 (64-bit)

Launched npm start
Added existing number
Received SMS code
Register button does nothing:

Terminal output:

s7

Console error:

s8

sending message fails with 'empty device list' error

when i try to send a message, it shows up as unsent and the debug log shows something like:

2017-03-06T08:05:02.072Z GET https://textsecure-service-staging.whispersystems.org:80/v2/keys/+[REDACTED]/1
2017-03-06T08:05:02.938Z GET https://textsecure-service-staging.whispersystems.org:80/v2/keys/+[REDACTED]/1 200 Success
2017-03-06T08:05:03.129Z PUT https://textsecure-service-staging.whispersystems.org:80/v1/messages/+[REDACTED]
2017-03-06T08:05:03.233Z PUT https://textsecure-service-staging.whispersystems.org:80/v1/messages/+[REDACTED]911 409 Error
2017-03-06T08:05:03.235Z deleting session for  +[REDACTED].1
2017-03-06T08:05:03.249Z OutgoingMessageError
2017-03-06T08:05:03.249Z Got empty device list when loading device keys Error
    at chrome-extension://iopnjipkpnmbpjaalcjcpcbfcnjknmmo/js/libtextsecure.js:30:33
    at chrome-extension://iopnjipkpnmbpjaalcjcpcbfcnjknmmo/js/libtextsecure.js:136:3
    at chrome-extension://iopnjipkpnmbpjaalcjcpcbfcnjknmmo/js/libtextsecure.js:39653:3

Keyboard events do not work

Closing preview attachment box by pressing Esc code doesn't work, but the code is present in subproject. Looks like keyboard events are not tracked by webview

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.