X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fchrome%2Fbrowser%2Fprerender%2Fprerender_tab_helper.cc;h=8c611a4c1e00f40a267bda4ffe63cb5752e109c9;hb=3545e9f2671f595d2a2f3ee75ca0393b01e35ef6;hp=64b9a39668aa95a59a5e287ebd52fdedcc7ddbd0;hpb=7d210d4c7e9ba36e635eabc5b5780495f8a63292;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/chrome/browser/prerender/prerender_tab_helper.cc b/src/chrome/browser/prerender/prerender_tab_helper.cc index 64b9a39..8c611a4 100644 --- a/src/chrome/browser/prerender/prerender_tab_helper.cc +++ b/src/chrome/browser/prerender/prerender_tab_helper.cc @@ -16,6 +16,7 @@ #include "content/public/browser/navigation_details.h" #include "content/public/browser/navigation_entry.h" #include "content/public/browser/render_frame_host.h" +#include "content/public/browser/resource_request_details.h" #include "content/public/browser/web_contents.h" #include "content/public/common/frame_navigate_params.h" @@ -81,25 +82,19 @@ PrerenderTabHelper::PrerenderTabHelper( PrerenderTabHelper::~PrerenderTabHelper() { } -void PrerenderTabHelper::ProvisionalChangeToMainFrameUrl( - const GURL& url, - content::RenderFrameHost* render_frame_host) { - url_ = url; - RecordEvent(EVENT_MAINFRAME_CHANGE); - RecordEventIfLoggedInURL(EVENT_MAINFRAME_CHANGE_DOMAIN_LOGGED_IN, url); - PrerenderManager* prerender_manager = MaybeGetPrerenderManager(); - if (!prerender_manager) +void PrerenderTabHelper::DidGetRedirectForResourceRequest( + content::RenderViewHost* render_view_host, + const content::ResourceRedirectDetails& details) { + if (details.resource_type != content::RESOURCE_TYPE_MAIN_FRAME) return; - if (prerender_manager->IsWebContentsPrerendering(web_contents(), NULL)) - return; - ReportTabHelperURLSeenToLocalPredictor(prerender_manager, url, - web_contents()); + + MainFrameUrlDidChange(details.new_url); } void PrerenderTabHelper::DidCommitProvisionalLoadForFrame( content::RenderFrameHost* render_frame_host, const GURL& validated_url, - content::PageTransition transition_type) { + ui::PageTransition transition_type) { if (render_frame_host->GetParent()) return; RecordEvent(EVENT_MAINFRAME_COMMIT); @@ -174,6 +169,21 @@ void PrerenderTabHelper::DidStartProvisionalLoadForFrame( next_load_is_control_prerender_ = false; next_load_origin_ = ORIGIN_NONE; } + + MainFrameUrlDidChange(validated_url); +} + +void PrerenderTabHelper::MainFrameUrlDidChange(const GURL& url) { + url_ = url; + RecordEvent(EVENT_MAINFRAME_CHANGE); + RecordEventIfLoggedInURL(EVENT_MAINFRAME_CHANGE_DOMAIN_LOGGED_IN, url); + PrerenderManager* prerender_manager = MaybeGetPrerenderManager(); + if (!prerender_manager) + return; + if (prerender_manager->IsWebContentsPrerendering(web_contents(), NULL)) + return; + ReportTabHelperURLSeenToLocalPredictor(prerender_manager, url, + web_contents()); } void PrerenderTabHelper::PasswordSubmitted(const autofill::PasswordForm& form) {