blob: 816a65f5488794986b8d5a050536ed15b0790dd9 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_HTML_VIEWER_TEST_HTML_VIEWER_IMPL_H_
#define COMPONENTS_HTML_VIEWER_TEST_HTML_VIEWER_IMPL_H_
#include <set>
#include "base/macros.h"
#include "components/html_viewer/public/interfaces/test_html_viewer.mojom.h"
#include "mojo/public/cpp/bindings/binding.h"
namespace blink {
class WebLocalFrame;
}
namespace html_viewer {
// Caller must ensure that |web_frame| outlives TestHTMLViewerImpl.
class TestHTMLViewerImpl : public TestHTMLViewer {
public:
TestHTMLViewerImpl(blink::WebLocalFrame* web_frame,
mojo::InterfaceRequest<TestHTMLViewer> request);
~TestHTMLViewerImpl() override;
private:
class ExecutionCallbackImpl;
void CallbackCompleted(ExecutionCallbackImpl* callback_impl);
// TestHTMLViewer:
void GetContentAsText(const GetContentAsTextCallback& callback) override;
void ExecuteScript(const mojo::String& script,
const ExecuteScriptCallback& callback) override;
blink::WebLocalFrame* web_frame_;
mojo::Binding<TestHTMLViewer> binding_;
std::set<ExecutionCallbackImpl*> callbacks_;
DISALLOW_COPY_AND_ASSIGN(TestHTMLViewerImpl);
};
} // namespace html_viewer
#endif // COMPONENTS_HTML_VIEWER_TEST_HTML_VIEWER_IMPL_H_