diff --git a/accessible/src/base/nsAccessNode.cpp b/accessible/src/base/nsAccessNode.cpp index fcd756a9a6d4..eb69339ed2ac 100755 --- a/accessible/src/base/nsAccessNode.cpp +++ b/accessible/src/base/nsAccessNode.cpp @@ -794,8 +794,11 @@ nsAccessNode::GetCacheEntry(nsAccessNodeHashtable& aCache, PLDHashOperator nsAccessNode::ClearCacheEntry(const void* aKey, nsCOMPtr& aAccessNode, void* aUserArg) { - nsCOMPtr privateAccessNode(do_QueryInterface(aAccessNode)); - privateAccessNode->Shutdown(); + NS_ASSERTION(!aAccessNode, "Calling ClearCacheEntry with a NULL pointer!"); + if (aAccessNode) { + nsCOMPtr privateAccessNode(do_QueryInterface(aAccessNode)); + privateAccessNode->Shutdown(); + } return PL_DHASH_REMOVE; } diff --git a/accessible/src/base/nsAccessibilityAtomList.h b/accessible/src/base/nsAccessibilityAtomList.h index 51a698ff4ae5..b0c66e3fe308 100755 --- a/accessible/src/base/nsAccessibilityAtomList.h +++ b/accessible/src/base/nsAccessibilityAtomList.h @@ -231,7 +231,7 @@ ACCESSIBILITY_ATOM(aria_valuetext, "aria-valuetext") ACCESSIBILITY_ATOM(defaultLabel, "defaultLabel") // Object attributes -ACCESSIBILITY_ATOM(cellIndex, "cell-index") +ACCESSIBILITY_ATOM(tableCellIndex, "table-cell-index") ACCESSIBILITY_ATOM(containerAtomic, "container-atomic") ACCESSIBILITY_ATOM(containerBusy, "container-busy") ACCESSIBILITY_ATOM(containerChannel, "container-channel") diff --git a/accessible/src/base/nsAccessible.cpp b/accessible/src/base/nsAccessible.cpp index 3192721420b5..f3278baff946 100644 --- a/accessible/src/base/nsAccessible.cpp +++ b/accessible/src/base/nsAccessible.cpp @@ -1440,20 +1440,54 @@ NS_IMETHODIMP nsAccessible::TakeSelection() } /* void takeFocus (); */ -NS_IMETHODIMP nsAccessible::TakeFocus() -{ - nsCOMPtr htmlElement(do_QueryInterface(mDOMNode)); +NS_IMETHODIMP +nsAccessible::TakeFocus() +{ + if (IsDefunct()) + return NS_ERROR_FAILURE; + + nsCOMPtr content(do_QueryInterface(mDOMNode)); + + nsIFrame *frame = GetFrame(); + NS_ENSURE_STATE(frame); + + // If the current element can't take real DOM focus and if it has an ID and + // ancestor with a the aria-activedescendant attribute present, then set DOM + // focus to that ancestor and set aria-activedescendant on the ancestor to + // the ID of the desired element. + if (!frame->IsFocusable()) { + nsAutoString id; + if (content && nsAccUtils::GetID(content, id)) { + + nsCOMPtr ancestorContent = content; + while ((ancestorContent = ancestorContent->GetParent()) && + !ancestorContent->HasAttr(kNameSpaceID_None, + nsAccessibilityAtoms::aria_activedescendant)); + + if (ancestorContent) { + nsCOMPtr presShell(do_QueryReferent(mWeakShell)); + if (presShell) { + nsIFrame *frame = presShell->GetPrimaryFrameFor(ancestorContent); + if (frame && frame->IsFocusable()) { + + content = ancestorContent; + content->SetAttr(kNameSpaceID_None, + nsAccessibilityAtoms::aria_activedescendant, + id, PR_TRUE); + } + } + } + } + } + + nsCOMPtr htmlElement(do_QueryInterface(content)); if (htmlElement) { // HTML Elements also set the caret position // in order to affect tabbing order return htmlElement->Focus(); } - nsCOMPtr content(do_QueryInterface(mDOMNode)); - if (!content) { - return NS_ERROR_FAILURE; - } - content->SetFocus(GetPresContext()); + content->SetFocus(GetPresContext()); return NS_OK; } diff --git a/accessible/src/base/nsApplicationAccessible.cpp b/accessible/src/base/nsApplicationAccessible.cpp index 04fe298a6ef8..0edb87041a24 100755 --- a/accessible/src/base/nsApplicationAccessible.cpp +++ b/accessible/src/base/nsApplicationAccessible.cpp @@ -91,14 +91,6 @@ nsApplicationAccessible::GetName(nsAString& aName) return NS_OK; } -NS_IMETHODIMP -nsApplicationAccessible::GetDescription(nsAString& aDescription) -{ - GetName(aDescription); - aDescription.AppendLiteral(" Application Accessible"); - return NS_OK; -} - NS_IMETHODIMP nsApplicationAccessible::GetRole(PRUint32 *aRole) { diff --git a/accessible/src/base/nsApplicationAccessible.h b/accessible/src/base/nsApplicationAccessible.h index 9de715860e0f..ba812af00a2c 100755 --- a/accessible/src/base/nsApplicationAccessible.h +++ b/accessible/src/base/nsApplicationAccessible.h @@ -69,7 +69,6 @@ public: // nsIAccessible NS_IMETHOD GetName(nsAString & aName); - NS_IMETHOD GetDescription(nsAString & aDescription); NS_IMETHOD GetRole(PRUint32 *aRole); NS_IMETHOD GetFinalRole(PRUint32 *aFinalRole); NS_IMETHOD GetState(PRUint32 *aState, PRUint32 *aExtraState); diff --git a/accessible/src/base/nsDocAccessible.cpp b/accessible/src/base/nsDocAccessible.cpp index f6da84a4e674..47e96608da76 100644 --- a/accessible/src/base/nsDocAccessible.cpp +++ b/accessible/src/base/nsDocAccessible.cpp @@ -1562,9 +1562,12 @@ NS_IMETHODIMP nsDocAccessible::FlushPendingEvents() // wait to fire this here, instead of in InvalidateCacheSubtree(), where we wouldn't be able to calculate // the offset, length and text for the text change. if (domNode && domNode != mDOMNode) { - if (!containerAccessible) + if (!containerAccessible) { GetAccessibleInParentChain(domNode, PR_TRUE, getter_AddRefs(containerAccessible)); + if (!containerAccessible) + containerAccessible = this; + } nsCOMPtr textChangeEvent = CreateTextChangeEventForNode(containerAccessible, domNode, accessible, PR_TRUE, PR_TRUE); @@ -2066,10 +2069,10 @@ nsDocAccessible::FireShowHideEvents(nsIDOMNode *aDOMNode, PRBool aAvoidOnThisNod // Could not find accessible to show hide yet, so fire on any // accessible descendants in this subtree - nsCOMPtr content(do_QueryInterface(aDOMNode)); - PRUint32 count = content->GetChildCount(); + nsCOMPtr node(do_QueryInterface(aDOMNode)); + PRUint32 count = node->GetChildCount(); for (PRUint32 index = 0; index < count; index++) { - nsCOMPtr childNode = do_QueryInterface(content->GetChildAt(index)); + nsCOMPtr childNode = do_QueryInterface(node->GetChildAt(index)); nsresult rv = FireShowHideEvents(childNode, PR_FALSE, aEventType, aDelay, aForceIsFromUserInput); NS_ENSURE_SUCCESS(rv, rv); diff --git a/accessible/src/base/nsRootAccessible.cpp b/accessible/src/base/nsRootAccessible.cpp index 25137e51701b..9a81d9b080e9 100644 --- a/accessible/src/base/nsRootAccessible.cpp +++ b/accessible/src/base/nsRootAccessible.cpp @@ -238,10 +238,12 @@ nsRootAccessible::GetState(PRUint32 *aState, PRUint32 *aExtraState) if (privateDOMWindow) { nsIFocusController *focusController = privateDOMWindow->GetRootFocusController(); - PRBool isActive = PR_FALSE; - focusController->GetActive(&isActive); - if (isActive) { - *aExtraState |= nsIAccessibleStates::EXT_STATE_ACTIVE; + if (focusController) { + PRBool isActive = PR_FALSE; + focusController->GetActive(&isActive); + if (isActive) { + *aExtraState |= nsIAccessibleStates::EXT_STATE_ACTIVE; + } } } #ifdef MOZ_XUL diff --git a/accessible/src/html/nsHTMLImageAccessible.cpp b/accessible/src/html/nsHTMLImageAccessible.cpp index a9381fef8a4b..4abf0387a454 100644 --- a/accessible/src/html/nsHTMLImageAccessible.cpp +++ b/accessible/src/html/nsHTMLImageAccessible.cpp @@ -130,24 +130,34 @@ nsHTMLImageAccessible::GetState(PRUint32 *aState, PRUint32 *aExtraState) /* wstring getName (); */ NS_IMETHODIMP nsHTMLImageAccessible::GetName(nsAString& aName) { + aName.Truncate(); + if (IsDefunct()) + return NS_ERROR_FAILURE; + nsCOMPtr content(do_QueryInterface(mDOMNode)); - if (!content) { - return NS_ERROR_FAILURE; // Node has been shut down - } - - if (!content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::alt, - aName)) { - if (mRoleMapEntry) { + NS_ASSERTION(content, "Image node always supports nsIContent"); + + // No alt attribute means AT can repair if there is no accessible name + // alt="" with no title or aria-labelledby means image is presentational and + // AT should leave accessible name empty + PRBool hasAltAttrib = + content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::alt, aName); + if (aName.IsEmpty()) { + if (content->HasAttr(kNameSpaceID_None, nsAccessibilityAtoms::aria_labelledby)) { // Use HTML label or DHTML accessibility's labelledby attribute for name // GetHTMLName will also try title attribute as a last resort - return GetHTMLName(aName, PR_FALSE); + GetHTMLName(aName, PR_FALSE); } - if (!content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::title, - aName)) { - aName.SetIsVoid(PR_TRUE); // No alt or title + if (aName.IsEmpty()) { // No name from alt or aria-labelledby + content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::title, aName); + if (!hasAltAttrib && aName.IsEmpty()) { + // Still no accessible name and no alt attribute is present. + // SetIsVoid() is different from empty string -- this means a name was not + // provided by author and AT repair of the name is allowed. + aName.SetIsVoid(PR_TRUE); + } } } - return NS_OK; } @@ -325,6 +335,25 @@ nsHTMLImageAccessible::Shutdown() //////////////////////////////////////////////////////////////////////////////// // nsHTMLImageAccessible +nsresult +nsHTMLImageAccessible::GetAttributesInternal(nsIPersistentProperties *aAttributes) +{ + if (IsDefunct()) + return NS_ERROR_FAILURE; + + nsresult rv = nsLinkableAccessible::GetAttributesInternal(aAttributes); + NS_ENSURE_SUCCESS(rv, rv); + + nsCOMPtr content(do_QueryInterface(mDOMNode)); + + nsAutoString src; + content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::src, src); + if (!src.IsEmpty()) + nsAccUtils::SetAccAttr(aAttributes, nsAccessibilityAtoms::src, src); + + return NS_OK; +} + already_AddRefed nsHTMLImageAccessible::GetAreaCollection() { diff --git a/accessible/src/html/nsHTMLImageAccessible.h b/accessible/src/html/nsHTMLImageAccessible.h index 24f30afe33fc..2fe1e2acd845 100644 --- a/accessible/src/html/nsHTMLImageAccessible.h +++ b/accessible/src/html/nsHTMLImageAccessible.h @@ -77,6 +77,9 @@ public: // nsIAccessibleImage NS_DECL_NSIACCESSIBLEIMAGE + // nsAccessible + virtual nsresult GetAttributesInternal(nsIPersistentProperties *aAttributes); + protected: // nsAccessible virtual void CacheChildren(); diff --git a/accessible/src/html/nsHTMLTableAccessible.cpp b/accessible/src/html/nsHTMLTableAccessible.cpp index 90bf2c425b74..5c26c853767f 100644 --- a/accessible/src/html/nsHTMLTableAccessible.cpp +++ b/accessible/src/html/nsHTMLTableAccessible.cpp @@ -92,6 +92,9 @@ nsHTMLTableCellAccessible::GetAttributesInternal(nsIPersistentProperties *aAttri NS_ENSURE_STATE(shell); nsIFrame *frame = shell->GetPrimaryFrameFor(content); + NS_ASSERTION(frame, "The frame cannot be obtaied for HTML table cell."); + NS_ENSURE_STATE(frame); + nsITableCellLayout *cellLayout = nsnull; CallQueryInterface(frame, &cellLayout); NS_ENSURE_STATE(cellLayout); @@ -121,7 +124,7 @@ nsHTMLTableCellAccessible::GetAttributesInternal(nsIPersistentProperties *aAttri nsAutoString stringIdx; stringIdx.AppendInt(idx); - nsAccUtils::SetAccAttr(aAttributes, nsAccessibilityAtoms::cellIndex, + nsAccUtils::SetAccAttr(aAttributes, nsAccessibilityAtoms::tableCellIndex, stringIdx); return NS_OK; } diff --git a/accessible/src/msaa/CAccessibleAction.cpp b/accessible/src/msaa/CAccessibleAction.cpp index 1772d4b6bbd6..ac50acf7ca6b 100755 --- a/accessible/src/msaa/CAccessibleAction.cpp +++ b/accessible/src/msaa/CAccessibleAction.cpp @@ -120,7 +120,7 @@ __try { if (NS_FAILED(rv)) return GetHRESULT(rv); - if (description.IsVoid()) + if (description.IsEmpty()) return S_FALSE; *aDescription = ::SysAllocStringLen(description.get(), diff --git a/accessible/src/msaa/CAccessibleText.cpp b/accessible/src/msaa/CAccessibleText.cpp index 4cf73df7a700..0bee36f4779c 100755 --- a/accessible/src/msaa/CAccessibleText.cpp +++ b/accessible/src/msaa/CAccessibleText.cpp @@ -99,6 +99,9 @@ CAccessibleText::get_attributes(long aOffset, long *aStartOffset, long *aEndOffset, BSTR *aTextAttributes) { __try { + if (!aStartOffset || !aEndOffset || !aTextAttributes) + return E_INVALIDARG; + *aStartOffset = 0; *aEndOffset = 0; *aTextAttributes = NULL; diff --git a/accessible/src/msaa/nsAccessibleWrap.cpp b/accessible/src/msaa/nsAccessibleWrap.cpp index 079a7b65d2c8..5cc62265db6a 100644 --- a/accessible/src/msaa/nsAccessibleWrap.cpp +++ b/accessible/src/msaa/nsAccessibleWrap.cpp @@ -291,19 +291,29 @@ __try { *pszName = NULL; nsCOMPtr xpAccessible; GetXPAccessibleFor(varChild, getter_AddRefs(xpAccessible)); - if (xpAccessible) { - nsAutoString name; - if (NS_FAILED(xpAccessible->GetName(name))) - return E_FAIL; + if (!xpAccessible) + return E_FAIL; + nsAutoString name; + nsresult rv = xpAccessible->GetName(name); + if (NS_FAILED(rv)) + return GetHRESULT(rv); + + if (name.IsVoid()) { + // Valid return value for the name: + // The name was not provided, e.g. no alt attribute for an image. + // A screen reader may choose to invent its own accessible name, e.g. from + // an image src attribute. + // See nsHTMLImageAccessible::GetName() + return S_OK; + } - *pszName = ::SysAllocStringLen(name.get(), name.Length()); - if (!*pszName) - return E_OUTOFMEMORY; + *pszName = ::SysAllocStringLen(name.get(), name.Length()); + if (!*pszName) + return E_OUTOFMEMORY; #ifdef DEBUG_A11Y - NS_ASSERTION(mIsInitialized, "Access node was not initialized"); + NS_ASSERTION(mIsInitialized, "Access node was not initialized"); #endif - } } __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { } return S_OK; diff --git a/accessible/tests/mochitest/Makefile.in b/accessible/tests/mochitest/Makefile.in index 8184b5980d9b..5b3dae360a09 100644 --- a/accessible/tests/mochitest/Makefile.in +++ b/accessible/tests/mochitest/Makefile.in @@ -46,6 +46,8 @@ include $(DEPTH)/config/autoconf.mk include $(topsrcdir)/config/rules.mk _TEST_FILES =\ + moz.png \ + test_aria_activedescendant.html \ test_bug368835.xul \ test_bug420863.html \ test_groupattrs.xul \ @@ -58,6 +60,7 @@ _TEST_FILES =\ test_nsIAccessibleHyperLink.html \ test_nsIAccessibleHyperLink.xul \ test_nsIAccessibleHyperText.html \ + test_nsIAccessibleImage.html \ test_bug428479.html \ $(NULL) diff --git a/accessible/tests/mochitest/moz.png b/accessible/tests/mochitest/moz.png new file mode 100644 index 000000000000..cb0ba06dc10e Binary files /dev/null and b/accessible/tests/mochitest/moz.png differ diff --git a/accessible/tests/mochitest/test_aria_activedescendant.html b/accessible/tests/mochitest/test_aria_activedescendant.html new file mode 100644 index 000000000000..b8b1e73b7e4c --- /dev/null +++ b/accessible/tests/mochitest/test_aria_activedescendant.html @@ -0,0 +1,76 @@ + + + + + Table indexes chrome tests + + + + + + + + + + + Mozilla Bug 429547 + +

+ +
+  
+ +
+
item1
+
item2
+
item3
+
+ + diff --git a/accessible/tests/mochitest/test_nsIAccessibleImage.html b/accessible/tests/mochitest/test_nsIAccessibleImage.html new file mode 100644 index 000000000000..2f866a93e10b --- /dev/null +++ b/accessible/tests/mochitest/test_nsIAccessibleImage.html @@ -0,0 +1,171 @@ + + + + + nsIAccessibleImage chrome tests + + + + + + + + + + Mozilla Bug 429659 +

+ +
+  
+
Simple image:
+ +
Linked image:
+ +
Simple image with alt:
+ MoFo +
Linked image with alt:
+ MoFo link +
Simple image with title:
+ +
Linked image with title:
+ +
Simple image with empty alt:
+ +
Linked image with empty alt:
+ +
Simple image with empty alt and title:
+ +
Linked image with empty alt and title:
+ + + diff --git a/accessible/tests/mochitest/test_table_indexes.html b/accessible/tests/mochitest/test_table_indexes.html index 41e4d056527b..a291a5e19d75 100644 --- a/accessible/tests/mochitest/test_table_indexes.html +++ b/accessible/tests/mochitest/test_table_indexes.html @@ -89,7 +89,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=410052 if (cellAcc) { var attrs = cellAcc.attributes; - is (parseInt(attrs.getStringProperty("cell-index")), index, + is (parseInt(attrs.getStringProperty("table-cell-index")), index, aId + ": cell index from object attributes of cell accessible isn't corrent."); } } diff --git a/browser/app/Makefile.in b/browser/app/Makefile.in index e1c6d4b05128..0fc19f4740ee 100644 --- a/browser/app/Makefile.in +++ b/browser/app/Makefile.in @@ -76,6 +76,9 @@ ifdef MOZ_MEMORY ifeq ($(OS_ARCH),Darwin) LIBS += -ljemalloc endif +ifeq ($(OS_ARCH),SunOS) +SOLARIS_JEMALLOC_LDFLAGS = -L$(LIBXUL_DIST)/bin -lxul +endif endif ifdef LIBXUL_SDK diff --git a/browser/app/blocklist.xml b/browser/app/blocklist.xml index bd22b625bf03..30fa1b987507 100644 --- a/browser/app/blocklist.xml +++ b/browser/app/blocklist.xml @@ -16,4 +16,11 @@ + + + + + + + diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 0eecba0c657d..b2da7a5a1741 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -80,7 +80,7 @@ pref("extensions.getAddons.search.url", "https://services.addons.mozilla.org/%LO // Blocklist preferences pref("extensions.blocklist.enabled", true); pref("extensions.blocklist.interval", 86400); -pref("extensions.blocklist.url", "https://addons.mozilla.org/blocklist/1/%APP_ID%/%APP_VERSION%/"); +pref("extensions.blocklist.url", "https://addons.mozilla.org/blocklist/2/%APP_ID%/%APP_VERSION%/%PRODUCT%/%BUILD_ID%/%BUILD_TARGET%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/"); pref("extensions.blocklist.detailsURL", "http://%LOCALE%.www.mozilla.com/%LOCALE%/blocklist/"); // Dictionary download preference @@ -213,7 +213,10 @@ pref("browser.urlbar.doubleClickSelectsAll", false); #endif pref("browser.urlbar.autoFill", false); pref("browser.urlbar.matchOnlyTyped", false); -pref("browser.urlbar.matchOnWordBoundary", true); +// 0: Match anywhere (e.g., middle of words) +// 1: Match on word boundaries and then try matching anywhere +// 2: Match only on word boundaries (e.g., after / or .) +pref("browser.urlbar.matchBehavior", 1); pref("browser.urlbar.filter.javascript", true); // the maximum number of results to show in autocomplete when doing richResults @@ -632,7 +635,7 @@ pref("urlclassifier.gethashtables", "goog-phish-shavar,goog-malware-shavar"); pref("urlclassifier.confirm-age", 2700); // URL for checking the reason for a malware warning. -pref("browser.safebrowsing.malware.reportURL", "http://www.stopbadware.org/reports/container?source=@APP_UA_NAME@&version=@APP_VERSION@&reportname="); +pref("browser.safebrowsing.malware.reportURL", "http://safebrowsing.clients.google.com/safebrowsing/diagnostic?client=%NAME%&hl=%LOCALE%&site="); #endif diff --git a/browser/base/content/browser-menubar.inc b/browser/base/content/browser-menubar.inc index fe68132547c7..07795f184b7d 100644 --- a/browser/base/content/browser-menubar.inc +++ b/browser/base/content/browser-menubar.inc @@ -131,7 +131,8 @@ accesskey="&deleteCmd.accesskey;" command="cmd_delete"/> - diff --git a/browser/base/content/browser-sets.inc b/browser/base/content/browser-sets.inc index 123c254a0642..1cd7744491f0 100644 --- a/browser/base/content/browser-sets.inc +++ b/browser/base/content/browser-sets.inc @@ -294,9 +294,12 @@ command="viewHistorySidebar"/> + + + diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index a9d01403656d..16de01e1114b 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -2324,11 +2324,14 @@ function BrowserOnCommand(event) { // This is the "Why is this site blocked" button. For malware, // we can fetch a site-specific report, for phishing, we redirect // to the generic page describing phishing protection. + var formatter = Cc["@mozilla.org/toolkit/URLFormatterService;1"] + .getService(Components.interfaces.nsIURLFormatter); + if (/e=malwareBlocked/.test(errorDoc.documentURI)) { // Get the stop badware "why is this blocked" report url, // append the current url, and go there. try { - var reportURL = gPrefService.getCharPref("browser.safebrowsing.malware.reportURL"); + var reportURL = formatter.formatURLPref("browser.safebrowsing.malware.reportURL"); reportURL += errorDoc.location.href; content.location = reportURL; } catch (e) { @@ -2337,9 +2340,7 @@ function BrowserOnCommand(event) { } else if (/e=phishingBlocked/.test(errorDoc.documentURI)) { try { - content.location = Cc["@mozilla.org/toolkit/URLFormatterService;1"] - .getService(Components.interfaces.nsIURLFormatter) - .formatURLPref("browser.safebrowsing.warning.infoURL"); + content.location = formatter.formatURLPref("browser.safebrowsing.warning.infoURL"); } catch (e) { Components.utils.reportError("Couldn't get phishing info URL: " + e); } @@ -6562,7 +6563,9 @@ IdentityHandler.prototype = { // for certs that are trusted because of a security exception. var tooltip = this._stringBundle.getFormattedString("identity.identified.verifier", [iData.caOrg]); - if (this._overrideService.hasMatchingOverride(lookupHost, iData.cert, {}, {})) + if (this._overrideService.hasMatchingOverride(this._lastLocation.hostname, + this._lastLocation.port, + iData.cert, {}, {})) tooltip = this._stringBundle.getString("identity.identified.verified_by_you"); } else if (newMode == this.IDENTITY_MODE_IDENTIFIED) { diff --git a/browser/base/content/browser.xul b/browser/base/content/browser.xul index 86ecc03225a4..d6042ef92295 100644 --- a/browser/base/content/browser.xul +++ b/browser/base/content/browser.xul @@ -191,7 +191,8 @@