Split browser architecture capable of determining whether to combine or split content layers based on the encoding of content within each layer
First Claim
Patent Images
1. A system for providing access to network-accessible content, the system comprising:
- a browser component adapted to run on a user device, the browser component configured to provide a user interface on a display of the user device; and
an intermediary system responsive to a request from the user device for a content page by retrieving the content page from a host system, the intermediary system comprising one or more computing devices and further comprising;
a content processing module configured to generate a render tree representation of the content page; and
a graphics processing module configured to;
generate, based at least partly on the render tree representation, a layer tree including content data and layout data for each of a plurality of layers usable for rendering a visual representation of the content page;
analyze the plurality of layers to determine whether to combine or split at least a portion of the content data of any of the plurality of layers, wherein determining whether to combine or split is based on an encoding technique determined for the portion of the content data;
combine or split the plurality of layers based on analyzing the plurality of layers such that a different encoding technique of a plurality of different encoding techniques is selected for each layer of the plurality of layers, wherein the selected encoding technique decreases bandwidth usage in sending the layer to the user device relative to sending the content of the layer without encoding; and
generate, for each layer of the plurality of layers of the layer tree, encoded layer data by encoding the layer according to the selected encoding technique;
wherein the intermediary system is further configured to send the encoded layer data to the user device;
wherein the browser component is configured to render the visual representation of the content page on the display of the user device based at least partly on the encoded layer data.
1 Assignment
0 Petitions
Accused Products
Abstract
An intermediary system operates as an intermediary between content servers and user devices, and provides services for improving page load times as seen by end users. One such service involves converting a retrieved content page (e.g., web page) into a number of encoded layers that can be decoded and rendered by the user device. The intermediary system determines a suitable encoding technique for each of the layers. The intermediary system sends the encoded layers to a browser component running on the user device for rendering by the GPU.
-
Citations
22 Claims
-
1. A system for providing access to network-accessible content, the system comprising:
-
a browser component adapted to run on a user device, the browser component configured to provide a user interface on a display of the user device; and an intermediary system responsive to a request from the user device for a content page by retrieving the content page from a host system, the intermediary system comprising one or more computing devices and further comprising; a content processing module configured to generate a render tree representation of the content page; and a graphics processing module configured to; generate, based at least partly on the render tree representation, a layer tree including content data and layout data for each of a plurality of layers usable for rendering a visual representation of the content page; analyze the plurality of layers to determine whether to combine or split at least a portion of the content data of any of the plurality of layers, wherein determining whether to combine or split is based on an encoding technique determined for the portion of the content data; combine or split the plurality of layers based on analyzing the plurality of layers such that a different encoding technique of a plurality of different encoding techniques is selected for each layer of the plurality of layers, wherein the selected encoding technique decreases bandwidth usage in sending the layer to the user device relative to sending the content of the layer without encoding; and generate, for each layer of the plurality of layers of the layer tree, encoded layer data by encoding the layer according to the selected encoding technique; wherein the intermediary system is further configured to send the encoded layer data to the user device; wherein the browser component is configured to render the visual representation of the content page on the display of the user device based at least partly on the encoded layer data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of providing access to network-accessible content system, the method comprising, by an intermediary system that operates as an intermediary between user devices and content servers:
-
receiving, from a browser component running on a user device, a request for a content page; retrieving the content page from a host system; generating a render tree representation of the content page; generating, based at least partly on the render tree representation, a layer tree including content data and layout data for a plurality of layers for rendering a visual representation of the content page; analyzing the plurality of layers to determine whether to combine or split at least a portion of the content data of any of the plurality of layers, wherein determining whether to combine or split is based on a type of encoding determined for the portion of the content data; combining or splitting the plurality of layers based on the analyzing such that a different type of encoding of a plurality of different types of encoding is selected for each layer of the plurality of layers, the selected type of encoding decreasing bandwidth usage in sending the layer to the user device relative to relative to sending the content of the layer without encoding; encoding the layer according to the selected type of encoding; and sending the layer tree, including the content data and the layout data for the plurality of layers, wherein the content data and the layout data include the encoded layer, over a network to the browser component running on the user device for rendering the visual representation of the content page on a display associated with the user device; wherein the intermediary system comprises one or more computing devices and is separate from the user device and the host system. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-readable medium storing computer executable instructions that direct a user device to perform operations comprising:
-
sending a request for a content page to an intermediary system that operates as an intermediary between user devices and content servers; receiving, from the intermediary system, a layer tree including content data and layout data for each of a plurality of layers generated by the intermediary system based at least partly on a render tree representation of the content page, wherein the plurality of layers have been split or combined in response to encoding techniques determined for portions of the content data such that at least two of the plurality of layers are each encoded with a different one of a plurality of different encoding techniques selected to decrease bandwidth usage in receiving the layer from the intermediary system relative to sending the content of the layer without encoding; generating, based at least partly on the plurality of layers, instructions to configure a display associated with the user device to display the visual representation of the content page; and rendering, based at least partly on the instructions, the visual representation of the content page on the display of the user device. - View Dependent Claims (21, 22)
-
Specification