※2025/1/17 いつの間にか、プロキシ環境下でも爆速起動、タブのSyncができるようになっていました!
この件、リリースノートには記載なかったです。笑
それでも僕はArcを使う
どうも、レイと申します。
あけましておめでとうございます。
旧年中は全然投稿できずに申し訳ございませんでした。誰に対して謝っているかは分かりません。
今年は投稿頻度上げていきたいです。よろしくお願いします。
あと、彼女がほしい。
今回はいつもと少し志向を変えて、、、
皆さんは、「Arc Browser」って知ってますか?
Arc(アーク)は、The Browser Companyが開発したChromiumをベースとするWebブラウザ。2022年4月19日にMac用に最初にリリースされた。AIによる機能やChatGPTとのシームレスな連携が強みの新世代のWebブラウザ。
現在はMac, Windows, iOS, Androidで使用できる。
※Wikipediaより引用
ネット上に様々な情報があるので詳細は割愛しますが、まあ、ブラウザです。
最近Windows版がリリースされました。
ブラウザですが、これまでに出てきたGoogle ChromeやFirefoxとは違い、WebOSという概念を持って生まれているとどっかで見たことがあります。(ソースは覚えてません笑)
まあ見た目も従来のブラウザとは少し違うんです。
※左ペインにWebアプリをまとめている。
使い方は様々あるようですが、僕は業務で使用する数々のWebアプリを集約し、管理しています。
(Arcを使用する前は、「Biscuit」と呼ばれるWebアプリ管理ソフトを使っていました。軽快だったけどChromiumバージョンの更新が遅くて使うのやめたけど。。。)
さて、今回はそんなArcに関する記事です。
このArc、使い方さえ確立できればとっっっっっっても使いやすいブラウザになりますが、会社で使うには少しだけ不便です。
それは、、、
会社ネットワーク下だと
- Arcアカウントにログインできない
- タブのSyncができない
- 起動まで5分かかる
という問題です。
特に最後の「起動まで5分かかる」が致命的で、単純に業務開始が5分遅れます。笑
別のブラウザ使ってもいいんだけど、メモリめっちゃ食うしWebアプリにソッコーアクセスできるArcを使いたいんだよなぁぁ
(別ブラウザは、比較的軽い「Vivaldi」を使っています。軽いけど、Chromiumだからやっぱり重い。)
じゃあ、ArcやめてBiscuitに戻るか、、、、とならないのが僕です。
エンジニアなんだから、「なんでこうなるのか考えてみようや!!!!!」と思い立ち、簡単に切り分けしてみます。
※ちなみにタイトルで察せるとおり出オチです。。
まずは社用ではない私用のPCで起動してみよう
ということで、まずは家にある僕のネ申ゲーミングPC(笑)でArcを起動してみます。
・・・・なに?ログインもできるしスムーズに起動もできるぞ?????
Windows版Arcの仕様ではないのか、、、?
じゃあ会社のサブPCで起動してみよう
家で起動できることは確認したので、次は会社の自席にあるサブPCで起動してみます。
サブPCはプロキシ環境から切り離された環境に接続されています。
・・・・お?めちゃ早く起動したな。。。てことは社用PCの問題???
社用PCをプロキシ環境から切り離してから起動してみよう
サブPCでは起動できたので、もしかしてプロキシが悪いのか?と思い、社用PCをサブPCが接続されているプロキシから切り離された環境に接続してみます。
・・・・お!!起動した!!!!
ということは、やっぱプロキシなのか???
予想とモニタリング
上記の結果から、会社ネットワーク配下に接続するとArcが起動しないことがわかりました。
サブPCを会社ネットワークに接続、したいところですがセキュリティポリシー的にかなりマズイのでやりません。
会社ネットワークと切り離し環境の違いといえば、プロキシがあるかないかくらいしかないので多分プロキシが悪さをしています。
もちろん、社用PCはプロキシ環境下なのでOSの設定でプロキシへ向けて通信するように設定しています。
うちのネットワークはプロキシ経由でないとインターネットに出れない仕組みなので、おそらくですが、Arcがその設定を無視してダイレクトにネット上の認証サーバなりアカウントサーバなりに接続しようとしている可能性が高いです。
5分経って起動するのは、タイマーで複数回測ったので確実です。
多分、タイムアウト値が5分で設定されていて、タイムアウトしたらとりあえず起動するようにしてるんじゃないかな。
ここで気になるのが、「じゃあどこに通信しに行ってるねん」ということです。
確認してみましょう。
Arcがやっている通信を見てみよう
ここからは、Arcがどこに向けて通信しているのか見てみます。
ですが、実際にArcが教えてくれるわけではありません。
頑張ればChromiumの機能であるデベロッパーツールで確認できそうですが、今回は外部ツールスイートである「Sysinternal Suite」に含まれている「Process Monitor」を使用します。
注意
Sysinternals SuiteおよびProcess MonitorはMicrosoft社が提供しているツールですが、ダウンロード・使用する場合は自己責任でお願いします。
特にProcess Monitorは使用していると物理・仮想メモリともに容量を食いつぶしていき、最終的に空き率が0%となりBSOD(ブルースクリーン)になる場合があります。※経験あり
詳しい使用方法などはご自身でよく調べてから実践してください。
この記事の内容を実践してあなたに降り掛かったいかなる不都合も不幸も怒号も僕は責任を取りません。
まず、上記リンクからプロセスモニターをダウンロードし、Zipファイルを解凍後「Procmon64.exe」を管理者権限で起動します。
次にフィルタでProcess NameをArc.exeに設定します。
するとArc関連のプロセスに関する情報が表示されます。
Arcを起動していない状態だと、一見何も情報収集していないようにも見えますが実はウラで全プロセスの情報を収集し、物理メモリ(足りなければ仮想メモリにも)へ情報をキャッシュしています。メモリ容量が満杯になるとBSODになるときもあるので注意してください。
フィルタ設定後すぐにArcを起動してみます。
すると、、、
どこかに通信してますねぇ。。。
しかも、何回もリトライしているみたいです。
起動したあとの通常のブラウジングでは、HTTPSの通信はプロキシサーバへ向かっているので、Arc Browser自身はきちんとWindowsのプロキシ設定を認識できているようです。
青が端末のFQDN、黄緑がプロキシサーバのFQDNでした。
紫の部分を見てみると、さっきと違って「TCP Reconnect」していないので通信は成功していることがわかります。
つまり?????
つまり、Arc Browserは
- 起動時には外部サーバへダイレクトに接続しに行き、接続が確立するまで起動しない
- この通信はなぜかWindowsプロキシ設定を経由しない
- ピッタリ5分経過後に起動するのは、タイムアウト値が設定されていて、時間経過後はとりあえず起動している?
- 起動したあと、通常通りブラウジングするとWindowsのプロキシ設定を使用し接続する
のだと考察できます。
かなり妄想も含まれますが、初回起動時にログインができないコトも、タブが他デバイスとSyncできないことも、Arcの開発側のサーバへダイレクトに接続しに行っていることが原因だと思います。
プロキシ環境下でArcを使用する場合は、初回起動時は外部ネットワークで初回起動&ログインし、以降の起動は外部ネットワークで起動五に会社ネットワークへ接続し直す or 会社ネットワークで起動し大人しく5分待つの2択になるかと思います。
(現実的なのは後者ですね。Arcは確かログインしないと使用できないので、セキュリティポリシー的に社用PCを外部ネットワークに一切接続できないのであれば、Arcの使用は諦めましょう。)
今は、暇なときにArcのインストールフォルダの中を眺めてどこで通信を定義しているのかちょこちょこ探しています。
Swiftしらんけど。。。