#include "chrome/renderer/plugins/chrome_plugin_placeholder.h"
#include <memory>
#include <set>
#include <utility>
#include "base/command_line.h"
#include "base/feature_list.h"
#include "base/memory/ptr_util.h"
#include "base/memory/raw_ptr.h"
#include "base/metrics/user_metrics_action.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/common/buildflags.h"
#include "chrome/grit/generated_resources.h"
#include "chrome/grit/renderer_resources.h"
#include "chrome/renderer/chrome_content_renderer_client.h"
#include "chrome/renderer/custom_menu_commands.h"
#include "components/content_settings/renderer/content_settings_agent_impl.h"
#include "components/no_state_prefetch/renderer/prerender_observer_list.h"
#include "components/strings/grit/components_strings.h"
#include "content/public/common/content_switches.h"
#include "content/public/renderer/render_frame.h"
#include "content/public/renderer/render_thread.h"
#include "gin/object_template_builder.h"
#include "ipc/ipc_sync_channel.h"
#include "mojo/public/cpp/bindings/associated_remote.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
#include "third_party/blink/public/common/associated_interfaces/associated_interface_registry.h"
#include "third_party/blink/public/common/context_menu_data/untrustworthy_context_menu_params.h"
#include "third_party/blink/public/common/input/web_input_event.h"
#include "third_party/blink/public/common/input/web_mouse_event.h"
#include "third_party/blink/public/common/page/page_zoom.h"
#include "third_party/blink/public/platform/url_conversion.h"
#include "third_party/blink/public/web/web_document.h"
#include "third_party/blink/public/web/web_frame_widget.h"
#include "third_party/blink/public/web/web_local_frame.h"
#include "third_party/blink/public/web/web_plugin_container.h"
#include "third_party/blink/public/web/web_script_source.h"
#include "third_party/blink/public/web/web_view.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/webui/jstemplate_builder.h"
#include "ui/gfx/geometry/size.h"
#include "url/origin.h"
#include "url/url_util.h"
UserMetricsAction;
RenderThread;
namespace {
const ChromePluginPlaceholder* g_last_active_menu = …;
const char kPlaceholderSetKey[] = …;
class PlaceholderSet : public base::SupportsUserData::Data { … };
}
gin::WrapperInfo ChromePluginPlaceholder::kWrapperInfo = …;
ChromePluginPlaceholder::ChromePluginPlaceholder(
content::RenderFrame* render_frame,
const blink::WebPluginParams& params,
const std::u16string& title)
: … { … }
ChromePluginPlaceholder::~ChromePluginPlaceholder() { … }
ChromePluginPlaceholder* ChromePluginPlaceholder::CreateLoadableMissingPlugin(
content::RenderFrame* render_frame,
const blink::WebPluginParams& params) { … }
ChromePluginPlaceholder* ChromePluginPlaceholder::CreateBlockedPlugin(
content::RenderFrame* render_frame,
const blink::WebPluginParams& params,
const content::WebPluginInfo& info,
const std::string& identifier,
const std::u16string& name,
int template_id,
const std::u16string& message) { … }
void ChromePluginPlaceholder::ForEach(
content::RenderFrame* render_frame,
const base::RepeatingCallback<void(ChromePluginPlaceholder*)>& callback) { … }
void ChromePluginPlaceholder::SetStatus(chrome::mojom::PluginStatus status) { … }
void ChromePluginPlaceholder::SetIsPrerendering(bool is_prerendering) { … }
void ChromePluginPlaceholder::PluginListChanged() { … }
v8::Local<v8::Value> ChromePluginPlaceholder::GetV8Handle(
v8::Isolate* isolate) { … }
void ChromePluginPlaceholder::ShowContextMenu(
const blink::WebMouseEvent& event) { … }
void ChromePluginPlaceholder::CustomContextMenuAction(uint32_t action) { … }
void ChromePluginPlaceholder::ContextMenuClosed(const GURL&) { … }
blink::WebPlugin* ChromePluginPlaceholder::CreatePlugin() { … }
gin::ObjectTemplateBuilder ChromePluginPlaceholder::GetObjectTemplateBuilder(
v8::Isolate* isolate) { … }