diff options
Diffstat (limited to 'uui/source/iahndl-cookies.cxx')
-rw-r--r-- | uui/source/iahndl-cookies.cxx | 195 |
1 files changed, 0 insertions, 195 deletions
diff --git a/uui/source/iahndl-cookies.cxx b/uui/source/iahndl-cookies.cxx deleted file mode 100644 index 6bfeb8be2258..000000000000 --- a/uui/source/iahndl-cookies.cxx +++ /dev/null @@ -1,195 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "com/sun/star/ucb/HandleCookiesRequest.hpp" -#include "com/sun/star/ucb/XInteractionCookieHandling.hpp" -#include "com/sun/star/task/XInteractionRequest.hpp" - -#include "osl/mutex.hxx" -#include "svl/httpcook.hxx" -#include "vcl/svapp.hxx" - -#include "cookiedg.hxx" - -#include "iahndl.hxx" - -using namespace com::sun::star; - -namespace { - -void -executeCookieDialog(Window * pParent, CntHTTPCookieRequest & rRequest) - SAL_THROW((uno::RuntimeException)) -{ - try - { - SolarMutexGuard aGuard; - - std::auto_ptr< ResMgr > xManager(ResMgr::CreateResMgr("uui")); - std::auto_ptr< CookiesDialog > xDialog( - new CookiesDialog(pParent, &rRequest, xManager.get())); - xDialog->Execute(); - } - catch (std::bad_alloc const &) - { - throw uno::RuntimeException( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("out of memory")), - uno::Reference< uno::XInterface>()); - } -} - -void -handleCookiesRequest_( - Window * pParent, - ucb::HandleCookiesRequest const & rRequest, - uno::Sequence< uno::Reference< task::XInteractionContinuation > > const & - rContinuations) - SAL_THROW((uno::RuntimeException)) -{ - CntHTTPCookieList_impl aCookies; - for (sal_Int32 i = 0; i < rRequest.Cookies.getLength(); ++i) - { - try - { - std::auto_ptr< CntHTTPCookie > xCookie(new CntHTTPCookie); - xCookie->m_aName = UniString(rRequest.Cookies[i].Name); - xCookie->m_aValue = UniString(rRequest.Cookies[i].Value); - xCookie->m_aDomain = UniString(rRequest.Cookies[i].Domain); - xCookie->m_aPath = UniString(rRequest.Cookies[i].Path); - xCookie->m_aExpires - = DateTime(Date(rRequest.Cookies[i].Expires.Day, - rRequest.Cookies[i].Expires.Month, - rRequest.Cookies[i].Expires.Year), - Time(rRequest.Cookies[i].Expires.Hours, - rRequest.Cookies[i].Expires.Minutes, - rRequest.Cookies[i].Expires.Seconds, - rRequest.Cookies[i].Expires.HundredthSeconds)); - xCookie->m_nFlags - = rRequest.Cookies[i].Secure ? CNTHTTP_COOKIE_FLAG_SECURE : 0; - switch (rRequest.Cookies[i].Policy) - { - case ucb::CookiePolicy_CONFIRM: - xCookie->m_nPolicy = CNTHTTP_COOKIE_POLICY_INTERACTIVE; - break; - - case ucb::CookiePolicy_ACCEPT: - xCookie->m_nPolicy = CNTHTTP_COOKIE_POLICY_ACCEPTED; - break; - - case ucb::CookiePolicy_IGNORE: - xCookie->m_nPolicy = CNTHTTP_COOKIE_POLICY_BANNED; - break; - - default: - OSL_ASSERT(false); - break; - } - aCookies.push_back( xCookie.get() ); - xCookie.release(); - } - catch (std::bad_alloc const &) - { - throw uno::RuntimeException( - rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( - "out of memory")), - uno::Reference< uno::XInterface >()); - } - } - - CntHTTPCookieRequest - aRequest(rRequest.URL, - aCookies, - rRequest.Request == ucb::CookieRequest_RECEIVE - ? CNTHTTP_COOKIE_REQUEST_RECV - : CNTHTTP_COOKIE_REQUEST_SEND); - executeCookieDialog(pParent, aRequest); - for (sal_Int32 i = 0; i < rContinuations.getLength(); ++i) - { - uno::Reference< ucb::XInteractionCookieHandling > - xCookieHandling(rContinuations[i], uno::UNO_QUERY); - if (xCookieHandling.is()) - { - switch (aRequest.m_nRet) - { - case CNTHTTP_COOKIE_POLICY_INTERACTIVE: - xCookieHandling-> - setGeneralPolicy(ucb::CookiePolicy_CONFIRM); - break; - - case CNTHTTP_COOKIE_POLICY_ACCEPTED: - xCookieHandling-> - setGeneralPolicy(ucb::CookiePolicy_ACCEPT); - break; - - case CNTHTTP_COOKIE_POLICY_BANNED: - xCookieHandling-> - setGeneralPolicy(ucb::CookiePolicy_IGNORE); - break; - } - for (sal_Int32 j = 0; j < rRequest.Cookies.getLength(); ++j) - if (rRequest.Cookies[j].Policy - == ucb::CookiePolicy_CONFIRM) - switch ( (aCookies)[ j ]->m_nPolicy ) - { - case CNTHTTP_COOKIE_POLICY_ACCEPTED: - xCookieHandling-> - setSpecificPolicy(rRequest.Cookies[j], true); - break; - - case CNTHTTP_COOKIE_POLICY_BANNED: - xCookieHandling-> - setSpecificPolicy(rRequest.Cookies[j], false); - break; - } - xCookieHandling->select(); - break; - } - } -} - -} // namespace - -bool -UUIInteractionHelper::handleCookiesRequest( - uno::Reference< task::XInteractionRequest > const & rRequest) - SAL_THROW((uno::RuntimeException)) -{ - uno::Any aAnyRequest(rRequest->getRequest()); - - ucb::HandleCookiesRequest aCookiesRequest; - if (aAnyRequest >>= aCookiesRequest) - { - handleCookiesRequest_(getParentProperty(), - aCookiesRequest, - rRequest->getContinuations()); - return true; - } - return false; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |