OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple 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 | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 1847 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1858 int focusOffset = selectionRange->endOffset(); | 1858 int focusOffset = selectionRange->endOffset(); |
1859 ASSERT(focusOffset >= 0); | 1859 ASSERT(focusOffset >= 0); |
1860 | 1860 |
1861 Node* anchorNode = selectionRange->startContainer(); | 1861 Node* anchorNode = selectionRange->startContainer(); |
1862 ASSERT(anchorNode); | 1862 ASSERT(anchorNode); |
1863 | 1863 |
1864 RefPtrWillBeRawPtr<AXObject> anchorObject = nullptr; | 1864 RefPtrWillBeRawPtr<AXObject> anchorObject = nullptr; |
1865 // Find the closest node that has a corresponding AXObject. | 1865 // Find the closest node that has a corresponding AXObject. |
1866 // This is because some nodes may be aria hidden or might not even have | 1866 // This is because some nodes may be aria hidden or might not even have |
1867 // a layout object if they are part of the shadow DOM. | 1867 // a layout object if they are part of the shadow DOM. |
1868 while (anchorNode && !getUnignoredObjectFromNode(*anchorNode)) { | 1868 while (anchorNode |
| 1869 && !(anchorObject = getUnignoredObjectFromNode(*anchorNode))) { |
1869 if (anchorNode->nextSibling()) | 1870 if (anchorNode->nextSibling()) |
1870 anchorNode = anchorNode->nextSibling(); | 1871 anchorNode = anchorNode->nextSibling(); |
1871 else | 1872 else |
1872 anchorNode = anchorNode->parentNode(); | 1873 anchorNode = anchorNode->parentNode(); |
1873 } | 1874 } |
1874 if (anchorNode != selectionRange->startContainer()) | 1875 if (anchorNode != selectionRange->startContainer()) |
1875 anchorOffset = 0; | 1876 anchorOffset = 0; |
1876 | 1877 |
1877 Node* focusNode = selectionRange->endContainer(); | 1878 Node* focusNode = selectionRange->endContainer(); |
1878 ASSERT(focusNode); | 1879 ASSERT(focusNode); |
1879 | 1880 |
1880 RefPtrWillBeRawPtr<AXObject> focusObject = nullptr; | 1881 RefPtrWillBeRawPtr<AXObject> focusObject = nullptr; |
1881 while (focusNode && !getUnignoredObjectFromNode(*focusNode)) { | 1882 while (focusNode |
| 1883 && !(focusObject = getUnignoredObjectFromNode(*focusNode))) { |
1882 if (focusNode->previousSibling()) | 1884 if (focusNode->previousSibling()) |
1883 focusNode = focusNode->previousSibling(); | 1885 focusNode = focusNode->previousSibling(); |
1884 else | 1886 else |
1885 focusNode = focusNode->parentNode(); | 1887 focusNode = focusNode->parentNode(); |
1886 } | 1888 } |
1887 if (focusNode != selectionRange->endContainer()) | 1889 if (focusNode != selectionRange->endContainer()) |
1888 focusOffset = 0; | 1890 focusOffset = 0; |
1889 | 1891 |
1890 if (!anchorObject || !focusObject) | 1892 if (!anchorObject || !focusObject) |
1891 return AXRange(); | 1893 return AXRange(); |
(...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2645 if (label && label->layoutObject()) { | 2647 if (label && label->layoutObject()) { |
2646 LayoutRect labelRect = axObjectCache().getOrCreate(label)->elementRe
ct(); | 2648 LayoutRect labelRect = axObjectCache().getOrCreate(label)->elementRe
ct(); |
2647 result.unite(labelRect); | 2649 result.unite(labelRect); |
2648 } | 2650 } |
2649 } | 2651 } |
2650 | 2652 |
2651 return result; | 2653 return result; |
2652 } | 2654 } |
2653 | 2655 |
2654 } // namespace blink | 2656 } // namespace blink |
OLD | NEW |