Commit 7d7745eb authored by Jiří Helebrant's avatar Jiří Helebrant

First (somewhat) useable webextension port.

parent a91f7874
node_modules/
dist/
packages/
\ No newline at end of file
{
"env": {
"browser": true,
"es6": true,
"webextensions": true
},
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 2018
},
"extends": "standard"
}
\ No newline at end of file
CMakeCache.txt
CMakeFiles/
tests/dane-plug
tests/iptest
tests/ssl-test
tests/unbound-test-dnssec
tests/dnssec-plug
FireBreath/
Makefile
Makefile.Dlin
Makefile.Dmac
Makefile.Dwin
Makefile.Tlin
Makefile.Tmac
Makefile.Twin
add-on/firefox2/install.rdf
add-on/firefox2/plugins/
cmake_install.cmake
libs/
libwin/
libswin/
dll_build/
builds/
node_modules/
dist/
packages/
plugins-lib/
add-on/ie2/DNSSECToolbar/Debug/
add-on/ie2/DNSSECToolbar/ReleaseMinSize/
add-on/ie2/DNSSECToolbar/IEdnssec.sdf
ie/DNSSECValidator/*.sdf
ie/DNSSECValidator/*.suo
ie/DNSSECValidator/DNSSECValidator/Debug/
ie/DNSSECValidator/DNSSECValidator/Release/
ie/DNSSECValidator/DNSSECValidator/*.aps
ie/DNSSECValidator/DNSSECValidator/*.user
ie/DNSSECValidator/DNSSECValidator/DNSSECValidator_i.c
ie/DNSSECValidator/DNSSECValidator/DNSSECValidator_i.h
ie/DNSSECValidator/DNSSECValidator/DNSSECValidator_p.c
ie/Installer/*.suo
ie/Installer/Installer/Installer/
ie/WTL81/
firefox/dnssec_validator-*.xpi
firefox/plugins/
firefox/install.rdf
plugin/FireBreath/
plugin/build/
tmp_build/
add-on/firefox2/content/about.xul
.*.swp
#compiled plugin libraries
chrome/*.so
chrome/*.dll
chrome/DNSSECValidatorPlugin.plugin
#packed Chrome extension and keys
*.crx
chrome.der
chrome.pem
build/
\ No newline at end of file
image: node
stages:
- install_deps
- lint
- test
- build
- publish
lint:js:
stage: lint
dependencies:
- install_deps
scripts: npm run lint:js
lint:css:
stage: lint
dependencies:
- install_deps
scripts: npm run lint:css
build:firefox:
stage: build
dependencies:
- install_deps
script: npm run build firefox
artifacts:
- paths:
- ./packages/*firefox.xpi.zip
build:chrome:
stage: build
dependencies:
- install_deps
script: npm run build firefox
artifacts:
- paths:
- ./packages/*chrome.zip
pages:
stage: publish
artifacts:
- paths:
- ./public
[submodule "libs-source"]
path = libs-source
url = git://git.nic.cz/dane-libs
[submodule "FireBreath"]
path = ub_plugin/FireBreath
url = https://github.com/firebreath/FireBreath.git
{
"trailingComma": "none",
"tabWidth": 2,
"semi": false,
"singleQuote": true,
"printWidth": 100,
"bracketSpacing": true
}
\ No newline at end of file
### GENERAL REQUIREMENTS ###
============================================
- OS: GNU/Linux/FreeBSD | Mac OS X | MS Windows
- CMake >=2.8 <http://www.cmake.org>
- FireBreath <http://www.firebreath.org>
Development Tools
============================================
* C/C++, javascript, html, css
* Projects: openssl - www.openssl.org,
ldns - www.nlnetlabs.nl/projects/ldns
unbound - unbound.net
Firebreath - www.firebreath.org
Build requirements
=============================================
* gcc, g++
* autotools (autoconf, automake, make)
* cmake >= 2.6 (cmake >= 2.8 for Mac)
* git (Makefile pulls submodules)
Platform dependent stuff:
- Linux: GTK+ 2 development libraries (usually named gtk2-devel or libgtk2.0-dev, lib32gcc1 lib32stdc++6
libc6-dev-i386 sed pkg-config libgtk2.0-dev; needed for FireBreath build)
- Mac: Xcode 4 (FireBreath says it needs it)
- Win: MS Visual Studio 2008 or latest version, mingw, for build on linux: gcc-mingw32
==================================
= Build instructions
==================================
-- Linux-based systems --
For compilation on the Linux just call cmake
and make without any extra parameters:
-----------------------------------------------
$ cmake . && make
-----------------------------------------------
-- BSD-based systems --
For compilation on the BSD just call cmake
and make without any extra parameters:
-----------------------------------------------
$ cmake . && gmake
-----------------------------------------------
-- MAC OSX systems --
For compilation on the MAC OS X is recommended
to set explicitly the target architecture, e.g.
-----------------------------------------------
$ cmake -DTARGET_ARCH=x86_64 .
(cmake -DTARGET_ARCH=i386 .)
$ make
-----------------------------------------------
-- Windows system --
Part 1 - build libs and dll, to be built on Linux:
--------------------------------------------------
$ make -f Makefile.libwin
$ make -f Makefile.win
--------------------------------------------------
Part 2 - to be built on Windows:
copy all files from (dll_build) to "dll_build" directory on windows
---------------------------------------
> MSVS-build.bat
or
> MKDIR builds
> FireBreath\prep2010.cmd plugin-source builds
run MSVS, open "builds/FireBreath.sln", select "MinSizeRel"
configuration (Build -> Configuration Manager...) and build it
---------------------------------------
Part 3 - to be built on Linux:
copy np*.dll files from "builds/bin/..." directory back to dll_build directori on Linux.
---------------------------------------
$ make -f Makefile.win xpi_x86
---------------------------------------
*Part4 - build plugin for IE - on windows (MSVS):
------------------------------------------------
copy all files from windows "dll_build" directory to add-on/IE2/DNSSECToolbar
run MSVS, open "IEdnssec.sln", select "MinSizeRel"
configuration (Build -> Configuration Manager...) and build it
Copy all *.dll files to "NSIS installer" dir and run "dnssec-setup.nsi" by NSIS.
-------------------------------------------------
===============================================
= Clean project (libs, FireBreath, cmake files)
===============================================
$ make -f Makefile.main clean
----------------------------------------------
* DNSSEC/TLSA Validator for Internet Explorer add-on - another build dependencies and build instructions.
====================================================================
### GENERAL REQUIREMENTS ###
- OS: GNU/Linux | MS Windows
- compilers: MinGW on Linux | MSVS on Windows
### BUILD ###
Part 1 - to be built on Linux (build libs and dll plugins):
# apt-get install gcc-mingw32 make git sed
$ make -f Makefile.libwin
$ make -f Makefile.win
- copy *.dll files from linux to Windows into "ie2\NSIS installer" folder
- copy *.dll and *.def files from Linux to Windows "ie2\DNSSECToolbar" and try to Part 2
Part 2 - to be built on Windows (build IEdnssec project -> "IEdnssec.dll"):
- install Microsoft Visual Studio 2010 Professional Edition or Visual Studio Exppress
<http://www.microsoft.com/visualstudio/en-us/home>
- run "Visual Studio Command Prompt" (Start -> Programs -> Microsoft Visual Studio -> Visual Studio Tools)
1. set Command Prompt path into folder "ie2\DNSSECToolbar"
2a. enter: "lib.exe /DEF:DANEcore-windows-x86.def /MACHINE:x86" for generating "DANEcore-windows-x86.lib"
2b. enter: "lib.exe /DEF:DNSSECcore-windows-x86.def /MACHINE:x86" for generating "DNSSECcore-windows-x86.lib"
- run VS and open project ie2\DNSSECToolbar\IEdnssec.sln, select "Release MinSize" configuration (Build -> Configuration Manager...) and build it
- copy new file "ie2\DNSSECToolbar\ReleaseMinSize\IEdnssec.dll" to "..\ie2\NSIS installer" and try to Part 3
Part 3 - to be built on Windows (create NSIS installer):
- install NSIS (Nullsoft Scriptable Install System)
<http://nsis.sourceforge.net/Download>
- run NSIS and open file "ie2\NSIS installer\dnssec-setup.nsi" and build it
- run "IE-dnssec-tlsa-validator-${VERSION}-windows-x86.exe" and install plugin on your computer
====================================================================
V2.2.0.4 / 21.2.2017
- Updated bundled ldns version to 1.7.0.
- Updated bundled OpenSSL version to 1.0.2k.
- Disabled DLV.
V2.2.0.3 / 16.11.2016
- Updated bundled OpenSSL version to 1.0.2j.
- Able to build 64-bit Windows extension for Firefox.
- Fixed some translation errors.
V2.2.0.2 / 15.5.2015
- Applied a hotfix from Joe Kucera fixing occasional Firefox crash.
- Fixed some javascript compatibility issues with new Firefox versions.
- Build system moved to autotools.
- Fixed Polish translation.
- The js-ctypes libraries are first sought in local extension directory
rather than in the system location.
V2.2.0.1 / 9.9.2014
- Bug-fix release for Mozilla Firefox only.
- Fixed bug. On Windows the js-ctypes plug-in cores could not be loaded because
of wrong library names.
V2.2.0 / 4.9.2014
- Deleted nsICache service in js-ctypes extension.
(Compatibility issue Firefox >= 32.* .)
- OpenSSL 1.0.1i.
- Updated prefixes for DOM nodes in Firefox js-ctypes extension.
- Fixed bug in type 2 TLSA record validation.
- Polish localisation.
- New validator implementation for Chromium/Chrome based
on Native Messaging.
- Fixed some another bugs.
V2.1.2 / 30.7.2014
- New js-ctypes-based implementation for Firefox.
- Build mechanism fixes.
- Extension can be build/linked against system libunbound.
- Added name-spaces to Firefox javascript code.
- Updated FireBreath version.
- OpenSSL 1.0.1h.
- Added new state notifying about entering a non-existent (according
to DNSSEC) web site.
- Fixed some warnings reported from AMO.
- Unbound 1.4.22.
- Fixed some another bugs.
v2.1.1 / 13.3.2014
- Ported DNSSEC/TLSA validator to Apple Safari.
- Fixed SSL bug. Certificate chain was not checked when SSL connection was rejected by host.
- MF: Added new TLSA-validator option. The plug-in can now download the certificate chain by itself. See issue #31.
- TLSA add-on bug fix: Certificate chain was not obtained when SSL_connect() returned 0.
- Plug-ins are capable of writing into system log on Mac OS X.
- Fixed some another bugs.
v2.1.0 / 25.1.2014
- Port DNSSEC/TLSA validator on the Opera browser
- Plugins: add and fix validation of DNSSEC/TLSA records for IPv6-only or IPv4-only host -> now based on getaddrinfo();
- Plugins: fix DNSSEC/TLSA validation performance
- GC,OP,IE: fix default settings when localstore was not created
- GC,OP,IE: fix CA cert can missing in the cert chain obtained from remote server
- GC,OP,MF: add checkbox for enable the validation of every HTTPS request into settings
- All: it can add port number behind IP address in the custom resolver/forwarder
- Source codes refactoring
- Update build system (Makefiles update)
- Fixed some another bugs
v2.1.0-rc1 / 12.12.2013
- DANE/TLSA validation support for all browsers
- User can cancel HTTPS connection when TLSA validation fail (only MF and GC)
- New design, new icons for DNSSEC/TLSA status
- Fix bug with IPv6 comparison - (RFC 5952)
- Fix memory leaks
- Add new error states of validator
- Update settings of validators
- Fix loss TLSA settings when resolver test button was pressed
- Popup with "resolver not support DNSSEC" was changed by new state of the icon
- New build system (Makefile), support for BSD
v2.0.1 / 23.4.2013
- Change default settings of validator (choice "Without resolver" is now default)
- Fixed problem with pop-up when resolver does not support DNSSEC
- Fixed problems reporting from Mozilla AMO
- Fixed problem that asynchronous Validate method may block the main thread until it receives a network reply
v2.0 / 3.4.2013
- Validator core is based on libunbound library
- Unifies the look and functionality for all the affected browsers
- User-friendly validator preferences
- Possibility to select specific TLDs and zones which will not be validated
- Shows IP addresses of browser and validator when the IP address which the browser is using differs from the address obtained by the DNSSEC
- Warning pop-up is displayed when resolver does not support DNSSEC
- English, German and Czech localization are supported
v2.0.beta1 / 5.12.2012
- First technical preview.
This diff is collapsed.
RMDIR builds /S
MKDIR builds
FireBreath\prep2010.cmd plugin-source builds
\ No newline at end of file
## Process this file with automake to produce Makefile.in
# Scan for additional macro definitions.
#ACLOCAL_AMFLAGS = -I $(top_srcdir)/m4
SUBDIRS = \
static-libs \
core_js-ctypes \
core_native-msg \
core_npapi \
add-on
DOCUMENTS = \
Doc/DANE-TLSA_Validator_2.x-specification.odt \
Doc/DNSSEC_Validator_2.0-specification.odt \
Doc/DNSSEC_Validator_2.0-specification.pdf \
Doc/DNSSEC_Validator_2.0_validation_flowchart.dia \
Doc/DNSSEC_Validator_2.0_validation_flowchart.png
EXTRA_DIST = \
$(DOCUMENTS) \
Build \
CHANGELOG \
MSVS-build.bat \
authors.info \
autogen.sh \
build_osx_fat_autotools.sh \
scripts/install_chrome_add_payload.sh \
scripts/install_chrome_stub.sh \
install_osx_safari_add_payload.sh \
install_osx_safari_stub.sh
# DNSSEC Validator
## Install dependencies
$ npm install
## Development build
$ npm run dev chrome
$ npm run dev firefox
$ npm run dev opera
$ npm run dev edge
Run a browser & load the development build in it:
$ npm run firefox
$ npm run chrome
## Production build
### Local
$ npm run build chrome
$ npm run build firefox
$ npm run build opera
$ npm run build edge
### GitLab CI
Not yet…
Tag builds from CI will signed for publishing on addons.mozilla.com.
## Dependencies
- [unshiftio/url-parse](https://github.com/unshiftio/url-parse)
### Tools used for development
- [mozilla/webextension-polyfill](https://github.com/mozilla/webextension-polyfill) (polyfills for APIs yet unsupported in Chrome & friends)
- [mozilla/web-ext](https://github.com/mozilla/web-ext) (firefox runner)
- [HaNdTriX/webextension-toolbox](https://github.com/HaNdTriX/webextension-toolbox) (build scripts and webpack config)
- ESlint & Prettier
[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](http://standardjs.com)
@PACKAGE_VERSION@
#ACLOCAL_AMFLAGS = -I $(top_srcdir)/m4
TARGETS = $(EMPTY)
WORKDIRS = $(EMPTY)
BUILT_SOURCES = $(EMPTY)
CLEANFILES = $(EMPTY)
DIST_FILES = $(EMPTY)
do_subst = sed \
-e 's,[@]PACKAGE[@],$(PACKAGE),g' \
-e 's,[@]OS_TARGET[@],$(OS_TARGET),g' \
-e 's,[@]VERSION[@],$(PACKAGE_VERSION),g' \
-e 's,[@]PACKAGE_VERSION[@],$(PACKAGE_VERSION),g' \
-e 's,[@]XPCOM_ABI_SUFF[@],$(XPCOM_ABI_SUFF),g'
include Makefile.content
include Makefile.mozz
include Makefile.cr_dnssec
include Makefile.cr_tlsa
include Makefile.saf
if EXTPKG_CR_NM
TARGETS += \
install_chrome_variables.sh
install_chrome_variables.sh: install_chrome_variables.sh.in Makefile
$(do_subst) < $< > $@
endif
EXTRA_DIST = \
install_chrome_variables.sh.in \
Makefile.content \
Makefile.mozz \
Makefile.cr_dnssec \
Makefile.cr_tlsa \
Makefile.saf \
$(DIST_FILES)
clean-local:
for d in $(WORKDIRS); do \
rm -rf $$d; \
done
all: $(TARGETS)
This diff is collapsed.
dnssec_cs_CZ_LOCALE_CR = \
$(top_srcdir)/add-on/chrome-dnssec/common/_locales/cs/messages.json
dnssec_de_DE_LOCALE_CR = \
$(top_srcdir)/add-on/chrome-dnssec/common/_locales/de/messages.json
dnssec_en_US_LOCALE_CR = \
$(top_srcdir)/add-on/chrome-dnssec/common/_locales/en/messages.json
dnssec_pl_PL_LOCALE_CR = \
$(top_srcdir)/add-on/chrome-dnssec/common/_locales/pl/messages.json
dnssec_validator_LOCALES_CR = \
$(dnssec_cs_CZ_LOCALE_CR) \
$(dnssec_de_DE_LOCALE_CR) \
$(dnssec_en_US_LOCALE_CR) \
$(dnssec_pl_PL_LOCALE_CR)
dnssec_validator_CONTENT_CR = \
$(top_srcdir)/add-on/chrome-dnssec/common/detail-info.html \
$(top_srcdir)/add-on/chrome-dnssec/common/dnssec_action.gif \
$(top_srcdir)/add-on/chrome-dnssec/common/dnssec_action.png \
$(top_srcdir)/add-on/chrome-dnssec/common/dnssec_bogus.png \
$(top_srcdir)/add-on/chrome-dnssec/common/dnssec_error.png \
$(top_srcdir)/add-on/chrome-dnssec/common/dnssec_init.png \
$(top_srcdir)/add-on/chrome-dnssec/common/dnssec_ip.png \
$(top_srcdir)/add-on/chrome-dnssec/common/dnssec_no.png \
$(top_srcdir)/add-on/chrome-dnssec/common/dnssec_off.png \
$(top_srcdir)/add-on/chrome-dnssec/common/dnssec_orange.png \
$(top_srcdir)/add-on/chrome-dnssec/common/dnssec_valid.png \
$(top_srcdir)/add-on/chrome-dnssec/common/icon.png \
$(top_srcdir)/add-on/chrome-dnssec/common/popup.html \
$(top_srcdir)/add-on/chrome-dnssec/common/popup.js \
$(top_srcdir)/add-on/chrome-dnssec/common/popup2.js
dnssec_validator_BALLAST_CR = \
$(top_srcdir)/add-on/chrome-dnssec/common/COPYING
if EXTPKG_CR_NM
TARGETS += \
dvcnm-directory-stamp
BUILT_SOURCES += \
$(top_srcdir)/add-on/chrome-dnssec/native-msg/background.js \
$(top_srcdir)/add-on/chrome-dnssec/native-msg/manifest.json
CLEANFILES += \
$(top_srcdir)/add-on/chrome-dnssec/native-msg/background.js \