 
   ###*
     @param {app.Routes} routes
-    @param {app.users.Store} usersStore
     @constructor
   ###
-  constructor: (@routes, @usersStore) ->
+  constructor: (@routes) ->
     @alreadyReported_ = Object.create null
 
     if !goog.DEBUG

    @param {*} reason
    @return {boolean}
  ###
  isWorthReport_: (reason) ->
    # 404 is common
    if reason == 404
      return false
    # Cancellation is ok. For example este.Router can cancel pending request.
    if reason instanceof goog.Promise.CancellationError
      return false
    # User is offline. It happens.
    if reason instanceof app.Xhr.OfflineError
      alert reason.message
      return false
    if reason instanceof goog.labs.net.xhr.Error
      alert ErrorReporter.MSG_CONNECTION_ERROR
      return false
    true

  ###*

  @MSG_CONNECTION_ERROR: goog.getMsg 'Connection error. Check your connection please.'

  ###*
    @type {string}
  ###
  userDisplayName: ''

  ###*
    @param {string} action
    @param {*} reason
  ###
  report: (action, reason) ->
    return if !@isWorthReporting_ reason

    # TODO: Show something more beautiful then alert. Add button to reload app.
    # Auto-reload is bad idea because it can cause reload looping.
