blob: 0aaeb22c1f8007bd950199e21f2dde5da772b30b [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_AUTOFILL_WEB_FORM_ELEMENT_OBSERVER_H_
#define THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_AUTOFILL_WEB_FORM_ELEMENT_OBSERVER_H_
#include <memory>
#include "base/callback.h"
#include "third_party/blink/public/platform/web_common.h"
namespace blink {
class WebFormControlElement;
class WebFormElement;
// TODO(tonikitoo): This uses BLINK_EXPORT instead of BLINK_MODULES_EXPORT
// because it is implemented by renderer/core/autofill code, where
// BLINK_MODULES_IMPLEMENTATION is not defined and compilation fails on win-dbg.
//
class BLINK_EXPORT WebFormElementObserver {
public:
// Creates a WebFormElementObserver. Delete this WebFormElementObsrver by
// calling WebFormElementObserver::Disconnect.
static WebFormElementObserver* Create(WebFormElement&, base::OnceClosure);
static WebFormElementObserver* Create(WebFormControlElement&,
base::OnceClosure);
virtual void Disconnect() = 0;
protected:
WebFormElementObserver() = default;
virtual ~WebFormElementObserver() = default;
};
} // namespace blink
#endif // THIRD_PARTY_BLINK_PUBLIC_WEB_MODULES_AUTOFILL_WEB_FORM_ELEMENT_OBSERVER_H_