aboutsummaryrefslogtreecommitdiffstats
path: root/src/models/Service.js
Commit message (Collapse)AuthorAge
* Ability for service recipe to expose known certificate hosts (#1890)Libravatar Vijay Raghavan Aravamudhan2021-09-08
|
* refactoring: Use 'ifUndefined*' consistently.Libravatar Vijay A2021-09-05
| | | | Added some error checking
* Refactoring to have consistent usage (prep for ts conversion) (#1821)Libravatar Vijay Raghavan Aravamudhan2021-09-04
|
* refactor: fail quickly if the initialization data is incorrectLibravatar Vijay A2021-08-21
|
* Incorrect position while adding a new service when there were pre-existing ↵Libravatar Vijay Raghavan Aravamudhan2021-08-21
| | | | services (#1820)
* refactor: path-references refactoring and using 'import' instead of ↵Libravatar Vijay Raghavan Aravamudhan2021-08-08
| | | | | | 'require' (#1752) * refactor references to 'userData' and 'appData' directories to move hardcoding into single location * convert to es6 for lower memory usage as per https://codesource.io/the-difference-between-import-and-require-in-javascript/
* chore: migrate from tslint to @typescript-eslint (#1706)Libravatar Markus Hatvan2021-07-30
| | | | | | | | | | - update .eslintrc to work for .js and .ts - update devDependencies - lint properly both root /src and nested /packages - update webhint recommended setting for tsconfig.json to shrink output - Manage all eslint rules from the repo root - escape single quotes in scripts to please windows build Co-authored-by: Vijay A <avijayr@protonmail.com>
* Recipe context isolation (#1456)Libravatar Kristóf Marussy2021-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Enable service contextIsolation * Enable contextIsolation on the service webviews * Expose a new API window.ferdi in the service main world to allow calling back into the service isolated world * Expose a new IPC message inject-js-unsafe from the service isolated world to execute Javascript in the service main world (i.e., run code without context isolation). While the name contains the "unsafe" suffix to show the lack of context isolation, this should mostly be safe, as no nodejs APIs are available in the injected code. * Refactor the Notifications shim into a part in the isolated world that handles displaying and modifying notifications, and a shim in the main world for the Notifications class. The two communicate via the window.ferdi endpoint and a Promise object can be used to detect notification clicks. * Refactor the screen sharing shim into a part in the isolated world that enumerated shareable screens and windows and a shim in the main world that displays the media selector and completes the media selection promise. * Expose the injectJSUnsafe API to recipes to inject javascript code into the main world without context isolation. * Expose setBadge to the main world The window.ferdi.setBadge API can be used to update the service badge from injected unsafe Javascript * Safer script injection into the service main world Make sure that we don't try to serialize stray objects back from the main world to the isolated world by always surrounding the script to be executed by an anonymous function. * Always read recipe assets as utf8 * Remove window.log from recipes We didn't use it anywhere and its behavior was confusing in production mode. * Inject multiple unsafe scripts at the same time * Find in page without remote module Remove the @electron/remote dependency from the find in page (Ctrl+F) functionality. The remote webContents is replaced with Electron IPC. Synchronous IPC messages are handled in the main Electron process, because the renderer process cannot reply to IPC messages synchronously. * Update to latest contextIsolation recipes * Fixing issue with missing 'fs' functions. Co-authored-by: Vijay A <avijayr@protonmail.com>
* Added a 'wakeUpStrategy' that the user can control to wake up a previously ↵Libravatar Vijay Raghavan Aravamudhan2021-07-23
| | | | hibernated service (#1680)
* Fix hibernation mode (#1486)Libravatar kytwb2021-07-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Use hibernation strategy from settings instead of hardcoded 5 minutes * Fix conditions with isHibernationEnabled, previously disableHibernation * Make service hibernation obey global setting Also refactors hibernation to move some hibernation enablement logic into the Service model * Remove global hibernation enable switch Implements option 4 from https://github.com/getferdi/ferdi/pull/1486#issuecomment-860290992 according to https://github.com/getferdi/ferdi/pull/1486#issuecomment-876558694 * Implements #865 : Add 'hibernate service' and 'wake up service' in the sidebar context menu. * Removed 'hibernationEnabled' check on main settings screen Since this is an (imo) incongruous behavior for the first time user. They will see a message, but with no ability to choose the hibernation strategy. * Autogenerated files from conflict fixes Co-authored-by: Kristóf Marussy <kristof@marussy.com> Co-authored-by: Vijay A <avijayr@protonmail.com>
* Removed Franz paid plans features:Libravatar Vijay A2021-07-20
| | | | | | | | - serviceLimit - planSelection - trialStatusBar and other Franz features that were for different tiers of subscription.
* Removed references to png images since they were not being used anyways.Libravatar Vijay A2021-07-06
|
* User agent as a user-preference (#1535)Libravatar Vijay Raghavan Aravamudhan2021-06-17
| | | | | | | | | | | | | | | | | | | | Introduced a global and a service-specific 'user-agent' value that can be set by the user from the preference section. The global override is in Advanced, while the service override was moved to the bottom of the service editor form (and now occupies the full width of the form). Show 'restart reqd' prompt for user-agent setting. The order of the user-agent is the following: 1. Any request header overrides in the recipe will still override the user agent string. 2. If the user has set a user agent override for the service, use that. 3. If the recipe has a predefined user agent, use that. 4. If the user has set a global user agent override, use that. 5. Otherwise, use the user agent string corresponding to the underlying Electron version. If the current webpage is the Google login form, we still remove the Chrome version number from the user agent string. The value that would be used if no custom override is set (recipe-provided value or global override for the service, current Electron instance for the global override) is shown as a placeholder in the input box on the corresponding setting screen. Co-authored-by: Kristóf Marussy <kristof@marussy.com>
* Fix active Todos service behaviour (#1481)Libravatar kytwb2021-06-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Return false instead of null in isTodosServiceAdded * Resolve from TODOS_RECIPES_ID instead of hardcoded TODOS_RECIPE_ID * Fix TodosWebview width toggling when isTodosServiceActive * Add more todo service recipe IDs * Refactor todos state management * Moved todos service URL and recipe ID computation logic to todos/store * Simplified TodosWebview by delegating to the store for the URL and removing the (unused) payment logic * Made the todos service computation logic in the Service model depend on the logic in todos/store * Made ServicesStore depend on the todos service logic from the Service model * Todos appearance fixes * Hide double horizontal rules if todo settings are hidden due to an added todo service * Hide todos panel border when the panel is hidden or expanded * Make expanded todos panel obey sidebar width and vertical style settings * Make todos/store use isValidExternalURL * Harden isValidExternalURL against malformed URLs * Reduce todo URL string duplication in config.js Co-authored-by: Kristóf Marussy <kristof@marussy.com>
* Expose Chrome version to todos webview (fix #1211) (#1478)Libravatar Kristóf Marussy2021-06-03
| | | | | | | | | | | | | | | | | * Expose Chrome version to todos webview (fix #1211) The TickTick todo service fails to load if the Chrome version number does not appear in the User-Agent string. However, login to Google Tasks is prevented by the same. We adopt the "chromeless" User-Agent logic from the service webview, which selectively exposes the Chrome version everywhere except the Google login screen. The common logic was moved into the userAgent-helpers module. * Refactor user agent switching * "Chromeless" user agent switching is extracted into a separate model * Both the service and the todos webview uses the same model
* Adjust link opening behaviorLibravatar stnkl2021-06-03
|
* restrict opening blank screens in the new windowLibravatar Prasanna2021-06-01
|
* ipc messages will allow only JS objects, replacing browser event with ↵Libravatar Prasanna2021-06-01
| | | | neeeded attrs
* Replace 'remote' with 'electron/remote' (#1448)Libravatar Vijay Raghavan Aravamudhan2021-05-26
| | | * Locked new version of 'recipes' submodule with corresponding changes.
* Changed occurrences of 'Franz' to 'Ferdi' (probably missed earlier while ↵Libravatar Vijay A2021-05-17
| | | | catchup from Franz source). [skip ci]
* Synchronize with Franz 5.6.0 (#1033)Libravatar Amine El Mouafik2021-02-08
| | | | | | | Co-authored-by: FranzBot <i18n@meetfranz.com> Co-authored-by: vantezzen <hello@vantezzen.io> Co-authored-by: Makazzz <makazzzpro@live.ca> Co-authored-by: Stefan Malzner <stefan@adlk.io> Co-authored-by: Amine Mouafik <amine@mouafik.fr>
* Add FAB to service dashboard (#824)Libravatar Bennett2020-06-21
| | | | | | | | | | | | | | | | | | | * Implement #387 * Fix lint * Upgrade to Electron 9 * Remove dependency on electron-spellchecker * Allow multiple languages to be selected * Fix lint * Don't show spellchecker language chooser for macOS * Fix _requireAuthenticatedUser throwing error on startup * Add FAB
* Open Documents inside Ferdi instead of external browser (#787)Libravatar Mahadevan Sreenivasan2020-06-15
| | | | | | | | | | | | | | | | | | | | | | | | | | * Bump version number * no message * Revert "no message" This reverts commit 060f3084460d07e3b08394cd7703611f28095ea9. * fix: Documents opened in Google drive should open inside Ferdi as a new BrowserWindow - modify 'new-window' listener of service webview in Service.js to open links in external browser only when event.disposition != 'foreground-tab'. If event.disposition === 'foreground-tab' send an ipc-message to main to open the link inside Ferdi as a new Browser window - Listen to 'open-browser-window' in index.js (main process) and check for event disposition - create a child BrowserWindow with the main Ferdi window as parent - Copy session information from the appropriate service (here google drive) - Load the URL that was sent from the service renderer. * Update src/index.js refactor: Remove extra spaces in index.js Co-authored-by: Sampath Kumar Krishnan <sampathBlam@users.noreply.github.com> Co-authored-by: Amine Mouafik <amine@mouafik.fr> Co-authored-by: vantezzen <hello@vantezzen.io> Co-authored-by: Sampath Kumar Krishnan <sampathBlam@users.noreply.github.com>
* Load disable hibernation per service status on startup (#754)Libravatar Kristóf Marussy2020-05-20
|
* Add modifyRequestHeaders, enable properly setting headers for servicesLibravatar Sampath Kumar Krishnan2020-04-24
| | | Co-Authored-By: Mahadevan Sreenivasan <mahadevan_sv@yahoo.com>
* #577 Keep services in hibernation at startup (#584)Libravatar Bennett2020-04-18
| | | | | | | | | * Add setting to hibernate on startup * Implement service hibernation on startup * Fix lint * Clarify comment
* Merge Franz 5.5.0 beta.1 and 2 (#549)Libravatar Bennett2020-04-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Automatic i18n update (i18n.meetfranz.com) * Fix zoom not working * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Add environment variable FRANZ_APPDATA_DIR * Add environment variable for config FRANZ_APPDATA_DIR * fix stuff that shouldn't need fixing in the first place * notarize app * bump version to 5.4.1 * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * update to electron 7.1.7 * bump version to 5.5.0 * Automatic i18n update (i18n.meetfranz.com) * Bump electron to 7.1.10 * plan changes * filter plan variants * add missing string * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Replace/remove deprecated electron function calls Electron replaced several function calls with object properties. Franz still uses some of these deprecated functions, so this commit will replace these with their new property counterpart. This commit is only transferring the changes made in getferdi/ferdi#371 and getferdi/ferdi#384 into the upstream repository. * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Update to electron 8.0.1 * feat(Service): Add service hibernation to save system resources * Fix linting issues * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Bump version to electron 8.1.1 * update strings * update electron-notarize * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Add audio & video permission request for cataline * Automatic i18n update (i18n.meetfranz.com) * bump version to beta 1 * Automatic i18n update (i18n.meetfranz.com) * enable external links * Fix main content href * Automatic i18n update (i18n.meetfranz.com) * fix(Service): Fix issue with user agent override in service workers * Automatic i18n update (i18n.meetfranz.com) * fix macOS string replacement * Automatic i18n update (i18n.meetfranz.com) * fix(Experimental): Fix Google signin * fix(Service): Add integrity checks to prevent services recipes getting lost * Remove service reload on app-resume * update strings * bump version to beta 2 * Automatic i18n update (i18n.meetfranz.com) * bump electron-builder and electron-updater deps * test video permissions * fix `extendInfo` keys * fix typo * fix permission request * update camera/microphone entitlements * Automatic i18n update (i18n.meetfranz.com) * Test screen capture permissions * unpack `mac-screen-capture-permissions` * don't require localstorage temp key for permissions request * move macOS permission request to main process * Fix checking for permissions * fix(macOS): Ask the user to move Franz to the `/Applications` Folder * only try to recover recipe when user is online * update service request link * Update changelog * Reset `service.lostRecipeReloadAttempt` once service is alive again * Update translations * Fix crash on macOS * Fix merge errors * Fix lint * Disable ConnectionLostBanner * #551 Add information about Ferdi to the user agent * Fix requested changes * Remove tsbuildinfo files * Add .tsbuildinfo files to gitignore * Fix "Cannot destructure property 'app' of '_electron.remote' as it is undefined" Co-authored-by: FranzBot <i18n@meetfranz.com> Co-authored-by: Makazzz <makazzzpro@live.ca> Co-authored-by: Stefan Malzner <stefan@adlk.io>
* Expose Dark Reader settings (#568)Libravatar Mahadevan Sreenivasan2020-04-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * feat: Expose DarkReader settings to users - In the service model, expose an object darkReaderSetting which contains brightness, contrast and sepia values. - In EditServiceScreen, provide 3 form options for brightness, contrast and Sepia. Additionally onSubmit() form, capture the darkreader settings data onto formdata.darkReaderSettings to update in the service - In EditServiceForm, if darkModeEnabled is checked, show 3 sliders for controlling darkreader settings - Create a new Slider control and customize it according to the application's theme and dark theme. - In Webview Recipe, load the darkReader settings from service settings and pass it to the darkReader library. * feat: Darkreader settings - Lint fixes * feat: DarkReader settings - refactor code in editservicescreen.js Co-Authored-By: Sampath Kumar Krishnan <sampath3493@gmail.com> * feat: Darkreader settings - Fix a crash where service.darkReaderSettings is null while creating a new service - Remove isDarkModeEnabled prop to EditServiceForm as it is no longer required. * fix: Update EditServiceScreen - Set the default value of darkReader Brightness, Contrast and Sepia to undefined as per @vantezzen 's suggestion. - Updated the check provided by @mahadevans87 Co-authored-by: Sampath Kumar Krishnan <sampath3493@gmail.com> Co-authored-by: Sampath Kumar Krishnan <sampathBlam@users.noreply.github.com>
* #276 Fix custom URL validation failing due to URL normalizationLibravatar Amine Mouafik2020-02-11
|
* Add indicator for hibernating servicesLibravatar vantezzen2019-10-13
|
* Merge branch 'master' of https://github.com/meetfranz/franz into franz-5.4.0Libravatar vantezzen2019-10-09
|\
| * fix(Service Proxies): Fix proxy setting rehydrationLibravatar Stefan Malzner2019-10-02
| |
* | Merge branch 'release/5.4.0' of https://github.com/meetfranz/franz into ↵Libravatar vantezzen2019-10-02
|\| | | | | | | franz-5.4.0
| * feat(Service API): Share `team`, `url` and `hasCustomIcon` with serviceLibravatar Stefan Malzner2019-09-29
| |
* | Use ferdi namespace on debuggerLibravatar vantezzen2019-09-12
| |
* | Merge branch 'master' of https://github.com/meetfranz/franz into franz-5.3.0Libravatar vantezzen2019-09-07
|\|
| * Restrict services with customURL when not premium userLibravatar Stefan Malzner2019-06-14
| |
| * Add "service limit reached" screenLibravatar Stefan Malzner2019-06-13
| |
* | Fix #19 and #21Libravatar vantezzen2019-09-06
| |
* | Fix eslint errorsLibravatar vantezzen2019-08-22
|/
* fix(Proxy): Fix issue with proxy authenticationLibravatar Stefan Malzner2019-06-11
|
* feat(App): Bump electron to 5.0.1Libravatar Stefan Malzner2019-05-24
|
* Merge branch 'master' into developLibravatar Stefan Malzner2019-02-11
|\
| * Merge branch 'develop'v5.0.0-beta.23Libravatar Stefan Malzner2019-02-01
| |\
| * | fix(App): Fix notification sounds when app or services are mutedLibravatar Stefan Malzner2018-12-14
| | | | | | | | | | | | Closes #1184 #900 #460 #1049
* | | fix(App): Ignore network changed errorLibravatar Stefan Malzner2019-02-08
| |/ |/|
* | Ignore ERR_NETWORK_CHANGED errorLibravatar Stefan Malzner2019-01-09
| |
* | Fix issue with error view and "user aborted" requestsLibravatar Stefan Malzner2019-01-04
| |
* | Improve service loader infoLibravatar Stefan Malzner2019-01-04
| |
* | Make electron 4 compatibleLibravatar Stefan Malzner2018-12-22
|/