Difference between revisions of "Development:Summer of Code 2006"

From Camino Wiki
Jump to navigation Jump to search
(point to local copy (which includes archive.org PDF link))
 
(23 intermediate revisions by 4 users not shown)
Line 1: Line 1:
The Mozilla Foundation accepted Desmond Elliott to work on Improvements to the tabbed-browsing experience as part of the 2006 Google Summer of Code. Mike Pinkteron will be mentoring this project. Desmond's original proposal can be found [http://homepages.inf.ed.ac.uk/~s0128959/SummerofCodeProposal.html here].
+
The Mozilla Foundation accepted Desmond Elliott to work on Improvements to the tabbed-browsing experience as part of the 2006 Google Summer of Code. Mike Pinkteron will be mentoring this project. Desmond's original proposal can be found [[Development:Summer of Code 2006:Proposal|here]], and the bugzilla tracker bug for the project is {{bug|338983}}.
  
===Consultation with the community===
+
There is a Blog associated with Desmond's work at [http://summerofcamino.blogspot.com Blogspot]
  
The community were polled [http://forums.mozillazine.org/viewtopic.php?p=2283380#2283380 here] and [http://mozdev.org/pipermail/camino/2006-May/004307.html here] for any thoughts that they had in addition to what Desmond Elliott [http://homepages.inf.ed.ac.uk/~s0128959/SummerofCodePropsal.html originally proposed]. The results of this period of consulation have been condensed here and are not really in any order. These results will be discussed between the developers of Camino on Thursday 8th June 2006 and hopefuilly some of them will be chosen to be appended to the original proposal.
+
==Original Proposal==
  
This list has been split into 2 different sections:
+
The initial proposal covered several features/bugfixes which are listed here:
  
Things that users of Camino should be able to do are ideas that could be easily condensed into a single sentence.
+
# Ability to rearrange/reorder tabs by drag and drop. {{bug|160720}}
 +
# Drag tabs between windows (tear-off feature). {{bug|318260}}
 +
# Extend/fix tab overflow, possibly with two clickable overflow chevrons. {{bug|319777}}
  
Features that people would like to see in Camino are ideas that are a little bit juicier.
+
==Consultation with the community==
  
Items in ''italics'' indicate implementation guidelines, rather than features/bugfixes.
+
The community were polled [http://forums.mozillazine.org/viewtopic.php?p=2283380#2283380 here] and [http://mozdev.org/pipermail/camino/2006-May/004307.html here] for any thoughts that they had in addition to the initial proposal. The results of this period of consulation are included here, with status updates in accordance with [http://www.samuelsidler.com/camino/soc/2006-06-08.html this group discussion] held between the developers of Camino.
 +
 
 +
This list has been split into 2 different sections: Things that users of Camino should be able to do are ideas that could be easily condensed into a single sentence, and features that people would like to see in Camino are ideas that are a little bit juicier.
 +
 
 +
''Items in italics'' indicate implementation guidelines, rather than features/bugfixes.
  
 
====Things that users of Camino should be able to do====
 
====Things that users of Camino should be able to do====
  
# <s>A user should be able to see a drop down menu with the history relating to that tab.</s> '''WONTFIX'''
+
# <s>See a drop down menu with the history relating to that tab.</s> '''WONTFIX'''
# A user should be able to preview opened tabs. (Possibly as an impl. detail for tab expose)
+
# <s>Preview opened tabs. (Possibly as an impl. detail for tab expose)</s> '''Out of Scope'''
# <s>A user should be able to undo close tabs or a user should be able to re-open a closed window.</s> '''Out of Scope'''
+
# <s>Undo close tabs or re-open a closed window.</s> '''Out of Scope'''
# <s>A user should be able to bookmark all open tabs.</s> '''We already do this'''
+
# <s>Bookmark all open tabs.</s> '''We already do this'''
# <s>A user should be able to set how many tabs can be displayed in a window before overflow control kicks in</s> '''WONTFIX'''
+
# <s>Set how many tabs can be displayed in a window before overflow control kicks in</s> '''WONTFIX'''
# A user should be able to set the minimum width of a tab. {{bug|268213}}
+
# Set the minimum width of a tab. {{bug|268213}}
# <s>A user should be able to select a tab on mouse-over delay.</s> '''WONTFIX'''
+
# <s>Select a tab on mouse-over delay.</s> '''WONTFIX'''
# <s>A user should be able to turn off any overflow interface.</s> '''WONTFIX
+
# <s>Turn off any overflow interface.</s> '''WONTFIX
# ''All tabs should have the same control-click functionality, whether that's through tab repositioning or by some other method.'' (was "user should be able to access the same control-click functionality in overflown tabs as they can on tabs in the tab-bar.")
+
# ''All tabs should have the same control-click functionality, whether that's through tab repositioning or by some other method.''
# <s>A user should be able to close all tabs to the left or to the right of the current tab.</s> '''WONTFIX'''
+
# <s>Close all tabs to the left or to the right of the current tab.</s> '''WONTFIX'''
 
# ''All new implementations should be as accessable as possible.''
 
# ''All new implementations should be as accessable as possible.''
# <s>A user should be able to choose whether the start or middle or end of a page title is shown in a tab title.</s> '''WONTFIX'''
+
# <s>Choose whether the start or middle or end of a page title is shown in a tab title.</s> '''WONTFIX'''
 
# A user should be presented with a tooltip associated with a tab when they hover over the tab that displays the page title and url of the page (as long as perf is OK). {{bug|183279}}
 
# A user should be presented with a tooltip associated with a tab when they hover over the tab that displays the page title and url of the page (as long as perf is OK). {{bug|183279}}
# A user should be able to hover between 2 adjacent tabs and be able to resize a tab at their own discretion. '''Possibly as impl detail for "minimum tab width", otherwise WONTFIX'''
+
# Drag the space between 2 adjacent tabs to resize all tabs. (Possibly as impl detail for "minimum tab width", otherwise '''WONTFIX''')
# <s>A user should be able to copy the current url at which this tab is opened (this would be useful for people who blog)</s> '''WONTFIX'''
+
# <s>Copy the current url at which this tab is opened (this would be useful for people who blog)</s> '''WONTFIX'''
  
 
====Features that people would like to see in Camino====
 
====Features that people would like to see in Camino====
  
# <s>Somebody would like sheets should be tab-modal and not window-modal.</s> '''Out of Scope'''
+
# <s>Sheets should be tab-modal and not window-modal.</s> '''Out of Scope'''
# <s>Somebody would like the default behaviour to change to append rather than replace with respect to dragging a bookmark folder from the bookmark toolbar to the viewport.</s> '''Out of Scope'''
+
# <s>The default behaviour should change to append rather than replace with respect to dragging a bookmark folder from the bookmark toolbar to the content pane.</s> '''Out of Scope'''
# <s>Somebody would like to see a similar feature set to that provided by the Firefox TabMixPlus extension.</s> '''WONTFIX'''
+
# <s>A similar feature set to that provided by the Firefox TabMixPlus extension.</s> '''WONTFIX'''
# <s>Somebody would like to see a Tab sidebar similar to what you might use in OmniWeb.</s> '''WONTFIX'''
+
# <s>A tab sidebar similar to what you might use in OmniWeb.</s> '''WONTFIX'''
# <s>Somebody would like to see overflow implemented in a similar way to how Finder deals with overflow (with scrollbars).</s> '''WONTFIX'''
+
# <s>Overflow implemented in a similar way to how Finder deals with overflow (with scrollbars).</s> '''WONTFIX'''
# <s>Somebody would like us to remove the close button and instead make it hover over where the favicon is on the tab.</s> '''WONTFIX'''
+
# <s>Remove the close button and instead make it hover over where the favicon is on the tab.</s> '''WONTFIX'''
# Somebody would like to see Camino offer Tab Expose for switching between tabs. {{bug|312007}}
+
# <s>Offer Tab Expose for switching between tabs.</s> {{bug|312007}} '''Out of Scope'''
# Somebody would like to see tab-overflow control implemented with 2 scroll buttons at either side of the tab bar. {{bug|319777}}
+
# <s>Implement tab-overflow control with 2 scroll buttons at either side of the tab bar.</s> '''DUPE from original proposal'''
# Somebody would like users to be able to focus on tabs using the keyboard. {{bug|280963}} '''--> hwaara'''
+
# Be able to focus on tabs using the keyboard. {{bug|280963}} '''--> hwaara'''
# <s>Somebody has suggested that particular attention should be paid to accesibilty features.</s> '''DUPE'''
+
# <s>Particular attention should be paid to accesibilty features.</s> '''DUPE'''
 
# Somebody has suggested that we take a look at PSMTabBarControl.
 
# Somebody has suggested that we take a look at PSMTabBarControl.
 
# <s>Somebody would like Camino to have session saving so that when it crashes they can reload it exactly as it was before.</s> '''Out of Scope'''
 
# <s>Somebody would like Camino to have session saving so that when it crashes they can reload it exactly as it was before.</s> '''Out of Scope'''
# Somebody would like to the Camino tabs to be bigger:
+
# Somebody would like the tab bar to be bigger.  This will be accomplished (only) by:
## Should respect UI scaling (loosely covered in {{bug|258553}}
+
## Respecting UI scaling (loosely covered in {{bug|258553}})
## Should grow 1-2px. {{bug|326872}}
+
## Growing 1-2px. {{bug|326872}}
# <s>Somebody would like to see something similar to the ColourTabs extension to Firefox, for accessibility purposes.</s> '''WONTFIX'''
+
# <s>Something similar to the ColourTabs extension to Firefox, for accessibility purposes.</s> '''WONTFIX'''
# <s>Somebody would like to be able to prevent tabs from jumping to the foreground to grab the user's attention.</s> '''Out of Scope'''
+
# <s>Prevent tabs from jumping to the foreground to grab the user's attention.</s> '''Out of Scope'''
# <s>Somebody would like to see a better Single Window mode.</s> '''Out of Scope'''
+
# <s>A better Single Window mode.</s> '''Out of Scope'''
# <s>Somebody would like to be able to save all open tabs.</s> '''Out of Scope'''
+
# <s>Save all open tabs.</s> '''Out of Scope'''
# <s>Somebody would like to be able to force-quit a tab that is causing Camino to not respond.</s> '''WONTFIX'''
+
# <s>Be able to force-quit a tab that is causing Camino to not respond.</s> '''WONTFIX'''
 +
 
 +
==Final Proposal==
 +
 
 +
# '''M1''' Tab overflow will be extended to include 2 clickable arrows (one at either side of the tab bar) when the user has more tabs than the size of the tab bar. {{bug|319777}}
 +
# '''M2''' Tabs will be able to be re-ordered through drag / drop within the same window. {{bug|160720}}
 +
# '''M3''' Tabs can be dragged out of a window to create a new window, or to a different existing window. {{bug|318260}}
 +
# Tabs will be able to have a user-settable width {{bug|268213}}
 +
# Tabs will have tooltips associated with them that display the page title and page url {{bug|183279}}
 +
# Tabs will be a little big bigger, this will be achieved by respecting UI scaling {{bug|258553}} and increasing the heigh of the tab bar by 1 - 2 pixels {{bug|326872}}
 +
# ''All tabs should have the same control-click functionality, whether that's through tab repositioning or by some other method.''
 +
 
 +
==Implementation sketches==
 +
 
 +
I have been asked to provide implemenation sketches for the first 3 goals of my final proposal, they are provided and include transcribed text because I know my handwriting is not exactly beautiful.
 +
 
 +
#[http://wiki.caminobrowser.org/Image:Bug160720.jpg Tabs will be able to be re-ordered through drag / drop within the same window.]
 +
#[http://wiki.caminobrowser.org/Image:Bug318260-1.jpg Tabs can be dragged out of a window to create a new window, or to a different existing window.] and [http://wiki.caminobrowser.org/Image:Bug318260-2.jpg image 2]
 +
#[http://wiki.caminobrowser.org/Image:Bug319777.jpg Tab overflow will be extended to include 2 clickable arrows (one at either side of the tab bar) when the user has more tabs than the size of the tab bar.]
 +
 
 +
==Work in progress==
 +
 
 +
{{bug|319777}}
 +
 
 +
5 work in progress patches submitted
 +
 
 +
*[https://bugzilla.mozilla.org/attachment.cgi?id=226812 1] R-
 +
*[https://bugzilla.mozilla.org/attachment.cgi?id=227087 2] R-
 +
*[https://bugzilla.mozilla.org/attachment.cgi?id=227544 3] R-
 +
*[https://bugzilla.mozilla.org/attachment.cgi?id=229091 4] R-
 +
*[https://bugzilla.mozilla.org/attachment.cgi?id=232107 5] R-
 +
 
 +
{{bug|160720}}
 +
 
 +
2 work in progress patches submitted
 +
 
 +
*[https://bugzilla.mozilla.org/attachment.cgi?id=233239 1] R-
 +
*[https://bugzilla.mozilla.org/attachment.cgi?id=233556 2]
 +
 
 +
{{bug|318260}}
 +
 
 +
0 work in progress patches submitted
 +
 
 +
This bug is simply a special case of {{bug|160720}} and I suspect that it shall be taken into account when {{bug|160720}} has been fixed.
 +
 
 +
==Post SoC==
 +
 
 +
The code will not be finished by the end of the project. Even if it could be, it is not as if the code would be anything near what would actually make it into trunk. The design of how things should be presented to people using Camino was totally wrong from the start. I've spent some of my spare time working on a new design that hopefully captures all of the flaws that appeared in my earlier approaches to this problem.
 +
 
 +
*[http://summerofcamino.blogspot.com/2006/08/t-5-new-proposal-for-approach-to.html A more concrete design for how things could look and feel]
 +
 
 +
===Post SoC analysis===
 +
 
 +
The IRC community came together to discuss the successes and failures of the SoC project on August 28, 2006.  The transcript of this discussion can be found [[Status_Meetings:2006-08-28:Log|here]].

Latest revision as of 15:14, 1 April 2009

The Mozilla Foundation accepted Desmond Elliott to work on Improvements to the tabbed-browsing experience as part of the 2006 Google Summer of Code. Mike Pinkteron will be mentoring this project. Desmond's original proposal can be found here, and the bugzilla tracker bug for the project is Bug 338983.

There is a Blog associated with Desmond's work at Blogspot

Original Proposal

The initial proposal covered several features/bugfixes which are listed here:

  1. Ability to rearrange/reorder tabs by drag and drop. Bug 160720
  2. Drag tabs between windows (tear-off feature). Bug 318260
  3. Extend/fix tab overflow, possibly with two clickable overflow chevrons. Bug 319777

Consultation with the community

The community were polled here and here for any thoughts that they had in addition to the initial proposal. The results of this period of consulation are included here, with status updates in accordance with this group discussion held between the developers of Camino.

This list has been split into 2 different sections: Things that users of Camino should be able to do are ideas that could be easily condensed into a single sentence, and features that people would like to see in Camino are ideas that are a little bit juicier.

Items in italics indicate implementation guidelines, rather than features/bugfixes.

Things that users of Camino should be able to do

  1. See a drop down menu with the history relating to that tab. WONTFIX
  2. Preview opened tabs. (Possibly as an impl. detail for tab expose) Out of Scope
  3. Undo close tabs or re-open a closed window. Out of Scope
  4. Bookmark all open tabs. We already do this
  5. Set how many tabs can be displayed in a window before overflow control kicks in WONTFIX
  6. Set the minimum width of a tab. Bug 268213
  7. Select a tab on mouse-over delay. WONTFIX
  8. Turn off any overflow interface. WONTFIX
  9. All tabs should have the same control-click functionality, whether that's through tab repositioning or by some other method.
  10. Close all tabs to the left or to the right of the current tab. WONTFIX
  11. All new implementations should be as accessable as possible.
  12. Choose whether the start or middle or end of a page title is shown in a tab title. WONTFIX
  13. A user should be presented with a tooltip associated with a tab when they hover over the tab that displays the page title and url of the page (as long as perf is OK). Bug 183279
  14. Drag the space between 2 adjacent tabs to resize all tabs. (Possibly as impl detail for "minimum tab width", otherwise WONTFIX)
  15. Copy the current url at which this tab is opened (this would be useful for people who blog) WONTFIX

Features that people would like to see in Camino

  1. Sheets should be tab-modal and not window-modal. Out of Scope
  2. The default behaviour should change to append rather than replace with respect to dragging a bookmark folder from the bookmark toolbar to the content pane. Out of Scope
  3. A similar feature set to that provided by the Firefox TabMixPlus extension. WONTFIX
  4. A tab sidebar similar to what you might use in OmniWeb. WONTFIX
  5. Overflow implemented in a similar way to how Finder deals with overflow (with scrollbars). WONTFIX
  6. Remove the close button and instead make it hover over where the favicon is on the tab. WONTFIX
  7. Offer Tab Expose for switching between tabs. Bug 312007 Out of Scope
  8. Implement tab-overflow control with 2 scroll buttons at either side of the tab bar. DUPE from original proposal
  9. Be able to focus on tabs using the keyboard. Bug 280963 --> hwaara
  10. Particular attention should be paid to accesibilty features. DUPE
  11. Somebody has suggested that we take a look at PSMTabBarControl.
  12. Somebody would like Camino to have session saving so that when it crashes they can reload it exactly as it was before. Out of Scope
  13. Somebody would like the tab bar to be bigger. This will be accomplished (only) by:
    1. Respecting UI scaling (loosely covered in Bug 258553)
    2. Growing 1-2px. Bug 326872
  14. Something similar to the ColourTabs extension to Firefox, for accessibility purposes. WONTFIX
  15. Prevent tabs from jumping to the foreground to grab the user's attention. Out of Scope
  16. A better Single Window mode. Out of Scope
  17. Save all open tabs. Out of Scope
  18. Be able to force-quit a tab that is causing Camino to not respond. WONTFIX

Final Proposal

  1. M1 Tab overflow will be extended to include 2 clickable arrows (one at either side of the tab bar) when the user has more tabs than the size of the tab bar. Bug 319777
  2. M2 Tabs will be able to be re-ordered through drag / drop within the same window. Bug 160720
  3. M3 Tabs can be dragged out of a window to create a new window, or to a different existing window. Bug 318260
  4. Tabs will be able to have a user-settable width Bug 268213
  5. Tabs will have tooltips associated with them that display the page title and page url Bug 183279
  6. Tabs will be a little big bigger, this will be achieved by respecting UI scaling Bug 258553 and increasing the heigh of the tab bar by 1 - 2 pixels Bug 326872
  7. All tabs should have the same control-click functionality, whether that's through tab repositioning or by some other method.

Implementation sketches

I have been asked to provide implemenation sketches for the first 3 goals of my final proposal, they are provided and include transcribed text because I know my handwriting is not exactly beautiful.

  1. Tabs will be able to be re-ordered through drag / drop within the same window.
  2. Tabs can be dragged out of a window to create a new window, or to a different existing window. and image 2
  3. Tab overflow will be extended to include 2 clickable arrows (one at either side of the tab bar) when the user has more tabs than the size of the tab bar.

Work in progress

Bug 319777

5 work in progress patches submitted

Bug 160720

2 work in progress patches submitted

Bug 318260

0 work in progress patches submitted

This bug is simply a special case of Bug 160720 and I suspect that it shall be taken into account when Bug 160720 has been fixed.

Post SoC

The code will not be finished by the end of the project. Even if it could be, it is not as if the code would be anything near what would actually make it into trunk. The design of how things should be presented to people using Camino was totally wrong from the start. I've spent some of my spare time working on a new design that hopefully captures all of the flaws that appeared in my earlier approaches to this problem.

Post SoC analysis

The IRC community came together to discuss the successes and failures of the SoC project on August 28, 2006. The transcript of this discussion can be found here.