| Index: third_party/grpc/src/core/surface/channel_ping.c
|
| diff --git a/third_party/WebKit/Source/core/inspector/InspectorFrontendClient.h b/third_party/grpc/src/core/surface/channel_ping.c
|
| similarity index 52%
|
| copy from third_party/WebKit/Source/core/inspector/InspectorFrontendClient.h
|
| copy to third_party/grpc/src/core/surface/channel_ping.c
|
| index 9347f471e0abb521c67ff818174f8bf2ebb99b80..983f1c8a66d7f29db84d9d59d0f6ec929cd822de 100644
|
| --- a/third_party/WebKit/Source/core/inspector/InspectorFrontendClient.h
|
| +++ b/third_party/grpc/src/core/surface/channel_ping.c
|
| @@ -1,5 +1,7 @@
|
| /*
|
| - * Copyright (C) 2010 Google Inc. All rights reserved.
|
| + *
|
| + * Copyright 2015-2016, Google Inc.
|
| + * All rights reserved.
|
| *
|
| * Redistribution and use in source and binary forms, with or without
|
| * modification, are permitted provided that the following conditions are
|
| @@ -26,32 +28,52 @@
|
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| + *
|
| */
|
|
|
| -#ifndef InspectorFrontendClient_h
|
| -#define InspectorFrontendClient_h
|
| -
|
| -#include "platform/heap/Handle.h"
|
| -#include "wtf/Forward.h"
|
| -
|
| -namespace blink {
|
| -
|
| -class ContextMenuProvider;
|
| -class LocalFrame;
|
| +#include "src/core/surface/channel.h"
|
|
|
| -class InspectorFrontendClient {
|
| -public:
|
| - virtual ~InspectorFrontendClient() { }
|
| +#include <string.h>
|
|
|
| - virtual void sendMessageToEmbedder(const String&) = 0;
|
| +#include <grpc/support/alloc.h>
|
| +#include <grpc/support/log.h>
|
|
|
| - virtual bool isUnderTest() = 0;
|
| +#include "src/core/surface/api_trace.h"
|
| +#include "src/core/surface/completion_queue.h"
|
|
|
| - virtual void showContextMenu(LocalFrame* targetFrame, float x, float y, ContextMenuProvider*) = 0;
|
| +typedef struct {
|
| + grpc_closure closure;
|
| + void *tag;
|
| + grpc_completion_queue *cq;
|
| + grpc_cq_completion completion_storage;
|
| +} ping_result;
|
|
|
| - virtual void setInjectedScriptForOrigin(const String& origin, const String& source) = 0;
|
| -};
|
| +static void ping_destroy(grpc_exec_ctx *exec_ctx, void *arg,
|
| + grpc_cq_completion *storage) {
|
| + gpr_free(arg);
|
| +}
|
|
|
| -} // namespace blink
|
| +static void ping_done(grpc_exec_ctx *exec_ctx, void *arg, bool success) {
|
| + ping_result *pr = arg;
|
| + grpc_cq_end_op(exec_ctx, pr->cq, pr->tag, success, ping_destroy, pr,
|
| + &pr->completion_storage);
|
| +}
|
|
|
| -#endif
|
| +void grpc_channel_ping(grpc_channel *channel, grpc_completion_queue *cq,
|
| + void *tag, void *reserved) {
|
| + grpc_transport_op op;
|
| + ping_result *pr = gpr_malloc(sizeof(*pr));
|
| + grpc_channel_element *top_elem =
|
| + grpc_channel_stack_element(grpc_channel_get_channel_stack(channel), 0);
|
| + grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
|
| + GPR_ASSERT(reserved == NULL);
|
| + memset(&op, 0, sizeof(op));
|
| + pr->tag = tag;
|
| + pr->cq = cq;
|
| + grpc_closure_init(&pr->closure, ping_done, pr);
|
| + op.send_ping = &pr->closure;
|
| + op.bind_pollset = grpc_cq_pollset(cq);
|
| + grpc_cq_begin_op(cq, tag);
|
| + top_elem->filter->start_transport_op(&exec_ctx, top_elem, &op);
|
| + grpc_exec_ctx_finish(&exec_ctx);
|
| +}
|
|
|