[Chromium] Fix nits in the find-in-page match rects API
authorleandrogracia@chromium.org <leandrogracia@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Aug 2012 17:42:55 +0000 (17:42 +0000)
committerleandrogracia@chromium.org <leandrogracia@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 13 Aug 2012 17:42:55 +0000 (17:42 +0000)
https://bugs.webkit.org/show_bug.cgi?id=93817

Reviewed by Adam Barth.

This patch fixes a few pending nits from 93111.

Source/WebCore:

Tests: existing WebKit unit test WebFrameTest.FindInPageMatchRects

* dom/Range.cpp:
(WebCore::Range::transformFriendlyBoundingBox): add call to updateLayoutIgnorePendingStylesheets.

Source/WebKit/chromium:

* src/FindInPageCoordinates.cpp: replace a pointer by a reference in an output argument.
(WebKit::toNormalizedRect):
(WebKit::findInPageRectFromAbsoluteRect):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@125427 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/dom/Range.cpp
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/FindInPageCoordinates.cpp

index 627e3ed..8cf549a 100644 (file)
@@ -1,3 +1,17 @@
+2012-08-13  Leandro Gracia Gil  <leandrogracia@chromium.org>
+
+        [Chromium] Fix nits in the find-in-page match rects API
+        https://bugs.webkit.org/show_bug.cgi?id=93817
+
+        Reviewed by Adam Barth.
+
+        This patch fixes a few pending nits from 93111.
+
+        Tests: existing WebKit unit test WebFrameTest.FindInPageMatchRects
+
+        * dom/Range.cpp:
+        (WebCore::Range::transformFriendlyBoundingBox): add call to updateLayoutIgnorePendingStylesheets.
+
 2012-08-13  Pavel Feldman  <pfeldman@chromium.org>
 
         Web Inspector: get rid of beforeTextChanged
index adfb48e..c6c2d22 100644 (file)
@@ -1963,12 +1963,16 @@ FloatRect Range::boundingRect() const
 
 FloatRect Range::transformFriendlyBoundingBox() const
 {
-    FloatRect result;
+    if (!m_start.container())
+        return FloatRect();
+
+    m_ownerDocument->updateLayoutIgnorePendingStylesheets();
+
     Vector<FloatQuad> quads;
     textQuads(quads);
 
-    const size_t n = quads.size();
-    for (size_t i = 0; i < n; ++i)
+    FloatRect result;
+    for (size_t i = 0; i < quads.size(); ++i)
         result.unite(quads[i].boundingBox());
 
     return result;
index 3179b73..13ce5f1 100644 (file)
@@ -1,3 +1,16 @@
+2012-08-13  Leandro Gracia Gil  <leandrogracia@chromium.org>
+
+        [Chromium] Fix nits in the find-in-page match rects API
+        https://bugs.webkit.org/show_bug.cgi?id=93817
+
+        Reviewed by Adam Barth.
+
+        This patch fixes a few pending nits from 93111.
+
+        * src/FindInPageCoordinates.cpp: replace a pointer by a reference in an output argument.
+        (WebKit::toNormalizedRect):
+        (WebKit::findInPageRectFromAbsoluteRect):
+
 2012-08-13  Peter Beverloo  <peter@chromium.org>
 
         [Chromium] Fix apk generation for the Android platform
index 62da7af..f9ff19c 100644 (file)
@@ -48,21 +48,19 @@ using namespace WebCore;
 
 namespace WebKit {
 
-static FloatRect toNormalizedRect(const FloatRect& absoluteRect, const RenderObject* renderer, FloatRect* containerBoundingBox = 0)
+static FloatRect toNormalizedRect(const FloatRect& absoluteRect, const RenderObject* renderer, FloatRect& containerBoundingBox)
 {
     ASSERT(renderer);
 
     const RenderObject* container = renderer->container();
     if (!container) {
-        if (containerBoundingBox)
-            *containerBoundingBox = FloatRect();
+        containerBoundingBox = FloatRect();
         return FloatRect();
     }
 
     FloatRect normalizedRect = absoluteRect;
     FloatRect containerRect = container->absoluteBoundingBoxRect();
-    if (containerBoundingBox)
-        *containerBoundingBox = containerRect;
+    containerBoundingBox = containerRect;
 
     // For RenderBoxes we want to normalize by the max layout overflow size instead of only the visible bounding box.
     // Quads and their enclosing bounding boxes need to be used in order to keep results transform-friendly.
@@ -102,7 +100,7 @@ FloatRect findInPageRectFromAbsoluteRect(const FloatRect& inputRect, const Rende
 
     // Normalize the input rect to its container, saving the container bounding box for the incoming loop.
     FloatRect rendererBoundingBox;
-    FloatRect normalizedRect = toNormalizedRect(inputRect, renderer, &rendererBoundingBox);
+    FloatRect normalizedRect = toNormalizedRect(inputRect, renderer, rendererBoundingBox);
     renderer = renderer->container();
 
     // Go up across frames.
@@ -113,7 +111,7 @@ FloatRect findInPageRectFromAbsoluteRect(const FloatRect& inputRect, const Rende
 
             // Compose the normalized rects. The absolute bounding box of the container is calculated in toNormalizedRect
             // and can be reused for the next iteration of the loop.
-            FloatRect normalizedBoxRect = toNormalizedRect(rendererBoundingBox, renderer, &rendererBoundingBox);
+            FloatRect normalizedBoxRect = toNormalizedRect(rendererBoundingBox, renderer, rendererBoundingBox);
             normalizedRect.scale(normalizedBoxRect.width(), normalizedBoxRect.height());
             normalizedRect.moveBy(normalizedBoxRect.location());