| Index: chromeos/audio/cras_audio_handler.h
 | 
| diff --git a/chromeos/audio/cras_audio_handler.h b/chromeos/audio/cras_audio_handler.h
 | 
| index c9110718e4a332a7bc0dde2b5a02d446857a8e2f..fbc8114ea3c0691960c34a4464996f24b62beebd 100644
 | 
| --- a/chromeos/audio/cras_audio_handler.h
 | 
| +++ b/chromeos/audio/cras_audio_handler.h
 | 
| @@ -38,6 +38,15 @@ class CHROMEOS_EXPORT CrasAudioHandler : public CrasAudioClient::Observer,
 | 
|                                AudioDeviceCompare> AudioDevicePriorityQueue;
 | 
|    typedef std::vector<uint64_t> NodeIdList;
 | 
|  
 | 
| +  // Volume change reasons that are not user-initiated.
 | 
| +  enum AutomatedVolumeChangeReason {
 | 
| +    // Indicates it is from initializing audio state.
 | 
| +    VOLUME_CHANGE_INITIALIZING_AUDIO_STATE,
 | 
| +
 | 
| +    // Indicates it is from restoring volume in maximimize mode screenshot.
 | 
| +    VOLUME_CHANGE_MAXIMIZE_MODE_SCREENSHOT,
 | 
| +  };
 | 
| +
 | 
|    class AudioObserver {
 | 
|     public:
 | 
|      // Called when an active output volume changed.
 | 
| @@ -155,10 +164,16 @@ class CHROMEOS_EXPORT CrasAudioHandler : public CrasAudioClient::Observer,
 | 
|    virtual bool has_alternative_input() const;
 | 
|    virtual bool has_alternative_output() const;
 | 
|  
 | 
| -  // Sets all active output devices' volume level to |volume_percent|, whose
 | 
| +  // Sets all active output devices' volume levels to |volume_percent|, whose
 | 
|    // range is from 0-100%.
 | 
|    virtual void SetOutputVolumePercent(int volume_percent);
 | 
|  
 | 
| +  // Sets all active output devices' volume levels to |volume_percent|, whose
 | 
| +  // range is from 0-100%, without notifying observers.
 | 
| +  virtual void SetOutputVolumePercentWithoutNotifyingObservers(
 | 
| +      int volume_percent,
 | 
| +      AutomatedVolumeChangeReason reason);
 | 
| +
 | 
|    // Sets all active input devices' gain level to |gain_percent|, whose range is
 | 
|    // from 0-100%.
 | 
|    virtual void SetInputGainPercent(int gain_percent);
 | 
| @@ -432,10 +447,15 @@ class CHROMEOS_EXPORT CrasAudioHandler : public CrasAudioClient::Observer,
 | 
|  
 | 
|    bool cras_service_available_ = false;
 | 
|  
 | 
| +  // FIFO list of reasons passed to
 | 
| +  // SetOutputVolumePercentWithoutNotifyingObservers() for which we're still
 | 
| +  // waiting for OutputNodeVolumeChanged() calls. These are used to suppress
 | 
| +  // notifications for those changes.
 | 
| +  std::deque<AutomatedVolumeChangeReason> automated_volume_change_reasons_;
 | 
| +
 | 
|    bool initializing_audio_state_ = false;
 | 
|    int init_volume_;
 | 
|    uint64_t init_node_id_;
 | 
| -  int init_volume_count_ = 0;
 | 
|  
 | 
|    base::WeakPtrFactory<CrasAudioHandler> weak_ptr_factory_;
 | 
|  
 | 
| 
 |