Comments (10)
What do you mean by 'default build'? Do you want to package the Cordova apps and push them to gh-pages on deploy?
I understand the shortcomings of the current technological state, but I'd really love to see Mozilla pushing new standards to address the lack of API. Are we considering the in-browser mdns support? Are we adding support for discovering the box over flyweb in the app?
I think the following workflow would make sense:
- Recommend the static frontend app. Can't use it?
- Recommend using Fennec (with an add-on until Flyweb lands on master). Can't use it?
- Recommend the native app.
Also, I'd like to challenge the use of Cordova. The problem with native apps is distribution and updates. I can't see how we can improve distribution. But I think we can get a better update experience by developing our own native app around a webview (potentially using React Native) to finely control updates. This app could regularly download and install updates from the web (via signed packages). We wouldn't have to rely on a marketplace to push hot fixes and minor changes (I think big changes are disallowed by said marketplaces' ToS).
I don't think switching to Cordova should happen today. In its current state, that would mean we're happy to accept the flawed current technological consensus and embrace silos without promoting any alternative.
from app.
So, which Foxboxes won't be supported, exactly?
from app.
Ones that (for privacy and resilience reasons) don't rely on fxbox/dns-server, fxbox/registration_server, and LetsEncrypt. They will announce their presence using just mDNS on the local network (nothing gets published over the public internet), and use a self-signed cert for https://foxbox-1.local, which has not been signed by any CA.
from app.
OK, I like your thinking - let's try harder to move the web forward! I'll see if I can create a Firefox Desktop build that supports mDNS+TOFU discovery, so then we rely neither on centralized services, nor on Cordova. Getting it standardized in other browsers will be hard, but we can at least prototype the future, and demo it. :)
from app.
Actually, I just realized that apart from requiring people to use a specific Fennec or FxDesktop version to open our "web" app, it will not work on iOS (afaik Firefox-iOS will not have FlyWeb support, right?).
So to recap, the choice for how box-client discovery should (by default) work, is between:
- "via centralized hosted services"
- "using future web tech"
- "using native apps"
Personally, I would prefer using native apps as the default, with "via centralized hosted services" as a second option, but I realize other people within the project have a different stance on this. I feel we should probably discuss this with product before taking a decision?
from app.
Maybe we can use https://github.com/mozilla/positron instead of Cordova. :) Although I think it does not support Android and iOS as target platforms (yet?).
from app.
I agree with what gmarty wrote. I just want to add 2 things:
- User experience is extremely important. The best one is provided out of the box with the assistance of the cloud part, so that is the default: no app to download and install, just go to an easy url. I said that I was fine with adding a --no-cloud option, which clearly (to me) means that "no cloud" is not the default. However I dispute the argument that this makes us not respect the principle 4 of the manifesto.
- The discovery/secure communication you want here looks similar to what Flyweb needs. There is no point reinventing something custom for Link. Where are they on the security side?
from app.
@fabricedesre I dispute your statement that you dispute it. :) "adding an option" for not leaking user data to the cloud makes that user's privacy optional, in every sense of the word "optional", end of story.
It's fine if you / Connected Devices management decide that Mozilla's mission is less important than user experience in making this product decision, but let's at least be open and honest about it.
Also, I think you'll agree that the user experience for the remaining users is worse once we decide to pull the plug on our centralized hosted services, and everybody's Boxes instantly stop working. It could be 10 or 20 or 30 years until this happens, but I think we can be quite certain it will eventually happen, right?
The problem with relying on Flyweb now is that it's not supported yet by browsers other than Firefox, nor (IIUC) by any browser on iOS, so that's not a very good user experience either.
from app.
I don't believe that what we send to the cloud is recklessly compromising user's privacy. You make that look very black & white while it's not, and that's borderline FUD at this point. You leak much more by just doing dns requests and sending emails.
If a user wants to not use the cloud, fine. But I won't compromise the experience of other users (very likely the majority) for that segment.
All of our stack is open-source and self hostable. That's the best long term guarantee we can offer. Users can choose to use the cloud or not, and when they do they can chose where they host the cloud portion. Isn't that good enough?
from app.
I don't think switching to Cordova should happen today. In its current state, that would mean we're happy to accept the flawed current technological consensus and embrace silos without promoting any alternative.
OK, I'll move the Cordova code to my personal github account, so this repo can be just the Mozilla-hosted app.
from app.
Related Issues (20)
- Selenium tests hang when a webpage can't be loaded
- [Refactoring] Migrate foxbox/settings private fields to new symbol-based naming system
- Run localhost over HTTPS HOT 1
- Port the deployment script to Gulp
- Remove all usages of return value for `ReactDOM.render` and `TestUtils.renderIntoDocument`
- Add auto-reload/watching for unit tests
- Use Network Information API to determine which ping/watch/poll interval to pick
- Implement smarter polling and ping management HOT 2
- Introduce `service-added` and `service-removed` events instead of `services-changed`
- App should show some kind of indicator while connecting to foxbox to retrieve data
- Improve CSS HOT 2
- Emit one change event per item in settings
- Settings class must listen to storage event HOT 1
- Improve and unify app header styles
- Concatenate and minify the CSS resources
- [Meta] Improve application performance HOT 3
- Modularize Gulp file (once Gulp 4 is released?)
- Polyfill for no IndexedDB support HOT 4
- Make app work in Microsoft Edge HOT 1
- Intermittent: Failed to load ‘https://knilxof.org:4443/ping’. A ServiceWorker passed a promise to FetchEvent.respondWith() that rejected with ‘TypeError: NetworkError HOT 12
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from app.