Browser Extension Adapter for Native App Launching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing architecture for client computing devices accessing workspace resources using connection leases is not portable to all browsers, such as Safari, due to limitations in native messaging host capabilities and sandboxing restrictions, which hinder asynchronous messaging and resource launching.

Innovation Solution

The implementation of native messaging host capabilities within the client computing device allows external communication with native apps, using a processor to operate a browser extension that appends a store ID to launch messages, assigning a native messaging host process, and using an adapter to manage message routing and lifecycle monitoring, enabling resource launching across multiple stores without requiring modifications to the browser.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If browser extensions use native messaging host capabilities to communicate with native apps, then resource launching capability is improved, but browser compatibility and security sandboxing are worsened

Engineering Contradiction:
Improveresource launching capabilityVSAvoidbrowser compatibility issues
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent introduces an adapter as an intermediary component that bridges the browser extension and the native messaging host process. The adapter receives launch messages from the browser extension, routes them through the native messaging host process, and forwards them to the native app. This intermediary layer enables resource launching in browsers like Safari that would otherwise be incompatible with direct native messaging host usage, thus improving browser compatibility while maintaining the desired functionality.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If browser extensions directly communicate with native apps, then communication efficiency is improved, but security and stability are worsened

Engineering Contradiction:
Improvecommunication efficiencyVSAvoidsecurity and stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The native messaging host process serves as a secure intermediary between the browser extension and the native app. Instead of allowing direct communication that could compromise security, the message routing through the native messaging host process enables authentication, validation, and controlled interaction. This maintains communication efficiency while significantly improving security and stability by preventing unauthorized or malformed communications.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The communication architecture is segmented into distinct components: the browser extension, the adapter, the native messaging host process, and the native app. Each component has a specific responsibility and operates within its own security context. This segmentation isolates potential security issues to specific components, allowing the system to maintain overall stability even if one component encounters problems, thus improving reliability while preserving communication efficiency.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If multiple stores are supported with separate native messaging host processes, then resource access versatility is improved, but system complexity is worsened

Engineering Contradiction:
Improvemulti-store resource accessVSAvoidsystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The adapter is designed as a universal component that can handle messages for multiple stores through a single interface. Rather than requiring separate communication pathways for each store, the adapter receives messages from the browser extension, determines the target store, and routes them to the appropriate native messaging host process. This multi-functional design reduces system complexity while maintaining the ability to access resources across multiple stores.

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

Solution Approach 2:

Multiple store management functionalities are merged into a single adapter component. The adapter consolidates message routing, process management, and store identification logic into one unified element. This merging approach simplifies the overall system architecture by eliminating the need for separate message handling mechanisms for each store, thus reducing complexity while preserving multi-store access versatility.

Inventive Principle:
Principle #5Merging (Combining)

4Reliability

If sandboxing is enforced for browser extensions, then security is improved, but communication capability with native apps is worsened

Engineering Contradiction:
ImprovesecurityVSAvoidcommunication capability
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The adapter acts as a trusted intermediary that operates within the sandboxed environment of the browser extension while having the capability to communicate with external native messaging host processes. The adapter receives messages from the sandboxed extension, validates them, and forwards them to the native messaging host process which then communicates with the native app. This intermediary approach maintains the security benefits of sandboxing while restoring full communication capability by using the adapter as a secure bridge between the restricted and unrestricted environments.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20240103990A1Computing device with bridge to native app for security and resiliency
Publication Date: 2024.03.28 CITRIX SYSTEMS INC
  • US20240103990A1 patent drawing
  • US20240103990A1 patent drawing
  • US20240103990A1 patent drawing

AI summary

A client computing device includes a display and a processor coupled to the display. The processor operates a browser to access a store providing resources that are available. The available resources are displayed within a web page on a display. A launch message is generated in response to one of the resources being selected. An extension cooperating with the browser is operated to append a store ID identifying the store to the launch message. An adapter is operated to receive from the extension the launch message with the store ID, and assign a native messaging host process to the store. The native messaging host process is external the extension and supports communications with a native app on the client computing device. The native app is used to initiate launch of the selected resource.