Index: content/browser/devtools/protocol/devtools_protocol_handler_impl.h |
diff --git a/content/browser/devtools/protocol/devtools_protocol_handler_impl.h b/content/browser/devtools/protocol/devtools_protocol_handler_impl.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..15f5e9ac65231bf08fc33a9dc689eb0827ad581f |
--- /dev/null |
+++ b/content/browser/devtools/protocol/devtools_protocol_handler_impl.h |
@@ -0,0 +1,1748 @@ |
+// Copyright 2014 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. |
+ |
+// THIS FILE IS AUTOGENERATED. DO NOT EDIT. |
+// Generated by |
+// content/public/browser/devtools_protocol_handler_generator.py from |
+// third_party/WebKit/Source/devtools/protocol.json |
+ |
+#ifndef CONTENT_BROWSER_DEVTOOLS_PROTOCOL_DEVTOOLS_PROTOCOL_HANDLER_IMPL_H_ |
+#define CONTENT_BROWSER_DEVTOOLS_PROTOCOL_DEVTOOLS_PROTOCOL_HANDLER_IMPL_H_ |
+ |
+#include "content/browser/devtools/devtools_protocol.h" |
+#include "content/browser/devtools/protocol/devtools_protocol_client.h" |
+ |
+namespace content { |
+ |
+class DevToolsProtocolHandlerImpl; |
+ |
+namespace devtools { |
+ |
+class ListBuilderBase { |
+ public: |
+ static scoped_ptr<base::ListValue> ToValue(ListBuilderBase src); |
+ |
+ protected: |
+ ListBuilderBase(); |
+ ListBuilderBase(scoped_ptr<base::ListValue> list_); |
+ |
+ scoped_ptr<base::ListValue> list_; |
+}; |
+ |
+template<class T> |
+class ListBuilder : public ListBuilderBase { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(ListBuilder) |
+ public: |
+ ListBuilder() {} |
+ ListBuilder(ListBuilder&& other) : ListBuilderBase(other.list_.Pass()) { |
+ } |
+ |
+ void push_back(T item) { |
+ list_->Append(T::ToValue(item.Pass()).release()); |
+ } |
+}; |
+ |
+template<> |
+class ListBuilder<std::string> : public ListBuilderBase { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(ListBuilder) |
+ public: |
+ ListBuilder() {} |
+ ListBuilder(ListBuilder&& other) : ListBuilderBase(other.list_.Pass()) { |
+ } |
+ |
+ void push_back(const std::string& item) { |
+ list_->AppendString(item); |
+ } |
+}; |
+ |
+namespace inspector { |
+template<int MASK> |
+struct DetachedParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(DetachedParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kReason = 1 << 0, |
+ kNoneSet = kReason |
+ }; |
+ |
+ DetachedParamsBuilder<MASK & ~kReason>& |
+ set_reason(const std::string& reason) { |
+ COMPILE_ASSERT(MASK & kReason, already_set); |
+ dict_->SetString("reason", reason); |
+ return ThisAs<DetachedParamsBuilder<MASK & ~kReason>>(); |
+ } |
+ |
+ static DetachedParamsBuilder<kNoneSet> Create() { |
+ return DetachedParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ DetachedParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ DetachedParamsBuilder(DetachedParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct DetachedParamsBuilder<0>; |
+ |
+ DetachedParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef DetachedParamsBuilder<0> DetachedParams; |
+ |
+} // namespace inspector |
+ |
+namespace inspector { |
+template<int MASK> |
+struct TargetCrashedParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(TargetCrashedParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kNoneSet = kAllSet |
+ }; |
+ |
+ |
+ static TargetCrashedParamsBuilder<kNoneSet> Create() { |
+ return TargetCrashedParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ TargetCrashedParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ TargetCrashedParamsBuilder(TargetCrashedParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct TargetCrashedParamsBuilder<0>; |
+ |
+ TargetCrashedParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef TargetCrashedParamsBuilder<0> TargetCrashedParams; |
+ |
+} // namespace inspector |
+ |
+namespace inspector { |
+class InspectorHandler; |
+} // namespace domain |
+ |
+namespace inspector { |
+class Client : public DevToolsProtocolClient { |
+ public: |
+ Client(const RawMessageCallback& raw_message_callback); |
+ virtual ~Client(); |
+ |
+ void Detached( |
+ DetachedParams params); |
+ void TargetCrashed( |
+ TargetCrashedParams params); |
+}; |
+} // namespace inspector |
+ |
+namespace page { |
+typedef std::string FrameId; |
+} // namespace page |
+ |
+namespace page { |
+template<int MASK> |
+struct NavigationEntryBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(NavigationEntryBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kId = 1 << 0, |
+ kUrl = 1 << 1, |
+ kTitle = 1 << 2, |
+ kNoneSet = kId | kUrl | kTitle |
+ }; |
+ |
+ NavigationEntryBuilder<MASK & ~kId>& |
+ set_id(int id) { |
+ COMPILE_ASSERT(MASK & kId, already_set); |
+ dict_->SetInteger("id", id); |
+ return ThisAs<NavigationEntryBuilder<MASK & ~kId>>(); |
+ } |
+ |
+ NavigationEntryBuilder<MASK & ~kUrl>& |
+ set_url(const std::string& url) { |
+ COMPILE_ASSERT(MASK & kUrl, already_set); |
+ dict_->SetString("url", url); |
+ return ThisAs<NavigationEntryBuilder<MASK & ~kUrl>>(); |
+ } |
+ |
+ NavigationEntryBuilder<MASK & ~kTitle>& |
+ set_title(const std::string& title) { |
+ COMPILE_ASSERT(MASK & kTitle, already_set); |
+ dict_->SetString("title", title); |
+ return ThisAs<NavigationEntryBuilder<MASK & ~kTitle>>(); |
+ } |
+ |
+ static NavigationEntryBuilder<kNoneSet> Create() { |
+ return NavigationEntryBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ NavigationEntryBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ NavigationEntryBuilder(NavigationEntryBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct NavigationEntryBuilder<0>; |
+ |
+ NavigationEntryBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef NavigationEntryBuilder<0> NavigationEntry; |
+ |
+} // namespace page |
+ |
+namespace page { |
+template<int MASK> |
+struct CaptureScreenshotResponseBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(CaptureScreenshotResponseBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kData = 1 << 0, |
+ kNoneSet = kData |
+ }; |
+ |
+ CaptureScreenshotResponseBuilder<MASK & ~kData>& |
+ set_data(const std::string& data) { |
+ COMPILE_ASSERT(MASK & kData, already_set); |
+ dict_->SetString("data", data); |
+ return ThisAs<CaptureScreenshotResponseBuilder<MASK & ~kData>>(); |
+ } |
+ |
+ static CaptureScreenshotResponseBuilder<kNoneSet> Create() { |
+ return CaptureScreenshotResponseBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ CaptureScreenshotResponseBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ CaptureScreenshotResponseBuilder(CaptureScreenshotResponseBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct CaptureScreenshotResponseBuilder<0>; |
+ |
+ CaptureScreenshotResponseBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef CaptureScreenshotResponseBuilder<0> CaptureScreenshotResponse; |
+ |
+} // namespace page |
+ |
+namespace page { |
+namespace start_screencast { |
+extern const char kFormatJpeg[]; |
+extern const char kFormatPng[]; |
+} // namespace start_screencast |
+} // namespace page |
+ |
+namespace page { |
+template<int MASK> |
+struct QuotaBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(QuotaBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kTemporary = 1 << 0, |
+ kPersistent = 1 << 1, |
+ kNoneSet = kTemporary | kPersistent |
+ }; |
+ |
+ QuotaBuilder<MASK & ~kTemporary>& |
+ set_temporary(double temporary) { |
+ COMPILE_ASSERT(MASK & kTemporary, already_set); |
+ dict_->SetDouble("temporary", temporary); |
+ return ThisAs<QuotaBuilder<MASK & ~kTemporary>>(); |
+ } |
+ |
+ QuotaBuilder<MASK & ~kPersistent>& |
+ set_persistent(double persistent) { |
+ COMPILE_ASSERT(MASK & kPersistent, already_set); |
+ dict_->SetDouble("persistent", persistent); |
+ return ThisAs<QuotaBuilder<MASK & ~kPersistent>>(); |
+ } |
+ |
+ static QuotaBuilder<kNoneSet> Create() { |
+ return QuotaBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ QuotaBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ QuotaBuilder(QuotaBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct QuotaBuilder<0>; |
+ |
+ QuotaBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef QuotaBuilder<0> Quota; |
+ |
+} // namespace page |
+ |
+namespace page { |
+namespace usage_item { |
+extern const char kIdFilesystem[]; |
+extern const char kIdDatabase[]; |
+extern const char kIdAppcache[]; |
+extern const char kIdIndexeddatabase[]; |
+} // namespace usage_item |
+} // namespace page |
+ |
+namespace page { |
+template<int MASK> |
+struct UsageItemBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(UsageItemBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kId = 1 << 0, |
+ kValue = 1 << 1, |
+ kNoneSet = kId | kValue |
+ }; |
+ |
+ UsageItemBuilder<MASK & ~kId>& |
+ set_id(const std::string& id) { |
+ COMPILE_ASSERT(MASK & kId, already_set); |
+ dict_->SetString("id", id); |
+ return ThisAs<UsageItemBuilder<MASK & ~kId>>(); |
+ } |
+ |
+ UsageItemBuilder<MASK & ~kValue>& |
+ set_value(double value) { |
+ COMPILE_ASSERT(MASK & kValue, already_set); |
+ dict_->SetDouble("value", value); |
+ return ThisAs<UsageItemBuilder<MASK & ~kValue>>(); |
+ } |
+ |
+ static UsageItemBuilder<kNoneSet> Create() { |
+ return UsageItemBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ UsageItemBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ UsageItemBuilder(UsageItemBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct UsageItemBuilder<0>; |
+ |
+ UsageItemBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef UsageItemBuilder<0> UsageItem; |
+ |
+} // namespace page |
+ |
+namespace page { |
+template<int MASK> |
+struct UsageBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(UsageBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kTemporary = 1 << 0, |
+ kPersistent = 1 << 1, |
+ kSyncable = 1 << 2, |
+ kNoneSet = kTemporary | kPersistent | kSyncable |
+ }; |
+ |
+ UsageBuilder<MASK & ~kTemporary>& |
+ set_temporary(devtools::ListBuilder<devtools::page::UsageItem> temporary) { |
+ COMPILE_ASSERT(MASK & kTemporary, already_set); |
+ dict_->Set("temporary", |
+ devtools::ListBuilder<devtools::page::UsageItem>::ToValue(temporary.Pass()).release()); |
+ return ThisAs<UsageBuilder<MASK & ~kTemporary>>(); |
+ } |
+ |
+ UsageBuilder<MASK & ~kPersistent>& |
+ set_persistent(devtools::ListBuilder<devtools::page::UsageItem> persistent) { |
+ COMPILE_ASSERT(MASK & kPersistent, already_set); |
+ dict_->Set("persistent", |
+ devtools::ListBuilder<devtools::page::UsageItem>::ToValue(persistent.Pass()).release()); |
+ return ThisAs<UsageBuilder<MASK & ~kPersistent>>(); |
+ } |
+ |
+ UsageBuilder<MASK & ~kSyncable>& |
+ set_syncable(devtools::ListBuilder<devtools::page::UsageItem> syncable) { |
+ COMPILE_ASSERT(MASK & kSyncable, already_set); |
+ dict_->Set("syncable", |
+ devtools::ListBuilder<devtools::page::UsageItem>::ToValue(syncable.Pass()).release()); |
+ return ThisAs<UsageBuilder<MASK & ~kSyncable>>(); |
+ } |
+ |
+ static UsageBuilder<kNoneSet> Create() { |
+ return UsageBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ UsageBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ UsageBuilder(UsageBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct UsageBuilder<0>; |
+ |
+ UsageBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef UsageBuilder<0> Usage; |
+ |
+} // namespace page |
+ |
+namespace page { |
+template<int MASK> |
+struct QueryUsageAndQuotaResponseBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(QueryUsageAndQuotaResponseBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kQuota = 1 << 0, |
+ kUsage = 1 << 1, |
+ kNoneSet = kQuota | kUsage |
+ }; |
+ |
+ QueryUsageAndQuotaResponseBuilder<MASK & ~kQuota>& |
+ set_quota(devtools::page::Quota quota) { |
+ COMPILE_ASSERT(MASK & kQuota, already_set); |
+ dict_->Set("quota", |
+ devtools::page::Quota::ToValue(quota.Pass()).release()); |
+ return ThisAs<QueryUsageAndQuotaResponseBuilder<MASK & ~kQuota>>(); |
+ } |
+ |
+ QueryUsageAndQuotaResponseBuilder<MASK & ~kUsage>& |
+ set_usage(devtools::page::Usage usage) { |
+ COMPILE_ASSERT(MASK & kUsage, already_set); |
+ dict_->Set("usage", |
+ devtools::page::Usage::ToValue(usage.Pass()).release()); |
+ return ThisAs<QueryUsageAndQuotaResponseBuilder<MASK & ~kUsage>>(); |
+ } |
+ |
+ static QueryUsageAndQuotaResponseBuilder<kNoneSet> Create() { |
+ return QueryUsageAndQuotaResponseBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ QueryUsageAndQuotaResponseBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ QueryUsageAndQuotaResponseBuilder(QueryUsageAndQuotaResponseBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct QueryUsageAndQuotaResponseBuilder<0>; |
+ |
+ QueryUsageAndQuotaResponseBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef QueryUsageAndQuotaResponseBuilder<0> QueryUsageAndQuotaResponse; |
+ |
+} // namespace page |
+ |
+namespace dom { |
+template<int MASK> |
+struct RectBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(RectBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kX = 1 << 0, |
+ kY = 1 << 1, |
+ kWidth = 1 << 2, |
+ kHeight = 1 << 3, |
+ kNoneSet = kX | kY | kWidth | kHeight |
+ }; |
+ |
+ RectBuilder<MASK & ~kX>& |
+ set_x(double x) { |
+ COMPILE_ASSERT(MASK & kX, already_set); |
+ dict_->SetDouble("x", x); |
+ return ThisAs<RectBuilder<MASK & ~kX>>(); |
+ } |
+ |
+ RectBuilder<MASK & ~kY>& |
+ set_y(double y) { |
+ COMPILE_ASSERT(MASK & kY, already_set); |
+ dict_->SetDouble("y", y); |
+ return ThisAs<RectBuilder<MASK & ~kY>>(); |
+ } |
+ |
+ RectBuilder<MASK & ~kWidth>& |
+ set_width(double width) { |
+ COMPILE_ASSERT(MASK & kWidth, already_set); |
+ dict_->SetDouble("width", width); |
+ return ThisAs<RectBuilder<MASK & ~kWidth>>(); |
+ } |
+ |
+ RectBuilder<MASK & ~kHeight>& |
+ set_height(double height) { |
+ COMPILE_ASSERT(MASK & kHeight, already_set); |
+ dict_->SetDouble("height", height); |
+ return ThisAs<RectBuilder<MASK & ~kHeight>>(); |
+ } |
+ |
+ static RectBuilder<kNoneSet> Create() { |
+ return RectBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ RectBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ RectBuilder(RectBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct RectBuilder<0>; |
+ |
+ RectBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef RectBuilder<0> Rect; |
+ |
+} // namespace dom |
+ |
+namespace page { |
+template<int MASK> |
+struct ScreencastFrameMetadataBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(ScreencastFrameMetadataBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kDeviceScaleFactor = 1 << 0, |
+ kViewport = 1 << 1, |
+ kPageScaleFactor = 1 << 2, |
+ kPageScaleFactorMin = 1 << 3, |
+ kPageScaleFactorMax = 1 << 4, |
+ kDeviceWidth = 1 << 5, |
+ kDeviceHeight = 1 << 6, |
+ kScrollOffsetX = 1 << 7, |
+ kScrollOffsetY = 1 << 8, |
+ kNoneSet = kDeviceScaleFactor | kViewport | kPageScaleFactor | kPageScaleFactorMin | kPageScaleFactorMax | kDeviceWidth | kDeviceHeight | kScrollOffsetX | kScrollOffsetY |
+ }; |
+ |
+ ScreencastFrameMetadataBuilder<MASK & ~kDeviceScaleFactor>& |
+ set_device_scale_factor(double device_scale_factor) { |
+ COMPILE_ASSERT(MASK & kDeviceScaleFactor, already_set); |
+ dict_->SetDouble("deviceScaleFactor", device_scale_factor); |
+ return ThisAs<ScreencastFrameMetadataBuilder<MASK & ~kDeviceScaleFactor>>(); |
+ } |
+ |
+ ScreencastFrameMetadataBuilder<MASK & ~kViewport>& |
+ set_viewport(devtools::dom::Rect viewport) { |
+ COMPILE_ASSERT(MASK & kViewport, already_set); |
+ dict_->Set("viewport", |
+ devtools::dom::Rect::ToValue(viewport.Pass()).release()); |
+ return ThisAs<ScreencastFrameMetadataBuilder<MASK & ~kViewport>>(); |
+ } |
+ |
+ ScreencastFrameMetadataBuilder<MASK>& |
+ set_offset_top(double offset_top) { |
+ dict_->SetDouble("offsetTop", offset_top); |
+ return *this; |
+ } |
+ |
+ ScreencastFrameMetadataBuilder<MASK>& |
+ set_offset_bottom(double offset_bottom) { |
+ dict_->SetDouble("offsetBottom", offset_bottom); |
+ return *this; |
+ } |
+ |
+ ScreencastFrameMetadataBuilder<MASK & ~kPageScaleFactor>& |
+ set_page_scale_factor(double page_scale_factor) { |
+ COMPILE_ASSERT(MASK & kPageScaleFactor, already_set); |
+ dict_->SetDouble("pageScaleFactor", page_scale_factor); |
+ return ThisAs<ScreencastFrameMetadataBuilder<MASK & ~kPageScaleFactor>>(); |
+ } |
+ |
+ ScreencastFrameMetadataBuilder<MASK & ~kPageScaleFactorMin>& |
+ set_page_scale_factor_min(double page_scale_factor_min) { |
+ COMPILE_ASSERT(MASK & kPageScaleFactorMin, already_set); |
+ dict_->SetDouble("pageScaleFactorMin", page_scale_factor_min); |
+ return ThisAs<ScreencastFrameMetadataBuilder<MASK & ~kPageScaleFactorMin>>(); |
+ } |
+ |
+ ScreencastFrameMetadataBuilder<MASK & ~kPageScaleFactorMax>& |
+ set_page_scale_factor_max(double page_scale_factor_max) { |
+ COMPILE_ASSERT(MASK & kPageScaleFactorMax, already_set); |
+ dict_->SetDouble("pageScaleFactorMax", page_scale_factor_max); |
+ return ThisAs<ScreencastFrameMetadataBuilder<MASK & ~kPageScaleFactorMax>>(); |
+ } |
+ |
+ ScreencastFrameMetadataBuilder<MASK & ~kDeviceWidth>& |
+ set_device_width(double device_width) { |
+ COMPILE_ASSERT(MASK & kDeviceWidth, already_set); |
+ dict_->SetDouble("deviceWidth", device_width); |
+ return ThisAs<ScreencastFrameMetadataBuilder<MASK & ~kDeviceWidth>>(); |
+ } |
+ |
+ ScreencastFrameMetadataBuilder<MASK & ~kDeviceHeight>& |
+ set_device_height(double device_height) { |
+ COMPILE_ASSERT(MASK & kDeviceHeight, already_set); |
+ dict_->SetDouble("deviceHeight", device_height); |
+ return ThisAs<ScreencastFrameMetadataBuilder<MASK & ~kDeviceHeight>>(); |
+ } |
+ |
+ ScreencastFrameMetadataBuilder<MASK & ~kScrollOffsetX>& |
+ set_scroll_offset_x(double scroll_offset_x) { |
+ COMPILE_ASSERT(MASK & kScrollOffsetX, already_set); |
+ dict_->SetDouble("scrollOffsetX", scroll_offset_x); |
+ return ThisAs<ScreencastFrameMetadataBuilder<MASK & ~kScrollOffsetX>>(); |
+ } |
+ |
+ ScreencastFrameMetadataBuilder<MASK & ~kScrollOffsetY>& |
+ set_scroll_offset_y(double scroll_offset_y) { |
+ COMPILE_ASSERT(MASK & kScrollOffsetY, already_set); |
+ dict_->SetDouble("scrollOffsetY", scroll_offset_y); |
+ return ThisAs<ScreencastFrameMetadataBuilder<MASK & ~kScrollOffsetY>>(); |
+ } |
+ |
+ static ScreencastFrameMetadataBuilder<kNoneSet> Create() { |
+ return ScreencastFrameMetadataBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ ScreencastFrameMetadataBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ ScreencastFrameMetadataBuilder(ScreencastFrameMetadataBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct ScreencastFrameMetadataBuilder<0>; |
+ |
+ ScreencastFrameMetadataBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef ScreencastFrameMetadataBuilder<0> ScreencastFrameMetadata; |
+ |
+} // namespace page |
+ |
+namespace page { |
+template<int MASK> |
+struct ScreencastFrameParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(ScreencastFrameParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kData = 1 << 0, |
+ kMetadata = 1 << 1, |
+ kNoneSet = kData | kMetadata |
+ }; |
+ |
+ ScreencastFrameParamsBuilder<MASK & ~kData>& |
+ set_data(const std::string& data) { |
+ COMPILE_ASSERT(MASK & kData, already_set); |
+ dict_->SetString("data", data); |
+ return ThisAs<ScreencastFrameParamsBuilder<MASK & ~kData>>(); |
+ } |
+ |
+ ScreencastFrameParamsBuilder<MASK & ~kMetadata>& |
+ set_metadata(devtools::page::ScreencastFrameMetadata metadata) { |
+ COMPILE_ASSERT(MASK & kMetadata, already_set); |
+ dict_->Set("metadata", |
+ devtools::page::ScreencastFrameMetadata::ToValue(metadata.Pass()).release()); |
+ return ThisAs<ScreencastFrameParamsBuilder<MASK & ~kMetadata>>(); |
+ } |
+ |
+ static ScreencastFrameParamsBuilder<kNoneSet> Create() { |
+ return ScreencastFrameParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ ScreencastFrameParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ ScreencastFrameParamsBuilder(ScreencastFrameParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct ScreencastFrameParamsBuilder<0>; |
+ |
+ ScreencastFrameParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef ScreencastFrameParamsBuilder<0> ScreencastFrameParams; |
+ |
+} // namespace page |
+ |
+namespace page { |
+template<int MASK> |
+struct ScreencastVisibilityChangedParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(ScreencastVisibilityChangedParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kVisible = 1 << 0, |
+ kNoneSet = kVisible |
+ }; |
+ |
+ ScreencastVisibilityChangedParamsBuilder<MASK & ~kVisible>& |
+ set_visible(bool visible) { |
+ COMPILE_ASSERT(MASK & kVisible, already_set); |
+ dict_->SetBoolean("visible", visible); |
+ return ThisAs<ScreencastVisibilityChangedParamsBuilder<MASK & ~kVisible>>(); |
+ } |
+ |
+ static ScreencastVisibilityChangedParamsBuilder<kNoneSet> Create() { |
+ return ScreencastVisibilityChangedParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ ScreencastVisibilityChangedParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ ScreencastVisibilityChangedParamsBuilder(ScreencastVisibilityChangedParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct ScreencastVisibilityChangedParamsBuilder<0>; |
+ |
+ ScreencastVisibilityChangedParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef ScreencastVisibilityChangedParamsBuilder<0> ScreencastVisibilityChangedParams; |
+ |
+} // namespace page |
+ |
+namespace dom { |
+template<int MASK> |
+struct RGBABuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(RGBABuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kR = 1 << 0, |
+ kG = 1 << 1, |
+ kB = 1 << 2, |
+ kNoneSet = kR | kG | kB |
+ }; |
+ |
+ RGBABuilder<MASK & ~kR>& |
+ set_r(int r) { |
+ COMPILE_ASSERT(MASK & kR, already_set); |
+ dict_->SetInteger("r", r); |
+ return ThisAs<RGBABuilder<MASK & ~kR>>(); |
+ } |
+ |
+ RGBABuilder<MASK & ~kG>& |
+ set_g(int g) { |
+ COMPILE_ASSERT(MASK & kG, already_set); |
+ dict_->SetInteger("g", g); |
+ return ThisAs<RGBABuilder<MASK & ~kG>>(); |
+ } |
+ |
+ RGBABuilder<MASK & ~kB>& |
+ set_b(int b) { |
+ COMPILE_ASSERT(MASK & kB, already_set); |
+ dict_->SetInteger("b", b); |
+ return ThisAs<RGBABuilder<MASK & ~kB>>(); |
+ } |
+ |
+ RGBABuilder<MASK>& |
+ set_a(double a) { |
+ dict_->SetDouble("a", a); |
+ return *this; |
+ } |
+ |
+ static RGBABuilder<kNoneSet> Create() { |
+ return RGBABuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ RGBABuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ RGBABuilder(RGBABuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct RGBABuilder<0>; |
+ |
+ RGBABuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef RGBABuilder<0> RGBA; |
+ |
+} // namespace dom |
+ |
+namespace page { |
+template<int MASK> |
+struct ColorPickedParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(ColorPickedParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kColor = 1 << 0, |
+ kNoneSet = kColor |
+ }; |
+ |
+ ColorPickedParamsBuilder<MASK & ~kColor>& |
+ set_color(devtools::dom::RGBA color) { |
+ COMPILE_ASSERT(MASK & kColor, already_set); |
+ dict_->Set("color", |
+ devtools::dom::RGBA::ToValue(color.Pass()).release()); |
+ return ThisAs<ColorPickedParamsBuilder<MASK & ~kColor>>(); |
+ } |
+ |
+ static ColorPickedParamsBuilder<kNoneSet> Create() { |
+ return ColorPickedParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ ColorPickedParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ ColorPickedParamsBuilder(ColorPickedParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct ColorPickedParamsBuilder<0>; |
+ |
+ ColorPickedParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef ColorPickedParamsBuilder<0> ColorPickedParams; |
+ |
+} // namespace page |
+ |
+namespace page { |
+template<int MASK> |
+struct InterstitialShownParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(InterstitialShownParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kNoneSet = kAllSet |
+ }; |
+ |
+ |
+ static InterstitialShownParamsBuilder<kNoneSet> Create() { |
+ return InterstitialShownParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ InterstitialShownParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ InterstitialShownParamsBuilder(InterstitialShownParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct InterstitialShownParamsBuilder<0>; |
+ |
+ InterstitialShownParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef InterstitialShownParamsBuilder<0> InterstitialShownParams; |
+ |
+} // namespace page |
+ |
+namespace page { |
+template<int MASK> |
+struct InterstitialHiddenParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(InterstitialHiddenParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kNoneSet = kAllSet |
+ }; |
+ |
+ |
+ static InterstitialHiddenParamsBuilder<kNoneSet> Create() { |
+ return InterstitialHiddenParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ InterstitialHiddenParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ InterstitialHiddenParamsBuilder(InterstitialHiddenParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct InterstitialHiddenParamsBuilder<0>; |
+ |
+ InterstitialHiddenParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef InterstitialHiddenParamsBuilder<0> InterstitialHiddenParams; |
+ |
+} // namespace page |
+ |
+namespace page { |
+class PageHandler; |
+} // namespace domain |
+ |
+namespace page { |
+class Client : public DevToolsProtocolClient { |
+ public: |
+ Client(const RawMessageCallback& raw_message_callback); |
+ virtual ~Client(); |
+ |
+ void SendCaptureScreenshotResponse( |
+ scoped_refptr<DevToolsProtocol::Command> command, |
+ CaptureScreenshotResponse params); |
+ void SendQueryUsageAndQuotaResponse( |
+ scoped_refptr<DevToolsProtocol::Command> command, |
+ QueryUsageAndQuotaResponse params); |
+ void ScreencastFrame( |
+ ScreencastFrameParams params); |
+ void ScreencastVisibilityChanged( |
+ ScreencastVisibilityChangedParams params); |
+ void ColorPicked( |
+ ColorPickedParams params); |
+ void InterstitialShown( |
+ InterstitialShownParams params); |
+ void InterstitialHidden( |
+ InterstitialHiddenParams params); |
+}; |
+} // namespace page |
+ |
+namespace network { |
+class NetworkHandler; |
+} // namespace domain |
+ |
+namespace dom { |
+typedef int NodeId; |
+} // namespace dom |
+ |
+namespace dom { |
+class DOMHandler; |
+} // namespace domain |
+ |
+namespace worker { |
+template<int MASK> |
+struct DisconnectedFromWorkerParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(DisconnectedFromWorkerParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kNoneSet = kAllSet |
+ }; |
+ |
+ |
+ static DisconnectedFromWorkerParamsBuilder<kNoneSet> Create() { |
+ return DisconnectedFromWorkerParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ DisconnectedFromWorkerParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ DisconnectedFromWorkerParamsBuilder(DisconnectedFromWorkerParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct DisconnectedFromWorkerParamsBuilder<0>; |
+ |
+ DisconnectedFromWorkerParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef DisconnectedFromWorkerParamsBuilder<0> DisconnectedFromWorkerParams; |
+ |
+} // namespace worker |
+ |
+namespace worker { |
+class WorkerHandler; |
+} // namespace domain |
+ |
+namespace worker { |
+class Client : public DevToolsProtocolClient { |
+ public: |
+ Client(const RawMessageCallback& raw_message_callback); |
+ virtual ~Client(); |
+ |
+ void DisconnectedFromWorker( |
+ DisconnectedFromWorkerParams params); |
+}; |
+} // namespace worker |
+ |
+namespace input { |
+namespace emulate_touch_from_mouse_event { |
+extern const char kTypeMousePressed[]; |
+extern const char kTypeMouseReleased[]; |
+extern const char kTypeMouseMoved[]; |
+extern const char kTypeMouseWheel[]; |
+} // namespace emulate_touch_from_mouse_event |
+} // namespace input |
+ |
+namespace input { |
+namespace emulate_touch_from_mouse_event { |
+extern const char kButtonNone[]; |
+extern const char kButtonLeft[]; |
+extern const char kButtonMiddle[]; |
+extern const char kButtonRight[]; |
+} // namespace emulate_touch_from_mouse_event |
+} // namespace input |
+ |
+namespace input { |
+class InputHandler; |
+} // namespace domain |
+ |
+namespace tracing { |
+template<int MASK> |
+struct StartResponseBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(StartResponseBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kNoneSet = kAllSet |
+ }; |
+ |
+ |
+ static StartResponseBuilder<kNoneSet> Create() { |
+ return StartResponseBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ StartResponseBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ StartResponseBuilder(StartResponseBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct StartResponseBuilder<0>; |
+ |
+ StartResponseBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef StartResponseBuilder<0> StartResponse; |
+ |
+} // namespace tracing |
+ |
+namespace tracing { |
+template<int MASK> |
+struct EndResponseBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(EndResponseBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kNoneSet = kAllSet |
+ }; |
+ |
+ |
+ static EndResponseBuilder<kNoneSet> Create() { |
+ return EndResponseBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ EndResponseBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ EndResponseBuilder(EndResponseBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct EndResponseBuilder<0>; |
+ |
+ EndResponseBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef EndResponseBuilder<0> EndResponse; |
+ |
+} // namespace tracing |
+ |
+namespace tracing { |
+template<int MASK> |
+struct GetCategoriesResponseBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(GetCategoriesResponseBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kCategories = 1 << 0, |
+ kNoneSet = kCategories |
+ }; |
+ |
+ GetCategoriesResponseBuilder<MASK & ~kCategories>& |
+ set_categories(devtools::ListBuilder<std::string> categories) { |
+ COMPILE_ASSERT(MASK & kCategories, already_set); |
+ dict_->Set("categories", |
+ devtools::ListBuilder<std::string>::ToValue(categories.Pass()).release()); |
+ return ThisAs<GetCategoriesResponseBuilder<MASK & ~kCategories>>(); |
+ } |
+ |
+ static GetCategoriesResponseBuilder<kNoneSet> Create() { |
+ return GetCategoriesResponseBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ GetCategoriesResponseBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ GetCategoriesResponseBuilder(GetCategoriesResponseBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct GetCategoriesResponseBuilder<0>; |
+ |
+ GetCategoriesResponseBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef GetCategoriesResponseBuilder<0> GetCategoriesResponse; |
+ |
+} // namespace tracing |
+ |
+namespace tracing { |
+template<int MASK> |
+struct DataCollectedParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(DataCollectedParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kValue = 1 << 0, |
+ kNoneSet = kValue |
+ }; |
+ |
+ DataCollectedParamsBuilder<MASK & ~kValue>& |
+ set_value(devtools::ListBuilder<base::DictionaryValue> value) { |
+ COMPILE_ASSERT(MASK & kValue, already_set); |
+ dict_->Set("value", |
+ devtools::ListBuilder<base::DictionaryValue>::ToValue(value.Pass()).release()); |
+ return ThisAs<DataCollectedParamsBuilder<MASK & ~kValue>>(); |
+ } |
+ |
+ static DataCollectedParamsBuilder<kNoneSet> Create() { |
+ return DataCollectedParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ DataCollectedParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ DataCollectedParamsBuilder(DataCollectedParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct DataCollectedParamsBuilder<0>; |
+ |
+ DataCollectedParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef DataCollectedParamsBuilder<0> DataCollectedParams; |
+ |
+} // namespace tracing |
+ |
+namespace tracing { |
+template<int MASK> |
+struct TracingCompleteParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(TracingCompleteParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kNoneSet = kAllSet |
+ }; |
+ |
+ |
+ static TracingCompleteParamsBuilder<kNoneSet> Create() { |
+ return TracingCompleteParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ TracingCompleteParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ TracingCompleteParamsBuilder(TracingCompleteParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct TracingCompleteParamsBuilder<0>; |
+ |
+ TracingCompleteParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef TracingCompleteParamsBuilder<0> TracingCompleteParams; |
+ |
+} // namespace tracing |
+ |
+namespace tracing { |
+template<int MASK> |
+struct BufferUsageParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(BufferUsageParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kValue = 1 << 0, |
+ kNoneSet = kValue |
+ }; |
+ |
+ BufferUsageParamsBuilder<MASK & ~kValue>& |
+ set_value(double value) { |
+ COMPILE_ASSERT(MASK & kValue, already_set); |
+ dict_->SetDouble("value", value); |
+ return ThisAs<BufferUsageParamsBuilder<MASK & ~kValue>>(); |
+ } |
+ |
+ static BufferUsageParamsBuilder<kNoneSet> Create() { |
+ return BufferUsageParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ BufferUsageParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ BufferUsageParamsBuilder(BufferUsageParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct BufferUsageParamsBuilder<0>; |
+ |
+ BufferUsageParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef BufferUsageParamsBuilder<0> BufferUsageParams; |
+ |
+} // namespace tracing |
+ |
+namespace tracing { |
+class TracingHandler; |
+} // namespace domain |
+ |
+namespace tracing { |
+class Client : public DevToolsProtocolClient { |
+ public: |
+ Client(const RawMessageCallback& raw_message_callback); |
+ virtual ~Client(); |
+ |
+ void SendStartResponse( |
+ scoped_refptr<DevToolsProtocol::Command> command, |
+ StartResponse params); |
+ void SendEndResponse( |
+ scoped_refptr<DevToolsProtocol::Command> command, |
+ EndResponse params); |
+ void SendGetCategoriesResponse( |
+ scoped_refptr<DevToolsProtocol::Command> command, |
+ GetCategoriesResponse params); |
+ void DataCollected( |
+ DataCollectedParams params); |
+ void TracingComplete( |
+ TracingCompleteParams params); |
+ void BufferUsage( |
+ BufferUsageParams params); |
+}; |
+} // namespace tracing |
+ |
+namespace power { |
+namespace get_accuracy_level { |
+extern const char kResultHigh[]; |
+extern const char kResultModerate[]; |
+extern const char kResultLow[]; |
+} // namespace get_accuracy_level |
+} // namespace power |
+ |
+namespace power { |
+template<int MASK> |
+struct PowerEventBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(PowerEventBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kType = 1 << 0, |
+ kTimestamp = 1 << 1, |
+ kValue = 1 << 2, |
+ kNoneSet = kType | kTimestamp | kValue |
+ }; |
+ |
+ PowerEventBuilder<MASK & ~kType>& |
+ set_type(const std::string& type) { |
+ COMPILE_ASSERT(MASK & kType, already_set); |
+ dict_->SetString("type", type); |
+ return ThisAs<PowerEventBuilder<MASK & ~kType>>(); |
+ } |
+ |
+ PowerEventBuilder<MASK & ~kTimestamp>& |
+ set_timestamp(double timestamp) { |
+ COMPILE_ASSERT(MASK & kTimestamp, already_set); |
+ dict_->SetDouble("timestamp", timestamp); |
+ return ThisAs<PowerEventBuilder<MASK & ~kTimestamp>>(); |
+ } |
+ |
+ PowerEventBuilder<MASK & ~kValue>& |
+ set_value(double value) { |
+ COMPILE_ASSERT(MASK & kValue, already_set); |
+ dict_->SetDouble("value", value); |
+ return ThisAs<PowerEventBuilder<MASK & ~kValue>>(); |
+ } |
+ |
+ static PowerEventBuilder<kNoneSet> Create() { |
+ return PowerEventBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ PowerEventBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ PowerEventBuilder(PowerEventBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct PowerEventBuilder<0>; |
+ |
+ PowerEventBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef PowerEventBuilder<0> PowerEvent; |
+ |
+} // namespace power |
+ |
+namespace power { |
+template<int MASK> |
+struct DataAvailableParamsBuilder { |
+ MOVE_ONLY_TYPE_WITH_MOVE_CONSTRUCTOR_FOR_CPP_03(DataAvailableParamsBuilder) |
+ public: |
+ enum { |
+ kAllSet = 0, |
+ kValue = 1 << 0, |
+ kNoneSet = kValue |
+ }; |
+ |
+ DataAvailableParamsBuilder<MASK & ~kValue>& |
+ set_value(devtools::ListBuilder<devtools::power::PowerEvent> value) { |
+ COMPILE_ASSERT(MASK & kValue, already_set); |
+ dict_->Set("value", |
+ devtools::ListBuilder<devtools::power::PowerEvent>::ToValue(value.Pass()).release()); |
+ return ThisAs<DataAvailableParamsBuilder<MASK & ~kValue>>(); |
+ } |
+ |
+ static DataAvailableParamsBuilder<kNoneSet> Create() { |
+ return DataAvailableParamsBuilder<kNoneSet>(); |
+ } |
+ |
+ static scoped_ptr<base::DictionaryValue> ToValue( |
+ DataAvailableParamsBuilder src) { |
+ return src.dict_.Pass(); |
+ } |
+ |
+ DataAvailableParamsBuilder(DataAvailableParamsBuilder&& other) |
+ : dict_(other.dict_.Pass()) { |
+ } |
+ |
+ private: |
+ friend struct DataAvailableParamsBuilder<0>; |
+ |
+ DataAvailableParamsBuilder() : dict_(new base::DictionaryValue()) { |
+ } |
+ |
+ template<class T> T& ThisAs() { |
+ COMPILE_ASSERT(sizeof(*this) == sizeof(T), cannot_cast); |
+ return *reinterpret_cast<T*>(this); |
+ } |
+ |
+ scoped_ptr<base::DictionaryValue> dict_; |
+}; |
+ |
+typedef DataAvailableParamsBuilder<0> DataAvailableParams; |
+ |
+} // namespace power |
+ |
+namespace power { |
+class PowerHandler; |
+} // namespace domain |
+ |
+namespace power { |
+class Client : public DevToolsProtocolClient { |
+ public: |
+ Client(const RawMessageCallback& raw_message_callback); |
+ virtual ~Client(); |
+ |
+ void DataAvailable( |
+ DataAvailableParams params); |
+}; |
+} // namespace power |
+ |
+} // namespace devtools |
+ |
+class DevToolsProtocolHandlerImpl : public DevToolsProtocol::Handler { |
+ public: |
+ typedef DevToolsProtocolClient::Response Response; |
+ typedef DevToolsProtocolClient::ResponseStatus ResponseStatus; |
+ |
+ DevToolsProtocolHandlerImpl(); |
+ virtual ~DevToolsProtocolHandlerImpl(); |
+ |
+ void SetInspectorHandler( |
+ devtools::inspector::InspectorHandler* inspector_handler); |
+ void SetPageHandler( |
+ devtools::page::PageHandler* page_handler); |
+ void SetNetworkHandler( |
+ devtools::network::NetworkHandler* network_handler); |
+ void SetDOMHandler( |
+ devtools::dom::DOMHandler* dom_handler); |
+ void SetWorkerHandler( |
+ devtools::worker::WorkerHandler* worker_handler); |
+ void SetInputHandler( |
+ devtools::input::InputHandler* input_handler); |
+ void SetTracingHandler( |
+ devtools::tracing::TracingHandler* tracing_handler); |
+ void SetPowerHandler( |
+ devtools::power::PowerHandler* power_handler); |
+ |
+ private: |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageEnable( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageDisable( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageReload( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageNavigate( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageGetNavigationHistory( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageNavigateToHistoryEntry( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageSetGeolocationOverride( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageClearGeolocationOverride( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageSetTouchEmulationEnabled( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageCaptureScreenshot( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageCanScreencast( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageCanEmulate( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageStartScreencast( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageStopScreencast( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageHandleJavaScriptDialog( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageQueryUsageAndQuota( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPageSetColorPickerEnabled( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnNetworkClearBrowserCache( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnNetworkClearBrowserCookies( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnNetworkCanEmulateNetworkConditions( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnNetworkEmulateNetworkConditions( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnDOMSetFileInputFiles( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnWorkerDisconnectFromWorker( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnInputEmulateTouchFromMouseEvent( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnTracingStart( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnTracingEnd( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnTracingGetCategories( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPowerStart( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPowerEnd( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPowerCanProfilePower( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ scoped_refptr<DevToolsProtocol::Response> |
+ OnPowerGetAccuracyLevel( |
+ scoped_refptr<DevToolsProtocol::Command> command); |
+ |
+ devtools::inspector::InspectorHandler* inspector_handler_; |
+ devtools::page::PageHandler* page_handler_; |
+ devtools::network::NetworkHandler* network_handler_; |
+ devtools::dom::DOMHandler* dom_handler_; |
+ devtools::worker::WorkerHandler* worker_handler_; |
+ devtools::input::InputHandler* input_handler_; |
+ devtools::tracing::TracingHandler* tracing_handler_; |
+ devtools::power::PowerHandler* power_handler_; |
+}; |
+ |
+} // namespace content |
+ |
+#endif // CONTENT_BROWSER_DEVTOOLS_PROTOCOL_DEVTOOLS_PROTOCOL_HANDLER_IMPL_H_ |