Browser Rendering Engine Shared Memory Area

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Browsers often become unresponsive due to improper rendering of content, leading to a poor user experience, especially when waiting for content to be rendered for display, and current user interfaces are not responsive enough to match the rate of user interaction.

Innovation Solution

A web rendering engine generates requests to selectively redraw regions of content, using a shared memory area between the browser and rendering engine processes, allowing the browser process to update the display independently and efficiently, thereby improving rendering performance and responsiveness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If the browser process waits for the rendering engine process to render content for display, then rendering accuracy is improved, but browser responsiveness deteriorates

Engineering Contradiction:
Improverendering accuracyVSAvoidbrowser responsiveness
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The system divides the browser into separate processes: a browser process and a rendering engine process. The browser process handles user interface and navigation, while the rendering engine process handles content rendering. This segmentation allows the browser process to remain responsive while the rendering engine processes content independently, resolving the contradiction between rendering accuracy and browser responsiveness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A shared memory area serves as an intermediary between the browser process and the rendering engine process. The rendering engine writes rendered content to the shared memory area, and the browser process reads from it to update the display. This intermediary mechanism enables asynchronous communication, allowing the browser to remain responsive while maintaining accurate rendering through the shared memory interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If the browser uses a single process for both browsing and rendering, then system complexity is reduced, but rendering performance deteriorates

Engineering Contradiction:
Improvesystem complexityVSAvoidrendering performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system segments the browser functionality into distinct processes: the browser process for navigation and user interface management, and the rendering engine process for content rendering. This segmentation increases system complexity slightly but dramatically improves rendering performance by allowing parallel execution and preventing the browser from blocking on rendering operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The rendering engine process operates independently and autonomously, managing its own rendering tasks without requiring the browser process to wait or intervene in rendering operations. The browser process simply initiates rendering requests and retrieves results from the shared memory area, allowing the rendering engine to self-manage its workload and improve overall rendering performance.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9557908B1Methods and systems for rendering in a multi-process browser using a shared memory area
Publication Date: 2017.01.31 GOOGLE LLC
  • US9557908B1 patent drawing
  • US9557908B1 patent drawing
  • US9557908B1 patent drawing

AI summary

Systems and methods for rendering web content in a browser are described herein. An embodiment includes a web rendering engine in a rendering engine process to generate one or more requests to selectively redraw one or more regions of content retrieved by a browser process. A renderview then generates a bitmap based on the requests and content retrieved by the browser process. The bitmap may then be stored by the renderview in a shared memory area where it may be accessed by a renderview host in the browser process. The renderview host may then provide the bitmap to a backing store associated with a display device for display to a user. In another embodiment, the shared memory area between the browser process and the rendering engine process may be used to achieve efficient scrolling of a web page through rate limited rendering of content.