| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2011, 2012 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 2624 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2635 bool WebViewImpl::selectionBounds(WebRect& anchor, WebRect& focus) const | 2635 bool WebViewImpl::selectionBounds(WebRect& anchor, WebRect& focus) const |
| 2636 { | 2636 { |
| 2637 const Frame* frame = focusedCoreFrame(); | 2637 const Frame* frame = focusedCoreFrame(); |
| 2638 if (!frame || !frame->isLocalFrame()) | 2638 if (!frame || !frame->isLocalFrame()) |
| 2639 return false; | 2639 return false; |
| 2640 | 2640 |
| 2641 const LocalFrame* localFrame = toLocalFrame(frame); | 2641 const LocalFrame* localFrame = toLocalFrame(frame); |
| 2642 if (!localFrame) | 2642 if (!localFrame) |
| 2643 return false; | 2643 return false; |
| 2644 FrameSelection& selection = localFrame->selection(); | 2644 FrameSelection& selection = localFrame->selection(); |
| 2645 if (!selection.isAvailable()) { | 2645 if (!selection.isAvailable() || selection.isNone()) { |
| 2646 // plugins/mouse-capture-inside-shadow.html reaches here. | 2646 // plugins/mouse-capture-inside-shadow.html reaches here. |
| 2647 return false; | 2647 return false; |
| 2648 } | 2648 } |
| 2649 | 2649 |
| 2650 // TODO(xiaochengh): The use of updateStyleAndLayoutIgnorePendingStylesheets |
| 2651 // needs to be audited. See http://crbug.com/590369 for more details. |
| 2652 localFrame->document()->updateStyleAndLayoutIgnorePendingStylesheets(); |
| 2653 |
| 2654 DocumentLifecycle::DisallowTransitionScope disallowTransition(localFrame->do
cument()->lifecycle()); |
| 2655 |
| 2650 if (selection.isCaret()) { | 2656 if (selection.isCaret()) { |
| 2651 // TODO(xiaochengh): The use of updateStyleAndLayoutIgnorePendingStylesh
eets | |
| 2652 // needs to be audited. See http://crbug.com/590369 for more details. | |
| 2653 localFrame->document()->updateStyleAndLayoutIgnorePendingStylesheets(); | |
| 2654 | |
| 2655 anchor = focus = selection.absoluteCaretBounds(); | 2657 anchor = focus = selection.absoluteCaretBounds(); |
| 2656 } else { | 2658 } else { |
| 2657 const EphemeralRange selectedRange = selection.selection().toNormalizedE
phemeralRange(); | 2659 const EphemeralRange selectedRange = selection.selection().toNormalizedE
phemeralRange(); |
| 2658 if (selectedRange.isNull()) | 2660 if (selectedRange.isNull()) |
| 2659 return false; | 2661 return false; |
| 2660 anchor = localFrame->editor().firstRectForRange(EphemeralRange(selectedR
ange.startPosition())); | 2662 anchor = localFrame->editor().firstRectForRange(EphemeralRange(selectedR
ange.startPosition())); |
| 2661 focus = localFrame->editor().firstRectForRange(EphemeralRange(selectedRa
nge.endPosition())); | 2663 focus = localFrame->editor().firstRectForRange(EphemeralRange(selectedRa
nge.endPosition())); |
| 2662 } | 2664 } |
| 2663 | 2665 |
| 2664 anchor = localFrame->view()->contentsToViewport(anchor); | 2666 anchor = localFrame->view()->contentsToViewport(anchor); |
| (...skipping 1924 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4589 return nullptr; | 4591 return nullptr; |
| 4590 return focusedFrame; | 4592 return focusedFrame; |
| 4591 } | 4593 } |
| 4592 | 4594 |
| 4593 LocalFrame* WebViewImpl::focusedLocalFrameAvailableForIme() const | 4595 LocalFrame* WebViewImpl::focusedLocalFrameAvailableForIme() const |
| 4594 { | 4596 { |
| 4595 return m_imeAcceptEvents ? focusedLocalFrameInWidget() : nullptr; | 4597 return m_imeAcceptEvents ? focusedLocalFrameInWidget() : nullptr; |
| 4596 } | 4598 } |
| 4597 | 4599 |
| 4598 } // namespace blink | 4600 } // namespace blink |
| OLD | NEW |