Commit 225012b7 authored by mastiz's avatar mastiz Committed by Commit bot

Fix page transition qualifiers not masked out

I came across various examples of transition enum values being directly
compared against enum literals, without masking bits that represent
qualifiers.

Review-Url: https://codereview.chromium.org/2019373002
Cr-Commit-Position: refs/heads/master@{#396898}
parent e9818faa
......@@ -336,7 +336,8 @@ void PrintPreviewDialogController::OnNavEntryCommitted(
// New |preview_dialog| is created. Don't update/erase map entry.
if (waiting_for_new_preview_page_ &&
transition_type == ui::PAGE_TRANSITION_AUTO_TOPLEVEL &&
ui::PageTransitionCoreTypeIs(transition_type,
ui::PAGE_TRANSITION_AUTO_TOPLEVEL) &&
nav_type == content::NAVIGATION_TYPE_NEW_PAGE) {
waiting_for_new_preview_page_ = false;
SaveInitiatorTitle(preview_dialog);
......@@ -345,7 +346,8 @@ void PrintPreviewDialogController::OnNavEntryCommitted(
// Cloud print sign-in causes a reload.
if (!waiting_for_new_preview_page_ &&
transition_type == ui::PAGE_TRANSITION_RELOAD &&
ui::PageTransitionCoreTypeIs(transition_type,
ui::PAGE_TRANSITION_RELOAD) &&
nav_type == content::NAVIGATION_TYPE_EXISTING_PAGE &&
IsPrintPreviewURL(details->previous_url)) {
return;
......
......@@ -54,7 +54,8 @@ void NavigationMetricsRecorder::DidNavigateMainFrame(
// Record the domain and registry of the URL that resulted in a navigation to
// a |data:| URL, either by redirects or user clicking a link.
if (details.entry->GetVirtualURL().SchemeIs(url::kDataScheme) &&
params.transition != ui::PAGE_TRANSITION_TYPED &&
!ui::PageTransitionCoreTypeIs(params.transition,
ui::PAGE_TRANSITION_TYPED) &&
!details.previous_url.is_empty()) {
rappor::SampleDomainAndRegistryFromGURL(g_browser_process->rappor_service(),
"Navigation.Scheme.Data",
......
......@@ -113,8 +113,10 @@ content::WebContents* PanelHost::OpenURLFromTab(
return NULL;
// Only allow clicks on links.
if (params.transition != ui::PAGE_TRANSITION_LINK)
if (!ui::PageTransitionCoreTypeIs(params.transition,
ui::PAGE_TRANSITION_LINK)) {
return NULL;
}
// Force all links to open in a new tab.
chrome::NavigateParams navigate_params(profile_,
......
......@@ -97,7 +97,8 @@ bool PDFEnableAdobeReaderPromptClient::ShouldExpire(
ui::PageTransitionStripQualifier(details.entry->GetTransitionType());
// We don't want to expire on a reload, because that is how we open the PDF in
// Reader.
return !details.is_in_page && transition != ui::PAGE_TRANSITION_RELOAD;
return !details.is_in_page &&
!ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_RELOAD);
}
void PDFEnableAdobeReaderPromptClient::Accept() {
......
......@@ -146,7 +146,8 @@ bool InstantSearchPrerenderer::UsePrerenderedPage(
// Do not use prerendered page for renderer initiated search requests.
if (params->is_renderer_initiated &&
params->transition == ui::PAGE_TRANSITION_LINK) {
ui::PageTransitionCoreTypeIs(params->transition,
ui::PAGE_TRANSITION_LINK)) {
Cancel();
return false;
}
......
......@@ -39,7 +39,7 @@ namespace {
// forgotten. This is generally any navigation that isn't a link click (i.e.
// any navigation that can be considered to be the start of a new task distinct
// from what had previously occurred in that tab).
bool ShouldForgetOpenersForTransition(ui::PageTransition transition) {
bool ShouldForgetOpenersForBaseTransition(ui::PageTransition transition) {
return transition == ui::PAGE_TRANSITION_TYPED ||
transition == ui::PAGE_TRANSITION_AUTO_BOOKMARK ||
transition == ui::PAGE_TRANSITION_GENERATED ||
......@@ -585,7 +585,8 @@ int TabStripModel::GetIndexOfLastWebContentsOpenedBy(const WebContents* opener,
void TabStripModel::TabNavigating(WebContents* contents,
ui::PageTransition transition) {
if (ShouldForgetOpenersForTransition(transition)) {
if (ShouldForgetOpenersForBaseTransition(
ui::PageTransitionStripQualifier(transition))) {
// Don't forget the openers if this tab is a New Tab page opened at the
// end of the TabStrip (e.g. by pressing Ctrl+T). Give the user one
// navigation of one of these transition types before resetting the
......
......@@ -28,7 +28,7 @@ int TabStripModelOrderController::DetermineInsertionIndex(
// NOTE: TabStripModel enforces that all non-mini-tabs occur after mini-tabs,
// so we don't have to check here too.
if (transition == ui::PAGE_TRANSITION_LINK &&
if (ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_LINK) &&
tabstrip_->active_index() != -1) {
if (foreground) {
// If the page was opened in the foreground by a link click in another
......
......@@ -43,9 +43,9 @@ WebContents* ChromeWebContentsHandler::OpenURLFromTab(
browser = new Browser(Browser::CreateParams(Browser::TYPE_TABBED, profile));
chrome::NavigateParams nav_params(browser, params.url, params.transition);
nav_params.referrer = params.referrer;
if (source && source->IsCrashed() &&
params.disposition == CURRENT_TAB &&
params.transition == ui::PAGE_TRANSITION_LINK) {
if (source && source->IsCrashed() && params.disposition == CURRENT_TAB &&
ui::PageTransitionCoreTypeIs(params.transition,
ui::PAGE_TRANSITION_LINK)) {
nav_params.disposition = NEW_FOREGROUND_TAB;
} else {
nav_params.disposition = params.disposition;
......
......@@ -86,8 +86,10 @@ void ContentTranslateDriver::InitiateTranslation(const std::string& page_lang,
bool ContentTranslateDriver::IsLinkNavigation() {
return navigation_controller_ &&
navigation_controller_->GetLastCommittedEntry() &&
navigation_controller_->GetLastCommittedEntry()->GetTransitionType() ==
ui::PAGE_TRANSITION_LINK;
ui::PageTransitionCoreTypeIs(
navigation_controller_->GetLastCommittedEntry()
->GetTransitionType(),
ui::PAGE_TRANSITION_LINK);
}
void ContentTranslateDriver::OnTranslateEnabledChanged() {
......@@ -179,7 +181,8 @@ void ContentTranslateDriver::NavigationEntryCommitted(
}
// If not a reload, return.
if (entry->GetTransitionType() != ui::PAGE_TRANSITION_RELOAD &&
if (!ui::PageTransitionCoreTypeIs(entry->GetTransitionType(),
ui::PAGE_TRANSITION_RELOAD) &&
load_details.type != content::NAVIGATION_TYPE_SAME_PAGE) {
return;
}
......@@ -205,7 +208,8 @@ void ContentTranslateDriver::DidNavigateAnyFrame(
const content::FrameNavigateParams& params) {
// Let the LanguageState clear its state.
const bool reload =
details.entry->GetTransitionType() == ui::PAGE_TRANSITION_RELOAD ||
ui::PageTransitionCoreTypeIs(details.entry->GetTransitionType(),
ui::PAGE_TRANSITION_RELOAD) ||
details.type == content::NAVIGATION_TYPE_SAME_PAGE;
translate_manager_->GetLanguageState().DidNavigate(
details.is_in_page, details.is_main_frame, reload);
......
......@@ -318,8 +318,8 @@ void TestRenderFrameHost::SendNavigateWithParameters(
url::Replacements<char> replacements;
replacements.ClearRef();
params.was_within_same_page =
transition != ui::PAGE_TRANSITION_RELOAD &&
transition != ui::PAGE_TRANSITION_TYPED &&
!ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_RELOAD) &&
!ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_TYPED) &&
url_copy.ReplaceComponents(replacements) ==
GetLastCommittedURL().ReplaceComponents(replacements);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment