Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1674)

Unified Diff: chrome/test/data/extensions/platform_apps/web_view/shim/main.js

Issue 23835019: Support URL fragment resolution againt non-hierarchical schemes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix net & webview tag tests Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | net/base/data_url_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/data/extensions/platform_apps/web_view/shim/main.js
diff --git a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
index 489cb875d574ecc388177283837210eb64688bac..35d6af17661c83984c5b1a6688bdf193d3b65387 100644
--- a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
+++ b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
@@ -47,13 +47,18 @@ util.createWebViewTagInDOM = function(partitionName) {
var webview = document.createElement('webview');
webview.style.width = '300px';
webview.style.height = '200px';
- var urlDummy = 'data:text/html,<body>Initial dummy guest</body>';
+ var urlDummy = util.createDataUrl('<body>Initial dummy guest</body>');
webview.setAttribute('src', urlDummy);
webview.setAttribute('partition', partitionName);
document.body.appendChild(webview);
return webview;
};
+// Creates a data: URL correctly escaping the html content.
+util.createDataUrl = function(html) {
+ return 'data:text/html,' + encodeURIComponent(html);
+};
+
embedder.test = {};
embedder.test.succeed = function() {
chrome.test.sendMessage('DoneShimTest.PASSED');
@@ -105,7 +110,8 @@ function testAutosizeBeforeNavigation() {
embedder.test.succeed();
});
- webview.setAttribute('src', 'data:text/html,webview test sizechanged event');
+ webview.setAttribute('src',
+ util.createDataUrl('webview test sizechanged event'));
document.body.appendChild(webview);
}
@@ -159,7 +165,8 @@ function testAutosizeAfterNavigation() {
webview.style.width = '50px';
webview.style.height = '100px';
- webview.setAttribute('src', 'data:text/html,webview test sizechanged event');
+ webview.setAttribute('src',
+ util.createDataUrl('webview test sizechanged event'));
document.body.appendChild(webview);
}
@@ -218,7 +225,7 @@ function testAutosizeWithPartialAttributes() {
webview.style.width = '640px';
webview.style.height = '480px';
- webview.setAttribute('src', 'data:text/html,webview check autosize');
+ webview.setAttribute('src', util.createDataUrl('webview check autosize'));
document.body.appendChild(webview);
}
@@ -265,7 +272,7 @@ function testAutosizeRemoveAttributes() {
webview.style.width = '640px';
webview.style.height = '480px';
- webview.setAttribute('src', 'data:text/html,webview check autosize');
+ webview.setAttribute('src', util.createDataUrl('webview check autosize'));
document.body.appendChild(webview);
}
@@ -295,7 +302,7 @@ function testAPIMethodExistence() {
typeof webview.contentWindow.postMessage);
embedder.test.succeed();
});
- webview.setAttribute('src', 'data:text/html,webview check api');
+ webview.setAttribute('src', util.createDataUrl('webview check api'));
document.body.appendChild(webview);
}
@@ -357,7 +364,7 @@ function testWebRequestAPIExistence() {
embedder.test.succeed();
});
- webview.setAttribute('src', 'data:text/html,webview check api');
+ webview.setAttribute('src', util.createDataUrl('webview check api'));
document.body.appendChild(webview);
}
@@ -381,7 +388,7 @@ function testEventName() {
embedder.test.succeed();
});
- webview.setAttribute('src', 'data:text/html,trigger navigation');
+ webview.setAttribute('src', util.createDataUrl('trigger navigation'));
document.body.appendChild(webview);
}
@@ -409,10 +416,10 @@ function testOnEventProperties() {
embedder.test.succeed();
};
- webview.setAttribute('src', 'data:text/html,next navigation');
+ webview.setAttribute('src', util.createDataUrl('next navigation'));
});
- webview.setAttribute('src', 'data:text/html,trigger navigation');
+ webview.setAttribute('src', util.createDataUrl('trigger navigation'));
document.body.appendChild(webview);
}
@@ -430,7 +437,7 @@ function testLoadProgressEvent() {
progress = evt.progress;
});
- webview.setAttribute('src', 'data:text/html,trigger navigation');
+ webview.setAttribute('src', util.createDataUrl('trigger navigation'));
document.body.appendChild(webview);
}
@@ -440,7 +447,7 @@ function testLoadProgressEvent() {
// fire without crashing.
function testDestroyOnEventListener() {
var webview = util.createWebViewTagInDOM(arguments.callee.name);
- var url = 'data:text/html,<body>Destroy test</body>';
+ var url = util.createDataUrl('<body>Destroy test</body>');
var loadCommitCount = 0;
function loadCommitCommon(e) {
@@ -473,7 +480,7 @@ function testDestroyOnEventListener() {
// which should not be possible.
function testCannotMutateEventName() {
var webview = util.createWebViewTagInDOM(arguments.callee.name);
- var url = 'data:text/html,<body>Two</body>';
+ var url = util.createDataUrl('<body>Two</body>');
var loadCommitACalled = false;
var loadCommitBCalled = false;
@@ -521,7 +528,7 @@ function testCannotMutateEventName() {
function testPartitionRaisesException() {
var webview = document.createElement('webview');
webview.setAttribute('partition', arguments.callee.name);
- webview.setAttribute('src', 'data:text/html,trigger navigation');
+ webview.setAttribute('src', util.createDataUrl('trigger navigation'));
document.body.appendChild(webview);
setTimeout(function() {
try {
@@ -561,7 +568,7 @@ function testExecuteScript() {
embedder.test.succeed();
});
});
- webview.setAttribute('src', 'data:text/html,trigger navigation');
+ webview.setAttribute('src', util.createDataUrl('trigger navigation'));
document.body.appendChild(webview);
}
@@ -590,20 +597,20 @@ function testTerminateAfterExit() {
// webview.terminate() caused a browser crash.
setTimeout(function() {
loadstopSucceedsTest = true;
- webview.setAttribute('src', 'data:text/html,test second page');
+ webview.setAttribute('src', util.createDataUrl('test second page'));
}, 0);
});
- webview.setAttribute('src', 'data:text/html,test terminate() crash.');
+ webview.setAttribute('src', util.createDataUrl('test terminate() crash.'));
document.body.appendChild(webview);
}
// This test verifies that multiple consecutive changes to the <webview> src
// attribute will cause a navigation.
function testNavOnConsecutiveSrcAttributeChanges() {
- var testPage1 = 'data:text/html,test page 1';
- var testPage2 = 'data:text/html,test page 2';
- var testPage3 = 'data:text/html,test page 3';
+ var testPage1 = util.createDataUrl('test page 1');
+ var testPage2 = util.createDataUrl('test page 2');
+ var testPage3 = util.createDataUrl('test page 3');
var webview = new WebView();
webview.partition = arguments.callee.name;
var loadCommitCount = 0;
@@ -625,9 +632,9 @@ function testNavOnConsecutiveSrcAttributeChanges() {
// This test verifies that we can set the <webview> src multiple times and the
// changes will cause a navigation.
function testNavOnSrcAttributeChange() {
- var testPage1 = 'data:text/html,test page 1';
- var testPage2 = 'data:text/html,test page 2';
- var testPage3 = 'data:text/html,test page 3';
+ var testPage1 = util.createDataUrl('test page 1');
+ var testPage2 = util.createDataUrl('test page 2');
+ var testPage3 = util.createDataUrl('test page 3');
var tests = [testPage1, testPage2, testPage3];
var webview = new WebView();
webview.partition = arguments.callee.name;
@@ -664,16 +671,16 @@ function testAssignSrcAfterCrash() {
});
webview.addEventListener('exit', function(evt) {
terminated = true;
- webview.setAttribute('src', 'data:text/html,test page');
+ webview.setAttribute('src', util.createDataUrl('test page'));
});
- webview.setAttribute('src', 'data:text/html,test page');
+ webview.setAttribute('src', util.createDataUrl('test page'));
document.body.appendChild(webview);
}
// This test verifies that <webview> reloads the page if the src attribute is
// assigned the same value.
function testReassignSrcAttribute() {
- var dataUrl = 'data:text/html,test page';
+ var dataUrl = util.createDataUrl('test page');
var webview = new WebView();
webview.partition = arguments.callee.name;
@@ -697,7 +704,7 @@ function testReassignSrcAttribute() {
// This test verifies that <webview> restores the src attribute if it is
// removed after navigation.
function testRemoveSrcAttribute() {
- var dataUrl = 'data:text/html,test page';
+ var dataUrl = util.createDataUrl('test page');
var webview = document.createElement('webview');
webview.setAttribute('partition', arguments.callee.name);
var terminated = false;
@@ -750,9 +757,9 @@ function testPluginLoadPermission() {
embedder.test.assertEq('function', typeof e.request.deny);
embedder.test.succeed();
});
- webview.setAttribute('src', 'data:text/html,<body>' +
+ webview.setAttribute('src', util.createDataUrl('<body>' +
'<embed type="application/x-ppapi-tests">' +
- '</embed></body>');
+ '</embed></body>'));
document.body.appendChild(webview);
}
@@ -847,7 +854,7 @@ function testContentLoadEvent() {
webview.addEventListener('contentload', function(e) {
embedder.test.succeed();
});
- webview.setAttribute('src', 'data:text/html,trigger navigation');
+ webview.setAttribute('src', util.createDataUrl('trigger navigation'));
document.body.appendChild(webview);
}
@@ -903,7 +910,7 @@ function testWebRequestListenerSurvivesReparenting() {
// value corresponding to the processId of the guest process.
function testGetProcessId() {
var webview = document.createElement('webview');
- webview.setAttribute('src', 'data:text/html,trigger navigation');
+ webview.setAttribute('src', util.createDataUrl('trigger navigation'));
var firstLoad = function() {
webview.removeEventListener('loadstop', firstLoad);
embedder.test.assertTrue(webview.getProcessId() > 0);
@@ -1006,7 +1013,7 @@ function testLoadAbortIllegalJavaScriptURL() {
// This test verifies that the reload method on webview functions as expected.
function testReload() {
- var triggerNavUrl = 'data:text/html,trigger navigation';
+ var triggerNavUrl = util.createDataUrl('trigger navigation');
var webview = document.createElement('webview');
var loadCommitCount = 0;
@@ -1035,7 +1042,7 @@ function testReload() {
window.removeWebviewOnExitDoCrash = null;
function testRemoveWebviewOnExit() {
- var triggerNavUrl = 'data:text/html,trigger navigation';
+ var triggerNavUrl = util.createDataUrl('trigger navigation');
var webview = document.createElement('webview');
webview.addEventListener('loadstop', function(e) {
@@ -1063,7 +1070,7 @@ function testRemoveWebviewOnExit() {
function testRemoveWebviewAfterNavigation() {
var webview = new WebView();
document.body.appendChild(webview);
- webview.src = 'data:text/html,trigger navigation';
+ webview.src = util.createDataUrl('trigger navigation');
document.body.removeChild(webview);
setTimeout(function() {
embedder.test.succeed();
@@ -1081,12 +1088,13 @@ function testNavigationToExternalProtocol() {
code: 'window.location.href = "tel:+12223334444";'
}, function(results) {});
});
- webview.setAttribute('src', 'data:text/html,navigate to external protocol');
+ webview.setAttribute('src',
+ util.createDataUrl('navigate to external protocol'));
document.body.appendChild(webview);
}
function testResizeWebviewResizesContent() {
- var triggerNavUrl = 'data:text/html,trigger navigation';
+ var triggerNavUrl = util.createDataUrl('trigger navigation');
var webview = new WebView();
webview.src = triggerNavUrl;
webview.addEventListener('loadstop', function(e) {
« no previous file with comments | « no previous file | net/base/data_url_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698