chromium/chromecast/browser/default_navigation_throttle.cc

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chromecast/browser/default_navigation_throttle.h"

#include "content/public/browser/navigation_handle.h"
#include "content/public/browser/site_instance.h"

DefaultNavigationThrottle::DefaultNavigationThrottle(
    content::NavigationHandle* navigation_handle,
    content::NavigationThrottle::ThrottleAction default_action)
    : content::NavigationThrottle(navigation_handle),
      default_action_(default_action) {}

DefaultNavigationThrottle::~DefaultNavigationThrottle() {}

const char* DefaultNavigationThrottle::GetNameForLogging() {
  return "DefaultNavigationThrottle";
}

content::NavigationThrottle::ThrottleCheckResult
DefaultNavigationThrottle::WillStartRequest() {
  // Perform the default action for all requests except the first.
  if (navigation_handle()->HasUserGesture() &&
      (navigation_handle()->GetStartingSiteInstance()->GetSiteURL() !=
       navigation_handle()->GetURL())) {
    return default_action_;
  }
  return content::NavigationThrottle::PROCEED;
}