static bool test_basic_2() { nsStringContainer s; NS_StringContainerInit(s); const PRUnichar *ptr; uint32_t len; PRUnichar *clone; NS_StringGetData(s, &ptr); if (ptr == nullptr || *ptr != '\0') { NS_ERROR("unexpected result"); return false; } NS_StringSetData(s, kUnicodeData, PR_UINT32_MAX); len = NS_StringGetData(s, &ptr); if (len != sizeof(kUnicodeData)/2 - 1) { NS_ERROR("unexpected result"); return false; } if (ptr == nullptr || memcmp(ptr, kUnicodeData, sizeof(kUnicodeData)) != 0) { NS_ERROR("unexpected result"); return false; } clone = NS_StringCloneData(s); if (ptr == nullptr || memcmp(ptr, kUnicodeData, sizeof(kUnicodeData)) != 0) { NS_ERROR("unexpected result"); return false; } NS_Free(clone); nsStringContainer temp; NS_StringContainerInit(temp); NS_StringCopy(temp, s); len = NS_StringGetData(temp, &ptr); if (len != sizeof(kUnicodeData)/2 - 1) { NS_ERROR("unexpected result"); return false; } if (ptr == nullptr || memcmp(ptr, kUnicodeData, sizeof(kUnicodeData)) != 0) { NS_ERROR("unexpected result"); return false; } NS_StringContainerFinish(temp); NS_StringContainerFinish(s); return true; }
static bool test_convert() { nsStringContainer s; NS_StringContainerInit(s); NS_StringSetData(s, kUnicodeData, sizeof(kUnicodeData)/2 - 1); nsCStringContainer temp; NS_CStringContainerInit(temp); const char *data; NS_UTF16ToCString(s, NS_CSTRING_ENCODING_ASCII, temp); NS_CStringGetData(temp, &data); if (strcmp(data, kAsciiData) != 0) return false; NS_UTF16ToCString(s, NS_CSTRING_ENCODING_UTF8, temp); NS_CStringGetData(temp, &data); if (strcmp(data, kAsciiData) != 0) return false; NS_CStringContainerFinish(temp); NS_StringContainerFinish(s); return true; }
static BOOL load_gecko(void) { nsresult nsres; nsIObserver *pStartNotif; nsIComponentRegistrar *registrar = NULL; nsAString path; nsIFile *gre_dir; PRUnichar gre_path[MAX_PATH]; static BOOL tried_load = FALSE; TRACE("()\n"); if(tried_load) return pCompMgr != NULL; tried_load = TRUE; if(!load_wine_gecko(gre_path) && !load_mozctl(gre_path) && !load_mozilla(gre_path)) { install_wine_gecko(); if(!load_wine_gecko(gre_path)) { MESSAGE("Could not load Mozilla. HTML rendering will be disabled.\n"); return FALSE; } } NS_StringContainerInit(&path); NS_StringSetData(&path, gre_path, PR_UINT32_MAX); nsres = NS_NewLocalFile(&path, FALSE, &gre_dir); NS_StringContainerFinish(&path); if(NS_FAILED(nsres)) { ERR("NS_NewLocalFile failed: %08lx\n", nsres); FreeLibrary(hXPCOM); return FALSE; } nsres = NS_InitXPCOM2(&pServMgr, gre_dir, NULL); if(NS_FAILED(nsres)) { ERR("NS_InitXPCOM2 failed: %08lx\n", nsres); FreeLibrary(hXPCOM); return FALSE; } nsres = nsIServiceManager_QueryInterface(pServMgr, &IID_nsIComponentManager, (void**)&pCompMgr); if(NS_FAILED(nsres)) ERR("Could not get nsIComponentManager: %08lx\n", nsres); nsres = NS_GetComponentRegistrar(®istrar); if(NS_SUCCEEDED(nsres)) { nsres = nsIComponentRegistrar_AutoRegister(registrar, NULL); if(NS_FAILED(nsres)) ERR("AutoRegister(NULL) failed: %08lx\n", nsres); nsres = nsIComponentRegistrar_AutoRegister(registrar, gre_dir); if(NS_FAILED(nsres)) ERR("AutoRegister(gre_dir) failed: %08lx\n", nsres); init_nsio(pCompMgr, registrar); }else { ERR("NS_GetComponentRegistrar failed: %08lx\n", nsres); } nsres = nsIComponentManager_CreateInstanceByContractID(pCompMgr, NS_APPSTARTUPNOTIFIER_CONTRACTID, NULL, &IID_nsIObserver, (void**)&pStartNotif); if(NS_SUCCEEDED(nsres)) { nsres = nsIObserver_Observe(pStartNotif, NULL, APPSTARTUP_TOPIC, NULL); if(NS_FAILED(nsres)) ERR("Observe failed: %08lx\n", nsres); nsIObserver_Release(pStartNotif); }else { ERR("could not get appstartup-notifier: %08lx\n", nsres); } set_profile(); nsres = nsIComponentManager_CreateInstanceByContractID(pCompMgr, NS_MEMORY_CONTRACTID, NULL, &IID_nsIMemory, (void**)&nsmem); if(NS_FAILED(nsres)) ERR("Could not get nsIMemory: %08lx\n", nsres); if(registrar) { register_nsservice(registrar, pServMgr); nsIComponentRegistrar_Release(registrar); } return TRUE; }
void nsAString_Init(nsAString *str, const PRUnichar *data) { NS_StringContainerInit(str); if(data) NS_StringSetData(str, data, PR_UINT32_MAX); }
gluezilla_StringContainerInit (nsStringContainer &aStr) { return NS_StringContainerInit (aStr); }