User:Skierpage/Places as a next-gen file manager

From MozillaWiki
Jump to: navigation, search

Theses

  • Almost everything on your hard drive came from the web.
  • New, improved versions of much of the stuff on your hard drive is on the web

Use cases

Saved files, working offline

Amy often needs to work when she has no internet connectivity So she has saved many of her key reference files locally

  • Places should know which files in bookmarked and history have been saved locally
  • Places should intelligently offer to launch the saved file if you have no connectivity or are in File > Work Offline mode.
  • When back online, Places should have a built in auto-generated tag for "local saved files that have been updated on the Web".
  • Places can't tell the difference between the intent "I have archived a particular version of this file" and "I want to keep the most recent version of this file locally"
    • So let the user choose between these by providing an easy way to launch the saved file://path URL and the URL saved, so the user can compare them.
    • A web-page "diff" utility could be an extension opportunity.

Related: ScrapBook and ScrapBook+ add-ons, see Firefox/Feature Brainstorming:Archiving and Offline browsing

Download management

Jill has downloaded various huge games and installers from the web. She then runs low on disk space. She should be able to go to Places and:

  • view downloaded files by size
  • tell if an installer has been run or zip has been extracted
  • check to see if a newer version of the game or installer is available
  • See when she last accessed a downloaded file
  • Based on this investigation, delete some downloaded files and replace other local file with a URL pointing to the web, confident that she can get the info back.

Viewing downloaded files in the file system

Frank revisits a project he worked on last year. In its directories, many of the documents are things he downloaded from the web. He should be able to visit that directory in Places and quickly get back up to speed, to see information like

  • how the pages were tagged
  • which files were downloaded from the web
  • which of those downloaded files are still available on the web
  • whether any of them have been replaced on the web by newer versions
  • whether the page from which he downloaded them has changed

More than a Downloads view

There is already a bug to provide a Downloads view in Places (bug 402231 "places organizer should allow browsing and searching of downloads") But that doesn't go far enough.

a) You can save any URL locally, which initiates a download, so as well as a Downloads view the other Places views need to be download-aware.

b) These days almost every file on your computer came from the web. Your hard drive is just a local cache/archive of stuff you got off the web. So I want Places to have a filesystem view that can tell me what URL files came from and check for updates.

Yup, I want Firefox to manage my hard drive 8-) !

Field design

As others have commented, for downloads and pages you save you need to remember three URLs and some other info:

  • the page you were viewing where you downloaded
  • the URL you downloaded or "Save link as"
    • the size and last-modified date of the URL you downloaded
  • the local file:// URL to which you saved)

Tools > Downloads remembers and exposes all of these in its context menu as Go to Download page, Copy Download Link. But Places does not.

When you File > Save a Web page, do "the page where you downloaded" and "the URL you downloaded" become the same thing? The former could be generalized to "the referring page", which might be nice for Places to show a breadcrumb of how you wound up at some page, but it's more abstract and less meaningful for a download.

This info is shared between two web URLs and a local file. I think it should show up in all three in Places:

  • When you view a web page URL, Places shows all URLs you downloaded from it and all local files to which you saved it.
  • When you view a download URL, Places shows all local files you saved it as.
  • When you view the local file, Places shows the Web page it came from and the URL it came from.

One neat thing Places could do is warn you if you've already saved a URL.

 You already saved this [download URL] as local file://.
   [Open Containing Folder for local file://]
  
 Do you want to save it again?
   [Save again] [Cancel]

What about archives

To repeat, every local file came from somewhere else, probably the network. But many of them appeared from a .zip/.mar/.tar.gz/.torrent/Installer archive. So you have to keep track of the URL you downloaded through the decompression operation. Mozilla has code for archiving, but it would need O.S. cooperation to track files extracted from a downloaded URL by an installer application.

Maybe upload

Maybe store something similar for upload. Remember the URL when you upload a local file.

Related work

The Nepomuk project for KDE is already keeping track of files and tagging them. (The Nepomuk download ontology has additional fields such as the downloading app and info for torrents. I think on the local URL to which you save it stores ndo:sourceUrl and ndo:originatingWebPage.)

Needed tech

Even when Places can tell if a file on the web is newer than the one you have, this often won't help when a new version comes out, because whizzo_v2_3-04.tar.gz is a different file than what you have. The browser has to figure out that it's the next version of what you have.

  • Is there a microformat to represent "This is version X.YY of this URL?"
  • Is there a microformat to represent "This is the latest version of this download?"

Actual projects

This page is just me talking. Actual Mozilla nitiatives towards this goal include:

  • 2007's bug 402231 ("places organizer should allow browsing and searching of downloads") suggests a Downloads view. (Never prioritized by Places team)
  • 2008's Firefox/Feature Brainstorming:Archiving and Offline browsing , seems stalled.
  • 2010's Panel-based Download Manager, heading towards implementation in bug 564934. Alas the really good stuff — bug 591289 "Save chosen download file name and other metadata in Places history" and bug 564900 "Add folder to Library sidebar specifically for downloads" — is "On hold".
  • 2011's Boot to Gecko project. Although it's Android-based and targeting phone apps, they say the goal is
    To make open web technologies a better basis for future applications on mobile and desktop alike, we need to keep pushing the envelope of the web to include --- and in places exceed --- the capabilities of the competing stacks in question.