示例#1
0
URL
MediaSourceManagerImpl::GetUrlWithMediaContext(const URL& url)
{
	// Don't override anything but the default context for now.
	if (url.GetContextId() != 0)
		return url;

	// Create new context manager if it doesn't exists already.
	if (!m_url_context_id)
	{
		m_url_context_id = urlManager->GetNewContextID();
		OpFileFolder media_cache_folder;
		if (OpStatus::IsError(g_folder_manager->AddFolder(OPFILE_CACHE_FOLDER, UNI_L("media"), &media_cache_folder)))
		{
			OP_ASSERT(!"Failed to create folder for dedicated media cache. Falling back to default");
			return url;
		}

		Context_Manager_Multimedia::CreateManager(m_url_context_id, media_cache_folder, media_cache_folder, FALSE, PrefsCollectionNetwork::MediaCacheSize);
	}

	// Create new url with the media context.
	const OpStringC tmp_url_str
					= url.GetAttribute(URL::KUniName_With_Fragment_Username_Password_NOT_FOR_UI,
						URL::KNoRedirect);
	return g_url_api->GetURL(tmp_url_str, m_url_context_id);
}