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 binding for the contentSettings API. | 5 // Custom binding for the contentSettings API. |
6 | 6 |
7 var sendRequest = require('sendRequest').sendRequest; | 7 var sendRequest = require('sendRequest').sendRequest; |
8 var validate = require('schemaUtils').validate; | 8 var validate = require('schemaUtils').validate; |
9 | 9 |
10 // Some content types have been removed and no longer correspond to a real | 10 // Some content types have been removed and no longer correspond to a real |
(...skipping 29 matching lines...) Expand all Loading... | |
40 $Function.apply(callback, undefined, [{setting: dummySetting}]); | 40 $Function.apply(callback, undefined, [{setting: dummySetting}]); |
41 return; | 41 return; |
42 } | 42 } |
43 | 43 |
44 return sendRequest('contentSettings.get', | 44 return sendRequest('contentSettings.get', |
45 [contentType, details, callback], | 45 [contentType, details, callback], |
46 extendSchema(getSchema)); | 46 extendSchema(getSchema)); |
47 }; | 47 }; |
48 | 48 |
49 this.set = function(details, callback) { | 49 this.set = function(details, callback) { |
50 // We check if the setting is deprecated first, since the validation will | |
51 // fail for deprecated types. | |
52 if ($Object.hasOwnProperty(DEPRECATED_CONTENT_TYPES, contentType)) { | |
53 console.warn('contentSettings.' + contentType + ' is deprecated; setting ' | |
54 + 'it has no effect.'); | |
55 $Function.apply(callback, undefined, []); | |
56 return; | |
57 } | |
58 | |
50 // The set schema included in the Schema object is generic, since it varies | 59 // The set schema included in the Schema object is generic, since it varies |
51 // per-setting. However, this is only ever for a single setting, so we can | 60 // per-setting. However, this is only ever for a single setting, so we can |
52 // enforce the types more thoroughly. | 61 // enforce the types more thoroughly. |
53 var rawSetSchema = getFunctionParameters('set'); | 62 var rawSetSchema = getFunctionParameters('set'); |
54 var rawSettingParam = rawSetSchema[0]; | 63 var rawSettingParam = rawSetSchema[0]; |
55 var props = $Object.assign({}, rawSettingParam.properties); | 64 var props = $Object.assign({}, rawSettingParam.properties); |
56 props.setting = settingSchema; | 65 props.setting = settingSchema; |
57 var modSettingParam = { | 66 var modSettingParam = { |
58 name: rawSettingParam.name, | 67 name: rawSettingParam.name, |
59 type: rawSettingParam.type, | 68 type: rawSettingParam.type, |
60 properties: props, | 69 properties: props, |
61 }; | 70 }; |
62 var modSetSchema = $Array.slice(rawSetSchema); | 71 var modSetSchema = $Array.slice(rawSetSchema); |
63 modSetSchema[0] = modSettingParam; | 72 modSetSchema[0] = modSettingParam; |
64 validate([details, callback], rawSetSchema); | 73 validate([details, callback], modSetSchema); |
Devlin
2017/05/26 01:36:01
This was validating only against the raw schema, w
| |
65 | |
66 if ($Object.hasOwnProperty(DEPRECATED_CONTENT_TYPES, contentType)) { | |
67 console.warn('contentSettings.' + contentType + ' is deprecated; setting ' | |
68 + 'it has no effect.'); | |
69 $Function.apply(callback, undefined, []); | |
70 return; | |
71 } | |
72 | 74 |
73 return sendRequest('contentSettings.set', | 75 return sendRequest('contentSettings.set', |
74 [contentType, details, callback], | 76 [contentType, details, callback], |
75 extendSchema(modSetSchema)); | 77 extendSchema(modSetSchema)); |
76 }; | 78 }; |
77 | 79 |
78 this.clear = function(details, callback) { | 80 this.clear = function(details, callback) { |
79 var clearSchema = getFunctionParameters('clear'); | 81 var clearSchema = getFunctionParameters('clear'); |
80 validate([details, callback], clearSchema); | 82 validate([details, callback], clearSchema); |
81 | 83 |
(...skipping 19 matching lines...) Expand all Loading... | |
101 } | 103 } |
102 | 104 |
103 return sendRequest( | 105 return sendRequest( |
104 'contentSettings.getResourceIdentifiers', | 106 'contentSettings.getResourceIdentifiers', |
105 [contentType, callback], | 107 [contentType, callback], |
106 extendSchema(schema)); | 108 extendSchema(schema)); |
107 }; | 109 }; |
108 } | 110 } |
109 | 111 |
110 exports.$set('ContentSetting', ContentSetting); | 112 exports.$set('ContentSetting', ContentSetting); |
OLD | NEW |