Bug 1419285 - Part 1. Calculate composition rect for remote XUL frame. r?masayuki draft
authorMakoto Kato <m_kato@ga2.so-net.ne.jp>
Wed, 29 Nov 2017 15:55:58 +0900
changeset 705517 bd92171341de3fe22db0ba7a56041f85b766c6fc
parent 705442 38f49346a200cc25492236c7b3c536fc835fe031
child 705518 cb14e0e2c584117bafc5206ed72fd0e1914231af
push id91491
push userbmo:m_kato@ga2.so-net.ne.jp
push dateThu, 30 Nov 2017 08:04:16 +0000
reviewersmasayuki
bugs1419285
milestone59.0a1
Bug 1419285 - Part 1. Calculate composition rect for remote XUL frame. r?masayuki Out of process support for Web extension creates another XUL widget for it. We should calculate correct offset for Web Extension's remote widget. MozReview-Commit-ID: AaALzLeKLsM
dom/ipc/TabParent.cpp
--- a/dom/ipc/TabParent.cpp
+++ b/dom/ipc/TabParent.cpp
@@ -2281,18 +2281,26 @@ TabParent::HandleQueryContentEvent(Widge
   if (NS_WARN_IF(!mContentCache.HandleQueryContentEvent(aEvent, widget)) ||
       NS_WARN_IF(!aEvent.mSucceeded)) {
     return true;
   }
   switch (aEvent.mMessage) {
     case eQueryTextRect:
     case eQueryCaretRect:
     case eQueryEditorRect:
+    {
+      nsCOMPtr<nsIWidget> widget = GetWidget();
+      nsCOMPtr<nsIWidget> docWidget = GetDocWidget();
+      if (widget != docWidget) {
+        aEvent.mReply.mRect +=
+          nsLayoutUtils::WidgetToWidgetOffset(widget, docWidget);
+      }
       aEvent.mReply.mRect -= GetChildProcessOffset();
       break;
+    }
     default:
       break;
   }
   return true;
 }
 
 bool
 TabParent::SendCompositionEvent(WidgetCompositionEvent& aEvent)