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

Side by Side Diff: ui/file_manager/file_manager/foreground/js/metadata/image_parsers.js

Issue 571453002: Correct indentation, JSDoc, etc... to comply with closure linter. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 3 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 'use strict'; 5 'use strict';
6 6
7 /* Base class for image metadata parsers that only need to look at a short 7 /* Base class for image metadata parsers that only need to look at a short
8 fragment at the start of the file */ 8 fragment at the start of the file */
9 function SimpleImageParser(parent, type, urlFilter, headerSize) { 9 function SimpleImageParser(parent, type, urlFilter, headerSize) {
10 ImageParser.call(this, parent, type, urlFilter); 10 ImageParser.call(this, parent, type, urlFilter);
11 this.headerSize = headerSize; 11 this.headerSize = headerSize;
12 } 12 }
13 13
14 SimpleImageParser.prototype = {__proto__: ImageParser.prototype}; 14 SimpleImageParser.prototype = {__proto__: ImageParser.prototype};
15 15
16 /** 16 /**
17 * @param {File} file File to be parses. 17 * @param {File} file File to be parses.
18 * @param {Object} metadata Metadata object of the file. 18 * @param {Object} metadata Metadata object of the file.
19 * @param {function(Object)} callback Success callback. 19 * @param {function(Object)} callback Success callback.
20 * @param {function(string)} errorCallback Error callback. 20 * @param {function(string)} errorCallback Error callback.
21 */ 21 */
22 SimpleImageParser.prototype.parse = function( 22 SimpleImageParser.prototype.parse = function(
23 file, metadata, callback, errorCallback) { 23 file, metadata, callback, errorCallback) {
24 var self = this; 24 var self = this;
25 util.readFileBytes(file, 0, this.headerSize, 25 util.readFileBytes(
26 function(file, br) { 26 file, 0, this.headerSize,
27 try { 27 function(file, br) {
28 self.parseHeader(metadata, br); 28 try {
29 callback(metadata); 29 self.parseHeader(metadata, br);
30 } catch (e) { 30 callback(metadata);
31 errorCallback(e.toString()); 31 } catch (e) {
32 } 32 errorCallback(e.toString());
33 }, 33 }
34 errorCallback); 34 },
35 errorCallback);
35 }; 36 };
36 37
37 38
38 function PngParser(parent) { 39 function PngParser(parent) {
39 SimpleImageParser.call(this, parent, 'png', /\.png$/i, 24); 40 SimpleImageParser.call(this, parent, 'png', /\.png$/i, 24);
40 } 41 }
41 42
42 PngParser.prototype = {__proto__: SimpleImageParser.prototype}; 43 PngParser.prototype = {__proto__: SimpleImageParser.prototype};
43 44
44 /** 45 /**
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 throw new Error('Invalid WEBP signature: ' + webpSignature); 137 throw new Error('Invalid WEBP signature: ' + webpSignature);
137 138
138 var chunkFormat = br.readString(4); 139 var chunkFormat = br.readString(4);
139 switch (chunkFormat) { 140 switch (chunkFormat) {
140 // VP8 lossy bitstream format. 141 // VP8 lossy bitstream format.
141 case 'VP8 ': 142 case 'VP8 ':
142 br.seek(23); 143 br.seek(23);
143 var lossySignature = br.readScalar(2) | (br.readScalar(1) << 16); 144 var lossySignature = br.readScalar(2) | (br.readScalar(1) << 16);
144 if (lossySignature != 0x2a019d) { 145 if (lossySignature != 0x2a019d) {
145 throw new Error('Invalid VP8 lossy bitstream signature: ' + 146 throw new Error('Invalid VP8 lossy bitstream signature: ' +
146 lossySignature); 147 lossySignature);
147 } 148 }
148 var dimensionBits = br.readScalar(4); 149 var dimensionBits = br.readScalar(4);
149 metadata.width = dimensionBits & 0x3fff; 150 metadata.width = dimensionBits & 0x3fff;
150 metadata.height = (dimensionBits >> 16) & 0x3fff; 151 metadata.height = (dimensionBits >> 16) & 0x3fff;
151 break; 152 break;
152 153
153 // VP8 lossless bitstream format. 154 // VP8 lossless bitstream format.
154 case 'VP8L': 155 case 'VP8L':
155 br.seek(20); 156 br.seek(20);
156 var losslessSignature = br.readScalar(1); 157 var losslessSignature = br.readScalar(1);
157 if (losslessSignature != 0x2f) { 158 if (losslessSignature != 0x2f) {
158 throw new Error('Invalid VP8 lossless bitstream signature: ' + 159 throw new Error('Invalid VP8 lossless bitstream signature: ' +
159 losslessSignature); 160 losslessSignature);
160 } 161 }
161 var dimensionBits = br.readScalar(4); 162 var dimensionBits = br.readScalar(4);
162 metadata.width = (dimensionBits & 0x3fff) + 1; 163 metadata.width = (dimensionBits & 0x3fff) + 1;
163 metadata.height = ((dimensionBits >> 14) & 0x3fff) + 1; 164 metadata.height = ((dimensionBits >> 14) & 0x3fff) + 1;
164 break; 165 break;
165 166
166 // VP8 extended file format. 167 // VP8 extended file format.
167 case 'VP8X': 168 case 'VP8X':
168 br.seek(20); 169 br.seek(20);
169 // Read 24-bit value. ECMAScript assures left-to-right evaluation order. 170 // Read 24-bit value. ECMAScript assures left-to-right evaluation order.
170 metadata.width = (br.readScalar(2) | (br.readScalar(1) << 16)) + 1; 171 metadata.width = (br.readScalar(2) | (br.readScalar(1) << 16)) + 1;
171 metadata.height = (br.readScalar(2) | (br.readScalar(1) << 16)) + 1; 172 metadata.height = (br.readScalar(2) | (br.readScalar(1) << 16)) + 1;
172 break; 173 break;
173 174
174 default: 175 default:
175 throw new Error('Invalid chunk format: ' + chunkFormat); 176 throw new Error('Invalid chunk format: ' + chunkFormat);
176 } 177 }
177 }; 178 };
178 179
179 MetadataDispatcher.registerParserClass(WebpParser); 180 MetadataDispatcher.registerParserClass(WebpParser);
180 181
181 /** 182 /**
182 * Parser for the header of .ico icon files. 183 * Parser for the header of .ico icon files.
183 * @param {MetadataDispatcher} parent Parent metadata dispatcher object. 184 * @param {MetadataDispatcher} parent Parent metadata dispatcher object.
184 * @constructor 185 * @constructor
185 * @extends SimpleImageParser 186 * @extends {SimpleImageParser}
186 */ 187 */
187 function IcoParser(parent) { 188 function IcoParser(parent) {
188 SimpleImageParser.call(this, parent, 'ico', /\.ico$/i, 8); 189 SimpleImageParser.call(this, parent, 'ico', /\.ico$/i, 8);
189 } 190 }
190 191
191 IcoParser.prototype = {__proto__: SimpleImageParser.prototype}; 192 IcoParser.prototype = {__proto__: SimpleImageParser.prototype};
192 193
193 /** 194 /**
194 * Parse the binary data as a ico header and stores to metadata. 195 * Parse the binary data as a ico header and stores to metadata.
195 * @param {Object} metadata Dictionary to store the parser metadata. 196 * @param {Object} metadata Dictionary to store the parser metadata.
196 * @param {ByteReader} byteReader Reader for header binary data. 197 * @param {ByteReader} byteReader Reader for header binary data.
197 */ 198 */
198 IcoParser.prototype.parseHeader = function(metadata, byteReader) { 199 IcoParser.prototype.parseHeader = function(metadata, byteReader) {
199 byteReader.setByteOrder(ByteReader.LITTLE_ENDIAN); 200 byteReader.setByteOrder(ByteReader.LITTLE_ENDIAN);
200 201
201 var signature = byteReader.readString(4); 202 var signature = byteReader.readString(4);
202 if (signature !== '\x00\x00\x00\x01') 203 if (signature !== '\x00\x00\x00\x01')
203 throw new Error('Invalid ICO signature: ' + signature); 204 throw new Error('Invalid ICO signature: ' + signature);
204 205
205 byteReader.seek(2); 206 byteReader.seek(2);
206 metadata.width = byteReader.readScalar(1); 207 metadata.width = byteReader.readScalar(1);
207 metadata.height = byteReader.readScalar(1); 208 metadata.height = byteReader.readScalar(1);
208 }; 209 };
209 210
210 MetadataDispatcher.registerParserClass(IcoParser); 211 MetadataDispatcher.registerParserClass(IcoParser);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698