chromium/components/dom_distiller/ios/distiller_page_factory_ios.h

// Copyright 2015 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_DOM_DISTILLER_IOS_DISTILLER_PAGE_FACTORY_IOS_H_
#define COMPONENTS_DOM_DISTILLER_IOS_DISTILLER_PAGE_FACTORY_IOS_H_

#include <memory>

#include "base/memory/raw_ptr.h"
#include "components/dom_distiller/core/distiller_page.h"

namespace web {
class BrowserState;
}

namespace dom_distiller {

// DistillerPageFactoryIOS is an iOS-specific implementation of the
// DistillerPageFactory interface allowing the creation of DistillerPage
// instances.
class DistillerPageFactoryIOS : public DistillerPageFactory {
 public:
  explicit DistillerPageFactoryIOS(web::BrowserState* browser_state);

  DistillerPageFactoryIOS(const DistillerPageFactoryIOS&) = delete;
  DistillerPageFactoryIOS& operator=(const DistillerPageFactoryIOS&) = delete;

  ~DistillerPageFactoryIOS() override;

  // Implementation of DistillerPageFactory:
  std::unique_ptr<DistillerPage> CreateDistillerPage(
      const gfx::Size& view_size) const override;
  std::unique_ptr<DistillerPage> CreateDistillerPageWithHandle(
      std::unique_ptr<SourcePageHandle> handle) const override;

 private:
  raw_ptr<web::BrowserState> browser_state_;
};

}  // namespace dom_distiller

#endif  // COMPONENTS_DOM_DISTILLER_IOS_DISTILLER_PAGE_FACTORY_IOS_H_