summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorikarienator@chromium.org <ikarienator@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-18 04:28:57 +0000
committerikarienator@chromium.org <ikarienator@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-18 04:28:57 +0000
commit06cefc1dc16c819007fb551e527a2be1953ec564 (patch)
tree5f677cd4c610ba89ff3b8f44b66b53fdf8dc3404
parentc82fff39dc1ec203edea9c67d51e7c6ef5fbdeb1 (diff)
downloadchromium_src-06cefc1dc16c819007fb551e527a2be1953ec564.zip
chromium_src-06cefc1dc16c819007fb551e527a2be1953ec564.tar.gz
chromium_src-06cefc1dc16c819007fb551e527a2be1953ec564.tar.bz2
Revert 223758 "Initial submit of ChromeDebug extension. "
Breaks license check. > Initial submit of ChromeDebug extension. > > This is a re-upload of a previous patch due to some cs files > breaking git's copy/rename detection, so a new issue had to be > created and uploaded with --no-find-copies. > > New to this upload is the addition of a LICENSE file (which > is displayed when you try to install the extension), as well > as copyright headers in source files. > > BUG=0 > > Review URL: https://chromiumcodereview.appspot.com/23480085 TBR=zturner@chromium.org Review URL: https://codereview.chromium.org/23537062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223797 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--tools/win/ChromeDebug/.gitignore5
-rw-r--r--tools/win/ChromeDebug/ChromeDebug.sln26
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/AttachDialog.Designer.cs203
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/AttachDialog.cs250
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/AttachDialog.resx120
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/ChromeDebug.csproj211
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/ChromeDebug.vsct121
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/ChromeDebugPackage.cs107
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/GlobalSuppressions.cs16
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/Guids.cs12
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/LICENSE27
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/PkgCmdID.cs13
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/ProcessCategory.cs37
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/ProcessDetail.cs238
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/Properties/AssemblyInfo.cs36
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/Resources.Designer.cs63
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/Resources.resx140
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/Utility.cs85
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/VSPackage.resx151
-rw-r--r--tools/win/ChromeDebug/ChromeDebug/source.extension.vsixmanifest24
-rw-r--r--tools/win/ChromeDebug/LowLevel/LowLevel.csproj64
-rw-r--r--tools/win/ChromeDebug/LowLevel/NativeMethods.cs65
-rw-r--r--tools/win/ChromeDebug/LowLevel/Properties/AssemblyInfo.cs36
-rw-r--r--tools/win/ChromeDebug/LowLevel/Types.cs177
-rw-r--r--tools/win/ChromeDebug/README.txt5
25 files changed, 0 insertions, 2232 deletions
diff --git a/tools/win/ChromeDebug/.gitignore b/tools/win/ChromeDebug/.gitignore
deleted file mode 100644
index 58eea67..0000000
--- a/tools/win/ChromeDebug/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-!*.sln
-ChromeDebug/obj/*
-ChromeDebug/bin/*
-LowLevel/obj/*
-LowLevel/bin/*
diff --git a/tools/win/ChromeDebug/ChromeDebug.sln b/tools/win/ChromeDebug/ChromeDebug.sln
deleted file mode 100644
index ade84fd..0000000
--- a/tools/win/ChromeDebug/ChromeDebug.sln
+++ /dev/null
@@ -1,26 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChromeDebug", "ChromeDebug\ChromeDebug.csproj", "{4CC60BED-569D-481A-B56B-6ECBC23CBC16}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LowLevel", "LowLevel\LowLevel.csproj", "{998C0725-F123-4ED3-9D44-12C1945F00D1}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {4CC60BED-569D-481A-B56B-6ECBC23CBC16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4CC60BED-569D-481A-B56B-6ECBC23CBC16}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4CC60BED-569D-481A-B56B-6ECBC23CBC16}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4CC60BED-569D-481A-B56B-6ECBC23CBC16}.Release|Any CPU.Build.0 = Release|Any CPU
- {998C0725-F123-4ED3-9D44-12C1945F00D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {998C0725-F123-4ED3-9D44-12C1945F00D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {998C0725-F123-4ED3-9D44-12C1945F00D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {998C0725-F123-4ED3-9D44-12C1945F00D1}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/tools/win/ChromeDebug/ChromeDebug/AttachDialog.Designer.cs b/tools/win/ChromeDebug/ChromeDebug/AttachDialog.Designer.cs
deleted file mode 100644
index 3a00575..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/AttachDialog.Designer.cs
+++ /dev/null
@@ -1,203 +0,0 @@
-namespace ChromeDebug
-{
- partial class AttachDialog
- {
- /// <summary>
- /// Required designer variable.
- /// </summary>
- private System.ComponentModel.IContainer components = null;
-
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent()
- {
- this.listViewProcesses = new System.Windows.Forms.ListView();
- this.columnHeaderDummy = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.columnHeaderProcess = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.columnHeaderPid = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.columnHeaderTitle = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.columnHeaderType = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.columnHeaderSession = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.columnHeaderCmdLine = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.buttonAttach = new System.Windows.Forms.Button();
- this.buttonCancel = new System.Windows.Forms.Button();
- this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.buttonRefresh = new System.Windows.Forms.Button();
- this.checkBoxOnlyChrome = new System.Windows.Forms.CheckBox();
- this.groupBox1.SuspendLayout();
- this.SuspendLayout();
- //
- // listViewProcesses
- //
- this.listViewProcesses.AllowColumnReorder = true;
- this.listViewProcesses.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.listViewProcesses.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.columnHeaderDummy,
- this.columnHeaderProcess,
- this.columnHeaderPid,
- this.columnHeaderTitle,
- this.columnHeaderType,
- this.columnHeaderSession,
- this.columnHeaderCmdLine});
- this.listViewProcesses.FullRowSelect = true;
- this.listViewProcesses.Location = new System.Drawing.Point(14, 27);
- this.listViewProcesses.Name = "listViewProcesses";
- this.listViewProcesses.Size = new System.Drawing.Size(884, 462);
- this.listViewProcesses.TabIndex = 0;
- this.listViewProcesses.UseCompatibleStateImageBehavior = false;
- this.listViewProcesses.View = System.Windows.Forms.View.Details;
- //
- // columnHeaderDummy
- //
- this.columnHeaderDummy.Width = 0;
- //
- // columnHeaderProcess
- //
- this.columnHeaderProcess.Text = "Executable";
- this.columnHeaderProcess.Width = 65;
- //
- // columnHeaderPid
- //
- this.columnHeaderPid.Text = "PID";
- this.columnHeaderPid.Width = 30;
- //
- // columnHeaderTitle
- //
- this.columnHeaderTitle.Text = "Title";
- this.columnHeaderTitle.Width = 32;
- //
- // columnHeaderType
- //
- this.columnHeaderType.Text = "Type";
- this.columnHeaderType.Width = 36;
- //
- // columnHeaderSession
- //
- this.columnHeaderSession.Text = "Session";
- this.columnHeaderSession.Width = 49;
- //
- // columnHeaderCmdLine
- //
- this.columnHeaderCmdLine.Text = "Command Line";
- this.columnHeaderCmdLine.Width = 668;
- //
- // buttonAttach
- //
- this.buttonAttach.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.buttonAttach.DialogResult = System.Windows.Forms.DialogResult.OK;
- this.buttonAttach.Location = new System.Drawing.Point(684, 603);
- this.buttonAttach.Name = "buttonAttach";
- this.buttonAttach.Size = new System.Drawing.Size(118, 41);
- this.buttonAttach.TabIndex = 2;
- this.buttonAttach.Text = "Attach";
- this.buttonAttach.UseVisualStyleBackColor = true;
- this.buttonAttach.Click += new System.EventHandler(this.buttonAttach_Click);
- //
- // buttonCancel
- //
- this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
- this.buttonCancel.Location = new System.Drawing.Point(808, 603);
- this.buttonCancel.Name = "buttonCancel";
- this.buttonCancel.Size = new System.Drawing.Size(118, 41);
- this.buttonCancel.TabIndex = 3;
- this.buttonCancel.Text = "Cancel";
- this.buttonCancel.UseVisualStyleBackColor = true;
- //
- // groupBox1
- //
- this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.groupBox1.Controls.Add(this.listViewProcesses);
- this.groupBox1.Location = new System.Drawing.Point(12, 27);
- this.groupBox1.Name = "groupBox1";
- this.groupBox1.Size = new System.Drawing.Size(914, 511);
- this.groupBox1.TabIndex = 5;
- this.groupBox1.TabStop = false;
- this.groupBox1.Text = "Available Processes";
- //
- // buttonRefresh
- //
- this.buttonRefresh.Location = new System.Drawing.Point(808, 552);
- this.buttonRefresh.Name = "buttonRefresh";
- this.buttonRefresh.Size = new System.Drawing.Size(117, 33);
- this.buttonRefresh.TabIndex = 6;
- this.buttonRefresh.Text = "Refresh";
- this.buttonRefresh.UseVisualStyleBackColor = true;
- this.buttonRefresh.Click += new System.EventHandler(this.buttonRefresh_Click);
- //
- // checkBoxOnlyChrome
- //
- this.checkBoxOnlyChrome.AutoSize = true;
- this.checkBoxOnlyChrome.Checked = true;
- this.checkBoxOnlyChrome.CheckState = System.Windows.Forms.CheckState.Checked;
- this.checkBoxOnlyChrome.Location = new System.Drawing.Point(12, 561);
- this.checkBoxOnlyChrome.Name = "checkBoxOnlyChrome";
- this.checkBoxOnlyChrome.Size = new System.Drawing.Size(165, 17);
- this.checkBoxOnlyChrome.TabIndex = 7;
- this.checkBoxOnlyChrome.Text = "Only show Chrome processes";
- this.checkBoxOnlyChrome.UseVisualStyleBackColor = true;
- this.checkBoxOnlyChrome.CheckedChanged += new System.EventHandler(this.checkBoxOnlyChrome_CheckedChanged);
- //
- // AttachDialog
- //
- this.AcceptButton = this.buttonAttach;
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.CancelButton = this.buttonCancel;
- this.ClientSize = new System.Drawing.Size(940, 656);
- this.ControlBox = false;
- this.Controls.Add(this.checkBoxOnlyChrome);
- this.Controls.Add(this.buttonRefresh);
- this.Controls.Add(this.groupBox1);
- this.Controls.Add(this.buttonCancel);
- this.Controls.Add(this.buttonAttach);
- this.MaximizeBox = false;
- this.MinimizeBox = false;
- this.Name = "AttachDialog";
- this.ShowInTaskbar = false;
- this.Text = "Attach to Chrome";
- this.Load += new System.EventHandler(this.AttachDialog_Load);
- this.groupBox1.ResumeLayout(false);
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- private System.Windows.Forms.ListView listViewProcesses;
- private System.Windows.Forms.Button buttonAttach;
- private System.Windows.Forms.Button buttonCancel;
- private System.Windows.Forms.ColumnHeader columnHeaderProcess;
- private System.Windows.Forms.ColumnHeader columnHeaderPid;
- private System.Windows.Forms.ColumnHeader columnHeaderTitle;
- private System.Windows.Forms.ColumnHeader columnHeaderCmdLine;
- private System.Windows.Forms.ColumnHeader columnHeaderDummy;
- private System.Windows.Forms.ColumnHeader columnHeaderType;
- private System.Windows.Forms.ColumnHeader columnHeaderSession;
- private System.Windows.Forms.GroupBox groupBox1;
- private System.Windows.Forms.Button buttonRefresh;
- private System.Windows.Forms.CheckBox checkBoxOnlyChrome;
- }
-} \ No newline at end of file
diff --git a/tools/win/ChromeDebug/ChromeDebug/AttachDialog.cs b/tools/win/ChromeDebug/ChromeDebug/AttachDialog.cs
deleted file mode 100644
index c119894..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/AttachDialog.cs
+++ /dev/null
@@ -1,250 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Diagnostics;
-using System.Drawing;
-using System.IO;
-using System.Linq;
-using System.Management;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
-using ChromeDebug.LowLevel;
-
-namespace ChromeDebug {
- // The form that is displayed to allow the user to select processes to attach to. Note that we
- // cannot interact with the DTE object from here (I assume this is because the dialog is running
- // on a different thread, although I don't fully understand), so any access to the DTE object
- // will have to be done through events that get posted back to the main package thread.
- public partial class AttachDialog : Form {
- private class ProcessViewItem : ListViewItem {
- public ProcessViewItem() {
- Category = ProcessCategory.Other;
- MachineType = LowLevelTypes.MachineType.UNKNOWN;
- }
-
- public string Exe;
- public int ProcessId;
- public int SessionId;
- public string Title;
- public string DisplayCmdLine;
- public string[] CmdLineArgs;
- public ProcessCategory Category;
- public LowLevelTypes.MachineType MachineType;
-
- public ProcessDetail Detail;
- }
-
- private Dictionary<ProcessCategory, List<ProcessViewItem>> loadedProcessTable = null;
- private Dictionary<ProcessCategory, ListViewGroup> processGroups = null;
- private List<int> selectedProcesses = null;
-
- public AttachDialog() {
- InitializeComponent();
-
- loadedProcessTable = new Dictionary<ProcessCategory, List<ProcessViewItem>>();
- processGroups = new Dictionary<ProcessCategory, ListViewGroup>();
- selectedProcesses = new List<int>();
-
- // Create and initialize the groups and process lists only once. On a reset
- // we don't clear the groups manually, clearing the list view should clear the
- // groups. And we don't clear the entire processes_ dictionary, only the
- // individual buckets inside the dictionary.
- foreach (object value in Enum.GetValues(typeof(ProcessCategory))) {
- ProcessCategory category = (ProcessCategory)value;
-
- ListViewGroup group = new ListViewGroup(category.ToGroupTitle());
- processGroups[category] = group;
- listViewProcesses.Groups.Add(group);
-
- loadedProcessTable[category] = new List<ProcessViewItem>();
- }
- }
-
- // Provides an iterator that evaluates to the process ids of the entries that are selected
- // in the list view.
- public IEnumerable<int> SelectedItems {
- get {
- foreach (ProcessViewItem item in listViewProcesses.SelectedItems)
- yield return item.ProcessId;
- }
- }
-
- private void AttachDialog_Load(object sender, EventArgs e) {
- RepopulateListView();
- }
-
- // Remove command line arguments that we aren't interested in displaying as part of the command
- // line of the process.
- private string[] FilterCommandLine(string[] args) {
- Func<string, int, bool> AllowArgument = delegate(string arg, int index) {
- if (index == 0)
- return false;
- return !arg.StartsWith("--force-fieldtrials", StringComparison.CurrentCultureIgnoreCase);
- };
-
- // The force-fieldtrials command line option makes the command line view useless, so remove
- // it. Also remove args[0] since that is the process name.
- args = args.Where(AllowArgument).ToArray();
- return args;
- }
-
- private void ReloadNativeProcessInfo() {
- foreach (List<ProcessViewItem> list in loadedProcessTable.Values) {
- list.Clear();
- }
-
- Process[] processes = Process.GetProcesses();
- foreach (Process p in processes) {
- ProcessViewItem item = new ProcessViewItem();
- try {
- item.Detail = new ProcessDetail(p.Id);
- if (item.Detail.CanReadPeb && item.Detail.CommandLine != null) {
- item.CmdLineArgs = Utility.SplitArgs(item.Detail.CommandLine);
- item.DisplayCmdLine = GetFilteredCommandLineString(item.CmdLineArgs);
- }
- item.MachineType = item.Detail.MachineType;
- }
- catch (Exception) {
- // Generally speaking, an exception here means the process is privileged and we cannot
- // get any information about the process. For those processes, we will just display the
- // information that the Framework gave us in the Process structure.
- }
-
- // If we don't have the machine type, its privilege level is high enough that we won't be
- // able to attach a debugger to it anyway, so skip it.
- if (item.MachineType == LowLevelTypes.MachineType.UNKNOWN)
- continue;
-
- item.ProcessId = p.Id;
- item.SessionId = p.SessionId;
- item.Title = p.MainWindowTitle;
- item.Exe = p.ProcessName;
- if (item.CmdLineArgs != null)
- item.Category = DetermineProcessCategory(item.CmdLineArgs);
-
- List<ProcessViewItem> items = loadedProcessTable[item.Category];
- item.Group = processGroups[item.Category];
- items.Add(item);
- }
- }
-
- // Filter the command line arguments to remove extraneous arguments that we don't wish to
- // display.
- private string GetFilteredCommandLineString(string[] args) {
- if (args == null || args.Length == 0)
- return string.Empty;
-
- args = FilterCommandLine(args);
- return string.Join(" ", args, 0, args.Length);
- }
-
- // Using a heuristic based on the command line, tries to determine what type of process this
- // is.
- private ProcessCategory DetermineProcessCategory(string[] cmdline) {
- if (cmdline == null || cmdline.Length == 0)
- return ProcessCategory.Other;
-
- string file = Path.GetFileName(cmdline[0]);
- if (file.Equals("delegate_execute.exe", StringComparison.CurrentCultureIgnoreCase))
- return ProcessCategory.DelegateExecute;
- else if (file.Equals("chrome.exe", StringComparison.CurrentCultureIgnoreCase)) {
- if (cmdline.Contains("--type=renderer"))
- return ProcessCategory.Renderer;
- else if (cmdline.Contains("--type=plugin") || cmdline.Contains("--type=ppapi"))
- return ProcessCategory.Plugin;
- else if (cmdline.Contains("--type=gpu-process"))
- return ProcessCategory.Gpu;
- else if (cmdline.Contains("--type=service"))
- return ProcessCategory.Service;
- else if (cmdline.Any(arg => arg.StartsWith("-ServerName")))
- return ProcessCategory.MetroViewer;
- else
- return ProcessCategory.Browser;
- } else
- return ProcessCategory.Other;
- }
-
- private void InsertCategoryItems(ProcessCategory category) {
- foreach (ProcessViewItem item in loadedProcessTable[category]) {
- item.SubItems.Add(item.Exe);
- item.SubItems.Add(item.ProcessId.ToString());
- item.SubItems.Add(item.Title);
- item.SubItems.Add(item.MachineType.ToString());
- item.SubItems.Add(item.SessionId.ToString());
- item.SubItems.Add(item.DisplayCmdLine);
- listViewProcesses.Items.Add(item);
- }
- }
-
- private void AutoResizeColumns() {
- // First adjust to the width of the headers, since it's fast.
- listViewProcesses.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
-
- // Save the widths so we can use them again later.
- List<int> widths = new List<int>();
- foreach (ColumnHeader header in listViewProcesses.Columns)
- widths.Add(header.Width);
-
- // Now let Windows do the slow adjustment based on the content.
- listViewProcesses.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
-
- // Finally, iterate over each column, and resize those columns that just got smaller.
- listViewProcesses.Columns[0].Width = 0;
- int total = 0;
- for (int i = 1; i < listViewProcesses.Columns.Count; ++i) {
- // Resize to the largest of the two, but don't let it go over a pre-defined maximum.
- int max = Math.Max(listViewProcesses.Columns[i].Width, widths[i]);
- int capped = Math.Min(max, 300);
-
- // We do still want to fill up the available space in the list view however, so if we're
- // under then we can fill.
- int globalMinWidth = listViewProcesses.Width - SystemInformation.VerticalScrollBarWidth;
- if (i == listViewProcesses.Columns.Count - 1 && (total + capped) < (globalMinWidth - 4))
- capped = globalMinWidth - total - 4;
-
- total += capped;
- listViewProcesses.Columns[i].Width = capped;
- }
- }
-
- private void RepopulateListView() {
- listViewProcesses.Items.Clear();
-
- ReloadNativeProcessInfo();
-
- InsertCategoryItems(ProcessCategory.Browser);
- InsertCategoryItems(ProcessCategory.Renderer);
- InsertCategoryItems(ProcessCategory.Gpu);
- InsertCategoryItems(ProcessCategory.Plugin);
- InsertCategoryItems(ProcessCategory.MetroViewer);
- InsertCategoryItems(ProcessCategory.Service);
- InsertCategoryItems(ProcessCategory.DelegateExecute);
- if (!checkBoxOnlyChrome.Checked)
- InsertCategoryItems(ProcessCategory.Other);
-
- AutoResizeColumns();
- }
-
- private void buttonRefresh_Click(object sender, EventArgs e) {
- RepopulateListView();
- }
-
- private void buttonAttach_Click(object sender, EventArgs e) {
- System.Diagnostics.Debug.WriteLine("Closing dialog.");
- this.Close();
- }
-
- private void checkBoxOnlyChrome_CheckedChanged(object sender, EventArgs e) {
- if (!checkBoxOnlyChrome.Checked)
- InsertCategoryItems(ProcessCategory.Other);
- else {
- foreach (ProcessViewItem item in loadedProcessTable[ProcessCategory.Other]) {
- listViewProcesses.Items.Remove(item);
- }
- }
- }
- }
-}
diff --git a/tools/win/ChromeDebug/ChromeDebug/AttachDialog.resx b/tools/win/ChromeDebug/ChromeDebug/AttachDialog.resx
deleted file mode 100644
index 1af7de1..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/AttachDialog.resx
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" use="required" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
-</root> \ No newline at end of file
diff --git a/tools/win/ChromeDebug/ChromeDebug/ChromeDebug.csproj b/tools/win/ChromeDebug/ChromeDebug/ChromeDebug.csproj
deleted file mode 100644
index 97bd38d..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/ChromeDebug.csproj
+++ /dev/null
@@ -1,211 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
- <PropertyGroup>
- <MinimumVisualStudioVersion>11.0</MinimumVisualStudioVersion>
- <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
- <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
- <FileUpgradeFlags>
- </FileUpgradeFlags>
- <UpgradeBackupLocation>
- </UpgradeBackupLocation>
- <OldToolsVersion>4.0</OldToolsVersion>
- </PropertyGroup>
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{4CC60BED-569D-481A-B56B-6ECBC23CBC16}</ProjectGuid>
- <ProjectTypeGuids>{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>ChromeDebug</RootNamespace>
- <AssemblyName>ChromeDebug</AssemblyName>
- <SignAssembly>True</SignAssembly>
- <AssemblyOriginatorKeyFile>
- </AssemblyOriginatorKeyFile>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <RunCodeAnalysis>true</RunCodeAnalysis>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="Microsoft.VisualStudio.OLE.Interop" />
- <Reference Include="Microsoft.VisualStudio.Shell.Interop" />
- <Reference Include="Microsoft.VisualStudio.Shell.Interop.8.0" />
- <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0" />
- <Reference Include="Microsoft.VisualStudio.Shell.Interop.10.0" />
- <Reference Include="Microsoft.VisualStudio.Shell.Interop.11.0">
- <EmbedInteropTypes>true</EmbedInteropTypes>
- </Reference>
- <Reference Include="Microsoft.VisualStudio.TextManager.Interop" />
- <Reference Include="Microsoft.VisualStudio.Shell.11.0" />
- <Reference Include="Microsoft.VisualStudio.Shell.Immutable.10.0" />
- <Reference Include="Microsoft.VisualStudio.Shell.Immutable.11.0" />
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Data" />
- <Reference Include="System.Design" />
- <Reference Include="System.Drawing" />
- <Reference Include="System.Management" />
- <Reference Include="System.Windows.Forms" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <COMReference Include="EnvDTE">
- <Guid>{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}</Guid>
- <VersionMajor>8</VersionMajor>
- <VersionMinor>0</VersionMinor>
- <Lcid>0</Lcid>
- <WrapperTool>primary</WrapperTool>
- <Isolated>False</Isolated>
- <EmbedInteropTypes>False</EmbedInteropTypes>
- </COMReference>
- <COMReference Include="EnvDTE100">
- <Guid>{26AD1324-4B7C-44BC-84F8-B86AED45729F}</Guid>
- <VersionMajor>10</VersionMajor>
- <VersionMinor>0</VersionMinor>
- <Lcid>0</Lcid>
- <WrapperTool>primary</WrapperTool>
- <Isolated>False</Isolated>
- <EmbedInteropTypes>False</EmbedInteropTypes>
- </COMReference>
- <COMReference Include="EnvDTE80">
- <Guid>{1A31287A-4D7D-413E-8E32-3B374931BD89}</Guid>
- <VersionMajor>8</VersionMajor>
- <VersionMinor>0</VersionMinor>
- <Lcid>0</Lcid>
- <WrapperTool>primary</WrapperTool>
- <Isolated>False</Isolated>
- <EmbedInteropTypes>False</EmbedInteropTypes>
- </COMReference>
- <COMReference Include="EnvDTE90">
- <Guid>{2CE2370E-D744-4936-A090-3FFFE667B0E1}</Guid>
- <VersionMajor>9</VersionMajor>
- <VersionMinor>0</VersionMinor>
- <Lcid>0</Lcid>
- <WrapperTool>primary</WrapperTool>
- <Isolated>False</Isolated>
- <EmbedInteropTypes>False</EmbedInteropTypes>
- </COMReference>
- <COMReference Include="EnvDTE90a1">
- <Guid>{64A96FE8-CCCF-4EDF-B341-FF7C528B60C9}</Guid>
- <VersionMajor>9</VersionMajor>
- <VersionMinor>0</VersionMinor>
- <Lcid>0</Lcid>
- <WrapperTool>primary</WrapperTool>
- <Isolated>False</Isolated>
- <EmbedInteropTypes>False</EmbedInteropTypes>
- </COMReference>
- <COMReference Include="Microsoft.VisualStudio.CommandBars">
- <Guid>{1CBA492E-7263-47BB-87FE-639000619B15}</Guid>
- <VersionMajor>8</VersionMajor>
- <VersionMinor>0</VersionMinor>
- <Lcid>0</Lcid>
- <WrapperTool>primary</WrapperTool>
- <Isolated>False</Isolated>
- <EmbedInteropTypes>False</EmbedInteropTypes>
- </COMReference>
- <COMReference Include="stdole">
- <Guid>{00020430-0000-0000-C000-000000000046}</Guid>
- <VersionMajor>2</VersionMajor>
- <VersionMinor>0</VersionMinor>
- <Lcid>0</Lcid>
- <WrapperTool>primary</WrapperTool>
- <Isolated>False</Isolated>
- <EmbedInteropTypes>False</EmbedInteropTypes>
- </COMReference>
- </ItemGroup>
- <ItemGroup>
- <Compile Include="AttachDialog.cs">
- <SubType>Form</SubType>
- </Compile>
- <Compile Include="AttachDialog.Designer.cs">
- <DependentUpon>AttachDialog.cs</DependentUpon>
- </Compile>
- <Compile Include="ProcessCategory.cs" />
- <Compile Include="ProcessDetail.cs" />
- <Compile Include="Utility.cs" />
- <Compile Include="Guids.cs" />
- <Compile Include="Resources.Designer.cs">
- <AutoGen>True</AutoGen>
- <DesignTime>True</DesignTime>
- <DependentUpon>Resources.resx</DependentUpon>
- </Compile>
- <Compile Include="GlobalSuppressions.cs" />
- <Compile Include="ChromeDebugPackage.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="PkgCmdID.cs" />
- </ItemGroup>
- <ItemGroup>
- <EmbeddedResource Include="AttachDialog.resx">
- <DependentUpon>AttachDialog.cs</DependentUpon>
- </EmbeddedResource>
- <EmbeddedResource Include="Resources.resx">
- <Generator>ResXFileCodeGenerator</Generator>
- <LastGenOutput>Resources.Designer.cs</LastGenOutput>
- <SubType>Designer</SubType>
- </EmbeddedResource>
- <EmbeddedResource Include="VSPackage.resx">
- <MergeWithCTO>true</MergeWithCTO>
- <ManifestResourceName>VSPackage</ManifestResourceName>
- <SubType>Designer</SubType>
- </EmbeddedResource>
- </ItemGroup>
- <ItemGroup>
- <None Include="Key.snk" />
- <Content Include="LICENSE">
- <CopyToOutputDirectory>Always</CopyToOutputDirectory>
- <IncludeInVSIX>true</IncludeInVSIX>
- </Content>
- <None Include="source.extension.vsixmanifest">
- <SubType>Designer</SubType>
- </None>
- </ItemGroup>
- <ItemGroup>
- <VSCTCompile Include="ChromeDebug.vsct">
- <ResourceName>Menus.ctmenu</ResourceName>
- <SubType>Designer</SubType>
- </VSCTCompile>
- </ItemGroup>
- <ItemGroup>
- <None Include="Resources\Images.png" />
- </ItemGroup>
- <ItemGroup>
- <Content Include="Resources\Package.ico" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\LowLevel\LowLevel.csproj">
- <Project>{998c0725-f123-4ed3-9d44-12c1945f00d1}</Project>
- <Name>LowLevel</Name>
- </ProjectReference>
- </ItemGroup>
- <PropertyGroup>
- <UseCodebase>true</UseCodebase>
- </PropertyGroup>
- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
- <Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/tools/win/ChromeDebug/ChromeDebug/ChromeDebug.vsct b/tools/win/ChromeDebug/ChromeDebug/ChromeDebug.vsct
deleted file mode 100644
index ca02527..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/ChromeDebug.vsct
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
- <!-- This is the file that defines the actual layout and type of the commands.
- It is divided in different sections (e.g. command definition, command
- placement, ...), with each defining a specific set of properties.
- See the comment before each section for more details about how to
- use it. -->
-
- <!-- The VSCT compiler (the tool that translates this file into the binary
- format that VisualStudio will consume) has the ability to run a preprocessor
- on the vsct file; this preprocessor is (usually) the C++ preprocessor, so
- it is possible to define includes and macros with the same syntax used
- in C++ files. Using this ability of the compiler here, we include some files
- defining some of the constants that we will use inside the file. -->
-
- <!--This is the file that defines the IDs for all the commands exposed by VisualStudio. -->
- <Extern href="stdidcmd.h"/>
-
- <!--This header contains the command ids for the menus provided by the shell. -->
- <Extern href="vsshlids.h"/>
-
-
-
-
- <!--The Commands section is where we the commands, menus and menu groups are defined.
- This section uses a Guid to identify the package that provides the command defined inside it.
- -->
- <Commands package="guidChromeDebugPkg">
- <!-- Inside this section we have different sub-sections: one for the menus, another
- for the menu groups, one for the buttons (the actual commands), one for the combos
- and the last one for the bitmaps used. Each element is identified by a command id that
- is a unique pair of guid and numeric identifier; the guid part of the identifier is usually
- called "command set" and is used to group different command inside a logically related
- group; your package should define its own command set in order to avoid collisions
- with command ids defined by other packages. -->
-
-
- <!-- In this section you can define new menu groups. A menu group is a container for
- other menus or buttons (commands); from a visual point of view you can see the
- group as the part of a menu contained between two lines. The parent of a group
- must be a menu. -->
- <Groups>
-
- <Group guid="guidChromeDebugCmdSet" id="MyMenuGroup" priority="0x0600">
- <Parent guid="guidSHLMainMenu" id="IDM_VS_MENU_TOOLS"/>
- </Group>
-
-
-
- </Groups>
-
- <!--Buttons section. -->
- <!--This section defines the elements the user can interact with, like a menu command or a
- button or combo box in a toolbar. -->
- <Buttons>
- <!--To define a menu group you have to specify its ID, the parent menu and its display
- priority. The command is visible and enabled by default. If you need to change the
- visibility, status, etc, you can use the CommandFlag node. You can add more than one
- CommandFlag node e.g.:
- <CommandFlag>DefaultInvisible</CommandFlag>
- <CommandFlag>DynamicVisibility</CommandFlag>
- If you do not want an image next to your command, remove the Icon node /> -->
-
- <Button guid="guidChromeDebugCmdSet" id="cmdidAttachToProcess" priority="0x0100"
- type="Button">
- <Parent guid="guidChromeDebugCmdSet" id="MyMenuGroup" />
- <Icon guid="guidImages" id="bmpPic1" />
- <Strings>
- <ButtonText>Attach to Chrome</ButtonText>
- </Strings>
- </Button>
-
-
-
- </Buttons>
-
- <!--The bitmaps section is used to define the bitmaps that are used for the commands.-->
- <Bitmaps>
- <!-- The bitmap id is defined in a way that is a little bit different from the others:
- the declaration starts with a guid for the bitmap strip, then there is the resource id
- of the bitmap strip containing the bitmaps and then there are the numeric ids of the
- elements used inside a button definition. An important aspect of this declaration is
- that the element id must be the actual index (1-based) of the bitmap inside the bitmap
- strip. -->
- <Bitmap guid="guidImages" href="Resources\Images.png"
- usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows"/>
-
- </Bitmaps>
-
- </Commands>
-
-
-
-
-
- <Symbols>
- <!-- This is the package guid. -->
- <GuidSymbol name="guidChromeDebugPkg" value="{7de8bbab-82c7-4871-b82c-4d5d44a3979d}" />
-
- <!-- This is the guid used to group the menu commands together -->
- <GuidSymbol name="guidChromeDebugCmdSet" value="{6608d840-ce6c-45ab-b856-eb0a0b471ff1}">
-
- <IDSymbol name="MyMenuGroup" value="0x1020" />
- <IDSymbol name="cmdidAttachToProcess" value="0x0100" />
- </GuidSymbol>
-
-
-
- <GuidSymbol name="guidImages" value="{7142ff8d-aa4e-45a5-a090-2e2ed8c5672b}" >
- <IDSymbol name="bmpPic1" value="1" />
- <IDSymbol name="bmpPic2" value="2" />
- <IDSymbol name="bmpPicSearch" value="3" />
- <IDSymbol name="bmpPicX" value="4" />
- <IDSymbol name="bmpPicArrows" value="5" />
- <IDSymbol name="bmpPicStrikethrough" value="6" />
- </GuidSymbol>
- </Symbols>
-
-</CommandTable>
diff --git a/tools/win/ChromeDebug/ChromeDebug/ChromeDebugPackage.cs b/tools/win/ChromeDebug/ChromeDebug/ChromeDebugPackage.cs
deleted file mode 100644
index 2a697b6..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/ChromeDebugPackage.cs
+++ /dev/null
@@ -1,107 +0,0 @@
-// Copyright 2013 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.
-
-using System;
-using System.Diagnostics;
-using System.Globalization;
-using System.Runtime.InteropServices;
-using System.ComponentModel.Design;
-using Microsoft.Win32;
-using Microsoft.VisualStudio;
-using Microsoft.VisualStudio.Shell.Interop;
-using Microsoft.VisualStudio.OLE.Interop;
-using Microsoft.VisualStudio.Shell;
-using System.Windows.Forms;
-
-namespace ChromeDebug {
- /// <summary>
- /// This is the class that implements the package exposed by this assembly.
- ///
- /// The minimum requirement for a class to be considered a valid package for Visual Studio
- /// is to implement the IVsPackage interface and register itself with the shell.
- /// This package uses the helper classes defined inside the Managed Package Framework (MPF)
- /// to do it: it derives from the Package class that provides the implementation of the
- /// IVsPackage interface and uses the registration attributes defined in the framework to
- /// register itself and its components with the shell.
- /// </summary>
- // This attribute tells the PkgDef creation utility (CreatePkgDef.exe) that this class is
- // a package.
- [PackageRegistration(UseManagedResourcesOnly = true)]
- // This attribute is used to register the information needed to show this package
- // in the Help/About dialog of Visual Studio.
- [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)]
- // This attribute is needed to let the shell know that this package exposes some menus.
- [ProvideMenuResource("Menus.ctmenu", 1)]
- [Guid(GuidList.guidChromeDebugPkgString)]
- public sealed class ChromeDebugPackage : Package {
- /// <summary>
- /// Default constructor of the package.
- /// Inside this method you can place any initialization code that does not require
- /// any Visual Studio service because at this point the package object is created but
- /// not sited yet inside Visual Studio environment. The place to do all the other
- /// initialization is the Initialize method.
- /// </summary>
- public ChromeDebugPackage() {
- Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering constructor for: {0}",
- this.ToString()));
- }
-
-
-
- /////////////////////////////////////////////////////////////////////////////
- // Overridden Package Implementation
- #region Package Members
-
- /// <summary>
- /// Initialization of the package; this method is called right after the package is sited, so this is the place
- /// where you can put all the initialization code that rely on services provided by VisualStudio.
- /// </summary>
- protected override void Initialize() {
- Debug.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this.ToString()));
- base.Initialize();
-
- // Add our command handlers for menu (commands must exist in the .vsct file)
- OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
- if (null != mcs) {
- // Create the command for the menu item.
- CommandID menuCommandID = new CommandID(GuidList.guidChromeDebugCmdSet, (int)PkgCmdIDList.cmdidAttachToProcess);
- MenuCommand menuItem = new MenuCommand(MenuItemCallback, menuCommandID);
- mcs.AddCommand(menuItem);
- }
- }
- #endregion
-
- /// <summary>
- /// This function is the callback used to execute a command when the a menu item is clicked.
- /// See the Initialize method to see how the menu item is associated to this function using
- /// the OleMenuCommandService service and the MenuCommand class.
- /// </summary>
- private void MenuItemCallback(object sender, EventArgs e) {
- // Show a Message Box to prove we were here
- EnvDTE.DTE dte = (EnvDTE.DTE)GetService(typeof(EnvDTE.DTE));
-
- IVsUIShell uiShell = (IVsUIShell)GetService(typeof(SVsUIShell));
- Guid clsid = Guid.Empty;
- IntPtr parentHwnd = IntPtr.Zero;
- uiShell.GetDialogOwnerHwnd(out parentHwnd);
-
- NativeWindow parentShim = new NativeWindow();
- parentShim.AssignHandle(parentHwnd);
- AttachDialog dialog = new AttachDialog();
- DialogResult result = dialog.ShowDialog(parentShim);
- if (result == DialogResult.OK) {
- foreach (int selected_id in dialog.SelectedItems) {
- foreach (EnvDTE90a.Process4 p in dte.Debugger.LocalProcesses) {
- System.Diagnostics.Debug.WriteLine("Found process {0}", p.ProcessID);
- if (p.ProcessID != selected_id)
- continue;
- p.Attach();
- System.Diagnostics.Debug.WriteLine("Attaching to process successful.");
- break;
- }
- }
- }
- }
- }
-}
diff --git a/tools/win/ChromeDebug/ChromeDebug/GlobalSuppressions.cs b/tools/win/ChromeDebug/ChromeDebug/GlobalSuppressions.cs
deleted file mode 100644
index f967862..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/GlobalSuppressions.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-// Copyright 2013 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 used by Code Analysis to maintain SuppressMessage
-// attributes that are applied to this project. Project-level
-// suppressions either have no target or are given a specific target
-// and scoped to a namespace, type, member, etc.
-//
-// To add a suppression to this file, right-click the message in the
-// Error List, point to "Suppress Message(s)", and click "In Project
-// Suppression File". You do not need to add suppressions to this
-// file manually.
-
-[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design",
- "CA1017:MarkAssembliesWithComVisible")]
diff --git a/tools/win/ChromeDebug/ChromeDebug/Guids.cs b/tools/win/ChromeDebug/ChromeDebug/Guids.cs
deleted file mode 100644
index 2aeaab2..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/Guids.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-// Guids.cs
-// MUST match guids.h
-using System;
-
-namespace ChromeDebug {
- static class GuidList {
- public const string guidChromeDebugPkgString = "7de8bbab-82c7-4871-b82c-4d5d44a3979d";
- public const string guidChromeDebugCmdSetString = "6608d840-ce6c-45ab-b856-eb0a0b471ff1";
-
- public static readonly Guid guidChromeDebugCmdSet = new Guid(guidChromeDebugCmdSetString);
- };
-} \ No newline at end of file
diff --git a/tools/win/ChromeDebug/ChromeDebug/LICENSE b/tools/win/ChromeDebug/ChromeDebug/LICENSE
deleted file mode 100644
index 8fb3cc2..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/LICENSE
+++ /dev/null
@@ -1,27 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/tools/win/ChromeDebug/ChromeDebug/PkgCmdID.cs b/tools/win/ChromeDebug/ChromeDebug/PkgCmdID.cs
deleted file mode 100644
index 816b804..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/PkgCmdID.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-// Copyright 2013 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.
-
-// PkgCmdID.cs
-// MUST match PkgCmdID.h
-using System;
-
-namespace ChromeDebug {
- static class PkgCmdIDList {
- public const uint cmdidAttachToProcess = 0x100;
- };
-} \ No newline at end of file
diff --git a/tools/win/ChromeDebug/ChromeDebug/ProcessCategory.cs b/tools/win/ChromeDebug/ChromeDebug/ProcessCategory.cs
deleted file mode 100644
index ffcffdd..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/ProcessCategory.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright 2013 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.
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace ChromeDebug {
- internal enum ProcessCategory {
- Browser,
- Renderer,
- Gpu,
- Plugin,
- DelegateExecute,
- MetroViewer,
- Service,
- Other
- }
-
- // Defines an extension method for the ProcessCategory enum which converts the enum value into
- // the group title.
- internal static class ProcessCategoryExtensions {
- public static string ToGroupTitle(this ProcessCategory category) {
- switch (category) {
- case ProcessCategory.DelegateExecute:
- return "Delegate Execute";
- case ProcessCategory.MetroViewer:
- return "Metro Viewer";
- default:
- return category.ToString();
- }
- }
- }
-}
diff --git a/tools/win/ChromeDebug/ChromeDebug/ProcessDetail.cs b/tools/win/ChromeDebug/ChromeDebug/ProcessDetail.cs
deleted file mode 100644
index fbbb358..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/ProcessDetail.cs
+++ /dev/null
@@ -1,238 +0,0 @@
-// Copyright 2013 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.
-
-using Microsoft.Win32.SafeHandles;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-using ChromeDebug.LowLevel;
-
-namespace ChromeDebug {
- internal class ProcessDetail : IDisposable {
- public ProcessDetail(int pid) {
- // Initialize everything to null in case something fails.
- this.processId = pid;
- this.processHandleFlags = LowLevelTypes.ProcessAccessFlags.NONE;
- this.cachedProcessBasicInfo = null;
- this.machineTypeIsLoaded = false;
- this.machineType = LowLevelTypes.MachineType.UNKNOWN;
- this.cachedPeb = null;
- this.cachedProcessParams = null;
- this.cachedCommandLine = null;
- this.processHandle = IntPtr.Zero;
-
- OpenAndCacheProcessHandle();
- }
-
- // Returns the machine type (x86, x64, etc) of this process. Uses lazy evaluation and caches
- // the result.
- public LowLevelTypes.MachineType MachineType {
- get {
- if (machineTypeIsLoaded)
- return machineType;
- if (!CanQueryProcessInformation)
- return LowLevelTypes.MachineType.UNKNOWN;
-
- CacheMachineType();
- return machineType;
- }
- }
-
- // Returns the command line that this process was launched with. Uses lazy evaluation and
- // caches the result. Reads the command line from the PEB of the running process.
- public string CommandLine {
- get {
- if (!CanReadPeb)
- throw new InvalidOperationException();
- CacheProcessInformation();
- CachePeb();
- CacheProcessParams();
- CacheCommandLine();
- return cachedCommandLine;
- }
- }
-
- // Determines if we have permission to read the process's PEB.
- public bool CanReadPeb {
- get {
- LowLevelTypes.ProcessAccessFlags required_flags =
- LowLevelTypes.ProcessAccessFlags.VM_READ
- | LowLevelTypes.ProcessAccessFlags.QUERY_INFORMATION;
-
- // In order to read the PEB, we must have *both* of these flags.
- if ((processHandleFlags & required_flags) != required_flags)
- return false;
-
- // If we're on a 64-bit OS, in a 32-bit process, and the target process is not 32-bit,
- // we can't read its PEB.
- if (Environment.Is64BitOperatingSystem && !Environment.Is64BitProcess
- && (MachineType != LowLevelTypes.MachineType.X86))
- return false;
-
- return true;
- }
- }
-
- // If we can't read the process's PEB, we may still be able to get other kinds of information
- // from the process. This flag determines if we can get lesser information.
- private bool CanQueryProcessInformation {
- get {
- LowLevelTypes.ProcessAccessFlags required_flags =
- LowLevelTypes.ProcessAccessFlags.QUERY_LIMITED_INFORMATION
- | LowLevelTypes.ProcessAccessFlags.QUERY_INFORMATION;
-
- // In order to query the process, we need *either* of these flags.
- return (processHandleFlags & required_flags) != LowLevelTypes.ProcessAccessFlags.NONE;
- }
- }
-
- // Loads the top-level structure of the process's information block and caches it.
- private void CacheProcessInformation() {
- System.Diagnostics.Debug.Assert(CanReadPeb);
-
- // Fetch the process info and set the fields.
- LowLevelTypes.PROCESS_BASIC_INFORMATION temp = new LowLevelTypes.PROCESS_BASIC_INFORMATION();
- int size;
- LowLevelTypes.NTSTATUS status = NativeMethods.NtQueryInformationProcess(
- processHandle,
- LowLevelTypes.PROCESSINFOCLASS.PROCESS_BASIC_INFORMATION,
- ref temp,
- Utility.UnmanagedStructSize<LowLevelTypes.PROCESS_BASIC_INFORMATION>(),
- out size);
-
- if (status != LowLevelTypes.NTSTATUS.SUCCESS) {
- throw new Win32Exception();
- }
-
- cachedProcessBasicInfo = temp;
- }
-
- // Follows a pointer from the PROCESS_BASIC_INFORMATION structure in the target process's
- // address space to read the PEB.
- private void CachePeb() {
- System.Diagnostics.Debug.Assert(CanReadPeb);
-
- if (cachedPeb == null) {
- cachedPeb = Utility.ReadUnmanagedStructFromProcess<LowLevelTypes.PEB>(
- processHandle,
- cachedProcessBasicInfo.Value.PebBaseAddress);
- }
- }
-
- // Follows a pointer from the PEB structure in the target process's address space to read the
- // RTL_USER_PROCESS_PARAMETERS structure.
- private void CacheProcessParams() {
- System.Diagnostics.Debug.Assert(CanReadPeb);
-
- if (cachedProcessParams == null) {
- cachedProcessParams =
- Utility.ReadUnmanagedStructFromProcess<LowLevelTypes.RTL_USER_PROCESS_PARAMETERS>(
- processHandle, cachedPeb.Value.ProcessParameters);
- }
- }
-
- private void CacheCommandLine() {
- System.Diagnostics.Debug.Assert(CanReadPeb);
-
- if (cachedCommandLine == null) {
- cachedCommandLine = Utility.ReadStringUniFromProcess(
- processHandle,
- cachedProcessParams.Value.CommandLine.Buffer,
- cachedProcessParams.Value.CommandLine.Length / 2);
- }
- }
-
- private void CacheMachineType() {
- System.Diagnostics.Debug.Assert(CanQueryProcessInformation);
-
- StringBuilder moduleBuffer = new StringBuilder(1024);
- int size = moduleBuffer.Capacity;
-
- // If our extension is running in a 32-bit process (which it is), then attempts to access
- // files in C:\windows\system (and a few other files) will redirect to C:\Windows\SysWOW64
- // and we will mistakenly think that the image file is a 32-bit image. The way around this
- // is to use a native system format path, of the form:
- // \\?\GLOBALROOT\Device\HarddiskVolume0\Windows\System\foo.dat
- // By using the NATIVE_SYSTEM_FORMAT flag to QueryFullProcessImageName, we can get the path
- // in this format.
- NativeMethods.QueryFullProcessImageName(
- processHandle,
- LowLevelTypes.ProcessQueryImageNameMode.NATIVE_SYSTEM_FORMAT,
- moduleBuffer,
- ref size);
- moduleBuffer.Insert(0, "\\\\?\\GLOBALROOT");
- string module = moduleBuffer.ToString();
-
- // Open the PE File as a binary file, and parse just enough information to determine the
- // machine type.
- //http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx
- using (SafeFileHandle safeHandle = NativeMethods.CreateFile(
- module,
- LowLevelTypes.FileAccessFlags.GENERIC_READ,
- LowLevelTypes.FileShareFlags.SHARE_READ,
- IntPtr.Zero,
- LowLevelTypes.FileCreationDisposition.OPEN_EXISTING,
- LowLevelTypes.FileFlagsAndAttributes.NORMAL,
- IntPtr.Zero)) {
- FileStream fs = new FileStream(safeHandle, FileAccess.Read);
- using (BinaryReader br = new BinaryReader(fs)) {
- fs.Seek(0x3c, SeekOrigin.Begin);
- Int32 peOffset = br.ReadInt32();
- fs.Seek(peOffset, SeekOrigin.Begin);
- UInt32 peHead = br.ReadUInt32();
- if (peHead != 0x00004550) // "PE\0\0", little-endian
- throw new Exception("Can't find PE header");
- machineType = (LowLevelTypes.MachineType)br.ReadUInt16();
- machineTypeIsLoaded = true;
- }
- }
- }
-
- private void OpenAndCacheProcessHandle() {
- // Try to open a handle to the process with the highest level of privilege, but if we can't
- // do that then fallback to requesting access with a lower privilege level.
- processHandleFlags = LowLevelTypes.ProcessAccessFlags.QUERY_INFORMATION
- | LowLevelTypes.ProcessAccessFlags.VM_READ;
- processHandle = NativeMethods.OpenProcess(processHandleFlags, false, processId);
- if (processHandle == IntPtr.Zero) {
- processHandleFlags = LowLevelTypes.ProcessAccessFlags.QUERY_LIMITED_INFORMATION;
- processHandle = NativeMethods.OpenProcess(processHandleFlags, false, processId);
- if (processHandle == IntPtr.Zero) {
- processHandleFlags = LowLevelTypes.ProcessAccessFlags.NONE;
- throw new Win32Exception();
- }
- }
- }
-
- // An open handle to the process, along with the set of access flags that the handle was
- // open with.
- private int processId;
- private IntPtr processHandle;
- LowLevelTypes.ProcessAccessFlags processHandleFlags;
-
- // The machine type is read by parsing the PE image file of the running process, so we cache
- // its value since the operation expensive.
- private bool machineTypeIsLoaded;
- private LowLevelTypes.MachineType machineType;
-
- // The following fields exist ultimately so that we can access the command line. However,
- // each field must be read separately through a pointer into another process's address
- // space so the access is expensive, hence we cache the values.
- private Nullable<LowLevelTypes.PROCESS_BASIC_INFORMATION> cachedProcessBasicInfo;
- private Nullable<LowLevelTypes.PEB> cachedPeb;
- private Nullable<LowLevelTypes.RTL_USER_PROCESS_PARAMETERS> cachedProcessParams;
- private string cachedCommandLine;
-
- public void Dispose() {
- if (processHandle != IntPtr.Zero)
- NativeMethods.CloseHandle(processHandle);
- processHandle = IntPtr.Zero;
- }
- }
-}
diff --git a/tools/win/ChromeDebug/ChromeDebug/Properties/AssemblyInfo.cs b/tools/win/ChromeDebug/ChromeDebug/Properties/AssemblyInfo.cs
deleted file mode 100644
index 9f9923e..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System;
-using System.Reflection;
-using System.Resources;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("ChromeDebug")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("The Chromium Authors")]
-[assembly: AssemblyProduct("ChromeDebug")]
-[assembly: AssemblyCopyright("")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-[assembly: ComVisible(false)]
-[assembly: CLSCompliant(false)]
-[assembly: NeutralResourcesLanguage("en-US")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers
-// by using the '*' as shown below:
-
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
-
-
-
diff --git a/tools/win/ChromeDebug/ChromeDebug/Resources.Designer.cs b/tools/win/ChromeDebug/ChromeDebug/Resources.Designer.cs
deleted file mode 100644
index 529a0a7..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/Resources.Designer.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-//------------------------------------------------------------------------------
-// <auto-generated>
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.33439
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-// </auto-generated>
-//------------------------------------------------------------------------------
-
-namespace ChromeDebug {
- using System;
-
-
- /// <summary>
- /// A strongly-typed resource class, for looking up localized strings, etc.
- /// </summary>
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources() {
- }
-
- /// <summary>
- /// Returns the cached ResourceManager instance used by this class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ChromeDebug.Resources", typeof(Resources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- /// <summary>
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- /// </summary>
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
- }
-}
diff --git a/tools/win/ChromeDebug/ChromeDebug/Resources.resx b/tools/win/ChromeDebug/ChromeDebug/Resources.resx
deleted file mode 100644
index 9fa8826..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/Resources.resx
+++ /dev/null
@@ -1,140 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- VS SDK Notes: This resx file contains the resources that will be consumed directly by your
- package. For example, if you chose to create a tool window, there is a resource with ID
- 'CanNotCreateWindow'. This is used in VsPkg.cs to determine the string to show the user if
- there is an error when attempting to create the tool window.
-
- Resources that are accessed directly from your package *by Visual Studio* are stored in the
- VSPackage.resx file.
--->
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">
- System.Resources.ResXResourceReader, System.Windows.Forms, ...
- </resheader>
- <resheader name="writer">
- System.Resources.ResXResourceWriter, System.Windows.Forms, ...
- </resheader>
- <data name="Name1">
- <value>this is my long string</value>
- <comment>this is a comment</comment>
- </data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing"
- mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- [base64 mime encoded string representing a byte array form of the .NET Framework object]
- </value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" use="required" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
-</root> \ No newline at end of file
diff --git a/tools/win/ChromeDebug/ChromeDebug/Utility.cs b/tools/win/ChromeDebug/ChromeDebug/Utility.cs
deleted file mode 100644
index bdba408..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/Utility.cs
+++ /dev/null
@@ -1,85 +0,0 @@
-// Copyright 2013 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.
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Threading.Tasks;
-
-using ChromeDebug.LowLevel;
-
-namespace ChromeDebug {
- internal static class Utility {
- public static string[] SplitArgs(string unsplitArgumentLine) {
- if (unsplitArgumentLine == null)
- return new string[0];
-
- int numberOfArgs;
- IntPtr ptrToSplitArgs;
- string[] splitArgs;
-
- ptrToSplitArgs = NativeMethods.CommandLineToArgvW(unsplitArgumentLine, out numberOfArgs);
-
- // CommandLineToArgvW returns NULL upon failure.
- if (ptrToSplitArgs == IntPtr.Zero)
- throw new ArgumentException("Unable to split argument.", new Win32Exception());
-
- // Make sure the memory ptrToSplitArgs to is freed, even upon failure.
- try {
- splitArgs = new string[numberOfArgs];
-
- // ptrToSplitArgs is an array of pointers to null terminated Unicode strings.
- // Copy each of these strings into our split argument array.
- for (int i = 0; i < numberOfArgs; i++)
- splitArgs[i] = Marshal.PtrToStringUni(
- Marshal.ReadIntPtr(ptrToSplitArgs, i * IntPtr.Size));
-
- return splitArgs;
- }
- finally {
- // Free memory obtained by CommandLineToArgW.
- NativeMethods.LocalFree(ptrToSplitArgs);
- }
- }
-
- public static T ReadUnmanagedStructFromProcess<T>(IntPtr processHandle,
- IntPtr addressInProcess) {
- int bytesRead;
- int bytesToRead = Marshal.SizeOf(typeof(T));
- IntPtr buffer = Marshal.AllocHGlobal(bytesToRead);
- if (!NativeMethods.ReadProcessMemory(processHandle, addressInProcess, buffer, bytesToRead,
- out bytesRead))
- throw new Win32Exception();
- T result = (T)Marshal.PtrToStructure(buffer, typeof(T));
- Marshal.FreeHGlobal(buffer);
- return result;
- }
-
- public static string ReadStringUniFromProcess(IntPtr processHandle,
- IntPtr addressInProcess,
- int NumChars) {
- int bytesRead;
- IntPtr outBuffer = Marshal.AllocHGlobal(NumChars * 2);
-
- bool bresult = NativeMethods.ReadProcessMemory(processHandle,
- addressInProcess,
- outBuffer,
- NumChars * 2,
- out bytesRead);
- if (!bresult)
- throw new Win32Exception();
-
- string result = Marshal.PtrToStringUni(outBuffer, bytesRead / 2);
- Marshal.FreeHGlobal(outBuffer);
- return result;
- }
-
- public static int UnmanagedStructSize<T>() {
- return Marshal.SizeOf(typeof(T));
- }
- }
-}
diff --git a/tools/win/ChromeDebug/ChromeDebug/VSPackage.resx b/tools/win/ChromeDebug/ChromeDebug/VSPackage.resx
deleted file mode 100644
index 36cd9ee..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/VSPackage.resx
+++ /dev/null
@@ -1,151 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- VS SDK Notes: This resx file contains the resources that will be consumed from your package by
- Visual Studio. For example, Visual Studio will attempt to load resource '400' from this
- resource stream when it needs to load your package's icon. Because Visual Studio will always
- look in the VSPackage.resources stream first for resources it needs, you should put additional
- resources that Visual Studio will load directly into this resx file.
-
- Resources that you would like to access directly from your package in a strong-typed fashion
- should be stored in Resources.resx or another resx file.
--->
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">
- System.Resources.ResXResourceReader, System.Windows.Forms, ...
- </resheader>
- <resheader name="writer">
- System.Resources.ResXResourceWriter, System.Windows.Forms, ...
- </resheader>
- <data name="Name1">
- <value>this is my long string</value>
- <comment>this is a comment</comment>
- </data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing"
- mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>
- [base64 mime encoded string representing a byte array form of the .NET Framework object]
- </value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" use="required" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
- <data name="110" xml:space="preserve">
- <value>ChromeDebug</value>
- </data>
- <data name="112" xml:space="preserve">
- <value>Advanced Debugging Features</value>
- </data>
- <data name="400" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>Resources\Package.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
- </data>
-</root> \ No newline at end of file
diff --git a/tools/win/ChromeDebug/ChromeDebug/source.extension.vsixmanifest b/tools/win/ChromeDebug/ChromeDebug/source.extension.vsixmanifest
deleted file mode 100644
index c0814aa..0000000
--- a/tools/win/ChromeDebug/ChromeDebug/source.extension.vsixmanifest
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011"
- xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
- <Metadata>
- <Identity Id="7de8bbab-82c7-4871-b82c-4d5d44a3979d" Version="1.0" Language="en-US"
- Publisher="The Chromium Authors" />
- <DisplayName>ChromeDebug</DisplayName>
- <Description xml:space="preserve">Debugging Features for Chromium</Description>
- <License>LICENSE</License>
- </Metadata>
- <Installation InstalledByMsi="false">
- <InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[11.0,12.0]" />
- </Installation>
- <Dependencies>
- <Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework"
- d:Source="Manual" Version="4.5" />
- <Dependency Id="Microsoft.VisualStudio.MPF.11.0" DisplayName="Visual Studio MPF 11.0"
- d:Source="Installed" Version="11.0" />
- </Dependencies>
- <Assets>
- <Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project"
- d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
- </Assets>
-</PackageManifest>
diff --git a/tools/win/ChromeDebug/LowLevel/LowLevel.csproj b/tools/win/ChromeDebug/LowLevel/LowLevel.csproj
deleted file mode 100644
index 4649f33..0000000
--- a/tools/win/ChromeDebug/LowLevel/LowLevel.csproj
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProjectGuid>{998C0725-F123-4ED3-9D44-12C1945F00D1}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>LowLevel</RootNamespace>
- <AssemblyName>LowLevel</AssemblyName>
- <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup>
- <SignAssembly>true</SignAssembly>
- </PropertyGroup>
- <PropertyGroup>
- <AssemblyOriginatorKeyFile>
- </AssemblyOriginatorKeyFile>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Xml.Linq" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System.Data" />
- <Reference Include="System.Xml" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="NativeMethods.cs" />
- <Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="Types.cs" />
- </ItemGroup>
- <ItemGroup>
- <None Include="Key.snk" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
-</Project> \ No newline at end of file
diff --git a/tools/win/ChromeDebug/LowLevel/NativeMethods.cs b/tools/win/ChromeDebug/LowLevel/NativeMethods.cs
deleted file mode 100644
index 4fb46fd..0000000
--- a/tools/win/ChromeDebug/LowLevel/NativeMethods.cs
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright 2013 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.
-
-using Microsoft.Win32.SafeHandles;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace ChromeDebug.LowLevel {
- public static class NativeMethods {
- [DllImport("kernel32.dll", SetLastError = true)]
- [return: MarshalAs(UnmanagedType.Bool)]
- public static extern bool ReadProcessMemory(IntPtr hProcess,
- IntPtr lpBaseAddress,
- IntPtr lpBuffer,
- int dwSize,
- out int lpNumberOfBytesRead);
-
- [DllImport("ntdll.dll", SetLastError = true)]
- public static extern LowLevelTypes.NTSTATUS NtQueryInformationProcess(
- IntPtr hProcess,
- LowLevelTypes.PROCESSINFOCLASS pic,
- ref LowLevelTypes.PROCESS_BASIC_INFORMATION pbi,
- int cb,
- out int pSize);
-
- [DllImport("shell32.dll", SetLastError = true)]
- public static extern IntPtr CommandLineToArgvW(
- [MarshalAs(UnmanagedType.LPWStr)] string lpCmdLine,
- out int pNumArgs);
-
- [DllImport("kernel32.dll", SetLastError = true)]
- public static extern IntPtr LocalFree(IntPtr hMem);
-
- [DllImport("kernel32.dll", SetLastError = true)]
- public static extern IntPtr OpenProcess(
- LowLevelTypes.ProcessAccessFlags dwDesiredAccess,
- [MarshalAs(UnmanagedType.Bool)] bool bInheritHandle,
- int dwProcessId);
-
- [DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.StdCall,
- CharSet = CharSet.Unicode)]
- public static extern uint QueryFullProcessImageName(
- IntPtr hProcess,
- [MarshalAs(UnmanagedType.U4)] LowLevelTypes.ProcessQueryImageNameMode flags,
- [Out] StringBuilder lpImageName, ref int size);
-
- [DllImport("kernel32.dll", SetLastError = true)]
- [return: MarshalAs(UnmanagedType.Bool)]
- public static extern bool CloseHandle(IntPtr hObject);
-
- [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
- public static extern SafeFileHandle CreateFile(string lpFileName,
- LowLevelTypes.FileAccessFlags dwDesiredAccess,
- LowLevelTypes.FileShareFlags dwShareMode,
- IntPtr lpSecurityAttributes,
- LowLevelTypes.FileCreationDisposition dwDisp,
- LowLevelTypes.FileFlagsAndAttributes dwFlags,
- IntPtr hTemplateFile);
- }
-}
diff --git a/tools/win/ChromeDebug/LowLevel/Properties/AssemblyInfo.cs b/tools/win/ChromeDebug/LowLevel/Properties/AssemblyInfo.cs
deleted file mode 100644
index 396cf2c..0000000
--- a/tools/win/ChromeDebug/LowLevel/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("LowLevel")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("LowLevel")]
-[assembly: AssemblyCopyright("Copyright © 2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("5bfd12c9-dfa1-4994-b31d-755f3e064640")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/tools/win/ChromeDebug/LowLevel/Types.cs b/tools/win/ChromeDebug/LowLevel/Types.cs
deleted file mode 100644
index 17fc19b..0000000
--- a/tools/win/ChromeDebug/LowLevel/Types.cs
+++ /dev/null
@@ -1,177 +0,0 @@
-// Copyright 2013 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.
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.InteropServices;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace ChromeDebug.LowLevel {
- // Defines structures, enumerations, and types used by Win32 API calls. In some cases, the API
- // calls support (and even document) many more values than what are listed here. Should
- // additional values be required, they can be added to the respective types.
- public static class LowLevelTypes {
-
- #region Constants and Enums
- // Represents the image format of a DLL or executable.
- public enum ImageFormat {
- NATIVE,
- MANAGED,
- UNKNOWN
- }
-
- // Flags used for opening a file handle (e.g. in a call to CreateFile), that determine the
- // requested permission level.
- [Flags]
- public enum FileAccessFlags : uint {
- GENERIC_WRITE = 0x40000000,
- GENERIC_READ = 0x80000000
- }
-
- // Value used for CreateFile to determine how to behave in the presence (or absence) of a
- // file with the requested name. Used only for CreateFile.
- public enum FileCreationDisposition : uint {
- CREATE_NEW = 1,
- CREATE_ALWAYS = 2,
- OPEN_EXISTING = 3,
- OPEN_ALWAYS = 4,
- TRUNCATE_EXISTING = 5
- }
-
- // Flags that determine what level of sharing this application requests on the target file.
- // Used only for CreateFile.
- [Flags]
- public enum FileShareFlags : uint {
- EXCLUSIVE_ACCESS = 0x0,
- SHARE_READ = 0x1,
- SHARE_WRITE = 0x2,
- SHARE_DELETE = 0x4
- }
-
- // Flags that control caching and other behavior of the underlying file object. Used only for
- // CreateFile.
- [Flags]
- public enum FileFlagsAndAttributes : uint {
- NORMAL = 0x80,
- OPEN_REPARSE_POINT = 0x200000,
- SEQUENTIAL_SCAN = 0x8000000,
- RANDOM_ACCESS = 0x10000000,
- NO_BUFFERING = 0x20000000,
- OVERLAPPED = 0x40000000
- }
-
- // The target architecture of a given executable image. The various values correspond to the
- // magic numbers defined by the PE Executable Image File Format.
- // http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx
- public enum MachineType : ushort {
- UNKNOWN = 0x0,
- X64 = 0x8664,
- X86 = 0x14c,
- IA64 = 0x200
- }
-
- // A flag indicating the format of the path string that Windows returns from a call to
- // QueryFullProcessImageName().
- public enum ProcessQueryImageNameMode : uint {
- WIN32_FORMAT = 0,
- NATIVE_SYSTEM_FORMAT = 1
- }
-
- // Flags indicating the level of permission requested when opening a handle to an external
- // process. Used by OpenProcess().
- [Flags]
- public enum ProcessAccessFlags : uint {
- NONE = 0x0,
- ALL = 0x001F0FFF,
- VM_OPERATION = 0x00000008,
- VM_READ = 0x00000010,
- QUERY_INFORMATION = 0x00000400,
- QUERY_LIMITED_INFORMATION = 0x00001000
- }
-
- // Defines return value codes used by various Win32 System APIs.
- public enum NTSTATUS : int {
- SUCCESS = 0,
- }
-
- // Determines the amount of information requested (and hence the type of structure returned)
- // by a call to NtQueryInformationProcess.
- public enum PROCESSINFOCLASS : int {
- PROCESS_BASIC_INFORMATION = 0
- };
- #endregion
-
- #region Structures
- // In general, for all structures below which contains a pointer (represented here by IntPtr),
- // the pointers refer to memory in the address space of the process from which the original
- // structure was read. While this seems obvious, it means we cannot provide an elegant
- // interface to the various fields in the structure due to the de-reference requiring a
- // handle to the target process. Instead, that functionality needs to be provided at a
- // higher level.
- //
- // Additionally, since we usually explicitly define the fields that we're interested in along
- // with their respective offsets, we frequently specify the exact size of the native structure.
-
- // Win32 UNICODE_STRING structure.
- [StructLayout(LayoutKind.Sequential)]
- public struct UNICODE_STRING {
- // The length in bytes of the string pointed to by buffer, not including the null-terminator.
- private ushort length;
- // The total allocated size in memory pointed to by buffer.
- private ushort maximumLength;
- // A pointer to the buffer containing the string data.
- private IntPtr buffer;
-
- public ushort Length { get { return length; } }
- public ushort MaximumLength { get { return maximumLength; } }
- public IntPtr Buffer { get { return buffer; } }
- }
-
- // Win32 RTL_USER_PROCESS_PARAMETERS structure.
- [StructLayout(LayoutKind.Explicit, Size = 72)]
- public struct RTL_USER_PROCESS_PARAMETERS {
- [FieldOffset(56)]
- private UNICODE_STRING imagePathName;
- [FieldOffset(64)]
- private UNICODE_STRING commandLine;
-
- public UNICODE_STRING ImagePathName { get { return imagePathName; } }
- public UNICODE_STRING CommandLine { get { return commandLine; } }
- };
-
- // Win32 PEB structure. Represents the process environment block of a process.
- [StructLayout(LayoutKind.Explicit, Size = 472)]
- public struct PEB {
- [FieldOffset(2), MarshalAs(UnmanagedType.U1)]
- private bool isBeingDebugged;
- [FieldOffset(12)]
- private IntPtr ldr;
- [FieldOffset(16)]
- private IntPtr processParameters;
- [FieldOffset(468)]
- private uint sessionId;
-
- public bool IsBeingDebugged { get { return isBeingDebugged; } }
- public IntPtr Ldr { get { return ldr; } }
- public IntPtr ProcessParameters { get { return processParameters; } }
- public uint SessionId { get { return sessionId; } }
- };
-
- // Win32 PROCESS_BASIC_INFORMATION. Contains a pointer to the PEB, and various other
- // information about a process.
- [StructLayout(LayoutKind.Explicit, Size = 24)]
- public struct PROCESS_BASIC_INFORMATION {
- [FieldOffset(4)]
- private IntPtr pebBaseAddress;
- [FieldOffset(16)]
- private UIntPtr uniqueProcessId;
-
- public IntPtr PebBaseAddress { get { return pebBaseAddress; } }
- public UIntPtr UniqueProcessId { get { return uniqueProcessId; } }
- }
- #endregion
- }
-}
diff --git a/tools/win/ChromeDebug/README.txt b/tools/win/ChromeDebug/README.txt
deleted file mode 100644
index 6039462..0000000
--- a/tools/win/ChromeDebug/README.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Usage Instructions:
-
-1) Compile with VS2012 or VS2013.
-2) Double click the .vsix in the output directory.
-3) Choose the version of VS to install to. \ No newline at end of file