我试图通过Chrome扩展插件获取与当前标签关联的进程ID。从Chrome扩展中获取Chrome标签页pid
我确实设法通过chrome.processes
实验API。
有什么办法可以通过标准(非实验性)API获取标签页pid?
我试图通过Chrome扩展插件获取与当前标签关联的进程ID。从Chrome扩展中获取Chrome标签页pid
我确实设法通过chrome.processes
实验API。
有什么办法可以通过标准(非实验性)API获取标签页pid?
如果你想获得真正的进程ID(即一个可以被其他程序用来识别过程),那么你唯一的选择是chrome.processes
,但此API仅适用于Dev channel(对于Chrome稳定版和Beta版不适用)。
如果您只需要一个标识符来唯一标识进程,那么您可以通过chrome.webNavigation
API获取“标签的进程ID”。此ID仅在Chrome中有意义。在深入研究细节之前,我们首先说多个选项卡可以共享相同的进程ID,并且一个选项卡可以包含多个进程(启用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