| 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 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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()) { |
| 232 exceptionState.throwDOMException(InvalidStateError, "there is no selecti
on."); | 232 exceptionState.throwDOMException(InvalidStateError, "there is no selecti
on."); |
| 233 return; | 233 return; |
| 234 } | 234 } |
| 235 | 235 |
| 236 m_frame->selection().moveTo(VisiblePosition(selection.end())); | 236 m_frame->selection().moveTo(createVisiblePosition(selection.end())); |
| 237 } | 237 } |
| 238 | 238 |
| 239 void DOMSelection::collapseToStart(ExceptionState& exceptionState) | 239 void DOMSelection::collapseToStart(ExceptionState& exceptionState) |
| 240 { | 240 { |
| 241 if (!m_frame) | 241 if (!m_frame) |
| 242 return; | 242 return; |
| 243 | 243 |
| 244 const VisibleSelection& selection = m_frame->selection().selection(); | 244 const VisibleSelection& selection = m_frame->selection().selection(); |
| 245 | 245 |
| 246 if (selection.isNone()) { | 246 if (selection.isNone()) { |
| 247 exceptionState.throwDOMException(InvalidStateError, "there is no selecti
on."); | 247 exceptionState.throwDOMException(InvalidStateError, "there is no selecti
on."); |
| 248 return; | 248 return; |
| 249 } | 249 } |
| 250 | 250 |
| 251 m_frame->selection().moveTo(VisiblePosition(selection.start())); | 251 m_frame->selection().moveTo(createVisiblePosition(selection.start())); |
| 252 } | 252 } |
| 253 | 253 |
| 254 void DOMSelection::empty() | 254 void DOMSelection::empty() |
| 255 { | 255 { |
| 256 if (!m_frame) | 256 if (!m_frame) |
| 257 return; | 257 return; |
| 258 m_frame->selection().clear(); | 258 m_frame->selection().clear(); |
| 259 } | 259 } |
| 260 | 260 |
| 261 void DOMSelection::setBaseAndExtent(Node* baseNode, int baseOffset, Node* extent
Node, int extentOffset, ExceptionState& exceptionState) | 261 void DOMSelection::setBaseAndExtent(Node* baseNode, int baseOffset, Node* extent
Node, int extentOffset, ExceptionState& exceptionState) |
| 262 { | 262 { |
| 263 if (!m_frame) | 263 if (!m_frame) |
| 264 return; | 264 return; |
| 265 | 265 |
| 266 if (baseOffset < 0) { | 266 if (baseOffset < 0) { |
| 267 exceptionState.throwDOMException(IndexSizeError, String::number(baseOffs
et) + " is not a valid base offset."); | 267 exceptionState.throwDOMException(IndexSizeError, String::number(baseOffs
et) + " is not a valid base offset."); |
| 268 return; | 268 return; |
| 269 } | 269 } |
| 270 | 270 |
| 271 if (extentOffset < 0) { | 271 if (extentOffset < 0) { |
| 272 exceptionState.throwDOMException(IndexSizeError, String::number(extentOf
fset) + " is not a valid extent offset."); | 272 exceptionState.throwDOMException(IndexSizeError, String::number(extentOf
fset) + " is not a valid extent offset."); |
| 273 return; | 273 return; |
| 274 } | 274 } |
| 275 | 275 |
| 276 if (!isValidForPosition(baseNode) || !isValidForPosition(extentNode)) | 276 if (!isValidForPosition(baseNode) || !isValidForPosition(extentNode)) |
| 277 return; | 277 return; |
| 278 | 278 |
| 279 VisiblePosition visibleBase = VisiblePosition(Position(baseNode, baseOffset)
); | 279 VisiblePosition visibleBase = createVisiblePosition(Position(baseNode, baseO
ffset)); |
| 280 VisiblePosition visibleExtent = VisiblePosition(Position(extentNode, extentO
ffset)); | 280 VisiblePosition visibleExtent = createVisiblePosition(Position(extentNode, e
xtentOffset)); |
| 281 | 281 |
| 282 m_frame->selection().moveTo(visibleBase, visibleExtent); | 282 m_frame->selection().moveTo(visibleBase, visibleExtent); |
| 283 } | 283 } |
| 284 | 284 |
| 285 void DOMSelection::modify(const String& alterString, const String& directionStri
ng, const String& granularityString) | 285 void DOMSelection::modify(const String& alterString, const String& directionStri
ng, const String& granularityString) |
| 286 { | 286 { |
| 287 if (!m_frame) | 287 if (!m_frame) |
| 288 return; | 288 return; |
| 289 | 289 |
| 290 FrameSelection::EAlteration alter; | 290 FrameSelection::EAlteration alter; |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 344 return; | 344 return; |
| 345 } | 345 } |
| 346 if (static_cast<unsigned>(offset) > node->lengthOfContents()) { | 346 if (static_cast<unsigned>(offset) > node->lengthOfContents()) { |
| 347 exceptionState.throwDOMException(IndexSizeError, String::number(offset)
+ " is larger than the given node's length."); | 347 exceptionState.throwDOMException(IndexSizeError, String::number(offset)
+ " is larger than the given node's length."); |
| 348 return; | 348 return; |
| 349 } | 349 } |
| 350 | 350 |
| 351 if (!isValidForPosition(node)) | 351 if (!isValidForPosition(node)) |
| 352 return; | 352 return; |
| 353 | 353 |
| 354 m_frame->selection().setExtent(VisiblePosition(Position(node, offset))); | 354 m_frame->selection().setExtent(createVisiblePosition(Position(node, offset))
); |
| 355 } | 355 } |
| 356 | 356 |
| 357 PassRefPtrWillBeRawPtr<Range> DOMSelection::getRangeAt(int index, ExceptionState
& exceptionState) | 357 PassRefPtrWillBeRawPtr<Range> DOMSelection::getRangeAt(int index, ExceptionState
& exceptionState) |
| 358 { | 358 { |
| 359 if (!m_frame) | 359 if (!m_frame) |
| 360 return nullptr; | 360 return nullptr; |
| 361 | 361 |
| 362 if (index < 0 || index >= rangeCount()) { | 362 if (index < 0 || index >= rangeCount()) { |
| 363 exceptionState.throwDOMException(IndexSizeError, String::number(index) +
" is not a valid index."); | 363 exceptionState.throwDOMException(IndexSizeError, String::number(index) +
" is not a valid index."); |
| 364 return nullptr; | 364 return nullptr; |
| (...skipping 191 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 |