| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2009 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2012 Google Inc. All rights reserved. | 3 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 | 211 |
| 212 if (!isValidForPosition(node)) | 212 if (!isValidForPosition(node)) |
| 213 return; | 213 return; |
| 214 RefPtrWillBeRawPtr<Range> range = Range::create(node->document()); | 214 RefPtrWillBeRawPtr<Range> range = Range::create(node->document()); |
| 215 range->setStart(node, offset, exceptionState); | 215 range->setStart(node, offset, exceptionState); |
| 216 if (exceptionState.hadException()) | 216 if (exceptionState.hadException()) |
| 217 return; | 217 return; |
| 218 range->setEnd(node, offset, exceptionState); | 218 range->setEnd(node, offset, exceptionState); |
| 219 if (exceptionState.hadException()) | 219 if (exceptionState.hadException()) |
| 220 return; | 220 return; |
| 221 m_frame->selection().setSelectedRange(range.get(), DOWNSTREAM, m_frame->sele
ction().isDirectional() ? FrameSelection::Directional : FrameSelection::NonDirec
tional); | 221 m_frame->selection().setSelectedRange(range.get(), TextAffinity::Downstream,
m_frame->selection().isDirectional() ? FrameSelection::Directional : FrameSelec
tion::NonDirectional); |
| 222 } | 222 } |
| 223 | 223 |
| 224 void DOMSelection::collapseToEnd(ExceptionState& exceptionState) | 224 void DOMSelection::collapseToEnd(ExceptionState& exceptionState) |
| 225 { | 225 { |
| 226 if (!m_frame) | 226 if (!m_frame) |
| 227 return; | 227 return; |
| 228 | 228 |
| 229 const VisibleSelection& selection = m_frame->selection().selection(); | 229 const VisibleSelection& selection = m_frame->selection().selection(); |
| 230 | 230 |
| 231 if (selection.isNone()) { | 231 if (selection.isNone()) { |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 } | 424 } |
| 425 | 425 |
| 426 // FIXME: "Merge the ranges if they intersect" is Blink-specific behavior; o
ther browsers supporting discontiguous | 426 // FIXME: "Merge the ranges if they intersect" is Blink-specific behavior; o
ther browsers supporting discontiguous |
| 427 // selection (obviously) keep each Range added and return it in getRangeAt()
. But it's unclear if we can really | 427 // selection (obviously) keep each Range added and return it in getRangeAt()
. But it's unclear if we can really |
| 428 // do the same, since we don't support discontiguous selection. Further disc
ussions at | 428 // do the same, since we don't support discontiguous selection. Further disc
ussions at |
| 429 // <https://code.google.com/p/chromium/issues/detail?id=353069>. | 429 // <https://code.google.com/p/chromium/issues/detail?id=353069>. |
| 430 | 430 |
| 431 Range* start = originalRange->compareBoundaryPoints(Range::START_TO_START, n
ewRange, ASSERT_NO_EXCEPTION) < 0 ? originalRange.get() : newRange; | 431 Range* start = originalRange->compareBoundaryPoints(Range::START_TO_START, n
ewRange, ASSERT_NO_EXCEPTION) < 0 ? originalRange.get() : newRange; |
| 432 Range* end = originalRange->compareBoundaryPoints(Range::END_TO_END, newRang
e, ASSERT_NO_EXCEPTION) < 0 ? newRange : originalRange.get(); | 432 Range* end = originalRange->compareBoundaryPoints(Range::END_TO_END, newRang
e, ASSERT_NO_EXCEPTION) < 0 ? newRange : originalRange.get(); |
| 433 RefPtrWillBeRawPtr<Range> merged = Range::create(originalRange->startContain
er()->document(), start->startContainer(), start->startOffset(), end->endContain
er(), end->endOffset()); | 433 RefPtrWillBeRawPtr<Range> merged = Range::create(originalRange->startContain
er()->document(), start->startContainer(), start->startOffset(), end->endContain
er(), end->endOffset()); |
| 434 EAffinity affinity = selection.selection().affinity(); | 434 TextAffinity affinity = selection.selection().affinity(); |
| 435 selection.setSelectedRange(merged.get(), affinity); | 435 selection.setSelectedRange(merged.get(), affinity); |
| 436 } | 436 } |
| 437 | 437 |
| 438 void DOMSelection::deleteFromDocument() | 438 void DOMSelection::deleteFromDocument() |
| 439 { | 439 { |
| 440 if (!m_frame) | 440 if (!m_frame) |
| 441 return; | 441 return; |
| 442 | 442 |
| 443 FrameSelection& selection = m_frame->selection(); | 443 FrameSelection& selection = m_frame->selection(); |
| 444 | 444 |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 556 m_treeScope->document().addConsoleMessage(ConsoleMessage::create(JSMessa
geSource, ErrorMessageLevel, message)); | 556 m_treeScope->document().addConsoleMessage(ConsoleMessage::create(JSMessa
geSource, ErrorMessageLevel, message)); |
| 557 } | 557 } |
| 558 | 558 |
| 559 DEFINE_TRACE(DOMSelection) | 559 DEFINE_TRACE(DOMSelection) |
| 560 { | 560 { |
| 561 visitor->trace(m_treeScope); | 561 visitor->trace(m_treeScope); |
| 562 DOMWindowProperty::trace(visitor); | 562 DOMWindowProperty::trace(visitor); |
| 563 } | 563 } |
| 564 | 564 |
| 565 } // namespace blink | 565 } // namespace blink |
| OLD | NEW |