# Running a Web Page in Chrome inside io.Connect Desktop

**URL:** <https://community.interop.io/t/running-a-web-page-in-chrome-inside-io-connect-desktop/163>\
**Category:** io.Connect Desktop\
**Tags:** Knowledge-base, tech-blog\
**Created:** [October 6, 2025, 9:00pm UTC](https://community.interop.io/t/running-a-web-page-in-chrome-inside-io-connect-desktop/163 "2025-10-06T21:00:00Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![iskren.io.sfa](https://yyz2.discourse-cdn.com/flex028/user_avatar/community.interop.io/iskren.io.sfa/32/45_2.png) [@iskren.io.sfa](https://community.interop.io/u/iskren.io.sfa)\
**Post date:** [October 6, 2025, 9:00pm UTC](https://community.interop.io/t/running-a-web-page-in-chrome-inside-io-connect-desktop/163/1 "2025-10-06T21:00:00Z")

</div>

# Running a Web Page in Chrome inside io.CD

This guide shows two common approaches for running a web page in Chrome inside io.Connect Desktop. Each approach is provided as a ready-to-use example JSON snippet you can adapt for your environment.

The two approaches covered here are:

- Native Chrome (exe): launches the system Chrome executable and opens the target URL via Chrome CLI parameters.
- Embedded io.CD HTML window (window, mode: html): hosts the page inside an io.CD workspace window and provides tighter workspace integration.

## Quick contract

- Inputs: an app config JSON object for io.Connect Desktop.
- Outputs: a running app instance (native Chrome process or io.Connect Desktop window) that loads the target web page.  
– Success criteria: page loads and the io.Connect Desktop API injection succeeds when using the embedded io.Connect DesktopHTML mode.

## When to pick which approach

- Use the native Chrome (`type: "exe"`) when you need to wrap an external `@interop/browser-platform` web application and run it within an io.Connect Desktop workspace.
- Use the io.Connect Desktop internal HTML window (`type: "window"`, `mode: "html"`) when you want the page embedded in the io.Connect Desktop workspace with workspace behaviors (tabbing, snapping, loader, devTools integration, etc.).

## Key differences (summary)

### Type

- exe (native Chrome): `"type": "exe"` — uses `details.command` and `details.parameters` to launch Chrome.
- window (io.CD HTML): `"type": "window"` — uses `details.mode: "html"` and `details.url`.

### Launch path / command

- exe: provide the path to the system Chrome binary and CLI parameters (e.g. `chrome.exe` + `--app=`).
- window: provide the `url` to load - no external Chrome command required.

## Example configs

Below are compact example JSON objects you can adapt. They use placeholders for environment-specific values (replace with your actual paths and URLs).

Example A: Native Chrome (exe) approach

```json
{
  "type": "exe",
  "name": "Example App - Chrome (native)",
  "autoStart": false,
  "runPriority": 930,
  "details": {
    "path": "C:\\Program Files\\Google\\Chrome\\Application\\",
    "command": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
    "parameters": "-ignore-gpu-blocklist -enable-gpu-rasterization --app=<REPLACE_WITH_YOUR_APP_URL>",
    "useShellExecute": false,
    "windowStyle": "Normal"
  },
  "customProperties": { "includeInWorkspaces": true }
}

```

Example B: Embedded io.Connect Desktop window (html) approach

```json
{
  "type": "window",
  "name": "Example App - io.CD Workspace",
  "autoStart": false,
  "details": {
    "mode": "html",
    "url": "<REPLACE_WITH_YOUR_APP_URL>",
    "width": 1024,
    "height": 575
  },
  "customProperties": { "includeInWorkspaces": true }
}

```

Note: merge these objects into your `apps` array and update icons, captions, and other metadata as required.

Note about `useShellExecute`:

- `useShellExecute` tells io.CD to launch the native app via the OS shell (for example, when starting a BAT/CMD script). It’s optional for normal native apps; only set it to `true` when a shell is required. If `useShellExecute` is `true`, io.CD can’t track the process directly and you’ll need to set `trackingType` to `AGM` if you still need platform events (shutdown, lifecycle). For most Chrome launches (direct executable), you can omit `useShellExecute`.

## Important tips & gotchas

### Cross-origin restrictions

If the target site sets strict Content-Security-Policy or X-Frame-Options headers, embedding in `mode: "html"` may be blocked. Use the native Chrome approach if embedding fails.

## References

- io.Connect Desktop Application Configuration (official): [io.CD Application Configuration](https://docs.interop.io/desktop/developers/configuration/application/index.html)
