protected WOActionResults processActionResults(WOActionResults results) {
WOContext context = context();
WOSession session = context._session();
// MS: This is sketchy -- should this be done in the request handler after we generate the response?
if (results instanceof WOResponse) {
WOResponse response = (WOResponse)results;
if (session != null && session.storesIDsInCookies()) {
session._appendCookieToResponse(response);
}
}
if (_canSetHeaderForActionResults(results)) {
String allowOrigin = accessControlAllowOrigin();
if (allowOrigin != null) {
_setHeaderForActionResults(allowOrigin, "Access-Control-Allow-Origin", results);
}
}
WOActionResults processedResults = results;
if (allowWindowNameCrossDomainTransport()) {
String windowNameCrossDomainTransport = request().stringFormValueForKey("windowname");
if ("true".equals(windowNameCrossDomainTransport)) {
WOResponse response = results.generateResponse();
String content = response.contentString();
if (content != null) {
content = content.replaceAll("\n", "");
content = ERXStringUtilities.escapeJavascriptApostrophes(content);
}
response.setContent("<html><script type=\"text/javascript\">window.name='" + content + "';</script></html>");
response.setHeader("text/html", "Content-Type");
processedResults = response;
}
}
if (allowJSONP()) {
if (format().equals(ERXRestFormat.json())) {
String callbackMethodName = request().stringFormValueForKey("callback");
if (callbackMethodName != null) {
WOResponse response = results.generateResponse();
String content = response.contentString();
if (content != null) {
content = content.replaceAll("\n", "");
content = ERXStringUtilities.escapeJavascriptApostrophes(content);
}
response.setContent(callbackMethodName + "(" + content + ");");
response.setHeader("text/javascript", "Content-Type");
processedResults = response;
}
}
}
return processedResults;