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

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

Issue 2607453002: Files.app: Compile file_manager/foreground/js/metadata in v2 syntax. (Closed)
Patch Set: Re-rebase (PS4 had unrelated changes.) Created 3 years, 11 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 /** 5 /**
6 * Base class for image metadata parsers that only need to look at a short 6 * Base class for image metadata parsers that only need to look at a short
7 * fragment at the start of the file. 7 * fragment at the start of the file.
8 * @param {MetadataDispatcher} parent Parent object. 8 * @param {MetadataParserLogger} parent Parent object.
9 * @param {string} type Image type. 9 * @param {string} type Image type.
10 * @param {RegExp} urlFilter RegExp to match URLs. 10 * @param {RegExp} urlFilter RegExp to match URLs.
11 * @param {number} headerSize Size of header. 11 * @param {number} headerSize Size of header.
12 * @constructor 12 * @constructor
13 * @struct 13 * @struct
14 * @extends {ImageParser} 14 * @extends {ImageParser}
15 */ 15 */
16 function SimpleImageParser(parent, type, urlFilter, headerSize) { 16 function SimpleImageParser(parent, type, urlFilter, headerSize) {
17 ImageParser.call(this, parent, type, urlFilter); 17 ImageParser.call(this, parent, type, urlFilter);
18 this.headerSize = headerSize; 18 this.headerSize = headerSize;
(...skipping 25 matching lines...) Expand all
44 44
45 /** 45 /**
46 * Parse header of an image. Inherited class must implement this. 46 * Parse header of an image. Inherited class must implement this.
47 * @param {Object} metadata Dictionary to store the parsed metadata. 47 * @param {Object} metadata Dictionary to store the parsed metadata.
48 * @param {ByteReader} byteReader Reader for header binary data. 48 * @param {ByteReader} byteReader Reader for header binary data.
49 */ 49 */
50 SimpleImageParser.prototype.parseHeader = function(metadata, byteReader) {}; 50 SimpleImageParser.prototype.parseHeader = function(metadata, byteReader) {};
51 51
52 /** 52 /**
53 * Parser for the header of png files. 53 * Parser for the header of png files.
54 * @param {MetadataDispatcher} parent Parent object. 54 * @param {MetadataParserLogger} parent Parent object.
55 * @extends {SimpleImageParser} 55 * @extends {SimpleImageParser}
56 * @constructor 56 * @constructor
57 * @struct 57 * @struct
58 */ 58 */
59 function PngParser(parent) { 59 function PngParser(parent) {
60 SimpleImageParser.call(this, parent, 'png', /\.png$/i, 24); 60 SimpleImageParser.call(this, parent, 'png', /\.png$/i, 24);
61 } 61 }
62 62
63 PngParser.prototype = {__proto__: SimpleImageParser.prototype}; 63 PngParser.prototype = {__proto__: SimpleImageParser.prototype};
64 64
65 /** 65 /**
66 * @override 66 * @override
67 */ 67 */
68 PngParser.prototype.parseHeader = function(metadata, br) { 68 PngParser.prototype.parseHeader = function(metadata, br) {
69 br.setByteOrder(ByteReader.BIG_ENDIAN); 69 br.setByteOrder(ByteReader.BIG_ENDIAN);
70 70
71 var signature = br.readString(8); 71 var signature = br.readString(8);
72 if (signature != '\x89PNG\x0D\x0A\x1A\x0A') 72 if (signature != '\x89PNG\x0D\x0A\x1A\x0A')
73 throw new Error('Invalid PNG signature: ' + signature); 73 throw new Error('Invalid PNG signature: ' + signature);
74 74
75 br.seek(12); 75 br.seek(12);
76 var ihdr = br.readString(4); 76 var ihdr = br.readString(4);
77 if (ihdr != 'IHDR') 77 if (ihdr != 'IHDR')
78 throw new Error('Missing IHDR chunk'); 78 throw new Error('Missing IHDR chunk');
79 79
80 metadata.width = br.readScalar(4); 80 metadata.width = br.readScalar(4);
81 metadata.height = br.readScalar(4); 81 metadata.height = br.readScalar(4);
82 }; 82 };
83 83
84 MetadataDispatcher.registerParserClass(PngParser); 84 registerParserClass(PngParser);
85 85
86 /** 86 /**
87 * Parser for the header of bmp files. 87 * Parser for the header of bmp files.
88 * @param {MetadataDispatcher} parent Parent object. 88 * @param {MetadataParserLogger} parent Parent object.
89 * @constructor 89 * @constructor
90 * @extends {SimpleImageParser} 90 * @extends {SimpleImageParser}
91 * @struct 91 * @struct
92 */ 92 */
93 function BmpParser(parent) { 93 function BmpParser(parent) {
94 SimpleImageParser.call(this, parent, 'bmp', /\.bmp$/i, 28); 94 SimpleImageParser.call(this, parent, 'bmp', /\.bmp$/i, 28);
95 } 95 }
96 96
97 BmpParser.prototype = {__proto__: SimpleImageParser.prototype}; 97 BmpParser.prototype = {__proto__: SimpleImageParser.prototype};
98 98
99 /** 99 /**
100 * @override 100 * @override
101 */ 101 */
102 BmpParser.prototype.parseHeader = function(metadata, br) { 102 BmpParser.prototype.parseHeader = function(metadata, br) {
103 br.setByteOrder(ByteReader.LITTLE_ENDIAN); 103 br.setByteOrder(ByteReader.LITTLE_ENDIAN);
104 104
105 var signature = br.readString(2); 105 var signature = br.readString(2);
106 if (signature != 'BM') 106 if (signature != 'BM')
107 throw new Error('Invalid BMP signature: ' + signature); 107 throw new Error('Invalid BMP signature: ' + signature);
108 108
109 br.seek(18); 109 br.seek(18);
110 metadata.width = br.readScalar(4); 110 metadata.width = br.readScalar(4);
111 metadata.height = br.readScalar(4); 111 metadata.height = br.readScalar(4);
112 }; 112 };
113 113
114 MetadataDispatcher.registerParserClass(BmpParser); 114 registerParserClass(BmpParser);
115 115
116 /** 116 /**
117 * Parser for the header of gif files. 117 * Parser for the header of gif files.
118 * @param {MetadataDispatcher} parent Parent object. 118 * @param {MetadataParserLogger} parent Parent object.
119 * @constructor 119 * @constructor
120 * @extends {SimpleImageParser} 120 * @extends {SimpleImageParser}
121 * @struct 121 * @struct
122 */ 122 */
123 function GifParser(parent) { 123 function GifParser(parent) {
124 SimpleImageParser.call(this, parent, 'gif', /\.Gif$/i, 10); 124 SimpleImageParser.call(this, parent, 'gif', /\.Gif$/i, 10);
125 } 125 }
126 126
127 GifParser.prototype = {__proto__: SimpleImageParser.prototype}; 127 GifParser.prototype = {__proto__: SimpleImageParser.prototype};
128 128
129 /** 129 /**
130 * @override 130 * @override
131 */ 131 */
132 GifParser.prototype.parseHeader = function(metadata, br) { 132 GifParser.prototype.parseHeader = function(metadata, br) {
133 br.setByteOrder(ByteReader.LITTLE_ENDIAN); 133 br.setByteOrder(ByteReader.LITTLE_ENDIAN);
134 134
135 var signature = br.readString(6); 135 var signature = br.readString(6);
136 if (!signature.match(/GIF8(7|9)a/)) 136 if (!signature.match(/GIF8(7|9)a/))
137 throw new Error('Invalid GIF signature: ' + signature); 137 throw new Error('Invalid GIF signature: ' + signature);
138 138
139 metadata.width = br.readScalar(2); 139 metadata.width = br.readScalar(2);
140 metadata.height = br.readScalar(2); 140 metadata.height = br.readScalar(2);
141 }; 141 };
142 142
143 MetadataDispatcher.registerParserClass(GifParser); 143 registerParserClass(GifParser);
144 144
145 /** 145 /**
146 * Parser for the header of webp files. 146 * Parser for the header of webp files.
147 * @param {MetadataDispatcher} parent Parent object. 147 * @param {MetadataParserLogger} parent Parent object.
148 * @constructor 148 * @constructor
149 * @extends {SimpleImageParser} 149 * @extends {SimpleImageParser}
150 * @struct 150 * @struct
151 */ 151 */
152 function WebpParser(parent) { 152 function WebpParser(parent) {
153 SimpleImageParser.call(this, parent, 'webp', /\.webp$/i, 30); 153 SimpleImageParser.call(this, parent, 'webp', /\.webp$/i, 30);
154 } 154 }
155 155
156 WebpParser.prototype = {__proto__: SimpleImageParser.prototype}; 156 WebpParser.prototype = {__proto__: SimpleImageParser.prototype};
157 157
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 // Read 24-bit value. ECMAScript assures left-to-right evaluation order. 204 // Read 24-bit value. ECMAScript assures left-to-right evaluation order.
205 metadata.width = (br.readScalar(2) | (br.readScalar(1) << 16)) + 1; 205 metadata.width = (br.readScalar(2) | (br.readScalar(1) << 16)) + 1;
206 metadata.height = (br.readScalar(2) | (br.readScalar(1) << 16)) + 1; 206 metadata.height = (br.readScalar(2) | (br.readScalar(1) << 16)) + 1;
207 break; 207 break;
208 208
209 default: 209 default:
210 throw new Error('Invalid chunk format: ' + chunkFormat); 210 throw new Error('Invalid chunk format: ' + chunkFormat);
211 } 211 }
212 }; 212 };
213 213
214 MetadataDispatcher.registerParserClass(WebpParser); 214 registerParserClass(WebpParser);
215 215
216 /** 216 /**
217 * Parser for the header of .ico icon files. 217 * Parser for the header of .ico icon files.
218 * @param {MetadataDispatcher} parent Parent metadata dispatcher object. 218 * @param {MetadataParserLogger} parent Parent metadata dispatcher object.
219 * @constructor 219 * @constructor
220 * @extends {SimpleImageParser} 220 * @extends {SimpleImageParser}
221 */ 221 */
222 function IcoParser(parent) { 222 function IcoParser(parent) {
223 SimpleImageParser.call(this, parent, 'ico', /\.ico$/i, 8); 223 SimpleImageParser.call(this, parent, 'ico', /\.ico$/i, 8);
224 } 224 }
225 225
226 IcoParser.prototype = {__proto__: SimpleImageParser.prototype}; 226 IcoParser.prototype = {__proto__: SimpleImageParser.prototype};
227 227
228 /** 228 /**
229 * @override 229 * @override
230 */ 230 */
231 IcoParser.prototype.parseHeader = function(metadata, byteReader) { 231 IcoParser.prototype.parseHeader = function(metadata, byteReader) {
232 byteReader.setByteOrder(ByteReader.LITTLE_ENDIAN); 232 byteReader.setByteOrder(ByteReader.LITTLE_ENDIAN);
233 233
234 var signature = byteReader.readString(4); 234 var signature = byteReader.readString(4);
235 if (signature !== '\x00\x00\x00\x01') 235 if (signature !== '\x00\x00\x00\x01')
236 throw new Error('Invalid ICO signature: ' + signature); 236 throw new Error('Invalid ICO signature: ' + signature);
237 237
238 byteReader.seek(2); 238 byteReader.seek(2);
239 metadata.width = byteReader.readScalar(1); 239 metadata.width = byteReader.readScalar(1);
240 metadata.height = byteReader.readScalar(1); 240 metadata.height = byteReader.readScalar(1);
241 }; 241 };
242 242
243 MetadataDispatcher.registerParserClass(IcoParser); 243 registerParserClass(IcoParser);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698