| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 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 | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 24 */ | 24 */ |
| 25 | 25 |
| 26 #include "modules/indexeddb/IDBKeyRange.h" | 26 #include "modules/indexeddb/IDBKeyRange.h" |
| 27 | 27 |
| 28 #include "bindings/core/v8/ExceptionState.h" | 28 #include "bindings/core/v8/ExceptionState.h" |
| 29 #include "bindings/core/v8/ToV8ForCore.h" | 29 #include "bindings/core/v8/ToV8ForCore.h" |
| 30 #include "bindings/modules/v8/ToV8ForModules.h" | 30 #include "bindings/modules/v8/ToV8ForModules.h" |
| 31 #include "bindings/modules/v8/V8BindingForModules.h" | 31 #include "bindings/modules/v8/V8BindingForModules.h" |
| 32 #include "core/dom/ExceptionCode.h" | 32 #include "core/dom/ExceptionCode.h" |
| 33 #include "core/dom/ExecutionContext.h" | |
| 34 #include "modules/indexeddb/IDBDatabase.h" | 33 #include "modules/indexeddb/IDBDatabase.h" |
| 35 | 34 |
| 36 namespace blink { | 35 namespace blink { |
| 37 | 36 |
| 38 IDBKeyRange* IDBKeyRange::FromScriptValue(ExecutionContext* context, | 37 IDBKeyRange* IDBKeyRange::FromScriptValue(ExecutionContext* context, |
| 39 const ScriptValue& value, | 38 const ScriptValue& value, |
| 40 ExceptionState& exception_state) { | 39 ExceptionState& exception_state) { |
| 41 if (value.IsUndefined() || value.IsNull()) | 40 if (value.IsUndefined() || value.IsNull()) |
| 42 return nullptr; | 41 return nullptr; |
| 43 | 42 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 return nullptr; | 87 return nullptr; |
| 89 } | 88 } |
| 90 | 89 |
| 91 return IDBKeyRange::Create(key, key, kLowerBoundClosed, kUpperBoundClosed); | 90 return IDBKeyRange::Create(key, key, kLowerBoundClosed, kUpperBoundClosed); |
| 92 } | 91 } |
| 93 | 92 |
| 94 IDBKeyRange* IDBKeyRange::only(ScriptState* script_state, | 93 IDBKeyRange* IDBKeyRange::only(ScriptState* script_state, |
| 95 const ScriptValue& key_value, | 94 const ScriptValue& key_value, |
| 96 ExceptionState& exception_state) { | 95 ExceptionState& exception_state) { |
| 97 IDBKey* key = | 96 IDBKey* key = |
| 98 ScriptValue::To<IDBKey*>(ToIsolate(ExecutionContext::From(script_state)), | 97 ScriptValue::To<IDBKey*>(ToIsolate(script_state->GetExecutionContext()), |
| 99 key_value, exception_state); | 98 key_value, exception_state); |
| 100 if (exception_state.HadException()) | 99 if (exception_state.HadException()) |
| 101 return nullptr; | 100 return nullptr; |
| 102 if (!key || !key->IsValid()) { | 101 if (!key || !key->IsValid()) { |
| 103 exception_state.ThrowDOMException(kDataError, | 102 exception_state.ThrowDOMException(kDataError, |
| 104 IDBDatabase::kNotValidKeyErrorMessage); | 103 IDBDatabase::kNotValidKeyErrorMessage); |
| 105 return nullptr; | 104 return nullptr; |
| 106 } | 105 } |
| 107 | 106 |
| 108 return IDBKeyRange::Create(key, key, kLowerBoundClosed, kUpperBoundClosed); | 107 return IDBKeyRange::Create(key, key, kLowerBoundClosed, kUpperBoundClosed); |
| 109 } | 108 } |
| 110 | 109 |
| 111 IDBKeyRange* IDBKeyRange::lowerBound(ScriptState* script_state, | 110 IDBKeyRange* IDBKeyRange::lowerBound(ScriptState* script_state, |
| 112 const ScriptValue& bound_value, | 111 const ScriptValue& bound_value, |
| 113 bool open, | 112 bool open, |
| 114 ExceptionState& exception_state) { | 113 ExceptionState& exception_state) { |
| 115 IDBKey* bound = | 114 IDBKey* bound = |
| 116 ScriptValue::To<IDBKey*>(ToIsolate(ExecutionContext::From(script_state)), | 115 ScriptValue::To<IDBKey*>(ToIsolate(script_state->GetExecutionContext()), |
| 117 bound_value, exception_state); | 116 bound_value, exception_state); |
| 118 if (exception_state.HadException()) | 117 if (exception_state.HadException()) |
| 119 return nullptr; | 118 return nullptr; |
| 120 if (!bound || !bound->IsValid()) { | 119 if (!bound || !bound->IsValid()) { |
| 121 exception_state.ThrowDOMException(kDataError, | 120 exception_state.ThrowDOMException(kDataError, |
| 122 IDBDatabase::kNotValidKeyErrorMessage); | 121 IDBDatabase::kNotValidKeyErrorMessage); |
| 123 return nullptr; | 122 return nullptr; |
| 124 } | 123 } |
| 125 | 124 |
| 126 return IDBKeyRange::Create(bound, nullptr, | 125 return IDBKeyRange::Create(bound, nullptr, |
| 127 open ? kLowerBoundOpen : kLowerBoundClosed, | 126 open ? kLowerBoundOpen : kLowerBoundClosed, |
| 128 kUpperBoundOpen); | 127 kUpperBoundOpen); |
| 129 } | 128 } |
| 130 | 129 |
| 131 IDBKeyRange* IDBKeyRange::upperBound(ScriptState* script_state, | 130 IDBKeyRange* IDBKeyRange::upperBound(ScriptState* script_state, |
| 132 const ScriptValue& bound_value, | 131 const ScriptValue& bound_value, |
| 133 bool open, | 132 bool open, |
| 134 ExceptionState& exception_state) { | 133 ExceptionState& exception_state) { |
| 135 IDBKey* bound = | 134 IDBKey* bound = |
| 136 ScriptValue::To<IDBKey*>(ToIsolate(ExecutionContext::From(script_state)), | 135 ScriptValue::To<IDBKey*>(ToIsolate(script_state->GetExecutionContext()), |
| 137 bound_value, exception_state); | 136 bound_value, exception_state); |
| 138 if (exception_state.HadException()) | 137 if (exception_state.HadException()) |
| 139 return nullptr; | 138 return nullptr; |
| 140 if (!bound || !bound->IsValid()) { | 139 if (!bound || !bound->IsValid()) { |
| 141 exception_state.ThrowDOMException(kDataError, | 140 exception_state.ThrowDOMException(kDataError, |
| 142 IDBDatabase::kNotValidKeyErrorMessage); | 141 IDBDatabase::kNotValidKeyErrorMessage); |
| 143 return nullptr; | 142 return nullptr; |
| 144 } | 143 } |
| 145 | 144 |
| 146 return IDBKeyRange::Create(nullptr, bound, kLowerBoundOpen, | 145 return IDBKeyRange::Create(nullptr, bound, kLowerBoundOpen, |
| 147 open ? kUpperBoundOpen : kUpperBoundClosed); | 146 open ? kUpperBoundOpen : kUpperBoundClosed); |
| 148 } | 147 } |
| 149 | 148 |
| 150 IDBKeyRange* IDBKeyRange::bound(ScriptState* script_state, | 149 IDBKeyRange* IDBKeyRange::bound(ScriptState* script_state, |
| 151 const ScriptValue& lower_value, | 150 const ScriptValue& lower_value, |
| 152 const ScriptValue& upper_value, | 151 const ScriptValue& upper_value, |
| 153 bool lower_open, | 152 bool lower_open, |
| 154 bool upper_open, | 153 bool upper_open, |
| 155 ExceptionState& exception_state) { | 154 ExceptionState& exception_state) { |
| 156 IDBKey* lower = | 155 IDBKey* lower = |
| 157 ScriptValue::To<IDBKey*>(ToIsolate(ExecutionContext::From(script_state)), | 156 ScriptValue::To<IDBKey*>(ToIsolate(script_state->GetExecutionContext()), |
| 158 lower_value, exception_state); | 157 lower_value, exception_state); |
| 159 if (exception_state.HadException()) | 158 if (exception_state.HadException()) |
| 160 return nullptr; | 159 return nullptr; |
| 161 if (!lower || !lower->IsValid()) { | 160 if (!lower || !lower->IsValid()) { |
| 162 exception_state.ThrowDOMException(kDataError, | 161 exception_state.ThrowDOMException(kDataError, |
| 163 IDBDatabase::kNotValidKeyErrorMessage); | 162 IDBDatabase::kNotValidKeyErrorMessage); |
| 164 return nullptr; | 163 return nullptr; |
| 165 } | 164 } |
| 166 | 165 |
| 167 IDBKey* upper = | 166 IDBKey* upper = |
| 168 ScriptValue::To<IDBKey*>(ToIsolate(ExecutionContext::From(script_state)), | 167 ScriptValue::To<IDBKey*>(ToIsolate(script_state->GetExecutionContext()), |
| 169 upper_value, exception_state); | 168 upper_value, exception_state); |
| 170 if (exception_state.HadException()) | 169 if (exception_state.HadException()) |
| 171 return nullptr; | 170 return nullptr; |
| 172 if (!upper || !upper->IsValid()) { | 171 if (!upper || !upper->IsValid()) { |
| 173 exception_state.ThrowDOMException(kDataError, | 172 exception_state.ThrowDOMException(kDataError, |
| 174 IDBDatabase::kNotValidKeyErrorMessage); | 173 IDBDatabase::kNotValidKeyErrorMessage); |
| 175 return nullptr; | 174 return nullptr; |
| 176 } | 175 } |
| 177 | 176 |
| 178 if (upper->IsLessThan(lower)) { | 177 if (upper->IsLessThan(lower)) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 189 | 188 |
| 190 return IDBKeyRange::Create(lower, upper, | 189 return IDBKeyRange::Create(lower, upper, |
| 191 lower_open ? kLowerBoundOpen : kLowerBoundClosed, | 190 lower_open ? kLowerBoundOpen : kLowerBoundClosed, |
| 192 upper_open ? kUpperBoundOpen : kUpperBoundClosed); | 191 upper_open ? kUpperBoundOpen : kUpperBoundClosed); |
| 193 } | 192 } |
| 194 | 193 |
| 195 bool IDBKeyRange::includes(ScriptState* script_state, | 194 bool IDBKeyRange::includes(ScriptState* script_state, |
| 196 const ScriptValue& key_value, | 195 const ScriptValue& key_value, |
| 197 ExceptionState& exception_state) { | 196 ExceptionState& exception_state) { |
| 198 IDBKey* key = | 197 IDBKey* key = |
| 199 ScriptValue::To<IDBKey*>(ToIsolate(ExecutionContext::From(script_state)), | 198 ScriptValue::To<IDBKey*>(ToIsolate(script_state->GetExecutionContext()), |
| 200 key_value, exception_state); | 199 key_value, exception_state); |
| 201 if (exception_state.HadException()) | 200 if (exception_state.HadException()) |
| 202 return false; | 201 return false; |
| 203 if (!key || !key->IsValid()) { | 202 if (!key || !key->IsValid()) { |
| 204 exception_state.ThrowDOMException(kDataError, | 203 exception_state.ThrowDOMException(kDataError, |
| 205 IDBDatabase::kNotValidKeyErrorMessage); | 204 IDBDatabase::kNotValidKeyErrorMessage); |
| 206 return false; | 205 return false; |
| 207 } | 206 } |
| 208 | 207 |
| 209 if (lower_) { | 208 if (lower_) { |
| (...skipping 14 matching lines...) Expand all Loading... |
| 224 return false; | 223 return false; |
| 225 } else { | 224 } else { |
| 226 if (c > 0) | 225 if (c > 0) |
| 227 return false; | 226 return false; |
| 228 } | 227 } |
| 229 } | 228 } |
| 230 return true; | 229 return true; |
| 231 } | 230 } |
| 232 | 231 |
| 233 } // namespace blink | 232 } // namespace blink |
| OLD | NEW |