OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 } | 587 } |
588 | 588 |
589 // TODO(ekaramad):This method is almost duplicated in WebViewImpl as well. This | 589 // TODO(ekaramad):This method is almost duplicated in WebViewImpl as well. This |
590 // code needs to be refactored (http://crbug.com/629721). | 590 // code needs to be refactored (http://crbug.com/629721). |
591 bool WebFrameWidgetImpl::SelectionBounds(WebRect& anchor, | 591 bool WebFrameWidgetImpl::SelectionBounds(WebRect& anchor, |
592 WebRect& focus) const { | 592 WebRect& focus) const { |
593 const LocalFrame* local_frame = FocusedLocalFrameInWidget(); | 593 const LocalFrame* local_frame = FocusedLocalFrameInWidget(); |
594 if (!local_frame) | 594 if (!local_frame) |
595 return false; | 595 return false; |
596 | 596 |
597 FrameSelection& selection = local_frame->Selection(); | |
598 if (selection.ComputeVisibleSelectionInDOMTreeDeprecated().IsNone()) | |
599 return false; | |
600 | |
601 // TODO(editing-dev): The use of updateStyleAndLayoutIgnorePendingStylesheets | 597 // TODO(editing-dev): The use of updateStyleAndLayoutIgnorePendingStylesheets |
602 // needs to be audited. See http://crbug.com/590369 for more details. | 598 // needs to be audited. See http://crbug.com/590369 for more details. |
603 local_frame->GetDocument()->UpdateStyleAndLayoutIgnorePendingStylesheets(); | 599 local_frame->GetDocument()->UpdateStyleAndLayoutIgnorePendingStylesheets(); |
604 | 600 |
605 DocumentLifecycle::DisallowTransitionScope disallow_transition( | 601 DocumentLifecycle::DisallowTransitionScope disallow_transition( |
606 local_frame->GetDocument()->Lifecycle()); | 602 local_frame->GetDocument()->Lifecycle()); |
607 | 603 |
608 if (selection.ComputeVisibleSelectionInDOMTreeDeprecated().IsCaret()) { | 604 FrameSelection& selection = local_frame->Selection(); |
| 605 if (selection.ComputeVisibleSelectionInDOMTree().IsNone()) |
| 606 return false; |
| 607 |
| 608 if (selection.ComputeVisibleSelectionInDOMTree().IsCaret()) { |
609 anchor = focus = selection.AbsoluteCaretBounds(); | 609 anchor = focus = selection.AbsoluteCaretBounds(); |
610 } else { | 610 } else { |
611 const EphemeralRange selected_range = | 611 const EphemeralRange selected_range = |
612 selection.ComputeVisibleSelectionInDOMTree() | 612 selection.ComputeVisibleSelectionInDOMTree() |
613 .ToNormalizedEphemeralRange(); | 613 .ToNormalizedEphemeralRange(); |
614 if (selected_range.IsNull()) | 614 if (selected_range.IsNull()) |
615 return false; | 615 return false; |
616 anchor = local_frame->GetEditor().FirstRectForRange( | 616 anchor = local_frame->GetEditor().FirstRectForRange( |
617 EphemeralRange(selected_range.StartPosition())); | 617 EphemeralRange(selected_range.StartPosition())); |
618 focus = local_frame->GetEditor().FirstRectForRange( | 618 focus = local_frame->GetEditor().FirstRectForRange( |
(...skipping 587 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1206 return nullptr; | 1206 return nullptr; |
1207 } | 1207 } |
1208 | 1208 |
1209 LocalFrame* WebFrameWidgetImpl::FocusedLocalFrameAvailableForIme() const { | 1209 LocalFrame* WebFrameWidgetImpl::FocusedLocalFrameAvailableForIme() const { |
1210 if (!ime_accept_events_) | 1210 if (!ime_accept_events_) |
1211 return nullptr; | 1211 return nullptr; |
1212 return FocusedLocalFrameInWidget(); | 1212 return FocusedLocalFrameInWidget(); |
1213 } | 1213 } |
1214 | 1214 |
1215 } // namespace blink | 1215 } // namespace blink |
OLD | NEW |