Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ブラウザでURLを開く機能の改善 #1708

Merged

Conversation

sanomari
Copy link
Contributor

@sanomari sanomari commented Jul 19, 2021

PR の目的

「ブラウザで(URLを)開く」機能を改善します。

カテゴリ

  • 仕様変更
  • 不具合修正

PR の背景

#1702 セキュリティ問題を起こしやすいShellExecute関数を直接呼ばないようにリファクタリングする
 ↓
#1705 クリッカブルURL機能から実行可能ファイルを直接実行できるのは仕様かどうか
 ↓
関連付けられたプログラム(ブラウザ)で開くという機能定義から見て
仕様ではなさそうなので、不具合として対処します。

PR のメリット

URLが含まれるテキストの編集中に意図せずプログラムを実行してしまう事態を防止できます。

PR のデメリット (トレードオフとかあれば)

従来の挙動を便利に活用していた人が困るかも知れません。

仕様・動作説明

変更点1、ブラウズ機能から OpenWithBrowser を呼び出す際にローカルファイルパスをそのまま渡していたのを、「file:///」プレフィックスを付けて渡すように変更します。
変更点2、OpenWithBrowserのパラメータ仕様を変更します。変更前はURLとUNCパス、ローカルのフルパスを受け付けていましたが、変更後はURLのみを受け付けるようにします。また、従来は指定されたURLをそのままシェルに渡していましたが、変更後はWindowsのURL解析機能を呼び出してURLスキームをチェックし、「file」プロトコルを開くときに「http」プロトコルに関連付けられたプログラムを使うように変更します。

PR の影響範囲

  • ファイル→ブラウズでローカルスクリプトを実行することができなくなります。
    ※従来はbatやcmdの編集中に「ブラウズ」でスクリプト実行できていました。(これも不具合)
    ※ブラウザ上で動くjavascriptの実行確認は可能です。
  • クリッカブルURLのダブルクリックでexeファイルを実行することができなくなります。
    ※httpプロトコルに関連付けられたプログラムでexeを開くと対象ファイルが「ダウンロード」されます。
    ※表示するつもりでダウンロードファイルが増えると悲しいので、exeは失敗扱いにします。

関連 issue, PR

resolve #1705

参考資料

https://www.glamenv-septzen.net/view/695#ide5cdab
https://newoldthing.wordpress.com/2007/03/23/how-does-your-browsers-know-that-its-not-the-default-browser/

@sonarcloud
Copy link

sonarcloud bot commented Jul 19, 2021

@AppVeyorBot
Copy link

Build sakura 1.0.3870 completed (commit 3afb07da32 by @sanomari)

Copy link
Member

@kengoide kengoide left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

私は賛成です。

従来の挙動を便利に活用していた人が困るかも知れません。

一応は「外部コマンド実行」で代替可能です。従前同様のコマンドが不可欠ならツール以下に別に設置したほうが良いでしょう。

@sanomari
Copy link
Contributor Author

ブラウザでURLを開く機能の改善

私は賛成です。

従来の挙動を便利に活用していた人が困るかも知れません。

一応は「外部コマンド実行」で代替可能です。従前同様のコマンドが不可欠ならツール以下に別に設置したほうが良いでしょう。

ご賛同ありがとうございます。

懸念しているのは、何かのチェック用マクロに組み込んで便利に使っている人の存在です。

ツール配下に既存互換のメニューを入れる対応をとる場合、メインメニューの仕様が障害になりそうです。
組み込みのメインメニューは、開発者が簡単には変えられないような細工が入っています。

@sanomari sanomari merged commit 1071c6a into sakura-editor:master Jul 22, 2021
@sanomari sanomari deleted the feature/improve_OpenWithBrowser branch July 22, 2021 05:47
@beru beru added specification change ■仕様変更 🐛bug🦋 ■バグ修正(Something isn't working) labels Oct 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛bug🦋 ■バグ修正(Something isn't working) specification change ■仕様変更
Projects
None yet
Development

Successfully merging this pull request may close these issues.

クリッカブルURL機能から実行可能ファイルを直接実行できるのは仕様かどうか
4 participants