On May 17, 2010, at 11:02:09, Jesper wrote:
> I'd like you to spend a short amount of space for each feature you'd like. Also mention how crucial this is for getting work done (if it's something that already exists), how long time, roughly, you estimate that it will take to implement (more on the scale of magnitudes - hours, days, weeks - than exact units) and how soon, given the timeline I've given and the three big milestones, you think it should arrive. List them by immediate priority.
Here's the post with the “three big milestones”, for anyone else who'd forgotten them:
http://waffle.wootest.net/2010/04/18/rouse-feasibility-and-scope/
> For every three things you list, also mention one thing in one of your current browsers that you'd really like to be different.
Good thing I wrote a bunch of these down last month and have been waiting for a good opportunity to post them to the list!
R-numbers are requests; D-numbers are difference requests.
---
R1. Warning against loss of form text
In Safari, if you enter text in a form, then attempt to close the page without submitting it, Safari will warn you.
A way to improve on Safari: Don't warn if the form has been submitted into a new tab (⌘-return/⌘-click on Submit).
Tier one. I have no idea how to implement this, so I'll call it several weeks.
---
R2. Ability to set an application, which would ostensibly be a download manager, with which to “open” every URL to be downloaded
I use Leech and love it. I wish my browsers would use it for all their downloads.
This would save us from having to implement one ourselves, at least built in. Those who want a download manager and don't want to pay for one could join together to write a simple free download manager for the Rouse project to recommend and possibly to include as a bundle.
Tier two. This would take 1–2 weeks, I think. Low priority—we can get by on dragging to our favorite download managers for now.
---
R3. Ability to keep the Location field hidden except while in use
In OmniWeb, I keep all toolbars hidden except when I'm using either the Location field. This reduces distraction from the browser content. I would like Rouse to have the same feature.
(The only bar I keep visible at all times is the status bar, which includes loading status, the Load All Images button, the Cookies button, the AutoFill, the Subscribe to Detected Feed button, the Secure Site indicator, and the Site Preferences button.)
Tier one. If D1 (below) is accepted, there will be only one toolbar, which means we can implement this with NSToolbar, which means it should be fairly easy. Let's call it a few days, up to a week.
---
D1. The Search field (if indeed there one is implemented) should be on the same line as the Location field.
Quite frankly, I see no reason to have a toolbar of the classical form in a 2010-vintage browser, especially one for sophisticated users. Those who want mouse control over such things as back/forward navigation can either use the Go menu (or whatever Rouse calls it) or right-click on the background and use the contextual menu.
Of course, if the Search field and the Location field are the same field, then the Search field is on the same line as the Location field, which satisfies this request inherently. ☺
Tier one. Two separate fields on one toolbar: See R3. One field doing both jobs: Harder, but well within our reach; perhaps a few weeks for that.
Incidentally, we could use Stephen Holt's AIHyperlinks framework (BSD license) to tell URL from search query.
https://bitbucket.org/sholt/autohyperlinks2
~~~
---
R4. Ability to enforce styles
OmniWeb provides several predefined styles and an option to enforce them to varying degrees upon all sites (except those explicitly excepted using Site Preferences). This is good for preventing sites from blinding me with terrible colors.
Tier two. I'll estimate several weeks to implement this, not knowing exactly how to do so. The Web Inspector in OmniWeb offers a vague hint.
---
R5. Shift-click a link to focus it without activating it
In OmniWeb, you can drag a link and let it go to put focus on it without activating it. This is very handy in conjunction with tabbed browsing, as you can use ⌘-return and tab in alternation to quickly open a dozen or so tabs from a starting page (e.g., pages 1 through eleventy of a multi-page article, or images in a gallery).
Tier one. I have absolutely no idea how to implement this, so I will guess that it could take weeks to months to implement.
---
R6. Ability to view source while it's still loading
With a progress bar at the bottom of the window tracking the progress of the main resource load.
Tier one. This shouldn't be too hard, but maybe I'm underestimating it. 1–2 weeks.
---
D2. Break ability for JavaScript to break left-/right-click
This could come with a user-editable whitelist for sites like Dropbox, but the default should be that no site not on the list can break the contextual menu.
The same feature should also guard dragging in the page. Some sites break dragging in a foolish attempt to prevent you from selecting anything on the page.
Tier three. Probably hard.
A stopgap solution is to enable me to do what I do in OmniWeb: Turn JavaScript off, and turn it on for specific sites using Site Preferences.
~~~
---
R7. Copy list items from the Activity and Downloads windows without having to select text in a field
(“Downloads”, obviously, assumes the unfulfillment of R2.)
In OmniWeb, in order to copy the URL for an item in the Activity or Downloads window, you must first select the item, then select the text of the URL in a separate field, then copy it. Rouse's Activity window (and Downloads, if it has one) should enable the user to copy the URLs of items by copying the items directly.
This is handy for downloading videos served as MPEG-4 (e.g., by YouTube and PATV) for offline viewing, as well as audio and Flash games from some sources.
Tier one. This won't take more than a couple of hours out of each window's implementation—it's basic table-view data-source stuff.
---
R8. Type-ahead find
OmniWeb allows the user to type into the browser window to focus a link. This is *extremely* useful for browsing Apple's framework references, to the extent that I prefer OmniWeb over Xcode's built-in doc viewer, as I wrote here:
http://boredzo.org/blog/archives/2009-07-15/my-documentation-viewer
I think we can improve on it. The problem with OmniWeb's type-ahead find is that it doesn't work if a browser frame isn't focused; in particular, ⌘T, ⌘2, “NSBlahBlah” doesn't work like I want it to (as OmniWeb inexplicably leaves the Location field focused, with URL selected, after ⌘2). I have to use ⌘⌥⇣ a couple of times to focus the first link on the page, *then* start typing, and that doesn't always work.
For one thing, activating a bookmark should deselect and blur (and hide, if the user has it hidden according to R3) the Location field and focus the main browser frame.
For another, I suggest making ctrl-s a shortcut to put the focus on the main frame. emacs and advanced Cocoa-text-view users should notice the evocation right away: You would press ctrl-s, then start typing, and the first match would be selected (focused).
Tier two. This is another where I have absolutely no idea how to implement it, so I will guess that it could take weeks to months to get working.
---
R9. Paste URLs directly into the main frame
I'm sure this used to be supported in some browser or another, but I know the current versions of Safari, Chrome, OmniWeb, iCab, and Firefox, plus Camino 1.0.3, don't support it. (Opera critically failed this test: It pasted the URL into the search field.)
Incidentally, iCab 4's browser chrome is worth studying. I'd cut one or two of those buttons, but overall, I like the design.
Anyway, this might be nice to have.
Tier two+. Shouldn't be *too* hard to implement; let's say a week.
---
D3. Store bookmarks somewhere other than an HTML file
The slowest part of OmniWeb's launch process, the last time I got frustrated enough to profile it, was loading the bookmarks. It's possible that they're just Doing It Wrong, but I don't see the merit of a Bookmarks.html file in the modern era anyway.
The replacement could be a plist. Some will leap to mention Core Data, but enabling users to set arbitrary order is very tricky with Core Data.
With plist storage, a day, maybe two or three. With Core Data, weeks.
Tier one. Bookmark storage is necessary for bookmarks, so this is high priority within the priority of the bookmarks feature at large.
~~~
Other anti-wants:
- Feed reading
- AutoFill, except for usernames and passwords
- Mail Contents of/Link to This Page
- Bookmark polling
- Mark Page (OmniWeb)
- A start page preference—Top Sites might be good eventually, but I think we should just use a blank page until then
- *Certainly* not a start page set by default
- Source editing, as opposed to viewing