Web Resource Load Blocking API for Content Filtering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Content filtering technologies, particularly advertisement blocking filters, face performance issues on devices with limited memory or computing resources due to resource-intensive local execution, impacting application performance even on larger devices.

Innovation Solution

A web resource load blocking API that allows for the compilation and mapping of a content filter extension into the address space of a web content process, enabling actions and triggers to be applied without continuous execution of third-party filtering logic, using a content extension programming interface to manage web content filtering and transformation actions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If content filter executes locally as a separate process, then filtering functionality is provided, but resource consumption increases and performance deteriorates

Engineering Contradiction:
Improvefiltering functionalityVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent merges the content filter execution into the web browser process by providing an execution environment within the browser that can load and execute filter code. This eliminates the need for a separate process, reducing resource overhead while maintaining filtering functionality. The filter is executed in the same address space as the browser, allowing direct interaction with web content without inter-process communication overhead.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If third-party filter plug-ins execute locally, then content filtering is achieved, but application performance is hindered

Engineering Contradiction:
Improvecontent filteringVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the filtering functionality into modular filter code that can be independently loaded and executed within the browser's execution environment. This allows the browser to load only the necessary filter components rather than running entire separate processes, improving application performance while maintaining content filtering capability. The segmented approach enables selective execution of filtering logic only when needed.

Inventive Principle:
Principle #1Segmentation

3Reliability

If separate content filter process is used, then filtering capability is provided, but memory and computing resources are negatively impacted

Engineering Contradiction:
Improvefiltering capabilityVSAvoidmemory and computing resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent combines the content filter execution with the browser process by providing an execution environment within the browser that shares the same memory space and resources. This eliminates the need for duplicate memory allocations and computing resources that would be required for a separate process, thereby reducing overall resource consumption while maintaining full filtering capability.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11258866B2Web resource load blocking API
Publication Date: 2022.02.22 APPLE INC
  • US11258866B2 patent drawing
  • US11258866B2 patent drawing
  • US11258866B2 patent drawing

AI summary

In various embodiments described herein, a content extension and programming interface enable third-party content extensions to supply transformation and filtering actions and associated criteria to native web clients on a system. In one embodiment, the native web client loads data for a third-party content filtering, blocking, or transformation extension and conducts extension defined actions without requiring additional intermediation by the third-party content. In one embodiment, a third-party application downloaded to a mobile or handheld device can include an extension data object that provides actions and triggers that are loaded by a native web client of the system. The third-party application is not required to execute continuously and can exit or be terminated once the web client retrieves the extension data object.