| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2013 Apple Inc. All rights reserved. | 3 * Copyright (C) 2013 Apple 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 1625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1636 exceptionState.throwDOMException(InvalidAccessError, ExceptionMessages::
argumentNullOrIncorrectType(1, "Element")); | 1636 exceptionState.throwDOMException(InvalidAccessError, ExceptionMessages::
argumentNullOrIncorrectType(1, "Element")); |
| 1637 return String(); | 1637 return String(); |
| 1638 } | 1638 } |
| 1639 | 1639 |
| 1640 FrameView* frameView = element->document().view(); | 1640 FrameView* frameView = element->document().view(); |
| 1641 frameView->updateLayoutAndStyleForPainting(); | 1641 frameView->updateLayoutAndStyleForPainting(); |
| 1642 | 1642 |
| 1643 return elementLayerTreeAsText(element, 0, exceptionState); | 1643 return elementLayerTreeAsText(element, 0, exceptionState); |
| 1644 } | 1644 } |
| 1645 | 1645 |
| 1646 static PassRefPtr<NodeList> paintOrderList(Element* element, ExceptionState& exc
eptionState, RenderLayerStackingNode::PaintOrderListType type) | |
| 1647 { | |
| 1648 if (!element) { | |
| 1649 exceptionState.throwDOMException(InvalidAccessError, ExceptionMessages::
argumentNullOrIncorrectType(1, "Element")); | |
| 1650 return nullptr; | |
| 1651 } | |
| 1652 | |
| 1653 element->document().updateLayout(); | |
| 1654 | |
| 1655 RenderObject* renderer = element->renderer(); | |
| 1656 if (!renderer || !renderer->isBox()) { | |
| 1657 exceptionState.throwDOMException(InvalidAccessError, renderer ? "The pro
vided element's renderer is not a box." : "The provided element has no renderer.
"); | |
| 1658 return nullptr; | |
| 1659 } | |
| 1660 | |
| 1661 RenderLayer* layer = toRenderBox(renderer)->layer(); | |
| 1662 if (!layer) { | |
| 1663 exceptionState.throwDOMException(InvalidAccessError, "No render layer ca
n be obtained from the provided element."); | |
| 1664 return nullptr; | |
| 1665 } | |
| 1666 | |
| 1667 Vector<RefPtr<Node> > nodes; | |
| 1668 layer->stackingNode()->computePaintOrderList(type, nodes); | |
| 1669 return StaticNodeList::adopt(nodes); | |
| 1670 } | |
| 1671 | |
| 1672 PassRefPtr<NodeList> Internals::paintOrderListBeforePromote(Element* element, Ex
ceptionState& exceptionState) | |
| 1673 { | |
| 1674 return paintOrderList(element, exceptionState, RenderLayerStackingNode::Befo
rePromote); | |
| 1675 } | |
| 1676 | |
| 1677 PassRefPtr<NodeList> Internals::paintOrderListAfterPromote(Element* element, Exc
eptionState& exceptionState) | |
| 1678 { | |
| 1679 return paintOrderList(element, exceptionState, RenderLayerStackingNode::Afte
rPromote); | |
| 1680 } | |
| 1681 | |
| 1682 bool Internals::scrollsWithRespectTo(Element* element1, Element* element2, Excep
tionState& exceptionState) | 1646 bool Internals::scrollsWithRespectTo(Element* element1, Element* element2, Excep
tionState& exceptionState) |
| 1683 { | 1647 { |
| 1684 if (!element1 || !element2) { | 1648 if (!element1 || !element2) { |
| 1685 exceptionState.throwDOMException(InvalidAccessError, String::format("The
%s element provided is invalid.", element1 ? "second" : "first")); | 1649 exceptionState.throwDOMException(InvalidAccessError, String::format("The
%s element provided is invalid.", element1 ? "second" : "first")); |
| 1686 return 0; | 1650 return 0; |
| 1687 } | 1651 } |
| 1688 | 1652 |
| 1689 element1->document().updateLayout(); | 1653 element1->document().updateLayout(); |
| 1690 | 1654 |
| 1691 RenderObject* renderer1 = element1->renderer(); | 1655 RenderObject* renderer1 = element1->renderer(); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1726 | 1690 |
| 1727 RenderLayer* layer = toRenderBox(renderer)->layer(); | 1691 RenderLayer* layer = toRenderBox(renderer)->layer(); |
| 1728 if (!layer) { | 1692 if (!layer) { |
| 1729 exceptionState.throwDOMException(InvalidAccessError, "No render layer ca
n be obtained from the provided element."); | 1693 exceptionState.throwDOMException(InvalidAccessError, "No render layer ca
n be obtained from the provided element."); |
| 1730 return 0; | 1694 return 0; |
| 1731 } | 1695 } |
| 1732 | 1696 |
| 1733 return layer->isUnclippedDescendant(); | 1697 return layer->isUnclippedDescendant(); |
| 1734 } | 1698 } |
| 1735 | 1699 |
| 1736 bool Internals::needsCompositedScrolling(Element* element, ExceptionState& excep
tionState) | |
| 1737 { | |
| 1738 if (!element) { | |
| 1739 exceptionState.throwDOMException(InvalidAccessError, ExceptionMessages::
argumentNullOrIncorrectType(1, "Element")); | |
| 1740 return 0; | |
| 1741 } | |
| 1742 | |
| 1743 element->document().view()->updateLayoutAndStyleForPainting(); | |
| 1744 | |
| 1745 RenderObject* renderer = element->renderer(); | |
| 1746 if (!renderer || !renderer->isBox()) { | |
| 1747 exceptionState.throwDOMException(InvalidAccessError, renderer ? "The pro
vided element's renderer is not a box." : "The provided element has no renderer.
"); | |
| 1748 return 0; | |
| 1749 } | |
| 1750 | |
| 1751 RenderLayer* layer = toRenderBox(renderer)->layer(); | |
| 1752 if (!layer) { | |
| 1753 exceptionState.throwDOMException(InvalidAccessError, "No render layer ca
n be obtained from the provided element."); | |
| 1754 return 0; | |
| 1755 } | |
| 1756 | |
| 1757 return layer->needsCompositedScrolling(); | |
| 1758 } | |
| 1759 | |
| 1760 String Internals::layerTreeAsText(Document* document, unsigned flags, ExceptionS
tate& exceptionState) const | 1700 String Internals::layerTreeAsText(Document* document, unsigned flags, ExceptionS
tate& exceptionState) const |
| 1761 { | 1701 { |
| 1762 if (!document || !document->frame()) { | 1702 if (!document || !document->frame()) { |
| 1763 exceptionState.throwDOMException(InvalidAccessError, document ? "The doc
ument's frame cannot be retrieved." : "The document provided is invalid."); | 1703 exceptionState.throwDOMException(InvalidAccessError, document ? "The doc
ument's frame cannot be retrieved." : "The document provided is invalid."); |
| 1764 return String(); | 1704 return String(); |
| 1765 } | 1705 } |
| 1766 | 1706 |
| 1767 document->view()->updateLayoutAndStyleForPainting(); | 1707 document->view()->updateLayoutAndStyleForPainting(); |
| 1768 | 1708 |
| 1769 return document->frame()->layerTreeAsText(flags); | 1709 return document->frame()->layerTreeAsText(flags); |
| (...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2431 String Internals::textSurroundingNode(Node* node, int x, int y, unsigned long ma
xLength) | 2371 String Internals::textSurroundingNode(Node* node, int x, int y, unsigned long ma
xLength) |
| 2432 { | 2372 { |
| 2433 if (!node) | 2373 if (!node) |
| 2434 return String(); | 2374 return String(); |
| 2435 blink::WebPoint point(x, y); | 2375 blink::WebPoint point(x, y); |
| 2436 SurroundingText surroundingText(VisiblePosition(node->renderer()->positionFo
rPoint(static_cast<IntPoint>(point))), maxLength); | 2376 SurroundingText surroundingText(VisiblePosition(node->renderer()->positionFo
rPoint(static_cast<IntPoint>(point))), maxLength); |
| 2437 return surroundingText.content(); | 2377 return surroundingText.content(); |
| 2438 } | 2378 } |
| 2439 | 2379 |
| 2440 } | 2380 } |
| OLD | NEW |