(解決)takker99/HelpLineをFirefoxで使うと段階的キーワード検索が使えない?
from 2022/01/29
Firefoxで使えてハッピーなのですが、/masui/段階的キーワード検索ができなかったです基素.icon
書き換えでこの辺りのコードが落ちてる?
突貫工事と書いているのでそこはまだなのかもしれない
Pull Requestを出すのがいいのかな
もし修正していただけるなら助かりますが、無理していただかなくても大丈夫ですtakker.icon
どこでミスったんだろうか……takker.icon
これからこれになっている
単に書き換えただけなのだが……うーん
ぱっと見、問題ないように見えますね基素.icon
code:diff
//
// ユーザがメニューを選択したとき呼ばれるもの
//
-chrome.omnibox.onInputEntered.addListener(function(text) {
+browser.omnibox.onInputEntered.addListener(async (text) => {
if(text.match(/^http/)){
- window.open(text) // location.href = は動かない
+ browser.tabs.update({ url: text });
} else {
- fetch('https://goquick.org') // GoQuick.orgユーザはGoQuick.orgを利用
+ const response = await fetch("https://goquick.org"); // GoQuick.orgユーザはGoQuick.orgを利用
- .then(response => response.text())
+ const data = await response.text();
- .then(data => {
- if(data.match("GoQuick Login")){
- window.open(https://google.com/search?q=${text})
- }
- else {
- window.open('http://goquick.org/' + text)
- }
- })
+ browser.tabs.update({
+ url: data.match("GoQuick Login")
+ ? https://google.com/search?q=${text}
+ : http://goquick.org/${text},
+ });
}
});
どのページのHelpfeelで失敗しましたか?
状況はこんな感じです基素.icon
mac Firefoxで使いました
masui版Helpline(Chrome)だと、omniboxにgoquickで登録しているキーワードを入力すると、goquickで指定したページにジャンプする
https://gyazo.com/2e42334bde7f2bf343b69b0727b7b12fこの状態でジャンプするとscrapbox/motoso-gtdを開ける
goquickにログインしていなければGoogleでgtdが検索される
この機能が動かなかったです
常にGoogle検索になってしまう
原因を探ってみた基素.icon
goquickへのリクエストはちゃんとしていた
https://goquick.org/ の応答がログインページだったのでGoogle検索になっていた
https://gyazo.com/412798104ff3cc836614d7429339b97a
ログインはしているのに、なぜだろう?
(コードがhttpとhttpsで揺れているのも気になる)
Chromeではちゃんと動くのかな?
動いてる!
GET https://goquick.org/ で200が帰っている(リクエストはこれだけ)
GoQuickつかっていなかったので、さすがにログイン周りのテストまではできませんでした……takker.icon
使ってなかったらやらないですね基素.icon
上のログを見ると302 Foundでgoquick.org/_login にアクセスしにいってる
/_login はつねにログインページが出るのだから、ログイン画面にならない
なぜFirefoxでは/へのアクセスが200ではなく302になってるのだろう?
ログインしない状態で https://goquick.org/ にアクセスすると302になるので、cookieが送られてないとかかも
ビンゴ
こうしたらなおった基素.icon
fetch APIでcookieを送るように変更
https://developer.mozilla.org/ja/docs/Web/API/Fetch_API/Using_Fetch#認証情報つきのリクエストの送信
manifest.jsonにgoquickのhost権限を追加
これがないと https://developer.mozilla.org/ja/docs/Web/HTTP/CORS/Errors/CORSNotSupportingCredentials が出る
そのオリジンに対して、クロス-オリジン制約なしに XMLHttpRequest アクセス、 fetch アクセスができる権限 (コンテンツスクリプトからのリクエストによるものも含みます)
https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions
Pull Request作ります基素.icon
できた
https://github.com/takker99/HelpLine/pull/1
/vim-jp-emojis/wa-wa-1.icon/icons/感謝.icontakker.icon