Extensible Browser Plugin Interface Using String Identifiers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional browser plugin interfaces, such as NPAPI, face challenges in maintaining compatibility across different versions and enforcing secure access to browser capabilities, as they require hardcoding numerical identifiers and lack a standardized way to manage interface versions and privileges.

Innovation Solution

An extensible browser plugin interface that uses string-based interface identifiers to determine supported interfaces and privileges, returning a virtual function table (vtable) to plugins only if they have appropriate access, allowing for dynamic runtime access to browser capabilities while enforcing security through privilege checks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If numerical identifiers are used in conventional plugin interfaces, then interface identification is straightforward, but compatibility maintenance becomes complex across multiple versions

Engineering Contradiction:
Improveinterface identificationVSAvoidversion compatibility management
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent changes the identification parameter from numerical IDs to string-based identifiers that explicitly encode version information. This allows the interface to maintain clarity in identification while simplifying version compatibility management through human-readable, structured identifier strings that include version metadata.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent performs preliminary encoding of version information within the interface identifier string itself. By embedding version data in advance within the identifier structure, the system eliminates the need for complex runtime version checking and compatibility management, resolving the contradiction between ease of identification and compatibility complexity.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If browser exposes all capabilities to plugins, then plugin functionality is enhanced, but system security is compromised

Engineering Contradiction:
Improveplugin functionalityVSAvoidsystem security
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent applies local quality by differentiating access rights for different interfaces based on their security characteristics. Trusted interfaces are marked with special identifiers and restricted to privileged plugins, while standard interfaces remain accessible to all plugins. This resolves the contradiction by providing enhanced functionality where safe and maintaining security where needed.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent introduces an intermediary mechanism through the identifier string system that mediates between plugin requests and browser capabilities. The identifier structure enables the browser to automatically determine and enforce appropriate access levels, allowing plugins to access needed functionality while the intermediary mechanism ensures security constraints are maintained.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Stability of the object's composition

If multiple NPAPI version levels are supported, then backward compatibility is maintained, but interface size and complexity increase

Engineering Contradiction:
Improvebackward compatibilityVSAvoidinterface size
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent segments the interface identification system into structured identifier strings that contain embedded version information. This segmentation allows the interface to support multiple version levels through distinct identifier patterns rather than maintaining separate interface definitions, reducing overall interface complexity while maintaining backward compatibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal identifier string format that serves multiple functions: identifying the interface, encoding version information, and indicating trust level. This multi-functional identifier system eliminates the need for separate management structures for each version level, maintaining compatibility while reducing interface size and complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9210209B2Extensible browser plugin interface
Publication Date: 2015.12.08 GOOGLE LLC
  • US9210209B2 patent drawing
  • US9210209B2 patent drawing
  • US9210209B2 patent drawing

AI summary

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for an extensible browser plugin interface. In one aspect, a method includes receiving, at a browser plugin interface, an interface request from a plugin, where the interface request includes an interface identifier string that identifies a particular interface; determining, using the interface identifier string, whether the particular interface is supported by the browser; and if it is determined that the particular interface is supported by the browser, returning to the plugin a virtual function table (vtable) of one or more functions, wherein the vtable is associated with the particular interface identified by the interface request.