Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 /** | 31 /** |
| 32 * @constructor | 32 * @constructor |
| 33 * @extends {WebInspector.SDKModel} | 33 * @extends {WebInspector.SDKModel} |
| 34 * @param {!WebInspector.Target} target | |
| 35 * @param {!WebInspector.SecurityOriginManager} securityOriginManager | |
| 34 */ | 36 */ |
| 35 WebInspector.IndexedDBModel = function(target) | 37 WebInspector.IndexedDBModel = function(target, securityOriginManager) |
| 36 { | 38 { |
| 37 WebInspector.SDKModel.call(this, WebInspector.IndexedDBModel, target); | 39 WebInspector.SDKModel.call(this, WebInspector.IndexedDBModel, target); |
| 40 this._resourceTreeModel = securityOriginManager; | |
|
dgozman
2016/07/22 03:27:02
this._securityOriginManager
eostroukhov-old
2016/07/22 23:27:43
Done.
| |
| 38 this._agent = target.indexedDBAgent(); | 41 this._agent = target.indexedDBAgent(); |
| 39 | 42 |
| 40 /** @type {!Map.<!WebInspector.IndexedDBModel.DatabaseId, !WebInspector.Inde xedDBModel.Database>} */ | 43 /** @type {!Map.<!WebInspector.IndexedDBModel.DatabaseId, !WebInspector.Inde xedDBModel.Database>} */ |
| 41 this._databases = new Map(); | 44 this._databases = new Map(); |
| 42 /** @type {!Object.<string, !Array.<string>>} */ | 45 /** @type {!Object.<string, !Array.<string>>} */ |
| 43 this._databaseNamesBySecurityOrigin = {}; | 46 this._databaseNamesBySecurityOrigin = {}; |
| 44 } | 47 } |
| 45 | 48 |
| 46 WebInspector.IndexedDBModel.KeyTypes = { | 49 WebInspector.IndexedDBModel.KeyTypes = { |
| 47 NumberType: "number", | 50 NumberType: "number", |
| 48 StringType: "string", | 51 StringType: "string", |
| 49 DateType: "date", | 52 DateType: "date", |
| 50 ArrayType: "array" | 53 ArrayType: "array" |
| 51 }; | 54 }; |
| 52 | 55 |
| 53 WebInspector.IndexedDBModel.KeyPathTypes = { | 56 WebInspector.IndexedDBModel.KeyPathTypes = { |
| 54 NullType: "null", | 57 NullType: "null", |
| 55 StringType: "string", | 58 StringType: "string", |
| 56 ArrayType: "array" | 59 ArrayType: "array" |
| 57 }; | 60 }; |
| 58 | 61 |
| 59 /** | 62 /** |
| 60 * @param {*} idbKey | 63 * @param {*} idbKey |
| 61 * @return {?Object} | 64 * @return {({ |
|
dgozman
2016/07/22 03:27:02
nit: most of these () are unnecessary.
eostroukhov-old
2016/07/22 23:27:43
Removing any of them gives compiler errors.
| |
| 65 * array: (!Array<?>|undefined), | |
| 66 * date: (number|undefined), | |
| 67 * number: (number|undefined), | |
| 68 * string: (string|undefined), | |
| 69 * type: !IndexedDBAgent.KeyType<string> | |
| 70 * }|undefined)} | |
| 62 */ | 71 */ |
| 63 WebInspector.IndexedDBModel.keyFromIDBKey = function(idbKey) | 72 WebInspector.IndexedDBModel.keyFromIDBKey = function(idbKey) |
| 64 { | 73 { |
| 65 if (typeof(idbKey) === "undefined" || idbKey === null) | 74 if (typeof(idbKey) === "undefined" || idbKey === null) |
| 66 return null; | 75 return undefined; |
| 67 | 76 |
| 77 var type; | |
| 68 var key = {}; | 78 var key = {}; |
| 69 switch (typeof(idbKey)) { | 79 switch (typeof(idbKey)) { |
| 70 case "number": | 80 case "number": |
| 71 key.number = idbKey; | 81 key.number = idbKey; |
| 72 key.type = WebInspector.IndexedDBModel.KeyTypes.NumberType; | 82 type = WebInspector.IndexedDBModel.KeyTypes.NumberType; |
| 73 break; | 83 break; |
| 74 case "string": | 84 case "string": |
| 75 key.string = idbKey; | 85 key.string = idbKey; |
| 76 key.type = WebInspector.IndexedDBModel.KeyTypes.StringType; | 86 type = WebInspector.IndexedDBModel.KeyTypes.StringType; |
| 77 break; | 87 break; |
| 78 case "object": | 88 case "object": |
| 79 if (idbKey instanceof Date) { | 89 if (idbKey instanceof Date) { |
| 80 key.date = idbKey.getTime(); | 90 key.date = idbKey.getTime(); |
| 81 key.type = WebInspector.IndexedDBModel.KeyTypes.DateType; | 91 type = WebInspector.IndexedDBModel.KeyTypes.DateType; |
| 82 } else if (Array.isArray(idbKey)) { | 92 } else if (Array.isArray(idbKey)) { |
| 83 key.array = []; | 93 key.array = []; |
| 84 for (var i = 0; i < idbKey.length; ++i) | 94 for (var i = 0; i < idbKey.length; ++i) |
| 85 key.array.push(WebInspector.IndexedDBModel.keyFromIDBKey(idbKey[ i])); | 95 key.array.push(WebInspector.IndexedDBModel.keyFromIDBKey(idbKey[ i])); |
| 86 key.type = WebInspector.IndexedDBModel.KeyTypes.ArrayType; | 96 type = WebInspector.IndexedDBModel.KeyTypes.ArrayType; |
| 87 } | 97 } |
| 88 break; | 98 break; |
| 89 default: | 99 default: |
| 90 return null; | 100 return undefined; |
| 91 } | 101 } |
| 102 key.type = /** @type {!IndexedDBAgent.KeyType<string>} */ (type); | |
| 92 return key; | 103 return key; |
| 93 } | 104 } |
| 94 | 105 |
| 95 /** | 106 /** |
| 96 * @param {?IDBKeyRange=} idbKeyRange | 107 * @param {?IDBKeyRange=} idbKeyRange |
| 97 * @return {?{lower: ?Object, upper: ?Object, lowerOpen: *, upperOpen: *}} | 108 * @return {?IndexedDBAgent.KeyRange} |
| 109 * eturn {?{lower: ?Object, upper: ?Object, lowerOpen: *, upperOpen: *}} | |
| 98 */ | 110 */ |
| 99 WebInspector.IndexedDBModel.keyRangeFromIDBKeyRange = function(idbKeyRange) | 111 WebInspector.IndexedDBModel.keyRangeFromIDBKeyRange = function(idbKeyRange) |
| 100 { | 112 { |
| 101 if (typeof idbKeyRange === "undefined" || idbKeyRange === null) | 113 if (typeof idbKeyRange === "undefined" || idbKeyRange === null) |
| 102 return null; | 114 return null; |
| 103 | 115 |
| 104 var keyRange = {}; | 116 var keyRange = {}; |
| 105 keyRange.lower = WebInspector.IndexedDBModel.keyFromIDBKey(idbKeyRange.lower ); | 117 keyRange.lower = WebInspector.IndexedDBModel.keyFromIDBKey(idbKeyRange.lower ); |
| 106 keyRange.upper = WebInspector.IndexedDBModel.keyFromIDBKey(idbKeyRange.upper ); | 118 keyRange.upper = WebInspector.IndexedDBModel.keyFromIDBKey(idbKeyRange.upper ); |
| 107 keyRange.lowerOpen = idbKeyRange.lowerOpen; | 119 keyRange.lowerOpen = !!idbKeyRange.lowerOpen; |
| 108 keyRange.upperOpen = idbKeyRange.upperOpen; | 120 keyRange.upperOpen = !!idbKeyRange.upperOpen; |
| 109 return keyRange; | 121 return keyRange; |
| 110 } | 122 } |
| 111 | 123 |
| 112 /** | 124 /** |
| 113 * @param {!IndexedDBAgent.KeyPath} keyPath | 125 * @param {!IndexedDBAgent.KeyPath} keyPath |
| 114 * @return {?string|!Array.<string>|undefined} | 126 * @return {?string|!Array.<string>|undefined} |
| 115 */ | 127 */ |
| 116 WebInspector.IndexedDBModel.idbKeyPathFromKeyPath = function(keyPath) | 128 WebInspector.IndexedDBModel.idbKeyPathFromKeyPath = function(keyPath) |
| 117 { | 129 { |
| 118 var idbKeyPath; | 130 var idbKeyPath; |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 149 DatabaseLoaded: "DatabaseLoaded" | 161 DatabaseLoaded: "DatabaseLoaded" |
| 150 } | 162 } |
| 151 | 163 |
| 152 WebInspector.IndexedDBModel.prototype = { | 164 WebInspector.IndexedDBModel.prototype = { |
| 153 enable: function() | 165 enable: function() |
| 154 { | 166 { |
| 155 if (this._enabled) | 167 if (this._enabled) |
| 156 return; | 168 return; |
| 157 | 169 |
| 158 this._agent.enable(); | 170 this._agent.enable(); |
| 171 this._resourceTreeModel.addEventListener(WebInspector.SecurityOriginMana ger.EventTypes.SecurityOriginAdded, this._securityOriginAdded, this); | |
| 172 this._resourceTreeModel.addEventListener(WebInspector.SecurityOriginMana ger.EventTypes.SecurityOriginRemoved, this._securityOriginRemoved, this); | |
| 159 | 173 |
| 160 this.target().resourceTreeModel.addEventListener(WebInspector.ResourceTr eeModel.EventTypes.SecurityOriginAdded, this._securityOriginAdded, this); | 174 var securityOrigins = this._resourceTreeModel.securityOrigins(); |
| 161 this.target().resourceTreeModel.addEventListener(WebInspector.ResourceTr eeModel.EventTypes.SecurityOriginRemoved, this._securityOriginRemoved, this); | |
| 162 | |
| 163 var securityOrigins = this.target().resourceTreeModel.securityOrigins(); | |
| 164 for (var i = 0; i < securityOrigins.length; ++i) | 175 for (var i = 0; i < securityOrigins.length; ++i) |
| 165 this._addOrigin(securityOrigins[i]); | 176 this._addOrigin(securityOrigins[i]); |
| 166 | 177 |
| 167 this._enabled = true; | 178 this._enabled = true; |
| 168 }, | 179 }, |
| 169 | 180 |
| 170 /** | 181 /** |
| 171 * @param {string} origin | 182 * @param {string} origin |
| 172 */ | 183 */ |
| 173 clearForOrigin: function(origin) | 184 clearForOrigin: function(origin) |
| (...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 524 * @type {string} | 535 * @type {string} |
| 525 */ | 536 */ |
| 526 get keyPathString() | 537 get keyPathString() |
| 527 { | 538 { |
| 528 return WebInspector.IndexedDBModel.keyPathStringFromIDBKeyPath(this.keyP ath); | 539 return WebInspector.IndexedDBModel.keyPathStringFromIDBKeyPath(this.keyP ath); |
| 529 } | 540 } |
| 530 } | 541 } |
| 531 | 542 |
| 532 /** | 543 /** |
| 533 * @param {!WebInspector.Target} target | 544 * @param {!WebInspector.Target} target |
| 534 * @return {?WebInspector.IndexedDBModel} | 545 * @return {!WebInspector.IndexedDBModel} |
| 535 */ | 546 */ |
| 536 WebInspector.IndexedDBModel.fromTarget = function(target) | 547 WebInspector.IndexedDBModel.fromTarget = function(target) |
| 537 { | 548 { |
| 538 var model = /** @type {?WebInspector.IndexedDBModel} */ (target.model(WebIns pector.IndexedDBModel)); | 549 var model = /** @type {?WebInspector.IndexedDBModel} */ (target.model(WebIns pector.IndexedDBModel)); |
| 539 if (!model) | 550 if (!model) { |
|
dgozman
2016/07/22 03:27:02
style: unnecessary {}
eostroukhov-old
2016/07/22 23:27:43
Done.
| |
| 540 model = new WebInspector.IndexedDBModel(target); | 551 model = new WebInspector.IndexedDBModel(target, WebInspector.SecurityOri ginManager.fromTarget(target)); |
| 552 } | |
| 541 return model; | 553 return model; |
| 542 } | 554 } |
| OLD | NEW |