◆ リクエスト情報のオブジェクトに initiator プロパティが追加
◆ フルパスじゃなくてオリジンのみなので イマイチ使い勝手がよくない

久々に Chrome 拡張機能をいじっていたら webRequest のリクエストが起きたときに取得できるデータに initiator というのが増えていました
バージョンで言うと 63 からです
webRequest には リクエスト前やレスポンス取得時など色々なタイミングのリスナがありますが全部で取得できます

このプロパティはリクエスト元の URL が入っています
リクエスト元のない直接 URL を開いたときにはプロパティはありません

{
frameId: 0
fromCache: true
ip: "216.58.200.209"
method: "GET"
parentFrameId: -1
requestId: "22771"
statusCode: 200
statusLine: "HTTP/1.1 200"
tabId: 175
timeStamp: 1516845437332.3218
type: "main_frame"
url: "https://developer.chrome.com/extensions/webRequest"
}

↑のページを開いたときの css の読み込みのリクエストはこうなります

{
frameId: 0
fromCache: true
initiator: "https://developer.chrome.com"
ip: "172.217.25.202"
method: "GET"
parentFrameId: -1
requestId: "22775"
statusCode: 200
statusLine: "HTTP/1.1 200"
tabId: 175
timeStamp: 1516845437379.322
type: "stylesheet"
url: "https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro"
}

initiator プロパティが増えています

これまでリクエストの発生源を調べるためには 全部のタブの URL を監視して tabId に対する URL を保存しておいて リクエストが起きたときにその tabId から判断するという面倒な事が必要でしたが これで楽になりました!
……と思ったのですが initiator で取得できるのはドメインまで (オリジンの取得) のようです

上側のリクエストのページで開いたページからのリクエストからの css 読み込みなので 「https://developer.chrome.com/extensions/webRequest」 なっていてほしいのに取得できたのは 「https://developer.chrome.com」 です

ドメインだけわかってもあんまり嬉しくないのですが なんでこんなプロパティが追加されたのでしょう?

何か使うなら リクエスト先と initiator を比較してクロスオリジン判定できるからクロスオリジンはブロックするとか?
広告のブロックなどでブラックリストの URL からのリクエストをブロックというのも考えましたが そこからのリクエストでなく最初にそこを開こうとした時点でブロックすべきと思いますし やっぱりドメインまでの取得であんまりいいことはおもいつかないです

あえて 情報を削っているのでなくフルパスで取得ができない という理由があったりするのでしょうか