add conkeror subrepo
This commit is contained in:
parent
e9455baeee
commit
b35fb9fe98
|
@ -49,6 +49,9 @@ server and desktop.
|
|||
|
||||
12. redis
|
||||
install redis and configure proxy
|
||||
|
||||
13. conkeror
|
||||
web emacs style browser
|
||||
|
||||
## AUTHOR
|
||||
Aborn Jiang (aborn.jiang@gmail.com)
|
||||
|
@ -65,3 +68,4 @@ Aborn Jiang (aborn.jiang@gmail.com)
|
|||
* 2014-03-06 v1.1 (add bs subrepo)
|
||||
* 2014-03-06 v1.2 (add yum subrepo)
|
||||
* 2014-03-07 v1.3 (add redis)
|
||||
* 2014-03-16 v1.4 (add conkeror)
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
/conkeror.xulapp
|
||||
#*#
|
||||
.#*
|
||||
TAGS
|
||||
xulrunner-stub
|
||||
conkeror-spawn-helper
|
||||
conkeror
|
||||
plugins
|
||||
/components/xpti.dat
|
||||
/components/compreg.dat
|
||||
/.pc
|
||||
/build-*-stamp
|
||||
/configure-stamp
|
||||
/debian/conkeror*.substvars
|
||||
/debian/conkeror*.debhelper.log
|
||||
/debian/conkeror*.debhelper
|
||||
/debian/conkeror-spawn-process-helper/
|
||||
/debian/conkeror/
|
||||
/debian/files
|
||||
/debian/stamp-patched
|
||||
/xulrunner
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,61 @@
|
|||
The following people have helped make Conkeror what it is today!
|
||||
|
||||
Jari Aalto
|
||||
Axel Beckert
|
||||
Vincent Bernat
|
||||
Shawn Betts
|
||||
Ævar Arnfjörð Bjarmason
|
||||
Jesse Black
|
||||
Ricardo Buring
|
||||
Luca Capello
|
||||
Desmond O. Chang
|
||||
Daniel Clemente
|
||||
Tim Cooijmans
|
||||
Dominique Devriese
|
||||
Rick Dillon
|
||||
Deniz Dogan
|
||||
Martin Dybdal
|
||||
Clinton Ebadi
|
||||
Nelson Elhage
|
||||
Will Farrington
|
||||
Mike Fisher
|
||||
John J. Foerch
|
||||
Ivy Foster
|
||||
David Glasser
|
||||
Raimon Grau
|
||||
Philip Hagelberg
|
||||
Samuel Hanot
|
||||
Konrad Hinsen
|
||||
David House
|
||||
Jeremy Hughes
|
||||
Tom Hunt
|
||||
Phil Jackson
|
||||
Scott Jaderholm
|
||||
Doug Kearns
|
||||
Dave Kerschner
|
||||
David Kettler
|
||||
David Leatherman
|
||||
Andreas Liljeqvist
|
||||
Peter Lunicks
|
||||
Kris Maglione
|
||||
Jeremy Maitin-Shepard
|
||||
Artur Malabarba
|
||||
Joseph Mingrone
|
||||
Eli Naeher
|
||||
Nguyễn Tuấn Anh
|
||||
Vinh Nguyen
|
||||
Rohan Nicholls
|
||||
Antti Nykänen
|
||||
Matthijs van Otterdijk
|
||||
Jens Petersen
|
||||
Tom Rauchenwald
|
||||
Frank Ruel
|
||||
Benjamin Slade
|
||||
Jörg Sommer
|
||||
Ben Spencer
|
||||
Martin Stubenschrott
|
||||
Len Trigg
|
||||
Joren Van Onder
|
||||
Ivan N. Veselov
|
||||
Mark R. Williams
|
||||
Nicholas A. Zigarovich
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
Please read the page from the following list most specific to your OS.
|
||||
|
||||
|
||||
For Debian, Ubuntu, and similar OSes: http://conkeror.org/InstallationDebian
|
||||
|
||||
For Mac OS X: http://conkeror.org/InstallationOSX
|
||||
|
||||
For other Unix-like systems and Windows: http://conkeror.org/Installation
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Conkeror</string>
|
||||
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozdev.conkeror</string>
|
||||
|
||||
<key>CFBundleName</key>
|
||||
<string>Conkeror</string>
|
||||
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0pre</string>
|
||||
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>(c) 2007, Shawn Betts</string>
|
||||
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>xulrunner</string>
|
||||
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>Conkeror 1.0pre, A 100% keyboard driven mozilla based web browser.</string>
|
||||
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>Web site URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>http</string>
|
||||
<string>https</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>Local file URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>file</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string> <!-- I have no good reference as to why this is 6.0 -->
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,8 @@
|
|||
.PHONY: clean
|
||||
|
||||
CFLAGS ?= -O2 -g
|
||||
|
||||
conkeror-spawn-helper: conkeror-spawn-helper.c
|
||||
|
||||
clean:
|
||||
rm -f conkeror-spawn-helper
|
|
@ -0,0 +1,13 @@
|
|||
[App]
|
||||
Vendor=conkeror.mozdev.org
|
||||
Name=conkeror
|
||||
ID={a79fe89b-6662-4ff4-8e88-09950ad4dfde}
|
||||
Version=1.0pre
|
||||
BuildID=git
|
||||
|
||||
[Gecko]
|
||||
MinVersion=1.9.1
|
||||
MaxVersion=*
|
||||
|
||||
[XRE]
|
||||
EnableExtensionManager=1
|
|
@ -0,0 +1,3 @@
|
|||
<!ENTITY brandShortName "Conkeror">
|
||||
<!ENTITY brandFullName "Conkeror">
|
||||
<!ENTITY vendorShortName "Conkeror">
|
|
@ -0,0 +1,18 @@
|
|||
brandShortName=Conkeror
|
||||
brandFullName=Conkeror
|
||||
vendorShortName=Conkeror
|
||||
|
||||
homePageOptionCount=1
|
||||
homePageSingleStartMain=Firefox Start, a fast search page with search results by Google
|
||||
homePageSingleStartMainURL=http://en-us.start.mozilla.com/firefox?client=firefox-a&rls=org.mozilla:en-US:official
|
||||
homePageMultipleStartMain=
|
||||
homePageMultipleStart1Label=
|
||||
homePageMultipleStart1URL=
|
||||
homePageMultipleStart2Label=
|
||||
homePageMultipleStart2URL=
|
||||
homePageMultipleStart3Label=
|
||||
homePageMultipleStart3URL=
|
||||
homePageImport=Import your home page from %S
|
||||
|
||||
homePageMigrationPageTitle=Home Page Selection
|
||||
homePageMigrationDescription=Please select the home page you wish to use:
|
Binary file not shown.
After Width: | Height: | Size: 3.6 KiB |
|
@ -0,0 +1,24 @@
|
|||
manifest chrome/chrome.manifest
|
||||
|
||||
component {72a7eea7-a894-47ec-93a9-a7bc172cf1ac} components/application.js
|
||||
contract @conkeror.mozdev.org/application;1 {72a7eea7-a894-47ec-93a9-a7bc172cf1ac}
|
||||
|
||||
component {0f4dd758-b55a-4386-a79c-8698642eac51} components/command-line.js
|
||||
contract @mozilla.org/commandlinehandler/general-startup;1?type=conkeror {0f4dd758-b55a-4386-a79c-8698642eac51}
|
||||
category command-line-handler y-conkeror @mozilla.org/commandlinehandler/general-startup;1?type=conkeror
|
||||
|
||||
component {74FCB100-B972-11DC-95FF-0800200C9A66} components/download_helper.js
|
||||
contract @mozilla.org/helperapplauncherdialog;1 {74FCB100-B972-11DC-95FF-0800200C9A66}
|
||||
|
||||
component {7770E0D0-C4A0-11DC-95FF-0800200C9A66} components/download_manager_ui.js
|
||||
contract @mozilla.org/download-manager-ui;1 {7770E0D0-C4A0-11DC-95FF-0800200C9A66}
|
||||
|
||||
# This overrides the DownloadsStartup app-startup entry created by firefox, to
|
||||
# keep our download-manager-ui registration from being overridden.
|
||||
# "@conkeror.mozdev.org/downloadsstartup-not-defined;1" is never defined and will
|
||||
# be silently ignored by embedding/components/appstartup/src/nsAppStartupNotifier.cpp
|
||||
category app-startup DownloadsStartup @conkeror.mozdev.org/downloadsstartup-not-defined;1
|
||||
|
||||
# This is a Mozilla component that implements nsITransfer in a way that is compatible with Downloads.jsm
|
||||
# For some reason as of Gecko 26 this is not registered by default.
|
||||
contract @mozilla.org/transfer;1 {1b4c85df-cbdd-4bb6-b04e-613caece083c} platformversion>=26
|
|
@ -0,0 +1,14 @@
|
|||
content conkeror file:../modules/
|
||||
|
||||
content conkeror-gui file:../content/
|
||||
skin conkeror-gui default file:../style/
|
||||
locale conkeror-gui en-US file:../locale/en-US/
|
||||
|
||||
content conkeror-help file:../help/
|
||||
content conkeror-contrib file:../contrib/modules/
|
||||
content conkeror-test file:../tests/
|
||||
|
||||
content branding file:../branding/content/
|
||||
locale branding en-US file:../branding/
|
||||
|
||||
override chrome://global/locale/netErrorApp.dtd chrome://conkeror-gui/locale/netErrorApp.dtd
|
|
@ -0,0 +1 @@
|
|||
|
|
@ -0,0 +1,253 @@
|
|||
/**
|
||||
* (C) Copyright 2007,2010,2012 John J. Foerch
|
||||
* (C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
const Cr = Components.results;
|
||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
function application () {
|
||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm", this);
|
||||
|
||||
this.wrappedJSObject = this;
|
||||
this.conkeror = this;
|
||||
|
||||
this.load_url = this.subscript_loader.loadSubScript;
|
||||
this.loading_urls = [];
|
||||
this.loading_paths = [];
|
||||
this.loading_features = [];
|
||||
this.features = {};
|
||||
this.load_paths = [this.module_uri_prefix,
|
||||
this.module_uri_prefix+'extensions',
|
||||
this.module_uri_prefix+'page-modes'];
|
||||
this.after_load_functions = {};
|
||||
this.pending_loads = [];
|
||||
|
||||
// clear the startup-cache so that modules and the user's rc are
|
||||
// loaded from disk, not from a cache. this problem is a
|
||||
// characteristic of using mozIJSSubScriptLoader.loadSubScript as our
|
||||
// primary means of loading, since XULRunner 8.0.
|
||||
var obs = Cc["@mozilla.org/observer-service;1"]
|
||||
.getService(Ci.nsIObserverService);
|
||||
obs.notifyObservers(null, "startupcache-invalidate", null);
|
||||
|
||||
try {
|
||||
this.require("conkeror.js");
|
||||
} catch (e) {
|
||||
this.dumpln("Error initializing.");
|
||||
this.dump_error(e);
|
||||
}
|
||||
}
|
||||
application.prototype = {
|
||||
constructor: application,
|
||||
Cc: Cc,
|
||||
Ci: Ci,
|
||||
Cr: Cr,
|
||||
/* Note: resource://app currently doesn't result in xpcnativewrappers=yes */
|
||||
module_uri_prefix: "chrome://conkeror/content/",
|
||||
subscript_loader: Cc["@mozilla.org/moz/jssubscript-loader;1"].getService(Ci.mozIJSSubScriptLoader),
|
||||
preferences: Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService),
|
||||
get version () {
|
||||
var formatter = Cc["@mozilla.org/toolkit/URLFormatterService;1"]
|
||||
.getService(Ci.nsIURLFormatter);
|
||||
return formatter.formatURL("%VERSION%");
|
||||
},
|
||||
dumpln: function (str) {
|
||||
dump(str);
|
||||
dump("\n");
|
||||
},
|
||||
dump_error: function (e) {
|
||||
if (e instanceof Error) {
|
||||
this.dumpln(e.name + ": " + e.message);
|
||||
this.dumpln(e.fileName + ":" + e.lineNumber);
|
||||
dump(e.stack);
|
||||
} else if (e instanceof Ci.nsIException) {
|
||||
this.dumpln(e.name + ": " + e.message);
|
||||
var stack_frame = e.location;
|
||||
while (stack_frame) {
|
||||
this.dumpln(stack_frame.name + "()@" + stack_frame.filename + ":" + stack_frame.lineNumber);
|
||||
stack_frame = stack_frame.caller;
|
||||
}
|
||||
} else {
|
||||
this.dumpln("Error: " + e);
|
||||
}
|
||||
},
|
||||
|
||||
make_uri: function (uri, charset, base_uri) {
|
||||
const io_service = Cc["@mozilla.org/network/io-service;1"]
|
||||
.getService(Ci.nsIIOService2);
|
||||
if (uri instanceof Ci.nsIURI)
|
||||
return uri;
|
||||
if (uri instanceof Ci.nsIFile)
|
||||
return io_service.newFileURI(uri);
|
||||
return io_service.newURI(uri, charset, base_uri);
|
||||
},
|
||||
load: function (module) {
|
||||
function load1 (url, path) {
|
||||
try {
|
||||
this.loading_paths.unshift(path);
|
||||
this.loading_urls.unshift(url);
|
||||
this.loading_features.unshift({});
|
||||
if (this.loading_urls.indexOf(url, 1) != -1)
|
||||
throw new Error("Circular module dependency detected: "+
|
||||
this.loading_urls.join(",\n"));
|
||||
if (url.substr(-4) == ".jsx") {
|
||||
var scopename = url.substr(url.lastIndexOf('/')+1)
|
||||
.replace('-', '_', 'g');
|
||||
var dot = scopename.indexOf(".");
|
||||
if (dot > -1)
|
||||
scopename = scopename.substr(0, dot);
|
||||
var scope = { __proto__: this };
|
||||
} else
|
||||
scope = this;
|
||||
this.load_url(url, scope);
|
||||
if (scopename)
|
||||
this[scopename] = scope;
|
||||
var success = true;
|
||||
// call-after-load callbacks
|
||||
for (let f in this.loading_features[0]) {
|
||||
this.features[f] = true;
|
||||
this.run_after_load_functions(f);
|
||||
}
|
||||
} finally {
|
||||
this.loading_paths.shift();
|
||||
this.loading_urls.shift();
|
||||
this.loading_features.shift();
|
||||
}
|
||||
// do pending loads
|
||||
if (success && this.loading_urls[0] === undefined) {
|
||||
let pending = this.pending_loads;
|
||||
this.pending_loads = [];
|
||||
for (let i = 0, m; m = pending[i]; ++i) {
|
||||
this.require(m);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (module instanceof Ci.nsIURI)
|
||||
var path = module.spec.substr(0, module.spec.lastIndexOf('/')+1);
|
||||
else if (module instanceof Ci.nsIFile)
|
||||
path = module.parent.path;
|
||||
if (path !== undefined) {
|
||||
var url = this.make_uri(module).spec;
|
||||
load1.call(this.conkeror, url, path);
|
||||
} else {
|
||||
// module name or relative path
|
||||
var si = module.lastIndexOf('/');
|
||||
var module_leaf = module.substr(si+1);
|
||||
var autoext = module_leaf.lastIndexOf(".") <= 0;
|
||||
var exts = { 0:"", 1:".js", 2:".jsx", len:3 };
|
||||
var exti = 0;
|
||||
var i = -1;
|
||||
var tried = {};
|
||||
path = this.loading_paths[0];
|
||||
if (path === undefined)
|
||||
path = this.load_paths[++i];
|
||||
while (path !== undefined) {
|
||||
var truepath = path;
|
||||
var sep = path.substr(-1) == '/' ? '' : '/';
|
||||
var ext = exts[exti];
|
||||
try {
|
||||
url = path + sep + module + ext;
|
||||
if (si > -1)
|
||||
truepath += sep + module.substr(0, si);
|
||||
if (! tried[url]) {
|
||||
tried[url] = true;
|
||||
load1.call(this.conkeror, url, truepath);
|
||||
return;
|
||||
}
|
||||
} catch (e if (typeof e == 'string' &&
|
||||
{"ContentLength not available (not a local URL?)":true,
|
||||
"Error creating channel (invalid URL scheme?)":true,
|
||||
"Error opening input stream (invalid filename?)":true}
|
||||
[e])) {
|
||||
// null op. (suppress error, try next path)
|
||||
}
|
||||
if (autoext)
|
||||
exti = (exti + 1) % exts.len;
|
||||
if (exti == 0)
|
||||
path = this.load_paths[++i];
|
||||
}
|
||||
throw new Error("Module not found ("+module+")");
|
||||
}
|
||||
},
|
||||
provide: function (symbol) {
|
||||
if (! symbol)
|
||||
throw new Error("Cannot provide null feature");
|
||||
if (this.loading_urls[0] === undefined) {
|
||||
this.features[symbol] = true;
|
||||
this.run_after_load_functions(symbol);
|
||||
} else
|
||||
this.loading_features[0][symbol] = true;
|
||||
},
|
||||
featurep: function (symbol) {
|
||||
return this.features[symbol] || false;
|
||||
},
|
||||
call_after_load: function (feature, func) {
|
||||
if (this.featurep(feature))
|
||||
func();
|
||||
else {
|
||||
var funcs = this.after_load_functions[feature];
|
||||
if (! funcs)
|
||||
funcs = this.after_load_functions[feature] = [];
|
||||
funcs.push(func);
|
||||
}
|
||||
},
|
||||
run_after_load_functions: function (symbol) {
|
||||
var funcs = this.after_load_functions[symbol];
|
||||
if (funcs) {
|
||||
delete this.after_load_functions[symbol];
|
||||
for (var i = 0; funcs[i]; ++i) {
|
||||
try {
|
||||
funcs[i]();
|
||||
} catch (e) {
|
||||
this.dump_error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
require: function (module) {
|
||||
if (module instanceof Ci.nsIURI)
|
||||
var feature = module.spec.substr(module.spec.lastIndexOf('/')+1);
|
||||
else if (module instanceof Ci.nsIFile)
|
||||
feature = module.leafName;
|
||||
else
|
||||
feature = module.substr(module.lastIndexOf('/')+1);
|
||||
var dot = feature.indexOf('.');
|
||||
if (dot == 0)
|
||||
return false;
|
||||
if (dot > 0)
|
||||
feature = feature.substr(0, dot);
|
||||
feature = feature.replace('_', '-', 'g');
|
||||
if (this.featurep(feature))
|
||||
return true;
|
||||
try {
|
||||
// ensure current path is not searched for 'require'
|
||||
this.loading_paths.unshift(undefined);
|
||||
this.load(module);
|
||||
} finally {
|
||||
this.loading_paths.shift();
|
||||
}
|
||||
return true;
|
||||
},
|
||||
require_later: function (module) {
|
||||
this.pending_loads.push(module);
|
||||
},
|
||||
|
||||
/* nsISupports */
|
||||
QueryInterface: XPCOMUtils.generateQI([]),
|
||||
|
||||
/* XPCOM registration */
|
||||
classDescription: "Conkeror global object",
|
||||
classID: Components.ID("{72a7eea7-a894-47ec-93a9-a7bc172cf1ac}"),
|
||||
contractID: "@conkeror.mozdev.org/application;1"
|
||||
};
|
||||
|
||||
if (XPCOMUtils.generateNSGetFactory)
|
||||
var NSGetFactory = XPCOMUtils.generateNSGetFactory([application]); //XULRunner 2.0
|
||||
else
|
||||
var NSGetModule = XPCOMUtils.generateNSGetModule([application]);
|
|
@ -0,0 +1,38 @@
|
|||
/**
|
||||
* (C) Copyright 2007 John J. Foerch
|
||||
* (C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
function cmdline () {}
|
||||
cmdline.prototype = {
|
||||
constructor: cmdline,
|
||||
handle: function (cmdline) {
|
||||
if (cmdline.preventDefault)
|
||||
return;
|
||||
cmdline.preventDefault = true;
|
||||
var conkeror = Cc["@conkeror.mozdev.org/application;1"]
|
||||
.getService()
|
||||
.wrappedJSObject;
|
||||
conkeror.handle_command_line(cmdline);
|
||||
},
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsICommandLineHandler]),
|
||||
contractID: "@mozilla.org/commandlinehandler/general-startup;1?type=conkeror",
|
||||
classID: Components.ID("{0f4dd758-b55a-4386-a79c-8698642eac51}"),
|
||||
classDescription: "clh_conkeror",
|
||||
_xpcom_categories: [{
|
||||
category: "command-line-handler",
|
||||
entry: "y-conkeror"
|
||||
}]
|
||||
};
|
||||
|
||||
if (XPCOMUtils.generateNSGetFactory)
|
||||
var NSGetFactory = XPCOMUtils.generateNSGetFactory([cmdline]); //XULRunner 2.0
|
||||
else
|
||||
var NSGetModule = XPCOMUtils.generateNSGetModule([cmdline]);
|
|
@ -0,0 +1,74 @@
|
|||
/**
|
||||
* (C) Copyright 2010 John J. Foerch
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
var content_policy_listener;
|
||||
|
||||
function content_policy () {
|
||||
this.conkeror = Cc["@conkeror.mozdev.org/application;1"]
|
||||
.getService()
|
||||
.wrappedJSObject;
|
||||
this.conkeror.define_hook("content_policy_hook", "RUN_HOOK_UNTIL_SUCCESS");
|
||||
this.conkeror.define_variable("content_policy_scheme_whitelist",
|
||||
{ about: true, chrome: true, data: true, javascript: true,
|
||||
mailto: true, "moz-icon": true },
|
||||
"Requests whose scheme is in this structure (with a true value) "+
|
||||
"will be whitelisted before calling content_policy_hook.");
|
||||
this.conkeror.content_policy_listener = this;
|
||||
}
|
||||
content_policy.prototype = {
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIContentPolicy,
|
||||
Ci.nsIObserverService]),
|
||||
contractID: "@conkeror.org/content-policy-listener;1",
|
||||
classID: Components.ID("{2926dd11-4d76-4965-bcdc-4aaad70ada04}"),
|
||||
classDescription: "content_policy",
|
||||
_xpcom_factory: {
|
||||
createInstance: function (outer, iid) {
|
||||
if (outer)
|
||||
throw Cr.NS_ERROR_NO_AGGREGATION;
|
||||
if (! content_policy_listener)
|
||||
content_policy_listener = new content_policy();
|
||||
return content_policy_listener;
|
||||
}
|
||||
},
|
||||
_xpcom_categories: [{category: "content-policy"}],
|
||||
|
||||
enabled: true,
|
||||
shouldLoad: function (content_type, //unsigned long
|
||||
content_location, //nsIURI
|
||||
request_origin, //nsIURI
|
||||
context, //nsISupports
|
||||
mime_type_guess, //ACString
|
||||
extra) //nsISupports
|
||||
{
|
||||
if (this.enabled) {
|
||||
if (this.conkeror.content_policy_scheme_whitelist[content_location.scheme])
|
||||
return Ci.nsIContentPolicy.ACCEPT;
|
||||
var action = this.conkeror.content_policy_hook.run(
|
||||
content_type, content_location, request_origin,
|
||||
context, mime_type_guess, extra);
|
||||
}
|
||||
return (action || Ci.nsIContentPolicy.ACCEPT);
|
||||
},
|
||||
shouldProcess: function (content_type, //unsigned long
|
||||
content_location, //nsIURI
|
||||
request_origin, //nsIURI
|
||||
context, //nsISupports
|
||||
mime_type, //ACString
|
||||
extra) //nsISupports
|
||||
{
|
||||
return Ci.nsIContentPolicy.ACCEPT;
|
||||
}
|
||||
};
|
||||
|
||||
if (XPCOMUtils.generateNSGetFactory)
|
||||
var NSGetFactory = XPCOMUtils.generateNSGetFactory([content_policy]); //XULRunner 2.0
|
||||
else
|
||||
var NSGetModule = XPCOMUtils.generateNSGetModule([content_policy]);
|
|
@ -0,0 +1,81 @@
|
|||
/**
|
||||
* (C) Copyright 2008 Jeremy Maitin-Shepard
|
||||
* (C) Copyright 2011 John Foerch
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
// Register the Conkeror download_helper
|
||||
|
||||
const classID = Components.ID("{74FCB100-B972-11DC-95FF-0800200C9A66}");
|
||||
const classDescription = "Unknown Content Type Dialog";
|
||||
const contractID = "@mozilla.org/helperapplauncherdialog;1";
|
||||
|
||||
var module = {
|
||||
|
||||
/* This firstTime trick is used to delay the registration. This
|
||||
* is needed to ensure it overrides the built-in component for the
|
||||
* same contractID (the built-in nsHelperAppDlg.js being
|
||||
* overridden uses this as well, and as a result we have to). */
|
||||
|
||||
/* http://dietrich.ganx4.com/blog/?p=221#comment-14 */
|
||||
/* https://bugzilla.mozilla.org/show_bug.cgi?id=253125 */
|
||||
/* https://bugzilla.mozilla.org/show_bug.cgi?id=253136 */
|
||||
|
||||
/* We can't use XPCOMUtils because that doesn't provide this delay
|
||||
* trick. */
|
||||
|
||||
prevTimes: 0,
|
||||
|
||||
// registerSelf: Register this component.
|
||||
registerSelf: function (compMgr, fileSpec, location, type) {
|
||||
if (this.prevTimes < 2) {
|
||||
this.prevTimes++;
|
||||
throw Components.results.NS_ERROR_FACTORY_REGISTER_AGAIN;
|
||||
}
|
||||
compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
|
||||
|
||||
compMgr.registerFactoryLocation( classID,
|
||||
classDescription,
|
||||
contractID,
|
||||
fileSpec,
|
||||
location,
|
||||
type );
|
||||
},
|
||||
|
||||
// getClassObject: Return this component's factory object.
|
||||
getClassObject: function (compMgr, cid, iid) {
|
||||
if (!cid.equals(classID)) {
|
||||
throw Components.results.NS_ERROR_NO_INTERFACE;
|
||||
}
|
||||
|
||||
if (!iid.equals(Components.interfaces.nsIFactory)) {
|
||||
throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
return this.factory;
|
||||
},
|
||||
|
||||
/* factory object */
|
||||
factory: {
|
||||
createInstance: function (outer, iid) {
|
||||
if (outer != null)
|
||||
throw Components.results.NS_ERROR_NO_AGGREGATION;
|
||||
|
||||
/* Return an instance of the Conkeror-scope download_helper object. */
|
||||
var conkeror = Components.classes["@conkeror.mozdev.org/application;1"].getService().wrappedJSObject;
|
||||
return (new conkeror.download_helper()).QueryInterface(iid);
|
||||
}
|
||||
},
|
||||
|
||||
canUnload: function(compMgr) { return true; }
|
||||
};
|
||||
|
||||
function NSGetFactory (cid) { // XULRunner 2.0
|
||||
return module.factory;
|
||||
}
|
||||
|
||||
function NSGetModule(compMgr, fileSpec) {
|
||||
return module;
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
/**
|
||||
* (C) Copyright 2008 Jeremy Maitin-Shepard
|
||||
* (C) Copyright 2011 John Foerch
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
// Register the Conkeror download_manager_ui, which doesn't really do anything at all
|
||||
|
||||
const classID = Components.ID("{7770E0D0-C4A0-11DC-95FF-0800200C9A66}");
|
||||
const classDescription = "Conkeror Download Manager UI";
|
||||
const contractID = "@mozilla.org/download-manager-ui;1";
|
||||
|
||||
var module = {
|
||||
|
||||
/* This firstTime trick is used to delay the registration. This
|
||||
* is needed to ensure it overrides the built-in component for the
|
||||
* same contractID (the built-in nsHelperAppDlg.js being
|
||||
* overridden uses this as well, and as a result we have to). */
|
||||
|
||||
/* http://dietrich.ganx4.com/blog/?p=221#comment-14 */
|
||||
/* https://bugzilla.mozilla.org/show_bug.cgi?id=253125 */
|
||||
/* https://bugzilla.mozilla.org/show_bug.cgi?id=253136 */
|
||||
|
||||
/* We can't use XPCOMUtils because that doesn't provide this delay
|
||||
* trick. */
|
||||
|
||||
firstTime: true,
|
||||
|
||||
// registerSelf: Register this component.
|
||||
registerSelf: function (compMgr, fileSpec, location, type) {
|
||||
if (this.firstTime) {
|
||||
this.firstTime = false;
|
||||
throw Components.results.NS_ERROR_FACTORY_REGISTER_AGAIN;
|
||||
}
|
||||
compMgr = compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar);
|
||||
|
||||
compMgr.registerFactoryLocation( classID,
|
||||
classDescription,
|
||||
contractID,
|
||||
fileSpec,
|
||||
location,
|
||||
type );
|
||||
},
|
||||
|
||||
// getClassObject: Return this component's factory object.
|
||||
getClassObject: function (compMgr, cid, iid) {
|
||||
if (!cid.equals(classID)) {
|
||||
throw Components.results.NS_ERROR_NO_INTERFACE;
|
||||
}
|
||||
|
||||
if (!iid.equals(Components.interfaces.nsIFactory)) {
|
||||
throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
return this.factory;
|
||||
},
|
||||
|
||||
/* factory object */
|
||||
factory: {
|
||||
createInstance: function (outer, iid) {
|
||||
if (outer != null)
|
||||
throw Components.results.NS_ERROR_NO_AGGREGATION;
|
||||
|
||||
/* Return an instance of the Conkeror-scope download_helper object. */
|
||||
var conkeror = Components.classes["@conkeror.mozdev.org/application;1"].getService().wrappedJSObject;
|
||||
return (new conkeror.download_manager_ui()).QueryInterface(iid);
|
||||
}
|
||||
},
|
||||
|
||||
canUnload: function(compMgr) { return true; }
|
||||
};
|
||||
|
||||
function NSGetFactory (cid) { // XULRunner 2.0
|
||||
return module.factory;
|
||||
}
|
||||
|
||||
function NSGetModule(compMgr, fileSpec) {
|
||||
return module;
|
||||
}
|
|
@ -0,0 +1,404 @@
|
|||
/**
|
||||
* (C) Copyright 2008 Jeremy Maitin-Shepard
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <signal.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/stat.h>
|
||||
#include <string.h>
|
||||
#include <fcntl.h>
|
||||
#include <netinet/in.h>
|
||||
#include <dirent.h>
|
||||
#include <sys/resource.h>
|
||||
|
||||
void fail(const char *msg) {
|
||||
fprintf(stderr, "%s\n", msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
void failerr(const char *msg) {
|
||||
perror(msg);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#define TRY(var, foo) var = foo; while (var == -1) { if(errno != EINTR) failerr(#foo); }
|
||||
|
||||
void *Malloc(size_t count) { void *r = malloc(count); if (!r) fail("malloc"); return r; }
|
||||
|
||||
/**
|
||||
* read_all: read from the specified file descriptor, returning a
|
||||
* malloc-allocated buffer containing the data that was read; the
|
||||
* number of bytes read is stored in *bytes_read. If max_bytes is
|
||||
* non-negative, it specifies the maximum number of bytes to read.
|
||||
* Otherwise, read_all reads from the file descriptor until the end of
|
||||
* file is reached.
|
||||
*/
|
||||
char *read_all(int fd, int max_bytes, int *bytes_read) {
|
||||
int capacity = 256;
|
||||
if (max_bytes > 0)
|
||||
capacity = max_bytes;
|
||||
char *buffer = Malloc(capacity);
|
||||
int count = 0;
|
||||
if (max_bytes < 0 || max_bytes > 0) {
|
||||
while (1) {
|
||||
int remain;
|
||||
if (count == capacity) {
|
||||
capacity *= 2;
|
||||
buffer = realloc(buffer, capacity);
|
||||
if (!buffer)
|
||||
fail("realloc failed");
|
||||
}
|
||||
remain = capacity - count;
|
||||
if (max_bytes > 0 && remain > max_bytes)
|
||||
remain = max_bytes;
|
||||
TRY(remain, read(fd, buffer + count, remain));
|
||||
count += remain;
|
||||
if (remain == 0 || count == max_bytes)
|
||||
break;
|
||||
}
|
||||
}
|
||||
*bytes_read = count;
|
||||
return buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
* next_term: return the next NUL terminated string from buffer, and
|
||||
* adjust buffer and len accordingly.
|
||||
*/
|
||||
char *next_term(char **buffer, int *len) {
|
||||
char *p = *buffer;
|
||||
int x = 0;
|
||||
int max_len = *len;
|
||||
while (x < max_len && p[x])
|
||||
++x;
|
||||
if (x == max_len)
|
||||
fail("error parsing");
|
||||
*buffer += x + 1;
|
||||
*len -= (x + 1);
|
||||
return p;
|
||||
}
|
||||
|
||||
struct fd_info {
|
||||
int desired_fd;
|
||||
int orig_fd;
|
||||
char *path;
|
||||
int open_mode;
|
||||
int perms;
|
||||
};
|
||||
|
||||
void write_all(int fd, const char *buf, int len) {
|
||||
int result;
|
||||
do {
|
||||
TRY(result, write(fd, buf, len));
|
||||
buf += result;
|
||||
len -= result;
|
||||
} while (len > 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* my_connect: Create a connection to the local Conkeror process on
|
||||
* the specified TCP port. After connecting, the properly formatted
|
||||
* header specifying the client_key and the "role" (file descriptor or
|
||||
* -1 to indicate the control socket) are sent as well. The file
|
||||
* descriptor for the socket is returned.
|
||||
*/
|
||||
int my_connect(int port, char *client_key, int role) {
|
||||
int sockfd;
|
||||
int result;
|
||||
struct sockaddr_in sa;
|
||||
|
||||
TRY(sockfd, socket(PF_INET, SOCK_STREAM, 0));
|
||||
sa.sin_family = AF_INET;
|
||||
sa.sin_port = htons(port);
|
||||
sa.sin_addr.s_addr = inet_addr("127.0.0.1");
|
||||
memset(sa.sin_zero, 0, sizeof(sa.sin_zero));
|
||||
|
||||
TRY(result, connect(sockfd, (struct sockaddr *)&sa, sizeof(sa)));
|
||||
|
||||
/* Send the client key */
|
||||
write_all(sockfd, client_key, strlen(client_key));
|
||||
|
||||
/* Send the role */
|
||||
if (role < 0) {
|
||||
write_all(sockfd, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 15);
|
||||
}
|
||||
else {
|
||||
char buf[16];
|
||||
snprintf(buf, 16, "%15d", role);
|
||||
write_all(sockfd, buf, 15);
|
||||
}
|
||||
|
||||
return sockfd;
|
||||
}
|
||||
|
||||
int child_pid = 0;
|
||||
int control_fd;
|
||||
|
||||
/**
|
||||
* sigchld_handler: reap any waitable children. Once the child
|
||||
* process exits, send the exit status back over the control socket,
|
||||
* then exit. */
|
||||
void sigchld_handler(int sig) {
|
||||
int status;
|
||||
int pid;
|
||||
int err;
|
||||
|
||||
while (1) {
|
||||
pid = waitpid(-1, &status, WNOHANG);
|
||||
if (pid == 0)
|
||||
return;
|
||||
if (pid == -1) {
|
||||
if (errno == ECHILD)
|
||||
break;
|
||||
failerr("waitpid");
|
||||
}
|
||||
|
||||
/* Our child process exited */
|
||||
if (pid == child_pid && (WIFEXITED(status) || WIFSIGNALED(status))) {
|
||||
char buf[30];
|
||||
snprintf(buf, 30, "%d", status);
|
||||
write_all(control_fd, buf, strlen(buf) + 1);
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void check_duplicate_fds(struct fd_info *fds, int fd_count) {
|
||||
int i, j;
|
||||
for (i = 0; i < fd_count; ++i) {
|
||||
for (j = i + 1; j < fd_count; ++j) {
|
||||
if (fds[i].desired_fd == fds[j].desired_fd)
|
||||
fail("duplicate redirection requested");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* setup_fds: Make the requested redirections. For each entry in the
|
||||
* fds array, rename orig_fd to desired_fd.
|
||||
*/
|
||||
void setup_fds(struct fd_info *fds, int fd_count) {
|
||||
int i, j, result;
|
||||
for (i = 0; i < fd_count; ++i) {
|
||||
int fd = fds[i].desired_fd;
|
||||
if (fd == fds[i].orig_fd) {
|
||||
/* file descriptor is already correct, nothing needs to be done for it */
|
||||
continue;
|
||||
}
|
||||
/* Check if this file descriptor is still in use by any subsequent
|
||||
redirection. */
|
||||
for (j = i + 1; j < fd_count; ++j) {
|
||||
if (fd == fds[j].orig_fd) {
|
||||
/* It is in use. Pick a new file descriptor for fds[j]. */
|
||||
int fd_new;
|
||||
TRY(fd_new, dup(fds[j].orig_fd));
|
||||
close(fds[j].orig_fd);
|
||||
fds[j].orig_fd = fd_new;
|
||||
break;
|
||||
}
|
||||
}
|
||||
TRY(result, dup2(fds[i].orig_fd, fd));
|
||||
close(fds[i].orig_fd);
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
int port;
|
||||
char *client_key, *server_key, *executable, *workdir;
|
||||
char **my_argv;
|
||||
struct fd_info *fds;
|
||||
int fd_count;
|
||||
int i;
|
||||
sigset_t my_mask, my_old_mask;
|
||||
|
||||
if (argc != 3 || (port = atoi(argv[2])) == 0)
|
||||
fail("Invalid arguments");
|
||||
|
||||
sigemptyset(&my_mask);
|
||||
sigaddset(&my_mask, SIGCHLD);
|
||||
|
||||
/* Block SIGPIPE to avoid a signal being generated while writing to a socket */
|
||||
signal(SIGPIPE, SIG_IGN);
|
||||
|
||||
/* Close everything except STDERR. Mozilla leaves us with a bunch
|
||||
of junk file descriptors. */
|
||||
{
|
||||
DIR *dir = opendir("/proc/self/fd");
|
||||
if (!dir) {
|
||||
/* No proc filesystem available, just loop through file descriptors */
|
||||
struct rlimit file_lim;
|
||||
int max_fileno = 1024;
|
||||
if (getrlimit(RLIMIT_NOFILE, &file_lim) == 0)
|
||||
max_fileno = file_lim.rlim_cur;
|
||||
for (i = 0; i < max_fileno; ++i) {
|
||||
if (i == STDERR_FILENO)
|
||||
continue;
|
||||
close(i);
|
||||
}
|
||||
} else {
|
||||
struct dirent *dir_ent;
|
||||
int dir_fd = dirfd(dir);
|
||||
while ((dir_ent = readdir(dir)) != NULL) {
|
||||
int file_desc = atoi(dir_ent->d_name);
|
||||
if (file_desc == STDERR_FILENO || file_desc == dir_fd)
|
||||
continue;
|
||||
close(file_desc);
|
||||
}
|
||||
closedir(dir);
|
||||
}
|
||||
}
|
||||
|
||||
/* Create a default redirection of STDIN and STDOUT to /dev/null, because some
|
||||
programs except STDIN and STDOUT to always be present. Any user-specified
|
||||
redirections will override these.
|
||||
*/
|
||||
|
||||
/* At this point, the only open file descriptor is STDERR (2). Therefore, the
|
||||
next two calls to open are guaranteed to use file descriptors 1 and 2
|
||||
(STDIN and STDOUT, respectively).
|
||||
*/
|
||||
if (open("/dev/null", O_RDONLY) != STDIN_FILENO)
|
||||
fail("Failed to redirect STDIN to /dev/null");
|
||||
|
||||
if (open("/dev/null", O_RDWR) != STDOUT_FILENO)
|
||||
fail("Failed to redirect STDOUT to /dev/null");
|
||||
|
||||
/* Parse key file */
|
||||
{
|
||||
char *buf;
|
||||
int len;
|
||||
int my_argc;
|
||||
/* Read the entire file into buf. */
|
||||
{
|
||||
int file;
|
||||
TRY(file, open(argv[1], O_RDONLY));
|
||||
buf = read_all(file, -1, &len);
|
||||
close(file);
|
||||
|
||||
/* Remove the temporary file */
|
||||
remove(argv[1]);
|
||||
}
|
||||
client_key = next_term(&buf, &len);
|
||||
server_key = next_term(&buf, &len);
|
||||
executable = next_term(&buf, &len);
|
||||
workdir = next_term(&buf, &len);
|
||||
my_argc = atoi(next_term(&buf, &len));
|
||||
my_argv = Malloc(sizeof(char *) * (my_argc + 1));
|
||||
for (i = 0; i < my_argc; ++i)
|
||||
my_argv[i] = next_term(&buf, &len);
|
||||
my_argv[my_argc] = NULL;
|
||||
fd_count = atoi(next_term(&buf, &len));
|
||||
if (fd_count < 0) fail("invalid fd count");
|
||||
fds = Malloc(sizeof(struct fd_info) * fd_count);
|
||||
for (i = 0; i < fd_count; ++i) {
|
||||
fds[i].desired_fd = atoi(next_term(&buf, &len));
|
||||
fds[i].path = next_term(&buf, &len);
|
||||
if (fds[i].path[0]) {
|
||||
fds[i].open_mode = atoi(next_term(&buf, &len));
|
||||
fds[i].perms = atoi(next_term(&buf, &len));
|
||||
}
|
||||
}
|
||||
if (len != 0)
|
||||
fail("invalid input file");
|
||||
}
|
||||
|
||||
/* Validate the file descriptor redirection request. */
|
||||
check_duplicate_fds(fds, fd_count);
|
||||
|
||||
/* Create the control socket connection. */
|
||||
control_fd = my_connect(port, client_key, -1);
|
||||
|
||||
/* Create a socket connection or open a local file for each
|
||||
requested file descriptor redirection. */
|
||||
for (i = 0; i < fd_count; ++i) {
|
||||
if (fds[i].path[0]) {
|
||||
TRY(fds[i].orig_fd, open(fds[i].path, fds[i].open_mode, fds[i].perms));
|
||||
} else {
|
||||
fds[i].orig_fd = my_connect(port, client_key, fds[i].desired_fd);
|
||||
}
|
||||
}
|
||||
|
||||
/* Check server key */
|
||||
{
|
||||
int len = strlen(server_key);
|
||||
int read_len;
|
||||
char *buf = read_all(control_fd, len, &read_len);
|
||||
if (len != read_len || memcmp(buf, server_key, len) != 0)
|
||||
fail("server key mismatch");
|
||||
free(buf);
|
||||
}
|
||||
|
||||
/* Block SIGCHLD */
|
||||
sigprocmask(SIG_BLOCK, &my_mask, &my_old_mask);
|
||||
|
||||
/* Create the child process */
|
||||
child_pid = fork();
|
||||
if (child_pid == 0) {
|
||||
int result;
|
||||
/* Unblock SIGCHLD */
|
||||
sigprocmask(SIG_SETMASK, &my_old_mask, NULL);
|
||||
|
||||
/* Reset the SIGPIPE signal handler. */
|
||||
signal(SIGPIPE, SIG_DFL);
|
||||
|
||||
/* Close the control socket, as it isn't needed from the child. */
|
||||
close(control_fd);
|
||||
|
||||
/* Change to the specified working directory. */
|
||||
if (workdir[0] != 0) {
|
||||
if (chdir(workdir) == -1)
|
||||
failerr(workdir);
|
||||
}
|
||||
|
||||
/* Rearrange file descriptors according to the user specification */
|
||||
setup_fds(fds, fd_count);
|
||||
|
||||
/* Exec */
|
||||
TRY(result, execv(executable, my_argv));
|
||||
|
||||
} else if (child_pid == -1) {
|
||||
failerr("fork");
|
||||
} else {
|
||||
/* We are in the parent process */
|
||||
char msg;
|
||||
int count;
|
||||
|
||||
/* Install SIGCHLD handler */
|
||||
{
|
||||
struct sigaction act;
|
||||
act.sa_handler = sigchld_handler;
|
||||
sigemptyset(&act.sa_mask);
|
||||
act.sa_flags = SA_NOCLDSTOP;
|
||||
sigaction(SIGCHLD, &act, NULL);
|
||||
}
|
||||
/* Unblock SIGCHLD */
|
||||
sigprocmask(SIG_SETMASK, &my_old_mask, NULL);
|
||||
|
||||
/* Close all of the redirection file descriptors, as we don't need
|
||||
them from the parent. */
|
||||
for (i = 0; i < fd_count; ++i)
|
||||
close(fds[i].orig_fd);
|
||||
|
||||
/* Wait for a message from the server telling us to exit early. */
|
||||
TRY(count, read(control_fd, &msg, 1));
|
||||
|
||||
if (count == 0) {
|
||||
/* End of file received: exit without killing child */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Assume msg == 0 until we support more messages */
|
||||
TRY(count, kill(child_pid, SIGTERM));
|
||||
return 0;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
|
||||
component {2926dd11-4d76-4965-bcdc-4aaad70ada04} components/content-policy.js
|
||||
contract @conkeror.org/content-policy-listener;1 {2926dd11-4d76-4965-bcdc-4aaad70ada04}
|
||||
category content-policy content-policy @conkeror.org/content-policy-listener;1
|
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
(C) Copyright 2012 David Kettler
|
||||
|
||||
Use, modification, and distribution are subject to the terms specified in the
|
||||
COPYING file.
|
||||
-->
|
||||
<bindings
|
||||
xmlns="http://www.mozilla.org/xbl"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:xbl="http://www.mozilla.org/xbl">
|
||||
|
||||
<binding id="annotated-textbox"
|
||||
extends="chrome://global/content/bindings/textbox.xml#textbox">
|
||||
|
||||
<content>
|
||||
<children/>
|
||||
<xul:deck flex="1">
|
||||
<xul:hbox class="textbox-input-box" flex="1" xbl:inherits="context,spellcheck">
|
||||
<html:input class="textbox-input" flex="1" anonid="input"
|
||||
xbl:inherits="onfocus,onblur,value,type,maxlength,disabled,size,readonly,placeholder,tabindex,accesskey,noinitialfocus,mozactionhint,spellcheck"/>
|
||||
</xul:hbox>
|
||||
<xul:hbox style="overflow: hidden">
|
||||
<xul:label class="plain" anonid="strut"/>
|
||||
</xul:hbox>
|
||||
</xul:deck>
|
||||
<xul:label class="plain" anonid="annotation"
|
||||
xbl:inherits="value=annotation"
|
||||
flex="1000" crop="right" collapsed="true"/>
|
||||
</content>
|
||||
|
||||
<implementation>
|
||||
|
||||
<field name="_annotate"> false </field>
|
||||
<field name="_annot" readonly="true">
|
||||
document.getAnonymousElementByAttribute(this, "anonid", "annotation");
|
||||
</field>
|
||||
<field name="_strut" readonly="true">
|
||||
document.getAnonymousElementByAttribute(this, "anonid", "strut");
|
||||
</field>
|
||||
|
||||
<property name="annotate">
|
||||
<getter>
|
||||
return this._annotate;
|
||||
</getter>
|
||||
<setter><![CDATA[
|
||||
this._annotate = !!val;
|
||||
this.annotation = "";
|
||||
this._strut.setAttribute("value", "");
|
||||
this._annot.setAttribute("collapsed",
|
||||
this._annotate ? "false" : "true");
|
||||
return this._annotate;
|
||||
]]></setter>
|
||||
</property>
|
||||
|
||||
<property name="annotation"
|
||||
onset="this.setAttribute('annotation', val); return val;"
|
||||
onget="return this.getAttribute('annotation');"/>
|
||||
|
||||
</implementation>
|
||||
|
||||
<handlers>
|
||||
<handler event="input">
|
||||
if (this._annotate)
|
||||
this._strut.setAttribute("value", this.value);
|
||||
</handler>
|
||||
</handlers>
|
||||
|
||||
</binding>
|
||||
</bindings>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
</html>
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
(C) Copyright 2004-2007 Shawn Betts
|
||||
(C) Copyright 2007-2010 John J. Foerch
|
||||
(C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
|
||||
Use, modification, and distribution are subject to the terms specified in the
|
||||
COPYING file.
|
||||
-->
|
||||
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
||||
<?xul-overlay href="chrome://conkeror-gui/content/minibuffer.xul"?>
|
||||
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
onload="Components.classes['@conkeror.mozdev.org/application;1']
|
||||
.getService()
|
||||
.wrappedJSObject.window_initialize(this);"
|
||||
contenttitlesetting="false"
|
||||
title="Conkeror"
|
||||
id="main-window"
|
||||
width="640" height="480"
|
||||
persist="screenX screenY width height sizemode"
|
||||
windowtype="navigator:browser">
|
||||
|
||||
<stringbundleset id="stringbundleset">
|
||||
</stringbundleset>
|
||||
|
||||
<!-- put "New Window" and "Quit" items in the OS X Application Menu.
|
||||
The id's "aboutName" and "menu_FileQuitItem" are magic cookies for
|
||||
OS X XULRunner. We repurpose these as a small hack, which saves us
|
||||
from needing a lot of extra menu logic just for one OS. -->
|
||||
<menubar id="menubar" hidden="true">
|
||||
<menu label="Conkeror" hidden="true">
|
||||
<menupopup>
|
||||
<menuitem
|
||||
id="aboutName"
|
||||
label="New Window"
|
||||
hidden="true"
|
||||
oncommand="conkeror.input_handle_command.call(window, 'make-window');"/>
|
||||
<menuitem
|
||||
id="menu_FileQuitItem"
|
||||
label="Quit Conkeror"
|
||||
hidden="true"
|
||||
oncommand="conkeror.input_handle_command.call(window, 'quit');"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
</menubar>
|
||||
|
||||
<panel id="popup_autocomplete" type="autocomplete" noautofocus="true"
|
||||
onpopupshowing="conkeror.formfill_mode(true, this);"
|
||||
onpopuphiding="conkeror.formfill_mode(false, this);"/>
|
||||
|
||||
<deck flex="1" id="buffer-container"/>
|
||||
</window>
|
|
@ -0,0 +1,53 @@
|
|||
/**
|
||||
* (C) Copyright 2008 Jeremy Maitin-Shepard
|
||||
* (C) Copyright 2009 John Foerch
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
* {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
/* Hard coding these values is probably not good, but I can't figure
|
||||
out how to get them as more general system preferences. Perhaps
|
||||
someone with better CSS-fu can figure it out. */
|
||||
font-family: verdana;
|
||||
font-size: 14.1px;
|
||||
}
|
||||
|
||||
body.download-buffer {
|
||||
background-color: #bbbbbb;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
td {
|
||||
vertical-align: top;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
td.download-label {
|
||||
width: 10em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#download-percent {
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
#download-progress-container {
|
||||
width: 15em;
|
||||
height: 1em;
|
||||
border: 1px solid black;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
background-color: #cccccc;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#download-progress-bar {
|
||||
height: 100%;
|
||||
background-color: #666666;
|
||||
margin: 0px;
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
/**
|
||||
* (C) Copyright 2008 Jeremy Maitin-Shepard
|
||||
* (C) Copyright 2008 David Glasser
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
body {
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
|
||||
body.help-list {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.help-list table { border-collapse: collapse; margin: 0px; width: 100%; }
|
||||
|
||||
.help-list td {
|
||||
border: 1px solid #999;
|
||||
padding-left: .3em;
|
||||
padding-right: .3em;
|
||||
margin: 0px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.help-list tr.even { background-color: #dddddd; }
|
||||
|
||||
|
||||
.source-code-reference {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
.command {
|
||||
font-family: monospace;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.key-binding {
|
||||
font-family: monospace;
|
||||
font-weight: bold;
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
/**
|
||||
* (C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
@namespace url("http://www.w3.org/1999/xhtml");
|
||||
|
||||
span.__conkeror_hint {
|
||||
background-color: red !important;
|
||||
color: white !important;
|
||||
position: absolute !important;
|
||||
font-size: 10px !important;
|
||||
font-family: sans-serif !important;
|
||||
font-weight: bold !important;
|
||||
line-height: 10px !important;
|
||||
padding: 0px 1px 0px 0px !important;
|
||||
z-index: 10000001 !important;
|
||||
display: none;
|
||||
}
|
||||
|
||||
span.__conkeror_img_hint {
|
||||
position: absolute;
|
||||
opacity: 0.5;
|
||||
z-index: 10000000;
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
#minibuffer-input {
|
||||
-moz-binding: url("chrome://conkeror-gui/content/annotated-textbox.xml#annotated-textbox");
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
/**
|
||||
* (C) Copyright 2004-2007 Shawn Betts
|
||||
* (C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
* (C) Copyright 2008 John J. Foerch
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
#minibuffer[minibuffermode="message"] #minibuffer-prompt,
|
||||
#minibuffer[minibuffermode="message"] #minibuffer-input,
|
||||
#minibuffer[minibuffermode="input"] #minibuffer-message,
|
||||
#minibuffer[minibuffermode="input"] #minibuffer-mode-indicator {
|
||||
visibility: collapse;
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0"?>
|
||||
<!--
|
||||
(C) Copyright 2004-2007 Shawn Betts
|
||||
(C) Copyright 2007-2010 John J. Foerch
|
||||
(C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
|
||||
Use, modification, and distribution are subject to the terms specified in the
|
||||
COPYING file.
|
||||
-->
|
||||
<?xml-stylesheet href="minibuffer.css" type="text/css"?>
|
||||
<overlay
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
<window>
|
||||
<hbox id="minibuffer" minibuffermode="message">
|
||||
<label class="minibuffer" id="minibuffer-message" flex="1" crop="right" value=""/>
|
||||
<label class="minibuffer" id="minibuffer-prompt" crop="left" value=""/>
|
||||
<textbox class="plain" id="minibuffer-input" flex="1"/>
|
||||
</hbox>
|
||||
</window>
|
||||
</overlay>
|
|
@ -0,0 +1,93 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="744.09448819"
|
||||
height="1052.3622047"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
sodipodi:docname="conker.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.70710678"
|
||||
inkscape:cx="142.74183"
|
||||
inkscape:cy="363.28288"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1020"
|
||||
inkscape:window-height="678"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="86"
|
||||
inkscape:window-maximized="0">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid5056"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.86175704px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 265.34375,717.28125 c -55.84951,9.54167 -74.30144,40.23187 -70.875,65.75 7.21119,53.70465 57.23892,53.52498 114.3125,86.5 52.7202,30.4598 116.99111,6.24803 131.5625,-71.40625 0.73319,-31.35913 -17.29433,-54.9502 -49.9375,-69 13.2618,9.66173 19.93694,20.76066 21.3125,28.90625 -12.85713,16.91895 -61.7745,59.06301 -82.28125,-3.71875 -4.61466,-14.12782 -54.85714,-18.13016 -72,-17.90625 -14.38486,0.18789 -10.81285,-10.83665 7.90625,-19.125 z"
|
||||
id="path2383" />
|
||||
<path
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.99999994000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 327.18652,720.73034 C 379.35668,494.15698 531.37994,281.52185 517.22323,219.60883 473.99198,369.74394 361.0645,534.3099 327.18652,720.73034 z"
|
||||
id="path3398"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.99999994000000003px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 315.13845,868.87592 c 0.35845,32.87079 -4.21655,-118.42294 44.25242,99.78333 11.97266,20.48119 -14.64711,-107.23384 -44.25242,-99.78333 z"
|
||||
id="path3419"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="744.09448819"
|
||||
height="1052.3622047"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.47 r22583"
|
||||
sodipodi:docname="conker.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4142136"
|
||||
inkscape:cx="358.07904"
|
||||
inkscape:cy="354.88852"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1276"
|
||||
inkscape:window-height="1002"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="18"
|
||||
inkscape:window-maximized="0">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid5056"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.86175704px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 265.34375,717.28125 c -55.84951,9.54167 -74.30144,40.23187 -70.875,65.75 7.21119,53.70465 57.23892,53.52498 114.3125,86.5 52.7202,30.4598 116.99111,6.24803 131.5625,-71.40625 0.73319,-31.35913 -17.29433,-54.9502 -49.9375,-69 13.2618,9.66173 19.93694,20.76066 21.3125,28.90625 -12.85713,16.91895 -61.7745,59.06301 -82.28125,-3.71875 -4.61466,-14.12782 -54.85714,-18.13016 -72,-17.90625 -14.38486,0.18789 -10.81285,-10.83665 7.90625,-19.125 z"
|
||||
id="path2383" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,94 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="744.09448819"
|
||||
height="1052.3622047"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.3.1 r9886"
|
||||
sodipodi:docname="outline.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs4">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 526.18109 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="744.09448 : 526.18109 : 1"
|
||||
inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
|
||||
id="perspective10" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.50000001"
|
||||
inkscape:cx="142.74183"
|
||||
inkscape:cy="497.119"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1020"
|
||||
inkscape:window-height="678"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="86"
|
||||
inkscape:window-maximized="0">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid5056"
|
||||
empspacing="5"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cssccc"
|
||||
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.86175704px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 265.34375,717.28125 c -55.84951,9.54167 -74.30144,40.23187 -70.875,65.75 7.21119,53.70465 57.23892,53.52498 114.3125,86.5 52.7202,30.4598 116.99111,6.24803 131.5625,-71.40625 0.73319,-31.35913 -17.29433,-54.9502 -49.9375,-69 -37.02001,-15.71851 -85.41009,-18.28825 -125.0625,-11.84375 z"
|
||||
id="path2383" />
|
||||
<path
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 327.18652,720.73034 C 379.35668,494.15698 531.37994,281.52185 517.22323,219.60883 473.99198,369.74394 361.0645,534.3099 327.18652,720.73034 z"
|
||||
id="path3398"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
style="fill:#000000;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 315.13845,868.87592 c 0.35845,32.87079 -4.21655,-118.42294 44.25242,99.78333 11.97266,20.48119 -14.64711,-107.23384 -44.25242,-99.78333 z"
|
||||
id="path3419"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
|
@ -0,0 +1,345 @@
|
|||
#! /bin/bash
|
||||
|
||||
# (C) Copyright 2004-2007 Shawn Betts
|
||||
# (C) Copyright 2007-2008 John J. Foerch
|
||||
# (C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
#
|
||||
# Use, modification, and distribution are subject to the terms specified in the
|
||||
# COPYING file.
|
||||
|
||||
SDK_DIR="/usr/lib/xulrunner"
|
||||
|
||||
XPIDL="${SDK_DIR}/xpidl"
|
||||
XPIDL_INCLUDE="${SDK_DIR}/idl"
|
||||
|
||||
TARGET='help'
|
||||
|
||||
## ETAGSDIR
|
||||
##
|
||||
## This variable is for target `etags'. It specifies the destination
|
||||
## directory for the TAGS file.
|
||||
##
|
||||
ETAGSDIR=""
|
||||
|
||||
case "$1" in
|
||||
xulapp)
|
||||
TARGET=xulapp ;;
|
||||
dist-tar)
|
||||
TARGET=dist-tar ;;
|
||||
release)
|
||||
TARGET=release ;;
|
||||
announce)
|
||||
TARGET=announce ;;
|
||||
etags)
|
||||
TARGET=etags
|
||||
ETAGSDIR="$2"
|
||||
shift ;;
|
||||
notes)
|
||||
TARGET=notes ;;
|
||||
help|-help|--help)
|
||||
TARGET=help ;;
|
||||
*)
|
||||
echo 'bad usage. please read the source.'
|
||||
exit 1
|
||||
esac
|
||||
shift
|
||||
|
||||
|
||||
VERSION=$(grep '^Version=' application.ini | cut -d '=' -f 2)
|
||||
|
||||
|
||||
## if this is not an official release, tag on a build date.
|
||||
##
|
||||
## if this is an official release, strip the subminor.
|
||||
##
|
||||
MILESTONE="${VERSION##*.}"
|
||||
BUILD_DATE=$(date +%Y%m%d)
|
||||
SHORT_VERSION="$VERSION"
|
||||
|
||||
case "$TARGET" in
|
||||
release|announce)
|
||||
VERSION="${VERSION%.*}" ;;
|
||||
*)
|
||||
VERSION="$VERSION.$BUILD_DATE"
|
||||
esac
|
||||
echo "build target: $TARGET, $VERSION"
|
||||
|
||||
|
||||
### UTILITIES
|
||||
###
|
||||
###
|
||||
|
||||
|
||||
|
||||
## SCRATCH
|
||||
##
|
||||
## Temporary directory for build process.
|
||||
##
|
||||
SCRATCH=""
|
||||
|
||||
function get_scratch () {
|
||||
if [[ -z "$SCRATCH" ]]; then
|
||||
SCRATCH=$(mktemp -d conkeror-XXXXXX)
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function do_cleanup () {
|
||||
if [[ -n "$SCRATCH" ]]; then
|
||||
rm -r "$SCRATCH"
|
||||
SCRATCH=""
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function assert_conkeror_src () {
|
||||
if [[ ! -e application.ini ]]; then
|
||||
echo "The current directory does not appear to contain the Conkeror source code."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function copy_tree_sans_boring () {
|
||||
src="$1"
|
||||
dest="$2"
|
||||
mkdir -p "$dest"
|
||||
O=$IFS
|
||||
IFS=$'\n'
|
||||
( cd "$src"; find . -type d -and \! -name '*[~#]' -print0 ) \
|
||||
| ( cd "$dest"; xargs -0 mkdir -p )
|
||||
files=($( cd "$src"; find . -type f -and \! -name '*[~#]' -print ))
|
||||
for file in "${files[@]}" ; do cp "$src/$file" "$dest/$file" ; done
|
||||
IFS=$O
|
||||
}
|
||||
|
||||
|
||||
|
||||
function do_check_milestone_for_release ()
|
||||
{
|
||||
if [[ "$MILESTONE" = "0" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
dest=VERSION
|
||||
proposed="${VERSION%.*}".$(( ${VERSION#*.} + 1 )).0
|
||||
|
||||
echo "The version given in the file $dest does not have 0 as its last component."
|
||||
echo -n "Shall I rewrite \`VERSION=$VERSION.$MILESTONE' to \`VERSION=$proposed'? [yN] "
|
||||
read
|
||||
if [[ "$REPLY" = [Yy]* ]]; then
|
||||
perl -pi -e 's/^VERSION='$VERSION'\.'$MILESTONE'$/VERSION='$proposed'/' "$dest"
|
||||
echo "Version changed in $dest. Please run this build program again."
|
||||
exit
|
||||
else
|
||||
echo "Leaving $dest untouched. Continuing with build."
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
function diff_wrapper () {
|
||||
scratch="$1"
|
||||
dest="$2"
|
||||
perlexp="$3"
|
||||
|
||||
scratchfile="${scratch}/$dest"
|
||||
patchfile="${scratch}/$dest.patch"
|
||||
|
||||
echo -n "Processing $dest ..."
|
||||
perl -0777 -p -e "$perlexp" "$dest" > "$scratchfile"
|
||||
echo ok
|
||||
|
||||
if cmp "$dest" "$scratchfile" ; then
|
||||
echo "$dest does not need to be updated"
|
||||
else
|
||||
diff -u "$dest" "$scratchfile" | tee "$patchfile"
|
||||
echo -n "Apply this patch to $dest? [yN] "
|
||||
read
|
||||
if [[ "$REPLY" = [Yy]* ]]; then
|
||||
patch < "$patchfile"
|
||||
else
|
||||
echo "Leaving $dest untouched"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### TARGETS
|
||||
###
|
||||
###
|
||||
|
||||
function do_target_xulapp () {
|
||||
echo -n Building XULRunner Application...
|
||||
|
||||
#build the conkeror-spawn-helper
|
||||
make
|
||||
|
||||
get_scratch
|
||||
mkdir -p "$SCRATCH/chrome"
|
||||
cp application.ini "$SCRATCH"
|
||||
if [ -n "$CONKEROR_APP_NAME" ]; then
|
||||
sed -i -e "s/Name=conkeror/Name=${CONKEROR_APP_NAME}/" "${SCRATCH}/application.ini"
|
||||
fi
|
||||
for x in branding chrome components content defaults locale modules search-engines help style; do
|
||||
copy_tree_sans_boring "$x" "$SCRATCH/$x"
|
||||
done
|
||||
cp conkeror-spawn-helper "${SCRATCH}"
|
||||
if [ -d idl ]; then
|
||||
for x in idl/*; do
|
||||
name="$(basename "$x")"
|
||||
"${XPIDL}" -w -v -m typelib -I "${XPIDL_INCLUDE}" -e "$SCRATCH/components/${name%.idl}.xpt" "$x"
|
||||
done
|
||||
fi
|
||||
BUILD_ID=$(git rev-parse HEAD 2> /dev/null)
|
||||
if [ "$?" != 0 ]; then
|
||||
BUILD_ID="git"
|
||||
fi
|
||||
pushd "$SCRATCH" > /dev/null
|
||||
## begin preprocessing
|
||||
##
|
||||
perl -pi -e 's/BuildID=git/BuildID='${BUILD_ID}'/g' application.ini
|
||||
##
|
||||
## end preprocessing
|
||||
zip -r ../conkeror.xulapp * > /dev/null
|
||||
popd > /dev/null
|
||||
do_cleanup
|
||||
echo ok
|
||||
}
|
||||
|
||||
|
||||
function do_target_dist_tar () {
|
||||
do_target_xulapp
|
||||
get_scratch
|
||||
## now we have conkeror.xulapp
|
||||
## package it with install.sh
|
||||
##
|
||||
## some other files should probably go in here.. NEWS, for example
|
||||
mkdir "$SCRATCH/conkeror-$VERSION"
|
||||
mv conkeror.xulapp "$SCRATCH/conkeror-$VERSION/"
|
||||
cp install.sh "$SCRATCH/conkeror-$VERSION/"
|
||||
pushd "$SCRATCH" > /dev/null
|
||||
tar c conkeror-$VERSION | gzip > conkeror-$VERSION.tar.gz
|
||||
popd > /dev/null
|
||||
mv "$SCRATCH/conkeror-$VERSION.tar.gz" .
|
||||
echo -n "Making conkeror-$VERSION.tar.gz ..."
|
||||
do_cleanup
|
||||
echo ok
|
||||
}
|
||||
|
||||
|
||||
function do_target_release () {
|
||||
do_check_milestone_for_release
|
||||
## Make any and all release archives.
|
||||
##
|
||||
## Right now, we just make a tar.gz archive that includes an install
|
||||
## script. In the future, we could consider making an OSX App, a Windows
|
||||
## Installer EXE, and a Mozilla XPI Installer.
|
||||
##
|
||||
do_target_dist_tar
|
||||
echo -n Putting conkeror-$VERSION.tar.gz in downloads directory ...
|
||||
mv conkeror-$VERSION.tar.gz ../downloads
|
||||
echo ok
|
||||
}
|
||||
|
||||
|
||||
function do_target_announce () {
|
||||
do_check_milestone_for_release
|
||||
echo Entering ../www/ ... ok
|
||||
pushd ../www/ > /dev/null
|
||||
scratch=$(mktemp -d conkeror-XXXXXX)
|
||||
|
||||
perlexp='s/(?<=<!--\scontrolled\scontent\sinsertion\spoint::whatsnew\s-->\n) ()(?!.*'$VERSION'.*$)/<li>'$VERSION' released! \('"$(date '+%b %d, %Y')"'\)<\/li>\n/mxg'
|
||||
diff_wrapper "$scratch" index.html "$perlexp"
|
||||
|
||||
perlexp='s/(?<=<!-- begin controlled content. do not edit manually. id:newestlink -->).*?(?=<!-- end controlled content. -->)/<a href="http:\/\/downloads.mozdev.org\/conkeror\/conkeror-'$VERSION'.tar.gz">conkeror-'$VERSION'.tar.gz<\/a>/g'
|
||||
diff_wrapper "$scratch" installation.html "$perlexp"
|
||||
|
||||
rm -r "$scratch"
|
||||
popd > /dev/null
|
||||
}
|
||||
|
||||
|
||||
function do_target_etags () {
|
||||
if [[ -z "$ETAGSDIR" ]]; then
|
||||
ETAGSDIR=.
|
||||
fi
|
||||
ETAGSDIR="${ETAGSDIR%/}/TAGS"
|
||||
echo -n "Building $ETAGSDIR ..."
|
||||
etags -o "$ETAGSDIR" $(find -name \*.js -and \! -name '*[~#]*')
|
||||
echo ok
|
||||
}
|
||||
|
||||
|
||||
function do_target_notes () {
|
||||
FILES=($(find conkeror -name \*.js))
|
||||
for file in "${FILES[@]}"; do
|
||||
fileo="${file//\//\/}"
|
||||
perl -0777 -ne 's/## BLOCK COMMENTS
|
||||
(.*\/\*\s*[A-Z][A-Z].*:.*$
|
||||
(\n.*$)*?
|
||||
(\n.*\*\/)
|
||||
(?{ $p = pos(); })) |
|
||||
## LINE COMMENTS
|
||||
(.*\/\/\s*[A-Z][A-Z].*:.*$
|
||||
((\n.*\/\/.*$)*)
|
||||
(?{ $p = pos(); }))
|
||||
/print "'$fileo':$p\n" . $& . "\n\n"/mexg' < "$file"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
function do_target_help () {
|
||||
echo "For this script to work, your current working directory must"
|
||||
echo "be \`<CONKEROR>/src' where <CONKEROR> is the project root."
|
||||
echo "This script expects to find the subdirectory structure,"
|
||||
echo "\`conkeror/content', and VERSION in the current directory,"
|
||||
echo "\`downloads' and \`www' in the parent directory, and possibly"
|
||||
echo "other files."
|
||||
echo
|
||||
echo 'Usage: bash build.sh <TARGET>'
|
||||
echo 'where <TARGET> is one of:'
|
||||
echo
|
||||
echo ' xulapp'
|
||||
echo
|
||||
echo ' dist-tar'
|
||||
echo
|
||||
echo ' release Builds a release xpi and puts it in ../downloads.'
|
||||
echo
|
||||
echo ' announce Modify the website in ../www to announce a release.'
|
||||
echo
|
||||
echo ' etags [DIR] Build TAGS file in etags format. If a'
|
||||
echo ' directory is given, TAGS will be made in'
|
||||
echo ' that directory.'
|
||||
echo
|
||||
echo ' notes Shows specially formatted comments in'
|
||||
echo " \`conkeror/content/*.js' Modifies no files."
|
||||
echo
|
||||
echo ' help Shows this help message. Modifies no files.'
|
||||
echo
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
### MAIN
|
||||
###
|
||||
###
|
||||
|
||||
assert_conkeror_src
|
||||
|
||||
case "$TARGET" in
|
||||
xulapp) do_target_xulapp ;;
|
||||
dist-tar) do_target_dist_tar ;;
|
||||
release) do_target_release ;;
|
||||
announce) do_target_announce ;;
|
||||
etags) do_target_etags ;;
|
||||
notes) do_target_notes ;;
|
||||
help) do_target_help ;;
|
||||
esac
|
||||
|
||||
do_cleanup
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
// the default page for new buffers.
|
||||
homepage = "about:blank";
|
||||
|
||||
|
||||
// load urls from the command line in new buffers instead
|
||||
// of new windows.
|
||||
url_remoting_fn = load_url_in_new_buffer;
|
||||
|
||||
|
||||
// load download buffers in the background in the current
|
||||
// window, instead of in new windows.
|
||||
download_buffer_automatic_open_target = OPEN_NEW_BUFFER_BACKGROUND;
|
||||
|
||||
|
||||
// save a keystroke when selecting a dom node by number.
|
||||
hints_auto_exit_delay = 500;
|
||||
hints_ambiguous_auto_exit_delay = 500;
|
||||
|
||||
|
||||
// default directory for downloads and shell commands.
|
||||
cwd = get_home_directory();
|
||||
cwd.append("downloads");
|
||||
|
||||
|
||||
// automatically handle some mime types internally.
|
||||
content_handlers.set("application/pdf", content_handler_save);
|
||||
|
||||
|
||||
// external programs for handling various mime types.
|
||||
external_content_handlers.set("application/pdf", "xpdf");
|
||||
external_content_handlers.set("video/*", "urxvtc -e mplayer");
|
||||
|
||||
|
||||
// use vi as external editor.
|
||||
editor_shell_command = "urxvt -e vi";
|
||||
|
||||
|
||||
// view source in your editor.
|
||||
view_source_use_external_editor = true;
|
||||
|
||||
|
||||
// let xkcd-mode put the funny alt text into the page.
|
||||
xkcd_add_title = true;
|
|
@ -0,0 +1,234 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Script for nightly builds of conkeror .debs
|
||||
#
|
||||
# Inspired by an idea of Nicholas A. Zigarovich <nick@servo.cc>
|
||||
# Code by Axel Beckert <abe@deuxchevaux.org>
|
||||
#
|
||||
# Copyright (C) 2009-2011 Axel Beckert <abe@deuxchevaux.org>
|
||||
#
|
||||
# Needs the following Debian packages and their dependencies installed
|
||||
# (besides "required" packages like coreutils and conkeror build
|
||||
# dependencies) to work: devscripts, git-core
|
||||
#
|
||||
# If you want to use all features of this script, you need also the
|
||||
# following packages: gnupg, openssh-client, dctrl-tools, gzip, bzip2
|
||||
#
|
||||
# And on the machine hosting the APT repository, you'll need the
|
||||
# package reprepro. Configure all distributions with "AlsoAcceptFor:
|
||||
# UNRELEASED experimental unstable sid".
|
||||
#
|
||||
# If you do only binary rebuilds for other architectures, you do _not_
|
||||
# need to have the nightly builds APT repository in your
|
||||
# /etc/apt/sources.list since we fetch the Sources list manually,
|
||||
# parse it with grep-dctrl and fetch the source package with dget.
|
||||
|
||||
#
|
||||
# How to use:
|
||||
#
|
||||
# Create the file ~/.conkeror-nightlybuildrc and write at least two
|
||||
# lines like the following into it:
|
||||
#
|
||||
# WORKDIR=/path/to/the/directory/where/the/builds/should/happen
|
||||
# CONTACT=you@example.com
|
||||
#
|
||||
# Example ~/.conkeror-nightlybuildrc similar to the one used for the
|
||||
# initial builds on http://noone.org/conkeror-nightly-debs/:
|
||||
#
|
||||
# # -*- sh -*-
|
||||
# WORKDIR=$HOME/conkeror.nightly
|
||||
# CONTACT=abe+conkeror-nightly@noone.org
|
||||
# SIGNKEY=373B76B4
|
||||
# UPLOAD=yes
|
||||
# UPLOAD_SSH_KEY=~/.ssh/id_rsa.conkeror-nightly
|
||||
# UPLOAD_SSH_HOST=noone.org
|
||||
# UPLOAD_SSH_USER=abe
|
||||
# UPLOAD_SSH_DIR=http/htdocs/conkeror-nightly
|
||||
# USE_REPREPRO=yes
|
||||
#
|
||||
# Example ~/.conkeror-nightlybuildrc similar to the one used for
|
||||
# binary-only builds of conkeror-spawn-process-helper on
|
||||
# http://noone.org/conkeror-nightly-debs/:
|
||||
#
|
||||
# # -*- sh -*-
|
||||
# WORKDIR=$HOME/conkeror.nightly
|
||||
# CONTACT=abe+conkeror-nightly@noone.org
|
||||
# SIGNKEY=373B76B4
|
||||
# UPLOAD=yes
|
||||
# UPLOAD_SSH_KEY=~/.ssh/id_rsa.conkeror-nightly
|
||||
# UPLOAD_SSH_HOST=noone.org
|
||||
# UPLOAD_SSH_USER=abe
|
||||
# UPLOAD_SSH_DIR=http/htdocs/conkeror-nightly
|
||||
# USE_REPREPRO=yes
|
||||
# REPREPRO_DISTS="lenny squeeze sid"
|
||||
# BINARY_ONLY_BUILD=yes
|
||||
# SOURCES_LIST_URL=http://noone.org/conkeror-nightly-debs/dists/lenny/main/source/Sources.gz
|
||||
#
|
||||
# I think the remaining variable names are quite self-explaining. If
|
||||
# not, look at this script's source code (you're doing that already
|
||||
# ;-) and see where they're used. It's not too hard, the script is
|
||||
# fairly small and straight forward. ;-)
|
||||
|
||||
# Bail out on any error.
|
||||
set -e
|
||||
|
||||
# Check for the the config file and read it
|
||||
RCFILE=$HOME/.conkeror-nightlybuildrc
|
||||
if [ ! -s $RCFILE ]; then
|
||||
echo "$RCFILE does not exist or is empty"
|
||||
exit 1
|
||||
fi
|
||||
. $RCFILE
|
||||
|
||||
# Check if a working directory is defined. Bail out if not.
|
||||
if [ -z "$WORKDIR" ]; then
|
||||
echo '$WORKDIR must be defined in '$RCFILE
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# Check if a contact is defined. Set a dummy value if not.
|
||||
if [ -z "$CONTACT" ]; then
|
||||
CONTACT=package-builder-has-not-set-contact-address@example.com
|
||||
fi
|
||||
|
||||
# Check if $WORKDIR exists, otherwise create it.
|
||||
if [ ! -d "$WORKDIR" ]; then
|
||||
mkdir -p "$WORKDIR"
|
||||
fi
|
||||
|
||||
# Define places and version number
|
||||
MASTERDIR=$WORKDIR/MASTER
|
||||
BUILDDIR=$WORKDIR/BUILD
|
||||
DATE=`date -R`
|
||||
ZULUTIME=`date -u +%y%m%d%H%M`
|
||||
|
||||
# Create build dir
|
||||
mkdir -p $BUILDDIR
|
||||
|
||||
# Remove old builds
|
||||
rm -rf $BUILDDIR/*
|
||||
|
||||
# If we just rebuild a nightly snapshot for a new architecture, we
|
||||
# fetch the list of source packages, extract the file name of the
|
||||
# conkeror package out of it and download the appropriate conkeror
|
||||
# source package with dget.
|
||||
if [ "$BINARY_ONLY_BUILD" = "yes" ]; then
|
||||
SOURCESTMP=`mktemp`
|
||||
|
||||
# Download Sources file
|
||||
SOURCEENC="${SOURCES_LIST_URL##*.}"
|
||||
if [ -n "$SOURCEENC" ]; then
|
||||
SOURCESTMPENC=`mktemp`
|
||||
wget -O $SOURCESTMPENC "$SOURCES_LIST_URL";
|
||||
if [ "$SOURCEENC" = "gz" ]; then
|
||||
zcat $SOURCESTMPENC > $SOURCESTMP
|
||||
elif [ "$SOURCEENC" = "bz2" ]; then
|
||||
bzcat $SOURCESTMPENC > $SOURCESTMP
|
||||
else
|
||||
echo Unsupported suffix $SOURCEENC in "$SOURCES_LIST_URL" 1>&2
|
||||
exit 1;
|
||||
fi
|
||||
rm -vf $SOURCESTMPENC
|
||||
else
|
||||
wget -O $SOURCESTMP "$SOURCES_LIST_URL";
|
||||
fi
|
||||
|
||||
# Find package in Sources file
|
||||
INFOTMP=`mktemp`
|
||||
grep-dctrl -S conkeror $SOURCESTMP | sort-dctrl -k Version:v - | \
|
||||
grep-dctrl -s Checksums-Sha256,Directory conkeror - > $INFOTMP
|
||||
rm -vf $SOURCESTMP
|
||||
|
||||
# Calculate source package URL
|
||||
BASE_URL="`echo \"$SOURCES_LIST_URL\" | sed -e 's:/dists/.*$::'`"
|
||||
POOL_DIR="`grep '^Directory:' $INFOTMP | awk '{print $2}'`"
|
||||
DSC="${BASE_URL}/${POOL_DIR}/`grep '\.dsc$' $INFOTMP | awk '{print $3}'`"
|
||||
|
||||
# Download source package
|
||||
cd "$BUILDDIR"
|
||||
dget -u "$DSC"
|
||||
|
||||
# Determine the correct version
|
||||
RELEASE="`gpg < \"${DSC##*/}\" 2>&1 | grep-dctrl -s Version conkeror - | \
|
||||
awk '{print $2}'`"
|
||||
VERSION="`echo \"$RELEASE\" | sed -e 's/-.*$//'`"
|
||||
DATEDIR="$BUILDDIR/conkeror-$VERSION"
|
||||
|
||||
WHATTOBUILD=-B
|
||||
else
|
||||
# Check if MASTER directory exists, if not, create it (untested code!)
|
||||
cd $WORKDIR
|
||||
if [ ! -d $MASTERDIR ]; then
|
||||
git clone git://repo.or.cz/conkeror.git $MASTERDIR
|
||||
fi
|
||||
|
||||
# Set the right options for debuild (signed vs unsigned packages)
|
||||
DEBUILDOPTIONS='-uc -us'
|
||||
if [ ! -z "$SIGNKEY" ]; then
|
||||
DEBUILDOPTIONS="-k$SIGNKEY"
|
||||
fi
|
||||
|
||||
# Update master copy
|
||||
cd $MASTERDIR
|
||||
git pull
|
||||
git gc
|
||||
|
||||
# Determine the correct version
|
||||
VERSION=`grep ^Version= $MASTERDIR/application.ini | \
|
||||
sed -e 's/^Version=//;s/\(pre\)/~~\1/;s/\(rc\|b\|a\)/~\1/'`+git$ZULUTIME
|
||||
RELEASE="$VERSION-~nightly1"
|
||||
DATEDIR="$BUILDDIR/conkeror-$VERSION"
|
||||
|
||||
# Copy tree into build environment
|
||||
cp -priv $MASTERDIR $DATEDIR
|
||||
|
||||
# Build orig.tar.gz
|
||||
cd $BUILDDIR
|
||||
tar cvzf conkeror_$VERSION.orig.tar.gz --exclude=.git conkeror-$VERSION
|
||||
|
||||
# Add an appropriate changelog entry
|
||||
cd $DATEDIR/debian
|
||||
mv changelog changelog.tmp
|
||||
|
||||
echo "conkeror ($RELEASE) UNRELEASED; urgency=low
|
||||
|
||||
* Automatically built package based on the state of
|
||||
http://repo.or.cz/w/conkeror.git at $DATE
|
||||
|
||||
-- Conkeror Nightly Build <$CONTACT> $DATE
|
||||
" > changelog
|
||||
cat changelog.tmp >> changelog
|
||||
rm changelog.tmp
|
||||
fi
|
||||
|
||||
# Set the right options for debuild (signed vs unsigned packages)
|
||||
DEBUILDOPTIONS='-uc -us'
|
||||
if [ ! -z "$SIGNKEY" ]; then
|
||||
DEBUILDOPTIONS="-k$SIGNKEY"
|
||||
fi
|
||||
|
||||
# Build the package
|
||||
cd $DATEDIR
|
||||
debuild $DEBUILDOPTIONS $WHATTOBUILD -i'(?:^|/).*~$|(?:^|/)\.#.*$|(?:^|/)\..*\.swp$|(?:^|/),,.*(?:$|/.*$)|(?:^|/)(?:DEADJOE|\.cvsignore|\.arch-inventory|\.bzrignore|\.gitignore|\.hgignore)$|(?:^|/)(?:CVS|RCS|\.deps|\{arch\}|\.arch-ids|\.svn|\.hg|_darcs|\.git|\.shelf|_MTN|\.bzr(?:\.backup|tags)|update\.sh)(?:$|/.*$)'
|
||||
|
||||
# Upload the files
|
||||
cd ..
|
||||
|
||||
if [ "$UPLOAD" = "yes" ]; then
|
||||
if [ "$BINARY_ONLY_BUILD" = "yes" ]; then
|
||||
scp -i $UPLOAD_SSH_KEY -p *build *deb *changes \
|
||||
$UPLOAD_SSH_USER@$UPLOAD_SSH_HOST:$UPLOAD_SSH_DIR
|
||||
if [ "$USE_REPREPRO" = "yes" ]; then
|
||||
ssh -i $UPLOAD_SSH_KEY $UPLOAD_SSH_USER@$UPLOAD_SSH_HOST \
|
||||
"cd $UPLOAD_SSH_DIR; for i in $REPREPRO_DISTS; do reprepro -v includedeb" '$i' *.deb "; done"
|
||||
fi
|
||||
else
|
||||
scp -i $UPLOAD_SSH_KEY -p *build *deb *changes *dsc *gz \
|
||||
$UPLOAD_SSH_USER@$UPLOAD_SSH_HOST:$UPLOAD_SSH_DIR
|
||||
|
||||
if [ "$USE_REPREPRO" = "yes" ]; then
|
||||
ssh -i $UPLOAD_SSH_KEY $UPLOAD_SSH_USER@$UPLOAD_SSH_HOST \
|
||||
"cd $UPLOAD_SSH_DIR; for i in $REPREPRO_DISTS; do reprepro -v include" '$i' *.changes "; done"
|
||||
fi
|
||||
fi
|
||||
fi
|
|
@ -0,0 +1,65 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Script to prepare Debian packages of conkeror including the creation
|
||||
# of the so called source package. Do not move away from its current
|
||||
# location -- it depends on it.
|
||||
#
|
||||
# It accepts one optional parameter: an upstream version number,
|
||||
# e.g. "0.9.1". If a parameter is given, no date based snapshot
|
||||
# version number is generated.
|
||||
#
|
||||
# Copyright (C) 2008-2009, 2012 Axel Beckert <abe@deuxchevaux.org>
|
||||
|
||||
# Find the full path of the current packaging directory and cd to it
|
||||
currdir=`dirname $0`/../..
|
||||
cd $currdir
|
||||
olddir=$(basename $(pwd -P))
|
||||
echo currdir=$currdir olddir=$olddir
|
||||
|
||||
# Unapply all patches if there are any
|
||||
quilt pop -a
|
||||
|
||||
# Update the code from the git repository
|
||||
git fetch
|
||||
|
||||
# Display the changes and ask if we should continue
|
||||
git log HEAD..origin
|
||||
echo -n "Hit enter to continue and merge changes or hit Ctrl-C to abort."
|
||||
read line
|
||||
|
||||
# Merge in the fetched changes
|
||||
git rebase origin/master
|
||||
|
||||
# Rename the packaging directory to reflect the new version number
|
||||
if [ -n "$1" ]; then
|
||||
version="$1"
|
||||
else
|
||||
version=`grep ^Version= application.ini | \
|
||||
sed -e 's/^Version=//;
|
||||
s/\([0-9]\)pre/\1~~pre/;
|
||||
s/\([0-9]\)\([ab][0-9]\|rc\|beta\|alpha\)/\1~\2/' \
|
||||
`+git`date +%y%m%d`
|
||||
fi
|
||||
echo -n "Hit enter to rename directory from $olddir to conkeror-$version
|
||||
and generate source tar ball or hit Ctrl-C to abort."
|
||||
read line
|
||||
|
||||
# Clean up before renaming
|
||||
rm -f spawn-process-helper conkeror-spawn-helper
|
||||
make clean
|
||||
|
||||
# Do the rename
|
||||
cd ..
|
||||
mv -vi $olddir conkeror-$version
|
||||
|
||||
# Create source package out of the git working copy
|
||||
tar cvzf conkeror_$version.orig.tar.gz \
|
||||
--exclude=conkeror-$version/debian \
|
||||
--exclude=.git \
|
||||
--exclude=.gitignore \
|
||||
--exclude=.pc \
|
||||
--exclude=configure-stamp \
|
||||
conkeror-$version
|
||||
|
||||
# Change back to the packaging directory
|
||||
cd conkeror-$version
|
|
@ -0,0 +1,95 @@
|
|||
#! /bin/bash
|
||||
|
||||
# (C) Copyright 2004-2007 Shawn Betts
|
||||
# (C) Copyright 2007 John J. Foerch
|
||||
#
|
||||
# Use, modification, and distribution are subject to the terms specified in the
|
||||
# COPYING file.
|
||||
|
||||
## BUILD
|
||||
##
|
||||
## Whether to build the xulapp. This is just a shortcut for developers and hackers.
|
||||
##
|
||||
BUILD=""
|
||||
|
||||
|
||||
## PREFIX
|
||||
##
|
||||
## Install prefix. Conkeror will be installed to $PREFIX/lib/conkeror and a
|
||||
## symlink to the stub binary will be placed in $PREFIX/bin/conkeror
|
||||
##
|
||||
PREFIX=${PREFIX:-/usr/local}
|
||||
|
||||
while [[ "$1" = -* ]]; do
|
||||
case "$1" in
|
||||
-build) BUILD=1 ;;
|
||||
-prefix) PREFIX="${2%/}" ; shift ;;
|
||||
*)
|
||||
echo "Unrecognized option. Please read the source."
|
||||
exit 1
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
function assert () {
|
||||
"$@"
|
||||
if [[ $? != 0 ]]; then
|
||||
echo fail
|
||||
echo command failed: "$@"
|
||||
exit 1
|
||||
else
|
||||
echo ok
|
||||
fi
|
||||
}
|
||||
|
||||
function assert_conkeror_src () {
|
||||
if [[ ! -e build.sh ]]; then
|
||||
echo "The current directory does not appear to contain the Conkeror source code."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
if [[ -n "$BUILD" ]]; then
|
||||
## -build has been requested.
|
||||
## assert we are in the conkeror source directory
|
||||
assert_conkeror_src
|
||||
bash build.sh xulapp
|
||||
fi
|
||||
|
||||
### conkeror.xulapp should be in the current directory
|
||||
if [[ ! -e conkeror.xulapp ]]; then
|
||||
echo "conkeror.xulapp not found. install cannot continue."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
### conkeror-spawn-helper should be in the current directory
|
||||
if [[ ! -e conkeror-spawn-helper ]]; then
|
||||
echo " conkeror-spawn-helper not found. install cannot continue."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo -n "Installing conkeror to $PREFIX/lib/conkeror ..."
|
||||
assert xulrunner --install-app conkeror.xulapp "$PREFIX/lib/"
|
||||
|
||||
echo -n "Installing conkeror-spawn-helper to $PREFIX/lib/conkeror ..."
|
||||
cp conkeror-spawn-helper $PREFIX/lib/conkeror/
|
||||
echo ok
|
||||
|
||||
|
||||
if [[ -e "$PREFIX/bin/conkeror" ]]; then
|
||||
rm "$PREFIX/bin/conkeror"
|
||||
fi
|
||||
echo -n "Creating symlink to stub binary in $PREFIX/bin ..."
|
||||
pushd "$PREFIX/bin" > /dev/null
|
||||
ln -s ../lib/conkeror/conkeror conkeror
|
||||
popd > /dev/null
|
||||
echo ok
|
||||
|
||||
echo "Done. If you get an error that the correct GRE version"
|
||||
echo "cannot be found, try one of the following commands:"
|
||||
echo "for system-wide install: xulrunner --register-global"
|
||||
echo "for single-user install: xulrunner --register-user"
|
|
@ -0,0 +1,30 @@
|
|||
#! /bin/sh
|
||||
|
||||
# (C) Copyright 2010 John J. Foerch
|
||||
#
|
||||
# Use, modification, and distribution are subject to the terms specified in the
|
||||
# COPYING file.
|
||||
|
||||
# This program lists the versions of XULRunner registered on the system, their
|
||||
# installation path, and whether they exist.
|
||||
|
||||
versions=$(grep -h '^\[' "$HOME"/.gre.d/*.conf /etc/gre.d/*.conf 2>/dev/null | sort -u)
|
||||
for version in ${versions}; do
|
||||
xrdir=$(grep -Fxh -A2 -m1 "$version" "$HOME"/.gre.d/*.conf /etc/gre.d/*.conf 2>/dev/null |\
|
||||
grep GRE_PATH |\
|
||||
cut -d= -f2)
|
||||
xulrunner="${xrdir%/}/xulrunner"
|
||||
if [ -x "$xulrunner" ]; then
|
||||
printf " "
|
||||
else
|
||||
printf "?"
|
||||
missing=1
|
||||
fi
|
||||
printf " $version\t$xrdir\n"
|
||||
done
|
||||
|
||||
if [ -n "$missing" ]; then
|
||||
echo
|
||||
echo "XULRunner versions marked with a ? are registered but not installed."
|
||||
echo "They can be safely cleaned out of /etc/gre.d/ and ~/.gre.d/."
|
||||
fi
|
|
@ -0,0 +1,96 @@
|
|||
.\" This man page was created following the guidelines in GROFF_MDOC(7).
|
||||
.Dd $Mdocdate: Novermber 3, 2013 $
|
||||
.Dt CONKEROR 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm Conkeror
|
||||
.Nd a keyboard-oriented, highly-customizable web browser
|
||||
.Sh SYNOPSIS
|
||||
.Nm conkeror
|
||||
.Op Ar options ...
|
||||
.Op Ar url
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
is a keyboard-oriented, highly-customizable, highly-extensible web browser based
|
||||
on Mozilla XULRunner, written mainly in JavaScript, and inspired by Emacs and
|
||||
vi.
|
||||
.Nm
|
||||
features a sophisticated keyboard system, allowing users to run
|
||||
commands and interact with content in powerful and novel ways. It is
|
||||
self-documenting, featuring a powerful interactive help system.
|
||||
.Pp
|
||||
The primary documentation is the inline manual. To read the manual use the key
|
||||
combination C-h i (CTRL-h i). The manual includes a tutorial for new users that
|
||||
can be accessed directly with C-h t (CTRL-h t). The
|
||||
.Nm
|
||||
wiki, found at
|
||||
http://conkeror.org/, is another resource.
|
||||
.Sh OPTIONS
|
||||
.Nm
|
||||
has the same options as all other XULRunner applications plus a few more.
|
||||
.Pp
|
||||
X11 options
|
||||
.Bl -tag -width indent
|
||||
.It \fB\-\-display=DISPLAY\fR
|
||||
X display to use
|
||||
.It \fB\-\-sync\fR
|
||||
Make X calls synchronous
|
||||
.It \fB\-\-g\-fatal\-warnings\fR
|
||||
Make all warnings fatal
|
||||
.El
|
||||
.Bl -tag -width indent
|
||||
.Pp
|
||||
.Nm
|
||||
options
|
||||
.It \fB\-h\fR or \fB\-help\fR
|
||||
Print this message
|
||||
.It \fB\-v\fR or \fB\-version\fR
|
||||
Print conkeror version
|
||||
.It \fB\-P <profile>\fR
|
||||
Start with <profile>
|
||||
.It \fB\-migration\fR
|
||||
Start with migration wizard
|
||||
.It \fB\-ProfileManager\fR
|
||||
Start with ProfileManager
|
||||
.It \fB\-no\-remote\fR
|
||||
Do not accept or send remote commands; implies \-new\-instance
|
||||
.It \fB\-new\-instance\fR
|
||||
Open new instance, not a new window in running instance
|
||||
.It \fB\-UILocale <locale>\fR
|
||||
Start with <locale> resources as UI Locale
|
||||
.It \fB\-safe\-mode\fR
|
||||
Disables extensions and themes for this session
|
||||
.It \fB\-jsconsole\fR
|
||||
Open the Error console
|
||||
.It \fB-recording <file>\fR
|
||||
Record drawing for a given URL
|
||||
.It \fB\-recording\-output <file>\fR
|
||||
Specify destination file for a drawing recording
|
||||
.El
|
||||
.Sh KNOWN BUGS
|
||||
See http://bugs.conkeror.org/.
|
||||
.Sh FILES
|
||||
The default location of the user configuration file is \fI$HOME/.conkerorrc\fP.
|
||||
.Pp
|
||||
This can be changed by setting the preference \fBconkeror.rcfile\fP. The rc can
|
||||
be an ordinary file or a directory. If it is an ordinary file,
|
||||
.Nm
|
||||
will evaluate that file as javascript. If it is a directory,
|
||||
.Nm
|
||||
will evaluate all files in that directory that have the \fI.js\fP file
|
||||
extension. See \fIhttp://conkeror.org/ConkerorRC\fP for the details.
|
||||
.Sh SEE ALSO
|
||||
The
|
||||
.Nm
|
||||
manual (C-h i), tutorial (C-h t) and wiki (http://conkeror.org/).
|
||||
.Sh AUTHORS
|
||||
.Nm
|
||||
was written by Shawn Betts, John J. Foerch, Jeremy Maitin-Shepard and
|
||||
others. See the \fBCREDITS\fP file included with
|
||||
.Nm
|
||||
for a full list of contributors.
|
||||
.Pp
|
||||
The
|
||||
.Nm
|
||||
manual page was originally written by Axel Beckert <abe@deuxchevaux.org>
|
||||
and updated by Joseph Mingrone <jrm@ftfl.ca>.
|
|
@ -0,0 +1,19 @@
|
|||
#! /bin/bash
|
||||
|
||||
# (C) Copyright 2007 John J. Foerch
|
||||
#
|
||||
# Use, modification, and distribution are subject to the terms specified in the
|
||||
# COPYING file.
|
||||
|
||||
function do_target_etags () {
|
||||
ETAGSDIR="$1"
|
||||
if [[ -z "$ETAGSDIR" ]]; then
|
||||
ETAGSDIR=.
|
||||
fi
|
||||
ETAGSDIR="${ETAGSDIR%/}/TAGS"
|
||||
echo -n "Building $ETAGSDIR ..."
|
||||
etags -o "$ETAGSDIR" $(find -name \*.js -and \! -name '*[~#]*')
|
||||
echo ok
|
||||
}
|
||||
|
||||
do_target_etags "$1"
|
|
@ -0,0 +1,92 @@
|
|||
/**
|
||||
* (C) Copyright 2009 David Kettler
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
require("mode-line.js");
|
||||
|
||||
function button_widget (window) {
|
||||
this.class_name = "button-widget";
|
||||
text_widget.call(this, window);
|
||||
}
|
||||
button_widget.prototype = {
|
||||
constructor: button_widget,
|
||||
__proto__: text_widget.prototype,
|
||||
|
||||
make_element: function (window) {
|
||||
var command = this.command;
|
||||
var element = create_XUL(window, "image");
|
||||
|
||||
element.addEventListener("click", function (event) {
|
||||
var I = new interactive_context(window.buffers.current);
|
||||
co_call(call_interactively(I, command));
|
||||
}, false);
|
||||
|
||||
element.addEventListener("mouseover", function (event) {
|
||||
var msg = "Button: " + command;
|
||||
var keymaps = get_current_keymaps(window);
|
||||
var list = keymap_lookup_command(keymaps, command);
|
||||
if (list.length)
|
||||
msg += " (which is on key " + list.join(", ") + ")";
|
||||
window.minibuffer.show(msg);
|
||||
}, false);
|
||||
|
||||
element.addEventListener("mouseout", function (event) {
|
||||
window.minibuffer.show("");
|
||||
}, false);
|
||||
|
||||
element.setAttribute("id", "button-widget-" + command);
|
||||
element.setAttribute("class", this.class_name);
|
||||
for (var a in this.attributes) {
|
||||
element.setAttribute(a, this.attributes[a]);
|
||||
}
|
||||
|
||||
return element;
|
||||
}
|
||||
};
|
||||
|
||||
function make_button_widget (command, attributes) {
|
||||
if (typeof attributes == "string")
|
||||
// Simple case
|
||||
attributes = { src: "moz-icon://stock/gtk-" + attributes };
|
||||
|
||||
function new_widget (window) {
|
||||
button_widget.call(this, window);
|
||||
}
|
||||
new_widget.prototype = {
|
||||
constructor: new_widget,
|
||||
__proto__: button_widget.prototype,
|
||||
command: command,
|
||||
attributes: attributes
|
||||
};
|
||||
new_widget.mode_line_adder = function (window) {
|
||||
var widget = new new_widget(window);
|
||||
window.mode_line.add_widget(widget, widget.make_element(window));
|
||||
};
|
||||
|
||||
return new_widget;
|
||||
}
|
||||
|
||||
function mode_line_add_buttons (buttons, prepend) {
|
||||
for (var i = 0, n = buttons.length; i < n; i++) {
|
||||
var j = prepend ? n - i - 1 : i;
|
||||
var w = make_button_widget(buttons[j][0], buttons[j][1]);
|
||||
add_hook("mode_line_hook", mode_line_adder(w), prepend);
|
||||
}
|
||||
}
|
||||
|
||||
standard_mode_line_buttons = [
|
||||
["find-url", "open"],
|
||||
["find-url-new-buffer", "new"],
|
||||
["back", "go-back"],
|
||||
["forward", "go-forward"],
|
||||
["reload", "refresh"],
|
||||
["kill-current-buffer", "close"],
|
||||
["buffer-previous", "go-up"],
|
||||
["buffer-next", "go-down"],
|
||||
["help-page", "help"],
|
||||
];
|
||||
|
||||
provide("mode-line-buttons");
|
|
@ -0,0 +1,38 @@
|
|||
#! /bin/sh
|
||||
|
||||
# (C) Copyright 2008-2010 John J. Foerch
|
||||
#
|
||||
# Use, modification, and distribution are subject to the terms specified in the
|
||||
# COPYING file.
|
||||
|
||||
# This bash script can be used to launch conkeror on *nix systems that
|
||||
# support symlinking. Create a symlink to this script in a directory
|
||||
# in your executable search path.
|
||||
#
|
||||
# For example:
|
||||
#
|
||||
# sudo ln -s /path/to/conkeror/contrib/run-conkeror /usr/local/bin/conkeror
|
||||
#
|
||||
|
||||
## locate conkeror
|
||||
thisscript=$(readlink -f "$0")
|
||||
contrib=${thisscript%/*}
|
||||
conkeror=${contrib%/*}
|
||||
|
||||
## locate xulrunner
|
||||
versions=${CONKEROR_XULRUNNER_VERSION:-$(grep -h '^\[' "$HOME"/.gre.d/*.conf /etc/gre.d/*.conf 2>/dev/null \
|
||||
| sed -e 's/^\[\(.*\)\]/\1/' \
|
||||
| sort -urV)}
|
||||
for version in ${versions}; do
|
||||
xrdir=$(grep -Fxh -A2 -m1 "[$version]" "$HOME"/.gre.d/*.conf /etc/gre.d/*.conf 2>/dev/null |\
|
||||
grep GRE_PATH |\
|
||||
cut -d= -f2)
|
||||
xulrunner="${xrdir%/}/xulrunner"
|
||||
if [ -x "$xulrunner" ]; then
|
||||
exec "$xulrunner" "$conkeror"/application.ini "$@"
|
||||
fi
|
||||
done
|
||||
|
||||
## if we get this far, we didn't find xulrunner
|
||||
echo "$0: cannot continue. XULRunner not found." >&2
|
||||
exit 1
|
|
@ -0,0 +1,14 @@
|
|||
#! /bin/bash
|
||||
|
||||
# (C) Copyright 2007 John J. Foerch
|
||||
#
|
||||
# Use, modification, and distribution are subject to the terms specified in the
|
||||
# COPYING file.
|
||||
|
||||
scratch=$(mktemp -d)
|
||||
mkdir -p "$scratch/lib" "$scratch/bin"
|
||||
./install.sh -build -prefix "$scratch"
|
||||
pushd "$scratch"
|
||||
bin/conkeror "$@"
|
||||
popd
|
||||
rm -r "$scratch"
|
|
@ -0,0 +1,10 @@
|
|||
[App]
|
||||
Vendor=conkeror.org
|
||||
Name=xrev
|
||||
Version=0.01
|
||||
BuildID=git
|
||||
ID=xrev@conkeror.org
|
||||
|
||||
[Gecko]
|
||||
MinVersion=1.9
|
||||
MaxVersion=*
|
|
@ -0,0 +1 @@
|
|||
manifest chrome/chrome.manifest
|
|
@ -0,0 +1 @@
|
|||
content xrev file:../content/
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0"?>
|
||||
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
||||
<window
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
id="main"
|
||||
title="Xulrunner Event Viewer"
|
||||
width="800"
|
||||
height="300"
|
||||
onload="onload_handler();">
|
||||
|
||||
<script src="xrev.js"/>
|
||||
|
||||
<!-- put a "Quit" item in the OS X Application Menu. The id
|
||||
"menu_FileQuitItem" on the menuitem is the magic cookie. -->
|
||||
<menubar id="menubar" hidden="true">
|
||||
<menu label="xrev" hidden="true">
|
||||
<menupopup>
|
||||
<menuitem
|
||||
id="menu_FileQuitItem"
|
||||
label="Quit Xulrunner Event Viewer"
|
||||
hidden="true"
|
||||
oncommand="quit();"/>
|
||||
</menupopup>
|
||||
</menu>
|
||||
</menubar>
|
||||
|
||||
<caption>
|
||||
Xulrunner Event Viewer is for inspecting keyboard events.
|
||||
</caption>
|
||||
|
||||
<listbox id="event-table"/>
|
||||
|
||||
<textbox/>
|
||||
|
||||
</window>
|
|
@ -0,0 +1,143 @@
|
|||
/**
|
||||
* (C) Copyright 2008-2009,2013 John J. Foerch
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
// const KeyEvent = Components.interfaces.nsIDOMKeyEvent;
|
||||
|
||||
/* Generate vk name table */
|
||||
var keycode_to_vk_name = [];
|
||||
var vk_name_to_keycode = {};
|
||||
{
|
||||
var prefix = "DOM_VK_";
|
||||
for (i in KeyEvent) {
|
||||
/* Check if this is a key binding */
|
||||
if (i.substr(0, prefix.length) == prefix) {
|
||||
var name = i.substr(prefix.length).toLowerCase();
|
||||
var code = KeyEvent[i];
|
||||
keycode_to_vk_name[code] = name;
|
||||
vk_name_to_keycode[name] = code;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var special_modifiers = {
|
||||
osKey: function (event) {
|
||||
return ("getModifierState" in event &&
|
||||
event.getModifierState("OS"));
|
||||
}
|
||||
};
|
||||
|
||||
var column_names = {
|
||||
ctrlKey: "C",
|
||||
metaKey: "M",
|
||||
altKey: "A",
|
||||
osKey: "s",
|
||||
shiftKey: "S"
|
||||
};
|
||||
|
||||
// key_event_props: what properties of keyboard events do we care about?
|
||||
var key_event_props = [
|
||||
'type', 'charCode', 'keyCode', 'which', 'ctrlKey',
|
||||
'metaKey', 'altKey', 'osKey', 'shiftKey'];
|
||||
|
||||
function quit () {
|
||||
var appStartup = Components.classes["@mozilla.org/toolkit/app-startup;1"]
|
||||
.getService(Components.interfaces.nsIAppStartup);
|
||||
appStartup.quit(appStartup.eAttemptQuit);
|
||||
}
|
||||
|
||||
function dumpln (line) {
|
||||
dump(line + "\n");
|
||||
}
|
||||
|
||||
function str_pad (chr, len) {
|
||||
var s = this.toString();
|
||||
while (len - s.length > 0) {
|
||||
s += chr;
|
||||
}
|
||||
return s;
|
||||
}
|
||||
String.prototype.pad = str_pad;
|
||||
|
||||
|
||||
function key_event_handler (event) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
var table = document.getElementById('event-table');
|
||||
var row = document.createElementNS(XUL_NS, "listitem");
|
||||
|
||||
function get_field (k) {
|
||||
if (k in special_modifiers)
|
||||
var v = special_modifiers[k](event);
|
||||
else
|
||||
v = event[k];
|
||||
if (typeof v == "boolean")
|
||||
return (v ? (column_names[k] || true) : "");
|
||||
else
|
||||
return v;
|
||||
}
|
||||
|
||||
function addcell (text) {
|
||||
var cap = document.createElementNS(XUL_NS, "listcell");
|
||||
cap.setAttribute("label", text);
|
||||
row.appendChild(cap);
|
||||
}
|
||||
|
||||
for each (var k in key_event_props) {
|
||||
addcell(get_field(k));
|
||||
}
|
||||
var charname = '';
|
||||
if (event.type == 'keypress' &&
|
||||
(event.charCode || event.keyCode))
|
||||
{
|
||||
if (event.charCode) {
|
||||
if (event.charCode == 32)
|
||||
charname = 'space';
|
||||
else
|
||||
charname = String.fromCharCode(event.charCode);
|
||||
} else if (event.keyCode) {
|
||||
charname = keycode_to_vk_name[event.keyCode];
|
||||
}
|
||||
}
|
||||
addcell(charname);
|
||||
table.appendChild(row);
|
||||
table.ensureElementIsVisible(row);
|
||||
// text output
|
||||
dump([get_field(k).toString().pad(' ',11)
|
||||
for each (k in key_event_props)].join(''));
|
||||
dumpln(charname);
|
||||
}
|
||||
window.addEventListener("keydown", key_event_handler, true /* capture */);
|
||||
window.addEventListener("keypress", key_event_handler, true /* capture */);
|
||||
|
||||
|
||||
function onload_handler () {
|
||||
var headings = key_event_props.concat("name");
|
||||
var table = document.getElementById('event-table');
|
||||
var head = document.createElementNS(XUL_NS,"listhead");
|
||||
var coldef = document.createElementNS(XUL_NS,"listcols");
|
||||
|
||||
function addcol (name) {
|
||||
var t = document.createElementNS(XUL_NS,"listheader");
|
||||
if (name in column_names)
|
||||
name = column_names[name];
|
||||
t.setAttribute("label", name);
|
||||
var u = document.createElementNS(XUL_NS,"listcol");
|
||||
u.setAttribute("flex", "1");
|
||||
head.appendChild(t);
|
||||
coldef.appendChild(u);
|
||||
}
|
||||
|
||||
for each (var k in headings) {
|
||||
addcol(k);
|
||||
}
|
||||
table.appendChild(head);
|
||||
table.appendChild(coldef);
|
||||
// text output
|
||||
dumpln([k.pad(' ',11) for each (k in headings)].join(''));
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
// default window.
|
||||
pref("toolkit.defaultChromeURI", "chrome://xrev/content/main.xul");
|
||||
|
||||
// let us use the `dump' function.
|
||||
pref("browser.dom.window.dump.enabled", true);
|
||||
|
||||
// prevent caching of XUL and JavaScript files.
|
||||
pref("nglayout.debug.disable_xul_fastload", true);
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
Thanks for many suggestions, hints and ideas about how to package
|
||||
Conkeror for Debian go to:
|
||||
|
||||
+ Jeremy Maitin-Shepard (current upstream maintainer)
|
||||
+ Luca Capello (upload sponsor and conkeror user)
|
|
@ -0,0 +1,567 @@
|
|||
MOZILLA PUBLIC LICENSE
|
||||
Version 1.1
|
||||
|
||||
---------------
|
||||
|
||||
1. Definitions.
|
||||
|
||||
1.0.1. "Commercial Use" means distribution or otherwise making the
|
||||
Covered Code available to a third party.
|
||||
|
||||
1.1. "Contributor" means each entity that creates or contributes to
|
||||
the creation of Modifications.
|
||||
|
||||
1.2. "Contributor Version" means the combination of the Original
|
||||
Code, prior Modifications used by a Contributor, and the Modifications
|
||||
made by that particular Contributor.
|
||||
|
||||
1.3. "Covered Code" means the Original Code or Modifications or the
|
||||
combination of the Original Code and Modifications, in each case
|
||||
including portions thereof.
|
||||
|
||||
1.4. "Electronic Distribution Mechanism" means a mechanism generally
|
||||
accepted in the software development community for the electronic
|
||||
transfer of data.
|
||||
|
||||
1.5. "Executable" means Covered Code in any form other than Source
|
||||
Code.
|
||||
|
||||
1.6. "Initial Developer" means the individual or entity identified
|
||||
as the Initial Developer in the Source Code notice required by Exhibit
|
||||
A.
|
||||
|
||||
1.7. "Larger Work" means a work which combines Covered Code or
|
||||
portions thereof with code not governed by the terms of this License.
|
||||
|
||||
1.8. "License" means this document.
|
||||
|
||||
1.8.1. "Licensable" means having the right to grant, to the maximum
|
||||
extent possible, whether at the time of the initial grant or
|
||||
subsequently acquired, any and all of the rights conveyed herein.
|
||||
|
||||
1.9. "Modifications" means any addition to or deletion from the
|
||||
substance or structure of either the Original Code or any previous
|
||||
Modifications. When Covered Code is released as a series of files, a
|
||||
Modification is:
|
||||
A. Any addition to or deletion from the contents of a file
|
||||
containing Original Code or previous Modifications.
|
||||
|
||||
B. Any new file that contains any part of the Original Code or
|
||||
previous Modifications.
|
||||
|
||||
1.10. "Original Code" means Source Code of computer software code
|
||||
which is described in the Source Code notice required by Exhibit A as
|
||||
Original Code, and which, at the time of its release under this
|
||||
License is not already Covered Code governed by this License.
|
||||
|
||||
1.10.1. "Patent Claims" means any patent claim(s), now owned or
|
||||
hereafter acquired, including without limitation, method, process,
|
||||
and apparatus claims, in any patent Licensable by grantor.
|
||||
|
||||
1.11. "Source Code" means the preferred form of the Covered Code for
|
||||
making modifications to it, including all modules it contains, plus
|
||||
any associated interface definition files, scripts used to control
|
||||
compilation and installation of an Executable, or source code
|
||||
differential comparisons against either the Original Code or another
|
||||
well known, available Covered Code of the Contributor's choice. The
|
||||
Source Code can be in a compressed or archival form, provided the
|
||||
appropriate decompression or de-archiving software is widely available
|
||||
for no charge.
|
||||
|
||||
1.12. "You" (or "Your") means an individual or a legal entity
|
||||
exercising rights under, and complying with all of the terms of, this
|
||||
License or a future version of this License issued under Section 6.1.
|
||||
For legal entities, "You" includes any entity which controls, is
|
||||
controlled by, or is under common control with You. For purposes of
|
||||
this definition, "control" means (a) the power, direct or indirect,
|
||||
to cause the direction or management of such entity, whether by
|
||||
contract or otherwise, or (b) ownership of more than fifty percent
|
||||
(50%) of the outstanding shares or beneficial ownership of such
|
||||
entity.
|
||||
|
||||
2. Source Code License.
|
||||
|
||||
2.1. The Initial Developer Grant.
|
||||
The Initial Developer hereby grants You a world-wide, royalty-free,
|
||||
non-exclusive license, subject to third party intellectual property
|
||||
claims:
|
||||
(a) under intellectual property rights (other than patent or
|
||||
trademark) Licensable by Initial Developer to use, reproduce,
|
||||
modify, display, perform, sublicense and distribute the Original
|
||||
Code (or portions thereof) with or without Modifications, and/or
|
||||
as part of a Larger Work; and
|
||||
|
||||
(b) under Patents Claims infringed by the making, using or
|
||||
selling of Original Code, to make, have made, use, practice,
|
||||
sell, and offer for sale, and/or otherwise dispose of the
|
||||
Original Code (or portions thereof).
|
||||
|
||||
(c) the licenses granted in this Section 2.1(a) and (b) are
|
||||
effective on the date Initial Developer first distributes
|
||||
Original Code under the terms of this License.
|
||||
|
||||
(d) Notwithstanding Section 2.1(b) above, no patent license is
|
||||
granted: 1) for code that You delete from the Original Code; 2)
|
||||
separate from the Original Code; or 3) for infringements caused
|
||||
by: i) the modification of the Original Code or ii) the
|
||||
combination of the Original Code with other software or devices.
|
||||
|
||||
2.2. Contributor Grant.
|
||||
Subject to third party intellectual property claims, each Contributor
|
||||
hereby grants You a world-wide, royalty-free, non-exclusive license
|
||||
|
||||
(a) under intellectual property rights (other than patent or
|
||||
trademark) Licensable by Contributor, to use, reproduce, modify,
|
||||
display, perform, sublicense and distribute the Modifications
|
||||
created by such Contributor (or portions thereof) either on an
|
||||
unmodified basis, with other Modifications, as Covered Code
|
||||
and/or as part of a Larger Work; and
|
||||
|
||||
(b) under Patent Claims infringed by the making, using, or
|
||||
selling of Modifications made by that Contributor either alone
|
||||
and/or in combination with its Contributor Version (or portions
|
||||
of such combination), to make, use, sell, offer for sale, have
|
||||
made, and/or otherwise dispose of: 1) Modifications made by that
|
||||
Contributor (or portions thereof); and 2) the combination of
|
||||
Modifications made by that Contributor with its Contributor
|
||||
Version (or portions of such combination).
|
||||
|
||||
(c) the licenses granted in Sections 2.2(a) and 2.2(b) are
|
||||
effective on the date Contributor first makes Commercial Use of
|
||||
the Covered Code.
|
||||
|
||||
(d) Notwithstanding Section 2.2(b) above, no patent license is
|
||||
granted: 1) for any code that Contributor has deleted from the
|
||||
Contributor Version; 2) separate from the Contributor Version;
|
||||
3) for infringements caused by: i) third party modifications of
|
||||
Contributor Version or ii) the combination of Modifications made
|
||||
by that Contributor with other software (except as part of the
|
||||
Contributor Version) or other devices; or 4) under Patent Claims
|
||||
infringed by Covered Code in the absence of Modifications made by
|
||||
that Contributor.
|
||||
|
||||
3. Distribution Obligations.
|
||||
|
||||
3.1. Application of License.
|
||||
The Modifications which You create or to which You contribute are
|
||||
governed by the terms of this License, including without limitation
|
||||
Section 2.2. The Source Code version of Covered Code may be
|
||||
distributed only under the terms of this License or a future version
|
||||
of this License released under Section 6.1, and You must include a
|
||||
copy of this License with every copy of the Source Code You
|
||||
distribute. You may not offer or impose any terms on any Source Code
|
||||
version that alters or restricts the applicable version of this
|
||||
License or the recipients' rights hereunder. However, You may include
|
||||
an additional document offering the additional rights described in
|
||||
Section 3.5.
|
||||
|
||||
3.2. Availability of Source Code.
|
||||
Any Modification which You create or to which You contribute must be
|
||||
made available in Source Code form under the terms of this License
|
||||
either on the same media as an Executable version or via an accepted
|
||||
Electronic Distribution Mechanism to anyone to whom you made an
|
||||
Executable version available; and if made available via Electronic
|
||||
Distribution Mechanism, must remain available for at least twelve (12)
|
||||
months after the date it initially became available, or at least six
|
||||
(6) months after a subsequent version of that particular Modification
|
||||
has been made available to such recipients. You are responsible for
|
||||
ensuring that the Source Code version remains available even if the
|
||||
Electronic Distribution Mechanism is maintained by a third party.
|
||||
|
||||
3.3. Description of Modifications.
|
||||
You must cause all Covered Code to which You contribute to contain a
|
||||
file documenting the changes You made to create that Covered Code and
|
||||
the date of any change. You must include a prominent statement that
|
||||
the Modification is derived, directly or indirectly, from Original
|
||||
Code provided by the Initial Developer and including the name of the
|
||||
Initial Developer in (a) the Source Code, and (b) in any notice in an
|
||||
Executable version or related documentation in which You describe the
|
||||
origin or ownership of the Covered Code.
|
||||
|
||||
3.4. Intellectual Property Matters
|
||||
(a) Third Party Claims.
|
||||
If Contributor has knowledge that a license under a third party's
|
||||
intellectual property rights is required to exercise the rights
|
||||
granted by such Contributor under Sections 2.1 or 2.2,
|
||||
Contributor must include a text file with the Source Code
|
||||
distribution titled "LEGAL" which describes the claim and the
|
||||
party making the claim in sufficient detail that a recipient will
|
||||
know whom to contact. If Contributor obtains such knowledge after
|
||||
the Modification is made available as described in Section 3.2,
|
||||
Contributor shall promptly modify the LEGAL file in all copies
|
||||
Contributor makes available thereafter and shall take other steps
|
||||
(such as notifying appropriate mailing lists or newsgroups)
|
||||
reasonably calculated to inform those who received the Covered
|
||||
Code that new knowledge has been obtained.
|
||||
|
||||
(b) Contributor APIs.
|
||||
If Contributor's Modifications include an application programming
|
||||
interface and Contributor has knowledge of patent licenses which
|
||||
are reasonably necessary to implement that API, Contributor must
|
||||
also include this information in the LEGAL file.
|
||||
|
||||
(c) Representations.
|
||||
Contributor represents that, except as disclosed pursuant to
|
||||
Section 3.4(a) above, Contributor believes that Contributor's
|
||||
Modifications are Contributor's original creation(s) and/or
|
||||
Contributor has sufficient rights to grant the rights conveyed by
|
||||
this License.
|
||||
|
||||
3.5. Required Notices.
|
||||
You must duplicate the notice in Exhibit A in each file of the Source
|
||||
Code. If it is not possible to put such notice in a particular Source
|
||||
Code file due to its structure, then You must include such notice in a
|
||||
location (such as a relevant directory) where a user would be likely
|
||||
to look for such a notice. If You created one or more Modification(s)
|
||||
You may add your name as a Contributor to the notice described in
|
||||
Exhibit A. You must also duplicate this License in any documentation
|
||||
for the Source Code where You describe recipients' rights or ownership
|
||||
rights relating to Covered Code. You may choose to offer, and to
|
||||
charge a fee for, warranty, support, indemnity or liability
|
||||
obligations to one or more recipients of Covered Code. However, You
|
||||
may do so only on Your own behalf, and not on behalf of the Initial
|
||||
Developer or any Contributor. You must make it absolutely clear than
|
||||
any such warranty, support, indemnity or liability obligation is
|
||||
offered by You alone, and You hereby agree to indemnify the Initial
|
||||
Developer and every Contributor for any liability incurred by the
|
||||
Initial Developer or such Contributor as a result of warranty,
|
||||
support, indemnity or liability terms You offer.
|
||||
|
||||
3.6. Distribution of Executable Versions.
|
||||
You may distribute Covered Code in Executable form only if the
|
||||
requirements of Section 3.1-3.5 have been met for that Covered Code,
|
||||
and if You include a notice stating that the Source Code version of
|
||||
the Covered Code is available under the terms of this License,
|
||||
including a description of how and where You have fulfilled the
|
||||
obligations of Section 3.2. The notice must be conspicuously included
|
||||
in any notice in an Executable version, related documentation or
|
||||
collateral in which You describe recipients' rights relating to the
|
||||
Covered Code. You may distribute the Executable version of Covered
|
||||
Code or ownership rights under a license of Your choice, which may
|
||||
contain terms different from this License, provided that You are in
|
||||
compliance with the terms of this License and that the license for the
|
||||
Executable version does not attempt to limit or alter the recipient's
|
||||
rights in the Source Code version from the rights set forth in this
|
||||
License. If You distribute the Executable version under a different
|
||||
license You must make it absolutely clear that any terms which differ
|
||||
from this License are offered by You alone, not by the Initial
|
||||
Developer or any Contributor. You hereby agree to indemnify the
|
||||
Initial Developer and every Contributor for any liability incurred by
|
||||
the Initial Developer or such Contributor as a result of any such
|
||||
terms You offer.
|
||||
|
||||
3.7. Larger Works.
|
||||
You may create a Larger Work by combining Covered Code with other code
|
||||
not governed by the terms of this License and distribute the Larger
|
||||
Work as a single product. In such a case, You must make sure the
|
||||
requirements of this License are fulfilled for the Covered Code.
|
||||
|
||||
4. Inability to Comply Due to Statute or Regulation.
|
||||
|
||||
If it is impossible for You to comply with any of the terms of this
|
||||
License with respect to some or all of the Covered Code due to
|
||||
statute, judicial order, or regulation then You must: (a) comply with
|
||||
the terms of this License to the maximum extent possible; and (b)
|
||||
describe the limitations and the code they affect. Such description
|
||||
must be included in the LEGAL file described in Section 3.4 and must
|
||||
be included with all distributions of the Source Code. Except to the
|
||||
extent prohibited by statute or regulation, such description must be
|
||||
sufficiently detailed for a recipient of ordinary skill to be able to
|
||||
understand it.
|
||||
|
||||
5. Application of this License.
|
||||
|
||||
This License applies to code to which the Initial Developer has
|
||||
attached the notice in Exhibit A and to related Covered Code.
|
||||
|
||||
6. Versions of the License.
|
||||
|
||||
6.1. New Versions.
|
||||
Netscape Communications Corporation ("Netscape") may publish revised
|
||||
and/or new versions of the License from time to time. Each version
|
||||
will be given a distinguishing version number.
|
||||
|
||||
6.2. Effect of New Versions.
|
||||
Once Covered Code has been published under a particular version of the
|
||||
License, You may always continue to use it under the terms of that
|
||||
version. You may also choose to use such Covered Code under the terms
|
||||
of any subsequent version of the License published by Netscape. No one
|
||||
other than Netscape has the right to modify the terms applicable to
|
||||
Covered Code created under this License.
|
||||
|
||||
6.3. Derivative Works.
|
||||
If You create or use a modified version of this License (which you may
|
||||
only do in order to apply it to code which is not already Covered Code
|
||||
governed by this License), You must (a) rename Your license so that
|
||||
the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
|
||||
"MPL", "NPL" or any confusingly similar phrase do not appear in your
|
||||
license (except to note that your license differs from this License)
|
||||
and (b) otherwise make it clear that Your version of the license
|
||||
contains terms which differ from the Mozilla Public License and
|
||||
Netscape Public License. (Filling in the name of the Initial
|
||||
Developer, Original Code or Contributor in the notice described in
|
||||
Exhibit A shall not of themselves be deemed to be modifications of
|
||||
this License.)
|
||||
|
||||
7. DISCLAIMER OF WARRANTY.
|
||||
|
||||
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
|
||||
WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
|
||||
DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
|
||||
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
|
||||
IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
|
||||
YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
|
||||
COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
|
||||
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
|
||||
ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
|
||||
|
||||
8. TERMINATION.
|
||||
|
||||
8.1. This License and the rights granted hereunder will terminate
|
||||
automatically if You fail to comply with terms herein and fail to cure
|
||||
such breach within 30 days of becoming aware of the breach. All
|
||||
sublicenses to the Covered Code which are properly granted shall
|
||||
survive any termination of this License. Provisions which, by their
|
||||
nature, must remain in effect beyond the termination of this License
|
||||
shall survive.
|
||||
|
||||
8.2. If You initiate litigation by asserting a patent infringement
|
||||
claim (excluding declatory judgment actions) against Initial Developer
|
||||
or a Contributor (the Initial Developer or Contributor against whom
|
||||
You file such action is referred to as "Participant") alleging that:
|
||||
|
||||
(a) such Participant's Contributor Version directly or indirectly
|
||||
infringes any patent, then any and all rights granted by such
|
||||
Participant to You under Sections 2.1 and/or 2.2 of this License
|
||||
shall, upon 60 days notice from Participant terminate prospectively,
|
||||
unless if within 60 days after receipt of notice You either: (i)
|
||||
agree in writing to pay Participant a mutually agreeable reasonable
|
||||
royalty for Your past and future use of Modifications made by such
|
||||
Participant, or (ii) withdraw Your litigation claim with respect to
|
||||
the Contributor Version against such Participant. If within 60 days
|
||||
of notice, a reasonable royalty and payment arrangement are not
|
||||
mutually agreed upon in writing by the parties or the litigation claim
|
||||
is not withdrawn, the rights granted by Participant to You under
|
||||
Sections 2.1 and/or 2.2 automatically terminate at the expiration of
|
||||
the 60 day notice period specified above.
|
||||
|
||||
(b) any software, hardware, or device, other than such Participant's
|
||||
Contributor Version, directly or indirectly infringes any patent, then
|
||||
any rights granted to You by such Participant under Sections 2.1(b)
|
||||
and 2.2(b) are revoked effective as of the date You first made, used,
|
||||
sold, distributed, or had made, Modifications made by that
|
||||
Participant.
|
||||
|
||||
8.3. If You assert a patent infringement claim against Participant
|
||||
alleging that such Participant's Contributor Version directly or
|
||||
indirectly infringes any patent where such claim is resolved (such as
|
||||
by license or settlement) prior to the initiation of patent
|
||||
infringement litigation, then the reasonable value of the licenses
|
||||
granted by such Participant under Sections 2.1 or 2.2 shall be taken
|
||||
into account in determining the amount or value of any payment or
|
||||
license.
|
||||
|
||||
8.4. In the event of termination under Sections 8.1 or 8.2 above,
|
||||
all end user license agreements (excluding distributors and resellers)
|
||||
which have been validly granted by You or any distributor hereunder
|
||||
prior to termination shall survive termination.
|
||||
|
||||
9. LIMITATION OF LIABILITY.
|
||||
|
||||
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
|
||||
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
|
||||
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
|
||||
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
|
||||
ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
|
||||
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
|
||||
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
|
||||
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
|
||||
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
|
||||
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
|
||||
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
|
||||
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
|
||||
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
|
||||
THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
|
||||
|
||||
10. U.S. GOVERNMENT END USERS.
|
||||
|
||||
The Covered Code is a "commercial item," as that term is defined in
|
||||
48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
|
||||
software" and "commercial computer software documentation," as such
|
||||
terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
|
||||
C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
|
||||
all U.S. Government End Users acquire Covered Code with only those
|
||||
rights set forth herein.
|
||||
|
||||
11. MISCELLANEOUS.
|
||||
|
||||
This License represents the complete agreement concerning subject
|
||||
matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent
|
||||
necessary to make it enforceable. This License shall be governed by
|
||||
California law provisions (except to the extent applicable law, if
|
||||
any, provides otherwise), excluding its conflict-of-law provisions.
|
||||
With respect to disputes in which at least one party is a citizen of,
|
||||
or an entity chartered or registered to do business in the United
|
||||
States of America, any litigation relating to this License shall be
|
||||
subject to the jurisdiction of the Federal Courts of the Northern
|
||||
District of California, with venue lying in Santa Clara County,
|
||||
California, with the losing party responsible for costs, including
|
||||
without limitation, court costs and reasonable attorneys' fees and
|
||||
expenses. The application of the United Nations Convention on
|
||||
Contracts for the International Sale of Goods is expressly excluded.
|
||||
Any law or regulation which provides that the language of a contract
|
||||
shall be construed against the drafter shall not apply to this
|
||||
License.
|
||||
|
||||
12. RESPONSIBILITY FOR CLAIMS.
|
||||
|
||||
As between Initial Developer and the Contributors, each party is
|
||||
responsible for claims and damages arising, directly or indirectly,
|
||||
out of its utilization of rights under this License and You agree to
|
||||
work with Initial Developer and Contributors to distribute such
|
||||
responsibility on an equitable basis. Nothing herein is intended or
|
||||
shall be deemed to constitute any admission of liability.
|
||||
|
||||
13. MULTIPLE-LICENSED CODE.
|
||||
|
||||
Initial Developer may designate portions of the Covered Code as
|
||||
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
|
||||
Developer permits you to utilize portions of the Covered Code under
|
||||
Your choice of the NPL or the alternative licenses, if any, specified
|
||||
by the Initial Developer in the file described in Exhibit A.
|
||||
|
||||
EXHIBIT A -Mozilla Public License.
|
||||
|
||||
``The contents of this file are subject to the Mozilla Public License
|
||||
Version 1.1 (the "License"); you may not use this file except in
|
||||
compliance with the License. You may obtain a copy of the License at
|
||||
http://www.mozilla.org/MPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS IS"
|
||||
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
||||
License for the specific language governing rights and limitations
|
||||
under the License.
|
||||
|
||||
The Original Code is ______________________________________.
|
||||
|
||||
The Initial Developer of the Original Code is ________________________.
|
||||
Portions created by ______________________ are Copyright (C) ______
|
||||
_______________________. All Rights Reserved.
|
||||
|
||||
Contributor(s): ______________________________________.
|
||||
|
||||
Alternatively, the contents of this file may be used under the terms
|
||||
of the _____ license (the "[___] License"), in which case the
|
||||
provisions of [______] License are applicable instead of those
|
||||
above. If you wish to allow use of your version of this file only
|
||||
under the terms of the [____] License and not to allow others to use
|
||||
your version of this file under the MPL, indicate your decision by
|
||||
deleting the provisions above and replace them with the notice and
|
||||
other provisions required by the [___] License. If you do not delete
|
||||
the provisions above, a recipient may use your version of this file
|
||||
under either the MPL or the [___] License."
|
||||
|
||||
[NOTE: The text of this Exhibit A may differ slightly from the text of
|
||||
the notices in the Source Code files of the Original Code. You should
|
||||
use the text of this Exhibit A rather than the text found in the
|
||||
Original Code Source Code for Your Modifications.]
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
AMENDMENTS
|
||||
|
||||
The Netscape Public License Version 1.1 ("NPL") consists of the
|
||||
Mozilla Public License Version 1.1 with the following Amendments,
|
||||
including Exhibit A-Netscape Public License. Files identified with
|
||||
"Exhibit A-Netscape Public License" are governed by the Netscape
|
||||
Public License Version 1.1.
|
||||
|
||||
Additional Terms applicable to the Netscape Public License.
|
||||
I. Effect.
|
||||
These additional terms described in this Netscape Public
|
||||
License -- Amendments shall apply to the Mozilla Communicator
|
||||
client code and to all Covered Code under this License.
|
||||
|
||||
II. "Netscape's Branded Code" means Covered Code that Netscape
|
||||
distributes and/or permits others to distribute under one or more
|
||||
trademark(s) which are controlled by Netscape but which are not
|
||||
licensed for use under this License.
|
||||
|
||||
III. Netscape and logo.
|
||||
This License does not grant any rights to use the trademarks
|
||||
"Netscape", the "Netscape N and horizon" logo or the "Netscape
|
||||
lighthouse" logo, "Netcenter", "Gecko", "Java" or "JavaScript",
|
||||
"Smart Browsing" even if such marks are included in the Original
|
||||
Code or Modifications.
|
||||
|
||||
IV. Inability to Comply Due to Contractual Obligation.
|
||||
Prior to licensing the Original Code under this License, Netscape
|
||||
has licensed third party code for use in Netscape's Branded Code.
|
||||
To the extent that Netscape is limited contractually from making
|
||||
such third party code available under this License, Netscape may
|
||||
choose to reintegrate such code into Covered Code without being
|
||||
required to distribute such code in Source Code form, even if
|
||||
such code would otherwise be considered "Modifications" under
|
||||
this License.
|
||||
|
||||
V. Use of Modifications and Covered Code by Initial Developer.
|
||||
V.1. In General.
|
||||
The obligations of Section 3 apply to Netscape, except to
|
||||
the extent specified in this Amendment, Section V.2 and V.3.
|
||||
|
||||
V.2. Other Products.
|
||||
Netscape may include Covered Code in products other than the
|
||||
Netscape's Branded Code which are released by Netscape
|
||||
during the two (2) years following the release date of the
|
||||
Original Code, without such additional products becoming
|
||||
subject to the terms of this License, and may license such
|
||||
additional products on different terms from those contained
|
||||
in this License.
|
||||
|
||||
V.3. Alternative Licensing.
|
||||
Netscape may license the Source Code of Netscape's Branded
|
||||
Code, including Modifications incorporated therein, without
|
||||
such Netscape Branded Code becoming subject to the terms of
|
||||
this License, and may license such Netscape Branded Code on
|
||||
different terms from those contained in this License.
|
||||
|
||||
VI. Litigation.
|
||||
Notwithstanding the limitations of Section 11 above, the
|
||||
provisions regarding litigation in Section 11(a), (b) and (c) of
|
||||
the License shall apply to all disputes relating to this License.
|
||||
|
||||
EXHIBIT A-Netscape Public License.
|
||||
|
||||
"The contents of this file are subject to the Netscape Public
|
||||
License Version 1.1 (the "License"); you may not use this file
|
||||
except in compliance with the License. You may obtain a copy of
|
||||
the License at http://www.mozilla.org/NPL/
|
||||
|
||||
Software distributed under the License is distributed on an "AS
|
||||
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
||||
implied. See the License for the specific language governing
|
||||
rights and limitations under the License.
|
||||
|
||||
The Original Code is Mozilla Communicator client code, released
|
||||
March 31, 1998.
|
||||
|
||||
The Initial Developer of the Original Code is Netscape
|
||||
Communications Corporation. Portions created by Netscape are
|
||||
Copyright (C) 1998-1999 Netscape Communications Corporation. All
|
||||
Rights Reserved.
|
||||
|
||||
Contributor(s): ______________________________________.
|
||||
|
||||
Alternatively, the contents of this file may be used under the
|
||||
terms of the _____ license (the "[___] License"), in which case
|
||||
the provisions of [______] License are applicable instead of
|
||||
those above. If you wish to allow use of your version of this
|
||||
file only under the terms of the [____] License and not to allow
|
||||
others to use your version of this file under the NPL, indicate
|
||||
your decision by deleting the provisions above and replace them
|
||||
with the notice and other provisions required by the [___]
|
||||
License. If you do not delete the provisions above, a recipient
|
||||
may use your version of this file under either the NPL or the
|
||||
[___] License."
|
|
@ -0,0 +1,13 @@
|
|||
conkeror for Debian
|
||||
-------------------
|
||||
|
||||
The conkeror package is split up into two packages:
|
||||
|
||||
+ conkeror including all the non-architecture-specific files. This
|
||||
package is sufficient to run conkeror but you may not be able to
|
||||
spawn external commands like editors, etc.
|
||||
|
||||
+ conkeror-spawn-process-helper including the helper binary
|
||||
conkeror-spawn-helper (formerly spawn-process-helper)
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org>, Sun, 1 Feb 2009 20:48:59 +0100
|
|
@ -0,0 +1,31 @@
|
|||
Packaging Conkeror for Debian
|
||||
-----------------------------
|
||||
|
||||
Since end of 2008, the Conkeror Debian packaging code is hosted in the
|
||||
upstream git repository at http://repo.or.cz/w/conkeror.git.
|
||||
|
||||
Generating the Debian source package from a git working copy is done
|
||||
by the script in contrib/debian/update.sh. It
|
||||
|
||||
* pulls all changes from the git repository at
|
||||
http://repo.or.cz/w/conkeror.git,
|
||||
* renames the directory of the working copy according to the current
|
||||
date and
|
||||
* generates a source package which then includes everything except the
|
||||
.git directories and the debian directories.
|
||||
|
||||
Packages built that way and released into the public (either as
|
||||
official debian package or via some personal but public repository)
|
||||
should be tagged in the git repository appropriately:
|
||||
|
||||
* Official Debian packages should be tagged "debian-$debian_package_version"
|
||||
* Other package should be tagged "$person-$package_version"
|
||||
* Tilde ("~") is not a valid character in Git tag names, so it
|
||||
should be replaced by two dashes ("--") in tag names.
|
||||
* Automatically built daily snapshots shouldn't be tagged in the
|
||||
repository as they include enough information to determine what
|
||||
state they're based upon.
|
||||
|
||||
That way we can always easily identify which state has been packaged.
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org> Sun, 01 Feb 2009 21:01:15 +0100
|
|
@ -0,0 +1,465 @@
|
|||
conkeror (1.0~~pre+git140115-1) UNRELEASED; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
* Add support for xulrunner 28.
|
||||
* Reformat debian/control in wrap-and-sort style.
|
||||
* Bump Standards-Version to 3.9.5 (no changes).
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sun, 17 Nov 2013 14:43:47 +0100
|
||||
|
||||
conkeror (1.0~~pre+git131116-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
+ Fixes scroll-top-left issue (Closes: #726245)
|
||||
* Add support for xulrunner 26 and 27.
|
||||
* Follow Debian Unstable and switch default xulrunner dependency from 17
|
||||
to 24.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sat, 16 Nov 2013 17:38:11 +0100
|
||||
|
||||
conkeror (1.0~~pre+git130817-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
* Add support for xulrunner 25.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sat, 17 Aug 2013 15:42:01 +0200
|
||||
|
||||
conkeror (1.0~~pre+git130522-2) unstable; urgency=low
|
||||
|
||||
* Add support for xulrunner 24.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sat, 06 Jul 2013 22:13:48 +0200
|
||||
|
||||
conkeror (1.0~~pre+git130522-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
* Upload to unstable again
|
||||
* Add support for xulrunner 23
|
||||
* Make xulrunner-17.0 the default xulrunner dependency as that's the
|
||||
version currently in Debian unstable.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Thu, 06 Jun 2013 02:09:43 +0200
|
||||
|
||||
conkeror (1.0~~pre+git130407-1) experimental; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
- Properly passes CFLAGS, fully enables dpkg build flags
|
||||
* Add support for xulrunner 18 to 22 (Closes: #699239)
|
||||
* Bump debhelper compatibility to 9
|
||||
- Remove inclusion of buildflags.mk from debian/rules, no more needed
|
||||
* Bump Standards-Version to 3.9.4 (no changes)
|
||||
* Clean up debian/rules:
|
||||
- Use dh_auto_build and dh_auto_clean.
|
||||
- Don't clean up stamp files manually; this is already done by
|
||||
dh_clean plus debhelper compatibility level >= 7.
|
||||
- Use more debhelper magic, no more manual cp, ln, or mkdir.
|
||||
- Finally switch to a dh style debian/rules.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sun, 07 Apr 2013 03:47:35 +0200
|
||||
|
||||
conkeror (1.0~~pre+git120901-1) experimental; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
* Add support for xulrunner 17
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sat, 01 Sep 2012 11:20:23 +0200
|
||||
|
||||
conkeror (1.0~~pre+git120804-1) experimental; urgency=low
|
||||
|
||||
* Add support for xulrunner 15 and 16 with according versioned
|
||||
dependencies plus conflicts for earlier package versions (See #683157
|
||||
and https://bugzilla.mozilla.org/show_bug.cgi?id=756786)
|
||||
* Add Lintian overrides for using Conflicts instead of Breaks as
|
||||
Conkeror fails if these versions are just only unpacked.
|
||||
* Use `seq 13.0 -1 5.0` instead of `seq 5.0 13.0 | tac` in conkeror.bin
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Wed, 08 Aug 2012 02:11:58 +0200
|
||||
|
||||
conkeror (1.0~~pre+git120527-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
- Update debian patches to fit new module API
|
||||
- Synced debian/NEWS with http://conkeror.org/BreakingChanges
|
||||
* Don't pass locale settings to seq in /usr/bin/conkeror (Closes: #674171)
|
||||
* Update buildd-ports webjump. Thanks Christoph Egger!
|
||||
* Add debpopcon webjump.
|
||||
* Also install new file content-policy.manifest. Thanks Joseph Gay!
|
||||
* Support xulrunner 12.0 and 13.0
|
||||
- Update search list in debian/conkeror.bin
|
||||
- Add alternative dependency on xulrunner-12.0 and xulrunner-13.0
|
||||
- xulrunner-14.0 and newer not yet supported due to
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=756786
|
||||
* Make 10.0 (ESR) first xulrunner dependency.
|
||||
* Expand sensible-editor.diff to also patch modules/mime.js, replace
|
||||
hardcoded application names with xdg-open. (Closes: #570086)
|
||||
- Rename patch to sensible-editor-xdg-open.diff
|
||||
- Recommend xdg-utils
|
||||
* Reformat long list of alternative xulrunner dependencies to one
|
||||
alternative per line for better readability and better diffing.
|
||||
* debian/conkeror.bin: Generate long list of consecutive versioned
|
||||
xulrunner binary names with seq and tac.
|
||||
* debian/rules: Enable hardening options for conkeror-spawn-helper
|
||||
- Add build-dependency on dpkg-dev (>= 1.16.1~).
|
||||
- Consistently use "$(MAKE)" instead of "make".
|
||||
* Bump Standards-Version to 3.9.3 (no changes)
|
||||
* Switch source format to "3.0 (quilt)"
|
||||
- Remove quilt usage from debian/rules
|
||||
- Drop build dependency on quilt
|
||||
* Rename debian/NEWS to debian/conkeror.NEWS so it no more gets included
|
||||
in the conkeror-spawn-process-helper package.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sun, 27 May 2012 17:07:33 +0200
|
||||
|
||||
conkeror (1.0~~pre+git120102-1) unstable; urgency=low
|
||||
|
||||
[ Axel Beckert ]
|
||||
* Upstream version bump
|
||||
* Upstream changed minimum xulrunner requirement to 1.9.1: Update
|
||||
debian/control and debian/conkeror.bin accordingly.
|
||||
* Reorder xulrunner alternative dependencies so the current xulrunner
|
||||
from unstable (9.0) is chosen by default.
|
||||
* Make package usable on Ubuntu again despite their xulrunner removal.
|
||||
- debian/control: Add alternative dependencies on firefox instead of
|
||||
xulrunner
|
||||
- debian/conkeror.bin: If no xulrunner is found, look for firefox
|
||||
instead
|
||||
- debian/control: Update long description to mention Firefox, too.
|
||||
* Add alternative dependencies on xulrunner-11.0, -10.0, and -9.0.
|
||||
* Support xulrunner 11.0 in debian/conkeror.bin
|
||||
|
||||
[ Luca Capello ]
|
||||
* Support xulrunner 10.0 and 9.0 in debian/conkeror.bin, drop support
|
||||
for unversioned xulrunner binaries. (Closes: #649199)
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Mon, 02 Jan 2012 20:12:01 +0100
|
||||
|
||||
conkeror (0.9.4-1) unstable; urgency=low
|
||||
|
||||
* New upstream milestone
|
||||
* Add support for xulrunner-7.0 and xulrunner-8.0
|
||||
* Reorder xulrunner dependencies in debian/control:
|
||||
+ xulrunner-6.0 is the first dependency as that's the highest version
|
||||
currently in Debian unstable.
|
||||
+ All other versions are sorted descending by their version, the
|
||||
non-versioned xulrunner being the last one.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sun, 04 Sep 2011 22:32:03 +0200
|
||||
|
||||
conkeror (0.9.3+git110719-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
- Fullscreen toggling support, use F11 or M-S-Return
|
||||
* Make reportbug helper script to work with any installed xulrunner
|
||||
package. Thanks to Luca Capello!
|
||||
* Change versioned dependency on "xulrunner" to a non-versioned
|
||||
dependency, because xulrunner 1.8 is really history (last seen in
|
||||
Etch) and it should work with a potential virtual "xulrunner"
|
||||
package. (See #567169)
|
||||
* debian/control: Prefer xulrunner-5.0 over xulrunner-1.9.1 as 5.0 is
|
||||
now in unstable and 1.9.1 will probably vanish soon.
|
||||
* Add alternative dependency on xulrunner-6.0 which was missing in the
|
||||
last upload.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Tue, 19 Jul 2011 23:13:57 +0200
|
||||
|
||||
conkeror (0.9.3+git110602-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
* Add alternative dependencies on (upcoming) xulrunner-5.0 and -6.0
|
||||
packages
|
||||
* Bump Standards-Version to 3.9.2 (no changes)
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Fri, 27 May 2011 03:07:21 +0200
|
||||
|
||||
conkeror (0.9.3+git110307-2) unstable; urgency=low
|
||||
|
||||
* debian/conkeror.bin: Change search order for searching xulrunner
|
||||
binaries from the confusing current state of "squeeze/sid, (former)
|
||||
experimental, lenny, experimental, generic/sarge" to descending
|
||||
"highest, most specific versions first; lowest, generic versions
|
||||
last", so it should take the newest xulrunner version which is
|
||||
installed.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Tue, 08 Mar 2011 16:28:38 +0100
|
||||
|
||||
conkeror (0.9.3+git110307-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
- Fixes network and SSL error pages under xulrunner-2.0
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Mon, 07 Mar 2011 18:05:33 +0100
|
||||
|
||||
conkeror (0.9.3+git110224-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
- Further xulrunner-2.0 fixes
|
||||
* Add missing alternative dependency on xulrunner-2.0 (Thanks to Micah
|
||||
Gersten!)
|
||||
* Also look for xulrunner-2.0 in debian/conkeror.bin aka /usr/bin/conkeror
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Thu, 24 Feb 2011 19:46:28 +0100
|
||||
|
||||
conkeror (0.9.3+git110219-1) unstable; urgency=low
|
||||
|
||||
* The Works-with-2.0 Package
|
||||
* New upstream snapshot
|
||||
- Minor fixes for xulrunner-2.0 support
|
||||
* debian/rules: Include chrome.manifest which is necessary for
|
||||
xulrunner-2.0 support.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sat, 19 Feb 2011 08:02:05 +0100
|
||||
|
||||
conkeror (0.9.3+git110213-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
- Sorts keybindings and command line options alphabetically. Thanks
|
||||
Jari Aalto for the patches. (Closes: #606878, #606880)
|
||||
* Upload to unstable again since the Squeeze Release Freeze is over.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sun, 13 Feb 2011 14:20:11 +0100
|
||||
|
||||
conkeror (0.9.3+git101015-1) experimental; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
* Also ship contrib/modules with the binary package to allow usage of
|
||||
the mode line buttons module.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Fri, 15 Oct 2010 00:27:47 +0200
|
||||
|
||||
conkeror (0.9.3-1) experimental; urgency=low
|
||||
|
||||
* New upstream milestone
|
||||
- Supports XULRunner 2
|
||||
- New minibuffer handling, no more input-modes
|
||||
- Offers a Twitter page mode
|
||||
* Fix (.deb package specific) ubuntubugs webjump
|
||||
* debian/patches/deb-webumps.diff no more modifies
|
||||
defaults/preferences/default-modules.js but creates a new file named
|
||||
defaults/preferences/debian-default-modules.js instead. This should
|
||||
make the patch much more robust against changes in upstream's default
|
||||
modules list. Thanks to John J. Foerch for the suggestion.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Wed, 06 Oct 2010 20:59:43 +0200
|
||||
|
||||
conkeror (0.9.2+git100804-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
* Bump Standards-Version to 3.9.1
|
||||
- Use "Breaks" instead of "Conflicts".
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Wed, 04 Aug 2010 23:04:35 +0200
|
||||
|
||||
conkeror (0.9.2+git100420-2) unstable; urgency=low
|
||||
|
||||
* The "forgotten details" upload
|
||||
* Add appropriate NEWS entry with breaking changes for last upload.
|
||||
* Renamed NEWS.Debian in the source package so that it will be
|
||||
automatically installed as NEWS.Debian.
|
||||
* Add "mentions Conkeror in the user agent string" to last changelog entry.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Tue, 20 Apr 2010 23:34:00 +0200
|
||||
|
||||
conkeror (0.9.2+git100420-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
- many xulrunner 1.9.2 compatibility fixes
|
||||
- minibuffer overhaul
|
||||
- mentions "Conkeror" in the user agent string
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Tue, 20 Apr 2010 17:42:01 +0200
|
||||
|
||||
conkeror (0.9.2+git100324-2) unstable; urgency=low
|
||||
|
||||
* Further adaptions of the debian webjumps to the new module system as
|
||||
suggested by John J. Foerch. Includes renaming the webjumps' file from
|
||||
modules/debian/webjumps.js to modules/debian/debian-webjumps.js.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Wed, 24 Mar 2010 23:45:50 +0100
|
||||
|
||||
conkeror (0.9.2+git100324-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
- some minor bug fixes
|
||||
* Refresh quilt patches (should have been done already for the last
|
||||
upload)
|
||||
* Adapt debian webjumps module to new module system (fixes lost default
|
||||
webjumps in the previous upload). Thanks to gzeus for noticing!
|
||||
* Add debian/source/format to silence lintian.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Wed, 24 Mar 2010 01:27:57 +0100
|
||||
|
||||
conkeror (0.9.2-1) unstable; urgency=low
|
||||
|
||||
* New upstream release
|
||||
- Contains a new module system providing the capability for modules to
|
||||
have their own namespace.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Mon, 22 Mar 2010 19:11:32 +0100
|
||||
|
||||
conkeror (0.9.1+git100317-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
- venkman support
|
||||
- noscript support overhaul, now enabled by default
|
||||
- fixes building conkeror-spawn-process-helper with clang compiler
|
||||
- several new page modes
|
||||
- many cosmetic changes and minor bugfixes
|
||||
- outdated emacswiki webjump removed
|
||||
* [debian/rules] Also install contrib/art
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Wed, 17 Mar 2010 01:49:54 +0100
|
||||
|
||||
conkeror (0.9.1+git100220-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
- Honors cmdline.preventDefault as used since xulrunner 1.9.1.6-2
|
||||
* Add support for the reportbug-helper-script of Debian's xulrunner
|
||||
- Raise build-deps to debhelper >= 7.2.3~ due to dh_bugfiles
|
||||
* Add alternative dependency on upcoming experimental xulrunner-1.9.2.
|
||||
* Reorder xulrunner dependencies to have the current and preferred
|
||||
versions first instead of sorting by package name. (Fixes piuparts
|
||||
warning "dependency-does-not-exist".)
|
||||
* Add a lintian override for the non-standard Xb-Xul-AppId header
|
||||
* Removed Luca from the uploaders list (on his request)
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sat, 20 Feb 2010 01:07:48 +0100
|
||||
|
||||
conkeror (0.9.1+git100131-1) unstable; urgency=low
|
||||
|
||||
* New upstream snapshot
|
||||
* Make package working on Ubuntu again by reverting debian/conkeror.bin
|
||||
to not using xulrunner-stub symbolic links anymore since Ubuntu doesn't
|
||||
support this feature. Meh.
|
||||
* Fix new Lintian 2.3.x warnings:
|
||||
- debhelper-but-no-misc-depends
|
||||
- obsolete-relation-form-in-source
|
||||
* Add new Debian related webjumps:
|
||||
- debpopcon
|
||||
- buildd
|
||||
- buildd-ports
|
||||
- debqa
|
||||
* Add Xb-Xul-AppId header to conkeror binary package for use with
|
||||
mozilla-devscripts. (Closes: #562986)
|
||||
* Bumped Standards-Version to 3.8.4 (no changes)
|
||||
* Changed my e-mail address to my debian.org address
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sun, 31 Jan 2010 17:52:43 +0100
|
||||
|
||||
conkeror (0.9.1-1) unstable; urgency=low
|
||||
|
||||
* New upstream version
|
||||
+ Closes: #542252 (YouTube download broken)
|
||||
* Added alternative dependency on xulrunner-1.9.1
|
||||
* Moved from directly calling "xulrunner application.ini" to calling a
|
||||
symlinked xulrunner-stub (symlinking xulrunner-stub only works with
|
||||
Debian's xulrunner-stub, thanks Mike Hommey :-), so that xulrunner can
|
||||
decide which version of xulrunner is actually used.
|
||||
* Refreshed debian/patches/sensible-editor.diff after upstream
|
||||
whitespace changes.
|
||||
* Changed debian/rules to not use the old $CONKEROR_VERSION$ macro
|
||||
anymore.
|
||||
* Do not include the whole contrib subdirectory in the binary
|
||||
package. (Closes: #547896) Only include the xrev debugging tool for
|
||||
now.
|
||||
* A few Debian and Ubuntu webjumps have been added and enabled by
|
||||
default. (Closes: #547908)
|
||||
* Bumped Standards-Version to 3.8.3 (no changes)
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org> Thu, 24 Sep 2009 02:35:02 +0200
|
||||
|
||||
conkeror (0.9~git090624-1) unstable; urgency=low
|
||||
|
||||
* Based on new snapshot (tagged with debian-0.9--git090624-1)
|
||||
- Session saving support has been added, but not loaded by default
|
||||
- Theming support has been removed (native GUI theming should be used
|
||||
instead, e.g. GTK theming)
|
||||
* Bumped Standards-Version to 3.8.2 (no changes)
|
||||
* Replaced deprecated dh_clean -k by dh_prep and bumped debhelper
|
||||
compatibility to 7.
|
||||
* Removed deprecated dh_desktop. May cause not immediately registered
|
||||
.desktop files on Debian Lenny.
|
||||
* Moved MPL from debian/copyright to debian/MPL to allow compression in
|
||||
the installed binary packages (as with the xulrunner-1.9 packages)
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org> Thu, 25 Jun 2009 01:02:45 +0200
|
||||
|
||||
conkeror (0.9~git090223-1) unstable; urgency=low
|
||||
|
||||
* Debian packaging is now hosted in the upstream repository at
|
||||
http://repo.or.cz/w/conkeror.git:
|
||||
- Adjusted the Vcs-* headers in debian/control.
|
||||
- Changed the build id to contain username and hostname instead of
|
||||
commit id.
|
||||
* Based on new snapshot (tagged with debian-0.9--git090223-1)
|
||||
- spawn-process-helper has been renamed upstream to
|
||||
conkeror-spawn-helper -- package names remain unchanged, conflict to
|
||||
earlier versions of conkeror-spawn-process-helper
|
||||
- Links on mouse over images now shown
|
||||
- command switch -uu for universal-arg of following -f command
|
||||
* Added NEWS.Debian to list changes relevant for users.
|
||||
* Added README.source which documents how to build a Debian (source)
|
||||
package from a Git working copy.
|
||||
* Changed licencing of packaging from GPLv2 to the same licencing terms
|
||||
as Conkeror itself.
|
||||
* Updated debian/copyright to reflect current state of the project
|
||||
* man page conkeror.1 now part of upstream.
|
||||
* Added a call to dh_desktop (Thanks, Lintian 2.x!)
|
||||
* Added a description to patches/sensible-editor.diff (Thanks, Lintian 2.x!)
|
||||
* Replaced lintian overrides by an empty watch file with comment.
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org> Mon, 23 Feb 2009 19:19:19 +0100
|
||||
|
||||
conkeror (0.9~git080629-2) unstable; urgency=low
|
||||
|
||||
* Don't suppress conkeror's output if we don't have to change it in the
|
||||
wrapper [conkeror.bin]. (Closes: #498515)
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org> Thu, 25 Sep 2008 01:40:07 +0200
|
||||
|
||||
conkeror (0.9~git080629-1) unstable; urgency=low
|
||||
|
||||
* Based on new snapshot (commit
|
||||
6944096a1af033d0aa70d8b4cc19b271e0d832b1)
|
||||
* Uses now quilt for patch management, added appropriate build-deps.
|
||||
* Use sensible-editor instead of emacs by default.
|
||||
* Changed default desktop icon from "web-browser.png" to
|
||||
"browser". (Closes: #491880; fixes a desktop-file-validate warning)
|
||||
* Made M-x conkeror-version show the Debian version instead of
|
||||
'$CONKEROR_VERSION$'.
|
||||
* Remove suggestion of zile since conkeror currently can't handle
|
||||
text-mode only editors. Suggest the virtual package emacsen instead.
|
||||
* Depends now on "xulrunner (>= 1.9~) | xulrunner-1.9" instead of solely
|
||||
"xulrunner-1.9".
|
||||
* Added a lintian override for debian-watch-file-is-missing since there
|
||||
are no upstream releases to watch (yet).
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org> Thu, 24 Jul 2008 00:49:28 +0200
|
||||
|
||||
conkeror (0.9~git080522-2) unstable; urgency=low
|
||||
|
||||
* Initial release for Debian (Closes: #394566)
|
||||
* Cleaned up and removed files and directories not in the upstream git
|
||||
repository.
|
||||
* Unified file names in the debian directory.
|
||||
* Bumped standards version to 3.8.0.
|
||||
* Removed -height and -width options from man page and --help since them
|
||||
being documented but not working is an open bug in Mozilla since 2000.
|
||||
(See #267344 and https://bugzilla.mozilla.org/show_bug.cgi?id=50201)
|
||||
* Added some more details to the man page.
|
||||
* Added a CREDITS.Debian file.
|
||||
* Added an automatically generated build id to application.ini. (See
|
||||
http://developer.mozilla.org/en/docs/application.ini#The_.5BApp.5D_section)
|
||||
* Added the Debian version to the version string in application.ini.
|
||||
* Added a desktop file for conkeror.
|
||||
* Made several several cosmetic changes to docs, etc.
|
||||
* Added Luca Capello as co-maintainer.
|
||||
* conkeror-spawn-process-helper now suggests conkeror.
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org> Thu, 26 Jun 2008 01:31:32 +0200
|
||||
|
||||
conkeror (0.9~git080522-1) unstable; urgency=low
|
||||
|
||||
* Initial release for beta testers
|
||||
* Based on commit fead87b7fa1156e750dcb01f903e6b8a35e43a37
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org> Sun, 08 Jun 2008 23:08:34 +0200
|
|
@ -0,0 +1 @@
|
|||
9
|
|
@ -0,0 +1,2 @@
|
|||
usr/share/conkeror
|
||||
usr/lib/conkeror
|
|
@ -0,0 +1,5 @@
|
|||
debian/MPL
|
||||
debian/README.Debian
|
||||
debian/CREDITS.Debian
|
||||
CREDITS
|
||||
|
|
@ -0,0 +1 @@
|
|||
conkeror-spawn-helper usr/lib/conkeror
|
|
@ -0,0 +1 @@
|
|||
usr/lib/conkeror/conkeror-spawn-helper usr/share/conkeror/conkeror-spawn-helper
|
|
@ -0,0 +1,422 @@
|
|||
conkeror (1.0~~pre+git130407-1) experimental; urgency=low
|
||||
|
||||
* Spellchecking is no longer enabled by default. To allow Gecko to
|
||||
decorate your text boxes with red marks, put the following in your
|
||||
rc: session_pref("layout.spellcheckDefault", 1);
|
||||
|
||||
* The deprecated procedures add_delicious_webjumps and
|
||||
add_lastfm_webjumps have now been removed. Use
|
||||
define_delicious_webjumps and define_lastfm_webjumps instead.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Mon, 04 Mar 2013 20:32:59 +0100
|
||||
|
||||
conkeror (1.0~~pre+git120527-1) unstable; urgency=low
|
||||
|
||||
* hints-minibuffer-annotation-mode is now enabled by default. To disable:
|
||||
|
||||
hints_minibuffer_annotation_mode(false);
|
||||
|
||||
* Variable hints_display_url_panel removed. Instead of the url-panel,
|
||||
Conkeror now has hints-minibuffer-annotation-mode. To use it:
|
||||
|
||||
hints_minibuffer_annotation_mode(true);
|
||||
|
||||
* buffer_loaded_hook now fires only for the main document of the buffer,
|
||||
not documents in subframes.
|
||||
|
||||
* The test property of page-mode objects is now an array.
|
||||
|
||||
* in_module removed
|
||||
|
||||
The module system introduced 2010-03-19 had a fatal flaw in its
|
||||
design. We have known about this for quite some time, but fixing it
|
||||
was a complex undertaking. Now the 'in_module' procedure has been
|
||||
removed from the program, because it doesn't work, and a new module
|
||||
system has been added, the jsx module system.
|
||||
|
||||
Anybody who has written a module that is not part of Conkeror will
|
||||
need to update their code. Remove uses of 'in_module'. If you only did
|
||||
'in_module(null);' then you can just remove that line and you are
|
||||
done. If you used 'in_module("module_name");' you will need to remove
|
||||
that, and rename your file to have the extension ".jsx". The rest of
|
||||
the filename should match the name of the module, except using hyphens
|
||||
to separate words.
|
||||
|
||||
* skip_module_load removed
|
||||
|
||||
* casual-spelling.js renamed to casual-spelling.jsx
|
||||
|
||||
* The "up-url" browser object will now trim a #ref fragment as one of its
|
||||
steps. New buffers with an opener buffer in the same window open to the
|
||||
right of their opener.
|
||||
|
||||
* build_url_regex renamed to build_url_regexp
|
||||
|
||||
* choice_regex renamed to choice_regexp
|
||||
|
||||
* Call forms of define_buffer_mode and define_page_mode changed. See
|
||||
http://conkeror.org/WritingBufferModes and
|
||||
http://conkeror.org/WritingPageModes.
|
||||
|
||||
* auto_mode_alist no longer exists.
|
||||
|
||||
The way to deactivate page-modes has changed.
|
||||
|
||||
Instead of the old way of doing complicated array manipulations on
|
||||
'auto_mode_list', the new way is much simpler. If I want to deactivate
|
||||
xkcd-mode for example (make it so it won't automatically turn on when
|
||||
I visit xkcd), I do the following:
|
||||
|
||||
page_mode_deactivate(xkcd_mode);
|
||||
|
||||
The call form to enable or disable a buffer-mode or page-mode in javascript has changed.
|
||||
|
||||
(Note the distinction between 'deactivating' and 'disabling'.) Instead
|
||||
of the mode being a function that takes a flag -1/+1 or true/false
|
||||
(like in emacs), it is now an object with 'enable' and 'disable'
|
||||
methods:
|
||||
|
||||
some_mode.enable(buffer);
|
||||
|
||||
some_mode.disable(buffer);
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sun, 27 May 2012 16:37:13 +0200
|
||||
|
||||
conkeror (1.0~~pre+git120102-1) unstable; urgency=low
|
||||
|
||||
* clusty webjump removed. clusty no longer exists.
|
||||
|
||||
* The copy command now copies the action attribute of the form when
|
||||
called on a submit button.
|
||||
|
||||
* Google-maps: changed bindings '+' and '-' to 'C-c +' and 'C-c -',
|
||||
because it is poor practice to override basic browsing keys then they
|
||||
are still clearly useful on the site in question.
|
||||
|
||||
* Renamed get_file_in_path to find_file_in_path.
|
||||
|
||||
* Formfill is now enabled by default. To turn it off, do:
|
||||
session_pref("browser.formfill.enable", false);
|
||||
|
||||
* youtube_scrape_function and associated helpers removed.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sun, 27 May 2012 16:37:13 +0200
|
||||
|
||||
conkeror (0.9.3+git110307-2) unstable; urgency=low
|
||||
|
||||
The search order for searching xulrunner binaries has been changed
|
||||
since current state became quite confusing:
|
||||
|
||||
/usr/bin/conkeror first looked for the xulrunner of Squeeze and Sid
|
||||
(1.9.1), then the (former) experimental xulrunner (1.9.2), then the
|
||||
one from Lenny (1.9.0/generic 1.9), then the current one from
|
||||
experimental (2.0), and then for generic ones like the one from
|
||||
Sarge.
|
||||
|
||||
It now looks first for xulrunner 2.0, then 1.9.2, then 1.9.1, then
|
||||
1.9 (aka 1.9.0) and then for a xulrunner binary without version
|
||||
suffix (as e.g. xulrunner 1.8 from Sarge used to be called). This
|
||||
means it now checks for the highest version first, then checks for
|
||||
lower and less specific versions, taking the generic one as last
|
||||
one.
|
||||
|
||||
This should be more future-proof and is less Debian-centric,
|
||||
i.e. helps Debian-based distributions which maintain their own
|
||||
xulrunner packages. But it also helps people who have the xulrunner
|
||||
packages from experimental installed as conkeror now uses the xulrunner
|
||||
version from experimental if it is installed.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Tue, 08 Mar 2011 16:41:21 +0100
|
||||
|
||||
conkeror (0.9.3+git110213-1) unstable; urgency=low
|
||||
|
||||
* The format of the auto-save session file has changed slightly to be
|
||||
more robust. Conkeror automatically converts the file on first usage.
|
||||
|
||||
* In the new-tabs module, the widgets that show the buffer index in each
|
||||
tab now have the class "tab2-index" instead of "tab2-icon". This
|
||||
change affects anybody who has written a theme which styles the
|
||||
new-tabs tab bar.
|
||||
|
||||
* The variable edit_field_in_external_editor_extension has been removed,
|
||||
and superseded by a mime-type table
|
||||
external_editor_extension_overrides which maps mime types to
|
||||
extensions. If you previously used this variable to set the temp file
|
||||
extension to "foo", for example, you would update your rc to now do
|
||||
the following:
|
||||
|
||||
external_editor_extension_overrides.set("text/plain", "foo");
|
||||
|
||||
* The function get_filename_for_current_textfield has been superseded by
|
||||
external_editor_make_base_filename, which takes as its arguments the
|
||||
root element being edited and the top document of the buffer
|
||||
containing the element. The top document is more useful than the
|
||||
element's own ownerDocument in some cases, such as when about:blank is
|
||||
used for the document of an editable iframe. The new function returns
|
||||
only the base filename, with no extension, as the extension is
|
||||
generated by means described above.
|
||||
|
||||
* buffer_favicon_change_hook renamed to buffer_icon_change_hook
|
||||
|
||||
* current_buffer_favicon_change_hook renamed to
|
||||
current_buffer_icon_change_hook
|
||||
|
||||
* reddit-mode is no longer loaded by default. Consensus was that it is a
|
||||
confusing mode, mainly because of how it overrides several default
|
||||
browser objects. If you use this mode, you will now need to load it by
|
||||
putting the following in your rc:
|
||||
|
||||
require("reddit");
|
||||
|
||||
* Module search-engine.js replaced by opensearch.js. API for defining
|
||||
opensearch webjumps has changed to be more conventional. Opensearch
|
||||
webjumps can now be defined like either of the following:
|
||||
|
||||
define_opensearch_webjump("foo", make_file("/opensearch/files/foo.xml"));
|
||||
|
||||
opensearch_load_paths.unshift(make_file("/opensearch/files/"));
|
||||
define_opensearch_webjump("foo", "foo.xml");
|
||||
|
||||
* The browser object browser-object-links, which is used by follow,
|
||||
copy, etc, no longer matches anchors which do not have an href
|
||||
attribute.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sun, 13 Feb 2011 18:47:03 +0100
|
||||
|
||||
conkeror (0.9.3+git101015-1) experimental; urgency=low
|
||||
|
||||
* The eval-expression command (M-:) now evaluates directly in
|
||||
application scope. This lets you do things like set user variables and
|
||||
define functions without fully qualifying names with "conkeror.".
|
||||
|
||||
* Page-modes no longer bind alternative keys for keys that they shadow
|
||||
in the normal keymaps. These were bindings like 'C-c f' for follow,
|
||||
etc. The key C-z can now be used as a prefix to access bindings that
|
||||
are shadowed by a page-mode keymap.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Fri, 15 Oct 2010 00:29:44 +0200
|
||||
|
||||
conkeror (0.9.3-1) experimental; urgency=low
|
||||
|
||||
* Input-modes removed. Instead of an input-mode display in the
|
||||
minibuffer, there is now a keymaps-display.
|
||||
|
||||
- quote-next-input-mode renamed to quote-next-mode
|
||||
- gmail_edit_keymap removed (no longer necessary)
|
||||
- buffer-reset-input-mode command removed (no longer necessary)
|
||||
|
||||
* overlink_mode rewritten
|
||||
|
||||
- content_buffer_overlink_change_hook removed
|
||||
- current_content_buffer_overlink_change_hook removed
|
||||
|
||||
* Hinting now performs a case-sensitive match if the user's text
|
||||
includes upper-case letters.
|
||||
|
||||
* stackoverflow-mode has been renamed to stackexchange-mode.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Wed, 06 Oct 2010 21:02:21 +0200
|
||||
|
||||
conkeror (0.9.2+git100804-1) unstable; urgency=low
|
||||
|
||||
* Editing in the minibuffer is now done with the normal editing commands
|
||||
instead of a special set of editing commands. All of the editing
|
||||
commands which begin with the prefix "minibuffer-" have been
|
||||
removed. Also, editing commands are now bound in the keymap
|
||||
text_keymap instead of content_buffer_text_keymap and
|
||||
minibuffer_base_keymap. If you have written custom bindings for
|
||||
editing in your rc, you will need to change [pairs of] bindings like
|
||||
this:
|
||||
|
||||
define_key(minibuffer_base_keymap, "C-l", "minibuffer-forward-char");
|
||||
define_key(content_buffer_text_keymap, "C-l", "forward-char");
|
||||
|
||||
to this:
|
||||
|
||||
define_key(text_keymap, "C-l", "forward-char");
|
||||
|
||||
* In hinting mode, right and left are no longer bound to
|
||||
next/previous-hint. Hinting mode now supports editing in the
|
||||
minibuffer, so right and left move the cursor. Down, up, C-n, C-p,
|
||||
C-s, and C-r are all bound to next/previous-hint.
|
||||
|
||||
* Due to a change in Mozilla as of XULRunner 1.9.3a5pre, Conkeror's
|
||||
feature of automatically loading glue code for extensions is no longer
|
||||
possible. This means that when you have one of the previously
|
||||
supported extensions installed, you will no longer automatically have
|
||||
Conkeror commands for using the extension. The extensions that were
|
||||
previously supported in this way were adblockplus, dom-inspector,
|
||||
noscript, and venkman. If you have any of these extensions installed,
|
||||
you will now have to load the glue module from your rc, with a line
|
||||
like the following, substituting in the appropriate module name:
|
||||
|
||||
require("dom-inspector");
|
||||
|
||||
With some of these modules, loading the module when the extension is
|
||||
not installed could result in an error, so to be safe, you could wrap
|
||||
the call to 'require' in a try/catch block:
|
||||
|
||||
try { require("dom-inspector"); } catch (e) {}
|
||||
|
||||
Further information: http://bugs.conkeror.org/issue272
|
||||
|
||||
* The variable download_buffer_automatic_open_target can no longer be an
|
||||
array of two targets. This is a reversion from 2009-06-07 back to how
|
||||
it was before. The behavior of the download-show command is now
|
||||
configured independently of this variable. To configure download-show,
|
||||
use set_handler and alternates. The following handlers are provided:
|
||||
download_show_new_window, download_show_new_buffer,
|
||||
download_show_new_buffer_background. The default handler of
|
||||
download_show is alternates(download_show_new_buffer,
|
||||
download_show_new_window).
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Wed, 04 Aug 2010 23:04:22 +0200
|
||||
|
||||
conkeror (0.9.2+git100420-2) unstable; urgency=low
|
||||
|
||||
* Function load_rc no longer supports loading arbitrary js files. Use
|
||||
load instead.
|
||||
|
||||
* Function load_rc_file removed. Use load instead.
|
||||
|
||||
* call_after_load now takes a feature name, not a filename. In general
|
||||
this simply means trimming off any ".js" extension.
|
||||
|
||||
* Modules API overhaul (already included in 0.9.2-1 and caused the
|
||||
uploads 0.9.2+git100324-1 and -2):
|
||||
- Modules should have an in_module assertion as their first
|
||||
expression. For modules to be loaded directly into application
|
||||
scope, it should be in_module(null);
|
||||
- Modules should have as their last expression a provide call, like
|
||||
provide("feature"); where "feature" is the name of the feature
|
||||
provided by the module.
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Tue, 20 Apr 2010 23:38:49 +0200
|
||||
|
||||
conkeror (0.9.1+git100317-1) unstable; urgency=low
|
||||
|
||||
* emacswiki webjump removed. better version posted on
|
||||
http://conkeror.org/Webjumps
|
||||
|
||||
* M-< and home keys now scroll to the top left corner of the buffer.
|
||||
|
||||
* minibuffer.read_url now returns a load_spec instead of a simple
|
||||
string.
|
||||
|
||||
* The command confirm-quit has been removed. To have a quit
|
||||
confirmation, see the code example on
|
||||
http://conkeror.org/BreakingChanges
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Wed, 17 Mar 2010 02:04:20 +0100
|
||||
|
||||
conkeror (0.9.1+git100131-1) unstable; urgency=low
|
||||
|
||||
Please see http://conkeror.org/BreakingChanges for the complete list of
|
||||
breaking changes. Just the most important ones are listed here.
|
||||
|
||||
* mime_type_external_handlers removed. Replaced by
|
||||
external_content_handlers.
|
||||
|
||||
* define_buffer_mode, define_input_mode, and define_page_mode no longer
|
||||
take display_name or doc as positional arguments. They are now given
|
||||
as keyword arguments: $display_name and $doc.
|
||||
|
||||
* The variable browser_automatic_form_focus_window_duration was renamed
|
||||
to block_content_focus_change_duration.
|
||||
|
||||
* The commands follow-current, follow-current-new-buffer,
|
||||
follow-current-new-buffer-background, and follow-current-new-window
|
||||
have been removed.
|
||||
|
||||
* browser_prevent_automatic_form_focus_mode has been renamed and put in
|
||||
its own file. To use this mode, simply do this:
|
||||
require("block-content-focus-change.js");
|
||||
|
||||
* The default of hints_auto_exit_delay has been changed to 0.
|
||||
|
||||
This change means that by default, the user has to hit return to exit
|
||||
the hints interaction. This change makes Conkeror's UI more
|
||||
predictable for new users, less prone to run unintended commands
|
||||
because of extra keystrokes outside the timeout window, and removes
|
||||
assumptions about people's typing speed, browsing style, and focus of
|
||||
attention when using the hints system.
|
||||
|
||||
To use the hints-auto-exit feature, put a line like the following in
|
||||
your rc, adjusting the number to suit your preference. 500 was the old
|
||||
default.
|
||||
|
||||
hints_auto_exit_delay = 500;
|
||||
|
||||
-- Axel Beckert <abe@debian.org> Sun, 31 Jan 2010 17:55:04 +0100
|
||||
|
||||
conkeror (0.9~git090708-1) unstable; urgency=low
|
||||
|
||||
The conkeror Debian package now works with the upcoming experimental
|
||||
xulrunner-1.9.1 packages (see http://glandium.org/blog/?p=370) in
|
||||
Debian, too.
|
||||
|
||||
Since conkeror still throws much more warnings with xulrunner 1.9.1 than
|
||||
with 1.9.0.x, for now the package currently prefers 1.9.0.x over 1.9.1
|
||||
if both are installed.
|
||||
|
||||
Call "xulrunner-1.9.1 /usr/share/conkeror/application.ini" if you have
|
||||
xulrunner-1.9 and xulrunner-1.9.1 installed and want to checkout
|
||||
conkeror in combination with xulrunner 1.9.1.
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org> Wed, 08 Jul 2009 20:48:36 +0200
|
||||
|
||||
conkeror (0.9~git090617-1) unstable; urgency=low
|
||||
|
||||
There were a few changes since the last conkeror version in Debian which
|
||||
may cause troubles to users of the previous version.
|
||||
|
||||
Short summary follows:
|
||||
* The key bindings `<<` and `>>` are now simply `<` and `>`.
|
||||
* page-mode keymaps are now declared in the `define_page_mode` form with
|
||||
a new keyword argument, `$keymaps`. See
|
||||
http://conkeror.org/WritingPageModes for more information about the
|
||||
new style.
|
||||
* `default_directory` and `set_default_directory` have been removed and
|
||||
replaced by the variable `cwd`.
|
||||
* buffer-local variables are now indexed by `buffer.local.foo`.
|
||||
page-local variables are indexed by `buffer.page.local.foo`.
|
||||
* The command `send-ret` was removed since it is redundant of the
|
||||
module `global-overlay-keymap`.
|
||||
* Buffer-local cwd is no longer set or inherited automatically.
|
||||
* `download-cancel` is now bound to `d` instead of `C-g`, and it asks
|
||||
for confirmation.
|
||||
* In order to make Conkeror compatible with native toolkit theming,
|
||||
Conkeror's themes have undergone a big rewrite:
|
||||
- Conkeror no longer specifies its own gui colors.
|
||||
- The blackened theme no longer exists.
|
||||
- It is no longer possible to theme scrollbars.
|
||||
From now on, the right way to change Conkeror's gui colors is to do so
|
||||
at the OS level, for example, with a GTK theme.
|
||||
* Conkeror has now session saving support. See
|
||||
http://conkeror.org/Sessions for details.
|
||||
|
||||
See http://article.gmane.org/gmane.comp.mozilla.conkeror/1547 and
|
||||
http://thread.gmane.org/gmane.comp.mozilla.conkeror/1451 for the
|
||||
details and what to change in case you run over some removed or renamed
|
||||
functions or variables.
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org> Wed, 17 Jun 2009 00:04:58 +0200
|
||||
|
||||
conkeror (0.9~git090223-1) unstable; urgency=low
|
||||
|
||||
There were a few changes since the last conkeror version in Debian which
|
||||
may cause troubles to users of the previous version:
|
||||
* Changes to the behaviour of the universal argument C-u.
|
||||
* Loads now ~/.conkerorrc as the default rc file
|
||||
* Many simple webjumps previously enabled by default have been removed
|
||||
from upstream. Non-default webjumps are now collected and shared at
|
||||
http://conkeror.org/Webjumps
|
||||
* Many additional keybindings, e.g.
|
||||
- pasting current paste buffer content bound to `C-y'
|
||||
- new command `submit-form' bound to `C-c C-c' in forms
|
||||
* Incremental search for URLs in the mini-buffer can currently include
|
||||
_either_ the history or the bookmarks, but not both at the same
|
||||
time. See http://bugs.conkeror.org/issue10 for details on choosing
|
||||
which one to use.
|
||||
|
||||
-- Axel Beckert <abe@deuxchevaux.org> Mon, 23 Feb 2009 21:04:41 +0100
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
for xrrbhs in /usr/lib/xulrunner-*/reportbug-helper-script; do
|
||||
$xrrbhs conkeror
|
||||
done
|
|
@ -0,0 +1,77 @@
|
|||
[Desktop Entry]
|
||||
Name=Conkeror Web Browser
|
||||
Name[bg]=Интернет браузър (Conkeror)
|
||||
Name[ca]=Navegador web Conkeror
|
||||
Name[cs]=Conkeror Webový prohlížeč
|
||||
Name[el]=Περιηγήτης Ιστού Conkeror
|
||||
Name[es]=Navegador web Conkeror
|
||||
Name[fa]=مرورگر اینترنتی Conkeror
|
||||
Name[fi]=Conkeror-webselain
|
||||
Name[fr]=Navigateur Web Conkeror
|
||||
Name[hu]=Conkeror webböngésző
|
||||
Name[it]=Conkeror Browser Web
|
||||
Name[ja]=Conkeror ウェブ・ブラウザ
|
||||
Name[ko]=Conkeror 웹 브라우저
|
||||
Name[nb]=Conkeror Nettleser
|
||||
Name[nl]=Conkeror webbrowser
|
||||
Name[nn]=Conkeror Nettlesar
|
||||
Name[no]=Conkeror Nettleser
|
||||
Name[pl]=Przeglądarka WWW Conkeror
|
||||
Name[pt]=Conkeror Navegador Web
|
||||
Name[pt_BR]=Navegador Web Conkeror
|
||||
Name[sk]=Internetový prehliadač Conkeror
|
||||
Name[sv]=Webbläsaren Conkeror
|
||||
Comment=Browse the World Wide Web
|
||||
Comment[bg]=Сърфиране в Мрежата
|
||||
Comment[ca]=Navegueu per el web
|
||||
Comment[cs]=Prohlížení stránek World Wide Webu
|
||||
Comment[de]=Im Internet surfen
|
||||
Comment[el]=Περιηγηθείτε στον παγκόσμιο ιστό
|
||||
Comment[es]=Navegue por la web
|
||||
Comment[fa]=صفحات شبکه جهانی اینترنت را مرور نمایید
|
||||
Comment[fi]=Selaa Internetin www-sivuja
|
||||
Comment[fr]=Navigue sur Internet
|
||||
Comment[hu]=A világháló böngészése
|
||||
Comment[it]=Esplora il web
|
||||
Comment[ja]=ウェブを閲覧します
|
||||
Comment[ko]=웹을 돌아 다닙니다
|
||||
Comment[nb]=Surf på nettet
|
||||
Comment[nl]=Verken het internet
|
||||
Comment[nn]=Surf på nettet
|
||||
Comment[no]=Surf på nettet
|
||||
Comment[pl]=Przeglądanie stron WWW
|
||||
Comment[pt]=Navegue na Internet
|
||||
Comment[pt_BR]=Navegue na Internet
|
||||
Comment[sk]=Prehliadanie internetu
|
||||
Comment[sv]=Surfa på webben
|
||||
GenericName=Web Browser
|
||||
GenericName[bg]=Интернет браузър
|
||||
GenericName[ca]=Navegador web
|
||||
GenericName[cs]=Webový prohlížeč
|
||||
GenericName[el]=Περιηγητής ιστού
|
||||
GenericName[es]=Navegador web
|
||||
GenericName[fa]=مرورگر اینترنتی
|
||||
GenericName[fi]=Webselain
|
||||
GenericName[fr]=Navigateur Web
|
||||
GenericName[hu]=Webböngésző
|
||||
GenericName[it]=Browser Web
|
||||
GenericName[ja]=ウェブ・ブラウザ
|
||||
GenericName[ko]=웹 브라우저
|
||||
GenericName[nb]=Nettleser
|
||||
GenericName[nl]=Webbrowser
|
||||
GenericName[nn]=Nettlesar
|
||||
GenericName[no]=Nettleser
|
||||
GenericName[pl]=Przeglądarka WWW
|
||||
GenericName[pt]=Navegador Web
|
||||
GenericName[pt_BR]=Navegador Web
|
||||
GenericName[sk]=Internetový prehliadač
|
||||
GenericName[sv]=Webbläsare
|
||||
Exec=conkeror %u
|
||||
Terminal=false
|
||||
X-MultipleArgs=false
|
||||
Type=Application
|
||||
Icon=browser
|
||||
Categories=Network;WebBrowser;
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;image/gif;image/jpeg;image/png;
|
||||
StartupWMClass=Conkeror
|
||||
StartupNotify=true
|
|
@ -0,0 +1,6 @@
|
|||
usr/bin
|
||||
usr/share/conkeror
|
||||
usr/share/conkeror/contrib
|
||||
usr/share/conkeror/components
|
||||
usr/share/applications
|
||||
usr/share/man/man1
|
|
@ -0,0 +1,3 @@
|
|||
debian/MPL
|
||||
debian/CREDITS.Debian
|
||||
CREDITS
|
|
@ -0,0 +1,4 @@
|
|||
application.ini branding chrome components content defaults locale modules search-engines help style *.manifest usr/share/conkeror
|
||||
contrib/xrev contrib/art contrib/modules usr/share/conkeror/contrib
|
||||
debian/conkeror.desktop usr/share/applications
|
||||
debian/bin/conkeror usr/bin
|
|
@ -0,0 +1,9 @@
|
|||
# Non-standard Xul-AppId header needed for mozilla-devscripts (see bug
|
||||
# #562986 and http://wiki.debian.org/mozilla-devscripts)
|
||||
conkeror binary: unknown-field-in-control xul-appid
|
||||
|
||||
# Conkeror fails if these versions are just only unpacked, hence
|
||||
# Conflicts, not only Breaks. See http://bugs.debian.org/683157
|
||||
conkeror: conflicts-with-version xulrunner-15.0 (<< 15.0~b3)
|
||||
conkeror: conflicts-with-version xulrunner-16.0 (<< 16.0~a2+20120803042008)
|
||||
|
|
@ -0,0 +1 @@
|
|||
contrib/man/conkeror.1
|
|
@ -0,0 +1,3 @@
|
|||
?package(conkeror):needs="X11" section="Applications/Network/Web Browsing"\
|
||||
longtitle="Conkeror, a keyboard-focused web browser modelled after Emacs and Lynx"\
|
||||
title="Conkeror" command="/usr/bin/conkeror"
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
update-alternatives --install /usr/bin/x-www-browser \
|
||||
x-www-browser /usr/bin/conkeror 20 \
|
||||
--slave /usr/share/man/man1/x-www-browser.1.gz \
|
||||
x-www-browser.1.gz /usr/share/man/man1/conkeror.1.gz
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [ "$1" = "remove" -o "$1" = "deconfigure" ] ; then
|
||||
update-alternatives --remove x-www-browser /usr/bin/conkeror
|
||||
fi
|
||||
|
||||
#DEBHELPER#
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,77 @@
|
|||
Source: conkeror
|
||||
Section: web
|
||||
Priority: extra
|
||||
Maintainer: Axel Beckert <abe@debian.org>
|
||||
Build-Depends: debhelper (>= 9~),
|
||||
dpkg-dev (>= 1.16.1~)
|
||||
Standards-Version: 3.9.5
|
||||
Homepage: http://conkeror.org/
|
||||
Vcs-Browser: http://repo.or.cz/w/conkeror.git
|
||||
Vcs-Git: git://repo.or.cz/conkeror.git
|
||||
|
||||
Package: conkeror
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends},
|
||||
xulrunner-24.0 |
|
||||
xulrunner-28 |
|
||||
xulrunner-27 |
|
||||
xulrunner-26.0 |
|
||||
xulrunner-25.0 |
|
||||
xulrunner-23.0 |
|
||||
xulrunner-22.0 |
|
||||
xulrunner-21.0 |
|
||||
xulrunner-20.0 |
|
||||
xulrunner-19.0 |
|
||||
xulrunner-18.0 |
|
||||
xulrunner-17.0 |
|
||||
xulrunner-16.0 (>= 16.0~a2+20120803042008) |
|
||||
xulrunner-15.0 (>= 15.0~b3) |
|
||||
xulrunner-13.0 |
|
||||
xulrunner-12.0 |
|
||||
xulrunner-11.0 |
|
||||
xulrunner-10.0 |
|
||||
xulrunner-9.0 |
|
||||
xulrunner-8.0 |
|
||||
xulrunner-7.0 |
|
||||
xulrunner-6.0 |
|
||||
xulrunner-5.0 |
|
||||
xulrunner-2.0 |
|
||||
xulrunner-1.9.2 |
|
||||
xulrunner-1.9.1 |
|
||||
firefox (>= 3.5)
|
||||
Recommends: conkeror-spawn-process-helper,
|
||||
xdg-utils
|
||||
Breaks: conkeror-spawn-process-helper (<< 0.9~git080901-1)
|
||||
Conflicts: xulrunner-16.0 (<< 16.0~a2+20120803042008),
|
||||
xulrunner-15.0 (<< 15.0~b3)
|
||||
Suggests: emacs | emacsen
|
||||
Provides: www-browser
|
||||
Xb-Xul-AppId: {a79fe89b-6662-4ff4-8e88-09950ad4dfde}
|
||||
Description: keyboard focused web browser with Emacs look and feel
|
||||
Conkeror is a highly-programmable web browser based on Mozilla
|
||||
XULRunner which is the base of all Mozilla products including
|
||||
Firefox. Conkeror has a sophisticated keyboard system for running
|
||||
commands and interacting with web page content, modelled after Emacs
|
||||
and Lynx. It is self-documenting and extensible with JavaScript.
|
||||
.
|
||||
It comes with builtin support for several Web 2.0 sites like several
|
||||
Google services (Search, Gmail, Maps, Reader, etc.), Del.icio.us,
|
||||
Reddit, Last.fm and YouTube. For easier editing of form fields, it
|
||||
can spawn external editors. For this feature the recommended
|
||||
conkeror-spawn-process-helper package needs to be installed.
|
||||
.
|
||||
Despite its very similar sounding name, Conkeror is not related to
|
||||
the KDE web browser and file manager Konqueror in any way.
|
||||
|
||||
Package: conkeror-spawn-process-helper
|
||||
Architecture: any
|
||||
Depends: ${misc:Depends},
|
||||
${shlibs:Depends}
|
||||
Suggests: conkeror
|
||||
Breaks: conkeror (<< 0.9~git080901-1)
|
||||
Description: spawn external processes in Conkeror
|
||||
This helper tool named conkeror-spawn-helper is necessary to let the
|
||||
Conkeror web browser spawn external process, e.g. to edit form fields
|
||||
in an external program. It was previously named spawn-process-helper.
|
||||
.
|
||||
Maybe helpful for other XULRunner based applications, too.
|
|
@ -0,0 +1,40 @@
|
|||
This package was debianized by Axel Beckert <abe@deuxchevaux.org> on
|
||||
Sat, 19 Apr 2008 03:39:31 +0200.
|
||||
|
||||
It was downloaded from its GIT repository at
|
||||
http://repo.or.cz/w/conkeror.git
|
||||
|
||||
Upstream Authors:
|
||||
|
||||
Jeremy Maitin-Shepard <jeremy@jeremyms.com>
|
||||
John Foerch <jjfoerch@earthlink.net>
|
||||
Shawn Betts
|
||||
|
||||
See the CREDITS file for more details on contributors.
|
||||
|
||||
Copyright:
|
||||
|
||||
Copyright (C) 2004-2009 Shawn Betts
|
||||
Copyright (C) 2006-2008 Martin Stubenschrott
|
||||
Copyright (C) 2006 Sylvain Pasche
|
||||
Copyright (C) 2007-2009 John J. Foerch
|
||||
Copyright (C) 2007-2009 Jeremy Maitin-Shepard
|
||||
Copyright (C) 2007 Doug Kearns
|
||||
Copyright (C) 2008 Ævar Arnfjörð Bjarmason
|
||||
Copyright (C) 2008 David Glasser
|
||||
Copyright (C) 2008 Eli Naeher
|
||||
Copyright (C) 2008 Martin Dybdal
|
||||
Copyright (C) 2008 Nelson Elhage
|
||||
Copyright (C) 2008 Will Farrington
|
||||
Copyright (C) 2008 David Kettler
|
||||
|
||||
License:
|
||||
|
||||
Conkeror is triple-licensed under MPL 1.1 (see file MPL in the
|
||||
same directory), GPL 2 (see `/usr/share/common-licenses/GPL-2') or
|
||||
LGPL 2.1 (see `/usr/share/common-licenses/LGPL-2.1') at your
|
||||
option.
|
||||
|
||||
The Debian packaging is Copyright 2008-2009 by Axel Beckert
|
||||
<abe@deuxchevaux.org> and is licensed under the same terms as Conkeror
|
||||
itself.
|
|
@ -0,0 +1,43 @@
|
|||
Adds and enables some Debian and Ubuntu related webjumps which should
|
||||
not be inlcuded in upstream by default.
|
||||
|
||||
Index: conkeror/modules/debian/debian-webjumps.js
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ conkeror/modules/debian/debian-webjumps.js 2010-09-29 07:55:36.000000000 +0200
|
||||
@@ -0,0 +1,29 @@
|
||||
+/**
|
||||
+ * (C) Copyright 2008-2010 Axel Beckert
|
||||
+ *
|
||||
+ * Use, modification, and distribution are subject to the terms specified in the
|
||||
+ * COPYING file.
|
||||
+ *
|
||||
+ * Webjumps to interact with Debian and Ubuntu websites
|
||||
+**/
|
||||
+
|
||||
+require("webjump.js");
|
||||
+
|
||||
+// Debian //
|
||||
+define_webjump("debpkg", "http://packages.debian.org/%s");
|
||||
+define_webjump("debfile", "http://packages.debian.org/?searchon=contents&keywords=%s&mode=path&suite=unstable&arch=any");
|
||||
+define_webjump("debbugs", "http://bugs.debian.org/%s");
|
||||
+define_webjump("debpts", "http://packages.qa.debian.org/%s");
|
||||
+define_webjump("debpopcon", "http://qa.debian.org/popcon.php?package=%s");
|
||||
+define_webjump("buildd", "https://buildd.debian.org/%s");
|
||||
+define_webjump("buildd-ports", "http://buildd.debian-ports.org/%s");
|
||||
+define_webjump("debqa", "http://qa.debian.org/developer.php?login=%s");
|
||||
+define_webjump("debpopcon", "http://qa.debian.org/popcon.php?package=%s");
|
||||
+
|
||||
+// Ubuntu //
|
||||
+define_webjump("ubuntupkg", "http://packages.ubuntu.com/%s");
|
||||
+define_webjump("ubuntufile", "http://packages.ubuntu.com/search?searchon=contents&keywords=%s&mode=path&arch=any");
|
||||
+define_webjump("ubuntubugs", "http://bugs.launchpad.net/ubuntu/+source/%s");
|
||||
+define_webjump("launchpad", "https://launchpad.net/+search?field.text=%s");
|
||||
+
|
||||
+provide("debian-webjumps");
|
||||
Index: conkeror/defaults/preferences/debian-default-modules.js
|
||||
===================================================================
|
||||
--- conkeror.orig/defaults/preferences/debian-default-modules.js 2010-09-28 01:47:21.000000000 +0200
|
||||
+++ conkeror/defaults/preferences/debian-default-modules.js 2010-09-29 07:57:40.000000000 +0200
|
||||
@@ -0,0 +1,1 @@
|
||||
+pref("conkeror.load.debian/debian-webjumps", 1);
|
|
@ -0,0 +1,40 @@
|
|||
Let Debian's sensible-editor guess the editor and let xdg-open find
|
||||
the right application to open an file instead of hardcoded
|
||||
applications which may not be installed. Closes: #570086
|
||||
|
||||
Index: conkeror/modules/external-editor.js
|
||||
===================================================================
|
||||
--- conkeror.orig/modules/external-editor.js 2012-01-31 18:28:37.000000000 +0100
|
||||
+++ conkeror/modules/external-editor.js 2012-01-31 18:35:45.000000000 +0100
|
||||
@@ -5,7 +5,7 @@
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
-define_variable("editor_shell_command", getenv("VISUAL") || getenv("EDITOR") || "emacs",
|
||||
+define_variable("editor_shell_command", "/usr/bin/sensible-editor",
|
||||
"Shell command used to invoke an external editor.\n" +
|
||||
"This defaults to the value of the EDITOR environment variable. If " +
|
||||
"`run_external_editor_function' is non-null, it is used instead to " +
|
||||
Index: conkeror-1.0~~pre+git120518/modules/mime.js
|
||||
===================================================================
|
||||
--- conkeror-1.0~~pre+git120518.orig/modules/mime.js 2012-02-22 23:15:54.000000000 +0100
|
||||
+++ conkeror-1.0~~pre+git120518/modules/mime.js 2012-05-19 00:52:56.000000000 +0200
|
||||
@@ -70,16 +70,8 @@
|
||||
|
||||
define_mime_type_table("external_content_handlers",
|
||||
{
|
||||
- "*": getenv("EDITOR"),
|
||||
- text: { "*": getenv("EDITOR") },
|
||||
- image: { "*": "feh" },
|
||||
- video: { "*": "mplayer" },
|
||||
- audio: { "*": "mplayer" },
|
||||
- application: {
|
||||
- pdf: "evince",
|
||||
- postscript: "evince",
|
||||
- "x-dvi": "evince"
|
||||
- }
|
||||
+ "*": "xdg-open",
|
||||
+ text: { "*": "sensible-editor" }
|
||||
},
|
||||
"Structure associating MIME types and MIME type patterns with "+
|
||||
"the names of programs for handling those them. The key \"*\" "+
|
|
@ -0,0 +1,2 @@
|
|||
sensible-editor-xdg-open.diff
|
||||
deb-webjumps.diff
|
|
@ -0,0 +1,23 @@
|
|||
#!/usr/bin/make -f
|
||||
# -*- makefile -*-
|
||||
# Uncomment this to turn on verbose mode.
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
# Generating a xulrunner build id and other strings
|
||||
DEBIAN_VERSION := $(shell echo -n `head -1 debian/changelog | sed -e 's/^.*(\(.*\)).*$$/\\1/'`)
|
||||
BUILDID := $(shell echo -n `whoami`@`hostname`)_$(shell date +%s)
|
||||
USC = $(CURDIR)/debian/conkeror/usr/share/conkeror
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_install-indep:
|
||||
dh_install -i
|
||||
|
||||
# Add generated Build ID and Debian version to version output
|
||||
sed -e 's/BuildID=git/BuildID=${BUILDID}/;s/^Version=\(.*\)$$/Version=\1 (Debian-${DEBIAN_VERSION})/' \
|
||||
-i $(USC)/application.ini
|
||||
|
||||
# Use Debian version for M-x version output
|
||||
sed -e 's/Version=\(.*\)/Version=\1 (Debian-${DEBIAN_VERSION})/' \
|
||||
-i $(USC)/components/application.js
|
|
@ -0,0 +1 @@
|
|||
3.0 (quilt)
|
|
@ -0,0 +1 @@
|
|||
# We track Conkeror Git revisions, thus no need for a watch file.
|
|
@ -0,0 +1,22 @@
|
|||
/**
|
||||
* (C) Copyright 2004-2007 Shawn Betts
|
||||
* (C) Copyright 2007-2008 John J. Foerch
|
||||
* (C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
/* debugging prefs */
|
||||
|
||||
// enable output for dump()
|
||||
pref("browser.dom.window.dump.enabled", true);
|
||||
|
||||
pref("javascript.options.showInConsole", true);
|
||||
pref("javascript.options.strict", true);
|
||||
|
||||
// There is no reason not to use the cache within a session, though
|
||||
//pref("nglayout.debug.disable_xul_cache", true);
|
||||
|
||||
// This prevents cached versions of XUL and JavaScript files from being saved to disk
|
||||
pref("nglayout.debug.disable_xul_fastload", true);
|
|
@ -0,0 +1,55 @@
|
|||
/**
|
||||
* (C) Copyright 2008 Jeremy Maitin-Shepard
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
/**
|
||||
* This property can have three distinct meanings, depending on whether it is positive, zero, or negative.
|
||||
*
|
||||
* If it is positive, all modules corresponding to children of
|
||||
* conkeror.load. set to a positive number are loaded.
|
||||
*
|
||||
* If it is set to 0, only children of conkeror.load. that have a
|
||||
* positive user value (i.e. not just a default value) are loaded.
|
||||
*
|
||||
* If it is negative, no additional optional modules are loaded.
|
||||
*/
|
||||
pref("conkeror.loadDefaultModules", 1);
|
||||
|
||||
/**
|
||||
* This preference specifies a regular expression of additional
|
||||
* modules to load. Each module corresponding to a child of
|
||||
* "conkeror.load." set to a _non-negative_ value that matches this
|
||||
* regular expression (partial matches are not permitted) will be
|
||||
* loaded. These modules are loaded in addition to any modules loaded
|
||||
* according to the description of conkeror.loadDefaultModules above.
|
||||
* Thus, if the preference corresponding to a module has a negative
|
||||
* value, it will never be loaded, but if it is set to 0, then it will
|
||||
* be loaded only if it matches this regular expression.
|
||||
*
|
||||
* This preference may be useful as a concise way of specifying that
|
||||
* you want to load all of a certain class of modules. For example,
|
||||
* the value "(extensions|page-modes)/.*" would specify to load all
|
||||
* modules in the extensions/ (extension support modules) or
|
||||
* page-modes/ directories.
|
||||
*/
|
||||
pref("conkeror.loadModules", "");
|
||||
|
||||
pref("conkeror.load.bindings/default/bindings", 1);
|
||||
pref("conkeror.load.mode-line", 1);
|
||||
pref("conkeror.load.daemon", 1);
|
||||
|
||||
// Page mode modules
|
||||
pref("conkeror.load.page-modes/dailymotion", 1);
|
||||
pref("conkeror.load.page-modes/grooveshark", 1);
|
||||
pref("conkeror.load.page-modes/google-calendar", 1);
|
||||
pref("conkeror.load.page-modes/google-maps", 1);
|
||||
pref("conkeror.load.page-modes/google-reader", 1);
|
||||
pref("conkeror.load.page-modes/google-video", 1);
|
||||
pref("conkeror.load.page-modes/smbc", 1);
|
||||
pref("conkeror.load.page-modes/stackexchange", 1);
|
||||
pref("conkeror.load.page-modes/xkcd", 1);
|
||||
pref("conkeror.load.page-modes/youtube", 1);
|
||||
pref("conkeror.load.page-modes/youtube-player", 1);
|
|
@ -0,0 +1,23 @@
|
|||
/**
|
||||
* (C) Copyright 2004-2007 Shawn Betts
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
pref("browser.download.useDownloadDir", true);
|
||||
pref("browser.download.folderList", 0);
|
||||
pref("browser.download.manager.showAlertOnComplete", true);
|
||||
pref("browser.download.manager.showAlertInterval", 2000);
|
||||
pref("browser.download.manager.retention", 2);
|
||||
pref("browser.download.manager.showWhenStarting", true);
|
||||
pref("browser.download.manager.useWindow", true);
|
||||
pref("browser.download.manager.closeWhenDone", false);
|
||||
pref("browser.download.manager.openDelay", 0);
|
||||
pref("browser.download.manager.focusWhenStarting", false);
|
||||
pref("browser.download.manager.flashCount", 2);
|
||||
//
|
||||
pref("alerts.slideIncrement", 1);
|
||||
pref("alerts.slideIncrementTime", 10);
|
||||
pref("alerts.totalOpenTime", 4000);
|
||||
pref("alerts.height", 50);
|
|
@ -0,0 +1,9 @@
|
|||
/**
|
||||
* (C) Copyright 2011 John J. Foerch
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
pref("layout.spellcheckDefault", 0);
|
||||
pref("layout.word_select.stop_at_punctuation", true);
|
|
@ -0,0 +1,8 @@
|
|||
/* Disable history frecency calculation. xulrunner sometimes consumes
|
||||
* unreasonable amounts of CPU time if this preference is not set.
|
||||
* As conkeror does not use the frecency stat, it is disabled by
|
||||
* default. See also:
|
||||
*
|
||||
* http://kb.mozillazine.org/Places.frecency.updateIdleTime
|
||||
*/
|
||||
pref("places.frecency.updateIdleTime", 0);
|
|
@ -0,0 +1,30 @@
|
|||
/**
|
||||
* (C) Copyright 2004-2007 Shawn Betts
|
||||
* (C) Copyright 2007-2008 John J. Foerch
|
||||
* (C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
// Scripts & Windows prefs
|
||||
pref("dom.disable_open_during_load", true);
|
||||
pref("javascript.options.showInConsole", false);
|
||||
// Make the status bar reliably present and unaffected by pages
|
||||
pref("dom.disable_window_open_feature.status", true);
|
||||
// This is the pref to control the location bar, change this to true to
|
||||
// force this instead of or in addition to the status bar - this makes
|
||||
// the origin of popup windows more obvious to avoid spoofing but we
|
||||
// cannot do it by default because it affects UE for web applications.
|
||||
pref("dom.disable_window_open_feature.location", true);
|
||||
pref("dom.disable_window_status_change", true);
|
||||
// allow JS to move and resize existing windows
|
||||
pref("dom.disable_window_move_resize", true);
|
||||
// prevent JS from monkeying with window focus, etc
|
||||
pref("dom.disable_window_flip", true);
|
||||
|
||||
|
||||
/* keypress must be included in this list for even popups created by
|
||||
* Conkeror's built-in follow command to be permitted.
|
||||
*/
|
||||
pref("dom.popup_allowed_events", "change click dblclick mouseup reset submit keypress");
|
|
@ -0,0 +1,66 @@
|
|||
/**
|
||||
* (C) Copyright 2008 Jeremy Maitin-Shepard
|
||||
* (C) Copyright 2011 John J. Foerch
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
pref("app.vendorURL", "http://conkeror.org/");
|
||||
pref("app.releaseNotesURL", "http://conkeror.org/BreakingChanges");
|
||||
|
||||
pref("browser.chromeURL", "chrome://conkeror-gui/content/conkeror.xul");
|
||||
|
||||
pref("accessibility.typeaheadfind", false);
|
||||
pref("accessibility.typeaheadfind.flashBar", 1);
|
||||
|
||||
// Make sure access keys do not override conkeror keys
|
||||
pref("ui.key.generalAccessKey", 0);
|
||||
|
||||
|
||||
/* Show error pages instead of an alert window. */
|
||||
pref("browser.xul.error_pages.enabled", true);
|
||||
|
||||
/* Surely preferred by most Conkeror users */
|
||||
pref("plugin.expose_full_path", true);
|
||||
|
||||
/* Disable useless warnings */
|
||||
pref("general.warnOnAboutConfig", false);
|
||||
pref("security.warn_entering_secure", false);
|
||||
pref("security.warn_entering_weak", false);
|
||||
pref("security.warn_leaving_secure", false);
|
||||
pref("security.warn_submit_insecure", false);
|
||||
pref("security.warn_viewing_mixed", false);
|
||||
|
||||
|
||||
// Extensions
|
||||
//
|
||||
// see https://developer.mozilla.org/en/XULRunner_tips#Extension_Manager
|
||||
//
|
||||
pref("xpinstall.dialog.confirm", "chrome://mozapps/content/xpinstall/xpinstallConfirm.xul");
|
||||
pref("xpinstall.dialog.progress.skin", "chrome://mozapps/content/extensions/extensions.xul?type=themes");
|
||||
pref("xpinstall.dialog.progress.chrome", "chrome://mozapps/content/extensions/extensions.xul?type=extensions");
|
||||
pref("xpinstall.dialog.progress.type.skin", "Extension:Manager-themes");
|
||||
pref("xpinstall.dialog.progress.type.chrome", "Extension:Manager-extensions");
|
||||
pref("extensions.update.autoUpdateDefault", true);
|
||||
pref("extensions.update.enabled", true);
|
||||
pref("extensions.update.interval", 86400);
|
||||
pref("extensions.dss.enabled", false);
|
||||
pref("extensions.dss.switchPending", false);
|
||||
pref("extensions.ignoreMTimeChanges", false);
|
||||
pref("extensions.logging.enabled", false);
|
||||
pref("general.skins.selectedSkin", "classic/1.0");
|
||||
pref("extensions.update.url", "chrome://mozapps/locale/extensions/extensions.properties");
|
||||
pref("extensions.getMoreExtensionsURL", "chrome://mozapps/locale/extensions/extensions.properties");
|
||||
pref("extensions.getMoreThemesURL", "chrome://mozapps/locale/extensions/extensions.properties");
|
||||
pref("extensions.getAddons.cache.enabled", false);
|
||||
|
||||
|
||||
pref("browser.formfill.enable", true);
|
||||
|
||||
|
||||
// Plugins
|
||||
//
|
||||
// Use plugin-container to isolate crashes for the following plugins.
|
||||
//
|
||||
pref("dom.ipc.plugins.enabled.libflashplayer.so", true);
|
|
@ -0,0 +1,20 @@
|
|||
/**
|
||||
* (C) Copyright 2007f Jeremy Maitin-Shepard
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
// 0=default window, 1=current window/tab, 2=new window, 3=new tab in most recent window
|
||||
|
||||
pref("browser.link.open_external", 3); // open externally-launched links in a new window
|
||||
|
||||
// handle links targeting new windows
|
||||
|
||||
pref("browser.link.open_newwindow", 3);
|
||||
|
||||
|
||||
// 0: no restrictions - divert everything
|
||||
// 1: don't divert window.open at all
|
||||
// 2: don't divert window.open with features
|
||||
pref("browser.link.open_newwindow.restriction", 0);
|
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<!--
|
||||
(C) Copyright 2007 John J. Foerch
|
||||
|
||||
Use, modification, and distribution are subject to the terms specified in the
|
||||
COPYING file.
|
||||
-->
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Conkeror Tutorial: Back and Forward</title>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://conkeror-help/content/manual.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h3>Back and Forward</h3>
|
||||
|
||||
<p>
|
||||
If you got to this section by following a link, you can get back to
|
||||
where you came from by pressing <code class="key">B</code> for Back.
|
||||
The complement of <code class="key">B</code>
|
||||
is <code class="key">F</code> for Forward. When you have attained
|
||||
mastery over these keys, continue with the tutorial.
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,254 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<!--
|
||||
(C) Copyright 2004-2006 Shawn Betts
|
||||
(C) Copyright 2007-2008 John J. Foerch
|
||||
|
||||
Use, modification, and distribution are subject to the terms specified in the
|
||||
COPYING file.
|
||||
-->
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Conkeror User Manual</title>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://conkeror-help/content/manual.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Conkeror User Manual</h1>
|
||||
|
||||
<hr />
|
||||
|
||||
<h2>Introduction</h2>
|
||||
|
||||
<p>
|
||||
Conkeror is a Mozilla-based web browser whose design is inspired by
|
||||
<a href="http://www.gnu.org/software/emacs">GNU
|
||||
Emacs</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You can learn Conkeror's key bindings
|
||||
by <a href="chrome://conkeror-help/content/tutorial.html">reading the
|
||||
tutorial</a>. The keyboard shortcut to visit the tutorial
|
||||
is <span class="key">C-h t</span>. That is, first
|
||||
press <span class="key">Ctrl-h</span>, then release those keys, and
|
||||
press <span class="key">t</span>.
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<h2>Overview of the Keys</h2>
|
||||
|
||||
<h3>Browsing</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><b>key</b></th>
|
||||
<th><b>M-x command</b></th>
|
||||
<th><b>meaning</b></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><span class="key">g</span></td>
|
||||
<td>find-url</td>
|
||||
<td>open new URL</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="key">B</span></td>
|
||||
<td>back</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="key">F</span></td>
|
||||
<td>forward</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="key">r</span></td>
|
||||
<td>reload</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="key">C-g</span></td>
|
||||
<td>abort</td>
|
||||
<td>stop</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="key">C-h i</span></td>
|
||||
<td>help-page</td>
|
||||
<td>Show this page.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><span class="key">C-h t</span></td>
|
||||
<td>tutorial</td>
|
||||
<td>Show the Conkeror tutorial.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>Movement</h3>
|
||||
<table>
|
||||
<tr><td><span class="key">C-a</span></td><td>beginning of line</td></tr>
|
||||
<tr><td><span class="key">C-e</span></td><td>end of line</td></tr>
|
||||
<tr><td><span class="key">C-f</span></td><td>Forward a column</td></tr>
|
||||
<tr><td><span class="key">C-b</span></td><td>backward a column</td></tr>
|
||||
<tr><td><span class="key">C-n</span></td><td>Forward a line</td></tr>
|
||||
<tr><td><span class="key">C-p</span></td><td>backward a line</td></tr>
|
||||
<tr><td><span class="key">C-v</span></td><td>Page down</td></tr>
|
||||
<tr><td><span class="key">M-v</span></td><td>Page up</td></tr>
|
||||
<tr><td><span class="key">M-<</span></td><td>Beginning of document</td></tr>
|
||||
<tr><td><span class="key">M-></span></td><td>End of document</td></tr>
|
||||
<tr><td><span class="key">C-s</span></td><td>Open i-search forward</td></tr>
|
||||
<tr><td><span class="key">C-r</span></td><td>Open i-search backward</td></tr>
|
||||
</table>
|
||||
|
||||
<h3>I-Search</h3>
|
||||
<table>
|
||||
<tr><td><span class="key">C-s</span></td><td>Search forward</td></tr>
|
||||
<tr><td><span class="key">C-r</span></td><td>Search backward</td></tr>
|
||||
<tr><td><span class="key">C-g</span></td><td>Quit i-search (jump back to where i-search started)</td></tr>
|
||||
<tr><td><span class="key">backspace</span></td><td>Undo search</td></tr>
|
||||
<tr><td>any modifier plus a key, RET or TAB</td><td>Close i-search</td></tr>
|
||||
</table>
|
||||
|
||||
<h3>Webjumps</h3>
|
||||
<p>
|
||||
Webjumps are similar to, but potentially more powerful than Firefox's
|
||||
bookmark keywords. You type a webjump name into the location prompt,
|
||||
followed by one or more search terms. Conkeror substitutes your search
|
||||
terms into an url associated with the webjump.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Conkeror has a few webjumps already, but you can find many more, and share
|
||||
your own at <a href="http://conkeror.org/Webjumps">the
|
||||
webjumps page of the conkeror wiki</a>.
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr><td>conkerorwiki</td><td>Search conkeror.org</td></tr>
|
||||
<tr><td>answers</td><td>search answers.com</td></tr>
|
||||
<tr><td>bugzilla</td><td>search mozilla bugzilla</td></tr>
|
||||
<tr><td>clhs</td><td>search the Common Lisp Hyper Spec</td></tr>
|
||||
<tr><td>cliki</td><td>search the Common Lisp wiki</td></tr>
|
||||
<tr><td>creativecommons</td><td>search creativecommons.org</td></tr>
|
||||
<tr><td>dictionary</td><td>Search dictionary.reference.com</td></tr>
|
||||
<tr><td>duckduckgo</td><td>Search with duckduckgo</td></tr>
|
||||
<tr><td>ebay</td><td>search ebay.com</td></tr>
|
||||
<tr><td>google</td><td>Search with google</td></tr>
|
||||
<tr><td>image</td><td>Search google images</td></tr>
|
||||
<tr><td>kuro5hin</td><td>search kuro5hin.com</td></tr>
|
||||
<tr><td>lucky</td><td>Google "I'm feeling lucky" search</td></tr>
|
||||
<tr><td>maps</td><td>Search Google Maps</td></tr>
|
||||
<tr><td>ratpoisonwiki</td><td>search the ratpoison wiki</td></tr>
|
||||
<tr><td>savannah</td><td>search savannah.gnu.org</td></tr>
|
||||
<tr><td>scholar</td><td>search google scholar</td></tr>
|
||||
<tr><td>slang</td><td>Search urbandictionary.com</td></tr>
|
||||
<tr><td>slashdot</td><td>search slashdot.com</td></tr>
|
||||
<tr><td>sourceforge</td><td>search sourceforge.net</td></tr>
|
||||
<tr><td>stumpwmwiki</td><td>search the StumpWM wiki</td></tr>
|
||||
<tr><td>wikipedia</td><td>Search wikipedia.org</td></tr>
|
||||
<tr><td>wiktionary</td><td>Search wiktionary.org</td></tr>
|
||||
<tr><td>yahoo</td><td>search yahoo</td>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
delicious webjumps can be added by putting the following in your rc file:
|
||||
</p>
|
||||
|
||||
<pre>add_delicious_webjumps("myusername");</pre>
|
||||
|
||||
<p>
|
||||
this will create the following webjumps:
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr><td>adelicious</td><td>Add a delicious bookmark.</td></tr>
|
||||
<tr><td>delicious</td><td>View your delicious bookmarks</td></tr>
|
||||
<tr><td>sdelicious</td><td>Search your delicious bookmarks</td></tr>
|
||||
<tr><td>sadelicious</td><td>Search all delicious bookmarks</td></tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
lastfm webjumps can be added by putting the following in your rc file:
|
||||
</p>
|
||||
|
||||
<pre>define_lastfm_webjumps("myusername");</pre>
|
||||
|
||||
<p>
|
||||
this will create the following webjumps:
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr><td>lastfm</td><td> </td></tr>
|
||||
<tr><td>lastfm-user</td><td> </td></tr>
|
||||
<tr><td>lastfm-music</td><td> </td></tr>
|
||||
<tr><td>lastfm-group</td><td> </td></tr>
|
||||
<tr><td>lastfm-tag</td><td> </td></tr>
|
||||
<tr><td>lastfm-label</td><td> </td></tr>
|
||||
<tr><td>lastfm-event</td><td> </td></tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
You can easily add your own custom webjumps as such:
|
||||
</p>
|
||||
|
||||
<pre>define_webjump("reddit", "http://www.reddit.com/search?q=%s");</pre>
|
||||
|
||||
<p>
|
||||
The above will define the "reddit" webjump which
|
||||
searches <a href="http://www.reddit.org">reddit</a>
|
||||
threads. The "%s" in the URL will be replaced by the search term you enter
|
||||
after the webjump name. I.e. entering "reddit haskell compiler" in the
|
||||
minibuffer will redirect you to the search results for reddit threads
|
||||
matching "haskell compiler" as a search string.
|
||||
</p>
|
||||
|
||||
<h3>Buffer Management</h3>
|
||||
<table>
|
||||
<tr><td><span class="key">C-u g</span></td><td>Open an URL in a new buffer</td></tr>
|
||||
<tr><td><span class="key">C-x b</span></td><td>Select a buffer based on it's name.</td></tr>
|
||||
<tr><td><span class="key">M-p</span></td><td>previous buffer</td></tr>
|
||||
<tr><td><span class="key">M-n</span></td><td>Next buffer</td></tr>
|
||||
<tr><td><span class="key">C-x k</span></td><td>kill buffer</td></tr>
|
||||
<tr><td><span class="key">C-x 5 f</span> or <span class="key">C-u C-u g</span></td><td>Open an URL in a new window</td></tr>
|
||||
<tr><td><span class="key">C-x 5 0</span></td><td>Close the current window (and all buffers in it)</td></tr>
|
||||
<tr><td><span class="key">C-x C-c</span></td><td>Quit conkeror</td></tr>
|
||||
</table>
|
||||
|
||||
<hr />
|
||||
|
||||
<h2>Universal Argument</h2>
|
||||
|
||||
<p>
|
||||
Conkeror support the universal
|
||||
argument, <span class="key">C-u</span>. It's a prefix binding that changes
|
||||
how a command behaves. In Conkeror, <span class="key">C-u</span> has two
|
||||
main effects. The first effect is that the command will be executed
|
||||
multiple times. For example, typing <span class="key">C-u C-n</span> will
|
||||
cause conkeror to scroll down 4 lines. <span class="key">C-u 12 C-n</span>
|
||||
will cause conkeror to scroll down 12 lines. The second effect is to open
|
||||
in a new buffer or a new window. <span class="key">C-u g conkeror.org
|
||||
RET</span> This opens the conkeror project web page in a new
|
||||
buffer. <span class="key">C-u C-u n 12 RET</span> will open link no. 12 in
|
||||
a new window.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
There are some commands where the effect is ambiguous. Does
|
||||
<code>C-u B</code> go back four pages in the history or does it go back
|
||||
one and open the result in a new buffer? We are working on adding a second
|
||||
universal argument that would allow you to do both.
|
||||
</p>
|
||||
|
||||
<hr />
|
||||
|
||||
<h2>Conkeror Resources</h2>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://conkeror.org/">Conkeror homepage</a></li>
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,55 @@
|
|||
body {
|
||||
font: 14px sans-serif;
|
||||
color: black;
|
||||
background: #fff;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
h1, h2, h3 {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 250%;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 180%
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 150%;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 1px solid #888;
|
||||
margin: 20px 0 20px 0;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
td, th {
|
||||
padding: 2px;
|
||||
border: 1px solid #888;
|
||||
}
|
||||
|
||||
pre, .key {
|
||||
background: #ccc;
|
||||
font-family: "Courier New", Courier, monospace;
|
||||
}
|
||||
|
||||
pre {
|
||||
margin: 5px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.key {
|
||||
padding-left: 2px;
|
||||
padding-right: 2px;
|
||||
}
|
|
@ -0,0 +1,214 @@
|
|||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<!--
|
||||
(C) Copyright 2007,2011 John J. Foerch
|
||||
|
||||
Use, modification, and distribution are subject to the terms specified in the
|
||||
COPYING file.
|
||||
-->
|
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<title>Conkeror Tutorial</title>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://conkeror-help/content/manual.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Conkeror Tutorial</h1>
|
||||
|
||||
<h3>Reading Key Notation</h3>
|
||||
|
||||
<p>
|
||||
The first thing you need to know about Conkeror is how to read key
|
||||
notation. Each key combination is written as a hyphenated list of
|
||||
modifiers and key. The codes for the common modifiers are as
|
||||
follows: <code class="key">C</code> means Control; <code class="key">M</code> means Meta or
|
||||
Alt; and <code class="key">S</code> means Shift. Therefore the key combination
|
||||
<code class="key">C-M-f</code> means to hold down Control and Meta and press
|
||||
<code class="key">f</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The key to scroll down is <code class="key">C-n</code>. The key to scroll up is
|
||||
<code class="key">C-p</code>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Many commands in Conkeror are run by typing a sequence of two or
|
||||
more key combinations. The notation is simple. Each combination in
|
||||
the sequence is written, in order, separated by spaces. The
|
||||
sequence <code class="key">C-h t</code> means to press Control-h, release all
|
||||
keys, then press <code class="key">t</code>. <code class="key">C-h t</code> is the key
|
||||
sequence to view this tutorial.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The key sequence to exit conkeror is <code class="key">C-x C-c</code>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<code class="key">C-g</code> is the abort key. It is used to cancel a command
|
||||
from the minibuffer, or stop a web page from loading.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<code class="key">Space</code> and <code class="key">Backspace</code> scroll a page down and
|
||||
a page up, respectfully.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Basic Navigation</h3>
|
||||
|
||||
<p>
|
||||
To browse to an URL in a new content buffer, type <code class="key">C-x
|
||||
C-f</code>. This key sequence works from anywhere in Conkeror.
|
||||
Additionally, if you are already in a content buffer (as opposed to a
|
||||
buffer showing download progress or help), you can navigate the current
|
||||
buffer to a new url with the <code class="key">g</code> (find-url) key.
|
||||
The mnemonic is "go". The key sequence <code class="key">C-x C-v</code>
|
||||
(find-alternate-url) is also available in content buffers. It is
|
||||
identical to <code class="key">g</code> except that the prompt will be
|
||||
pre-filled with the current URL for you to edit.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The <code class="key">B</code> key (note uppercase) is bound to
|
||||
the <code>back</code> command. Practice basic navigation by
|
||||
typing <code class="key">g</code> and entering the text "about:" in
|
||||
the url prompt. To come back to this tutorial from the about: page,
|
||||
type <code class="key">B</code>.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Hinting</h3>
|
||||
|
||||
<p>
|
||||
The system for interacting with the elements of a document is called
|
||||
the hinting system. With the hinting system, you can do things like
|
||||
follow hyperlinks, copy URLs, focus form fields, and more. Let's
|
||||
use the hinting system to follow a hyperlink. You will receive
|
||||
instructions about how to return here after you follow the
|
||||
hyperlink. If the numbered list and hyperlink following this
|
||||
paragraph are not in view, scroll so that they are.
|
||||
</p>
|
||||
|
||||
<ol>
|
||||
<li>Press <code class="key">f</code>. (mnemonic: follow)</li>
|
||||
<li>The hyperlink should be hilighted, with a number on the left
|
||||
side. Type that number and hit enter.</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<a href="chrome://conkeror-help/content/back-forward.html">This is a
|
||||
hyperlink.</a>
|
||||
|
||||
<p>
|
||||
As a matter of fact, in addition to following links by number, you can
|
||||
also follow them by a substring of the link text. You could select the
|
||||
link above by typing <code class="key">f t h i s</code>. When more than
|
||||
one link with similar text is in view, hinting will narrow down the
|
||||
choices as you type. You can always specify the one you want by
|
||||
disambiguating the sequence with the hint number.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
But hinting is for more than just hyperlinks. Conkeror provides
|
||||
several <em>hint classes</em> for operating on different types of
|
||||
elements. The hint class is specified by typing the corresponding
|
||||
key sequence of the class before the key sequence of the command.
|
||||
It was not necessary to specify a hint class for following the
|
||||
hyperlink above because links are the default hint class for the
|
||||
follow command. The following table lists the most common hint
|
||||
classes.
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<tr><td><em>key</em></td><td><em>hint class</em></td><td><em>mnemonic</em></td></tr>
|
||||
<tr><td><code class="key">n</code></td><td>links and form elements</td><td>li<b>n</b>k</td></tr>
|
||||
<tr><td><code class="key">i</code></td><td>images</td><td><b>i</b>mage</td></tr>
|
||||
<tr><td><code class="key">m</code></td><td>frameset frames and top window</td><td>fra<b>m</b>e</td></tr>
|
||||
<tr><td><code class="key">* *</code></td><td>dom nodes</td><td>wildcard</td></tr>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
In the hinting system, hint number zero (0) is special. It refers to the
|
||||
current URL in the buffer.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The <code class="key">c</code> key is bound to the copy command. Its
|
||||
default hint class is links. To copy the URL of the page you are
|
||||
currently browsing, type <code class="key">c 0</code>. To copy the url of
|
||||
a frame or iframe, type <code class="key">m c</code>. If there is more
|
||||
than one frame visible, you will be prompted for a number, just as with
|
||||
hyperlinks.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
When none of the conventional hint classes cover the element that
|
||||
you want to operate on, you can use the dom-nodes hint class, to
|
||||
choose from among all visible dom nodes. This hint class is bound
|
||||
to <code class="key">* *</code>. Try copying the text of this
|
||||
paragraph now by typing <code class="key">* * c</code> followed by
|
||||
the hint number for this paragraph.
|
||||
</p>
|
||||
|
||||
|
||||
<h3>Finding Text (Isearch)</h3>
|
||||
<p>
|
||||
<code class="key">C-s</code> invokes interactive text search mode, isearch
|
||||
for short. <code class="key">C-r</code> invokes reverse isearch. In this
|
||||
mode, just type the text you want to find into the minibuffer and Conkeror
|
||||
will search the document as you type. To jump to the next match,
|
||||
hit <code class="key">C-s</code> again. To jump to the previous match,
|
||||
hit <code class="key">C-r</code>. To conclude your search,
|
||||
hit <code class="key">return</code>, or to abort it,
|
||||
press <code class="key">escape</code> or <code class="key">C-g</code>. If
|
||||
you have previously concluded an isearch, you can use the
|
||||
keys <code class="key">S</code> and <code class="key">R</code> to jump to
|
||||
next and previous matches without going back into isearch mode. This is
|
||||
called non-interactive resume. To resume your last successful isearch in
|
||||
interactive mode, hit <code class="key">C-s</code>
|
||||
or <code class="key">C-r</code> twice.
|
||||
</p>
|
||||
|
||||
<h3>Copying Text</h3>
|
||||
<p>
|
||||
Apart from <code class="key">* * c</code> described above, there are other
|
||||
ways to copy text for times when what you want to copy does not neatly
|
||||
fill one dom node. The process is straight-forward. First, use isearch
|
||||
(<code class="key">C-s</code>) and search for the start of the text you
|
||||
want to copy. When you have brought the search to the start of the text
|
||||
you want to copy, hit <code class="key">return</code> to conclude the
|
||||
search. Although no cursor is visible, there is an invisible cursor where
|
||||
the search concluded. Hold the <code class="key">shift</code> key and use
|
||||
the arrow keys to make a selection. When you have selected the text you
|
||||
want to copy, release all keys and hit <code class="key">M-w</code> to
|
||||
copy the text to the clipboard.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Tip:</b> Although isearch is usually the quickest way to position the
|
||||
cursor, there are other ways. One of them is to use the <em>focus
|
||||
link</em> browser-object command (<code class="key">n ;</code>). When you
|
||||
focus a link, the invisible cursor will be left at the first character of
|
||||
the link text, and you can use shifted arrow keys to make a selection from
|
||||
that point. If the methods outlined so far are unsuitable for a situation
|
||||
you encounter, then you can use <code>M-x caret-mode</code> to get a small
|
||||
but visible blinking cursor that you can move to where you need it.
|
||||
Call <code>M-x caret-mode</code> again to toggle it off.
|
||||
</p>
|
||||
|
||||
<h3>What Next</h3>
|
||||
<p>
|
||||
Now that you've completed the tutorial, you should have the basic skills
|
||||
to get around on the web. But there is so much more to learn, and
|
||||
always the possibility of improving your efficiency through
|
||||
configuration. Start by reading
|
||||
the <a href="http://conkeror.org/QuickStart">QuickStart</a>, and then
|
||||
explore the <a href="http://conkeror.org/">Conkeror Wiki</a> on your
|
||||
own. Enjoy!
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,64 @@
|
|||
context_follow_link.label=Follow Link
|
||||
context_follow_link.accesskey=O
|
||||
context_follow_link_in_buffer.label=Follow Link in New Buffer
|
||||
context_follow_link_in_buffer.accesskey=T
|
||||
context_follow_link_in_frame.label=Follow Link in New Frame
|
||||
context_follow_link_in_frame.accesskey=W
|
||||
context_save_link.label=Save Link As...
|
||||
context_save_link.accesskey=k
|
||||
context_copy_email.label=Copy Email Address
|
||||
context_copy_email.accesskey=E
|
||||
context_copy_link.label=Copy Link Location
|
||||
context_copy_link.accesskey=C
|
||||
context_follow_image.label=Follow Image
|
||||
context_follow_image.accesskey=I
|
||||
context_copy_image.label=Copy Image Location
|
||||
context_copy_image.accesskey=o
|
||||
context_save_image.label=Save Image As...
|
||||
context_save_image.accesskey=v
|
||||
context_back.label=Back
|
||||
context_back.accesskey=B
|
||||
context_forward.label=Forward
|
||||
context_forward.accesskey=F
|
||||
context_reload.label=Reload
|
||||
context_reload.accesskey=R
|
||||
context_stop.label=Stop
|
||||
context_stop.accesskey=S
|
||||
context_save_page.label=Save Page As...
|
||||
context_save_page.accesskey=A
|
||||
context_follow_background_image.label=Follow Background Image
|
||||
context_follow_background_image.accesskey=w
|
||||
context_undo.label=Undo
|
||||
context_undo.accesskey=U
|
||||
context_cut.label=Cut
|
||||
context_cut.accesskey=t
|
||||
context_copy.label=Copy
|
||||
context_copy.accesskey=C
|
||||
context_paste.label=Paste
|
||||
context_paste.accesskey=P
|
||||
context_delete.label=Delete
|
||||
context_delete.accesskey=D
|
||||
context_select_all.label=Select All
|
||||
context_select_all.accesskey=A
|
||||
thisFrameMenu.label=This Frameset Frame
|
||||
thisFrameMenu.accesskey=h
|
||||
context_show_only_this_frameset_frame.label=Show Only This Frame
|
||||
context_show_only_this_frameset_frame.accesskey=w
|
||||
context_open_frameset_frame_in_buffer.label=Open Frame in New Buffer
|
||||
context_open_frameset_frame_in_buffer.accesskey=T
|
||||
context_open_frameset_frame_in_frame.label=Open Frame in New Window
|
||||
context_open_frameset_frame_in_frame.accesskey=W
|
||||
context_reload_frameset_frame.label=Reload Frame
|
||||
context_reload_frameset_frame.accesskey=R
|
||||
context_copy_frameset_frame_location.label=Copy Frameset Frame Location
|
||||
context_copy_frameset_frame_location.accesskey=c
|
||||
context_save_frameset_frame_page.label=Save Frame As...
|
||||
context_save_frameset_frame_page.accesskey=F
|
||||
context_view_frameset_frame_source.label=View Frame Source
|
||||
context_view_frameset_frame_source.accesskey=V
|
||||
context_view_selection_source.label=View Selection Source
|
||||
context_view_selection_source.accesskey=e
|
||||
context_view_mathml_source.label=View MathML Source
|
||||
context_view_mathml_source.accesskey=m
|
||||
context_view_source.label=View Page Source
|
||||
context_view_source.accesskey=V
|
|
@ -0,0 +1,9 @@
|
|||
<!ENTITY securityOverride.linkText "Or you can add an exception…">
|
||||
<!ENTITY securityOverride.warningText "
|
||||
<p>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p>
|
||||
<p>If you still wish to add an exception for this site, use the <code>M-x ssl-add-exception</code> command.</p>
|
||||
">
|
||||
<!ENTITY securityOverride.warningContent "
|
||||
<p>You should not add an exception if you are using an internet connection that you do not trust completely or if you are not used to seeing a warning for this server.</p>
|
||||
<p>If you still wish to add an exception for this site, use the <code>M-x ssl-add-exception</code> command.</p>
|
||||
">
|
|
@ -0,0 +1,64 @@
|
|||
context_follow_link.label=Följ länk
|
||||
context_follow_link.accesskey=O
|
||||
context_follow_link_in_buffer.label=Följ länk i en ny buffer
|
||||
context_follow_link_in_buffer.accesskey=T
|
||||
context_follow_link_in_frame.label=Följ länk i en ny ram
|
||||
context_follow_link_in_frame.accesskey=W
|
||||
context_save_link.label=Spara länk som...
|
||||
context_save_link.accesskey=k
|
||||
context_copy_email.label=Kopiera e-postadress
|
||||
context_copy_email.accesskey=E
|
||||
context_copy_link.label=Kopiera länkadress
|
||||
context_copy_link.accesskey=C
|
||||
context_follow_image.label=Följ bild
|
||||
context_follow_image.accesskey=I
|
||||
context_copy_image.label=Kopiera bildadress
|
||||
context_copy_image.accesskey=o
|
||||
context_save_image.label=Spara bild som...
|
||||
context_save_image.accesskey=v
|
||||
context_back.label=Bakåt
|
||||
context_back.accesskey=B
|
||||
context_forward.label=Framåt
|
||||
context_forward.accesskey=F
|
||||
context_reload.label=Ladda om
|
||||
context_reload.accesskey=R
|
||||
context_stop.label=Stopp
|
||||
context_stop.accesskey=S
|
||||
context_save_page.label=Spara sida som...
|
||||
context_save_page.accesskey=A
|
||||
context_follow_background_image.label=Följ bakgrundsbild
|
||||
context_follow_background_image.accesskey=w
|
||||
context_undo.label=Undo
|
||||
context_undo.accesskey=U
|
||||
context_cut.label=Klipp
|
||||
context_cut.accesskey=t
|
||||
context_copy.label=Kopiera
|
||||
context_copy.accesskey=C
|
||||
context_paste.label=Klistra in
|
||||
context_paste.accesskey=P
|
||||
context_delete.label=Radera
|
||||
context_delete.accesskey=D
|
||||
context_select_all.label=Markera allt
|
||||
context_select_all.accesskey=A
|
||||
thisFrameMenu.label=This Frameset Frame
|
||||
thisFrameMenu.accesskey=h
|
||||
context_show_only_this_frameset_frame.label=Visa enbart denna ram
|
||||
context_show_only_this_frameset_frame.accesskey=w
|
||||
context_open_frameset_frame_in_buffer.label=Öppna ram i ny buffer
|
||||
context_open_frameset_frame_in_buffer.accesskey=T
|
||||
context_open_frameset_frame_in_frame.label=Öppna ram i nytt fönster
|
||||
context_open_frameset_frame_in_frame.accesskey=W
|
||||
context_reload_frameset_frame.label=Ladda om ram
|
||||
context_reload_frameset_frame.accesskey=R
|
||||
context_copy_frameset_frame_location.label=Copy Frameset Frame Location
|
||||
context_copy_frameset_frame_location.accesskey=c
|
||||
context_save_frameset_frame_page.label=Spara ram som...
|
||||
context_save_frameset_frame_page.accesskey=F
|
||||
context_view_frameset_frame_source.label=Visa ramkälla
|
||||
context_view_frameset_frame_source.accesskey=V
|
||||
context_view_selection_source.label=Visa markeringens källa
|
||||
context_view_selection_source.accesskey=e
|
||||
context_view_mathml_source.label=Visa MathML-källa
|
||||
context_view_mathml_source.accesskey=m
|
||||
context_view_source.label=Visa sidkälla
|
||||
context_view_source.accesskey=V
|
|
@ -0,0 +1,9 @@
|
|||
<!ENTITY securityOverride.linkText "Eller så kan du lägga till ett undantag…">
|
||||
<!ENTITY securityOverride.warningText "
|
||||
<p>Du bör inte lägga till ett undantag om du använder en anslutning som du inte litar på helt och hållet eller om du inte brukar se denna varning för denna server.</p>
|
||||
<p>Om du ända vill lägga till ett undantag, använd <code>M-x ssl-add-exception</code>.</p>
|
||||
">
|
||||
<!ENTITY securityOverride.warningContent "
|
||||
<p>Du bör inte lägga till ett undantag om du använder en anslutning som du inte litar på helt och hållet eller om du inte brukar se denna varning för denna server.</p>
|
||||
<p>Om du ända vill lägga till ett undantag, använd <code>M-x ssl-add-exception</code>.</p>
|
||||
">
|
|
@ -0,0 +1,144 @@
|
|||
/**
|
||||
* (C) Copyright 2004-2007 Shawn Betts
|
||||
* (C) Copyright 2007-2010 John J. Foerch
|
||||
* (C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
/**
|
||||
* array_p returns true if its argument is an array, otherwise false.
|
||||
*/
|
||||
function array_p (ob) {
|
||||
return ob && ob.constructor &&
|
||||
ob.constructor.name == "Array" || false;
|
||||
}
|
||||
|
||||
/**
|
||||
* make_array returns its argument unchanged if it is already an array, an
|
||||
* empty array if its argument is undefined, otherwise an array containing
|
||||
* its object as the sole element.
|
||||
*/
|
||||
function make_array (ob) {
|
||||
if (array_p(ob))
|
||||
return ob;
|
||||
if (ob === undefined)
|
||||
return [];
|
||||
return [ob];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* array_find returns the first element in the given array that satisfies
|
||||
* predicate p. returns null on failure.
|
||||
*/
|
||||
function array_find (ar, p) {
|
||||
for (var i = 0, n = ar.length; i < n; ++i) {
|
||||
if (p(ar[i]))
|
||||
return ar[i];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* array_find_index returns the index of the first element in the array
|
||||
* that satisfies predicate p. returns -1 on failure.
|
||||
*/
|
||||
function array_find_index (ar, p) {
|
||||
for (var i = 0, n = ar.length; i < n; ++i) {
|
||||
if (p(ar[i]))
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* remove_duplicates_filter returns a function that can be used in
|
||||
* Array.filter. It removes duplicates. Optional argument cmp is a
|
||||
* comparison function to test equality. The default comparison function
|
||||
* tests equality of the string representation of the objects, making it
|
||||
* unsuitable for use filtering a list of objects of compound data types.
|
||||
*/
|
||||
function remove_duplicates_filter (cmp) {
|
||||
if (cmp) {
|
||||
let acc = [];
|
||||
return function (x) {
|
||||
if (acc.some(function (y) cmp(x, y)))
|
||||
return false;
|
||||
acc.push(x);
|
||||
return true;
|
||||
};
|
||||
}
|
||||
let acc = {};
|
||||
return function (x) {
|
||||
if (acc[x]) return false;
|
||||
acc[x] = 1;
|
||||
return true;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Given an array, switches places on the subarrays at index i1 to i2 and j1 to
|
||||
* j2. Leaves the rest of the array unchanged.
|
||||
*/
|
||||
function switch_subarrays (arr, i1, i2, j1, j2) {
|
||||
return arr.slice(0, i1) +
|
||||
arr.slice(j1, j2) +
|
||||
arr.slice(i2, j1) +
|
||||
arr.slice(i1, i2) +
|
||||
arr.slice(j2, arr.length);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* splice_ranges: Given an ordered array of non-overlapping ranges,
|
||||
* represented as elements of [start, end], insert a new range into the
|
||||
* array, extending, replacing, or merging existing ranges as needed.
|
||||
* Mutates `arr' in place, but returns the reference to it.
|
||||
*
|
||||
* Examples:
|
||||
*
|
||||
* splice_range([[1,3],[4,6], 5, 8)
|
||||
* => [[1,3],[4,8]]
|
||||
*
|
||||
* splice_range([[1,3],[4,6],[7,10]], 2, 8)
|
||||
* => [[1,10]]
|
||||
*/
|
||||
function splice_range (arr, start, end) {
|
||||
for (var i = 0; i < arr.length; ++i) {
|
||||
let [n,m] = arr[i];
|
||||
if (start > m)
|
||||
continue;
|
||||
if (end < n) {
|
||||
arr.splice(i, 0, [start, end]);
|
||||
break;
|
||||
}
|
||||
if (start < n)
|
||||
arr[i][0] = start;
|
||||
|
||||
if (end >= n) {
|
||||
/*
|
||||
* The range we are inserting overlaps the current
|
||||
* range. We need to scan right to see if it also contains any other
|
||||
* ranges entirely, and remove them if necessary.
|
||||
*/
|
||||
var j = i;
|
||||
while (j < arr.length && end >= arr[j][0])
|
||||
j++;
|
||||
j--;
|
||||
arr[i][1] = Math.max(end, arr[j][1]);
|
||||
arr.splice(i + 1, j - i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (start > arr[arr.length - 1][1])
|
||||
arr.push([start, end]);
|
||||
return arr;
|
||||
}
|
||||
|
||||
|
||||
provide("array");
|
|
@ -0,0 +1,64 @@
|
|||
/**
|
||||
* (C) Copyright 2004-2007 Shawn Betts
|
||||
* (C) Copyright 2007-2009 John J. Foerch
|
||||
* (C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
function bind_scroll_keys (keymap) {
|
||||
define_key(keymap, "back_space", "cmd_scrollPageUp");
|
||||
define_key(keymap, "S-space", "cmd_scrollPageUp");
|
||||
define_key(keymap, "space","cmd_scrollPageDown");
|
||||
define_key(keymap, "M-v","cmd_scrollPageUp");
|
||||
define_key(keymap, "C-v","cmd_scrollPageDown");
|
||||
define_key(keymap, "page_up","cmd_scrollPageUp");
|
||||
define_key(keymap, "page_down","cmd_scrollPageDown");
|
||||
define_key(keymap, "C-page_up","cmd_scrollLeft");
|
||||
define_key(keymap, "C-page_down","cmd_scrollRight");
|
||||
define_key(keymap, "C-p","cmd_scrollLineUp");
|
||||
define_key(keymap, "C-n","cmd_scrollLineDown");
|
||||
|
||||
define_key(keymap, "up","cmd_scrollLineUp");
|
||||
define_key(keymap, "down","cmd_scrollLineDown");
|
||||
define_key(keymap, "left","cmd_scrollLeft");
|
||||
define_key(keymap, "right","cmd_scrollRight");
|
||||
|
||||
define_key(keymap, "C-b","cmd_scrollLeft");
|
||||
define_key(keymap, "C-f","cmd_scrollRight");
|
||||
define_key(keymap, "C-a","scroll-beginning-of-line");
|
||||
define_key(keymap, "C-e","scroll-end-of-line");
|
||||
define_key(keymap, "M-<","scroll-top-left");
|
||||
define_key(keymap, "M->","cmd_scrollBottom");
|
||||
define_key(keymap, "home","scroll-top-left");
|
||||
define_key(keymap, "end","cmd_scrollBottom");
|
||||
}
|
||||
|
||||
|
||||
function bind_selection_keys (keymap) {
|
||||
define_key(keymap, "M-w","cmd_copy");
|
||||
define_key(keymap, "S-page_up", "cmd_selectPageUp");
|
||||
define_key(keymap, "S-page_down", "cmd_selectPageDown");
|
||||
define_key(keymap, "C-delete", "cmd_copy");
|
||||
define_key(keymap, "C-space", "set-mark");
|
||||
define_key(keymap, "C-@", "set-mark");
|
||||
define_key(keymap, "C-insert", "cmd_copy");
|
||||
define_key(keymap, "C-S-home", "cmd_selectTop");
|
||||
define_key(keymap, "C-S-end", "cmd_selectBottom");
|
||||
define_key(keymap, "C-S-left", "cmd_selectWordPrevious");
|
||||
define_key(keymap, "C-S-right", "cmd_selectWordNext");
|
||||
define_key(keymap, "S-left", "cmd_selectCharPrevious");
|
||||
define_key(keymap, "S-right", "cmd_selectCharNext");
|
||||
define_key(keymap, "S-home", "cmd_selectBeginLine");
|
||||
define_key(keymap, "S-end", "cmd_selectEndLine");
|
||||
define_key(keymap, "S-up", "cmd_selectLinePrevious");
|
||||
define_key(keymap, "S-down", "cmd_selectLineNext");
|
||||
|
||||
define_key(keymap, "C-B", "cmd_selectCharPrevious");
|
||||
define_key(keymap, "C-F", "cmd_selectCharNext");
|
||||
define_key(keymap, "M-B", "cmd_selectWordPrevious");
|
||||
define_key(keymap, "M-F", "cmd_selectWordNext");
|
||||
define_key(keymap, "C-P", "cmd_selectLinePrevious");
|
||||
define_key(keymap, "C-N", "cmd_selectLineNext");
|
||||
}
|
|
@ -0,0 +1,98 @@
|
|||
/**
|
||||
* (C) Copyright 2007-2008 Jeremy Maitin-Shepard
|
||||
* (C) Copyright 2009-2010 John J. Foerch
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
/*
|
||||
* define keymaps
|
||||
*/
|
||||
|
||||
define_keymap("sequence_help_keymap");
|
||||
define_keymap("sequence_abort_keymap");
|
||||
|
||||
define_keymap("default_base_keymap");
|
||||
|
||||
define_keymap("default_help_keymap");
|
||||
|
||||
define_keymap("default_global_keymap", $parent = default_base_keymap);
|
||||
|
||||
define_keymap("text_keymap");
|
||||
define_keymap("formfill_keymap");
|
||||
|
||||
define_keymap("content_buffer_normal_keymap");
|
||||
define_keymap("content_buffer_form_keymap", $display_name = "form");
|
||||
define_keymap("content_buffer_anchor_keymap", $display_name = "anchor");
|
||||
define_keymap("content_buffer_button_keymap", $display_name = "button");
|
||||
define_keymap("content_buffer_checkbox_keymap", $display_name = "checkbox", $notify);
|
||||
define_keymap("content_buffer_select_keymap", $display_name = "select", $notify);
|
||||
define_keymap("content_buffer_text_keymap", $display_name = "text", $notify,
|
||||
$parent = text_keymap);
|
||||
define_keymap("content_buffer_textarea_keymap", $display_name = "textarea", $notify,
|
||||
$parent = content_buffer_text_keymap);
|
||||
define_keymap("content_buffer_richedit_keymap", $display_name = "richedit", $notify,
|
||||
$parent = content_buffer_textarea_keymap);
|
||||
define_keymap("content_buffer_embed_keymap", $display_name = "embed", $notify);
|
||||
|
||||
define_keymap("special_buffer_keymap");
|
||||
define_keymap("download_buffer_keymap", $parent = special_buffer_keymap);
|
||||
define_keymap("help_buffer_keymap", $parent = special_buffer_keymap);
|
||||
|
||||
define_keymap("minibuffer_base_keymap", $parent = text_keymap);
|
||||
define_keymap("minibuffer_keymap", $parent = minibuffer_base_keymap);
|
||||
define_keymap("minibuffer_space_completion_keymap");
|
||||
define_keymap("hint_keymap", $parent = text_keymap);
|
||||
define_keymap("hint_quote_next_keymap");
|
||||
define_keymap("isearch_keymap");
|
||||
|
||||
define_keymap("single_character_options_minibuffer_keymap");
|
||||
define_keymap("minibuffer_message_keymap");
|
||||
define_keymap("read_buffer_keymap", $parent = minibuffer_keymap);
|
||||
|
||||
|
||||
define_keymap("caret_keymap");
|
||||
|
||||
define_keymap("quote_next_keymap", $notify);
|
||||
define_keymap("quote_keymap", $notify);
|
||||
|
||||
|
||||
/*
|
||||
* load bindings
|
||||
*/
|
||||
|
||||
load("basic-commands.js");
|
||||
|
||||
load("global.js");
|
||||
load("text.js");
|
||||
load("formfill.js");
|
||||
|
||||
load("content-buffer/normal.js");
|
||||
load("content-buffer/anchor.js");
|
||||
load("content-buffer/form.js");
|
||||
load("content-buffer/text.js");
|
||||
load("content-buffer/checkbox.js");
|
||||
load("content-buffer/textarea.js");
|
||||
load("content-buffer/richedit.js");
|
||||
load("content-buffer/select.js");
|
||||
load("content-buffer/button.js");
|
||||
load("content-buffer/embed.js");
|
||||
|
||||
load("minibuffer.js");
|
||||
load("hints.js");
|
||||
load("isearch.js");
|
||||
load("universal-argument.js");
|
||||
|
||||
load("content-buffer/element.js");
|
||||
load("content-buffer/zoom.js");
|
||||
|
||||
load("special-buffer.js");
|
||||
load("help-buffer.js");
|
||||
load("download-buffer.js");
|
||||
|
||||
load("caret.js");
|
||||
load("quote.js");
|
||||
|
||||
|
||||
provide("bindings");
|
|
@ -0,0 +1,45 @@
|
|||
/**
|
||||
* (C) Copyright 2008 Nelson Elhage
|
||||
* (C) Copyright 2009 John J. Foerch
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
define_key(caret_keymap, "C-a", "caret-beginning-of-line");
|
||||
define_key(caret_keymap, "C-e", "caret-end-of-line");
|
||||
define_key(caret_keymap, "C-b", "caret-backward-char");
|
||||
define_key(caret_keymap, "left", "caret-backward-char");
|
||||
define_key(caret_keymap, "M-b", "caret-backward-word");
|
||||
define_key(caret_keymap, "C-left", "caret-backward-word");
|
||||
define_key(caret_keymap, "M-left", "caret-backward-word");
|
||||
define_key(caret_keymap, "C-f", "caret-forward-char");
|
||||
define_key(caret_keymap, "right", "caret-forward-char");
|
||||
define_key(caret_keymap, "M-f", "caret-forward-word");
|
||||
define_key(caret_keymap, "C-right", "caret-forward-word");
|
||||
define_key(caret_keymap, "M-right", "caret-forward-word");
|
||||
define_key(caret_keymap, "M-w", "cmd_copy");
|
||||
|
||||
define_key(caret_keymap, "home", "caret-beginning-of-line");
|
||||
define_key(caret_keymap, "end", "caret-end-of-line");
|
||||
define_key(caret_keymap, "S-home", "cmd_selectBeginLine");
|
||||
define_key(caret_keymap, "S-end", "cmd_selectEndLine");
|
||||
define_key(caret_keymap, "C-S-left", "cmd_selectWordPrevious");
|
||||
define_key(caret_keymap, "C-S-right", "cmd_selectWordNext");
|
||||
|
||||
define_key(caret_keymap, "C-space", "set-mark");
|
||||
define_key(caret_keymap, "C-@", "set-mark");
|
||||
|
||||
define_key(caret_keymap, "C-n", "caret-forward-line");
|
||||
define_key(caret_keymap, "down", "caret-forward-line");
|
||||
define_key(caret_keymap, "C-p", "caret-backward-line");
|
||||
define_key(caret_keymap, "up", "caret-backward-line");
|
||||
define_key(caret_keymap, "M-<", "caret-beginning-of-first-line");
|
||||
define_key(caret_keymap, "M->", "caret-end-of-last-line");
|
||||
define_key(caret_keymap, "M-v", "caret-backward-page");
|
||||
define_key(caret_keymap, "page_up", "caret-backward-page");
|
||||
define_key(caret_keymap, "C-v", "caret-forward-page");
|
||||
define_key(caret_keymap, "page_down", "caret-forward-page");
|
||||
define_key(caret_keymap, "back_space", "caret-backward-page");
|
||||
define_key(caret_keymap, "S-space", "caret-backward-page");
|
||||
define_key(caret_keymap, "space","caret-forward-page");
|
|
@ -0,0 +1,11 @@
|
|||
/**
|
||||
* (C) Copyright 2009 John J. Foerch
|
||||
*
|
||||
* Use, modification, and distribution are subject to the terms specified in the
|
||||
* COPYING file.
|
||||
**/
|
||||
|
||||
define_key(content_buffer_anchor_keymap, "return", "follow",
|
||||
$browser_object = browser_object_focused_element);
|
||||
define_key(content_buffer_anchor_keymap, "o", "follow-new-buffer",
|
||||
$browser_object = browser_object_focused_element);
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue