This commit is contained in:
Andreas Gal 2008-08-08 19:24:50 -07:00
commit 4deb69bc04
1066 changed files with 99661 additions and 29364 deletions

View File

@ -19,8 +19,7 @@
^security/manager/\.nss\.checkout$ ^security/manager/\.nss\.checkout$
# Build directories # Build directories
^obj- ^obj
^objdir-
# Build directories for js shell # Build directories for js shell
_DBG\.OBJ/ _DBG\.OBJ/

View File

@ -2,3 +2,9 @@ df7a3c8ffeeaba229067efee5a20e21dae0dd877 MOZILLA_1_9_a4_BASE
4209e16b58411750ac73f761023e46b76b793e2c MOZILLA_1_9_a6_BASE 4209e16b58411750ac73f761023e46b76b793e2c MOZILLA_1_9_a6_BASE
66a5c7bce7ee86a820d3c0d54fa07cb719be751c MOZILLA_1_9_a7_BASE 66a5c7bce7ee86a820d3c0d54fa07cb719be751c MOZILLA_1_9_a7_BASE
caeba7562e495a9f604984df0b48b6f99bec3e2e FENNEC_M4 caeba7562e495a9f604984df0b48b6f99bec3e2e FENNEC_M4
9d9941eacb14827fdab4716710042fdde84eb60d FIREFOX_3_1a1_RELEASE
9d9941eacb14827fdab4716710042fdde84eb60d FIREFOX_3_1a1_BUILD1
c1d7e318a27574c995631fec166ad42672475702 FIREFOX_3_1a1_BUILD2
c1d7e318a27574c995631fec166ad42672475702 FIREFOX_3_1a1_RELEASE
afc4ee509d9ca3bb4031015c3c22963dcb4b7e7f FIREFOX_3_1a1_RELEASE
afc4ee509d9ca3bb4031015c3c22963dcb4b7e7f FIREFOX_3_1a1_BUILD2

View File

@ -66,6 +66,11 @@ ifdef MOZ_MEMORY
tier_base_dirs += memory/jemalloc tier_base_dirs += memory/jemalloc
endif endif
ifdef ENABLE_TESTS
# Additional makefile targets to call automated test suites
include $(topsrcdir)/testing/testsuite-targets.mk
endif
include $(topsrcdir)/$(MOZ_BUILD_APP)/build.mk include $(topsrcdir)/$(MOZ_BUILD_APP)/build.mk
TIERS += testharness TIERS += testharness

View File

@ -94,7 +94,10 @@ EXTRA_DSO_LDOPTS += $(MOZ_GTK2_LIBS)
endif endif
ifeq ($(OS_ARCH),WINNT) ifeq ($(OS_ARCH),WINNT)
OS_LIBS += oleaut32.lib OS_LIBS += \
oleaut32.lib \
version.lib \
$(NULL)
endif endif
include $(topsrcdir)/config/rules.mk include $(topsrcdir)/config/rules.mk

View File

@ -93,34 +93,26 @@ cpp_quote("")
import "objidl.idl"; import "objidl.idl";
import "oaidl.idl"; import "oaidl.idl";
const long DISPID_DOC_URL = -5904;
const long DISPID_DOC_TITLE = -5905;
const long DISPID_DOC_MIMETYPE = -5906;
const long DISPID_DOC_DOCTYPE = -5907;
const long DISPID_DOC_NAMESPACE = -5908;
const long DISPID_DOC_MEDIATYPES = -5909;
[object, uuid(0D68D6D0-D93D-4d08-A30D-F00DD1F45B24)] [object, uuid(0D68D6D0-D93D-4d08-A30D-F00DD1F45B24)]
interface ISimpleDOMDocument : IUnknown interface ISimpleDOMDocument : IUnknown
{ {
[propget, id(DISPID_DOC_URL)] HRESULT URL( [propget] HRESULT URL(
[out, retval] BSTR * url [out, retval] BSTR * url
); );
[propget, id(DISPID_DOC_TITLE)] HRESULT title( [propget] HRESULT title(
[out, retval] BSTR * title [out, retval] BSTR * title
); );
[propget, id(DISPID_DOC_MIMETYPE)] HRESULT mimeType( [propget] HRESULT mimeType(
[out, retval] BSTR * mimeType [out, retval] BSTR * mimeType
); );
[propget, id(DISPID_DOC_DOCTYPE)] HRESULT docType( [propget] HRESULT docType(
[out, retval] BSTR * docType [out, retval] BSTR * docType
); );
[propget, id(DISPID_DOC_NAMESPACE)] HRESULT nameSpaceURIForID( [propget] HRESULT nameSpaceURIForID(
[in] short nameSpaceID, [in] short nameSpaceID,
[out, retval] BSTR * nameSpaceURI [out, retval] BSTR * nameSpaceURI
); );
[propput, id(DISPID_DOC_MEDIATYPES)] HRESULT alternateViewMediaTypes( [propput] HRESULT alternateViewMediaTypes(
[in] BSTR * commaSeparatedMediaTypes [in] BSTR * commaSeparatedMediaTypes
); );
} }

View File

@ -134,12 +134,8 @@ cpp_quote("")
import "objidl.idl"; import "objidl.idl";
import "oaidl.idl"; import "oaidl.idl";
const long DISPID_NODE_NODEINFO = -5900; import "ISimpleDOMText.idl";
const long DISPID_NODE_ATTRIBUTES = -5901; import "ISimpleDOMDocument.idl";
const long DISPID_NODE_ATTRIBUTESFORNAMES = -5902;
const long DISPID_NODE_COMPSTYLE = -5903;
const long DISPID_NODE_COMPSTYLEFORPROPS = -5904;
const long DISPID_NODE_LANGUAGE = -5905;
[object, uuid(1814ceeb-49e2-407f-af99-fa755a7d2607)] [object, uuid(1814ceeb-49e2-407f-af99-fa755a7d2607)]
interface ISimpleDOMNode : IUnknown interface ISimpleDOMNode : IUnknown
@ -157,7 +153,7 @@ interface ISimpleDOMNode : IUnknown
const unsigned short NODETYPE_DOCUMENT_FRAGMENT = 11; const unsigned short NODETYPE_DOCUMENT_FRAGMENT = 11;
const unsigned short NODETYPE_NOTATION = 12; const unsigned short NODETYPE_NOTATION = 12;
[propget, id(DISPID_NODE_NODEINFO)] HRESULT nodeInfo( [propget] HRESULT nodeInfo(
[out] BSTR *nodeName, // for performance returns NULL for text nodes (true nodeName would be "#text") [out] BSTR *nodeName, // for performance returns NULL for text nodes (true nodeName would be "#text")
[out] short *nameSpaceID, [out] short *nameSpaceID,
[out] BSTR *nodeValue, [out] BSTR *nodeValue,
@ -166,7 +162,7 @@ interface ISimpleDOMNode : IUnknown
[out, retval] unsigned short *nodeType [out, retval] unsigned short *nodeType
); );
[propget, id(DISPID_NODE_ATTRIBUTES)] HRESULT attributes( [propget] HRESULT attributes(
[in] unsigned short maxAttribs, [in] unsigned short maxAttribs,
[out, size_is(maxAttribs), length_is(*numAttribs)] BSTR *attribNames, [out, size_is(maxAttribs), length_is(*numAttribs)] BSTR *attribNames,
[out, size_is(maxAttribs), length_is(*numAttribs)] short *nameSpaceID, [out, size_is(maxAttribs), length_is(*numAttribs)] short *nameSpaceID,
@ -174,14 +170,14 @@ interface ISimpleDOMNode : IUnknown
[out, retval] unsigned short *numAttribs [out, retval] unsigned short *numAttribs
); );
[propget, id(DISPID_NODE_ATTRIBUTESFORNAMES)] HRESULT attributesForNames( [propget] HRESULT attributesForNames(
[in] unsigned short numAttribs, [in] unsigned short numAttribs,
[in, size_is(numAttribs), length_is(numAttribs)] BSTR *attribNames, [in, size_is(numAttribs), length_is(numAttribs)] BSTR *attribNames,
[in, size_is(numAttribs), length_is(numAttribs)] short *nameSpaceID, [in, size_is(numAttribs), length_is(numAttribs)] short *nameSpaceID,
[out, retval, size_is(numAttribs), length_is(numAttribs)] BSTR *attribValues [out, retval, size_is(numAttribs), length_is(numAttribs)] BSTR *attribValues
); );
[propget, id(DISPID_NODE_COMPSTYLE)] HRESULT computedStyle( [propget] HRESULT computedStyle(
[in] unsigned short maxStyleProperties, [in] unsigned short maxStyleProperties,
[in] boolean useAlternateView, // If TRUE, returns properites for media as set in nsIDOMDocument::set_alternateViewMediaTypes [in] boolean useAlternateView, // If TRUE, returns properites for media as set in nsIDOMDocument::set_alternateViewMediaTypes
[out, size_is(maxStyleProperties), length_is(*numStyleProperties)] BSTR *styleProperties, [out, size_is(maxStyleProperties), length_is(*numStyleProperties)] BSTR *styleProperties,
@ -189,7 +185,7 @@ interface ISimpleDOMNode : IUnknown
[out, retval] unsigned short *numStyleProperties [out, retval] unsigned short *numStyleProperties
); );
[propget, id(DISPID_NODE_COMPSTYLEFORPROPS)] HRESULT computedStyleForProperties( [propget] HRESULT computedStyleForProperties(
[in] unsigned short numStyleProperties, [in] unsigned short numStyleProperties,
[in] boolean useAlternateView, // If TRUE, returns properites for media as set in nsIDOMDocument::set_alternateViewMediaTypes [in] boolean useAlternateView, // If TRUE, returns properites for media as set in nsIDOMDocument::set_alternateViewMediaTypes
[in, size_is(numStyleProperties), length_is(numStyleProperties)] BSTR *styleProperties, [in, size_is(numStyleProperties), length_is(numStyleProperties)] BSTR *styleProperties,
@ -210,7 +206,18 @@ interface ISimpleDOMNode : IUnknown
[propget, local] HRESULT localInterface([out][retval] void **localInterface); [propget, local] HRESULT localInterface([out][retval] void **localInterface);
[propget, id(DISPID_NODE_LANGUAGE)] HRESULT language([out, retval] BSTR *language); [propget] HRESULT language([out, retval] BSTR *language);
} }
[
uuid(a6245497-9c0b-4449-85a5-bd6ad07df8ea),
helpstring("ISimpleDOM Type Library")
]
library ISimpleDOM
{
interface ISimpleDOMNode;
interface ISimpleDOMText;
interface ISimpleDOMDocument;
};

View File

@ -98,7 +98,7 @@ done_gen: ISimpleDOMNode.idl \
ISimpleDOMDocument.idl \ ISimpleDOMDocument.idl \
ISimpleDOMText.idl ISimpleDOMText.idl
$(MIDL) $(MIDL_FLAGS) -Oicf $(srcdir)/ISimpleDOMNode.idl $(MIDL) $(MIDL_FLAGS) -I $(srcdir) -Oicf $(srcdir)/ISimpleDOMNode.idl
$(MIDL) $(MIDL_FLAGS) -Oicf $(srcdir)/ISimpleDOMDocument.idl $(MIDL) $(MIDL_FLAGS) -Oicf $(srcdir)/ISimpleDOMDocument.idl
$(MIDL) $(MIDL_FLAGS) -Oicf $(srcdir)/ISimpleDOMText.idl $(MIDL) $(MIDL_FLAGS) -Oicf $(srcdir)/ISimpleDOMText.idl
touch $@ touch $@

View File

@ -112,12 +112,23 @@ nsIAccessibilityService *nsAccessNode::GetAccService()
* Class nsAccessNode * Class nsAccessNode
*/ */
//----------------------------------------------------- ////////////////////////////////////////////////////////////////////////////////
// construction // nsAccessible. nsISupports
//-----------------------------------------------------
NS_IMPL_QUERY_INTERFACE2(nsAccessNode, nsIAccessNode, nsPIAccessNode) NS_IMPL_CYCLE_COLLECTION_0(nsAccessNode)
NS_IMPL_ADDREF(nsAccessNode)
NS_IMPL_RELEASE_WITH_DESTROY(nsAccessNode, LastRelease()) NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsAccessNode)
NS_INTERFACE_MAP_ENTRY(nsIAccessNode)
NS_INTERFACE_MAP_ENTRY(nsPIAccessNode)
NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIAccessNode)
NS_INTERFACE_MAP_END
NS_IMPL_CYCLE_COLLECTING_ADDREF_AMBIGUOUS(nsAccessNode, nsIAccessNode)
NS_IMPL_CYCLE_COLLECTING_RELEASE_FULL(nsAccessNode, nsIAccessNode,
LastRelease())
////////////////////////////////////////////////////////////////////////////////
// nsAccessible. Constructor
nsAccessNode::nsAccessNode(nsIDOMNode *aNode, nsIWeakReference* aShell): nsAccessNode::nsAccessNode(nsIDOMNode *aNode, nsIWeakReference* aShell):
mDOMNode(aNode), mWeakShell(aShell) mDOMNode(aNode), mWeakShell(aShell)
@ -191,8 +202,7 @@ NS_IMETHODIMP nsAccessNode::Init()
// so that nsDocAccessible::RefreshNodes() can find the anonymous subtree to release when // so that nsDocAccessible::RefreshNodes() can find the anonymous subtree to release when
// the root node goes away // the root node goes away
nsCOMPtr<nsIContent> content = do_QueryInterface(mDOMNode); nsCOMPtr<nsIContent> content = do_QueryInterface(mDOMNode);
if (content && (content->IsNativeAnonymous() || if (content && content->IsInAnonymousSubtree()) {
content->GetBindingParent())) {
// Specific examples of where this is used: <input type="file"> and <xul:findbar> // Specific examples of where this is used: <input type="file"> and <xul:findbar>
nsCOMPtr<nsIAccessible> parentAccessible; nsCOMPtr<nsIAccessible> parentAccessible;
docAccessible->GetAccessibleInParentChain(mDOMNode, PR_TRUE, getter_AddRefs(parentAccessible)); docAccessible->GetAccessibleInParentChain(mDOMNode, PR_TRUE, getter_AddRefs(parentAccessible));

View File

@ -74,13 +74,16 @@ class nsIDocShellTreeItem;
typedef nsInterfaceHashtable<nsVoidPtrHashKey, nsIAccessNode> typedef nsInterfaceHashtable<nsVoidPtrHashKey, nsIAccessNode>
nsAccessNodeHashtable; nsAccessNodeHashtable;
class nsAccessNode: public nsIAccessNode, public nsPIAccessNode class nsAccessNode: public nsIAccessNode,
public nsPIAccessNode
{ {
public: // construction, destruction public: // construction, destruction
nsAccessNode(nsIDOMNode *, nsIWeakReference* aShell); nsAccessNode(nsIDOMNode *, nsIWeakReference* aShell);
virtual ~nsAccessNode(); virtual ~nsAccessNode();
NS_DECL_ISUPPORTS NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_CLASS_AMBIGUOUS(nsAccessNode, nsIAccessNode)
NS_DECL_NSIACCESSNODE NS_DECL_NSIACCESSNODE
NS_DECL_NSPIACCESSNODE NS_DECL_NSPIACCESSNODE

View File

@ -65,6 +65,7 @@
#include "nsIEventStateManager.h" #include "nsIEventStateManager.h"
#include "nsISelection2.h" #include "nsISelection2.h"
#include "nsISelectionController.h" #include "nsISelectionController.h"
#include "nsGUIEvent.h"
#include "nsContentCID.h" #include "nsContentCID.h"
#include "nsComponentManagerUtils.h" #include "nsComponentManagerUtils.h"
@ -291,6 +292,48 @@ nsAccUtils::HasListener(nsIContent *aContent, const nsAString& aEventType)
return listenerManager && listenerManager->HasListenersFor(aEventType); return listenerManager && listenerManager->HasListenersFor(aEventType);
} }
PRBool
nsAccUtils::DispatchMouseEvent(PRUint32 aEventType,
nsIPresShell *aPresShell,
nsIContent *aContent)
{
nsIFrame *frame = aPresShell->GetPrimaryFrameFor(aContent);
if (!frame)
return PR_FALSE;
nsIFrame* rootFrame = aPresShell->GetRootFrame();
if (!rootFrame)
return PR_FALSE;
nsCOMPtr<nsIWidget> rootWidget = rootFrame->GetWindow();
if (!rootWidget)
return PR_FALSE;
// Compute x and y coordinates.
nsPoint point = frame->GetOffsetToExternal(rootFrame);
nsSize size = frame->GetSize();
nsPresContext* presContext = aPresShell->GetPresContext();
PRInt32 x = presContext->AppUnitsToDevPixels(point.x + size.width / 2);
PRInt32 y = presContext->AppUnitsToDevPixels(point.y + size.height / 2);
// Fire mouse event.
nsMouseEvent event(PR_TRUE, aEventType, rootWidget,
nsMouseEvent::eReal, nsMouseEvent::eNormal);
event.refPoint = nsIntPoint(x, y);
event.clickCount = 1;
event.button = nsMouseEvent::eLeftButton;
event.time = PR_IntervalNow();
nsEventStatus status = nsEventStatus_eIgnore;
aPresShell->HandleEventWithTarget(&event, frame, aContent, &status);
return PR_TRUE;
}
PRUint32 PRUint32
nsAccUtils::GetAccessKeyFor(nsIContent *aContent) nsAccUtils::GetAccessKeyFor(nsIContent *aContent)
{ {
@ -792,11 +835,9 @@ nsAccUtils::FindNeighbourPointingToNode(nsIContent *aForNode,
nsIAtom *aTagName, nsIAtom *aTagName,
PRUint32 aAncestorLevelsToSearch) PRUint32 aAncestorLevelsToSearch)
{ {
nsCOMPtr<nsIContent> binding;
nsAutoString controlID; nsAutoString controlID;
if (!nsAccUtils::GetID(aForNode, controlID)) { if (!nsAccUtils::GetID(aForNode, controlID)) {
binding = aForNode->GetBindingParent(); if (!aForNode->IsInAnonymousSubtree())
if (binding == aForNode)
return nsnull; return nsnull;
aForNode->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::anonid, controlID); aForNode->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::anonid, controlID);
@ -805,6 +846,7 @@ nsAccUtils::FindNeighbourPointingToNode(nsIContent *aForNode,
} }
// Look for label in subtrees of nearby ancestors // Look for label in subtrees of nearby ancestors
nsCOMPtr<nsIContent> binding(aForNode->GetBindingParent());
PRUint32 count = 0; PRUint32 count = 0;
nsIContent *labelContent = nsnull; nsIContent *labelContent = nsnull;
nsIContent *prevSearched = nsnull; nsIContent *prevSearched = nsnull;

View File

@ -124,6 +124,17 @@ public:
*/ */
static PRBool HasListener(nsIContent *aContent, const nsAString& aEventType); static PRBool HasListener(nsIContent *aContent, const nsAString& aEventType);
/**
* Send mouse events to the given element.
*
* @param aEventType an event type (see nsGUIEvent.h for constants)
* @param aPresShell the presshell for the given element
* @param aContent the element element
*/
static PRBool DispatchMouseEvent(PRUint32 aEventType,
nsIPresShell *aPresShell,
nsIContent *aContent);
/** /**
* Return an accesskey registered on the given element by * Return an accesskey registered on the given element by
* nsIEventStateManager or 0 if there is no registered accesskey. * nsIEventStateManager or 0 if there is no registered accesskey.

View File

@ -140,9 +140,23 @@ nsAccessibleDOMStringList::Contains(const nsAString& aString, PRBool *aResult)
* Class nsAccessible * Class nsAccessible
*/ */
//----------------------------------------------------- ////////////////////////////////////////////////////////////////////////////////
// construction // nsAccessible. nsISupports
//-----------------------------------------------------
NS_IMPL_CYCLE_COLLECTION_CLASS(nsAccessible)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsAccessible, nsAccessNode)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mParent)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mFirstChild)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mNextSibling)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(nsAccessible, nsAccessNode)
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mParent)
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mFirstChild)
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mNextSibling)
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
NS_IMPL_ADDREF_INHERITED(nsAccessible, nsAccessNode) NS_IMPL_ADDREF_INHERITED(nsAccessible, nsAccessNode)
NS_IMPL_RELEASE_INHERITED(nsAccessible, nsAccessNode) NS_IMPL_RELEASE_INHERITED(nsAccessible, nsAccessNode)
@ -189,6 +203,11 @@ nsresult nsAccessible::QueryInterface(REFNSIID aIID, void** aInstancePtr)
// based on role attribute and aria-multiselectable // based on role attribute and aria-multiselectable
*aInstancePtr = nsnull; *aInstancePtr = nsnull;
if (aIID.Equals(NS_GET_IID(nsXPCOMCycleCollectionParticipant))) {
*aInstancePtr = &NS_CYCLE_COLLECTION_NAME(nsAccessible);
return NS_OK;
}
if (aIID.Equals(NS_GET_IID(nsIAccessible))) { if (aIID.Equals(NS_GET_IID(nsIAccessible))) {
*aInstancePtr = static_cast<nsIAccessible*>(this); *aInstancePtr = static_cast<nsIAccessible*>(this);
NS_ADDREF_THIS(); NS_ADDREF_THIS();
@ -483,7 +502,7 @@ NS_IMETHODIMP nsAccessible::SetFirstChild(nsIAccessible *aFirstChild)
NS_IMETHODIMP nsAccessible::SetNextSibling(nsIAccessible *aNextSibling) NS_IMETHODIMP nsAccessible::SetNextSibling(nsIAccessible *aNextSibling)
{ {
mNextSibling = aNextSibling? aNextSibling: DEAD_END_ACCESSIBLE; mNextSibling = aNextSibling;
return NS_OK; return NS_OK;
} }
@ -538,15 +557,13 @@ NS_IMETHODIMP nsAccessible::InvalidateChildren()
// CacheChildren() is called. // CacheChildren() is called.
// Note: we don't want to start creating accessibles at this point, // Note: we don't want to start creating accessibles at this point,
// so don't use GetNextSibling() here. (bug 387252) // so don't use GetNextSibling() here. (bug 387252)
nsAccessible* child = static_cast<nsAccessible*>(mFirstChild); nsAccessible* child = static_cast<nsAccessible*>(mFirstChild.get());
while (child) { while (child) {
child->mParent = nsnull; child->mParent = nsnull;
if (child->mNextSibling == DEAD_END_ACCESSIBLE) {
break; nsCOMPtr<nsIAccessible> next = child->mNextSibling;
}
nsIAccessible *next = child->mNextSibling;
child->mNextSibling = nsnull; child->mNextSibling = nsnull;
child = static_cast<nsAccessible*>(next); child = static_cast<nsAccessible*>(next.get());
} }
mAccChildCount = eChildCountUninitialized; mAccChildCount = eChildCountUninitialized;
@ -608,9 +625,8 @@ NS_IMETHODIMP nsAccessible::GetNextSibling(nsIAccessible * *aNextSibling)
if (mNextSibling || !mParent) { if (mNextSibling || !mParent) {
// If no parent, don't try to calculate a new sibling // If no parent, don't try to calculate a new sibling
// It either means we're at the root or shutting down the parent // It either means we're at the root or shutting down the parent
if (mNextSibling != DEAD_END_ACCESSIBLE) {
NS_IF_ADDREF(*aNextSibling = mNextSibling); NS_IF_ADDREF(*aNextSibling = mNextSibling);
}
return NS_OK; return NS_OK;
} }
@ -3137,40 +3153,30 @@ NS_IMETHODIMP nsAccessible::GetNativeInterface(void **aOutAccessible)
void nsAccessible::DoCommandCallback(nsITimer *aTimer, void *aClosure) void nsAccessible::DoCommandCallback(nsITimer *aTimer, void *aClosure)
{ {
NS_ASSERTION(gDoCommandTimer, "How did we get here if there was no gDoCommandTimer?"); NS_ASSERTION(gDoCommandTimer,
"How did we get here if there was no gDoCommandTimer?");
NS_RELEASE(gDoCommandTimer); NS_RELEASE(gDoCommandTimer);
nsIContent *content = reinterpret_cast<nsIContent*>(aClosure); nsCOMPtr<nsIContent> content =
nsCOMPtr<nsIDOMXULElement> xulElement(do_QueryInterface(content)); reinterpret_cast<nsIContent*>(aClosure);
if (xulElement) {
xulElement->Click();
}
else {
nsIDocument *doc = content->GetDocument(); nsIDocument *doc = content->GetDocument();
if (!doc) { if (!doc)
return; return;
}
nsCOMPtr<nsIPresShell> presShell = doc->GetPrimaryShell(); nsCOMPtr<nsIPresShell> presShell = doc->GetPrimaryShell();
nsPIDOMWindow *outerWindow = doc->GetWindow();
if (presShell && outerWindow) {
nsAutoPopupStatePusher popupStatePusher(outerWindow, openAllowed);
nsMouseEvent downEvent(PR_TRUE, NS_MOUSE_BUTTON_DOWN, nsnull, // Scroll into view.
nsMouseEvent::eSynthesized); presShell->ScrollContentIntoView(content, NS_PRESSHELL_SCROLL_ANYWHERE,
nsMouseEvent upEvent(PR_TRUE, NS_MOUSE_BUTTON_UP, nsnull, NS_PRESSHELL_SCROLL_ANYWHERE);
nsMouseEvent::eSynthesized);
nsMouseEvent clickEvent(PR_TRUE, NS_MOUSE_CLICK, nsnull,
nsMouseEvent::eSynthesized);
nsEventStatus eventStatus = nsEventStatus_eIgnore; // Fire mouse down and mouse up events.
content->DispatchDOMEvent(&downEvent, nsnull, PRBool res = nsAccUtils::DispatchMouseEvent(NS_MOUSE_BUTTON_DOWN, presShell,
presShell->GetPresContext(), &eventStatus); content);
content->DispatchDOMEvent(&upEvent, nsnull, if (!res)
presShell->GetPresContext(), &eventStatus); return;
content->DispatchDOMEvent(&clickEvent, nsnull,
presShell->GetPresContext(), &eventStatus); nsAccUtils::DispatchMouseEvent(NS_MOUSE_BUTTON_UP, presShell, content);
}
}
} }
/* /*

View File

@ -69,9 +69,6 @@ class nsIView;
#define NS_OK_NO_ARIA_VALUE \ #define NS_OK_NO_ARIA_VALUE \
NS_ERROR_GENERATE_SUCCESS(NS_ERROR_MODULE_GENERAL, 0x21) NS_ERROR_GENERATE_SUCCESS(NS_ERROR_MODULE_GENERAL, 0x21)
// When mNextSibling is set to this, it indicates there ar eno more siblings
#define DEAD_END_ACCESSIBLE static_cast<nsIAccessible*>((void*)1)
// Saves a data member -- if child count equals this value we haven't // Saves a data member -- if child count equals this value we haven't
// cached children or child count yet // cached children or child count yet
enum { eChildCountUninitialized = -1 }; enum { eChildCountUninitialized = -1 };
@ -106,6 +103,8 @@ public:
virtual ~nsAccessible(); virtual ~nsAccessible();
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsAccessible, nsAccessNode)
NS_DECL_NSIACCESSIBLE NS_DECL_NSIACCESSIBLE
NS_DECL_NSPIACCESSIBLE NS_DECL_NSPIACCESSIBLE
NS_DECL_NSIACCESSIBLEHYPERLINK NS_DECL_NSIACCESSIBLEHYPERLINK
@ -272,7 +271,9 @@ protected:
// Data Members // Data Members
nsCOMPtr<nsIAccessible> mParent; nsCOMPtr<nsIAccessible> mParent;
nsIAccessible *mFirstChild, *mNextSibling; nsCOMPtr<nsIAccessible> mFirstChild;
nsCOMPtr<nsIAccessible> mNextSibling;
nsRoleMapEntry *mRoleMapEntry; // Non-null indicates author-supplied role; possibly state & value as well nsRoleMapEntry *mRoleMapEntry; // Non-null indicates author-supplied role; possibly state & value as well
PRInt32 mAccChildCount; PRInt32 mAccChildCount;
}; };

View File

@ -57,7 +57,22 @@
PRBool nsAccEvent::gLastEventFromUserInput = PR_FALSE; PRBool nsAccEvent::gLastEventFromUserInput = PR_FALSE;
nsIDOMNode* nsAccEvent::gLastEventNodeWeak = 0; nsIDOMNode* nsAccEvent::gLastEventNodeWeak = 0;
NS_IMPL_ISUPPORTS2(nsAccEvent, nsAccEvent, nsIAccessibleEvent) ////////////////////////////////////////////////////////////////////////////////
// nsAccEvent. nsISupports
NS_IMPL_CYCLE_COLLECTION_2(nsAccEvent, mAccessible, mDocAccessible)
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(nsAccEvent)
NS_INTERFACE_MAP_ENTRY(nsIAccessibleEvent)
NS_INTERFACE_MAP_ENTRY(nsAccEvent)
NS_INTERFACE_MAP_ENTRY(nsISupports)
NS_INTERFACE_MAP_END
NS_IMPL_CYCLE_COLLECTING_ADDREF(nsAccEvent)
NS_IMPL_CYCLE_COLLECTING_RELEASE(nsAccEvent)
////////////////////////////////////////////////////////////////////////////////
// nsAccEvent. Constructors
nsAccEvent::nsAccEvent(PRUint32 aEventType, nsIAccessible *aAccessible, nsAccEvent::nsAccEvent(PRUint32 aEventType, nsIAccessible *aAccessible,
PRBool aIsAsynch, EEventRule aEventRule): PRBool aIsAsynch, EEventRule aEventRule):

View File

@ -49,6 +49,7 @@
#include "nsIAccessibleDocument.h" #include "nsIAccessibleDocument.h"
#include "nsIDOMNode.h" #include "nsIDOMNode.h"
#include "nsString.h" #include "nsString.h"
#include "nsCycleCollectionParticipant.h"
class nsIPresShell; class nsIPresShell;
@ -93,7 +94,9 @@ public:
EEventRule aEventRule = eRemoveDupes); EEventRule aEventRule = eRemoveDupes);
virtual ~nsAccEvent() {} virtual ~nsAccEvent() {}
NS_DECL_ISUPPORTS NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_CLASS(nsAccEvent)
NS_DECL_NSIACCESSIBLEEVENT NS_DECL_NSIACCESSIBLEEVENT
static void GetLastEventAttributes(nsIDOMNode *aNode, static void GetLastEventAttributes(nsIDOMNode *aNode,
@ -105,13 +108,13 @@ protected:
void CaptureIsFromUserInput(PRBool aIsAsynch); void CaptureIsFromUserInput(PRBool aIsAsynch);
PRBool mIsFromUserInput; PRBool mIsFromUserInput;
private:
PRUint32 mEventType; PRUint32 mEventType;
EEventRule mEventRule; EEventRule mEventRule;
nsCOMPtr<nsIAccessible> mAccessible; nsCOMPtr<nsIAccessible> mAccessible;
nsCOMPtr<nsIDOMNode> mDOMNode; nsCOMPtr<nsIDOMNode> mDOMNode;
nsCOMPtr<nsIAccessibleDocument> mDocAccessible; nsCOMPtr<nsIAccessibleDocument> mDocAccessible;
private:
static PRBool gLastEventFromUserInput; static PRBool gLastEventFromUserInput;
static nsIDOMNode* gLastEventNodeWeak; static nsIDOMNode* gLastEventNodeWeak;

View File

@ -50,11 +50,48 @@ nsApplicationAccessible::nsApplicationAccessible():
{ {
} }
////////////////////////////////////////////////////////////////////////////////
// nsISupports // nsISupports
NS_IMPL_ISUPPORTS_INHERITED0(nsApplicationAccessible,
NS_IMPL_CYCLE_COLLECTION_CLASS(nsApplicationAccessible)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsApplicationAccessible,
nsAccessible) nsAccessible)
nsCOMPtr<nsISimpleEnumerator> enumerator;
tmp->mChildren->Enumerate(getter_AddRefs(enumerator));
nsCOMPtr<nsIWeakReference> childWeakRef;
nsCOMPtr<nsIAccessible> accessible;
PRBool hasMoreElements;
while(NS_SUCCEEDED(enumerator->HasMoreElements(&hasMoreElements))
&& hasMoreElements) {
enumerator->GetNext(getter_AddRefs(childWeakRef));
accessible = do_QueryReferent(childWeakRef);
if (accessible) {
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(cb, accessible);
cb.NoteXPCOMChild(accessible);
}
}
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(nsApplicationAccessible,
nsAccessible)
tmp->mChildren->Clear();
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsApplicationAccessible)
NS_INTERFACE_MAP_END_INHERITING(nsAccessible)
NS_IMPL_ADDREF_INHERITED(nsApplicationAccessible, nsAccessible)
NS_IMPL_RELEASE_INHERITED(nsApplicationAccessible, nsAccessible)
////////////////////////////////////////////////////////////////////////////////
// nsIAccessNode // nsIAccessNode
NS_IMETHODIMP NS_IMETHODIMP
nsApplicationAccessible::Init() nsApplicationAccessible::Init()
{ {

View File

@ -63,6 +63,8 @@ public:
// nsISupports // nsISupports
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsApplicationAccessible,
nsAccessible)
// nsPIAccessNode // nsPIAccessNode
NS_IMETHOD Init(); NS_IMETHOD Init();

View File

@ -188,11 +188,14 @@ nsLinkableAccessible::GetActionName(PRUint8 aIndex, nsAString& aName)
NS_IMETHODIMP NS_IMETHODIMP
nsLinkableAccessible::DoAction(PRUint8 aIndex) nsLinkableAccessible::DoAction(PRUint8 aIndex)
{ {
if (aIndex != eAction_Jump)
return NS_ERROR_INVALID_ARG;
nsCOMPtr<nsIAccessible> actionAcc = GetActionAccessible(); nsCOMPtr<nsIAccessible> actionAcc = GetActionAccessible();
if (actionAcc) if (actionAcc)
return actionAcc->DoAction(aIndex); return actionAcc->DoAction(aIndex);
return NS_ERROR_INVALID_ARG; return nsHyperTextAccessibleWrap::DoAction(aIndex);
} }
NS_IMETHODIMP NS_IMETHODIMP

View File

@ -135,7 +135,34 @@ nsDocAccessible::~nsDocAccessible()
{ {
} }
NS_INTERFACE_MAP_BEGIN(nsDocAccessible) ////////////////////////////////////////////////////////////////////////////////
// nsDocAccessible. nsISupports
PR_STATIC_CALLBACK(PLDHashOperator)
ElementTraverser(const void *aKey, nsIAccessNode *aAccessNode,
void *aUserArg)
{
nsCycleCollectionTraversalCallback *cb =
static_cast<nsCycleCollectionTraversalCallback*>(aUserArg);
NS_CYCLE_COLLECTION_NOTE_EDGE_NAME(*cb, aAccessNode);
cb->NoteXPCOMChild(aAccessNode);
return PL_DHASH_NEXT;
}
NS_IMPL_CYCLE_COLLECTION_CLASS(nsDocAccessible)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN_INHERITED(nsDocAccessible, nsAccessible)
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMARRAY(mEventsToFire)
tmp->mAccessNodeCache.EnumerateRead(ElementTraverser, &cb);
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(nsDocAccessible, nsAccessible)
NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMARRAY(mEventsToFire)
tmp->ClearCache(tmp->mAccessNodeCache);
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION_INHERITED(nsDocAccessible)
NS_INTERFACE_MAP_ENTRY(nsIAccessibleDocument) NS_INTERFACE_MAP_ENTRY(nsIAccessibleDocument)
NS_INTERFACE_MAP_ENTRY(nsPIAccessibleDocument) NS_INTERFACE_MAP_ENTRY(nsPIAccessibleDocument)
NS_INTERFACE_MAP_ENTRY(nsIDocumentObserver) NS_INTERFACE_MAP_ENTRY(nsIDocumentObserver)
@ -1760,9 +1787,8 @@ void nsDocAccessible::RefreshNodes(nsIDOMNode *aStartNode)
getter_AddRefs(childAccessNode)); getter_AddRefs(childAccessNode));
childAccessNode->GetDOMNode(getter_AddRefs(possibleAnonNode)); childAccessNode->GetDOMNode(getter_AddRefs(possibleAnonNode));
nsCOMPtr<nsIContent> iterContent = do_QueryInterface(possibleAnonNode); nsCOMPtr<nsIContent> iterContent = do_QueryInterface(possibleAnonNode);
if (iterContent && (iterContent->IsNativeAnonymous() || if (iterContent && iterContent->IsInAnonymousSubtree()) {
iterContent->GetBindingParent())) { // IsInAnonymousSubtree() check is a perf win -- make sure we don't
// GetBindingParent() check is a perf win -- make sure we don't
// shut down the same subtree twice since we'll reach non-anon content via // shut down the same subtree twice since we'll reach non-anon content via
// DOM traversal later in this method // DOM traversal later in this method
RefreshNodes(possibleAnonNode); RefreshNodes(possibleAnonNode);

View File

@ -65,6 +65,8 @@ class nsDocAccessible : public nsHyperTextAccessibleWrap,
public nsSupportsWeakReference public nsSupportsWeakReference
{ {
NS_DECL_ISUPPORTS_INHERITED NS_DECL_ISUPPORTS_INHERITED
NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(nsDocAccessible, nsAccessible)
NS_DECL_NSIACCESSIBLEDOCUMENT NS_DECL_NSIACCESSIBLEDOCUMENT
NS_DECL_NSPIACCESSIBLEDOCUMENT NS_DECL_NSPIACCESSIBLEDOCUMENT
NS_DECL_NSIOBSERVER NS_DECL_NSIOBSERVER

View File

@ -89,7 +89,8 @@ static nsCSSTextAttrMapItem gCSSTextAttrsMap[] = {
{ "text-decoration", "line-through", "text-line-through-style", "solid" }, { "text-decoration", "line-through", "text-line-through-style", "solid" },
{ "text-decoration", "underline", "text-underline-style", "solid" }, { "text-decoration", "underline", "text-underline-style", "solid" },
{ "text-align", kAnyValue, kCopyName, kCopyValue }, { "text-align", kAnyValue, kCopyName, kCopyValue },
{ "text-indent", kAnyValue, kCopyName, kCopyValue } { "text-indent", kAnyValue, kCopyName, kCopyValue },
{ "vertical-align", kAnyValue, "text-position", kCopyValue }
}; };
nsCSSTextAttr::nsCSSTextAttr(PRBool aIncludeDefAttrValue, nsIDOMElement *aElm, nsCSSTextAttr::nsCSSTextAttr(PRBool aIncludeDefAttrValue, nsIDOMElement *aElm,

View File

@ -640,7 +640,9 @@ nsresult nsHyperTextAccessible::DOMPointToHypertextOffset(nsIDOMNode* aNode, PRI
if (findContent->IsNodeOfType(nsINode::eHTML) && if (findContent->IsNodeOfType(nsINode::eHTML) &&
findContent->NodeInfo()->Equals(nsAccessibilityAtoms::br)) { findContent->NodeInfo()->Equals(nsAccessibilityAtoms::br)) {
nsIContent *parent = findContent->GetParent(); nsIContent *parent = findContent->GetParent();
if (parent && parent->IsNativeAnonymous() && parent->GetChildCount() == 1) { if (parent &&
parent->IsRootOfNativeAnonymousSubtree() &&
parent->GetChildCount() == 1) {
// This <br> is the only node in a text control, therefore it is the hacky // This <br> is the only node in a text control, therefore it is the hacky
// "bogus node" used when there is no text in a control // "bogus node" used when there is no text in a control
*aHyperTextOffset = 0; *aHyperTextOffset = 0;
@ -884,6 +886,9 @@ nsresult nsHyperTextAccessible::GetTextHelper(EGetTextType aType, nsAccessibleTe
nsAString &aText) nsAString &aText)
{ {
aText.Truncate(); aText.Truncate();
NS_ENSURE_ARG_POINTER(aStartOffset);
NS_ENSURE_ARG_POINTER(aEndOffset);
*aStartOffset = *aEndOffset = 0; *aStartOffset = *aEndOffset = 0;
nsCOMPtr<nsIPresShell> presShell = GetPresShell(); nsCOMPtr<nsIPresShell> presShell = GetPresShell();
@ -921,6 +926,52 @@ nsresult nsHyperTextAccessible::GetTextHelper(EGetTextType aType, nsAccessibleTe
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
nsSelectionAmount amount;
PRBool needsStart = PR_FALSE;
switch (aBoundaryType) {
case BOUNDARY_CHAR:
amount = eSelectCharacter;
if (aType == eGetAt)
aType = eGetAfter; // Avoid returning 2 characters
break;
case BOUNDARY_WORD_START:
needsStart = PR_TRUE;
amount = eSelectWord;
break;
case BOUNDARY_WORD_END:
amount = eSelectWord;
break;
case BOUNDARY_LINE_START:
// Newlines are considered at the end of a line. Since getting
// the BOUNDARY_LINE_START gets the text from the line-start to the next
// line-start, the newline is included at the end of the string.
needsStart = PR_TRUE;
amount = eSelectLine;
break;
case BOUNDARY_LINE_END:
// Newlines are considered at the end of a line. Since getting
// the BOUNDARY_END_START gets the text from the line-end to the next
//line-end, the newline is included at the beginning of the string.
amount = eSelectLine;
break;
case BOUNDARY_ATTRIBUTE_RANGE:
{
nsresult rv = GetTextAttributes(PR_FALSE, aOffset,
aStartOffset, aEndOffset, nsnull);
NS_ENSURE_SUCCESS(rv, rv);
return GetText(*aStartOffset, *aEndOffset, aText);
}
default: // Note, sentence support is deprecated and falls through to here
return NS_ERROR_INVALID_ARG;
}
PRInt32 startOffset = aOffset + (aBoundaryType == BOUNDARY_LINE_END); // Avoid getting the previous line PRInt32 startOffset = aOffset + (aBoundaryType == BOUNDARY_LINE_END); // Avoid getting the previous line
PRInt32 endOffset = startOffset; PRInt32 endOffset = startOffset;
@ -948,60 +999,6 @@ nsresult nsHyperTextAccessible::GetTextHelper(EGetTextType aType, nsAccessibleTe
} }
} }
nsSelectionAmount amount;
PRBool needsStart = PR_FALSE;
switch (aBoundaryType)
{
case BOUNDARY_CHAR:
amount = eSelectCharacter;
if (aType == eGetAt) {
aType = eGetAfter; // Avoid returning 2 characters
}
break;
case BOUNDARY_WORD_START:
needsStart = PR_TRUE;
amount = eSelectWord;
break;
case BOUNDARY_WORD_END:
amount = eSelectWord;
break;
case BOUNDARY_LINE_START:
// Newlines are considered at the end of a line,
// Since getting the BOUNDARY_LINE_START gets the text from the line-start
// to the next line-start, the newline is included at the end of the string
needsStart = PR_TRUE;
amount = eSelectLine;
break;
case BOUNDARY_LINE_END:
// Newlines are considered at the end of a line,
// Since getting the BOUNDARY_END_START gets the text from the line-end
// to the next line-end, the newline is included at the beginning of the string
amount = eSelectLine;
break;
case BOUNDARY_ATTRIBUTE_RANGE:
{
// XXX We should merge identically formatted frames
// XXX deal with static text case
// XXX deal with boundary type
nsIContent *textContent = startFrame->GetContent();
// If not text, then it's represented by an embedded object char
// (length of 1)
// XXX did this mean to check for eTEXT?
// XXX This is completely wrong, needs to be reimplemented
PRInt32 textLength = textContent ? textContent->TextLength() : 1;
if (textLength < 0) {
return NS_ERROR_FAILURE;
}
*aStartOffset = aOffset - startOffset;
*aEndOffset = *aStartOffset + textLength;
startOffset = *aStartOffset;
endOffset = *aEndOffset;
return GetText(startOffset, endOffset, aText);
}
default: // Note, sentence support is deprecated and falls through to here
return NS_ERROR_INVALID_ARG;
}
PRInt32 finalStartOffset, finalEndOffset; PRInt32 finalStartOffset, finalEndOffset;
// If aType == eGetAt we'll change both the start and end offset from // If aType == eGetAt we'll change both the start and end offset from
@ -1120,7 +1117,7 @@ nsHyperTextAccessible::GetTextAttributes(PRBool aIncludeDefAttrs,
nsresult rv = GetCharacterCount(aEndOffset); nsresult rv = GetCharacterCount(aEndOffset);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
NS_ENSURE_ARG_POINTER(aAttributes); if (aAttributes) {
*aAttributes = nsnull; *aAttributes = nsnull;
nsCOMPtr<nsIPersistentProperties> attributes = nsCOMPtr<nsIPersistentProperties> attributes =
@ -1128,6 +1125,7 @@ nsHyperTextAccessible::GetTextAttributes(PRBool aIncludeDefAttrs,
NS_ENSURE_TRUE(attributes, NS_ERROR_OUT_OF_MEMORY); NS_ENSURE_TRUE(attributes, NS_ERROR_OUT_OF_MEMORY);
NS_ADDREF(*aAttributes = attributes); NS_ADDREF(*aAttributes = attributes);
}
if (!mDOMNode) if (!mDOMNode)
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
@ -1139,7 +1137,7 @@ nsHyperTextAccessible::GetTextAttributes(PRBool aIncludeDefAttrs,
// Set 'misspelled' text attribute. // Set 'misspelled' text attribute.
rv = GetSpellTextAttribute(node, nodeOffset, aStartOffset, aEndOffset, rv = GetSpellTextAttribute(node, nodeOffset, aStartOffset, aEndOffset,
*aAttributes); aAttributes ? *aAttributes : nsnull);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
nsCOMPtr<nsIContent> content(do_QueryInterface(node)); nsCOMPtr<nsIContent> content(do_QueryInterface(node));
@ -1151,12 +1149,14 @@ nsHyperTextAccessible::GetTextAttributes(PRBool aIncludeDefAttrs,
// Set 'lang' text attribute. // Set 'lang' text attribute.
rv = GetLangTextAttributes(aIncludeDefAttrs, node, rv = GetLangTextAttributes(aIncludeDefAttrs, node,
aStartOffset, aEndOffset, *aAttributes); aStartOffset, aEndOffset,
aAttributes ? *aAttributes : nsnull);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
// Set CSS based text attributes. // Set CSS based text attributes.
rv = GetCSSTextAttributes(aIncludeDefAttrs, node, rv = GetCSSTextAttributes(aIncludeDefAttrs, node,
aStartOffset, aEndOffset, *aAttributes); aStartOffset, aEndOffset,
aAttributes ? *aAttributes : nsnull);
return rv; return rv;
} }
@ -2229,8 +2229,10 @@ nsHyperTextAccessible::GetSpellTextAttribute(nsIDOMNode *aNode,
if (endHTOffset < *aHTEndOffset) if (endHTOffset < *aHTEndOffset)
*aHTEndOffset = endHTOffset; *aHTEndOffset = endHTOffset;
if (aAttributes) {
nsAccUtils::SetAccAttr(aAttributes, nsAccessibilityAtoms::invalid, nsAccUtils::SetAccAttr(aAttributes, nsAccessibilityAtoms::invalid,
NS_LITERAL_STRING("spelling")); NS_LITERAL_STRING("spelling"));
}
return NS_OK; return NS_OK;
} }
@ -2259,6 +2261,7 @@ nsHyperTextAccessible::GetLangTextAttributes(PRBool aIncludeDefAttrs,
nsresult rv = GetLanguage(rootLang); nsresult rv = GetLanguage(rootLang);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
if (aAttributes) {
// Expose 'language' text attribute if the DOM 'lang' attribute is // Expose 'language' text attribute if the DOM 'lang' attribute is
// presented and it's different from the 'lang' attribute on the root // presented and it's different from the 'lang' attribute on the root
// element or we should include default values of text attribute. // element or we should include default values of text attribute.
@ -2266,6 +2269,7 @@ nsHyperTextAccessible::GetLangTextAttributes(PRBool aIncludeDefAttrs,
if (!resultLang.IsEmpty() && (aIncludeDefAttrs || lang != rootLang)) if (!resultLang.IsEmpty() && (aIncludeDefAttrs || lang != rootLang))
nsAccUtils::SetAccAttr(aAttributes, nsAccessibilityAtoms::language, nsAccUtils::SetAccAttr(aAttributes, nsAccessibilityAtoms::language,
resultLang); resultLang);
}
nsLangTextAttr textAttr(lang, rootContent); nsLangTextAttr textAttr(lang, rootContent);
return GetRangeForTextAttr(aSourceNode, &textAttr, return GetRangeForTextAttr(aSourceNode, &textAttr,
@ -2287,7 +2291,7 @@ nsHyperTextAccessible::GetCSSTextAttributes(PRBool aIncludeDefAttrs,
while (textAttr.iterate()) { while (textAttr.iterate()) {
nsCAutoString name; nsCAutoString name;
nsAutoString value, oldValue; nsAutoString value, oldValue;
if (textAttr.get(name, value)) if (aAttributes && textAttr.get(name, value))
aAttributes->SetStringProperty(name, value, oldValue); aAttributes->SetStringProperty(name, value, oldValue);
nsresult rv = GetRangeForTextAttr(aSourceNode, &textAttr, nsresult rv = GetRangeForTextAttr(aSourceNode, &textAttr,

View File

@ -287,7 +287,7 @@ protected:
* @param aSourceNode [in] the node we start to traverse from * @param aSourceNode [in] the node we start to traverse from
* @param aStartOffset [in, out] the start offset * @param aStartOffset [in, out] the start offset
* @param aEndOffset [in, out] the end offset * @param aEndOffset [in, out] the end offset
* @param aAttributes [out] result attributes * @param aAttributes [out, optional] result attributes
*/ */
nsresult GetSpellTextAttribute(nsIDOMNode *aNode, PRInt32 aNodeOffset, nsresult GetSpellTextAttribute(nsIDOMNode *aNode, PRInt32 aNodeOffset,
PRInt32 *aStartOffset, PRInt32 *aStartOffset,
@ -303,7 +303,7 @@ protected:
* @param aSourceNode [in] the node we start to traverse from * @param aSourceNode [in] the node we start to traverse from
* @param aStartOffset [in, out] the start offset * @param aStartOffset [in, out] the start offset
* @param aEndOffset [in, out] the end offset * @param aEndOffset [in, out] the end offset
* @param aAttributes [out] result attributes * @param aAttributes [out, optional] result attributes
*/ */
nsresult GetLangTextAttributes(PRBool aIncludeDefAttrs, nsresult GetLangTextAttributes(PRBool aIncludeDefAttrs,
nsIDOMNode *aSourceNode, nsIDOMNode *aSourceNode,
@ -320,7 +320,7 @@ protected:
* @param aSourceNode [in] the node we start to traverse from * @param aSourceNode [in] the node we start to traverse from
* @param aStartOffset [in, out] the start offset * @param aStartOffset [in, out] the start offset
* @param aEndOffset [in, out] the end offset * @param aEndOffset [in, out] the end offset
* @param aAttributes [out] result attributes * @param aAttributes [out, optional] result attributes
*/ */
nsresult GetCSSTextAttributes(PRBool aIncludeDefAttrs, nsresult GetCSSTextAttributes(PRBool aIncludeDefAttrs,
nsIDOMNode *aSourceNode, nsIDOMNode *aSourceNode,

View File

@ -37,6 +37,7 @@
* ***** END LICENSE BLOCK ***** */ * ***** END LICENSE BLOCK ***** */
#include "nsAccessNodeWrap.h" #include "nsAccessNodeWrap.h"
#include <tchar.h>
#include "ISimpleDOMNode_i.c" #include "ISimpleDOMNode_i.c"
#include "nsAccessibilityAtoms.h" #include "nsAccessibilityAtoms.h"
#include "nsIAccessibilityService.h" #include "nsIAccessibilityService.h"
@ -66,6 +67,8 @@ LPFNNOTIFYWINEVENT nsAccessNodeWrap::gmNotifyWinEvent = nsnull;
LPFNGETGUITHREADINFO nsAccessNodeWrap::gmGetGUIThreadInfo = nsnull; LPFNGETGUITHREADINFO nsAccessNodeWrap::gmGetGUIThreadInfo = nsnull;
PRBool nsAccessNodeWrap::gIsEnumVariantSupportDisabled = 0; PRBool nsAccessNodeWrap::gIsEnumVariantSupportDisabled = 0;
// Used to determine whether an IAccessible2 compatible screen reader is loaded.
PRBool nsAccessNodeWrap::gIsIA2Disabled = PR_FALSE;
nsIAccessibleTextChangeEvent *nsAccessNodeWrap::gTextEvent = nsnull; nsIAccessibleTextChangeEvent *nsAccessNodeWrap::gTextEvent = nsnull;
@ -599,6 +602,8 @@ void nsAccessNodeWrap::InitAccessibility()
gmGetGUIThreadInfo = (LPFNGETGUITHREADINFO)GetProcAddress(gmUserLib,"GetGUIThreadInfo"); gmGetGUIThreadInfo = (LPFNGETGUITHREADINFO)GetProcAddress(gmUserLib,"GetGUIThreadInfo");
} }
DoATSpecificProcessing();
nsAccessNode::InitXPAccessibility(); nsAccessNode::InitXPAccessibility();
} }
@ -655,3 +660,40 @@ GetHRESULT(nsresult aResult)
} }
} }
PRBool nsAccessNodeWrap::IsOnlyMsaaCompatibleJawsPresent()
{
HMODULE jhookhandle = ::GetModuleHandleW(NS_LITERAL_STRING("jhook").get());
if (!jhookhandle)
return PR_FALSE; // No JAWS, or some other screen reader, use IA2
PRUnichar fileName[MAX_PATH];
::GetModuleFileNameW(jhookhandle, fileName, MAX_PATH);
DWORD dummy;
DWORD length = ::GetFileVersionInfoSizeW(fileName, &dummy);
LPBYTE versionInfo = new BYTE[length];
::GetFileVersionInfoW(fileName, 0, length, versionInfo);
UINT uLen;
VS_FIXEDFILEINFO *fixedFileInfo;
::VerQueryValueW(versionInfo, L"\\", (LPVOID*)&fixedFileInfo, &uLen);
DWORD dwFileVersionMS = fixedFileInfo->dwFileVersionMS;
DWORD dwFileVersionLS = fixedFileInfo->dwFileVersionLS;
delete [] versionInfo;
DWORD dwLeftMost = HIWORD(dwFileVersionMS);
// DWORD dwSecondLeft = LOWORD(dwFileVersionMS);
DWORD dwSecondRight = HIWORD(dwFileVersionLS);
// DWORD dwRightMost = LOWORD(dwFileVersionLS);
return (dwLeftMost < 8
|| (dwLeftMost == 8 && dwSecondRight < 2173));
}
void nsAccessNodeWrap::DoATSpecificProcessing()
{
if (IsOnlyMsaaCompatibleJawsPresent())
// All versions below 8.0.2173 are not compatible
gIsIA2Disabled = PR_TRUE;
}

View File

@ -158,12 +158,20 @@ class nsAccessNodeWrap : public nsAccessNode,
static int FilterA11yExceptions(unsigned int aCode, EXCEPTION_POINTERS *aExceptionInfo); static int FilterA11yExceptions(unsigned int aCode, EXCEPTION_POINTERS *aExceptionInfo);
static PRBool IsOnlyMsaaCompatibleJawsPresent();
static void DoATSpecificProcessing();
protected: protected:
void GetAccessibleFor(nsIDOMNode *node, nsIAccessible **newAcc); void GetAccessibleFor(nsIDOMNode *node, nsIAccessible **newAcc);
ISimpleDOMNode* MakeAccessNode(nsIDOMNode *node); ISimpleDOMNode* MakeAccessNode(nsIDOMNode *node);
static PRBool gIsEnumVariantSupportDisabled; static PRBool gIsEnumVariantSupportDisabled;
/**
* Used to determine whether an IAccessible2 compatible screen reader is
* loaded. Currently used for JAWS versions older than 8.0.2173.
*/
static PRBool gIsIA2Disabled;
/** /**
* It is used in nsHyperTextAccessibleWrap for IA2::newText/oldText * It is used in nsHyperTextAccessibleWrap for IA2::newText/oldText
* implementation. * implementation.

View File

@ -117,7 +117,7 @@ __try {
*ppv = static_cast<IEnumVARIANT*>(this); *ppv = static_cast<IEnumVARIANT*>(this);
} else if (IID_IServiceProvider == iid) } else if (IID_IServiceProvider == iid)
*ppv = static_cast<IServiceProvider*>(this); *ppv = static_cast<IServiceProvider*>(this);
else if (IID_IAccessible2 == iid) else if (IID_IAccessible2 == iid && !gIsIA2Disabled)
*ppv = static_cast<IAccessible2*>(this); *ppv = static_cast<IAccessible2*>(this);
if (NULL == *ppv) { if (NULL == *ppv) {

View File

@ -47,6 +47,7 @@ include $(topsrcdir)/config/rules.mk
_TEST_FILES =\ _TEST_FILES =\
moz.png \ moz.png \
nsIAccessible_actions.js \
nsIAccessible_name.css \ nsIAccessible_name.css \
nsIAccessible_name.xbl \ nsIAccessible_name.xbl \
test_aria_activedescendant.html \ test_aria_activedescendant.html \
@ -56,6 +57,8 @@ _TEST_FILES =\
test_cssattrs.html \ test_cssattrs.html \
test_groupattrs.xul \ test_groupattrs.xul \
$(warning test_table_indexes.html temporarily disabled) \ $(warning test_table_indexes.html temporarily disabled) \
test_nsIAccessible_actions.html \
test_nsIAccessible_actions.xul \
test_nsIAccessible_name.html \ test_nsIAccessible_name.html \
test_nsIAccessible_name.xul \ test_nsIAccessible_name.xul \
test_nsIAccessibleTable_1.html \ test_nsIAccessibleTable_1.html \

View File

@ -0,0 +1,150 @@
////////////////////////////////////////////////////////////////////////////////
// General
const nsIAccessibleRetrieval = Components.interfaces.nsIAccessibleRetrieval;
const nsIAccessibleRole = Components.interfaces.nsIAccessibleRole;
var gAccRetrieval = null;
function initialize()
{
gAccRetrieval = Components.classes["@mozilla.org/accessibleRetrieval;1"].
getService(nsIAccessibleRetrieval);
}
addLoadEvent(initialize);
////////////////////////////////////////////////////////////////////////////////
// Event constants
const MOUSEDOWN_EVENT = 1;
const MOUSEUP_EVENT = 2;
const CLICK_EVENT = 4;
const COMMAND_EVENT = 8;
const CLICK_EVENTS = MOUSEDOWN_EVENT | MOUSEUP_EVENT | CLICK_EVENT;
const ALL_EVENTS = CLICK_EVENTS | COMMAND_EVENT;
////////////////////////////////////////////////////////////////////////////////
// Public functions
function testActions(aArray, aIndex)
{
if (!aIndex)
aIndex = 0;
if (aIndex == aArray.length) {
SimpleTest.finish();
return;
}
var ID = aArray[aIndex].ID;
var actionName = aArray[aIndex].actionName;
var events = aArray[aIndex].events;
var elm = document.getElementById(ID);
if (!elm) {
ok(false, "There is no element with ID " + ID);
SimpleTest.finish();
return null;
}
var acc = null;
try {
acc = gAccRetrieval.getAccessibleFor(elm);
} catch(e) {
}
if (!acc) {
ok(false, "There is no accessible for " + ID);
SimpleTest.finish();
return null;
}
is(acc.getActionName(0), actionName,
"Wrong action name of the accessible for " + ID);
gEventHandler.initialize(ID, elm, events);
acc.doAction(0);
window.setTimeout(
function()
{
gEventHandler.checkEvents();
testActions(aArray, aIndex + 1);
},
200
);
}
////////////////////////////////////////////////////////////////////////////////
// Private
var gEventHandler =
{
initialize: function(aID, aElm, aExpectedEvents)
{
this.ID = aID,
this.element = aElm;
this.mExpectedEvents = aExpectedEvents;
this.mFiredEvents = 0;
if (this.mExpectedEvents & MOUSEDOWN_EVENT)
aElm.addEventListener("mousedown", this, false);
if (this.mExpectedEvents & MOUSEUP_EVENT)
aElm.addEventListener("mouseup", this, false);
if (this.mExpectedEvents & CLICK_EVENT)
aElm.addEventListener("click", this, false);
if (this.mExpectedEvents & COMMAND_EVENT)
aElm.addEventListener("command", this, false);
},
checkEvents: function()
{
if (this.mExpectedEvents & MOUSEDOWN_EVENT) {
ok(this.mFiredEvents & MOUSEDOWN_EVENT,
"mousedown hasn't been fired for " + this.ID);
this.element.removeEventListener("mousedown", this, false);
}
if (this.mExpectedEvents & MOUSEUP_EVENT) {
ok(this.mFiredEvents & MOUSEUP_EVENT,
"mouseup hasn't been fired for " + this.ID);
this.element.removeEventListener("mouseup", this, false);
}
if (this.mExpectedEvents & CLICK_EVENT) {
ok(this.mFiredEvents & CLICK_EVENT,
"click hasn't been fired for " + this.ID);
this.element.removeEventListener("click", this, false);
}
if (this.mExpectedEvents & COMMAND_EVENT) {
ok(this.mFiredEvents & COMMAND_EVENT,
"command hasn't been fired for " + this.ID);
this.element.removeEventListener("command", this, false);
}
},
ID: "",
element: null,
handleEvent : function(aEvent)
{
if (aEvent.type == "mousedown")
this.mFiredEvents |= MOUSEDOWN_EVENT;
else if(aEvent.type == "mouseup")
this.mFiredEvents |= MOUSEUP_EVENT;
else if(aEvent.type == "click")
this.mFiredEvents |= CLICK_EVENT;
else if(aEvent.type == "command")
this.mFiredEvents |= COMMAND_EVENT;
},
mExpectedEvents: 0,
mFiredEvents: 0
};

View File

@ -0,0 +1,49 @@
<html>
<head>
<title>nsIAccessible actions testing</title>
<link rel="stylesheet" type="text/css"
href="chrome://mochikit/content/tests/SimpleTest/test.css" />
<script type="application/javascript"
src="chrome://mochikit/content/MochiKit/packed.js"></script>
<script type="application/javascript"
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<script type="application/javascript"
src="chrome://mochikit/content/a11y/accessible/nsIAccessible_actions.js"></script>
<script type="application/javascript">
function doTest()
{
var actionsArray = [
{
ID: "clickable",
actionName: "click",
events: CLICK_EVENTS
}
];
testActions(actionsArray);
}
SimpleTest.waitForExplicitFinish();
addLoadEvent(doTest);
</script>
</head>
<body>
<a target="_blank"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=410765"
title="nsIAccessible actions testing">
Mozilla Bug 410765
</a>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test">
</pre>
<div id="clickable" onclick="">Clickable text</div>
</body>
</html>

View File

@ -0,0 +1,98 @@
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
type="text/css"?>
<?xml-stylesheet href="chrome://mochikit/content/a11y/accessible/nsIAccessible_name.css"
type="text/css"?>
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="nsIAccessible actions testing">
<script type="application/javascript"
src="chrome://mochikit/content/MochiKit/packed.js"></script>
<script type="application/javascript"
src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
<script type="application/javascript"
src="chrome://mochikit/content/a11y/accessible/nsIAccessible_actions.js" />
<script type="application/javascript">
<![CDATA[
function doTest()
{
var actionsArray = [
{
ID: "menu",
actionName: "click",
events: CLICK_EVENTS
},
{
ID: "submenu",
actionName: "click",
events: CLICK_EVENTS
},
{
ID: "menuitem",
actionName: "click",
events: ALL_EVENTS
},
{
ID: "button",
actionName: "press",
events: ALL_EVENTS
},
{
ID: "buttonmenu",
actionName: "press",
events: CLICK_EVENTS
},
{
ID: "buttonmenu_item",
actionName: "click",
events: CLICK_EVENTS
}
];
testActions(actionsArray);
}
SimpleTest.waitForExplicitFinish();
addLoadEvent(doTest);
]]>
</script>
<body xmlns="http://www.w3.org/1999/xhtml">
<a target="_blank"
href="https://bugzilla.mozilla.org/show_bug.cgi?id=410765"
title="nsIAccessible actions testing">
Mozilla Bug 410765
</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
</pre>
</body>
<menubar>
<menu label="menu" id="menu">
<menupopup>
<menuitem label="menu item" id="menuitem"/>
<menu label="submenu" id="submenu">
<menupopup>
<menuitem label="menu item"/>
</menupopup>
</menu>
</menupopup>
</menu>
</menubar>
<button label="button" id="button"/>
<button type="menu" id="buttonmenu" label="button">
<menupopup>
<menuitem label="item1" id="buttonmenu_item"/>
<menuitem label="item1"/>
</menupopup>
</button>
</window>

View File

@ -67,12 +67,13 @@
return; return;
} }
var errorMsg = " for " + aID + "at offset " + aOffset;
is(startOffset.value, aStartOffset, is(startOffset.value, aStartOffset,
"Wrong start offset for " + aID); "Wrong start offset" + errorMsg);
is(endOffset.value, aEndOffset, is(endOffset.value, aEndOffset,
"Wrong end offset for " + aID); "Wrong end offset" + errorMsg);
compareTextAttrs(aID, attrs, aAttrs); compareTextAttrs(errorMsg, attrs, aAttrs);
var defAttrs = null; var defAttrs = null;
try{ try{
@ -85,10 +86,10 @@
return; return;
} }
compareTextAttrs(aID, defAttrs, aDefAttrs); compareTextAttrs(errorMsg, defAttrs, aDefAttrs);
} }
function compareTextAttrs(aID, aAttrs, aExpectedAttrs) function compareTextAttrs(aErrorMsg, aAttrs, aExpectedAttrs)
{ {
var enumerate = aAttrs.enumerate(); var enumerate = aAttrs.enumerate();
while (enumerate.hasMoreElements()) { while (enumerate.hasMoreElements()) {
@ -96,10 +97,11 @@
QueryInterface(Components.interfaces.nsIPropertyElement); QueryInterface(Components.interfaces.nsIPropertyElement);
if (!(prop.key in aExpectedAttrs)) if (!(prop.key in aExpectedAttrs))
ok(false, "Unexpected attribute '" + prop.key + "' for " + aID); ok(false,
"Unexpected attribute '" + prop.key + "'" + aErrorMsg);
else else
is(prop.value, aExpectedAttrs[prop.key], is(prop.value, aExpectedAttrs[prop.key],
"Attribute '" + prop.key + "' has wrong value for " + aID); "Attribute '" + prop.key + "' has wrong value" + aErrorMsg);
} }
for (var name in aExpectedAttrs) { for (var name in aExpectedAttrs) {
@ -110,7 +112,8 @@
} }
if (!value) if (!value)
ok(false, "There is no expected attribute '" + name + "' for " + aID); ok(false,
"There is no expected attribute '" + name + "'" + aErrorMsg);
} }
} }
@ -142,7 +145,7 @@
gObserverService.addObserver(gA11yEventObserver, "accessible-event", gObserverService.addObserver(gA11yEventObserver, "accessible-event",
false); false);
ID = "area7"; ID = "area8";
var node = document.getElementById(ID); var node = document.getElementById(ID);
node.focus(); node.focus();
@ -161,7 +164,8 @@
"font-weight": "400", "font-weight": "400",
"text-indent": "0px", "text-indent": "0px",
"color": "rgb(0, 0, 0)", "color": "rgb(0, 0, 0)",
"font-family": "Lucida Grande" "font-family": "Lucida Grande",
"text-position": "baseline"
}; };
var attrs = { "background-color": "transparent" }; var attrs = { "background-color": "transparent" };
@ -201,7 +205,8 @@
"font-weight": "400", "font-weight": "400",
"text-indent": "0px", "text-indent": "0px",
"color": "rgb(0, 0, 0)", "color": "rgb(0, 0, 0)",
"font-family": "serif" "font-family": "serif",
"text-position": "baseline"
}; };
var attrs = {}; var attrs = {};
@ -224,7 +229,8 @@
"font-weight": "400", "font-weight": "400",
"text-indent": "0px", "text-indent": "0px",
"color": "rgb(0, 0, 0)", "color": "rgb(0, 0, 0)",
"font-family": "serif" "font-family": "serif",
"text-position": "baseline"
}; };
attrs = {}; attrs = {};
@ -253,7 +259,8 @@
"font-weight": "400", "font-weight": "400",
"text-indent": "0px", "text-indent": "0px",
"color": "rgb(0, 0, 0)", "color": "rgb(0, 0, 0)",
"font-family": "serif" "font-family": "serif",
"text-position": "baseline"
}; };
attrs = {"color": "rgb(0, 128, 0)"}; attrs = {"color": "rgb(0, 128, 0)"};
@ -276,7 +283,8 @@
"font-weight": "400", "font-weight": "400",
"text-indent": "0px", "text-indent": "0px",
"color": "rgb(0, 0, 0)", "color": "rgb(0, 0, 0)",
"font-family": "serif" "font-family": "serif",
"text-position": "baseline"
}; };
attrs = {"color": "rgb(0, 128, 0)"}; attrs = {"color": "rgb(0, 128, 0)"};
@ -299,7 +307,8 @@
"font-weight": "400", "font-weight": "400",
"text-indent": "0px", "text-indent": "0px",
"color": "rgb(0, 0, 0)", "color": "rgb(0, 0, 0)",
"font-family": "serif" "font-family": "serif",
"text-position": "baseline"
}; };
attrs = {"color": "rgb(0, 128, 0)"}; attrs = {"color": "rgb(0, 128, 0)"};
@ -315,7 +324,7 @@
testTextAttrs(ID, 11, attrs, 11, 18, defAttrs); testTextAttrs(ID, 11, attrs, 11, 18, defAttrs);
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// area6 // area6 (CSS vertical-align property, bug 445938)
ID = "area6"; ID = "area6";
defAttrs = { defAttrs = {
"font-style": "normal", "font-style": "normal",
@ -325,7 +334,47 @@
"font-weight": "400", "font-weight": "400",
"text-indent": "0px", "text-indent": "0px",
"color": "rgb(0, 0, 0)", "color": "rgb(0, 0, 0)",
"font-family": "serif" "font-family": "serif",
"text-position": "baseline"
};
attrs = {};
testTextAttrs(ID, 0, attrs, 0, 5, defAttrs);
attrs = {"text-position": "super", "font-size": "13px" };
testTextAttrs(ID, 5, attrs, 5, 13, defAttrs);
attrs = {};
testTextAttrs(ID, 13, attrs, 13, 27, defAttrs);
attrs = {"text-position": "super" };
testTextAttrs(ID, 27, attrs, 27, 35, defAttrs);
attrs = {};
testTextAttrs(ID, 35, attrs, 35, 39, defAttrs);
attrs = {"text-position": "sub", "font-size": "13px" };
testTextAttrs(ID, 39, attrs, 39, 50, defAttrs);
attrs = {};
testTextAttrs(ID, 50, attrs, 50, 55, defAttrs);
attrs = {"text-position": "sub" };
testTextAttrs(ID, 55, attrs, 55, 64, defAttrs);
//////////////////////////////////////////////////////////////////////////
// area7
ID = "area7";
defAttrs = {
"font-style": "normal",
"text-align": "start",
"font-size": "16px",
"background-color": "transparent",
"font-weight": "400",
"text-indent": "0px",
"color": "rgb(0, 0, 0)",
"font-family": "serif",
"text-position": "baseline"
}; };
attrs = {"language": "ru"}; attrs = {"language": "ru"};
@ -403,7 +452,14 @@
<img src="moz.png" alt="image"/> <img src="moz.png" alt="image"/>
<span style="color: red">Red</span>Normal <span style="color: red">Red</span>Normal
</p> </p>
<p lang="en" id="area6"> <p id="area6">
This <sup>sentence</sup> has the word
<span style="vertical-align:super;">sentence</span> in
<sub>superscript</sub> and
<span style="vertical-align:sub;">subscript</span>
</p>
<p lang="en" id="area7">
<span lang="ru">Привет</span> <span lang="ru">Привет</span>
<span style="background-color: blue">Blue BG color</span> <span style="background-color: blue">Blue BG color</span>
<span lang="de">Ich bin/Du bist</span> <span lang="de">Ich bin/Du bist</span>
@ -413,7 +469,7 @@
</span> </span>
</p> </p>
<input id="area7" value="valid text inalid tixt"/> <input id="area8" value="valid text inalid tixt"/>
<p id="output"/> <p id="output"/>
</body> </body>

View File

@ -1,7 +1,7 @@
WIN32_MODULE_COMPANYNAME=Mozilla Corporation WIN32_MODULE_COMPANYNAME=Mozilla Corporation
WIN32_MODULE_COPYRIGHT=©Firefox and Mozilla Developers, according to the MPL 1.1/GPL 2.0/LGPL 2.1 licenses, as applicable. WIN32_MODULE_COPYRIGHT=©Firefox and Mozilla Developers, according to the MPL 1.1/GPL 2.0/LGPL 2.1 licenses, as applicable.
WIN32_MODULE_PRODUCTVERSION=3,1,0,0 WIN32_MODULE_PRODUCTVERSION=3,1,0,0
WIN32_MODULE_PRODUCTVERSION_STRING=3.1a1pre WIN32_MODULE_PRODUCTVERSION_STRING=3.1a2pre
WIN32_MODULE_TRADEMARKS=Firefox is a Trademark of The Mozilla Foundation. WIN32_MODULE_TRADEMARKS=Firefox is a Trademark of The Mozilla Foundation.
WIN32_MODULE_DESCRIPTION=Firefox WIN32_MODULE_DESCRIPTION=Firefox
WIN32_MODULE_PRODUCTNAME=Firefox WIN32_MODULE_PRODUCTNAME=Firefox

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -29,6 +29,7 @@
# Jeff Walden <jwalden+code@mit.edu> # Jeff Walden <jwalden+code@mit.edu>
# Johnathan Nightingale <johnath@mozilla.com> # Johnathan Nightingale <johnath@mozilla.com>
# Justin Dolske <dolske@mozilla.com> # Justin Dolske <dolske@mozilla.com>
# Ehsan Akhgari <ehsan.akhgari@gmail.com>
# #
# Alternatively, the contents of this file may be used under the terms of # 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 # either the GNU General Public License Version 2 or later (the "GPL"), or
@ -80,13 +81,32 @@
} }
} }
]]></script> ]]></script>
<style type="text/css"><![CDATA[
#errorPageContainer {
background: url('chrome://browser/content/aboutRobots-icon.png') left 0 no-repeat -moz-Field;
-moz-background-origin: content;
}
#errorTrailerDescText {
float: right;
}
body[dir=rtl] #errorPageContainer {
background-image: url('chrome://browser/content/aboutRobots-icon-rtl.png');
background-position: right 0;
}
body[dir=rtl] #errorTrailerDescText {
float: left;
}
]]></style>
</head> </head>
<body dir="&locale.dir;"> <body dir="&locale.dir;">
<!-- PAGE CONTAINER (for styling purposes only) --> <!-- PAGE CONTAINER (for styling purposes only) -->
<div id="errorPageContainer" <div id="errorPageContainer">
style="background: url('chrome://browser/content/aboutRobots-icon.png') left 0 no-repeat -moz-Field; -moz-background-origin: content;">
<!-- Error Title --> <!-- Error Title -->
<div id="errorTitle"> <div id="errorTitle">
@ -113,7 +133,7 @@
<!-- Short Description --> <!-- Short Description -->
<div id="errorTrailerDesc"> <div id="errorTrailerDesc">
<p id="errorTrailerDescText" style="float: right;">&robots.errorTrailerDescText;</p> <p id="errorTrailerDescText">&robots.errorTrailerDescText;</p>
</div> </div>
</div> </div>

View File

@ -179,7 +179,6 @@
accesskey="&keywordfield.accesskey;" accesskey="&keywordfield.accesskey;"
oncommand="AddKeywordForSearchField();"/> oncommand="AddKeywordForSearchField();"/>
<menuitem id="context-searchselect" <menuitem id="context-searchselect"
accesskey="&search.accesskey;"
oncommand="BrowserSearch.loadSearch(getBrowserSelection(), true);"/> oncommand="BrowserSearch.loadSearch(getBrowserSelection(), true);"/>
<menuseparator id="frame-sep"/> <menuseparator id="frame-sep"/>
<menu id="frame" label="&thisFrameMenu.label;" accesskey="&thisFrameMenu.accesskey;"> <menu id="frame" label="&thisFrameMenu.label;" accesskey="&thisFrameMenu.accesskey;">

View File

@ -22,7 +22,6 @@
# Annie Sullivan <annie.sullivan@gmail.com> # Annie Sullivan <annie.sullivan@gmail.com>
# Joe Hughes <joe@retrovirus.com> # Joe Hughes <joe@retrovirus.com>
# Asaf Romano <mano@mozilla.com> # Asaf Romano <mano@mozilla.com>
# Ehsan Akhgari <ehsan.akhgari@gmail.com>
# #
# Alternatively, the contents of this file may be used under the terms of # 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 # either the GNU General Public License Version 2 or later (the "GPL"), or

View File

@ -73,19 +73,12 @@ var gURIFixup = null;
var gCharsetMenu = null; var gCharsetMenu = null;
var gLastBrowserCharset = null; var gLastBrowserCharset = null;
var gPrevCharset = null; var gPrevCharset = null;
var gURLBar = null;
var gFindBar = null;
var gProxyFavIcon = null; var gProxyFavIcon = null;
var gNavigatorBundle = null;
var gIsLoadingBlank = false; var gIsLoadingBlank = false;
var gLastValidURLStr = ""; var gLastValidURLStr = "";
var gMustLoadSidebar = false; var gMustLoadSidebar = false;
var gProgressMeterPanel = null;
var gProgressCollapseTimer = null; var gProgressCollapseTimer = null;
var gPrefService = null;
var appCore = null; var appCore = null;
var gBrowser = null;
var gNavToolbox = null;
var gSidebarCommand = ""; var gSidebarCommand = "";
var gInPrintPreviewMode = false; var gInPrintPreviewMode = false;
let gDownloadMgr = null; let gDownloadMgr = null;
@ -108,6 +101,34 @@ var gClickAndHoldTimer = null;
var gEditUIVisible = true; var gEditUIVisible = true;
#endif #endif
[
["gBrowser", "content"],
["gNavToolbox", "navigator-toolbox"],
["gURLBar", "urlbar"],
["gNavigatorBundle", "bundle_browser"],
["gProgressMeterPanel", "statusbar-progresspanel"],
["gFindBar", "FindToolbar"]
].forEach(function (elementGlobal) {
var [name, id] = elementGlobal;
window.__defineGetter__(name, function () {
var element = document.getElementById(id);
if (!element)
return null;
delete window[name];
return window[name] = element;
});
window.__defineSetter__(name, function (val) {
delete window[name];
return window[name] = val;
});
});
__defineGetter__("gPrefService", function() {
delete this.gPrefService;
return this.gPrefService = Cc["@mozilla.org/preferences-service;1"].
getService(Ci.nsIPrefBranch2);
});
/** /**
* We can avoid adding multiple load event listeners and save some time by adding * We can avoid adding multiple load event listeners and save some time by adding
* one listener that calls all real handlers. * one listener that calls all real handlers.
@ -253,9 +274,9 @@ function SetClickAndHoldHandlers()
function BookmarkThisTab() function BookmarkThisTab()
{ {
var tab = getBrowser().mContextTab; var tab = gBrowser.mContextTab;
if (tab.localName != "tab") if (tab.localName != "tab")
tab = getBrowser().mCurrentTab; tab = gBrowser.mCurrentTab;
PlacesCommandHook.bookmarkPage(tab.linkedBrowser, PlacesCommandHook.bookmarkPage(tab.linkedBrowser,
PlacesUtils.bookmarksMenuFolderId, true); PlacesUtils.bookmarksMenuFolderId, true);
@ -334,9 +355,6 @@ const gPopupBlockerObserver = {
// notifications are per-browser, we don't need to worry about re-adding // notifications are per-browser, we don't need to worry about re-adding
// it. // it.
if (!gBrowser.pageReport.reported) { if (!gBrowser.pageReport.reported) {
if (!gPrefService)
gPrefService = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch2);
if (gPrefService.getBoolPref("privacy.popups.showBrowserMessage")) { if (gPrefService.getBoolPref("privacy.popups.showBrowserMessage")) {
var bundle_browser = document.getElementById("bundle_browser"); var bundle_browser = document.getElementById("bundle_browser");
var brandBundle = document.getElementById("bundle_brand"); var brandBundle = document.getElementById("bundle_brand");
@ -577,9 +595,8 @@ const gXPInstallObserver = {
_getBrowser: function (aDocShell) _getBrowser: function (aDocShell)
{ {
var tabbrowser = getBrowser(); for (var i = 0; i < gBrowser.browsers.length; ++i) {
for (var i = 0; i < tabbrowser.browsers.length; ++i) { var browser = gBrowser.getBrowserAtIndex(i);
var browser = tabbrowser.getBrowserAtIndex(i);
if (this._findChildShell(browser.docShell, aDocShell)) if (this._findChildShell(browser.docShell, aDocShell))
return browser; return browser;
} }
@ -656,8 +673,6 @@ const gXPInstallObserver = {
function BrowserStartup() function BrowserStartup()
{ {
gBrowser = document.getElementById("content");
var uriToLoad = null; var uriToLoad = null;
// window.arguments[0]: URI to load (string), or an nsISupportsArray of // window.arguments[0]: URI to load (string), or an nsISupportsArray of
@ -826,10 +841,6 @@ function HandleAppCommandEvent(evt)
function prepareForStartup() function prepareForStartup()
{ {
gURLBar = document.getElementById("urlbar");
gNavigatorBundle = document.getElementById("bundle_browser");
gProgressMeterPanel = document.getElementById("statusbar-progresspanel");
gFindBar = document.getElementById("FindToolbar");
gBrowser.addEventListener("DOMUpdatePageReport", gPopupBlockerObserver.onUpdatePageReport, false); gBrowser.addEventListener("DOMUpdatePageReport", gPopupBlockerObserver.onUpdatePageReport, false);
// Note: we need to listen to untrusted events, because the pluginfinder XBL // Note: we need to listen to untrusted events, because the pluginfinder XBL
// binding can't fire trusted ones (runs with page privileges). // binding can't fire trusted ones (runs with page privileges).
@ -912,9 +923,6 @@ function delayedStartup()
os.addObserver(gSessionHistoryObserver, "browser:purge-session-history", false); os.addObserver(gSessionHistoryObserver, "browser:purge-session-history", false);
os.addObserver(gXPInstallObserver, "xpinstall-install-blocked", false); os.addObserver(gXPInstallObserver, "xpinstall-install-blocked", false);
if (!gPrefService)
gPrefService = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch2);
BrowserOffline.init(); BrowserOffline.init();
OfflineApps.init(); OfflineApps.init();
@ -946,9 +954,8 @@ function delayedStartup()
else else
focusElement(content); focusElement(content);
var navToolbox = getNavToolbox(); gNavToolbox.customizeDone = BrowserToolboxCustomizeDone;
navToolbox.customizeDone = BrowserToolboxCustomizeDone; gNavToolbox.customizeChange = BrowserToolboxCustomizeChange;
navToolbox.customizeChange = BrowserToolboxCustomizeChange;
// Set up Sanitize Item // Set up Sanitize Item
gSanitizeListener = new SanitizeListener(); gSanitizeListener = new SanitizeListener();
@ -1209,17 +1216,12 @@ function nonBrowserWindowStartup()
element.setAttribute("hidden", "true"); element.setAttribute("hidden", "true");
} }
gNavigatorBundle = document.getElementById("bundle_browser");
setTimeout(nonBrowserWindowDelayedStartup, 0); setTimeout(nonBrowserWindowDelayedStartup, 0);
} }
function nonBrowserWindowDelayedStartup() function nonBrowserWindowDelayedStartup()
{ {
// init global pref service
gPrefService = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch2);
// initialise the offline listener // initialise the offline listener
BrowserOffline.init(); BrowserOffline.init();
@ -1337,7 +1339,7 @@ function gotoHistoryIndex(aEvent)
// Normal click. Go there in the current tab and update session history. // Normal click. Go there in the current tab and update session history.
try { try {
getBrowser().gotoIndex(index); gBrowser.gotoIndex(index);
} }
catch(ex) { catch(ex) {
return false; return false;
@ -1362,7 +1364,7 @@ function BrowserForward(aEvent, aIgnoreAlt)
if (where == "current") { if (where == "current") {
try { try {
getBrowser().goForward(); gBrowser.goForward();
} }
catch(ex) { catch(ex) {
} }
@ -1382,7 +1384,7 @@ function BrowserBack(aEvent, aIgnoreAlt)
if (where == "current") { if (where == "current") {
try { try {
getBrowser().goBack(); gBrowser.goBack();
} }
catch(ex) { catch(ex) {
} }
@ -1653,7 +1655,7 @@ function loadURI(uri, referrer, postData, allowThirdPartyFixup)
if (allowThirdPartyFixup) { if (allowThirdPartyFixup) {
flags = nsIWebNavigation.LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP; flags = nsIWebNavigation.LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP;
} }
getBrowser().loadURIWithFlags(uri, flags, referrer, null, postData); gBrowser.loadURIWithFlags(uri, flags, referrer, null, postData);
} catch (e) { } catch (e) {
} }
} }
@ -1934,7 +1936,7 @@ function checkForDirectoryListing()
} }
function URLBarSetURI(aURI) { function URLBarSetURI(aURI) {
var value = getBrowser().userTypedValue; var value = gBrowser.userTypedValue;
var state = "invalid"; var state = "invalid";
if (!value) { if (!value) {
@ -2399,7 +2401,7 @@ function toggleAffectedChrome(aHide)
// (*) find bar // (*) find bar
// (*) statusbar // (*) statusbar
getNavToolbox().hidden = aHide; gNavToolbox.hidden = aHide;
if (aHide) if (aHide)
{ {
gChromeState = {}; gChromeState = {};
@ -2460,7 +2462,7 @@ function onExitPrintPreview()
function getPPBrowser() function getPPBrowser()
{ {
return getBrowser(); return gBrowser;
} }
function getMarkupDocumentViewer() function getMarkupDocumentViewer()
@ -2999,7 +3001,7 @@ const BrowserSearch = {
return; return;
if (useNewTab) { if (useNewTab) {
getBrowser().loadOneTab(submission.uri.spec, null, null, gBrowser.loadOneTab(submission.uri.spec, null, null,
submission.postData, null, false); submission.postData, null, false);
} else } else
loadURI(submission.uri.spec, null, submission.postData, false); loadURI(submission.uri.spec, null, submission.postData, false);
@ -3206,12 +3208,12 @@ function BrowserCustomizeToolbar()
// hidden // hidden
var sheetWidth = sheetFrame.style.width.match(/([0-9]+)px/)[1]; var sheetWidth = sheetFrame.style.width.match(/([0-9]+)px/)[1];
document.getElementById("customizeToolbarSheetPopup") document.getElementById("customizeToolbarSheetPopup")
.openPopup(getNavToolbox(), "after_start", (window.innerWidth - sheetWidth) / 2, 0); .openPopup(gNavToolbox, "after_start", (window.innerWidth - sheetWidth) / 2, 0);
#else #else
window.openDialog(customizeURL, window.openDialog(customizeURL,
"CustomizeToolbar", "CustomizeToolbar",
"chrome,all,dependent", "chrome,all,dependent",
getNavToolbox()); gNavToolbox);
#endif #endif
} }
@ -3405,7 +3407,7 @@ var FullScreen =
// The user may quit fullscreen during an animation // The user may quit fullscreen during an animation
clearInterval(this._animationInterval); clearInterval(this._animationInterval);
clearTimeout(this._animationTimeout); clearTimeout(this._animationTimeout);
getNavToolbox().style.marginTop = "0px"; gNavToolbox.style.marginTop = "0px";
if (this._isChromeCollapsed) if (this._isChromeCollapsed)
this.mouseoverToggle(true); this.mouseoverToggle(true);
this._isAnimating = false; this._isAnimating = false;
@ -3516,21 +3518,20 @@ var FullScreen =
return; return;
} }
var navToolbox = getNavToolbox();
var animateFrameAmount = 2; var animateFrameAmount = 2;
function animateUpFrame() { function animateUpFrame() {
animateFrameAmount *= 2; animateFrameAmount *= 2;
if (animateFrameAmount >= if (animateFrameAmount >=
(navToolbox.boxObject.height + gBrowser.mStrip.boxObject.height)) { (gNavToolbox.boxObject.height + gBrowser.mStrip.boxObject.height)) {
// We've animated enough // We've animated enough
clearInterval(FullScreen._animationInterval); clearInterval(FullScreen._animationInterval);
navToolbox.style.marginTop = "0px"; gNavToolbox.style.marginTop = "0px";
FullScreen._isAnimating = false; FullScreen._isAnimating = false;
FullScreen._shouldAnimate = false; // Just to make sure FullScreen._shouldAnimate = false; // Just to make sure
FullScreen.mouseoverToggle(false); FullScreen.mouseoverToggle(false);
return; return;
} }
navToolbox.style.marginTop = (animateFrameAmount * -1) + "px"; gNavToolbox.style.marginTop = (animateFrameAmount * -1) + "px";
} }
FullScreen._animationInterval = setInterval(animateUpFrame, 70); FullScreen._animationInterval = setInterval(animateUpFrame, 70);
@ -3638,11 +3639,10 @@ var FullScreen =
} }
} }
var toolbox = getNavToolbox();
if (aShow) if (aShow)
toolbox.removeAttribute("inFullscreen"); gNavToolbox.removeAttribute("inFullscreen");
else else
toolbox.setAttribute("inFullscreen", true); gNavToolbox.setAttribute("inFullscreen", true);
#ifndef XP_MACOSX #ifndef XP_MACOSX
var controls = document.getElementsByAttribute("fullscreencontrol", "true"); var controls = document.getElementsByAttribute("fullscreencontrol", "true");
@ -3714,7 +3714,7 @@ nsBrowserStatusHandler.prototype =
// Initialize the security button's state and tooltip text. Remember to reset // Initialize the security button's state and tooltip text. Remember to reset
// _hostChanged, otherwise onSecurityChange will short circuit. // _hostChanged, otherwise onSecurityChange will short circuit.
var securityUI = getBrowser().securityUI; var securityUI = gBrowser.securityUI;
this._hostChanged = true; this._hostChanged = true;
this.onSecurityChange(null, null, securityUI.state); this.onSecurityChange(null, null, securityUI.state);
}, },
@ -3860,7 +3860,7 @@ nsBrowserStatusHandler.prototype =
// For keyword URIs clear the user typed value since they will be changed into real URIs // For keyword URIs clear the user typed value since they will be changed into real URIs
if (location.scheme == "keyword" && aWebProgress.DOMWindow == content) if (location.scheme == "keyword" && aWebProgress.DOMWindow == content)
getBrowser().userTypedValue = null; gBrowser.userTypedValue = null;
if (location.spec != "about:blank") { if (location.spec != "about:blank") {
const kErrorBindingAborted = 0x804B0002; const kErrorBindingAborted = 0x804B0002;
@ -3937,7 +3937,7 @@ nsBrowserStatusHandler.prototype =
// <a href="#" onclick="return install();">Install Foo</a> // <a href="#" onclick="return install();">Install Foo</a>
// //
// - which fires a onLocationChange message to uri + '#'... // - which fires a onLocationChange message to uri + '#'...
var selectedBrowser = getBrowser().selectedBrowser; var selectedBrowser = gBrowser.selectedBrowser;
if (selectedBrowser.lastURI) { if (selectedBrowser.lastURI) {
var oldSpec = selectedBrowser.lastURI.spec; var oldSpec = selectedBrowser.lastURI.spec;
var oldIndexOfHash = oldSpec.indexOf("#"); var oldIndexOfHash = oldSpec.indexOf("#");
@ -3969,7 +3969,7 @@ nsBrowserStatusHandler.prototype =
// Update urlbar only if a new page was loaded on the primary content area // Update urlbar only if a new page was loaded on the primary content area
// Do not update urlbar if there was a subframe navigation // Do not update urlbar if there was a subframe navigation
var browser = getBrowser().selectedBrowser; var browser = gBrowser.selectedBrowser;
if (aWebProgress.DOMWindow == content) { if (aWebProgress.DOMWindow == content) {
if ((location == "about:blank" && !content.opener) || if ((location == "about:blank" && !content.opener) ||
@ -4271,10 +4271,6 @@ nsBrowserAccess.prototype =
return null; return null;
} }
if (!gPrefService)
gPrefService = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch2);
var loadflags = isExternal ? var loadflags = isExternal ?
Ci.nsIWebNavigation.LOAD_FLAGS_FROM_EXTERNAL : Ci.nsIWebNavigation.LOAD_FLAGS_FROM_EXTERNAL :
Ci.nsIWebNavigation.LOAD_FLAGS_NONE; Ci.nsIWebNavigation.LOAD_FLAGS_NONE;
@ -4431,9 +4427,8 @@ function onViewToolbarsPopupShowing(aEvent)
var firstMenuItem = popup.firstChild; var firstMenuItem = popup.firstChild;
var toolbox = getNavToolbox(); for (i = 0; i < gNavToolbox.childNodes.length; ++i) {
for (i = 0; i < toolbox.childNodes.length; ++i) { var toolbar = gNavToolbox.childNodes[i];
var toolbar = toolbox.childNodes[i];
var toolbarName = toolbar.getAttribute("toolbarname"); var toolbarName = toolbar.getAttribute("toolbarname");
var type = toolbar.getAttribute("type"); var type = toolbar.getAttribute("type");
if (toolbarName && type != "menubar") { if (toolbarName && type != "menubar") {
@ -4453,9 +4448,8 @@ function onViewToolbarsPopupShowing(aEvent)
function onViewToolbarCommand(aEvent) function onViewToolbarCommand(aEvent)
{ {
var toolbox = getNavToolbox();
var index = aEvent.originalTarget.getAttribute("toolbarindex"); var index = aEvent.originalTarget.getAttribute("toolbarindex");
var toolbar = toolbox.childNodes[index]; var toolbar = gNavToolbox.childNodes[index];
toolbar.collapsed = aEvent.originalTarget.getAttribute("checked") != "true"; toolbar.collapsed = aEvent.originalTarget.getAttribute("checked") != "true";
document.persist(toolbar.id, "collapsed"); document.persist(toolbar.id, "collapsed");
@ -4960,20 +4954,6 @@ var contentAreaDNDObserver = {
}; };
function getBrowser()
{
if (!gBrowser)
gBrowser = document.getElementById("content");
return gBrowser;
}
function getNavToolbox()
{
if (!gNavToolbox)
gNavToolbox = document.getElementById("navigator-toolbox");
return gNavToolbox;
}
function MultiplexHandler(event) function MultiplexHandler(event)
{ try { { try {
var node = event.target; var node = event.target;
@ -5030,8 +5010,7 @@ function SetForcedCharset(charset)
function BrowserSetForcedCharacterSet(aCharset) function BrowserSetForcedCharacterSet(aCharset)
{ {
var docCharset = getBrowser().docShell.QueryInterface( var docCharset = gBrowser.docShell.QueryInterface(Ci.nsIDocCharset);
Components.interfaces.nsIDocCharset);
docCharset.charset = aCharset; docCharset.charset = aCharset;
// Save the forced character-set // Save the forced character-set
PlacesUtils.history.setCharsetForURI(getWebNavigation().currentURI, aCharset); PlacesUtils.history.setCharsetForURI(getWebNavigation().currentURI, aCharset);
@ -5040,7 +5019,7 @@ function BrowserSetForcedCharacterSet(aCharset)
function BrowserSetForcedDetector(doReload) function BrowserSetForcedDetector(doReload)
{ {
getBrowser().documentCharsetInfo.forcedDetector = true; gBrowser.documentCharsetInfo.forcedDetector = true;
if (doReload) if (doReload)
BrowserReloadWithFlags(nsIWebNavigation.LOAD_FLAGS_CHARSET_CHANGE); BrowserReloadWithFlags(nsIWebNavigation.LOAD_FLAGS_CHARSET_CHANGE);
} }
@ -5406,7 +5385,7 @@ var OfflineApps = {
return gBrowser.mCurrentBrowser; return gBrowser.mCurrentBrowser;
} }
var browsers = getBrowser().browsers; var browsers = gBrowser.browsers;
for (var i = 0; i < browsers.length; ++i) { for (var i = 0; i < browsers.length; ++i) {
uri = this._getManifestURI(browsers[i].contentWindow); uri = this._getManifestURI(browsers[i].contentWindow);
if (uri && uri.equals(aCacheUpdate.manifestURI)) { if (uri && uri.equals(aCacheUpdate.manifestURI)) {
@ -5615,13 +5594,12 @@ var OfflineApps = {
function WindowIsClosing() function WindowIsClosing()
{ {
var browser = getBrowser(); var cn = gBrowser.tabContainer.childNodes;
var cn = browser.tabContainer.childNodes;
var numtabs = cn.length; var numtabs = cn.length;
var reallyClose = true; var reallyClose = true;
for (var i = 0; reallyClose && i < numtabs; ++i) { for (var i = 0; reallyClose && i < numtabs; ++i) {
var ds = browser.getBrowserForTab(cn[i]).docShell; var ds = gBrowser.getBrowserForTab(cn[i]).docShell;
if (ds.contentViewer && !ds.contentViewer.permitUnload()) if (ds.contentViewer && !ds.contentViewer.permitUnload())
reallyClose = false; reallyClose = false;
@ -5635,7 +5613,7 @@ function WindowIsClosing()
// up another dialog so we don't need to.) // up another dialog so we don't need to.)
return closeWindow(false, return closeWindow(false,
function () { function () {
return browser.warnAboutClosingTabs(true); return gBrowser.warnAboutClosingTabs(true);
}); });
} }
@ -5804,7 +5782,6 @@ function getPluginInfo(pluginElement)
} }
missingPluginInstaller.prototype.installSinglePlugin = function(aEvent){ missingPluginInstaller.prototype.installSinglePlugin = function(aEvent){
var tabbrowser = getBrowser();
var missingPluginsArray = {}; var missingPluginsArray = {};
var pluginInfo = getPluginInfo(aEvent.target); var pluginInfo = getPluginInfo(aEvent.target);
@ -5813,7 +5790,7 @@ missingPluginInstaller.prototype.installSinglePlugin = function(aEvent){
if (missingPluginsArray) { if (missingPluginsArray) {
window.openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul", window.openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul",
"PFSWindow", "chrome,centerscreen,resizable=yes", "PFSWindow", "chrome,centerscreen,resizable=yes",
{plugins: missingPluginsArray, browser: tabbrowser.selectedBrowser}); {plugins: missingPluginsArray, browser: gBrowser.selectedBrowser});
} }
aEvent.preventDefault(); aEvent.preventDefault();
@ -5842,18 +5819,17 @@ missingPluginInstaller.prototype.newMissingPlugin = function(aEvent){
return; return;
} catch (ex) {} // if the pref is missing, treat it as false, which shows the infobar } catch (ex) {} // if the pref is missing, treat it as false, which shows the infobar
var tabbrowser = getBrowser(); const browsers = gBrowser.mPanelContainer.childNodes;
const browsers = tabbrowser.mPanelContainer.childNodes;
var contentWindow = aEvent.target.ownerDocument.defaultView.top; var contentWindow = aEvent.target.ownerDocument.defaultView.top;
var i = 0; var i = 0;
for (; i < browsers.length; i++) { for (; i < browsers.length; i++) {
if (tabbrowser.getBrowserAtIndex(i).contentWindow == contentWindow) if (gBrowser.getBrowserAtIndex(i).contentWindow == contentWindow)
break; break;
} }
var browser = tabbrowser.getBrowserAtIndex(i); var browser = gBrowser.getBrowserAtIndex(i);
if (!browser.missingPlugins) if (!browser.missingPlugins)
browser.missingPlugins = {}; browser.missingPlugins = {};
@ -5935,12 +5911,11 @@ function blocklistInfo()
function pluginsMissing() function pluginsMissing()
{ {
// get the urls of missing plugins // get the urls of missing plugins
var tabbrowser = getBrowser(); var missingPluginsArray = gBrowser.selectedBrowser.missingPlugins;
var missingPluginsArray = tabbrowser.selectedBrowser.missingPlugins;
if (missingPluginsArray) { if (missingPluginsArray) {
window.openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul", window.openDialog("chrome://mozapps/content/plugins/pluginInstallerWizard.xul",
"PFSWindow", "chrome,centerscreen,resizable=yes", "PFSWindow", "chrome,centerscreen,resizable=yes",
{plugins: missingPluginsArray, browser: tabbrowser.selectedBrowser}); {plugins: missingPluginsArray, browser: gBrowser.selectedBrowser});
} }
} }
@ -6223,7 +6198,7 @@ function undoCloseMiddleClick(aEvent) {
return; return;
undoCloseTab(aEvent.originalTarget.value); undoCloseTab(aEvent.originalTarget.value);
getBrowser().moveTabToEnd(); gBrowser.moveTabToEnd();
} }
/** /**
@ -6233,15 +6208,14 @@ function undoCloseMiddleClick(aEvent) {
*/ */
function undoCloseTab(aIndex) { function undoCloseTab(aIndex) {
// wallpaper patch to prevent an unnecessary blank tab (bug 343895) // wallpaper patch to prevent an unnecessary blank tab (bug 343895)
var tabbrowser = getBrowser();
var blankTabToRemove = null; var blankTabToRemove = null;
if (tabbrowser.tabContainer.childNodes.length == 1 && if (gBrowser.tabContainer.childNodes.length == 1 &&
!gPrefService.getBoolPref("browser.tabs.autoHide") && !gPrefService.getBoolPref("browser.tabs.autoHide") &&
tabbrowser.selectedBrowser.sessionHistory.count < 2 && gBrowser.selectedBrowser.sessionHistory.count < 2 &&
tabbrowser.selectedBrowser.currentURI.spec == "about:blank" && gBrowser.selectedBrowser.currentURI.spec == "about:blank" &&
!tabbrowser.selectedBrowser.contentDocument.body.hasChildNodes() && !gBrowser.selectedBrowser.contentDocument.body.hasChildNodes() &&
!tabbrowser.selectedTab.hasAttribute("busy")) !gBrowser.selectedTab.hasAttribute("busy"))
blankTabToRemove = tabbrowser.selectedTab; blankTabToRemove = gBrowser.selectedTab;
var ss = Cc["@mozilla.org/browser/sessionstore;1"]. var ss = Cc["@mozilla.org/browser/sessionstore;1"].
getService(Ci.nsISessionStore); getService(Ci.nsISessionStore);
@ -6250,7 +6224,7 @@ function undoCloseTab(aIndex) {
ss.undoCloseTab(window, aIndex || 0); ss.undoCloseTab(window, aIndex || 0);
if (blankTabToRemove) if (blankTabToRemove)
tabbrowser.removeTab(blankTabToRemove); gBrowser.removeTab(blankTabToRemove);
} }
/** /**
@ -6762,3 +6736,7 @@ let DownloadMonitorPanel = {
QueryInterface: XPCOMUtils.generateQI([Ci.nsIDownloadProgressListener]), QueryInterface: XPCOMUtils.generateQI([Ci.nsIDownloadProgressListener]),
}; };
/* DEPRECATED */
function getBrowser() gBrowser;
function getNavToolbox() gNavToolbox;

View File

@ -104,10 +104,14 @@
<!-- for url bar autocomplete --> <!-- for url bar autocomplete -->
<panel type="autocomplete-richlistbox" chromedir="&locale.dir;" id="PopupAutoCompleteRichResult" noautofocus="true" hidden="true"/> <panel type="autocomplete-richlistbox" chromedir="&locale.dir;" id="PopupAutoCompleteRichResult" noautofocus="true" hidden="true"/>
<!-- XXX panel element that has one or more text fields should not be
top-most panel, for IME users. See bug 433340 comment 100. -->
<panel id="editBookmarkPanel" <panel id="editBookmarkPanel"
orient="vertical" orient="vertical"
ignorekeys="true" ignorekeys="true"
hidden="true" hidden="true"
noautohide="true"
onpopupshowing="this.removeAttribute('noautohide');"
onpopupshown="StarUI.panelShown(event);" onpopupshown="StarUI.panelShown(event);"
aria-labelledby="editBookmarkPanelTitle"> aria-labelledby="editBookmarkPanelTitle">
<hbox flex="1" align="top"> <hbox flex="1" align="top">

View File

@ -1189,6 +1189,8 @@ nsContextMenu.prototype = {
[engineName, [engineName,
selectedText]); selectedText]);
document.getElementById("context-searchselect").label = menuLabel; document.getElementById("context-searchselect").label = menuLabel;
document.getElementById("context-searchselect").accessKey =
gNavigatorBundle.getString("contextMenuSearchText.accesskey");
return true; return true;
}, },

View File

@ -70,11 +70,11 @@
<script type="application/x-javascript" src="chrome://browser/content/pageinfo/feeds.js"/> <script type="application/x-javascript" src="chrome://browser/content/pageinfo/feeds.js"/>
<script type="application/x-javascript" src="chrome://browser/content/pageinfo/permissions.js"/> <script type="application/x-javascript" src="chrome://browser/content/pageinfo/permissions.js"/>
<script type="application/x-javascript" src="chrome://browser/content/pageinfo/security.js"/> <script type="application/x-javascript" src="chrome://browser/content/pageinfo/security.js"/>
<script type="application/x-javascript" src="chrome://global/content/strres.js"/>
<script type="application/x-javascript" src="chrome://browser/content/utilityOverlay.js"/> <script type="application/x-javascript" src="chrome://browser/content/utilityOverlay.js"/>
<stringbundleset id="pageinfobundleset"> <stringbundleset id="pageinfobundleset">
<stringbundle id="pageinfobundle" src="chrome://browser/locale/pageInfo.properties"/> <stringbundle id="pageinfobundle" src="chrome://browser/locale/pageInfo.properties"/>
<stringbundle id="pkiBundle" src="chrome://pippki/locale/pippki.properties"/>
</stringbundleset> </stringbundleset>
<commandset id="pageInfoCommandSet"> <commandset id="pageInfoCommandSet">

View File

@ -186,9 +186,6 @@ var security = {
}; };
function securityOnLoad() { function securityOnLoad() {
var bundle = srGetStrBundle("chrome://pippki/locale/pippki.properties");
var pageInfoBundle = document.getElementById("pageinfobundle");
var info = security._getSecurityInfo(); var info = security._getSecurityInfo();
if (!info) { if (!info) {
document.getElementById("securityTab").hidden = true; document.getElementById("securityTab").hidden = true;
@ -200,6 +197,8 @@ function securityOnLoad() {
document.getElementById("securityBox").collapsed = false; document.getElementById("securityBox").collapsed = false;
} }
const pageInfoBundle = document.getElementById("pageinfobundle");
/* Set Identity section text */ /* Set Identity section text */
setText("security-identity-domain-value", info.hostName); setText("security-identity-domain-value", info.hostName);
@ -273,35 +272,36 @@ function securityOnLoad() {
} }
/* Set the Technical Detail section messages */ /* Set the Technical Detail section messages */
const pkiBundle = document.getElementById("pkiBundle");
var hdr; var hdr;
var msg1; var msg1;
var msg2; var msg2;
if (info.isBroken) { if (info.isBroken) {
hdr = bundle.GetStringFromName("pageInfo_MixedContent"); hdr = pkiBundle.getString("pageInfo_MixedContent");
msg1 = bundle.GetStringFromName("pageInfo_Privacy_Mixed1"); msg1 = pkiBundle.getString("pageInfo_Privacy_Mixed1");
msg2 = bundle.GetStringFromName("pageInfo_Privacy_None2"); msg2 = pkiBundle.getString("pageInfo_Privacy_None2");
} }
else if (info.encryptionStrength >= 90) { else if (info.encryptionStrength >= 90) {
hdr = bundle.formatStringFromName("pageInfo_StrongEncryption", hdr = pkiBundle.getFormattedString("pageInfo_StrongEncryption",
[ info.encryptionAlgorithm, info.encryptionStrength + "" ], 2); [info.encryptionAlgorithm, info.encryptionStrength + ""]);
msg1 = bundle.GetStringFromName("pageInfo_Privacy_Strong1"); msg1 = pkiBundle.getString("pageInfo_Privacy_Strong1");
msg2 = bundle.GetStringFromName("pageInfo_Privacy_Strong2"); msg2 = pkiBundle.getString("pageInfo_Privacy_Strong2");
security._cert = info.cert; security._cert = info.cert;
} }
else if (info.encryptionStrength > 0) { else if (info.encryptionStrength > 0) {
hdr = bundle.formatStringFromName("pageInfo_WeakEncryption", hdr = pkiBundle.getFormattedString("pageInfo_WeakEncryption",
[ info.encryptionAlgorithm, info.encryptionStrength + "" ], 2); [info.encryptionAlgorithm, info.encryptionStrength + ""]);
msg1 = bundle.formatStringFromName("pageInfo_Privacy_Weak1", [ info.hostName ], 1); msg1 = pkiBundle.getFormattedString("pageInfo_Privacy_Weak1", [info.hostName]);
msg2 = bundle.GetStringFromName("pageInfo_Privacy_Weak2"); msg2 = pkiBundle.getString("pageInfo_Privacy_Weak2");
} }
else { else {
hdr = bundle.GetStringFromName("pageInfo_NoEncryption"); hdr = pkiBundle.getString("pageInfo_NoEncryption");
if (info.hostName != null) if (info.hostName != null)
msg1 = bundle.formatStringFromName("pageInfo_Privacy_None1", [ info.hostName ], 1); msg1 = pkiBundle.getFormattedString("pageInfo_Privacy_None1", [info.hostName]);
else else
msg1 = bundle.GetStringFromName("pageInfo_Privacy_None3"); msg1 = pkiBundle.getString("pageInfo_Privacy_None3");
msg2 = bundle.GetStringFromName("pageInfo_Privacy_None2"); msg2 = pkiBundle.getString("pageInfo_Privacy_None2");
} }
setText("security-technical-shortform", hdr); setText("security-technical-shortform", hdr);
setText("security-technical-longform1", msg1); setText("security-technical-longform1", msg1);

View File

@ -278,7 +278,6 @@
mTab: aTab, mTab: aTab,
mBrowser: aBrowser, mBrowser: aBrowser,
mBlank: aStartsBlank, mBlank: aStartsBlank,
mLastURI: null,
// cache flags for correct status bar update after tab switching // cache flags for correct status bar update after tab switching
mStateFlags: 0, mStateFlags: 0,
@ -1389,6 +1388,18 @@
<method name="removeTab"> <method name="removeTab">
<parameter name="aTab"/> <parameter name="aTab"/>
<body>
<![CDATA[
this._endRemoveTab(this._beginRemoveTab(aTab, true));
]]>
</body>
</method>
<!-- Returns the tab being removed. This might not be the same as aTab,
in cases when aTab is not actually a tab -->
<method name="_beginRemoveTab">
<parameter name="aTab"/>
<parameter name="aFireBeforeUnload"/>
<body> <body>
<![CDATA[ <![CDATA[
this._browsers = null; // invalidate cache this._browsers = null; // invalidate cache
@ -1403,9 +1414,11 @@
return; return;
} }
if (aFireBeforeUnload) {
var ds = this.getBrowserForTab(aTab).docShell; var ds = this.getBrowserForTab(aTab).docShell;
if (ds.contentViewer && !ds.contentViewer.permitUnload()) if (ds.contentViewer && !ds.contentViewer.permitUnload())
return; return;
}
// see notes in addTab // see notes in addTab
var _delayedUpdate = function(aTabContainer) { var _delayedUpdate = function(aTabContainer) {
@ -1435,15 +1448,7 @@
evt.initEvent("TabClose", true, false); evt.initEvent("TabClose", true, false);
aTab.dispatchEvent(evt); aTab.dispatchEvent(evt);
var index = -1; var index = aTab._tPos;
if (this.mCurrentTab == aTab)
index = this.mTabContainer.selectedIndex;
else {
// Find and locate the tab in our list.
for (var i = 0; i < l; i++)
if (this.mTabContainer.childNodes[i] == aTab)
index = i;
}
// Remove the tab's filter and progress listener. // Remove the tab's filter and progress listener.
const filter = this.mTabFilters[index]; const filter = this.mTabFilters[index];
@ -1459,22 +1464,34 @@
// We are no longer the primary content area. // We are no longer the primary content area.
oldBrowser.setAttribute("type", "content-targetable"); oldBrowser.setAttribute("type", "content-targetable");
// Get the index of the tab we're removing before unselecting it
var currentIndex = this.mTabContainer.selectedIndex;
var oldTab = aTab;
// clean up the before/afterselected attributes before removing the tab
oldTab._selected = false;
// Remove this tab as the owner of any other tabs, since it's going away. // Remove this tab as the owner of any other tabs, since it's going away.
for (i = 0; i < this.mTabContainer.childNodes.length; ++i) { for (var i = 0; i < this.mTabs.length; ++i) {
var tab = this.mTabContainer.childNodes[i]; var tab = this.mTabContainer.childNodes[i];
if ("owner" in tab && tab.owner == oldTab) if ("owner" in tab && tab.owner == aTab)
// |tab| is a child of the tab we're removing, make it an orphan // |tab| is a child of the tab we're removing, make it an orphan
tab.owner = null; tab.owner = null;
} }
return aTab;
]]>
</body>
</method>
<method name="_endRemoveTab">
<parameter name="aTab"/>
<body>
<![CDATA[
var browser = this.getBrowserForTab(aTab);
var length = this.mTabs.length;
// Get the index of the tab we're removing before unselecting it
var currentIndex = this.mTabContainer.selectedIndex;
var index = aTab._tPos;
// clean up the before/afterselected attributes before removing the
// tab. But make sure this happens after we grab currentIndex.
aTab._selected = false;
// Because of the way XBL works (fields just set JS // Because of the way XBL works (fields just set JS
// properties on the element) and the code we have in place // properties on the element) and the code we have in place
// to preserve the JS objects for any elements that have // to preserve the JS objects for any elements that have
@ -1485,16 +1502,18 @@
// XBL implementation of nsIObserver still works. But // XBL implementation of nsIObserver still works. But
// clearing focusedWindow happens below because it gets // clearing focusedWindow happens below because it gets
// reset by updateCurrentBrowser. // reset by updateCurrentBrowser.
oldBrowser.destroy(); browser.destroy();
if (oldBrowser == this.mCurrentBrowser) if (browser == this.mCurrentBrowser)
this.mCurrentBrowser = null; this.mCurrentBrowser = null;
// Remove the tab // Remove the tab
this.mTabContainer.removeChild(oldTab); this.mTabContainer.removeChild(aTab);
// Update our length
--length;
// invalidate cache, because mTabContainer is about to change // invalidate cache, because mTabContainer is about to change
this._browsers = null; this._browsers = null;
this.mPanelContainer.removeChild(oldBrowser.parentNode); this.mPanelContainer.removeChild(browser.parentNode);
try { try {
// if we're at the right side (and not the logical end, // if we're at the right side (and not the logical end,
@ -1523,24 +1542,24 @@
else if (currentIndex < index) else if (currentIndex < index)
newIndex = currentIndex; newIndex = currentIndex;
else { else {
if ("owner" in oldTab && oldTab.owner && if ("owner" in aTab && aTab.owner &&
this.mPrefs.getBoolPref("browser.tabs.selectOwnerOnClose")) { this.mPrefs.getBoolPref("browser.tabs.selectOwnerOnClose")) {
for (i = 0; i < this.mTabContainer.childNodes.length; ++i) { for (var i = 0; i < length; ++i) {
tab = this.mTabContainer.childNodes[i]; tab = this.mTabContainer.childNodes[i];
if (tab == oldTab.owner) { if (tab == aTab.owner) {
newIndex = i; newIndex = i;
break; break;
} }
} }
} }
if (newIndex == -1) if (newIndex == -1)
newIndex = (index == l - 1) ? index - 1 : index; newIndex = (index == length) ? index - 1 : index;
} }
// Select the new tab // Select the new tab
this.selectedTab = this.mTabContainer.childNodes[newIndex]; this.selectedTab = this.mTabs[newIndex];
for (i = oldTab._tPos; i < this.mTabContainer.childNodes.length; i++) { for (i = aTab._tPos; i < length; i++) {
this.mTabContainer.childNodes[i]._tPos = i; this.mTabContainer.childNodes[i]._tPos = i;
} }
this.mTabBox.selectedPanel = this.getBrowserForTab(this.mCurrentTab).parentNode; this.mTabBox.selectedPanel = this.getBrowserForTab(this.mCurrentTab).parentNode;
@ -1549,8 +1568,53 @@
this.updateCurrentBrowser(); this.updateCurrentBrowser();
// see comment above destroy above // see comment above destroy above
oldBrowser.focusedWindow = null; browser.focusedWindow = null;
oldBrowser.focusedElement = null; browser.focusedElement = null;
]]>
</body>
</method>
<method name="swapBrowsersAndCloseOther">
<parameter name="aOurTab"/>
<parameter name="aOtherTab"/>
<body>
<![CDATA[
var remoteBrowser =
aOtherTab.ownerDocument.defaultView.getBrowser();
var tabCount = remoteBrowser.mTabs.length;
// First, start teardown of the other browser. Make sure to not
// fire the beforeunload event in the process.
var tabToRemove = remoteBrowser._beginRemoveTab(aOtherTab, false);
// Unhook our progress listener
var ourIndex = aOurTab._tPos;
const filter = this.mTabFilters[ourIndex];
var tabListener = this.mTabListeners[ourIndex];
var ourBrowser = this.getBrowserForTab(aOurTab);
ourBrowser.webProgress.removeProgressListener(filter);
filter.removeProgressListener(tabListener);
var tabListenerBlank = tabListener.mBlank;
// Swap the docshells
ourBrowser.swapDocShells(remoteBrowser.getBrowserForTab(aOtherTab));
// Finish tearing down the tab that's going away.
remoteBrowser._endRemoveTab(tabToRemove);
// Restore the progress listener
tabListener = this.mTabProgressListener(aOurTab, ourBrowser,
tabListenerBlank);
this.mTabListeners[ourIndex] = tabListener;
filter.addProgressListener(tabListener,
Components.interfaces.nsIWebProgress.NOTIFY_ALL);
ourBrowser.webProgress.addProgressListener(filter,
Components.interfaces.nsIWebProgress.NOTIFY_ALL);
// close the other window if this was its last tab
if (tabCount == 1)
aOtherTab.ownerDocument.defaultView.close();
]]> ]]>
</body> </body>
</method> </method>
@ -1879,19 +1943,26 @@
} }
} }
else if (draggedTab) { else if (draggedTab) {
// copy the dropped tab and remove it from the other window // swap the dropped tab with a new one we create and then close
// (making it seem to have moved between windows) // it in the other window (making it seem to have moved between
// windows)
newIndex = this.getNewIndex(aEvent); newIndex = this.getNewIndex(aEvent);
newTab = this.duplicateTab(draggedTab); newTab = this.addTab("about:blank");
this.moveTabTo(newTab, newIndex); var newBrowser = this.getBrowserForTab(newTab);
this.selectedTab = newTab; // Stop the about:blank load
newBrowser.stop();
// make sure it has a docshell
newBrowser.docShell;
var remoteBrowser = draggedTab.ownerDocument.defaultView.getBrowser(); this.moveTabTo(newTab, newIndex);
var tabCount = remoteBrowser.tabContainer.childNodes.length;
remoteBrowser.removeTab(draggedTab); this.swapBrowsersAndCloseOther(newTab, draggedTab);
// close the other window if this was its last tab
if (tabCount == 1) // We need to set selectedTab after we've done
draggedTab.ownerDocument.defaultView.close(); // swapBrowsersAndCloseOther, so that the updateCurrentBrowser
// it triggers will correctly update our URL bar.
this.selectedTab = newTab;
this.setTabTitle(newTab);
} }
else { else {
var url = transferUtils.retrieveURLFromData(aXferData.data, aXferData.flavour.contentType); var url = transferUtils.retrieveURLFromData(aXferData.data, aXferData.flavour.contentType);

View File

@ -59,6 +59,8 @@ _BROWSER_FILES = browser_bug321000.js \
autodiscovery.html \ autodiscovery.html \
moz.png \ moz.png \
browser_getshortcutoruri.js \ browser_getshortcutoruri.js \
browser_page_style_menu.js \
page_style_sample.html \
$(NULL) $(NULL)
ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))

View File

@ -8,6 +8,7 @@ function test() {
} }
function delayedOpenUrl() { function delayedOpenUrl() {
ok(true, "Ran delayedOpenUrl");
setTimeout(openPanelUrl, 100); setTimeout(openPanelUrl, 100);
} }
@ -26,6 +27,7 @@ function openPanelUrl(event) {
} }
function delayedRunTest() { function delayedRunTest() {
ok(true, "Ran delayedRunTest");
setTimeout(runTest, 100); setTimeout(runTest, 100);
} }

View File

@ -0,0 +1,66 @@
function test() {
waitForExplicitFinish();
finish();
return;
var tab = gBrowser.addTab();
gBrowser.selectedTab = tab;
tab.linkedBrowser.addEventListener("load", checkPageStyleMenu, true);
content.location =
"chrome://mochikit/content/browser/browser/base/content/test/page_style_sample.html";
}
function checkPageStyleMenu() {
var menupopup = document.getElementById("pageStyleMenu")
.getElementsByTagName("menupopup")[0];
stylesheetFillPopup(menupopup);
var items = [];
var current = menupopup.getElementsByTagName("menuseparator")[0];
while (current.nextSibling) {
current = current.nextSibling;
items.push(current);
}
var validLinks = 0;
Array.forEach(content.document.getElementsByTagName("link"), function (link) {
var title = link.getAttribute("title");
var rel = link.getAttribute("rel");
var media = link.getAttribute("media");
var idstring = "link " + (title ? title : "without title and") +
" with rel=\"" + rel + "\"" +
(media ? " and media=\"" + media + "\"" : "");
var item = items.filter(function (item) item.label == title);
var found = item.length == 1;
var checked = found && (item[0].getAttribute("checked") == "true");
switch (link.getAttribute("data-state")) {
case "0":
ok(!found, idstring + " does not show up in page style menu");
break;
case "0-todo":
validLinks++;
todo(!found, idstring + " should not show up in page style menu");
ok(!checked, idstring + " is not selected");
break;
case "1":
validLinks++;
ok(found, idstring + " shows up in page style menu");
ok(!checked, idstring + " is not selected");
break;
case "2":
validLinks++;
ok(found, idstring + " shows up in page style menu");
ok(checked, idstring + " is selected");
break;
default:
throw "data-state attribute is missing or has invalid value";
}
});
is(validLinks, items.length, "all valid links found");
gBrowser.removeCurrentTab();
finish();
}

View File

@ -0,0 +1,31 @@
<html>
<head>
<title>Test for page style menu</title>
<!-- data-state values:
0: should not appear in the page style menu
0-todo: should not appear in the page style menu, but does
1: should appear in the page style menu
2: should appear in the page style menu as the selected stylesheet -->
<link data-state="1" href="404.css" title="1" rel="alternate stylesheet">
<link data-state="0" title="2" rel="alternate stylesheet">
<link data-state="0" href="404.css" rel="alternate stylesheet">
<link data-state="0" href="404.css" title="" rel="alternate stylesheet">
<link data-state="1" href="404.css" title="3" rel="stylesheet alternate">
<link data-state="1" href="404.css" title="4" rel=" alternate stylesheet ">
<link data-state="1" href="404.css" title="5" rel="alternate stylesheet">
<link data-state="2" href="404.css" title="6" rel="stylesheet">
<link data-state="1" href="404.css" title="7" rel="foo stylesheet">
<link data-state="0" href="404.css" title="8" rel="alternate">
<link data-state="1" href="404.css" title="9" rel="alternate STYLEsheet">
<link data-state="1" href="404.css" title="10" rel="alternate stylesheet" media="">
<link data-state="1" href="404.css" title="11" rel="alternate stylesheet" media="all">
<link data-state="1" href="404.css" title="12" rel="alternate stylesheet" media="ALL ">
<link data-state="1" href="404.css" title="13" rel="alternate stylesheet" media="screen">
<link data-state="1" href="404.css" title="14" rel="alternate stylesheet" media=" Screen">
<link data-state="1" href="404.css" title="15" rel="alternate stylesheet" media="screen foo">
<link data-state="1" href="404.css" title="16" rel="alternate stylesheet" media="all screen">
<link data-state="0-todo" href="404.css" title="17" rel="alternate stylesheet" media="allscreen">
<link data-state="0-todo" href="404.css" title="18" rel="alternate stylesheet" media="_all">
</head>
<body></body>
</html>

View File

@ -42,7 +42,6 @@
* for shared application glue for the Communicator suite of applications * for shared application glue for the Communicator suite of applications
**/ **/
var goPrefWindow = 0;
var gBidiUI = false; var gBidiUI = false;
function getBrowserURL() function getBrowserURL()

View File

@ -115,7 +115,6 @@ function load()
null, null); null, null);
} }
gNavigatorBundle = document.getElementById("bundle_browser");
gLoadFired = true; gLoadFired = true;
} }

View File

@ -15,6 +15,7 @@ browser.jar:
content/browser/aboutDialog.css (content/aboutDialog.css) content/browser/aboutDialog.css (content/aboutDialog.css)
* content/browser/aboutRobots.xhtml (content/aboutRobots.xhtml) * content/browser/aboutRobots.xhtml (content/aboutRobots.xhtml)
content/browser/aboutRobots-icon.png (content/aboutRobots-icon.png) content/browser/aboutRobots-icon.png (content/aboutRobots-icon.png)
content/browser/aboutRobots-icon-rtl.png (content/aboutRobots-icon-rtl.png)
content/browser/aboutRobots-widget-left.png (content/aboutRobots-widget-left.png) content/browser/aboutRobots-widget-left.png (content/aboutRobots-widget-left.png)
content/browser/aboutRobots-widget-right.png (content/aboutRobots-widget-right.png) content/browser/aboutRobots-widget-right.png (content/aboutRobots-widget-right.png)
* content/browser/browser.css (content/browser.css) * content/browser/browser.css (content/browser.css)

View File

@ -59,3 +59,14 @@ package:
install:: install::
@$(MAKE) -C browser/installer install @$(MAKE) -C browser/installer install
ifdef ENABLE_TESTS
# Implemented in testing/testsuite-targets.mk
mochitest-browser-chrome:
$(RUN_MOCHITEST) --browser-chrome
$(CHECK_TEST_ERROR)
mochitest:: mochitest-browser-chrome
.PHONY: mochitest-browser-chrome
endif

View File

@ -63,8 +63,7 @@
<hbox align="center"> <hbox align="center">
<label value="&search.label;" accesskey="&search.accesskey;" control="search-box"/> <label value="&search.label;" accesskey="&search.accesskey;" control="search-box"/>
<textbox id="search-box" flex="1" <textbox id="search-box" flex="1" type="search"
type="timed" timeout="500"
oncommand="searchBookmarks(this.value);"/> oncommand="searchBookmarks(this.value);"/>
</hbox> </hbox>

View File

@ -86,7 +86,7 @@
<hbox align="center"> <hbox align="center">
<label value="&find.label;" accesskey="&find.accesskey;" <label value="&find.label;" accesskey="&find.accesskey;"
control="search-box"/> control="search-box"/>
<textbox id="search-box" flex="1" type="timed" timeout="500" <textbox id="search-box" flex="1" type="search"
oncommand="searchHistory(this.value);"/> oncommand="searchHistory(this.value);"/>
<button id="viewButton" style="min-width:0px !important;" type="menu" <button id="viewButton" style="min-width:0px !important;" type="menu"
label="&view.label;" accesskey="&view.accesskey;" selectedsort="day" label="&view.label;" accesskey="&view.accesskey;" selectedsort="day"

View File

@ -902,12 +902,12 @@
<getter><![CDATA[ <getter><![CDATA[
// By default, the insertion point is at the top level, at the end. // By default, the insertion point is at the top level, at the end.
var index = PlacesUtils.bookmarks.DEFAULT_INDEX; var index = PlacesUtils.bookmarks.DEFAULT_INDEX;
var folderId = 0; var container = null;
var orientation = Ci.nsITreeView.DROP_BEFORE; var orientation = Ci.nsITreeView.DROP_BEFORE;
var isTag = false; var isTag = false;
if (PlacesUtils.nodeIsFolder(this._resultNode)) { if (PlacesUtils.nodeIsFolder(this._resultNode)) {
folderId = PlacesUtils.getConcreteItemId(this._resultNode); container = this._resultNode;
isTag = PlacesUtils.nodeIsTagQuery(this._resultNode); isTag = PlacesUtils.nodeIsTagQuery(this._resultNode);
} }
@ -917,20 +917,37 @@
if (!popupNode.node) { if (!popupNode.node) {
// If a static menuitem is selected the insertion point // If a static menuitem is selected the insertion point
// is inside the folder, at the end. // is inside the folder, at the end.
folderId = PlacesUtils.getConcreteItemId(selectedNode); container = selectedNode;
orientation = Ci.nsITreeView.DROP_ON; orientation = Ci.nsITreeView.DROP_ON;
} }
else { else {
// In all other cases the insertion point is before that node. // In all other cases the insertion point is before that node.
folderId = PlacesUtils.getConcreteItemId(selectedNode.parent); container = selectedNode.parent;
index = PlacesUtils.getIndexOfNode(selectedNode); index = PlacesUtils.getIndexOfNode(selectedNode);
isTag = PlacesUtils.nodeIsTagQuery(selectedNode.parent); isTag = PlacesUtils.nodeIsTagQuery(selectedNode.parent);
} }
} }
return new InsertionPoint(folderId, index, orientation, isTag);
if (this._disallowInsertion(container))
return null;
return new InsertionPoint(PlacesUtils.getConcreteItemId(container),
index, orientation, isTag);
]]></getter> ]]></getter>
</property> </property>
<method name="_disallowInsertion">
<parameter name="aContainer"/>
<body><![CDATA[
// allow dropping into Tag containers
if (PlacesUtils.nodeIsTagQuery(aContainer))
return false;
// Disallow insertion of items under readonly folders
return (!PlacesUtils.nodeIsFolder(aContainer) ||
PlacesUtils.nodeIsReadOnly(aContainer));
]]></body>
</method>
<!-- nsIPlacesView --> <!-- nsIPlacesView -->
<method name="selectAll"> <method name="selectAll">
<body/> <body/>

View File

@ -853,6 +853,10 @@ var PlacesSearchBox = {
//scopeBtn.label = PlacesOrganizer._places.selectedNode.title; //scopeBtn.label = PlacesOrganizer._places.selectedNode.title;
break; break;
case "bookmarks": case "bookmarks":
// Make sure we're getting uri results.
// We do not yet support searching into grouped queries or into
// tag containers, so we must fall to the default case.
currentOptions.resultType = currentOptions.RESULT_TYPE_URI;
content.applyFilter(filterString, content.applyFilter(filterString,
[PlacesUtils.bookmarksMenuFolderId, [PlacesUtils.bookmarksMenuFolderId,
PlacesUtils.toolbarFolderId, PlacesUtils.toolbarFolderId,

View File

@ -385,7 +385,7 @@
<getter><![CDATA[ <getter><![CDATA[
// By default, the insertion point is at the top level, at the end. // By default, the insertion point is at the top level, at the end.
var index = PlacesUtils.bookmarks.DEFAULT_INDEX; var index = PlacesUtils.bookmarks.DEFAULT_INDEX;
var folderId = PlacesUtils.getConcreteItemId(this._result.root); var container = this._result.root;
var orientation = Ci.nsITreeView.DROP_BEFORE; var orientation = Ci.nsITreeView.DROP_BEFORE;
var isTag = false; var isTag = false;
@ -395,20 +395,37 @@
if (!popupNode.node) { if (!popupNode.node) {
// If a static menuitem is selected the insertion point // If a static menuitem is selected the insertion point
// is inside the folder, at the end. // is inside the folder, at the end.
folderId = PlacesUtils.getConcreteItemId(selectedNode); container = selectedNode;
orientation = Ci.nsITreeView.DROP_ON; orientation = Ci.nsITreeView.DROP_ON;
} }
else { else {
// In all other cases the insertion point is before that node. // In all other cases the insertion point is before that node.
folderId = PlacesUtils.getConcreteItemId(selectedNode.parent); container = selectedNode.parent;
index = PlacesUtils.getIndexOfNode(selectedNode); index = PlacesUtils.getIndexOfNode(selectedNode);
isTag = PlacesUtils.nodeIsTagQuery(selectedNode.parent); isTag = PlacesUtils.nodeIsTagQuery(selectedNode.parent);
} }
} }
return new InsertionPoint(folderId, index, orientation, isTag);
if (this._disallowInsertion(container))
return null;
return new InsertionPoint(PlacesUtils.getConcreteItemId(container),
index, orientation, isTag);
]]></getter> ]]></getter>
</property> </property>
<method name="_disallowInsertion">
<parameter name="aContainer"/>
<body><![CDATA[
// allow dropping into Tag containers
if (PlacesUtils.nodeIsTagQuery(aContainer))
return false;
// Disallow insertion of items under readonly folders
return (!PlacesUtils.nodeIsFolder(aContainer) ||
PlacesUtils.nodeIsReadOnly(aContainer));
]]></body>
</method>
<!-- nsIPlacesView --> <!-- nsIPlacesView -->
<method name="selectAll"> <method name="selectAll">
<body><![CDATA[ <body><![CDATA[

View File

@ -939,6 +939,11 @@ PlacesTreeView.prototype = {
if (!node.parent) if (!node.parent)
return true; return true;
// Flat-lists may ignore expandQueries and other query options when
// they are asked to open a container.
if (this._flatList)
return true;
// treat non-expandable childless queries as non-containers // treat non-expandable childless queries as non-containers
if (PlacesUtils.nodeIsQuery(node)) { if (PlacesUtils.nodeIsQuery(node)) {
var parent = node.parent; var parent = node.parent;

View File

@ -897,14 +897,26 @@ placesSortFolderByNameTransactions.prototype = {
newOrder = newOrder.concat(preSep); newOrder = newOrder.concat(preSep);
} }
// set the nex indexs // set the nex indexes
for (var i = 0; i < count; ++i) var callback = {
runBatched: function() {
for (var i = 0; i < newOrder.length; ++i) {
PlacesUtils.bookmarks.setItemIndex(newOrder[i].itemId, i); PlacesUtils.bookmarks.setItemIndex(newOrder[i].itemId, i);
}
}
};
PlacesUtils.bookmarks.runInBatchMode(callback, null);
}, },
undoTransaction: function PSSFBN_undoTransaction() { undoTransaction: function PSSFBN_undoTransaction() {
for (item in this._oldOrder) var callback = {
PlacesUtils.bookmarks.setItemIndex(item, this._oldOrder[item]); _self: this,
runBatched: function() {
for (item in this._self._oldOrder)
PlacesUtils.bookmarks.setItemIndex(item, this._self._oldOrder[item]);
}
};
PlacesUtils.bookmarks.runInBatchMode(callback, null);
} }
}; };

View File

@ -1602,36 +1602,7 @@ var gApplicationsPane = {
* Filter the list when the user enters a filter term into the filter field. * Filter the list when the user enters a filter term into the filter field.
*/ */
filter: function() { filter: function() {
if (this._filter.value == "") {
this.clearFilter();
return;
}
this._rebuildView(); this._rebuildView();
document.getElementById("clearFilter").disabled = false;
},
_filterTimeout: null,
onFilterInput: function() {
if (this._filterTimeout)
clearTimeout(this._filterTimeout);
this._filterTimeout = setTimeout("gApplicationsPane.filter()", 500);
},
onFilterKeyPress: function(aEvent) {
if (aEvent.keyCode == KeyEvent.DOM_VK_ESCAPE)
this.clearFilter();
},
clearFilter: function() {
this._filter.value = "";
this._rebuildView();
this._filter.focus();
document.getElementById("clearFilter").disabled = true;
}, },
focusFilterBox: function() { focusFilterBox: function() {

View File

@ -110,12 +110,11 @@
<key key="&focusSearch2.key;" modifiers="accel" oncommand="gApplicationsPane.focusFilterBox();"/> <key key="&focusSearch2.key;" modifiers="accel" oncommand="gApplicationsPane.focusFilterBox();"/>
</keyset> </keyset>
<hbox align="center"> <hbox>
<label accesskey="&filter.accesskey;" control="filter">&filter.label;</label> <textbox id="filter" flex="1"
<textbox id="filter" flex="1" oninput="gApplicationsPane.onFilterInput();" type="search"
onkeypress="gApplicationsPane.onFilterKeyPress(event);"/> emptytext="&filter.emptytext;"
<button id="clearFilter" icon="clear" label="&clear.label;" accesskey="&clear.accesskey;" oncommand="gApplicationsPane.filter();"/>
oncommand="gApplicationsPane.clearFilter();" disabled="true"/>
</hbox> </hbox>
<separator class="thin"/> <separator class="thin"/>

View File

@ -163,6 +163,7 @@
<filefield id="downloadFolder" flex="1" <filefield id="downloadFolder" flex="1"
preference="browser.download.folderList" preference="browser.download.folderList"
preference-editable="true" preference-editable="true"
aria-labelledby="saveTo"
onsyncfrompreference="return gMainPane.displayDownloadDirPref();" onsyncfrompreference="return gMainPane.displayDownloadDirPref();"
onsynctopreference="return gMainPane.getFolderListPref()"/> onsynctopreference="return gMainPane.getFolderListPref()"/>
<button id="chooseFolder" oncommand="gMainPane.chooseFolder();" <button id="chooseFolder" oncommand="gMainPane.chooseFolder();"

View File

@ -228,10 +228,7 @@ SessionStoreService.prototype = {
this._initialState.session && this._initialState.session.state && this._initialState.session && this._initialState.session.state &&
this._initialState.session.state == STATE_RUNNING_STR; this._initialState.session.state == STATE_RUNNING_STR;
// restore the features of the first window from localstore.rdf // make sure that at least the first window doesn't have anything hidden
WINDOW_ATTRIBUTES.forEach(function(aAttr) {
delete this._initialState.windows[0][aAttr];
}, this);
delete this._initialState.windows[0].hidden; delete this._initialState.windows[0].hidden;
} }
catch (ex) { debug("The session file is invalid: " + ex); } catch (ex) { debug("The session file is invalid: " + ex); }

View File

@ -222,7 +222,7 @@ static SETTING gSettings[] = {
}; };
PRBool PRBool
nsWindowsShellService::IsDefaultBrowserVista(PRBool aStartupCheck, PRBool* aIsDefaultBrowser) nsWindowsShellService::IsDefaultBrowserVista(PRBool* aIsDefaultBrowser)
{ {
#if !defined(MOZ_DISABLE_VISTA_SDK_REQUIREMENTS) #if !defined(MOZ_DISABLE_VISTA_SDK_REQUIREMENTS)
IApplicationAssociationRegistration* pAAR; IApplicationAssociationRegistration* pAAR;
@ -238,12 +238,6 @@ nsWindowsShellService::IsDefaultBrowserVista(PRBool aStartupCheck, PRBool* aIsDe
APP_REG_NAME, APP_REG_NAME,
aIsDefaultBrowser); aIsDefaultBrowser);
// If this is the first browser window, maintain internal state that we've
// checked this session (so that subsequent window opens don't show the
// default browser dialog).
if (aStartupCheck)
mCheckedThisSession = PR_TRUE;
pAAR->Release(); pAAR->Release();
return PR_TRUE; return PR_TRUE;
} }
@ -316,7 +310,11 @@ nsWindowsShellService::IsDefaultBrowser(PRBool aStartupCheck,
::ZeroMemory(currValue, sizeof(currValue)); ::ZeroMemory(currValue, sizeof(currValue));
HKEY theKey; HKEY theKey;
rv = OpenKeyForReading(HKEY_CLASSES_ROOT, key, &theKey); rv = OpenKeyForReading(HKEY_CLASSES_ROOT, key, &theKey);
if (NS_SUCCEEDED(rv)) { if (NS_FAILED(rv)) {
*aIsDefaultBrowser = PR_FALSE;
return NS_OK;
}
DWORD len = sizeof currValue; DWORD len = sizeof currValue;
DWORD res = ::RegQueryValueExW(theKey, PromiseFlatString(value).get(), DWORD res = ::RegQueryValueExW(theKey, PromiseFlatString(value).get(),
NULL, NULL, (LPBYTE)currValue, &len); NULL, NULL, (LPBYTE)currValue, &len);
@ -325,17 +323,16 @@ nsWindowsShellService::IsDefaultBrowser(PRBool aStartupCheck,
if (REG_FAILED(res) || if (REG_FAILED(res) ||
!dataLongPath.Equals(currValue, CaseInsensitiveCompare) && !dataLongPath.Equals(currValue, CaseInsensitiveCompare) &&
!dataShortPath.Equals(currValue, CaseInsensitiveCompare)) { !dataShortPath.Equals(currValue, CaseInsensitiveCompare)) {
// Key wasn't set, or was set to something else (something else became the default browser) // Key wasn't set, or was set to something other than our registry entry
*aIsDefaultBrowser = PR_FALSE; *aIsDefaultBrowser = PR_FALSE;
return NS_OK; return NS_OK;
} }
} }
}
// Only check if Firefox is the default browser on Vista if the previous // Only check if Firefox is the default browser on Vista if the previous
// checks show that Firefox is the default browser. // checks show that Firefox is the default browser.
if (aIsDefaultBrowser) if (*aIsDefaultBrowser)
IsDefaultBrowserVista(aStartupCheck, aIsDefaultBrowser); IsDefaultBrowserVista(aIsDefaultBrowser);
return NS_OK; return NS_OK;
} }
@ -358,8 +355,8 @@ nsWindowsShellService::SetDefaultBrowser(PRBool aClaimAllTypes, PRBool aForAllUs
rv = appHelper->AppendNative(NS_LITERAL_CSTRING("helper.exe")); rv = appHelper->AppendNative(NS_LITERAL_CSTRING("helper.exe"));
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
nsCAutoString appHelperPath; nsAutoString appHelperPath;
rv = appHelper->GetNativePath(appHelperPath); rv = appHelper->GetPath(appHelperPath);
NS_ENSURE_SUCCESS(rv, rv); NS_ENSURE_SUCCESS(rv, rv);
if (aForAllUsers) { if (aForAllUsers) {
@ -368,10 +365,10 @@ nsWindowsShellService::SetDefaultBrowser(PRBool aClaimAllTypes, PRBool aForAllUs
appHelperPath.AppendLiteral(" /SetAsDefaultAppUser"); appHelperPath.AppendLiteral(" /SetAsDefaultAppUser");
} }
STARTUPINFO si = {sizeof(si), 0}; STARTUPINFOW si = {sizeof(si), 0};
PROCESS_INFORMATION pi = {0}; PROCESS_INFORMATION pi = {0};
BOOL ok = CreateProcess(NULL, (LPSTR)appHelperPath.get(), NULL, NULL, BOOL ok = CreateProcessW(NULL, (LPWSTR)appHelperPath.get(), NULL, NULL,
FALSE, 0, NULL, NULL, &si, &pi); FALSE, 0, NULL, NULL, &si, &pi);
if (!ok) if (!ok)

View File

@ -57,16 +57,9 @@ public:
NS_DECL_NSIWINDOWSSHELLSERVICE NS_DECL_NSIWINDOWSSHELLSERVICE
protected: protected:
PRBool IsDefaultBrowserVista(PRBool aStartupCheck, PRBool* aIsDefaultBrowser); PRBool IsDefaultBrowserVista(PRBool* aIsDefaultBrowser);
PRBool GetMailAccountKey(HKEY* aResult); PRBool GetMailAccountKey(HKEY* aResult);
void SetRegKey(const nsString& aKeyName,
const nsString& aValueName,
const nsString& aValue, PRBool aHKLMOnly);
DWORD DeleteRegKey(HKEY baseKey, const nsString& keyName);
DWORD DeleteRegKeyDefaultValue(HKEY baseKey,
const nsString& keyName);
private: private:
PRBool mCheckedThisSession; PRBool mCheckedThisSession;

View File

@ -1 +1 @@
3.1a1pre 3.1a2pre

View File

@ -48,6 +48,8 @@ SetDatablockOptimize on
SetCompress off SetCompress off
CRCCheck on CRCCheck on
RequestExecutionLevel user
!addplugindir ./ !addplugindir ./
; empty files - except for the comment line - for generating custom pages. ; empty files - except for the comment line - for generating custom pages.
@ -70,21 +72,11 @@ Var AddDesktopSC
; The following includes are provided by NSIS. ; The following includes are provided by NSIS.
!include FileFunc.nsh !include FileFunc.nsh
!include LogicLib.nsh !include LogicLib.nsh
!include MUI.nsh
!include TextFunc.nsh !include TextFunc.nsh
!include WinMessages.nsh !include WinMessages.nsh
!include WinVer.nsh
!include WordFunc.nsh !include WordFunc.nsh
!include MUI.nsh
; WinVer.nsh was added in the same release that RequestExecutionLevel so check
; if ___WINVER__NSH___ is defined to determine if RequestExecutionLevel is
; available.
!include /NONFATAL WinVer.nsh
!ifdef ___WINVER__NSH___
RequestExecutionLevel user
!else
!warning "Installer will be created without Vista compatibility.$\n \
Upgrade your NSIS installation to at least version 2.22 to resolve."
!endif
!insertmacro GetOptions !insertmacro GetOptions
!insertmacro GetParameters !insertmacro GetParameters
@ -105,6 +97,7 @@ Var AddDesktopSC
!include version.nsh !include version.nsh
VIAddVersionKey "FileDescription" "${BrandShortName} Installer" VIAddVersionKey "FileDescription" "${BrandShortName} Installer"
VIAddVersionKey "OriginalFilename" "setup.exe"
; Must be inserted before other macros that use logging ; Must be inserted before other macros that use logging
!insertmacro _LoggingCommon !insertmacro _LoggingCommon
@ -356,6 +349,7 @@ Section "-Application" APP_IDX
SetShellVarContext current ; Set SHCTX to HKCU SetShellVarContext current ; Set SHCTX to HKCU
${RegCleanMain} "Software\Mozilla" ${RegCleanMain} "Software\Mozilla"
${RegCleanUninstall} ${RegCleanUninstall}
${UpdateProtocolHandlers}
ClearErrors ClearErrors
WriteRegStr HKLM "Software\Mozilla\InstallerTest" "InstallerTest" "Test" WriteRegStr HKLM "Software\Mozilla\InstallerTest" "InstallerTest" "Test"
@ -367,6 +361,7 @@ Section "-Application" APP_IDX
StrCpy $TmpVal "HKLM" ; used primarily for logging StrCpy $TmpVal "HKLM" ; used primarily for logging
${RegCleanMain} "Software\Mozilla" ${RegCleanMain} "Software\Mozilla"
${RegCleanUninstall} ${RegCleanUninstall}
${UpdateProtocolHandlers}
ReadRegStr $0 HKLM "Software\mozilla.org\Mozilla" "CurrentVersion" ReadRegStr $0 HKLM "Software\mozilla.org\Mozilla" "CurrentVersion"
${If} "$0" != "${GREVersion}" ${If} "$0" != "${GREVersion}"
@ -392,7 +387,6 @@ Section "-Application" APP_IDX
${WriteRegDWORD2} $TmpVal "$0" "Create Start Menu Shortcut" $AddStartMenuSC 0 ${WriteRegDWORD2} $TmpVal "$0" "Create Start Menu Shortcut" $AddStartMenuSC 0
${FixClassKeys} ${FixClassKeys}
${UpdateProtocolHandlers}
; On install always add the FirefoxHTML and FirefoxURL keys. ; On install always add the FirefoxHTML and FirefoxURL keys.
; An empty string is used for the 5th param because FirefoxHTML is not a ; An empty string is used for the 5th param because FirefoxHTML is not a

View File

@ -41,6 +41,7 @@
SetShellVarContext current ; Set SHCTX to the current user (e.g. HKCU) SetShellVarContext current ; Set SHCTX to the current user (e.g. HKCU)
${RegCleanMain} "Software\Mozilla" ${RegCleanMain} "Software\Mozilla"
${RegCleanUninstall} ${RegCleanUninstall}
${UpdateProtocolHandlers}
ClearErrors ClearErrors
WriteRegStr HKLM "Software\Mozilla\InstallerTest" "InstallerTest" "Test" WriteRegStr HKLM "Software\Mozilla\InstallerTest" "InstallerTest" "Test"
@ -55,6 +56,7 @@
${SetStartMenuInternet} ${SetStartMenuInternet}
${FixShellIconHandler} ${FixShellIconHandler}
${SetUninstallKeys} ${SetUninstallKeys}
${UpdateProtocolHandlers}
ReadRegStr $0 HKLM "Software\mozilla.org\Mozilla" "CurrentVersion" ReadRegStr $0 HKLM "Software\mozilla.org\Mozilla" "CurrentVersion"
${If} "$0" != "${GREVersion}" ${If} "$0" != "${GREVersion}"
@ -67,7 +69,6 @@
; Add Software\Mozilla\ registry entries ; Add Software\Mozilla\ registry entries
${SetAppKeys} ${SetAppKeys}
${FixClassKeys} ${FixClassKeys}
${UpdateProtocolHandlers}
; Remove files that may be left behind by the application in the ; Remove files that may be left behind by the application in the
; VirtualStore directory. ; VirtualStore directory.
@ -108,7 +109,6 @@
${FixShellIconHandler} ${FixShellIconHandler}
WriteRegStr HKCU "Software\Clients\StartMenuInternet" "" "$R9" WriteRegStr HKCU "Software\Clients\StartMenuInternet" "" "$R9"
!ifdef ___WINVER__NSH___
${If} ${AtLeastWinVista} ${If} ${AtLeastWinVista}
ClearErrors ClearErrors
ReadRegStr $0 HKLM "Software\RegisteredApplications" "${AppRegName}" ReadRegStr $0 HKLM "Software\RegisteredApplications" "${AppRegName}"
@ -118,7 +118,6 @@
AppAssocReg::SetAppAsDefaultAll "${AppRegName}" AppAssocReg::SetAppAsDefaultAll "${AppRegName}"
${EndUnless} ${EndUnless}
${EndIf} ${EndIf}
!endif
${RemoveDeprecatedKeys} ${RemoveDeprecatedKeys}
@ -157,11 +156,11 @@
${If} ${FileExists} "$DESKTOP\${BrandFullName}.lnk" ${If} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
ShellLink::GetShortCutArgs "$DESKTOP\${BrandFullName}.lnk" ShellLink::GetShortCutArgs "$DESKTOP\${BrandFullName}.lnk"
Pop $0 Pop $0
${If} $0 == "" ${If} "$0" == ""
ShellLink::GetShortCutTarget "$DESKTOP\${BrandFullName}.lnk" ShellLink::GetShortCutTarget "$DESKTOP\${BrandFullName}.lnk"
Pop $0 Pop $0
; Needs to handle short paths ; Needs to handle short paths
${If} $0 == "$INSTDIR\${FileMainEXE}" ${If} "$0" == "$INSTDIR\${FileMainEXE}"
Delete "$DESKTOP\${BrandFullName}.lnk" Delete "$DESKTOP\${BrandFullName}.lnk"
${EndIf} ${EndIf}
${EndIf} ${EndIf}
@ -170,11 +169,11 @@
${If} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk" ${If} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk"
ShellLink::GetShortCutArgs "$QUICKLAUNCH\${BrandFullName}.lnk" ShellLink::GetShortCutArgs "$QUICKLAUNCH\${BrandFullName}.lnk"
Pop $0 Pop $0
${If} $0 == "" ${If} "$0" == ""
ShellLink::GetShortCutTarget "$QUICKLAUNCH\${BrandFullName}.lnk" ShellLink::GetShortCutTarget "$QUICKLAUNCH\${BrandFullName}.lnk"
Pop $0 Pop $0
; Needs to handle short paths ; Needs to handle short paths
${If} $0 == "$INSTDIR\${FileMainEXE}" ${If} "$0" == "$INSTDIR\${FileMainEXE}"
Delete "$QUICKLAUNCH\${BrandFullName}.lnk" Delete "$QUICKLAUNCH\${BrandFullName}.lnk"
${EndIf} ${EndIf}
${EndIf} ${EndIf}
@ -227,7 +226,7 @@
WriteRegStr SHCTX "$0\.shtml" "" "FirefoxHTML" WriteRegStr SHCTX "$0\.shtml" "" "FirefoxHTML"
${EndIf} ${EndIf}
ReadRegStr $6 HKCR ".hht" "" ReadRegStr $6 HKCR ".xht" ""
${If} "$6" != "FirefoxHTML" ${If} "$6" != "FirefoxHTML"
WriteRegStr SHCTX "$0\.xht" "" "FirefoxHTML" WriteRegStr SHCTX "$0\.xht" "" "FirefoxHTML"
${EndIf} ${EndIf}
@ -362,7 +361,7 @@
${If} ${FileExists} "$DESKTOP\${BrandFullName}.lnk" ${If} ${FileExists} "$DESKTOP\${BrandFullName}.lnk"
ShellLink::GetShortCutArgs "$DESKTOP\${BrandFullName}.lnk" ShellLink::GetShortCutArgs "$DESKTOP\${BrandFullName}.lnk"
Pop $1 Pop $1
${If} $1 == "" ${If} "$1" == ""
ShellLink::GetShortCutTarget "$DESKTOP\${BrandFullName}.lnk" ShellLink::GetShortCutTarget "$DESKTOP\${BrandFullName}.lnk"
Pop $1 Pop $1
${GetLongPath} "$1" $1 ${GetLongPath} "$1" $1
@ -376,7 +375,7 @@
; XXXrstrong - need a cleaner way to prevent unsetting SHCTX from HKLM when ; XXXrstrong - need a cleaner way to prevent unsetting SHCTX from HKLM when
; trying to find the desktop shortcut. ; trying to find the desktop shortcut.
${If} $TmpVal == "HKCU" ${If} "$TmpVal" == "HKCU"
SetShellVarContext current ; Set SHCTX to the current user (e.g. HKCU) SetShellVarContext current ; Set SHCTX to the current user (e.g. HKCU)
${Else} ${Else}
SetShellVarContext all ; Set SHCTX to all users (e.g. HKLM) SetShellVarContext all ; Set SHCTX to all users (e.g. HKLM)
@ -385,11 +384,11 @@
${If} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk" ${If} ${FileExists} "$QUICKLAUNCH\${BrandFullName}.lnk"
ShellLink::GetShortCutArgs "$QUICKLAUNCH\${BrandFullName}.lnk" ShellLink::GetShortCutArgs "$QUICKLAUNCH\${BrandFullName}.lnk"
Pop $1 Pop $1
${If} $1 == "" ${If} "$1" == ""
ShellLink::GetShortCutTarget "$QUICKLAUNCH\${BrandFullName}.lnk" ShellLink::GetShortCutTarget "$QUICKLAUNCH\${BrandFullName}.lnk"
Pop $1 Pop $1
${GetLongPath} "$1" $1 ${GetLongPath} "$1" $1
${If} $1 == "$8\${FileMainEXE}" ${If} "$1" == "$8\${FileMainEXE}"
${WriteRegDWORD2} $TmpVal "$0" "Create Quick Launch Shortcut" 1 0 ${WriteRegDWORD2} $TmpVal "$0" "Create Quick Launch Shortcut" 1 0
${Else} ${Else}
${WriteRegDWORD2} $TmpVal "$0" "Create Quick Launch Shortcut" 0 0 ${WriteRegDWORD2} $TmpVal "$0" "Create Quick Launch Shortcut" 0 0
@ -544,7 +543,7 @@
; Delete gopher from the user's UrlAssociations if it points to FirefoxURL. ; Delete gopher from the user's UrlAssociations if it points to FirefoxURL.
StrCpy $0 "Software\Microsoft\Windows\Shell\Associations\UrlAssociations\gopher" StrCpy $0 "Software\Microsoft\Windows\Shell\Associations\UrlAssociations\gopher"
ReadRegStr $2 HKCU "$0\UserChoice" "Progid" ReadRegStr $2 HKCU "$0\UserChoice" "Progid"
${If} $2 == "FirefoxURL" ${If} "$2" == "FirefoxURL"
DeleteRegKey HKCU "$0" DeleteRegKey HKCU "$0"
${EndIf} ${EndIf}
!macroend !macroend

View File

@ -48,6 +48,8 @@ SetDatablockOptimize on
SetCompress off SetCompress off
CRCCheck on CRCCheck on
RequestExecutionLevel user
!addplugindir ./ !addplugindir ./
; USE_UAC_PLUGIN is temporary until Thunderbird has been updated to use the UAC plugin ; USE_UAC_PLUGIN is temporary until Thunderbird has been updated to use the UAC plugin
@ -65,25 +67,13 @@ Var TmpVal
!include MUI.nsh !include MUI.nsh
!include TextFunc.nsh !include TextFunc.nsh
!include WinMessages.nsh !include WinMessages.nsh
!include WinVer.nsh
!include WordFunc.nsh !include WordFunc.nsh
; WinVer.nsh was added in the same release that RequestExecutionLevel so check
; if ___WINVER__NSH___ is defined to determine if RequestExecutionLevel is
; available.
!include /NONFATAL WinVer.nsh
!ifdef ___WINVER__NSH___
RequestExecutionLevel user
!else
!warning "Installer will be created without Vista compatibility.$\n \
Upgrade your NSIS installation to at least version 2.22 to resolve."
!endif
!insertmacro StrFilter !insertmacro StrFilter
!insertmacro WordReplace !insertmacro WordReplace
!insertmacro un.GetParent !insertmacro un.GetParent
!insertmacro un.LineFind
!insertmacro un.TrimNewLines
; The following includes are custom. ; The following includes are custom.
!include branding.nsi !include branding.nsi
@ -95,6 +85,7 @@ Var TmpVal
; This is named BrandShortName helper because we use this for software update ; This is named BrandShortName helper because we use this for software update
; post update cleanup. ; post update cleanup.
VIAddVersionKey "FileDescription" "${BrandShortName} Helper" VIAddVersionKey "FileDescription" "${BrandShortName} Helper"
VIAddVersionKey "OriginalFilename" "helper.exe"
!insertmacro AddDDEHandlerValues !insertmacro AddDDEHandlerValues
!insertmacro CleanVirtualStore !insertmacro CleanVirtualStore

View File

@ -1,7 +1,6 @@
af af
ar ar
be be
bg
ca ca
cs cs
da da
@ -18,7 +17,6 @@ ga-IE
gu-IN gu-IN
he he
hu hu
hy-AM
id id
it it
ja ja
@ -38,9 +36,7 @@ pt-BR
pt-PT pt-PT
ro ro
ru ru
si
sk sk
sl
sq sq
sr sr
sv-SE sv-SE

View File

@ -222,6 +222,8 @@
<!ENTITY reloadFrameCmd.accesskey "R"> <!ENTITY reloadFrameCmd.accesskey "R">
<!ENTITY viewPartialSourceForSelectionCmd.label "View Selection Source"> <!ENTITY viewPartialSourceForSelectionCmd.label "View Selection Source">
<!ENTITY viewPartialSourceForMathMLCmd.label "View MathML Source"> <!ENTITY viewPartialSourceForMathMLCmd.label "View MathML Source">
<!-- LOCALIZATION NOTE (viewPartialSourceCmd.accesskey): This accesskey is used for both
viewPartialSourceForSelectionCmd.label and viewPartialSourceForMathMLCmd.label -->
<!ENTITY viewPartialSourceCmd.accesskey "e"> <!ENTITY viewPartialSourceCmd.accesskey "e">
<!ENTITY viewPageSourceCmd.label "View Page Source"> <!ENTITY viewPageSourceCmd.label "View Page Source">
<!ENTITY viewPageSourceCmd.accesskey "V"> <!ENTITY viewPageSourceCmd.accesskey "V">

View File

@ -14,6 +14,7 @@ droponhomemsg=Do you want this document to be your new home page?
# context menu strings # context menu strings
contextMenuSearchText=Search %S for "%S" contextMenuSearchText=Search %S for "%S"
contextMenuSearchText.accesskey=S
blockImages=Block Images from %S blockImages=Block Images from %S

View File

@ -7,8 +7,4 @@
<!ENTITY focusSearch1.key "f"> <!ENTITY focusSearch1.key "f">
<!ENTITY focusSearch2.key "k"> <!ENTITY focusSearch2.key "k">
<!ENTITY filter.label "Search:"> <!ENTITY filter.emptytext "Search">
<!ENTITY filter.accesskey "S">
<!ENTITY clear.label "Clear">
<!ENTITY clear.accesskey "l">

View File

@ -21,9 +21,9 @@
<!ENTITY gopher.label "Gopher Proxy:"> <!ENTITY gopher.label "Gopher Proxy:">
<!ENTITY gopher.accesskey "G"> <!ENTITY gopher.accesskey "G">
<!ENTITY http.label "HTTP Proxy:"> <!ENTITY http.label "HTTP Proxy:">
<!ENTITY http.accesskey "H"> <!ENTITY http.accesskey "x">
<!ENTITY ssl.label "SSL Proxy:"> <!ENTITY ssl.label "SSL Proxy:">
<!ENTITY ssl.accesskey "S"> <!ENTITY ssl.accesskey "L">
<!ENTITY socks.label "SOCKS Host:"> <!ENTITY socks.label "SOCKS Host:">
<!ENTITY socks.accesskey "C"> <!ENTITY socks.accesskey "C">
<!ENTITY socks4.label "SOCKS v4"> <!ENTITY socks4.label "SOCKS v4">
@ -41,4 +41,4 @@
<!ENTITY noproxy.accesskey "n"> <!ENTITY noproxy.accesskey "n">
<!ENTITY noproxyExplain.label "Example: .mozilla.org, .net.nz, 192.168.1.0/24"> <!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.label "Use this proxy server for all protocols">
<!ENTITY shareproxy.accesskey "x"> <!ENTITY shareproxy.accesskey "s">

View File

@ -1,277 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM
"chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<!--
Contributors:
Mark Pilgrim <pilgrim@gmail.com> (original author)
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Accessibility Features of &brandFullName;</title>
<link rel="stylesheet" type="text/css"
href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>Accessibility Features of &brandFullName;</h1>
<p>&brandShortName; includes many features to make the browser and web
content accessible to all users, including those who have low vision, no
vision, or limited ability to use a keyboard or mouse.</p>
<div class="contentsBox">In this section:
<ul>
<li><a href="#using_a_keyboard">Using a Keyboard</a></li>
<li><a href="#using_a_mouse">Using a Mouse</a></li>
<li><a href="#fonts_and_colors">Fonts and Colors</a></li>
<li><a href="#controlling_web_content">Controlling Web Content</a></li>
<li><a href="#compatibility_with_assistive_technologies">Compatibility
with Assistive Technologies</a></li>
<li><a href="#finding_help_online">Finding Help Online</a></li>
</ul>
</div>
<h2 id="using_a_keyboard">Using a Keyboard</h2>
<h3 id="keyboard_shortcuts">Keyboard Shortcuts</h3>
<p>A list of common keyboard shortcuts is available in
<a href="shortcuts.xhtml">&brandShortName; Keyboard Shortcuts</a>.
Online, you can find <a target="_blank"
href="http://www.mozilla.org/support/firefox/keyboard">a comparison
chart of keyboard shortcuts</a> implemented in &brandShortName;,
Microsoft Internet Explorer, and Opera.</p>
<h3 id="always_use_cursor_keys">Always use the cursor keys to navigate within
webpages</h3>
<p><a href="prefs.xhtml#accessibility">Always use the cursor keys to navigate
within webpages</a> allows you to move through web content as if
you were inside a read-only editor.
You can use the keyboard to select web content and copy it to the
clipboard. You can enable this feature by selecting &pref.menuPath;,
opening the <em>General</em> tab in the <em>Advanced</em> panel,
and checking the <em>Always use the cursor keys to navigate within webpages
</em> &pref.singular;.</p>
<p>You can press <kbd>F7</kbd> at any time to turn this feature on or
off. When you press <kbd>F7</kbd>, &brandShortName; will
ask if you really want to turn on this feature. You can disable
this prompt by selecting <em>Don't show this dialog again.</em></p>
<h3 id="find_as_you_type">Search for text when I start typing</h3>
<p><a href="prefs.xhtml#accessibility">Search for text when I start typing</a>
allows you to quickly navigate to text or hyperlinks in a web page. This
feature has two modes. Press <abbr title="forward slash"><kbd>/</kbd></abbr>
and start typing to search all text on the current page, or press
<abbr title="apostrophe"><kbd>'</kbd></abbr> before your string to search
hyperlinks only. &brandShortName; will highlight matching text or hyperlinks
as you type.</p>
<p>The following keyboard shortcuts control this feature:</p>
<ul>
<li>Type more characters to narrow your search. &brandShortName;
will highlight the next matching hyperlink or text or alert you
that nothing matched.</li>
<li>Press &accelKey;+<kbd>G</kbd> or <kbd>F3</kbd> to find the next
occurrence of your current search string.</li>
<li>Press &accelKey;+&shiftKey;+<kbd>G</kbd> or &shiftKey;+<kbd>F3</kbd>
to find the previous occurrence of your current search string.</li>
<li>Press <kbd>Backspace</kbd> to undo the last character you typed.
&brandShortName; will back up to the previously highlighted text.</li>
<li>Press <kbd>Esc</kbd> to cancel a search. You can also cancel
a search by changing focus, scrolling the page with the mouse or
keyboard, or simply waiting for the timeout.</li>
</ul>
<p>You can change the default behavior of this feature by selecting
&pref.menuPath;, opening the <em>General</em> tab of the <em>Advanced</em>
panel, and checking the <em>Search for text when I start typing</em>
&pref.singular;. If this option is checked, you can start typing at any
time to auto-start an inline search. By default auto-started searches look
for all text on the page. You can still explicitly press
<abbr title="apostrophe"><kbd>'</kbd></abbr> or
<abbr title="forward slash"><kbd>/</kbd></abbr> to start finding
in one mode or the other.</p>
<p>You can use this feature to get to buttons, text boxes and other
form controls. Search for the text immediately before the form control
you want and press <kbd>Tab</kbd>. Pressing <kbd>Tab</kbd> automatically
exits the search and sets focus to the next form field or button
after the highlighted text.</p>
<h2 id="using_a_mouse">Using a Mouse</h2>
<h3 id="common_mouse_shortcuts">Common Mouse Shortcuts</h3>
<p>A list of common mouse shortcuts is available in
<a href="mouse_shortcuts.xhtml">&brandShortName; Mouse
Shortcuts</a>.</p>
<h2 id="fonts_and_colors">Fonts and Colors</h2>
<h3 id="overriding_page_fonts">Overriding Page Fonts</h3>
<p>Some web sites may display text in fonts that are difficult to read,
and other sites may rely on the browser's default fonts. You can set
your default fonts by going to &pref.menuPath;, selecting the
<em>Content</em> panel, and selecting a default font and size in the
<em>Fonts &amp; Colors</em> section.</p>
<p>You can specify default fonts for different styles, including serif,
sans-serif, and monospace by clicking the <em>Advanced</em> button.
However, many web pages specify their own fonts, so your choices
will have no effect on such pages. To override the fonts defined by
such pages, uncheck the <em>Allow pages to choose their own fonts, instead
of my selections above</em> &pref.singular;.</p>
<p>Note that some web pages may display incorrectly depending on your
choice of a default font.</p>
<h3 id="setting_a_minimum_font_size">Setting a Minimum Font Size</h3>
<p>Some web sites may display text which is too small to read
comfortably. To make such pages easier to read, you can set a minimum
font size. On web pages that try to display text smaller than this
size, &brandShortName; will enlarge the text to your chosen size.</p>
<p>To set a minimum font size, go to &pref.menuPath;, select the
<em>Content</em> panel, and click the <em>Advanced</em> button in the
<em>Fonts &amp; Colors</em> section. You can specify a minimum font
size from the dropdown menu.</p>
<p>Note that some web pages may display incorrectly depending on your
choice of a minimum font size.</p>
<h3 id="resizing_page_text">Resizing Page Text</h3>
<p>You can temporarily change the size of text on any web page in the
<span class="menuPath">View &gt; Text Size</span> menu. The new
size will remain in effect until you close your browser window or
tab, even if you navigate to a different web site.</p>
<p>The following keyboard shortcuts control text size:</p>
<ul>
<li>Press &accelKey;+<kbd><abbr title="plus">+</abbr></kbd> to
increase the text size. This zooms the text to 120% of its original
size, then 150%, 200%, 300%, 450%, 675%, 1013%, and 1519%.</li>
<li>Press &accelKey;+<kbd><abbr title="minus">-</abbr></kbd> to
decrease the text size. This zooms the text to 90% of its original
size, then 50%, 33%, 22%, 15%, 10%, 7%, 4%, 3%, 2%, and 1%.</li>
<li>Press &accelKey;+<kbd>0</kbd> to reset the text size to the web
page's default size.</li>
</ul>
<p>Note that some web pages may display incorrectly if you increase or
decrease the text size.</p>
<h3 id="overriding_page_colors">Overriding Page Colors</h3>
<p>Some web sites may display text and background colors that are
difficult to read, and other sites may rely on the browser's default
colors. You can set your default colors by going to &pref.menuPath;,
selecting the <em>Content</em> panel, and clicking the <em>Colors</em>
button in the <em>Fonts &amp; Colors</em> section. You can set
default text and background colors, as well as default colors for
visited and unvisited hyperlinks. You can also specify whether
hyperlinks should be underlined.</p>
<p>However, many web pages set their own colors, so your choices will
have no effect. To override the colors defined by web pages, uncheck
the <em>Allow pages to choose their own colors, instead of my
selections above</em> &pref.singular;.</p>
<div class="noMac">
<h3 id="using_a_high_contrast_theme">Using a High Contrast Theme</h3>
<p>&brandShortName; automatically detects if you are using a High
Contrast theme and displays everything in your high contrast color
scheme. This overrides all other other browser or web page
settings, and it affects the &brandShortName; interface itself (all
menus, windows, and dialog boxes) and the content of any web page
you visit.</p>
<p class="win">To use a High Contrast theme, go to
<span class="menuPath">Start Menu &gt; Control Panel &gt;
Accessibility Options &gt; Display</span> and check the
<em>Use High Contrast</em> &pref.singular;.</p>
</div>
<h2 id="controlling_web_content">Controlling Web Content</h2>
<h3 id="blocking_popup_windows">Blocking Pop-up Windows</h3>
<p>See <a href="popup.xhtml">Controlling Pop-ups</a> for information on
blocking pop-up windows.</p>
<h3 id="turning_off_java_applets">Turning Off Java Applets</h3>
<p>Some web pages provide a rich interactive experience with Java&trade;
applets. However, some users that rely on keyboard navigation may
experience problems with some Java applets that automatically set
focus and do not provide a way to <q>break out</q> of the applet and
navigate to the rest of the web page. If this is a problem for you,
you can disable Java by going to &pref.menuPath;, selecting the
<em>Content</em> and unchecking the <em>Enable Java</em>
&pref.singular;.</p>
<h3 id="restricting_javascript_behavior">Restricting JavaScript Behavior</h3>
<p>You can turn off JavaScript entirely by going to &pref.menuPath;,
selecting the <em>Content</em> panel, and unchecking <em>Enable
JavaScript</em>. Some web pages rely on JavaScript and may not work
properly if JavaScript is disabled.</p>
<p>If you do not wish to disable JavaScript entirely, there are also a
number of advanced JavaScript settings to restrict the behavior of
scripts. Immediately after the <em>Enable JavaScript</em> checkbox,
click the <em>Advanced</em> button to open the <em>Advanced JavaScript
Settings</em> window. You can control whether scripts are allowed
to move or resize existing windows, raise or lower windows, disable or
replace context menus, hide the status bar, or change status bar
text.</p>
<h2 id="compatibility_with_assistive_technologies">Compatibility With
Assistive Technologies</h2>
<p>The latest information about compatibility with third-party assistive
technologies is online at
<a target="_blank" href="http://www.mozilla.org/access/compatibility">Access
Mozilla: Compatibility with assistive technologies</a>.</p>
<h2 id="finding_help_online">Finding Help Online</h2>
<div class="win">
<p>Freedom Scientific maintains a number of
<a target="_blank" href="http://www.freedomscientific.com/fs_support/User_Groups.asp">mailing
lists for JAWS users</a>.</p>
<p>GW Micro maintains a number of
<a target="_blank" href="http://www.gwmicro.com/Support/Email_Lists/">mailing
lists for Window Eyes users</a>.</p>
</div>
<p>You may <span class="win">also</span> post accessibility questions to the
<a target="_blank" href="http://forums.mozillazine.org/viewforum.php?f=38">&brandShortName;
Support forum</a>.</p>
<div class="contentsBox"><em>29 Aug 2006</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer
Project.</p>
</body>
</html>

View File

@ -1,170 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<!--
Contributors:
David Tenser <david.tenser@comhem.se> (original author)
Steffen Wilberg <steffen.wilberg@web.de>
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Managing Cookies</title>
<link rel="stylesheet" type="text/css" href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>Managing Cookies</h1>
<p>This document explains what cookies are, how they are used, and how you can gain
control over the cookies stored on your computer by using the Cookie Manager in
&brandFullName;.</p>
<div class="contentsBox">In this section:
<ul>
<li><a href="#what_is_a_cookie">What is a Cookie?</a></li>
<li><a href="#setting_up_cookie_rules">Setting Up Cookie Rules</a></li>
<li><a href="#accepting_and_blocking_cookies">Accepting and Blocking Cookies</a></li>
<li><a href="#cookies_exceptions">The Cookies Exceptions Window</a></li>
<li><a href="#view_cookies">The View Cookies Window</a></li>
</ul>
</div>
<h2 id="what_is_a_cookie">What is a Cookie?</h2>
<p>A cookie is a file created by an Internet site to store information on your
computer, such as your preferences when visiting that site. When you visit a site
that uses cookies, the site might ask &brandShortName; to place one or more cookies
on your hard disk.</p>
<p>Later, when you return to the site, &brandShortName; sends back the cookies that
belong to the site. This allows the site to present you with information customized
to fit your needs.</p>
<p>Cookies can also store personally identifiable information. Personally identifiable
information is information that can be used to identify or contact you, such as
your name, e-mail address, home or work address, or telephone number. However, a
web site only has access to the personal information that you provide. For
example, a web site cannot determine your e-mail address unless you provide it. Also,
a web site cannot gain access to other information on your computer.</p>
<p>When you use the default cookie settings, this activity is invisible to you,
and you won't know when a web site is setting a cookie or when &brandShortName;
is sending a web site its cookie. However, you can set your cookies
&pref.plural; so that you will be asked before a cookie is set. You can also
restrict the lifetime of cookies to your current &brandShortName; session.</p>
<h2 id="setting_up_cookie_rules">Setting Up Cookie Rules</h2>
<p>By default &brandShortName; accepts all cookies, including cookies which
would allow a site to recognize you effectively forever. If this doesn't suit
you, you can tell &brandShortName; to delete all cookies when you close
&brandShortName;:</p>
<ol>
<li>Select &pref.menuPath; and open the <em>Privacy</em> panel.</li>
<li>Select the <em>I close &brandShortName;</em> &pref.singular; from the
<em>Keep until</em> menu.</li>
</ol>
<p>If you want to grant sites you trust the ability to store cookies permanently
(e.g., to allow you to log in automatically to a site), click <a
href="#cookies_exceptions"><em>Exceptions…</em></a>, enter the site address,
and click <em>Allow</em>.</p>
<h3 id="all_the_settings">All the Settings</h3>
<p>These are the &pref.plural; that affect how cookies are managed by
&brandShortName;:</p>
<dl>
<dt>Accept cookies from sites</dt>
<dd><p>If you don't want any sites to store cookies on your computer, uncheck
this &pref.singular;. Note that some sites may not work properly when
cookies are disabled. If you want to grant certain sites the ability to
store cookies, open the <a href="#cookies_exceptions">Cookies Exceptions</a>
window by clicking <em>Exceptions…</em>, enter the site address, and click
<em>Allow</em> or <em>Allow for Session</em>.</p></dd>
<dt>Keep until</dt>
<dd>
<ul>
<li><em>they expire</em><br/>
If this &pref.singular; is selected, each cookie will be removed when the
site that set it has determined the cookie should expire.</li>
<li><em>I close &brandShortName;</em><br/>
If this &pref.singular; is selected, cookies will be removed when you
restart &brandShortName;. Web sites requiring the use of cookies will
still work, but if you restart &brandShortName;, the web site will think
that you logged into the site for the first time again.</li>
<li><em>ask me every time</em><br/>
Display an alert every time a web site tries to store a cookie asking you
if you want that cookie stored.</li>
</ul>
</dd>
</dl>
<h2 id="accepting_and_blocking_cookies">Accepting and Blocking Cookies</h2>
<p>If you've chosen <em>ask me every time</em> from the <em>Keep until</em>
menu, you'll see a dialog whenever a site tries to store a cookie on your
computer providing the following options:</p>
<dl>
<dt>Allow</dt>
<dd>To allow this particular cookie, just click <em>Allow</em>. Use this if
you trust the site.</dd>
<dt>Allow for Session</dt>
<dd>If you want to allow this cookie for now, but have it deleted when you
exit &brandShortName;, click <em>Allow for Session</em>. Use this if the
site doesn't work without cookies, but you don't want to have a permanent
cookie stored for it.</dd>
<dt>Deny</dt>
<dd>If you don't want this cookie to be stored, click <em>Deny</em>. Use this
if you don't trust the site or suspect that it's compromising your privacy.</dd>
<dt>Use my choice for all cookies from this site</dt>
<dd>Select this checkbox before clicking any of the buttons if you want
&brandShortName; to remember your decision and not ask again. The site will
be added to the <a href="#cookies_exceptions">Cookie Exceptions</a> window,
where you can revert your choice should you wish to do so later.</dd>
</dl>
<h2 id="cookies_exceptions">The Cookies Exceptions Window</h2>
<p>Access this window by clicking the <em>Exceptions…</em> button in cookies
&pref.plural;. Here you can make exceptions from your general cookies
&pref.plural; for specific sites. Using exceptions, you can allow all cookies,
reject all cookies, or allow all cookies but have them deleted when you exit
&brandShortName;, regardless of your other cookie settings.</p>
<p>To add a site to this list, simply type the site's domain name in the field
labeled <em>Address of web site</em>. Then click <em>Block</em> to reject
cookies from the site, click <em>Allow</em> to allow cookies from the site,
or click <em>Allow for Session</em> to allow cookies from the site but have
them deleted when you exit &brandShortName;.</p>
<p>To remove a site from this list, select it and click <em>Remove Site</em>. To
clear the list completely, click <em>Remove All Sites</em>. This will clear
the exceptions list so your general cookies &pref.plural; apply.</p>
<h2 id="view_cookies">The View Cookies Window</h2>
<p>Use the <em>View Cookies</em> window to view and remove cookies. To access it,
click the <em>View Cookies</em> button in cookies &pref.plural;.</p>
<p>This window lists all cookies currently stored on your
computer, grouped by site. You can expand the sites and select a cookie to
display more information about it. You can also search for a site or a cookie
name by typing in the search bar.</p>
<p>To remove a cookie from the list, select it and click <em>Remove Cookie</em>.
To remove a site's cookies, select the site and click <em>Remove
Cookie(s)</em>. To wipe all cookies, click <em>Remove All Cookies</em>.</p>
<div class="contentsBox"><em>12 September 2006</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,189 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<!--
Contributors:
Nilson Cain <nilson@gmail.com> (original author)
Steffen Wilberg <steffen.wilberg@web.de>
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Customizing &brandFullName;</title>
<link rel="stylesheet" type="text/css" href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>Customizing &brandFullName;</h1>
<div class="contentsBox">In this section:
<ul>
<li><a href="#toolbars">Toolbars</a></li>
<li><a href="#add_ons">Add-ons (extensions and themes)</a></li>
</ul>
</div>
<h2 id="toolbars">Toolbars</h2>
<p>This will tell you how to rearrange, hide, add, and remove toolbars in
&brandShortName;. For those who are unfamiliar with the terminology, a toolbar
is the (usually gray) box above the area that the web site is displayed.</p>
<ul>
<li class="noMac"><strong>Menu Bar</strong>: This is the toolbar that contains
the browser menus (File, Edit, Help, etc.).</li>
<li><strong>Navigation Bar</strong>: This is the toolbar that contains the
Location Bar and the buttons used to navigate web sites.</li>
<li><strong>Bookmarks Toolbar</strong>: This is the toolbar that contains
your Bookmarks Toolbar Folder bookmarks.</li>
</ul>
<p>There are two basic methods of customizing the toolbars in
&brandShortName;:</p>
<ul>
<li><a href="#rearranging_toolbar_items">Rearranging Toolbar Items</a></li>
<li><a href="#adding_removing_toolbars">Hiding, Adding, and Removing
Toolbars</a></li>
</ul>
<h3 id="rearranging_toolbar_items">Rearranging Toolbar Items</h3>
<p>To rearrange the items (icons, buttons, text boxes, etc.) on your toolbar,
<span class="noMac">right-click</span><span class="mac">press &ctrlKey; and
click</span> on any part of the toolbar that is not a text box and select
<span class="menuPath">Customize…</span>. This will bring up the toolbar
customization dialog.</p>
<p>Drag and drop any items you want to and from the toolbars <span class=
"noMac">(excluding the menu items)</span>. You can also rearrange icons
already on the toolbars by dragging and dropping them wherever you wish. When
the toolbars and items are arranged the way you want them, click
<em>Done</em>.</p>
<h4 id="special_toolbar_items">Special Toolbar Items</h4>
<p>There are a few special items that are available to you when customizing the
toolbar. They are as follows:</p>
<ul>
<li><strong>Separators:</strong> These allow you to separate items on the
toolbars with a small vertical line.</li>
<li><strong>Spacers:</strong> These allow you to separate items on the
toolbars with a fixed-size space, usually around 20 pixels on most
themes.</li>
<li><strong>Flexible spacers:</strong> Spacers allow you to separate items
on the toolbars with a space. These spacers automatically resize to fill
all of the empty space on the toolbar. These are good for positioning
items on the right of a toolbar.</li>
</ul>
<h3 id="adding_removing_toolbars">Hiding, Adding, and Removing Toolbars</h3>
<p>You can hide the Navigation Toolbar and the Bookmarks Toolbar if you do not
wish to keep them on your screen. <span class="noMac">You cannot hide the Menu
Bar because you cannot move the menu items (File, Edit, Help, etc.) to a
different toolbar, and they must stay on the screen at all times.</span></p>
<p>To show or hide a toolbar, select <span class="menuPath">View &gt; Toolbars</span>
and click the name of the toolbar you want to show or hide.</p>
<p>To add a custom toolbar, select <span class="menuPath">View &gt; Toolbars
&gt; Customize</span>. Click on <em>Add New Toolbar</em> (in the bottom of the
dialog). This will give you a dialog to enter a name. If you enter a name and
click <em>OK</em>, your new toolbar appears. Now you can drag and drop items
to it. To remove a custom toolbar, drag and drop all the items from it, and
click Done. You can also hide a custom toolbar as described in the previous
paragraph.</p>
<h2 id="add_ons">Add-ons (extensions and themes)</h2>
<p>Add-ons are small pieces of software which change or add to the appearance or
functionality of &brandShortName;. There are two kinds of add-ons: extensions
and themes.</p>
<dl>
<dt>Extensions</dt>
<dd>Extensions add new functionality to &brandShortName;. They can add
anything from a toolbar button to a completely new feature. They allow the
application to be customized to fit the personal needs of each user while
minimizing the size and appearance of the application itself.</dd>
<dt>Themes</dt>
<dd>Themes modify &brandShortName;'s appearance. They allow you to change the
look and feel of &brandShortName; and personalize it to your tastes. A
theme can simply change button images, or it can change every piece of
&brandShortName; appearance.</dd>
</dl>
<h3 id="add_ons_installing">Getting and Installing Add-ons</h3>
<p>You can download and install many add-ons from <a
href="https://addons.mozilla.org/firefox/" target="_blank">&brandShortName;
Add-ons</a>. Internet searches will find many other add-ons as well.</p>
<p>When you click on a link to install an add-on, &brandShortName; displays a
dialog asking you for permission to install the add-on. You can choose to
allow the download and installation or to cancel the process.</p>
<h2 id="add_ons_manager">Using the Add-ons manager</h2>
<p>Add-ons are managed in the Add-ons manager. Select <span
class="menuPath">Tools &gt; Add-ons</span> to open it.</p>
<h3 id="add_ons_updating">Updating Add-ons</h3>
<p>By default, &brandShortName; will periodically check when a new version for
one of your installed add-ons is available. If any are available, it will
prompt you at the next start to install any updates. You can change this
behavior in the <a href="prefs.xhtml#advanced_update"><em>Update</em> tab</a>
of the <em>Advanced</em> panel of &pref.pluralCaps;.</p>
<p>You can check for updates manually by selecting the <em>Extensions</em> or
<em>Themes</em> panel and clicking the <em>Find Updates</em> button. If
updates are available, the Add-ons manager displays an <em>Updates</em>
panel, where you can choose the updates you want to install. Click the
<em>Install Updates</em> button to update those add-ons.
You need to restart &brandShortName; for changes to take effect.</p>
<h3 id="add_ons_uninstalling">Disabling, Enabling, and Uninstalling Add-ons</h3>
<p>If you want to get rid of an extension, you can either disable it temporarily,
so it is easily available should you want to enable it again in the future,
or uninstall it. Themes can only be uninstalled since all themes except the
current one are disabled automatically.</p>
<p>To disable or enable an extension, select the extension of your choice and
click its <em>Disable</em> or <em>Enable</em> button. To remove an add-on from
&brandShortName;, select the add-on you wish to remove and click its
<em>Uninstall</em> button. You need to restart &brandShortName; for changes to
take effect.</p>
<h3 id="add_ons_further">Further functionality</h3>
<p>Further functionality such as <em>Visit Home Page</em> and <em>About</em> is
available by selecting the add-on of your choice, <span class="mac">pressing
&ctrlKey; and clicking on</span><span class="noMac">right-clicking</span> the
add-on and selecting the respective item from the context menu.</p>
<h3 id="add_ons_specific">Tasks specific to extensions or themes</h3>
<h4 id="add_ons_configuring_extensions">Configuring Extensions</h4>
<p>Extensions often provide a dialog to configure their functionality. To open
the &pref.plural; dialog of an extension, select the Extensions panel, select
the extension of your choice, and click its <em>&pref.pluralCaps;</em> button,
or simply double-click the extension.</p>
<h4 id="add_ons_switching_themes">Switching Themes</h4>
<p>To switch between your installed themes, select the Themes panel, select the
theme of your choice, and click its <em>Use Theme</em> button. You need to
restart &brandShortName; for changes to take effect.</p>
<div class="contentsBox"><em>12 September 2006</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,96 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<!--
Contributors:
Nilson Cain <mybugs@bellsouth.net> (original author)
Jeff Walden <jwalden+code@mit.edu>
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Using &brandFullName;'s Download Manager</title>
<link rel="stylesheet" type="text/css" href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>Using &brandFullName;'s Download Manager</h1>
<div class="contentsBox">In this section:
<ul>
<li><a href="#what_is_download_manager">What is the Download Manager?</a></li>
<li><a href="#do_with_download_manager">What can I do with the Download Manager?</a></li>
<li><a href="#download_manager_options">Download Manager &pref.pluralCaps;</a></li>
</ul>
</div>
<h2 id="what_is_download_manager">What is the Download Manager?</h2>
<p>The Download Manager is a feature of &brandShortName; that allows you to
track and manage your past and current file downloads. It is a convenient way
to escape the clutter of multiple downloading windows while still preserving
access to download statistics.</p>
<p>The Download Manager will appear when you download files, when you select
<span class="menuPath">Tools &gt; Downloads</span>, and when you press
<span class="noUnix">&accelKey;+<kbd>J</kbd></span><span class="unix">&accelKey;+<kbd>Y</kbd></span>.</p>
<h2 id="do_with_download_manager">What can I do with the Download Manager?</h2>
<p>In addition to keeping information on all your downloads in one place, the
Download Manager keeps convenient download actions easily accessible for each
of your downloads.</p>
<dl>
<dt>Pause</dt>
<dd>You can pause any downloads currently in progress by clicking the
<em>Pause</em> link beside the file entry. This may be useful, for
example, if you need to open a small download started after a large
download. Pausing downloads gives you the choice to decide which of your
downloads are most important. When you want to continue downloading those
files, simply use the <em>Resume</em> link to finish those downloads.</dd>
<dt>Cancel</dt>
<dd>If after starting a download you decide you no longer need that file,
canceling the download is simple: just use the <em>Cancel</em> link beside
that file entry to cancel it and free up your connection for your browsing
and other downloads.</dd>
<dt>Open the File</dt>
<dd>When a download has finished, the <em>Open</em> link will appear
by the file entry. Use it to open the file.</dd>
<dt>Remove the File's Entry</dt>
<dd>If you do not wish to store information on a particular download, removing
the entry is as simple as the click of a mouse. Simply use the
<em>Remove</em> link beside the file entry to delete it.</dd>
<dt>Retry a Download</dt>
<dd>If for any reason a download does not complete, it is easy to attempt the
download again. To recover from a failed download and retry it, just use
the <em>Retry</em> link next to the file entry and &brandShortName; will
restart the download for you.</dd>
<dt>Show Download Folder</dt>
<dd>If you have set &brandShortName; to save all downloads to a folder in
<a href="#download_manager_options">Download Manager &pref.pluralCaps;</a>,
you can open this folder by clicking the <em>Folder Name</em> at the
bottom of the Download Manager window.</dd>
</dl>
<h2 id="download_manager_options">Download Manager &pref.pluralCaps;</h2>
<p>The &pref.plural; for the Download Manager are accessible by opening the
Downloads section of the <em>Main</em> panel in the &pref.pluralCaps; window.
They allow you to change several downloading &pref.plural;. More information
regarding the various &pref.plural; is available in the <a
href="prefs.xhtml#downloads">&pref.pluralCaps; page</a>.</p>
<div class="contentsBox"><em>12 September 2006</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,491 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rdf:RDF [
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
%brandDTD;
]>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:nc="http://home.netscape.com/NC-rdf#">
<rdf:Description about="urn:root">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="firefox-help" nc:name="Welcome to &brandFullName; Help" nc:link="firefox_welcome.xhtml"/> </rdf:li>
<rdf:li> <rdf:Description ID="using-firebird" nc:name="Using &brandFullName;" nc:link="using_firebird.xhtml"/> </rdf:li>
<rdf:li> <rdf:Description ID="using-download-manager" nc:name="Using the Download Manager" nc:link="download_manager.xhtml"/> </rdf:li>
<rdf:li> <rdf:Description ID="customize-firebird" nc:name="Customization" nc:link="customization.xhtml"/> </rdf:li>
<rdf:li>
<rdf:Description ID="prefs-win" nc:name="Options" nc:link="prefs.xhtml" nc:platform="win os2">
<nc:subheadings rdf:resource="#prefs-tree"/>
</rdf:Description>
</rdf:li>
<rdf:li>
<rdf:Description ID="prefs-unix" nc:name="Preferences" nc:link="prefs.xhtml" nc:platform="unix mac">
<nc:subheadings rdf:resource="#prefs-tree"/>
</rdf:Description>
</rdf:li>
<rdf:li> <rdf:Description ID="popup-blocker" nc:name="Controlling Pop-ups" nc:link="popup.xhtml"/> </rdf:li>
<rdf:li> <rdf:Description ID="cookies" nc:name="Managing Cookies" nc:link="cookies.xhtml"/> </rdf:li>
<rdf:li> <rdf:Description ID="tabbed-browsing" nc:name="Tabbed Browsing" nc:link="tabbed_browsing.xhtml"/> </rdf:li>
<rdf:li> <rdf:Description ID="firebird-keyboard-shortcuts" nc:name="Keyboard Shortcuts" nc:link="shortcuts.xhtml"/> </rdf:li>
<rdf:li> <rdf:Description ID="firebird-mouse-shortcuts" nc:name="Mouse Shortcuts" nc:link="mouse_shortcuts.xhtml"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y" nc:name="Accessibility Features" nc:link="accessibility.xhtml"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu" nc:name="Menu Reference" nc:link="menu_reference.xhtml"/> </rdf:li>
<rdf:li> <rdf:Description ID="ieusers" nc:name="Help for Internet Explorer Users" nc:link="forieusers.xhtml"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#using-firebird">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="using-firebird-navigating-web-pages" nc:name="Navigating Web Pages" nc:link="using_firebird.xhtml#navigating_web_pages"/> </rdf:li>
<rdf:li> <rdf:Description ID="using-firebird-searching" nc:name="Searching" nc:link="using_firebird.xhtml#searching"/> </rdf:li>
<rdf:li> <rdf:Description ID="using-firebird-copying-saving-and-printing-pages" nc:name="Copying, Saving, and Printing Pages" nc:link="using_firebird.xhtml#copying_saving_and_printing_pages"/> </rdf:li>
<rdf:li> <rdf:Description ID="using-firebird-improving-speed-and-efficiency" nc:name="Improving Speed and Efficiency" nc:link="using_firebird.xhtml#improving_speed_and_efficiency"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#using-download-manager">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="using-download-manager-whatis" nc:name="What is the Download Manager?" nc:link="download_manager.xhtml#what_is_download_manager"/> </rdf:li>
<rdf:li> <rdf:Description ID="using-download-manager-can-i-do" nc:name="What can I do with the Download Manager?" nc:link="download_manager.xhtml#do_with_download_manager"/> </rdf:li>
<rdf:li> <rdf:Description ID="using-download-manager-prefs-win" nc:name="Download Manager Options" nc:link="download_manager.xhtml#download_manager_options" nc:platform="win os2"/> </rdf:li>
<rdf:li> <rdf:Description ID="using-download-manager-prefs-unix" nc:name="Download Manager Preferences" nc:link="download_manager.xhtml#download_manager_options" nc:platform="unix mac"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#using-firebird-navigating-web-pages">
<nc:subheadings>
<rdf:Seq>
<rdf:li><rdf:Description ID="using-firebird-viewing-your-home-page" nc:name="Viewing your Home Page" nc:link="using_firebird.xhtml#viewing_your_home_page"/> </rdf:li>
<rdf:li><rdf:Description ID="using-firebird-moving-to-another-page" nc:name="Moving to Another Page" nc:link="using_firebird.xhtml#moving_to_another_page"/> </rdf:li>
<rdf:li><rdf:Description ID="using-firebird-clicking-a-link" nc:name="Clicking a Link" nc:link="using_firebird.xhtml#clicking_a_link"/> </rdf:li>
<rdf:li><rdf:Description ID="using-firebird-retracing-your-steps" nc:name="Retracing Your Steps" nc:link="using_firebird.xhtml#retracing_your_steps"/> </rdf:li>
<rdf:li><rdf:Description ID="using-firebird-stopping-and-reloading" nc:name="Stopping and Reloading" nc:link="using_firebird.xhtml#stopping_and_reloading"/> </rdf:li>
<rdf:li><rdf:Description ID="using-firebird-tabbed-browsing" nc:name="Tabbed Browsing" nc:link="tabbed_browsing.xhtml"/> </rdf:li>
<rdf:li><rdf:Description ID="using-firebird-sidebar" nc:name="Using the Sidebar" nc:link="using_firebird.xhtml#using_the_sidebar"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#using-firebird-searching">
<nc:subheadings>
<rdf:Seq>
<rdf:li><rdf:Description ID="use-firebird-searching-the-web" nc:name="Searching the Web" nc:link="using_firebird.xhtml#searching_the_web"/> </rdf:li>
<rdf:li><rdf:Description ID="use-firebird-searching-on-selected-words-in-a-web-page" nc:name="Searching the Web for Words Selected in a Web Page" nc:link="using_firebird.xhtml#searching_on_selected_words_in_a_web_page"/> </rdf:li>
<rdf:li><rdf:Description ID="use-firebird-searching-within-a-page" nc:name="Searching Within a Page" nc:link="using_firebird.xhtml#searching_within_a_page"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#using-firebird-copying-saving-and-printing-pages">
<nc:subheadings>
<rdf:Seq>
<rdf:li><rdf:Description ID="using-firebird-copying-part-of-a-page" nc:name="Copying Part of a Page" nc:link="using_firebird.xhtml#copying_part_of_a_page"/> </rdf:li>
<rdf:li><rdf:Description ID="using-firebird-saving-all-or-part-of-a-page" nc:name="Saving a Page" nc:link="using_firebird.xhtml#saving_all_or_part_of_a_page"/> </rdf:li>
<rdf:li><rdf:Description ID="using-firebird-printing-a-page" nc:name="Printing a Page" nc:link="using_firebird.xhtml#printing_a_page"/> </rdf:li>
<rdf:li><rdf:Description ID="using-firebird-using-print-preview" nc:name="Using Print Preview" nc:link="using_firebird.xhtml#using_print_preview" nc:platform="win unix os2"/> </rdf:li>
<rdf:li><rdf:Description ID="using-firebird-using-page-setup" nc:name="Using Page Setup" nc:link="using_firebird.xhtml#using_page_setup"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#using-firebird-improving-speed-and-efficiency">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="using-firebird-managing-different-file-types" nc:name="Managing Different File Types" nc:link="using_firebird.xhtml#managing_different_file_types"/> </rdf:li>
<rdf:li> <rdf:Description ID="using-firebird-making-firebird-default-browser" nc:name="Make Default Browser" nc:link="using_firebird.xhtml#making_firebird_your_default_browser"/> </rdf:li>
<rdf:li> <rdf:Description ID="using-firebird-cache-prefs-win" nc:name="Cache Options" nc:link="using_firebird.xhtml#changing_cache_settings" nc:platform="win os2"/> </rdf:li>
<rdf:li> <rdf:Description ID="using-firebird-cache-prefs-unix" nc:name="Cache Preferences" nc:link="using_firebird.xhtml#changing_cache_settings" nc:platform="mac unix"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#customize-firebird">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="customize-toolbars" nc:name="Toolbars" nc:link="customization.xhtml#toolbars"/> </rdf:li>
<rdf:li> <rdf:Description ID="add-ons" nc:name="Add-ons (extensions and themes)" nc:link="customization.xhtml#add_ons"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#customize-toolbars">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="customize-toolbar-rearrange" nc:name="Rearranging Toolbar Items" nc:link="customization.xhtml#rearranging_toolbar_items"/> </rdf:li>
<rdf:li> <rdf:Description ID="customize-toolbars-adding" nc:name="Hiding, Adding, and Removing Toolbars" nc:link="customization.xhtml#adding_removing_toolbars"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#add-ons">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="add-ons-installing" nc:name="Getting and Installing Add-ons" nc:link="customization.xhtml#add_ons_installing"/> </rdf:li>
<rdf:li> <rdf:Description ID="add-ons-manager" nc:name="Using the Add-ons manager" nc:link="customization.xhtml#add_ons_manager"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#popup-blocker">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="popup-blocker-what-are-popups" nc:name="What are Pop-ups?" nc:link="popup.xhtml#what_are_popups"/> </rdf:li>
<rdf:li> <rdf:Description ID="popup-blocker-prefs-win" nc:name="Pop-up Blocker Options" nc:link="popup.xhtml#popup_blocker_preferences" nc:platform="win os2"/> </rdf:li>
<rdf:li> <rdf:Description ID="popup-blocker-prefs-unix" nc:name="Pop-up Blocker Preferences" nc:link="popup.xhtml#popup_blocker_preferences" nc:platform="unix mac"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#cookies">
<nc:subheadings>
<rdf:Seq>
<rdf:li><rdf:Description ID="cookies-what-is-a-cookie" nc:name="What is a Cookie?" nc:link="cookies.xhtml#what_is_a_cookie"/> </rdf:li>
<rdf:li><rdf:Description ID="cookies-setting-up-cookie-rules" nc:name="Setting Up Cookie Rules" nc:link="cookies.xhtml#setting_up_cookie_rules"/> </rdf:li>
<rdf:li><rdf:Description ID="cookies-all-the-settings" nc:name="Cookie Settings" nc:link="cookies.xhtml#all_the_settings"/> </rdf:li>
<rdf:li><rdf:Description ID="cookies-accepting-and-blocking-cookies" nc:name="Accepting and Blocking Cookies" nc:link="cookies.xhtml#accepting_and_blocking_cookies"/> </rdf:li>
<rdf:li><rdf:Description ID="cookies-exceptions" nc:name="The Cookies Exceptions Window" nc:link="cookies.xhtml#cookies_exceptions"/> </rdf:li>
<rdf:li><rdf:Description ID="cookies-view" nc:name="The View Cookies Window" nc:link="cookies.xhtml#view_cookies"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#tabbed-browsing">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="tabbed-browsing-creating-loading-tabs" nc:name="Creating and Loading Tabs" nc:link="tabbed_browsing.xhtml#creating_loading_tabs"/> </rdf:li>
<rdf:li> <rdf:Description ID="tabbed-browsing-moving-tabs" nc:name="Moving Tabs Within a Window" nc:link="tabbed_browsing.xhtml#moving_tabs"/> </rdf:li>
<rdf:li> <rdf:Description ID="tabbed-browsing-closing-tabs" nc:name="Closing and Restoring Tabs" nc:link="tabbed_browsing.xhtml#closing_tabs"/> </rdf:li>
<rdf:li> <rdf:Description ID="tabbed-browsing-customizing" nc:name="Customizing Tabbed Browsing" nc:link="tabbed_browsing.xhtml#customizing"/> </rdf:li>
<rdf:li> <rdf:Description ID="tabbed-browsing-tips-tricks" nc:name="Tips and Tricks" nc:link="tabbed_browsing.xhtml#tips_tricks"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#a11y">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="a11y-keyboard-navigation" nc:name="Using a Keyboard" nc:link="accessibility.xhtml#using_a_keyboard"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-mouse-navigation" nc:name="Using a Mouse" nc:link="accessibility.xhtml#using_a_mouse"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-fonts-and-colors" nc:name="Fonts and Colors" nc:link="accessibility.xhtml#fonts_and_colors"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-web-content" nc:name="Controlling Web Content" nc:link="accessibility.xhtml#controlling_web_content"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-compatibility" nc:name="Compatibility with Assistive Technologies" nc:link="accessibility.xhtml#compatibility_with_assistive_technologies"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-online" nc:name="Finding Help Online" nc:link="accessibility.xhtml#finding_help_online"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#a11y-keyboard-navigation">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="a11y-keyboard-shortcuts" nc:name="Keyboard Shortcuts" nc:link="accessibility.xhtml#keyboard_shortcuts"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-caret-browsing" nc:name="Always Use the Cursor Keys to Navigate Within Webpages" nc:link="accessibility.xhtml#always_use_cursor_keys"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-typeahead-find" nc:name="Search for Text When I Start Typing" nc:link="accessibility.xhtml#find_as_you_type"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#a11y-mouse-navigation">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="a11y-mouse-shortcuts" nc:name="Common Mouse Shortcuts" nc:link="accessibility.xhtml#common_mouse_shortcuts"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#a11y-fonts-and-colors">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="a11y-override-fonts" nc:name="Overriding Page Fonts" nc:link="accessibility.xhtml#overriding_page_fonts"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-minimum-font-size" nc:name="Setting a Minimum Font Size" nc:link="accessibility.xhtml#setting_a_minimum_font_size"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-text-zoom" nc:name="Resizing Page Text" nc:link="accessibility.xhtml#resizing_page_text"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-override-colors" nc:name="Overriding Page Colors" nc:link="accessibility.xhtml#overriding_page_colors"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-high-contrast" nc:name="Using a High Contrast Theme" nc:link="accessibility.xhtml#using_a_high_contrast_theme" nc:platform="win unix"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#a11y-web-content">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="a11y-popup-windows" nc:name="Blocking Pop-up Windows" nc:link="accessibility.xhtml#blocking_popup_windows"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-java" nc:name="Turning Off Java Applets" nc:link="accessibility.xhtml#turning_off_java_applets"/> </rdf:li>
<rdf:li> <rdf:Description ID="a11y-javascript" nc:name="Restricting JavaScript Behavior" nc:link="accessibility.xhtml#restricting_javascript_behavior"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-firefox" nc:name="&brandShortName;" nc:link="menu_reference.xhtml#firefox" nc:platform="mac"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file" nc:name="File" nc:link="menu_reference.xhtml#file"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-edit" nc:name="Edit" nc:link="menu_reference.xhtml#edit"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view" nc:name="View" nc:link="menu_reference.xhtml#view"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-go" nc:name="History" nc:link="menu_reference.xhtml#go"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-bookmarks" nc:name="Bookmarks" nc:link="menu_reference.xhtml#bookmarks"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-tools" nc:name="Tools" nc:link="menu_reference.xhtml#tools"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-window" nc:name="Window" nc:link="menu_reference.xhtml#window" nc:platform="mac"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-help" nc:name="Help" nc:link="menu_reference.xhtml#help"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-firefox">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-firefox-about" nc:name="About &brandFullName;" nc:link="menu_reference.xhtml#about_mac"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-firefox-preferences" nc:name="Preferences…" nc:link="menu_reference.xhtml#prefs_mac"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-firefox-quit" nc:name="Quit &brandShortName;" nc:link="menu_reference.xhtml#quit_mac"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-file">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-file-new-window" nc:name="New Window" nc:link="menu_reference.xhtml#new_window"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-new-tab" nc:name="New Tab" nc:link="menu_reference.xhtml#new_tab"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-open-location" nc:name="Open Location…" nc:link="menu_reference.xhtml#open_location"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-open-file" nc:name="Open File…" nc:link="menu_reference.xhtml#open_file"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-close" nc:name="Close (Window)" nc:link="menu_reference.xhtml#close"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-close-tab" nc:name="Close Tab" nc:link="menu_reference.xhtml#close_tab"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-save-page-as" nc:name="Save Page As…" nc:link="menu_reference.xhtml#save_page_as"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-send-page" nc:name="Send Link…" nc:link="menu_reference.xhtml#send_page"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-page-setup" nc:name="Page Setup…" nc:link="menu_reference.xhtml#page_setup"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-print-preview" nc:name="Print Preview" nc:link="menu_reference.xhtml#print_preview" nc:platform="win unix os2"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-print" nc:name="Print…" nc:link="menu_reference.xhtml#print"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-import" nc:name="Import…" nc:link="menu_reference.xhtml#import"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-work-offline" nc:name="Work Offline" nc:link="menu_reference.xhtml#work_offline"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-exit-win" nc:name="Exit" nc:link="menu_reference.xhtml#exit" nc:platform="win os2"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-file-exit-unix" nc:name="Quit" nc:link="menu_reference.xhtml#exit" nc:platform="unix"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-edit">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-view-undo" nc:name="Undo" nc:link="menu_reference.xhtml#undo"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-redo" nc:name="Redo" nc:link="menu_reference.xhtml#redo"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-cut" nc:name="Cut" nc:link="menu_reference.xhtml#cut"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-copy" nc:name="Copy" nc:link="menu_reference.xhtml#copy"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-paste" nc:name="Paste" nc:link="menu_reference.xhtml#paste"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-delete" nc:name="Delete" nc:link="menu_reference.xhtml#delete"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-select-all" nc:name="Select All" nc:link="menu_reference.xhtml#select_all"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-find-in-this-page" nc:name="Find in This Page…" nc:link="menu_reference.xhtml#find_in_this_page"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-find-again" nc:name="Find Again" nc:link="menu_reference.xhtml#find_again"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-preferences" nc:name="Preferences" nc:link="menu_reference.xhtml#prefs" nc:platform="unix"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-view">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-view-toolbars" nc:name="Toolbars" nc:link="menu_reference.xhtml#toolbars"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-status-bar" nc:name="Status Bar" nc:link="menu_reference.xhtml#status_bar"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-sidebar" nc:name="Sidebar" nc:link="menu_reference.xhtml#sidebar"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-stop" nc:name="Stop" nc:link="menu_reference.xhtml#stop"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-reload" nc:name="Reload" nc:link="menu_reference.xhtml#reload"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-text-size" nc:name="Text Size" nc:link="menu_reference.xhtml#text_size"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-page-style" nc:name="Page Style" nc:link="menu_reference.xhtml#page_style"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-character-encoding" nc:name="Character Encoding" nc:link="menu_reference.xhtml#character_encoding"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-page-source" nc:name="Page Source" nc:link="menu_reference.xhtml#page_source"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-full-screen" nc:name="Full Screen" nc:link="menu_reference.xhtml#full_screen" nc:platform="win unix os2"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-view-toolbars">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-view-toolbars-navigation" nc:name="Navigation Toolbar" nc:link="menu_reference.xhtml#navigation_toolbar"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-toolbars-bookmarks" nc:name="Bookmarks Toolbar" nc:link="menu_reference.xhtml#bookmarks_toolbar"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-toolbars-customize" nc:name="Customize" nc:link="menu_reference.xhtml#customize"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-view-sidebar">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-view-sidebar-bookmarks" nc:name="Bookmarks" nc:link="menu_reference.xhtml#view_sidebar_bookmarks"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-sidebar-history" nc:name="History" nc:link="menu_reference.xhtml#view_sidebar_history"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-view-text-size">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-view-text-size-increase" nc:name="Increase" nc:link="menu_reference.xhtml#increase_text_size"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-text-size-decrease" nc:name="Decrease" nc:link="menu_reference.xhtml#decrease_text_size"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-text-size-reset" nc:name="Normal" nc:link="menu_reference.xhtml#reset_text_size"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-view-page-style">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-view-page-style-no-style" nc:name="No Style" nc:link="menu_reference.xhtml#no_style"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-view-page-style-basic-page-style" nc:name="Basic Page Style" nc:link="menu_reference.xhtml#basic_page_style"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-go">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-go-back" nc:name="Back" nc:link="menu_reference.xhtml#back"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-go-forward" nc:name="Forward" nc:link="menu_reference.xhtml#forward"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-go-home" nc:name="Home" nc:link="menu_reference.xhtml#home"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-go-closed-tabs" nc:name="Recently Closed Tabs" nc:link="menu_reference.xhtml#closed_tabs"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-go-history" nc:name="Show in Sidebar" nc:link="menu_reference.xhtml#go_history"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-bookmarks">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-bookmarks-add-to-bookmarks" nc:name="Bookmark This Page" nc:link="menu_reference.xhtml#add_to_bookmarks"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-bookmarks-subscribe" nc:name="Subscribe to This Page…" nc:link="menu_reference.xhtml#subscribe"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-bookmarks-bookmark-all-tabs" nc:name="Bookmark All Tabs…" nc:link="menu_reference.xhtml#bookmark_all_tabs"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-bookmarks-organize-bookmarks" nc:name="Organize Bookmarks…" nc:link="menu_reference.xhtml#organize_bookmarks"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-tools">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-tools-web-search" nc:name="Web Search" nc:link="menu_reference.xhtml#web_search"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-tools-downloads" nc:name="Downloads" nc:link="menu_reference.xhtml#downloads"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-tools-add-ons" nc:name="Add-ons" nc:link="menu_reference.xhtml#add_ons"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-tools-javascript-console" nc:name="Error Console" nc:link="menu_reference.xhtml#javascript_console"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-tools-page-info" nc:name="Page Info" nc:link="menu_reference.xhtml#page_info"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-tools-clear-private-data" nc:name="Clear Private Data…" nc:link="menu_reference.xhtml#clear_private_data"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-tools-options" nc:name="Options" nc:link="menu_reference.xhtml#options" nc:platform="win os2"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-window">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-window-minimize" nc:name="Minimize" nc:link="menu_reference.xhtml#minimize"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-window-zoom" nc:name="Zoom" nc:link="menu_reference.xhtml#zoom"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-window-open-windows" nc:name="(Open Windows)" nc:link="menu_reference.xhtml#open-windows"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#menu-help">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="menu-help-help-contents" nc:name="Help Contents" nc:link="menu_reference.xhtml#help_contents" nc:platform="win unix os2"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-help-help-contents-mac" nc:name="&brandShortName; Help" nc:link="menu_reference.xhtml#help_contents" nc:platform="mac"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-help-for-ie-users" nc:name="For Internet Explorer Users" nc:link="menu_reference.xhtml#for_ie_users" nc:platform="win"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-help-relnotes" nc:name="Release Notes" nc:link="menu_reference.xhtml#relnotes"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-help-report-broken-web-site" nc:name="Report Broken Web Site…" nc:link="menu_reference.xhtml#reporter"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-help-report-web-forgery" nc:name="Report Web Forgery…" nc:link="menu_reference.xhtml#web_forgery"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-help-check-for-updates" nc:name="Check for Updates…" nc:link="menu_reference.xhtml#check_for_updates"/> </rdf:li>
<rdf:li> <rdf:Description ID="menu-help-about-mozilla-firebird" nc:name="About &brandFullName;" nc:link="menu_reference.xhtml#about_mozilla_firebird" nc:platform="win unix os2"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<rdf:Description about="#ieusers">
<nc:subheadings>
<rdf:Seq>
<rdf:li> <rdf:Description ID="ieusers-firebird-ie-terminology-differences" nc:name="Terminology Differences" nc:link="forieusers.xhtml#firebird_and_internet_explorer_terminology_differences"/> </rdf:li>
<rdf:li> <rdf:Description ID="ieusers-about-your-ie-settings" nc:name="About Your IE Favorites and Settings" nc:link="forieusers.xhtml#about_your_ie_settings"/> </rdf:li>
<rdf:li> <rdf:Description ID="ieusers-firebirds-features" nc:name="&brandFullName;'s Features" nc:link="forieusers.xhtml#firebirds_features"/> </rdf:li>
<rdf:li> <rdf:Description ID="ieusers-keyboard-shortcuts" nc:name="Keyboard Shortcuts" nc:link="forieusers.xhtml#keyboard_shortcuts"/> </rdf:li>
</rdf:Seq>
</nc:subheadings>
</rdf:Description>
<!-- The following nodes are intentionally linkable but not displayable -->
<Description rdf:ID="prefs-languages" nc:name="Languages" nc:link="prefs.xhtml#languages"/>
<Description rdf:ID="prefs-fonts-and-colors" nc:name="Fonts &amp; Colors" nc:link="prefs.xhtml#fonts_and_colors"/>
<Description rdf:ID="prefs-connection-settings" nc:name="Connection Settings" nc:link="prefs.xhtml#connection_settings"/>
<!-- The following nodes are trees used multiple times in the hierarchy
(for platform-specific reasons). To display one of these trees,
include an nc:subheadings element with an rdf:ID attribute set to
"#" plus the value of the rdf:ID for the appropriate tree within
the appropriate rdf:Description element. -->
<Seq rdf:ID="prefs-tree">
<li><Description ID="prefs-main" nc:name="Main" nc:link="prefs.xhtml#main_options"/></li>
<li><Description ID="prefs-tabs" nc:name="Tabs" nc:link="prefs.xhtml#tabs_options"/></li>
<li><Description ID="prefs-content" nc:name="Content" nc:link="prefs.xhtml#content_options"/></li>
<li><Description ID="prefs-applications" nc:name="Applications" nc:link="prefs.xhtml#applications_options"/></li>
<li><Description ID="prefs-privacy" nc:name="Privacy" nc:link="prefs.xhtml#privacy_options"/></li>
<li><Description ID="prefs-security" nc:name="Security" nc:link="prefs.xhtml#security_options"/></li>
<li><Description ID="prefs-advanced" nc:name="Advanced" nc:link="prefs.xhtml#advanced_options"/></li>
</Seq>
<!-- The following are subnodes of trees used multiple times in the hierarchy. -->
<Description rdf:about="#prefs-main">
<nc:subheadings>
<Seq>
<li><Description rdf:ID="prefs-startup" nc:name="Startup" nc:link="prefs.xhtml#startup"/></li>
<li><Description rdf:ID="prefs-downloads" nc:name="Downloads" nc:link="prefs.xhtml#downloads"/></li>
<li><Description rdf:ID="prefs-system-defaults" nc:name="System Defaults" nc:link="prefs.xhtml#system_defaults"/></li>
<li><Description rdf:ID="prefs-addons" nc:name="Add-ons" nc:link="prefs.xhtml#addons"/></li>
</Seq>
</nc:subheadings>
</Description>
<Description rdf:about="#prefs-content">
<nc:subheadings>
<Seq>
<li><Description rdf:ID="prefs-advanced-javascript" nc:name="Advanced Javascript Settings" nc:link="prefs.xhtml#advanced_javascript"/></li>
<li><Description rdf:ID="prefs-fonts-and-colors" nc:name="Fonts and Colors" nc:link="prefs.xhtml#fonts_and_colors"/></li>
</Seq>
</nc:subheadings>
</Description>
<Description rdf:about="#prefs-privacy">
<nc:subheadings>
<rdf:Seq>
<li><Description rdf:ID="prefs-privacy-history" nc:name="History" nc:link="prefs.xhtml#privacy_history"/></li>
<li><Description rdf:ID="prefs-privacy-cookies" nc:name="Cookies" nc:link="prefs.xhtml#privacy_cookies"/></li>
<li><Description rdf:ID="prefs-clear-private-data" nc:name="Private Data" nc:link="prefs.xhtml#private_data"/></li>
</rdf:Seq>
</nc:subheadings>
</Description>
<Description rdf:about="#prefs-security">
<nc:subheadings>
<Seq>
<li><Description rdf:ID="prefs-passwords" nc:name="Passwords" nc:link="prefs.xhtml#security_passwords"/></li>
<li><Description rdf:ID="prefs-warning-messages" nc:name="Warning Messages" nc:link="prefs.xhtml#warning_messages"/></li>
</Seq>
</nc:subheadings>
</Description>
<Description rdf:about="#prefs-advanced">
<nc:subheadings>
<Seq>
<li><Description rdf:ID="prefs-advanced-general" nc:name="General" nc:link="prefs.xhtml#advanced_general"/></li>
<li><Description rdf:ID="prefs-advanced-network" nc:name="Network" nc:link="prefs.xhtml#advanced_network"/></li>
<li><Description rdf:ID="prefs-advanced-update" nc:name="Update" nc:link="prefs.xhtml#advanced_update"/></li>
<li><Description rdf:ID="prefs-advanced-encryption" nc:name="Encryption" nc:link="prefs.xhtml#advanced_encryption"/></li>
</Seq>
</nc:subheadings>
</Description>
</rdf:RDF>

View File

@ -1,32 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE window [
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
%brandDTD;
]>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:nc="http://home.netscape.com/NC-rdf#">
<!-- MOZILLA MASTER HELP DOCUMENT -->
<Description rdf:about="urn:root"
nc:title="&brandFullName; Help"
nc:defaulttopic="firefox-help"
nc:base="chrome://browser/locale/help/">
<nc:panellist>
<Seq>
<li>
<Description nc:panelid="toc"
nc:datasources="chrome://help/locale/help-toc.rdf firebird-toc.rdf"/>
</li>
<li>
<Description nc:panelid="search"
nc:datasources="search-db.rdf"
nc:emptysearchtext="[No matching items found.]"
nc:emptysearchlink="chrome://help/locale/welcome.xhtml#search_tips"/>
</li>
</Seq>
</nc:panellist>
</Description>
</RDF>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
<!ENTITY % regionDTD SYSTEM "chrome://global-region/locale/region.dtd" >
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%brandDTD;
%regionDTD;
%platformDTD;
]>
<!--
Contributors:
R.J. Keller <rlk@trfenv.com> (original author)
Jeff Walden <jwalden+code@mit.edu>
Steffen Wilberg <steffen.wilberg@web.de>
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>&brandFullName; Help</title>
<link rel="stylesheet" type="text/css" href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>Welcome to &brandFullName; Help</h1>
<p>To display information about &brandFullName; in this window, click topics in
the <em>Contents</em> sidebar. Click the <span class="noMac">plus icon</span>
<span class="mac">triangle</span> next to a topic to see its subtopics.</p>
<p>You can also use the <em>Search</em> bar to find specific
information within &brandShortName; Help. For more information on using
&brandFullName; Help, see <a href="chrome://help/locale/welcome.xhtml">Using
the Help Window</a>.</p>
<p>If you can't find what you need in built-in &brandShortName; Help, you can
find more help and support options online at <a
href="http://www.mozilla.org/support/firefox/" target="_blank">&brandShortName; Help</a>.</p>
<div class="contentsBox"><em>09 July 2005</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,115 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>For Internet Explorer Users</title>
<link rel="stylesheet" type="text/css" href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>For Internet Explorer Users</h1>
<p>If you've been using Microsoft&reg; Internet Explorer, you'll find that
it's easy to begin using &brandFullName;.</p>
<p><strong>Note:</strong> This information applies to &brandFullName; for Windows and
Mac OS.</p>
<div class="contentsBox">In this section:
<ul>
<li><a href="#firebird_and_internet_explorer_terminology_differences">
Terminology Differences</a></li>
<li><a href="#about_your_ie_settings">About Your IE Favorites and Settings</a></li>
<li><a href="#firebirds_features">&brandShortName;'s Features</a></li>
<li><a href="#keyboard_shortcuts">Keyboard Shortcuts</a></li>
</ul>
</div>
<h2 id="firebird_and_internet_explorer_terminology_differences">Terminology
Differences</h2>
<table width="95%" border="1">
<thead>
<tr>
<th>Internet Explorer</th>
<th>&brandShortName;</th>
</tr>
</thead>
<tbody>
<tr class="noMac">
<td>Internet Options</td>
<td>&pref.pluralCaps;</td>
</tr>
<tr class="noMac">
<td>Temporary Internet Files</td>
<td>Cache</td>
</tr>
<tr>
<td>Favorites</td>
<td>Bookmarks</td>
</tr>
<tr>
<td>Address Bar</td>
<td>Location Bar</td>
</tr>
<tr>
<td>Refresh</td>
<td>Reload</td>
</tr>
<tr>
<td><span class="noMac">Links Bar</span><span class="mac">Favorites Bar</span></td>
<td>Bookmarks Toolbar</td>
</tr>
<tr>
<td><span class="noMac">Copy Shortcut</span><span class="mac">Copy Link to Clipboard</span></td>
<td>Copy Link Location</td>
</tr>
<tr>
<td><span class="noMac">Save Target As</span><span class="mac">Download Link to Disk</span></td>
<td>Save Link As</td>
</tr>
</tbody>
</table>
<h2 id="about_your_ie_settings">About Your IE Favorites and Settings</h2>
<p>When you first install &brandShortName;, it will import your existing
Internet Explorer settings, including your Favorites, cookies, stored
passwords, and a variety of other data. This saves you time customizing
&brandShortName; to fit your needs.</p>
<h2 id="firebirds_features">&brandShortName;'s Features</h2>
<ul>
<li><strong>Tabbed Browsing</strong>: Instead of opening a separate browser
window for each site you want to visit, you can open multiple sites within
the same window and tab between them. You can also set a group of tabs as
your home page. For more information see <a
href="tabbed_browsing.xhtml">Tabbed Browsing</a>.</li>
<li><strong>Pop-up Window Controls</strong>: Lets you allow or suppress both
pop-up and pop-under windows.</li>
<li><strong>Cookie Manager</strong>: Lets you change what &brandShortName; will
do when accepting cookies.</li>
<li><strong>Download Manager</strong>: Organizes your downloads by storing
them in a single window to minimize clutter. You have full access to
download statistics without using unnecessary multiple windows for each
download.</li>
<li><strong>Image Manager</strong>: Enables you to disable images from certain
web sites or disable them altogether. This is useful if you wish to decrease
the amount of time it takes for web sites to load.</li>
</ul>
<h2 id="keyboard_shortcuts">Keyboard Shortcuts</h2>
<p>You will notice that Microsoft Internet Explorer and &brandShortName; share many of
the same shortcut keys. For a full list of shortcut keys, see the
<a href="shortcuts.xhtml">List of &brandShortName; Keyboard Shortcuts</a>.</p>
<div class="contentsBox"><em>10 December 2004</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,293 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]
>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Glossary</title>
<link rel="stylesheet" type="text/css" href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<p>This glossary is provided for your information only; it is not meant to be relied
upon as a complete or authoritative description of the terms defined below or of
the privacy and/or security ramifications of the technologies described.</p>
<hr/>
<h1 id="glossary">Glossary</h1>
<dl>
<dt id="authentication">authentication</dt>
<dd>The use of a password, certificate, personal identification number
(PIN), or other information to validate an identity over a computer
network.</dd>
<dt id="bookmark">bookmark</dt>
<dd>A stored web page address (<a href="#Uniform_Resource_Locator">URL</a>)
that you can go to easily by clicking a bookmark icon in the Bookmarks Toolbar
or choosing the bookmark's name from the Bookmarks menu.</dd>
<dt id="Bookmarks_Toolbar">Bookmarks Toolbar</dt>
<dd>The customizable toolbar that appears just below the Location Bar by
default in &brandShortName;. It contains buttons for your favorite bookmarks
(or folders containing groups of bookmarks) that you can add or remove.</dd>
<dt id="cache">cache</dt>
<dd>A collection of web page copies stored on your computer's hard disk or in
its random-access memory (RAM). &brandShortName; accumulates these copies as you
browse the Web. When you click a link or type a
<a href="#Uniform_Resource_Locator">URL</a> to fetch a particular web page for
which the cache already contains a copy, &brandShortName; compares the cached copy
to the original. If there have been no changes, &brandShortName; uses the cached
copy rather than refetching the original, saving processing and download time.</dd>
<dt id="certificate">certificate</dt>
<dd>The digital equivalent of an ID card. A certificate specifies the name of an
individual, company, or other entity and certifies that a public key, which
is included in the certificate, belongs to that entity. When you digitally
sign a message or other data, the digital signature for that message is
created with the aid of the private key that corresponds to the public key
in your certificate.</dd>
<dt id="client">client</dt>
<dd>Software (such as an Internet browser) that sends requests to and receives
information from a <a href="#server">server</a>, which is usually running
on a different computer. A computer on which client software runs is also
described as a client.</dd>
<dt id="cookie">cookie</dt>
<dd>A small bit of information stored on your computer by some web sites. When
you visit such a site, the site asks &brandShortName; to place one or more cookies
on your hard disk. Later, when you return to the site, &brandShortName; sends the
site the cookies that belong to it. Cookies help web sites keep track of
information about you, such as the contents of your shopping cart. You can set
your cookies options to control how cookies are used and how much information
you are willing to let web sites store on them.</dd>
<dt id="cryptography">cryptography</dt>
<dd>The art and practice of scrambling (encrypting) and unscrambling (decrypting)
information. For example, cryptographic techniques are used to scramble and unscramble
information flowing between commercial web sites and &brandShortName;.</dd>
<dt id="decryption">decryption</dt>
<dd>The process of unscrambling data that has been encrypted. See also
<a href="#encryption">encryption</a>.</dd>
<dt id="digital_ID">digital ID</dt>
<dd>See <a href="#certificate">certificate</a>.</dd>
<dt id="encryption">encryption</dt>
<dd>The process of scrambling information in a way that disguises its meaning.
For example, encrypted connections between computers make it very difficult
for third-parties to unscramble, or <em>decrypt,</em> information flowing
over the connection. Encrypted information can be decrypted only by someone
who possesses the appropriate key.</dd>
<dt id="XML">Extensible Markup Language (XML)</dt>
<dd>An open standard for describing data. Unlike HTML, XML allows the
developer of a web page to define special tags. For more information,
see the online W3C document <a href="http://www.w3.org/XML/">Extensible
Markup Language (XML)</a>.</dd>
<dt id="feed">feed</dt>
<dd>An <a href="#XML">XML</a> web page that contains a list of links to
other web pages. Special programs can read feeds to create a list
of headlines from the links, automatically updating the list as it changes.
News web sites use feeds to quickly publish the latest headlines, and
personal online journals often use feeds to quickly notify visitors about
new entries. See also <a href="#live_bookmark">Live Bookmark</a>.</dd>
<dt id="File_Transfer_Protocol">File Transfer Protocol (FTP)</dt>
<dd>A standard that allows users to transfer files from one computer to
another over a network. You can use &brandShortName; to fetch files
using FTP.</dd>
<dt id="FIPS_PUBS_140-1">FIPS PUBS 140-1</dt>
<dd>Federal Information Processing Standards Publications (FIPS PUBS) 140-1 is
a US government standard for implementations of cryptographic modules &mdash;
hardware or software that encrypts and decrypts data or performs other
cryptographic operations (such as creating or verifying digital signatures).
Many products sold to the US government must comply with one or more of the
FIPS standards.</dd>
<dt id="home_page">home page</dt>
<dd>The page &brandShortName; is set to display every time you launch it or when you
click the <em>Home</em> button. Also used to refer to the main page for a
web site from which you can explore the rest of the site.</dd>
<dt id="Hypertext_Markup_Language">Hypertext Markup Language (HTML)</dt>
<dd>The document format used for web pages. The HTML standard defines tags, or
codes, used to define the text layout, fonts, style, images, and other
elements that make up a web page.</dd>
<dt id="Internet">Internet</dt>
<dd>A worldwide network of millions of computers that communicate with each
other using standard protocols such as
<a href="#TCP_IP">TCP/IP</a>.
Originally developed for the US military in 1969, the Internet grew to include
educational and research institutions and, in the late 1990s, millions of
businesses, organizations, and individuals. Today the Internet is used for email,
browsing the <a href="#World_Wide_Web">World Wide Web</a>, instant messaging,
mailing lists and usegroups, and many other purposes.</dd>
<dt id="Internet_protocol_address">Internet protocol address (IP address)</dt>
<dd>The address of a computer on a
<a href="#TCP_IP">TCP/IP</a> network.
Every computer on the Internet has an IP address. <a href="#client">Clients</a>
have either a permanent IP address or one that is dynamically assigned to them
each time they connect with the network.</dd>
<dt id="Java">Java</dt>
<dd>A programming language developed by Sun Microsystems. A single Java program
can run on many different kinds of computers, thus avoiding the need for
programmers to create a separate version of each program for each kind of
computer. After Java is installed, &brandShortName; can automatically download
and run Java programs (also called applets).</dd>
<dt id="JavaScript">JavaScript</dt>
<dd>A scripting language commonly used to construct web pages. Programmers use
JavaScript to make web pages more interactive; JavaScript is often used to
dynamically validate forms and select buttons. JavaScript can be used with
Java, but it is technically a separate language. Java is not required for
JavaScript to work correctly.</dd>
<dt id="live_bookmark">Live Bookmark</dt>
<dd>A special type of bookmark that acts as a folder to contain the links in a
<a href="#feed">feed</a>. You can create a Live Bookmark by visiting a site
with a feed, clicking on the Live Bookmark icon in the Location Bar, and
selecting the feed you wish to use.</dd>
<dt id="location_bar">Location Bar</dt>
<dd>The field (and associated buttons) near the top of a &brandShortName; window
where you can type a <a href="#Uniform_Resource_Locator">URL</a> or search terms.</dd>
<dt id="master_password">master password</dt>
<dd>A password used to protect saved passwords and other private data.
&brandShortName; will prompt you for your master password when you wish to
access this data. If you have multiple security devices, each security device
will require a separate master password.</dd>
<dt id="navigation_toolbar">Navigation Toolbar</dt>
<dd>The toolbar near the top of the &brandShortName; window that includes
the <em>Back</em> and <em>Forward</em> buttons.</dd>
<dt id="Password_Manager">Password Manager</dt>
<dd>The part of &brandShortName; that can help you remember some or all of
your names and passwords by storing them on your computer's hard disk and
entering them for you automatically when you visit such sites.</dd>
<dt id="PKCS_11">PKCS #11</dt>
<dd>The public-key cryptography standard that governs security devices such
as smart cards.</dd>
<dt id="Plugin">Plugin</dt>
<dd>Plugins add new capabilities to &brandShortName;, such as the ability to
play audio or video clips. Unlike other kinds of helper applications, a Plugin
installs itself into the Plugins directory within the main
&brandShortName; installation directory and typically can be opened within
&brandShortName; itself (internally). For example, an audio Plugin lets you
listen to audio files on a web page or in an e-mail message. Macromedia
Flash Player and Java are both examples of Plugin applications.</dd>
<dt id="private_key">private key</dt>
<dd>One of a pair of keys used in public-key cryptography. The private key is
kept secret and is used to decrypt data that has been encrypted with the
corresponding public key.</dd>
<dt id="proxy">proxy</dt>
<dd>An intermediary or &quot;go-between&quot; program that acts as both a
<a href="#server">server</a> and a <a href="#client">client</a> for
the purpose of making requests on behalf of other clients.</dd>
<dt id="search_engine">search engine</dt>
<dd>A web-based program that allows users to search for and retrieve
specific information from the World Wide Web. The search engine may
search the full text of web documents or a list of keywords; it may
also use librarians who review web documents and index them manually
for retrieval. Typically, the user types a word or phrase into a
search box, and the search engine displays links to relevant web
pages.</dd>
<dt id="secure_site">secure site</dt>
<dd>A site that uses <a href="#encryption">encryption</a> in connections
with &brandShortName; to prevent other malicious Internet users from
viewing transmitted data. When you visit secure sites, &brandShortName;
displays a lock icon in the <a href="#Status_Bar">Status Bar</a> and the
<a href="#location_bar">Location Bar</a>. &brandShortName; also
displays the site's domain name in the Status Bar (to prevent malicious
sites from stealing your data) and turns the background of the Location
Bar to yellow.</dd>
<dd>Some sites may consist of both secure and insecure data; the insecure data
usually is non-private, although it isn't guaranteed to be so. For such
sites &brandShortName; will display a lock icon with a slash through it in
the Status Bar and Location Bar and will <em>not</em> display the site's
domain name in the Status Bar so that you know that the current web page
isn't completely secure.</dd>
<dt id="SSL">Secure Sockets Layer (SSL)</dt>
<dd>A protocol that allows mutual authentication between a
<a href="#client">client</a> and a <a href="#server">server</a>
for the purpose of establishing an authenticated and encrypted
connection. SSL runs above TCP/IP and below HTTP, LDAP, IMAP, NNTP,
and other high-level network protocols. The new Internet Engineering
Task Force (IETF) standard called Transport Layer Security (TLS) is
based on SSL. See also <a href="#authentication">authentication</a>,
<a href="#encryption">encryption</a>.</dd>
<dt id="server">server</dt>
<dd>Software (such as software that serves up web pages) that receives
requests from and sends information to a <a href="#client">client</a>,
which is usually running on a different computer. A computer on which
server software runs is also described as a server.</dd>
<dt id="Status_Bar">Status Bar</dt>
<dd>The toolbar that appears at the bottom of any &brandShortName; window. It
shows status icons on the right.</dd>
<dt id="TLS">TLS</dt>
<dd>See <a href="#SSL">Secure Sockets Layer (SSL)</a>.</dd>
<dt id="TCP_IP">Transmission Control Protocol/Internet Protocol (TCP/IP)</dt>
<dd>A Unix protocol used to connect computers running a variety of operating systems.
TCP/IP is an essential Internet protocol and has become a global standard.</dd>
<dt id="Uniform_Resource_Locator">Uniform Resource Locator (URL)</dt>
<dd>The standardized address that tells &brandShortName; how to locate a file or
other resource on the Web (for example, <tt>http://www.mozilla.org</tt>).
Type URLs into &brandShortName;'s Location Bar to access web pages. URLs
are also used in the links on web pages go to other web pages. Also known
as an Internet or Web address.</dd>
<dt id="web_page">web page</dt>
<dd>A single document on the World Wide Web that is specified by a unique
address or URL. A web page may contain text, hyperlinks, and graphics.</dd>
<dt id="web_site">web site</dt>
<dd>A group of related web pages linked by hyperlinks and managed by a single
company, organization, or individual. A web site may include text, graphics,
audio and video files, and links to other web sites.</dd>
<dt id="World_Wide_Web">World Wide Web</dt>
<dd>Also known as the Web. A portion of the Internet that is made up of web
pages stored by web <a href="#server">servers</a> and displayed by
<a href="#client">clients</a> called web browsers (such as
&brandShortName;).</dd>
</dl>
<p>
[&nbsp;<a href="#glossary">Return to beginning of Glossary</a>&nbsp;]
</p>
<div class="contentsBox"><em>07 April 2005</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,432 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<!--
Contributors:
David Tenser <david.tenser@comhem.se> (original author)
R.J. Keller <rlk@trfenv.com>
Jeff Walden <jwalden+code@mit.edu>
Steffen Wilberg <steffen.wilberg@web.de>
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>&brandFullName; Menu Reference</title>
<link rel="stylesheet" type="text/css" href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>&brandFullName; Menu Reference</h1>
<p>This menu reference describes each menu item in the main
&brandFullName; window.</p>
<div class="contentsBox">In this section:
<ul>
<li class="mac"><a href="#firefox">&brandShortName;</a></li>
<li><a href="#file">File</a></li>
<li><a href="#edit">Edit</a></li>
<li><a href="#view">View</a></li>
<li><a href="#go">History</a></li>
<li><a href="#bookmarks">Bookmarks</a></li>
<li><a href="#tools">Tools</a></li>
<li class="mac"><a href="#window">Window</a></li>
<li><a href="#help">Help</a></li>
</ul>
</div>
<div class="mac">
<h2 id="firefox">&brandShortName;</h2>
<h3 id="about_mac">About &brandFullName;</h3>
<p>Displays a dialog box with information about &brandShortName;, including
the current version and a brief list of credits.</p>
<h3 id="prefs_mac">Preferences…</h3>
<p>Displays the <a href="prefs.xhtml">&pref.pluralCaps; window</a>,
where you can change many &pref.plural; in &brandShortName;.</p>
<h3 id="quit_mac">Quit &brandShortName;</h3>
<p>Closes all &brandShortName; windows, cancels any active downloads, and exits
&brandShortName; completely. If you happen to select this menu item with
more than one tab or window open, &brandShortName; will ask you to confirm
your choice to prevent accidental exits. You can switch off this warning
by deselecting the <em>Warn me when closing multiple tabs</em> checkbox in
the <em>Tabs</em> panel of &pref.menuPath;. &brandShortName; will also
warn you if you are currently downloading any files.</p>
</div>
<h2 id="file">File</h2>
<h3 id="new_window">New Window</h3>
<p>Opens a new &brandShortName; window.</p>
<h3 id="new_tab">New Tab</h3>
<p>Opens a new browser tab in the current &brandShortName; window.</p>
<h3 id="open_location">Open Location…</h3>
<p>Focuses on the &brandShortName; URL bar so you can type in a new location to
visit.</p>
<h3 id="open_file">Open File…</h3>
<p>Displays an Open File dialog where you can select a file from your
local disks or network. You can view many file types in &brandShortName;,
including HTML/XML files, image files, text files and more.</p>
<h3 id="close">Close (Window)</h3>
<p>Closes the current window.</p>
<h3 id="close_tab">Close Tab</h3>
<p>Closes the current tab and selects the rightmost tab. This menu item is
visible only if more than one browser tab is currently open.</p>
<h3 id="save_page_as">Save Page As…</h3>
<p>Saves the page you are currently browsing. You can choose to save the
whole page (complete with graphics), just the current HTML page, or the
page text only.</p>
<h3 id="send_page">Send Link…</h3>
<p>Opens an email composition window using your computer's default email program
so you can send a message with a link to the current page.</p>
<h3 id="page_setup">Page Setup…</h3>
<p>Displays a Page Setup dialog where you can specify printing settings such as
margins, headers and footers, and page orientation.</p>
<div class="noMac">
<h3 id="print_preview">Print Preview</h3>
<p>Displays a preview of how the current document will appear when printed. It
reflects the settings in the Page Setup dialog and the page author's
intentions.</p>
</div>
<h3 id="print">Print…</h3>
<p>Displays the Print dialog, where you can specify the number of printed copies,
etc. Click <em>OK</em> to print the page.</p>
<h3 id="import">Import…</h3>
<p>Opens the Import Wizard dialog, which allows you to import &pref.plural;, bookmarks,
history, passwords and other data from browsers like Microsoft Internet
Explorer, Netscape, Mozilla or Opera.</p>
<h3 id="work_offline">Work Offline</h3>
<p>Toggles between online and offline mode. Offline mode allows you to view
web pages you've previously visited without being connected to the
Internet.</p>
<div class="noMac">
<h3 id="exit">
<span class="win">Exit</span>
<span class="noWin">Quit</span>
</h3>
<p>Closes all &brandShortName; windows, cancels any active downloads, and exits
&brandShortName; completely. If you happen to select this menu item with
more than one tab or window open, &brandShortName; will ask you to confirm
your choice to prevent accidental exits. You can switch off this warning
by deselecting the <em>Warn me when closing multiple tabs</em> checkbox in
the <em>Tabs</em> panel of &pref.menuPath;. &brandShortName; will also
warn you if you are currently downloading any files.</p>
</div>
<h2 id="edit">Edit</h2>
<h3 id="undo">Undo</h3>
<p>Undoes the last action in a text field. If you later decide you don't want to
undo an action, use the Redo command.</p>
<h3 id="redo">Redo</h3>
<p>Redoes the last Undo command.</p>
<h3 id="cut">Cut</h3>
<p>Cuts the selected text from a text field and stores it in the clipboard. Paste
the text elsewhere by using the Paste command.</p>
<h3 id="copy">Copy</h3>
<p>Copies the selected text to the clipboard. Paste the text in a text field by
using the Paste command.</p>
<h3 id="paste">Paste</h3>
<p>Pastes text stored in the clipboard into a text field.</p>
<h3 id="delete">Delete</h3>
<p>Deletes the selected text from a text field.</p>
<h3 id="select_all">Select All</h3>
<p>Selects all text and other items on the page.</p>
<h3 id="find_in_this_page">Find in This Page…</h3>
<p>Displays the Find Toolbar at the bottom of the browser window. Enter the
text you wish to find in the toolbar, and as you type &brandShortName; will
automatically find and select the first occurrence of the entered text on
the page. Click <em>Find Next</em> or <em>Find Previous</em> to find the
text at other locations in the page, and click <em>Highlight</em> to
highlight all occurrences of the text on the page.</p>
<h3 id="find_again">Find Again</h3>
<p>Searches for the next occurrence of the text specified when using the
<em>Find in This Page…</em> command.</p>
<h3 class="unix" id="prefs">&pref.pluralCaps;</h3>
<p class="unix">Displays the <a href="prefs.xhtml">&pref.pluralCaps; window</a>,
where you can change many &pref.plural; in &brandShortName;.</p>
<h2 id="view">View</h2>
<h3 id="toolbars">Toolbars</h3>
<h4 id="navigation_toolbar">Navigation Toolbar</h4>
<p>Toggles the visibility of the navigation toolbar, which usually contains
standard navigation buttons (Back, Forward, Stop, etc.).</p>
<h4 id="bookmarks_toolbar">Bookmarks Toolbar</h4>
<p>Toggles the visibility of the bookmarks toolbar, which contains bookmarks
to various sites.</p>
<h4 id="customize">Customize…</h4>
<p>Displays the toolbar customization dialog. You can drag and drop toolbar
buttons to or from the toolbars here. You can also <span
class="noMac">right-click</span><span class="mac">press &ctrlKey;,
click</span> on the navigation toolbar and select <em>Customize…</em>
to show this dialog.</p>
<h3 id="status_bar">Status Bar</h3>
<p>Toggles the visibility of the status bar, located at the bottom of the window.
The status bar displays useful information about the page but may not be
needed by everyone.</p>
<h3 id="sidebar">Sidebar</h3>
<p>The Sidebar can display your bookmarks or the browsing history. You can
always close the Sidebar by clicking on the X in the upper-right
corner.</p>
<h4 id="view_sidebar_bookmarks">Bookmarks</h4>
<p>Displays the Bookmarks Sidebar, which keeps your bookmarks visible all
the time. This can be very useful if you use bookmarks often.</p>
<h4 id="view_sidebar_history">History</h4>
<p>Displays the History Sidebar, which keeps track of the sites you have
visited. To change how many days a site should be remembered, select
&pref.menuPath; and select the <em>Privacy</em> panel.</p>
<h3 id="stop">Stop</h3>
<p>Stops loading of the current page you're browsing. This is the same as
clicking on the <em>Stop</em> button on the toolbar.</p>
<h3 id="reload">Reload</h3>
<p>Gets the most up-to-date version of the current page. This is the same
as clicking the <em>Reload</em> button on the toolbar.</p>
<h3 id="text_size">Text Size</h3>
<p>If the text on a web page is too small or too large, you can change it to
a more comfortable size.</p>
<h4 id="increase_text_size">Increase</h4>
<p>Displays the text on the web page one size larger. You can also do this
with the mouse (see <a href="mouse_shortcuts.xhtml">Mouse Shortcuts</a>
for instructions).</p>
<h4 id="decrease_text_size">Decrease</h4>
<p>Displays the text on the web page one size smaller. You can also do this
with the mouse (see <a href="mouse_shortcuts.xhtml">Mouse Shortcuts</a>
for instructions).</p>
<h4 id="reset_text_size">Normal</h4>
<p>Displays the text on the web page at its normal size.</p>
<h3 id="page_style">Page Style</h3>
<p>Allows you to select a style for the current web page. By default,
&quot;Basic Page Style&quot; is selected unless the author specifies a
different default.</p>
<h4 id="no_style">No Style</h4>
<p>Removes style formatting from the page.</p>
<h4 id="basic_page_style">Basic Page Style</h4>
<p>Displays the page with a general style specified by the author.</p>
<h4 id="alternate_style"></h4>
<p>If the author has specified additional page styles, &brandShortName;
will list them here for you to select.</p>
<h3 id="character_encoding">Character Encoding</h3>
<p>Allows you to manually change the character encoding on a web page.
&brandShortName; usually does this automatically.</p>
<h3 id="page_source">Page Source</h3>
<p>Displays the source code for the current document. <!--A future version of
&brandShortName; will be capable of launching an external program for
viewing the source.--></p>
<div class="noMac">
<h3 id="full_screen">Full Screen</h3>
<p>Displays the window in full screen. If you have the navigation toolbar
hidden, you can always restore the window anyway by pressing
<kbd>F11</kbd>.</p>
</div>
<h2 id="go">History</h2>
<p>The History menu contains a list of the most recently visited web sites and
closed tabs.</p>
<h3 id="back">Back</h3>
<p>Navigates back one page in history. This is the same as clicking on the
<em>Back</em> button on the toolbar.</p>
<h3 id="forward">Forward</h3>
<p>Navigates forward one page in history. This is the same as clicking on
the <em>Forward</em> button on the toolbar.</p>
<h3 id="home">Home</h3>
<p>Displays your home page. This is the same as clicking on the
<em>Home</em> button on the navigation toolbar. To change the home page,
select &pref.menuPath; and open the <em>Main</em> panel. You
can specify to use a blank page, the current page (or tab group), a
bookmark, or a manually entered address.</p>
<h3 id="closed_tabs">Recently Closed Tabs</h3>
<p>Allows you to restore a tab you closed recently in the current window by
selecting it from the list. See the <a href=
"tabbed_browsing.xhtml#closing_tabs">Closing and Restoring Tabs</a> topic
for more information.</p>
<h3 id="go_history">Show in Sidebar</h3>
<p>Displays the History Sidebar, which keeps track of the sites you have
visited. To change how many days a site should be remembered, select
&pref.menuPath; and select the <em>Privacy</em> panel.</p>
<h2 id="bookmarks">Bookmarks</h2>
<p>This menu contains all your stored bookmarks.</p>
<h3 id="add_to_bookmarks">Bookmark This Page</h3>
<p>Adds the current page to your bookmarks. A dialog will be displayed,
allowing you to choose a title for the bookmark and specify where you
want it to be stored.</p>
<h3 id="subscribe">Subscribe to This Page…</h3>
<p>Shows a preview of the <a href="glossary.xhtml#feed">feed</a> offered by
the current site. From the preview page, you can subscribe to the feed using
a <a href="glossary.xhtml#live_bookmark">Live Bookmark</a>, a feed reader
on your computer, or a web service. If you have chosen to always subscribe
using a Live Bookmark or a feed reader in the
<a href="prefs.xhtml#applications_options">Applications panel</a> of
&pref.menuPath;, the preview page will be skipped.</p>
<h3 id="bookmark_all_tabs">Bookmark All Tabs…</h3>
<p>Adds all the tabs in the current window to a new bookmark folder. A dialog
will be displayed, allowing you to choose the name of the folder and specify
where you want it to be stored.</p>
<h3 id="organize_bookmarks">Organize Bookmarks…</h3>
<p>Displays the Bookmarks Manager, a window where you can modify your
bookmarks. You can sort, rename and change the properties for your
bookmarks as well as add, remove, and move them.</p>
<h2 id="tools">Tools</h2>
<h3 id="web_search">Web Search</h3>
<p>Highlights the Web Search box. You can then type in the terms you
wish to find on the Web.</p>
<h3 id="downloads">Downloads</h3>
<p>Opens the Download Manager, where you can see the current, as well as
finished downloads.</p>
<h3 id="add_ons">Add-ons</h3>
<p>Opens the Add-ons manager, where you can view, install, configure, update,
and uninstall your extensions and themes. For more information, see the
<a href="customization.xhtml#add_ons">Add-ons</a> help topic.</p>
<h3 id="javascript_console">Error Console</h3>
<p>Opens the Error Console, which tracks problems with JavaScript code.
JavaScript is a scripting language commonly used to construct web pages.
Programmers use JavaScript to make web pages more interactive; JavaScript
is often used to dynamically validate forms and select buttons.</p>
<h3 id="page_info">Page Info</h3>
<p>Displays extensive information about the current web page, such as the
document type, encoding, size, and security information. The dialog also
displays lists of the media and links used on the page.</p>
<h3 id="clear_private_data">Clear Private Data…</h3>
<p>Clears the items which are selected in the Clear Private Data dialog in
the <em>Privacy</em> panel of &pref.menuPath;.
Displays a confirmation dialog by default.</p>
<h3 class="win" id="options">&pref.pluralCaps;</h3>
<p class="win">Displays the <a href="prefs.xhtml">&pref.pluralCaps; window</a>,
where you can change many &pref.plural; in &brandShortName;.</p>
<div class="mac">
<h2 id="window">Window</h2>
<h3 id="minimize">Minimize</h3>
<p>Minimizes the current window.</p>
<h3 id="zoom">Zoom</h3>
<p>Enlarges or restores the current window.</p>
<h3 id="open-windows">(Open Windows)</h3>
<p>Displays all the open windows by their title.</p>
</div>
<h2 id="help">Help</h2>
<h3 id="help_contents">
<span class="noMac">Help Contents</span>
<span class="mac">&brandShortName; Help</span>
</h3>
<p>Opens the &brandShortName; Help window, which contains useful information
that can help you browse the web.</p>
<div class="win">
<h3 id="for_ie_users">For Internet Explorer Users</h3>
<p>Opens this Help window displaying information that can
help Internet Explorer users transition to &brandShortName;.</p>
</div>
<h3 id="relnotes">Release Notes</h3>
<p>Provides information about installing, uninstalling and configuring
&brandShortName;, as well as other important information and late-breaking
notices. Requires an active Internet connection.</p>
<h3 id="reporter">Report Broken Web Site…</h3>
<p>Allows you to report web sites that do not work correctly in
&brandShortName; to the &brandShortName; developers.</p>
<h3 id="web_forgery">Report Web Forgery… / This isn't a web forgery…</h3>
<p><em>Report Web Forgery…</em> allows you to report what you believe are
forged or "phishing" sites. Phishing sites pretend to be sites you trust,
like your bank or online shopping or auction sites, to trick you into
submitting sensitive information (username/password, credit card information,
etc.) to them.</p>
<p>When displaying sites suspected for "phishing", the menu item is replaced
by <em>"This isn't a web forgery…"</em>, letting you report legitimate
sites which have been incorrectly marked as "phishing" sites.</p>
<p>Phishing Protection in &brandShortName; is powered by Google, and the
information you submit will be sent to Google and used to improve this
feature. Your report will be anonymous in accordance with Google's privacy
policy. Requires an active Internet connection.</p>
<h3 id="check_for_updates">Check for Updates…</h3>
<p>Displays a dialog which checks for updates to &brandShortName; and asks
you whether you want to download updates if any are available. After an
update has been downloaded, the dialog asks you to restart &brandShortName;
so that the update can be installed. Note that the name of this menu item
will change when an update is being downloaded or is ready to be installed.</p>
<div class="noMac">
<h3 id="about_mozilla_firebird">About &brandFullName;</h3>
<p>Displays a dialog box with information about &brandShortName;, including
the current version and a brief list of credits.</p>
</div>
<div class="contentsBox"><em>29 September 2007</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,103 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<!--
Contributors:
David Tenser <david.tenser@comhem.se> (original author)
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>&brandFullName; Mouse Shortcuts</title>
<link rel="stylesheet" type="text/css"
href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>&brandFullName; Mouse Shortcuts</h1>
<p class="noMargin">This is a list of the most common mouse shortcuts in
&brandFullName;.</p>
<table border="1">
<thead>
<tr>
<th>Command</th>
<th>Shortcut</th>
</tr>
</thead>
<tbody>
<tr>
<td>Back</td>
<td>
<span class="mac">&altKey;+Scroll Down</span>
<span class="noMac">&shiftKey;+Scroll Down</span>
</td>
</tr>
<tr>
<td>Close Tab</td>
<td>Middle-click on Tab</td>
</tr>
<tr>
<td>Decrease Text Size</td>
<td>&ctrlKey;+Scroll up</td>
</tr>
<tr>
<td>Forward</td>
<td>
<span class="mac">&altKey;+Scroll up</span>
<span class="noMac">&shiftKey;+Scroll up</span>
</td>
</tr>
<tr>
<td>Increase Text Size</td>
<td>&ctrlKey;+Scroll down</td>
</tr>
<tr>
<td>New Tab</td>
<td>Double-Click on Tab Bar</td>
</tr>
<tr>
<td>Open in Background Tab</td>
<td>&accelKey;+Left-click<br/>Middle-click</td>
</tr>
<tr>
<td>Open in Foreground Tab</td>
<td>&accelKey;+&shiftKey;+Left-click<br/>&shiftKey;+
Middle-click</td>
</tr>
<tr>
<td>Open in New Window</td>
<td>&shiftKey;+Left-click</td>
</tr>
<tr class="unix">
<td>Paste URL and Go</td>
<td>Middle-click on Tab</td>
</tr>
<tr>
<td>Reload (override cache)</td>
<td>&shiftKey;+Reload button</td>
</tr>
<tr>
<td>Save Page As</td>
<td>&altKey;+Left-click</td>
</tr>
<tr>
<td>Scroll line by line</td>
<td>
<span class="mac">&accelKey;+Scroll</span>
<span class="noMac">&altKey;+Scroll</span>
</td>
</tr>
</tbody>
</table>
<div class="contentsBox"><em>14 October 2005</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,43 +0,0 @@
<!-- LOCALIZATION NOTE : This file contains platform-specific strings which
occur in large numbers throughout Help docs.
Generally, for these strings it's less code to store
them here than to hard-code the value of the entity
in every place it's used, or using an entity is less
confusing than typing a string like the jumbled messes
used below for "preference" and derivatives. Feel free
to add more strings here as long as you run them by the
Help module owner first (to prevent excessive use of
such strings when other methods are preferable). -->
<!-- Options -->
<!ENTITY pref.menuPath '<span class="win menuPath">Tools &gt; Options</span><span
class="unix menuPath">Edit &gt; Preferences</span><span
class="mac menuPath">&brandShortName; &gt; Preferences</span>' >
<!ENTITY pref.singular '<span class="win">option</span><span
class="noWin">preference</span>' >
<!ENTITY pref.plural '<span class="win">options</span><span
class="noWin">preferences</span>' >
<!ENTITY pref.singularCaps '<span class="win">Option</span><span
class="noWin">Preference</span>' >
<!ENTITY pref.pluralCaps '<span class="win">Options</span><span
class="noWin">Preferences</span>' >
<!-- Keys -->
<!ENTITY ctrlKey '<kbd>Ctrl</kbd>' >
<!ENTITY accelKey '<kbd class="noMac">Ctrl</kbd><kbd
class="mac">Cmd</kbd>' >
<!ENTITY altKey '<kbd class="noMac">Alt</kbd><kbd
class="mac">Opt</kbd>' >
<!ENTITY shiftKey '<kbd>Shift</kbd>' >
<!ENTITY enterKey '<kbd class="noMac">Enter</kbd><kbd
class="mac">Return</kbd>' >
<!-- Image Location Base URL -->
<!ENTITY images.baseURL 'http://www.mozilla.org/projects/firefox/help/2.0'>
<!-- Copyright years -->
<!ENTITY copyright.years '2003-2008'>

View File

@ -1,95 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<!--
Contributors:
David Tenser <david.tenser@comhem.se> (original author)
Steffen Wilberg <steffen.wilberg@web.de>
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Controlling Pop-ups</title>
<link rel="stylesheet" type="text/css" href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>Controlling Pop-ups</h1>
<p>This document explains all of the &pref.plural; available in &brandFullName;
for controlling pop-ups.</p>
<div class="contentsBox">
In this section:
<ul>
<li><a href="#what_are_popups">What are Pop-ups?</a></li>
<li><a href="#popup_blocker_preferences">Pop-up Blocker &pref.pluralCaps;</a></li>
</ul>
</div>
<h2 id="what_are_popups">What are Pop-ups?</h2>
<p>Pop-up windows, or pop-ups, are windows that appear automatically without your
permission. They vary in size but usually don't cover the whole screen. Some pop-ups
open on top of the current &brandShortName; window, while others appear
underneath &brandShortName; (pop-unders).</p>
<p>&brandShortName; allows you to control both pop-ups and popunders through the
<a href="prefs.xhtml#content_options">Content panel</a> in &pref.pluralCaps;.
Pop-up blocking is turned on by default, so you don't have to worry about enabling it
to prevent pop-ups from appearing in &brandShortName;.</p>
<p>When blocking a pop-up, &brandShortName; displays an information bar, as well
as an icon <img src="chrome://browser/skin/Info.png" width="16" height="16"
alt=""/> in the status bar. When you click either the <em>&pref.pluralCaps;</em>
button in the information bar or the icon in the status bar, a menu is displayed
with the following choices:</p>
<ul>
<li>Allow/Block pop-ups for this site</li>
<li>Edit <a href="#popup_blocker_preferences">Pop-up Blocker
&pref.pluralCaps;</a></li>
<li>Don't show this message (info message) when pop-ups are blocked</li>
<li>(show a blocked pop-up)</li>
</ul>
<p><strong>Blocking pop-ups may interfere with some web sites</strong>: Some web sites,
including some banking sites, use pop-ups for important features. Blocking all pop-ups
disables such features. To allow specific web sites to use pop-ups, while blocking
all others, you can add specific web sites to the list of allowed sites.</p>
<p><strong>Blocking pop-ups doesn't always work</strong>: Although &brandShortName; blocks most
pop-ups, some web sites may show pop-ups using uncovered methods, even when blocked.</p>
<h2 id="popup_blocker_preferences">Pop-up Blocker &pref.pluralCaps;</h2>
<p>The Pop-up Blocker &pref.pluralCaps; are located in the <a
href="prefs.xhtml#content_options">Content panel</a> of &pref.menuPath;.</p>
<p>From there, you can do the following things:</p>
<ul>
<li><strong>Block pop-up windows</strong>: Deselect this &pref.singular; to
disable the pop-up blocker altogether.</li>
<li><strong>Exceptions dialog</strong>: This is a list of sites that you want to allow
to display pop-ups. The dialog has the following choices:
<ul>
<li><strong>Allow</strong>: Click this to add a web site to the exceptions list.</li>
<li><strong>Remove Site</strong>: Click this to remove a web site from the exceptions list.</li>
<li><strong>Remove All Sites</strong>: Click this to remove all of the web sites in
the exceptions list.</li>
</ul>
</li>
</ul>
<p><strong>Note</strong>: Blocking pop-ups may not always work and may interfere with
some web sites. For more information about blocking pop-ups, see
<a href="#what_are_popups">What are Pop-ups</a>.</p>
<div class="contentsBox"><em>12 September 2005</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,697 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<!--
Contributors:
David Tenser <tenser@comhem.se> (original author)
Steffen Wilberg <steffen.wilberg@web.de>
Ryan Flint <rflint@dslr.net>
Jeff Walden <jwalden+code@mit.edu>
Myk Melez <myk@mozilla.org>
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>&brandFullName; Options</title>
<link rel="stylesheet" type="text/css" href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>&brandFullName; &pref.pluralCaps;</h1>
<p>This document explains all of the &pref.plural; available in the
&pref.pluralCaps; window of &brandFullName;.</p>
<div class="contentsBox">In this section:
<ul>
<li><a href="#main_options">Main &pref.pluralCaps;</a></li>
<li><a href="#tabs_options">Tabs &pref.pluralCaps;</a></li>
<li><a href="#content_options">Content &pref.pluralCaps;</a></li>
<li><a href="#applications_options">Applications &pref.pluralCaps;</a></li>
<li><a href="#privacy_options">Privacy &pref.pluralCaps;</a></li>
<li><a href="#security_options">Security &pref.pluralCaps;</a></li>
<li><a href="#advanced_options">Advanced &pref.pluralCaps;</a></li>
</ul>
</div>
<h2 id="main_options">Main &pref.pluralCaps;</h2>
<h3 id="startup">Startup</h3>
<p>When you open &brandShortName;, by default your <a
href="glossary.xhtml#home_page">home page</a> is displayed. Your home page
might be a commonly-visited web site, a search engine, or perhaps your email
account, but the choice is up to you. You can change your home page or
choose to display a different page or set of pages on startup in this
section.</p>
<p><em>When &brandShortName; starts</em><br/>
By default, when &brandShortName; starts it opens your home page (listed in
the textbox immediately below), which corresponds to the <em>Show my home
page</em> option. Alternately, you can choose to display a blank page on
startup (perhaps to eliminate the time required to load that page from the
Internet) by selecting the <em>Show a blank page</em> option.</p>
<p>As a final alternative, you can have &brandShortName; reopen the windows and
tabs you had open the last time you ran &brandShortName;, effectively
restoring you to where you were when you last stopped browsing the Internet.
This can be a handy way of saving what you were doing when you close
&brandShortName;, perhaps to install an operating system update. You can
choose this option by selecting <em>Show my windows and tabs from last
time</em>.</p>
<p><em>Home Page</em><br/>
If you've set &brandShortName; to show your home page when you start
&brandShortName;, you specify your home page by typing it here. You can
also click any of the buttons below the textbox to choose a special home
page:</p>
<ul>
<li><em>Use Current Page</em> sets the currently-displayed page (or pages,
if you have multiple tabs open) as your home page</li>
<li><em>Use Bookmark</em> sets the selected bookmark (or if you select a
folder, the set of bookmarks in that folder) as your home page</li>
<li><em>Restore to Default</em> resets your home page to the default home
page</li>
</ul>
<h3 id="downloads">Downloads</h3>
<p>This section contains &pref.plural; determining how &brandShortName;
downloads files.</p>
<p><em>Show the Downloads window when downloading a file</em><br/>
With this &pref.singular; selected, &brandShortName; will open the <a
href="download_manager.xhtml">Downloads window</a> when you start
downloading a file.</p>
<p><em>Close it when all downloads are finished</em><br/>
Select this &pref.singular; to have &brandShortName; close the Downloads
window when all downloads currently in progress finish.</p>
<p><em id="download_folder">Save files to</em><br/>
By default downloaded files are automatically saved to the Desktop,
eliminating the hassle of specifying a download location for every file you
download. You can choose a different folder by clicking the <em><span
class="noMac">Browse…</span><span class="mac">Choose…</span></em>
button.</p>
<p><em>Always ask me where to save files</em><br/>
With this &pref.singular; selected, &brandShortName; will ask you where
you would like to save every downloaded file (instead of using the default
location specified above).</p>
<h3 id="system_defaults">System Defaults</h3>
<p><em>Always check to see if &brandShortName; is the default browser on
startup</em><br/>
Select this option if you want &brandShortName; to check whether it is the
default browser at startup. This will ensure &brandShortName; is used
whenever an application tries to display a web page. You can also click the
<em>Check Now</em> button to do a check right now.</p>
<h3 id="addons">Add-ons</h3>
<p><em>Manage Add-ons</em><br/>
To install or uninstall, update or configure add-ons, click the <em>Manage
Add-ons</em> button to open the Add-ons manager. This is also accessible
from <span class="menuPath">Tools &gt; Add-ons</span>. A detailed
description of add-ons and the Add-on manager is available <a href=
"customization.xhtml#add_ons">here</a>.</p>
<h2 id="tabs_options">Tabs &pref.pluralCaps;</h2>
<p><em>New pages should be opened in:</em><br/>
This &pref.singular; controls whether links from other applications or from
web pages which request to open them in new windows are opened in <em>a new
window</em> or <em>a new tab</em> in the most recent window.</p>
<p><strong>Note:</strong> If you have chosen to open pages in new tabs,
&brandShortName; will ignore this &pref.singular; and will open a new window
from a link if the page author specified that the new window should have a
specific size, because some pages can only be displayed correctly at a
specific size.</p>
<p><em>Warn me when closing multiple tabs</em><br/>
When you close a window with multiple tabs, &brandShortName; will ask you
to confirm your choice. This prevents you from accidentally closing the
whole window when you intended to only close the current tab. Uncheck this
&pref.singular; to disable this warning and have &brandShortName;
automatically close the window.</p>
<p><em>Warn me when opening multiple tabs might slow down
&brandShortName;</em><br/>
When you open a large number of tabs at once, &brandShortName; will ask you
to confirm your choice. This prevents you from accidentally slowing down
your system while the pages are loading. Uncheck this &pref.singular; to
disable this warning.</p>
<p><em>Always show the tab bar</em><br/>
If you're only viewing one web page in a &brandShortName; window, the tab
bar is not normally shown. Check this &pref.singular; to always show the tab
bar, including when only the &brandShortName; window contains only one
page.</p>
<p><em>When I open a link in a new tab, switch to it immediately</em><br/>
When you middle-click on a Web link (or hold down &accelKey; while clicking
with the left mouse button), the page will be opened in a new tab. That page
will not be displayed and will load in a background tab. Check this
&pref.singular; to load and display the page in a new foreground tab
instead.</p>
<h2 id="content_options">Content &pref.pluralCaps;</h2>
<p><em>Block Pop-up Windows</em><br/>
By default, &brandShortName; blocks annoying pop-up windows on web sites.
Unchecking this &pref.singular; will disable pop-up blocking.</p>
<p>Some web sites make legitimate use of pop-up windows. Therefore, you can
allow these sites to open pop-ups anyway. To do so, click
<em>Exceptions…</em>, enter the site name, and click <em>Allow</em>. To
remove a web site from the list, select it and then click <em>Remove
Site</em>. To clear the list completely, click <em>Remove All Sites</em>.</p>
<p><em>Load images automatically</em><br/>
&brandShortName; displays images in web pages by default. Uncheck this
&pref.singular; to disable images in web pages.</p>
<p>If you enable loading images automatically, the <em>Exceptions…</em>
button lets you select sites from which images will not automatically load.
The <em>Exceptions…</em> button lets you specify web sites that you wish
to load (or not load) regardless of the setting of this preference. In the
exceptions list, enter the site from which you want to allow or block images
and click <em>Allow</em> to allow images, or click <em>Block</em> to block
the images.</p>
<p><em>Enable JavaScript</em><br/>
JavaScript is a scripting language commonly used to make web pages
interactive. However, it also makes certain annoying behaviors much easier to
perform. To disable JavaScript, uncheck this &pref.singular;. However, note
that disabling JavaScript may cause some sites to not work properly. For more
fine-grained control over what JavaScript can and cannot do, click
<em>Advanced…</em>.</p>
<h4 id="advanced_javascript">Advanced JavaScript Settings</h4>
<dl>
<dt>Move or resize existing windows</dt>
<dd>Uncheck this &pref.singular; to disable moving and resizing windows
using scripts.</dd>
<dt>Raise or lower windows</dt>
<dd>Uncheck this &pref.singular; to make sure scripts cannot raise (bring
to the front) or lower (send to the back) windows.</dd>
<dt>Disable or replace context menus</dt>
<dd>Uncheck this &pref.singular; to prevent web pages from disabling or
changing the &brandShortName; context menu.</dd>
<dt>Hide the status bar</dt>
<dd>Uncheck this &pref.singular; to force the status bar to be displayed in
pop-up windows.</dd>
<dt>Change status bar text</dt>
<dd>Uncheck this &pref.singular; to disable changes to status bar text (such
as displaying scrolling text messages or preventing the link address from
being displayed while the mouse is over a link).</dd>
</dl>
<p><em>Enable Java</em><br/>
Java is a popular programming language for the Web. A single Java program
can run on many different kinds of computers, thus avoiding the need for
programmers to create a separate version of a program for each kind of
computer. Uncheck this &pref.singular; to disable Java applets in
&brandShortName;. Note that in order for Java applets to work, you must
install the Java plugin.</p>
<h3 id="fonts_and_colors">Fonts &amp; Colors</h3>
<p><em>Default font</em> and <em>Size</em><br/>
Web pages are usually displayed in the font and size specified here.
However, web pages can override these choices unless you specify otherwise
in the Fonts dialog. Click the <em>Advanced…</em> button to access the
Fonts dialog and to change this and other fonts &pref.plural;.</p>
<h4 id="fonts_dialog">Fonts Dialog</h4>
<ol>
<li>From the <em>Fonts for</em> drop-down list, choose a language
group/script. For instance, to set default fonts for the West
European languages/scripts (Latin), choose <em>Western</em>. For a
language/script not in the list, choose <em>Other Languages</em>.</li>
<li>Select whether proportional text should be serif (like &quot;Times
New Roman&quot;) or sans-serif (like &quot;Arial&quot;). Then specify
the font size you want for proportional text.</li>
<li>Specify the font to use for Serif, Sans-serif and Monospace fonts.
You can also change the size for <code>Monospace fonts</code>.</li>
</ol>
<p>You can also set the minimum web page font size. This is useful to
prevent sites from use overly small fonts that are barely readable.</p>
<p><em>Allow pages to choose their own fonts, instead of my selections
above</em><br/>
By default &brandShortName; uses the fonts specified by the web page
author. Disabling this &pref.singular; will force all sites to use your
default fonts instead.</p>
<p><em>Character Encoding</em><br/>
The character encoding selected here will be used to display pages that
do not specify which encoding to use.</p>
<h4 id="colors_dialog">Colors Dialog</h4>
<p><strong>Text and Background</strong><br/>
Here you can change the default text and background color to be used on
web pages that haven't specified that information. Click on the color
samples to select colors.</p>
<p><em>Use system colors</em><br/>
Check this &pref.singular; to use the colors defined in your operating
system settings instead of the colors specified above.</p>
<p><strong>Link Colors</strong><br/>
Here you can change the default colors for Web links. Click on the color
samples to select colors.</p>
<p><em>Underline links</em><br/>
By default, links are underlined on web pages. Uncheck this &pref.singular;
to disable this. Note that many sites specify their own styling rules
and this &pref.singular; has no effect on those sites.</p>
<p><em>Allow pages to choose their own colors, instead of my selections
above</em><br/>
By default, &brandShortName; uses the colors specified by the web page
author. Disabling this &pref.singular; will force all sites to use your
default colors instead.</p>
<h3 id="languages">Languages</h3>
<p>Some web pages are offered in more than one language. Click the
<em>Choose…</em> button to specify your preferred language or
languages.</p>
<p><strong>Languages Dialog</strong><br/>
To add a language, click <em>Select a language to add…</em>, choose the
language, and click the <em>Add</em> button. Remove a language by
selecting it in the list of active languages and clicking the
<em>Remove</em> button. You can also reorder languages using the <em>Move
Up</em> and <em>Move Down</em> buttons to determine the most preferred one
in case a page is provided in multiple languages .</p>
<h2 id="applications_options">Applications &pref.pluralCaps;</h2>
<p>The <em>Applications</em> panel lets you choose applications and other
handlers to handle different types of content (e.g. PDF documents). It shows
you a list of content types and lets you select a handler for each type.</p>
<p>You can choose a local application to handle any type. For some types,
you can also choose a web application to handle the type, choose a feature
(like <a href="glossary.xhtml#live_bookmark">Live Bookmarks</a> for feeds)
or a <a href="glossary.xhtml#Plugin">plugin</a> in &brandShortName; to handle
the type, or save the type on your computer.</p>
<p>To choose a handler for a type, select the type from the list. The current
handler for the type will turn into a menu. Open the menu and select the
handler you want to handle the type.</p>
<ul>
<li><em>Choose an application</em><br/>
To choose a local or web application to handle a type, select the application
from the menu. If you want a local application that is not in the menu
to handle the type, select <em>Choose Application…</em> from the menu
and point &brandShortName; to its location.</li>
<li><em>Choose a feature or plugin</em><br/>
If you want a feature or a plugin in &brandShortName; to handle the type,
and one is available, select it from the menu.</li>
<li><em>Save on your computer</em><br/>
If you want to save the type on your computer, and it is possible to do so,
select <em>Save File</em> from the menu. If you have selected the <em>Save
files to</em> &pref.singular; in the <em>Main</em> panel, &brandShortName;
will save content of the type on your computer automatically. Otherwise,
when you encounter the type, &brandShortName; will prompt you for a location
on your computer to save it to.</li>
</ul>
<p><strong>Note:</strong> When a plugin is available to handle a type, and you
choose another handler to handle that type, &brandShortName; will only use
your chosen handler when you access the type directly. When the type is
embedded inside a web page, &brandShortName; will continue to use the plugin
to handle the type.</p>
<h2 id="privacy_options">Privacy &pref.pluralCaps;</h2>
<h3 id="privacy_history">History</h3>
<p><em>Remember visited pages for the last … days</em><br/>
Here you can specify how long you want &brandShortName; to remember what
pages you have visited. The default is 9 days.</p>
<p><em>Remember what I enter in forms and the search bar</em><br/>
When you enter information in web forms or the search bar in
&brandShortName;, that information is saved so that &brandShortName; can
give suggestions when you enter information in forms in the future. To stop
this behavior, uncheck this &pref.singular;.</p>
<p><em>Remember what I've downloaded</em><br/>
This &pref.singular; controls whether or not past downloads show up in the
Downloads window. The Downloads window (accessible from <span
class="menuPath">Tools</span> or by pressing <span
class="noUnix">&accelKey;+<kbd>J</kbd></span><span
class="unix">&accelKey;+<kbd>Y</kbd></span>) displays a list of your recent
downloads. Downloads &pref.plural; are available in the <a
href="#main_options"><em>Main</em></a> panel.</p>
<h3 id="privacy_cookies">Cookies</h3>
<p>A cookie is a file created by a web site that stores information on your
computer, such as site-specific preferences when visiting that site.</p>
<p><em>Accept cookies from sites</em><br/>
By default cookies are enabled. Uncheck this &pref.singular; to disable the
use of cookies. Note that some sites may not work properly when cookies are
disabled.</p>
<p><em>Keep until:</em></p>
<ul>
<li><em>they expire</em><br/>
This is the default &pref.singular;. When set, this allows websites to
specify how long a cookie will be stored by &brandShortName;. This makes
it possible for a site to remember your preferences and login information
across browser sessions.</li>
<li><em>I close &brandShortName;</em><br/>
With this &pref.singular; selected, &brandShortName; will remove all
stored cookies when closed.</li>
<li><em>ask me every time</em><br/>
With this &pref.singular; enabled, &brandShortName; will ask you how long
you would like to keep a cookie (or refuse it entirely) every time a web
site attempts to set one.</li>
</ul>
<p>To control which sites may or may not set cookies, click the
<em>Exceptions…</em> button.</p>
<p>To display the Cookie Manager click <em>Show Cookies…</em>.</p>
<p>Learn more about cookies, the individual &pref.plural;, and how you can
gain control over what sites are allowed to store cookies on your computer
by reading about <a href="cookies.xhtml">Managing Cookies</a>.</p>
<h3 id="private_data">Private Data</h3>
<p><em>Always clear my private data when I close &brandShortName;</em><br/>
You can choose to have &brandShortName; clear your private data when you
close it. To configure what data is cleared, click the <em>Settings…</em>
button.</p>
<p><em>Ask me before clearing private data</em><br/>
With this &pref.singular; selected, &brandShortName; will ask you before
before automatically clearing the data specified by clicking
<em>Settings…</em>.</p>
<p>If you wish to clear your private data right now, you can click the
<em>Clear Now…</em> button to do so. To clear your private data from
outside the preferences dialog, either press &accelKey;+&shiftKey;+<kbd>Del</kbd>
or select <span class="menuPath">Tools &gt; Clear Private Data…</span>.</p>
<h2 id="security_options">Security &pref.pluralCaps;</h2>
<p><em>Warn me when sites try to install add-ons</em><br/>
&brandShortName; will always ask you to confirm installations of add-ons.
To prevent unrequested installation prompts which may lead to accidental
installations, &brandShortName; warns you when a web site tries to install
an add-on and blocks the installation prompt. To allow installations from
a specific site, click <em>Exceptions…</em>, enter the site name, and click
<em>Allow</em>. Uncheck this &pref.singular; to disable the warning for all
sites.</p>
<p id="phishing"><em>Tell me if the site I'm visiting is a suspected forgery</em><br/>
Check this &pref.singular; if you want &brandShortName; to actively check
whether the site you are visiting may be an attempt to mislead you into
providing personal information (this is often referred to as <em>phishing</em>).<br/>
Note that the absence of a warning does not guarantee that a site is trustworthy.
If you come across a "phishing" site which is not marked as such, please report
it using <span class="menuPath">Help &gt; Report Web Forgery…</span>, as
explained in the <a href="menu_reference.xhtml#web_forgery">menu reference</a>.</p>
<p><em>Check using a downloaded list of suspected sites</em><br/>
With this &pref.singular; selected, &brandShortName; will check the current
site against a frequently updated list stored on your computer. No data about
the sites you visit is transferred to third-party anti-phishing providers
during normal browsing. Since phishing techniques and sites evolve quickly,
this mode of protection may not be as effective as having an anti-phishing
provider check every site you visit.</p>
<p><em>Check by asking … about each site I visit</em><br/>
With this &pref.singular; selected, &brandShortName; will send the address of
the current page over an encrypted connection to the selected third-party
anti-phishing provider in order to verify its identity. This method offers the
greatest protection, but information such as your IP address and browser
version may be transfered and stored by the selected provider. You will be
prompted to review and agree to the selected data provider's privacy policy
after selecting this &pref.singular;.</p>
<h3 id="security_passwords">Passwords</h3>
<p><em>Remember passwords for sites</em><br/>
&brandShortName; can securely save passwords you enter in web forms to
make it easier to log on to web sites. Clear this checkbox to prevent
&brandShortName; from remembering your passwords.</p>
<p>Even with this &pref.singular; checked, however, you'll still be asked
whether to save passwords for a site when you first visit it. If you select
<em>Never for This Site</em>, that site will be added to an exceptions list.
To access that list or to remove sites from it, click the
<em>Exceptions…</em> button.</p>
<p id="set_change_master_password"><em>Use a master password</em><br/>
&brandShortName; can protect sensitive information such as saved passwords
and certificates by encrypting them using a <a
href="glossary.xhtml#master_password">master password</a>. If you create a
master password, each time you start &brandShortName;, it will ask you to enter
the password the first time it needs to access a certificate or stored
password. You can set, change, or remove the master password by
by checking or unchecking this &pref.singular; or by clicking the
<em>Change Master Password…</em> button. If a master password is already
set, you will need to enter it in order to change or remove the master password.</p>
<p><em>Saved Passwords…</em><br/>
You can manage saved passwords and delete individual passwords by clicking
the <em>Saved Passwords</em> button.</p>
<h3 id="warning_messages">Warning Messages</h3>
<p>Click the <em>Settings…</em> button to configure the security warnings
&brandShortName; displays while you browse the web.</p>
<h4>Security Warnings Dialog</h4>
<!--XXX massive suck! do these provide *any* value whatsoever? -->
<dl>
<dt>I am about to view an encrypted page</dt>
<dd>When this &pref.singular; is enabled, &brandShortName; will notify you
every time you are about to view an encrypted page.</dd>
<dt>I am about to view a page that uses low-grade encryption</dt>
<dd>With this &pref.singular; enabled, &brandShortName; will warn you when
you visit a page which uses low-grade encryption.</dd>
<dt>I leave an encrypted page for one that isn't encrypted</dt>
<dd>With this &pref.singular; enabled, &brandShortName; will warn you
every time you move from an encrypted page to an unencrypted page either
by selecting a link on the page, selecting a bookmark or typing a new
address into the location bar.</dd>
<dt>I submit information that's not encrypted</dt>
<dd>When this &pref.singular; is enabled, &brandShortName; will warn you
when you submit data via a form that's not encrypted.</dd>
<dt>I'm about to view an encrypted page that contains some unencrypted
information</dt>
<dd>With this &pref.singular; enabled, &brandShortName; will warn you when
the page you're viewing contains a mixture of encrypted and
unencrypted content. If an encrypted page contains unencrypted data,
you should verify the identity of the page you're viewing prior to
entering sensitive data.</dd>
</dl>
<h2 id="advanced_options">Advanced &pref.pluralCaps;</h2>
<p>The advanced panel contains many &pref.plural; that are less likely to be
used by most people but are useful and sometimes critical &pref.plural; for
some people.</p>
<h3 id="advanced_general">General tab</h3>
<h4 id="accessibility">Accessibility</h4>
<p><em>Always use the cursor keys to navigate within pages</em><br/>
When this &pref.singular; is enabled, &brandShortName; will display a
movable cursor in web pages, allowing you to select text with the
keyboard. You can toggle this mode by pressing <kbd>F7</kbd>.</p>
<p><em>Search for text when I start typing</em><br/>
When this &pref.singular; is enabled, &brandShortName; will find within
the current web page what you type as you type it. While you are finding
typed text in the page, the Find Toolbar will automatically display at the
bottom of the window to show information about what you've found.</p>
<h4 id="browsing">Browsing</h4>
<p><em>Use autoscrolling</em><br/>
Autoscrolling is a useful feature which allows you to scroll the page by
clicking the middle mouse button (usually the scroll wheel) and moving the
mouse up or down. Some people find this annoying, so autoscrolling can be
disabled with this &pref.singular;.</p>
<p><em>Use smooth scrolling</em><br/>
Smooth scrolling can be very useful if you read a lot of long pages.
Normally, when you press <kbd>Page Down</kbd>, the view jumps directly
down one page. With smooth scrolling, it slides down smoothly, so you can
see how much it scrolls. This makes it easier to resume reading from where
you were before.</p>
<p><em>Check my spelling as I type</em><br/>
When this preference is enabled, &brandShortName; will check your spelling
and offer possible corrections as you type in web forms. Note that you
may need to download a dictionary; to do so, <span
class="noMac">right-click</span><span class="mac">press &ctrlKey; and
click</span> on any text field, enable spellchecking if necessary, and
then use the provided <span class="menuPath">Languages</span> menu to
download a dictionary.</p>
<h3 id="advanced_network">Network tab</h3>
<h4 id="connection_settings">Connection</h4>
<p>Your organization or Internet service provider may offer or require you
to use a proxy. A proxy acts as an intermediary between your computer and
the Internet. It intercepts all requests to the Internet to see if it can
fulfill the request using its cache. Proxies are used to improve
performance, filter requests, and hide your computer from the Internet to
improve security. Proxies are often part of corporate firewalls.</p>
<h4>Connection Settings Dialog</h4>
<dl>
<dt>Direct connection to the Internet</dt>
<dd>This is the default &pref.singular;. Choose this if you don't want
to use a proxy.</dd>
<dt>Auto-detect proxy settings for this network</dt>
<dd>Choose this if you want &brandShortName; to automatically detect the
proxy settings for your network.</dd>
<dt>Manual proxy configuration</dt>
<dd>Choose this if you don't have a proxy location (URL). Ask your
system administrator for the names and port numbers of the servers
running proxy software for each network service and enter the
information in the appropriate fields.</dd>
<dt>Automatic proxy configuration URL</dt>
<dd>If your workplace has a proxy configuration file, ask the system
administrator for its URL and enter it here. Click <em>Reload</em> to
load the settings.</dd>
</dl>
<h4 id="advanced_cache">Cache</h4>
<p>Pages you view are normally stored in a special cache folder for quicker
viewing the next time you visit the same page. You can specify the amount
of disk space the cache can use here. You can also immediately clear
the contents of the cache.</p>
<p><em>Use up to … MB of space for the cache</em><br/>
Allows you to specify the maximum size, in megabytes, of the cache on
your computer.</p>
<p><em>Clear Now</em><br/>
Immediately clears the current contents of the cache, freeing the disk
space used by the cache.</p>
<h3 id="advanced_update">Update tab</h3>
<p>&brandShortName; can check whether updates to installed add-ons or to
&brandShortName; itself are available.</p>
<p><em>Automatically check for updates to:</em><br/>
By default &brandShortName; automatically checks for updates to itself, to
add-ons, and to search engines so you'll always know you have the most
up-to-date version. You can change this behavior by changing the
appropriate checkboxes here.</p>
<p><em>When updates to &brandShortName; are found,</em></p>
<dl>
<dt>Ask me what I want to do</dt>
<dd>Updates to &brandShortName; are installed automatically by default.
Select this &pref.singular; to manually control how and when updates are
installed.</dd>
<dt>Automatically download and install the update</dt>
<dd>When this &pref.singular; is selected, &brandShortName; updates will
be automatically downloaded and will be installed the next time
&brandShortName; is restarted. The <em>Warn me if this will disable any
of my add-ons</em> &pref.singular; determines whether you will be warned
before the installation of an update which would require an incompatible
add-on to be disabled because no newer, compatible version exists. The
warning will allow you to postpone installation of the update, though at
the expense of improvements included in it.<br/><br/>
If all extensions and themes are compatible or can be updated to be
compatible, the &brandShortName; update will be installed. Upon restart
you will be asked to install any needed add-on updates so that you can
continue to use them.</dd>
</dl>
<p><em>Show Update History</em><br/>
&brandShortName; automatically records the updates you have installed.
You can view information about these updates by clicking this button.</p>
<p><strong>Note:</strong> You must be running &brandShortName; as
<span class="win">an administrator</span><span class="noWin">root</span>
or as the user who originally installed &brandShortName;
to install &brandShortName; updates.</p>
<h3 id="advanced_encryption">Encryption tab</h3>
<h4 id="protocols">Protocols</h4>
<p><em>Use SSL 3.0</em><br/>
Specifies whether you want to send and receive secured information through
SSL3 (Secure Sockets Layer, Level 3), a standard protocol for
communicating securely with web sites. Disabling it will prevent you from
visiting some sites.</p>
<p><em>Use TLS 1.0</em><br/>
Specifies whether you want to send and receive secured information through
TLS (Transport Layer Security), a security standard similar to SSL3
(Secure Sockets Layer). Disabling it will prevent you from visiting some
sites.</p>
<h4 id="certificates">Certificates</h4>
<p><a href="glossary.xhtml#certificate">Certificates</a> help perform
encryption and decryption of connections to <a
href="glossary.xhtml#secure_site">secure sites</a>.</p>
<p><em>When a web site requires a certificate:</em><br/>
Some servers ask you to identify yourself with a personal certificate. In
order to do so, they ask &brandShortName; to generate one for you. When
you visit the site in the future, &brandShortName; selects the certificate
without asking you by default. If you wish to manually choose a
certificate (for example, if you have multiple certificates stored for
multiple web sites), select the <em>Ask me every time</em> &pref.singular;
and you'll be in complete control of what certificates are being sent to
web sites while browsing.</p>
<p><em>View Certificates</em><br/>
Click this button to view stored certificates, import new certificates,
and back up or delete old certificates in &brandShortName;.</p>
<p><em>Revocation Lists</em><br/>
&brandShortName; can use Certificate Revocation Lists (also known as
CRLs) to ensure that your certificates are always valid. Click the
<em>Revocation Lists</em> button to manage the CRLs installed on your
computer.</p>
<p><em>Validation</em><br/>
&brandShortName; may ask an OCSP (Online Certificate Status Protocol)
server to confirm that a certificate is still valid. By default,
&brandShortName; validates a certificate if the certificate provides an
OCSP server. Alternately, you can choose an OCSP server against which to
validate all certificates. Click the <em>Validation</em> button to manage
these &pref.plural;. You will most likely only need to change this if your
Internet environment requires it.</p>
<p><em>Security Devices</em><br/>
Security devices can encrypt and decrypt connections and store
certificates and passwords. If you need to use a security device other
than the one in &brandShortName;, click the <em>Security Devices</em>
button.</p>
<div class="contentsBox"><em>09 October 2007</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,88 +0,0 @@
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:nc="http://home.netscape.com/NC-rdf#">
<Description rdf:about="urn:root">
<nc:subheadings>
<Seq>
<!--
These nodes are used for searching purposes; they display in search results but do not
show up in the default listing displayed when the help viewer loads.
DO NOT CREATE NAME COLLISIONS BETWEEN THE ITEMS HERE AND THE ITEMS IN THE TOC!
-->
<li><Description nc:name="Accessibility Options" nc:link="prefs.xhtml#accessibility" nc:platform="win os2"/></li>
<li><Description nc:name="Accessibility Preferences" nc:link="prefs.xhtml#accessibility" nc:platform="unix mac"/></li>
<li><Description nc:name="Anti-Phishing Options" nc:link="prefs.xhtml#phishing" nc:platform="win os2"/></li>
<li><Description nc:name="Anti-Phishing Preferences" nc:link="prefs.xhtml#phishing" nc:platform="unix mac"/></li>
<li><Description nc:name="authentication (definition)" nc:link="glossary.xhtml#authentication"/></li>
<li><Description nc:name="Back Button" nc:link="using_firebird.xhtml#retracing_your_steps"/></li>
<li><Description nc:name="Block Pop-ups" nc:link="popup.xhtml"/></li>
<li><Description nc:name="bookmark (definition)" nc:link="glossary.xhtml#bookmark"/></li>
<li><Description nc:name="Bookmarks Toolbar (definition)" nc:link="glossary.xhtml#Bookmarks_Toolbar"/></li>
<li><Description nc:name="Browsing" nc:link="using_firebird.xhtml#navigating_web_pages"/></li>
<li><Description nc:name="cache (definition)" nc:link="glossary.xhtml#cache"/></li>
<li><Description nc:name="certificate (definition)" nc:link="glossary.xhtml#certificate"/></li>
<li><Description nc:name="Certificates" nc:link="prefs.xhtml#certificates"/></li>
<li><Description nc:name="Certificate Revocation Lists" nc:link="prefs.xhtml#certificates"/></li>
<li><Description nc:name="client (definition)" nc:link="glossary.xhtml#client"/></li>
<li><Description nc:name="Configuring Extensions" nc:link="customization.xhtml#add_ons_configuring_extensions"/></li>
<li><Description nc:name="cookie (definition)" nc:link="glossary.xhtml#cookie"/></li>
<li><Description nc:name="cryptography (definition)" nc:link="glossary.xhtml#cryptography"/></li>
<li><Description nc:name="decryption (definition)" nc:link="glossary.xhtml#decryption"/></li>
<li><Description nc:name="digital ID (definition)" nc:link="glossary.xhtml#digital_ID"/></li>
<li><Description nc:name="Disabling, Enabling, Uninstalling Add-ons" nc:link="customization.xhtml#add_ons_uninstalling"/></li>
<li><Description nc:name="encryption (definition)" nc:link="glossary.xhtml#encryption"/></li>
<li><Description nc:name="Extensible Markup Language (XML) (definition)" nc:link="glossary.xhtml#XML"/></li>
<li><Description nc:name="feed (definition)" nc:link="glossary.xhtml#feed"/></li>
<li><Description nc:name="File Transfer Protocol (FTP) (definition)" nc:link="glossary.xhtml#File_Transfer_Protocol"/></li>
<li><Description nc:name="FIPS PUBS 140-1 (definition)" nc:link="glossary.xhtml#FIPS_PUBS_140-1"/></li>
<li><Description nc:name="Forward Button" nc:link="using_firebird.xhtml#retracing_your_steps"/></li>
<li><Description nc:name="going back or forward" nc:link="using_firebird.xhtml#retracing_your_steps"/></li>
<li><Description nc:name="Home Button" nc:link="using_firebird.xhtml#viewing_your_home_page"/></li>
<li><Description nc:name="Home Page (definition)" nc:link="glossary.xhtml#home_page"/></li>
<li><Description nc:name="Hypertext Markup Language (HTML) (definition)" nc:link="glossary.xhtml#Hypertext_Markup_Language"/></li>
<li><Description nc:name="importing Internet Explorer Favorites" nc:link="forieusers.xhtml#about_your_ie_settings"/></li>
<li><Description nc:name="Internet (definition)" nc:link="glossary.xhtml#Internet"/></li>
<li><Description nc:name="Internet protocol (IP) address (definition)" nc:link="glossary.xhtml#Internet_protocol_address"/></li>
<li><Description nc:name="Java (definition)" nc:link="glossary.xhtml#Java"/></li>
<li><Description nc:name="JavaScript (definition)" nc:link="glossary.xhtml#JavaScript"/></li>
<li><Description nc:name="Languages" nc:link="prefs.xhtml#languages"/></li>
<li><Description nc:name="Live Bookmark (definition)" nc:link="glossary.xhtml#live_bookmark"/></li>
<li><Description nc:name="Location Bar (definition)" nc:link="glossary.xhtml#location_bar"/></li>
<li><Description nc:name="master password (definition)" nc:link="glossary.xhtml#master_password"/></li>
<li><Description nc:name="Navigation Toolbar (definition)" nc:link="glossary.xhtml#navigation_toolbar"/></li>
<li><Description nc:name="Password Manager (definition)" nc:link="glossary.xhtml#Password_Manager"/></li>
<li><Description nc:name="PKCS #11 (definition)" nc:link="glossary.xhtml#PKCS_11"/></li>
<li><Description nc:name="Plugin (definition)" nc:link="glossary.xhtml#Plugin"/></li>
<li><Description nc:name="Plugins" nc:link="using_firebird.xhtml#managing_different_file_types"/></li>
<li><Description nc:name="private key (definition)" nc:link="glossary.xhtml#private_key"/></li>
<li><Description nc:name="proxy (definition)" nc:link="glossary.xhtml#proxy"/></li>
<li><Description nc:name="recently visited web pages" nc:link="using_firebird.xhtml#moving_to_another_page"/></li>
<li><Description nc:name="Reload Button" nc:link="using_firebird.xhtml#stopping_and_reloading"/></li>
<li><Description nc:name="search engine (definition)" nc:link="glossary.xhtml#search_engine"/></li>
<li><Description nc:name="searching using the Location Bar" nc:link="using_firebird.xhtml#moving_to_another_page"/></li>
<li><Description nc:name="searching using the Search Bar" nc:link="using_firebird.xhtml#searching_the_web"/></li>
<li><Description nc:name="searching using text from the page" nc:link="using_firebird.xhtml#searching_on_selected_words_in_a_web_page"/></li>
<li><Description nc:name="secure site (definition)" nc:link="glossary.xhtml#secure_site"/></li>
<li><Description nc:name="Secure Sockets Layer (SSL) (definition)" nc:link="glossary.xhtml#SSL"/></li>
<li><Description nc:name="server (definition)" nc:link="glossary.xhtml#server"/></li>
<li><Description nc:name="Setting or Changing the Master Password" nc:link="prefs.xhtml#set_change_master_password"/></li>
<li><Description nc:name="Software Updates" nc:link="menu_reference.xhtml#check_for_updates"/></li>
<li><Description nc:name="Status Bar (definition)" nc:link="glossary.xhtml#Status_Bar"/></li>
<li><Description nc:name="Stop Button" nc:link="using_firebird.xhtml#stopping_and_reloading"/></li>
<li><Description nc:name="Switching Themes" nc:link="customization.xhtml#add_ons_switching_themes"/></li>
<li><Description nc:name="TLS (definition)" nc:link="glossary.xhtml#TLS"/></li>
<li><Description nc:name="TCP/IP (Transmission Control Protocol/Internet Protocol) (definition)" nc:link="glossary.xhtml#TCP_IP"/></li>
<li><Description nc:name="Uniform Resource Locator (URL) (definition)" nc:link="glossary.xhtml#Uniform_Resource_Locator"/></li>
<li><Description nc:name="Updating Add-ons" nc:link="customization.xhtml#add_ons_updating"/></li>
<li><Description nc:name="Verification" nc:link="prefs.xhtml#certificates"/></li>
<li><Description nc:name="Viewing HTML Source" nc:link="menu_reference.xhtml#page_source"/></li>
<li><Description nc:name="web page (definition)" nc:link="glossary.xhtml#web_page"/></li>
<li><Description nc:name="web site (definition)" nc:link="glossary.xhtml#web_site"/></li>
<li><Description nc:name="World Wide Web (definition)" nc:link="glossary.xhtml#World_Wide_Web"/></li>
</Seq>
</nc:subheadings>
</Description>
</RDF>

View File

@ -1,383 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<!--
Contributors:
David Tenser <david.tenser@comhem.se> (original author)
R.J. Keller <rlk@trfenv.com>
Sean Umphlet <nosebleed@umphlet.com> (minor bugfixes)
Jeff Walden <jwalden+code@mit.edu>
Steffen Wilberg <steffen.wilberg@web.de>
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>&brandFullName; Keyboard Shortcuts</title>
<link rel="stylesheet" type="text/css"
href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>&brandFullName; Keyboard Shortcuts</h1>
<p>This is a list of the most common keyboard shortcuts in &brandFullName;.
<span class="unix">If you have enabled Emacs-style text editing shortcuts
in GNOME, they will also work in &brandShortName;. When an Emacs text
editing shortcut conflicts with the default shortcuts (as occurs with
&accelKey;+<kbd>K</kbd>), the Emacs shortcut will take preference if
focus is inside a textbox (which would include the location bar and search
bar). In such cases you should use the alternate keyboard shortcut
if one is listed below.</span></p>
<table border="1">
<thead>
<tr>
<th>Command</th>
<th>Shortcut</th>
</tr>
</thead>
<tbody>
<tr>
<th colspan="2">Navigation</th>
</tr>
<tr>
<td>Back</td>
<td>
<span class="win">
&altKey;+<kbd>Left Arrow</kbd><br/>
<kbd>Backspace</kbd>
</span>
<span class="unix">
&altKey;+<kbd>Left Arrow</kbd><br/>
&accelKey;+<kbd>[</kbd>
</span>
<span class="mac">
&accelKey;+<kbd>[</kbd><br/>
&accelKey;+<kbd>Left Arrow</kbd><br/>
<kbd>Delete</kbd>
</span>
</td>
</tr>
<tr>
<td>Forward</td>
<td>
<span class="win">
&altKey;+<kbd>Right Arrow</kbd><br/>
&shiftKey;+<kbd>Backspace</kbd>
</span>
<span class="unix">
&altKey;+<kbd>Right Arrow</kbd><br/>
&accelKey;+<kbd>]</kbd>
</span>
<span class="mac">
&accelKey;+<kbd>]</kbd><br/>
&accelKey;+<kbd>Right Arrow</kbd><br/>
&shiftKey;+<kbd>Delete</kbd>
</span>
</td>
</tr>
<tr>
<td>Home</td>
<td>&altKey;+<kbd>Home</kbd></td>
</tr>
<tr>
<td>Open File</td>
<td>&accelKey;+<kbd>O</kbd></td>
</tr>
<tr>
<td>Reload</td>
<td><kbd>F5<br/></kbd>
&accelKey;+<kbd>R</kbd></td>
</tr>
<tr>
<td>Reload (override cache)</td>
<td><span class="noMac">&accelKey;+<kbd>F5</kbd><br/></span>
&accelKey;+&shiftKey;+<kbd>R</kbd></td>
</tr>
<tr>
<td>Stop</td>
<td><span class="mac">&accelKey;+<kbd>.</kbd><br/></span>
<kbd>Esc</kbd></td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="2">Current Page</th>
</tr>
<tr>
<td>Go to Bottom of Page</td>
<td><kbd>End</kbd></td>
</tr>
<tr>
<td>Go to Top of Page</td>
<td><kbd>Home</kbd></td>
</tr>
<tr>
<td>Move to Next Frame</td>
<td><kbd>F6</kbd></td>
</tr>
<tr>
<td>Move to Previous Frame</td>
<td>&shiftKey;+<kbd>F6</kbd></td>
</tr>
<tr class="noWin">
<td>Page Info</td>
<td>&accelKey;+<kbd>I</kbd></td>
</tr>
<tr>
<td>Page Source</td>
<td>&accelKey;+<kbd>U</kbd></td>
</tr>
<tr>
<td>Print</td>
<td>&accelKey;+<kbd>P</kbd></td>
</tr>
<tr>
<td>Save Page As</td>
<td>&accelKey;+<kbd>S</kbd></td>
</tr>
<tr>
<td>Text Size: Decrease</td>
<td>&accelKey;+<kbd>-</kbd></td>
</tr>
<tr>
<td>Text Size: Increase</td>
<td>&accelKey;+<kbd>+</kbd></td>
</tr>
<tr>
<td>Text Size: Restore</td>
<td>&accelKey;+<kbd>0</kbd></td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="2">Editing</th>
</tr>
<tr>
<td>Copy</td>
<td>&accelKey;+<kbd>C</kbd></td>
</tr>
<tr>
<td>Cut</td>
<td>&accelKey;+<kbd>X</kbd></td>
</tr>
<tr>
<td>Delete</td>
<td><kbd>Delete</kbd></td>
</tr>
<tr>
<td>Paste</td>
<td>&accelKey;+<kbd>V</kbd></td>
</tr>
<tr>
<td>Redo</td>
<td><span class="win">&accelKey;+<kbd>Y</kbd></span>
<span class="noWin">&accelKey;+&shiftKey;+<kbd>Z</kbd></span></td>
</tr>
<tr>
<td>Select All</td>
<td>&accelKey;+<kbd>A</kbd></td>
</tr>
<tr>
<td>Undo</td>
<td>&accelKey;+<kbd>Z</kbd></td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="2">Search</th>
</tr>
<tr>
<td>Find</td>
<td>&accelKey;+<kbd>F</kbd></td>
</tr>
<tr>
<td>Find Again</td>
<td><kbd>F3</kbd><br/>
&accelKey;+<kbd>G</kbd></td>
</tr>
<tr>
<td>Find As You Type Link</td>
<td><kbd>'</kbd></td>
</tr>
<tr>
<td>Find As You Type Text</td>
<td><kbd>/</kbd></td>
</tr>
<tr>
<td>Find Previous</td>
<td>&shiftKey;+<kbd>F3</kbd></td>
</tr>
<tr>
<td>Web Search</td>
<td>&accelKey;+<kbd>K</kbd>
<span class="win"><br/>&accelKey;+<kbd>E</kbd></span>
<span class="unix"><br/>&accelKey;+<kbd>J</kbd></span></td>
</tr>
</tbody>
<tbody id="windows_tabs">
<tr>
<th colspan="2">Windows &amp; Tabs</th>
</tr>
<tr>
<td>Close Tab</td>
<td>&accelKey;+<kbd>W</kbd>
<span class="noMac"><br/>&ctrlKey;+<kbd>F4</kbd></span></td>
</tr>
<tr>
<td>Close Window</td>
<td>&accelKey;+&shiftKey;+<kbd>W</kbd>
<span class="noMac"><br/>&altKey;+<kbd>F4</kbd></span></td>
</tr>
<!-- LOCALIZATION NOTE:
"Left"/"Up" and "Right"/"Down" might need special treatment
for bidi locales, as used in the following two entries.
-->
<tr>
<td>Move Tab Left<br/>
(when tab is focused)</td>
<td>&accelKey;+<kbd>Left Arrow</kbd><br/>
&accelKey;+<kbd>Up Arrow</kbd></td>
</tr>
<tr>
<td>Move Tab Right<br/>
(when tab is focused)</td>
<td>&accelKey;+<kbd>Right Arrow</kbd><br/>
&accelKey;+<kbd>Down Arrow</kbd></td>
</tr>
<tr>
<td>Move Tab to Beginning<br/>
(when tab is focused)</td>
<td>&accelKey;+<kbd>Home</kbd></td>
</tr>
<tr>
<td>Move Tab to End<br/>
(when tab is focused)</td>
<td>&accelKey;+<kbd>End</kbd></td>
</tr>
<tr>
<td>New Tab</td>
<td>&accelKey;+<kbd>T</kbd></td>
</tr>
<tr>
<td>New Window</td>
<td>&accelKey;+<kbd>N</kbd></td>
</tr>
<tr>
<td>Next Tab</td>
<td>&ctrlKey;+<kbd>Tab</kbd><br/>
<span class="mac">&accelKey;+&altKey;+Right Arrow<br/></span>
&ctrlKey;+<kbd>Page Down</kbd></td>
</tr>
<tr>
<td>Open Address in New Tab<br/>
(from Location Bar or Search Bar)</td>
<td>&altKey;+&enterKey;</td>
</tr>
<tr>
<td>Previous Tab</td>
<td>&ctrlKey;+&shiftKey;+<kbd>Tab</kbd><br/>
<span class="mac">&accelKey;+&altKey;+Left Arrow<br/></span>
&ctrlKey;+<kbd>Page Up</kbd></td>
</tr>
<tr>
<td>Restore Recently Closed Tab</td>
<td>&accelKey;+&shiftKey;+<kbd>T</kbd></td>
</tr>
<tr>
<td>Select Tab (1 to 8)</td>
<td><span class="noUnix">&accelKey;</span><span
class="unix">&altKey;</span>+(<kbd>1</kbd> to <kbd>8</kbd>)</td>
</tr>
<tr>
<td>Select Last Tab</td>
<td><span class="noUnix">&accelKey;</span><span
class="unix">&altKey;</span>+<kbd>9</kbd></td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="2">Tools</th>
</tr>
<tr class="noUnix">
<td>Bookmark All Tabs</td>
<td>&accelKey;+&shiftKey;+<kbd>D</kbd></td>
</tr>
<tr>
<td>Bookmark This Page</td>
<td>&accelKey;+<kbd>D</kbd></td>
</tr>
<tr>
<td>Bookmarks</td>
<td>&accelKey;+<kbd>B</kbd>
<span class="win"><br/>&accelKey;+<kbd>I</kbd></span></td>
</tr>
<tr>
<td>Caret Browsing</td>
<td><kbd>F7</kbd></td>
</tr>
<tr>
<td>Downloads</td>
<td><span class="noUnix">&accelKey;+<kbd>J</kbd></span>
<span class="unix">&accelKey;+<kbd>Y</kbd></span></td>
</tr>
<tr>
<td>History</td>
<td><span class="noMac">&accelKey;+<kbd>H</kbd></span>
<span class="mac">&accelKey;+&shiftKey;+<kbd>H</kbd></span></td>
</tr>
<tr>
<td>Clear Private Data</td>
<td>&accelKey;+&shiftKey;+<kbd>Del</kbd></td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="2">Miscellaneous</th>
</tr>
<tr>
<td>Complete .com Address</td>
<td>&accelKey;+&enterKey;</td>
</tr>
<tr>
<td>Complete .net Address</td>
<td>&shiftKey;+&enterKey;</td>
</tr>
<tr>
<td>Complete .org Address</td>
<td>&accelKey;+&shiftKey;+&enterKey;</td>
</tr>
<tr>
<td>Delete Selected Autocomplete Entry</td>
<td><span class="noMac"><kbd>Del</kbd></span>
<span class="mac">&shiftKey;+<kbd>Del</kbd></span></td>
</tr>
<tr class="noMac">
<td>Full Screen</td>
<td><kbd>F11</kbd></td>
</tr>
<tr>
<td>Select Location Bar</td>
<td><span class="noMac">&altKey;+<kbd>D</kbd><br/></span>
<kbd>F6</kbd><br />
&accelKey;+<kbd>L</kbd></td>
</tr>
<tr>
<td>Select or Manage Search Engines<br/>
(when Search Bar is focused)</td>
<td>&altKey;+<kbd>Up Arrow</kbd><br/>
&altKey;+<kbd>Down Arrow</kbd><span class="noMac"><br/>
<kbd>F4</kbd></span></td>
</tr>
</tbody>
</table>
<div class="contentsBox"><em>07 October 2007</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,137 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<!--
Contributors:
Daniel Wang (original author)
Jeff Walden <jwalden+code@mit.edu> (minor editorial nits, XHTML conversion)
Steffen Wilberg <steffen.wilberg@web.de> (minor editorial nits)
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Tabbed Browsing</title>
<link rel="stylesheet" type="text/css" href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>Tabbed Browsing</h1>
<p>Tabbed browsing lets you open tabs, each displaying a web page, within a
single &brandShortName; window. You can open links in new tabs, where they
will load while you read the current page. You don't have to use tabbed
browsing, but if you do you might find tabbed browsing is a better, faster
way to browse the Web.</p>
<div class="contentsBox">In this section:
<ul>
<li><a href="#creating_loading_tabs">Creating and Loading Tabs</a></li>
<li><a href="#moving_tabs">Moving Tabs Within a Window</a></li>
<li><a href="#closing_tabs">Closing Tabs</a></li>
<li><a href="#customizing">Customizing Tabbed Browsing</a></li>
<li><a href="#tips_tricks">Tips and Tricks</a></li>
</ul>
</div>
<h2 id="creating_loading_tabs">Creating and Loading Tabs</h2>
<p>To open a new tab, press &accelKey;+<kbd>T</kbd>, select <span
class="menuPath">File &gt; New Tab</span>, or double-click an empty space in
the Tab Bar.</p>
<p>To load a link in a tab, you can do one of the following:</p>
<ul>
<li>Middle-click the link. (If you have a mouse wheel, clicking the wheel is
equivalent to middle-clicking.)</li>
<li>Drag the link and drop it on an empty space in the Tab Bar. (If only one
web page is open, the Tab Bar may be hidden. See <a
href="#customizing">Customizing Tabbed Browsing</a> for information on how
to change this.)</li>
<li>Drag and drop the link onto a tab to open the link in that tab.</li>
<li><span class="noMac">Right-click</span><span class="mac">Press &ctrlKey;,
click on</span> the link, and choose <span
class="menuPath">Open Link in New Tab</span> from the context menu.</li>
</ul>
<p>To open a URL in the Location Bar in a new tab, enter the URL and press
&altKey;+&enterKey;.</p>
<h2 id="moving_tabs">Moving Tabs Within a Window</h2>
<p>Tabs are displayed in the order you open them, which may not always be what
you want. To move a tab to a different location within a &brandShortName;
window, simply drag it there using your mouse. While you are dragging the
tab, &brandShortName; displays a small indicator to show where the tab will be
moved. Alternately, you can use <a
href="shortcuts.xhtml#windows_tabs">keyboard shortcuts</a> to move tabs within
a window if desired.</p>
<h2 id="closing_tabs">Closing and Restoring Tabs</h2>
<p>To close the current tab, press &accelKey;+<kbd>W</kbd>, click the Close Tab
button, middle-click the tab, or select <span class="menuPath">File &gt;
Close Tab</span>. To close all tabs other than the current one, <span
class="noMac">right-click</span><span class="mac">press &ctrlKey;,
click</span> on the tab and choose <span class="menuPath">Close Other
Tabs</span>.</p>
<p>&brandShortName; windows keep a list of tabs you closed recently. You can
restore any tab by selecting it from <span class="menuPath">History &gt;
Recently Closed Tabs</span>. You can restore all tabs by selecting <span
class="menuPath">History &gt; Recently Closed Tabs &gt; Open All in Tabs
</span>. Press &accelKey;+&shiftKey;+<kbd>T</kbd> to open them one by one in
reverse order.</p>
<h2 id="customizing">Customizing Tabbed Browsing</h2>
<p>To change tabbed browsing &pref.plural; select &pref.menuPath; and open the
<a href="prefs.xhtml#tabs_options"><em>Tabs</em> panel</a>.</p>
<h2 id="tips_tricks">Tips and Tricks</h2>
<dl>
<dt id="bookmarking_tabbed_browsing">Bookmarks and Tabbed Browsing</dt>
<dd>To bookmark a set of tabs:</dd>
<dd>
<ol>
<li><span class="noUnix">Press &accelKey;+&shiftKey;+<kbd>D</kbd> or
select</span><span class="unix">Select</span>
<span class="menuPath">Bookmarks &gt; Bookmark All Tabs</span> to add
all the tabs in the current window to a new bookmark folder.</li>
<li>To open bookmarks in tabs, open a bookmark folder menu and choose
<span class="menuPath">Open in Tabs</span>. You can also middle-click
on the folder to open its contents in tabs. The bookmarks will open in
existing tabs, not new ones.</li>
</ol>
</dd>
<dt id="home_page_as_tabs">Home Page as Tabs</dt>
<dd>Instead of using only one web page as your homepage, you can make your
home page a set of tabs. Select your favorite web sites and open them in
tabs in a single window. Select &pref.menuPath; and open the <a
href="prefs.xhtml#main_options"><em>Main</em> panel</a>. Under
<em>Startup</em>, press the <em>Use Current Pages</em> button. Now
when you press the Home button, your favorite web sites will load with just
a click.</dd>
<dt>Adding a New Tab Toolbar Button</dt>
<dd>You can add a New Tab button on the toolbar to easily open new tabs by <a
href="customization.xhtml#rearranging_toolbar_items">customizing your
toolbars</a>.</dd>
<dt id="keyboard_shortcuts">Keyboard shortcuts</dt>
<dd>&brandShortName; has an extensive set of shortcuts related to tabbed
browsing; see the full list in <a
href="shortcuts.xhtml#windows_tabs">Keyboard Shortcuts</a>.</dd>
</dl>
<div class="contentsBox"><em>12 September 2006</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,558 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"[
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
%brandDTD;
<!ENTITY % platformDTD SYSTEM "chrome://browser/locale/help/platformStrings.dtd" >
%platformDTD;
]>
<!--
Contributors:
R.J. Keller <rlk@trfenv.com> (original author)
Nilson Cain <nilson@gmail.com>
Steffen Wilberg <steffen.wilberg@web.de>
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Using &brandFullName;</title>
<link rel="stylesheet" type="text/css"
href="chrome://help/skin/helpFileLayout.css"/>
</head>
<body>
<h1>Using &brandFullName;</h1>
<p>Welcome to &brandFullName;! &brandShortName; is an Internet browser that
you can use to visit web pages and search the Web.</p>
<div class="contentsBox">In this section:
<ul>
<li><a href="#navigating_web_pages">Navigating Web Pages</a></li>
<li><a href="#searching">Searching</a></li>
<li><a href="#copying_saving_and_printing_pages">Copying, Saving, and
Printing Pages</a></li>
<li><a href="#improving_speed_and_efficiency">Improving Speed and
Efficiency</a></li>
</ul>
</div>
<h2 id="navigating_web_pages">Navigating Web Pages</h2>
<h3 id="viewing_your_home_page">Viewing Your Home Page</h3>
<p>When you start &brandShortName;, you will see your home page. By default,
you will see &brandShortName;'s home page.</p>
<div class="noMac"><p><strong>Tips</strong>:</p>
<ul>
<li>To display more web content on the screen, you can use Full Screen mode.
Full Screen mode condenses the &brandShortName;'s Toolbars into one small
toolbar. To enable Full Screen mode, simply select
<span class="menuPath">View &gt; Full Screen</span> or press
<kbd>F11</kbd>.</li>
<li>To go to your home page quickly, press &altKey;+<kbd>Home</kbd>.</li>
</ul></div>
<h3><strong id="moving_to_another_page">Moving to Another Page</strong></h3>
<p>You can move to a new web page by typing in its Internet address or URL
into the Location Bar. URLs normally begin with &quot;http://&quot; followed
by one or more names that identify the address. One example is
&quot;http://www.mozilla.org/&quot;.</p>
<ol>
<li>Click the Location Bar to select the URL that is already there.</li>
<li>Type the URL of the page you want to visit. The URL you type replaces
any text already in the Location Bar.</li>
<li>Press &enterKey;.</li>
</ol>
<p><strong>Tip:</strong> To quickly select the URL of the Location Bar, press
&accelKey;+<kbd>L</kbd>.</p>
<p><img src="&images.baseURL;/urlbar.png" alt=""/></p>
<p><strong>Don't know a URL</strong>? Try typing something specific to the page
you want to visit, e.g. a name, into the Location Bar and hit &enterKey;.
This will take you to the top result in Google for that term.</p>
<h3 id="clicking_a_link">Clicking a Link</h3>
<p>Most web pages contain links you can click to move to other pages.</p>
<ol>
<li>Move the mouse pointer until it changes to a pointing finger. This
happens whenever the pointer is over a link. Most links are underlined
text, but buttons and pictures can also be links.</li>
<li>Click the link once. While the network locates the link's page, status
messages will appear at the bottom of the window.</li>
</ol>
<h3 id="retracing_your_steps">Retracing Your Steps</h3>
<p>There are several ways to revisit pages:</p>
<ul>
<li>To go back or forward one page, click the <em>Back</em> or
<em>Forward</em> button.</li>
<li>To go back or forward more than one page, click the small triangles on
the <em>Back</em> and <em>Forward</em> buttons. You'll see a list of pages
you've recently visited; to return to a page, choose it from the list.</li>
<li>To see a list of any URLs you've typed into the Location Bar, click the
down arrow at the right end of the Location Bar. To view a page, choose it
from the list.<br/>
<img src="&images.baseURL;/urlbar.png" alt=""/></li>
<li>To choose from pages you've visited during the current session, open the
History menu and use the list in the bottom section of the menu.</li>
<li>To choose from pages you've visited during the past several sessions,
open the <em>History</em> menu and choose <em>Show in Sidebar</em>. You will see the
History Sidebar. The History Sidebar displays a list of folders.
Clicking the folders displays subfolders or titles of web pages.
You can click a page's title to view that page.</li>
</ul>
<h3 id="stopping_and_reloading">Stopping and Reloading</h3>
<p>If a page is loading too slowly or you no longer wish to view a page,
click the <em>Stop</em> button.</p>
<p>To reload the current page or to get the most up-to-date version, click
the <em>Reload</em> button or press &accelKey;+<kbd>R</kbd>.</p>
<h3 id="tabbed_browsing">Tabbed Browsing</h3>
<p>When you visit more than one web page at a time, you can use Tabbed
Browsing to navigate the Web faster and easier.</p>
<p>Tabbed Browsing lets you open tabs, each displaying a web page, within a
single &brandShortName; window. You don't have to have several windows open
to visit several different web pages. This frees up space on your desktop.
You can open, close, and reload web pages conveniently in one place without
having to switch to another window.</p>
<p>For more info, see <a href="tabbed_browsing.xhtml">Tabbed Browsing</a>.</p>
<h3 id="using_the_sidebar">Using the Sidebar</h3>
<p>The Sidebar is an area on the left side of the screen that you can use for
viewing bookmarks or history. Extensions may add new ways to use the Sidebar
as well.</p>
<p>To view an item in the Sidebar, select <span class="menuPath">View &gt;
Sidebar</span>. From there you can select the Sidebar tab you want.</p>
<h2 id="searching">Searching</h2>
<h3 id="searching_the_web">Searching the Web</h3>
<p>Searching for web pages on a particular topic is as easy as typing a few
words into &brandShortName;'s Search Bar.<br/>
<img src="&images.baseURL;/searchbar.png" alt=""/></p>
<p>For example, if you want to find information about baby dolls:</p>
<ol>
<li>Click in the Search Bar.</li>
<li>Type the phrase <kbd>baby doll</kbd>. Your typing replaces any text
currently in the search bar.</li>
<li>Hit &enterKey; to search.</li>
</ol>
<p>Search results for "baby doll" appear in the &brandShortName; window.</p>
<h4 id="selecting_the_search_engine">Selecting the Search Engine</h4>
<p>You can switch the Search Engine by clicking on its icon and selecting the
Search Engine of your choice. Some Search Engines, like Google, search the
whole web; others, like Amazon.com, only search specific sites.</p>
<h4 id="manage_search_engines">Manage Search Engines</h4>
<p>Click on the icon of the Search Engine and select <em>Manage Search
Engines…</em> to add, reorder, remove, or restore the default Search Engines.
Select a Search Engine and click the appropriate button to to move
it around within the list or remove it. You can install new search engines by
clicking the <em>Get more search engines…</em> link.</p>
<h3 id="searching_on_selected_words_in_a_web_page">Searching the Web for
Words Selected in a Web Page</h3>
<p>&brandShortName; allows you to search the web for words you select within
a web page:</p>
<ol>
<li>Select (highlight) any words in a web page.</li>
<li><span class="noMac">Right-click</span><span class="mac">Press &ctrlKey;,
click the mouse button,</span> and choose <em>Search [Search Engine] for
"[your selected words]"</em> from the pop-up menu.</li>
</ol>
<p>&brandShortName; opens a new tab and uses the currently selected Search
Engine to search for your selected words.</p>
<h3 id="searching_within_a_page">Searching Within a Page</h3>
<p>To find text within the page you are currently viewing in
&brandShortName;:</p>
<ol>
<li>Press &accelKey;+<kbd>F</kbd> or select <span class="menuPath">Edit &gt;
Find in This Page…</span> to open the Find Toolbar at the bottom of
&brandShortName;.</li>
<li>Type the text you want to find. The search automatically begins as soon as
you type something into the search box.</li>
<li>The Find Toolbar offers the following choices:
<ul>
<li><strong>Next</strong>: find text in the page that is below the current
cursor position.</li>
<li><strong>Previous</strong>: find text that is above the current cursor
position.</li>
<li><strong>Highlight all</strong>: highlight occurrences of your search
string in the current page.</li>
<li><strong>Match case</strong>: limit the search to text that has the
same capitalization as your search string.</li>
</ul>
</li>
</ol>
<p>To find the same word or phrase again, press <kbd>F3</kbd> or select
<span class="menuPath">Edit &gt; Find Again</span>.</p>
<p><strong>Tip</strong>: Enable the <em>Search for text when I start typing</em>
&pref.singular; in the <em>General</em> tab of the <em>Advanced</em> panel of
&pref.menuPath; to enable the <em>Quick Find</em> mode of the Find Toolbar.
When enabled, the <em>Quick Find</em> toolbar automatically opens and starts
searching as soon as you type something. Unlike the Find Toolbar, the
<em>Quick Find</em> toolbar will close automatically after a few seconds of
inactivity.</p>
<h2 id="copying_saving_and_printing_pages">Copying, Saving, and Printing
Pages</h2>
<h3 id="copying_part_of_a_page">Copying Part of a Page</h3>
<p>To copy text from a page:</p>
<ol>
<li>Select the text.</li>
<li>Select <span class="menuPath">Edit &gt; Copy</span> from the Menu
Bar.</li>
</ol>
<p>You can paste the text into other programs.</p>
<p>To copy a link (URL) or an image link from a page:</p>
<ol>
<li>Position the pointer over the link or image.</li>
<li><span class="noMac">Right-click</span><span class="mac">Press &ctrlKey;
and click on</span> the link or image to display a pop-up menu.</li>
<li>Choose Copy Link Location or Copy Image Location. If an image is also a
link, you can choose either menu item.</li>
</ol>
<p>You can paste the link into other programs or into &brandShortName;'s
Location Bar.</p>
<h3 id="saving_all_or_part_of_a_page">Saving All or Part of a Page</h3>
<p>To save an entire page in &brandShortName;:</p>
<ol>
<li>Select <span class="menuPath">File &gt; Save Page As</span>. You will see
the Save As dialog box.</li>
<li>Choose a location for the saved page.</li>
<li>Choose a format for the page you want to save:
<ul>
<li><strong>Web Page, Complete</strong>: Save the whole web page along
with pictures. This choice allows you to view it as originally shown
with pictures, but it may not keep the HTML link structure of the
original page. &brandShortName; creates a new directory where the
page is saved to save pictures and other files necessary to show the
whole web page.</li>
<li><strong>Web Page, HTML Only</strong>: Save the original page
without pictures. This choice preserves the original HTML link
structure in one file.</li>
<li><strong>Text file</strong>: Save the original page as a text file.
This choice will not preserve the original HTML link structure, but
will allow you to see a text version of the web page in any text
editor.</li>
</ul>
</li>
<li>Type a file name for the page and click <em>Save</em>.</li>
</ol>
<p>To save a frame from within a web page:</p>
<ol>
<li>Position the mouse pointer within the frame.</li>
<li><span class="mac">Press &ctrlKey; and click on</span><span
class="noMac">Right-click</span> the frame to display a pop-up menu.</li>
<li>Select <span class="menuPath">This Frame &gt; Save Frame As</span> from
the submenu. You will see the Save As dialog box.</li>
<li>Choose a location for the saved page.</li>
<li>Choose a format for the page you want to save.</li>
<li>Type a file name for the page and click <em>Save</em>.</li>
</ol>
<p>Saving a file onto your hard drive lets you view the page when you aren't
connected to the Internet.</p>
<p>To save an image from a page:</p>
<ol>
<li>Position the mouse pointer over the image.</li>
<li><span class="noMac">Right-click</span><span class="mac">Press &ctrlKey;
and click on</span> the image to display a pop-up menu.</li>
<li>Select <span class="menuPath">Save Image As</span>. You will see the
Save Image dialog box.</li>
<li>Choose a location for the saved image.</li>
<li>Type a file name for the image and click <em>Save</em>.</li>
</ol>
<p>To save a page without displaying it (which is useful for retrieving a
nonformatted page that isn't intended for viewing):</p>
<ol>
<li>Position the mouse pointer over a link to the page.</li>
<li><span class="noMac">Right-click</span><span class="mac">Press &ctrlKey;
and click on</span> the link to display a pop-up menu.</li>
<li>Select <span class="menuPath">Save Link to Disk</span>. You will see the
Save As dialog box.</li>
<li>Choose a location for the saved page.</li>
<li>Type a file name for the page and click <em>Save</em>.</li>
</ol>
<p><strong>Important</strong>: Some links automatically download and save files
to your hard drive after you click them. The URLs for these links often
begin with &quot;ftp&quot; or end with a file-type extension such as
&quot;au&quot; or &quot;mpeg.&quot; These links might transmit software,
sound, or movie files and can launch helper applications that support the
files.</p>
<p><strong>Tip</strong>: To set an image as your desktop background,
<span class="noMac">right-click</span><span class="mac">press &ctrlKey;,
click the mouse button</span> on an image and choose <em>Set As Desktop
Background…</em> from the pop-up menu.</p>
<h3 id="printing_a_page">Printing a Page</h3>
<p>To print the current page:</p>
<ul>
<li>Select <span class="menuPath">File &gt; Print</span>.</li>
</ul>
<p>To print selected text:</p>
<ul>
<li>Select the text in the current page.</li>
<li>Select <span class="menuPath">File &gt; Print</span>. The print dialog
box will appear.</li>
<li>Under <em>Print Range</em>, click <em>Selection</em>.</li>
</ul>
<p>The web page's author and the size of the printed page, not the size of the
onscreen window, determine placement of content on the printed page. Text is
wrapped and graphics are repositioned to accommodate paper size.</p>
<h3 id="using_print_preview">Using Print Preview</h3>
<p>To have an early look at how a page will look before it is printed, you can
use Print Preview:</p>
<ul>
<li>Select <span class="menuPath">File &gt; Print Preview</span>.</li>
</ul>
<p>In Print Preview, you can do the following with pages you want to print:</p>
<ul>
<li><strong>View a preview of each page</strong>: Click the
Next <img alt="" src="chrome://global/skin/arrow/arrow-rit-sharp.gif"/>,
Previous <img alt="" src="chrome://global/skin/arrow/arrow-lft-sharp.gif"/>,
First <img alt="" src="chrome://global/skin/arrow/arrow-lft-sharp-end.gif"/>,
or Last <img alt="" src="chrome://global/skin/arrow/arrow-rit-sharp-end.gif"/>
button to move between pages.</li>
<li><strong>Change the scale (size) of pages</strong>: In the <em>Scale</em>
drop-down menu, choose &quot;50%&quot; to make each page half the size of
the original page. To automatically resize pages so that they fit the width
of the paper, choose &quot;Shrink to Fit&quot;. You can also type in your
own percentage by choosing &quot;Custom…&quot;.</li>
<li><strong>Change the orientation of the page</strong>: Choose
<em>Portrait</em> <img alt="" src="chrome://global/skin/icons/Portrait.png"/>
to position the page with the shorter side facing up. Choose
<em>Landscape</em> <img alt="" src="chrome://global/skin/icons/Landscape.png"/>
to position the page sideways with the longer side facing up.</li>
<li><strong>Go to Page Setup</strong>: Click <em>Page Setup</em> to further
customize pages you want to print.</li>
<li><strong>Go to Print</strong>: Click <em>Print</em> to print the
pages.</li>
</ul>
<p class="noWin"><strong>Note</strong>: Some Print Preview functions are different or
unavailable on Mac OS and Linux.</p>
<h3 id="using_page_setup">Using Page Setup</h3>
<p class="noWin"><strong>Note</strong>: Some Page Setup functions are different or
unavailable on Mac OS and Linux.</p>
<p>To customize how pages are printed in &brandShortName;, you can use Page Setup:</p>
<ul>
<li>Select <span class="menuPath">File &gt; Page Setup</span>.</li>
</ul>
<p>In Page Setup, you can change the following settings for pages you want to
print:</p>
<ul>
<li><strong>Format &amp; Options</strong>: Choose the orientation, scale, and other
options:
<ul>
<li><strong>Orientation</strong>:
<ul>
<li><strong>Portrait</strong>: Choose this <img alt=""
src="chrome://global/skin/icons/Portrait.png"/> to position the page
normally, with the shorter side facing up.</li>
<li><strong>Landscape</strong>: Choose this <img alt=""
src="chrome://global/skin/icons/Landscape.png"/> to position the page
sideways, with the longer side facing up.</li>
</ul>
</li>
<li><strong>Scale</strong>: Type in a percentage of the original size. For example,
type &quot;50&quot; to make each page half the size of the original page.
<ul>
<li><strong>Shrink To Fit Page Width</strong>: Select this to automatically
resize the page to the width of the paper.</li>
</ul>
</li>
<li><strong>Options</strong>:
<ul>
<li><strong>Print Background (colors and images)</strong>: Select this to
print background images and colors. If unselected only pictures and color in the
foreground (in front) are printed.</li>
</ul>
</li>
</ul>
</li>
<li><strong>Margins &amp; Header/Footer</strong>: Click this tab to set up margins,
headers, and footers:
<ul>
<li><strong>Margins:</strong>
<ul>
<li><strong>Top, Bottom, Left, Right</strong>: Type a margin in the given units
for the top, bottom, left, and right margins.</li>
</ul>
</li>
<li><strong>Headers &amp; Footers</strong>: Each drop-down list represents either
a header or a footer area. The top row of drop-down lists are for the left, center, and
right header areas. The bottom row are for the left, center, and right footer areas. In
each drop-down list, choose one of the following options:
<ul>
<li><strong>--blank--</strong>: Show nothing in this area.</li>
<li><strong>Title</strong>: Show the web page title.</li>
<li><strong>URL</strong>: Show the web page URL (URL's usually start with
&quot;http://&quot;).</li>
<li><strong>Date/Time</strong>: Show the date and time when the web page is
printed.</li>
<li><strong>Page #</strong>: Show the page number of each page.</li>
<li><strong>Page # of #</strong>: Show the page number along with the total number
of pages. For example, if you print a five page web page, &quot;3 of 5&quot; would
be shown on the third page.</li>
<li><strong>Custom</strong>: Type your own text. You can include any of the
following codes to print specific information:
<ul>
<li><strong>&amp;PT</strong>: Page Number with Total (Example: &quot;3 of
5&quot;)</li>
<li><strong>&amp;P</strong>: Page Number</li>
<li><strong>&amp;D</strong>: Date</li>
<li><strong>&amp;U</strong>: URL</li>
<li><strong>&amp;T</strong>: Page Title</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<p><strong>Tip</strong>: To see a preview of changes made to Page Setup, use
<a href="using_firebird.xhtml#using_print_preview">Print Preview</a>.</p>
<h2 id="improving_speed_and_efficiency">Improving Speed and Efficiency</h2>
<h3 id="managing_different_file_types">Managing Different File Types</h3>
<p>&brandShortName; can handle many types of files. However, for some files such
as movies or music, &brandShortName; needs Plugins or external applications
that can handle those files. If &brandShortName; doesn't have the needed
Plugin or doesn't know what application to use to open the file, it can still
save the file to your hard disk. When saving files, you can keep track of them
using the Download Manager.</p>
<p>Plugins extend &brandShortName;'s functionality and run within it.
Plugins like Sun Java, Macromedia Flash, and RealNetworks RealPlayer allow
&brandShortName; to show multimedia files and run small applications such as
movies, animations, and games. You can find common Plugins on the <a href=
"https://pfs.mozilla.org/plugins/" target="_blank">Plugins page</a>
at Mozilla Update.</p>
<p>When files cannot be opened within &brandShortName;, you can choose to open
them with applications outside of &brandShortName;. For example, you can use
the media player of your choice to play MP3 files.</p>
<p>You can specify how &brandShortName; handles files it can't display in the
<em>Download Actions</em> dialog. To open this dialog, select &pref.menuPath;,
open the <em>Content</em> panel, and click the <em>Manage…</em> button in
the <em>File Types</em> section. You can change the action for a file type or
remove it.
More information about this dialog is available in <a
href="prefs.xhtml#file_types">File Types &pref.plural;</a>.</p>
<p>When you click on a file and &brandShortName; doesn't know how to handle it,
an <em>Opening</em> dialog box is displayed, offering these choices:</p>
<ul>
<li><strong>Open with</strong>: &brandShortName; opens the file using the
default program in your system settings. You can also choose a different
program by selecting <em>Other…</em> in the drop-down list.</li>
<li><strong>Save to Disk</strong>: &brandShortName; allows you to select a
location to save the file. If you have selected <em>Save all files to (this
folder)</em> in the <em>Main</em> panel of &pref.pluralCaps;,
the file will automatically be saved to the default folder; otherwise
&brandShortName; will ask you where to save it.</li>
<li><strong>Do this automatically for files like this from now on</strong>:
When this is selected, &brandShortName; will automatically perform the
selected action the next time you download a file of this type.</li>
</ul>
<p><strong>Tip</strong>: You can clear your saved &pref.plural; for <em>Do this
automatically for files like this from now on</em> in the <em>Download
Actions</em> dialog.</p>
<h3 id="making_firebird_your_default_browser">Making &brandShortName; Your
Default Browser</h3>
<p>&brandShortName; displays web pages on the Internet and
on your computer. To easily open web pages, you can make &brandShortName;
your default browser.</p>
<p>To make &brandShortName; your default web browser, select &pref.menuPath;
and click the <em>Check Now</em> button in the <em>Main</em> panel.</p>
<h3 id="changing_cache_settings">Changing Cache Settings</h3>
<p>&brandShortName; stores copies of frequently accessed pages in the cache.
By doing this &brandShortName; doesn't have to retrieve the page from the
network each time you view the web page.</p>
<p>To set the size of the cache:</p>
<ol>
<li>Select &pref.menuPath;.</li>
<li>Open the <em>Advanced</em> panel and click the <em>Network</em> tab.</li>
<li>Enter a number in the <em>Use up to</em> field to specify the size of the
cache. The default size is 50MB.</li>
</ol>
<p><strong>Important</strong>: A larger cache allows more data to be quickly
retrieved, but more of your hard disk space is used.</p>
<p>When you quit &brandShortName;, it performs cache maintenance. If
maintenance takes longer than you wish, try reducing the size of the disk
cache.</p>
<p>To reload a page at any time, click the <em>Reload</em> button in
&brandShortName;'s <em>Navigation Toolbar</em>. &brandShortName; then loads
and displays the latest version of the page.</p>
<div class="contentsBox"><em>12 September 2006</em></div>
<p>Copyright &copy; &copyright.years; Contributors to the Mozilla Help Viewer Project.</p>
</body>
</html>

View File

@ -1,4 +0,0 @@
# this is an empty file
# locales can ship "extra" files from here, to ship a custom set
# of files for the help system
# do not put any blank lines in this file

View File

@ -68,26 +68,6 @@
locale/browser/sidebar/sidebar.properties (%chrome/browser/sidebar/sidebar.properties) locale/browser/sidebar/sidebar.properties (%chrome/browser/sidebar/sidebar.properties)
% locale browser-region @AB_CD@ %locale/browser-region/ % locale browser-region @AB_CD@ %locale/browser-region/
locale/browser-region/region.properties (%chrome/browser-region/region.properties) locale/browser-region/region.properties (%chrome/browser-region/region.properties)
#ifdef MOZ_HELP_VIEWER
locale/browser/help/help.rdf (%chrome/help/firebirdhelp.rdf)
locale/browser/help/firebird-toc.rdf (%chrome/help/firebird-toc.rdf)
locale/browser/help/search-db.rdf (%chrome/help/search-db.rdf)
locale/browser/help/accessibility.xhtml (%chrome/help/accessibility.xhtml)
locale/browser/help/cookies.xhtml (%chrome/help/cookies.xhtml)
locale/browser/help/forieusers.xhtml (%chrome/help/forieusers.xhtml)
locale/browser/help/menu_reference.xhtml (%chrome/help/menu_reference.xhtml)
locale/browser/help/mouse_shortcuts.xhtml (%chrome/help/mouse_shortcuts.xhtml)
locale/browser/help/popup.xhtml (%chrome/help/popup.xhtml)
locale/browser/help/prefs.xhtml (%chrome/help/prefs.xhtml)
locale/browser/help/shortcuts.xhtml (%chrome/help/shortcuts.xhtml)
locale/browser/help/using_firebird.xhtml (%chrome/help/using_firebird.xhtml)
locale/browser/help/customization.xhtml (%chrome/help/customization.xhtml)
locale/browser/help/firefox_welcome.xhtml (%chrome/help/firefox_welcome.xhtml)
locale/browser/help/download_manager.xhtml (%chrome/help/download_manager.xhtml)
locale/browser/help/platformStrings.dtd (%chrome/help/platformStrings.dtd)
locale/browser/help/tabbed_browsing.xhtml (%chrome/help/tabbed_browsing.xhtml)
locale/browser/help/glossary.xhtml (%chrome/help/glossary.xhtml)
#endif
# the following files are browser-specific overrides # the following files are browser-specific overrides
* locale/browser/netError.dtd (%chrome/overrides/netError.dtd) * locale/browser/netError.dtd (%chrome/overrides/netError.dtd)
* locale/browser/appstrings.properties (%chrome/overrides/appstrings.properties) * locale/browser/appstrings.properties (%chrome/overrides/appstrings.properties)
@ -100,4 +80,3 @@
locale/branding/brand.dtd (%chrome/branding/brand.dtd) locale/branding/brand.dtd (%chrome/branding/brand.dtd)
locale/branding/brand.properties (%chrome/branding/brand.properties) locale/branding/brand.properties (%chrome/branding/brand.properties)
#endif #endif
#includesubst @LOCALE_SRCDIR@/extra-jar.mn

View File

@ -1062,7 +1062,7 @@ toolbar[iconsize="small"] #paste-button[disabled="true"] {
} }
.ac-url-text { .ac-url-text {
color: GrayText; color: -moz-nativehyperlinktext;
} }
.autocomplete-treebody::-moz-tree-cell-text(treecolAutoCompleteComment) { .autocomplete-treebody::-moz-tree-cell-text(treecolAutoCompleteComment) {

View File

@ -1022,7 +1022,7 @@ richlistitem[selected="true"][current="true"] > hbox > .ac-result-type-bookmark,
} }
.ac-url-text { .ac-url-text {
color: #144fae; color: -moz-nativehyperlinktext;
font-size: 0.95em; font-size: 0.95em;
} }

View File

@ -13,7 +13,7 @@
/* ::::: Location Bar AutoComplete Styling ::::: */ /* ::::: Location Bar AutoComplete Styling ::::: */
.ac-url-text:-moz-system-metric(windows-default-theme) { .ac-url-text:-moz-system-metric(windows-default-theme) {
color: #0055bb; color: -moz-nativehyperlinktext;
} }
/* ::::: Identity Indicator Styling ::::: */ /* ::::: Identity Indicator Styling ::::: */

View File

@ -1208,7 +1208,7 @@ statusbarpanel#statusbar-display {
} }
.ac-url-text { .ac-url-text {
color: MenuText; color: -moz-nativehyperlinktext;
} }
.ac-url-text:-moz-system-metric(windows-default-theme) { .ac-url-text:-moz-system-metric(windows-default-theme) {

View File

@ -124,6 +124,42 @@ JSValIDToString(JSContext *cx, const jsval idval)
return reinterpret_cast<PRUnichar*>(JS_GetStringChars(str)); return reinterpret_cast<PRUnichar*>(JS_GetStringChars(str));
} }
static
nsresult
GetPrincipalDomainOrigin(nsIPrincipal* aPrincipal,
nsACString& aOrigin)
{
aOrigin.Truncate();
nsCOMPtr<nsIURI> uri;
aPrincipal->GetDomain(getter_AddRefs(uri));
if (!uri) {
aPrincipal->GetURI(getter_AddRefs(uri));
}
NS_ENSURE_TRUE(uri, NS_ERROR_UNEXPECTED);
uri = NS_GetInnermostURI(uri);
NS_ENSURE_TRUE(uri, NS_ERROR_UNEXPECTED);
nsCAutoString hostPort;
nsresult rv = uri->GetHostPort(hostPort);
if (NS_SUCCEEDED(rv)) {
nsCAutoString scheme;
rv = uri->GetScheme(scheme);
NS_ENSURE_SUCCESS(rv, rv);
aOrigin = scheme + NS_LITERAL_CSTRING("://") + hostPort;
}
else {
// Some URIs (e.g., nsSimpleURI) don't support host. Just
// get the full spec.
rv = uri->GetSpec(aOrigin);
NS_ENSURE_SUCCESS(rv, rv);
}
return NS_OK;
}
// Inline copy of JS_GetPrivate() for better inlining and optimization // Inline copy of JS_GetPrivate() for better inlining and optimization
// possibilities. Also doesn't take a cx argument as it's not // possibilities. Also doesn't take a cx argument as it's not
// needed. We access the private data only on objects whose private // needed. We access the private data only on objects whose private
@ -687,6 +723,8 @@ nsScriptSecurityManager::CheckPropertyAccessImpl(PRUint32 aAction,
// We have native code or the system principal: just allow access // We have native code or the system principal: just allow access
return NS_OK; return NS_OK;
nsCOMPtr<nsIPrincipal> objectPrincipal;
// Hold the class info data here so we don't have to go back to virtual // Hold the class info data here so we don't have to go back to virtual
// methods all the time // methods all the time
ClassInfoData classInfoData(aClassInfo, aClassName); ClassInfoData classInfoData(aClassInfo, aClassName);
@ -741,7 +779,6 @@ nsScriptSecurityManager::CheckPropertyAccessImpl(PRUint32 aAction,
printf("sameOrigin "); printf("sameOrigin ");
#endif #endif
nsCOMPtr<nsIPrincipal> principalHolder; nsCOMPtr<nsIPrincipal> principalHolder;
nsIPrincipal *objectPrincipal;
if(aJSObject) if(aJSObject)
{ {
objectPrincipal = doGetObjectPrincipal(aJSObject); objectPrincipal = doGetObjectPrincipal(aJSObject);
@ -751,10 +788,8 @@ nsScriptSecurityManager::CheckPropertyAccessImpl(PRUint32 aAction,
else if(aTargetURI) else if(aTargetURI)
{ {
if (NS_FAILED(GetCodebasePrincipal( if (NS_FAILED(GetCodebasePrincipal(
aTargetURI, getter_AddRefs(principalHolder)))) aTargetURI, getter_AddRefs(objectPrincipal))))
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
objectPrincipal = principalHolder;
} }
else else
{ {
@ -855,31 +890,53 @@ nsScriptSecurityManager::CheckPropertyAccessImpl(PRUint32 aAction,
switch(aAction) switch(aAction)
{ {
case nsIXPCSecurityManager::ACCESS_GET_PROPERTY: case nsIXPCSecurityManager::ACCESS_GET_PROPERTY:
stringName.AssignLiteral("GetPropertyDenied"); stringName.AssignLiteral("GetPropertyDeniedOrigins");
break; break;
case nsIXPCSecurityManager::ACCESS_SET_PROPERTY: case nsIXPCSecurityManager::ACCESS_SET_PROPERTY:
stringName.AssignLiteral("SetPropertyDenied"); stringName.AssignLiteral("SetPropertyDeniedOrigins");
break; break;
case nsIXPCSecurityManager::ACCESS_CALL_METHOD: case nsIXPCSecurityManager::ACCESS_CALL_METHOD:
stringName.AssignLiteral("CallMethodDenied"); stringName.AssignLiteral("CallMethodDeniedOrigins");
} }
NS_ConvertUTF8toUTF16 className(classInfoData.GetName()); NS_ConvertUTF8toUTF16 className(classInfoData.GetName());
const PRUnichar *formatStrings[] = nsCAutoString subjectOrigin;
{ GetPrincipalDomainOrigin(subjectPrincipal, subjectOrigin);
className.get(), NS_ConvertUTF8toUTF16 subjectOriginUnicode(subjectOrigin);
JSValIDToString(cx, aProperty)
}; nsCAutoString objectOrigin;
if (objectPrincipal) {
GetPrincipalDomainOrigin(objectPrincipal, objectOrigin);
}
NS_ConvertUTF8toUTF16 objectOriginUnicode(objectOrigin);
nsXPIDLString errorMsg; nsXPIDLString errorMsg;
const PRUnichar *formatStrings[] =
{
subjectOriginUnicode.get(),
className.get(),
JSValIDToString(cx, aProperty),
objectOriginUnicode.get()
};
PRUint32 length = NS_ARRAY_LENGTH(formatStrings);
if (!objectPrincipal) {
stringName.AppendLiteral("OnlySubject");
--length;
}
// We need to keep our existing failure rv and not override it // We need to keep our existing failure rv and not override it
// with a likely success code from the following string bundle // with a likely success code from the following string bundle
// call in order to throw the correct security exception later. // call in order to throw the correct security exception later.
nsresult rv2 = sStrBundle->FormatStringFromName(stringName.get(), nsresult rv2 = sStrBundle->FormatStringFromName(stringName.get(),
formatStrings, formatStrings,
NS_ARRAY_LENGTH(formatStrings), length,
getter_Copies(errorMsg)); getter_Copies(errorMsg));
NS_ENSURE_SUCCESS(rv2, rv2); if (NS_FAILED(rv2)) {
// Might just be missing the string... Do our best
errorMsg = stringName;
}
SetPendingException(cx, errorMsg.get()); SetPendingException(cx, errorMsg.get());
@ -1011,40 +1068,6 @@ nsScriptSecurityManager::CheckSameOriginDOMProp(nsIPrincipal* aSubject,
return NS_ERROR_DOM_PROP_ACCESS_DENIED; return NS_ERROR_DOM_PROP_ACCESS_DENIED;
} }
static
nsresult
GetPrincipalDomainOrigin(nsIPrincipal* aPrincipal,
nsACString& aOrigin)
{
aOrigin.Truncate();
nsCOMPtr<nsIURI> uri;
aPrincipal->GetDomain(getter_AddRefs(uri));
if (!uri) {
aPrincipal->GetURI(getter_AddRefs(uri));
}
NS_ENSURE_TRUE(uri, NS_ERROR_UNEXPECTED);
nsCAutoString hostPort;
nsresult rv = uri->GetHostPort(hostPort);
if (NS_SUCCEEDED(rv)) {
nsCAutoString scheme;
rv = uri->GetScheme(scheme);
NS_ENSURE_SUCCESS(rv, rv);
aOrigin = scheme + NS_LITERAL_CSTRING("://") + hostPort;
}
else {
// Some URIs (e.g., nsSimpleURI) don't support host. Just
// get the full spec.
rv = uri->GetSpec(aOrigin);
NS_ENSURE_SUCCESS(rv, rv);
}
return NS_OK;
}
nsresult nsresult
nsScriptSecurityManager::LookupPolicy(nsIPrincipal* aPrincipal, nsScriptSecurityManager::LookupPolicy(nsIPrincipal* aPrincipal,
ClassInfoData& aClassData, ClassInfoData& aClassData,
@ -2961,18 +2984,32 @@ nsScriptSecurityManager::CanCreateWrapper(JSContext *cx,
if (NS_FAILED(rv)) if (NS_FAILED(rv))
{ {
//-- Access denied, report an error //-- Access denied, report an error
NS_ConvertUTF8toUTF16 strName("CreateWrapperDenied");
NS_NAMED_LITERAL_STRING(strName, "CreateWrapperDenied"); nsCAutoString origin;
nsresult rv2;
nsIPrincipal* subjectPrincipal = doGetSubjectPrincipal(&rv2);
if (NS_SUCCEEDED(rv2) && subjectPrincipal) {
GetPrincipalDomainOrigin(subjectPrincipal, origin);
}
NS_ConvertUTF8toUTF16 originUnicode(origin);
NS_ConvertUTF8toUTF16 className(objClassInfo.GetName()); NS_ConvertUTF8toUTF16 className(objClassInfo.GetName());
const PRUnichar* formatStrings[] = { className.get() }; const PRUnichar* formatStrings[] = {
className.get(),
originUnicode.get()
};
PRUint32 length = NS_ARRAY_LENGTH(formatStrings);
if (originUnicode.IsEmpty()) {
--length;
} else {
strName.AppendLiteral("ForOrigin");
}
nsXPIDLString errorMsg; nsXPIDLString errorMsg;
// We need to keep our existing failure rv and not override it // We need to keep our existing failure rv and not override it
// with a likely success code from the following string bundle // with a likely success code from the following string bundle
// call in order to throw the correct security exception later. // call in order to throw the correct security exception later.
nsresult rv2 = rv2 = sStrBundle->FormatStringFromName(strName.get(),
sStrBundle->FormatStringFromName(strName.get(),
formatStrings, formatStrings,
NS_ARRAY_LENGTH(formatStrings), length,
getter_Copies(errorMsg)); getter_Copies(errorMsg));
NS_ENSURE_SUCCESS(rv2, rv2); NS_ENSURE_SUCCESS(rv2, rv2);

View File

@ -106,6 +106,7 @@ MOZ_MEMORY = @MOZ_MEMORY@
MOZ_JPROF = @MOZ_JPROF@ MOZ_JPROF = @MOZ_JPROF@
MOZ_SHARK = @MOZ_SHARK@ MOZ_SHARK = @MOZ_SHARK@
MOZ_CALLGRIND = @MOZ_CALLGRIND@ MOZ_CALLGRIND = @MOZ_CALLGRIND@
MOZ_VTUNE = @MOZ_VTUNE@
DEHYDRA_PATH = @DEHYDRA_PATH@ DEHYDRA_PATH = @DEHYDRA_PATH@
MOZ_XPCTOOLS = @MOZ_XPCTOOLS@ MOZ_XPCTOOLS = @MOZ_XPCTOOLS@
@ -164,6 +165,7 @@ MOZ_MORK = @MOZ_MORK@
MOZ_MORKREADER = @MOZ_MORKREADER@ MOZ_MORKREADER = @MOZ_MORKREADER@
MOZ_NO_XPCOM_OBSOLETE = @MOZ_NO_XPCOM_OBSOLETE@ MOZ_NO_XPCOM_OBSOLETE = @MOZ_NO_XPCOM_OBSOLETE@
MOZ_NO_FAST_LOAD = @MOZ_NO_FAST_LOAD@ MOZ_NO_FAST_LOAD = @MOZ_NO_FAST_LOAD@
MOZ_OGG = @MOZ_OGG@
MOZ_MEDIA = @MOZ_MEDIA@ MOZ_MEDIA = @MOZ_MEDIA@
NS_PRINTING = @NS_PRINTING@ NS_PRINTING = @NS_PRINTING@
MOZ_CRASHREPORTER = @MOZ_CRASHREPORTER@ MOZ_CRASHREPORTER = @MOZ_CRASHREPORTER@

File diff suppressed because it is too large Load Diff

View File

@ -10,4 +10,4 @@
# hardcoded milestones in the tree from these two files. # hardcoded milestones in the tree from these two files.
#-------------------------------------------------------- #--------------------------------------------------------
1.9.1a1pre 1.9.1a2pre

Some files were not shown because too many files have changed in this diff Show More