#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_CONTENT_EXTRACTION_PAID_CONTENT_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_CONTENT_EXTRACTION_PAID_CONTENT_H_
#include "base/memory/stack_allocated.h"
#include "third_party/blink/renderer/core/dom/container_node.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/modules/modules_export.h"
#include "third_party/blink/renderer/platform/heap/collection_support/heap_vector.h"
#include "third_party/blink/renderer/platform/json/json_values.h"
namespace blink {
class PaidContent final {
STACK_ALLOCATED();
public:
static bool HasPaidContent(Document& document);
bool QueryPaidElements(Document& document);
bool IsPaidElement(const Element* element) const;
private:
HeapHashMap<WeakMember<Document>, bool> check_microdata_;
bool AppendHasPartElements(Document& document, JSONObject& hasPart_obj);
HeapVector<Member<Element>> paid_elements_;
};
}
#endif