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 |