| Index: headless/public/util/generic_url_request_job.cc
|
| diff --git a/headless/public/util/generic_url_request_job.cc b/headless/public/util/generic_url_request_job.cc
|
| index a82925d9623c5a77dbcb681a2b00c95c162aecfc..7918dec7836afcb09ae919ffcad04584f3c20cd3 100644
|
| --- a/headless/public/util/generic_url_request_job.cc
|
| +++ b/headless/public/util/generic_url_request_job.cc
|
| @@ -25,6 +25,9 @@ bool IsMethodSafe(const std::string& method) {
|
| method == "TRACE";
|
| }
|
|
|
| +// Keep in sync with X_DevTools_Request_Id defined in HTTPNames.json5.
|
| +const char kDevtoolsRequestId[] = "X-DevTools-Request-Id";
|
| +
|
| } // namespace
|
|
|
| GenericURLRequestJob::GenericURLRequestJob(
|
| @@ -45,6 +48,11 @@ GenericURLRequestJob::~GenericURLRequestJob() = default;
|
| void GenericURLRequestJob::SetExtraRequestHeaders(
|
| const net::HttpRequestHeaders& headers) {
|
| extra_request_headers_ = headers;
|
| +
|
| + if (extra_request_headers_.GetHeader(kDevtoolsRequestId,
|
| + &devtools_request_id_)) {
|
| + extra_request_headers_.RemoveHeader(kDevtoolsRequestId);
|
| + }
|
| }
|
|
|
| void GenericURLRequestJob::Start() {
|
| @@ -67,7 +75,8 @@ void GenericURLRequestJob::Start() {
|
| }
|
| };
|
|
|
| - if (!delegate_->BlockOrRewriteRequest(request_->url(), request_->method(),
|
| + if (!delegate_->BlockOrRewriteRequest(request_->url(), devtools_request_id_,
|
| + request_->method(),
|
| request_->referrer(), callback)) {
|
| PrepareCookies(request_->url(), request_->method(),
|
| url::Origin(request_->first_party_for_cookies()));
|
| @@ -118,7 +127,7 @@ void GenericURLRequestJob::OnCookiesAvailable(
|
|
|
| // The resource may have been supplied in the request.
|
| const HttpResponse* matched_resource = delegate_->MaybeMatchResource(
|
| - rewritten_url, method, extra_request_headers_);
|
| + rewritten_url, devtools_request_id_, method, extra_request_headers_);
|
|
|
| if (matched_resource) {
|
| OnFetchCompleteExtractHeaders(
|
| @@ -151,7 +160,8 @@ void GenericURLRequestJob::OnFetchComplete(
|
| std::string mime_type;
|
| GetMimeType(&mime_type);
|
|
|
| - delegate_->OnResourceLoadComplete(final_url, mime_type, http_response_code);
|
| + delegate_->OnResourceLoadComplete(final_url, devtools_request_id_, mime_type,
|
| + http_response_code);
|
| }
|
|
|
| int GenericURLRequestJob::ReadRawData(net::IOBuffer* buf, int buf_size) {
|
| @@ -193,4 +203,46 @@ void GenericURLRequestJob::GetLoadTimingInfo(
|
| load_timing_info->receive_headers_end = response_time_;
|
| }
|
|
|
| +bool GenericURLRequestJob::Delegate::BlockOrRewriteRequest(
|
| + const GURL& url,
|
| + const std::string& devtools_id,
|
| + const std::string& method,
|
| + const std::string& referrer,
|
| + RewriteCallback callback) {
|
| + return BlockOrRewriteRequest(url, method, referrer, callback);
|
| +}
|
| +
|
| +bool GenericURLRequestJob::Delegate::BlockOrRewriteRequest(
|
| + const GURL& url,
|
| + const std::string& method,
|
| + const std::string& referrer,
|
| + RewriteCallback callback) {
|
| + return false;
|
| +}
|
| +
|
| +const GenericURLRequestJob::HttpResponse*
|
| +GenericURLRequestJob::Delegate::MaybeMatchResource(
|
| + const GURL& url,
|
| + const std::string& devtools_id,
|
| + const std::string& method,
|
| + const net::HttpRequestHeaders& request_headers) {
|
| + return MaybeMatchResource(url, method, request_headers);
|
| +}
|
| +
|
| +const GenericURLRequestJob::HttpResponse*
|
| +GenericURLRequestJob::Delegate::MaybeMatchResource(
|
| + const GURL& url,
|
| + const std::string& method,
|
| + const net::HttpRequestHeaders& request_headers) {
|
| + return nullptr;
|
| +}
|
| +
|
| +void GenericURLRequestJob::Delegate::OnResourceLoadComplete(
|
| + const GURL& final_url,
|
| + const std::string& devtools_id,
|
| + const std::string& mime_type,
|
| + int http_response_code) {
|
| + OnResourceLoadComplete(final_url, mime_type, http_response_code);
|
| +}
|
| +
|
| } // namespace headless
|
|
|