US7475352B2 - Layout and management of browser panes - Google Patents

Layout and management of browser panes Download PDF

Info

Publication number
US7475352B2
US7475352B2 US11/260,211 US26021105A US7475352B2 US 7475352 B2 US7475352 B2 US 7475352B2 US 26021105 A US26021105 A US 26021105A US 7475352 B2 US7475352 B2 US 7475352B2
Authority
US
United States
Prior art keywords
browser
panes
component
space
pane
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US11/260,211
Other versions
US20070101298A1 (en
Inventor
Stephen M. Yolleck
David S. Korn
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US11/260,211 priority Critical patent/US7475352B2/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: YOLLECK, STEPHEN M.
Publication of US20070101298A1 publication Critical patent/US20070101298A1/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR FROM STEPHEN M. YOLLECK TO STEPHEN M. YOLLECK AND DAVID S. KORN PREVIOUSLY RECORDED ON REEL 016924 FRAME 0089. ASSIGNOR(S) HEREBY CONFIRMS THE ENTIRE AND EXCLUSIVE RIGHTS, TITLE AND INTEREST. Assignors: KORN, DAVID S., YOLLECK, STEPHEN M.
Application granted granted Critical
Publication of US7475352B2 publication Critical patent/US7475352B2/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web

Definitions

  • a form filling application may need to show the user's address book and can allow the user to choose an address.
  • browser components can display a custom dialog box that can allow user input, and browser components can show the user an alert by using a message box that displays information and allows no user input.
  • the two example techniques above are unsatisfactory because they both can require showing a popup window that obscures the content of the page the user is currently browsing. These popup dialogs can also be unsatisfactory because the user may have to close the dialog before the user can continue using the browser.
  • the invention is directed towards a system and method for reserving space within a browser for a requesting component.
  • the method can include subclassing a browser and receiving at least one request for space within the browser. Additionally, the method can include creating one or more windows within the browser corresponding to the requested space.
  • the invention can be configured to return a handle for each of the one or more created windows.
  • FIG. 1A illustrates an embodiment of a browser before a controlling application creates a browser pane for any requesting components.
  • FIG. 1B illustrates an embodiment of a browser including a plurality of browser panes created by a controlling application for a plurality of components.
  • FIG. 2 illustrates an embodiment of a block diagram showing a method for creating space within a browser for a requesting component.
  • FIG. 3 illustrates an embodiment of a block diagram showing a method for maintaining space for created browser panes when switching between two types of browser views.
  • the invention presents a solution for displaying information for browser components by creating a controlling application that can allow browser components to request space inside the browser itself.
  • the component can ask the controlling application to reserve space above, below, to the left and/or to the right of an embedded browser window. Additionally, the component can request space in a region that is both above and to the left, above and to the right, below and to the left, and/or below and to the right of the embedded browser window.
  • the controlling application can reserve the space by adjusting the embedded browser window to accommodate the space requested by the component.
  • the controlling application can also notify the components when the user has adjusted the browser so that the component can layout its user interface.
  • the invention discloses a method and system for allocating space within a browser for a component.
  • a controlling application can be used to allocate the space for a component within the browser.
  • Such a controlling application can be, for example, a Microsoft Network Explorer Panes (MSNEP) application.
  • MSNEP can be a dynamic link library (DLL) that can use the Component Object Model (COM) to communicate with other components and DLLs.
  • DLL dynamic link library
  • COM Component Object Model
  • components that can request space within a browser can include, for example, a popup blocker component that can request space to inform a user that a popup has been blocked, a tabbed browsing component that can request space to insert a tab band, and a form fill component that can request space to present the user with options from the user's address book, credit card information, or any other user profile information. It should be understood, however, that the invention should not be limited to the above examples, and a component can be any other type of component that can request space within a browser.
  • the space requested by a component can include browser panes for displaying information.
  • the browser panes themselves can be comprised of one or more windows.
  • the browser panes can be positioned in a region above, below, to the left, and/or to the right of a main browsing section. Additionally, the browser panes can be located in a region that is both above and to the left, above and to the right, below and to the left, and/or below and to the right of the main browsing section.
  • the main browsing section can include a web browsing section, an email section, a word processing section, a document creation section, or any other viewable section for displaying any type of multimedia information.
  • the invention can be configured to allow each component to have its own browser pane occupying its own reserved space. There can be as many browser panes within a client area of the browser as requested by a plurality of components. The browser panes can be displayed simultaneously with each other in a manner that does not obscure any viewable areas of the main browsing section.
  • a client may be or include a desktop or laptop computer, a network-enabled cellular telephone, wireless email client, or other client, machine or device to perform various tasks including Web browsing, search, electronic mail (email) and other tasks, applications and functions.
  • the client may also be or can include a server including, for instance, a workstation running the Microsoft Windows®, MacOSTM, Unix, Linux, Xenix, IBM AIXTM, Hewlett-Packard UXTM, Novell NetwareTM, Sun Microsystems SolarisTM, OS/2TM, BeOSTM, Mach, Apache, OpenStepTM or other operating system or platform.
  • the client may additionally be any portable media device such as digital still camera devices, digital video cameras, media players such as personal music players and personal video players, and any other portable media devices.
  • the client can include a communication interface.
  • the communication interface may be an interface that can allow the client to be directly connected to any other client or device or allows the client to be connected to a client or device over a network.
  • the network can include, for example, a local area network (LAN), a wide area network (WAN), or the Internet.
  • the client can be connected to another client or device via a wireless interface.
  • FIG. 1A illustrates an embodiment of a browser before a controlling application creates a browser pane for any requesting components.
  • the browser 102 can have a main browsing section 104 that can encompass the entire client area of the browser.
  • the main browsing section can include a web browsing section, an email section, a word processing section, a document creation section, or any other viewable section for displaying any type of multimedia information.
  • FIG. 1B illustrates an embodiment of a browser 106 including a plurality of browser panes 110 , 112 , 114 , 116 , and 118 created by a controlling application for a plurality of components.
  • the main browsing section 108 can be the same as the main browsing section 104 , but the main browsing section 108 has been adjusted due to the addition of the browser panes created by the controlling application. Adjusting can include moving and resizing the main browsing section 108 . As shown in FIG. 1B , the browser panes can be positioned in any region above, below, to the left and/or to the right of the main browsing section 108 in a manner that does not obstruct any viewable areas of the main browsing section 108 .
  • the browser panes can be located in a region that is both above and to the left, above and to the right, below and to the left, and/or below and to the right of the main browsing section in a manner that does not obstruct any viewable areas of the main browsing section 108 .
  • a plurality of browser panes can be positioned in the same region.
  • FIG. 2 illustrates an embodiment of a block diagram showing a method for creating space within a browser for a requesting component.
  • the requested space can be created in the form of a browser pane.
  • the browser pane can comprise one or more windows.
  • Components can instantiate the controlling application via COM, and can receive a pointer to a communication interface from the controlling application.
  • the communication interface can be a mechanism that includes a set of functions that can enable the component and the controlling application to communicate with each other.
  • the communication interface can be, for example, an IIEPane interface.
  • the component can request space within the browser from the controlling application, and the controlling application can receive the request at step 202 .
  • the request can include a number of input variables from the component that are needed by the controlling application in order for the controlling application to reserve space for the component.
  • the input variables can be received in a request through use of one or more application program interfaces (APIs).
  • One input variable can be a pointer to an instance of the browser that the component can previously receive from the browser.
  • the controlling application can use the pointer to the browser in order to subclass the browser at step 204 .
  • Subclassing the browser can include the controlling application latching onto the browser in order to intercept messages that are sent to and from the browser. Once messages have been intercepted by the controlling application, the controlling application can modify those messages in order for the it to dictate what it wants the browser to know or do.
  • Another input variable that can be included in the request can be information that can describe the region in which the component would like to have its browser pane located.
  • the component can request to have its browser pane to be above, below, to the right, or to the left of the main browsing section. Additionally, the component can request to have its browser pane to be in a region that is both above and to the left, above and to the right, below and to the left, and/or below and to the right of the main browsing section.
  • Yet another input variable included in the request can be information that describes the size of the browser pane that the component wants. This information can include a number of pixels that corresponds to the size of the browser pane that the component would like to have. In an embodiment, the component may only need to provide one coordinate of pixels.
  • the controlling application may only need to know one coordinate of pixels that relate to how high the component wants the pane to be because the width of the browser pane can be determined on how wide the main browsing section already is.
  • the component can specify the length and width of the requested browser pane can be specified.
  • Another input variable can be information that can describe the position of the requested browser pane relative to other browser panes that are currently in the same region that the component wishes to have its browser pane, and the information can describe the position of the requested browser pane relative to other browser panes that may be subsequently created in the same region. For example, if a component wishes to have its browser pane created in a region above the main browsing section, the component can request for its browser pane to be at the top of any browser pane created in that region. In an embodiment, if two or more components request to be in the same location of a region, the controlling application can honor the request of the component who made the request first.
  • Yet another input variable included in the request can be a callback interface that can allow the component to receive events from the controlling application.
  • An event can be any type of information that the component may be interested in knowing from the controlling application. For example, the component may want to know if the main browsing section has been adjusted, or the component may want to know if the user has clicked in the main browsing section using a mouse cursor. But again, the events can correspond to any type of information that a component may want to know from the controlling application and should not be limited to the above examples.
  • the controlling application can create a browser pane that corresponds to the request at step 206 .
  • the controlling application can then adjust the main browsing section accordingly to the number of pixels being used by the newly created browser pane at step 208 .
  • the controlling application can compute the number of pixels being used by all browser panes and can adjust the main browsing section according to the total number of pixels being used.
  • the controlling application can return a window handle and a pane identifier (pane ID) back to the component at step 210 .
  • the window handle and the pane ID can be returned using the same one or more APIs that were used to transmit the input variables to the controlling application, or at least one different API can be used to return the window handle and pane ID.
  • the pane ID can be an arbitrary number assigned by the controlling component to the created browser pane.
  • the window handle can allow the component to customize and manipulate the created browser pane.
  • the controlling application can maintain the space that was created for the component and for any other component that subsequently requests space for a browser pane.
  • the controlling application can make sure that all components that have browser panes located within the browser are connected to the main browsing section by informing the components of any changes made to the main browsing section. Since the controlling application can subclass the browser, the controlling application can listen for any messages being sent to the main browsing section directing the main browsing section to change its size, and the controlling application can listen for any messages sent from the main browsing section as a request to change its size. The controlling application can then modify these messages in order for the controlling application to dictate what it wants the browser to know or do.
  • the controlling application can manage a plurality of browser panes that it created within a browser for a plurality of components.
  • the controlling application intercepts a message being sent to the main browsing section requesting that the main browsing window change its size
  • the controlling application can modify that message to control the size of the main browsing section based on an evaluation of the pixels being used by all browser panes. Therefore, the controlling application can always maintain the space that it has reserved for any created browser panes regardless if the main browsing section attempts to change its size.
  • FIG. 3 illustrates an embodiment of a block diagram showing a method for maintaining space for a created browser pane when switching between two types of browser views.
  • one type of view can be a web view and another type of view can be a file system view.
  • a web view can be, for example, a “Shell DocObject View” that can be presented when a user inputs a URL (http://URL) into an address field of a browser.
  • a file system view cab be, for example, a “ShellDLL_DefView” that can be presented when a user inputs “C: ⁇ ” into an address field of a browser.
  • the browser can destroy the current window of the main browsing section before switching to the new view and supplementing a new window of the main browsing section.
  • This can be problematic as the browser does not directly inform a controlling application of the change in view which may make it difficult for a controlling application to maintain the space it created for requesting components. Since the controlling application is not informed of the change, and because the components are connected to the main browsing section through the controlling application, the components may also not be informed of the change and therefore would not know that they may need to modify their user interfaces to their respective browser panes due to the change in windows.
  • the invention can be utilized so that the controlling application maintains the size of browser panes and the size of the window corresponding to the main browsing section when switching from one type of view to another.
  • the controlling application can subclass the browser in order to listen and intercept messages regarding a view change within the browser.
  • the controlling component can initially subclass the browser by receiving a pointer to an instance of the browser from a component.
  • the controlling application can begin to search for the new window at step 306 .
  • the controlling application can search for the new window by looking for a window that has the same center coordinate as the window of the main browsing section that was destroyed.
  • the controlling application can reroute the connections from the components that currently have browser panes within the browser to the new window at step 308 . Once the connections have been rerouted, in step 310 , the controlling application can maintain the space allocated for the browser panes for each component and for any browser pane subsequently created in the same manner as outlined in step 212 above ( FIG. 2 ).

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

The invention presents a system and method for reserving space within a browser for a requesting component. The invention can reserve space above, below, to the right, or to the left of a main browsing section for a requesting component. The invention can adjust the main browsing section in order to fit a plurality of spaces created for requesting components. The spaces reserved can be presented in a manner that does not obstruct any viewable areas of the main browsing section.

Description

CROSS-REFERENCE TO RELATED APPLICATION
Not applicable.
STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
Not applicable.
BACKGROUND
There may be times when it is necessary to for a browser component to interact with a user. This may involve both showing information and receiving user input. A form filling application, for example, may need to show the user's address book and can allow the user to choose an address. Conventionally, browser components can display a custom dialog box that can allow user input, and browser components can show the user an alert by using a message box that displays information and allows no user input. The two example techniques above, however, are unsatisfactory because they both can require showing a popup window that obscures the content of the page the user is currently browsing. These popup dialogs can also be unsatisfactory because the user may have to close the dialog before the user can continue using the browser.
SUMMARY
The invention is directed towards a system and method for reserving space within a browser for a requesting component. The method can include subclassing a browser and receiving at least one request for space within the browser. Additionally, the method can include creating one or more windows within the browser corresponding to the requested space. The invention can be configured to return a handle for each of the one or more created windows.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A illustrates an embodiment of a browser before a controlling application creates a browser pane for any requesting components.
FIG. 1B illustrates an embodiment of a browser including a plurality of browser panes created by a controlling application for a plurality of components.
FIG. 2 illustrates an embodiment of a block diagram showing a method for creating space within a browser for a requesting component.
FIG. 3 illustrates an embodiment of a block diagram showing a method for maintaining space for created browser panes when switching between two types of browser views.
DETAILED DESCRIPTION
The invention presents a solution for displaying information for browser components by creating a controlling application that can allow browser components to request space inside the browser itself. The component can ask the controlling application to reserve space above, below, to the left and/or to the right of an embedded browser window. Additionally, the component can request space in a region that is both above and to the left, above and to the right, below and to the left, and/or below and to the right of the embedded browser window. The controlling application can reserve the space by adjusting the embedded browser window to accommodate the space requested by the component. The controlling application can also notify the components when the user has adjusted the browser so that the component can layout its user interface.
The invention discloses a method and system for allocating space within a browser for a component. A controlling application can be used to allocate the space for a component within the browser. Such a controlling application can be, for example, a Microsoft Network Explorer Panes (MSNEP) application. MSNEP can be a dynamic link library (DLL) that can use the Component Object Model (COM) to communicate with other components and DLLs. Some types of components that can request space within a browser can include, for example, a popup blocker component that can request space to inform a user that a popup has been blocked, a tabbed browsing component that can request space to insert a tab band, and a form fill component that can request space to present the user with options from the user's address book, credit card information, or any other user profile information. It should be understood, however, that the invention should not be limited to the above examples, and a component can be any other type of component that can request space within a browser.
The space requested by a component can include browser panes for displaying information. The browser panes themselves can be comprised of one or more windows. The browser panes can be positioned in a region above, below, to the left, and/or to the right of a main browsing section. Additionally, the browser panes can be located in a region that is both above and to the left, above and to the right, below and to the left, and/or below and to the right of the main browsing section. The main browsing section can include a web browsing section, an email section, a word processing section, a document creation section, or any other viewable section for displaying any type of multimedia information. The invention can be configured to allow each component to have its own browser pane occupying its own reserved space. There can be as many browser panes within a client area of the browser as requested by a plurality of components. The browser panes can be displayed simultaneously with each other in a manner that does not obscure any viewable areas of the main browsing section.
The invention can be utilized within any type of client. A client may be or include a desktop or laptop computer, a network-enabled cellular telephone, wireless email client, or other client, machine or device to perform various tasks including Web browsing, search, electronic mail (email) and other tasks, applications and functions. The client may also be or can include a server including, for instance, a workstation running the Microsoft Windows®, MacOS™, Unix, Linux, Xenix, IBM AIX™, Hewlett-Packard UX™, Novell Netware™, Sun Microsystems Solaris™, OS/2™, BeOS™, Mach, Apache, OpenStep™ or other operating system or platform. The client may additionally be any portable media device such as digital still camera devices, digital video cameras, media players such as personal music players and personal video players, and any other portable media devices.
The client can include a communication interface. The communication interface may be an interface that can allow the client to be directly connected to any other client or device or allows the client to be connected to a client or device over a network. The network can include, for example, a local area network (LAN), a wide area network (WAN), or the Internet. In an embodiment, the client can be connected to another client or device via a wireless interface.
FIG. 1A illustrates an embodiment of a browser before a controlling application creates a browser pane for any requesting components. The browser 102 can have a main browsing section 104 that can encompass the entire client area of the browser. The main browsing section can include a web browsing section, an email section, a word processing section, a document creation section, or any other viewable section for displaying any type of multimedia information. FIG. 1B illustrates an embodiment of a browser 106 including a plurality of browser panes 110, 112, 114, 116, and 118 created by a controlling application for a plurality of components. The main browsing section 108 can be the same as the main browsing section 104, but the main browsing section 108 has been adjusted due to the addition of the browser panes created by the controlling application. Adjusting can include moving and resizing the main browsing section 108. As shown in FIG. 1B, the browser panes can be positioned in any region above, below, to the left and/or to the right of the main browsing section 108 in a manner that does not obstruct any viewable areas of the main browsing section 108. Additionally, the browser panes can be located in a region that is both above and to the left, above and to the right, below and to the left, and/or below and to the right of the main browsing section in a manner that does not obstruct any viewable areas of the main browsing section 108. As illustrated with browser panes 110 and 112, a plurality of browser panes can be positioned in the same region.
FIG. 2 illustrates an embodiment of a block diagram showing a method for creating space within a browser for a requesting component. The requested space can be created in the form of a browser pane. The browser pane can comprise one or more windows. Components can instantiate the controlling application via COM, and can receive a pointer to a communication interface from the controlling application. The communication interface can be a mechanism that includes a set of functions that can enable the component and the controlling application to communicate with each other. The communication interface can be, for example, an IIEPane interface.
Once the component receives the pointer, the component can request space within the browser from the controlling application, and the controlling application can receive the request at step 202. The request can include a number of input variables from the component that are needed by the controlling application in order for the controlling application to reserve space for the component. The input variables can be received in a request through use of one or more application program interfaces (APIs). One input variable can be a pointer to an instance of the browser that the component can previously receive from the browser. The controlling application can use the pointer to the browser in order to subclass the browser at step 204. Subclassing the browser can include the controlling application latching onto the browser in order to intercept messages that are sent to and from the browser. Once messages have been intercepted by the controlling application, the controlling application can modify those messages in order for the it to dictate what it wants the browser to know or do.
Another input variable that can be included in the request can be information that can describe the region in which the component would like to have its browser pane located. The component can request to have its browser pane to be above, below, to the right, or to the left of the main browsing section. Additionally, the component can request to have its browser pane to be in a region that is both above and to the left, above and to the right, below and to the left, and/or below and to the right of the main browsing section. Yet another input variable included in the request can be information that describes the size of the browser pane that the component wants. This information can include a number of pixels that corresponds to the size of the browser pane that the component would like to have. In an embodiment, the component may only need to provide one coordinate of pixels. For example, if the component requests to have its browser pane in a horizontal position above or below the main browsing section, the controlling application may only need to know one coordinate of pixels that relate to how high the component wants the pane to be because the width of the browser pane can be determined on how wide the main browsing section already is. In another embodiment, the component can specify the length and width of the requested browser pane can be specified.
Another input variable can be information that can describe the position of the requested browser pane relative to other browser panes that are currently in the same region that the component wishes to have its browser pane, and the information can describe the position of the requested browser pane relative to other browser panes that may be subsequently created in the same region. For example, if a component wishes to have its browser pane created in a region above the main browsing section, the component can request for its browser pane to be at the top of any browser pane created in that region. In an embodiment, if two or more components request to be in the same location of a region, the controlling application can honor the request of the component who made the request first.
Yet another input variable included in the request can be a callback interface that can allow the component to receive events from the controlling application. An event can be any type of information that the component may be interested in knowing from the controlling application. For example, the component may want to know if the main browsing section has been adjusted, or the component may want to know if the user has clicked in the main browsing section using a mouse cursor. But again, the events can correspond to any type of information that a component may want to know from the controlling application and should not be limited to the above examples.
Once the controlling application receives the request and evaluates the input variables, the controlling application can create a browser pane that corresponds to the request at step 206. The controlling application can then adjust the main browsing section accordingly to the number of pixels being used by the newly created browser pane at step 208. For browser panes that are created subsequently, the controlling application can compute the number of pixels being used by all browser panes and can adjust the main browsing section according to the total number of pixels being used. Once the browser pane is created, the controlling application can return a window handle and a pane identifier (pane ID) back to the component at step 210. In an embodiment, the window handle and the pane ID can be returned using the same one or more APIs that were used to transmit the input variables to the controlling application, or at least one different API can be used to return the window handle and pane ID. The pane ID can be an arbitrary number assigned by the controlling component to the created browser pane. The window handle can allow the component to customize and manipulate the created browser pane.
Once the browser pane has been created for the component, at step 212, the controlling application can maintain the space that was created for the component and for any other component that subsequently requests space for a browser pane. The controlling application can make sure that all components that have browser panes located within the browser are connected to the main browsing section by informing the components of any changes made to the main browsing section. Since the controlling application can subclass the browser, the controlling application can listen for any messages being sent to the main browsing section directing the main browsing section to change its size, and the controlling application can listen for any messages sent from the main browsing section as a request to change its size. The controlling application can then modify these messages in order for the controlling application to dictate what it wants the browser to know or do. For example, the controlling application can manage a plurality of browser panes that it created within a browser for a plurality of components. When the controlling application intercepts a message being sent to the main browsing section requesting that the main browsing window change its size, the controlling application can modify that message to control the size of the main browsing section based on an evaluation of the pixels being used by all browser panes. Therefore, the controlling application can always maintain the space that it has reserved for any created browser panes regardless if the main browsing section attempts to change its size.
FIG. 3 illustrates an embodiment of a block diagram showing a method for maintaining space for a created browser pane when switching between two types of browser views. In an embodiment, one type of view can be a web view and another type of view can be a file system view. A web view can be, for example, a “Shell DocObject View” that can be presented when a user inputs a URL (http://URL) into an address field of a browser. A file system view cab be, for example, a “ShellDLL_DefView” that can be presented when a user inputs “C:\” into an address field of a browser.
When switching between the two types of views, the browser can destroy the current window of the main browsing section before switching to the new view and supplementing a new window of the main browsing section. This can be problematic as the browser does not directly inform a controlling application of the change in view which may make it difficult for a controlling application to maintain the space it created for requesting components. Since the controlling application is not informed of the change, and because the components are connected to the main browsing section through the controlling application, the components may also not be informed of the change and therefore would not know that they may need to modify their user interfaces to their respective browser panes due to the change in windows. The invention, however, can be utilized so that the controlling application maintains the size of browser panes and the size of the window corresponding to the main browsing section when switching from one type of view to another.
In step 302, the controlling application can subclass the browser in order to listen and intercept messages regarding a view change within the browser. Again, the controlling component can initially subclass the browser by receiving a pointer to an instance of the browser from a component. Once the controlling application intercepts a message that the window corresponding to the current main browsing section is being destroyed and is being replaced with a new window that corresponds to a main browsing section of a new view type, the controlling application can begin to search for the new window at step 306. For example, in an embodiment, the controlling application can search for the new window by looking for a window that has the same center coordinate as the window of the main browsing section that was destroyed.
Once the new window that corresponds to the main browsing section of the new view type has been located, the controlling application can reroute the connections from the components that currently have browser panes within the browser to the new window at step 308. Once the connections have been rerouted, in step 310, the controlling application can maintain the space allocated for the browser panes for each component and for any browser pane subsequently created in the same manner as outlined in step 212 above (FIG. 2).
While particular embodiments of the invention have been illustrated and described in detail herein, it should be understood that various changes and modifications might be made to the invention without departing from the scope and intent of the invention. The embodiments described herein are intended in all respects to be illustrative rather than restrictive. Alternate embodiments will become apparent to those skilled in the art to which the present invention pertains without departing from its scope.
From the foregoing it will be seen that this invention is one well adapted to attain all the ends and objects set forth above, together with other advantages, which are obvious and inherent to the system and method. It will be understood that certain features and sub-combinations are of utility and may be employed without reference to other features and sub-combinations. This is contemplated and within the scope of the appended claims.

Claims (19)

1. A computer-implemented method for reserving space within a browser, comprising:
subclassing the browser, wherein subclassing comprises the steps of allowing a controlling application to intercept messages that are sent to and from the browser, and permitting the controlling application to modify the intercepted messages in order to control the browser;
receiving at least one request from a component for space within the browser, wherein the space requested is utilized for at least one browser pane for displaying information, and wherein the at least one request includes at least one input variable selected from a list comprising: information that describes a region of the browser in which the component requests to have its browser pane located, information that describes a position of the at least one browser pane relative to other browser panes, and a callback interface that permits the component to receive events from the controlling application;
creating one or more browser panes within the browser corresponding to the request for space; and
returning a handle for each of the one or more created browser panes, wherein the handle permits the component to customize and manipulate the one or more created browser panes.
2. The method according to claim 1, wherein receiving the at least one request for space comprises intercepting a message.
3. The method according to claim 1, further comprising adjusting a first browser section based on the one or more created browser panes.
4. The method according to claim 3, further comprising maintaining a size of the one or more created browser panes when switching between a first view type and a second view type.
5. The method according to claim 4, wherein the first browser section corresponds to at least one of a web view and a file system view, and the first and second browser views are different.
6. The method according to claim 3, further comprising rerouting at least one connection from at least one component to a second browser section when the first browser section is destroyed.
7. The method according to claim 6, further comprising searching for the second browser section by evaluating a coordinate of the first browser section.
8. The method according to claim 6, further comprising adjusting the second browser section based on the created browser panes.
9. The method according to claim 3, wherein the one or more created browser panes are located in at least one of an above region, a below region, a right region, and a left region relative to the first browser section.
10. A computer-readable storage medium embodying instructions for performing a method for maintaining reserved space within a browser during a change between view types, comprising:
subclassing the browser having a first window of a first view type, wherein the first view type is selected from a list comprising: a file system browsing view and a web browsing view;
wherein subclassing the browser comprises the steps of allowing a controlling application to intercept messages that are sent to and from the browser, and permitting the controlling application to modify the intercepted messages in order to control the browser;
receiving at least one request from a component for space within the browser, wherein the space requested is utilized for at least one browser pane for displaying information, and wherein the at least one request includes at least one input variable selected from a list comprising: information that describes a region of the browser in which the component requests to have its browser pane located, information that describes a position of the at least one browser pane relative to other browser panes, and a callback interface that permits the component to receive events from the controlling application;
receiving a message that the first window is being destroyed;
searching for a second window having a second view type, wherein the second view type is different than the first view type; and
rerouting at least one connection from one or more components that previously had viewing panes within the first window to viewing panes in the second window.
11. The method according to claim 10, wherein searching for the second window comprises evaluating a coordinate of the first window.
12. The method according to claim 10, further comprising, adjusting the second window based on a size of a browser pane of the one or more components.
13. The method according to claim 10, further comprising creating one or more windows within the browser that are located in at least one of an above region, a below region, a right region, and a left region relative to the second window.
14. The method according to claim 10, wherein receiving the messages comprises intercepting the message.
15. A computer-readable storage medium storing an application program interface for reserving space within a browser, comprising:
a subclassing module for subclassing the browser, said subclassing module comprising intercepted messages sent to and from the browser and modified messages to control the browser;
a receiving module for receiving at least one request for space within the browser, wherein the space requested is utilized for at least one browser pane for displaying information, and wherein the at least one request for space includes at least one input variable selected from a list comprising: information that describes a region of the browser in which the component requests to have its browser pane located, information that describes a position of the at least one browser pane relative to other browser panes, and a callback interface that permits the component to receive events from the controlling application;
a registration module for registering at least one component; and
a browser pane creation module for creating one or more browser panes within the browser corresponding to the request for space.
16. The application program interface according to claim 15, wherein receiving the at least one request for space comprises intercepting a message.
17. The application program interface according to claim 15, wherein the browser pane creation module maintains a size of the one or more created browser panes when switching between a first view type and a second view type.
18. The application program interface according to claim 17, wherein the first view type is at least one of a web view and a file system view, and the first and second view types are different.
19. The application program interface according to claim 15, wherein the one or more created browser panes are located in at least one of an above region, a below region, a right region, and a left region relative to a first browser section.
US11/260,211 2005-10-28 2005-10-28 Layout and management of browser panes Expired - Fee Related US7475352B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/260,211 US7475352B2 (en) 2005-10-28 2005-10-28 Layout and management of browser panes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/260,211 US7475352B2 (en) 2005-10-28 2005-10-28 Layout and management of browser panes

Publications (2)

Publication Number Publication Date
US20070101298A1 US20070101298A1 (en) 2007-05-03
US7475352B2 true US7475352B2 (en) 2009-01-06

Family

ID=37998098

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/260,211 Expired - Fee Related US7475352B2 (en) 2005-10-28 2005-10-28 Layout and management of browser panes

Country Status (1)

Country Link
US (1) US7475352B2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8499065B2 (en) 2010-09-30 2013-07-30 The Nielsen Company (Us), Llc Methods and apparatus to distinguish between parent and child webpage accesses and/or browser tabs in focus
US9826359B2 (en) 2015-05-01 2017-11-21 The Nielsen Company (Us), Llc Methods and apparatus to associate geographic locations with user devices
US11188941B2 (en) 2016-06-21 2021-11-30 The Nielsen Company (Us), Llc Methods and apparatus to collect and process browsing history
US12003799B2 (en) 2013-04-24 2024-06-04 The Nielsen Company (Us), Llc Methods and apparatus to correlate census measurement data with panel data

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9842097B2 (en) * 2007-01-30 2017-12-12 Oracle International Corporation Browser extension for web form fill
US20080301562A1 (en) * 2007-04-27 2008-12-04 Josef Berger Systems and Methods for Accelerating Access to Web Resources by Linking Browsers
US8234262B2 (en) * 2007-10-24 2012-07-31 The Invention Science Fund I, Llc Method of selecting a second content based on a user's reaction to a first content of at least two instances of displayed content
US8229911B2 (en) * 2008-05-13 2012-07-24 Enpulz, Llc Network search engine utilizing client browser activity information
US8713473B2 (en) * 2011-04-26 2014-04-29 Google Inc. Mobile browser context switching
US9443331B2 (en) * 2013-06-06 2016-09-13 Microsoft Technology Licensing, Llc Input object for routing input for visual elements
US11036386B2 (en) * 2015-01-06 2021-06-15 Lenovo (Singapore) Pte. Ltd. Application switching on mobile devices

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020186249A1 (en) * 1999-10-28 2002-12-12 Qi Lu Method and system of facilitating automatic login to a web site using an internet browser
US20060122904A1 (en) * 1999-10-28 2006-06-08 Shafron Thomas J Method and system of facilitating on-line shopping using a dynamically controlled browser interface

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020186249A1 (en) * 1999-10-28 2002-12-12 Qi Lu Method and system of facilitating automatic login to a web site using an internet browser
US20060122904A1 (en) * 1999-10-28 2006-06-08 Shafron Thomas J Method and system of facilitating on-line shopping using a dynamically controlled browser interface

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8499065B2 (en) 2010-09-30 2013-07-30 The Nielsen Company (Us), Llc Methods and apparatus to distinguish between parent and child webpage accesses and/or browser tabs in focus
US9332056B2 (en) 2010-09-30 2016-05-03 The Nielsen Company (Us), Llc Methods and apparatus to distinguish between parent and child webpage accesses and/or browser tabs in focus
US12003799B2 (en) 2013-04-24 2024-06-04 The Nielsen Company (Us), Llc Methods and apparatus to correlate census measurement data with panel data
US12063402B2 (en) 2013-04-24 2024-08-13 The Nielsen Company (Us), Llc Methods and apparatus to correlate census measurement data with panel data
US9826359B2 (en) 2015-05-01 2017-11-21 The Nielsen Company (Us), Llc Methods and apparatus to associate geographic locations with user devices
US10057718B2 (en) 2015-05-01 2018-08-21 The Nielsen Company (Us), Llc Methods and apparatus to associate geographic locations with user devices
US10412547B2 (en) 2015-05-01 2019-09-10 The Nielsen Company (Us), Llc Methods and apparatus to associate geographic locations with user devices
US10681497B2 (en) 2015-05-01 2020-06-09 The Nielsen Company (Us), Llc Methods and apparatus to associate geographic locations with user devices
US11197125B2 (en) 2015-05-01 2021-12-07 The Nielsen Company (Us), Llc Methods and apparatus to associate geographic locations with user devices
US12069534B2 (en) 2015-05-01 2024-08-20 The Nielsen Company (Us), Llc Methods and apparatus to associate geographic locations with user devices
US11188941B2 (en) 2016-06-21 2021-11-30 The Nielsen Company (Us), Llc Methods and apparatus to collect and process browsing history
US12093978B2 (en) 2016-06-21 2024-09-17 The Nielsen Company (Us), Llc Methods and apparatus to collect and process browsing history

Also Published As

Publication number Publication date
US20070101298A1 (en) 2007-05-03

Similar Documents

Publication Publication Date Title
US7475352B2 (en) Layout and management of browser panes
US11151303B2 (en) Integration of content in non-browser applications
US8627195B1 (en) Remote browsing and searching
US8135616B2 (en) Browsing and quality of service features
US8484574B2 (en) Rule-based multi-pane toolbar display
US9348939B2 (en) Web site sectioning for mobile web browser usability
US20140351721A1 (en) Modification of windows across multiple displays
US20110153658A1 (en) Integrating user interfaces from one application into another
US20120297324A1 (en) Navigation Control Availability
US9336321B1 (en) Remote browsing and searching
US10310699B1 (en) Dynamic modification of browser and content presentation
WO2023165197A1 (en) Method and apparatus for adjusting interface layout, device and storage medium
US20190080017A1 (en) Method, system, and device that invokes a web engine
US20080222268A1 (en) Web server, method of controlling operation thereof, and control program
US9092405B1 (en) Remote browsing and searching
US20230214958A1 (en) Focus of shared content
US9690859B2 (en) Transmitting information based on reading speed
US9674305B2 (en) Method and system for synchronizing software module hosts
KR20130070599A (en) So-called hd-web method for high-definition and all-screen compatible internet contents
US20080297521A1 (en) System and method for providing skins for a web page
US20130290827A1 (en) Integrated search engine homepages
US9794369B2 (en) Active web page consolidator
CN112005217A (en) Independent thread API call to service a request
EP3367243A1 (en) Information processing device, information processing system, and information processing method
WO2022062664A1 (en) Embedding asynchronous content in text

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:YOLLECK, STEPHEN M.;REEL/FRAME:016924/0089

Effective date: 20051026

AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNOR FROM STEPHEN M. YOLLECK TO STEPHEN M. YOLLECK AND DAVID S. KORN PREVIOUSLY RECORDED ON REEL 016924 FRAME 0089;ASSIGNORS:YOLLECK, STEPHEN M.;KORN, DAVID S.;REEL/FRAME:021866/0393

Effective date: 20051026

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034543/0001

Effective date: 20141014

FPAY Fee payment

Year of fee payment: 8

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20210106