diff options
author | wolfbeast <mcwerewolf@gmail.com> | 2018-03-14 12:38:55 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2018-03-14 12:38:55 +0100 |
commit | 302f17e514772770f5555ce939b21b194514ebc3 (patch) | |
tree | aca62ce6a23c2a9b08cfa27987586463aafef760 /dom/ipc/TabChild.cpp | |
parent | 959f6d2881edaf7389b439ca69bcf881622d06a2 (diff) | |
download | UXP-302f17e514772770f5555ce939b21b194514ebc3.tar UXP-302f17e514772770f5555ce939b21b194514ebc3.tar.gz UXP-302f17e514772770f5555ce939b21b194514ebc3.tar.lz UXP-302f17e514772770f5555ce939b21b194514ebc3.tar.xz UXP-302f17e514772770f5555ce939b21b194514ebc3.zip |
Revert "Bug 1438425 - Delete DocumentRenderer. r=jesup, a=RyanVM"
This reverts commit 5b69e05939c7fd3f917e2dd0f399774b3b15c886.
Diffstat (limited to 'dom/ipc/TabChild.cpp')
-rw-r--r-- | dom/ipc/TabChild.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/dom/ipc/TabChild.cpp b/dom/ipc/TabChild.cpp index f46a917d5..eaf4a32ed 100644 --- a/dom/ipc/TabChild.cpp +++ b/dom/ipc/TabChild.cpp @@ -22,6 +22,7 @@ #include "mozilla/dom/indexedDB/PIndexedDBPermissionRequestChild.h" #include "mozilla/plugins/PluginWidgetChild.h" #include "mozilla/IMEStateManager.h" +#include "mozilla/ipc/DocumentRendererChild.h" #include "mozilla/ipc/URIUtils.h" #include "mozilla/layers/APZChild.h" #include "mozilla/layers/APZCCallbackHelper.h" @@ -2005,6 +2006,57 @@ TabChild::DeallocPDocAccessibleChild(a11y::PDocAccessibleChild* aChild) return true; } +PDocumentRendererChild* +TabChild::AllocPDocumentRendererChild(const nsRect& documentRect, + const mozilla::gfx::Matrix& transform, + const nsString& bgcolor, + const uint32_t& renderFlags, + const bool& flushLayout, + const nsIntSize& renderSize) +{ + return new DocumentRendererChild(); +} + +bool +TabChild::DeallocPDocumentRendererChild(PDocumentRendererChild* actor) +{ + delete actor; + return true; +} + +bool +TabChild::RecvPDocumentRendererConstructor(PDocumentRendererChild* actor, + const nsRect& documentRect, + const mozilla::gfx::Matrix& transform, + const nsString& bgcolor, + const uint32_t& renderFlags, + const bool& flushLayout, + const nsIntSize& renderSize) +{ + DocumentRendererChild *render = static_cast<DocumentRendererChild *>(actor); + + nsCOMPtr<nsIWebBrowser> browser = do_QueryInterface(WebNavigation()); + if (!browser) + return true; // silently ignore + nsCOMPtr<mozIDOMWindowProxy> window; + if (NS_FAILED(browser->GetContentDOMWindow(getter_AddRefs(window))) || + !window) + { + return true; // silently ignore + } + + nsCString data; + bool ret = render->RenderDocument(nsPIDOMWindowOuter::From(window), + documentRect, transform, + bgcolor, + renderFlags, flushLayout, + renderSize, data); + if (!ret) + return true; // silently ignore + + return PDocumentRendererChild::Send__delete__(actor, renderSize, data); +} + PColorPickerChild* TabChild::AllocPColorPickerChild(const nsString&, const nsString&) { |