@@ -1935,35 +1935,17 @@ ngx_int_t ps_resource_handler(ngx_http_request_t* r,
19351935 ngx_http_set_ctx (r, ctx, ngx_pagespeed);
19361936 }
19371937
1938- if (ps_create_base_fetch (ctx, request_context) != NGX_OK) {
1939- // Do not need to release request context 'ctx'.
1940- // http_pool_cleanup will call ps_release_request_context
1941- return NGX_ERROR;
1942- }
1943-
1944- ctx->base_fetch ->SetRequestHeadersTakingOwnership (request_headers.release ());
1945-
1946- bool page_callback_added = false ;
1947- scoped_ptr<ProxyFetchPropertyCallbackCollector>
1948- property_callback (
1949- ProxyFetchFactory::InitiatePropertyCacheLookup (
1950- !html_rewrite /* is_resource_fetch */ ,
1951- url,
1952- cfg_s->server_context ,
1953- options,
1954- ctx->base_fetch ,
1955- false /* requires_blink_cohort (no longer unused) */ ,
1956- &page_callback_added));
1957-
19581938 if (pagespeed_resource) {
19591939 // TODO(jefftk): Set using_spdy appropriately. See
19601940 // ProxyInterface::ProxyRequestCallback
1941+ ps_create_base_fetch (ctx, request_context);
19611942 ResourceFetch::Start (
19621943 url,
19631944 custom_options.release () /* null if there aren't custom options */ ,
19641945 false /* using_spdy */ , cfg_s->server_context , ctx->base_fetch );
19651946 return ps_async_wait_response (r);
19661947 } else if (is_an_admin_handler) {
1948+ ps_create_base_fetch (ctx, request_context);
19671949 QueryParams query_params;
19681950 query_params.ParseFromUrl (url);
19691951
@@ -2007,6 +1989,7 @@ ngx_int_t ps_resource_handler(ngx_http_request_t* r,
20071989 }
20081990
20091991 if (html_rewrite) {
1992+ ps_create_base_fetch (ctx, request_context);
20101993 // Do not store driver in request_context, it's not safe.
20111994 RewriteDriver* driver;
20121995
@@ -2033,19 +2016,30 @@ ngx_int_t ps_resource_handler(ngx_http_request_t* r,
20332016 driver->set_pagespeed_option_cookies (pagespeed_option_cookies);
20342017
20352018 // TODO(jefftk): FlushEarlyFlow would go here.
2019+ bool page_callback_added = false ;
2020+ ProxyFetchPropertyCallbackCollector* property_callback =
2021+ ProxyFetchFactory::InitiatePropertyCacheLookup (
2022+ !html_rewrite /* is_resource_fetch */ ,
2023+ url,
2024+ cfg_s->server_context ,
2025+ options,
2026+ ctx->base_fetch ,
2027+ false /* requires_blink_cohort (no longer unused) */ ,
2028+ &page_callback_added);
20362029
20372030 // Will call StartParse etc. The rewrite driver will take care of deleting
20382031 // itself if necessary.
20392032 ctx->proxy_fetch = cfg_s->proxy_fetch_factory ->CreateNewProxyFetch (
20402033 url_string, ctx->base_fetch , driver,
2041- property_callback. release () ,
2034+ property_callback,
20422035 NULL /* original_content_fetch */ );
20432036 return NGX_OK;
20442037 }
20452038
20462039 if (options->in_place_rewriting_enabled () &&
20472040 options->enabled () &&
20482041 options->IsAllowed (url.Spec ())) {
2042+ ps_create_base_fetch (ctx, request_context);
20492043 // Do not store driver in request_context, it's not safe.
20502044 RewriteDriver* driver;
20512045 if (custom_options.get () == NULL ) {
@@ -2085,8 +2079,7 @@ ngx_int_t ps_resource_handler(ngx_http_request_t* r,
20852079 " Passing on content handling for non-pagespeed resource '%s'" ,
20862080 url_string.c_str ());
20872081
2088- ctx->base_fetch ->Done (false );
2089- ps_release_base_fetch (ctx);
2082+ CHECK (ctx->base_fetch == NULL );
20902083 // set html_rewrite flag.
20912084 ctx->html_rewrite = true ;
20922085 return NGX_DECLINED;
0 commit comments