throbber
as) United States
`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-

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket