| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Peter Kelly (pmk@post.com) | 4 * (C) 2001 Peter Kelly (pmk@post.com) |
| 5 * (C) 2001 Dirk Mueller (mueller@kde.org) | 5 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 6 * (C) 2007 David Smith (catfish.man@gmail.com) | 6 * (C) 2007 David Smith (catfish.man@gmail.com) |
| 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
All rights reserved. | 7 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012, 2013 Apple Inc.
All rights reserved. |
| 8 * (C) 2007 Eric Seidel (eric@webkit.org) | 8 * (C) 2007 Eric Seidel (eric@webkit.org) |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 903 double top = | 903 double top = |
| 904 scrollToOptions.hasTop() | 904 scrollToOptions.hasTop() |
| 905 ? ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.top()) | 905 ? ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.top()) |
| 906 : 0.0; | 906 : 0.0; |
| 907 | 907 |
| 908 ScrollBehavior scrollBehavior = ScrollBehaviorAuto; | 908 ScrollBehavior scrollBehavior = ScrollBehaviorAuto; |
| 909 ScrollableArea::scrollBehaviorFromString(scrollToOptions.behavior(), | 909 ScrollableArea::scrollBehaviorFromString(scrollToOptions.behavior(), |
| 910 scrollBehavior); | 910 scrollBehavior); |
| 911 LayoutBox* box = layoutBox(); | 911 LayoutBox* box = layoutBox(); |
| 912 if (box) { | 912 if (box) { |
| 913 double currentScaledLeft = box->scrollLeft(); | 913 float currentScaledLeft = box->scrollLeft().toFloat(); |
| 914 double currentScaledTop = box->scrollTop(); | 914 float currentScaledTop = box->scrollTop().toFloat(); |
| 915 double newScaledLeft = | 915 float newScaledLeft = |
| 916 left * box->style()->effectiveZoom() + currentScaledLeft; | 916 left * box->style()->effectiveZoom() + currentScaledLeft; |
| 917 double newScaledTop = | 917 float newScaledTop = top * box->style()->effectiveZoom() + currentScaledTop; |
| 918 top * box->style()->effectiveZoom() + currentScaledTop; | 918 box->scrollToPosition(FloatPoint(newScaledLeft, newScaledTop), |
| 919 box->scrollToOffset(DoubleSize(newScaledLeft, newScaledTop), | 919 scrollBehavior); |
| 920 scrollBehavior); | |
| 921 } | 920 } |
| 922 } | 921 } |
| 923 | 922 |
| 924 void Element::scrollLayoutBoxTo(const ScrollToOptions& scrollToOptions) { | 923 void Element::scrollLayoutBoxTo(const ScrollToOptions& scrollToOptions) { |
| 925 ScrollBehavior scrollBehavior = ScrollBehaviorAuto; | 924 ScrollBehavior scrollBehavior = ScrollBehaviorAuto; |
| 926 ScrollableArea::scrollBehaviorFromString(scrollToOptions.behavior(), | 925 ScrollableArea::scrollBehaviorFromString(scrollToOptions.behavior(), |
| 927 scrollBehavior); | 926 scrollBehavior); |
| 928 | 927 |
| 929 LayoutBox* box = layoutBox(); | 928 LayoutBox* box = layoutBox(); |
| 930 if (box) { | 929 if (box) { |
| 931 double scaledLeft = box->scrollLeft(); | 930 float scaledLeft = box->scrollLeft().toFloat(); |
| 932 double scaledTop = box->scrollTop(); | 931 float scaledTop = box->scrollTop().toFloat(); |
| 933 if (scrollToOptions.hasLeft()) | 932 if (scrollToOptions.hasLeft()) |
| 934 scaledLeft = | 933 scaledLeft = |
| 935 ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.left()) * | 934 ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.left()) * |
| 936 box->style()->effectiveZoom(); | 935 box->style()->effectiveZoom(); |
| 937 if (scrollToOptions.hasTop()) | 936 if (scrollToOptions.hasTop()) |
| 938 scaledTop = | 937 scaledTop = |
| 939 ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.top()) * | 938 ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.top()) * |
| 940 box->style()->effectiveZoom(); | 939 box->style()->effectiveZoom(); |
| 941 box->scrollToOffset(DoubleSize(scaledLeft, scaledTop), scrollBehavior); | 940 box->scrollToPosition(FloatPoint(scaledLeft, scaledTop), scrollBehavior); |
| 942 } | 941 } |
| 943 } | 942 } |
| 944 | 943 |
| 945 void Element::scrollFrameBy(const ScrollToOptions& scrollToOptions) { | 944 void Element::scrollFrameBy(const ScrollToOptions& scrollToOptions) { |
| 946 double left = | 945 double left = |
| 947 scrollToOptions.hasLeft() | 946 scrollToOptions.hasLeft() |
| 948 ? ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.left()) | 947 ? ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.left()) |
| 949 : 0.0; | 948 : 0.0; |
| 950 double top = | 949 double top = |
| 951 scrollToOptions.hasTop() | 950 scrollToOptions.hasTop() |
| 952 ? ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.top()) | 951 ? ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.top()) |
| 953 : 0.0; | 952 : 0.0; |
| 954 | 953 |
| 955 ScrollBehavior scrollBehavior = ScrollBehaviorAuto; | 954 ScrollBehavior scrollBehavior = ScrollBehaviorAuto; |
| 956 ScrollableArea::scrollBehaviorFromString(scrollToOptions.behavior(), | 955 ScrollableArea::scrollBehaviorFromString(scrollToOptions.behavior(), |
| 957 scrollBehavior); | 956 scrollBehavior); |
| 958 LocalFrame* frame = document().frame(); | 957 LocalFrame* frame = document().frame(); |
| 959 if (!frame) | 958 if (!frame) |
| 960 return; | 959 return; |
| 961 ScrollableArea* viewport = | 960 ScrollableArea* viewport = |
| 962 frame->view() ? frame->view()->getScrollableArea() : 0; | 961 frame->view() ? frame->view()->getScrollableArea() : 0; |
| 963 if (!viewport) | 962 if (!viewport) |
| 964 return; | 963 return; |
| 965 | 964 |
| 966 double newScaledLeft = | 965 float newScaledLeft = |
| 967 left * frame->pageZoomFactor() + viewport->scrollPositionDouble().x(); | 966 left * frame->pageZoomFactor() + viewport->scrollOffset().width(); |
| 968 double newScaledTop = | 967 float newScaledTop = |
| 969 top * frame->pageZoomFactor() + viewport->scrollPositionDouble().y(); | 968 top * frame->pageZoomFactor() + viewport->scrollOffset().height(); |
| 970 viewport->setScrollPosition(DoublePoint(newScaledLeft, newScaledTop), | 969 viewport->setScrollOffset(ScrollOffset(newScaledLeft, newScaledTop), |
| 971 ProgrammaticScroll, scrollBehavior); | 970 ProgrammaticScroll, scrollBehavior); |
| 972 } | 971 } |
| 973 | 972 |
| 974 void Element::scrollFrameTo(const ScrollToOptions& scrollToOptions) { | 973 void Element::scrollFrameTo(const ScrollToOptions& scrollToOptions) { |
| 975 ScrollBehavior scrollBehavior = ScrollBehaviorAuto; | 974 ScrollBehavior scrollBehavior = ScrollBehaviorAuto; |
| 976 ScrollableArea::scrollBehaviorFromString(scrollToOptions.behavior(), | 975 ScrollableArea::scrollBehaviorFromString(scrollToOptions.behavior(), |
| 977 scrollBehavior); | 976 scrollBehavior); |
| 978 LocalFrame* frame = document().frame(); | 977 LocalFrame* frame = document().frame(); |
| 979 if (!frame) | 978 if (!frame) |
| 980 return; | 979 return; |
| 981 ScrollableArea* viewport = | 980 ScrollableArea* viewport = |
| 982 frame->view() ? frame->view()->getScrollableArea() : 0; | 981 frame->view() ? frame->view()->getScrollableArea() : 0; |
| 983 if (!viewport) | 982 if (!viewport) |
| 984 return; | 983 return; |
| 985 | 984 |
| 986 double scaledLeft = viewport->scrollPositionDouble().x(); | 985 float scaledLeft = viewport->scrollOffset().width(); |
| 987 double scaledTop = viewport->scrollPositionDouble().y(); | 986 float scaledTop = viewport->scrollOffset().height(); |
| 988 if (scrollToOptions.hasLeft()) | 987 if (scrollToOptions.hasLeft()) |
| 989 scaledLeft = | 988 scaledLeft = |
| 990 ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.left()) * | 989 ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.left()) * |
| 991 frame->pageZoomFactor(); | 990 frame->pageZoomFactor(); |
| 992 if (scrollToOptions.hasTop()) | 991 if (scrollToOptions.hasTop()) |
| 993 scaledTop = | 992 scaledTop = |
| 994 ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.top()) * | 993 ScrollableArea::normalizeNonFiniteScroll(scrollToOptions.top()) * |
| 995 frame->pageZoomFactor(); | 994 frame->pageZoomFactor(); |
| 996 viewport->setScrollPosition(DoublePoint(scaledLeft, scaledTop), | 995 viewport->setScrollOffset(ScrollOffset(scaledLeft, scaledTop), |
| 997 ProgrammaticScroll, scrollBehavior); | 996 ProgrammaticScroll, scrollBehavior); |
| 998 } | 997 } |
| 999 | 998 |
| 1000 bool Element::hasCompositorProxy() const { | 999 bool Element::hasCompositorProxy() const { |
| 1001 return hasRareData() && elementRareData()->proxiedPropertyCounts(); | 1000 return hasRareData() && elementRareData()->proxiedPropertyCounts(); |
| 1002 } | 1001 } |
| 1003 | 1002 |
| 1004 void Element::incrementCompositorProxiedProperties(uint32_t mutableProperties) { | 1003 void Element::incrementCompositorProxiedProperties(uint32_t mutableProperties) { |
| 1005 ElementRareData& rareData = ensureElementRareData(); | 1004 ElementRareData& rareData = ensureElementRareData(); |
| 1006 if (!rareData.proxiedPropertyCounts()) | 1005 if (!rareData.proxiedPropertyCounts()) |
| 1007 setNeedsStyleRecalc(LocalStyleChange, | 1006 setNeedsStyleRecalc(LocalStyleChange, |
| (...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1591 false); | 1590 false); |
| 1592 } | 1591 } |
| 1593 } | 1592 } |
| 1594 | 1593 |
| 1595 if (Fullscreen* fullscreen = Fullscreen::fromIfExists(document())) | 1594 if (Fullscreen* fullscreen = Fullscreen::fromIfExists(document())) |
| 1596 fullscreen->elementRemoved(*this); | 1595 fullscreen->elementRemoved(*this); |
| 1597 | 1596 |
| 1598 if (document().page()) | 1597 if (document().page()) |
| 1599 document().page()->pointerLockController().elementRemoved(this); | 1598 document().page()->pointerLockController().elementRemoved(this); |
| 1600 | 1599 |
| 1601 setSavedLayerScrollOffset(IntSize()); | 1600 setSavedLayerScrollOffset(ScrollOffset()); |
| 1602 | 1601 |
| 1603 if (insertionPoint->isInTreeScope() && treeScope() == document()) { | 1602 if (insertionPoint->isInTreeScope() && treeScope() == document()) { |
| 1604 const AtomicString& idValue = getIdAttribute(); | 1603 const AtomicString& idValue = getIdAttribute(); |
| 1605 if (!idValue.isNull()) | 1604 if (!idValue.isNull()) |
| 1606 updateId(insertionPoint->treeScope(), idValue, nullAtom); | 1605 updateId(insertionPoint->treeScope(), idValue, nullAtom); |
| 1607 | 1606 |
| 1608 const AtomicString& nameValue = getNameAttribute(); | 1607 const AtomicString& nameValue = getNameAttribute(); |
| 1609 if (!nameValue.isNull()) | 1608 if (!nameValue.isNull()) |
| 1610 updateName(nameValue, nullAtom); | 1609 updateName(nameValue, nullAtom); |
| 1611 } | 1610 } |
| (...skipping 1964 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3576 toHTMLDocument(document()).removeExtraNamedItem(oldId); | 3575 toHTMLDocument(document()).removeExtraNamedItem(oldId); |
| 3577 | 3576 |
| 3578 if (!newId.isEmpty()) | 3577 if (!newId.isEmpty()) |
| 3579 toHTMLDocument(document()).addExtraNamedItem(newId); | 3578 toHTMLDocument(document()).addExtraNamedItem(newId); |
| 3580 } | 3579 } |
| 3581 | 3580 |
| 3582 void Element::scheduleSVGFilterLayerUpdateHack() { | 3581 void Element::scheduleSVGFilterLayerUpdateHack() { |
| 3583 document().scheduleSVGFilterLayerUpdateHack(*this); | 3582 document().scheduleSVGFilterLayerUpdateHack(*this); |
| 3584 } | 3583 } |
| 3585 | 3584 |
| 3586 IntSize Element::savedLayerScrollOffset() const { | 3585 ScrollOffset Element::savedLayerScrollOffset() const { |
| 3587 return hasRareData() ? elementRareData()->savedLayerScrollOffset() | 3586 return hasRareData() ? elementRareData()->savedLayerScrollOffset() |
| 3588 : IntSize(); | 3587 : ScrollOffset(); |
| 3589 } | 3588 } |
| 3590 | 3589 |
| 3591 void Element::setSavedLayerScrollOffset(const IntSize& size) { | 3590 void Element::setSavedLayerScrollOffset(const ScrollOffset& size) { |
| 3592 if (size.isZero() && !hasRareData()) | 3591 if (size.isZero() && !hasRareData()) |
| 3593 return; | 3592 return; |
| 3594 ensureElementRareData().setSavedLayerScrollOffset(size); | 3593 ensureElementRareData().setSavedLayerScrollOffset(size); |
| 3595 } | 3594 } |
| 3596 | 3595 |
| 3597 Attr* Element::attrIfExists(const QualifiedName& name) { | 3596 Attr* Element::attrIfExists(const QualifiedName& name) { |
| 3598 if (AttrNodeList* attrNodeList = this->attrNodeList()) { | 3597 if (AttrNodeList* attrNodeList = this->attrNodeList()) { |
| 3599 bool shouldIgnoreCase = shouldIgnoreAttributeCase(); | 3598 bool shouldIgnoreCase = shouldIgnoreAttributeCase(); |
| 3600 for (const auto& attr : *attrNodeList) { | 3599 for (const auto& attr : *attrNodeList) { |
| 3601 if (attr->getQualifiedName().matchesPossiblyIgnoringCase( | 3600 if (attr->getQualifiedName().matchesPossiblyIgnoringCase( |
| (...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4046 } | 4045 } |
| 4047 | 4046 |
| 4048 DEFINE_TRACE_WRAPPERS(Element) { | 4047 DEFINE_TRACE_WRAPPERS(Element) { |
| 4049 if (hasRareData()) { | 4048 if (hasRareData()) { |
| 4050 visitor->traceWrappers(elementRareData()); | 4049 visitor->traceWrappers(elementRareData()); |
| 4051 } | 4050 } |
| 4052 ContainerNode::traceWrappers(visitor); | 4051 ContainerNode::traceWrappers(visitor); |
| 4053 } | 4052 } |
| 4054 | 4053 |
| 4055 } // namespace blink | 4054 } // namespace blink |
| OLD | NEW |