| OLD | NEW |
| 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 // Custom bindings for the contentSettings API. | 5 // Custom bindings for the contentSettings API. |
| 6 | 6 |
| 7 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); | 7 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); |
| 8 var sendRequest = require('sendRequest').sendRequest; | 8 var sendRequest = require('sendRequest').sendRequest; |
| 9 var validate = require('schemaUtils').validate; |
| 9 | 10 |
| 10 chromeHidden.registerCustomType('contentSettings.ContentSetting', function() { | 11 chromeHidden.registerCustomType('contentSettings.ContentSetting', function() { |
| 11 function extendSchema(schema) { | 12 function extendSchema(schema) { |
| 12 var extendedSchema = schema.slice(); | 13 var extendedSchema = schema.slice(); |
| 13 extendedSchema.unshift({'type': 'string'}); | 14 extendedSchema.unshift({'type': 'string'}); |
| 14 return extendedSchema; | 15 return extendedSchema; |
| 15 } | 16 } |
| 16 | 17 |
| 17 function ContentSetting(contentType, settingSchema) { | 18 function ContentSetting(contentType, settingSchema) { |
| 18 this.get = function(details, callback) { | 19 this.get = function(details, callback) { |
| 19 var getSchema = this.parameters.get; | 20 var getSchema = this.functionSchemas.get.definition.parameters; |
| 20 chromeHidden.validate([details, callback], getSchema); | 21 validate([details, callback], getSchema); |
| 21 return sendRequest('contentSettings.get', | 22 return sendRequest('contentSettings.get', |
| 22 [contentType, details, callback], | 23 [contentType, details, callback], |
| 23 extendSchema(getSchema)); | 24 extendSchema(getSchema)); |
| 24 }; | 25 }; |
| 25 this.set = function(details, callback) { | 26 this.set = function(details, callback) { |
| 26 var setSchema = this.parameters.set.slice(); | 27 var setSchema = this.functionSchemas.set.definition.parameters.slice(); |
| 27 setSchema[0].properties.setting = settingSchema; | 28 setSchema[0].properties.setting = settingSchema; |
| 28 chromeHidden.validate([details, callback], setSchema); | 29 validate([details, callback], setSchema); |
| 29 return sendRequest('contentSettings.set', | 30 return sendRequest('contentSettings.set', |
| 30 [contentType, details, callback], | 31 [contentType, details, callback], |
| 31 extendSchema(setSchema)); | 32 extendSchema(setSchema)); |
| 32 }; | 33 }; |
| 33 this.clear = function(details, callback) { | 34 this.clear = function(details, callback) { |
| 34 var clearSchema = this.parameters.clear; | 35 var clearSchema = this.functionSchemas.clear.definition.parameters; |
| 35 chromeHidden.validate([details, callback], clearSchema); | 36 validate([details, callback], clearSchema); |
| 36 return sendRequest('contentSettings.clear', | 37 return sendRequest('contentSettings.clear', |
| 37 [contentType, details, callback], | 38 [contentType, details, callback], |
| 38 extendSchema(clearSchema)); | 39 extendSchema(clearSchema)); |
| 39 }; | 40 }; |
| 40 this.getResourceIdentifiers = function(callback) { | 41 this.getResourceIdentifiers = function(callback) { |
| 41 var schema = this.parameters.getResourceIdentifiers; | 42 var schema = |
| 42 chromeHidden.validate([callback], schema); | 43 this.functionSchemas.getResourceIdentifiers.definition.parameters; |
| 44 validate([callback], schema); |
| 43 return sendRequest( | 45 return sendRequest( |
| 44 'contentSettings.getResourceIdentifiers', | 46 'contentSettings.getResourceIdentifiers', |
| 45 [contentType, callback], | 47 [contentType, callback], |
| 46 extendSchema(schema)); | 48 extendSchema(schema)); |
| 47 }; | 49 }; |
| 48 } | 50 } |
| 49 | 51 |
| 50 return ContentSetting; | 52 return ContentSetting; |
| 51 }); | 53 }); |
| OLD | NEW |