blob: 726502b248a05c6283cf9c5d95dda7c761dff6d4 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_CONTENT_EXTRACTION_INNER_HTML_H_
#define CHROME_BROWSER_CONTENT_EXTRACTION_INNER_HTML_H_
#include <optional>
#include <string>
#include "base/functional/callback_forward.h"
#include "third_party/blink/public/mojom/content_extraction/inner_html.mojom-forward.h"
namespace content {
class RenderFrameHost;
}
namespace content_extraction {
using InnerHtmlCallback =
base::OnceCallback<void(const std::optional<std::string>& result)>;
// Requests the inner-html for the specified `host`.
//
// If querying inner-html fails (renderer crash, or page shutdown during
// request) then the result does not contain a value.
//
// NOTE: This function services the request as soon as called, it does not wait
// for the page to finish loading.
//
// IMPORTANT: The inner-html retrieved by this function is untrustworthy and
// should not be processed in the browser process.
// TODO(crbug.com/370820145): These fields should be annotated as untrustworthy
// when possible.
void GetInnerHtml(content::RenderFrameHost& host, InnerHtmlCallback callback);
} // namespace content_extraction
#endif // CHROME_BROWSER_CONTENT_EXTRACTION_INNER_HTML_H_