Package for b21e6a334a
diff --git a/proto_gen/third_party/dom_distiller_js/dom_distiller_json_converter.h b/proto_gen/third_party/dom_distiller_js/dom_distiller_json_converter.h
deleted file mode 100644
index d95005e..0000000
--- a/proto_gen/third_party/dom_distiller_js/dom_distiller_json_converter.h
+++ /dev/null
@@ -1,783 +0,0 @@
-// GENERATED FILE
-// This file generated by DomDistillerJs protoc plugin.
-#include "third_party/dom_distiller_js/dom_distiller.pb.h"
-
-// proto dependencies
-
-// base dependencies
-#include "base/values.h"
-
-#include <memory>
-#include <string>
-#include <utility>
-
-namespace dom_distiller {
-  namespace proto {
-    namespace json {
-      class DistilledContent {
-       public:
-        static bool ReadFromValue(const base::Value* json, dom_distiller::proto::DistilledContent* message) {
-          const base::DictionaryValue* dict;
-          if (!json->GetAsDictionary(&dict)) goto error;
-          if (dict->HasKey("1")) {
-            std::string field_value;
-            if (!dict->GetString("1", &field_value)) {
-              goto error;
-            }
-            message->set_html(field_value);
-          }
-          return true;
-
-        error:
-          return false;
-        }
-
-        static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::DistilledContent& message) {
-          std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-          if (message.has_html()) {
-            dict->SetString("1", message.html());
-          }
-          return dict;
-        }
-      };
-
-      class PaginationInfo {
-       public:
-        static bool ReadFromValue(const base::Value* json, dom_distiller::proto::PaginationInfo* message) {
-          const base::DictionaryValue* dict;
-          if (!json->GetAsDictionary(&dict)) goto error;
-          if (dict->HasKey("1")) {
-            std::string field_value;
-            if (!dict->GetString("1", &field_value)) {
-              goto error;
-            }
-            message->set_next_page(field_value);
-          }
-          if (dict->HasKey("2")) {
-            std::string field_value;
-            if (!dict->GetString("2", &field_value)) {
-              goto error;
-            }
-            message->set_prev_page(field_value);
-          }
-          if (dict->HasKey("3")) {
-            std::string field_value;
-            if (!dict->GetString("3", &field_value)) {
-              goto error;
-            }
-            message->set_canonical_page(field_value);
-          }
-          return true;
-
-        error:
-          return false;
-        }
-
-        static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::PaginationInfo& message) {
-          std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-          if (message.has_next_page()) {
-            dict->SetString("1", message.next_page());
-          }
-          if (message.has_prev_page()) {
-            dict->SetString("2", message.prev_page());
-          }
-          if (message.has_canonical_page()) {
-            dict->SetString("3", message.canonical_page());
-          }
-          return dict;
-        }
-      };
-
-      class MarkupArticle {
-       public:
-        static bool ReadFromValue(const base::Value* json, dom_distiller::proto::MarkupArticle* message) {
-          const base::DictionaryValue* dict;
-          if (!json->GetAsDictionary(&dict)) goto error;
-          if (dict->HasKey("1")) {
-            std::string field_value;
-            if (!dict->GetString("1", &field_value)) {
-              goto error;
-            }
-            message->set_published_time(field_value);
-          }
-          if (dict->HasKey("2")) {
-            std::string field_value;
-            if (!dict->GetString("2", &field_value)) {
-              goto error;
-            }
-            message->set_modified_time(field_value);
-          }
-          if (dict->HasKey("3")) {
-            std::string field_value;
-            if (!dict->GetString("3", &field_value)) {
-              goto error;
-            }
-            message->set_expiration_time(field_value);
-          }
-          if (dict->HasKey("4")) {
-            std::string field_value;
-            if (!dict->GetString("4", &field_value)) {
-              goto error;
-            }
-            message->set_section(field_value);
-          }
-          if (dict->HasKey("5")) {
-            const base::ListValue* field_list;
-            if (!dict->GetList("5", &field_list)) {
-              goto error;
-            }
-            for (size_t i = 0; i < field_list->GetSize(); ++i) {
-              std::string field_value;
-              if (!field_list->GetString(i, &field_value)) {
-                goto error;
-              }
-              message->add_authors(field_value);
-            }
-          }
-          return true;
-
-        error:
-          return false;
-        }
-
-        static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::MarkupArticle& message) {
-          std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-          if (message.has_published_time()) {
-            dict->SetString("1", message.published_time());
-          }
-          if (message.has_modified_time()) {
-            dict->SetString("2", message.modified_time());
-          }
-          if (message.has_expiration_time()) {
-            dict->SetString("3", message.expiration_time());
-          }
-          if (message.has_section()) {
-            dict->SetString("4", message.section());
-          }
-          {
-            base::ListValue* field_list = new base::ListValue();
-            dict->Set("5", field_list);
-            for (int i = 0; i < message.authors_size(); ++i) {
-              field_list->AppendString(message.authors(i));
-            }
-          }
-          return dict;
-        }
-      };
-
-      class MarkupImage {
-       public:
-        static bool ReadFromValue(const base::Value* json, dom_distiller::proto::MarkupImage* message) {
-          const base::DictionaryValue* dict;
-          if (!json->GetAsDictionary(&dict)) goto error;
-          if (dict->HasKey("1")) {
-            std::string field_value;
-            if (!dict->GetString("1", &field_value)) {
-              goto error;
-            }
-            message->set_url(field_value);
-          }
-          if (dict->HasKey("2")) {
-            std::string field_value;
-            if (!dict->GetString("2", &field_value)) {
-              goto error;
-            }
-            message->set_secure_url(field_value);
-          }
-          if (dict->HasKey("3")) {
-            std::string field_value;
-            if (!dict->GetString("3", &field_value)) {
-              goto error;
-            }
-            message->set_type(field_value);
-          }
-          if (dict->HasKey("4")) {
-            std::string field_value;
-            if (!dict->GetString("4", &field_value)) {
-              goto error;
-            }
-            message->set_caption(field_value);
-          }
-          if (dict->HasKey("5")) {
-            int field_value;
-            if (!dict->GetInteger("5", &field_value)) {
-              goto error;
-            }
-            message->set_width(field_value);
-          }
-          if (dict->HasKey("6")) {
-            int field_value;
-            if (!dict->GetInteger("6", &field_value)) {
-              goto error;
-            }
-            message->set_height(field_value);
-          }
-          return true;
-
-        error:
-          return false;
-        }
-
-        static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::MarkupImage& message) {
-          std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-          if (message.has_url()) {
-            dict->SetString("1", message.url());
-          }
-          if (message.has_secure_url()) {
-            dict->SetString("2", message.secure_url());
-          }
-          if (message.has_type()) {
-            dict->SetString("3", message.type());
-          }
-          if (message.has_caption()) {
-            dict->SetString("4", message.caption());
-          }
-          if (message.has_width()) {
-            dict->SetInteger("5", message.width());
-          }
-          if (message.has_height()) {
-            dict->SetInteger("6", message.height());
-          }
-          return dict;
-        }
-      };
-
-      class MarkupInfo {
-       public:
-        static bool ReadFromValue(const base::Value* json, dom_distiller::proto::MarkupInfo* message) {
-          const base::DictionaryValue* dict;
-          if (!json->GetAsDictionary(&dict)) goto error;
-          if (dict->HasKey("1")) {
-            std::string field_value;
-            if (!dict->GetString("1", &field_value)) {
-              goto error;
-            }
-            message->set_title(field_value);
-          }
-          if (dict->HasKey("2")) {
-            std::string field_value;
-            if (!dict->GetString("2", &field_value)) {
-              goto error;
-            }
-            message->set_type(field_value);
-          }
-          if (dict->HasKey("3")) {
-            std::string field_value;
-            if (!dict->GetString("3", &field_value)) {
-              goto error;
-            }
-            message->set_url(field_value);
-          }
-          if (dict->HasKey("4")) {
-            std::string field_value;
-            if (!dict->GetString("4", &field_value)) {
-              goto error;
-            }
-            message->set_description(field_value);
-          }
-          if (dict->HasKey("5")) {
-            std::string field_value;
-            if (!dict->GetString("5", &field_value)) {
-              goto error;
-            }
-            message->set_publisher(field_value);
-          }
-          if (dict->HasKey("6")) {
-            std::string field_value;
-            if (!dict->GetString("6", &field_value)) {
-              goto error;
-            }
-            message->set_copyright(field_value);
-          }
-          if (dict->HasKey("7")) {
-            std::string field_value;
-            if (!dict->GetString("7", &field_value)) {
-              goto error;
-            }
-            message->set_author(field_value);
-          }
-          if (dict->HasKey("8")) {
-            const base::Value* inner_message_value;
-            if (!dict->Get("8", &inner_message_value)) {
-              goto error;
-            }
-            if (!dom_distiller::proto::json::MarkupArticle::ReadFromValue(inner_message_value, message->mutable_article())) {
-              goto error;
-            }
-          }
-          if (dict->HasKey("9")) {
-            const base::ListValue* field_list;
-            if (!dict->GetList("9", &field_list)) {
-              goto error;
-            }
-            for (size_t i = 0; i < field_list->GetSize(); ++i) {
-              const base::Value* inner_message_value;
-              if (!field_list->Get(i, &inner_message_value)) {
-                goto error;
-              }
-              if (!dom_distiller::proto::json::MarkupImage::ReadFromValue(inner_message_value, message->add_images())) {
-                goto error;
-              }
-            }
-          }
-          return true;
-
-        error:
-          return false;
-        }
-
-        static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::MarkupInfo& message) {
-          std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-          if (message.has_title()) {
-            dict->SetString("1", message.title());
-          }
-          if (message.has_type()) {
-            dict->SetString("2", message.type());
-          }
-          if (message.has_url()) {
-            dict->SetString("3", message.url());
-          }
-          if (message.has_description()) {
-            dict->SetString("4", message.description());
-          }
-          if (message.has_publisher()) {
-            dict->SetString("5", message.publisher());
-          }
-          if (message.has_copyright()) {
-            dict->SetString("6", message.copyright());
-          }
-          if (message.has_author()) {
-            dict->SetString("7", message.author());
-          }
-          if (message.has_article()) {
-            std::unique_ptr<base::Value> inner_message_value =
-                dom_distiller::proto::json::MarkupArticle::WriteToValue(message.article());
-            dict->Set("8", std::move(inner_message_value));
-          }
-          {
-            base::ListValue* field_list = new base::ListValue();
-            dict->Set("9", field_list);
-            for (int i = 0; i < message.images_size(); ++i) {
-              std::unique_ptr<base::Value> inner_message_value =
-                  dom_distiller::proto::json::MarkupImage::WriteToValue(message.images(i));
-              field_list->Append(std::move(inner_message_value));
-            }
-          }
-          return dict;
-        }
-      };
-
-      class TimingEntry {
-       public:
-        static bool ReadFromValue(const base::Value* json, dom_distiller::proto::TimingEntry* message) {
-          const base::DictionaryValue* dict;
-          if (!json->GetAsDictionary(&dict)) goto error;
-          if (dict->HasKey("1")) {
-            std::string field_value;
-            if (!dict->GetString("1", &field_value)) {
-              goto error;
-            }
-            message->set_name(field_value);
-          }
-          if (dict->HasKey("2")) {
-            double field_value;
-            if (!dict->GetDouble("2", &field_value)) {
-              goto error;
-            }
-            message->set_time(field_value);
-          }
-          return true;
-
-        error:
-          return false;
-        }
-
-        static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::TimingEntry& message) {
-          std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-          if (message.has_name()) {
-            dict->SetString("1", message.name());
-          }
-          if (message.has_time()) {
-            dict->SetDouble("2", message.time());
-          }
-          return dict;
-        }
-      };
-
-      class TimingInfo {
-       public:
-        static bool ReadFromValue(const base::Value* json, dom_distiller::proto::TimingInfo* message) {
-          const base::DictionaryValue* dict;
-          if (!json->GetAsDictionary(&dict)) goto error;
-          if (dict->HasKey("1")) {
-            double field_value;
-            if (!dict->GetDouble("1", &field_value)) {
-              goto error;
-            }
-            message->set_markup_parsing_time(field_value);
-          }
-          if (dict->HasKey("2")) {
-            double field_value;
-            if (!dict->GetDouble("2", &field_value)) {
-              goto error;
-            }
-            message->set_document_construction_time(field_value);
-          }
-          if (dict->HasKey("3")) {
-            double field_value;
-            if (!dict->GetDouble("3", &field_value)) {
-              goto error;
-            }
-            message->set_article_processing_time(field_value);
-          }
-          if (dict->HasKey("4")) {
-            double field_value;
-            if (!dict->GetDouble("4", &field_value)) {
-              goto error;
-            }
-            message->set_formatting_time(field_value);
-          }
-          if (dict->HasKey("5")) {
-            double field_value;
-            if (!dict->GetDouble("5", &field_value)) {
-              goto error;
-            }
-            message->set_total_time(field_value);
-          }
-          if (dict->HasKey("6")) {
-            const base::ListValue* field_list;
-            if (!dict->GetList("6", &field_list)) {
-              goto error;
-            }
-            for (size_t i = 0; i < field_list->GetSize(); ++i) {
-              const base::Value* inner_message_value;
-              if (!field_list->Get(i, &inner_message_value)) {
-                goto error;
-              }
-              if (!dom_distiller::proto::json::TimingEntry::ReadFromValue(inner_message_value, message->add_other_times())) {
-                goto error;
-              }
-            }
-          }
-          return true;
-
-        error:
-          return false;
-        }
-
-        static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::TimingInfo& message) {
-          std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-          if (message.has_markup_parsing_time()) {
-            dict->SetDouble("1", message.markup_parsing_time());
-          }
-          if (message.has_document_construction_time()) {
-            dict->SetDouble("2", message.document_construction_time());
-          }
-          if (message.has_article_processing_time()) {
-            dict->SetDouble("3", message.article_processing_time());
-          }
-          if (message.has_formatting_time()) {
-            dict->SetDouble("4", message.formatting_time());
-          }
-          if (message.has_total_time()) {
-            dict->SetDouble("5", message.total_time());
-          }
-          {
-            base::ListValue* field_list = new base::ListValue();
-            dict->Set("6", field_list);
-            for (int i = 0; i < message.other_times_size(); ++i) {
-              std::unique_ptr<base::Value> inner_message_value =
-                  dom_distiller::proto::json::TimingEntry::WriteToValue(message.other_times(i));
-              field_list->Append(std::move(inner_message_value));
-            }
-          }
-          return dict;
-        }
-      };
-
-      class DebugInfo {
-       public:
-        static bool ReadFromValue(const base::Value* json, dom_distiller::proto::DebugInfo* message) {
-          const base::DictionaryValue* dict;
-          if (!json->GetAsDictionary(&dict)) goto error;
-          if (dict->HasKey("1")) {
-            std::string field_value;
-            if (!dict->GetString("1", &field_value)) {
-              goto error;
-            }
-            message->set_log(field_value);
-          }
-          return true;
-
-        error:
-          return false;
-        }
-
-        static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::DebugInfo& message) {
-          std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-          if (message.has_log()) {
-            dict->SetString("1", message.log());
-          }
-          return dict;
-        }
-      };
-
-      class StatisticsInfo {
-       public:
-        static bool ReadFromValue(const base::Value* json, dom_distiller::proto::StatisticsInfo* message) {
-          const base::DictionaryValue* dict;
-          if (!json->GetAsDictionary(&dict)) goto error;
-          if (dict->HasKey("1")) {
-            int field_value;
-            if (!dict->GetInteger("1", &field_value)) {
-              goto error;
-            }
-            message->set_word_count(field_value);
-          }
-          return true;
-
-        error:
-          return false;
-        }
-
-        static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::StatisticsInfo& message) {
-          std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-          if (message.has_word_count()) {
-            dict->SetInteger("1", message.word_count());
-          }
-          return dict;
-        }
-      };
-
-      class DomDistillerResult {
-       public:
-        class ContentImage {
-         public:
-          static bool ReadFromValue(const base::Value* json, dom_distiller::proto::DomDistillerResult::ContentImage* message) {
-            const base::DictionaryValue* dict;
-            if (!json->GetAsDictionary(&dict)) goto error;
-            if (dict->HasKey("1")) {
-              std::string field_value;
-              if (!dict->GetString("1", &field_value)) {
-                goto error;
-              }
-              message->set_url(field_value);
-            }
-            return true;
-
-          error:
-            return false;
-          }
-
-          static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::DomDistillerResult::ContentImage& message) {
-            std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-            if (message.has_url()) {
-              dict->SetString("1", message.url());
-            }
-            return dict;
-          }
-        };
-
-        static bool ReadFromValue(const base::Value* json, dom_distiller::proto::DomDistillerResult* message) {
-          const base::DictionaryValue* dict;
-          if (!json->GetAsDictionary(&dict)) goto error;
-          if (dict->HasKey("1")) {
-            std::string field_value;
-            if (!dict->GetString("1", &field_value)) {
-              goto error;
-            }
-            message->set_title(field_value);
-          }
-          if (dict->HasKey("2")) {
-            const base::Value* inner_message_value;
-            if (!dict->Get("2", &inner_message_value)) {
-              goto error;
-            }
-            if (!dom_distiller::proto::json::DistilledContent::ReadFromValue(inner_message_value, message->mutable_distilled_content())) {
-              goto error;
-            }
-          }
-          if (dict->HasKey("3")) {
-            const base::Value* inner_message_value;
-            if (!dict->Get("3", &inner_message_value)) {
-              goto error;
-            }
-            if (!dom_distiller::proto::json::PaginationInfo::ReadFromValue(inner_message_value, message->mutable_pagination_info())) {
-              goto error;
-            }
-          }
-          if (dict->HasKey("5")) {
-            const base::Value* inner_message_value;
-            if (!dict->Get("5", &inner_message_value)) {
-              goto error;
-            }
-            if (!dom_distiller::proto::json::MarkupInfo::ReadFromValue(inner_message_value, message->mutable_markup_info())) {
-              goto error;
-            }
-          }
-          if (dict->HasKey("6")) {
-            const base::Value* inner_message_value;
-            if (!dict->Get("6", &inner_message_value)) {
-              goto error;
-            }
-            if (!dom_distiller::proto::json::TimingInfo::ReadFromValue(inner_message_value, message->mutable_timing_info())) {
-              goto error;
-            }
-          }
-          if (dict->HasKey("7")) {
-            const base::Value* inner_message_value;
-            if (!dict->Get("7", &inner_message_value)) {
-              goto error;
-            }
-            if (!dom_distiller::proto::json::DebugInfo::ReadFromValue(inner_message_value, message->mutable_debug_info())) {
-              goto error;
-            }
-          }
-          if (dict->HasKey("8")) {
-            const base::Value* inner_message_value;
-            if (!dict->Get("8", &inner_message_value)) {
-              goto error;
-            }
-            if (!dom_distiller::proto::json::StatisticsInfo::ReadFromValue(inner_message_value, message->mutable_statistics_info())) {
-              goto error;
-            }
-          }
-          if (dict->HasKey("9")) {
-            std::string field_value;
-            if (!dict->GetString("9", &field_value)) {
-              goto error;
-            }
-            message->set_text_direction(field_value);
-          }
-          if (dict->HasKey("10")) {
-            const base::ListValue* field_list;
-            if (!dict->GetList("10", &field_list)) {
-              goto error;
-            }
-            for (size_t i = 0; i < field_list->GetSize(); ++i) {
-              const base::Value* inner_message_value;
-              if (!field_list->Get(i, &inner_message_value)) {
-                goto error;
-              }
-              if (!dom_distiller::proto::json::DomDistillerResult::ContentImage::ReadFromValue(inner_message_value, message->add_content_images())) {
-                goto error;
-              }
-            }
-          }
-          return true;
-
-        error:
-          return false;
-        }
-
-        static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::DomDistillerResult& message) {
-          std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-          if (message.has_title()) {
-            dict->SetString("1", message.title());
-          }
-          if (message.has_distilled_content()) {
-            std::unique_ptr<base::Value> inner_message_value =
-                dom_distiller::proto::json::DistilledContent::WriteToValue(message.distilled_content());
-            dict->Set("2", std::move(inner_message_value));
-          }
-          if (message.has_pagination_info()) {
-            std::unique_ptr<base::Value> inner_message_value =
-                dom_distiller::proto::json::PaginationInfo::WriteToValue(message.pagination_info());
-            dict->Set("3", std::move(inner_message_value));
-          }
-          if (message.has_markup_info()) {
-            std::unique_ptr<base::Value> inner_message_value =
-                dom_distiller::proto::json::MarkupInfo::WriteToValue(message.markup_info());
-            dict->Set("5", std::move(inner_message_value));
-          }
-          if (message.has_timing_info()) {
-            std::unique_ptr<base::Value> inner_message_value =
-                dom_distiller::proto::json::TimingInfo::WriteToValue(message.timing_info());
-            dict->Set("6", std::move(inner_message_value));
-          }
-          if (message.has_debug_info()) {
-            std::unique_ptr<base::Value> inner_message_value =
-                dom_distiller::proto::json::DebugInfo::WriteToValue(message.debug_info());
-            dict->Set("7", std::move(inner_message_value));
-          }
-          if (message.has_statistics_info()) {
-            std::unique_ptr<base::Value> inner_message_value =
-                dom_distiller::proto::json::StatisticsInfo::WriteToValue(message.statistics_info());
-            dict->Set("8", std::move(inner_message_value));
-          }
-          if (message.has_text_direction()) {
-            dict->SetString("9", message.text_direction());
-          }
-          {
-            base::ListValue* field_list = new base::ListValue();
-            dict->Set("10", field_list);
-            for (int i = 0; i < message.content_images_size(); ++i) {
-              std::unique_ptr<base::Value> inner_message_value =
-                  dom_distiller::proto::json::DomDistillerResult::ContentImage::WriteToValue(message.content_images(i));
-              field_list->Append(std::move(inner_message_value));
-            }
-          }
-          return dict;
-        }
-      };
-
-      class DomDistillerOptions {
-       public:
-        static bool ReadFromValue(const base::Value* json, dom_distiller::proto::DomDistillerOptions* message) {
-          const base::DictionaryValue* dict;
-          if (!json->GetAsDictionary(&dict)) goto error;
-          if (dict->HasKey("1")) {
-            bool field_value;
-            if (!dict->GetBoolean("1", &field_value)) {
-              goto error;
-            }
-            message->set_extract_text_only(field_value);
-          }
-          if (dict->HasKey("2")) {
-            int field_value;
-            if (!dict->GetInteger("2", &field_value)) {
-              goto error;
-            }
-            message->set_debug_level(field_value);
-          }
-          if (dict->HasKey("3")) {
-            std::string field_value;
-            if (!dict->GetString("3", &field_value)) {
-              goto error;
-            }
-            message->set_original_url(field_value);
-          }
-          if (dict->HasKey("4")) {
-            std::string field_value;
-            if (!dict->GetString("4", &field_value)) {
-              goto error;
-            }
-            message->set_pagination_algo(field_value);
-          }
-          return true;
-
-        error:
-          return false;
-        }
-
-        static std::unique_ptr<base::DictionaryValue> WriteToValue(const dom_distiller::proto::DomDistillerOptions& message) {
-          std::unique_ptr<base::DictionaryValue> dict(new base::DictionaryValue());
-          if (message.has_extract_text_only()) {
-            dict->SetBoolean("1", message.extract_text_only());
-          }
-          if (message.has_debug_level()) {
-            dict->SetInteger("2", message.debug_level());
-          }
-          if (message.has_original_url()) {
-            dict->SetString("3", message.original_url());
-          }
-          if (message.has_pagination_algo()) {
-            dict->SetString("4", message.pagination_algo());
-          }
-          return dict;
-        }
-      };
-
-    }
-  }
-}
diff --git a/python/plugin_pb2.py b/python/plugin_pb2.py
new file mode 100644
index 0000000..77cc07a
--- /dev/null
+++ b/python/plugin_pb2.py
@@ -0,0 +1,166 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: google/protobuf/compiler/plugin.proto
+
+from google.protobuf import descriptor as _descriptor
+from google.protobuf import message as _message
+from google.protobuf import reflection as _reflection
+from google.protobuf import descriptor_pb2
+# @@protoc_insertion_point(imports)
+
+
+import google.protobuf.descriptor_pb2
+
+
+DESCRIPTOR = _descriptor.FileDescriptor(
+  name='google/protobuf/compiler/plugin.proto',
+  package='google.protobuf.compiler',
+  serialized_pb='\n%google/protobuf/compiler/plugin.proto\x12\x18google.protobuf.compiler\x1a google/protobuf/descriptor.proto\"}\n\x14\x43odeGeneratorRequest\x12\x18\n\x10\x66ile_to_generate\x18\x01 \x03(\t\x12\x11\n\tparameter\x18\x02 \x01(\t\x12\x38\n\nproto_file\x18\x0f \x03(\x0b\x32$.google.protobuf.FileDescriptorProto\"\xaa\x01\n\x15\x43odeGeneratorResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\x12\x42\n\x04\x66ile\x18\x0f \x03(\x0b\x32\x34.google.protobuf.compiler.CodeGeneratorResponse.File\x1a>\n\x04\x46ile\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0finsertion_point\x18\x02 \x01(\t\x12\x0f\n\x07\x63ontent\x18\x0f \x01(\tB,\n\x1c\x63om.google.protobuf.compilerB\x0cPluginProtos')
+
+
+
+
+_CODEGENERATORREQUEST = _descriptor.Descriptor(
+  name='CodeGeneratorRequest',
+  full_name='google.protobuf.compiler.CodeGeneratorRequest',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='file_to_generate', full_name='google.protobuf.compiler.CodeGeneratorRequest.file_to_generate', index=0,
+      number=1, type=9, cpp_type=9, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='parameter', full_name='google.protobuf.compiler.CodeGeneratorRequest.parameter', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=unicode("", "utf-8"),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='proto_file', full_name='google.protobuf.compiler.CodeGeneratorRequest.proto_file', index=2,
+      number=15, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  extension_ranges=[],
+  serialized_start=101,
+  serialized_end=226,
+)
+
+
+_CODEGENERATORRESPONSE_FILE = _descriptor.Descriptor(
+  name='File',
+  full_name='google.protobuf.compiler.CodeGeneratorResponse.File',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='name', full_name='google.protobuf.compiler.CodeGeneratorResponse.File.name', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=unicode("", "utf-8"),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='insertion_point', full_name='google.protobuf.compiler.CodeGeneratorResponse.File.insertion_point', index=1,
+      number=2, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=unicode("", "utf-8"),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='content', full_name='google.protobuf.compiler.CodeGeneratorResponse.File.content', index=2,
+      number=15, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=unicode("", "utf-8"),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  extension_ranges=[],
+  serialized_start=337,
+  serialized_end=399,
+)
+
+_CODEGENERATORRESPONSE = _descriptor.Descriptor(
+  name='CodeGeneratorResponse',
+  full_name='google.protobuf.compiler.CodeGeneratorResponse',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='error', full_name='google.protobuf.compiler.CodeGeneratorResponse.error', index=0,
+      number=1, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=unicode("", "utf-8"),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+    _descriptor.FieldDescriptor(
+      name='file', full_name='google.protobuf.compiler.CodeGeneratorResponse.file', index=1,
+      number=15, type=11, cpp_type=10, label=3,
+      has_default_value=False, default_value=[],
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None),
+  ],
+  extensions=[
+  ],
+  nested_types=[_CODEGENERATORRESPONSE_FILE, ],
+  enum_types=[
+  ],
+  options=None,
+  is_extendable=False,
+  extension_ranges=[],
+  serialized_start=229,
+  serialized_end=399,
+)
+
+_CODEGENERATORREQUEST.fields_by_name['proto_file'].message_type = google.protobuf.descriptor_pb2._FILEDESCRIPTORPROTO
+_CODEGENERATORRESPONSE_FILE.containing_type = _CODEGENERATORRESPONSE;
+_CODEGENERATORRESPONSE.fields_by_name['file'].message_type = _CODEGENERATORRESPONSE_FILE
+DESCRIPTOR.message_types_by_name['CodeGeneratorRequest'] = _CODEGENERATORREQUEST
+DESCRIPTOR.message_types_by_name['CodeGeneratorResponse'] = _CODEGENERATORRESPONSE
+
+class CodeGeneratorRequest(_message.Message):
+  __metaclass__ = _reflection.GeneratedProtocolMessageType
+  DESCRIPTOR = _CODEGENERATORREQUEST
+
+  # @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorRequest)
+
+class CodeGeneratorResponse(_message.Message):
+  __metaclass__ = _reflection.GeneratedProtocolMessageType
+
+  class File(_message.Message):
+    __metaclass__ = _reflection.GeneratedProtocolMessageType
+    DESCRIPTOR = _CODEGENERATORRESPONSE_FILE
+
+    # @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorResponse.File)
+  DESCRIPTOR = _CODEGENERATORRESPONSE
+
+  # @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorResponse)
+
+
+DESCRIPTOR.has_options = True
+DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), '\n\034com.google.protobuf.compilerB\014PluginProtos')
+# @@protoc_insertion_point(module_scope)