This commit is contained in:
@@ -6,7 +6,7 @@ import { SaveRecordingButton } from '../../browser/SaveRecordingButton.js';
|
||||
|
||||
interface TaskSessionInfo {
|
||||
available: boolean;
|
||||
reason?: 'novnc_not_installed';
|
||||
reason?: 'novnc_not_installed' | 'headless_mode' | 'display_unavailable' | 'no_session';
|
||||
sessionId?: string;
|
||||
novncPath?: string;
|
||||
display?: string;
|
||||
@@ -93,12 +93,31 @@ export function BrowserTab({ taskId }: { taskId: number }) {
|
||||
</div>
|
||||
);
|
||||
}
|
||||
if (data?.reason === 'headless_mode') {
|
||||
return (
|
||||
<div className="bg-canvas border border-amber-300 rounded-md p-6 text-sm text-slate-700">
|
||||
<p className="font-medium text-amber-800 dark:text-amber-300 mb-2">headless モードでは Browser のライブ表示は使えません</p>
|
||||
<p className="text-xs leading-relaxed">
|
||||
Settings → Tools → Browser Runtime で Browser Session Mode を novnc に(Xvfb/x11vnc/websockify 必須)。
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
if (data?.reason === 'display_unavailable') {
|
||||
return (
|
||||
<div className="bg-canvas border border-amber-300 rounded-md p-6 text-sm text-slate-700">
|
||||
<p className="font-medium text-amber-800 dark:text-amber-300 mb-2">ライブ表示スタックがホストに未導入です</p>
|
||||
<p className="text-xs leading-relaxed">
|
||||
管理者に Xvfb/x11vnc/websockify の導入を依頼してください。
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
return (
|
||||
<div className="bg-canvas border border-hairline rounded-md p-6 text-center text-sm text-slate-600">
|
||||
<p className="font-medium text-slate-800 mb-1">このタスクのブラウザセッションは現在アクティブではありません</p>
|
||||
<p className="font-medium text-slate-800 mb-1">まだセッションがありません</p>
|
||||
<p className="text-xs leading-relaxed">
|
||||
BrowseWeb / InteractiveBrowse を含むジョブが実行中のときに、このタブから
|
||||
noVNC でブラウザを操作できます (5 秒ポーリング中)。
|
||||
このタスクで BrowseWeb を実行するとここに表示されます (5 秒ポーリング中)。
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -49,17 +49,18 @@ export function BrowserSettingsForm({ config, onChange }: SectionFormProps) {
|
||||
<h3 className="text-sm font-medium text-slate-600 mt-4 pt-3 border-t border-slate-200">Sessions (CDP)</h3>
|
||||
|
||||
<div>
|
||||
<FieldLabel>CAPTCHA Solve Mode</FieldLabel>
|
||||
<select value={browser.captchaSolve ?? 'skip'}
|
||||
onChange={e => onChange('browser.captchaSolve', e.target.value)}
|
||||
<FieldLabel>Browser Session Mode</FieldLabel>
|
||||
<select value={browser.displayMode ?? 'headless'}
|
||||
onChange={e => onChange('browser.displayMode', e.target.value)}
|
||||
className="w-full h-9 px-2 text-[13px] border border-hairline rounded-md">
|
||||
<option value="skip">skip (headless fallback, default)</option>
|
||||
<option value="novnc">novnc (shared CAPTCHA Pool, solve in CAPTCHA tab)</option>
|
||||
<option value="headless">Headless(ライブ表示なし・既定)</option>
|
||||
<option value="novnc">noVNC(Browser/CAPTCHA をライブ表示)</option>
|
||||
</select>
|
||||
<HelpText>
|
||||
<code>novnc</code> にすると WebSearch 等が CAPTCHA を踏んだとき共有 noVNC セッション(CAPTCHA Pool)を立て、
|
||||
<strong>CAPTCHA タブで手動解決</strong>できる。ホストに <code>Xvfb</code> / <code>x11vnc</code> / <code>websockify</code> が必要。
|
||||
未インストールなら自動的に headless にフォールバックする。<code>skip</code>(既定)では CAPTCHA は手動解決されない。
|
||||
ライブ表示機能のマスタースイッチ。<code>novnc</code> にすると
|
||||
<strong>Browser タブのライブ表示・InteractiveBrowse・CAPTCHA 解決</strong>が有効になる。
|
||||
ホストに <code>Xvfb</code> / <code>x11vnc</code> / <code>websockify</code> が必要(未導入なら自動的に headless にフォールバック)。
|
||||
<code>headless</code>(既定)ではそれらの<strong>ライブ表示機能は使えない</strong>。
|
||||
</HelpText>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import { PipButton } from '../components/browser/PipButton.js';
|
||||
|
||||
interface CaptchaPoolInfo {
|
||||
available: boolean;
|
||||
reason?: 'headless_mode' | 'display_unavailable' | 'no_session';
|
||||
sessionId?: string;
|
||||
novncPath?: string;
|
||||
display?: string;
|
||||
@@ -144,10 +145,21 @@ export function AdminCaptchaPage({ isAdmin }: { isAdmin: boolean }) {
|
||||
<div className="h-full bg-canvas border border-hairline rounded-md flex items-center justify-center p-8">
|
||||
<div className="max-w-md text-center text-sm text-slate-600">
|
||||
<p className="font-medium text-slate-800 mb-1">Pool は現在起動していません</p>
|
||||
<p>
|
||||
WebSearch が CAPTCHA を踏むか、admin が手動でセッションを起動した時点で
|
||||
noVNC が表示されます (5 秒ポーリング中)。
|
||||
</p>
|
||||
{data?.reason === 'headless_mode' ? (
|
||||
<p>
|
||||
headless モードでは CAPTCHA Pool は使えません。Settings → Tools → Browser Runtime で
|
||||
<strong> Browser Session Mode を novnc</strong> に切り替えてください(ホストに Xvfb/x11vnc/websockify が必要)。
|
||||
</p>
|
||||
) : data?.reason === 'display_unavailable' ? (
|
||||
<p>
|
||||
ライブ表示スタック(Xvfb/x11vnc/websockify)がホストに導入されていません。管理者に導入を依頼してください。
|
||||
</p>
|
||||
) : (
|
||||
<p>
|
||||
WebSearch が CAPTCHA を踏むか、admin が手動でセッションを起動した時点で
|
||||
noVNC が表示されます (5 秒ポーリング中)。
|
||||
</p>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user