Commit Graph

206 Commits

Author SHA1 Message Date
Devin Binnie
e1c957e774 Various QoL fixes for Desktop App (#2999)
* Some ESLint fixes

* Add login/logout signal to API, clear mentions on logout and flush cookies on login/logout

* Fix issue where local and HTTP-only servers would not validate correctly

* Reduce noise of renderer logging, adjust a few local renderer logs to be louder when needed

* Fallback to beginning of hostname for servers that don't change the site name

* Fix Save Image crash

* Update the name for insecure servers too

* Fix test

* Fix lint

* Reduce repetition
2024-04-08 09:12:35 -04:00
Devin Binnie
e56b5cdd6a Various build and developer fixes, some optimizations (#2975)
* Various build and developer fixes, some optimizations

* Fix the linux build

* Fix afterpack

* Fix notarization variables

* Revert macos-notification-state changes from this PR

* Only build the tar for PRs

* Also ci

* Fix copy script

* Fix copy script more

* Remove @babel/cli

* Fix windows build

* Fix MAS build
2024-03-12 10:04:11 -04:00
Devin Binnie
9b36c25e4e [MM-52696] Upgrade and clean up Desktop App dev dependencies (#2970)
* Upgrade to ESLint v8

* Upgrade TypeScript, api-types, react-intl

* Remove unnecessary dependencies

* Update to React 17.0.2

* npm audit fixes, remove storybook

* Lock some packages

* Remove nan patch

* Remove some deprecated dependencies

* Fix lint/type/tests

* Merge'd

* Fix bad use of spawn

* Fix notarize

* Fix afterpack, switch to tsc es2020

* Fix api types

* Use @mattermost/eslint-plugin
2024-03-07 15:55:33 -05:00
Devin Binnie
68034b166f [MM-54872] Ensure matched subpaths are exact and not substrings of each other (#2958) 2024-02-12 08:45:08 -05:00
Devin Binnie
0cab09b7f5 [MM-55152] Add new Desktop API endpoints, improve preload script, some clean-up (#2900)
* Add constants for app info, add to API

* Migrate history button

* Converted calls API over to context bridge, removed some unnecessary logging

* Convert to TS, add types for web app to consume

* Fix tests, prune

* Fix lint

* More changes to support the legacy API

* Force legacy code off, add support for unreads/mentions/expired through the API

* Fix issues with cross-tab login, removed need for log in/log out signalling

* Fixed test, typos

* Change package name for types

* Add some other stuff to the types

* PR feedback

* More feedback

* Use npm package

* Change types and API to provide off listeners

* Version number

* Lock

* Fix typo

* Add sessionID for calls
2023-12-13 09:39:46 -05:00
Devin Binnie
d2b03fdc7c Fix session expired issue (#2921) 2023-12-01 09:57:02 -05:00
Devin Binnie
8a52a94dd6 [MM-54979] Stop auto opening Boards/Playbooks tabs, close existing open tabs once for users that might have them open (#2886) 2023-10-25 09:18:50 -04:00
Devin Binnie
d2266ac109 [MM-54616] Remove regex matching for URL lookups (#2851) 2023-09-20 12:02:05 +02:00
Devin Binnie
d5f5c4849a [MM-54463] Enforce secure keyboard entry on macOS when a password box is focused (#2829)
* [MM-54463] Enforce secure keyboard entry on macOS when a password box is focused

* PR feedback
2023-09-15 10:24:19 -04:00
Devin Binnie
88e1fea4e7 Fix issue where logging will be stuck on info level (#2830) 2023-09-15 10:21:42 -04:00
Devin Binnie
128d15a283 [MM-54465] Remove lowercase call when checking path names (#2831) 2023-09-15 10:20:28 -04:00
Devin Binnie
06872452f4 [MM-54170] Automatically set the logging level to info if not specified (#2811)
* [MM-54170] Automatically set the logging level to info if not specified

* Fix test
2023-09-01 11:52:11 -04:00
Devin Binnie
8bf7a59721 [MM-54279] Fix issues around working with saved downloads (#2812) 2023-09-01 11:46:22 -04:00
Devin Binnie
9c3febd4c9 [MM-53847] Expose isDev API to allow webapp to check if the app is in dev mode (#2800)
* [MM-53847] Expose isDev API to allow webapp to check if the app is in dev mode

* Fix test
2023-08-29 10:07:33 -04:00
Devin Binnie
d4a4defaa3 [MM-53490] Reduce min window width to 600px (#2787) 2023-07-18 09:42:53 -04:00
Christopher Poile
0728ddf42f MM-52857 - Add call-join-request to calls widget (#2751)
* add call-join-request to calls widget

* targetID -> callID

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-06-26 10:17:47 -04:00
Devin Binnie
21e3044ff2 [MM-52333] Create Server View State module, move into new app module (#2739)
* Create Server View State Module

* Move currentServerId to serverViewState

* Move view state into server view state module

* PR feedback/bug fixes
2023-06-12 08:35:14 -04:00
Devin Binnie
a7c25ee95e [MM-53056] Force a pathname when checking for deep links (#2748) 2023-06-07 11:16:04 -04:00
Devin Binnie
1239add076 [MM-50352] Improve URL validation and add/edit server experience (#2720)
* [MM-50352] Improve URL validation and add/edit server experience

* Fix build

* Fix translations

* First pass of fixes

* Some changes to avoid 2 clicks, tests

* PR feedback

* Update translations

* PR feedback

* Fix translations

* PR feedback

* E2E test fixes
2023-05-24 09:04:38 -04:00
Devin Binnie
a87e770c73 Fix two server manager issues (#2727) 2023-05-20 11:39:32 -04:00
Devin Binnie
316beba950 [MM-14093] Rename 'team' to 'server' and 'tab' to 'view' in most cases, some additional cleanup (#2711)
* Rename MattermostTeam -> UniqueServer, MattermostTab -> UniqueView

* Rename 'team' to 'server'

* Some further cleanup

* Rename weirdly named function

* Rename 'tab' to 'view' in most instances

* Fix i18n

* PR feedback
2023-05-08 09:17:01 -04:00
Devin Binnie
c20088f6fa [MM-52625] Rework tray icon code into a class, make the behaviour of the tray icon consistent with the OS it's running on (#2708)
* Rework tray into a class, make click behaviour consistent

* Fix issue where app wouldn't switch to workspace where the app was visible

* Fixed an issue where the app would show the window with hideOnStart enabled

* Add comment about StatusIconLinuxDbus

* Fix tests
2023-05-04 09:21:50 -04:00
Devin Binnie
e227c6bf1d [MM-52587] Clean up URL utils, use isInternalURL when possible (#2702) 2023-05-03 08:48:41 -04:00
Devin Binnie
f4f4511cc7 Remove WindowManager, separate functionality into smaller modules (#2682)
* Move sendToRenderer to respective singletons

* Move to using ViewManager call for getting view by webContentsId

* Move show and create logic to main window, handle deep linking seperately

* Move resizing logic and event handing to mainWindow

* Move server switching logic to main/app

* Move tab switching logic to main/app, rely on showById for most usage

* Migrate remaining functions, remove windowManager objects, set up imports for self-contained singletons

* Fix E2E tests

* Update src/main/app/servers.ts

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>

---------

Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
2023-04-19 11:04:26 -04:00
Devin Binnie
b71322a682 Migrate teamDropdownView to singleton (#2677) 2023-04-14 12:14:11 -04:00
Devin Binnie
1428ba694b Clean up appState module, move to common, simplify events (#2676)
* Refactor appState into class, simplify events

* Move appState to common module, make case for object consistent

* Naming change

* Update name
2023-04-14 12:09:33 -04:00
Devin Binnie
686b4ac9f1 [MM-50485] Migrate app to ServerManager, remove view names and replace with IDs (#2672)
* Migrate app to ServerManager, remove view names and replace with IDs

* Fixed a test

* Fixed a bug when adding the initial server

* Merge'd

* Bug fixes and PR feedback
2023-04-12 12:52:34 -04:00
Devin Binnie
741087cb55 Refactor config, move ipc calls to app module, some cleanup (#2669) 2023-04-06 11:24:57 -04:00
Devin Binnie
88eb2e2c70 [MM-51964] Clean up MattermostView, remove tuple in preparation for id (#2668)
undefined
2023-04-06 11:17:33 -04:00
Devin Binnie
53fb8c8fd3 [MM-50485] Implement ServerManager, introduce id concept for identifying servers/views (#2654)
* Implement ServerManager, introduce id concept for identifying servers/views

* REVERT ME (eventually): Move back to old logging

* PR feedback

* PR feedback

* Revert "REVERT ME (eventually): Move back to old logging"

This reverts commit 46954a5bbed4dd29e89ca9d5217bb75af2837bb3.

* Merge'd

* Use the correct method for Logger in ServerManager
2023-04-05 16:30:50 -04:00
Devin Binnie
245215c678 [MM-51873] Create central logging module for adding prefixes to differentiate logs between modules (#2652)
* Create central logging module for adding prefixes to differentiate logs between modules

* Turn logger into class

* Merge'd

* Rework to use class more intelligently

* Fix modalView

* Fix webContentEvents

* Update src/main/app/intercom.ts

Co-authored-by: Daniel Espino García <larkox@gmail.com>

* Shorten prefixes on object creation

---------

Co-authored-by: Daniel Espino García <larkox@gmail.com>
2023-04-05 12:09:56 -04:00
Devin Binnie
112a591796 Move Validator to common module (#2651) 2023-04-04 08:05:40 -04:00
Claudio Costa
cc706f7a97 Escape regexp input in isCallsPopOutURL (#2629) 2023-03-23 10:56:47 -06:00
Devin Binnie
c85a4497b6 Fix the issue where we sometimes need to wait for GPO teams properly (#2621) 2023-03-20 16:24:07 -04:00
Jon Seager
69831bbe13 fix: use XDG_DOWNLOAD_DIR as default download dir (#2615)
On Linux machines that are using a desktop env which conforms to
the FreeDesktop spec, users should have the XDG_DOWNLOAD_DIR
variable set to specify their default download directory.

This patch ensures that this directory is used if the variable is
present.

Hoping this will fix the following issue in the Mattermost snap:
https://github.com/snapcrafters/mattermost-desktop/issues/65
2023-03-15 09:12:16 -04:00
Devin Binnie
5342507954 Restore URL checking code 2023-03-02 17:03:55 -05:00
Claudio Costa
a52e96694d [MM-50973] Harden Calls windows URL navigation checks (#2573)
* Harden Calls windows URL navigation checks

* Update src/main/windows/callsWidgetWindow.ts

Co-authored-by: Eva Sarafianou <eva.sarafianou@gmail.com>

* Fix bad merge

* Extract team name to use isUrlType

* Simplify

---------

Co-authored-by: Eva Sarafianou <eva.sarafianou@gmail.com>
2023-03-02 13:10:47 -05:00
Devin Binnie
e6a93dcc69 [MM-50569] Fix insecure win32 path regex (#2566) 2023-02-28 10:14:57 -05:00
Christopher Poile
ec8e0b9cc2 MM-49079 - Calls: process link clicks from Calls popout (#2558)
* process link clicks from Calls popout

* add a mock for windows tests
2023-02-17 13:41:01 -05:00
Claudio Costa
7127ec153a Send error to global widget if missing screen sharing permissions (#2554) 2023-02-16 10:20:50 -06:00
Devin Binnie
5cc2e98a1d Merge and migrate locally-trusted preload scripts to contextBridge API (#2553)
* Migrate intl_provider to contextBridge

* Migrate modalPreload to contextBridge

* Migrate loadingScreenPreload to contextBridge

* Migrate downloadDropdown preloads to contextBridge

* Migrate server dropdown preload to contextBridge

* Migrate urlView preload to contextBridge

* Merge all desktop API scripts into one

* Remove unused communication channel constants
2023-02-15 13:42:53 -05:00
Devin Binnie
07e41ec678 Remove use of getView() and replace with getViewByURL() where necessary. (#2544)
* WIP

* Replace getView with getViewByURL
2023-02-07 08:59:35 -05:00
Claudio Costa
9213083335 [MM-49739] Set parent window on calls expanded popout view (#2539)
* Set parent window on calls expanded popout view

* Fix focus on calls popout window

* Unregister event
2023-02-06 10:31:50 -05:00
Devin Binnie
d312bfca24 [MM-44004] Optionally turn off UTF-8 encoding for winreg if the system doesn't support it (#2128)
* [MM-44004] Optionally turn off UTF-8 encoding for winreg if the system doesn't support it

* Fix tests

* REVERT ME: Enable msi installer

* REVERT ME: Wait for msi

* Toggle between winreg and winreg-utf8 if the latter doesn't work

* Revert MSI stuff

* Added logging for the catch at the end to see what error is occurring there

* Catch the error on registry creation as well

* Update logging a bit further

Co-authored-by: Mattermost Build <build@mattermost.com>
2023-01-20 12:11:37 -05:00
Tasos Boulis
4131f8fb66 Close downloads menu when clicking "show in folder" (#2507) 2023-01-19 16:34:24 +02:00
KyeongSoo Kim
7d79cab916 open a file when it is clicked from the download list (#2501) 2023-01-16 17:05:24 -05:00
Devin Binnie
db76a67fb5 Reduce the number of writes to the config (#2498)
* Add some logging, refactor setting config items

* Move active team to setMultiple, reduce serverInfos calls if the data is already the same

* Fix some logging

* Lint fix
2023-01-12 08:46:06 -05:00
Tasos Boulis
de65cfca4e Escape server name when used inside regex (#2449)
* Escape server name when used inside regex

* Move util under common and add test
2022-12-06 17:29:02 +02:00
Devin Binnie
865fd2522f Fixed some E2E tests that broke on v5.2 (#2453)
* Fixing some E2E tests

* Fixed a couple flaky ones

* Fixed some issues on Windows
2022-12-06 14:40:56 +02:00
Tasos Boulis
161ae99e94 [MM-47202] - Desktop diagnostics (#2439)
* Add custom assertion to match object in array (#2358)

* Add custom assertion to match object in array

* Remove test that is not implemented yet

* [MM-48213] Add "Run diagnostics" menu item under Help (#2359)

* Add submenu item that runs diagnostics

* Add custom assertion to match object in array

* Remove test that is not implemented yet

* Add tests

* Add translation

* [MM-47206] Diagnostics steps setup (#2361)

* Add baseline code for diagnostics and their steps

* Fix failing test

* [MM-47206] [MM-48155] Obfuscate logs (#2369)

* Add logging hooks to mask sensitive data

* Add hook that truncates long strings in diagnostics logs

* Add template file for creating steps

* Add readme inside diagnostics

* [MM-48145] Diagnostics step 2 - internet connectivity (#2372)

* Add diagnostics step 2 - internet connectivity check

* Update tests

* [MM-48144] Diagnostics Step - Configure logger (#2390)

* Configure logger

* Move configure logger into step1

* Add file extension to fileName variable

* Diagnostics Step 2: Validate configuration (#2391)

* Resolve conflicts with base branch

* Update test and implement Code review suggestion

* Fix failing test

* [MM-48147]Diagnostics step 3 - server connectivity (#2397)

* Add step3: Check server connectivity by using the /api/v4/system/ping endpoint

* Fix failing tests

* Add better obfuscator functions that mask all types of data (#2399)

* Add better obfuscator functions that mask all types of data(string, array, objects)

* Update tests

* [MM-48148] Add Diagnostics step 4 - session validation (#2398)

* Add diagnostics step 4 - session data validation

* Fix failing tests

* [MM-48152] Add diagnostics step 5 - BrowserWindows checks (#2404)

* Add diagnostics step 5 - browserwindow checks for main window

* Add tests

* [MM-48151] Diagnostics step 6 - Permissions (#2409)

* Add diagnostics step 6 - Permissions check

* Check permissions for microphone ond screen onn mac, windows

* Update tests count in tests

* [MM-48551] Diagnostics step 7 - Performance & Memory (#2410)

* Add diagnostics step 6 - Permissions check

* Check permissions for microphone ond screen onn mac, windows

* Update tests count in tests

* Add diagnostics step 7 - performance and memory

* Fix failing tests

* [MM-48153] Add diagnostics step 8 - Log heuristics (#2418)

* Add diagnostics step 8 - Log heuristics

* Add diagnostics step 9 - config (#2422)

* [MM-48556] Diagnostics Step 10 - Crash reports (#2423)

* Add diagnostics step 9 - config

* Add diagnostics step 10 - include crash reports

* Update tests

* Add diagnostics step 11 - cookies report (#2427)

* [MM-48157] Diagnostics report (#2432)

* Add better logging and pretty print report

* Update last step

* Update log message

* Move log after hooks so that path is masked

* Use correct directory for diagnostics files
2022-12-02 16:33:42 +02:00