現在のタブに関連付けられているプロセスIDをChrome拡張機能で取得しようとしています。Chrome拡張機能からChromeタブを取得する
私はそれをchrome.processes
実験APIを介して取得することができました。
標準(非実験的)APIでタブpidを取得する方法はありますか?
現在のタブに関連付けられているプロセスIDをChrome拡張機能で取得しようとしています。Chrome拡張機能からChromeタブを取得する
私はそれをchrome.processes
実験APIを介して取得することができました。
標準(非実験的)APIでタブpidを取得する方法はありますか?
あなたは本当のプロセスID(プロセスを識別するために、他のプログラムで使用することができ、すなわち1)を取得したい場合は、あなたの唯一のオプションですchrome.processes
がありますが、このAPIはDev channelでしか利用できません(Chromeの安定版やベータ版では使用できません)。
プロセスを一意に識別する識別子が必要な場合は、chrome.webNavigation
APIを使用して「タブのプロセスID」を取得できます。このIDはChrome内でのみ意味があります。詳細を掘り下げる前に、複数のタブが同じプロセスIDを共有でき、1つのタブに複数のプロセスを含めることができるとします(Site isolation projectが有効な場合)。
「タブPID」では、トップレベルのフレームをホストするプロセスを指しているとします。次に、フレームのリストを取得し、次のようにタブのプロセスIDを抽出することができます。
background.js
'use strict';
chrome.browserAction.onClicked.addListener(function(tab) {
chrome.webNavigation.getAllFrames({
tabId: tab.id,
}, function(details) {
if (chrome.runtime.lastError) {
alert('Error: ' + chrome.runtime.lastError.message);
return;
}
for (var i = 0; i < details.length; ++i) {
var frame = details[i];
// The top-level frame has frame ID 0.
if (frame.frameId === 0) {
alert('Tab info:\n' +
'PID: ' + frame.processId + '\n' +
'URL: ' + frame.url);
return; // There is only one frame with ID 0.
}
}
alert('The top-level frame was not found!');
});
});
manifest.jsonを
{
"name": "Show tab PID",
"version": "1",
"manifest_version": 2,
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_title": "Show tab PID"
},
"permissions": [
"webNavigation"
]
}
いいえ、実験的なAPIを除き、他の方法がないchrome.processes
おかげで、私はオペレーションシステムが必要クロムの外部で使用するためのPID。 – AK87