| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <functional> | 10 #include <functional> |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 const char* const kValidHttpMethods[] = { | 63 const char* const kValidHttpMethods[] = { |
| 64 "GET", "HEAD", | 64 "GET", "HEAD", |
| 65 }; | 65 }; |
| 66 | 66 |
| 67 // Additional valid HTTP methods for prerendering. | 67 // Additional valid HTTP methods for prerendering. |
| 68 const char* const kValidHttpMethodsForPrerendering[] = { | 68 const char* const kValidHttpMethodsForPrerendering[] = { |
| 69 "OPTIONS", "POST", "TRACE", | 69 "OPTIONS", "POST", "TRACE", |
| 70 }; | 70 }; |
| 71 | 71 |
| 72 void ResumeThrottles( | 72 void ResumeThrottles( |
| 73 std::vector<base::WeakPtr<PrerenderResourceThrottle> > throttles) { | 73 std::vector<base::WeakPtr<PrerenderResourceThrottle>> throttles, |
| 74 std::vector<base::WeakPtr<PrerenderResourceThrottle>> idle_resources) { |
| 75 for (auto resource : idle_resources) { |
| 76 if (resource) |
| 77 resource->ResetResourcePriority(); |
| 78 } |
| 74 for (size_t i = 0; i < throttles.size(); i++) { | 79 for (size_t i = 0; i < throttles.size(); i++) { |
| 75 if (throttles[i]) | 80 if (throttles[i]) |
| 76 throttles[i]->ResumeHandler(); | 81 throttles[i]->ResumeHandler(); |
| 77 } | 82 } |
| 78 } | 83 } |
| 79 | 84 |
| 80 } // namespace | 85 } // namespace |
| 81 | 86 |
| 82 class PrerenderContentsFactoryImpl : public PrerenderContents::Factory { | 87 class PrerenderContentsFactoryImpl : public PrerenderContents::Factory { |
| 83 public: | 88 public: |
| (...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 SetFinalStatus(FINAL_STATUS_USED); | 755 SetFinalStatus(FINAL_STATUS_USED); |
| 751 | 756 |
| 752 if (prerender_contents_.get()) { | 757 if (prerender_contents_.get()) { |
| 753 prerender_contents_->SendToAllFrames( | 758 prerender_contents_->SendToAllFrames( |
| 754 new PrerenderMsg_SetIsPrerendering(MSG_ROUTING_NONE, NO_PRERENDER)); | 759 new PrerenderMsg_SetIsPrerendering(MSG_ROUTING_NONE, NO_PRERENDER)); |
| 755 } | 760 } |
| 756 | 761 |
| 757 NotifyPrerenderStop(); | 762 NotifyPrerenderStop(); |
| 758 | 763 |
| 759 BrowserThread::PostTask( | 764 BrowserThread::PostTask( |
| 760 BrowserThread::IO, | 765 BrowserThread::IO, FROM_HERE, |
| 761 FROM_HERE, | 766 base::Bind(&ResumeThrottles, resource_throttles_, idle_resources_)); |
| 762 base::Bind(&ResumeThrottles, resource_throttles_)); | |
| 763 resource_throttles_.clear(); | 767 resource_throttles_.clear(); |
| 768 idle_resources_.clear(); |
| 764 } | 769 } |
| 765 | 770 |
| 766 void PrerenderContents::CancelPrerenderForPrinting() { | 771 void PrerenderContents::CancelPrerenderForPrinting() { |
| 767 Destroy(FINAL_STATUS_WINDOW_PRINT); | 772 Destroy(FINAL_STATUS_WINDOW_PRINT); |
| 768 } | 773 } |
| 769 | 774 |
| 770 void PrerenderContents::OnPrerenderCancelerRequest( | 775 void PrerenderContents::OnPrerenderCancelerRequest( |
| 771 chrome::mojom::PrerenderCancelerRequest request) { | 776 chrome::mojom::PrerenderCancelerRequest request) { |
| 772 if (!prerender_canceler_binding_.is_bound()) | 777 if (!prerender_canceler_binding_.is_bound()) |
| 773 prerender_canceler_binding_.Bind(std::move(request)); | 778 prerender_canceler_binding_.Bind(std::move(request)); |
| 774 } | 779 } |
| 775 | 780 |
| 776 void PrerenderContents::AddResourceThrottle( | 781 void PrerenderContents::AddResourceThrottle( |
| 777 const base::WeakPtr<PrerenderResourceThrottle>& throttle) { | 782 const base::WeakPtr<PrerenderResourceThrottle>& throttle) { |
| 778 resource_throttles_.push_back(throttle); | 783 resource_throttles_.push_back(throttle); |
| 779 } | 784 } |
| 780 | 785 |
| 786 void PrerenderContents::AddIdleResource( |
| 787 const base::WeakPtr<PrerenderResourceThrottle>& throttle) { |
| 788 idle_resources_.push_back(throttle); |
| 789 } |
| 790 |
| 781 void PrerenderContents::AddNetworkBytes(int64_t bytes) { | 791 void PrerenderContents::AddNetworkBytes(int64_t bytes) { |
| 782 network_bytes_ += bytes; | 792 network_bytes_ += bytes; |
| 783 for (Observer& observer : observer_list_) | 793 for (Observer& observer : observer_list_) |
| 784 observer.OnPrerenderNetworkBytesChanged(this); | 794 observer.OnPrerenderNetworkBytesChanged(this); |
| 785 } | 795 } |
| 786 | 796 |
| 787 } // namespace prerender | 797 } // namespace prerender |
| OLD | NEW |