Pass the originating browser to CefSchemeHandlerFactory::Create() (issue #362).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@305 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2011-10-07 10:13:04 +00:00
parent 4bacca6998
commit 7a3154c9ba
11 changed files with 76 additions and 21 deletions

View File

@ -12,18 +12,23 @@
#include "libcef_dll/cpptoc/scheme_handler_cpptoc.h"
#include "libcef_dll/cpptoc/scheme_handler_factory_cpptoc.h"
#include "libcef_dll/ctocpp/browser_ctocpp.h"
#include "libcef_dll/ctocpp/request_ctocpp.h"
// MEMBER FUNCTIONS - Body may be edited by hand.
struct _cef_scheme_handler_t* CEF_CALLBACK scheme_handler_factory_create(
struct _cef_scheme_handler_factory_t* self, const cef_string_t* scheme_name,
cef_request_t* request)
struct _cef_scheme_handler_factory_t* self, cef_browser_t* browser,
const cef_string_t* scheme_name, cef_request_t* request)
{
CefRefPtr<CefBrowser> browserPtr;
if (browser)
browserPtr = CefBrowserCToCpp::Wrap(browser);
CefRefPtr<CefSchemeHandler> rv =
CefSchemeHandlerFactoryCppToC::Get(self)->Create(CefString(scheme_name),
CefRequestCToCpp::Wrap(request));
CefSchemeHandlerFactoryCppToC::Get(self)->Create(browserPtr,
CefString(scheme_name), CefRequestCToCpp::Wrap(request));
if (rv.get())
return CefSchemeHandlerCppToC::Wrap(rv);