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

Side by Side Diff: chrome/test/data/extensions/api_test/processes/test.js

Issue 3801008: 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/test/data/extensions/api_test/processes/test.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Processes API test for Chrome.
2 // browser_tests.exe --gtest_filter=ExtensionApiTest.Processes
3
4 var pass = chrome.test.callbackPass;
5 var fail = chrome.test.callbackFail;
6 var assertEq = chrome.test.assertEq;
7 var assertTrue = chrome.test.assertTrue;
8
9 var tabs = [];
10
11 function createTab(index, url) {
12 chrome.tabs.create({"url": url}, pass(function(tab) {
13 tabs[index] = tab;
14 }));
15 }
16
17 var getProcess = chrome.experimental.processes.getProcessForTab;
18
19 function pageUrl(letter) {
20 return chrome.extension.getURL(letter + ".html");
21 }
22
23 chrome.test.runTests([
24 function setupProcessTests() {
25 // Open 4 tabs for test, then wait and create a 5th
26 createTab(0, "about:blank");
27 createTab(1, pageUrl("a"));
28 createTab(2, pageUrl("b"));
29 createTab(3, "chrome://newtab/");
30
31 // Wait for all loads to complete.
32 var completedCount = 0;
33 var onUpdatedCompleted = chrome.test.listenForever(
34 chrome.tabs.onUpdated,
35 function(changedTabId, changeInfo, changedTab) {
36 if (changedTab.status == "complete") {
37 completedCount++;
38
39 // Once the NTP finishes loading, create another one. This ensures
40 // both NTPs end up in the same process.
41 if (changedTabId == tabs[3].id) {
42 createTab(4, "chrome://newtab/");
43 }
44 }
45
46 // Once all tabs are done loading, continue with the next test.
47 if (completedCount == 4) {
48 onUpdatedCompleted();
49 }
50 }
51 );
52
53 },
54
55 function extensionPageInOwnProcess() {
56 getProcess(tabs[0].id, pass(function(process0) {
57 getProcess(tabs[1].id, pass(function(process1) {
58 // about:blank and extension page should not share a process
59 assertTrue(process0.id != process1.id);
60 }));
61 }));
62 },
63
64 function extensionPagesShareProcess() {
65 getProcess(tabs[1].id, pass(function(process1) {
66 getProcess(tabs[2].id, pass(function(process2) {
67 // Pages from same extension should share a process
68 assertEq(process1.id, process2.id);
69 }));
70 }));
71 },
72
73 function newTabPageInOwnProcess() {
74 getProcess(tabs[0].id, pass(function(process0) {
75 getProcess(tabs[3].id, pass(function(process3) {
76 // NTP should not share a process with current tabs
77 assertTrue(process0.id != process3.id);
78 }));
79 }));
80 },
81
82 function newTabPagesShareProcess() {
83 getProcess(tabs[3].id, pass(function(process3) {
84 getProcess(tabs[4].id, pass(function(process4) {
85 // Multiple NTPs should share a process
86 assertEq(process3.id, process4.id);
87 }));
88 }));
89 },
90
91 ]);
OLDNEW
« no previous file with comments | « chrome/test/data/extensions/api_test/processes/test.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698