Sidebar design feedback [Was: BUG=2721693... (issue2836040)]

41 views
Skip to first unread message

Aaron Boodman

unread,
Jul 2, 2010, 12:21:42 AM7/2/10
to alek...@google.com, b...@chromium.org, phajd...@chromium.org, eri...@chromium.org, a...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
-chromium-reviews
+chromium-dev

Hi Aleksey,

Thanks for taking on the sidebar feature. I think this is going to be a cool addition to the extension system.

My main question is what should happen when multiple extensions are installed that both want to use the sidebar at the same time. Not what the API should be, but what the user experience should be.

Here are some possibilities:


A. Nothing special

If one extension opens the sidebar and another closes it, it closes. If the other navigates it to a different URL, it navigates. Imagine Google SideWiki and Yahoo SideWiki is installed. If the Google SideWiki extension runs first and the Yahoo one runs second, the Yahoo URL will be displayed and there will be no way for the user to get back to the Google one.


B. Side "panels"

Instead of having a single shared sidebar, the sidebar is actually conceptually divided into panels:

|============================
| Google Sidewiki        [-]|
|---------------------------|
|                           |
|                           |
|                           |
|                           |
|                           |
|---------------------------|
| Yahoo Sidewiki         [-]|
|---------------------------|
|                           |
|                           |
|                           |
|                           |
|                           |
|============================

Perhaps the user can collapse the panels he doesn't want to see or otherwise resize them.

See Mozilla's "slidebars" for a variation on this idea which I think is pretty neat: http://vimeo.com/5102695.


C. ... ?

Actually there's no C. That's all I got. Any other ideas?


- a

Aaron Boodman

unread,
Jul 2, 2010, 12:08:20 PM7/2/10
to alek...@google.com, b...@chromium.org, phajd...@chromium.org, eri...@chromium.org, a...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
On Thu, Jul 1, 2010 at 9:21 PM, Aaron Boodman <a...@chromium.org> wrote:
> Thanks for taking on the sidebar feature. I think this is going to be a cool
> addition to the extension system.

For those who missed the previous thread, the design doc is here:

http://www.chromium.org/developers/design-documents/extensions

- a

Aaron Boodman

unread,
Jul 2, 2010, 12:09:32 PM7/2/10
to alek...@google.com, b...@chromium.org, phajd...@chromium.org, eri...@chromium.org, a...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org

Aaron Boodman

unread,
Jul 2, 2010, 12:18:07 PM7/2/10
to alek...@google.com, b...@chromium.org, phajd...@chromium.org, eri...@chromium.org, a...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org

And as far as I can tell it is impossible to make this document
world-readable. You have to have an @google.com account to see it :(.
Aleksey, can you please either figure out how to make it public, or
move it to a different service?

Sorry, non-Googlers.

- a

Aaron Boodman

unread,
Jul 2, 2010, 12:21:00 PM7/2/10
to alek...@google.com, b...@chromium.org, phajd...@chromium.org, eri...@chromium.org, a...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org

In the meantime, here is a snapshot of its current state. I'm going to
stop replying to myself now.

- a

Chrome Extensions Sidebar API proposal.pdf

Mohamed Mansour

unread,
Jul 2, 2010, 12:20:36 PM7/2/10
to a...@google.com, alek...@google.com, b...@chromium.org, phajd...@chromium.org, eri...@chromium.org, a...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
I was just going to say about not reading that document, but you beat me to it :)  

I have looked at the source of what Aleksey did, and it seemed that the sidebars are per tab and not across all tabs, any reason why it is like that? Why can't the API developer just refresh their content on the side bar if they focus to another tab?


-
Mohamed Mansour
m...@chromium.org



- a

--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
   http://groups.google.com/a/chromium.org/group/chromium-dev

Scott Violet

unread,
Jul 2, 2010, 12:45:49 PM7/2/10
to a...@google.com, alek...@google.com, b...@chromium.org, phajd...@chromium.org, eri...@chromium.org, a...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
It's also worth thinking about how a side bar should interact with
side tabs. We could certainly stack them right next to each other, but
then ends up taking a lot of horizontal real estate.

A variation of B I've seen in some apps (Outlook maybe?) is to only
show the contents of one of the side bars at a time. Clicking on the
header of one collapses the others. This assumes you only want to see
the contents of one at a time.

I agree with Mohammed, it seems like it would be nice to have the
ability to specify a side bar for all tabs in the window, not just
one.

-Scott

On Thu, Jul 1, 2010 at 9:21 PM, Aaron Boodman <a...@chromium.org> wrote:

Dominic Mazzoni

unread,
Jul 2, 2010, 12:55:27 PM7/2/10
to a...@google.com, alek...@google.com, b...@chromium.org, phajd...@chromium.org, eri...@chromium.org, a...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
The sidebar sounds great.

Just curious, was putting the bar on the top or bottom rejected? If it could be put at the top or bottom, it'd be a perfect fit for ChromeVis, a Google-developed extension that displays the current selected text in a large-print box at the top of the page, for users with low vision. (It'd probably still be a useful option on the left, just not as ideal.)


- Dominic

Mark Larson (Google)

unread,
Jul 2, 2010, 1:19:11 PM7/2/10
to chromium-dev
Pardon the duplication, sending from @chromium.org address so it goes out to chromium-dev:


- a

Erik Kay

unread,
Jul 2, 2010, 5:51:05 PM7/2/10
to Scott Violet, a...@google.com, alek...@google.com, b...@chromium.org, phajd...@chromium.org, a...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
On Fri, Jul 2, 2010 at 9:45 AM, Scott Violet <s...@chromium.org> wrote:
It's also worth thinking about how a side bar should interact with
side tabs. We could certainly stack them right next to each other, but
then ends up taking a lot of horizontal real estate.

I like the idea of making the side tabs just another sidebar, and then getting the UI of multiple sidebars to work right.  There are a couple of odd things with this:
- You'll likely be forced to switch back and forth frequently.  You need your tabs all of the time.  If the point of a sidebar extension is to have persistent UI, then you're toggling between two important bits of persistent UI.  If we went with Aaron's "B" proposal, then maybe it would work in that you could have multiple of them visible at the same time, which would solve this problem nicely.

- The current vertical tabs UI goes along side of the nav bar, emphasizing the per-window aspect of this rather than per-tab.  This might not be a big deal (see below), but it's worth calling out.

 
A variation of B I've seen in some apps (Outlook maybe?) is to only
show the contents of one of the side bars at a time. Clicking on the
header of one collapses the others. This assumes you only want to see
the contents of one at a time.

Yep.  That might be a fine constraint unless we mix the vertical tabs in there.

 
I agree with Mohammed, it seems like it would be nice to have the
ability to specify a side bar for all tabs in the window, not just
one.

There are definitely two different use cases:
(1) per tab behavior.  This includes things like devtools, page inspectors, annotaters, side-by-side page viewers, search/navigation state UI, etc.
(2) per window behavior.  This is global persistent state that you want to always keep visible.  examples include twitter bars, rich status gadgets, etc.

If you go for just (2), then you make it so the extensions that want to do (1) need to maintain a lot of state and constantly rebuild their UI as you switch tabs.

If you go for just (1), then you make it so extensions that want to do (2) have to have a separate copy open on each and every tab, or they have to keep opening and closing themselves on each tab dynamically.

It's also possible that the browser UI for (1) might be different than for (2).  For example, per tab UI might imply that the sidebar would be below the toolbar, different from how you did vertical tabs.

Erik Kay

unread,
Jul 2, 2010, 5:54:01 PM7/2/10
to Aaron Boodman, alek...@google.com, b...@chromium.org, phajd...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
On Thu, Jul 1, 2010 at 9:21 PM, Aaron Boodman <a...@chromium.org> wrote:
-chromium-reviews
+chromium-dev

Hi Aleksey,

Thanks for taking on the sidebar feature. I think this is going to be a cool addition to the extension system.

My main question is what should happen when multiple extensions are installed that both want to use the sidebar at the same time. Not what the API should be, but what the user experience should be.

Here are some possibilities:


A. Nothing special

If one extension opens the sidebar and another closes it, it closes. If the other navigates it to a different URL, it navigates. Imagine Google SideWiki and Yahoo SideWiki is installed. If the Google SideWiki extension runs first and the Yahoo one runs second, the Yahoo URL will be displayed and there will be no way for the user to get back to the Google one.


B. Side "panels"

Instead of having a single shared sidebar, the sidebar is actually conceptually divided into panels:

|============================
| Google Sidewiki        [-]|
|---------------------------|
|                           |
|                           |
|                           |
|                           |
|                           |
|---------------------------|
| Yahoo Sidewiki         [-]|
|---------------------------|
|                           |
|                           |
|                           |
|                           |
|                           |
|============================


I like this approach.  Essentially getting the extension to export a panel/gadget allows us flexibility about being able to use it in other places.  For example, maybe it could even be the same widget that they're using in their popup windows today.

 
Perhaps the user can collapse the panels he doesn't want to see or otherwise resize them.

See Mozilla's "slidebars" for a variation on this idea which I think is pretty neat: http://vimeo.com/5102695.

Yep.  This is like what Scott proposed as well, which is similar to how Outlook handles swapping between different sidebar views.

Erik

Peter Kasting

unread,
Jul 2, 2010, 6:16:19 PM7/2/10
to Erik Kay, Scott Violet, a...@google.com, alek...@google.com, b...@chromium.org, phajd...@chromium.org, a...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
On Fri, Jul 2, 2010 at 2:51 PM, Erik Kay <eri...@chromium.org> wrote:
I like the idea of making the side tabs just another sidebar, and then getting the UI of multiple sidebars to work right.

BTW, Kan and Cole talked in the UI review today about a sidebar in Chrome OS.  I mentioned the work on this extension and they said that the critical bit would be supporting multiple simultaneous sidebar users; if we handle that they could perhaps implement whatever it is they want in terms of the same UI the extension is surfacing.  I suggest syncing up with them to figure out what they're doing and how to avoid developing two sidebars simultaneously.

PK

Scott Violet

unread,
Jul 2, 2010, 6:20:04 PM7/2/10
to Peter Kasting, Erik Kay, a...@google.com, alek...@google.com, b...@chromium.org, phajd...@chromium.org, a...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
On Fri, Jul 2, 2010 at 3:16 PM, Peter Kasting <pkas...@chromium.org> wrote:
> On Fri, Jul 2, 2010 at 2:51 PM, Erik Kay <eri...@chromium.org> wrote:
>>
>> I like the idea of making the side tabs just another sidebar, and then
>> getting the UI of multiple sidebars to work right.
>
> BTW, Kan and Cole talked in the UI review today about a sidebar in Chrome
> OS.

The Chrome OS one is a bit different, it's implemented in the window manager.

-Scott

Peter Kasting

unread,
Jul 2, 2010, 6:23:32 PM7/2/10
to Scott Violet, Erik Kay, a...@google.com, alek...@google.com, b...@chromium.org, phajd...@chromium.org, a...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
On Fri, Jul 2, 2010 at 3:20 PM, Scott Violet <s...@chromium.org> wrote:
On Fri, Jul 2, 2010 at 3:16 PM, Peter Kasting <pkas...@chromium.org> wrote:
> BTW, Kan and Cole talked in the UI review today about a sidebar in Chrome
> OS.

The Chrome OS one is a bit different, it's implemented in the window manager.

All I am saying is that they seemed to think we could share an implementation.  I don't know enough of the implementation to know for sure.  It does seem in principle like if Chrome can support a global sidebar we wouldn't need to write a ChromeOS one in the window manager.

PK 

Scott Violet

unread,
Jul 2, 2010, 6:29:53 PM7/2/10
to pkas...@google.com, Erik Kay, a...@google.com, alek...@google.com, b...@chromium.org, phajd...@chromium.org, a...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org

I may be missing something, but the two have completely different
design points. I agree that the two teams should meet to make sure
that is the case though.

-Scott

Peter Kasting

unread,
Jul 7, 2010, 7:26:42 PM7/7/10
to Aleksey Shlyapnikov, Erik Kay, Aaron Boodman, b...@chromium.org, phajd...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
On Wed, Jul 7, 2010 at 4:21 PM, Aleksey Shlyapnikov <alek...@google.com> wrote:
To Mozilla's slidebars version of UI, it depends on how many sidebars
we expect to be shown at the same time. If it's only one or two, then
we'll be waisting a good portion of the horizontal space for that
vertical strip with icons, but if we're talking about 10-15 sidebars,
then our proposed design with sidebar captions sharing vertical space
with sidebar content is going to look cluttered.

I think the design should be aimed at 1 - 3 simultaneous sidebars and we can then look at how to modify it later based on how users seem to be using it.  I'd be very surprised to find users with tons of simultaneous sidebars.

In that sense, a simple sidebar with vertically stacked panels seems fine.  If we let users "minimize" a sidebar to a single caption strip, I suspect we'll have covered practically all the use cases.

PK

Ben Goodger (Google)

unread,
Jul 8, 2010, 6:10:47 PM7/8/10
to Aaron Boodman, alek...@google.com, phajd...@chromium.org, eri...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
Glen, Nicholas and I just chatted. Here's what we discussed:

- Sidebars will be tab scoped, like the current web inspector UI.
- Sidebars will appear to the right of the page content.
- Sidebars will have two states - expanded and collapsed.
- Only one expanded sidebar will be visible at a time.
- Available sidebars will be visible by little tabs with icons
(extension api provides an icon for the sidebar) that appear
underneath the rightmost scrollbar (or overlapping page content if
there is no scrollbar) but above the resizer widget. To be clear: If a
sidebar is present that overlaps a scrollbar, the scrollbar is
repositioned such that the tabs are visible below it, much like we do
today for the content resizer grippy. If there is no scrollbar, the
tabs just overlap page content.

-Ben

On Thu, Jul 1, 2010 at 9:21 PM, Aaron Boodman <a...@chromium.org> wrote:

Daniel Wagner-Hall

unread,
Jul 8, 2010, 6:38:47 PM7/8/10
to ben, Aaron Boodman, alekseys, phajdan.jr, erikkay, pkasting, chromium-dev, ben+cc, darin-cc, brettw-cc, pam+watch
On 8 July 2010 23:10, Ben Goodger (Google) <b...@chromium.org> wrote:
> Glen, Nicholas and I just chatted. Here's what we discussed:
>
> - Sidebars will be tab scoped, like the current web inspector UI.

Can I ask as to the reasoning behind tab-scoping? As an extension
developer, I find it quite hard to work without *any* non-tab-specific
UI (other than a 19x19 browser-action if I haven't happened to want a
page-action), and this seems a good chance to give that non-tab-scoped
UI space.

Aaron Boodman

unread,
Jul 8, 2010, 6:56:00 PM7/8/10
to Ben Goodger (Google), alek...@google.com, phajd...@chromium.org, eri...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
Should extension developers be able to expand the sidebars
programmatically? I believe this is what Sidewiki wants, but obviously
if only one sidebar can be expanded at a time this leads to conflicts
if extensions can open themselves programmatically.

- a

Ben Goodger (Google)

unread,
Jul 8, 2010, 7:18:48 PM7/8/10
to Aleksey Shlyapnikov, Aaron Boodman, phajd...@chromium.org, eri...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
Mockups LGTM. Glen & Co can get you better graphics once you have the
basics working.

As for the window-wide sidebar... the design philosophy is such that
everything under the tab is supposed to be tab-specific (we bend this
rule for the wrench menu and browser actions). Moving the sidebar out
of the tab area and alongside the toolbar might fix that but looks
weird and causes other conundra.

-Ben

On Thu, Jul 8, 2010 at 3:57 PM, Aleksey Shlyapnikov <alek...@google.com> wrote:
> Just to make sure I got it right, please check the attached mock. Is
> that what we want?
>
> - Sidebar icons are 16x16 pixels
> - Can extension expand and collapse sidebar or it's the user's
> prerogative? My guess is that only user should control it, but I'd
> like to confirm.
>
> From the implementation and extension API prospective, it is not hard
> to implement browser-scope sidebar. Is there a specific reason why we
> do not want to offer it?
>
> Alex


>
>
> On Thu, Jul 8, 2010 at 3:10 PM, Ben Goodger (Google) <b...@chromium.org> wrote:

Ben Goodger (Google)

unread,
Jul 8, 2010, 7:26:40 PM7/8/10
to Aaron Boodman, alek...@google.com, phajd...@chromium.org, eri...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
Aleksey, what is the feature that requires you to open the sidebar
programmatically?

-Ben

Peter Kasting

unread,
Jul 8, 2010, 7:59:47 PM7/8/10
to Aleksey Shlyapnikov, Ben Goodger (Google), Aaron Boodman, phajd...@chromium.org, eri...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
On Thu, Jul 8, 2010 at 4:57 PM, Aleksey Shlyapnikov <alek...@google.com> wrote:
Second, Sidewiki has to offer a way to post comment on a page with no
comments posted yet. Current workflow opens a sidebar with comment
editing UI upon click on the extension button.

Perhaps we can do something like "allow extensions to programmatically close their sidebar at any time, and programmatically open it in response to an explicit user gesture"?  This is a bit akin to how popup windows work.

PK

Ian Fette

unread,
Jul 8, 2010, 8:11:38 PM7/8/10
to b...@chromium.org, Aleksey Shlyapnikov, Aaron Boodman, phajd...@chromium.org, eri...@chromium.org, pkas...@chromium.org, chromi...@chromium.org, ben...@chromium.org, dari...@chromium.org, bret...@chromium.org, pam+...@chromium.org
The mockups did not make it out to the list (presumably because Aleksey is not subscribed to chromium-dev). Can you re-send them for the benefit of the rest of us on the list?

Reply all
Reply to author
Forward
0 new messages