[Updates](https://cdpfleet.com/docs/updates) / Opera

# Opera 138: Chromium 154 underneath, two new web APIs

Stable Opera on the fleet is now 138.0.6044.24, on Chromium 154. Iterator.includes and FontFace.width arrive, requestStorageAccessFor goes; TLS unchanged.

[Opera](https://cdpfleet.com/docs/browsers/opera) stable · 137.0.6036.63 → 138.0.6044.24 · 2026-10-23

Opera released 138 to stable on 2026-10-20, and new `opera` sessions on the fleet now run 138.0.6044.24 instead of 137.0.6036.63. Opera 138 moves its Chromium base from 153.0.8010.55 to 154.0.8037.99, so web platform changes follow Chromium 154.

## New

-   **Chromium 154.0.8037.99** (Opera release notes, "updated Chromium to version 154.0.8037.99").
-   **New web APIs** that pages can feature-test: `Iterator.prototype.includes` and `FontFace.width`.
-   Opera's own changes: a refreshed "Make Opera Yours" widget on the Start Page, and crash fixes in tabs, translate, autofill, data import and the AI panel (Opera release notes).

## Removed or changed

-   **`document.requestStorageAccessFor` is gone** (deprecated in Chromium 153): our probe found it on 137 and not on 138.

## What sites see / detection

-   **User agent and client hints:** `Chrome/154.0.0.0 … OPR/138.0.0.0` in the user agent, and the `Sec-CH-UA` brands change from `Opera 137, Not_A Brand 8, Chromium 153` to `Chromium 154, Opera 138, Not A(Brand 99`. The placeholder brand and the order change with each Chromium major.
-   **TLS and HTTP/2 unchanged:** the JA4 hash, the full TLS fingerprint hash and the HTTP/2 fingerprint are identical to 137.
-   **Bot checks unchanged:** bot.sannysoft.com flagged one check (WebGL Renderer) before and after.

## For scraping

-   Nothing to change in your code: launch options, the Playwright 1.60 client and `wsUrl` are the same, and every Playwright feature we test still works.
-   If your code calls `document.requestStorageAccessFor`, guard it with a feature test.

## Measured on the fleet

The same probe ran against 137.0.6036.63 and 138.0.6044.24 on the fleet, each when it went live: identity, TLS and HTTP/2 fingerprint, web platform features, Playwright features and bot checks. Host-dependent values (cores, memory, timings) are left out.

### What the site sees: identity

|  | Before | After |
| --- | --- | --- |
| User agent | Mozilla/5.0 (X11; Linux x86\_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36 OPR/137.0.0.0 | Mozilla/5.0 (X11; Linux x86\_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36 OPR/138.0.0.0 |
| Client hint brands | Opera 137, Not\_A Brand 8, Chromium 153 | Chromium 154, Opera 138, Not A(Brand 99 |
| Client hint full versions | Opera 137.0.6036.63, Not\_A Brand 8.0.0.0, Chromium 153.0.8010.55 | Chromium 154.0.8037.99, Opera 138.0.6044.24, Not A(Brand 99.0.0.0 |

### Web platform features added

-   `Iterator.prototype.includes` (new in Chrome 154)
-   `FontFace.width` (new in Chrome 154)

### Web platform features removed

-   `document.requestStorageAccessFor` (deprecated in 153)

Raw diff

```
{
  "engine": "opera",
  "label": "stable",
  "from": "137.0.6036.63",
  "to": "138.0.6044.24",
  "browser_version": {
    "before": "153.0.8010.55",
    "after": "154.0.8037.99"
  },
  "changes": {
    "identity": [
      {
        "field": "user_agent",
        "before": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36 OPR/137.0.0.0",
        "after": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36 OPR/138.0.0.0"
      },
      {
        "field": "client_hint_brands",
        "before": "Opera 137, Not_A Brand 8, Chromium 153",
        "after": "Chromium 154, Opera 138, Not A(Brand 99"
      },
      {
        "field": "client_hint_full_versions",
        "before": "Opera 137.0.6036.63, Not_A Brand 8.0.0.0, Chromium 153.0.8010.55",
        "after": "Chromium 154.0.8037.99, Opera 138.0.6044.24, Not A(Brand 99.0.0.0"
      }
    ],
    "network": [],
    "features": {
      "added": [
        {
          "key": "iterator_includes",
          "label": "`Iterator.prototype.includes` (new in Chrome 154)"
        },
        {
          "key": "fontface_width",
          "label": "`FontFace.width` (new in Chrome 154)"
        }
      ],
      "removed": [
        {
          "key": "request_storage_access_for",
          "label": "`document.requestStorageAccessFor` (deprecated in 153)"
        }
      ]
    },
    "playwright": {
      "broke": [],
      "fixed": []
    },
    "fingerprint": [],
    "bot_checks": {
      "newly_failed": [],
      "newly_passed": [],
      "failed_before": 1,
      "failed_after": 1
    },
    "plain_http": [],
    "launch": {
      "before_ms": 601,
      "after_ms": 1147
    }
  },
  "host_dependent_ignored": [
    "hardware_concurrency",
    "device_memory",
    "launch/connect/page timings"
  ]
}
```

### Sources

-   [Opera 138 Stable (Opera Desktop blog, 2026-10-20)](https://blogs.opera.com/desktop/2026/10/opera-138-stable/)
-   [Changelog for 138 (Opera Desktop)](https://blogs.opera.com/desktop/changelog-for-138/)

---
Source: https://cdpfleet.com/docs/updates/opera-138 · Markdown: https://cdpfleet.com/docs/updates/opera-138.md · All docs for AI tools: https://cdpfleet.com/llms.txt
