diff --git a/CHANGELOG.json b/CHANGELOG.json index dcffaa5c..e9dc7992 100644 --- a/CHANGELOG.json +++ b/CHANGELOG.json @@ -1,4 +1,30 @@ [{ + "version": "2.0.4", + "channel": "beta", + "releasedAt": 1483002596589, + "urgency": "low", + "changes": { + "General": [ + "Remove custom context menu (temporarily) to fix crashes." + ], + "Windows": [ + "Fix RightAlt+I opening dev tools." + ] + } +}, { + "version": "2.0.3", + "channel": "beta", + "releasedAt": 1482919367144, + "urgency": "low", + "changes": { + "General": [ + "Update Electron to v1.4.13." + ], + "Linux": [ + "Remove special treatment for Elementary OS." + ] + } +}, { "version": "2.0.1", "channel": "beta", "releasedAt": 1473193961005, @@ -13,7 +39,7 @@ }, { "version": "2.0.0", "channel": "beta", - "releasedAt": 1472106609428, + "releasedAt": 1472191336102, "urgency": "low", "changes": { "General": [ diff --git a/CHANGELOG.md b/CHANGELOG.md index ac991f9f..73b59076 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,30 @@ -## [2.0.1-beta](https://github.com/Aluxian/Facebook-Messenger-Desktop/tree/v2.0.1) (2016-06-09) +## [2.0.4-beta](https://github.com/Aluxian/Messenger-for-Desktop/tree/v2.0.4) (2016-29-12) -[Full Changelog](https://github.com/Aluxian/Facebook-Messenger-Desktop/compare/v2.0.0...v2.0.1) • [Download](https://github.com/Aluxian/Facebook-Messenger-Desktop/releases/tag/v2.0.1) +[Full Changelog](https://github.com/Aluxian/Messenger-for-Desktop/compare/v2.0.3...v2.0.4) • [Download](https://github.com/Aluxian/Messenger-for-Desktop/releases/tag/v2.0.4) + +**General** + +- Remove custom context menu (temporarily) to fix crashes. + +**Windows** + +- Fix RightAlt+I opening dev tools. + +## [2.0.3-beta](https://github.com/Aluxian/Messenger-for-Desktop/tree/v2.0.3) (2016-28-12) + +[Full Changelog](https://github.com/Aluxian/Messenger-for-Desktop/compare/v2.0.1...v2.0.3) • [Download](https://github.com/Aluxian/Messenger-for-Desktop/releases/tag/v2.0.3) + +**General** + +- Update Electron to v1.4.13. + +**Linux** + +- Remove special treatment for Elementary OS. + +## [2.0.1-beta](https://github.com/Aluxian/Messenger-for-Desktop/tree/v2.0.1) (2016-06-09) + +[Full Changelog](https://github.com/Aluxian/Messenger-for-Desktop/compare/v2.0.0...v2.0.1) • [Download](https://github.com/Aluxian/Messenger-for-Desktop/releases/tag/v2.0.1) **General** @@ -8,9 +32,9 @@ - Various fixes and improvements. - Dependency updates. -## [2.0.0-beta](https://github.com/Aluxian/Facebook-Messenger-Desktop/tree/v2.0.0) (2016-25-08) +## [2.0.0-beta](https://github.com/Aluxian/Messenger-for-Desktop/tree/v2.0.0) (2016-25-08) -[Download](https://github.com/Aluxian/Facebook-Messenger-Desktop/releases/tag/v2.0.0) +[Download](https://github.com/Aluxian/Messenger-for-Desktop/releases/tag/v2.0.0) **General** diff --git a/README.md b/README.md index 7c51717f..fca37dba 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,16 @@ # Messenger for Desktop 2 -[![OS X build](https://travis-ci.org/Aluxian/Facebook-Messenger-Desktop.svg?branch=staging)](https://travis-ci.org/Aluxian/Facebook-Messenger-Desktop) -[![Windows build](https://ci.appveyor.com/api/projects/status/9j09atict8yqvrsw/branch/staging?svg=true)](https://ci.appveyor.com/project/Aluxian/Facebook-Messenger-Desktop) -[![Linux builds](https://circleci.com/gh/Aluxian/Facebook-Messenger-Desktop/tree/staging.svg?style=shield)](https://circleci.com/gh/Aluxian/Facebook-Messenger-Desktop) +[![OS X build](https://travis-ci.org/Aluxian/Messenger-for-Desktop.svg?branch=staging)](https://travis-ci.org/Aluxian/Messenger-for-Desktop) +[![Windows build](https://ci.appveyor.com/api/projects/status/2oar528hietbc77t/branch/staging?svg=true)](https://ci.appveyor.com/project/Aluxian/Messenger-for-Desktop) +[![Linux builds](https://circleci.com/gh/Aluxian/Messenger-for-Desktop/tree/staging.svg?style=shield)](https://circleci.com/gh/Aluxian/Messenger-for-Desktop) [![Downloads total](https://updates.messengerfordesktop.com/badge/downloads.svg)](https://updates.messengerfordesktop.com/stats) [![Services status](https://img.shields.io/badge/services-status-blue.svg)](https://status.messengerfordesktop.com/) -[![HuBoard task board](https://img.shields.io/badge/hu-board-7965cc.svg)](https://huboard.com/Aluxian/Facebook-Messenger-Desktop) -[![Join the chat](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Aluxian/Facebook-Messenger-Desktop) +[![HuBoard task board](https://img.shields.io/badge/hu-board-7965cc.svg)](https://huboard.com/Aluxian/Messenger-for-Desktop) +[![Join the chat](https://badges.gitter.im/Join%20Chat.svg)][1] A simple & beautiful desktop client for [Facebook Messenger](https://www.messenger.com/). Chat without distractions on OS X, Windows and Linux. Not affiliated with Facebook. This is **NOT** an official product. -> **@devs:** If you're willing to help improve, fix or maintain the app, I can make you a collaborator to help me. [Join me on Gitter](https://gitter.im/Aluxian/Facebook-Messenger-Desktop) and let's chat! - - +> **@devs:** If you're willing to help improve, fix or maintain the app, I can make you a collaborator to help me. [Join me on Gitter][1] and let's chat! ## Features @@ -25,7 +23,7 @@ A simple & beautiful desktop client for [Facebook Messenger](https://www.mes ## How to install -**Note:** If you download from the [releases page](https://github.com/Aluxian/Facebook-Messenger-Desktop/releases), be careful what version you pick. Releases that end with `-beta` are beta releases, the ones that end with `-dev` are development releases, and the rest are stable. If you're unsure which to pick, opt for stable. Once you download the app, you'll be able to switch to another channel from the menu. +**Note:** If you download from the [releases page](https://github.com/Aluxian/Messenger-for-Desktop/releases), be careful what version you pick. Releases that end with `-beta` are beta releases, the ones that end with `-dev` are development releases, and the rest are stable. If you're unsure which to pick, opt for stable. Once you download the app, you'll be able to switch to another channel from the menu. - **dev:** these releases get the newest and hottest features, but they are less tested and might break things - **beta:** these releases are the right balance between getting new features early while staying away from nasty bugs @@ -70,7 +68,7 @@ sudo apt-key adv --keyserver pool.sks-keyservers.net --recv 6DDA23616E3FE905FFDA # Add my repository to your sources list (skip if you've done this already) # Replace with stable, beta or dev (pick stable if you're unsure) -echo "deb https://dl.bintray.com/aluxian/deb main" | +echo "deb https://dl.bintray.com/aluxian/deb/ main" | sudo tee -a /etc/apt/sources.list.d/aluxian.list # Install Messenger for Desktop @@ -104,11 +102,11 @@ sudo yum install messengerfordesktop.x86_64 # for 64-bit distros Repository URL: https://aur.archlinux.org/packages/messengerfordesktop/ -[LR]: https://github.com/Aluxian/Facebook-Messenger-Desktop/releases +[LR]: https://github.com/Aluxian/Messenger-for-Desktop/releases # For Developers -Contributions are welcome! Please help me make *Messenger for Desktop* the best app for Facebook Messenger. For feature requests and bug reports please [submit an issue](https://github.com/Aluxian/Facebook-Messenger-Desktop/issues/new?labels=bug) or get in touch with me on [Gitter](https://gitter.im/Aluxian/Facebook-Messenger-Desktop) or Twitter [@aluxian](https://twitter.com/aluxian). +Contributions are welcome! Please help me make *Messenger for Desktop* the best app for Facebook Messenger. For feature requests and bug reports please [submit an issue](https://github.com/Aluxian/Messenger-for-Desktop/issues/new?labels=bug) or get in touch with me on [Gitter][1] or Twitter [@aluxian](https://twitter.com/aluxian). ## Build @@ -256,3 +254,5 @@ Make sure you've installed [fpm](https://github.com/jordansissel/fpm). 2. In order to build, push to `staging`. Every push to `staging` will make the CIs build the app and upload it to Bintray at [aluxian/artifacts](https://dl.bintray.com/aluxian/artifacts/staging/), available for testing. 3. After a version is tested and is ready for release, push it to `deploy`. This will rebuild the app and upload it to GitHub, Bintray and other repositories. 4. Now, the code is ready to be merged into `master`. + +[1]: https://gitter.im/Aluxian/Facebook-Messenger-Desktop diff --git a/appveyor.yml b/appveyor.yml index 249d1583..27e6ff1c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -30,7 +30,7 @@ environment: SQUIRREL_UPDATES_URL: secure: BNlChGRei/OKFGO3EQIc2yVSlm11vzsw/Uz65zjTUw4Ir3FfSlHOY02WMhPBI6Su IS_IC_FUSION_STR_AUTH_KEY: - secure: pvzSRQOpU6vFJmJohnjxXLTL9a8hSaHpRq051AUAms39EhrMtH8HhTtlDceSDRNJGthWvDD7S5+R8XAIWH+K39G6wushNDMhsnQjNk4JvRc2IXz3LH0gPsHJ0vcoxPJkMx58Ws/1O3NC4ec2QO5LDlD/uO9JX6O9oe3YC91ehUyWKszpFTwCBfWUg5LbO1X1hbx/DfZibR9GLz0GrPTzCC1Cbxhk5MeIXZyaRVlz6K33UJzQkutZaIG3p1j0FV8cDVwwuneoDvtvGYSrEl/OudI+BGPQbvRausx+uW+RRunujxrBHSmwTTZ1gDft5JEYUfeIM7je33oGbBa8KgXAkhm2E9pn1mJD/0Gcp60jViuKcW+ib9FSvSE6HOAumz6t + secure: Nyl2MrQfsmP8som8z+I7xegL97zfWP3GHY071fbwL84AyQOjykewmJ29SrwQS9j2U+OdMZVaHb7p5D56svi4DYDee9tZp6hDnLJENvlFgAK+TUPxBjdQf1RCtLvyMXBkuqKcJkvr95XU1l06Zr3UQ77MnHyqJZh5BKH+14F0/YSI2MqN0iM9SLmPolU6mzMw/IKhzRxuOIKB7rKONuHwsr501t0Pd/EH3PsRg3B6X9FnrPi0FAj7ctJTnF3lwTO02hJKQqda0n6px6byJxQl37X4ULgQ1qHEVrC+YOUuciISj1TE/OT+XqzAjewPM6zgxKu//qHQcUJu85+NcPuLvEXKceG3vjV0lNnVQbyrtRbokVtESgBjwzfWifyiFdF6 cache: - "node_modules -> package.json" diff --git a/design.sketch b/design.sketch index b8f7877c..d9042c56 100644 Binary files a/design.sketch and b/design.sketch differ diff --git a/package.json b/package.json index 264cbdd0..ce1a6a1a 100644 --- a/package.json +++ b/package.json @@ -1,46 +1,46 @@ { "name": "messengerfordesktop", "dependencies": { - "asar": "0.12.3", - "async": "2.0.1", + "asar": "0.12.4", + "async": "2.1.4", "babel-plugin-default-import-checker": "1.0.8", "babel-plugin-transform-runtime": "6.15.0", - "babel-preset-es2015": "6.14.0", - "babel-preset-stage-0": "6.5.0", - "beeper": "1.1.0", - "coffee-script": "1.10.0", + "babel-preset-es2015": "6.18.0", + "babel-preset-stage-0": "6.16.0", + "beeper": "1.1.1", + "coffee-script": "1.12.2", "colors": "1.1.2", - "cross-spawn": "4.0.0", + "cross-spawn": "5.0.1", "del": "2.2.2", "electron-windows-installer": "1.4.4", - "fs-extra-promise": "0.4.0", + "fs-extra-promise": "0.4.1", "gulp": "3.9.1", "gulp-babel": "6.1.2", "gulp-electron-downloader": "0.1.6", "gulp-filter": "4.0.0", - "gulp-github-release": "1.2.0", + "gulp-github-release": "1.2.1", "gulp-header": "1.8.8", - "gulp-if": "2.0.1", - "gulp-less": "3.1.0", - "gulp-mustache": "2.2.0", + "gulp-if": "2.0.2", + "gulp-less": "3.3.0", + "gulp-mustache": "2.3.0", "gulp-plumber": "1.1.0", "gulp-rename": "1.2.2", - "gulp-sourcemaps": "1.6.0", + "gulp-sourcemaps": "1.9.1", "gulp-zip": "3.2.0", - "moment": "2.14.1", + "moment": "2.17.1", "rcedit": "0.7.0", - "request": "2.74.0", - "require-dir": "0.3.0" + "request": "2.79.0", + "require-dir": "0.3.1" }, "devDependencies": { "babel-eslint": "6.1.2", - "coffeelint": "1.15.7", - "eslint": "3.4.0", + "coffeelint": "1.16.0", + "eslint": "3.12.2", "eslint-config-standard": "5.3.5", "eslint-plugin-babel": "3.3.0", "eslint-plugin-promise": "2.0.1", - "eslint-plugin-standard": "2.0.0", - "lesshint": "2.1.0" + "eslint-plugin-standard": "2.0.1", + "lesshint": "2.4.0" }, "optionalDependencies": { "appdmg": "0.4.5" @@ -57,11 +57,11 @@ "homepage": "https://messengerfordesktop.com/", "repository": { "type": "git", - "url": "https://github.com/Aluxian/Facebook-Messenger-Desktop.git", + "url": "https://github.com/Aluxian/Messenger-for-Desktop.git", "aur": "ssh+git://aur@aur.archlinux.org/messengerfordesktop.git" }, "icon": { - "url": "https://raw.githubusercontent.com/Aluxian/Facebook-Messenger-Desktop/master/resources/win/app.ico" + "url": "https://raw.githubusercontent.com/Aluxian/Messenger-for-Desktop/master/resources/win/app.ico" }, "bintray": { "subject": "aluxian", @@ -70,6 +70,6 @@ "gpgpub": "6DDA23616E3FE905FFDA152AE61DA9241537994D" }, "bugs": { - "url": "https://github.com/Aluxian/Facebook-Messenger-Desktop/issues" + "url": "https://github.com/Aluxian/Messenger-for-Desktop/issues" } } diff --git a/resources/darwin/app.icns b/resources/darwin/app.icns index f68750ce..94fe3268 100644 Binary files a/resources/darwin/app.icns and b/resources/darwin/app.icns differ diff --git a/resources/darwin/dmg.icns b/resources/darwin/dmg.icns index 3a3122fe..cf8044e3 100644 Binary files a/resources/darwin/dmg.icns and b/resources/darwin/dmg.icns differ diff --git a/resources/linux/icons/128.png b/resources/linux/icons/128.png index 9a5319ee..7f62b2eb 100644 Binary files a/resources/linux/icons/128.png and b/resources/linux/icons/128.png differ diff --git a/resources/linux/icons/16.png b/resources/linux/icons/16.png index 25d4a43c..d3680e4f 100644 Binary files a/resources/linux/icons/16.png and b/resources/linux/icons/16.png differ diff --git a/resources/linux/icons/24.png b/resources/linux/icons/24.png index a345b387..41b795fe 100644 Binary files a/resources/linux/icons/24.png and b/resources/linux/icons/24.png differ diff --git a/resources/linux/icons/256.png b/resources/linux/icons/256.png index 03777f42..8c9b7054 100644 Binary files a/resources/linux/icons/256.png and b/resources/linux/icons/256.png differ diff --git a/resources/linux/icons/32.png b/resources/linux/icons/32.png index 9380d6a4..e4990605 100644 Binary files a/resources/linux/icons/32.png and b/resources/linux/icons/32.png differ diff --git a/resources/linux/icons/48.png b/resources/linux/icons/48.png index a8d80f45..fc12ad2e 100644 Binary files a/resources/linux/icons/48.png and b/resources/linux/icons/48.png differ diff --git a/resources/linux/icons/512.png b/resources/linux/icons/512.png index e8c4ddb3..2e52af09 100644 Binary files a/resources/linux/icons/512.png and b/resources/linux/icons/512.png differ diff --git a/resources/linux/icons/64.png b/resources/linux/icons/64.png index 1692a9bf..bc52540e 100644 Binary files a/resources/linux/icons/64.png and b/resources/linux/icons/64.png differ diff --git a/resources/win/Fusion.dll b/resources/win/Fusion.dll index fd762f15..7a835416 100644 Binary files a/resources/win/Fusion.dll and b/resources/win/Fusion.dll differ diff --git a/resources/win/FusionSdk.nsh b/resources/win/FusionSdk.nsh index db473bb6..575ee7f0 100644 --- a/resources/win/FusionSdk.nsh +++ b/resources/win/FusionSdk.nsh @@ -13,13 +13,14 @@ !include FileFunc.nsh !include LogicLib.nsh !include WinMessages.nsh +!include WinVer.nsh !insertmacro GetParameters /******************************************************************************* Fusion Definitions *******************************************************************************/ # DO NOT CHANGE - this value must be identical to Fusion.dll version -!define FUSION_SDK_VERSION "1.461" +!define FUSION_SDK_VERSION "1.47" # Fusion dll functions ordinal numbers !define FUS_InitDll 1 @@ -272,8 +273,16 @@ Function _AdjustFusWinSize ; Reposition window in the lower left ; Create RECT struct System::Call "*${stRECT} .r1" - ; Find Window info for the window we're displaying - System::Call "User32::GetWindowRect(i, i) i ($_gl_FUS_OffersWinHWND, r1) .r2" + + !ifdef NSIS_UNICODE + ${If} ${AtLeastWinVista} + !endif + ; Find Window info for the window we're displaying + System::Call "User32::GetWindowRect(i, i) i ($_gl_FUS_OffersWinHWND, r1) .r2" + !ifdef NSIS_UNICODE + ${EndIf} + !endif + ; Get left/top/right/bottom System::Call "*$1${stRECT} (.r2, .r3, .r4, .r5)" @@ -366,7 +375,10 @@ FunctionEnd ${Else} !insertmacro _UpdateMainProductValues ${EndIf} - Pop $0 + Pop $0 + + Call _AdjustFusWinSize + !insertmacro _CallFusAPIFunc ${FUS_SetOffersWindow} "(i 0, i $_gl_FUS_OffersWinX, i $_gl_FUS_OffersWinY, i $_gl_FUS_OffersWinWidth, i $_gl_FUS_OffersWinHeight)" !macroend /*******************************************************************************/ !macro FusionOffersPage diff --git a/resources/win/app.ico b/resources/win/app.ico index 64761e9b..17e03187 100644 Binary files a/resources/win/app.ico and b/resources/win/app.ico differ diff --git a/resources/win/eula.txt b/resources/win/eula.txt index 45b22ca6..9992ff4b 100644 --- a/resources/win/eula.txt +++ b/resources/win/eula.txt @@ -1,13 +1,13 @@ -This End-User License Agreement (EULA) is a legal agreement between you (either as an individual or on behalf of an entity) and Alexandru Rosianu regarding your use of Messenger for Desktop for OS X, Windows and Linux and associated documentation (the "Software"). This EULA includes the Terms and Conditions (https://messengerfordesktop.com/terms.html) and Privacy Policy (https://messengerfordesktop.com/privacy.html). IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS EULA, DO NOT INSTALL, USE OR COPY THE SOFTWARE. +This End-User License Agreement (EULA) is a legal agreement between you (either as an individual or on behalf of an entity) and The Cofounders Ltd, Seychelles regarding your use of Messenger for Desktop for OS X, Windows and Linux and associated documentation (the "Software"). This EULA includes the Terms and Conditions (https://messengerfordesktop.com/terms.html) and Privacy Policy (https://messengerfordesktop.com/privacy.html). IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS EULA, DO NOT INSTALL, USE OR COPY THE SOFTWARE. Summary You must agree to all of the terms of this EULA to use this Software. If so, you may use the Software for free and for any lawful purpose. -This Software automatically communicates with Alexandru Rosianu's server(s) for three reasons: (1) to receive and install updates; (2) to send error reports; and (3) to send anonymized usage information. You can view the source code to see what information is sent, and you may opt out of sending the anonymized usage data. +This Software automatically communicates with The Cofounders Ltd, Seychelles's server(s) for three reasons: (1) to receive and install updates; (2) to send error reports; and (3) to send anonymized usage information. You can view the source code to see what information is sent, and you may opt out of sending the anonymized usage data. -This Software is provided "as-is" with no warranties, and you agree that Alexandru Rosianu is not liable for anything you do with it. +This Software is provided "as-is" with no warranties, and you agree that The Cofounders Ltd, Seychelles is not liable for anything you do with it. You really ought to just go ahead and read the whole EULA. It's not all that long. You should not only rely on this summary. @@ -15,7 +15,7 @@ The Agreement By downloading, installing, using, or copying the Software, you accept and agree to be bound by the terms of this EULA. If you do not agree to all of the terms of this EULA, you may not download, install, use or copy the Software. The License -This EULA entitles you to install as many copies of the Software as you want, and use the Software for any lawful purpose consistent with this EULA. Your license to use the Software is expressly conditioned upon your agreement to all of the terms of this EULA. This software is licensed, not sold. Alexandru Rosianu reserves all other rights not granted by this EULA. +This EULA entitles you to install as many copies of the Software as you want, and use the Software for any lawful purpose consistent with this EULA. Your license to use the Software is expressly conditioned upon your agreement to all of the terms of this EULA. This software is licensed, not sold. The Cofounders Ltd, Seychelles reserves all other rights not granted by this EULA. The Restrictions When using the Software you must use it in a manner that complies with the applicable laws in the jurisdiction(s) in which you use the Software. @@ -27,36 +27,34 @@ You may redistribute the software, but it must include this EULA and you may not Since the Software is open source, you are free to copy its source code (within the limits of the MIT license) and create your own clone of the Software, which is not bound by this EULA. Privacy Notices -The Software automatically communicates with Alexandru Rosianu's server(s) for three purposes: (1) updating the Software; (2) sending error reports; and (3) sending anonymized usage data so I may improve the Software. If you are a programmer, you may view the source code of the Software to learn more about the specific information that is sent. You may opt out of sending anonymized usage data, crash reporting and update checks by disabling these features from the Software menu. +The Software automatically communicates with The Cofounders Ltd, Seychelles's server(s) for three purposes: (1) updating the Software; (2) sending error reports; and (3) sending anonymized usage data so I may improve the Software. If you are a programmer, you may view the source code of the Software to learn more about the specific information that is sent. You may opt out of sending anonymized usage data, crash reporting and update checks by disabling these features from the Software menu. -Error Reports. In order to help improve the Software, when the Software encounters certain errors, it will automatically send some information to Alexandru Rosianu's server(s) about the error. Reports include data such as (but not only): information about the crash, your Operating System type, Software version. If you do not want to send crash reports to Alexandru Rosianu, you may opt out by changing your settings in the Software menu. +Error Reports. In order to help improve the Software, when the Software encounters certain errors, it will automatically send some information to The Cofounders Ltd, Seychelles's server(s) about the error. Reports include data such as (but not only): information about the crash, your Operating System type, Software version. If you do not want to send crash reports to The Cofounders Ltd, Seychelles, you may opt out by changing your settings in the Software menu. -Anonymized Usage Data. Alexandru Rosianu collects anonymized data about your usage of the Software to help make it more awesome. If you do not want to send anonymized usage data to Alexandru Rosianu, you may opt out by changing your settings in the Software menu. +Anonymized Usage Data. The Cofounders Ltd, Seychelles collects anonymized data about your usage of the Software to help make it more awesome. If you do not want to send anonymized usage data to The Cofounders Ltd, Seychelles, you may opt out by changing your settings in the Software menu. Open-Source Notices Certain components of the Software may be subject to open-source software licenses ("Open-Source Components"), which means any software license approved as open-source licenses by the Open Source Initiative or any substantially similar licenses, including without limitation any license that, as a condition of distribution of the software licensed under such license, requires that the distributor make the software available in source code format. The Software documentation includes copies of the licenses applicable to the Open-Source Components. To the extent there is conflict between the license terms covering the Open-Source Components and this EULA, the terms of such licenses will apply in lieu of the terms of this EULA. To the extent the terms of the licenses applicable to Open-Source Components prohibit any of the restrictions in this Agreement with respect to such Open-Source Component, such restrictions will not apply to such Open-Source Component. -The Software itself is open source and is available on GitHub at github.com/Aluxian/Facebook-Messenger-Desktop. - Intellectual Property Notices -The Software makes use of WhatsApp Web, which is the property of WhatsApp Inc. The WhatsApp logo, WhatsApp Web app, brand identity and other property rights are WhatsApp Inc's exclusive property and not Alexandru Rosianu's. +The Software makes use of WhatsApp Web, which is the property of WhatsApp Inc. The WhatsApp logo, WhatsApp Web app, brand identity and other property rights are WhatsApp Inc's exclusive property and not The Cofounders Ltd, Seychelles's. Disclaimers and Limitations on Liability -THE SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND NO WARRANTY, EITHER EXPRESS OR IMPLIED, IS GIVEN. YOUR USE OF THE SOFTWARE IS AT YOUR SOLE RISK. Alexandru Rosianu does not warrant that (i) the Software will meet your specific requirements; (ii) the Software is fully compatible with any particular platform; (iii) your use of the Software will be uninterrupted, timely, secure, or error-free; (iv) the results that may be obtained from the use of the Software will be accurate or reliable; (v) the quality of any products, services, information, or other material purchased or obtained by you through the Software will meet your expectations; or (vi) any errors in the Software will be corrected. +THE SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND NO WARRANTY, EITHER EXPRESS OR IMPLIED, IS GIVEN. YOUR USE OF THE SOFTWARE IS AT YOUR SOLE RISK. The Cofounders Ltd, Seychelles does not warrant that (i) the Software will meet your specific requirements; (ii) the Software is fully compatible with any particular platform; (iii) your use of the Software will be uninterrupted, timely, secure, or error-free; (iv) the results that may be obtained from the use of the Software will be accurate or reliable; (v) the quality of any products, services, information, or other material purchased or obtained by you through the Software will meet your expectations; or (vi) any errors in the Software will be corrected. -YOU EXPRESSLY UNDERSTAND AND AGREE THAT ALEXANDRU ROSIANU SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO, DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA OR OTHER INTANGIBLE LOSSES (EVEN IF ALEXANDRU ROSIANU HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES) RELATED TO THE SOFTWARE, including, for example: (i) the use or the inability to use the Software; (ii) the cost of procurement of substitute goods and services resulting from any goods, data, information or services purchased or obtained or messages received or transactions entered into through or from the Software; (iii) unauthorized access to or alteration of your transmissions or data; (iv) statements or conduct of any third-party on the Software; (v) or any other matter relating to the Software. +YOU EXPRESSLY UNDERSTAND AND AGREE THAT THE COFOUNDERS LTD, SEYCHELLES SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL OR EXEMPLARY DAMAGES, INCLUDING BUT NOT LIMITED TO, DAMAGES FOR LOSS OF PROFITS, GOODWILL, USE, DATA OR OTHER INTANGIBLE LOSSES (EVEN IF THE COFOUNDERS LTD, SEYCHELLES HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES) RELATED TO THE SOFTWARE, including, for example: (i) the use or the inability to use the Software; (ii) the cost of procurement of substitute goods and services resulting from any goods, data, information or services purchased or obtained or messages received or transactions entered into through or from the Software; (iii) unauthorized access to or alteration of your transmissions or data; (iv) statements or conduct of any third-party on the Software; (v) or any other matter relating to the Software. -Alexandru Rosianu reserves the right at any time and from time to time to modify or discontinue, temporarily or permanently, the Software (or any part thereof) with or without notice. Alexandru Rosianu shall not be liable to you or to any third-party for any modification, price change, suspension or discontinuance of the Software. +The Cofounders Ltd, Seychelles reserves the right at any time and from time to time to modify or discontinue, temporarily or permanently, the Software (or any part thereof) with or without notice. The Cofounders Ltd, Seychelles shall not be liable to you or to any third-party for any modification, price change, suspension or discontinuance of the Software. Miscellanea -The failure of Alexandru Rosianu to exercise or enforce any right or provision of this EULA shall not constitute a waiver of such right or provision. +The failure of The Cofounders Ltd, Seychelles to exercise or enforce any right or provision of this EULA shall not constitute a waiver of such right or provision. -This EULA constitutes the entire agreement between you and Alexandru Rosianu and governs your use of the Software, superseding any prior agreements between you and Alexandru Rosianu (including, but not limited to, any prior versions of the EULA). +This EULA constitutes the entire agreement between you and The Cofounders Ltd, Seychelles and governs your use of the Software, superseding any prior agreements between you and The Cofounders Ltd, Seychelles (including, but not limited to, any prior versions of the EULA). You agree that this EULA and your use of the Software are governed under Romanian law and any dispute related to the Software must be brought in a tribunal of competent jurisdiction located in or near Bucharest, Romania. -Please send any questions about this EULA to me@aluxian.com. +Please send any questions about this EULA to hello@messengerfordesktop.com. -The last update to this EULA was posted on May 6, 2016. +The last update to this EULA was posted on December 17, 2016. diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index 4e0bc6f6..00000000 Binary files a/screenshot.png and /dev/null differ diff --git a/src/package.json b/src/package.json index bd250390..8193d610 100644 --- a/src/package.json +++ b/src/package.json @@ -1,36 +1,36 @@ { "name": "messengerfordesktop", "productName": "Messenger for Desktop", - "version": "2.0.2", + "version": "2.0.4", "versionChannel": "beta", "description": "A simple & beautiful desktop client for Facebook Messenger.", "wvUrl": "https://www.messenger.com/login", "main": "./scripts/browser/init.js", "dependencies": { - "app-module-path": "1.1.0", - "babel-runtime": "6.9.2", + "app-module-path": "2.1.0", + "babel-runtime": "6.20.0", "colors": "1.1.2", - "debug": "2.2.0", - "del": "2.2.1", - "fs-extra-promise": "0.4.0", + "debug": "2.5.2", + "del": "2.2.2", + "fs-extra-promise": "0.4.1", "keymirror": "0.1.1", "launchd.plist": "0.0.1", - "lodash.debounce": "4.0.6", + "lodash.debounce": "4.0.8", "mousetrap": "1.6.0", - "needle": "1.0.0", + "needle": "1.4.3", "node-uuid": "1.4.7", - "promisify-es6": "1.0.1", - "raven": "0.11.0", - "raven-js": "3.2.1", + "promisify-es6": "1.0.2", + "raven": "1.1.1", + "raven-js": "3.9.1", "semver": "5.3.0", - "source-map-support": "0.4.2", + "source-map-support": "0.4.8", "spellchecker": "3.3.1", "strip-ansi": "3.0.1", - "winreg": "1.2.1", - "yargs": "4.8.1" + "winreg": "1.2.2", + "yargs": "6.5.0" }, "devDependencies": { - "devtron": "1.2.1" + "devtron": "1.4.0" }, "optionalDependencies": { "nodobjc": "2.1.0" @@ -59,13 +59,13 @@ "section": "web" }, "license": "MIT", - "author": "Alexandru Rosianu ", - "authorName": "Alexandru Rosianu", - "copyright": "Copyright © Alexandru Rosianu", + "author": "MessengerForDesktop.com ", + "authorName": "MessengerForDesktop.com", + "copyright": "Copyright © MessengerForDesktop.com", "homepage": "https://messengerfordesktop.com", "repository": { "type": "git", - "url": "https://github.com/Aluxian/Facebook-Messenger-Desktop.git" + "url": "https://github.com/Aluxian/Messenger-for-Desktop.git" }, "virtualUrl": "http://app.messengerfordesktop.com", "piwik": { @@ -75,7 +75,7 @@ "sentry": { "dsn": "{{& SENTRY_DSN_PRIVATE }}" }, - "electronVersion": "v1.3.5", + "electronVersion": "v1.4.13", "distrib": "unset", "portable": false, "buildNum": 0, diff --git a/src/scripts/browser/components/distro-detector.js b/src/scripts/browser/components/distro-detector.js deleted file mode 100644 index 0ad37c26..00000000 --- a/src/scripts/browser/components/distro-detector.js +++ /dev/null @@ -1,20 +0,0 @@ -import cp from 'child_process'; - -import platform from 'common/utils/platform'; - -async function elementaryOS () { - if (!platform.isLinux) { - return false; - } - - let cmd = 'cat /etc/os-release <(lsb_release -d) | grep \\"elementary OS\\"'; - cmd = '/bin/bash -c "' + cmd + '"'; - - return await new Promise((resolve, reject) => { - cp.exec(cmd, (err, stdout, stderr) => resolve(!err)); - }); -} - -export default { - elementaryOS -}; diff --git a/src/scripts/browser/main.js b/src/scripts/browser/main.js index c1690e91..bcc0a9a5 100755 --- a/src/scripts/browser/main.js +++ b/src/scripts/browser/main.js @@ -3,7 +3,6 @@ import yargs from 'yargs'; import prefs from 'browser/utils/prefs'; import filePaths from 'common/utils/file-paths'; -import distroDetector from 'browser/components/distro-detector'; import platform from 'common/utils/platform'; // Handle uncaught exceptions @@ -175,7 +174,6 @@ function startRepl () { async function initAndLaunch () { try { await onAppReady(); - await detectDistro(); await interceptHttp(); } catch (err) { logFatal(err); @@ -198,13 +196,6 @@ async function onAppReady () { }); } -async function detectDistro () { - log('detecting distro (linux)'); - options.distro = { - isElementaryOS: await distroDetector.elementaryOS() - }; -} - async function interceptHttp () { log('intercepting protocol http'); return new Promise((resolve, reject) => { diff --git a/src/scripts/browser/managers/ipc-listeners-manager.js b/src/scripts/browser/managers/ipc-listeners-manager.js index 97f22658..aeb9124f 100644 --- a/src/scripts/browser/managers/ipc-listeners-manager.js +++ b/src/scripts/browser/managers/ipc-listeners-manager.js @@ -1,7 +1,6 @@ import {app, ipcMain, shell, BrowserWindow, nativeImage} from 'electron'; import EventEmitter from 'events'; -import contextMenu from 'browser/menus/context'; import platform from 'common/utils/platform'; import prefs from 'browser/utils/prefs'; @@ -19,7 +18,6 @@ class IpcListenersManager extends EventEmitter { */ set () { ipcMain.on('notif-count', ::this.onNotifCount); - ipcMain.on('context-menu', ::this.onContextMenu); ipcMain.on('close-window', ::this.onCloseWindow); ipcMain.on('open-url', ::this.onOpenUrl); } @@ -52,24 +50,6 @@ class IpcListenersManager extends EventEmitter { this.mainWindowManager.suffixWindowTitle(count ? ' (' + count + ')' : ''); } - /** - * Called when the 'context-menu' event is received. - */ - onContextMenu (event, options) { - try { - options = JSON.parse(options); - const menu = contextMenu.create(options, this.mainWindowManager.window); - if (menu) { - log('opening context menu'); - setTimeout(() => { - menu.popup(this.mainWindowManager.window); - }, 50); - } - } catch (err) { - logError(err); - } - } - /** * Called when the 'close-window' event is received. */ diff --git a/src/scripts/browser/managers/main-window-manager.js b/src/scripts/browser/managers/main-window-manager.js index 9f62598f..d74d96a2 100755 --- a/src/scripts/browser/managers/main-window-manager.js +++ b/src/scripts/browser/managers/main-window-manager.js @@ -4,6 +4,7 @@ import EventEmitter from 'events'; import filePaths from 'common/utils/file-paths'; import platform from 'common/utils/platform'; +import contextMenu from 'browser/menus/context'; import prefs from 'browser/utils/prefs'; class MainWindowManager extends EventEmitter { @@ -60,6 +61,7 @@ class MainWindowManager extends EventEmitter { // Bind webContents events to local methods this.window.webContents.on('new-window', ::this.onNewWindow); this.window.webContents.on('will-navigate', ::this.onWillNavigate); + this.window.webContents.on('context-menu', ::this.onContextMenu); // Bind events to local methods this.window.on('ready-to-show', ::this.onReadyToShow); @@ -119,6 +121,25 @@ class MainWindowManager extends EventEmitter { } } + /** + * Called when the 'context-menu' event is received. + * TODO: Facebook intercepts this so it doesn't work, but at least it won't crash + */ + onContextMenu (event, params) { + log('on context-menu'); + try { + const menu = contextMenu.create(params, this.window); + if (menu) { + log('opening context menu'); + setTimeout(() => { + menu.popup(this.window); + }, 50); + } + } catch (err) { + logError(err); + } + } + /** * Called when the 'ready-to-show' event is emitted. */ @@ -173,8 +194,8 @@ class MainWindowManager extends EventEmitter { return; } - // Just hide the window on Darwin and Elementary OS - if (!this.forceClose && (platform.isDarwin || global.options.distro.isElementaryOS)) { + // Just hide the window on Darwin + if (!this.forceClose && platform.isDarwin) { event.preventDefault(); this.hideWindow(); } diff --git a/src/scripts/browser/menus/context.js b/src/scripts/browser/menus/context.js index a0b760f3..27e2e3ef 100755 --- a/src/scripts/browser/menus/context.js +++ b/src/scripts/browser/menus/context.js @@ -30,6 +30,7 @@ function create (params, browserWindow) { } // Hunspell doesn't remember these, so skip this item + // TODO: params.isWindows7 is always undefined if (!platform.isLinux && !params.isWindows7) { menu.append(new MenuItem({ label: 'Add to Dictionary', diff --git a/src/scripts/browser/menus/expressions/expr-click.js b/src/scripts/browser/menus/expressions/expr-click.js index 12ee24a7..ea1d79a3 100755 --- a/src/scripts/browser/menus/expressions/expr-click.js +++ b/src/scripts/browser/menus/expressions/expr-click.js @@ -258,7 +258,10 @@ export const analytics = { */ trackEvent: (...args) => { return function (menuItem, browserWindow) { - piwik.getTracker().trackEvent(...args); + const tracker = piwik.getTracker(); + if (tracker) { + tracker.trackEvent(...args); + } }; } diff --git a/src/scripts/browser/menus/templates/main-help.js b/src/scripts/browser/menus/templates/main-help.js index 6f3dd090..b33b7597 100644 --- a/src/scripts/browser/menus/templates/main-help.js +++ b/src/scripts/browser/menus/templates/main-help.js @@ -1,107 +1,17 @@ import $ from 'browser/menus/expressions'; -import eventCategories from 'common/analytics/categories'; -import eventActions from 'common/analytics/actions'; -import eventNames from 'common/analytics/names'; - export default { label: '&Help', role: 'help', submenu: [{ - label: 'Frequently Asked &Questions', - click: $.all( - $.openUrl('https://whatsie.chat/#faq'), - $.analytics.trackEvent( - eventCategories['Menu'], - eventActions['Open Link'], - eventNames['FAQ Link'] - ) - ) - }, { - label: '&Chat on Gitter', - click: $.all( - $.openUrl('https://gitter.im/Aluxian/Facebook-Messenger-Desktop'), - $.analytics.trackEvent( - eventCategories['Menu'], - eventActions['Open Link'], - eventNames['Gitter Chat Link'] - ) - ) - }, { - type: 'separator' - }, { - label: '&Write a Review', - click: $.all( - $.openUrl('https://aluxian.typeform.com/to/Wu3xV0'), - $.analytics.trackEvent( - eventCategories['Menu'], - eventActions['Open Link'], - eventNames['Write Review Link'] - ) - ) - }, { - label: '&Suggest a Feature', - click: $.all( - $.openUrl('https://aluxian.typeform.com/to/RZm1ud'), - $.analytics.trackEvent( - eventCategories['Menu'], - eventActions['Open Link'], - eventNames['Suggest Feature Link'] - ) - ) - }, { - label: '&Report an Issue', - click: $.all( - $.openUrl('https://aluxian.typeform.com/to/zbEkn3'), - $.analytics.trackEvent( - eventCategories['Menu'], - eventActions['Open Link'], - eventNames['Report Issue Link'] - ) - ) - }, { - type: 'separator' - }, { - label: '&Email Developer', - click: $.all( - $.openUrl('mailto:mfd@aluxian.com'), - $.analytics.trackEvent( - eventCategories['Menu'], - eventActions['Open Link'], - eventNames['Contact Developer Email Link'] - ) - ) - }, { - label: '&Tweet Developer', - click: $.all( - $.openUrl('https://twitter.com/Aluxian'), - $.analytics.trackEvent( - eventCategories['Menu'], - eventActions['Open Link'], - eventNames['Contact Developer Twitter Link'] - ) - ) - }, { - type: 'separator' - }, { - label: 'Donate &PayPal', + label: 'Website', click: $.all( - $.openUrl('https://short.aluxian.com/donatemfdpaypal'), - $.analytics.trackEvent( - eventCategories['Menu'], - eventActions['Open Link'], - eventNames['Donate PayPal Link'] - ) + $.openUrl('http://messengerfordesktop.com/') ) }, { - label: 'Donate &Bitcoin', + label: 'Email', click: $.all( - $.openUrl('https://short.aluxian.com/donatemfdbitcoin'), - $.analytics.trackEvent( - eventCategories['Menu'], - eventActions['Open Link'], - eventNames['Donate Bitcoin Link'] - ) + $.openUrl('mailto:hello@messengerfordesktop.com'), ) }] }; diff --git a/src/scripts/browser/menus/templates/main-view.js b/src/scripts/browser/menus/templates/main-view.js index 76b0fb07..2c4abab0 100755 --- a/src/scripts/browser/menus/templates/main-view.js +++ b/src/scripts/browser/menus/templates/main-view.js @@ -34,7 +34,7 @@ export default { role: 'togglefullscreen' }, { label: 'Toggle &Developer Tools', - accelerator: 'Alt+CmdOrCtrl+I', + accelerator: platform.isNonDarwin ? 'Ctrl+Shift+Alt+I' : 'Alt+Cmd+I', needsWindow: true, click: $.toggleDevTools() }, { diff --git a/src/scripts/browser/menus/templates/main-window-nondarwin.js b/src/scripts/browser/menus/templates/main-window-nondarwin.js index a5d67ec6..dd459fab 100644 --- a/src/scripts/browser/menus/templates/main-window-nondarwin.js +++ b/src/scripts/browser/menus/templates/main-window-nondarwin.js @@ -25,7 +25,6 @@ export default { }, { type: 'checkbox', label: 'Show in &Tray', - enabled: !global.options.distro.isElementaryOS, click: $.all( $.showInTray($.key('checked')), $.setPref('show-tray', $.key('checked')) diff --git a/src/scripts/renderer/preload/index.js b/src/scripts/renderer/preload/index.js index 48b9a621..eb61c7df 100755 --- a/src/scripts/renderer/preload/index.js +++ b/src/scripts/renderer/preload/index.js @@ -3,5 +3,4 @@ const initPath = require('path').join(appPath, 'scripts', 'renderer', 'init.js') require(initPath).inject('webview'); require('renderer/preload/events'); -require('renderer/preload/listeners'); require('renderer/preload/notification'); diff --git a/src/scripts/renderer/preload/listeners.js b/src/scripts/renderer/preload/listeners.js deleted file mode 100644 index ea1df5e0..00000000 --- a/src/scripts/renderer/preload/listeners.js +++ /dev/null @@ -1,11 +0,0 @@ -import {remote, ipcRenderer} from 'electron'; - -import platform from 'common/utils/platform'; - -// Forward context menu opens -remote.getCurrentWebContents().on('context-menu', function (event, params) { - params.isWindows7 = platform.isWindows7; - params = JSON.stringify(params); - log('sending context menu', params); - ipcRenderer.send('context-menu', params); -}); diff --git a/tasks/pack.coffee b/tasks/pack.coffee index 041e1d80..563220ae 100644 --- a/tasks/pack.coffee +++ b/tasks/pack.coffee @@ -10,6 +10,7 @@ del = require 'del' gulp = require 'gulp' zip = require 'gulp-zip' +utils = require './utils' {applyPromise, applySpawn, applyIf, updateManifest, platform} = require './utils' winInstaller = require 'electron-windows-installer' manifest = require '../src/package.json' diff --git a/tasks/publish.coffee b/tasks/publish.coffee index 6ddbfc62..64df1a89 100644 --- a/tasks/publish.coffee +++ b/tasks/publish.coffee @@ -129,6 +129,8 @@ gulp.task 'publish:github', -> .pipe request.put opts, (err, res, body) -> if not err console.log body if args.verbose + if JSON.stringify(body).toLowerCase().indexOf('success') is -1 + err = new Error('bintray upload failed') cb(err) async.series tasks, (err) ->