Add missing default headers to responses (#3279)

Add missing default headers to responses
diff --git a/src/chttpd/src/chttpd.erl b/src/chttpd/src/chttpd.erl
index dc9a30f..636aad9 100644
--- a/src/chttpd/src/chttpd.erl
+++ b/src/chttpd/src/chttpd.erl
@@ -1272,8 +1272,9 @@
         ++ server_header()
         ++ couch_httpd_auth:cookie_auth_header(Req, Headers0),
     Headers1 = chttpd_cors:headers(Req, Headers),
-	Headers2 = chttpd_xframe_options:header(Req, Headers1),
-    chttpd_prefer_header:maybe_return_minimal(Req, Headers2).
+    Headers2 = chttpd_xframe_options:header(Req, Headers1),
+    Headers3 = [reqid(), timing() | Headers2],
+    chttpd_prefer_header:maybe_return_minimal(Req, Headers3).
 
 handle_response(Req0, Code0, Headers0, Args0, Type) ->
     {ok, {Req1, Code1, Headers1, Args1}} =
diff --git a/src/couch_replicator/src/couch_replicator_httpd.erl b/src/couch_replicator/src/couch_replicator_httpd.erl
index 196fcf2..0934ffe 100644
--- a/src/couch_replicator/src/couch_replicator_httpd.erl
+++ b/src/couch_replicator/src/couch_replicator_httpd.erl
@@ -17,7 +17,7 @@
     handle_scheduler_req/1
 ]).
 
--import(couch_httpd, [
+-import(chttpd, [
     send_json/2,
     send_json/3,
     send_method_not_allowed/2
diff --git a/src/couch_replicator/test/eunit/couch_replicator_db_tests.erl b/src/couch_replicator/test/eunit/couch_replicator_db_tests.erl
index 0534410..46133e2 100644
--- a/src/couch_replicator/test/eunit/couch_replicator_db_tests.erl
+++ b/src/couch_replicator/test/eunit/couch_replicator_db_tests.erl
@@ -36,6 +36,7 @@
                     ?TDEF_FE(replicator_db_deleted, 15),
                     ?TDEF_FE(replicator_db_recreated, 15),
                     ?TDEF_FE(invalid_replication_docs),
+                    ?TDEF_FE(scheduler_default_headers_returned),
                     ?TDEF_FE(duplicate_persistent_replication, 15),
                     ?TDEF_FE(duplicate_transient_replication, 30)
                 ]
@@ -250,6 +251,14 @@
     wait_scheduler_docs_not_found(RepDb, DocId).
 
 
+scheduler_default_headers_returned({_, _, _}) ->
+    SUrl = couch_replicator_test_helper:server_url(),
+    Url = lists:flatten(io_lib:format("~s/_scheduler/jobs", [SUrl])),
+    {ok, _, Headers, _} = test_request:get(Url, []),
+    ?assertEqual(true, lists:keymember("X-Couch-Request-ID", 1, Headers)),
+    ?assertEqual(true, lists:keymember("X-CouchDB-Body-Time", 1, Headers)).
+
+
 scheduler_jobs(Id) ->
     SUrl = couch_replicator_test_helper:server_url(),
     Url = lists:flatten(io_lib:format("~s/_scheduler/jobs/~s", [SUrl, Id])),
diff --git a/test/elixir/test/basics_test.exs b/test/elixir/test/basics_test.exs
index b9338c6..f8f9612 100644
--- a/test/elixir/test/basics_test.exs
+++ b/test/elixir/test/basics_test.exs
@@ -518,4 +518,14 @@
     assert resp.status_code == 200
     assert resp.body == 999
   end
+
+  @tag :with_db
+  test "Default headers are returned for doc with open_revs=all", context do
+    db_name = context[:db_name]
+    post_response = Couch.post("/#{db_name}", body: %{:foo => :bar})
+    id = post_response.body["id"]
+    head_response = Couch.head("/#{db_name}/#{id}?open_revs=all")
+    assert head_response.headers["X-Couch-Request-ID"]
+    assert head_response.headers["X-CouchDB-Body-Time"]
+  end
 end