electron_messaging_delegate.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Copyright (c) 2019 Slack Technologies, Inc.
  2. // Use of this source code is governed by the MIT license that can be
  3. // found in the LICENSE file.
  4. #ifndef ELECTRON_SHELL_BROWSER_EXTENSIONS_ELECTRON_MESSAGING_DELEGATE_H_
  5. #define ELECTRON_SHELL_BROWSER_EXTENSIONS_ELECTRON_MESSAGING_DELEGATE_H_
  6. #include <memory>
  7. #include <string>
  8. #include "extensions/browser/api/messaging/messaging_delegate.h"
  9. namespace extensions {
  10. // Helper class for Chrome-specific features of the extension messaging API.
  11. class ElectronMessagingDelegate : public MessagingDelegate {
  12. public:
  13. ElectronMessagingDelegate();
  14. ~ElectronMessagingDelegate() override;
  15. // disable copy
  16. ElectronMessagingDelegate(const ElectronMessagingDelegate&) = delete;
  17. ElectronMessagingDelegate& operator=(const ElectronMessagingDelegate&) =
  18. delete;
  19. // MessagingDelegate:
  20. PolicyPermission IsNativeMessagingHostAllowed(
  21. content::BrowserContext* browser_context,
  22. const std::string& native_host_name) override;
  23. std::optional<base::Value::Dict> MaybeGetTabInfo(
  24. content::WebContents* web_contents) override;
  25. content::WebContents* GetWebContentsByTabId(
  26. content::BrowserContext* browser_context,
  27. int tab_id) override;
  28. std::unique_ptr<MessagePort> CreateReceiverForNativeApp(
  29. content::BrowserContext* browser_context,
  30. base::WeakPtr<MessagePort::ChannelDelegate> channel_delegate,
  31. content::RenderFrameHost* source,
  32. const std::string& extension_id,
  33. const PortId& receiver_port_id,
  34. const std::string& native_app_name,
  35. bool allow_user_level,
  36. std::string* error_out) override;
  37. void QueryIncognitoConnectability(
  38. content::BrowserContext* context,
  39. const Extension* extension,
  40. content::WebContents* source_contents,
  41. const GURL& url,
  42. base::OnceCallback<void(bool)> callback) override;
  43. };
  44. } // namespace extensions
  45. #endif // ELECTRON_SHELL_BROWSER_EXTENSIONS_ELECTRON_MESSAGING_DELEGATE_H_