910e62b5创建于 1月15日历史提交
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/external_protocol/external_protocol_observer.h"

#include "chrome/browser/external_protocol/external_protocol_handler.h"

using content::WebContents;

ExternalProtocolObserver::ExternalProtocolObserver(WebContents* web_contents)
    : content::WebContentsObserver(web_contents),
      content::WebContentsUserData<ExternalProtocolObserver>(*web_contents) {}

ExternalProtocolObserver::~ExternalProtocolObserver() = default;

void ExternalProtocolObserver::DidGetUserInteraction(
    const blink::WebInputEvent& event) {
  // Ignore scroll events for allowing external protocol launch.
  if (event.GetType() != blink::WebInputEvent::Type::kGestureScrollBegin)
    ExternalProtocolHandler::PermitLaunchUrl();
}

WEB_CONTENTS_USER_DATA_KEY_IMPL(ExternalProtocolObserver);