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

Unified Diff: native_client_sdk/src/gonacl_appengine/static/frame.js

Issue 600653002: [NaCl SDK AppEngine] Fix PNaCl demos after html5 onpopstate change. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months 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 | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: native_client_sdk/src/gonacl_appengine/static/frame.js
diff --git a/native_client_sdk/src/gonacl_appengine/static/frame.js b/native_client_sdk/src/gonacl_appengine/static/frame.js
index eca667e116c2f6630e97d1455b9ba37992e3e191..2564cf52ce12885371eb5833a46ca2de955ff0b8 100644
--- a/native_client_sdk/src/gonacl_appengine/static/frame.js
+++ b/native_client_sdk/src/gonacl_appengine/static/frame.js
@@ -13,7 +13,6 @@ var examples = [
];
var exampleMap = {}; // Created below.
-var iframeEl = null;
var isChrome = /Chrome\/([^\s]+)/.test(navigator.userAgent);
var isMobile = /Mobi/.test(navigator.userAgent);
var hasPnacl = navigator.mimeTypes['application/x-pnacl'] !== undefined;
@@ -21,13 +20,13 @@ var hasPnacl = navigator.mimeTypes['application/x-pnacl'] !== undefined;
if (isChrome && !isMobile) {
if (hasPnacl) {
makeExampleList();
- window.onpopstate = function(popState) {
- if (popState.state == null) {
- updateViewFromLocation();
- } else {
- var exampleName = popState.state;
- loadExample(popState.state);
- }
+ if (history.state == null) {
+ updateViewFromLocation();
+ }
+
+ window.onpopstate = function(event) {
+ var exampleName = event.state;
+ loadExample(exampleName);
}
} else {
// Older version of Chrome?
@@ -131,20 +130,17 @@ function createHomeIframe() {
}
function createIframe(src) {
- var oldIframeEl = iframeEl;
-
- iframeEl = document.createElement('iframe');
- iframeEl.setAttribute('frameborder', '0');
- iframeEl.setAttribute('width', '100%');
- iframeEl.setAttribute('height', '100%');
- iframeEl.src = src;
- iframeEl.setAttribute('hidden', '');
- iframeEl.onload = function() {
- if (oldIframeEl)
- oldIframeEl.parentNode.removeChild(oldIframeEl);
- iframeEl.removeAttribute('hidden');
+ var iframeEl = document.querySelector('iframe');
+ if (iframeEl === null) {
+ iframeEl = document.createElement('iframe');
+ iframeEl.setAttribute('frameborder', '0');
+ iframeEl.setAttribute('width', '100%');
+ iframeEl.setAttribute('height', '100%');
+ iframeEl.src = src;
+ document.querySelector('section').appendChild(iframeEl);
+ } else {
+ iframeEl.contentDocument.location.replace(src);
}
- document.querySelector('section').appendChild(iframeEl);
}
function pushState(exampleName) {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698