mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 16:28:38 +09:00
moebius#65: Fix: "about:..." - throws an errors
https://github.com/MoonchildProductions/moebius/pull/65
This commit is contained in:
parent
f0536c394b
commit
61ce67c968
5 changed files with 43 additions and 30 deletions
|
|
@ -7,7 +7,6 @@ var Cu = Components.utils;
|
|||
Cu.import("resource://services-common/utils.js");
|
||||
Cu.import("resource://services-sync/main.js");
|
||||
Cu.import("resource:///modules/PlacesUIUtils.jsm");
|
||||
Cu.import("resource://gre/modules/AppConstants.jsm");
|
||||
Cu.import("resource://gre/modules/PlacesUtils.jsm", this);
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
|
@ -15,10 +14,10 @@ Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
|||
XPCOMUtils.defineLazyModuleGetter(this, "Promise",
|
||||
"resource://gre/modules/Promise.jsm");
|
||||
|
||||
if (AppConstants.MOZ_SERVICES_CLOUDSYNC) {
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "CloudSync",
|
||||
"resource://gre/modules/CloudSync.jsm");
|
||||
}
|
||||
#ifdef MOZ_SERVICES_CLOUDSYNC
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "CloudSync",
|
||||
"resource://gre/modules/CloudSync.jsm");
|
||||
#endif
|
||||
|
||||
var RemoteTabViewer = {
|
||||
_tabsList: null,
|
||||
|
|
@ -184,12 +183,16 @@ var RemoteTabViewer = {
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef MOZ_SERVICES_CLOUDSYNC
|
||||
if (CloudSync && CloudSync.ready && CloudSync().tabsReady && CloudSync().tabs.hasRemoteTabs()) {
|
||||
this._generateCloudSyncTabList()
|
||||
.then(complete, complete);
|
||||
} else {
|
||||
complete();
|
||||
}
|
||||
#else
|
||||
complete();
|
||||
#endif
|
||||
},
|
||||
|
||||
_clearTabList: function () {
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ browser.jar:
|
|||
content/browser/pageinfo/permissions.js (content/pageinfo/permissions.js)
|
||||
content/browser/pageinfo/security.js (content/pageinfo/security.js)
|
||||
content/browser/sync/aboutSyncTabs.xul (content/sync/aboutSyncTabs.xul)
|
||||
content/browser/sync/aboutSyncTabs.js (content/sync/aboutSyncTabs.js)
|
||||
* content/browser/sync/aboutSyncTabs.js (content/sync/aboutSyncTabs.js)
|
||||
content/browser/sync/aboutSyncTabs.css (content/sync/aboutSyncTabs.css)
|
||||
content/browser/sync/aboutSyncTabs-bindings.xml (content/sync/aboutSyncTabs-bindings.xml)
|
||||
content/browser/sync/setup.xul (content/sync/setup.xul)
|
||||
|
|
|
|||
|
|
@ -41,7 +41,11 @@ window.onload = function() {
|
|||
return;
|
||||
}
|
||||
|
||||
gStateObject = JSON.parse(sessionData.value);
|
||||
try {
|
||||
gStateObject = JSON.parse(sessionData.value);
|
||||
} catch (e) {
|
||||
Cu.reportError(e);
|
||||
}
|
||||
|
||||
// make sure the data is tracked to be restored in case of a subsequent crash
|
||||
var event = document.createEvent("UIEvents");
|
||||
|
|
@ -68,30 +72,32 @@ function initTreeView() {
|
|||
var winLabel = tabList.getAttribute("_window_label");
|
||||
|
||||
gTreeData = [];
|
||||
gStateObject.windows.forEach(function(aWinData, aIx) {
|
||||
var winState = {
|
||||
label: winLabel.replace("%S", (aIx + 1)),
|
||||
open: true,
|
||||
checked: true,
|
||||
ix: aIx
|
||||
};
|
||||
winState.tabs = aWinData.tabs.map(function(aTabData) {
|
||||
var entry = aTabData.entries[aTabData.index - 1] || { url: "about:blank" };
|
||||
var iconURL = aTabData.image || null;
|
||||
// don't initiate a connection just to fetch a favicon (see bug 462863)
|
||||
if (/^https?:/.test(iconURL))
|
||||
iconURL = "moz-anno:favicon:" + iconURL;
|
||||
return {
|
||||
label: entry.title || entry.url,
|
||||
if (gStateObject) {
|
||||
gStateObject.windows.forEach(function(aWinData, aIx) {
|
||||
var winState = {
|
||||
label: winLabel.replace("%S", (aIx + 1)),
|
||||
open: true,
|
||||
checked: true,
|
||||
src: iconURL,
|
||||
parent: winState
|
||||
ix: aIx
|
||||
};
|
||||
});
|
||||
gTreeData.push(winState);
|
||||
for (let tab of winState.tabs)
|
||||
gTreeData.push(tab);
|
||||
}, this);
|
||||
winState.tabs = aWinData.tabs.map(function(aTabData) {
|
||||
var entry = aTabData.entries[aTabData.index - 1] || { url: "about:blank" };
|
||||
var iconURL = aTabData.image || null;
|
||||
// don't initiate a connection just to fetch a favicon (see bug 462863)
|
||||
if (/^https?:/.test(iconURL))
|
||||
iconURL = "moz-anno:favicon:" + iconURL;
|
||||
return {
|
||||
label: entry.title || entry.url,
|
||||
checked: true,
|
||||
src: iconURL,
|
||||
parent: winState
|
||||
};
|
||||
});
|
||||
gTreeData.push(winState);
|
||||
for (let tab of winState.tabs)
|
||||
gTreeData.push(tab);
|
||||
}, this);
|
||||
}
|
||||
|
||||
tabList.view = treeView;
|
||||
tabList.view.selection.select(0);
|
||||
|
|
|
|||
|
|
@ -40,5 +40,9 @@ function navigate()
|
|||
if ($('priv').checked)
|
||||
context += 'p,';
|
||||
|
||||
if (storage == null) {
|
||||
storage = "";
|
||||
}
|
||||
|
||||
window.location.href = 'about:cache?storage=' + storage + '&context=' + context;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ var FormDataInternal = {
|
|||
// We want to avoid saving data for about:sessionrestore as a string.
|
||||
// Since it's stored in the form as stringified JSON, stringifying further
|
||||
// causes an explosion of escape characters. cf. bug 467409
|
||||
if (isRestorationPage(ret.url)) {
|
||||
if (isRestorationPage(ret.url) && ret.id && ret.id.sessionData) {
|
||||
ret.id.sessionData = JSON.parse(ret.id.sessionData);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue