NS_IMETHODIMP PresentationService::Observe(nsISupports* aSubject, const char* aTopic, const char16_t* aData) { if (!strcmp(aTopic, NS_XPCOM_SHUTDOWN_OBSERVER_ID)) { HandleShutdown(); return NS_OK; } else if (!strcmp(aTopic, PRESENTATION_DEVICE_CHANGE_TOPIC)) { // Ignore the "update" case here, since we only care about the arrival and // removal of the device. if (!NS_strcmp(aData, u"add")) { nsCOMPtr<nsIPresentationDevice> device = do_QueryInterface(aSubject); if (NS_WARN_IF(!device)) { return NS_ERROR_FAILURE; } return HandleDeviceAdded(device); } else if (!NS_strcmp(aData, u"remove")) { return HandleDeviceRemoved(); } return NS_OK; } else if (!strcmp(aTopic, PRESENTATION_SESSION_REQUEST_TOPIC)) { nsCOMPtr<nsIPresentationSessionRequest> request( do_QueryInterface(aSubject)); if (NS_WARN_IF(!request)) { return NS_ERROR_FAILURE; } return HandleSessionRequest(request); } else if (!strcmp(aTopic, PRESENTATION_TERMINATE_REQUEST_TOPIC)) { nsCOMPtr<nsIPresentationTerminateRequest> request( do_QueryInterface(aSubject)); if (NS_WARN_IF(!request)) { return NS_ERROR_FAILURE; } return HandleTerminateRequest(request); } else if (!strcmp(aTopic, PRESENTATION_RECONNECT_REQUEST_TOPIC)) { nsCOMPtr<nsIPresentationSessionRequest> request( do_QueryInterface(aSubject)); if (NS_WARN_IF(!request)) { return NS_ERROR_FAILURE; } return HandleReconnectRequest(request); } else if (!strcmp(aTopic, "profile-after-change")) { // It's expected since we add and entry to |kLayoutCategories| in // |nsLayoutModule.cpp| to launch this service earlier. return NS_OK; } MOZ_ASSERT(false, "Unexpected topic for PresentationService"); return NS_ERROR_UNEXPECTED; }
char *nsMsgSearchAdapter::GetImapCharsetParam(const char16_t *destCharset) { char *result = nullptr; // Specify a character set unless we happen to be US-ASCII. if (NS_strcmp(destCharset, u"us-ascii")) result = PR_smprintf("%s%s", nsMsgSearchAdapter::m_kImapCharset, NS_ConvertUTF16toUTF8(destCharset).get()); return result; }
bool nsCSSValue::operator==(const nsCSSValue& aOther) const { NS_ABORT_IF_FALSE(mUnit != eCSSUnit_ListDep && aOther.mUnit != eCSSUnit_ListDep && mUnit != eCSSUnit_PairListDep && aOther.mUnit != eCSSUnit_PairListDep, "don't use operator== with dependent lists"); if (mUnit == aOther.mUnit) { if (mUnit <= eCSSUnit_DummyInherit) { return true; } else if (UnitHasStringValue()) { return (NS_strcmp(GetBufferValue(mValue.mString), GetBufferValue(aOther.mValue.mString)) == 0); } else if ((eCSSUnit_Integer <= mUnit) && (mUnit <= eCSSUnit_EnumColor)) { return mValue.mInt == aOther.mValue.mInt; } else if (eCSSUnit_Color == mUnit) { return mValue.mColor == aOther.mValue.mColor; } else if (UnitHasArrayValue()) { return *mValue.mArray == *aOther.mValue.mArray; } else if (eCSSUnit_URL == mUnit) { return *mValue.mURL == *aOther.mValue.mURL; } else if (eCSSUnit_Image == mUnit) { return *mValue.mImage == *aOther.mValue.mImage; } else if (eCSSUnit_Gradient == mUnit) { return *mValue.mGradient == *aOther.mValue.mGradient; } else if (eCSSUnit_Pair == mUnit) { return *mValue.mPair == *aOther.mValue.mPair; } else if (eCSSUnit_Triplet == mUnit) { return *mValue.mTriplet == *aOther.mValue.mTriplet; } else if (eCSSUnit_Rect == mUnit) { return *mValue.mRect == *aOther.mValue.mRect; } else if (eCSSUnit_List == mUnit) { return *mValue.mList == *aOther.mValue.mList; } else if (eCSSUnit_PairList == mUnit) { return *mValue.mPairList == *aOther.mValue.mPairList; } else { return mValue.mFloat == aOther.mValue.mFloat; } } return false; }
char * nsMsgSearchAdapter::GetImapCharsetParam(const PRUnichar *destCharset) { char *result = nsnull; // Specify a character set unless we happen to be US-ASCII. if (NS_strcmp(destCharset, NS_LITERAL_STRING("us-ascii").get())) result = PR_smprintf("%s%s", nsMsgSearchAdapter::m_kImapCharset, NS_ConvertUTF16toUTF8(destCharset).get()); return result; }
NS_IMETHODIMP SRGBOverrideObserver::Observe(nsISupports *aSubject, const char *aTopic, const PRUnichar *someData) { NS_ASSERTION(NS_strcmp(someData, NS_LITERAL_STRING("gfx.color_mangement.force_srgb").get()), "Restarting CMS on wrong pref!"); ShutdownCMS(); return NS_OK; }
static void SetSortClosure(const PRUnichar *sortColumn, const PRUnichar *sortDirection, nsAbView *abView, SortClosure *closure) { closure->colID = sortColumn; if (sortDirection && !NS_strcmp(sortDirection, NS_LITERAL_STRING("descending").get())) closure->factor = DESCENDING_SORT_FACTOR; else closure->factor = ASCENDING_SORT_FACTOR; closure->abView = abView; return; }
bool nsCSSValue::URL::operator==(const URL& aOther) const { bool eq; return NS_strcmp(GetBufferValue(mString), GetBufferValue(aOther.mString)) == 0 && (GetURI() == aOther.GetURI() || // handles null == null (mURI && aOther.mURI && NS_SUCCEEDED(mURI->Equals(aOther.mURI, &eq)) && eq)) && (mOriginPrincipal == aOther.mOriginPrincipal || (NS_SUCCEEDED(mOriginPrincipal->Equals(aOther.mOriginPrincipal, &eq)) && eq)); }
NS_IMETHODIMP nsAbView::SortBy(const PRUnichar *colID, const PRUnichar *sortDir) { nsresult rv; PRInt32 count = mCards.Count(); nsAutoString sortColumn; if (!colID) sortColumn = NS_LITERAL_STRING(GENERATED_NAME_COLUMN_ID).get(); // default sort else sortColumn = colID; PRInt32 i; // This function does not optimize for the case when sortColumn and sortDirection // are identical since the last call, the caller is responsible optimizing // for that case // If we are sorting by how we are already sorted, // and just the sort direction changes, just reverse // // Note, we'll call SortBy() with the existing sort column and the // existing sort direction, and that needs to do a complete resort. // For example, we do that when the PREF_MAIL_ADDR_BOOK_LASTNAMEFIRST changes if (!NS_strcmp(mSortColumn.get(),sortColumn.get()) && NS_strcmp(mSortDirection.get(), sortDir)) { PRInt32 halfPoint = count / 2; for (i=0; i < halfPoint; i++) { // Swap the elements. void *ptr1 = mCards.ElementAt(i); void *ptr2 = mCards.ElementAt(count - i - 1); mCards.ReplaceElementAt(ptr2, i); mCards.ReplaceElementAt(ptr1, count - i - 1); } mSortDirection = sortDir; } else { // Generate collation keys for (i=0; i < count; i++) { AbCard *abcard = (AbCard *)(mCards.ElementAt(i)); rv = GenerateCollationKeysForCard(sortColumn.get(), abcard); NS_ENSURE_SUCCESS(rv,rv); } nsAutoString sortDirection; if (!sortDir) sortDirection = NS_LITERAL_STRING("ascending").get(); // default direction else sortDirection = sortDir; SortClosure closure; SetSortClosure(sortColumn.get(), sortDirection.get(), this, &closure); nsCOMPtr<nsIMutableArray> selectedCards = do_CreateInstance(NS_ARRAY_CONTRACTID, &rv); NS_ENSURE_SUCCESS(rv, rv); rv = GetSelectedCards(selectedCards); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIAbCard> indexCard; if (mTreeSelection) { PRInt32 currentIndex = -1; rv = mTreeSelection->GetCurrentIndex(¤tIndex); NS_ENSURE_SUCCESS(rv,rv); if (currentIndex != -1) { rv = GetCardFromRow(currentIndex, getter_AddRefs(indexCard)); NS_ENSURE_SUCCESS(rv,rv); } } mCards.Sort(inplaceSortCallback, (void *)(&closure)); rv = ReselectCards(selectedCards, indexCard); NS_ENSURE_SUCCESS(rv, rv); mSortColumn = sortColumn; mSortDirection = sortDirection; } rv = InvalidateTree(ALL_ROWS); NS_ENSURE_SUCCESS(rv,rv); return rv; }