Ejemplo n.º 1
0
NS_StringSetDataRange(nsAString& aStr,
                      uint32_t aCutOffset, uint32_t aCutLength,
                      const char16_t* aData, uint32_t aDataLength)
{
  if (aCutOffset == UINT32_MAX) {
    // append case
    if (aData) {
      aStr.Append(aData, aDataLength);
    }
    return NS_OK; // XXX report errors
  }

  if (aCutLength == UINT32_MAX) {
    aCutLength = aStr.Length() - aCutOffset;
  }

  if (aData) {
    if (aDataLength == UINT32_MAX) {
      aStr.Replace(aCutOffset, aCutLength, nsDependentString(aData));
    } else {
      aStr.Replace(aCutOffset, aCutLength, Substring(aData, aDataLength));
    }
  } else {
    aStr.Cut(aCutOffset, aCutLength);
  }

  return NS_OK; // XXX report errors
}
Ejemplo n.º 2
0
    bool HostIsAllowed(nsAString& host)
    {
      if (host.First() == '*') {
        if (host.EqualsLiteral("*") || host[1] != '.') {
          return false;
        }

        host.Cut(0, 2);

        nsCOMPtr<nsIEffectiveTLDService> tldService =
          do_GetService(NS_EFFECTIVETLDSERVICE_CONTRACTID);

        if (!tldService) {
          return false;
        }

        NS_ConvertUTF16toUTF8 cHost(host);
        nsAutoCString publicSuffix;

        nsresult rv = tldService->GetPublicSuffixFromHost(cHost, publicSuffix);

        return NS_SUCCEEDED(rv) && !cHost.Equals(publicSuffix);
      }

      return true;
    };
Ejemplo n.º 3
0
NS_StringSetDataRange(nsAString &aStr,
                      PRUint32 aCutOffset, PRUint32 aCutLength,
                      const PRUnichar *aData, PRUint32 aDataLength)
{
  if (aCutOffset == PR_UINT32_MAX)
  {
    // append case
    if (aData)
      aStr.Append(aData, aDataLength);
    return NS_OK; // XXX report errors
  }

  if (aCutLength == PR_UINT32_MAX)
    aCutLength = aStr.Length() - aCutOffset;

  if (aData)
  {
    if (aDataLength == PR_UINT32_MAX)
      aStr.Replace(aCutOffset, aCutLength, nsDependentString(aData));
    else
      aStr.Replace(aCutOffset, aCutLength, Substring(aData, aDataLength));
  }
  else
    aStr.Cut(aCutOffset, aCutLength);

  return NS_OK; // XXX report errors
}
Ejemplo n.º 4
0
NS_IMETHODIMP
nsCSSDocumentRule::GetCssText(nsAString& aCssText)
{
  aCssText.AssignLiteral("@-moz-document ");
  for (URL *url = mURLs; url; url = url->next) {
    switch (url->func) {
      case eURL:
        aCssText.AppendLiteral("url(\"");
        break;
      case eURLPrefix:
        aCssText.AppendLiteral("url-prefix(\"");
        break;
      case eDomain:
        aCssText.AppendLiteral("domain(\"");
        break;
    }
    nsCAutoString escapedURL(url->url);
    escapedURL.ReplaceSubstring("\"", "\\\""); // escape quotes
    AppendUTF8toUTF16(escapedURL, aCssText);
    aCssText.AppendLiteral("\"), ");
  }
  aCssText.Cut(aCssText.Length() - 2, 1); // remove last ,

  return nsCSSGroupRule::AppendRulesToCssText(aCssText);
}
Ejemplo n.º 5
0
/* readonly attribute DOMString CSSFamilyName; */
NS_IMETHODIMP
nsFontFace::GetCSSFamilyName(nsAString & aCSSFamilyName)
{
    if (mFontEntry->IsUserFont()) {
        // for a user font, find CSS family name from the @font-face rule
        nsUserFontSet* fontSet =
            static_cast<nsUserFontSet*>(mFontGroup->GetUserFontSet());
        if (fontSet) {
            nsCSSFontFaceRule* rule = fontSet->FindRuleForEntry(mFontEntry);
            if (rule) {
                nsCOMPtr<nsIDOMCSSStyleDeclaration> style;
                nsresult rv = rule->GetStyle(getter_AddRefs(style));
                if (NS_SUCCEEDED(rv)) {
                    nsString familyName;
                    rv = style->GetPropertyValue(NS_LITERAL_STRING("font-family"),
                                                 aCSSFamilyName);
                    if (NS_SUCCEEDED(rv)) {
                        // GetPropertyValue gives us the name in "quotes"; strip them off.
                        // XXX What about possible CSS escapes - should we unescape here?
                        // Or don't we care, as this is just for display/debugging use?
                        if (aCSSFamilyName[0] == '"' &&
                                aCSSFamilyName[aCSSFamilyName.Length() - 1] == '"') {
                            aCSSFamilyName.Truncate(aCSSFamilyName.Length() - 1);
                            aCSSFamilyName.Cut(0, 1);
                        }
                        return NS_OK;
                    }
                }
            }
        }
    }

    // look through the font-group's list for this entry
    uint32_t count = mFontGroup->FontListLength();
    for (uint32_t i = 0; i < count; ++i) {
        if (mFontGroup->GetFontAt(i)->GetFontEntry() == mFontEntry) {
            aCSSFamilyName = mFontGroup->GetFamilyNameAt(i);
            return NS_OK;
        }
    }

    // if it wasn't found there, query the font entry itself
    aCSSFamilyName = mFontEntry->FamilyName();
    return NS_OK;
}
nsresult
sbWinGetVolumeGUID(DEVINST    aDevInst,
                   nsAString& aVolumeGUID)
{
  nsresult rv;

  // Start with the volume GUID path.
  rv = sbWinGetVolumeGUIDPath(aDevInst, aVolumeGUID);
  NS_ENSURE_SUCCESS(rv, rv);

  // Strip everything but the volume GUID.  Transform
  // "\\?\Volume{26a21bda-a627-11d7-9931-806e6f6e6963}\" to
  // "{26a21bda-a627-11d7-9931-806e6f6e6963}".
  PRInt32 index;
  index = aVolumeGUID.Find("{");
  NS_ENSURE_TRUE(index >= 0, NS_ERROR_UNEXPECTED);
  aVolumeGUID.Cut(0, index);
  index = aVolumeGUID.Find("}");
  NS_ENSURE_TRUE(index >= 0, NS_ERROR_UNEXPECTED);
  aVolumeGUID.SetLength(index + 1);

  return NS_OK;
}