Title: [168053] trunk/Source/WebKit2
Revision
168053
Author
bda...@apple.com
Date
2014-04-30 15:45:36 -0700 (Wed, 30 Apr 2014)

Log Message

Phone number data detection UI is offset for iframes, pages with topContentInset
https://bugs.webkit.org/show_bug.cgi?id=132372
-and corresponding-
<rdar://problem/16651235>

Reviewed by Tim Horton.

Make the overlay an OverlayType::Document, which will keep everything relative to 
the main Document’s coordinates. 
* WebProcess/WebPage/TelephoneNumberOverlayController.cpp:
(WebKit::TelephoneNumberOverlayController::createOverlayIfNeeded):

Make frames work by converting to the main  document’s coordinate space.
* WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
(WebKit::TelephoneNumberOverlayController::drawRect):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (168052 => 168053)


--- trunk/Source/WebKit2/ChangeLog	2014-04-30 22:44:42 UTC (rev 168052)
+++ trunk/Source/WebKit2/ChangeLog	2014-04-30 22:45:36 UTC (rev 168053)
@@ -1,3 +1,21 @@
+2014-04-30  Beth Dakin  <bda...@apple.com>
+
+        Phone number data detection UI is offset for iframes, pages with topContentInset
+        https://bugs.webkit.org/show_bug.cgi?id=132372
+        -and corresponding-
+        <rdar://problem/16651235>
+
+        Reviewed by Tim Horton.
+
+        Make the overlay an OverlayType::Document, which will keep everything relative to 
+        the main Document’s coordinates. 
+        * WebProcess/WebPage/TelephoneNumberOverlayController.cpp:
+        (WebKit::TelephoneNumberOverlayController::createOverlayIfNeeded):
+
+        Make frames work by converting to the main  document’s coordinate space.
+        * WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:
+        (WebKit::TelephoneNumberOverlayController::drawRect):
+
 2014-04-30  Roger Fong  <roger_f...@apple.com>
 
         Unreviewed. Unnecessary explicit initialization of LayoutUnit from r167985.

Modified: trunk/Source/WebKit2/WebProcess/WebPage/TelephoneNumberOverlayController.cpp (168052 => 168053)


--- trunk/Source/WebKit2/WebProcess/WebPage/TelephoneNumberOverlayController.cpp	2014-04-30 22:44:42 UTC (rev 168052)
+++ trunk/Source/WebKit2/WebProcess/WebPage/TelephoneNumberOverlayController.cpp	2014-04-30 22:45:36 UTC (rev 168053)
@@ -49,7 +49,7 @@
         return;
     }
     
-    RefPtr<PageOverlay> overlay = PageOverlay::create(this);
+    RefPtr<PageOverlay> overlay = PageOverlay::create(this, PageOverlay::OverlayType::Document);
     m_telephoneNumberOverlay = overlay.get();
     m_webPage->installPageOverlay(overlay.release(), PageOverlay::FadeMode::Fade);
     m_telephoneNumberOverlay->setNeedsDisplay();

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm (168052 => 168053)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm	2014-04-30 22:44:42 UTC (rev 168052)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm	2014-04-30 22:45:36 UTC (rev 168053)
@@ -28,6 +28,7 @@
 
 #if ENABLE(TELEPHONE_NUMBER_DETECTION) && PLATFORM(MAC)
 
+#import <WebCore/Document.h>
 #import <WebCore/FrameView.h>
 #import <WebCore/GraphicsContext.h>
 #import <WebCore/MainFrame.h>
@@ -67,6 +68,12 @@
         // FIXME: This will choke if the range wraps around the edge of the view.
         // What should we do in that case?
         IntRect rect = enclosingIntRect(range->boundingRect());
+
+        // Convert to the main document's coordinate space.
+        FrameView* viewForRange = range->ownerDocument().view();
+        FrameView& mainFrameView = *m_webPage->corePage()->mainFrame().view();
+        rect.setLocation(mainFrameView.convertChildToSelf(viewForRange, rect.location()));
+
         CGRect cgRects[] = { (CGRect)rect };
 
         RetainPtr<DDHighlightRef> highlight = adoptCF(DDHighlightCreateWithRectsInVisibleRect(nullptr, cgRects, 1, (CGRect)dirtyRect, true));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to