| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 780 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 791 ArchiveResource* main_resource = | 791 ArchiveResource* main_resource = |
| 792 fetcher_->CreateArchive(main_resource_.Get()); | 792 fetcher_->CreateArchive(main_resource_.Get()); |
| 793 if (!main_resource) | 793 if (!main_resource) |
| 794 return false; | 794 return false; |
| 795 // The origin is the MHTML file, we need to set the base URL to the document | 795 // The origin is the MHTML file, we need to set the base URL to the document |
| 796 // encoded in the MHTML so relative URLs are resolved properly. | 796 // encoded in the MHTML so relative URLs are resolved properly. |
| 797 EnsureWriter(main_resource->MimeType(), main_resource->Url()); | 797 EnsureWriter(main_resource->MimeType(), main_resource->Url()); |
| 798 if (!frame_) | 798 if (!frame_) |
| 799 return false; | 799 return false; |
| 800 | 800 |
| 801 // The Document has now been created. | 801 // The MHTML page is loaded in full sandboxing mode with the only |
| 802 frame_->GetDocument()->EnforceSandboxFlags(kSandboxAll); | 802 // exception to open new top-level windows. Since the MHTML page stays in a |
| 803 // unquie origin with script execution disabled, the risk to navigate to |
| 804 // 'blob:'' and 'filesystem:'' URLs that allow code execution in the page's |
| 805 // "real" origin is mitigated. |
| 806 frame_->GetDocument()->EnforceSandboxFlags( |
| 807 kSandboxAll & |
| 808 ~(kSandboxPopups | kSandboxPropagatesToAuxiliaryBrowsingContexts)); |
| 803 | 809 |
| 804 CommitData(main_resource->Data()->Data(), main_resource->Data()->size()); | 810 CommitData(main_resource->Data()->Data(), main_resource->Data()->size()); |
| 805 return true; | 811 return true; |
| 806 } | 812 } |
| 807 | 813 |
| 808 const AtomicString& DocumentLoader::ResponseMIMEType() const { | 814 const AtomicString& DocumentLoader::ResponseMIMEType() const { |
| 809 return response_.MimeType(); | 815 return response_.MimeType(); |
| 810 } | 816 } |
| 811 | 817 |
| 812 const KURL& DocumentLoader::UnreachableURL() const { | 818 const KURL& DocumentLoader::UnreachableURL() const { |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1086 InstallNewDocumentReason::kJavascriptURL, | 1092 InstallNewDocumentReason::kJavascriptURL, |
| 1087 kForceSynchronousParsing, KURL()); | 1093 kForceSynchronousParsing, KURL()); |
| 1088 if (!source.IsNull()) | 1094 if (!source.IsNull()) |
| 1089 writer_->AppendReplacingData(source); | 1095 writer_->AppendReplacingData(source); |
| 1090 EndWriting(); | 1096 EndWriting(); |
| 1091 } | 1097 } |
| 1092 | 1098 |
| 1093 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader); | 1099 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader); |
| 1094 | 1100 |
| 1095 } // namespace blink | 1101 } // namespace blink |
| OLD | NEW |