Browser capable of saving and restoring content item state
First Claim
1. A computer-implemented method comprising:
- as implemented by one or more computing devices configured to execute specific instructions,allocating different respective portions of a volatile memory to different respective tabs of a browser application, wherein each tab displays a different content item loaded by the browser application, and wherein the browser application has a user interface that enables a user to select a content item to view by selecting the tab in which the content item is loaded;
determining that a memory state of a first content item loaded in a first tab of the browser application has changed, said memory state corresponding to a volatile memory portion allocated to the first tab;
serializing, by the browser application, the memory state of the first content item based at least partly on the determination that the memory state of a first content item has changed, wherein serializing the memory state comprises translating object state data stored in the volatile memory portion into a format for storage in non-volatile storage, and storing the translated object state data in non-volatile storage, wherein serializing the memory state of the first content item comprises storing data regarding a memory state of one or more portions of the first content item, and wherein one or more additional portions of the content item are excluded from the serialization in response to determining that a memory state of the one or more additional portions has not changed;
after serializing the memory state, releasing the allocation of the volatile memory portion to the first tab, such that at least a portion of the volatile memory portion is made available for use other than to store data corresponding to the first tab;
after releasing the allocation, continuing to display a representation of the first tab in the user interface of the browser application; and
responsive to user selection of the representation of the first tab, restoring a state of the first tab, said restoring comprising de-serializing the memory state to a portion of the volatile memory corresponding to the first tab.
1 Assignment
0 Petitions
Accused Products
Abstract
Features are disclosed for storing content items, such as content pages, applications, and other network-accessible content, such that changes to the state of the content items may be retained and restored at a later time. Storing content items can include serializing the memory state of individual portions of the content items to a persistent storage medium based on a determination that the memory state has changed since the last serialization process. The serialized content items may later be de-serialized and restored to the same memory state that they had prior to serialization. In this way, the de-serialized content items reflect changes made after they were initially retrieved and prior to serialization.
30 Citations
13 Claims
-
1. A computer-implemented method comprising:
- as implemented by one or more computing devices configured to execute specific instructions,
allocating different respective portions of a volatile memory to different respective tabs of a browser application, wherein each tab displays a different content item loaded by the browser application, and wherein the browser application has a user interface that enables a user to select a content item to view by selecting the tab in which the content item is loaded; determining that a memory state of a first content item loaded in a first tab of the browser application has changed, said memory state corresponding to a volatile memory portion allocated to the first tab; serializing, by the browser application, the memory state of the first content item based at least partly on the determination that the memory state of a first content item has changed, wherein serializing the memory state comprises translating object state data stored in the volatile memory portion into a format for storage in non-volatile storage, and storing the translated object state data in non-volatile storage, wherein serializing the memory state of the first content item comprises storing data regarding a memory state of one or more portions of the first content item, and wherein one or more additional portions of the content item are excluded from the serialization in response to determining that a memory state of the one or more additional portions has not changed; after serializing the memory state, releasing the allocation of the volatile memory portion to the first tab, such that at least a portion of the volatile memory portion is made available for use other than to store data corresponding to the first tab; after releasing the allocation, continuing to display a representation of the first tab in the user interface of the browser application; and responsive to user selection of the representation of the first tab, restoring a state of the first tab, said restoring comprising de-serializing the memory state to a portion of the volatile memory corresponding to the first tab. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
- as implemented by one or more computing devices configured to execute specific instructions,
-
10. Non-volatile computer storage comprising one or more storage devices, the non-volatile computer storage storing a browser application comprising executable instructions that implement at least:
-
a user interface that enables a user to open multiple tabs, and to load different respective content items in each tab, each tab being selectable to view a corresponding content item; and a memory manager that allocates a respective portion of a volatile memory to each of the multiple tabs, and which manages the volatile memory allocations according to a process that comprises; detecting a change in a memory state of a content item loaded in a first tab of the multiple tabs, said memory state corresponding to a volatile memory portion allocated to the first tab; serializing the memory state based at least partly on the detected change, wherein serializing the memory state comprises translating object state data stored in the volatile memory portion into a format for storage in non-volatile storage, and storing the translated object state data in non-volatile storage; and after serializing the memory state, releasing the allocation of the volatile memory portion to the first tab, such that at least a portion of the volatile memory portion is made available for use other than to store data corresponding to the first tab; wherein the memory manager is configured to identify individual portions of the content item that have been changed, and to limit said serialization to the individual portions that have changed; wherein the user interface is configured to continue displaying a selectable representation of the first tab after the allocation is released, such that the first tab remains selectable by a user; and wherein the memory manager is responsive to user selection of the selectable representation of the first tab by de-serializing the memory state and restoring a state of the content item in the first tab. - View Dependent Claims (11, 12)
-
-
13. A computing device comprising a processor and a volatile memory, the computing device programmed with executable instructions to implement at least:
-
a user interface that enables a user to open multiple tabs, and to load different respective content items in each tab, each tab being selectable to view a corresponding content item; and a memory manager that allocates a respective portion of the volatile memory to each of the multiple tabs, and which manages the volatile memory allocations according to a process that comprises; detecting a change in a memory state of a content item loaded in a first tab of the multiple tabs, said memory state corresponding to a volatile memory portion allocated to the first tab; serializing the memory state based at least partly on the detected change, wherein serializing the memory state comprises translating object state data stored in the volatile memory portion into a format for storage in non-volatile storage, and storing the translated object state data in non-volatile storage; and after serializing the memory state, releasing the allocation of the volatile memory portion to the first tab, such that at least a portion of the volatile memory portion is made available for use other than to store data corresponding to the first tab; wherein the memory manager is configured to identify individual portions of the content item that have changed, and to limit said serialization to the individual portions that have changed; wherein the user interface is configured to continue displaying a selectable representation of the first tab after the allocation is released, such that the first tab remains selectable by a user; and wherein the memory manager is responsive to user selection of the selectable representation of the first tab by de-serializing the memory state and restoring a state of the content item in the first tab.
-
Specification