57 lines
1.6 KiB
C
57 lines
1.6 KiB
C
|
// Copyright 2012 The Chromium Authors
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
#ifndef SHELL_BROWSER_ELECTRON_PLUGIN_INFO_HOST_IMPL_H_
|
||
|
#define SHELL_BROWSER_ELECTRON_PLUGIN_INFO_HOST_IMPL_H_
|
||
|
|
||
|
#include <string>
|
||
|
#include <vector>
|
||
|
|
||
|
#include "shell/common/plugin.mojom.h"
|
||
|
|
||
|
class GURL;
|
||
|
|
||
|
namespace content {
|
||
|
struct WebPluginInfo;
|
||
|
} // namespace content
|
||
|
|
||
|
namespace url {
|
||
|
class Origin;
|
||
|
}
|
||
|
|
||
|
namespace electron {
|
||
|
|
||
|
// Implements ElectronPluginInfoHost interface.
|
||
|
class ElectronPluginInfoHostImpl : public mojom::ElectronPluginInfoHost {
|
||
|
public:
|
||
|
struct GetPluginInfo_Params;
|
||
|
|
||
|
ElectronPluginInfoHostImpl();
|
||
|
|
||
|
ElectronPluginInfoHostImpl(const ElectronPluginInfoHostImpl&) = delete;
|
||
|
ElectronPluginInfoHostImpl& operator=(const ElectronPluginInfoHostImpl&) =
|
||
|
delete;
|
||
|
|
||
|
~ElectronPluginInfoHostImpl() override;
|
||
|
|
||
|
// mojom::ElectronPluginInfoHost
|
||
|
void GetPluginInfo(const GURL& url,
|
||
|
const url::Origin& origin,
|
||
|
const std::string& mime_type,
|
||
|
GetPluginInfoCallback callback) override;
|
||
|
|
||
|
private:
|
||
|
// |params| wraps the parameters passed to |OnGetPluginInfo|, because
|
||
|
// |base::Bind| doesn't support the required arity <http://crbug.com/98542>.
|
||
|
void PluginsLoaded(const GetPluginInfo_Params& params,
|
||
|
GetPluginInfoCallback callback,
|
||
|
const std::vector<content::WebPluginInfo>& plugins);
|
||
|
|
||
|
base::WeakPtrFactory<ElectronPluginInfoHostImpl> weak_factory_{this};
|
||
|
};
|
||
|
|
||
|
} // namespace electron
|
||
|
|
||
|
#endif // SHELL_BROWSER_ELECTRON_PLUGIN_INFO_HOST_IMPL_H_
|