chromium/components/page_image_annotation/content/renderer/content_page_annotator_driver.h

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

#ifndef COMPONENTS_PAGE_IMAGE_ANNOTATION_CONTENT_RENDERER_CONTENT_PAGE_ANNOTATOR_DRIVER_H_
#define COMPONENTS_PAGE_IMAGE_ANNOTATION_CONTENT_RENDERER_CONTENT_PAGE_ANNOTATOR_DRIVER_H_

#include <map>
#include <utility>

#include "base/gtest_prod_util.h"
#include "components/page_image_annotation/core/page_annotator.h"
#include "content/public/renderer/render_frame_observer.h"
#include "content/public/renderer/render_frame_observer_tracker.h"
#include "third_party/blink/public/web/web_element.h"
#include "ui/base/page_transition_types.h"

namespace page_image_annotation {

// This class holds a PageAnnotator for a given RenderFrame and feeds it
// information about images as they appear / disappear from the page.
//
// This class can also be used to access the Content-level interface (i.e.
// blink::WebElement) for DOM nodes with associated images.
class ContentPageAnnotatorDriver
    : public content::RenderFrameObserver,
      public content::RenderFrameObserverTracker<ContentPageAnnotatorDriver> {};

}  // namespace page_image_annotation

#endif  //  COMPONENTS_PAGE_IMAGE_ANNOTATION_CONTENT_RENDERER_CONTENT_PAGE_ANNOTATOR_DRIVER_H_