Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* vim: set ts=8 sts=4 et sw=4 tw=99: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
8 #ifndef XPC_MAP_CLASSNAME
9 #error "Must #define XPC_MAP_CLASSNAME before #including xpc_map_end.h"
10 #endif
12 #ifndef XPC_MAP_QUOTED_CLASSNAME
13 #error "Must #define XPC_MAP_QUOTED_CLASSNAME before #including xpc_map_end.h"
14 #endif
16 #include "js/Id.h"
18 /**************************************************************/
20 NS_IMETHODIMP XPC_MAP_CLASSNAME::GetClassName(char * *aClassName)
21 {
22 static const char sName[] = XPC_MAP_QUOTED_CLASSNAME;
23 *aClassName = (char*) nsMemory::Clone(sName, sizeof(sName));
24 return NS_OK;
25 }
27 /**************************************************************/
29 // virtual
30 uint32_t
31 XPC_MAP_CLASSNAME::GetScriptableFlags()
32 {
33 return
34 #ifdef XPC_MAP_WANT_PRECREATE
35 nsIXPCScriptable::WANT_PRECREATE |
36 #endif
37 #ifdef XPC_MAP_WANT_CREATE
38 nsIXPCScriptable::WANT_CREATE |
39 #endif
40 #ifdef XPC_MAP_WANT_POSTCREATE
41 nsIXPCScriptable::WANT_POSTCREATE |
42 #endif
43 #ifdef XPC_MAP_WANT_ADDPROPERTY
44 nsIXPCScriptable::WANT_ADDPROPERTY |
45 #endif
46 #ifdef XPC_MAP_WANT_DELPROPERTY
47 nsIXPCScriptable::WANT_DELPROPERTY |
48 #endif
49 #ifdef XPC_MAP_WANT_GETPROPERTY
50 nsIXPCScriptable::WANT_GETPROPERTY |
51 #endif
52 #ifdef XPC_MAP_WANT_SETPROPERTY
53 nsIXPCScriptable::WANT_SETPROPERTY |
54 #endif
55 #ifdef XPC_MAP_WANT_ENUMERATE
56 nsIXPCScriptable::WANT_ENUMERATE |
57 #endif
58 #ifdef XPC_MAP_WANT_NEWENUMERATE
59 nsIXPCScriptable::WANT_NEWENUMERATE |
60 #endif
61 #ifdef XPC_MAP_WANT_NEWRESOLVE
62 nsIXPCScriptable::WANT_NEWRESOLVE |
63 #endif
64 #ifdef XPC_MAP_WANT_CONVERT
65 nsIXPCScriptable::WANT_CONVERT |
66 #endif
67 #ifdef XPC_MAP_WANT_FINALIZE
68 nsIXPCScriptable::WANT_FINALIZE |
69 #endif
70 #ifdef XPC_MAP_WANT_CALL
71 nsIXPCScriptable::WANT_CALL |
72 #endif
73 #ifdef XPC_MAP_WANT_CONSTRUCT
74 nsIXPCScriptable::WANT_CONSTRUCT |
75 #endif
76 #ifdef XPC_MAP_WANT_HASINSTANCE
77 nsIXPCScriptable::WANT_HASINSTANCE |
78 #endif
79 #ifdef XPC_MAP_WANT_OUTER_OBJECT
80 nsIXPCScriptable::WANT_OUTER_OBJECT |
81 #endif
82 #ifdef XPC_MAP_FLAGS
83 XPC_MAP_FLAGS |
84 #endif
85 0;
86 }
88 /**************************************************************/
90 #ifndef XPC_MAP_WANT_PRECREATE
91 /* void preCreate (in nsISupports nativeObj, in JSContextPtr cx, in JSObjectPtr globalObj, out JSObjectPtr parentObj); */
92 NS_IMETHODIMP XPC_MAP_CLASSNAME::PreCreate(nsISupports *nativeObj, JSContext * cx, JSObject * globalObj, JSObject * *parentObj)
93 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
94 #endif
96 #ifndef XPC_MAP_WANT_CREATE
97 NS_IMETHODIMP XPC_MAP_CLASSNAME::Create(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj)
98 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
99 #endif
101 #ifndef XPC_MAP_WANT_POSTCREATE
102 NS_IMETHODIMP XPC_MAP_CLASSNAME::PostCreate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj)
103 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
105 NS_IMETHODIMP XPC_MAP_CLASSNAME::PostTransplant(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj)
106 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
107 #endif
109 #ifndef XPC_MAP_WANT_ADDPROPERTY
110 NS_IMETHODIMP XPC_MAP_CLASSNAME::AddProperty(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, JS::Value * vp, bool *_retval)
111 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
112 #endif
114 #ifndef XPC_MAP_WANT_DELPROPERTY
115 NS_IMETHODIMP XPC_MAP_CLASSNAME::DelProperty(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, bool *_retval)
116 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
117 #endif
119 #ifndef XPC_MAP_WANT_GETPROPERTY
120 NS_IMETHODIMP XPC_MAP_CLASSNAME::GetProperty(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, JS::Value * vp, bool *_retval)
121 {NS_WARNING("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
122 #endif
124 #ifndef XPC_MAP_WANT_SETPROPERTY
125 NS_IMETHODIMP XPC_MAP_CLASSNAME::SetProperty(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, JS::Value * vp, bool *_retval)
126 {NS_WARNING("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
127 #endif
129 #ifndef XPC_MAP_WANT_NEWENUMERATE
130 NS_IMETHODIMP XPC_MAP_CLASSNAME::NewEnumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, uint32_t enum_op, JS::Value * statep, jsid * idp, bool *_retval)
131 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
132 #endif
134 #ifndef XPC_MAP_WANT_ENUMERATE
135 NS_IMETHODIMP XPC_MAP_CLASSNAME::Enumerate(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, bool *_retval)
136 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
137 #endif
139 #ifndef XPC_MAP_WANT_NEWRESOLVE
140 NS_IMETHODIMP XPC_MAP_CLASSNAME::NewResolve(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, jsid id, JSObject * *objp, bool *_retval)
141 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
142 #endif
144 #ifndef XPC_MAP_WANT_CONVERT
145 NS_IMETHODIMP XPC_MAP_CLASSNAME::Convert(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, uint32_t type, JS::Value * vp, bool *_retval)
146 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
147 #endif
149 #ifndef XPC_MAP_WANT_FINALIZE
150 NS_IMETHODIMP XPC_MAP_CLASSNAME::Finalize(nsIXPConnectWrappedNative *wrapper, JSFreeOp * fop, JSObject * obj)
151 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
152 #endif
154 #ifndef XPC_MAP_WANT_CALL
155 NS_IMETHODIMP XPC_MAP_CLASSNAME::Call(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs &args, bool *_retval)
156 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
157 #endif
159 #ifndef XPC_MAP_WANT_CONSTRUCT
160 NS_IMETHODIMP XPC_MAP_CLASSNAME::Construct(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, const JS::CallArgs &args, bool *_retval)
161 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
162 #endif
164 #ifndef XPC_MAP_WANT_HASINSTANCE
165 NS_IMETHODIMP XPC_MAP_CLASSNAME::HasInstance(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JS::HandleValue val, bool *bp, bool *_retval)
166 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
167 #endif
169 #ifndef XPC_MAP_WANT_OUTER_OBJECT
170 NS_IMETHODIMP XPC_MAP_CLASSNAME::OuterObject(nsIXPConnectWrappedNative *wrapper, JSContext * cx, JSObject * obj, JSObject * *_retval)
171 {NS_ERROR("never called"); return NS_ERROR_NOT_IMPLEMENTED;}
172 #endif
174 #ifndef XPC_MAP_WANT_POST_CREATE_PROTOTYPE
175 NS_IMETHODIMP XPC_MAP_CLASSNAME::PostCreatePrototype(JSContext *cx, JSObject *proto)
176 {return NS_OK;}
177 #endif
179 /**************************************************************/
181 #undef XPC_MAP_CLASSNAME
182 #undef XPC_MAP_QUOTED_CLASSNAME
184 #ifdef XPC_MAP_WANT_PRECREATE
185 #undef XPC_MAP_WANT_PRECREATE
186 #endif
188 #ifdef XPC_MAP_WANT_CREATE
189 #undef XPC_MAP_WANT_CREATE
190 #endif
192 #ifdef XPC_MAP_WANT_POSTCREATE
193 #undef XPC_MAP_WANT_POSTCREATE
194 #endif
196 #ifdef XPC_MAP_WANT_ADDPROPERTY
197 #undef XPC_MAP_WANT_ADDPROPERTY
198 #endif
200 #ifdef XPC_MAP_WANT_DELPROPERTY
201 #undef XPC_MAP_WANT_DELPROPERTY
202 #endif
204 #ifdef XPC_MAP_WANT_GETPROPERTY
205 #undef XPC_MAP_WANT_GETPROPERTY
206 #endif
208 #ifdef XPC_MAP_WANT_SETPROPERTY
209 #undef XPC_MAP_WANT_SETPROPERTY
210 #endif
212 #ifdef XPC_MAP_WANT_ENUMERATE
213 #undef XPC_MAP_WANT_ENUMERATE
214 #endif
216 #ifdef XPC_MAP_WANT_NEWENUMERATE
217 #undef XPC_MAP_WANT_NEWENUMERATE
218 #endif
220 #ifdef XPC_MAP_WANT_NEWRESOLVE
221 #undef XPC_MAP_WANT_NEWRESOLVE
222 #endif
224 #ifdef XPC_MAP_WANT_CONVERT
225 #undef XPC_MAP_WANT_CONVERT
226 #endif
228 #ifdef XPC_MAP_WANT_FINALIZE
229 #undef XPC_MAP_WANT_FINALIZE
230 #endif
232 #ifdef XPC_MAP_WANT_CALL
233 #undef XPC_MAP_WANT_CALL
234 #endif
236 #ifdef XPC_MAP_WANT_CONSTRUCT
237 #undef XPC_MAP_WANT_CONSTRUCT
238 #endif
240 #ifdef XPC_MAP_WANT_HASINSTANCE
241 #undef XPC_MAP_WANT_HASINSTANCE
242 #endif
244 #ifdef XPC_MAP_WANT_OUTER_OBJECT
245 #undef XPC_MAP_WANT_OUTER_OBJECT
246 #endif
248 #ifdef XPC_MAP_WANT_POST_CREATE_PROTOTYPE
249 #undef XPC_MAP_WANT_POST_CREATE_PROTOTYPE
250 #endif
252 #ifdef XPC_MAP_FLAGS
253 #undef XPC_MAP_FLAGS
254 #endif