| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 // https://discourse.wicg.io/t/proposal-staticrange-to-be-used-instead-of-range-
for-new-apis/1472 | |
| 6 | |
| 7 #include "core/dom/StaticRange.h" | 5 #include "core/dom/StaticRange.h" |
| 8 | 6 |
| 9 #include "bindings/core/v8/ExceptionState.h" | 7 #include "bindings/core/v8/ExceptionState.h" |
| 10 #include "bindings/core/v8/ScriptState.h" | 8 #include "bindings/core/v8/ScriptState.h" |
| 11 #include "core/dom/Range.h" | 9 #include "core/dom/Range.h" |
| 12 #include "core/frame/LocalDOMWindow.h" | 10 #include "core/frame/LocalDOMWindow.h" |
| 13 | 11 |
| 14 namespace blink { | 12 namespace blink { |
| 15 | 13 |
| 16 StaticRange::StaticRange(Document& document) | 14 StaticRange::StaticRange(Document& document) |
| 17 : m_ownerDocument(document), | 15 : m_ownerDocument(document), |
| 18 m_startContainer(document), | 16 m_startContainer(document), |
| 19 m_startOffset(0), | 17 m_startOffset(0u), |
| 20 m_endContainer(document), | 18 m_endContainer(document), |
| 21 m_endOffset(0) {} | 19 m_endOffset(0u) {} |
| 22 | 20 |
| 23 StaticRange::StaticRange(Document& document, | 21 StaticRange::StaticRange(Document& document, |
| 24 Node* startContainer, | 22 Node* startContainer, |
| 25 int startOffset, | 23 unsigned startOffset, |
| 26 Node* endContainer, | 24 Node* endContainer, |
| 27 int endOffset) | 25 unsigned endOffset) |
| 28 : m_ownerDocument(document), | 26 : m_ownerDocument(document), |
| 29 m_startContainer(startContainer), | 27 m_startContainer(startContainer), |
| 30 m_startOffset(startOffset), | 28 m_startOffset(startOffset), |
| 31 m_endContainer(endContainer), | 29 m_endContainer(endContainer), |
| 32 m_endOffset(endOffset) {} | 30 m_endOffset(endOffset) {} |
| 33 | 31 |
| 34 void StaticRange::setStart(Node* container, int offset) { | 32 void StaticRange::setStart(Node* container, unsigned offset) { |
| 35 m_startContainer = container; | 33 m_startContainer = container; |
| 36 m_startOffset = offset; | 34 m_startOffset = offset; |
| 37 } | 35 } |
| 38 | 36 |
| 39 void StaticRange::setEnd(Node* container, int offset) { | 37 void StaticRange::setEnd(Node* container, unsigned offset) { |
| 40 m_endContainer = container; | 38 m_endContainer = container; |
| 41 m_endOffset = offset; | 39 m_endOffset = offset; |
| 42 } | 40 } |
| 43 | 41 |
| 44 Range* StaticRange::toRange(ExceptionState& exceptionState) const { | 42 Range* StaticRange::toRange(ExceptionState& exceptionState) const { |
| 45 Range* range = Range::create(*m_ownerDocument.get()); | 43 Range* range = Range::create(*m_ownerDocument.get()); |
| 46 // Do the offset checking. | 44 // Do the offset checking. |
| 47 range->setStart(m_startContainer, m_startOffset, exceptionState); | 45 range->setStart(m_startContainer, m_startOffset, exceptionState); |
| 48 range->setEnd(m_endContainer, m_endOffset, exceptionState); | 46 range->setEnd(m_endContainer, m_endOffset, exceptionState); |
| 49 return range; | 47 return range; |
| 50 } | 48 } |
| 51 | 49 |
| 52 DEFINE_TRACE(StaticRange) { | 50 DEFINE_TRACE(StaticRange) { |
| 53 visitor->trace(m_ownerDocument); | 51 visitor->trace(m_ownerDocument); |
| 54 visitor->trace(m_startContainer); | 52 visitor->trace(m_startContainer); |
| 55 visitor->trace(m_endContainer); | 53 visitor->trace(m_endContainer); |
| 56 } | 54 } |
| 57 | 55 |
| 58 } // namespace blink | 56 } // namespace blink |
| OLD | NEW |