diff --git a/modules/plugin/base/public/nsICookieStorage.h b/modules/plugin/base/public/nsICookieStorage.h new file mode 100644 index 000000000000..d9a1e556cc58 --- /dev/null +++ b/modules/plugin/base/public/nsICookieStorage.h @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#ifndef nsICookieStorage_h___ +#define nsICookieStorage_h___ + +#include "nsISupports.h" + +// {c8c05100-cfdb-11d2-bab8-b088e084e5bc} +#define NS_ICOOKIESTORAGE_IID \ +{ 0xc8c05100, 0xcfdb, 0x11d2, { 0xba, 0xb8, 0xb0, 0x88, 0xe0, 0x84, 0xe5, 0xbc } } + +// {c8c05101-cfdb-11d2-bab8-b088e084e5bc} +#define NS_COOKIESTORAGE_CID \ +{ 0xc8c05101, 0xcfdb, 0x11d2, { 0xba, 0xb8, 0xb0, 0x88, 0xe0, 0x84, 0xe5, 0xbc } } + +/** + * Stores/retrieves cookies. Cookies are strings associated with specific URLs. + * They can be up to 4096 bytes each. This is intended to be used by plugins + * to access browser cookies. + */ +class nsICookieStorage : public nsISupports { +public: + NS_DEFINE_STATIC_IID_ACCESSOR(NS_ICOOKIEMANAGER_IID) + + /** + * Retrieves a cookie from the browser's persistent cookie store. + * @param inCookieURL URL string to look up cookie with. + * @param inOutCookieBuffer buffer large enough to accomodate cookie data. + * @param inOutCookieSize on input, size of the cookie buffer, on output cookie's size. + */ + NS_IMETHOD + GetCookie(const char* inCookieURL, void* inOutCookieBuffer, PRUint32& inOutCookieSize) = 0; + + + /** + * Stores a cookie in the browser's persistent cookie store. + * @param inCookieURL URL string store cookie with. + * @param inCookieBuffer buffer containing cookie data. + * @param inCookieSize specifies size of cookie data. + */ + NS_IMETHOD + SetCookie(const char* inCookieURL, const void* inCookieBuffer, PRUint32 inCookieSize) = 0; +}; + +#endif /* nsICookieStorage_h___ */ diff --git a/modules/plugin/public/nsICookieStorage.h b/modules/plugin/public/nsICookieStorage.h new file mode 100644 index 000000000000..d9a1e556cc58 --- /dev/null +++ b/modules/plugin/public/nsICookieStorage.h @@ -0,0 +1,61 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#ifndef nsICookieStorage_h___ +#define nsICookieStorage_h___ + +#include "nsISupports.h" + +// {c8c05100-cfdb-11d2-bab8-b088e084e5bc} +#define NS_ICOOKIESTORAGE_IID \ +{ 0xc8c05100, 0xcfdb, 0x11d2, { 0xba, 0xb8, 0xb0, 0x88, 0xe0, 0x84, 0xe5, 0xbc } } + +// {c8c05101-cfdb-11d2-bab8-b088e084e5bc} +#define NS_COOKIESTORAGE_CID \ +{ 0xc8c05101, 0xcfdb, 0x11d2, { 0xba, 0xb8, 0xb0, 0x88, 0xe0, 0x84, 0xe5, 0xbc } } + +/** + * Stores/retrieves cookies. Cookies are strings associated with specific URLs. + * They can be up to 4096 bytes each. This is intended to be used by plugins + * to access browser cookies. + */ +class nsICookieStorage : public nsISupports { +public: + NS_DEFINE_STATIC_IID_ACCESSOR(NS_ICOOKIEMANAGER_IID) + + /** + * Retrieves a cookie from the browser's persistent cookie store. + * @param inCookieURL URL string to look up cookie with. + * @param inOutCookieBuffer buffer large enough to accomodate cookie data. + * @param inOutCookieSize on input, size of the cookie buffer, on output cookie's size. + */ + NS_IMETHOD + GetCookie(const char* inCookieURL, void* inOutCookieBuffer, PRUint32& inOutCookieSize) = 0; + + + /** + * Stores a cookie in the browser's persistent cookie store. + * @param inCookieURL URL string store cookie with. + * @param inCookieBuffer buffer containing cookie data. + * @param inCookieSize specifies size of cookie data. + */ + NS_IMETHOD + SetCookie(const char* inCookieURL, const void* inCookieBuffer, PRUint32 inCookieSize) = 0; +}; + +#endif /* nsICookieStorage_h___ */