mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.6 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 "tests/cefclient/browser/binding_test.h"
 | 
						|
 | 
						|
#include <algorithm>
 | 
						|
#include <string>
 | 
						|
 | 
						|
#include "tests/cefclient/browser/test_runner.h"
 | 
						|
 | 
						|
namespace client {
 | 
						|
namespace binding_test {
 | 
						|
 | 
						|
namespace {
 | 
						|
 | 
						|
const char kTestUrlPath[] = "/binding";
 | 
						|
const char kTestMessageName[] = "BindingTest";
 | 
						|
 | 
						|
// Handle messages in the browser process.
 | 
						|
class Handler : public CefMessageRouterBrowserSide::Handler {
 | 
						|
 public:
 | 
						|
  Handler() {}
 | 
						|
 | 
						|
  // Called due to cefQuery execution in binding.html.
 | 
						|
  virtual bool OnQuery(CefRefPtr<CefBrowser> browser,
 | 
						|
                       CefRefPtr<CefFrame> frame,
 | 
						|
                       int64 query_id,
 | 
						|
                       const CefString& request,
 | 
						|
                       bool persistent,
 | 
						|
                       CefRefPtr<Callback> callback) override {
 | 
						|
    // Only handle messages from the test URL.
 | 
						|
    const std::string& url = frame->GetURL();
 | 
						|
    if (!test_runner::IsTestURL(url, kTestUrlPath))
 | 
						|
      return false;
 | 
						|
 | 
						|
    const std::string& message_name = request;
 | 
						|
    if (message_name.find(kTestMessageName) == 0) {
 | 
						|
      // Reverse the string and return.
 | 
						|
      std::string result = message_name.substr(sizeof(kTestMessageName));
 | 
						|
      std::reverse(result.begin(), result.end());
 | 
						|
      callback->Success(result);
 | 
						|
      return true;
 | 
						|
    }
 | 
						|
 | 
						|
    return false;
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
}  // namespace
 | 
						|
 | 
						|
void CreateMessageHandlers(test_runner::MessageHandlerSet& handlers) {
 | 
						|
  handlers.insert(new Handler());
 | 
						|
}
 | 
						|
 | 
						|
}  // namespace binding_test
 | 
						|
}  // namespace client
 |