Development:Planning:Toolbar item validation

From Camino Wiki
Jump to navigation Jump to search

This is an ongoing attempt at auditing the validation state of all our toolbar items. A similar page exists for menu item validation (cross-reference relevant discussion in Internal URIs also).

Any toolbar items that don't specify validation parameters are always enabled.

Go Back

Must have at least one non-about:blank page previous to the current page in the current tab/window's session history to be enabled

We already do this.
Yeah, but we also need to make sure Back actually works all the time it should. For instance, if you load about:bookmarks as the first item in a new tab, you can never go back to it, and you can't back out of a view-source URL either, IIRC.

Go Forward

Must have at least one non-about:blank page subsequent to the current page in the current tab/window's session history to be enabled

We don't already do this.
Hmm. Since a user has to manually type about:blank, go there, and go back, maybe we should leave as-is. Use-case is ss looking at pr0n at work?

Reload Page

Disable when a page is in the "Looking up" stage (Bug 341895). Disable when about:blank, about:config, about:bookmarks, or about:history are showing.

Do *any* about: URIs ever really need to be reloaded? Take a look at about:about for a full list. about:plugins is the only one that comes to mind for me.
There are essentially the same arguments for/against as for the view source debacle. I say, those are the only about:URIs for which reload doesn't make sense, so they're the only ones that should be disabled. Froodian
about:credits is not a local file, so it certainly needs to be reloadable. about:cache should be, too, since that data changes. The others not already specified I really don't care about, other than to say that I believe users should be able to reload all pages they can view-source for, and that we should allow view-source on all html, xhtml, xml, and foo+xml documents, whether the documents are internal or external to Camino. sardisson
about:plugins can change, too, if the user disables plugins or Java —sardisson 15:02, 4 August 2006 (PDT)

Stop Loading

Disable when a page and all its associated elements have finished loading

what about post-initial-load ajax stuff?

Go Home

Disable when the current tab/window is displaying the home page

what about multiple home pages? when any one of the pages is in view? is there discussion in the bug?

Location/Search

Manage Bookmarks

  • Disable only when manager is open and the page "behind" the manager is about:blank, including situations where a new window/tab is opened with about:bookmarks. (we already do this)
  • Change icon state when the Manager is open in the current tab - Bug 235863

Progress

  • Active (spinning) the same as "Stop Loading" above
  • Is a button for the Camino home page, so always enabled
  • Has no "inactive state" image (compare to Cocoa throbber)
  • Should really be a Cocoa throbber

Print

Disable when viewing about:blank, about:config, about:history, about:bookmarks

View Page Source

See discussion in Development:Planning:Internal URIs

Bookmark Page

See discussion in Development:Planning:Internal URIs

New Tab

Close Tab

Disable when no tabs are present in the window, or when one tab is present but the tab bar is always shown

Bigger Text & Smaller Text

Disable both for about:blank, about:config, about:history, about:bookmarks, and tabs/windows of solely binary content

Email Page Location

Disable for all about: URIs and all view-source: URIs

Customize

Disable when currently customizing the toolbar (we already do this)

Downloads

It either opens the Downloads window or focuses it if open (we already do this)

Fill Form

Disable on all about: URIs, all view-source: URIs, all URIs of solely binary content, and, if possible, any page without form fields

History

Disable only when the History view of the Bookmarks Manager is active

basically, we should use the same criteria for this that we do for the Bookmarks toolbar item.


Still need to cross-reference all of these with the discussions on the other two pages.