Substituir os valores de "controle de cache" em uma resposta HTTP

Eu tenho uma página da web que retorna o seguinte cabeçalho quando eu acesso o material:

HTTP/1.1 200 OK
Date: Sat, 29 Jun 2013 15:57:25 GMT
Server: Apache
Content-Length: 2247515
Cache-Control: no-cache, no-store, must-revalidate, max-age=-1
Pragma: no-cache, no-store
Expires: -1
Connection: close

Usando uma extensão do Chrome, eu quero modificar issoresponse header para que o material seja realmente armazenado em cache, em vez de desperdiçar largura de banda.

Eu tenho o seguinte código de exemplo:

chrome.webRequest.onHeadersReceived.addListener(function(details) 
    {
        // Delete the required elements
        removeHeader(details.responseHeaders, 'pragma');
        removeHeader(details.responseHeaders, 'expires');

        // Modify cache-control
        updateHeader(details.responseHeaders, 'cache-control', 'max-age=3600;')

        console.log(details.url);
        console.log(details.responseHeaders);

        return{responseHeaders: details.responseHeaders};
    },
    {urls: ["<all_urls>"]}, ['blocking', 'responseHeaders']
);

Que corretamente modifica o cabeçalho para algo como isto (baseado na saída console.log ()):

HTTP/1.1 200 OK
Date: Sat, 29 Jun 2013 15:57:25 GMT
Server: Apache
Content-Length: 2247515
Cache-Control: max-age=3600
Connection: close

Mas, com base em tudo que tentei verificar, não vejo qualquer evidência de que isso tenha realmente acontecido:

ocache não contém uma entrada para este arquivooNetwork guia noDeveloper Console não mostra nenhuma mudança na resposta HTTP (tentei alterá-lo para modificações triviais apenas para garantir que não é um erro, mas ainda não há alterações).

As únicas dicas reais que posso encontrar sãoessa questão o que sugere que minha abordagem ainda funciona e este parágrafo noDocumentação da API do webRequest o que sugere que isso não funcionará (mas não explica por que não consigo fazer nenhuma alteração):

Observe que a API de solicitação da web apresenta uma abstração da pilha de rede para a extensão. Internamente, uma solicitação de URL pode ser dividida em várias solicitações HTTP (por exemplo, para buscar intervalos de bytes individuais de um arquivo grande) ou pode ser manipulada pela pilha de rede sem se comunicar com a rede. Por esse motivo, a API não fornece os cabeçalhos HTTP finais enviados à rede. Por exemplo, todos os cabeçalhos relacionados ao armazenamento em cache são invisíveis para a extensão.

Nada está funcionando (não posso modificar oHTTP response header de jeito nenhum) então eu acho que é a minha primeira preocupação.

Alguma sugestão de onde eu poderia estar errado ou como descobrir o que está errado aqui?

Se não for possível, existem outras maneiras de alcançar o que estou tentando alcançar?

questionAnswers(1)

yourAnswerToTheQuestion