// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "components/wifi/wifi_service.h"

namespace wifi {

const char WiFiService::kErrorAssociateToNetwork[] = "Error.AssociateToNetwork";
const char WiFiService::kErrorInvalidData[] = "Error.InvalidData";
const char WiFiService::kErrorNotConfigured[] ="Error.NotConfigured";
const char WiFiService::kErrorNotConnected[] = "Error.NotConnected";
const char WiFiService::kErrorNotFound[] = "Error.NotFound";
const char WiFiService::kErrorNotImplemented[] = "Error.NotImplemented";
const char WiFiService::kErrorScanForNetworksWithName[] =
    "Error.ScanForNetworksWithName";
const char WiFiService::kErrorWiFiService[] = "Error.WiFiService";

}  // namespace wifi
