| Index: media/cast/sender/frame_sender.h
 | 
| diff --git a/media/cast/sender/frame_sender.h b/media/cast/sender/frame_sender.h
 | 
| index 226d3ef961a0a41ec3aed1f95198033dd48c69e7..6f73df38ba8e47cf1a6f7ecdf8f95cb65c49dab5 100644
 | 
| --- a/media/cast/sender/frame_sender.h
 | 
| +++ b/media/cast/sender/frame_sender.h
 | 
| @@ -62,10 +62,28 @@ class FrameSender {
 | 
|    virtual base::TimeDelta GetInFlightMediaDuration() const = 0;
 | 
|  
 | 
|   protected:
 | 
| +  class RtcpClient : public RtcpObserver {
 | 
| +   public:
 | 
| +    explicit RtcpClient(base::WeakPtr<FrameSender> frame_sender);
 | 
| +    ~RtcpClient() override;
 | 
| +
 | 
| +    void OnReceivedCastMessage(const RtcpCastMessage& cast_message) override;
 | 
| +    void OnReceivedRtt(base::TimeDelta round_trip_time) override;
 | 
| +    void OnReceivedPli() override;
 | 
| +
 | 
| +   private:
 | 
| +    const base::WeakPtr<FrameSender> frame_sender_;
 | 
| +  };
 | 
|    // Schedule and execute periodic sending of RTCP report.
 | 
|    void ScheduleNextRtcpReport();
 | 
|    void SendRtcpReport(bool schedule_future_reports);
 | 
|  
 | 
| +  // Protected for testability.
 | 
| +  void OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback);
 | 
| +
 | 
| +  // Called when a Pli message is received.
 | 
| +  void OnReceivedPli();
 | 
| +
 | 
|    void OnMeasuredRoundTripTime(base::TimeDelta rtt);
 | 
|  
 | 
|    const scoped_refptr<CastEnvironment> cast_environment_;
 | 
| @@ -89,12 +107,6 @@ class FrameSender {
 | 
|    void ResendCheck();
 | 
|    void ResendForKickstart();
 | 
|  
 | 
| -  // Protected for testability.
 | 
| -  void OnReceivedCastFeedback(const RtcpCastMessage& cast_feedback);
 | 
| -
 | 
| -  // Called when a Pli message is received.
 | 
| -  void OnReceivedPli();
 | 
| -
 | 
|    // Returns true if too many frames would be in-flight by encoding and sending
 | 
|    // the next frame having the given |frame_duration|.
 | 
|    bool ShouldDropNextFrame(base::TimeDelta frame_duration) const;
 | 
| 
 |