Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6061)

Unified Diff: chrome/common/libxml_utils.cc

Issue 10251004: Move libxml_utils from chrome/common to third_party/libxml/chromium. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: chromium/include/libxml/ --> chromium/. Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/common/libxml_utils.h ('k') | chrome/test/reliability/automated_ui_tests.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/libxml_utils.cc
diff --git a/chrome/common/libxml_utils.cc b/chrome/common/libxml_utils.cc
deleted file mode 100644
index 61d4237a0089f4b6a631111a41013dbe46978444..0000000000000000000000000000000000000000
--- a/chrome/common/libxml_utils.cc
+++ /dev/null
@@ -1,153 +0,0 @@
-// Copyright (c) 2009 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.
-
-#include "chrome/common/libxml_utils.h"
-
-#include "base/compiler_specific.h"
-#include "base/file_path.h"
-#include "base/logging.h"
-#include "base/stringprintf.h"
-#include "base/utf_string_conversions.h"
-
-#include "libxml/xmlreader.h"
-
-std::string XmlStringToStdString(const xmlChar* xmlstring) {
- // xmlChar*s are UTF-8, so this cast is safe.
- if (xmlstring)
- return std::string(reinterpret_cast<const char*>(xmlstring));
- else
- return "";
-}
-
-XmlReader::XmlReader()
- : reader_(NULL),
- ALLOW_THIS_IN_INITIALIZER_LIST(
- error_func_(this, &XmlReader::GenericErrorCallback)) {
-}
-
-XmlReader::~XmlReader() {
- if (reader_)
- xmlFreeTextReader(reader_);
-}
-
-// static
-void XmlReader::GenericErrorCallback(void* context, const char* msg, ...) {
- va_list args;
- va_start(args, msg);
-
- XmlReader* reader = static_cast<XmlReader*>(context);
- reader->errors_.append(base::StringPrintV(msg, args));
- va_end(args);
-}
-
-bool XmlReader::Load(const std::string& input) {
- const int kParseOptions = XML_PARSE_RECOVER | // recover on errors
- XML_PARSE_NONET; // forbid network access
- // TODO(evanm): Verify it's OK to pass NULL for the URL and encoding.
- // The libxml code allows for these, but it's unclear what effect is has.
- reader_ = xmlReaderForMemory(input.data(), static_cast<int>(input.size()),
- NULL, NULL, kParseOptions);
- return reader_ != NULL;
-}
-
-bool XmlReader::LoadFile(const FilePath& file_path) {
- const int kParseOptions = XML_PARSE_RECOVER | // recover on errors
- XML_PARSE_NONET; // forbid network access
- reader_ = xmlReaderForFile(
-#if defined(OS_WIN)
- // libxml takes UTF-8 paths on Windows; search the source for
- // xmlWrapOpenUtf8 to see it converting UTF-8 back to wide
- // characters.
- WideToUTF8(file_path.value()).c_str(),
-#else
- file_path.value().c_str(),
-#endif
- NULL, kParseOptions);
- return reader_ != NULL;
-}
-
-bool XmlReader::NodeAttribute(const char* name, std::string* out) {
- xmlChar* value = xmlTextReaderGetAttribute(reader_, BAD_CAST name);
- if (!value)
- return false;
- *out = XmlStringToStdString(value);
- xmlFree(value);
- return true;
-}
-
-bool XmlReader::ReadElementContent(std::string* content) {
- DCHECK(NodeType() == XML_READER_TYPE_ELEMENT);
- const int start_depth = Depth();
-
- if (xmlTextReaderIsEmptyElement(reader_)) {
- // Empty tag. We succesfully read the content, but it's
- // empty.
- *content = "";
- // Advance past this empty tag.
- if (!Read())
- return false;
- return true;
- }
-
- // Advance past opening element tag.
- if (!Read())
- return false;
-
- // Read the content. We read up until we hit a closing tag at the
- // same level as our starting point.
- while (NodeType() != XML_READER_TYPE_END_ELEMENT || Depth() != start_depth) {
- *content += XmlStringToStdString(xmlTextReaderConstValue(reader_));
- if (!Read())
- return false;
- }
-
- // Advance past ending element tag.
- DCHECK_EQ(NodeType(), XML_READER_TYPE_END_ELEMENT);
- if (!Read())
- return false;
-
- return true;
-}
-
-bool XmlReader::SkipToElement() {
- do {
- switch (NodeType()) {
- case XML_READER_TYPE_ELEMENT:
- return true;
- case XML_READER_TYPE_END_ELEMENT:
- return false;
- default:
- // Skip all other node types.
- continue;
- }
- } while (Read());
- return false;
-}
-
-
-// XmlWriter functions
-
-XmlWriter::XmlWriter()
- : writer_(NULL),
- buffer_(NULL) {}
-
-XmlWriter::~XmlWriter() {
- if (writer_)
- xmlFreeTextWriter(writer_);
- if (buffer_)
- xmlBufferFree(buffer_);
-}
-
-void XmlWriter::StartWriting() {
- buffer_ = xmlBufferCreate();
- writer_ = xmlNewTextWriterMemory(buffer_, 0);
- xmlTextWriterSetIndent(writer_, 1);
- xmlTextWriterStartDocument(writer_, NULL, NULL, NULL);
-}
-
-void XmlWriter::StopWriting() {
- xmlTextWriterEndDocument(writer_);
- xmlFreeTextWriter(writer_);
- writer_ = NULL;
-}
« no previous file with comments | « chrome/common/libxml_utils.h ('k') | chrome/test/reliability/automated_ui_tests.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698