(CNN) UK Prime Minister Boris Johnson has agreed a new withdrawal deal with the European Union, but still faces a huge challenge in getting it passed by Parliament.