Shared Rendering Engine for Web Content
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing browser technologies require multiple instances of rendering engines for each application, leading to inefficiencies such as memory leaks, resource starvation, and priority inversions, and lack secure inter-process communication for rendering web content.
Innovation Solution
Implementing a shared rendering engine architecture where a single master process controls multiple sandboxed rendering engines, with inter-process communication for efficient resource management and authentication, allowing for secure sharing of image resources and prioritization based on application states.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple copies of rendering engine are instantiated for each application, then each application can independently render web content, but memory resources are wasted and memory leaks occur
Solution Approach 1:
The patent merges multiple rendering engine instances into a single shared rendering process that serves multiple applications. The host application creates one rendering process that can handle rendering requests from multiple client applications, eliminating the need for each application to have its own separate rendering engine copy. This sharing approach reduces memory consumption while maintaining rendering independence through process isolation and authentication mechanisms.
2Quantity of substance
If multiple rendering processes share the same binary code, then memory usage is reduced, but resource starvation and priority inversions occur
Solution Approach 1:
The patent segments the rendering system into a host application that manages resource allocation and multiple sandboxed rendering processes that execute rendering tasks. The host application maintains control over resource distribution and can prioritize different rendering requests based on application states, preventing resource starvation and priority inversions while keeping memory usage low through code sharing.
Solution Approach 2:
The host application acts as an intermediary between multiple client applications and the shared rendering process. It receives rendering requests from various applications, manages the rendering queue, allocates resources appropriately, and coordinates the execution of rendering tasks, thereby preventing resource starvation and priority inversions in the shared memory environment.
3Quantity of substance
If a shared rendering process is used, then resource efficiency improves, but secure inter-process communication for rendering web content is compromised
Solution Approach 1:
The patent implements sandboxing that creates distinct security contexts for different rendering requests while using a shared rendering process. Each client application's rendering requests are processed with appropriate authentication and authorization checks, ensuring that each application can only access resources it is entitled to. This local quality control maintains security while allowing resource sharing.
Data Source
AI summary
A system, method, and computer readable storage medium for inter-process rendering pipeline for shared process remote web content rendering. The method includes obtaining an image rendering request through an inter-process communication channel established by an application in which the image rendering request including a content area. The method further includes selecting a content rendering engine based on one or more image resources needed to generate web content as specified in the image rendering request, determining the one or more image resources corresponding to the image rendering request by using the content rendering engine, and generating the web content on the content area based at least in part on the one or more image resources.


