From 075bbef7b596287793ea9db7f4dbf96d4bff839a Mon Sep 17 00:00:00 2001 From: "doronr%us.ibm.com" Date: Thu, 16 Jun 2005 15:47:04 +0000 Subject: [PATCH] XForms Bug 296231 - Allow file:// xforms to submit anywhere. r=darin,aaronr a=mkaply git-svn-id: svn://10.0.0.236/trunk@174707 18797224-902f-48f8-a5cc-f745e15eee43 --- .../xforms/nsXFormsSubmissionElement.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mozilla/extensions/xforms/nsXFormsSubmissionElement.cpp b/mozilla/extensions/xforms/nsXFormsSubmissionElement.cpp index 03eb6b1be3d..d9b35b71cf0 100644 --- a/mozilla/extensions/xforms/nsXFormsSubmissionElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsSubmissionElement.cpp @@ -812,8 +812,18 @@ PRBool nsXFormsSubmissionElement::CheckSameOrigin(nsIURI *aBaseURI, nsIURI *aTestURI) { // We require same-origin for replace="instance" or XML submission - if (mFormat & (ENCODING_XML | ENCODING_MULTIPART_RELATED) || mIsReplaceInstance) - return nsXFormsUtils::CheckSameOrigin(aBaseURI, aTestURI); + if (mFormat & (ENCODING_XML | ENCODING_MULTIPART_RELATED) || mIsReplaceInstance) { + + // if we don't replace the instance, we allow file:// to send the data + PRBool schemeIsFile = PR_FALSE; + + if (!mIsReplaceInstance) { + aBaseURI->SchemeIs("file", &schemeIsFile); + } + + if (!schemeIsFile) + return nsXFormsUtils::CheckSameOrigin(aBaseURI, aTestURI); + } return PR_TRUE; }