// 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 "cefclient/binding_test.h" #include #include #include "include/wrapper/cef_stream_resource_handler.h" namespace binding_test { namespace { const char kTestUrl[] = "http://tests/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 (url.find(kTestUrl) != 0) 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(ClientHandler::MessageHandlerSet& handlers) { handlers.insert(new Handler()); } } // namespace binding_test