---
title: "QuartzUINavigationPolicy: declaration reference"
description: "Quartz UI 0.57.0-dev: QuartzUINavigationPolicy: declaration reference. Source-reviewed guidance, usage and limitations."
status: approved
visibility: public
sourceRevision: fe5b709ec900e282b50e58b819a25041945005f9
reviewedAt: 2026-09-24
---

# QuartzUINavigationPolicy: declaration reference

> **0.57.0-dev · beta source documentation.** Native, Blueprint, Editor and rendering examples are source-reviewed, not executed in Unreal during this scan. See [validation and limits](https://betterbuilt.games/docs/quartz-ui/evidence).

Pinned source (source: `Source/QuartzUIRuntime/Public/QuartzUINavigationPolicy.h`) · [integration recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuinavigationpolicy) · [practical guide](https://betterbuilt.games/docs/quartz-ui/tools-shipping)

## EQuartzUITopLevelNavigationDecision

**Internal type.** Top Level Navigation Decision: a declared type in exact-origin main-frame/subframe navigation decisions; use its exact fields/operations below.

**Prerequisites / integration:** Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the [QuartzUINavigationPolicy recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuinavigationpolicy) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Use registered app URLs; inspect OnNavigationBlocked. Pure decisions reused by active browser session.

**Avoid:** Allowing popups or foreign origins as a workaround. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUINavigationPolicy.h#L5`)

## FQuartzUINavigationPolicy

**Internal type.** Pure same-origin policy for documents loaded into one QuartzUI browser view.

**Prerequisites / integration:** Installed source plugin; Editor tools additionally require a compiled compatible host Editor target. Use the [QuartzUINavigationPolicy recipe](https://betterbuilt.games/docs/quartz-ui/inventory#quartzuinavigationpolicy) in the host module `QuartzUIRuntime`.

**Minimal example / lifecycle:** Use registered app URLs; inspect OnNavigationBlocked. Pure decisions reused by active browser session.

**Avoid:** Allowing popups or foreign origins as a workaround. This named helper is runtime-owned; inspect/use it through the owner above rather than constructing it in gameplay.

Exact source line (source: `Source/QuartzUIRuntime/Public/QuartzUINavigationPolicy.h#L14`)

## Complete header

Source snapshot, not an additional example. Unreal annotations distinguish exposed Blueprint nodes from native-only/private methods.

```cpp
#pragma once

#include "CoreMinimal.h"

enum class EQuartzUITopLevelNavigationDecision : uint8
{
	Block,
	AllowPackaged,
	AllowDevelopment,
	AllowOpaqueDocument
};

/** Pure same-origin policy for documents loaded into one QuartzUI browser view. */
class QUARTZUIRUNTIME_API FQuartzUINavigationPolicy final
{
public:
	static constexpr int32 MaxUrlLength = 2048;

	/** Accepts only https://<valid-app-id>.quartzui.test with no path or authority tricks. */
	static bool IsValidPackagedOrigin(const FString& Origin);

	/** The development origin must already be active in the Editor-owned registry. */
	static EQuartzUITopLevelNavigationDecision EvaluateTopLevelUrl(
		const FString& Url,
		const FString& AllowedPackagedOrigin,
		const FString& ActiveDevelopmentOrigin = FString());
};
```

Canonical HTML: https://betterbuilt.games/docs/quartz-ui/reference-quartzuinavigationpolicy
