| Index: chrome/browser/extensions/api/serial/serial_port_enumerator_posix.cc
|
| diff --git a/chrome/browser/extensions/api/serial/serial_port_enumerator_posix.cc b/chrome/browser/extensions/api/serial/serial_port_enumerator_posix.cc
|
| deleted file mode 100644
|
| index d491d12c952d6dfcbf7d83beca331a41a20c3d35..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/extensions/api/serial/serial_port_enumerator_posix.cc
|
| +++ /dev/null
|
| @@ -1,97 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/extensions/api/serial/serial_port_enumerator.h"
|
| -
|
| -#include "base/file_util.h"
|
| -#include "base/files/file_enumerator.h"
|
| -#include "base/files/file_path.h"
|
| -#include "base/strings/string_util.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -
|
| -using content::BrowserThread;
|
| -
|
| -namespace extensions {
|
| -
|
| -// static
|
| -SerialPortEnumerator::StringSet SerialPortEnumerator::GenerateValidPatterns() {
|
| - // TODO(miket): the set of patterns should be larger. See the rxtx project.
|
| - //
|
| - // TODO(miket): The list of patterns tested at runtime should also be
|
| - // OS-dependent.
|
| - const char* VALID_PATTERNS[] = {
|
| - "/dev/*Bluetooth*",
|
| - "/dev/*Modem*",
|
| - "/dev/*bluetooth*",
|
| - "/dev/*modem*",
|
| - "/dev/*serial*",
|
| - "/dev/ttyACM*",
|
| - "/dev/ttyS*",
|
| - "/dev/ttyUSB*",
|
| - "/dev/tty.SLAB_*",
|
| - "/dev/cu.SLAB_*",
|
| - };
|
| -
|
| - StringSet valid_patterns;
|
| - for (size_t i = 0; i < arraysize(VALID_PATTERNS); ++i)
|
| - valid_patterns.insert(VALID_PATTERNS[i]);
|
| -
|
| - return valid_patterns;
|
| -}
|
| -
|
| -// static
|
| -//
|
| -// TODO(miket): Investigate udev. Search for equivalent solutions on OSX.
|
| -// Continue to examine rxtx code.
|
| -//
|
| -// On a fairly ordinary Linux machine, ls -l /dev | wc -l returned about 200
|
| -// items. So we're doing about N(VALID_PATTERNS) * 200 = 1,600 MatchPattern
|
| -// calls to find maybe a dozen serial ports in a small number of milliseconds
|
| -// (a single trial of SerialPortEnumeratorTest.ValidPortNames took 6ms to run).
|
| -// It's not cheap, but then again, we don't expect users of this API to be
|
| -// enumerating too often (at worst on every click of a UI element that displays
|
| -// the generated list).
|
| -//
|
| -// An upside-down approach would instead take each pattern and turn it into a
|
| -// string generator (something like /dev/ttyS[0-9]{0,3}) and then expanding
|
| -// that into a series of possible paths, perhaps early-outing if we knew that
|
| -// port patterns were contiguous (e.g., /dev/ttyS1 can't exist if /dev/ttyS0
|
| -// doesn't exist).
|
| -//
|
| -// Caching seems undesirable. Many devices can be dynamically added to and
|
| -// removed from the system, so we really do want to regenerate the set each
|
| -// time.
|
| -//
|
| -// TODO(miket): this might be refactorable into serial_connection.cc, if
|
| -// Windows serial-port enumeration also entails looking through a directory.
|
| -SerialPortEnumerator::StringSet
|
| -SerialPortEnumerator::GenerateValidSerialPortNames() {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
|
| - const base::FilePath kDevRoot("/dev");
|
| - const int kFilesAndSymLinks =
|
| - base::FileEnumerator::FILES |
|
| - base::FileEnumerator::SHOW_SYM_LINKS;
|
| -
|
| - StringSet valid_patterns = GenerateValidPatterns();
|
| - StringSet name_set;
|
| - base::FileEnumerator enumerator(kDevRoot, false, kFilesAndSymLinks);
|
| - do {
|
| - const base::FilePath next_device_path(enumerator.Next());
|
| - const std::string next_device = next_device_path.value();
|
| - if (next_device.empty())
|
| - break;
|
| -
|
| - StringSet::const_iterator i = valid_patterns.begin();
|
| - for (; i != valid_patterns.end(); ++i) {
|
| - if (MatchPattern(next_device, *i)) {
|
| - name_set.insert(next_device);
|
| - break;
|
| - }
|
| - }
|
| - } while (true);
|
| -
|
| - return name_set;
|
| -}
|
| -
|
| -} // namespace extensions
|
|
|