Fix crash on app list start page contents not existing.
[chromium-blink-merge.git] / content / renderer / web_ui_runner.h
blob2f17ab59deb79c994df2f34bbbdc7463b3adfc69
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CONTENT_RENDERER_WEB_UI_RUNNER_H_
6 #define CONTENT_RENDERER_WEB_UI_RUNNER_H_
8 #include "gin/runner.h"
10 namespace blink {
11 class WebFrame;
14 namespace content {
16 // Implementation of gin::Runner that forwards Runner functions to WebFrame.
17 class WebUIRunner : public gin::Runner {
18 public:
19 // Does not take ownership of ContextHolder.
20 WebUIRunner(blink::WebFrame* frame, gin::ContextHolder* context_holder);
21 ~WebUIRunner() override;
23 // Runner overrides:
24 void Run(const std::string& source,
25 const std::string& resource_name) override;
26 v8::Handle<v8::Value> Call(v8::Handle<v8::Function> function,
27 v8::Handle<v8::Value> receiver,
28 int argc,
29 v8::Handle<v8::Value> argv[]) override;
30 gin::ContextHolder* GetContextHolder() override;
32 private:
33 // Frame to execute script in.
34 blink::WebFrame* frame_;
36 // Created by blink bindings to V8.
37 gin::ContextHolder* context_holder_;
39 DISALLOW_COPY_AND_ASSIGN(WebUIRunner);
42 } // namespace content
44 #endif // CONTENT_RENDERER_WEB_UI_RUNNER_H_