| Index: chrome/test/data/extensions/api_test/processes/api/test.js
|
| ===================================================================
|
| --- chrome/test/data/extensions/api_test/processes/api/test.js (revision 0)
|
| +++ chrome/test/data/extensions/api_test/processes/api/test.js (working copy)
|
| @@ -5,6 +5,7 @@
|
| var fail = chrome.test.callbackFail;
|
| var assertEq = chrome.test.assertEq;
|
| var assertTrue = chrome.test.assertTrue;
|
| +var listenOnce = chrome.test.listenOnce;
|
|
|
| var tabs = [];
|
|
|
| @@ -14,7 +15,7 @@
|
| }));
|
| }
|
|
|
| -var getProcess = chrome.experimental.processes.getProcessForTab;
|
| +var getProcessId = chrome.experimental.processes.getProcessIdForTab;
|
|
|
| function pageUrl(letter) {
|
| return chrome.extension.getURL(letter + ".html");
|
| @@ -53,39 +54,98 @@
|
| },
|
|
|
| function extensionPageInOwnProcess() {
|
| - getProcess(tabs[0].id, pass(function(process0) {
|
| - getProcess(tabs[1].id, pass(function(process1) {
|
| + getProcessId(tabs[0].id, pass(function(pid0) {
|
| + getProcessId(tabs[1].id, pass(function(pid1) {
|
| // about:blank and extension page should not share a process
|
| - assertTrue(process0.id != process1.id);
|
| + assertTrue(pid0 != pid1);
|
| }));
|
| }));
|
| },
|
|
|
| function extensionPagesShareProcess() {
|
| - getProcess(tabs[1].id, pass(function(process1) {
|
| - getProcess(tabs[2].id, pass(function(process2) {
|
| + getProcessId(tabs[1].id, pass(function(pid1) {
|
| + getProcessId(tabs[2].id, pass(function(pid2) {
|
| // Pages from same extension should share a process
|
| - assertEq(process1.id, process2.id);
|
| + assertEq(pid1, pid2);
|
| }));
|
| }));
|
| },
|
|
|
| function newTabPageInOwnProcess() {
|
| - getProcess(tabs[0].id, pass(function(process0) {
|
| - getProcess(tabs[3].id, pass(function(process3) {
|
| + getProcessId(tabs[0].id, pass(function(pid0) {
|
| + getProcessId(tabs[3].id, pass(function(pid3) {
|
| // NTP should not share a process with current tabs
|
| - assertTrue(process0.id != process3.id);
|
| + assertTrue(pid0 != pid3);
|
| }));
|
| }));
|
| },
|
|
|
| function newTabPagesShareProcess() {
|
| - getProcess(tabs[3].id, pass(function(process3) {
|
| - getProcess(tabs[4].id, pass(function(process4) {
|
| + getProcessId(tabs[3].id, pass(function(pid3) {
|
| + getProcessId(tabs[4].id, pass(function(pid4) {
|
| // Multiple NTPs should share a process
|
| - assertEq(process3.id, process4.id);
|
| + assertEq(pid3, pid4);
|
| }));
|
| }));
|
| },
|
|
|
| + function idsInUpdateEvent() {
|
| + listenOnce(chrome.experimental.processes.onUpdated, function(processes) {
|
| + // onUpdated should return a valid dictionary of processes,
|
| + // indexed by process ID.
|
| + var pids = Object.keys(processes);
|
| + assertEq(5, pids.length);
|
| +
|
| + // Should be able to look up process object by ID.
|
| + assertTrue(processes[pids[0]].id == pids[0]);
|
| + assertTrue(processes[pids[0]].id != processes[pids[1]].id);
|
| +
|
| + getProcessId(tabs[0].id, pass(function(pidTab0) {
|
| + // Process ID for tab 0 should be listed in pids.
|
| + assertTrue(processes[pidTab0] != undefined);
|
| + assertEq("renderer", processes[pidTab0].type);
|
| + }));
|
| + });
|
| + },
|
| +
|
| + function typesInUpdateEvent() {
|
| + listenOnce(chrome.experimental.processes.onUpdated, function(processes) {
|
| + // Check types: 1 browser, 3 renderers, and 1 extension
|
| + var browserCount = 0;
|
| + var rendererCount = 0;
|
| + var extensionCount = 0;
|
| + for (pid in processes) {
|
| + switch (processes[pid].type) {
|
| + case "browser":
|
| + browserCount++;
|
| + break;
|
| + case "renderer":
|
| + rendererCount++;
|
| + break;
|
| + case "extension":
|
| + extensionCount++;
|
| + break;
|
| + default:
|
| + fail("Unexpected process type:" + processes[pid].type);
|
| + }
|
| + }
|
| + assertEq(1, browserCount);
|
| + assertEq(3, rendererCount);
|
| + assertEq(1, extensionCount);
|
| + });
|
| + },
|
| +
|
| + function propertiesOfProcesses() {
|
| + listenOnce(chrome.experimental.processes.onUpdated, function(processes) {
|
| + for (pid in processes) {
|
| + var process = processes[pid];
|
| + assertTrue("id" in process);
|
| + assertTrue("type" in process);
|
| + assertTrue("cpu" in process);
|
| + assertTrue("network" in process);
|
| + assertTrue("sharedMemory" in process);
|
| + assertTrue("privateMemory" in process);
|
| + }
|
| + });
|
| + },
|
| ]);
|
|
|