bool AndroidGraphicBuffer::IsBlacklisted() { nsAutoString board; if (!AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "BOARD", board)) return true; NS_ConvertUTF16toUTF8 boardUtf8(board); if (Preferences::GetBool("direct-texture.force.enabled", false)) { LOG("allowing board '%s' due to prefs override", boardUtf8.get()); return false; } if (Preferences::GetBool("direct-texture.force.disabled", false)) { LOG("disallowing board '%s' due to prefs override", boardUtf8.get()); return true; } // FIXME: (Bug 722605) use something better than a linear search for (int i = 0; sAllowedBoards[i]; i++) { if (board.Find(sAllowedBoards[i]) >= 0) { LOG("allowing board '%s' based on '%s'\n", boardUtf8.get(), sAllowedBoards[i]); return false; } } LOG("disallowing board: %s\n", boardUtf8.get()); return true; }
bool AndroidGraphicBuffer::IsBlacklisted() { nsAutoString board; if (!AndroidBridge::Bridge()->GetStaticStringField("android/os/Build", "BOARD", board)) return true; NS_ConvertUTF16toUTF8 boardUtf8(board); if (Preferences::GetBool("direct-texture.force.enabled", false)) { LOG("allowing board '%s' due to prefs override", boardUtf8.get()); return false; } if (Preferences::GetBool("direct-texture.force.disabled", false)) { LOG("disallowing board '%s' due to prefs override", boardUtf8.get()); return true; } static nsTArray<nsString> sListAllowed; if (sListAllowed.Length() == 0) { InitWhiteList(sListAllowed); } int i = -1; if ((i = sListAllowed.BinaryIndexOf(board)) >= 0) { nsString name = sListAllowed.ElementAt(i); LOG("allowing board '%s' based on '%s'\n", boardUtf8.get(), NS_ConvertUTF16toUTF8(name).get()); return false; } LOG("disallowing board: %s\n", boardUtf8.get()); return true; }