Skip to content

Commit 705ecb5

Browse files
committed
Allow cookies by default when cookie filter browser is NULL
1 parent 2949b9e commit 705ecb5

1 file changed

Lines changed: 12 additions & 10 deletions

File tree

‎src/handlers/cookie_access_filter.pyx‎

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@ cdef public cpp_bool CookieAccessFilter_CanSendCookie(
2121
cdef py_bool retval
2222
try:
2323
Debug("CookieAccessFilter_CanSendCookie")
24-
# Issue #455: CefRequestHandler callbacks still executed after
25-
# browser was closed.
26-
if IsBrowserClosed(cef_browser):
27-
return False
2824
# This callback runs on the IO thread, where CefFrame::GetBrowser()
2925
# may return NULL (observed for cross-origin subresource requests). CEF
3026
# also documents browser/frame as optional ("may be NULL for requests
@@ -34,10 +30,15 @@ cdef public cpp_bool CookieAccessFilter_CanSendCookie(
3430
# and allow the cookie by default (CEF's own default is true). The app
3531
# therefore cannot filter these cookies - documented as a limitation in
3632
# api/RequestHandler.md.
37-
if not cef_frame.get() or not cef_frame.get().GetBrowser().get():
33+
if not cef_browser.get() or not cef_frame.get() \
34+
or not cef_frame.get().GetBrowser().get():
3835
Debug("CanSendCookie: no resolvable browser for the request"
3936
" (IO-thread / service-worker request); allowing by default")
4037
return True
38+
# Issue #455: CefRequestHandler callbacks still executed after
39+
# browser was closed.
40+
if IsBrowserClosed(cef_browser):
41+
return False
4142

4243
browser = GetPyBrowser(cef_browser, "CanSendCookie")
4344
frame = GetPyFrame(cef_frame)
@@ -73,19 +74,20 @@ cdef public cpp_bool CookieAccessFilter_CanSaveCookie(
7374
cdef object callback
7475
cdef py_bool retval
7576
try:
76-
# Issue #455: CefRequestHandler callbacks still executed after
77-
# browser was closed.
78-
if IsBrowserClosed(cef_browser):
79-
return False
8077
# See CanSendCookie above. On the IO thread CefFrame::GetBrowser() may
8178
# be NULL (and CEF documents browser/frame as optional). Without a
8279
# resolvable browser we cannot build a PyFrame, so log and allow the
8380
# cookie by default; the app cannot filter these cookies (see
8481
# api/RequestHandler.md).
85-
if not cef_frame.get() or not cef_frame.get().GetBrowser().get():
82+
if not cef_browser.get() or not cef_frame.get() \
83+
or not cef_frame.get().GetBrowser().get():
8684
Debug("CanSaveCookie: no resolvable browser for the request"
8785
" (IO-thread / service-worker request); allowing by default")
8886
return True
87+
# Issue #455: CefRequestHandler callbacks still executed after
88+
# browser was closed.
89+
if IsBrowserClosed(cef_browser):
90+
return False
8991

9092
browser = GetPyBrowser(cef_browser, "CanSaveCookie")
9193
frame = GetPyFrame(cef_frame)

0 commit comments

Comments
 (0)