summaryrefslogtreecommitdiffstats
path: root/dom/ipc/BrowserParent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'dom/ipc/BrowserParent.cpp')
-rw-r--r--dom/ipc/BrowserParent.cpp16
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>