|
6 | 6 |
|
7 | 7 | #include "CefRequestContextHandlerAdapter.h"
|
8 | 8 | #include "CookieManager.h"
|
| 9 | +#include "Request.h" |
9 | 10 | #include "RequestContext.h"
|
10 | 11 | #include "Internals\ReportUnhandledExceptions.h"
|
11 | 12 | #include "Internals\TypeConversion.h"
|
| 13 | +#include "Internals\CefBrowserWrapper.h" |
| 14 | +#include "Internals\CefFrameWrapper.h" |
| 15 | +#include "Internals\CefResourceRequestHandlerAdapter.h" |
12 | 16 |
|
13 | 17 | namespace CefSharp
|
14 | 18 | {
|
@@ -50,5 +54,36 @@ namespace CefSharp
|
50 | 54 | _requestContextHandler->OnRequestContextInitialized(%ctx);
|
51 | 55 | }
|
52 | 56 | }
|
| 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 | + } |
53 | 88 | }
|
54 | 89 | }
|
0 commit comments