
Web ブラウザーのバージョン 100 問題、接近中 62
ストーリー by headless
接近 部門より
接近 部門より
Google Chrome のメジャーバージョンが間もなく 100 に到達するのに先立ち、Chorme 96 では User Agent 文字列の Chrome メジャーバージョンを 100 にするフラグ (#force-major-version-to-100) が追加されている
(9to5Google の記事、
Chrome Developers のブログ記事)。
このフラグはメジャーバージョンが 3 桁になった場合の影響を事前に確認するために追加された。影響としては User Agent パーサーがメジャーバージョンの桁数を決め打ちしていると正常に処理が実行できなくなるといったもので、同様の問題は Chrome 10 でメジャーバージョンが 2 桁に増えた際にも発生している。今回、バージョン 100 フラグを有効にすると www.energysavingspecialist.co.uk などの「Powered by Yell Business」サイトで問題が発生する (403 エラー) ことが報告され、Yell 側に報告して修正が行われた。Chrome のメジャーバージョンが 100 以上になっているかどうかを確認するサイト Is Chrome 100 yet? も公開されている。
フラグは Brave や Opera、Vivaldi といった Chrome 以外の Chromium 系ブラウザーでもサポートされているが、Microsoft Edge は Canary チャネルの Edge 99 でもサポートしていない。Chromium Gerrit ではメジャーバージョンを 99 に固定してマイナーバージョンに 100 以降のメジャーバージョンを記述するという提案もみられるが、Google の User Agent 文字列削減計画では Chrome 101 で逆オリジントライアルにオプトインしていないサイトに対し、マイナーバージョンを「0.0.0」にする予定となっている。
スラドの皆さんは対策の必要なサイト等を抱えているだろうか。
このフラグはメジャーバージョンが 3 桁になった場合の影響を事前に確認するために追加された。影響としては User Agent パーサーがメジャーバージョンの桁数を決め打ちしていると正常に処理が実行できなくなるといったもので、同様の問題は Chrome 10 でメジャーバージョンが 2 桁に増えた際にも発生している。今回、バージョン 100 フラグを有効にすると www.energysavingspecialist.co.uk などの「Powered by Yell Business」サイトで問題が発生する (403 エラー) ことが報告され、Yell 側に報告して修正が行われた。Chrome のメジャーバージョンが 100 以上になっているかどうかを確認するサイト Is Chrome 100 yet? も公開されている。
フラグは Brave や Opera、Vivaldi といった Chrome 以外の Chromium 系ブラウザーでもサポートされているが、Microsoft Edge は Canary チャネルの Edge 99 でもサポートしていない。Chromium Gerrit ではメジャーバージョンを 99 に固定してマイナーバージョンに 100 以降のメジャーバージョンを記述するという提案もみられるが、Google の User Agent 文字列削減計画では Chrome 101 で逆オリジントライアルにオプトインしていないサイトに対し、マイナーバージョンを「0.0.0」にする予定となっている。
スラドの皆さんは対策の必要なサイト等を抱えているだろうか。
Firefoxの壊れるサイト調査 (スコア:3, 興味深い)
Heads up: "Firefox 100" webcompat experiment
https://groups.google.com/a/mozilla.org/g/dev-platform/c/hbSiu0A83nA?pli=1 [google.com]
Re: (スコア:0)
これを機にFirefox対応はやめるというサイトも多いかも。
Re: (スコア:0)
修正前 https://egg.5ch.net/test/read.cgi/software/1635506171/111 [5ch.net]
修正後 https://egg.5ch.net/test/read.cgi/software/1635506171/149 [5ch.net]
最初に決めておかないから…… (スコア:1)
「バージョン番号は、コンマで区切られた4つの16bitの整数である。」
とか最初に定義しておかないで、文字列として扱っているから発生する問題でもある。
Re:最初に決めておかないから…… (スコア:2, 参考になる)
いつの間にか現状に依存した判定してくるので無駄。
TLSバージョン判定とか仕様でしっかり定められてるのにそのとおりのClientHelloを送ると接続できないサイトが多すぎて、TLS 1.3以降ではバージョン1.2に固定して本当のバージョンは拡張に入れて送る羽目になった。
Windows APIでも、「将来の拡張」のために用意した部分はほぼ死に項目になっていて(そこを実際に使い出すとアプリが壊れる)新しい関数を追加したってパターンがいくらでもある。
Re:最初に決めておかないから…… (スコア:1)
うかつに定義したら、バージョンπとか、バージョン√2とか、バージョンeとか使えないやんけ
Re: (スコア:0)
つまり、πの桁数とかeの桁数をひとつづつ増やすと定義しておけって話か。
Re:最初に決めておかないから…… (スコア:1)
https://clickerheroes.fandom.com/wiki/Patch_History [fandom.com]
バーションが10^nのルールで増えるゲームならあります
Re:最初に決めておかないから…… (スコア:1)
User Agent文字列ってホント酷いよな。
あんなパース難易度高くて言ってることは単なる主要ブラウザのどれかって…。
普通にXMLにでもすりゃ良かったが、まぁヘッダー向きではないわな。毎回送るし。
Re:最初に決めておかないから…… (スコア:3)
別にパースしなくてもいいし、特定ブラウザごとの挙動に合わせなくてもいいし、DOCTYPE宣言にHTML 4.01 Transitional//ENって書いてもいいんですよ。私はそうしてます。
Re: (スコア:0)
それだとアルファとかベータとかステーブルとか使えないじゃないですかヤダー
そういうサイトがあるのか (スコア:1)
バージョン番号なんて「数字(ピリオド含む)が続く限り拾う」としか考えてなかった
ある意味うかつだった
もっとも、もう仕事で作ってるもの以外はUA自体見てないけど
Re:そういうサイトがあるのか (スコア:3, 興味深い)
Flash Playerのメジャーバージョンが2桁になったときは、Yahoo! JAPANですらニュース動画など一部コンテンツの対応完了まで1週間ぐらいかかった記憶がある。
Re:そういうサイトがあるのか (スコア:2, 参考になる)
macOSがBig Surになったときなんか、OSバージョンを11.0にしただけで壊れるサイトが続出した。結局UA上のバージョンは10.15.7で固定するはめになった
Re:そういうサイトがあるのか (スコア:1)
ああ、某所ではピリオドを単純に小数点として扱ってるから、マイナーバージョンで同じだったんだった
1.10=1.1、1.101.2
2つ目以降のピリオドは単にスキップしてた
実際のチェック設定がメジャーバージョン単位だったから良いものの、1.5という設定も可能ではあった
Re: (スコア:0)
バッファーオーバーランの防止はしないの?
ピリオドがカンマになる文化圏の想定は?
数字が無くピリオドだけは考慮した?
とか色々考えちゃう
見にくいのばかり (スコア:1)
ファイルリストを見たらこんな感じになってることが多い。
soft-3.0
soft-3.1
soft-3.10
soft-3.2
soft-3.3
:
soft-3.9
一番新しいバージョンは3.10だけど順番にならんでないせいで見落として古いのを選択してしまうことがたびたびある。
こういうバージョン付やソートはやめてよ・・・
Re: (スコア:0)
つ 自然順 https://ja.wikipedia.org/wiki/%E8%87%AA%E7%84%B6%E9%A0%86 [wikipedia.org]
Re: (スコア:0)
Python 3.10がマジでそれを踏んだらしい
https://srad.jp/comment/4127544 [srad.jp]
黙って16進数にチェンジすれば良いんじゃね? (スコア:1)
桁数だけの問題ならそれでええやろ。
9A~FFまで40以上あるから、それまでに間にバージョン表記を別の形に移行すれば良い。
Re:黙って16進数にチェンジすれば良いんじゃね? (スコア:1)
訂正、40じゃねぇ。
FF-99=66
Dec換算で102だ。
Re:黙って16進数にチェンジすれば良いんじゃね? (スコア:1)
もちろん10進数の数字が入ることしか想定していないサイトが壊れる
"^Windows 9" (スコア:0)
まだこんなことやってんの
Re: (スコア:0)
WEB関係はHTTP、Javascript、XML、JSON…
文字列ベースが基本だから助長しちゃうのかもね。
"^NT 10" (スコア:0)
まいっちゃうよね
Re:"^NT 10" (スコア:2, おもしろおかしい)
Windows 11は内部バージョン10.0のままなのでそこは抜かりない。Macとは違うのだよMacとは
Re:"^NT 10" (スコア:1)
ふふふClassic MacOSはバージョン表記がリソースフォークに記述され、versとして定義されているので、
多分未だに一番先進的なのだ。
# 多分な。まちょっとは覚悟しておけ。
バージョンインフレ止めればいい (スコア:0)
今のバージョン番号で止めて日付だけで管理しなよ
Re:バージョンインフレ止めればいい (スコア:1)
証券コードは、桁を増やすのではなく英文字を組み入れることになっている。
10年ぐらい前からシステム改修を呼び掛けている。
https://www.jpx.co.jp/sicc/securities-code/nlsgeu00000329ri-att/201909... [jpx.co.jp]
Re: (スコア:0)
日本人「yyyymmdd」
イギリス人「ddmmyyyy」
アメリカ人「mmddyyyy」
Re: (スコア:0)
WindowsUpdateは日本製だった!?
Re: (スコア:0)
西暦9999年問題が生まれる。一日に複数回リリースされる場合もあるのでその日の何回目のリリースかみたいな番号もいる。
別にyyyy/mm/dd/hh/ss/mmmm/nnnn/ppppでもいいけど多分不便。
Re:バージョンインフレ止めればいい (スコア:2)
DNSのSOAレコードシリアル値(更新確認用の数値。増加したら更新が入ったとみなす)は、
基本的には単調増加さえすればどんな数値を使ってもいいんけど、
手動管理する場合は「YYYYMMDDnn」(日付とその日の連番)が推奨 [ietf.org]されてますね。
32bit整数なので、このルールが使えるのは西暦4294年まで
Re: (スコア:0)
Gecko/20100101の部分を実際のバージョン番号に変えただけで壊れるサイト(Gooleとか)が出る始末なので、おそらく逆もしかり。今さらそこのフォーマットを変更するなんて危険すぎてできない
もうUAは99で止めて (スコア:0)
それ以降はClient Hintsで見れるようにすればいいんじゃないの
Re: (スコア:0)
実際マジでそれしかないと思う。「こう変えればいいのに」みたいなコメントがいろいろあるけど、どう変えても変えただけで壊れるんだからどうしようもない。
Re: (スコア:0)
Client Hintsのバージョンは1からではなく100から始めるんだろうな?
身をやつして卑しいブラウザなんぞやっているけど (スコア:0)
じつはきらきら星(ツインクル・スター)の高等生命体で、99になったら逆に若がえるんだぜ。そして0まで若がえったら、また99までは年をとるんだ。これを永遠にくりかえすのさ
17教 (スコア:0)
バージョン17です(ぉぃぉぃ)
Re: (スコア:0)
Windows 11は最後のWindowsです (0x11=17d)
桁数決め打ち? (スコア:0)
だったら1桁のときはどうなってたんだ
1桁か2桁でもできるなら3桁以降も問題なくできるだろう
Re: (スコア:0)
せめてタレコミくらい読んでください
> 同様の問題は Chrome 10 でメジャーバージョンが 2 桁に増えた際にも発生している。
Re: (スコア:0)
10年前とはいえまた同じことで問題になってるってすげえよな
Re: (スコア:0)
ver.999→1000はバージョンは3桁決め打ちというソフトウェアが増えてより混乱が大きそうだ
それって (スコア:0)
ただのサイト側のバグじゃね?
勝手に桁長を決めて作り込んだだけじゃね?
Re:それって (スコア:2, すばらしい洞察)
うん、サイト側のバグだよ。でもそのせいで見れないサイトがあったら、使う人の生産性下がっちゃうし、別のブラウザに乗り換えてしまうかもしれないから、ブラウザベンダーが対処するの。
Re: (スコア:0)
それが積み重なった結果カオスになったのがIEだが…
Re: (スコア:0)
22年くらい前に西暦19100年みたいな表記になっちゃうサイトがぱらぱら観測された頃からあまり進歩してないかも
Re: (スコア:0)
でもそのバグを発生させる原因を作ってるのがブラウザのUAだから
UA文字列を複雑怪奇にしたMSとgoogleの自業自得だよな (スコア:0)
ブラウザ統一されてよかったと思ってる連中はググル様に従えばいいし。