1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
// Copyright 2014 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_RENDERER_EXTENSIONS_CHROME_EXTENSIONS_RENDERER_CLIENT_H_
#define CHROME_RENDERER_EXTENSIONS_CHROME_EXTENSIONS_RENDERER_CLIENT_H_
#include <memory>
#include <string>
#include "extensions/renderer/extensions_renderer_client.h"
class GURL;
namespace blink {
class WebURL;
}
namespace content {
struct WebPluginInfo;
}
namespace extensions {
class RendererPermissionsPolicyDelegate;
}
namespace ukm {
class MojoUkmRecorder;
}
class ChromeExtensionsRendererClient
: public extensions::ExtensionsRendererClient {
public:
ChromeExtensionsRendererClient();
ChromeExtensionsRendererClient(const ChromeExtensionsRendererClient&) =
delete;
ChromeExtensionsRendererClient& operator=(
const ChromeExtensionsRendererClient&) = delete;
~ChromeExtensionsRendererClient() override;
// Creates the global instance of the ChromeExtensionsRendererClient, which
// will then set itself as the sole ExtensionsRendererClient.
// Note: This class should be accessed through
// ExtensionsRendererClient::Get(). Callers should not assume a particular
// implementation.
// There's an exception for the static methods below, which just live here
// for want of a better home.
static void Create();
// extensions::ExtensionsRendererClient implementation.
bool IsIncognitoProcess() const override;
int GetLowestIsolatedWorldId() const override;
static void DidBlockMimeHandlerViewForDisallowedPlugin(
const blink::WebElement& plugin_element);
static bool MaybeCreateMimeHandlerView(
const blink::WebElement& plugin_element,
const GURL& resource_url,
const std::string& mime_type,
const content::WebPluginInfo& plugin_info);
private:
// extensions::ExtensionsRendererClient implementation.
void FinishInitialization() override;
std::unique_ptr<extensions::ResourceRequestPolicy::Delegate>
CreateResourceRequestPolicyDelegate() override;
void RecordMetricsForURLRequest(blink::WebLocalFrame* frame,
const blink::WebURL& target_url) override;
std::unique_ptr<ukm::MojoUkmRecorder> ukm_recorder_;
std::unique_ptr<extensions::RendererPermissionsPolicyDelegate>
permissions_policy_delegate_;
};
#endif // CHROME_RENDERER_EXTENSIONS_CHROME_EXTENSIONS_RENDERER_CLIENT_H_
|