1/* 2 * Copyright (C) 2012 Igalia S.L. 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 17 */ 18 19#include "config.h" 20#include "CookieStorage.h" 21 22#if USE(SOUP) 23 24#include "CookieJarSoup.h" 25#include "NotImplemented.h" 26 27#include <stdio.h> 28 29namespace WebCore { 30 31static CookieChangeCallbackPtr cookieChangeCallback; 32 33static void soupCookiesChanged(SoupCookieJar* jar, SoupCookie*, SoupCookie*, gpointer) 34{ 35 if (jar != soupCookieJar()) 36 return; 37 cookieChangeCallback(); 38} 39 40void startObservingCookieChanges(CookieChangeCallbackPtr callback) 41{ 42 ASSERT(!cookieChangeCallback); 43 cookieChangeCallback = callback; 44 45 g_signal_connect(soupCookieJar(), "changed", G_CALLBACK(soupCookiesChanged), 0); 46} 47 48void stopObservingCookieChanges() 49{ 50 g_signal_handlers_disconnect_by_func(soupCookieJar(), reinterpret_cast<void*>(soupCookiesChanged), 0); 51 cookieChangeCallback = 0; 52} 53 54} 55 56#endif 57