| Index: headless/public/web_frame.h
 | 
| diff --git a/headless/public/web_frame.h b/headless/public/web_frame.h
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..e8d2d09e7b4df051042eda25b2fb497e5607b992
 | 
| --- /dev/null
 | 
| +++ b/headless/public/web_frame.h
 | 
| @@ -0,0 +1,50 @@
 | 
| +// 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 HEADLESS_PUBLIC_WEB_FRAME_H_
 | 
| +#define HEADLESS_PUBLIC_WEB_FRAME_H_
 | 
| +
 | 
| +#include "base/callback.h"
 | 
| +#include "headless/public/headless_export.h"
 | 
| +#include "base/values.h"
 | 
| +
 | 
| +namespace headless {
 | 
| +
 | 
| +class WebDocument;
 | 
| +
 | 
| +class HEADLESS_EXPORT WebFrame {
 | 
| + public:
 | 
| +  virtual ~WebFrame() {}
 | 
| +
 | 
| +  virtual WebDocument document() = 0;
 | 
| +
 | 
| +  using ScriptExecutionCallback =
 | 
| +      base::Callback<void(const std::vector<scoped_ptr<base::Value>>&)>;
 | 
| +
 | 
| +  // Schedule given script for execution.
 | 
| +  virtual void ExecuteScript(
 | 
| +      const std::string& source_code) = 0;
 | 
| +
 | 
| +  // Execute given script and return value.
 | 
| +  // Returned value will be converted to json (base::Value).
 | 
| +  // Special effects to bear in mind:
 | 
| +  // - Boolean will be converted to base::FundamentalValue (no surprises here).
 | 
| +  // - Number will be converted to base::FundamentalValue.
 | 
| +  // - Array will be converted to base::ListValue.
 | 
| +  //   Note: All non-numerical properties will be omitted
 | 
| +  //   (e.g. "array = [1, 2, 3]; array['property'] = 'value'; return array"
 | 
| +  //    will return [1, 2, 3]).
 | 
| +  // - Object will be converted to base::DictionaryValue
 | 
| +  //   Note: Only string can be key in base::DictionaryValue, so all non-string
 | 
| +  //   properties will be omitted
 | 
| +  //   (e.g. "obj = Object(); obj['key'] = 'value'; obj[0] = 42;" will return
 | 
| +  //    {"key":"value"}).
 | 
| +  virtual void ExecuteScriptAndReturnValue(
 | 
| +      const std::string& source_code,
 | 
| +      const ScriptExecutionCallback& callback) = 0;
 | 
| +};
 | 
| +
 | 
| +}  // namespace headless
 | 
| +
 | 
| +#endif  // HEADLESS_PUBLIC_WEB_FRAME_H_
 | 
| 
 |