Initial checkin of Firefox cck into extensions

Not part of default build
This commit is contained in:
mkaply%us.ibm.com 2005-10-25 17:23:48 +00:00
Родитель aafe5aa40b
Коммит a4801bf6b9
22 изменённых файлов: 3127 добавлений и 0 удалений

48
extensions/cck/Makefile.in Executable file
Просмотреть файл

@ -0,0 +1,48 @@
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# 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 mozilla.org code.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
DEPTH = ../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
MODULE = cckwizard
DIRS = browser
include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -0,0 +1,98 @@
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# 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 Website Reporter.
#
# The Initial Developer of the Original Code is
# The Mozilla Foundation.
# Portions created by the Initial Developer are Copyright (C) 2005
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
# Robert J. Accettura <robert@accettura.com>, original author
# Jay Patel <jay@mozilla.org>
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
DEPTH = ../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
ifdef MOZ_XUL_APP
XPI_NAME = cckwizard
USE_EXTENSION_MANIFEST = 1
NO_JAR_AUTO_REG = 1
INSTALL_EXTENSION_ID = cckwizard@extensions.mozilla.org
XPI_PKGNAME = cckwizard-$(MOZ_APP_VERSION)
endif
ALL_LOCALES = \
en-US \
$(NULL)
DIST_FILES = install.rdf
# We should really pull FIREFOX_VERSION and THUNDERBIRD_VERSION from
# # browser/config/version.txt mail/config/version.txt but we can't be assured
# # that we've even pulled those files. So we hardcode them.
XULAPP_DEFINES = \
-DFIREFOX_VERSION=$(FIREFOX_VERSION) \
-DTHUNDERBIRD_VERSION=$(THUNDERBIRD_VERSION) \
-DEXTENSION_VERSION=$(MOZILLA_VERSION) \
$(NULL)
#PREF_JS_EXPORTS = $(srcdir)/resources/content/prefs/reporter.js
include $(topsrcdir)/config/config.mk
SUBMAKEFILES += locales/Makefile
# We need the locale-loop to happen before rules.mk, but we still want the
# default all:: target. Hack it here.
SUPPRESS_DEFAULT_RULES = 1
all::
$(MAKE) export
$(MAKE) libs
# Do depend as well
alldep::
$(MAKE) export
$(MAKE) depend
$(MAKE) libs
libs realchrome:: locales/Makefile
@$(EXIT_ON_ERROR) \
for locale in $(ALL_LOCALES); do \
$(MAKE) -C locales AB_CD=$$locale; \
done
include $(topsrcdir)/config/rules.mk

Просмотреть файл

@ -0,0 +1,24 @@
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>cckwizard@extensions.mozilla.org</em:id>
<em:name>CCK Wizard</em:name>
<em:version>0.5</em:version>
<em:description>XUL Wizard to create CCK Packages</em:description>
<em:creator>Michael Kaply</em:creator>
<em:homepageURL>http://www.mozilla.org/projects/cck/firefox</em:homepageURL>
<em:iconURL>chrome://cckwizard/content/cckwizard.png</em:iconURL>
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.0</em:minVersion>
<em:maxVersion>1.5.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>

18
extensions/cck/browser/jar.mn Executable file
Просмотреть файл

@ -0,0 +1,18 @@
cckwizard.jar:
% content cckwizard %content/cckwizard/
% overlay chrome://browser/content/browser.xul chrome://cckwizard/content/cckwizard-browser-overlay.xul
content/cckwizard/cckwizard-browser-overlay.xul (resources/content/cckwizard/cckwizard-browser-overlay.xul)
content/cckwizard/cckwizard.js (resources/content/cckwizard/cckwizard.js)
content/cckwizard/cckwizard.png (resources/content/cckwizard/cckwizard.png)
content/cckwizard/cckwizard.xul (resources/content/cckwizard/cckwizard.xul)
content/cckwizard/cckwizard.properties (resources/content/cckwizard/cckwizard.properties)
content/cckwizard/config.xul (resources/content/cckwizard/config.xul)
content/cckwizard/showconfig.xul (resources/content/cckwizard/showconfig.xul)
content/cckwizard/srcfiles/cck-browser-overlay.xul.in (resources/content/cckwizard/srcfiles/cck-browser-overlay.xul.in)
content/cckwizard/srcfiles/cck.dtd.in (resources/content/cckwizard/srcfiles/cck.dtd.in)
content/cckwizard/srcfiles/cck.js.in (resources/content/cckwizard/srcfiles/cck.js.in)
content/cckwizard/srcfiles/cck.properties.in (resources/content/cckwizard/srcfiles/cck.properties.in)
content/cckwizard/srcfiles/cckService.js.in (resources/content/cckwizard/srcfiles/cckService.js.in)
content/cckwizard/srcfiles/chrome.manifest.in (resources/content/cckwizard/srcfiles/chrome.manifest.in)
content/cckwizard/srcfiles/install.js.in (resources/content/cckwizard/srcfiles/install.js.in)
content/cckwizard/srcfiles/install.rdf.in (resources/content/cckwizard/srcfiles/install.rdf.in)

Просмотреть файл

@ -0,0 +1,59 @@
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# 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 Mozilla Browser code.
#
# The Initial Developer of the Original Code is
# Benjamin Smedberg <bsmedberg@covad.net>
# Portions created by the Initial Developer are Copyright (C) 2004
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****
DEPTH = ../../../..
topsrcdir = @top_srcdir@
srcdir = @srcdir@
VPATH = @srcdir@
relativesrcdir = extensions/cck/firefox/locales
include $(DEPTH)/config/autoconf.mk
ifdef MOZ_XUL_APP
XPI_NAME = cckwizard
USE_EXTENSION_MANIFEST = 1
NO_JAR_AUTO_REG = 1
endif
DEFINES += -DAB_CD=$(AB_CD)
include $(topsrcdir)/config/rules.mk
ifneq (en-US,$(AB_CD))
libs realchrome::
@echo "Comparing $(AB_CD) to en-US"
@$(PERL) $(topsrcdir)/toolkit/locales/compare-locales.pl $(srcdir)/en-US $(srcdir)/$(AB_CD)
endif

Просмотреть файл

@ -0,0 +1,173 @@
<!ENTITY cckWizard.title "Firefox Client Customization Kit (CCK)">
<!ENTITY cckWizard.description "This tool helps you create an extension that customizes Firefox. This extension can either be installed by the user or included in an install package.">
<!ENTITY cckWizard.oncancel "All changed data will be saved">
<!ENTITY beforeYouBegin.label "Before You Begin">
<!ENTITY beforeYouBegin.description "Decide which customizations you want to make and create/collect the customized files, such as:
<html:ul>
<html:li>Custom animation files for browser's animated logo</html:li>
<html:li>Search pluginsfdsafdsafs</html:li>
<html:li>Browser plug-ins</html:li>
</html:ul>">
<!ENTITY selectConfig.label "Select an Existing Configuration or Create a New One">
<!ENTITY selectConfig.description "Select an existing configuration, or click 'New' to create a new configuration and workspace in which to store your custom files. To edit an existing configuration without overwriting the original configuration, select it from the list and click 'Copy'.">
<!ENTITY showConfig.label "Show Config Info">
<!ENTITY newConfig.label "New">
<!ENTITY copyConfig.label "Copy">
<!ENTITY deleteConfig.label "Delete">
<!ENTITY customizeExt.label "Customize Extension">
<!ENTITY customizeExt.description "">
<!ENTITY id.label "Unique ID:">
<!ENTITY name.label "Name:">
<!ENTITY version.label "Version:">
<!ENTITY description.label "Description:">
<!ENTITY creator.label "Creator:">
<!ENTITY homepageURL.label "Homepage URL:">
<!ENTITY updateURL.label "Update URL:">
<!ENTITY icon.label "Icon:">
<!ENTITY chooseFile.label "Choose File...">
<!ENTITY chooseDir.label "Choose Dir...">
<!ENTITY filename.label "Filename:">
<!ENTITY customizePartOne.label "Customize the Browser - Part One">
<!ENTITY orgName.error "Company Identifier is required">
<!ENTITY orgName.description "The Company Identifier is included as part of the browser's user agent string which appears when you open the Help menu and select About Mozilla Firefox.">
<!ENTITY orgName.label "Enter Your Company Identifier (up to 10 characters; no spaces):">
<!ENTITY orgName.caption "Company Identifier">
<!ENTITY homePage.caption "Default Home Page">
<!ENTITY homePage.label "Home Page URL:">
<!ENTITY homePage.description "This page is displayed when users first start the Firefox browser, or when they click the Home button.">
<!ENTITY titleBar.caption "Browser Window's Title Bar Text">
<!ENTITY titleBar.label "Custom Title Bar Text:">
<!ENTITY titleBar.description "The text you enter (for example, your company name) appears after the page title in the title bar. It is recommended that you use the format
<html:i>Mozilla Firefox: Companyname Edition</html:i>">
<!ENTITY customizePartTwo.label "Customize the Browser - Part Two">
<!ENTITY animLogo.caption "Animated Logo">
<!ENTITY animLogoURL.label "Logo Button URL:">
<!ENTITY animLogoURL.description "Enter the URL that users will go to when they click the animated logo button.">
<!ENTITY animLogoTooltip.description "Enter the tooltip that users will see when they mouse over the animated logo button.">
<!ENTITY animLogoTooltip.label "Logo Button Tooltip:">
<!ENTITY animLogoAnim.description "Path to Your Animated GIF File (16x16 pixels):">
<!ENTITY animLogoStill.description "Path to Your At Rest GIF or PNG File (16x16 pixels):">
<!ENTITY customizePartThree.label "Customize the Browser - Part Three">
<!ENTITY helpMenu.caption "Help Menu">
<!ENTITY helpMenu.description "You can add an item to the Help Menu which provides a link to your online customer support page.">
<!ENTITY helpMenuText.label "Menu Item Text:">
<!ENTITY helpMenuURL.label "Help Menu Item URL:">
<!ENTITY helpMenuAccesskey.label "Help Menu Item Accesskey:">
<!ENTITY allowedSites.caption "Allowed Sites">
<!ENTITY allowedSites.description "You can specify domains for which popups and/or XPI installs are allowed. List the domains, separated by a comma.">
<!ENTITY popupAllowedSites.label "Popup Allowed Sites:">
<!ENTITY installAllowedSites.label "Install Allowed Sites:">
<!ENTITY customizeBrowserPlugins.label "Customize Browser Plug-ins">
<!ENTITY browserPlugins.description "You may select up to five browser plug-ins to be preinstalled.">
<!ENTITY customizeSearchPlugins.label "Customize Search Plugins">
<!ENTITY searchPlugins.description "You may select up to five search plugins to be preinstalled.">
<!ENTITY file.label "File:">
<!ENTITY icon.label "Icon:">
<!ENTITY folderTitle.label "Folder Title:">
<!ENTITY customizeToolbarOne.label "Customize the Personal Toolbar - Part One">
<!ENTITY addToolbarFolder.caption "Add a folder to the personal toolbar">
<!ENTITY addToolbarFolder.description "You can add a folder with up to five bookmarks to the personal toolbar.">
<!ENTITY addToolbarBookmark.caption "Add bookmarks to the personal toolbar">
<!ENTITY addToolbarBookmark.description "You can add up to five bookmarks to the personal toolbar.">
<!ENTITY customizeToolbarTwo.label "Customize the Personal Toolbar - Part Two">
<!ENTITY customizeBookmarksOne.label "Customize Bookmarks - Part One">
<!ENTITY customizeBookmarksTwo.label "Customize Bookmarks - Part Two">
<!ENTITY addBookmarkFolder.caption "Add a folder to bookmarks">
<!ENTITY addBookmarkFolder.description "You can add a folder with up to five bookmarks to bookmarks.">
<!ENTITY addBookmark.caption "Add bookmarks">
<!ENTITY addBookmark.description "You can add up to five bookmarks.">
<!ENTITY bookmarkTitle.label "Bookmark Title">
<!ENTITY bookmarkURL.label "URL">
<!ENTITY customizePrefs.label "Customize Preferences">
<!ENTITY prefs.label "Preferences">
<!ENTITY prefs.description "You can add up to five custom preferences. Note these preferences are stored exactly as written, so put quotes around string preferences.">
<!ENTITY prefName.label "Preference Name">
<!ENTITY prefValue.label "Value: ">
<!ENTITY customizeCerts.label "Customize Certificates">
<!ENTITY customizeCerts.warning "You may select up to five certificates to be preinstalled.<html:br/><html:br/>
<html:b>IMPORTANT: If you add certificates to Firefox, you CANNOT
ship a browser outside of your company or institution and call it Firefox.
This feature is intended primarily for corporate and institutional users
that will be deploying Firefox inside their organization.</html:b>">
<!ENTITY customizeProxy.label "Customize Proxy Configurations">
<!ENTITY proxyTitle.label "Configure Proxies to Access the Internet">
<!ENTITY directTypeRadio.label "Direct connection to the Internet">
<!ENTITY directTypeRadio.accesskey "d">
<!ENTITY WPADTypeRadio.label "Auto-detect proxy settings for this network">
<!ENTITY WPADTypeRadio.accesskey "w">
<!ENTITY manualTypeRadio.label "Manual proxy configuration:">
<!ENTITY manualTypeRadio.accesskey "m">
<!ENTITY autoTypeRadio.label "Automatic proxy configuration URL:">
<!ENTITY autoTypeRadio.accesskey "a">
<!ENTITY configAutoconfigText.label "Configuration location (URL):">
<!ENTITY configAutoconfigText.accesskey "u">
<!ENTITY reload.label "Reload">
<!ENTITY reload.accesskey "l">
<!ENTITY ftp.label "FTP Proxy:">
<!ENTITY ftp.accesskey "f">
<!ENTITY gopher.label "Gopher Proxy:">
<!ENTITY gopher.accesskey "g">
<!ENTITY http.label "HTTP Proxy:">
<!ENTITY http.accesskey "h">
<!ENTITY ssl.label "SSL Proxy:">
<!ENTITY ssl.accesskey "s">
<!ENTITY socks.label "SOCKS Host:">
<!ENTITY socks.accesskey "c">
<!ENTITY socks4.label "SOCKS v4">
<!ENTITY socks4.accesskey "k">
<!ENTITY socks5.label "SOCKS v5">
<!ENTITY socks5.accesskey "v">
<!ENTITY port.label "Port:">
<!ENTITY HTTPport.accesskey "p">
<!ENTITY SSLport.accesskey "o">
<!ENTITY FTPport.accesskey "r">
<!-- No accesskey for gopher (':' doesn't go well) - mpt's going to redesign the window -->
<!ENTITY gopherPort.accesskey "">
<!ENTITY SOCKSport.accesskey "t">
<!ENTITY noproxy.label "No Proxy for:">
<!ENTITY noproxy.accesskey "n">
<!ENTITY noproxyExplain.label "Example: .mozilla.org, .net.nz, 192.168.1.0/24">
<!ENTITY shareproxy.label "Use this proxy server for all protocols">
<!ENTITY shareproxy.accesskey "x">
<!ENTITY showConfig.title "Show Configuration">
<!ENTITY createConfig.title "Create New Configuration">
<!ENTITY configName.label "Name of new configuration">
<!ENTITY configLocation.label "Location of new configuration">

Просмотреть файл

@ -0,0 +1,5 @@
#filter substitution
cckwizard.jar:
% locale cckwizard @AB_CD@ %locale/@AB_CD@/cckwizard/
locale/@AB_CD@/cckwizard/cckWizard.dtd (@AB_CD@/chrome/cckWizard.dtd)

Просмотреть файл

@ -0,0 +1,11 @@
<?xml version="1.0"?>
<overlay id="cckwizardOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="chrome://browser/content/utilityOverlay.js"/>
<menupopup id="menu_ToolsPopup">
<menuitem label="CCK Wizard" insertafter="devToolsSeparator"
oncommand="window.openDialog('chrome://cckwizard/content/cckwizard.xul','cckwizard','chrome,modal');"
onclick="checkForMiddleClick(this, event);"/>
</menupopup>
</overlay>

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Двоичные данные
extensions/cck/browser/resources/content/cckwizard/cckwizard.png Executable file

Двоичный файл не отображается.

После

Ширина:  |  Высота:  |  Размер: 905 B

Просмотреть файл

@ -0,0 +1,4 @@
windowTitle=Firefox CCK
deleteConfirm=Are you sure you want to delete this configuration?
outputLocation=Firefox CCK Wizard is completed. XPI is available at:\n

Просмотреть файл

@ -0,0 +1,665 @@
<?xml version="1.0"?>
<!-- ***** BEGIN LICENSE BLOCK *****
#if 0
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- 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 Client Customization Kit (CCK).
-
- The Initial Developer of the Original Code is IBM Corp.
- Portions created by the Initial Developer are Copyright (C) 2005
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
#endif
- ***** END LICENSE BLOCK ***** -->
<!DOCTYPE prefwindow SYSTEM "chrome://cckwizard/locale/cckWizard.dtd">
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<wizard id="example-window" title="&cckWizard.title;"
height="480"
width="640"
onwizardcancel="alert('&cckWizard.oncancel;');saveconfig();"
onwizardfinish="CreateCCK();"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="chrome://cckwizard/content/cckwizard.js"/>
<wizardpage onpageshow="ShowMain();">
<description>&cckWizard.description;</description>
<groupbox>
<caption label="&beforeYouBegin.label;"/>
<description>&beforeYouBegin.description;</description>
</groupbox>
<groupbox>
<caption label="&selectConfig.label;"/>
<description>&selectConfig.description;</description>
<hbox>
<menulist style="min-width: 50px;" flex="1" id="byb-configs" sizetopopup="false" oncommand="setcurrentconfig(this.selectedItem.value);">
<menupopup>
</menupopup>
</menulist>
<button label="&showConfig.label;" oncommand="ShowConfigInfo()"/>
<button label="&newConfig.label;" oncommand="CreateConfig();"/>
<button label="&copyConfig.label;" disabled="true" oncommand="CopyConfig();"/>/>
<button label="&deleteConfig.label;" id="deleteconfig" oncommand="DeleteConfig();"/>
</hbox>
</groupbox>
</wizardpage>
<wizardpage label="&customizeExt.label;" description="&customizeExt.description;" onpageshow="initimage('iconURL','icon');" onpageadvanced="return ValidateFile('iconURL')">
<hbox align="center">
<spacer flex="1"/>
<label>&id.label;</label>
<textbox id="id" style="width: 350px;" tooltiptext="Format: cck-companyname@extensions.domainname.tld"/>
</hbox>
<hbox align="center">
<spacer flex="1"/>
<label>&name.label;</label>
<textbox id="name" style="width: 350px;"/>
</hbox>
<hbox align="center">
<spacer flex="1"/>
<label>&version.label;</label>
<textbox id="version" style="width: 350px;"/>
</hbox>
<hbox align="center">
<spacer flex="1"/>
<label>&description.label;</label>
<textbox id="description" style="width: 350px;"/>
</hbox>
<hbox align="center">
<spacer flex="1"/>
<label>&creator.label;</label>
<textbox id="creator" style="width: 350px;"/>
</hbox>
<hbox align="center">
<spacer flex="1"/>
<label>&homepageURL.label;</label>
<textbox id="homepageURL" style="width: 350px;"/>
</hbox>
<hbox align="center">
<spacer flex="1"/>
<label>&updateURL.label;</label>
<textbox id="updateURL" style="width: 350px;"/>
</hbox>
<hbox align="center">
<spacer flex="1"/>
<label>&icon.label;</label>
<hbox>
<textbox style="min-width: 226px;" flex="1" id="iconURL"/>
</hbox>
<hbox>
<image id="icon" src='' width='32' height='32'/>
</hbox>
<hbox>
<button label="&chooseFile.label;" oncommand="chooseimage('iconURL','icon');"/>
</hbox>
</hbox>
<hbox align="center">
<spacer flex="1"/>
<label>&filename.label;</label>
<textbox id="filename" style="width: 335px;"/>
<label>.xpi</label>
</hbox>
</wizardpage>
<wizardpage label="&customizePartOne.label;" onpageadvanced="return Validate('OrganizationName','&orgName.error;')">
<groupbox>
<caption label="&orgName.caption;"/>
<description>&orgName.description;</description>
<hbox align="center">
<label>&orgName.label;</label>
<textbox id="OrganizationName" maxlength="10" flex="1"/>
</hbox>
</groupbox>
<groupbox>
<caption label="&homePage.caption;"/>
<description>&homePage.description;</description>
<hbox align="center">
<label>&homePage.label;</label>
<textbox id="HomePageURL" flex="1"/>
</hbox>
</groupbox>
<groupbox>
<caption label="&titleBar.caption;"/>
<description>&titleBar.description;</description>
<hbox align="center">
<label>&titleBar.label;</label>
<textbox id="CompanyName" flex="1"/>
</hbox>
</groupbox>
</wizardpage>
<wizardpage label="&customizePartTwo.label;" onpageshow="initimage('LargeStillPath','LargeStill');initimage('LargeAnimPath','LargeAnim');" onpageadvanced="return ValidateFile('LargeAnimPath','LargeStillPath');">
<groupbox>
<caption label="&animLogo.caption;"/>
<description>&animLogoURL.description;</description>
<hbox align="center">
<label>&animLogoURL.label;</label>
<textbox flex="1" id="AnimatedLogoURL"/>
</hbox>
<description>&animLogoTooltip.description;</description>
<hbox align="center">
<label>&animLogoTooltip.label;</label>
<textbox flex="1" id="AnimatedLogoTooltip"/>
</hbox>
<description>&animLogoAnim.description;</description>
<hbox align="center">
<textbox id="LargeAnimPath" flex="1"/>
<image id="LargeAnim" src='' width='16' height='16'/>
<button label="&chooseFile.label;" oncommand="chooseimage('LargeAnimPath','LargeAnim');"/>
</hbox>
<description>&animLogoStill.description;</description>
<hbox align="center">
<textbox id="LargeStillPath" flex="1"/>
<image id="LargeStill" src='' width='16' height='16'/>
<button label="&chooseFile.label;" oncommand="chooseimage('LargeStillPath','LargeStill');"/>
</hbox>
</groupbox>
</wizardpage>
<wizardpage label="&customizePartThree.label;">
<groupbox>
<caption label="&helpMenu.caption;"/>
<description>&helpMenu.description;</description>
<vbox>
<label>&helpMenuText.label;</label>
<textbox id="HelpMenuCommandName" flex="1"/>
</vbox>
<vbox>
<label>&helpMenuURL.label;</label>
<textbox id="HelpMenuCommandURL" flex="1"/>
</vbox>
<vbox>
<label>&helpMenuAccesskey.label;</label>
<textbox id="HelpMenuCommandAccesskey" flex="1"/>
</vbox>
</groupbox>
<groupbox>
<caption label="&allowedSites.caption;"/>
<description>&allowedSites.description;</description>
<vbox>
<label>&popupAllowedSites.label;</label>
<textbox id="PopupAllowedSites" flex="1"/>
</vbox>
<vbox>
<label>&installAllowedSites.label;</label>
<textbox id="InstallAllowedSites" flex="1"/>
</vbox>
</groupbox>
</wizardpage>
<wizardpage label="&customizeBrowserPlugins.label;" onpageadvanced="return ValidateFile('BrowserPluginPath1','BrowserPluginPath2','BrowserPluginPath3','BrowserPluginPath4','BrowserPluginPath5');">
<description>&browserPlugins.description;</description>
<hbox>
<textbox id="BrowserPluginPath1" flex="1"/>
<button label="&chooseFile.label;" oncommand="choosefile('BrowserPluginPath1');"/>
</hbox>
<hbox>
<textbox id="BrowserPluginPath2" flex="1"/>
<button label="&chooseFile.label;" oncommand="choosefile('BrowserPluginPath3');"/>
</hbox>
<hbox>
<textbox id="BrowserPluginPath3" flex="1"/>
<button label="&chooseFile.label;" oncommand="choosefile('BrowserPluginPath3');"/>
</hbox>
<hbox>
<textbox id="BrowserPluginPath4" flex="1"/>
<button label="&chooseFile.label;" oncommand="choosefile('BrowserPluginPath4');"/>
</hbox>
<hbox>
<textbox id="BrowserPluginPath5" flex="1"/>
<button label="&chooseFile.label;" oncommand="choosefile('BrowserPluginPath5');"/>
</hbox>
</wizardpage>
<wizardpage label="&customizeSearchPlugins.label;" onpageadvanced="return ValidateFile('SearchPlugin1','SearchPluginIcon1','SearchPlugin2','SearchPluginIcon2','SearchPlugin3','SearchPluginIcon3','SearchPlugin4','SearchPluginIcon4','SearchPlugin5','SearchPluginIcon5');">
<description>&searchPlugins.description;</description>
<html:hr/>
<hbox align="center">
<spacer flex="1"/>
<label>&file.label;</label>
<textbox id="SearchPlugin1" style="min-width: 375px;" flex="1" />
<button label="&chooseFile.label;" oncommand="choosefile('SearchPlugin1');"/>
</hbox>
<hbox style="width: 350px;">
<spacer flex="1"/>
<label>&icon.label;</label>
<textbox id="SearchPluginIcon1" style="min-width: 380px;" flex="1" />
<button label="&chooseFile.label;" oncommand="choosefile('SearchPluginIcon1');"/>
</hbox>
<html:hr/>
<hbox align="center">
<spacer flex="1"/>
<label>&file.label;</label>
<textbox id="SearchPlugin2" style="min-width: 375px;" flex="1" />
<button label="&chooseFile.label;" oncommand="choosefile('SearchPlugin2');"/>
</hbox>
<hbox style="width: 350px;">
<spacer flex="1"/>
<label>&icon.label;</label>
<textbox id="SearchPluginIcon2" style="min-width: 380px;" flex="1" />
<button label="&chooseFile.label;" oncommand="choosefile('SearchPluginIcon2');"/>
</hbox>
<html:hr/>
<hbox align="center">
<spacer flex="1"/>
<label>&file.label;</label>
<textbox id="SearchPlugin3" style="min-width: 375px;" flex="1" />
<button label="&chooseFile.label;" oncommand="choosefile('SearchPlugin3');"/>
</hbox>
<hbox style="width: 350px;">
<spacer flex="1"/>
<label>&icon.label;</label>
<textbox id="SearchPluginIcon3" style="min-width: 380px;" flex="1" />
<button label="&chooseFile.label;" oncommand="choosefile('SearchPluginIcon3');"/>
</hbox>
<html:hr/>
<hbox align="center">
<spacer flex="1"/>
<label>&file.label;</label>
<textbox id="SearchPlugin4" style="min-width: 375px;" flex="1" />
<button label="&chooseFile.label;" oncommand="choosefile('SearchPlugin4');"/>
</hbox>
<hbox style="width: 350px;">
<spacer flex="1"/>
<label>&icon.label;</label>
<textbox id="SearchPluginIcon4" style="min-width: 380px;" flex="1" />
<button label="&chooseFile.label;" oncommand="choosefile('SearchPluginIcon4');"/>
</hbox>
<html:hr/>
<hbox align="center">
<spacer flex="1"/>
<label>&file.label;</label>
<textbox id="SearchPlugin5" style="min-width: 375px;" flex="1" />
<button label="&chooseFile.label;" oncommand="choosefile('SearchPlugin5');"/>
</hbox>
<hbox style="width: 350px;">
<spacer flex="1"/>
<label>&icon.label;</label>
<textbox id="SearchPluginIcon5" style="min-width: 380px;" flex="1" />
<button label="&chooseFile.label;" oncommand="choosefile('SearchPluginIcon5');"/>
</hbox>
<html:hr/>
</wizardpage>
<wizardpage label="&customizeToolbarOne.label;">
<groupbox>
<caption label="&addToolbarFolder.caption;"/>
<description>&addToolbarFolder.description;</description>
<hbox>
<label>&folderTitle.label;</label>
<textbox id="ToolbarFolder1"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;1:</label>
<textbox id="ToolbarFolder1.BookmarkTitle1"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="ToolbarFolder1.BookmarkURL1"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;2:</label>
<textbox id="ToolbarFolder1.BookmarkTitle2"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="ToolbarFolder1.BookmarkURL2"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;3:</label>
<textbox id="ToolbarFolder1.BookmarkTitle3"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="ToolbarFolder1.BookmarkURL3"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;4:</label>
<textbox id="ToolbarFolder1.BookmarkTitle4"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="ToolbarFolder1.BookmarkURL4"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;5:</label>
<textbox id="ToolbarFolder1.BookmarkTitle5"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="ToolbarFolder1.BookmarkURL5"/>
</hbox>
</groupbox>
</wizardpage>
<wizardpage label="&customizeToolbarTwo.label;">
<groupbox>
<caption label="&addToolbarBookmark.caption;"/>
<description>&addToolbarBookmark.description;</description>
<hbox>
<label>&bookmarkTitle.label;1:</label>
<textbox id="ToolbarBookmarkTitle1"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="ToolbarBookmarkURL1"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;2:</label>
<textbox id="ToolbarBookmarkTitle2"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="ToolbarBookmarkURL2"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;3:</label>
<textbox id="ToolbarBookmarkTitle3"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="ToolbarBookmarkURL3"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;4:</label>
<textbox id="ToolbarBookmarkTitle4"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="ToolbarBookmarkURL4"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;5:</label>
<textbox id="ToolbarBookmarkTitle5"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="ToolbarBookmarkURL5"/>
</hbox>
</groupbox>
</wizardpage>
<wizardpage label="&customizeBookmarksOne.label;">
<groupbox>
<caption label="&addBookmarkFolder.caption;"/>
<description>&addBookmarkFolder.description;</description>
<hbox>
<label>&folderTitle.label;</label>
<textbox id="BookmarkFolder1"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;1:</label>
<textbox id="BookmarkFolder1.BookmarkTitle1"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="BookmarkFolder1.BookmarkURL1"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;2:</label>
<textbox id="BookmarkFolder1.BookmarkTitle2"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="BookmarkFolder1.BookmarkURL2"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;3:</label>
<textbox id="BookmarkFolder1.BookmarkTitle3"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="BookmarkFolder1.BookmarkURL3"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;4:</label>
<textbox id="BookmarkFolder1.BookmarkTitle4"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="BookmarkFolder1.BookmarkURL4"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;5:</label>
<textbox id="BookmarkFolder1.BookmarkTitle5"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="BookmarkFolder1.BookmarkURL5"/>
</hbox>
</groupbox>
</wizardpage>
<wizardpage label="&customizeBookmarksTwo.label;">
<groupbox>
<caption label="&addBookmark.caption;"/>
<description>&addBookmark.description;</description>
<hbox>
<label>&bookmarkTitle.label;1:</label>
<textbox id="BookmarkTitle1"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="BookmarkURL1"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;2:</label>
<textbox id="BookmarkTitle2"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="BookmarkURL2"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;3:</label>
<textbox id="BookmarkTitle3"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="BookmarkURL3"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;4:</label>
<textbox id="BookmarkTitle4"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="BookmarkURL4"/>
</hbox>
<hbox>
<label>&bookmarkTitle.label;5:</label>
<textbox id="BookmarkTitle5"/>
<label>&bookmarkURL.label;1:</label>
<textbox id="BookmarkURL5"/>
</hbox>
</groupbox>
</wizardpage>
<wizardpage label="&customizePrefs.label;">
<groupbox>
<caption label="&prefs.label;"/>
<description>&prefs.description;</description>
<hbox>
<label>&prefName.label;1:</label>
<textbox id="PreferenceName1"/>
<label>&prefValue.label;</label>
<textbox id="PreferenceValue1"/>
</hbox>
<hbox>
<label>&prefName.label;2:</label>
<textbox id="PreferenceName2"/>
<label>&prefValue.label;</label>
<textbox id="PreferenceValue2"/>
</hbox>
<hbox>
<label>&prefName.label;3:</label>
<textbox id="PreferenceName3"/>
<label>&prefValue.label;</label>
<textbox id="PreferenceValue3"/>
</hbox>
<hbox>
<label>&prefName.label;4:</label>
<textbox id="PreferenceName4"/>
<label>&prefValue.label;</label>
<textbox id="PreferenceValue4"/>
</hbox>
<hbox>
<label>&prefName.label;5:</label>
<textbox id="PreferenceName5"/>
<label>&prefValue.label;</label>
<textbox id="PreferenceValue5"/>
</hbox>
<hbox>
<label>&prefName.label;6:</label>
<textbox id="PreferenceName6"/>
<label>&prefValue.label;</label>
<textbox id="PreferenceValue6"/>
</hbox>
<hbox>
<label>&prefName.label;7:</label>
<textbox id="PreferenceName7"/>
<label>&prefValue.label;</label>
<textbox id="PreferenceValue7"/>
</hbox>
<hbox>
<label>&prefName.label;8:</label>
<textbox id="PreferenceName8"/>
<label>&prefValue.label;</label>
<textbox id="PreferenceValue8"/>
</hbox>
<hbox>
<label>&prefName.label;9:</label>
<textbox id="PreferenceName9"/>
<label>&prefValue.label;</label>
<textbox id="PreferenceValue9"/>
</hbox>
<hbox>
<label>&prefName.label;10:</label>
<textbox id="PreferenceName10"/>
<label>&prefValue.label;</label>
<textbox id="PreferenceValue10"/>
</hbox>
</groupbox>
</wizardpage>
<wizardpage label="&customizeCerts.label;" onpageadvanced="return ValidateFile('CertPath1','CertPath2','CertPath3','CertPath4','CertPath5');">>
<description>&customizeCerts.warning;</description>
<hbox>
<textbox id="CertPath1" flex="1"/>
<button label="&chooseFile.label;" oncommand="choosefile('CertPath1');"/>
</hbox>
<hbox>
<textbox id="CertPath2" flex="1"/>
<button label="&chooseFile.label;" oncommand="choosefile('CertPath2');"/>
</hbox>
<hbox>
<textbox id="CertPath3" flex="1"/>
<button label="&chooseFile.label;" oncommand="choosefile('CertPath3');"/>
</hbox>
<hbox>
<textbox id="CertPath4" flex="1"/>
<button label="&chooseFile.label;" oncommand="choosefile('CertPath4');"/>
</hbox>
<hbox>
<textbox id="CertPath5" flex="1"/>
<button label="&chooseFile.label;" oncommand="choosefile('CertPath5');"/>
</hbox>
</wizardpage>
<wizardpage label="&customizeProxy.label;">
<groupbox>
<caption label="&proxyTitle.label;"/>
<radiogroup id="ProxyType" preference="network.proxy.type"
onpreferenceread="return gConnectionsDialog.readProxyType();">
<radio value="0" label="&directTypeRadio.label;" accesskey="&directTypeRadio.accesskey;" oncommand="DoEnabling();"/>
<radio value="4" label="&WPADTypeRadio.label;" accesskey="&WPADTypeRadio.accesskey;" oncommand="DoEnabling();"/>
<radio value="1" label="&manualTypeRadio.label;" accesskey="&manualTypeRadio.accesskey;" oncommand="DoEnabling();"/>
<grid class="indent" flex="1">
<columns>
<column/>
<column flex="1"/>
</columns>
<rows>
<row align="center">
<hbox pack="end">
<label value="&http.label;" accesskey="&http.accesskey;" control="HTTPproxyname"/>
</hbox>
<hbox align="center">
<textbox id="HTTPproxyname" flex="1" preference="network.proxy.http"/>
<label value="&port.label;" accesskey="&HTTPport.accesskey;" control="HTTPportno"/>
<textbox id="HTTPportno" size="5" preference="network.proxy.http_port"/>
</hbox>
</row>
<row>
<hbox/>
<hbox>
<checkbox id="shareAllProxies" label="&shareproxy.label;" accesskey="&shareproxy.accesskey;"
preference="network.proxy.share_proxy_settings" oncommand="toggleProxySettings()"/>
</hbox>
</row>
<row align="center">
<hbox pack="end">
<label value="&ssl.label;" accesskey="&ssl.accesskey;" control="SSLproxyname"/>
</hbox>
<hbox align="center">
<textbox id="SSLproxyname" flex="1" preference="network.proxy.ssl"/>
<label value="&port.label;" accesskey="&SSLport.accesskey;" control="SSLportno"/>
<textbox id="SSLportno" size="5" preference="network.proxy.ssl_port"/>
</hbox>
</row>
<row align="center">
<hbox pack="end">
<label value="&ftp.label;" accesskey="&ftp.accesskey;" control="FTPproxyname"/>
</hbox>
<hbox align="center">
<textbox id="FTPproxyname" flex="1" preference="network.proxy.ftp"/>
<label value="&port.label;" accesskey="&FTPport.accesskey;" control="FTPportno"/>
<textbox id="FTPportno" size="5" preference="network.proxy.ftp_port"/>
</hbox>
</row>
<row align="center">
<hbox pack="end">
<label value="&gopher.label;" accesskey="&gopher.accesskey;" control="Gopherproxyname"/>
</hbox>
<hbox align="center">
<textbox id="Gopherproxyname" flex="1" preference="network.proxy.gopher"/>
<label value="&port.label;" accesskey="&gopherPort.accesskey;" control="Gopherportno"/>
<textbox id="Gopherportno" size="5" preference="network.proxy.gopher_port"/>
</hbox>
</row>
<row align="center">
<hbox pack="end">
<label value="&socks.label;" accesskey="&socks.accesskey;" control="SOCKShostname"/>
</hbox>
<hbox align="center">
<textbox id="SOCKShostname" flex="1" preference="network.proxy.socks"/>
<label value="&port.label;" accesskey="&SOCKSport.accesskey;" control="SOCKSportno"/>
<textbox id="SOCKSportno" size="5" preference="network.proxy.socks_port"/>
</hbox>
</row>
<row>
<spacer/>
<radiogroup id="socksv" orient="horizontal"
preference="network.proxy.socks_version">
<radio id="SOCKSVersion4" value="4" label="&socks4.label;" accesskey="&socks4.accesskey;" />
<radio id="SOCKSVersion5" value="5" label="&socks5.label;" accesskey="&socks5.accesskey;" />
</radiogroup>
</row>
<row align="center">
<hbox align="center" pack="end">
<label value="&noproxy.label;" accesskey="&noproxy.accesskey;" control="networkProxyNone"/>
</hbox>
<textbox id="NoProxyname" preference="network.proxy.no_proxies_on"/>
</row>
<row>
<spacer/>
<label value="&noproxyExplain.label;" control="networkProxyNone"/>
</row>
</rows>
</grid>
<radio value="2" label="&autoTypeRadio.label;" accesskey="&autoTypeRadio.accesskey;" oncommand="DoEnabling();"/>
<hbox class="indent" flex="1" align="center">
<textbox id="autoproxyurl" flex="1" preference="network.proxy.autoconfig_url"/>
</hbox>
</radiogroup>
</groupbox>
</wizardpage>
<stringbundleset id="stringbundleset">
<stringbundle id="bundle_cckwizard" src="chrome://cckwizard/content/cckwizard.properties"/>
</stringbundleset>
</wizard>

Просмотреть файл

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<!-- ***** BEGIN LICENSE BLOCK *****
#if 0
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- 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 Client Customization Kit (CCK).
-
- The Initial Developer of the Original Code is IBM Corp.
- Portions created by the Initial Developer are Copyright (C) 2005
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
#endif
- ***** END LICENSE BLOCK ***** -->
<!DOCTYPE prefwindow SYSTEM "chrome://cckwizard/locale/cckWizard.dtd">
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<dialog id="createconfig" title="&createConfig.title;"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
buttons="accept,cancel"
ondialogaccept="return OnConfigOK()"
width="500"
height="200"
>
<script src="chrome://cckwizard/content/cckwizard.js"/>
<label>&configName.label;</label>
<vbox>
<textbox flex="1" id="cnc-name"/>
&configLocation.label;
<hbox>
<textbox readonly="true" flex="1" id="cnc-location"/>
<button label="&chooseDir.label;" oncommand="choosedir('cnc-location');"/>
</hbox>
</vbox>
</dialog>

Просмотреть файл

@ -0,0 +1,57 @@
<?xml version="1.0"?>
<!-- ***** BEGIN LICENSE BLOCK *****
#if 0
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- 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 Client Customization Kit (CCK).
-
- The Initial Developer of the Original Code is IBM Corp.
- Portions created by the Initial Developer are Copyright (C) 2005
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
#endif
- ***** END LICENSE BLOCK ***** -->
<!DOCTYPE prefwindow SYSTEM "chrome://cckwizard/locale/cckWizard.dtd">
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<dialog id="showconfig" title="&showConfig.title;"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
buttons="accept,cancel"
onload="InitConfigInfo()"
width="500"
height="500"
>
<script src="chrome://cckwizard/content/cckwizard.js"/>
<vbox flex="1">
<textbox multiline="true" id="showconfigy" flex="1"/>
</vbox>
</dialog>

Просмотреть файл

@ -0,0 +1,17 @@
<?xml version="1.0"?>
<!DOCTYPE overlay SYSTEM "chrome://cck/content/cck.dtd">
<?xml-stylesheet href="chrome://cck/content/cck.css" type="text/css"?>
<overlay id="cckOverlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="chrome://browser/content/utilityOverlay.js"/>
<script src="chrome://cck/content/cck.js"/>
%button%
%window%
%menupopup%
<stringbundleset id="stringbundleset">
<stringbundle id="bundle_cck" src="chrome://cck/content/cck.properties"/>
</stringbundleset>
</overlay>

Просмотреть файл

@ -0,0 +1,4 @@
<!ENTITY throbber.tooltip "%throbber.tooltip%">
<!ENTITY mainWindow.titlemodifier "%mainWindow.titlemodifier%">
<!ENTITY cckHelp.label "%cckHelp.label%">
<!ENTITY cckHelp.accesskey "%cckHelp.accesskey%">

Просмотреть файл

@ -0,0 +1,6 @@
function getCCKLink(item)
{
var bundle = document.getElementById("bundle_cck");
return bundle.getString(item);
}

Просмотреть файл

@ -0,0 +1,7 @@
OrganizationName=%OrganizationName%
browser.throbber.url=%browser.throbber.url%
cckhelp.url=%cckhelp.url%
browser.startup.homepage=%browser.startup.homepage%
browser.startup.homepage_reset=%browser.startup.homepage%
PopupAllowedSites=%PopupAllowedSites%
InstallAllowedSites=%InstallAllowedSites%

Просмотреть файл

@ -0,0 +1,454 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* 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 Client Customization Kit (CCK).
*
* The Initial Developer of the Original Code is
* Giorgio Maonem <g.maone@informaction.com>
* Portions created by the Initial Developer are Copyright (C) 2005
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* IBM Corp.
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
function CCKService() {
this.register();
}
CCKService.prototype={
get wrappedJSObject() {
return this;
}
,
QueryInterface: function(iid) {
this.queryInterfaceSupport(iid,SERVICE_IIDS);
return this;
}
,
// nsIObserver implementation
observe: function(subject, topic, data) {
// dump(SERVICE_NAME+" notified of "+subject+","+topic+","+data); //DDEBUG
switch(topic) {
case "xpcom-shutdown":
this.unregister();
break;
case "profile-after-change":
this.init();
break;
}
}
,
register: function() {
const osvr=Components.classes['@mozilla.org/observer-service;1'].getService(
Components.interfaces.nsIObserverService);
osvr.addObserver(this,"xpcom-shutdown",false);
osvr.addObserver(this,"profile-after-change",false);
}
,
unregister: function() {
const osvr=Components.classes['@mozilla.org/observer-service;1'].getService(
Components.interfaces.nsIObserverService);
osvr.removeObserver(this,"xpcom-shutdown");
osvr.removeObserver(this,"profile-after-change");
}
,
_inited: false
,
init: function() {
if(this._inited) return;
this._inited=true;
var prefbranch;
try {
prefbranch=Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
} catch (ex) {
return;
}
var cckinited;
try {
cckinited = prefbranch.getBoolPref("cck.initialized");
} catch (ex) {
cckinited = false;
}
var sbs;
var bundle;
var pm;
var ioService;
try {
sbs = Components.classes["@mozilla.org/intl/stringbundle;1"]
.getService(Components.interfaces.nsIStringBundleService );
bundle = sbs.createBundle("chrome://cck/content/cck.properties");
pm = Components.classes["@mozilla.org/permissionmanager;1"].getService(Components.interfaces.nsIPermissionManager);
ioService = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
} catch (ex) {
return;
}
const nsIX509CertDB2 = Components.interfaces.nsIX509CertDB2;
const nsX509CertDBContractID = "@mozilla.org/security/x509certdb;1";
var certDB = Components.classes[nsX509CertDBContractID].getService(nsIX509CertDB2);
for (var i=1; i<=5; i++) {
try {
CertName = bundle.GetStringFromName("Cert" + i);
} catch (ex) {
CertName = "";
}
if (CertName && CertName.length) {
var ioService=Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService);
var scriptableStream=Components.classes["@mozilla.org/scriptableinputstream;1"]
.getService(Components.interfaces.nsIScriptableInputStream);
var channel=ioService.newChannel("chrome://cck/content/"+CertName,null,null);
var input=channel.open();
scriptableStream.init(input);
var cert=scriptableStream.read(input.available());
scriptableStream.close();
input.close();
cert = cert.replace(/-----BEGIN CERTIFICATE-----[\r\n]/, "");
cert = cert.replace(/-----END CERTIFICATE-----[\r\n]/, "");
cert = cert.replace(/[\r\n]/g, "");
if (!cert.isPerm )
certDB.addCertFromBase64(cert, "C,C,C", "");
}
}
var popupAllowedSites;
try {
popupAllowedSites = bundle.GetStringFromName("PopupAllowedSites");
} catch (ex) {}
if (popupAllowedSites) {
var popupAllowedSitesArray = popupAllowedSites.split(",");
for (var i=0; i < popupAllowedSitesArray.length; i++) {
try {
var uri = ioService.newURI("http://" + popupAllowedSitesArray[i], null, null);
pm.add(uri, "popup", 1);
} catch (ex) {}
}
}
var installAllowedSites;
try {
installAllowedSites = bundle.GetStringFromName("InstallAllowedSites");
} catch (ex) {}
if (popupAllowedSites) {
var installAllowedSitesArray = installAllowedSites.split(",");
for (var i=0; i < installAllowedSitesArray.length; i++) {
try {
var uri = ioService.newURI("http://" + installAllowedSitesArray[i], null, null);
pm.add(uri, "install", 1);
} catch (ex) {}
}
}
/* Only do bookmarks if we haven't been inited to avoid duplicated */
if (!cckinited) {
var RDF;
var BMSVC;
var bmRoot;
try {
RDF = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService)
BMSVC = RDF.GetDataSource("rdf:bookmarks").QueryInterface(Components.interfaces.nsIBookmarksService);;
BMSVC.readBookmarks();
bmRoot = RDF.GetResource("NC:BookmarksRoot");
} catch (ex) {
return false;
}
var ToolbarLocation;
var tbIndex = -1; // last
try {
ToolbarLocation = bundle.GetStringFromName("ToolbarLocation");
} catch (ex) {}
if ((ToolbarLocation) && (ToolbarLocation == "First")) {
tbIndex = 1;
addBookmarks(bundle, BMSVC, "Toolbar", BMSVC.getBookmarksToolbarFolder(), tbIndex);
addLivemarks(bundle, BMSVC, "Toolbar", BMSVC.getBookmarksToolbarFolder(), tbIndex);
addFolder(bundle, BMSVC, "Toolbar", BMSVC.getBookmarksToolbarFolder(), tbIndex);
} else {
addFolder(bundle, BMSVC, "Toolbar", BMSVC.getBookmarksToolbarFolder(), tbIndex);
addLivemarks(bundle, BMSVC, "Toolbar", BMSVC.getBookmarksToolbarFolder(), tbIndex);
addBookmarks(bundle, BMSVC, "Toolbar", BMSVC.getBookmarksToolbarFolder(), tbIndex);
}
var BookmarkLocation;
var bmIndex = -1; // last
try {
BookmarkLocation = bundle.GetStringFromName("BookmarkLocation");
} catch (ex) {}
if ((BookmarkLocation) && (BookmarkLocation == "First")) {
bmIndex = 1;
addLivemarks(bundle, BMSVC, "Bookmark", bmRoot, bmIndex);
addBookmarks(bundle, BMSVC, "", bmRoot, bmIndex);
addFolder(bundle, BMSVC, "Bookmark", bmRoot, bmIndex);
} else {
addFolder(bundle, BMSVC, "Bookmark", bmRoot, bmIndex);
addBookmarks(bundle, BMSVC, "", bmRoot, bmIndex);
addLivemarks(bundle, BMSVC, "Bookmark", bmRoot, bmIndex);
}
prefbranch.setBoolPref("cck.initialized", true);
}
}
}
function addLivemarks(bundle, BMSVC, prefix, folder, location)
{
var LivemarkTitle;
var LivemarkRSSURL;
// items are added in reverse order if we are set to "First"
var start, end, increment;
if (location == -1) {
start = 1;
end = 6;
increment = 1;
} else {
start = 5;
end = 0;
increment = -1;
}
for (var i=start; i!=end; i+=increment) {
try {
LivemarkTitle = bundle.GetStringFromName(prefix + "LivemarkTitle" + i);
} catch (ex) {
LivemarkTitle = "";
}
if ((LivemarkTitle) && (LivemarkTitle.length)) {
try {
LivemarkRSSURL = bundle.GetStringFromName(prefix + "LivemarkRSSURL" + i);
} catch (ex) {
LivemarkRSSURL = "";
}
if ((LivemarkRSSURL) && (LivemarkRSSURL.length)) {
if (BMSVC.createLivemarkInContainer)
BMSVC.createLivemarkInContainer(LivemarkTitle, "", LivemarkRSSURL, "", folder, location);
}
}
}
}
function addBookmarks(bundle, BMSVC, prefix, folder, location)
{
var BookmarkTitle;
var BookmarkURL;
// items are added in reverse order if we are set to "First"
var start, end, increment;
if (location == -1) {
start = 1;
end = 6;
increment = 1;
} else {
start = 5;
end = 0;
increment = -1;
}
for (var i=start; i!=end; i+=increment) {
try {
BookmarkTitle = bundle.GetStringFromName(prefix + "BookmarkTitle" + i);
} catch (ex) {
BookmarkTitle = "";
}
if ((BookmarkTitle) && (BookmarkTitle.length)) {
try {
BookmarkURL = bundle.GetStringFromName(prefix + "BookmarkURL" + i);
} catch (ex) {
BookmarkURL = "";
}
if ((BookmarkURL) && (BookmarkURL.length)) {
if (BMSVC.createBookmarkInContainer.length == 8)
BMSVC.createBookmarkInContainer(BookmarkTitle, BookmarkURL, "", "", "", "", folder, location);
else
BMSVC.createBookmarkInContainer(BookmarkTitle, BookmarkURL, "", "", "", folder, location);
}
}
}
}
function addFolder(bundle, BMSVC, prefix, folder, location)
{
var BookmarkFolder;
var BookmarkTitle;
var BookmarkURL;
// items are added in reverse order if we are set to "First"
var start, end, increment;
if (location == -1) {
start = 1;
end = 6;
increment = 1;
} else {
start = 5;
end = 0;
increment = -1;
}
// Bookmarks folder with bookmarks
for (var i=start; i!=end; i+=increment) {
try {
BookmarkFolder = bundle.GetStringFromName(prefix + "Folder" + i);
} catch (ex) {
BookmarkFolder = "";
}
if ((BookmarkFolder) && (BookmarkFolder.length)) {
var newfolder;
if (BMSVC.createBookmarkInContainer.length == 8)
newfolder = BMSVC.createFolderInContainer(BookmarkFolder, folder, location);
else
newfolder = BMSVC.createFolderInContainer(BookmarkFolder, folder, location);
for (var j=1; j<=5; j++) {
try {
BookmarkTitle = bundle.GetStringFromName(prefix + "Folder" + i + ".BookmarkTitle" + j);
} catch (ex) {
BookmarkTitle = "";
}
if ((BookmarkTitle) && (BookmarkTitle.length)) {
try {
BookmarkURL = bundle.GetStringFromName(prefix + "Folder" + i + ".BookmarkURL" + j);
} catch (ex) {
BookmarkURL = "";
}
if ((BookmarkURL) && (BookmarkURL.length)) {
if (BMSVC.createBookmarkInContainer.length == 8)
BMSVC.createBookmarkInContainer(BookmarkTitle, BookmarkURL, "", "", "", "", newfolder, -1);
else
BMSVC.createBookmarkInContainer(BookmarkTitle, BookmarkURL, "", "", "", newfolder, -1);
}
}
}
}
}
}
// XPCOM Scaffolding code
// component defined in this file
const EXTENSION_ID="{73a6fe31-595d-460b-a920-fcc0f8843233}";
const SERVICE_NAME="CCK Service";
const SERVICE_ID="{31aec909-8e86-4397-9380-63a59e0c5ff6}";
const SERVICE_CTRID = "@mozilla.org/cck-service;1";
const SERVICE_CONSTRUCTOR=CCKService;
const SERVICE_CID = Components.ID(SERVICE_ID);
// interfaces implemented by this component
const SERVICE_IIDS =
[
Components.interfaces.nsIObserver,
Components.interfaces.nsISupports,
Components.interfaces.nsISupportsWeakReference
];
// Factory object
const SERVICE_FACTORY = {
_instance: new SERVICE_CONSTRUCTOR(),
createInstance: function (outer, iid) {
if (outer != null)
throw Components.results.NS_ERROR_NO_AGGREGATION;
xpcom_checkInterfaces(iid,SERVICE_IIDS,Components.results.NS_ERROR_INVALID_ARG);
// kept this for flexibility sake, but we're really adopting an
// early instantiation and late init singleton pattern
return this._instance==null?this._instance=new SERVICE_CONSTRUCTOR():this._instance;
}
};
function xpcom_checkInterfaces(iid,iids,ex) {
for(var j=iids.length; j-- >0;) {
if(iid.equals(iids[j])) return true;
}
throw ex;
}
// Module
var Module = new Object();
Module.firstTime=true;
Module.registerSelf = function (compMgr, fileSpec, location, type) {
if(this.firstTime) {
debug("*** Registering "+SERVICE_CTRID+".\n");
compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar
).registerFactoryLocation(SERVICE_CID,
SERVICE_NAME,
SERVICE_CTRID,
fileSpec,
location,
type);
Components.classes['@mozilla.org/categorymanager;1'].getService(
Components.interfaces.nsICategoryManager
).addCategoryEntry("app-startup",
SERVICE_NAME, "service," + SERVICE_CTRID, true, true, null);
this.firstTime=false;
}
}
Module.unregisterSelf = function(compMgr, fileSpec, location) {
compMgr.QueryInterface(Components.interfaces.nsIComponentRegistrar
).unregisterFactoryLocation(SERVICE_CID, fileSpec);
Components.classes['@mozilla.org/categorymanager;1'].getService(
Components.interfaces.nsICategoryManager
).deleteCategoryEntry("app-startup",SERVICE_NAME, true);
}
Module.getClassObject = function (compMgr, cid, iid) {
if(cid.equals(SERVICE_CID))
return SERVICE_FACTORY;
if (!iid.equals(Components.interfaces.nsIFactory))
throw Components.results.NS_ERROR_NOT_IMPLEMENTED;
throw Components.results.NS_ERROR_NO_INTERFACE;
}
Module.canUnload = function(compMgr) {
return true;
}
// entrypoint
function NSGetModule(compMgr, fileSpec) {
return Module;
}

Просмотреть файл

@ -0,0 +1,2 @@
overlay chrome://browser/content/browser.xul chrome://cck/content/cck-browser-overlay.xul
content cck jar:chrome/cck.jar!/content/cck/

Просмотреть файл

@ -0,0 +1,115 @@
// this function verifies disk space in kilobytes
function verifyDiskSpace(dirPath, spaceRequired)
{
var spaceAvailable;
// Get the available disk space on the given path
spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
// Convert the available disk space into kilobytes
spaceAvailable = parseInt(spaceAvailable / 1024);
// do the verification
if(spaceAvailable < spaceRequired)
{
logComment("Insufficient disk space: " + dirPath);
logComment(" required : " + spaceRequired + " K");
logComment(" available: " + spaceAvailable + " K");
return(false);
}
return(true);
}
// this function deletes a file if it exists
function deleteThisFile(dirKey, file)
{
var fFileToDelete;
fFileToDelete = getFolder(dirKey, file);
logComment("File to delete: " + fFileToDelete);
if(File.isFile(fFileToDelete))
{
File.remove(fFileToDelete);
return(true);
}
else
return(false);
}
// this function deletes a folder if it exists
function deleteThisFolder(dirKey, folder, recursiveDelete)
{
var fToDelete;
if(typeof recursiveDelete == "undefined")
recursiveDelete = true;
fToDelete = getFolder(dirKey, folder);
logComment("folder to delete: " + fToDelete);
if(File.isDirectory(fToDelete))
{
File.dirRemove(fToDelete, recursiveDelete);
return(true);
}
else
return(false);
}
// OS type detection
// which platform?
function getPlatform()
{
var platformStr;
var platformNode;
if('platform' in Install)
{
platformStr = new String(Install.platform);
if (!platformStr.search(/^Macintosh/))
platformNode = 'mac';
else if (!platformStr.search(/^Win/))
platformNode = 'win';
else if (!platformStr.search(/^OS\/2/))
platformNode = 'win';
else
platformNode = 'unix';
}
else
{
var fOSMac = getFolder("Mac System");
var fOSWin = getFolder("Win System");
logComment("fOSMac: " + fOSMac);
logComment("fOSWin: " + fOSWin);
if(fOSMac != null)
platformNode = 'mac';
else if(fOSWin != null)
platformNode = 'win';
else
platformNode = 'unix';
}
return platformNode;
}
var err = initInstall("%name%", "%name%", "%version%");
logComment("initInstall: " + err);
var extensionsdir = getFolder(getFolder("Program"), "extensions");
var cckextensiondir = getFolder(extensionsdir, "%id%");
addDirectory("", "%version%", "chrome", cckextensiondir, "chrome", true);
addDirectory("", "%version%", "components", cckextensiondir, "components", true);
%plugins%
%searchplugins%
addFile("", "%version%", "chrome.manifest", cckextensiondir, "", true);
addFile("", "%version%", "install.rdf", cckextensiondir, "", true);
err = getLastError();
if (err==SUCCESS)
performInstall();
else
cancelInstall(err);

Просмотреть файл

@ -0,0 +1,25 @@
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
%idline%
%nameline%
%versionline%
%descriptionline%
%creatorline%
%homepageURLline%
%updateURLline%
%iconURLline%
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>1.0+</em:minVersion>
<em:maxVersion>1.5.0.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>