mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Copyright (c) 2012 The Chromium Embedded Framework Authors. All rights
 | |
| // reserved. Use of this source code is governed by a BSD-style license that can
 | |
| // be found in the LICENSE file.
 | |
| 
 | |
| #include "libcef/browser/net/devtools_scheme_handler.h"
 | |
| 
 | |
| #include <string>
 | |
| 
 | |
| #include "libcef/browser/net/internal_scheme_handler.h"
 | |
| #include "libcef/browser/net/url_request_manager.h"
 | |
| 
 | |
| #include "base/memory/ptr_util.h"
 | |
| #include "base/strings/string_util.h"
 | |
| #include "content/public/browser/devtools_frontend_host.h"
 | |
| #include "content/public/common/url_constants.h"
 | |
| 
 | |
| namespace scheme {
 | |
| 
 | |
| const char kChromeDevToolsHost[] = "devtools";
 | |
| 
 | |
| namespace {
 | |
| 
 | |
| class Delegate : public InternalHandlerDelegate {
 | |
|  public:
 | |
|   Delegate() {}
 | |
| 
 | |
|   bool OnRequest(CefRefPtr<CefBrowser> browser,
 | |
|                  CefRefPtr<CefRequest> request,
 | |
|                  Action* action) override {
 | |
|     GURL url = GURL(request->GetURL().ToString());
 | |
|     std::string path = url.path();
 | |
|     if (path.length() > 0)
 | |
|       path = path.substr(1);
 | |
| 
 | |
|     action->string_piece =
 | |
|         content::DevToolsFrontendHost::GetFrontendResource(path);
 | |
|     return !action->string_piece.empty();
 | |
|   }
 | |
| };
 | |
| 
 | |
| }  // namespace
 | |
| 
 | |
| void RegisterChromeDevToolsHandler(CefURLRequestManager* request_manager) {
 | |
|   request_manager->AddFactory(
 | |
|       content::kChromeDevToolsScheme, kChromeDevToolsHost,
 | |
|       CreateInternalHandlerFactory(base::WrapUnique(new Delegate())));
 | |
| }
 | |
| 
 | |
| }  // namespace scheme
 |