Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
jdart committed May 15, 2017
1 parent 8c93300 commit ca355a0
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 35 deletions.
30 changes: 15 additions & 15 deletions background.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ var accessControlRequestHeaders;
var allowedMethods;
var exposedHeaders;

var requestListener = function(details){
var requestListener = function(details) {
var flag = false,
rule = {
name: "Origin",
Expand All @@ -17,7 +17,9 @@ var requestListener = function(details){
break;
}
}
if(!flag) details.requestHeaders.push(rule);

if (!flag)
details.requestHeaders.push(rule);

for (i = 0; i < details.requestHeaders.length; ++i) {
if (details.requestHeaders[i].name.toLowerCase() === "access-control-request-headers") {
Expand All @@ -30,7 +32,7 @@ var requestListener = function(details){

var responseListener = function(details){
var flag = false,
rule = {
rule = {
"name": "Access-Control-Allow-Origin",
"value": "*"
};
Expand All @@ -42,17 +44,14 @@ var responseListener = function(details){
break;
}
}
if(!flag) details.responseHeaders.push(rule);

if (accessControlRequestHeaders) {
if (!flag)
details.responseHeaders.push(rule);

if (accessControlRequestHeaders)
details.responseHeaders.push({"name": "Access-Control-Allow-Headers", "value": accessControlRequestHeaders});

}

if(exposedHeaders) {
if (exposedHeaders)
details.responseHeaders.push({"name": "Access-Control-Expose-Headers", "value": exposedHeaders});
}

details.responseHeaders.push({"name": "Access-Control-Allow-Methods", "value": allowedMethods});

Expand All @@ -67,7 +66,7 @@ chrome.runtime.onInstalled.addListener(function(){

/*Reload settings*/
function reload() {
chrome.storage.local.get({'active': false, 'urls': ["<all_urls>"], 'allowedMethods': 'GET, PUT, POST, DELETE, HEAD, OPTIONS', 'exposedHeaders': ''}, function(result) {
config.get(function(result) {

allowedMethods = result.allowedMethods;
exposedHeaders = result.exposedHeaders;
Expand All @@ -76,19 +75,20 @@ function reload() {
chrome.webRequest.onHeadersReceived.removeListener(responseListener);
chrome.webRequest.onBeforeSendHeaders.removeListener(requestListener);

if(result.active) {
if (result.active) {
chrome.browserAction.setIcon({path: "on.png"});

if(result.urls.length) {
console.log(result.urls);
if (result.urls.length) {

/*Add Listeners*/
chrome.webRequest.onHeadersReceived.addListener(responseListener, {
urls: result.urls
},["blocking", "responseHeaders"]);
}, ["blocking", "responseHeaders"]);

chrome.webRequest.onBeforeSendHeaders.addListener(requestListener, {
urls: result.urls
},["blocking", "requestHeaders"]);
}, ["blocking", "requestHeaders"]);
}
} else {
chrome.browserAction.setIcon({path: "off.png"});
Expand Down
2 changes: 1 addition & 1 deletion bower.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "Allow-Control-Allow-Origin: *",
"name": "access-control-allow-origin-star",
"version": "1.0.0",
"dependencies": {
"ionic": "~0.9.27",
Expand Down
21 changes: 21 additions & 0 deletions config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@

var config = {
defaults: {
active: false,
urls: ['<all_urls>'],
allowedMethods: 'GET, PUT, POST, DELETE, HEAD, PATCH, OPTIONS',
exposedHeaders: ''
},
get: function(cb) {
chrome.storage.local.get(Object.keys(config.defaults), function(result) {
if (!result) {
cb(config.defaults);
} else {
cb(result);
}
});
},
set: function(key, value) {
}
};

13 changes: 7 additions & 6 deletions manifest.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"name": "Allow-Control-Allow-Origin: *",
"name": "Access-Control-Allow-Origin: *",
"version": "1.0.2",
"manifest_version": 2,
"description": "Allows to you request any site with ajax from any source. Adds to response 'Allow-Control-Allow-Origin: *' header",
"description": "Allows to you request any site with ajax from any source. Adds to response 'Access-Control-Allow-Origin: *' header",
"background": {
"scripts": ["background.js"]
"scripts": ["config.js", "background.js"]
},
"browser_action": {
"default_icon": "off.png",
"default_title": "Allow-Control-Allow-Origin",
"default_title": "Access-Control-Allow-Origin",
"default_popup": "popup.html"
},
"permissions": [
Expand All @@ -18,6 +18,7 @@
"<all_urls>"
],
"web_accessible_resources": [
"on.png","off.png"
"on.png",
"off.png"
]
}
}
3 changes: 2 additions & 1 deletion popup.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
<head>
<script src="bower_components\jquery\dist\jquery.min.js"></script>
<script src="bower_components\ionic\release\js\ionic.bundle.js"></script>
<script src="config.js"></script>
<script src="popup.js"></script>
<link rel="stylesheet" href="popup.css">
<link rel="stylesheet" href="bower_components\ionic\release\css\ionic.css">
Expand Down Expand Up @@ -38,4 +39,4 @@ <h1 class="title">Settings</h1>
</div>
</div>
</body>
</html>
</html>
24 changes: 12 additions & 12 deletions popup.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@

var app = angular.module('cors', ['ionic']);

app.controller('PopupCtrl', ['$scope', function($scope) {
app.controller('PopupCtrl', ['$scope', PopupCtrl]);

function PopupCtrl($scope) {

$scope.active = false;
$scope.urls = [];
$scope.url = '';
$scope.exposedHeaders = '';

chrome.storage.local.get({'active': false, 'urls': [], 'allowedMethods': 'GET, PUT, POST, DELETE, HEAD, OPTIONS', 'exposedHeaders': ''}, function(result) {
config.get(function(result) {
$scope.active = result.active;
$scope.urls = result.urls;
$scope.allowedMethods = result.allowedMethods;
Expand All @@ -28,28 +31,25 @@ app.controller('PopupCtrl', ['$scope', function($scope) {
chrome.storage.local.set({'exposedHeaders': $scope.exposedHeaders});
chrome.extension.getBackgroundPage().reload();
});

$scope.$watch('urls', function(newValue, oldValue) {
chrome.storage.local.set({'urls': $scope.urls});
chrome.extension.getBackgroundPage().reload();
});
});

$scope.openInNewTab = function(url) {
chrome.tabs.create({ url: url });
};

$scope.addUrl = function() {
if($scope.url && $.inArray($scope.url, $scope.urls) == -1) {
$scope.urls.unshift($scope.url);
}
$scope.urls.unshift($scope.url);
chrome.storage.local.set({'urls': $scope.urls});
$scope.url = '';
chrome.extension.getBackgroundPage().reload();
};

$scope.removeUrl = function(index) {
$scope.urls.splice(index, 1);
chrome.storage.local.set({'urls': $scope.urls});
chrome.extension.getBackgroundPage().reload();
};
}]);
}

app.directive("textOption", function() {
return {
Expand All @@ -59,7 +59,7 @@ app.directive("textOption", function() {
placeholder: '@'
},
templateUrl: 'text-option.html',
controller : function($scope) {
controller: function($scope) {
$scope.editing = false;

$scope.onEdit = function() {
Expand Down

0 comments on commit ca355a0

Please sign in to comment.