Monitor metered data network state in apps
Description
When connected to a metered network, internet data use is potentially expensive. If apps use too much, it costs the user money, or reduces the amount of data available for other apps to use.
Apps should limit the amount of network data they use when connected to a metered network.
Goals
- This goal only applies to apps which use the internet
- Identify frequent or large network data uses in the app
- Limit or disable them when on a metered network
- Notify the user in the UI in an appropriate way
Scope
- Core apps
- Circle apps
- Development tools
People on charge & contact
Instructions to achieve the goals
- Identify large uses of internet data in the app. For example: background refreshing of data, downloading preview thumbnails / link previews, full refreshes of content rather than delta refreshes, etc.
- Listen to the
Gio.NetworkMonitor.notify::network-metered
signal. Disable or slow down things which use network data when on a metered network. - If reducing network data use will significantly or noticeably impact on the user experience, consider showing a toast or banner (or some other form of feedback) in the UI to notify the user.
Label for tracking the initiative
This should be used only for issues/MRs directly related to monitoring metered network state in apps.
Text for the initiative issue in projects
When connected to a metered network, internet data use is potentially expensive. If apps use too much, it costs the user money, or reduces the amount of data available for other apps to use.
Apps should limit the amount of network data they use when connected to a metered network.
- This goal only applies to apps which use the internet
- Identify frequent or large network data uses in the app
- Limit or disable them when on a metered network
- Notify the user in the UI in an appropriate way
List of projects & tasks
Core Apps
-
Calculator -
Calendar: gnome-calendar#1216 -
Characters -
Cheese -
Clocks -
Connections -
Console -
Contacts -
Disk Usage Analyzer -
Disks -
Document Scanner -
Document Viewer -
Extensions -
Files -
Fonts -
Help -
Image Viewer -
Logs -
Maps -
Music -
Photos -
Settings -
Software https://gitlab.gnome.org/GNOME/gnome-software/-/blob/27565470afd7e94d4eca2b2958e6110962b07087/src/gs-update-monitor.c#L1028 -
Some improvements could still be made: gnome-software#869
-
-
System Monitor -
Text Editor -
Tour -
Videos -
Weather -
Web
Circle Apps
-
Amberol - Does not use network
-
Apostrophe -
Audio Sharing - Would benefit from pause/resume functionality being implemented first
-
Authenticator https://gitlab.gnome.org/World/Authenticator/-/blob/2023accc8986618df9dfc9d954a7ce523af7c1c9/src/widgets/providers/image.rs#L168 -
Blanket -
Boatswain -
Cartridges -
Chess Clock -
Citations -
Clairvoyant -
Collision -
Commit -
Cozy - Network is only used to upload usage statistics/crash reports
-
Curtail -
Decoder -
Déjà Dup Backups https://gitlab.gnome.org/World/deja-dup/-/blob/bdebd86c23b594801b78d985f6f9f21a30be9809/libdeja/Network.vala#L59 -
Dialect -
Drawing -
Ear Tag -
Elastic -
Emblem -
Eyedropper -
File Shredder -
Font Downloader -
Fragments World/Fragments!156 (merged) -
Gaphor -
Health -
Identity -
Junction -
Khronos -
Komikku -
Kooha -
Lorem -
Metadata Cleaner -
Metronome -
Mousai -
NewsFlash https://gitlab.com/news-flash/news_flash_gtk/-/blob/b542aa96403b31c6a04f73ef4f7bf8f0119745c2/src/app.rs#L1042 -
Obfuscate -
Pika Backup https://gitlab.gnome.org/World/pika-backup/-/blob/afed29623238ddffeb48f29205d908c47987e9e8/src/schedule/requirements.rs#L82 -
Plots -
Podcasts -
Polari -
Secrets -
Share Preview -
Shortwave -
Solanum -
Tangram -
Telegraph -
Text Pieces -
Video Trimmer -
Warp -
Webfont Kit Generator -
Wike -
Workbench -
Zap
Development Tools
-
App Icon Preview -
Boxes -
Builder -
Color Palette -
Contrast -
D-Spy -
Dconf Editor -
Devhelp -
Icon Library -
Symbolic Preview -
Sysprof -
Typography
How can I help
- Pick an app, analyse its data usage, and suggest how it could be reduced
- If the app doesn’t use the network at all:
- Check that its flatpak manifest doesn’t specify network permissions
- You’re done! Mark the app as done in the list above, and provide a note that it doesn’t use the network
- If the app already has minimised its data usage, or implemented the checks above:
- Mark the app as done in the list above, and provide a link to where the code checks the
network-metered
property
- Mark the app as done in the list above, and provide a link to where the code checks the
- Implement those changes once the app maintainer has agreed
Edited by Jeff Fortin