Home | History | Annotate | Download | only in common
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef EXTENSIONS_COMMON_STACK_FRAME_H_
      6 #define EXTENSIONS_COMMON_STACK_FRAME_H_
      7 
      8 #include <vector>
      9 
     10 #include "base/memory/scoped_ptr.h"
     11 #include "base/strings/string16.h"
     12 
     13 namespace extensions {
     14 
     15 struct StackFrame {
     16   StackFrame();
     17   StackFrame(const StackFrame& frame);
     18   StackFrame(size_t line_number,
     19              size_t column_number,
     20              const base::string16& source,
     21              const base::string16& function);
     22   ~StackFrame();
     23 
     24   // Construct a stack frame from a reported plain-text frame.
     25   static scoped_ptr<StackFrame> CreateFromText(
     26       const base::string16& frame_text);
     27 
     28   bool operator==(const StackFrame& rhs) const;
     29 
     30   size_t line_number;
     31   size_t column_number;
     32   base::string16 source;
     33   base::string16 function;  // optional
     34 };
     35 
     36 typedef std::vector<StackFrame> StackTrace;
     37 
     38 }  // namespace extensions
     39 
     40 #endif  // EXTENSIONS_COMMON_STACK_FRAME_H_
     41 
     42