Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Side by Side Diff: chrome/browser/prerender/prerender_contents.cc

Issue 2807163002: [Prerender] Restore request priorities when swapped in (Closed)
Patch Set: Fix test: default image priority can be LOWEST or MEDIUM Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_contents.h ('k') | chrome/browser/prerender/prerender_nostate_prefetch_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698