| 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 667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 678 } | 678 } |
| 679 | 679 |
| 680 return ClientRect::create(document->frame()->selection().absoluteCaretBounds
()); | 680 return ClientRect::create(document->frame()->selection().absoluteCaretBounds
()); |
| 681 } | 681 } |
| 682 | 682 |
| 683 PassRefPtrWillBeRawPtr<ClientRect> Internals::boundingBox(Element* element) | 683 PassRefPtrWillBeRawPtr<ClientRect> Internals::boundingBox(Element* element) |
| 684 { | 684 { |
| 685 ASSERT(element); | 685 ASSERT(element); |
| 686 | 686 |
| 687 element->document().updateLayoutIgnorePendingStylesheets(); | 687 element->document().updateLayoutIgnorePendingStylesheets(); |
| 688 LayoutObject* renderer = element->renderer(); | 688 LayoutObject* renderer = element->layoutObject(); |
| 689 if (!renderer) | 689 if (!renderer) |
| 690 return ClientRect::create(); | 690 return ClientRect::create(); |
| 691 return ClientRect::create(renderer->absoluteBoundingBoxRectIgnoringTransform
s()); | 691 return ClientRect::create(renderer->absoluteBoundingBoxRectIgnoringTransform
s()); |
| 692 } | 692 } |
| 693 | 693 |
| 694 unsigned Internals::markerCountForNode(Node* node, const String& markerType, Exc
eptionState& exceptionState) | 694 unsigned Internals::markerCountForNode(Node* node, const String& markerType, Exc
eptionState& exceptionState) |
| 695 { | 695 { |
| 696 ASSERT(node); | 696 ASSERT(node); |
| 697 DocumentMarker::MarkerTypes markerTypes = 0; | 697 DocumentMarker::MarkerTypes markerTypes = 0; |
| 698 if (!markerTypesFrom(markerType, markerTypes)) { | 698 if (!markerTypesFrom(markerType, markerTypes)) { |
| (...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1163 { | 1163 { |
| 1164 ASSERT(document); | 1164 ASSERT(document); |
| 1165 return eventHandlerCount(*document, EventHandlerRegistry::TouchEvent); | 1165 return eventHandlerCount(*document, EventHandlerRegistry::TouchEvent); |
| 1166 } | 1166 } |
| 1167 | 1167 |
| 1168 static Layer* findLayerForGraphicsLayer(Layer* searchRoot, GraphicsLayer* graphi
csLayer, IntSize* layerOffset, String* layerType) | 1168 static Layer* findLayerForGraphicsLayer(Layer* searchRoot, GraphicsLayer* graphi
csLayer, IntSize* layerOffset, String* layerType) |
| 1169 { | 1169 { |
| 1170 *layerOffset = IntSize(); | 1170 *layerOffset = IntSize(); |
| 1171 if (searchRoot->hasCompositedLayerMapping() && graphicsLayer == searchRoot->
compositedLayerMapping()->mainGraphicsLayer()) { | 1171 if (searchRoot->hasCompositedLayerMapping() && graphicsLayer == searchRoot->
compositedLayerMapping()->mainGraphicsLayer()) { |
| 1172 LayoutRect rect; | 1172 LayoutRect rect; |
| 1173 Layer::mapRectToPaintBackingCoordinates(searchRoot->renderer(), rect); | 1173 Layer::mapRectToPaintBackingCoordinates(searchRoot->layoutObject(), rect
); |
| 1174 *layerOffset = IntSize(rect.x(), rect.y()); | 1174 *layerOffset = IntSize(rect.x(), rect.y()); |
| 1175 return searchRoot; | 1175 return searchRoot; |
| 1176 } | 1176 } |
| 1177 | 1177 |
| 1178 GraphicsLayer* layerForScrolling = searchRoot->scrollableArea() ? searchRoot
->scrollableArea()->layerForScrolling() : 0; | 1178 GraphicsLayer* layerForScrolling = searchRoot->scrollableArea() ? searchRoot
->scrollableArea()->layerForScrolling() : 0; |
| 1179 if (graphicsLayer == layerForScrolling) { | 1179 if (graphicsLayer == layerForScrolling) { |
| 1180 *layerType = "scrolling"; | 1180 *layerType = "scrolling"; |
| 1181 return searchRoot; | 1181 return searchRoot; |
| 1182 } | 1182 } |
| 1183 | 1183 |
| 1184 if (searchRoot->compositingState() == PaintsIntoGroupedBacking) { | 1184 if (searchRoot->compositingState() == PaintsIntoGroupedBacking) { |
| 1185 GraphicsLayer* squashingLayer = searchRoot->groupedMapping()->squashingL
ayer(); | 1185 GraphicsLayer* squashingLayer = searchRoot->groupedMapping()->squashingL
ayer(); |
| 1186 if (graphicsLayer == squashingLayer) { | 1186 if (graphicsLayer == squashingLayer) { |
| 1187 *layerType ="squashing"; | 1187 *layerType ="squashing"; |
| 1188 LayoutRect rect; | 1188 LayoutRect rect; |
| 1189 Layer::mapRectToPaintBackingCoordinates(searchRoot->renderer(), rect
); | 1189 Layer::mapRectToPaintBackingCoordinates(searchRoot->layoutObject(),
rect); |
| 1190 *layerOffset = IntSize(rect.x(), rect.y()); | 1190 *layerOffset = IntSize(rect.x(), rect.y()); |
| 1191 return searchRoot; | 1191 return searchRoot; |
| 1192 } | 1192 } |
| 1193 } | 1193 } |
| 1194 | 1194 |
| 1195 GraphicsLayer* layerForHorizontalScrollbar = searchRoot->scrollableArea() ?
searchRoot->scrollableArea()->layerForHorizontalScrollbar() : 0; | 1195 GraphicsLayer* layerForHorizontalScrollbar = searchRoot->scrollableArea() ?
searchRoot->scrollableArea()->layerForHorizontalScrollbar() : 0; |
| 1196 if (graphicsLayer == layerForHorizontalScrollbar) { | 1196 if (graphicsLayer == layerForHorizontalScrollbar) { |
| 1197 *layerType = "horizontalScrollbar"; | 1197 *layerType = "horizontalScrollbar"; |
| 1198 return searchRoot; | 1198 return searchRoot; |
| 1199 } | 1199 } |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1267 } | 1267 } |
| 1268 | 1268 |
| 1269 static void accumulateLayerRectList(LayerCompositor* compositor, GraphicsLayer*
graphicsLayer, LayerRectList* rects) | 1269 static void accumulateLayerRectList(LayerCompositor* compositor, GraphicsLayer*
graphicsLayer, LayerRectList* rects) |
| 1270 { | 1270 { |
| 1271 blink::WebVector<blink::WebRect> layerRects = graphicsLayer->platformLayer()
->touchEventHandlerRegion(); | 1271 blink::WebVector<blink::WebRect> layerRects = graphicsLayer->platformLayer()
->touchEventHandlerRegion(); |
| 1272 if (!layerRects.isEmpty()) { | 1272 if (!layerRects.isEmpty()) { |
| 1273 mergeRects(layerRects); | 1273 mergeRects(layerRects); |
| 1274 String layerType; | 1274 String layerType; |
| 1275 IntSize layerOffset; | 1275 IntSize layerOffset; |
| 1276 Layer* renderLayer = findLayerForGraphicsLayer(compositor->rootLayer(),
graphicsLayer, &layerOffset, &layerType); | 1276 Layer* renderLayer = findLayerForGraphicsLayer(compositor->rootLayer(),
graphicsLayer, &layerOffset, &layerType); |
| 1277 Node* node = renderLayer ? renderLayer->renderer()->node() : 0; | 1277 Node* node = renderLayer ? renderLayer->layoutObject()->node() : 0; |
| 1278 for (size_t i = 0; i < layerRects.size(); ++i) { | 1278 for (size_t i = 0; i < layerRects.size(); ++i) { |
| 1279 if (!layerRects[i].isEmpty()) { | 1279 if (!layerRects[i].isEmpty()) { |
| 1280 rects->append(node, layerType, layerOffset.width(), layerOffset.
height(), ClientRect::create(layerRects[i])); | 1280 rects->append(node, layerType, layerOffset.width(), layerOffset.
height(), ClientRect::create(layerRects[i])); |
| 1281 } | 1281 } |
| 1282 } | 1282 } |
| 1283 } | 1283 } |
| 1284 | 1284 |
| 1285 size_t numChildren = graphicsLayer->children().size(); | 1285 size_t numChildren = graphicsLayer->children().size(); |
| 1286 for (size_t i = 0; i < numChildren; ++i) | 1286 for (size_t i = 0; i < numChildren; ++i) |
| 1287 accumulateLayerRectList(compositor, graphicsLayer->children()[i], rects)
; | 1287 accumulateLayerRectList(compositor, graphicsLayer->children()[i], rects)
; |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1501 frameView->updateLayoutAndStyleForPainting(); | 1501 frameView->updateLayoutAndStyleForPainting(); |
| 1502 | 1502 |
| 1503 return elementLayerTreeAsText(element, 0, exceptionState); | 1503 return elementLayerTreeAsText(element, 0, exceptionState); |
| 1504 } | 1504 } |
| 1505 | 1505 |
| 1506 bool Internals::scrollsWithRespectTo(Element* element1, Element* element2, Excep
tionState& exceptionState) | 1506 bool Internals::scrollsWithRespectTo(Element* element1, Element* element2, Excep
tionState& exceptionState) |
| 1507 { | 1507 { |
| 1508 ASSERT(element1 && element2); | 1508 ASSERT(element1 && element2); |
| 1509 element1->document().view()->updateLayoutAndStyleForPainting(); | 1509 element1->document().view()->updateLayoutAndStyleForPainting(); |
| 1510 | 1510 |
| 1511 LayoutObject* renderer1 = element1->renderer(); | 1511 LayoutObject* renderer1 = element1->layoutObject(); |
| 1512 LayoutObject* renderer2 = element2->renderer(); | 1512 LayoutObject* renderer2 = element2->layoutObject(); |
| 1513 if (!renderer1 || !renderer1->isBox()) { | 1513 if (!renderer1 || !renderer1->isBox()) { |
| 1514 exceptionState.throwDOMException(InvalidAccessError, renderer1 ? "The fi
rst provided element's renderer is not a box." : "The first provided element has
no renderer."); | 1514 exceptionState.throwDOMException(InvalidAccessError, renderer1 ? "The fi
rst provided element's renderer is not a box." : "The first provided element has
no renderer."); |
| 1515 return false; | 1515 return false; |
| 1516 } | 1516 } |
| 1517 if (!renderer2 || !renderer2->isBox()) { | 1517 if (!renderer2 || !renderer2->isBox()) { |
| 1518 exceptionState.throwDOMException(InvalidAccessError, renderer2 ? "The se
cond provided element's renderer is not a box." : "The second provided element h
as no renderer."); | 1518 exceptionState.throwDOMException(InvalidAccessError, renderer2 ? "The se
cond provided element's renderer is not a box." : "The second provided element h
as no renderer."); |
| 1519 return false; | 1519 return false; |
| 1520 } | 1520 } |
| 1521 | 1521 |
| 1522 Layer* layer1 = toLayoutBox(renderer1)->layer(); | 1522 Layer* layer1 = toLayoutBox(renderer1)->layer(); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 1540 document->view()->updateLayoutAndStyleForPainting(); | 1540 document->view()->updateLayoutAndStyleForPainting(); |
| 1541 | 1541 |
| 1542 return document->frame()->layerTreeAsText(flags); | 1542 return document->frame()->layerTreeAsText(flags); |
| 1543 } | 1543 } |
| 1544 | 1544 |
| 1545 String Internals::elementLayerTreeAsText(Element* element, unsigned flags, Excep
tionState& exceptionState) const | 1545 String Internals::elementLayerTreeAsText(Element* element, unsigned flags, Excep
tionState& exceptionState) const |
| 1546 { | 1546 { |
| 1547 ASSERT(element); | 1547 ASSERT(element); |
| 1548 element->document().updateLayout(); | 1548 element->document().updateLayout(); |
| 1549 | 1549 |
| 1550 LayoutObject* renderer = element->renderer(); | 1550 LayoutObject* renderer = element->layoutObject(); |
| 1551 if (!renderer || !renderer->isBox()) { | 1551 if (!renderer || !renderer->isBox()) { |
| 1552 exceptionState.throwDOMException(InvalidAccessError, renderer ? "The pro
vided element's renderer is not a box." : "The provided element has no renderer.
"); | 1552 exceptionState.throwDOMException(InvalidAccessError, renderer ? "The pro
vided element's renderer is not a box." : "The provided element has no renderer.
"); |
| 1553 return String(); | 1553 return String(); |
| 1554 } | 1554 } |
| 1555 | 1555 |
| 1556 Layer* layer = toLayoutBox(renderer)->layer(); | 1556 Layer* layer = toLayoutBox(renderer)->layer(); |
| 1557 if (!layer | 1557 if (!layer |
| 1558 || !layer->hasCompositedLayerMapping() | 1558 || !layer->hasCompositedLayerMapping() |
| 1559 || !layer->compositedLayerMapping()->mainGraphicsLayer()) { | 1559 || !layer->compositedLayerMapping()->mainGraphicsLayer()) { |
| 1560 // Don't raise exception in these cases which may be normally used in te
sts. | 1560 // Don't raise exception in these cases which may be normally used in te
sts. |
| (...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1989 } | 1989 } |
| 1990 | 1990 |
| 1991 bool Internals::isSelectPopupVisible(Node* node) | 1991 bool Internals::isSelectPopupVisible(Node* node) |
| 1992 { | 1992 { |
| 1993 ASSERT(node); | 1993 ASSERT(node); |
| 1994 if (!isHTMLSelectElement(*node)) | 1994 if (!isHTMLSelectElement(*node)) |
| 1995 return false; | 1995 return false; |
| 1996 | 1996 |
| 1997 HTMLSelectElement& select = toHTMLSelectElement(*node); | 1997 HTMLSelectElement& select = toHTMLSelectElement(*node); |
| 1998 | 1998 |
| 1999 LayoutObject* renderer = select.renderer(); | 1999 LayoutObject* renderer = select.layoutObject(); |
| 2000 if (!renderer || !renderer->isMenuList()) | 2000 if (!renderer || !renderer->isMenuList()) |
| 2001 return false; | 2001 return false; |
| 2002 | 2002 |
| 2003 LayoutMenuList* menuList = toLayoutMenuList(renderer); | 2003 LayoutMenuList* menuList = toLayoutMenuList(renderer); |
| 2004 return menuList->popupIsVisible(); | 2004 return menuList->popupIsVisible(); |
| 2005 } | 2005 } |
| 2006 | 2006 |
| 2007 bool Internals::selectPopupItemStyleIsRtl(Node* node, int itemIndex) | 2007 bool Internals::selectPopupItemStyleIsRtl(Node* node, int itemIndex) |
| 2008 { | 2008 { |
| 2009 if (!node || !isHTMLSelectElement(*node)) | 2009 if (!node || !isHTMLSelectElement(*node)) |
| 2010 return false; | 2010 return false; |
| 2011 | 2011 |
| 2012 HTMLSelectElement& select = toHTMLSelectElement(*node); | 2012 HTMLSelectElement& select = toHTMLSelectElement(*node); |
| 2013 | 2013 |
| 2014 LayoutObject* renderer = select.renderer(); | 2014 LayoutObject* renderer = select.layoutObject(); |
| 2015 if (!renderer || !renderer->isMenuList()) | 2015 if (!renderer || !renderer->isMenuList()) |
| 2016 return false; | 2016 return false; |
| 2017 | 2017 |
| 2018 LayoutMenuList& menuList = toLayoutMenuList(*renderer); | 2018 LayoutMenuList& menuList = toLayoutMenuList(*renderer); |
| 2019 PopupMenuStyle itemStyle = menuList.itemStyle(itemIndex); | 2019 PopupMenuStyle itemStyle = menuList.itemStyle(itemIndex); |
| 2020 return itemStyle.textDirection() == RTL; | 2020 return itemStyle.textDirection() == RTL; |
| 2021 } | 2021 } |
| 2022 | 2022 |
| 2023 int Internals::selectPopupItemStyleFontHeight(Node* node, int itemIndex) | 2023 int Internals::selectPopupItemStyleFontHeight(Node* node, int itemIndex) |
| 2024 { | 2024 { |
| 2025 if (!node || !isHTMLSelectElement(*node)) | 2025 if (!node || !isHTMLSelectElement(*node)) |
| 2026 return false; | 2026 return false; |
| 2027 | 2027 |
| 2028 HTMLSelectElement& select = toHTMLSelectElement(*node); | 2028 HTMLSelectElement& select = toHTMLSelectElement(*node); |
| 2029 | 2029 |
| 2030 LayoutObject* renderer = select.renderer(); | 2030 LayoutObject* renderer = select.layoutObject(); |
| 2031 if (!renderer || !renderer->isMenuList()) | 2031 if (!renderer || !renderer->isMenuList()) |
| 2032 return false; | 2032 return false; |
| 2033 | 2033 |
| 2034 LayoutMenuList& menuList = toLayoutMenuList(*renderer); | 2034 LayoutMenuList& menuList = toLayoutMenuList(*renderer); |
| 2035 PopupMenuStyle itemStyle = menuList.itemStyle(itemIndex); | 2035 PopupMenuStyle itemStyle = menuList.itemStyle(itemIndex); |
| 2036 return itemStyle.font().fontMetrics().height(); | 2036 return itemStyle.font().fontMetrics().height(); |
| 2037 } | 2037 } |
| 2038 | 2038 |
| 2039 bool Internals::loseSharedGraphicsContext3D() | 2039 bool Internals::loseSharedGraphicsContext3D() |
| 2040 { | 2040 { |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2167 void Internals::setValueForUser(Element* element, const String& value) | 2167 void Internals::setValueForUser(Element* element, const String& value) |
| 2168 { | 2168 { |
| 2169 toHTMLInputElement(element)->setValueForUser(value); | 2169 toHTMLInputElement(element)->setValueForUser(value); |
| 2170 } | 2170 } |
| 2171 | 2171 |
| 2172 String Internals::textSurroundingNode(Node* node, int x, int y, unsigned long ma
xLength) | 2172 String Internals::textSurroundingNode(Node* node, int x, int y, unsigned long ma
xLength) |
| 2173 { | 2173 { |
| 2174 if (!node) | 2174 if (!node) |
| 2175 return String(); | 2175 return String(); |
| 2176 blink::WebPoint point(x, y); | 2176 blink::WebPoint point(x, y); |
| 2177 SurroundingText surroundingText(VisiblePosition(node->renderer()->positionFo
rPoint(static_cast<IntPoint>(point))).deepEquivalent().parentAnchoredEquivalent(
), maxLength); | 2177 SurroundingText surroundingText(VisiblePosition(node->layoutObject()->positi
onForPoint(static_cast<IntPoint>(point))).deepEquivalent().parentAnchoredEquival
ent(), maxLength); |
| 2178 return surroundingText.content(); | 2178 return surroundingText.content(); |
| 2179 } | 2179 } |
| 2180 | 2180 |
| 2181 void Internals::setFocused(bool focused) | 2181 void Internals::setFocused(bool focused) |
| 2182 { | 2182 { |
| 2183 frame()->page()->focusController().setFocused(focused); | 2183 frame()->page()->focusController().setFocused(focused); |
| 2184 } | 2184 } |
| 2185 | 2185 |
| 2186 bool Internals::ignoreLayoutWithPendingStylesheets(Document* document) | 2186 bool Internals::ignoreLayoutWithPendingStylesheets(Document* document) |
| 2187 { | 2187 { |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2317 { | 2317 { |
| 2318 ThreadState::current()->setGCState(ThreadState::GCScheduledForTesting); | 2318 ThreadState::current()->setGCState(ThreadState::GCScheduledForTesting); |
| 2319 } | 2319 } |
| 2320 | 2320 |
| 2321 ValueIterable<int>::IterationSource* Internals::startIteration(ScriptState*, Exc
eptionState&) | 2321 ValueIterable<int>::IterationSource* Internals::startIteration(ScriptState*, Exc
eptionState&) |
| 2322 { | 2322 { |
| 2323 return new InternalsIterationSource(); | 2323 return new InternalsIterationSource(); |
| 2324 } | 2324 } |
| 2325 | 2325 |
| 2326 } // namespace blink | 2326 } // namespace blink |
| OLD | NEW |