mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Re-register the internal chrome-devtools scheme handler after CefClearSchemeHandlerFactories() is called (issue #398).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@350 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
@ -118,8 +118,9 @@ public:
|
||||
} // namespace
|
||||
|
||||
// Register the DevTools scheme handler.
|
||||
void RegisterDevToolsSchemeHandler()
|
||||
void RegisterDevToolsSchemeHandler(bool firstTime)
|
||||
{
|
||||
if (firstTime)
|
||||
CefRegisterCustomScheme(kChromeDevToolsScheme, true, false, true);
|
||||
CefRegisterSchemeHandlerFactory(kChromeDevToolsScheme, kChromeDevToolsHost,
|
||||
new DevToolsSchemeHandlerFactory());
|
||||
|
@ -10,6 +10,6 @@ extern const char kChromeDevToolsHost[];
|
||||
extern const char kChromeDevToolsURL[];
|
||||
|
||||
// Register the DevTools scheme handler.
|
||||
void RegisterDevToolsSchemeHandler();
|
||||
void RegisterDevToolsSchemeHandler(bool firstTime);
|
||||
|
||||
#endif // _CEF_BROWSER_DEVTOOLS_SCHEME_HANDLER_H
|
||||
|
@ -753,7 +753,7 @@ bool CefContext::Initialize(const CefSettings& settings)
|
||||
|
||||
// Perform DevTools scheme registration when CEF initialization is complete.
|
||||
CefThread::PostTask(CefThread::UI, FROM_HERE,
|
||||
base::Bind(&RegisterDevToolsSchemeHandler));
|
||||
base::Bind(&RegisterDevToolsSchemeHandler, true));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -4,6 +4,7 @@
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "include/cef.h"
|
||||
#include "browser_devtools_scheme_handler.h"
|
||||
#include "browser_resource_loader_bridge.h"
|
||||
#include "cef_context.h"
|
||||
#include "cef_thread.h"
|
||||
@ -560,8 +561,10 @@ private:
|
||||
job = GetBuiltinSchemeRequestJob(request, scheme);
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
if (job)
|
||||
DLOG(INFO) << "CefUrlRequestManager hit for " << request->url().spec();
|
||||
#endif
|
||||
|
||||
return job;
|
||||
}
|
||||
@ -597,7 +600,7 @@ bool CefRegisterCustomScheme(const CefString& scheme_name,
|
||||
{
|
||||
// Verify that the context is in a valid state.
|
||||
if (!CONTEXT_STATE_VALID()) {
|
||||
NOTREACHED();
|
||||
NOTREACHED() << "context not valid";
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -625,7 +628,7 @@ bool CefRegisterSchemeHandlerFactory(const CefString& scheme_name,
|
||||
{
|
||||
// Verify that the context is in a valid state.
|
||||
if (!CONTEXT_STATE_VALID()) {
|
||||
NOTREACHED();
|
||||
NOTREACHED() << "context not valid";
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -645,12 +648,15 @@ bool CefClearSchemeHandlerFactories()
|
||||
{
|
||||
// Verify that the context is in a valid state.
|
||||
if (!CONTEXT_STATE_VALID()) {
|
||||
NOTREACHED();
|
||||
NOTREACHED() << "context not valid";
|
||||
return false;
|
||||
}
|
||||
|
||||
if (CefThread::CurrentlyOn(CefThread::IO)) {
|
||||
CefUrlRequestManager::GetInstance()->ClearFactories();
|
||||
|
||||
// Re-register the DevTools scheme handler.
|
||||
RegisterDevToolsSchemeHandler(false);
|
||||
} else {
|
||||
CefThread::PostTask(CefThread::IO, FROM_HERE,
|
||||
NewRunnableFunction(&CefClearSchemeHandlerFactories));
|
||||
|
Reference in New Issue
Block a user