Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(293)

Unified Diff: chrome/test/data/extensions/api_test/processes/api/test.js

Issue 3597016: Expands the chrome.experimental.processes extension API.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
+ }
+ });
+ },
]);
« no previous file with comments | « chrome/test/data/extensions/api_test/processes/api/test.html ('k') | chrome/test/data/extensions/api_test/processes/b.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698