Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: include.preload.js

Issue 6686166900277248: Issue 573 - Resolve relative URLs in the beforeload handler on Safari (Closed)
Patch Set: Created May 28, 2014, 10:08 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include.postload.js ('k') | safari/ext/content.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include.preload.js
===================================================================
--- a/include.preload.js
+++ b/include.preload.js
@@ -119,6 +119,32 @@
}
}
+// Converts relative to absolute URL
+// e.g.: foo.swf on http://example.com/whatever/bar.html
+// -> http://example.com/whatever/foo.swf
+function relativeToAbsoluteUrl(url)
+{
+ // If URL is already absolute, don't mess with it
+ if (!url || /^[\w\-]+:/i.test(url))
+ return url;
+
+ // Leading / means absolute path
+ // Leading // means network path
+ if (url[0] == '/')
+ {
+ if (url[1] == '/')
+ return document.location.protocol + url;
+ else
+ return document.location.protocol + "//" + document.location.host + url;
+ }
+
+ // Remove filename and add relative URL to it
+ var base = document.baseURI.match(/.+\//);
+ if (!base)
+ return document.baseURI + "/" + url;
+ return base[0] + url;
+}
+
function init()
{
// Make sure this is really an HTML page, as Chrome runs these scripts on just about everything
« no previous file with comments | « include.postload.js ('k') | safari/ext/content.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld