Home | History | Annotate | Download | only in renderer
      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