Skip to content

Commit d0b53da

Browse files
committed
Core - Fix IRequestContextHandler.GetResourceRequestHandler never called
CefRequestContextHandlerAdapter now implements GetResourceRequestHandler
1 parent 13e74fe commit d0b53da

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

CefSharp.Core/Internals/CefRequestContextHandlerAdapter.cpp

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,13 @@
66

77
#include "CefRequestContextHandlerAdapter.h"
88
#include "CookieManager.h"
9+
#include "Request.h"
910
#include "RequestContext.h"
1011
#include "Internals\ReportUnhandledExceptions.h"
1112
#include "Internals\TypeConversion.h"
13+
#include "Internals\CefBrowserWrapper.h"
14+
#include "Internals\CefFrameWrapper.h"
15+
#include "Internals\CefResourceRequestHandlerAdapter.h"
1216

1317
namespace CefSharp
1418
{
@@ -50,5 +54,36 @@ namespace CefSharp
5054
_requestContextHandler->OnRequestContextInitialized(%ctx);
5155
}
5256
}
57+
58+
CefRefPtr<CefResourceRequestHandler> CefRequestContextHandlerAdapter::GetResourceRequestHandler(
59+
CefRefPtr<CefBrowser> browser,
60+
CefRefPtr<CefFrame> frame,
61+
CefRefPtr<CefRequest> request,
62+
bool is_navigation,
63+
bool is_download,
64+
const CefString& request_initiator,
65+
bool& disable_default_handling)
66+
{
67+
if (Object::ReferenceEquals(_requestContextHandler, nullptr))
68+
{
69+
70+
return NULL;
71+
}
72+
73+
CefBrowserWrapper browserWrapper(browser);
74+
CefFrameWrapper frameWrapper(frame);
75+
Request requestWrapper(request);
76+
77+
auto handler = _requestContextHandler->GetResourceRequestHandler(%browserWrapper, %frameWrapper, %requestWrapper, is_navigation, is_download, StringUtils::ToClr(request_initiator), disable_default_handling);
78+
79+
if (Object::ReferenceEquals(handler, nullptr))
80+
{
81+
return NULL;
82+
}
83+
84+
//CefRequestContext is not associated with a specific browser
85+
//so browserControl param is always nullptr.
86+
return new CefResourceRequestHandlerAdapter(nullptr, handler);
87+
}
5388
}
5489
}

CefSharp.Core/Internals/CefRequestContextHandlerAdapter.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@ namespace CefSharp
4040

4141
virtual void OnRequestContextInitialized(CefRefPtr<CefRequestContext> requestContext) OVERRIDE;
4242

43+
virtual CefRefPtr<CefResourceRequestHandler> GetResourceRequestHandler(
44+
CefRefPtr<CefBrowser> browser,
45+
CefRefPtr<CefFrame> frame,
46+
CefRefPtr<CefRequest> request,
47+
bool is_navigation,
48+
bool is_download,
49+
const CefString& request_initiator,
50+
bool& disable_default_handling) OVERRIDE;
51+
4352
IMPLEMENT_REFCOUNTING(CefRequestContextHandlerAdapter);
4453
};
4554
}

0 commit comments

Comments
 (0)