`a2) Patent Application Publication 10) Pub. No.: US 2006/0230356 Al
`(43) Pub. Date: Oct. 12, 2006
`
`Sauveet al.
`
`US 20060230356A1
`
`(54) SYSTEM AND METHOD FOR SELECTING A
`TAB WITHIN A TABBLED BROWSER
`
`Publication Classification
`
`(75)
`
`Inventors: Aaron J. Sauve, Seattle, WA (US);
`Cornelis K. Van Dok, Bellevue, WA
`(US); Donald J. Lindsay, Mountain
`View,
`CA (US);
`Tony
`E. Schrei
`
`Rednyond “»us)y
`
`,
`
`eoremners
`
`Correspondence Address:
`LEE & HAYES PLLC
`421 W RIVERSIDE AVENUESUITE 500
`SPOKANE, WA 99201
`
`(73) Assignee: Microsoft Corporation, Redmond, WA
`
`(21) Appl. No.:
`
`11/101,735
`
`(22)
`
`Filed:
`
`Apr. 7, 2005
`
`300
`
`———~.
`
`(51)
`
`Int. Cl.
`(2006.01)
`GO6F 3/00
`(52) US. C1 veceeccccsssssescsssscssseccsssecssssesssseessssseeessnsees T15/777
`
`(57)
`
`ABSTRACT
`
`The techniques and mechanisms described herein are
`
`directed to a method for managing andselecting one out of
`large set of open tabs in a tabbed browser. Browsing
`software is configured to provide a quick pick user-interface
`that visually displays the content of the several tabs, such as
`a by displaying a thumbnail for each tab. The thumbnails
`allow a user to easily distinguish between each opened tab.
`The browsing software may also be configured to recognize
`a user selection from within the quick pick user-interface
`and in response, switch back to a tabbed window view and
`display the selected tab in that view. The browsing software
`mayadjust the tab row so that the selected tab is positioned
`in a favorable position within the tab row. In addition, within
`the quick pick user-interface, the user may reposition the
`thumbnails and/or close the thumbnails, thus affecting the
`associated tab in the tab row.
`
`306
`308
`304
`
`
`
`
`
`4S5 Address
`Search
`
`
`310
`
`302
`
`350 352 332
`«333
`«3340
`335
`«3360S
`337)
`3338S
`339)
`340)
`341
`354 356
`
`
`320 < Ao ®||2” sire 3°sie | a™ sre|| s* sir | 6™ Site [7 sire 8™ Se | 9” sme 10"s.. [1"s. All ke | x<
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`312
`
`
`
`
`CONTENT OF CURRENT TAB
`
`360
`
`1
`
`APPLE 1007
`
`APPLE 1007
`
`1
`
`
`
`Patent Application Publication Oct. 12,2006 Sheet 1 of 10
`
`US 2006/0230356 Al
`
`WW
`)
`Oo
`=
`
`”=
`
`cob~~NOILVOINNWWOD
`
`i|(S)NOLLOANNOD
`
`(S)S0IAAGLNdLNO
`
`SDIAAGONILNdNOD
`
`(S)S9IASQLNdNI
`31gVAOWAY
`ONILNdNOD
`LINNONISSAD0Ud
`
`YaHLO
`
`veL
`
`
`vLLPOLAYOWSIN)WALSAS
` W3LSAS|AOVYOLSONILVYSdOa+)STaVAOWSY-NON||
`S391A3qQ°
`
`
`
`
`FOVYOLS
`
`WVY/NOY
`
`ZOL
`
`WveoOud
`
`!
`
`sa1ndow
`
`WvuDoYNd
`
`Vivii
`
`2
`
`
`
`
`
`
`
`Patent Application Publication Oct. 12,2006 Sheet 2 of 10
`
`SNNAIW/SYVS100_LyvgGNDaWvY4
`
`voc
`
`Ble
`
`oez
`
`
`
`AYVONNOgGGVAYeHL
`
`YVGAVN
`
`912
`
`002
`
`
`
`
`
`US 2006/0230356 Al
`
`902MOGNIMitbe0ze
`
`
`
`suvgSNLVLS
`
`802
`
`INsv
`
`tee
`
`T‘81
`
`MOGNIAASVLsuvgWOLSNDINSLNO9)|YOWMOGNIAASVL
`
`YASMONG
`
`awa
`
`vbe
`
`3
`
`
`
`
`
`
`Patent Application Publication Oct. 12,2006 Sheet 3 of 10
`
`US 2006/0230356 Al
`
`
`
`zOe
`
`
`
`ssolppy orevor
`
`e0e
`yoeas
`
`“+ove
`
`90€
`
`9s¢vseLheOveGeesteLEE98SEEPEECEECEE*e*S¢OSE
`
`
`
`
`
`xLe[2[ss[se[ss]oea]]s.0[es]ose[meee]32].SEB]_}ze
`
`
`
`
`che
`
`QVLNSYYND4OLNSLNOD
`
`09¢
`
`€‘817
`
`
`
`4
`
`
`
`
`Patent Application Publication Oct. 12,2006 Sheet 4 of 10
`
`US 2006/0230356 Al
`
`®
`
`cov
`
`euquiny
`
`OLY
`
`
`oze4<|*|KT]Sybh|ҤOb|]aus6
`FANyoueas
`OorOLaus
`sseippy OLevOe
`
`9sevseLeeOhh6csceLee9EFSEEPEEEfe
`euquuny|yeuquiny
`5auspas
`SOPvor
`ausaz||“3||AG
`euquUInyL®euquiny|
`euquinyweuquinyy
`
`|AUSELas
`6aS8as
`60P80P
`vipcl
`
` |BUS8||BUS2BUS,,,9
`
`BUS4S|}USwb||BUSQe
`“——oor
`
`80€90
`ceeZSEOSE
`
`
`
`@
`
`weuquinu
`
`euquiny|
`
`feuquiny|
`
`€aS
`
`cov
`
`zBUS
`
`zor
`
`LaS
`
`LOP.
`
`reuquiny|
`
`weuquiny|,
`
`Las
`
`Z0P
`
`euquiny
`
`ZLaS
`
`Zly
`
`gas
`
`907
`
`weuquinu
`
`LLas
`
`bb
`
`cP
`
`5
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`orevor808aoe
`
`—00S
`
`Patent Application Publication Oct. 12,2006 Sheet 5 of 10
`
`zoeyeasssauppy
`
`US 2006/0230356 Al
`
`
`
`
`
`9S¢PSELPEOPE6c¢geceleegeceseeveeeeeceezsSeOSe
`
`cLe
`
`
`
`
`
`@V1G3L9313S40LNSLNOD
`
`095
`
`G‘b1J
`
`
`
`
`
`
`
`
`aus.2||38.9|]aus.8|BUSah|susaeBUSgZIsoo\oze
`
`
`
`
`6
`
`
`
`
`US 2006/0230356 Al
`
`
`
`Q‘S1]os
`
`e229
`
`Patent Application Publication Oct. 12,2006 Sheet 6 of 10
`
` oze{)[xeaug9||3S2||aS9|]auISVSausuh||ausaf|BUSaSSBQoP67?2?
`zoe<-—youeagssaippyiorevor
`
`oorweuquinyani,begjeuquinyweuquinyy
`
`
`gcsepS€LeeOFm6eesteLee98SEEPEECLEZEEEeSEOSE
`
`euquinyeuquinu)peuquiny]Heuquiny]reuquiny0£9
`
`
`
`
`
`Obas|20s9S
`gSAISvas€3scasbUS
`
`SOVCOPcorLov
`OLP907
`
`
`e1alspuiaiea||snnetea|euquiny|
`
`!JeuqUUnY,
`
`—009
`
`LLaus
`
`VP
`
`
`
`7
`
`
`
`
`
`
`
`Patent Application Publication Oct. 12,2006 Sheet 7 of 10
`
`US 2006/0230356 Al
`
`
`
`ZL‘81y
`
`@VL
`
`09Z
`
`
`
`
`
`—_002
`
`90¢
`
`GaL93713§40LNALNOD><|JL|]sum|]Sut|]“Suz{|“Sabb|]“SO||AUSn6|]BSWe|aus42||aus9||aus3}BA\oze
`9S¢PSEpheerecreLheOPEGeeBeeLEE988SEEZSEOSE
`
`youeassselppy
`
`
`
`
`8
`
`
`
`
`
`zoeyoeagssaippyVv2xoeroe80—g0¢
`
`osepscIpcOPeteeteleegeeSeepeeeeezeezeOse
`
`
`
`
`
`
`——09
`
`Patent Application Publication Oct. 12,2006 Sheet 8 of 10
`
`US 2006/0230356 Al
`
`09P
`
`
`
`
`
`Sas
`
`507
`
`reuquinys,
`
`7AUS
`
`vor
`
`peuquiny)®
`euquiny
`
`5OLaus
`
`6aS
`
`60P
`
`feuquiny|
`
`VLays
`
`vlP
`
`euquiny|qeagqanyyr
`eUquInY|
`
`cays
`
`‘eauveoeleesi€yELaS
`euquinys
`
`zor
`
`8aus
`
`807
`
`Zeus
`
`ZOP
`
`weuquinu
`
`ZLUS
`
`che
`
`02y
`
`peuquiny,
`
`|aus
`
`Lor
`
`euquinyL
`
`9aS
`
`90P
`
`weuquiny
`
`LLous
`
`bie
`
`
`
`9
`
`
`
`
`
`
`
`
`
`
`Patent Application Publication Oct. 12,2006 Sheet 9 of 10
`
`US 2006/0230356 Al
`
`
`
`
`
`oveveG08gor
`
`
`
`—_006
`
`
`
`
`
`
`
`
`
`
`
`aV]031937440LNALNOS
`
`096
`
`6‘st
`
`
`
`
`eee{Lslsosepse6e€sceLEE988StepeeCeeCREZEEEbeeeSOSE
`
`
`
`
`
`
`10
`
`10
`
`
`
`Patent Application Publication Oct. 12,2006 Sheet 10 of 10
`
`US 2006/0230356 Al
`
`voor
`
`Ppy
`
`qe,Mon
`
`=snoo4
`
`qe]MAN
`
`000.——*
`
`9LOL
`
`yeuquiny|yosjes
`
`payosjas=snooy
`
`
`
`ge]jieuquinuyy
`
`MOPUIAAGel9MOYGe]
`
`Aejdsiq
`
`cool
`
`8001
`
`
`
`9001=MOPUIAAGeJOJUa}UOD
`
`qesnooyuy}
`
`Aeidsig
`
`WdASIN]
`
`qe1399195
`
`=Sno04
`
`
`
`gelpayajas
`
`wa
`
`
`
`4oo749INO
`
`OL‘S17
`
`cLOL
`
`euquuny|aso|D
`
`vLOL
`
`reuquiny|aBueueay
`
`11
`
`11
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`US 2006/0230356 Al
`
`Oct. 12, 2006
`
`SYSTEM AND METHOD FOR SELECTING A TAB
`WITHIN A TABBLED BROWSER
`
`TECHNICAL FIELD
`
`[0001] This document generally relates to browsing soft-
`ware, and moreparticularly, to tabbed-browsing software.
`
`BACKGROUND
`
`display the selected tab in that view. The browsing software
`mayadjust the tab row so that the selected tab is positioned
`in a favorable position within the tab row. In addition, within
`the quick pick user-interface, the user may reposition the
`thumbnails and/or close the thumbnails, thus affecting the
`associated tab in the tab row.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[0007] Non-limiting and non-exhaustive embodiments are
`described with reference to the following figures, wherein
`like reference numerals refer to like parts through-out the
`various views unless otherwise specified.
`
`the
`[0002] Browsing the World Wide Web (the web),
`graphical portion of the Internet, has become quite popular
`in recent years. A software program, commonly referred to
`as a web browser, or just browser, provides an easy-to-use
`[0008]
`FIG.1 is anillustrative computer environment that
`point-and-click interface for accessing various content on
`may be used to implement the techniques and mechanisms
`the web. Uponentering a web address or URL ofaparticular
`described herein.
`website, the browser requests web pages from a web server
`hosting that website. The browser then interprets the web
`pages and displays the content on a display. The web pages
`include hypertext and hyperlinks that, when selected, cause
`the browser to request additional content associated with
`them. By selecting the hypertext and hyperlinks, a user may
`conveniently navigate through pages of information—com-
`monly known as browsing or surfing the Internet.
`
`FIG.2 is a block diagram illustrating one embodi-
`[0009]
`ment of an architecture for implementing tabbed browsing
`that provides a quick pick tab user-interface as described
`herein.
`
`FIG.3 is a display illustrating one embodiment of
`[0010]
`a user-interface that supports the quick pick mechanism in a
`tabbed browser.
`
`[0003] Each time one of the hypertext or hyperlinks is
`[0011] FIG.4is a display illustrating one embodiment for
`selected, the new content is downloaded into the current
`the quick pick user-interface andillustrating a user’s selec-
`window. Depending on the network bandwidth, this may
`tion within the interface.
`cause a brief to extensive delay. For convenience, additional
`windows may be opened to view multiple web pages.
`However, after opening several web pages, each in its own
`window,
`the taskbar may become quite cluttered. This
`makesit difficult to re-locate a particular web page. Tabbed
`browsers have been introduced to help manage the viewing
`of multiple web pages.
`
`FIG.5 is a display illustrating the tabbed window
`[0012]
`after the user’s action within the quick pick user-interface
`shown in FIG.4.
`
`[0013] FIG. 6 is a display illustrating the quick pick
`user-interface andillustrating another user’s selection within
`the interface.
`
`[0004] Tabbed browsers load web pagesin “tabs” within
`the same browser window. Therefore, only one item appears
`on the taskbar, even though multiple web pages are loaded.
`New tabs maybe openedvia a hotkey, a context menu item
`on a link or the like. The new web page downloads in the
`background into the new tab. This allows a user to continue
`viewing the current web page without automatically switch-
`ing to the other web page. At any time, the user may click
`on the associated tab and view that web page. Tabbed
`browsing makes it easier and more convenient
`to view
`multiple web pages. However, when multiple tabs are open,
`users may experience difficulty switching between them.
`
`the
`[0005] The present mechanism further enhances
`tabbed-browsing experience, especially with selecting one
`out of a large set of open tabs.
`
`FIG.7 is a display illustrating the tabbed window
`[0014]
`after the user’s action within the quick pick user-interface
`shown in FIG.6.
`
`[0015] FIG. 8 is a display illustrating the quick pick
`user-interface andillustrating a user re-positioning a thumb-
`nail within the interface.
`
`FIG.9 is a display illustrating the tabbed window
`[0016]
`after the user’s action within the quick pick user-interface
`shown in FIG.8.
`
`[0017] FIG. 10 is an operational state diagram generally
`illustrating the processing for managing open tabs and
`selecting one out of a large set of open tabs within a tabbed
`browser using the present quick pick feature.
`
`SUMMARY
`
`DETAILED DESCRIPTION
`
`[0006] The techniques and mechanisms described herein
`are directed to a method for managing andselecting one out
`of several open tabs in a tabbed browser. Briefly stated,
`browsing software is configured to provide a quick pick
`user-interface that visually displays the several tabs. The
`quick pick user-interface displays a rich set of information
`for each tab, such as a thumbnail, meta-data describing each
`tab (e.g.,
`title) and/or other adornments. The thumbnails
`allow a user to easily distinguish between each opened tab.
`The browsing software may also be configured to recognize
`a user selection from within the quick pick user-interface
`and in response, switch back to the tabbed window view and
`
`[0018] Briefly, the techniques and mechanisms described
`herein are directed to managing and selecting one out of a
`large set of open tabs within a tabbed window displayed by
`a browser. A quick pick user-interface is provided that
`visually displays a rich set of information, such as thumb-
`nails, meta-data describing each tab (e.g., title) and thelike.
`The thumbnails may be selected and/or moved within the
`quick pick user-interface. Upon switching back to the tabbed
`window view, the tab row and the contents of the tabbed
`window are modified based onthe interactions that occurred
`in the quick pick user interface. The following discussion
`describes the quick pick mechanism within a tabbed browser
`
`12
`
`12
`
`
`
`US 2006/0230356 Al
`
`Oct. 12, 2006
`
`that supports tabbed-heterogeneous windows. However,
`after reading the following description, one skilled in the art
`could incorporate the quick pick mechanism into other types
`of tabbed browsers. As will be described in more detail
`
`below, the present quick pick mechanism provides a con-
`venience that was unavailable until now.
`
`Exemplary Computing Environment
`
`[0019] The various embodimentsof the quick pick mecha-
`nism may be implemented in different computer environ-
`ments. The computer environment shown in FIG.1 is only
`one example of a computer environmentandis not intended
`to suggest any limitation as to the scope of use or function-
`ality of the computer and network architectures. Neither
`should the computer environment be interpreted as having
`any dependency or requirement relating to any one or
`combination of componentsillustrated in FIG.1.
`
`[0020] With reference to FIG. 1, one exemplary system
`for implementing a quick pick mechanism includes a com-
`puting device, such as computing device 100. In a very basic
`configuration, computing device 100 typically includes at
`least one processing unit 102 and system memory 104.
`Depending on the exact configuration and type of computing
`device, system memory 104 maybevolatile (such as RAM),
`non-volatile (such as ROM, flash memory, etc.) or some
`combination of the two. System memory 104 typically
`includes an operating system 106, one or more program
`modules 108, and may include program data 110. This basic
`configuration is illustrated in FIG. 1 by those components
`within dashed line 112.
`
`[0021] Computing device 100 may have additional fea-
`tures or functionality. For example, computing device 100
`mayalso include additional data storage devices (removable
`and/or non-removable) such as,
`for example, magnetic
`disks, optical disks, or tape. Such additional storage is
`illustrated in FIG. 1 by removable storage 114 and non-
`removable storage 116. Computer storage media may
`include volatile and nonvolatile, removable and non-remov-
`able media implemented in any method or technology for
`storage of information, such as computer-readable instruc-
`tions, data structures, program modules, or other data.
`System memory 104,
`removable storage 114 and non-
`removable storage 114 are all examples of computer storage
`media. Thus, computer storage media includes, but is not
`limited to, RAM, ROM, EEPROM,flash memory or other
`memory technology, CD-ROM, digital versatile disks
`(DVD)or other optical storage, magnetic cassettes, mag-
`netic tape, magnetic disk storage or other magnetic storage
`devices, or any other medium which can be usedto store the
`desired information and which can be accessed by comput-
`ing device 100. Any such computer storage media may be
`part of device 100. Computing device 100 may also have
`input device(s) 118 such as keyboard 132, mouse 134, pen,
`voice input device, touch input device, etc. Output device(s)
`120 such as a display, speakers, printer, etc. may also be
`included. These devices are well know in the art and need
`not be discussed at length here.
`
`[0022] Computing device 100 may also contain commu-
`nication connections 122 that allow the device to commu-
`
`nicate with other computing devices 124, such as over a
`network. Communication connection(s) 122 is one example
`of communication media. Communication media maytypi-
`cally be embodied by computer-readable instructions, data
`
`structures, program modules, or other data in a modulated
`data signal, such as a carrier wave or other transport mecha-
`nism, and includes any information delivery media. The
`term “modulated data signal” meansa signal that has one or
`more ofits characteristics set or changed in such a manner
`as to encode information in the signal. By way of example,
`and not limitation, communication media includes wired
`media such as a wired network or direct-wired connection,
`and wireless media such as acoustic, RF, infrared and other
`wireless media. The term computer readable media as used
`herein includes both storage media and communication
`media.
`
`[0023] Various modules and techniques may be described
`herein in the general context of computer-executable
`instructions, such as program modules, executed by one or
`more computers or other devices. Generally, program mod-
`ules include routines, programs, objects, components, data
`structures, etc. for performing particular tasks or implement
`particular abstract data types. These program modules and
`the like may be executed as native code or may be down-
`loaded and executed, such as in a virtual machine or other
`just-in-time compilation execution environment. Typically,
`the functionality of the program modules may be combined
`or distributed as desired in various embodiments.
`
`[0024] An implementation of these modules and tech-
`niques may bestored on or transmitted across some form of
`computer readable media. Computer readable media can be
`any available media that can be accessed by a computer. By
`way of example, and not
`limitation, computer readable
`media may comprise “computer storage media” and “com-
`munications media.”
`
`Exemplary Architecture
`[0025]
`FIG.2 is a block diagram illustrating one embodi-
`mentof an architecture 200 for implementing the quick-pick
`mechanism as described herein. Architecture 200 includes
`
`one or more content windows202. The content window may
`be a web browser, a shell view, a word processing applica-
`tion/document, a spreadsheet application/document, a pre-
`sentation application/document, a document viewer, or the
`like. Each content window 202 is associated with its own
`toolbars/menus 204, custom bars 206, status bars 208, and
`content 210, as needed. For example, custom bars may
`include bars created to operate with search engines and the
`like. As mentioned earlier,
`in traditional browsers, each
`browser window consumed space on a taskbar. Once a
`number of browser windows were opened,
`the taskbar
`becamevery cluttered. For the present tabbed browser, a tab
`window manager 220 handles all the content windows 202
`via their respective tab window 212. The tab window
`manger 220 communicates with a browser frame 214. In
`addition, browser frame 214 communicates with a naviga-
`tion bar 216, a frame command bar 218, and a tab user-
`interface 222. Each of these components will be described
`below in more detail after describing thread boundary 230.
`[0026] Thread boundary 230 represents
`a boundary
`between a single thread(i.e., a frame thread) that handles the
`processing for the components shownto the left of thread
`boundary 230 and multiple threads that handle the process-
`ing for the components on the right of thread boundary 230.
`Each instance of content window 202 is associated with at
`least one of its own threads. That thread also handles the
`processing for the associated toolbars/menus 204, custom
`bars 206, status bars 208, and content 210.
`
`13
`
`13
`
`
`
`US 2006/0230356 Al
`
`Oct. 12, 2006
`
`[0027] By having multiple threads, at least one for each
`content window 202, the architecture prevents a potential
`bottleneck caused by having only one thread handle the
`messages for all HTML rendering across the multiple tabs.
`In addition, having multiple threads reduces the likelihood
`of unnecessary delays or timeouts when downloading web
`pages. Having multiple threads also makes the architecture
`more resilient because if a tab hangs, only one tab hangs
`instead of potentially hanging all of the tabs. This is in
`contrast with other tabbed browsers that host their tabs on a
`single UI thread. In these tabbed browsers, the entire appli-
`cation hangs when a single tab is blocked. Each individual
`thread maybe prioritized.
`
`[0028] Each of the componentsin architecture 200 is now
`described. As mentioned above, each content window 202is
`associated with its own toolbars/menus 204, custom bars
`206, status bars 208, and content 210, as needed. For
`example, if there are five tabs open, five instances of each
`add-on (e.g., custom bar,
`toolbar, etc) are created and
`hooked to their own content. Similarly, if menus or status
`bars are modified via internal
`logic, HTML, document
`hosting, add-ons, or the like, the menu orstatus bar associ-
`ated with that content window 202 is changed. The add-ons
`and the content window 202 operate in a well know manner.
`Because the add-ons do not know about tabs, the architec-
`ture 200 does not modify the operation between the add-ons
`and the content window.Instead, the architecture wraps each
`set of content windowsinto one browser frame 214. While
`
`not shown, there may be multiple browser frames 214, each
`with a set of tabbed-heterogeneous windows.
`
`[0029] Content window 202 maintainsstate for the content
`window, such as size, position, visibility of frame elements,
`and the like. The state may be persisted into a stream when
`the tabbed browsercloses, and then may be read when a new
`content window is launched. Alternatively, the state may be
`saved in a registry and read from the registry when the new
`content window is launched.
`
`[0030] The tab window 212 lives on the frame thread.
`Each tab window 212 is configured to manage communica-
`tion between the outer frame components (e.g., navigation
`bar 216, browser frame 214, etc) and an individual tab. The
`tab window 212 holds pointers to its associated content
`window 202 and interfaces so that it can manage cross-
`thread communication between the outer frame components
`and the individual content window 202. The cross-thread
`
`In one
`communication may involve cross-thread calls.
`embodiment, calls from the browser frame 214 to the
`content window 202 may be asynchronous. The tab window
`212 is then responsible for marshalling the parameters and
`posting a message to the main window of content window
`202. In contrast, calls from the content window 202 to the
`frame browser 214 may be synchronous. The tab window
`212 is then responsible for marshalling the interfaces of the
`corresponding tab window 212. The tab window 212 may
`also convert synchronouscalls into asynchronous calls in
`order to reduce the likeliness that a tab will hang.
`
`[0031] The tab window 212 may also cache a limited
`amount of state. This allows the tab window to provide a
`quick synchronous lookup of state to other components.
`When the tab window 212 receives an event from the
`content window 202 that modifies the state, the tab window
`propagates these events up to the tab window manager 220.
`
`In addition, the tab window 212 exposes several
`[0032]
`operations that can be performed on a tab, such as destroy,
`set visibility, set size, set position, and order. The tab
`window 212 also exposes operations that the frame needs for
`asynchronously invoking a tab. These operations may be
`exposed via individual application programming interfaces
`(API) or through a generic API. For the present quick pick
`mechanism, each tab window 212 may haveits ownset of
`characteristics. For example, one of the tab windows maybe
`a quick pick window which has a different navigation
`characteristic than other
`tabbed windows. As will be
`
`described and illustrated in FIGS. 3-9, the navigation char-
`acteristic for the quick pick window may modify a tab row
`and modify content displayed within a tabbed view of the
`tabbed browser.
`
`[0033] The tab window manager 220 hosts multiple con-
`tent windows 202 via multiple tab windows 212. The tab
`window manager 220 managesthe overall state of each of
`the tabs. The state may include: a top level URL; a pagetitle;
`a back/forward button availability; a favorite icon for the
`current page, a progress state for the current page, security
`information reflected in the user-interface (e.g., HTTPs
`info); and the like. The tab window manager 220 may
`synchronously query the tab window 212 for per-tab data. In
`addition, the tab window manager 220 manages the opera-
`tions performed on the tabs, such as open, close, select,
`move, set size, set position, set order, and the like. This is
`achieved by accessing the operations exposed via the tab
`window 212.
`
`[0034] The browser frame 214 hosts the navigation bar
`216, frame commandbar 218, tab window manager 220, and
`the tab UI 222. The browser frame 214 may also directly or
`indirectly host a rebar control (not shown). The browser
`frame 214 brokers communication between these hosted
`components.
`
`[0035] The tab UI 222 is configured to render the user-
`interface for the collection of tab windows 212. As will be
`
`described later in conjunction with FIGS. 3-9, the Tab UI
`222 may provide a quick pick user-interface for implement-
`ing the functionality for the present quick pick mechanism.
`In addition, the tab UI 222 controls the rectangle for the tabs’
`browser region. Tab UI 222 receives events from tab win-
`dow manager 220 via browser frame 214. The events pertain
`to the tabs being managed by tab window manager 220. The
`events include an “OnTabListChanged” event, an “OnTab-
`Changed” event, and the like. The “OnTabListChanged”
`event is sent by tab window manager 220 when changesare
`madeto a collection oftabs (e.g., Open, Close, Reorder, etc).
`The “OnTabChanged”eventis sent by tab window manager
`220 when a single tab changes(e.g., progress, title, URL).
`The corresponding tab window 212 sends a notification to
`tab window manager 220 which forwards the notification to
`tab UI 222. The notification identifies the tab. This method
`
`of communication keeps the communication serialized. In
`an alternate embodiment, individual tab windows 212 may
`directly call
`into tab UI 222. In addition,
`there may be
`multiple tab UI 222 components, each one handling the
`same set of tabs, but for a different location on the user-
`interface. For example, one tab UI may handle a tab row
`along the top of the display and another tab UI may handle
`a tab listview along the side of the display.
`[0036] The frame command bar 218 provides a set of
`commandsthat have been determined to be the most useful.
`
`14
`
`14
`
`
`
`US 2006/0230356 Al
`
`Oct. 12, 2006
`
`By having this set of commandsreadily available for any
`tab, a user can conveniently locate one of the commands for
`any tab.
`
`Exemplary User-Interface
`
`FIG.3 is a display illustrating one embodiment of
`[0037]
`a user-interface that supports the quick pick mechanism in a
`tabbed browser. User-interface 300 illustrates salient por-
`tions of a tabbed browser that implements the present quick
`pick mechanism. Those skilled in the art will appreciate that
`optional
`third party toolbars (not shown), a page space
`control (not shown), a status bar (not shown) and/or custom
`bars (not shown) mayalso be included within user-interface
`300 without departing from the present quick pick mecha-
`nism. As shown,user-interface 300 includes a navigation bar
`302 and a tabbed window 312.
`
`band 320. Items in the user-interface 300 that are per tab
`include content 360. In one embodiment, content 360 may
`include different type of data sources. For example, content
`360 may be a web page, a shell folder, a navigation based
`application, and the like. This heterogeneous content may be
`hosted in a single frame. In another embodiment, the content
`360 associated with each tab may all be web pages.
`
`FIG.4 isa display illustrating one embodiment for
`[0042]
`the quick pick user-interface andillustrating a user’s selec-
`tion within the interface. Quick pick user-interface 400
`illustrates navigation bar 302 as described above and a quick
`pick window 460. The quick pick window 460 displays a
`rich set information, such as a graphical representation(e.g.,
`thumbnails 402-411) for each of the open tabs in the tab row
`320, a graphical representation (e.g., thumbnails 401, 412-
`414) of the open tabs that are not currently visible in the tab
`row because they are in the overflow. The tabbed browser
`scales the thumbnails so that the content of each tab can be
`
`viewed in the quick pick window 460. In the example,
`thumbnails 401-405 are displayed consecutively on a top
`row, thumbnails 406-410 are displayed consecutively on a
`middle row, and thumbnails 411-414 are displayed consecu-
`tively on a bottom row. The thumbnails for each of the open
`tabs are readily available in memory, thus displaying quick
`pick window 460 provides an efficient means for distin-
`guishing the opentabs. In certain situations, if the user has
`opened a significant numberof tabs, the quick pick window
`460 may display further scaled down thumbnails, a pre-
`determined numberoftabs, or the like.
`
`[0038] The tabbed window 312 includes, a tab band or tab
`row 320, one or moretabs (e.g., tabs 332-342), and content
`360 associated with the tab currently in focus(e.g., tab 336
`shown in FIG. 3). In addition, tabbed window 312 may
`include a new tab 356 for creating a new tab within the
`tabbed window 312. As additional tabs are opened,
`the
`visible portion of each tab is reduced to accommodate the
`additional tabs. Once there is inefficient space for an addi-
`tional tab, some of the tabs are visually removed from the
`tabbed window 312. However, visually removed tabs are
`still maintained as tab windows (tab window 212) and are
`managed by the tab window manager 220 shown in FIG.2.
`The visually removed tabs may be accessed by clicking
`eithera left or right overflow indicator 352 and 354, respec-
`[0043] Each thumbnail may includeaclose indicator(e.g.,
`tively. The left and right overflow indicator 352 and 354
`close indicator 420). Ifa user selects close indicator 420, the
`appear within the tabbed window 312 when one or more of
`corresponding thumbnail (e.g., thumbnail 411) is removed
`the open tabs are visually removed from the tab row 320.
`from the quick pick window 460 andits associatedtab (e.g.,
`When there are a limited number of open tabs (e.g., four
`tab 341) is removed from the tab row 320. In addition, the
`tabs), the text within each tab may be sufficient to distin-
`rich set of information may include a pagetitle or other
`guish between the tabs, however once a user has opened
`adornment for each item in the quick pick window 460.
`several tabs, it is difficult to distinguish among the several
`Whena user hovers a pointer (e.g., pointer 422) over one of
`open tabs because the text associated with each tab is
`the thumbnails (e.g., thumbnail 410), the thumbnail 410 may
`reduced and some of the tabs may not even be visible. For
`visually change appearance, such as changing its color. In
`illustrative purposes, the present example displays the text
`for the title of each tab using its original order (e.g., 1°)
`addition,
`the tab (tab 440) associated with the hovered
`thumbnail 410 may changeits appearance, such as changing
`appended with “Site”. As one can see, as more tabs are
`color, bolding text, and the like. The user mayselect any one
`opened,titles for certain tabs (e.g., tabs 340 and 341) display
`limited useful information about the content of the associ-
`of the thumbnails to view its corresponding content in the
`tabbed window.
`ated open tab.
`
`In accordance with the present quick pick mecha-
`[0039]
`nism, the tabbed browser provides a mechanism for access-
`ing a quick pick user interface. The mechanism may be a
`quick pick button 350, a context menu selection (not
`shown), and/or the like on the user-interface 300. The
`mechanism may also be a hot key (not shown) entered
`through a keyboard. A user mayselect the quick pick button
`350 to access the quick pick user interface.
`[0040] The navigation bar 302 may include an address bar
`304, a back button 306, a forward button 308, and a search
`box 310. The content of the address bar 304 may be
`maintained for each tab. Thus, when “clicking” through the
`tabs 332-341 the address bar 304 maydisplay the address for
`the currently selected tab (i.e., the tab in focus). The search
`box 310 allows text to be entered and searched for in the
`
`currently selected tab.
`[0041]
`In one embodiment,items in the user-interface 300
`that are per frame include the navigation bar 302 andthe tab
`
`FIG.5 is a display illustrating the tabbed window
`[0044]
`after the user’s action within the quick pick user-interface
`shown in FIG.4. In this example, the user selected thumb-
`nail 410 in the quick pick user-interface shown in FIG.4.
`Thus, the tabbed window displays the tab (.e., tab 340)
`associated with thumbnail 410 as the in focus tab. Content
`of the in focus tab is displayed as the content 560 in the
`tabbed window 312.
`
`[0045] FIG. 6 is a display illustrating the quick pick
`user-interface andillustrating another user’s selection within
`the interface. This display is similar to FIG. 4 except that in
`FIG. 6 the user selects thumbnail 413. Because the tab
`
`associated with thumbnail 413 is not currently visible in the
`tab row 320, the right overflow indicator 354 may visually
`change appearance so that the user may easily identify the
`relative location for the associated tab in the tab row 320. In
`another embodiment, when the user hovers over a thumbnail
`(e.g., thumbnail 413), the thumbnail may enlarge so that the
`
`15
`
`15
`
`
`
`US 2006/0230356 Al
`
`Oct. 12, 2006
`
`user can more easily view the content associated with the
`open tab. A pagetitle (e.g., page title 630) or other adormn-