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

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

Issue 6905013: Revert 82928 - Changing URL match method to support fragments.BUG=79898TEST=PrerenderBrowserTest.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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>
8
9 #include "base/i18n/rtl.h"
10 #include "base/process_util.h" 7 #include "base/process_util.h"
11 #include "base/task.h" 8 #include "base/task.h"
12 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
13 #include "chrome/browser/background_contents_service.h" 10 #include "chrome/browser/background_contents_service.h"
14 #include "chrome/browser/browser_process.h" 11 #include "chrome/browser/browser_process.h"
15 #include "chrome/browser/prerender/prerender_final_status.h" 12 #include "chrome/browser/prerender/prerender_final_status.h"
16 #include "chrome/browser/prerender/prerender_manager.h" 13 #include "chrome/browser/prerender/prerender_manager.h"
17 #include "chrome/browser/prerender/prerender_render_widget_host_view.h" 14 #include "chrome/browser/prerender/prerender_render_widget_host_view.h"
18 #include "chrome/browser/profiles/profile.h" 15 #include "chrome/browser/profiles/profile.h"
19 #include "chrome/browser/renderer_preferences_util.h" 16 #include "chrome/browser/renderer_preferences_util.h"
(...skipping 12 matching lines...) Expand all
32 #include "content/common/notification_service.h" 29 #include "content/common/notification_service.h"
33 #include "content/common/view_messages.h" 30 #include "content/common/view_messages.h"
34 #include "ui/gfx/rect.h" 31 #include "ui/gfx/rect.h"
35 32
36 #if defined(OS_MACOSX) 33 #if defined(OS_MACOSX)
37 #include "chrome/browser/mach_broker_mac.h" 34 #include "chrome/browser/mach_broker_mac.h"
38 #endif 35 #endif
39 36
40 namespace prerender { 37 namespace prerender {
41 38
42 // Compares URLs ignoring any ref for the purposes of matching URLs when
43 // prerendering.
44 struct PrerenderUrlPredicate {
45 explicit PrerenderUrlPredicate(const GURL& url)
46 : url_(url) {
47 }
48
49 bool operator()(const GURL& url) const {
50 return url.scheme() == url_.scheme() &&
51 url.host() == url_.host() &&
52 url.port() == url_.port() &&
53 url.path() == url_.path() &&
54 url.query() == url_.query();
55 }
56 GURL url_;
57 };
58
59 void AddChildRoutePair(ResourceDispatcherHost* rdh, 39 void AddChildRoutePair(ResourceDispatcherHost* rdh,
60 int child_id, int route_id) { 40 int child_id, int route_id) {
61 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 41 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
62 rdh->AddPrerenderChildRoutePair(child_id, route_id); 42 rdh->AddPrerenderChildRoutePair(child_id, route_id);
63 } 43 }
64 44
65 void RemoveChildRoutePair(ResourceDispatcherHost* rdh, 45 void RemoveChildRoutePair(ResourceDispatcherHost* rdh,
66 int child_id, int route_id) { 46 int child_id, int route_id) {
67 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 47 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
68 rdh->RemovePrerenderChildRoutePair(child_id, route_id); 48 rdh->RemovePrerenderChildRoutePair(child_id, route_id);
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 } 507 }
528 508
529 bool PrerenderContents::AddAliasURL(const GURL& url) { 509 bool PrerenderContents::AddAliasURL(const GURL& url) {
530 if (!url.SchemeIs("http")) 510 if (!url.SchemeIs("http"))
531 return false; 511 return false;
532 alias_urls_.push_back(url); 512 alias_urls_.push_back(url);
533 return true; 513 return true;
534 } 514 }
535 515
536 bool PrerenderContents::MatchesURL(const GURL& url) const { 516 bool PrerenderContents::MatchesURL(const GURL& url) const {
537 return std::find_if(alias_urls_.begin(), 517 return std::find(alias_urls_.begin(), alias_urls_.end(), url)
538 alias_urls_.end(), 518 != alias_urls_.end();
539 PrerenderUrlPredicate(url)) != alias_urls_.end();
540 } 519 }
541 520
542 void PrerenderContents::DidStopLoading() { 521 void PrerenderContents::DidStopLoading() {
543 has_stopped_loading_ = true; 522 has_stopped_loading_ = true;
544 } 523 }
545 524
546 void PrerenderContents::Destroy(FinalStatus final_status) { 525 void PrerenderContents::Destroy(FinalStatus final_status) {
547 prerender_manager_->RemoveEntry(this); 526 prerender_manager_->RemoveEntry(this);
548 set_final_status(final_status); 527 set_final_status(final_status);
549 delete this; 528 delete this;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 return; 565 return;
587 566
588 size_t private_bytes, shared_bytes; 567 size_t private_bytes, shared_bytes;
589 if (metrics->GetMemoryBytes(&private_bytes, &shared_bytes)) { 568 if (metrics->GetMemoryBytes(&private_bytes, &shared_bytes)) {
590 if (private_bytes > kMaxPrerenderPrivateMB * 1024 * 1024) 569 if (private_bytes > kMaxPrerenderPrivateMB * 1024 * 1024)
591 Destroy(FINAL_STATUS_MEMORY_LIMIT_EXCEEDED); 570 Destroy(FINAL_STATUS_MEMORY_LIMIT_EXCEEDED);
592 } 571 }
593 } 572 }
594 573
595 } // namespace prerender 574 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/prerender/prerender_browsertest.cc ('k') | chrome/browser/prerender/prerender_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698