~ubuntu-branches/ubuntu/lucid/seamonkey/lucid-security

« back to all changes in this revision

Viewing changes to dom/src/base/nsLocation.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Fabien Tassin
  • Date: 2007-12-07 20:52:32 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20071207205232-e8z67dkmmgptikl4
Tags: 1.1.7+nobinonly-0ubuntu1
* New security upstream release: 1.1.7 (LP: #174739)
* MSFA 2007-37, MSFA 2007-38, MSFA 2007-39
* Drop patches applied upstream
  - drop debian/patches/65_branding_bug_401824.patch
  - drop debian/patches/65_composer_charset.patch
  - update debian/patches/series
* Update debian/patches/99_configure.patch
* Add Vcs-Bzr: and Homepage: fields to control
  - update debian/control
* Change dfsg into nobinonly in watch file
  - update debian/watch

Show diffs side-by-side

added added

removed removed

Lines of Context:
220
220
      return NS_ERROR_FAILURE;
221
221
    owner = do_QueryInterface(principal);
222
222
 
223
 
    GetSourceURL(cx, getter_AddRefs(sourceURI));
 
223
    GetSourceURL(cx, principal, getter_AddRefs(sourceURI));
224
224
  }
225
225
 
226
226
  // Create load info
1026
1026
}
1027
1027
 
1028
1028
nsresult
1029
 
nsLocation::GetSourceURL(JSContext* cx, nsIURI** sourceURL)
 
1029
nsLocation::GetSourceURL(JSContext* cx, nsIPrincipal* callerPrincipal,
 
1030
                         nsIURI** sourceURL)
1030
1031
{
 
1032
  NS_PRECONDITION(callerPrincipal, "Must have caller principal here");
 
1033
  
 
1034
  *sourceURL = nsnull;
 
1035
  
1031
1036
  nsCOMPtr<nsIDocument> doc;
1032
1037
  nsresult rv = GetSourceDocument(cx, getter_AddRefs(doc));
1033
1038
  if (doc) {
1034
 
    NS_IF_ADDREF(*sourceURL = doc->GetDocumentURI());
1035
 
  } else {
1036
 
    *sourceURL = nsnull;
 
1039
    nsIPrincipal* docPrincipal = doc->GetPrincipal();
 
1040
    if (docPrincipal) {
 
1041
      PRBool subsumes;
 
1042
      rv = callerPrincipal->Subsumes(docPrincipal, &subsumes);
 
1043
      if (NS_SUCCEEDED(rv) && subsumes) {
 
1044
        NS_IF_ADDREF(*sourceURL = doc->GetDocumentURI());
 
1045
      }
 
1046
    }
1037
1047
  }
1038
1048
 
1039
1049
  return rv;