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

Side by Side Diff: chrome/test/data/extensions/api_test/webrequest/api/test.html

Issue 6880219: Fix crash with webRequest.event.addListener when provided an invalid URL (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: oops Created 9 years, 8 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
OLDNEW
1 <script> 1 <script>
2 chrome.test.runTests([ 2 chrome.test.runTests([
3 function addListeners() { 3 function addListeners() {
4 chrome.experimental.webRequest.onBeforeRequest.addListener( 4 chrome.experimental.webRequest.onBeforeRequest.addListener(
5 function(details) {}); 5 function(details) {});
6 chrome.experimental.webRequest.onBeforeSendHeaders.addListener( 6 chrome.experimental.webRequest.onBeforeSendHeaders.addListener(
7 function(details) {}); 7 function(details) {});
8 chrome.experimental.webRequest.onRequestSent.addListener( 8 chrome.experimental.webRequest.onRequestSent.addListener(
9 function(details) {}); 9 function(details) {});
10 chrome.experimental.webRequest.onBeforeRedirect.addListener( 10 chrome.experimental.webRequest.onBeforeRedirect.addListener(
11 function(details) {}); 11 function(details) {});
12 chrome.experimental.webRequest.onResponseStarted.addListener( 12 chrome.experimental.webRequest.onResponseStarted.addListener(
13 function(details) {}); 13 function(details) {});
14 chrome.experimental.webRequest.onCompleted.addListener( 14 chrome.experimental.webRequest.onCompleted.addListener(
15 function(details) {}); 15 function(details) {});
16 chrome.experimental.webRequest.onErrorOccurred.addListener( 16 chrome.experimental.webRequest.onErrorOccurred.addListener(
17 function(details) {}); 17 function(details) {});
18 chrome.test.succeed(); 18 chrome.test.succeed();
19 }, 19 },
20 20
21 // Tests that the extra parameters to addListener are checked for invalid 21 // Tests that the extra parameters to addListener are checked for invalid
22 // values. 22 // values.
23 function specialEvents() { 23 function specialEvents() {
24 var goodFilter = {urls: ["http://*.google.com/*"]}; 24 var goodFilter = {urls: ["http://*.google.com/*"]};
25 var goodExtraInfo = ["blocking"]; 25 var goodExtraInfo = ["blocking"];
26 var badFilter = {broken: 42};
27 var badExtraInfo = ["garbage"];
28 // Works for onBeforeSendHeaders only:
29 var headersExtraInfo = ["requestHeaders"];
30 chrome.experimental.webRequest.onBeforeRequest.addListener( 26 chrome.experimental.webRequest.onBeforeRequest.addListener(
31 function(details) {}, 27 function(details) {},
32 goodFilter, goodExtraInfo); 28 goodFilter, goodExtraInfo);
29
30 // Try a bad RequestFilter.
33 try { 31 try {
34 chrome.experimental.webRequest.onBeforeRequest.addListener( 32 chrome.experimental.webRequest.onBeforeRequest.addListener(
35 function(details) {}, 33 function(details) {},
36 badFilter, goodExtraInfo); 34 {badFilter: 42}, goodExtraInfo);
37 chrome.test.fail(); 35 chrome.test.fail();
38 } catch (e) { 36 } catch (e) {
39 chrome.test.assertTrue(e.message.search("Invalid value") >= 0); 37 chrome.test.assertTrue(e.message.search("Invalid value") >= 0);
40 } 38 }
39
40 // Try a bad ExtraInfoSpec.
41 try { 41 try {
42 chrome.experimental.webRequest.onBeforeRequest.addListener( 42 chrome.experimental.webRequest.onBeforeRequest.addListener(
43 function(details) {}, 43 function(details) {},
44 goodFilter, badExtraInfo); 44 goodFilter, ["badExtraInfo"]);
45 chrome.test.fail(); 45 chrome.test.fail();
46 } catch (e) { 46 } catch (e) {
47 chrome.test.assertTrue(e.message.search("Invalid value") >= 0); 47 chrome.test.assertTrue(e.message.search("Invalid value") >= 0);
48 } 48 }
49
50 // This extraInfoSpec should only work for onBeforeSendHeaders.
51 var headersExtraInfo = ["requestHeaders"];
49 chrome.experimental.webRequest.onBeforeSendHeaders.addListener( 52 chrome.experimental.webRequest.onBeforeSendHeaders.addListener(
50 function(details) {}, 53 function(details) {},
51 goodFilter, headersExtraInfo); 54 goodFilter, headersExtraInfo);
52 try { 55 try {
53 chrome.experimental.webRequest.onBeforeRequest.addListener( 56 chrome.experimental.webRequest.onBeforeRequest.addListener(
54 function(details) {}, 57 function(details) {},
55 goodFilter, headersExtraInfo); 58 goodFilter, headersExtraInfo);
56 chrome.test.fail(); 59 chrome.test.fail();
57 } catch (e) { 60 } catch (e) {
58 chrome.test.assertTrue(e.message.search("Invalid value") >= 0); 61 chrome.test.assertTrue(e.message.search("Invalid value") >= 0);
59 } 62 }
63
64 // Try a bad URL pattern. The error happens asynchronously. We're just
65 // verifying that the browser doesn't crash.
66 chrome.experimental.webRequest.onBeforeRequest.addListener(
67 function(details) {},
68 {urls: ["badpattern://*"]});
battre 2011/04/27 09:45:31 optional: do you want to send a removeListener ins
Matt Perry 2011/04/27 19:45:59 Done.
69
60 chrome.test.succeed(); 70 chrome.test.succeed();
61 }, 71 },
62 ]); 72 ]);
63 </script> 73 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698