<!--
{
  "documentType" : "article",
  "framework" : "BrowserEngineKit",
  "identifier" : "/documentation/BrowserEngineKit/view-coordination",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "View and input coordination"
}
-->

# View and input coordination

Display content in the browser’s UI that an extension renders.

## Overview

Manage the appearance of visual content across your browser app’s main process and its extensions. Your app controls the visibility of views and layers, ensures responsive page rendering, and dynamically adjusts to changes in input device capabilities, which can affect how web content displays.

## Adjust user interface based on hover state

Add support for multiple input methods that a person might use with your browser app. For example, someone might connect or disconnect a mouse or trackpad: web pages use CSS media queries like `@media (hover: hover)` to adapt their interface based on hover support of the primary input device.

To support hover state changes, use the <doc://com.apple.documentation/documentation/GameController/GCMouse> class of the <doc://com.apple.documentation/documentation/GameController> framework. Listen for <doc://com.apple.documentation/documentation/GameController/GCMouseDidConnectNotification> and <doc://com.apple.documentation/documentation/GameController/GCMouseDidDisconnectNotification> to detect when a mouse or trackpad connects or disconnects. Then, implement an internal hover state in your browser app that updates when these notifications occur, and re-evaluate CSS `@media (hover)` queries in the rendered content.

## Topics

### Layer hosting

[Hosting browser view layers in the rendering extension](/documentation/BrowserEngineKit/hosting-browser-view-layers-in-the-rendering-extension)

Coordinate view-hierarchy and layer-hierarchy changes between processes.

[`class LayerHierarchy`](/documentation/BrowserEngineKit/LayerHierarchy)

An object that holds a reference to layers rendered in another process’s view.

[`class LayerHierarchyHostingView`](/documentation/BrowserEngineKit/LayerHierarchyHostingView)

A view that hosts a layer hierarchy you manage in another process.

[`class LayerHierarchyHostingTransactionCoordinator`](/documentation/BrowserEngineKit/LayerHierarchyHostingTransactionCoordinator)

A class that synchronizes updates to views and layers in different processes.

[`class LayerHierarchyHandle`](/documentation/BrowserEngineKit/LayerHierarchyHandle)

A reference to a layer hierarchy that your app shares between processes.

### Visibility propagation

[Propagating view visibility information to extension processes](/documentation/BrowserEngineKit/propagating-view-visibility-information-to-browser-extensions)

Register the extensions that contribute to preparing your browser app’s UI.

[`func createVisibilityPropagationInteraction() -> any UIInteraction`](/documentation/BrowserEngineKit/RenderingProcess/createVisibilityPropagationInteraction())

Returns an interaction that associates a view with the rendering process.

[`func createVisibilityPropagationInteraction() -> any UIInteraction`](/documentation/BrowserEngineKit/WebContentProcess/createVisibilityPropagationInteraction())

Returns an interaction that associates a view with the web content process.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)