TIGORA(ティゴラ)のトレッキング シューズ

 TIGORA(ティゴラ)の トレッキング シューズを買いました。


メインの靴がアシックスウォーキングで街歩き用なのですが、これまではこれで高尾山などの軽い山も登っていました。

今回、靴底があまりに摩耗したこともあってアシックスウォーキングを買い替えたのですが、ついでに消耗が激しそうな山歩き用は別の靴を用意して履いてみよう、という感じです。


私が調べたときはamazonで「ティゴラのトレッキングシューズ」とすると背が高いトレッキングシューズしか出てきませんでしたが、ある程度街歩きもできる普通サイズのトレッキングシューズも出ています。


裏側はこんな感じです。





 

靴底の中敷きにも厚みがあり、期待できそうです。

アシックスウォーキング(フィールドウォーカー)を買い替え(新旧比較写真など)

靴を買い替えました。


 

それまでは靴は適当に入った店で最安のスニーカを買っていたのですが、4年ほど前に「足に合う靴」を求めて一念発起し、アシックスウォーキングを買ったのが初めて真剣に靴選びをしました。

そのときはアシックス直営店で足のサイズを測り、中敷きも調整オプションを入れてもらっています。

その後、2年ほどで履き潰したアシックスウォーキングを同じ型番で買い直し、 それもまた2年ほどで履きつぶしたため、同じものを探して買い換えたものです。

現在はフィールドウォーカーという名前になっており、後で見ていくように細部のデザインも違うため、厳密には違う靴なのかもしれません。

(あまり関心がないためこういう認識になってます。)

 最初の選定時に見た目はあまり気にしていなかったのですが、革というかフェルト革風のデザインも靴としては珍しく、今では気に入っております。

 

 というわけで上から撮った写真。

中敷きは真っ赤です。とはいえ靴紐のように外からは見えないので悪目立ちのようなことはしません。

 


購入時ではなくちょっと履いたあとですが、足裏はこんな感じです

 

内側の写真。比較写真はないですが比べてみると、靴のべろが被覆でくっついているように変わっています。


 後ろ側もデザインが違います

後部を横から見ると、紐の衣装があったのが省略されています


側面としてはメッシュ風のラインが入る感じに変更されています。



 
 
並べてみると古い方の履きつぶしっぷりが解ると思います。
次は少なくとも踵にもうちょっと気を遣うようにしたいです。




横から見た感じ。外見の靴底の厚みなどは変わらないように見えます。


WebExtensionsのAPIの非同期対応が呼び出し箇所により異なる(Async,Primise)

 TL;DR

FireFoxでchrome.*()系APIを使うとき、content_scriptだけpromiseなAPIで、ほかはコールバックな模様


概要

そもそも、
- FireFoxはChrome拡張機能互換の一環として、chrome.storage.local.get()といったchrome.*()系APIを実装している
https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/API/storage/StorageArea/get
> この API は Chromium の chrome.storage API に基づいています。
- MDNのドキュメントではchrome.*()系APIはコールバックで非同期を返すものとなっている
(前述のURLにて。2024年現在も)
- Chromeブラウザのchrome.*()系APIは実際にコールバックのAPIで、Primise非対応だった
(おそらく当初、あるいはmanifest V2の頃は)
- 2023年時点のFireFoxでは、chrome.*()系APIはPrimise非対応だった
(当時の挙動からおそらくそう思われる)

- 一方、現在のChromeはchrome.storage.local.get()はPromiseを返すようになっている
(2024年現在。ドキュメントに記載されている通りならば)
https://developer.chrome.com/docs/extensions/reference/api/storage?hl=ja
> chrome.storage.local.get(["key"]).then((result) => {

- 2024年、FireFoxのchrome.*()系APIは、content_script内ではpromiseを返すようになった模様
(とりあえずchrome.storage.local.get()は。全てのAPIが対応しているかは不明。)


説明


気づいたのはdaisy AddCharaIconブラウザ拡張の開発中で、これはページ内のゲーム登場人物名の横に顔アイコンを付与するブラウザ拡張。
毎回アイコン画像をloadするのは負荷が高いため、ローカルでキャッシュするためにWebExtensionsのstorage APIを叩いていて気づいた。




https://github.com/MichinariNukazawa/add_chara_icon_webextensions


```: option_page/option_page.js

const getHashFromTitle = async (title) => {
return new Promise((resolve) => {
// TODO FireFoxではchrome.storage.local.*()で
//promise構文が通用しない様子
// (FireFox127.0.2, 2024/07, Ubuntu 24.04)
chrome.storage.local.get(null, (hash) => {
//console.log('src', hash);
const filterHashFromTitle = (title, hash) => {
let res = {};
for(let key in hash){
if(hash[key].title == title){
res[key] = hash[key];
}
}
return res;
}
const res = filterHashFromTitle(title, hash);
resolve(res);
});
});
};

```


面白いのはoption_pageでもPromise()構文自体は有効であることで、これはcallback版をPromiseでwrapして機能していることからわかる。
つまりFireFoxではchrome.storage.local.get() API側が2種類あるということで、content_scriptとそれ以外で同じAPIのインタフェースが異なる、ということを示しているのだと考えられる。

TIGORA(ティゴラ)のトレッキング シューズ

 TIGORA(ティゴラ)の トレッキング シューズを買いました。 メインの靴がアシックスウォーキングで街歩き用なのですが、これまではこれで高尾山などの軽い山も登っていました。 今回、靴底があまりに摩耗したこともあってアシックスウォーキングを買い替えたのですが、ついでに消耗が激...