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