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

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

Issue 8758008: Move another block of extension tests to manifest_version 2. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years 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
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 /*
6 This extension is a file intent handler and does the following during the test:
7
8 1. Its background page first registers content hander.
9 2. When content handler callback is invoked, opens tab.html page and passes
10 file url via hash ref.
11 3. Tries to resolve target file url and reads its content.
12 4. Send file content to file browser extension.
13 */
14
15 // The ID of the extension we want to talk to.
16 var fileBrowserExtensionId = "ddammdhioacbehjngdmkjcjbnfginlla";
17
18 // Passed file entry url.
19 var entryUrl = null;
20 // Expected file content.
21 var expectedContent = null;
22
23 function errorCallback(e) {
24 var msg = '';
25 if (!e.code) {
26 msg = e.message;
27 } else {
28 switch (e.code) {
29 case FileError.QUOTA_EXCEEDED_ERR:
30 msg = 'QUOTA_EXCEEDED_ERR';
31 break;
32 case FileError.NOT_FOUND_ERR:
33 msg = 'NOT_FOUND_ERR';
34 break;
35 case FileError.SECURITY_ERR:
36 msg = 'SECURITY_ERR';
37 break;
38 case FileError.INVALID_MODIFICATION_ERR:
39 msg = 'INVALID_MODIFICATION_ERR';
40 break;
41 case FileError.INVALID_STATE_ERR:
42 msg = 'INVALID_STATE_ERR';
43 break;
44 default:
45 msg = 'Unknown Error';
46 break;
47 };
48 }
49 chrome.extension.sendRequest(fileBrowserExtensionId,
50 {fileContent: null,
51 error: "Handler file error: " + msg},
52 function(response) {});
53 }
54
55 function onGotEntryByUrl(entry) {
56 console.log('Got entry by URL: ' + entry.toURL());
57 var reader = new FileReader();
58 reader.onloadend = function(e) {
59 if (reader.result != expectedContent) {
60 chrome.extension.sendRequest(
61 fileBrowserExtensionId,
62 {fileContent: null, error: "File content does not match."},
63 function(response) {});
64 } else {
65 // Send data back to the file browser extension
66 chrome.extension.sendRequest(
67 fileBrowserExtensionId,
68 {fileContent: reader.result, error: null},
69 function(response) {});
70 }
71 };
72 reader.onerror = errorCallback;
73 entry.file(function(file) {
74 reader.readAsText(file);
75 });
76 }
77
78 function readEntryByUrl() {
79 window.webkitResolveLocalFileSystemURL(entryUrl, onGotEntryByUrl,
80 errorCallback);
81 }
82
83 function onTabLoaded() {
84 var entries = chrome.extension.getBackgroundPage().getLastFileEntries();
85 if (!entries || entries.length != 1 || !entries[0]) {
86 chrome.extension.sendRequest(
87 fileBrowserExtensionId,
88 {fileContent: null, error: "Invalid file entries."},
89 function(response) {});
90 return;
91 }
92 var entry = entries[0];
93 var reader = new FileReader();
94 entryUrl = entry.toURL();
95 reader.onloadend = function(e) {
96 var content = document.getElementById('content');
97 content.innerHTML = reader.result;
98 expectedContent = reader.result;
99 readEntryByUrl();
100 };
101 reader.onerror = errorCallback;
102 entry.file(function(file) {
103 reader.readAsText(file);
104 });
105 }
106
107 window.addEventListener("load", onTabLoaded, false);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698