// 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 "CEF/BindingTest.h" #include #include #include "CEF/TestRunner.h" 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 browser, CefRefPtr frame, int64 query_id, const CefString& request, bool persistent, CefRefPtr callback) override { // Only handle messages from the test URL. const std::string& url = frame->GetURL(); if (!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 binding_test { void CreateMessageHandlers(MessageHandlerSet& handlers) { handlers.insert(new Handler()); } }