| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| 'use strict'; |
| |
| /** |
| * @param {MetadataDispatcher} parent Parent object. |
| * @param {string} type Parser type. |
| * @param {RegExp} urlFilter RegExp to match URLs. |
| * @constructor |
| */ |
| function MetadataParser(parent, type, urlFilter) { |
| this.parent_ = parent; |
| this.type = type; |
| this.urlFilter = urlFilter; |
| this.verbose = parent.verbose; |
| this.mimeType = 'unknown'; |
| } |
| |
| /** |
| * Output an error message. |
| * @param {...Object} var_args Arguments. |
| */ |
| MetadataParser.prototype.error = function(var_args) { |
| this.parent_.error.apply(this.parent_, arguments); |
| }; |
| |
| /** |
| * Output a log message. |
| * @param {...Object} var_args Arguments. |
| */ |
| MetadataParser.prototype.log = function(var_args) { |
| this.parent_.log.apply(this.parent_, arguments); |
| }; |
| |
| /** |
| * Output a log message if |verbose| flag is on. |
| * @param {...Object} var_args Arguments. |
| */ |
| MetadataParser.prototype.vlog = function(var_args) { |
| if (this.verbose) |
| this.parent_.log.apply(this.parent_, arguments); |
| }; |
| |
| /** |
| * @return {Object} Metadata object with the minimal set of properties. |
| */ |
| MetadataParser.prototype.createDefaultMetadata = function() { |
| return { |
| type: this.type, |
| mimeType: this.mimeType |
| }; |
| }; |
| |
| /* Base class for image metadata parsers */ |
| function ImageParser(parent, type, urlFilter) { |
| MetadataParser.apply(this, arguments); |
| this.mimeType = 'image/' + this.type; |
| } |
| |
| ImageParser.prototype = {__proto__: MetadataParser.prototype}; |