{"checked_on":"2026-10-17","timezone":"Asia/Shanghai","chromium_tag":"155.0.8059.85","evidence_scope":"分类样例采自上游 InputType 测试预期，未执行 Chromium C++ 测试；产品功能按官方帮助与源码边界解释。","version_history":{"url":"https://versionhistory.googleapis.com/v1/chrome/platforms/win/channels/stable/versions/all/releases?filter=endtime%3Dnone&order_by=version%20desc","sampled_release":{"name":"chrome/platforms/win/channels/stable/versions/155.0.8059.85/releases/1792096715","serving":{"startTime":"2026-10-15T20:38:35.578468Z"},"fraction":1,"version":"155.0.8059.85","fractionGroup":"155","pinnable":true,"rolloutData":[]}},"classification_source":"https://github.com/chromium/chromium/blob/155.0.8059.85/components/omnibox/browser/autocomplete_input_unittest.cc","samples":[{"input":"foo.com","expected_type":"URL"},{"input":"foo bar","expected_type":"QUERY"},{"input":"foo","expected_type":"UNKNOWN"},{"input":"foo/","expected_type":"URL"},{"input":"foo/bar","expected_type":"UNKNOWN"},{"input":"foo/bar/","expected_type":"URL"},{"input":"localhost","expected_type":"URL"},{"input":"localhost:8080","expected_type":"URL"},{"input":"user@foo.com","expected_type":"UNKNOWN"},{"input":"1.2","expected_type":"QUERY"},{"input":"1.2/","expected_type":"URL"},{"input":"127.0.1","expected_type":"QUERY"},{"input":"127.0.0.1","expected_type":"URL"},{"input":"[2001:dB8::1]","expected_type":"URL"},{"input":"?http://foo.com/bar","expected_type":"QUERY"}],"url_constructor_verification":{"runtime":"v26.12.0","absolute":"https://foo.com/","with_base":"https://example.org/foo.com","without_base":"TypeError"},"experimental_boundary":{"source":"https://github.com/chromium/chromium/blob/155.0.8059.85/extensions/common/api/_permission_features.json","permission":"omnibox.directInput","channel":"dev","feature_flag":"ExperimentalOmniboxLabs","default_enabled":false},"historical_context":{"chrome_first_public_beta":"2008-09-02","chrome_leaves_beta":"2008-12-11","release_sources":["https://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html","https://googleblog.blogspot.com/2008/12/google-chrome-beta.html"],"ie7_release":"2006-10-18","ie8_release":"2009-03-19","comparison_scope":"Chrome 首发宣传素材与同期 IE7 界面布局；未安装或运行历史浏览器，不将地址栏搜索的起源归于 Chrome。","screenshots":[{"local_file":"images/ie7-vista-interface.png","source":"https://download.microsoft.com/download/c/7/a/c7a22018-bb70-49d5-bd64-af3749e82281/windowsguidevista.pdf","page":6,"figure":5,"credit":"Microsoft","extraction":"直接提取 PDF 内嵌原始界面图片"},{"local_file":"images/chrome-2008-launch-overview.jpg","source":"https://blogoscoped.com/files/google-chrome-screenshot.jpg","source_page":"https://blogoscoped.com/archive/2008-09-02-n72.html","credit":"Google，Google Blogoscoped 于首发当天留存","scope":"首发宣传界面，图片未标注具体构建号"},{"local_file":"images/chrome-2008-launch-omnibox.jpg","source":"https://blogoscoped.com/files/google-chrome-screens/1.jpg","source_page":"https://blogoscoped.com/archive/2008-09-02-n72.html","credit":"Google，Google Blogoscoped 于首发当天留存","scope":"首发宣传素材中的地址栏特写"}],"pre_chrome_address_search":{"source":"https://download.microsoft.com/download/C/A/B/CAB7BC5C-D094-4B31-97A8-980961B5BD5A/IE6_en-us.pdf","page":258,"setting":"When searching from the address bar"}},"classification_visuals":[{"file":"images/input-classification-hosts.svg","title":"主机名、空格与端口怎样影响分类","cases":[{"input":"foo.com","type":"URL","highlighted_parts":[".com"],"condition":"已知后缀"},{"input":"foo bar","type":"QUERY","highlighted_parts":[" "],"condition":"主机中有空格"},{"input":"foo","type":"UNKNOWN","highlighted_parts":["foo"],"condition":"单个词"},{"input":"foo:81","type":"URL","highlighted_parts":[":81"],"condition":"合法端口"},{"input":"localhost","type":"URL","highlighted_parts":["localhost"],"condition":"特殊主机名"},{"input":"localhost:8080","type":"URL","highlighted_parts":["localhost"],"condition":"主机名已命中"}]},{"file":"images/input-classification-navigation.svg","title":"斜杠的位置和输入前缀会改变判断","cases":[{"input":"foo/","type":"URL","highlighted_parts":["/"],"condition":"末尾斜杠"},{"input":"foo/bar","type":"UNKNOWN","highlighted_parts":["/bar"],"condition":"只有路径线索"},{"input":"foo/bar/","type":"URL","highlighted_parts":["/"],"condition":"末尾斜杠"},{"input":"user@foo.com","type":"UNKNOWN","highlighted_parts":["user@"],"condition":"邮箱形式歧义"},{"input":"?http://foo.com/bar","type":"QUERY","highlighted_parts":["?"],"condition":"前导问号"}]},{"file":"images/input-classification-ip.svg","title":"数字输入还要看分段和导航线索","cases":[{"input":"1.2","type":"QUERY","highlighted_parts":["."],"condition":"更像小数"},{"input":"1.2/","type":"URL","highlighted_parts":["/"],"condition":"末尾斜杠"},{"input":"127.0.1","type":"QUERY","highlighted_parts":["127","0","1"],"condition":"三段 IPv4 形式"},{"input":"127.0.0.1","type":"URL","highlighted_parts":["127","0","0","1"],"condition":"四段 IPv4 形式"},{"input":"[2001:dB8::1]","type":"URL","highlighted_parts":["[",":","::","]"],"condition":"合法 IPv6"}]},{"file":"images/input-classification-javascript.svg","title":"javascript: 用特征标点识别代码形态","cases":[{"input":"javascript:foo","type":"UNKNOWN","highlighted_parts":["foo"],"condition":"无特征标点"},{"input":"javascript:foo;","type":"URL","highlighted_parts":[";"],"condition":"出现分号"},{"input":"javascript:foo.getter","type":"URL","highlighted_parts":["."],"condition":"出现点号"}]}],"browser_observations":[{"file":"images/omnibox-debug-github-com.png","received_on":"2026-10-18","source":"User-supplied desktop Chrome screenshot","page":"chrome://omnibox/","browser_version":null,"input":"github.com","observed_input_type":"url","observed_host":"github.com","all_providers_done":true,"connect_window_omnibox":false,"show_results_per_provider":true,"profile_context":"Existing browser profile with history and bookmarks","providers_visible":["HistoryURL","Search","Bookmark","HistoryQuick"],"match_types_visible":["url-what-you-typed","search-what-you-typed","search-suggest","bookmark-title","history-url"],"dimensions":[3840,2064],"sha256":"a9917b8d14e82278d2a66b6a9c8b43fd713f92482a1e002620e22d8a68a13589","scope":"Observed candidates in one browser profile; version was not captured and is not assumed to match the pinned Chromium source version."},{"file":"images/omnibox-dropdown-github-com.png","received_on":"2026-10-18","source":"User-supplied desktop Chrome screenshot","surface":"Browser address bar and autocomplete popup on a new tab","browser_version":null,"input":"github.com","navigation_committed":false,"profile_context":"Existing browser profile with history and bookmarks","visible_candidates":["GitHub - github.com","github.com - Google 搜索","github.com/trending (https //github.com/trending)","github.com codex","puppeteer/api.md at v10.0.0 · puppeteer/puppeteer","MrMEEE/bumblebee-Old-and-abbandoned commit","dev-itsheng/sheng-tool GitHub Actions run","dev-itsheng/sheng-tool GitHub Actions job"],"companion_debug_screenshot":"images/omnibox-debug-github-com.png","dimensions":[3840,2064],"sha256":"0c825881cc5578d25731cd453c305f625d5574bff90d491fff0decd15edaa394","scope":"Observed popup for the same input and browser profile as the debug screenshot; the images were captured separately."},{"file":"images/omnibox-debug-foo-bar.png","received_on":"2026-10-18","source":"User-supplied desktop Chrome screenshot","page":"chrome://omnibox/","browser_version":null,"input":"foo bar","observed_input_type":"query","observed_host":"foo bar","is_typed_host":false,"all_providers_done":true,"elapsed_time_ms":167,"connect_window_omnibox":false,"show_results_per_provider":true,"elide_cells":true,"profile_context":"Existing browser profile; screenshots supplied together with matching visible debug options","providers_visible":["Search"],"match_types_visible":["search-what-you-typed","search-suggest"],"dimensions":[3840,2064],"sha256":"b0e63d9f7eda684ab1b1df167e5fa9c4e1b602e2441058a40678f02962226019","scope":"One observed query; visible candidates do not establish all possible provider results or successful navigation."},{"file":"images/omnibox-debug-foo.png","received_on":"2026-10-18","source":"User-supplied desktop Chrome screenshot","page":"chrome://omnibox/","browser_version":null,"input":"foo","observed_input_type":"unknown","observed_host":"foo","is_typed_host":false,"all_providers_done":true,"elapsed_time_ms":158,"connect_window_omnibox":false,"show_results_per_provider":true,"elide_cells":true,"profile_context":"Existing browser profile; screenshots supplied together with matching visible debug options","providers_visible":["Search"],"match_types_visible":["search-what-you-typed","search-suggest","search-suggest-entity"],"dimensions":[3840,2064],"sha256":"0e138b76bcaaa6a46d97ed9f5ed464a66db5125ce00bbacac8fd2907643def52","scope":"One observed query; visible candidates do not establish all possible provider results or successful navigation.","entity_candidates_visible":["Footlocker","Foothill College"],"entity_destination_kind":"Google Search URL"},{"file":"images/omnibox-debug-foo-slash.png","received_on":"2026-10-18","source":"User-supplied desktop Chrome screenshot","page":"chrome://omnibox/","browser_version":null,"input":"foo/","observed_input_type":"url","observed_host":"foo","is_typed_host":false,"all_providers_done":true,"elapsed_time_ms":324,"connect_window_omnibox":false,"show_results_per_provider":true,"elide_cells":true,"profile_context":"Existing browser profile; screenshots supplied together with matching visible debug options","providers_visible":["HistoryURL","Search"],"match_types_visible":["url-what-you-typed","search-what-you-typed","search-suggest"],"dimensions":[3840,2064],"sha256":"844f4b4f713ac2577954c93bcf3c4e40c99be608fca1b7bbba470565899a7e89","scope":"One observed query; visible candidates do not establish all possible provider results or successful navigation.","navigation_candidate_url":"http://foo/"}],"javascript_heuristic_history":{"verified_on":"2026-10-18","original_issue_number":31661,"current_issue_number":41071946,"issue_url":"https://issues.chromium.org/issues/41071946","reported_on":"2010-01-06","original_description":"If you try to search for\n\nJavaScript: The Definitive Guide\n\nin the omnibox, we think you're trying to load a javascript: URL and don't\nperform a search.\n\nOne way to fix this is to make the javascript: scheme detection case sensitive.","screenshot":{"file":"images/chromium-issue-31661-javascript-book-title.png","source":"User-supplied screenshot of original Chromium issue report","dimensions":[1182,432],"sha256":"4e9ad1d0af88fdce88f5b36577c11df8fe50f9407c62b5dbb0b54ea80227a9d3"},"commits":[{"sha":"3de509f46d4132a11af22e8f44d44ac1954bdcc5","url":"https://github.com/chromium/chromium/commit/3de509f46d4132a11af22e8f44d44ac1954bdcc5","committed_at":"2019-03-14T19:35:48Z","message":"Allow searching for \"javascript:foo\" if foo is likely not code\n\nwhere \"likely not code\" = [^;=().]*\n\nBug: 31661\nChange-Id: Ib5286b844b7d88c43bb377eb172e9a109f3d35cd\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1513096\nReviewed-by: Kevin Bailey <krb@chromium.org>\nCommit-Queue: Travis Skare <skare@chromium.org>\nCr-Commit-Position: refs/heads/master@{#640876}","patches":[{"path":"components/omnibox/browser/autocomplete_input.cc","patch":"@@ -18,6 +18,7 @@\n #include \"net/base/registry_controlled_domains/registry_controlled_domain.h\"\n #include \"net/base/url_util.h\"\n #include \"third_party/metrics_proto/omnibox_event.pb.h\"\n+#include \"third_party/re2/src/re2/re2.h\"\n #include \"url/url_canon_ip.h\"\n #include \"url/url_util.h\"\n \n@@ -204,6 +205,12 @@ metrics::OmniboxInputType AutocompleteInput::Parse(\n     return metrics::OmniboxInputType::URL;\n   }\n \n+  // Treat javascript: scheme queries followed by things that are unlikely to\n+  // be code as QUERY, rather than script to execute (URL).\n+  if (RE2::FullMatch(base::UTF16ToUTF8(text), \"(?i)javascript:([^;=().]*)\")) {\n+    return metrics::OmniboxInputType::QUERY;\n+  }\n+\n   // If the user typed a scheme, and it's HTTP or HTTPS, we know how to parse it\n   // well enough that we can fall through to the heuristics below.  If it's\n   // something else, we can just determine our action based on what we do with"},{"path":"components/omnibox/browser/autocomplete_input_unittest.cc","patch":"@@ -109,8 +109,17 @@ TEST(AutocompleteInputTest, InputType) {\n     // { ASCIIToUTF16(\"mailto:abuse@foo.com\"), metrics::OmniboxInputType::URL },\n     {ASCIIToUTF16(\"view-source:http://www.foo.com/\"),\n      metrics::OmniboxInputType::URL},\n+    {ASCIIToUTF16(\"javascript\"), metrics::OmniboxInputType::UNKNOWN},\n     {ASCIIToUTF16(\"javascript:alert(\\\"Hi there\\\");\"),\n      metrics::OmniboxInputType::URL},\n+    {ASCIIToUTF16(\"javascript:alert%28\\\"Hi there\\\"%29;\"),\n+     metrics::OmniboxInputType::URL},\n+    {ASCIIToUTF16(\"javascript:foo;\"), metrics::OmniboxInputType::URL},\n+    {ASCIIToUTF16(\"javascript:\"), metrics::OmniboxInputType::QUERY},\n+    {ASCIIToUTF16(\"javascript:the cromulent parts\"),\n+     metrics::OmniboxInputType::QUERY},\n+    {ASCIIToUTF16(\"javascript:foo.getter\"), metrics::OmniboxInputType::URL},\n+    {ASCIIToUTF16(\"JavaScript:Tutorials\"), metrics::OmniboxInputType::QUERY},\n #if defined(OS_WIN)\n     {ASCIIToUTF16(\"C:\\\\Program Files\"), metrics::OmniboxInputType::URL},\n     {ASCIIToUTF16(\"\\\\\\\\Server\\\\Folder\\\\File\"), metrics::OmniboxInputType::URL},"}]},{"sha":"1ff6b06da11873a7c22fb1a9bccb1bf10e24c08b","url":"https://github.com/chromium/chromium/commit/1ff6b06da11873a7c22fb1a9bccb1bf10e24c08b","committed_at":"2019-04-02T17:41:36Z","message":"Tweaks to handling of javascript: url-or-search detection.\n\nUse UKNOWN rather than QUERY, and treat double-quotes as special.\n\nBug: 31661\nChange-Id: Ice7e4daedc62a563ac8600bf7bf285ebdbdeafa4\nReviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1545256\nCommit-Queue: Travis Skare <skare@chromium.org>\nReviewed-by: Justin Donnelly <jdonnelly@chromium.org>\nCr-Commit-Position: refs/heads/master@{#646867}","patches":[{"path":"components/omnibox/browser/autocomplete_input.cc","patch":"@@ -207,8 +207,8 @@ metrics::OmniboxInputType AutocompleteInput::Parse(\n \n   // Treat javascript: scheme queries followed by things that are unlikely to\n   // be code as QUERY, rather than script to execute (URL).\n-  if (RE2::FullMatch(base::UTF16ToUTF8(text), \"(?i)javascript:([^;=().]*)\")) {\n-    return metrics::OmniboxInputType::QUERY;\n+  if (RE2::FullMatch(base::UTF16ToUTF8(text), \"(?i)javascript:([^;=().\\\"]*)\")) {\n+    return metrics::OmniboxInputType::UNKNOWN;\n   }\n \n   // If the user typed a scheme, and it's HTTP or HTTPS, we know how to parse it"},{"path":"components/omnibox/browser/autocomplete_input_unittest.cc","patch":"@@ -114,12 +114,14 @@ TEST(AutocompleteInputTest, InputType) {\n      metrics::OmniboxInputType::URL},\n     {ASCIIToUTF16(\"javascript:alert%28\\\"Hi there\\\"%29;\"),\n      metrics::OmniboxInputType::URL},\n+    {ASCIIToUTF16(\"javascript:foo\"), metrics::OmniboxInputType::UNKNOWN},\n     {ASCIIToUTF16(\"javascript:foo;\"), metrics::OmniboxInputType::URL},\n-    {ASCIIToUTF16(\"javascript:\"), metrics::OmniboxInputType::QUERY},\n+    {ASCIIToUTF16(\"javascript:\\\"foo\\\"\"), metrics::OmniboxInputType::URL},\n+    {ASCIIToUTF16(\"javascript:\"), metrics::OmniboxInputType::UNKNOWN},\n     {ASCIIToUTF16(\"javascript:the cromulent parts\"),\n-     metrics::OmniboxInputType::QUERY},\n+     metrics::OmniboxInputType::UNKNOWN},\n     {ASCIIToUTF16(\"javascript:foo.getter\"), metrics::OmniboxInputType::URL},\n-    {ASCIIToUTF16(\"JavaScript:Tutorials\"), metrics::OmniboxInputType::QUERY},\n+    {ASCIIToUTF16(\"JavaScript:Tutorials\"), metrics::OmniboxInputType::UNKNOWN},\n #if defined(OS_WIN)\n     {ASCIIToUTF16(\"C:\\\\Program Files\"), metrics::OmniboxInputType::URL},\n     {ASCIIToUTF16(\"\\\\\\\\Server\\\\Folder\\\\File\"), metrics::OmniboxInputType::URL},"}]}],"current_source":"https://github.com/chromium/chromium/blob/155.0.8059.85/components/omnibox/browser/autocomplete_input.cc#L306","url_scheme_standard":"https://url.spec.whatwg.org/#scheme-state","javascript_navigation_standard":"https://html.spec.whatwg.org/multipage/browsing-the-web.html#the-javascript:-url-special-case","derived_examples":[{"input":"JavaScript: The Definitive Guide","matches_unknown_predicate":true},{"input":"javascript:alert(1+1)","matches_unknown_predicate":false},{"input":"javascript:1+1","matches_unknown_predicate":true},{"input":"JavaScript: The Definitive Guide.","matches_unknown_predicate":false}],"validation_scope":"ASCII examples checked against an equivalent predicate and URL protocol parsing; JavaScript syntax contrast checked with Node vm.Script. No Chromium classifier test or browser execution was performed.","interpretation_boundary":"Original case-sensitive suggestion, the two linked 2019 patches, current behavior, and inferred tradeoffs are distinguished. Issue demonstrates misrouted search intent, not successful execution of the book title as JavaScript."},"navigation_summary":{"checked_on":"2026-10-19","scope":"搜索和网址候选形成目标 URL，用户确认后按协议分流；浏览器操作单独处理。图中列举常见协议类别，不表示完整协议清单或严格串行的浏览器执行时序。","diagram":{"file":"images/omnibox-to-page-summary.png","mode":"built-in imagegen, existing illustration used as style reference for a complete redraw","prompt":"data/omnibox-url-routing-image-prompt.txt","previous_prompt":"data/omnibox-to-page-image-prompt.txt","width":1448,"height":1086,"bytes":473307,"sha256":"6715c280df8cbad37b2dd68f7497a3e0024826e0417deb85a334323f7baafe0c","inspection":"搜索与网址的输出汇合到独立的目标 URL 节点；确认之后按协议分流；常见其他 URL 的映射逐字核对，浏览器操作旁路不强制转换为 URL；保留按需网络步骤、环境权限条件和提前预加载说明。"},"sources":[{"url":"https://support.google.com/chrome/answer/95426?hl=en","supports":"默认搜索引擎、站点搜索及带查询占位符的搜索 URL 模板。"},{"url":"https://url.spec.whatwg.org/#percent-encoded-bytes","supports":"路径、查询、片段等组成部分的百分号编码集合不同，不能将整段输入的保留字符全部转义。"},{"url":"https://developer.chrome.com/blog/inside-browser-part2/","supports":"从输入处理进入导航、响应与渲染流程，Service Worker 可以提供缓存响应；作为概念资料，不把该旧文的进程实现细节当成当前版本源码。"},{"url":"https://developer.chrome.com/docs/web-platform/prerender-pages?hl=zh-cn","supports":"地址栏导航预测和搜索建议可以触发预渲染，工作可能在确认前发生。"},{"url":"https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers","supports":"网站可以注册 mailto、tel 和允许的其他协议；注册、处理器和使用条件决定去向。"},{"url":"https://html.spec.whatwg.org/multipage/browsing-the-web.html#non-fetch-schemes-and-external-software","supports":"非 fetch 协议可以交给外部软件或已注册处理器，可能需要确认，也可能无法处理；使用网站处理器时可以发起新的 URL 导航。"},{"url":"https://html.spec.whatwg.org/multipage/browsing-the-web.html#the-javascript:-url-special-case","supports":"javascript URL 的脚本求值和安全限制，不等于普通 HTTP 页面获取。"},{"url":"https://fetch.spec.whatwg.org/#scheme-fetch","supports":"about:blank、blob:、data: 和 HTTP(S) 按协议使用不同处理步骤，file: 行为依赖实现；blob 对象需要有效且可访问。"},{"url":"https://www.iana.org/assignments/uri-schemes/","supports":"协议登记范围广泛，图中的常见类别不构成完整清单。"},{"url":"https://support.google.com/chrome/answer/10957616?hl=en","supports":"Chrome Actions 包含打开无痕窗口和打开清除浏览数据设置等操作。"},{"url":"https://support.google.com/chrome/answer/2391819?hl=en","supports":"标签页检索与切换。"},{"url":"https://github.com/chromium/chromium/blob/155.0.8059.85/chrome/browser/external_protocol/external_protocol_handler.cc","supports":"固定版本 Chrome 的外部协议处理、mailto 的已知处理及平台和策略相关判断；未实际调用处理程序。"},{"url":"https://github.com/chromium/chromium/blob/155.0.8059.85/chrome/common/webui_url_constants.cc","supports":"固定版本 Chrome 的 WebUI 与设置页常量。"}],"illustrative_search_example":{"input":"foo bar","template":"https://www.google.com/search?q=%s","target":"https://www.google.com/search?q=foo+bar","condition":"使用常见 Google 查询模板时的简化示例，不是本机 Omnibox 候选抓取，也不列出额外追踪或上下文参数。"},"other_url_categories":[{"schemes":["javascript"],"destination":"当前页脚本求值","condition":"受当前文档、候选选择和安全限制影响。"},{"schemes":["mailto","tel"],"destination":"邮件或电话处理程序","condition":"可以使用本机应用或注册的网站处理器；受平台、配置与权限限制，不保证直接发信或拨号。"},{"schemes":["chrome","about"],"destination":"内部或特殊页面","condition":"图中概括类别，实际路径必须可识别，例如 chrome://settings/ 与 about:blank。"},{"schemes":["file"],"destination":"文件资源","condition":"具体实现、平台和访问权限相关。"},{"schemes":["data","blob"],"destination":"内嵌数据或数据对象","condition":"data 内嵌内容；blob 需要已注册、未失效且允许访问的对象。"},{"schemes":["application-defined"],"destination":"已注册处理程序","condition":"非完整清单；缺少处理器或被限制时可能无法继续。"}],"browser_action_examples":["切换标签页","打开无痕窗口","打开清除数据设置"],"validation_scope":"核对官方标准、帮助和固定版本源码，未在用户环境执行脚本、拨号、发信、外部应用唤起或清除数据操作。"}}