Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Potential for replacing WWAHost / EdgeHTML for running a PWA UWP app #68

Closed
koenvd opened this issue Nov 10, 2019 · 13 comments
Closed

Potential for replacing WWAHost / EdgeHTML for running a PWA UWP app #68

koenvd opened this issue Nov 10, 2019 · 13 comments
Labels
feature request feature request

Comments

@koenvd
Copy link

koenvd commented Nov 10, 2019

Hi,

First of all thank you for the great initiative for setting up this repo.

Currently we're distributing a PWA UWP app via the microsoft store to our customers.

But I was wondering if this Webview on the long run will give the opportunity to replace the WWAHost - currently being used to run the PWA - with a better alternative?

This would bring numerous advantages like:

  • faster rendering
  • closer feedback loop in development (a lot of development happens in chrome now)
  • Windows 7 support
  • a more stable app
  • ...

But this would require also:

  • unlimited storage for Indexeddb, cache, etc, ... In my test I saw that storage is still limited to a certain percentage of the available disk space.
  • access to the Windows WinRT API. Or is this item on the roadmap of the WinUI team?

Or maybe there is already a roadmap defined to move the WWAHost to this new Webview?

It would be great if some information about this could be shared ...
Thanks already for your input!

AB#24009171

@koenvd koenvd changed the title Potentially replacing WWAHost / EdgeHTML for running a PWA UWP app Potential for replacing WWAHost / EdgeHTML for running a PWA UWP app Nov 10, 2019
@david-risney
Copy link
Contributor

Hi and thanks for your feedback!

We don't have plans to modify wwahost.

We can consider a wwahost-like or Electron-like app platform in the future but it's not on our immediate road map. This is similar to #45.

Winrt access is a feature in our back log.

Unlimited storage quotas is also a good feature request that I don't think has come up previously.

Would a browser based PWA work for your app?

@koenvd
Copy link
Author

koenvd commented Nov 12, 2019

Currently we only use winRT in our auth flow & to open an url in an external browser. But the nice thing about having access to the runtime is that whenever we would face a limitation with the EdgeHTML api winRT might offer a way to a custom solution.

Next to that the unlimited storage quota for Store apps is a real differentiator as well since we want to give our user offline access to lot's of his files even past the limitation that is currently applied in Chrome.

But for UWP PWA apps a chromium rendering engine just has a lot more extra advantages compared with EdgeHTML. (Eg I didn't mention Indexeddb support for compound indexes on tables, speed of unzipping etc)

So what I could see as a potential alternative for our PWA UWP would be an app including a single webview that navigates when started to the start URL of our UWP app. We would then still need to find an alternative for the winRT specific parts though ...

But I think then - from the app perspective - being able to ask for unlimited storage quota for that webview makes sense since for the user it looks like an app different from their browser anyway. I understand it's very hard to enable this in a browser / webview itself since all sites are basically competing for that same storage but when the app would be basically only be a webview this perspective changes somewhat.

@koenvd
Copy link
Author

koenvd commented Nov 19, 2019

Would unlimited storage be something that could be supported @david-risney ?

I can also create a new dedicated issue for this to make the feature request and reasoning more clear and take it out of this ticket ...

Just let me know if you would prefer this :-)

@michael-hawker
Copy link

🦙 This thread/project discussion on Twitter seems timely here as well: https://twitter.com/stevensanderson/status/1196448486033522688

@david-risney
Copy link
Contributor

Yes @koenvd, sorry for not following up. I've opened an issue for unlimited storage. Thanks!

@koenvd
Copy link
Author

koenvd commented May 22, 2020

Hi @david-risney ,

Currently going through some of the exciting sessions presented at Build.

At SK122 Building rich app experiences with Progressive Web Apps one of the presenters mentioned the great news that a Chromium based rendering engine for PWA's installed through the Store is currently being looked at. The timeline now is "somewhere this year ..."

But wondering if there's a way to follow progress related to this feature more closely? Would it be possible to get status updates here? Or is there a better place to get this kind of information?

As mentioned earlier a Chromium based rendering engine would have a tremendous impact - both from user and developer perspective - on our PWA. . Hence the reason I'm coming back on this :-).

Thanks!

@david-risney
Copy link
Contributor

Hey @koenvd, great question! Let me see if I can find someone to help answer it.

@sohchatt
Copy link

The best place to track updates and provide suggestions / requirements / feedback for Chromium-based PWAs in the Microsoft Store would be at https://github.com/pwa-builder/PWABuilder.

@koenvd
Copy link
Author

koenvd commented Jun 2, 2020

Thanks @david-risney and @sohchatt for the support!

I duplicated the ticket here pwa-builder/PWABuilder#787.

I guess this issue can then also be closed since all requests got handled but I leave that up to you to decide on that.

Thanks!

@champnic
Copy link
Member

champnic commented Aug 6, 2020

@koenvd Sorry for the late reply - it looks like you can enable unlimited storage by using a command line switch if you want to try it (I haven't tested this yet):
--unlimited-storage

You can use AdditionalBrowserArguments to enable this:
https://docs.microsoft.com/en-us/microsoft-edge/webview2/reference/win32/0-9-538/icorewebview2environmentoptions#put_additionalbrowserarguments

However, please use at your own discretion. Chromium source notes that this should only be used for testing.
https://source.chromium.org/chromium/chromium/src/+/master:chrome/common/chrome_switches.cc?q=kUnlimitedStorage&ss=chromium%2Fchromium%2Fsrc

We'll see if this is something we can use to enable unlimited storage on WebView2 by default in the future. Thanks!

@koenvd
Copy link
Author

koenvd commented Aug 9, 2020

Thanks for the extra info @champnic!

Unlimited storage was and still is important for us since we now have a UWP EdgeHTML PWA where this is enabled by default. This is also a requirement for our users as well since they typically want to make a lot of files available offline which we download to cache storage.

However I noticed that in the meantime chrome is also regularly extending the storage capacity per origin. I also checked Electron code in the past and I think there unlimited storage is enabled by default. I can try to find it back if you would think it's useful.

But for a PWA (or a WinUI desktop app only embedding Webview2 with a fixed start url) I think it still makes a lot of sense that that app has unlimited storage capacity like any other desktop app.

Would be great if this would be part of the roadmap.

@champnic
Copy link
Member

Thanks for the details, it's always helpful to have customer signal. We definitely plan to have unlimited storage enabled by default, and the workitem is in our backlog. We just need to make sure that flag is safe to use to implement this, but assuming it is this should be relatively straightforward to do. I'll also forward this suggestion to the PWA team.

Did you happen to try out the flag? Did it work to unblock you?

@champnic
Copy link
Member

The unlimited storage ask is tracked in #72. I think the rest of the asks in this thread have been answered or are also tracked elsewhere. If you feel otherwise, please reopen. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request feature request
Projects
None yet
Development

No branches or pull requests

5 participants