埋め込みプロジェクトを開くときの自動updateの挙動を調べる
Nihongo7のプラグイン版で、squeakland.jp/superのギャラリーから直接開く操作は、何回もやってきました。今日ふとsqueakland.orgのギャラリーのプロジェクトを開こうとすると、最新のアップデートを適用しようとすることに気がつきました。この挙動の違いへの興味から、探索が始まりました。
Webページ上の埋め込み表現の例
(Squeakland.orgの Squeak Newsでいま紹介されているプロジェクト)
<OBJECT ID="SqueakOCX Control" WIDTH=1024 HEIGHT=768 ALIGN=center BORDER=2 CLASSID="CLSID:2BE9C39E-8386-4435-B337-FCDAD8EAB006" CODEBASE="http://www.squeakland.org/installers/SqueakPluginInstaller.exe"> <PARAM name="src" value="http://www.squeakland.org/fun_projects/proj_pe_mo/fisherman.009.pr"> <PARAM name="update" value="0416"> <PARAM name="win32" value="Squeak3.2gamma of 12 January 2002 [latest update: #4879]"> <PARAM name="macos" value="Squeak3.1alpha of 16 May 2001 [latest update: #4081]"> <PARAM name="loader_url" value="http://www.squeakland.org/project.jsp"> <PARAM name="pluginspage" value="http://www.squeakland.org/detect.html"> <PARAM name="update_url" value="http://www.squeakland.org/update/"> <PARAM name="apiSupported" value="TRUE"> </OBJECT>
起動時の自動更新のあらすじ
1. イメージへの最新パッチの適用を試みる
AutoStart class>>checkForUpdates
サーバー側でavailableなパッチの番号=PARAM updateの数字=416
と、イメージに適用されている最大のパッチ番号を比較する。
サーバー側の方が大きければ、パッチ適用を実行する。
パッチ取得するアップデートサーバは、イメージ中で Utilities updateUrlListsに登録されている。サーバが複数登録されている場合は、ユーザにサーバーを選択させる。その際、PARAM update_urlで指定したものが、選択リストの先頭に表示される。
PARAM update_urlで指定していたものは、Nihongo7では無視されている。
2. イメージへのパッチ適用が行われなかった場合、プラグインの更新を試みる
ここでは割愛します。
Nihongo7でsqueakland.orgのプロジェクトを開く際の挙動の問題点
パッチの番号は、本家版とNihongo7で別管理されている。それらの間で大小関係を比較しており無意味である。これを書いている時点で、Nihongo7の最新パッチは95で、本家とは文字どおり桁が違う。つまりNihongo7でSqueakland.orgをアクセスすると、常にアップデート処理が起動される。
Squeakland.orgのHTML表現への疑問
- そもそもこの update 416はどうやって求めているんでしょう?ちなみにさっきダウンロードしたイメージのパッチは416、アップデートストリームは417でした。JSPの中でアップデートストリームを調べているとか??
- アップデートサーバをWebサーバで指定することの意味。