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

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

Issue 15292011: Prevent duplicate webstore install requests being serviced. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix tests Created 7 years, 6 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // The id of an extension we're using for install tests. 5 // The id of an extension we're using for install tests.
6 var extensionId = "enfkhcelefdadlmkffamgdlgplcionje"; 6 var extensionId = "enfkhcelefdadlmkffamgdlgplcionje";
7 7
8 // The id of an app we're using for install tests. 8 // The id of an app we're using for install tests.
9 var appId = "iladmdjkfniedhfhcfoefgojhgaiaccc"; 9 var appId = "iladmdjkfniedhfhcfoefgojhgaiaccc";
10 10
(...skipping 23 matching lines...) Expand all
34 checkItemInstalled(extensionId, callback); 34 checkItemInstalled(extensionId, callback);
35 } 35 }
36 36
37 var cachedIcon = null; 37 var cachedIcon = null;
38 var img = null; 38 var img = null;
39 39
40 // This returns the base64-encoded content of the extension's image. 40 // This returns the base64-encoded content of the extension's image.
41 function getIconData(callback) { 41 function getIconData(callback) {
42 if (cachedIcon) { 42 if (cachedIcon) {
43 callback(cachedIcon); 43 callback(cachedIcon);
44 return;
44 } 45 }
45 var canvas = document.createElement("canvas"); 46 var canvas = document.createElement("canvas");
46 canvas.style.display = "none"; 47 canvas.style.display = "none";
47 canvas.width = 128; 48 canvas.width = 128;
48 canvas.height = 128; 49 canvas.height = 128;
49 img = new Image(); 50 img = new Image();
50 img.onload = function() { 51 img.onload = function() {
51 console.log('img.onload called'); 52 console.log('img.onload called');
52 var ctx = canvas.getContext("2d"); 53 var ctx = canvas.getContext("2d");
53 ctx.drawImage(img, 0, 0); 54 ctx.drawImage(img, 0, 0);
54 var tmp = canvas.toDataURL(); 55 var tmp = canvas.toDataURL();
55 // Strip the data url prefix to just get the base64-encoded bytes. 56 // Strip the data url prefix to just get the base64-encoded bytes.
56 cachedIcon = tmp.slice(tmp.search(",")+1); 57 cachedIcon = tmp.slice(tmp.search(",")+1);
57 callback(cachedIcon); 58 callback(cachedIcon);
58 }; 59 };
59 img.src = "extension/icon.png"; 60 img.src = "extension/icon.png";
60 } 61 }
61 62
62 // This returns the string contents of the extension's manifest file. 63 // This returns the string contents of the extension's manifest file.
63 function getManifest(alternativePath) { 64 function getManifest(alternativePath) {
64 // Do a synchronous XHR to get the manifest. 65 // Do a synchronous XHR to get the manifest.
65 var xhr = new XMLHttpRequest(); 66 var xhr = new XMLHttpRequest();
66 xhr.open("GET", 67 xhr.open("GET",
67 alternativePath ? alternativePath : "extension/manifest.json", 68 alternativePath ? alternativePath : "extension/manifest.json",
68 false); 69 false);
69 xhr.send(null); 70 xhr.send(null);
70 return xhr.responseText; 71 return xhr.responseText;
71 } 72 }
73
74 // Installs the extension with the given |installOptions|, calls
75 // |whileInstalled| and then uninstalls the extension.
76 function installAndCleanUp(installOptions, whileInstalled) {
77 // Begin installing.
78 chrome.webstorePrivate.beginInstallWithManifest3(
79 installOptions,
80 callbackPass(function(result) {
81 assertNoLastError();
82 assertEq("", result);
83
84 // Now complete the installation.
85 chrome.webstorePrivate.completeInstall(
86 extensionId,
87 callbackPass(function(result) {
88 assertNoLastError();
89 assertEq(undefined, result);
90
91 whileInstalled();
92
93 chrome.management.uninstall(extensionId, {}, callbackPass());
94 }));
95 }));
96 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698