void NetscapePluginModule::parseMIMEDescription(const String& mimeDescription, Vector<MimeClassInfo>& result) { ASSERT_ARG(result, result.isEmpty()); Vector<String> types; mimeDescription.lower().split(UChar(';'), false, types); result.reserveInitialCapacity(types.size()); size_t mimeInfoCount = 0; for (size_t i = 0; i < types.size(); ++i) { Vector<String> mimeTypeParts; types[i].split(UChar(':'), true, mimeTypeParts); if (mimeTypeParts.size() <= 0) continue; result.uncheckedAppend(MimeClassInfo()); MimeClassInfo& mimeInfo = result[mimeInfoCount++]; mimeInfo.type = mimeTypeParts[0]; if (mimeTypeParts.size() > 1) mimeTypeParts[1].split(UChar(','), false, mimeInfo.extensions); if (mimeTypeParts.size() > 2) mimeInfo.desc = mimeTypeParts[2]; } }
void NetscapePluginModule::setMIMEDescription(const String& mimeDescription, PluginModuleInfo& plugin) { Vector<String> types; mimeDescription.lower().split(UChar(';'), false, types); plugin.info.mimes.reserveCapacity(types.size()); size_t mimeInfoCount = 0; for (size_t i = 0; i < types.size(); ++i) { Vector<String> mimeTypeParts; types[i].split(UChar(':'), true, mimeTypeParts); if (mimeTypeParts.size() <= 0) continue; plugin.info.mimes.uncheckedAppend(MimeClassInfo()); MimeClassInfo& mimeInfo = plugin.info.mimes[mimeInfoCount++]; mimeInfo.type = mimeTypeParts[0]; if (mimeTypeParts.size() > 1) mimeTypeParts[1].split(UChar(','), false, mimeInfo.extensions); if (mimeTypeParts.size() > 2) mimeInfo.desc = mimeTypeParts[2]; } }