1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_PUBLIC_RENDERER_MEDIA_WEBRTC_LOG_MESSAGE_DELEGATE_H_ 6 #define CONTENT_PUBLIC_RENDERER_MEDIA_WEBRTC_LOG_MESSAGE_DELEGATE_H_ 7 8 #include <string> 9 10 #include "content/common/content_export.h" 11 12 namespace content { 13 14 // This interface is implemented by a handler in the embedder and used for 15 // initializing the logging and passing log messages to the handler. The 16 // purpose is to forward mainly libjingle log messages to embedder (besides 17 // the ordinary logging stream) that will be used for diagnostic purposes. 18 class WebRtcLogMessageDelegate { 19 public: 20 // Tells the handler to initialize WebRTC logging. |app_session_id| is set 21 // by the Javascript application. |app_url| is the Javascript application URL. 22 virtual void InitLogging(const std::string& app_session_id, 23 const std::string& app_url) = 0; 24 25 // Pass a diagnostic WebRTC log message. 26 virtual void LogMessage(const std::string& message) = 0; 27 28 protected: 29 virtual ~WebRtcLogMessageDelegate() {} 30 }; 31 32 // Must be called on IO thread. 33 CONTENT_EXPORT void InitWebRtcLoggingDelegate( 34 WebRtcLogMessageDelegate* delegate); 35 36 } // namespace content 37 38 #endif // CONTENT_PUBLIC_RENDERER_MEDIA_WEBRTC_LOG_MESSAGE_DELEGATE_H_ 39