add conkeror subrepo

This commit is contained in:
aborn 2014-03-16 15:15:44 +08:00
parent e9455baeee
commit b35fb9fe98
283 changed files with 34185 additions and 0 deletions

View File

@ -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)

21
conkeror/.gitignore vendored Normal file
View File

@ -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

1423
conkeror/COPYING Normal file

File diff suppressed because it is too large Load Diff

61
conkeror/CREDITS Normal file
View File

@ -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

10
conkeror/INSTALL Normal file
View File

@ -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

59
conkeror/Info.plist Normal file
View File

@ -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>

8
conkeror/Makefile Normal file
View File

@ -0,0 +1,8 @@
.PHONY: clean
CFLAGS ?= -O2 -g
conkeror-spawn-helper: conkeror-spawn-helper.c
clean:
rm -f conkeror-spawn-helper

13
conkeror/application.ini Normal file
View File

@ -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

View File

@ -0,0 +1,3 @@
<!ENTITY brandShortName "Conkeror">
<!ENTITY brandFullName "Conkeror">
<!ENTITY vendorShortName "Conkeror">

View File

@ -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

24
conkeror/chrome.manifest Normal file
View File

@ -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

View File

@ -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

View File

@ -0,0 +1 @@

View File

@ -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]);

View File

@ -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]);

View File

@ -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]);

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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;
}

43
conkeror/content/help.css Normal file
View File

@ -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;
}

View File

@ -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;
}

View File

@ -0,0 +1,3 @@
#minibuffer-input {
-moz-binding: url("chrome://conkeror-gui/content/annotated-textbox.xml#annotated-textbox");
}

View File

@ -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;
}

View File

@ -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>

View File

@ -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

View File

@ -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

View File

@ -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

345
conkeror/contrib/build.sh Executable file
View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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

95
conkeror/contrib/install.sh Executable file
View File

@ -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"

View File

@ -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

View File

@ -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>.

19
conkeror/contrib/mketags.sh Executable file
View File

@ -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"

View File

@ -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");

38
conkeror/contrib/run-conkeror Executable file
View File

@ -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

14
conkeror/contrib/testrun.sh Executable file
View File

@ -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"

View File

@ -0,0 +1,10 @@
[App]
Vendor=conkeror.org
Name=xrev
Version=0.01
BuildID=git
ID=xrev@conkeror.org
[Gecko]
MinVersion=1.9
MaxVersion=*

View File

@ -0,0 +1 @@
manifest chrome/chrome.manifest

View File

@ -0,0 +1 @@
content xrev file:../content/

View File

@ -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>

View File

@ -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(''));
}

View File

@ -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);

View File

@ -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)

567
conkeror/debian/MPL Normal file
View File

@ -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."

View File

@ -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

View File

@ -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

465
conkeror/debian/changelog Normal file
View File

@ -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

1
conkeror/debian/compat Normal file
View File

@ -0,0 +1 @@
9

View File

@ -0,0 +1,2 @@
usr/share/conkeror
usr/lib/conkeror

View File

@ -0,0 +1,5 @@
debian/MPL
debian/README.Debian
debian/CREDITS.Debian
CREDITS

View File

@ -0,0 +1 @@
conkeror-spawn-helper usr/lib/conkeror

View File

@ -0,0 +1 @@
usr/lib/conkeror/conkeror-spawn-helper usr/share/conkeror/conkeror-spawn-helper

View File

@ -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

View File

@ -0,0 +1,5 @@
#!/bin/sh
for xrrbhs in /usr/lib/xulrunner-*/reportbug-helper-script; do
$xrrbhs conkeror
done

View File

@ -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

View File

@ -0,0 +1,6 @@
usr/bin
usr/share/conkeror
usr/share/conkeror/contrib
usr/share/conkeror/components
usr/share/applications
usr/share/man/man1

View File

@ -0,0 +1,3 @@
debian/MPL
debian/CREDITS.Debian
CREDITS

View File

@ -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

View File

@ -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)

View File

@ -0,0 +1 @@
contrib/man/conkeror.1

View File

@ -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"

View File

@ -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

View File

@ -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

77
conkeror/debian/control Normal file
View File

@ -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.

40
conkeror/debian/copyright Normal file
View File

@ -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.

View File

@ -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);

View File

@ -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 \"*\" "+

View File

@ -0,0 +1,2 @@
sensible-editor-xdg-open.diff
deb-webjumps.diff

23
conkeror/debian/rules Executable file
View File

@ -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

View File

@ -0,0 +1 @@
3.0 (quilt)

1
conkeror/debian/watch Normal file
View File

@ -0,0 +1 @@
# We track Conkeror Git revisions, thus no need for a watch file.

View 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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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");

View File

@ -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);

View File

@ -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);

View File

@ -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>

254
conkeror/help/help.html Normal file
View File

@ -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>&nbsp;</td>
</tr>
<tr>
<td><span class="key">F</span></td>
<td>forward</td>
<td>&nbsp;</td>
</tr>
<tr>
<td><span class="key">r</span></td>
<td>reload</td>
<td>&nbsp;</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-&lt;</span></td><td>Beginning of document</td></tr>
<tr><td><span class="key">M-&gt;</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>&nbsp;</td></tr>
<tr><td>lastfm-user</td><td>&nbsp;</td></tr>
<tr><td>lastfm-music</td><td>&nbsp;</td></tr>
<tr><td>lastfm-group</td><td>&nbsp;</td></tr>
<tr><td>lastfm-tag</td><td>&nbsp;</td></tr>
<tr><td>lastfm-label</td><td>&nbsp;</td></tr>
<tr><td>lastfm-event</td><td>&nbsp;</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>

55
conkeror/help/manual.css Normal file
View File

@ -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;
}

214
conkeror/help/tutorial.html Normal file
View File

@ -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>

View File

@ -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

View File

@ -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&nbsp;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&nbsp;ssl-add-exception</code> command.</p>
">

View File

@ -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

View File

@ -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&nbsp;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&nbsp;ssl-add-exception</code>.</p>
">

144
conkeror/modules/array.js Normal file
View File

@ -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");

View File

@ -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");
}

View File

@ -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");

View File

@ -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");

View File

@ -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