Cefrium OSR Mouse Test Page

Click the four corner dots to turn them green; drag the blue shape; then test the form and links.

Drag me
Move mouse here — this box should turn green

Status: waiting for input

CEF Dark Mode Test
Reading CEF color scheme...
Form Controls
Input inside iframe / Frame 内输入框

点击下面的输入框并输入文字。日志会显示 frame 内输入框的焦点,以及宿主页面当前焦点是否为 iframe。

Frame focus log: waiting for input
Keyboard Event Test / 键盘事件测试

点击页面后使用导航栏键盘按钮唤起键盘,再输入、删除或按回车。此处记录捕获到的 `keydown`、`keypress`、`beforeinput`、`input` 和 `keyup` 事件。

Keyboard event log:
External Links Bing  Baidu  Google
Alert / Dialog Test

Click a button to trigger a JS dialog (alert / confirm / prompt):

   

Result: -

Website Permission Test / 网站权限测试

每个按钮都实际调用浏览器 API。首次请求时检查宿主是否显示网站授权弹窗; 允许后再检查 Android 系统权限弹窗。随后到「菜单 → 设置 → 网站权限管理」, 确认本站点及相应权限出现,并尝试切换「每次询问 / 允许 / 禁止」后再次测试。

页面上下文与 API 能力诊断(权限弹窗没出现时先检查这里):

Checking page security context and permission API availability...

Location / 定位:请求一次当前位置;Cefrium Android 定位需要同时授予系统精确与粗略定位权限。

Camera & microphone / 相机与麦克风:分别请求媒体流,成功后立即关闭轨道。

Notifications / 通知:请求网页通知权限。

Clipboard / 剪贴板:分别测试写入和读取;写入通常不弹权限框,读取才可能触发站点权限。 `file://` 页面若不提供 Clipboard API,会在调用前失败且不会有权限弹窗。

NFC:开始读取附近 NFC 标签,10 秒后自动停止。需要 NFC 硬件、已启用 NFC, 且页面运行环境支持 Web NFC。

Permission test log:
Browsing Data Cleanup Test / 浏览数据清理测试

测试设置和读取 Cookie,以及读取 HTTP 缓存。

Browsing data test log:
Audio / Video Playback Test

网页播放声音或视频本身不属于网站权限请求,不会触发相机 / 麦克风授权,也不应出现在网站权限列表里。 请主动点击播放;自动播放可能被 Chromium 策略拦截。测试媒体地址需要网络可用。

Audio playback / 音频播放

Video playback / 视频播放

Playback status: waiting for input

Media playback log:
Desktop Environment Diagnostics
Reading browser environment...
File Upload

Pick a file to test upload:

File preview:

File Download(可控下载 / CefriumDownloadHandler)

每次点击都应弹出宿主的下载确认框,确认前不会写入任何字节:

Download test file Android_8.8.90.7975_537119543_32.apk

说明:data:/blob: 下载曾经因 Chromium 的下载请求限流,同页只有第一个能自动放行; Cefrium 0.9.0 起全部交给嵌入方处理,所以「连续下载 3 个」应当**弹出 3 次**确认框。

URL Scheme Test / URL Scheme 测试

宿主内置处理(tel / sms / mailto):点击后 OSR 会拦截该导航、弹出 「拨打电话 / 发送短信 / 发送邮件」面板,确认后交给系统应用。原生在 `RequestInterceptor` 里否决了这次导航,所以 OSR 不会跳走、也不会出现 `ERR_UNKNOWN_URL_SCHEME`。

tel:10086  tel:+8613800138000  tel:10086;ext=123  sms:10086  sms:10086?body=…  smsto:10086:10010  mailto:test@example.com  mailto:a,b?subject&body 

第三方 App 自定义 scheme(`weixin://` / `alipays://` / `tbopen://` / `market://` / `geo:` / `intent://`):原生同样否决 CEF 的导航,改用 `Intent(ACTION_VIEW, Uri.parse(url))` + `FLAG_ACTIVITY_NEW_TASK`,先 `resolveActivity` 判断设备上有没有对应 App,有才 `startActivity`; **未安装对应 App 时弹出提示「打开 weixin://xxx 失败,未安装对应的 App」** (不崩溃、不出现 `ERR_UNKNOWN_URL_SCHEME`)。 ⚠️ Android 11+ 包可见性下,未在 `` 声明的自定义 scheme `resolveActivity` 可能查不到,此时会照样尝试拉起、由系统最终决定。

weixin://  alipays://  tbopen://  mqq://(QQ)  sinaweibo://(微博)  zhihu://(知乎)  market://  geo:39.91,116.40  intent://  未安装的 App(验证失败提示)

Same schemes triggered from script:

URL scheme test log:
New Tab Test / 新标签打开测试

这些链接/按钮请求在新标签打开(`target="_blank"` / `window.open`)。 宿主应**新开一个标签**并加载目标地址,当前页保持不变。

target="_blank"(example.com)  target="_blank"(example.org)

New tab test log:
Fullscreen Test / 全屏测试

Tap “Enter fullscreen” to expand the test panel, then tap “Exit fullscreen” or use the app’s back action. The log reports API support, fullscreen changes, and errors.

Fullscreen test area

This panel should fill the available browser viewport while fullscreen is active.

Fullscreen test log:

Vertical Scroll Test Area

Wheel: no wheel event yet (scroll the mouse wheel inside this block).

This is an independent scrollable block. Swipe up and down inside this area.

Scroll item 01: verify scroll events reach the page.

Scroll item 02: verify the area keeps its own scroll position.

Scroll item 03: extra content is added on purpose here.

Scroll item 04: keep scrolling down.

Scroll item 05: keep scrolling down.

Scroll item 06: keep scrolling down.

Scroll item 07: keep scrolling down.

Scroll item 08: getting close to the bottom of the block.

Scroll item 09: keep scrolling to see the last line.

Scroll item 10: scroll test complete.

This marker sits below the scroll block, half a screen height away