   endpoint = Zotero.Server.Endpoints[path]
   return false unless endpoint?.async
   return false unless method in (endpoint.supportedMethods || [])
-  return false if @origin in ['https://www.zotero.org', 'http://www.zotero.org'] && !endpoint.permitBookmarklet
 
   headers = {}
   for line in header

      loader.loadSubScript("chrome://zotero-better-bibtex/content/test/include.js")
      @Test.run(tests.trim().split(/\s+/))

Zotero.BetterBibTeX.DataListener_headerFinished = ->
  return false unless Zotero.isServer

  header = @header.split(/\r?\n/)


  @loadTranslators()
  @extensionConflicts()

  # monkey-patch Zotero.Server.DataListener.prototype._requestFinished for async handling of web api translation requests
  Zotero.Server.DataListener::_requestFinished = ((original) ->
    return (method, postData) ->
      try
        return if Zotero.BetterBibTeX.DataListener_requestFinished.apply(@, arguments)
      return original.apply(@, arguments)
    )(Zotero.Server.DataListener::_processEndpoint)

  # monkey-patch Zotero.Search.prototype.save to trigger auto-exports
  Zotero.Search::save = ((original) ->
