diff options
Diffstat (limited to 'dom/ipc/BrowserParent.cpp')
-rw-r--r-- | dom/ipc/BrowserParent.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/dom/ipc/BrowserParent.cpp b/dom/ipc/BrowserParent.cpp index d369556588..5d13d2e814 100644 --- a/dom/ipc/BrowserParent.cpp +++ b/dom/ipc/BrowserParent.cpp @@ -1322,8 +1322,20 @@ mozilla::ipc::IPCResult BrowserParent::RecvPDocAccessibleConstructor( #endif already_AddRefed<PFilePickerParent> BrowserParent::AllocPFilePickerParent( - const nsString& aTitle, const nsIFilePicker::Mode& aMode) { - return MakeAndAddRef<FilePickerParent>(aTitle, aMode); + const nsString& aTitle, const nsIFilePicker::Mode& aMode, + const MaybeDiscarded<BrowsingContext>& aBrowsingContext) { + RefPtr<CanonicalBrowsingContext> browsingContext = + [&]() -> CanonicalBrowsingContext* { + if (aBrowsingContext.IsNullOrDiscarded()) { + return nullptr; + } + if (!aBrowsingContext.get_canonical()->IsOwnedByProcess( + Manager()->ChildID())) { + return nullptr; + } + return aBrowsingContext.get_canonical(); + }(); + return MakeAndAddRef<FilePickerParent>(aTitle, aMode, browsingContext); } already_AddRefed<PSessionStoreParent> |