| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/prerender/prerender_contents.h" | 5 #include "chrome/browser/prerender/prerender_contents.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <functional> | 8 #include <functional> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 // that requires the browser to perform the transition instead of WebKit. | 71 // that requires the browser to perform the transition instead of WebKit. |
| 72 // Examples include prerendering a site that redirects to an app URL, | 72 // Examples include prerendering a site that redirects to an app URL, |
| 73 // or if --enable-strict-site-isolation is specified and the prerendered | 73 // or if --enable-strict-site-isolation is specified and the prerendered |
| 74 // frame redirects to a different origin. | 74 // frame redirects to a different origin. |
| 75 // TODO(cbentzel): Consider supporting this if it is a common case during | 75 // TODO(cbentzel): Consider supporting this if it is a common case during |
| 76 // prerenders. | 76 // prerenders. |
| 77 prerender_contents_->Destroy(FINAL_STATUS_OPEN_URL); | 77 prerender_contents_->Destroy(FINAL_STATUS_OPEN_URL); |
| 78 return NULL; | 78 return NULL; |
| 79 } | 79 } |
| 80 | 80 |
| 81 virtual bool CanDownload(RenderViewHost* render_view_host, | 81 virtual void CanDownload( |
| 82 int request_id, | 82 RenderViewHost* render_view_host, |
| 83 const std::string& request_method) OVERRIDE { | 83 int request_id, |
| 84 const std::string& request_method, |
| 85 const base::Callback<void(bool)>& callback) OVERRIDE { |
| 84 prerender_contents_->Destroy(FINAL_STATUS_DOWNLOAD); | 86 prerender_contents_->Destroy(FINAL_STATUS_DOWNLOAD); |
| 85 // Cancel the download. | 87 // Cancel the download. |
| 86 return false; | 88 callback.Run(false); |
| 87 } | 89 } |
| 88 | 90 |
| 89 virtual bool ShouldCreateWebContents( | 91 virtual bool ShouldCreateWebContents( |
| 90 WebContents* web_contents, | 92 WebContents* web_contents, |
| 91 int route_id, | 93 int route_id, |
| 92 WindowContainerType window_container_type, | 94 WindowContainerType window_container_type, |
| 93 const string16& frame_name, | 95 const string16& frame_name, |
| 94 const GURL& target_url) OVERRIDE { | 96 const GURL& target_url) OVERRIDE { |
| 95 // Since we don't want to permit child windows that would have a | 97 // Since we don't want to permit child windows that would have a |
| 96 // window.opener property, terminate prerendering. | 98 // window.opener property, terminate prerendering. |
| (...skipping 602 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 699 | 701 |
| 700 bool PrerenderContents::IsCrossSiteNavigationPending() const { | 702 bool PrerenderContents::IsCrossSiteNavigationPending() const { |
| 701 if (!prerender_contents_) | 703 if (!prerender_contents_) |
| 702 return false; | 704 return false; |
| 703 return (prerender_contents_->GetSiteInstance() != | 705 return (prerender_contents_->GetSiteInstance() != |
| 704 prerender_contents_->GetPendingSiteInstance()); | 706 prerender_contents_->GetPendingSiteInstance()); |
| 705 } | 707 } |
| 706 | 708 |
| 707 | 709 |
| 708 } // namespace prerender | 710 } // namespace prerender |
| OLD | NEW |