"use strict";

/*
This is the page for which we want to rewrite the User-Agent header.
*/
var targetPage = "https://*/*";
var defaultHostUrl = "{{{defaultHostUrl}}}";
var defaultPublish = true;
var defaultConfigText = "Configure your DID";
var extensionState;

{{{extensionNamespace}}}.storage.local.get(['publish', 'hostUrl', 'configText'], function(result){
    extensionState = result;
    if (result === undefined){
      alert('result is undefined getting extensionState');
    }
    else{
      if (result.publish === undefined){
        extensionState.publish = defaultPublish;     
        {{{extensionNamespace}}}.storage.local.set({publish: defaultPublish});
      }
      if (result.hostUrl === undefined){
        extensionState.hostUrl = defaultHostUrl;     
        {{{extensionNamespace}}}.storage.local.set({hostUrl: defaultHostUrl});
      }
      if (result.configText === undefined){
        extensionState.configText = defaultConfigText;     
        {{{extensionNamespace}}}.storage.local.set({configText: defaultConfigText});
      }    
    }
  });


function rewriteUserAgentHeader(details) {
  if (extensionState.publish){
    var didHeader = {
    	'name': 'x-did-openid',
    	'value': extensionState.hostUrl
    }
    details.requestHeaders.push(didHeader);
  }
  return {requestHeaders: details.requestHeaders};
}

/*
Add rewriteUserAgentHeader as a listener to onBeforeSendHeaders,
only for the target page.

Make it "blocking" so we can modify the headers.
*/
{{{extensionNamespace}}}.webRequest.onBeforeSendHeaders.addListener(rewriteUserAgentHeader,
                                          {urls: [targetPage]},
                                          ["blocking", "requestHeaders"]);

function handleMessage(message, sender, sendResponse) {
   if (message.op === 'setExtensionState')
    {
        {{{extensionNamespace}}}.storage.local.set(message.state);        
        {{{extensionNamespace}}}.storage.local.get(['publish', 'hostUrl', 'configText'], function(result){
            // sendResponse(result);
            extensionState = result;
        });
    }
    sendResponse({text: "Response from background script"});
}

{{{extensionNamespace}}}.runtime.onMessage.addListener(handleMessage);









