Commit 7b5fbbae authored by proberge's avatar proberge Committed by Commit Bot

Remove all references to inlineInstallPrivate

InlineInstallPrivate seems to have been an experimental API developed
to allow apps to install other apps and extensions. It seems like it was
never launched.

Since regular inline installation is being removed, we should probably remove
this API as well.

Bug: 882045
Change-Id: Iefa97bd46cc38873d1a3d07292d45b2188c8f637
Reviewed-on: https://chromium-review.googlesource.com/c/1265558
Commit-Queue: proberge <proberge@chromium.org>
Reviewed-by: default avatarDevlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600877}
parent 55f0b2e3
...@@ -226,8 +226,6 @@ jumbo_static_library("extensions") { ...@@ -226,8 +226,6 @@ jumbo_static_library("extensions") {
"api/image_writer_private/write_from_file_operation.h", "api/image_writer_private/write_from_file_operation.h",
"api/image_writer_private/write_from_url_operation.cc", "api/image_writer_private/write_from_url_operation.cc",
"api/image_writer_private/write_from_url_operation.h", "api/image_writer_private/write_from_url_operation.h",
"api/inline_install_private/inline_install_private_api.cc",
"api/inline_install_private/inline_install_private_api.h",
"api/instance_id/instance_id_api.cc", "api/instance_id/instance_id_api.cc",
"api/instance_id/instance_id_api.h", "api/instance_id/instance_id_api.h",
"api/language_settings_private/language_settings_private_api.cc", "api/language_settings_private/language_settings_private_api.cc",
......
// Copyright 2014 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/inline_install_private/inline_install_private_api.h"
#include "base/bind.h"
#include "base/memory/ptr_util.h"
#include "base/strings/string_number_conversions.h"
#include "chrome/browser/extensions/webstore_install_with_prompt.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/common/extensions/api/inline_install_private.h"
#include "chrome/common/extensions/api/webstore/webstore_api_constants.h"
#include "components/crx_file/id_util.h"
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/extension_registry.h"
#include "extensions/browser/view_type_utils.h"
namespace extensions {
namespace {
class Installer : public WebstoreInstallWithPrompt {
public:
Installer(const std::string& id,
const GURL& requestor_url,
Profile* profile,
const Callback& callback);
protected:
friend class base::RefCountedThreadSafe<Installer>;
~Installer() override;
std::unique_ptr<ExtensionInstallPrompt::Prompt> CreateInstallPrompt()
const override;
void OnManifestParsed() override;
GURL requestor_url_;
};
Installer::Installer(const std::string& id,
const GURL& requestor_url,
Profile* profile,
const Callback& callback) :
WebstoreInstallWithPrompt(id, profile, callback),
requestor_url_(requestor_url) {
set_show_post_install_ui(false);
}
Installer::~Installer() {
}
std::unique_ptr<ExtensionInstallPrompt::Prompt> Installer::CreateInstallPrompt()
const {
std::unique_ptr<ExtensionInstallPrompt::Prompt> prompt(
new ExtensionInstallPrompt::Prompt(
ExtensionInstallPrompt::WEBSTORE_WIDGET_PROMPT));
prompt->SetWebstoreData(localized_user_count(),
show_user_count(),
average_rating(),
rating_count());
return prompt;
}
void Installer::OnManifestParsed() {
if (manifest() == nullptr) {
CompleteInstall(webstore_install::INVALID_MANIFEST, std::string());
return;
}
Manifest parsed_manifest(Manifest::INTERNAL,
base::WrapUnique(manifest()->DeepCopy()));
std::string manifest_error;
std::vector<InstallWarning> warnings;
if (!parsed_manifest.is_platform_app()) {
CompleteInstall(webstore_install::NOT_PERMITTED, std::string());
return;
}
ProceedWithInstallPrompt();
}
} // namespace
InlineInstallPrivateInstallFunction::
InlineInstallPrivateInstallFunction() {
}
InlineInstallPrivateInstallFunction::
~InlineInstallPrivateInstallFunction() {
}
ExtensionFunction::ResponseAction
InlineInstallPrivateInstallFunction::Run() {
typedef api::inline_install_private::Install::Params Params;
std::unique_ptr<Params> params(Params::Create(*args_));
if (!user_gesture())
return RespondNow(CreateResponse("Must be called with a user gesture",
webstore_install::NOT_PERMITTED));
content::WebContents* web_contents = GetSenderWebContents();
if (!web_contents || GetViewType(web_contents) != VIEW_TYPE_APP_WINDOW) {
return RespondNow(CreateResponse("Must be called from a foreground page",
webstore_install::NOT_PERMITTED));
}
ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context());
if (registry->GetExtensionById(params->id, ExtensionRegistry::EVERYTHING))
return RespondNow(CreateResponse("Already installed",
webstore_install::OTHER_ERROR));
scoped_refptr<Installer> installer = new Installer(
params->id, source_url(), Profile::FromBrowserContext(browser_context()),
base::Bind(&InlineInstallPrivateInstallFunction::InstallerCallback,
this));
installer->BeginInstall();
return RespondLater();
}
void InlineInstallPrivateInstallFunction::InstallerCallback(
bool success,
const std::string& error,
webstore_install::Result result) {
Respond(CreateResponse(success ? std::string() : error, result));
}
ExtensionFunction::ResponseValue
InlineInstallPrivateInstallFunction::CreateResponse(
const std::string& error, webstore_install::Result result) {
return ArgumentList(api::inline_install_private::Install::Results::Create(
error,
api::webstore::kInstallResultCodes[result]));
}
} // namespace extensions
// Copyright 2014 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.
#ifndef CHROME_BROWSER_EXTENSIONS_API_INLINE_INSTALL_PRIVATE_INLINE_INSTALL_PRIVATE_API_H_
#define CHROME_BROWSER_EXTENSIONS_API_INLINE_INSTALL_PRIVATE_INLINE_INSTALL_PRIVATE_API_H_
#include <memory>
#include "chrome/common/extensions/webstore_install_result.h"
#include "extensions/browser/extension_function.h"
namespace extensions {
class InlineInstallPrivateInstallFunction
: public UIThreadExtensionFunction {
public:
InlineInstallPrivateInstallFunction();
protected:
~InlineInstallPrivateInstallFunction() override;
ResponseAction Run() override;
private:
void InstallerCallback(bool success,
const std::string& error,
webstore_install::Result result);
// Helper to create a response to be returned either synchronously or in
// InstallerCallback.
ResponseValue CreateResponse(const std::string& error,
webstore_install::Result result);
DECLARE_EXTENSION_FUNCTION("inlineInstallPrivate.install",
INLINE_INSTALL_PRIVATE_INSTALL);
};
} // namespace extensions
#endif // CHROME_BROWSER_EXTENSIONS_API_INLINE_INSTALL_PRIVATE_INLINE_INSTALL_PRIVATE_API_H_
// Copyright 2014 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 "base/command_line.h"
#include "chrome/browser/extensions/api/inline_install_private/inline_install_private_api.h"
#include "chrome/browser/extensions/extension_install_prompt.h"
#include "chrome/browser/extensions/webstore_installer_test.h"
#include "extensions/test/extension_test_message_listener.h"
namespace extensions {
class InlineInstallPrivateApiTestBase : public WebstoreInstallerTest {
public:
InlineInstallPrivateApiTestBase(const std::string& basedir,
const std::string& extension_file) :
WebstoreInstallerTest("cws.com",
basedir,
extension_file,
"test1.com",
"test2.com") {
}
void Run(const std::string& testName) {
AutoAcceptInstall();
base::FilePath test_driver_path = test_data_dir_.AppendASCII(
"api_test/inline_install_private/test_driver");
ExtensionTestMessageListener ready_listener("ready", true);
ExtensionTestMessageListener success_listener("success", false);
LoadExtension(test_driver_path);
EXPECT_TRUE(ready_listener.WaitUntilSatisfied());
ready_listener.Reply(testName);
ASSERT_TRUE(success_listener.WaitUntilSatisfied());
}
};
class InlineInstallPrivateApiTestApp :
public InlineInstallPrivateApiTestBase {
public:
InlineInstallPrivateApiTestApp() :
InlineInstallPrivateApiTestBase(
"extensions/api_test/inline_install_private",
"app.crx") {}
};
IN_PROC_BROWSER_TEST_F(InlineInstallPrivateApiTestApp, SuccessfulInstall) {
ExtensionFunction::ScopedUserGestureForTests gesture;
Run("successfulInstall");
}
IN_PROC_BROWSER_TEST_F(InlineInstallPrivateApiTestApp, BackgroundInstall) {
ExtensionFunction::ScopedUserGestureForTests gesture;
Run("backgroundInstall");
}
IN_PROC_BROWSER_TEST_F(InlineInstallPrivateApiTestApp, NoGesture) {
Run("noGesture");
}
class InlineInstallPrivateApiTestExtension :
public InlineInstallPrivateApiTestBase {
public:
InlineInstallPrivateApiTestExtension() :
InlineInstallPrivateApiTestBase(
"extensions/api_test/webstore_inline_install",
"extension.crx") {}
};
IN_PROC_BROWSER_TEST_F(InlineInstallPrivateApiTestExtension, OnlyApps) {
ExtensionFunction::ScopedUserGestureForTests gesture;
Run("onlyApps");
}
} // namespace extensions
...@@ -523,10 +523,6 @@ ...@@ -523,10 +523,6 @@
"dependencies": ["permission:idltest"], "dependencies": ["permission:idltest"],
"contexts": ["blessed_extension"] "contexts": ["blessed_extension"]
}, },
"inlineInstallPrivate": {
"dependencies": ["permission:inlineInstallPrivate"],
"contexts": ["blessed_extension"]
},
"input.ime": { "input.ime": {
"dependencies": ["permission:input"], "dependencies": ["permission:input"],
"contexts": ["blessed_extension"] "contexts": ["blessed_extension"]
......
...@@ -651,15 +651,6 @@ ...@@ -651,15 +651,6 @@
"0136FCB13DB29FD5CD442F56E59E53B61F1DF96F" // http://crbug.com/642141 "0136FCB13DB29FD5CD442F56E59E53B61F1DF96F" // http://crbug.com/642141
] ]
}, },
"inlineInstallPrivate": {
"channel": "dev",
"extension_types": ["platform_app"],
"whitelist": [
"8076E9E4DA0DF53B33BFAF0454D3C3B898F93273", // Test Extension
"3A78E13285C1949EF84AA85E3BF65D1E83A3D9AB", // Test Extension
"4477F0B4FE934D0A8C88922C0986DA7B25D881E1" // API Test
]
},
"resourcesPrivate": { "resourcesPrivate": {
"channel": "stable", "channel": "stable",
"extension_types": [ "extension_types": [
......
...@@ -44,7 +44,6 @@ schema_sources_ = [ ...@@ -44,7 +44,6 @@ schema_sources_ = [
"identity.idl", "identity.idl",
"identity_private.idl", "identity_private.idl",
"image_writer_private.idl", "image_writer_private.idl",
"inline_install_private.idl",
"instance_id.json", "instance_id.json",
"language_settings_private.idl", "language_settings_private.idl",
"manifest_types.json", "manifest_types.json",
......
// Copyright 2014 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.
// Private API to initiate inline install flow of other apps.
namespace inlineInstallPrivate {
// This returns a developer-readable error message in error and
// a string error code in errorCode (see $ref:webstore.ErrorCode)
callback ResultCallback = void (DOMString error,
DOMString errorCode);
interface Functions {
// This can currently only be used to install apps, but not extensions.
static void install(DOMString id,
optional ResultCallback callback);
};
};
...@@ -162,7 +162,6 @@ constexpr APIPermissionInfo::InitInfo permissions_to_register[] = { ...@@ -162,7 +162,6 @@ constexpr APIPermissionInfo::InitInfo permissions_to_register[] = {
APIPermissionInfo::kFlagCannotBeOptional}, APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kFirstRunPrivate, "firstRunPrivate", {APIPermission::kFirstRunPrivate, "firstRunPrivate",
APIPermissionInfo::kFlagCannotBeOptional}, APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kInlineInstallPrivate, "inlineInstallPrivate"},
{APIPermission::kSettingsPrivate, "settingsPrivate", {APIPermission::kSettingsPrivate, "settingsPrivate",
APIPermissionInfo::kFlagCannotBeOptional}, APIPermissionInfo::kFlagCannotBeOptional},
{APIPermission::kAutofillPrivate, "autofillPrivate", {APIPermission::kAutofillPrivate, "autofillPrivate",
......
...@@ -764,7 +764,6 @@ TEST(PermissionsTest, PermissionMessages) { ...@@ -764,7 +764,6 @@ TEST(PermissionsTest, PermissionMessages) {
skip.insert(APIPermission::kGcm); skip.insert(APIPermission::kGcm);
skip.insert(APIPermission::kIdle); skip.insert(APIPermission::kIdle);
skip.insert(APIPermission::kImeWindowEnabled); skip.insert(APIPermission::kImeWindowEnabled);
skip.insert(APIPermission::kInlineInstallPrivate);
skip.insert(APIPermission::kIdltest); skip.insert(APIPermission::kIdltest);
skip.insert(APIPermission::kOverrideEscFullscreen); skip.insert(APIPermission::kOverrideEscFullscreen);
skip.insert(APIPermission::kPointerLock); skip.insert(APIPermission::kPointerLock);
......
...@@ -1266,7 +1266,6 @@ test("browser_tests") { ...@@ -1266,7 +1266,6 @@ test("browser_tests") {
"../browser/extensions/api/image_writer_private/image_writer_private_apitest.cc", "../browser/extensions/api/image_writer_private/image_writer_private_apitest.cc",
"../browser/extensions/api/image_writer_private/test_utils.cc", "../browser/extensions/api/image_writer_private/test_utils.cc",
"../browser/extensions/api/image_writer_private/test_utils.h", "../browser/extensions/api/image_writer_private/test_utils.h",
"../browser/extensions/api/inline_install_private/inline_install_private_apitest.cc",
"../browser/extensions/api/input_ime/input_ime_apitest_chromeos.cc", "../browser/extensions/api/input_ime/input_ime_apitest_chromeos.cc",
"../browser/extensions/api/instance_id/instance_id_apitest.cc", "../browser/extensions/api/instance_id/instance_id_apitest.cc",
"../browser/extensions/api/management/management_api_browsertest.cc", "../browser/extensions/api/management/management_api_browsertest.cc",
......
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDofAfBjmMBM1Kh
LXPpLaSX6vrKUm4STddnZJHiHb+liaLngIqgoCtZ4Gmx4HADoZovBOt+3o4itayr
sdzYE/FLsaAmt49JoXxri89SoYvEuagjAw+0SgUB7q6ofvNXEVCSMT2UQ6fEEm5U
38Wn65UGsZcsx3IfXpRg7yhL17inhKxR+w3G4gjqUdmqeXNewFINXDzYNNQfae8x
uHp4NgTBSxp8MPVZfjiJSg2TivJj3Nx901qlTIH+Es9tSxJHQsA+f/YB8DIKF8+W
tiXbQ7i7oV3rg6NeWy5xkHLasJzxj7QzR8XJTtzIxfvVR+gmquClwxbjiSnOKUGE
fcFbVlpLAgMBAAECggEARuFRyAxuWPZZ0fQ2q7gTv5GPxtGc542+B7Lc23Cwdnrh
JO3G1jQfI3bNIsNHw4Ooq383gWW/Ngvnyi0fJO3nmmlcZ5F9aTiH444rtoi0QVVN
UudjCVer8SvhKlQSQtBvnTLQEH0UEC6CXvQeohSsSe8pJSjlvXSrjmY8BeuOS9wN
nmeXNT80pm0Y/3ojvCsvWe7Crp98XnKHiBedPnhKVX4adtkNpL9azeANnYc5h/hB
LmubA3CIUeSGUsTqlfYFHOgXiUJPZq3h3JTBUsNkEwMQGHuyQpPHig8dYXhs63Fn
LfsAQ9p8Xet4lVMmyGzWUgmmqZ4Eagd0FB4vKo6zEQKBgQD1nyuNzOeyCk+FYwB3
v4DJUe73Kuvw/Lb0d3a3sdSiDCCEa9kI0vhGMUj+3WDimaW+q7mT7Fbdh4DNr3pt
w+RDimEaN1Q52/tZEUpTZNIVFJGJ97Yjy8oKox5n2wToNYczaAJ5FpQF7DphEXAN
XCE6WSLaZCCNwTiz1q/blhMwaQKBgQDyTsHzGI4kUqsfx8WcGna/dteEANFjYuBp
YNoHeQOAIJCv2vlgagQjtMQd0o7hQOw9fx51v741Dk6Pjj2HWq7Eagz+IumnbNYA
fVDkZKA2rg42VHxtG0+NiNdk+JnT+OZTN1oT6p6mUuS4NcJ0+m84qsu2PEouJas5
s1yE3NNekwKBgGzFBeaPnPMM+dYZ13UwCvocHHS8PyvC3co4tQv35i+0qxm5IK11
r5h17tteca8nV2yuY0oMWRNVFEcBtHezTfxS5VlUsynELvRsYbu4ZAgNyb2NQs1r
S5eWULqxFOU3/x1Wq/Gve/F7gQbHUBW6fMR4AKUxvfDIZjHNmqblOK4xAoGBAIil
r60HWQnU8RpwD9oT9onNXIbd6zewSDxFWU/DiBzWwKHbzKz5vLHiPINQ/jC76z5X
FPd0lbDYC6fboIlXs52i7QbY64n2z8zg3yCeOtf7Wpp7FNx2/WslE8umgyHOiR2+
5na65pOHxeK4tpw/qz962n1ADNlvdtuIchGfczgvAoGBAMmCbiygMmaddQDUNouw
KaOTvMPuXwX9cbySZ872jcEY/JGqYVmvFh7NQqyMLkGj9EOFhrmHXty1Mp43Ng3M
npscGFJ5mMj3gzstfaNBaLpsgEUVRmxFcxKlQ+0c+A3R+ZwMO3dlqa6aOZ3lj5wT
cvm4Aiatv1fbC96IHwgNMScn
-----END PRIVATE KEY-----
// Copyright 2014 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.
chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create("page.html");
});
\ No newline at end of file
{
"name": "Test App",
"version": "0.5",
"manifest_version": 2,
"icons": {
"48": "icon.png"
},
"app": {
"background": {
"scripts": ["background.js"]
}
}
}
{
"icon_url": "inline_install_private/app/icon.png",
"users": "17",
"average_rating": 3.14,
"rating_count": 15,
"manifest": "{ \"name\": \"Test App\", \"version\": \"0.5\", \"manifest_version\": 2, \"icons\": { \"48\": \"icon.png\" }, \"app\": { \"background\": { \"scripts\": [\"background.js\"] } } }"
}
\ No newline at end of file
// Copyright 2014 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.
function backgroundInstall() {
chrome.inlineInstallPrivate.install("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
function(error, errorCode) {
if (error == "Must be called from a foreground page")
chrome.test.sendMessage("success");
else
console.error("Did not receive expected error; got '" + error + "'");
});
}
// This gets set to the name of the test we want to run, either locally in this
// background page or in a window we open up.
var testName;
chrome.test.sendMessage("ready", function (response) {
testName = response;
if (testName == "backgroundInstall")
backgroundInstall();
else
chrome.app.window.create("page.html");
});
{
"name": "Inline Install API Test Driver",
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn9n2RdEa0AKFzPUaurKoxlwIeji3uvJ4gvZNN0TPXiTcPp81RKVloexPdvOnmpx84tTtU/CyQbDEte0eN93s6geRjXEKggTpn20GAA/CjUuZJGdXBIH0QI90skmDZLih1aqOcthsZXffUnjns27Y99s/WNm3d7roBWJYEJTq5B32YM8tIkwab3sKUagZAEDY4aA5sbbYALFa+0DscSVwquEOlYFlmcRalSkPZ9pj0xfqoCPUmpp7QK0OxW2RYcr8H1t+EJ9B1UUag4jkbShu3kBOLfycck3jRg4KsOQECqO/hXv4KImLz1UAEVfIGCMeoIgIdWelXROV1tsK4iLMtwIDAQAB",
"version": "0.5",
"manifest_version": 2,
"permissions": ["inlineInstallPrivate"],
"app": {
"background": {
"scripts": ["background.js"]
}
}
}
// Copyright 2014 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.
var app_id = "adjpiofaikamijlfbhehkldllbdcbmeb";
var extension_id = "ecglahbcnmdpdciemllbhojghbkagdje";
function successfulInstall() {
chrome.inlineInstallPrivate.install(app_id,
function(err, errorCode) {
if (err.length == 0 && errorCode == "success") {
chrome.test.sendMessage("success");
} else {
console.error("unexpected result, error:" + err + " errorCode:" +
errorCode);
}
});
}
function expectError(id, expectedErrorCode, expectedError) {
chrome.inlineInstallPrivate.install(id, function(err, errorCode) {
if (errorCode == expectedErrorCode &&
(typeof(expectedError) == "undefined" || expectedError == err)) {
chrome.test.sendMessage("success");
} else {
console.error("unexpected result, error:" + err + ", errorCode:" +
errorCode);
}
});
}
chrome.runtime.getBackgroundPage(function(bg) {
console.error("testName is " + bg.testName);
if (bg.testName == "successfulInstall") {
successfulInstall();
} else if (bg.testName == "noGesture") {
expectError(app_id, "notPermitted", "Must be called with a user gesture");
} else if (bg.testName == "onlyApps") {
expectError(extension_id, "notPermitted");
}
});
...@@ -998,7 +998,7 @@ enum HistogramValue { ...@@ -998,7 +998,7 @@ enum HistogramValue {
DELETED_COPRESENCEENDPOINTS_CREATELOCALENDPOINT = 937, DELETED_COPRESENCEENDPOINTS_CREATELOCALENDPOINT = 937,
DELETED_COPRESENCEENDPOINTS_DESTROYLOCALENDPOINT = 938, DELETED_COPRESENCEENDPOINTS_DESTROYLOCALENDPOINT = 938,
DELETED_COPRESENCEENDPOINTS_SEND = 939, DELETED_COPRESENCEENDPOINTS_SEND = 939,
INLINE_INSTALL_PRIVATE_INSTALL = 940, DELETED_INLINE_INSTALL_PRIVATE_INSTALL = 940,
LAUNCHERPAGE_SETENABLED = 941, LAUNCHERPAGE_SETENABLED = 941,
DELETED_CRYPTOTOKENPRIVATE_REQUESTPERMISSION = 942, DELETED_CRYPTOTOKENPRIVATE_REQUESTPERMISSION = 942,
BLUETOOTHPRIVATE_DISCONNECTALL = 943, BLUETOOTHPRIVATE_DISCONNECTALL = 943,
......
...@@ -132,7 +132,7 @@ class APIPermission { ...@@ -132,7 +132,7 @@ class APIPermission {
kIdltest = 88, kIdltest = 88,
kIdle = 89, kIdle = 89,
kImeWindowEnabled = 90, kImeWindowEnabled = 90,
kInlineInstallPrivate = 91, kDeleted_InlineInstallPrivate = 91,
kInput = 92, kInput = 92,
kInputMethodPrivate = 93, kInputMethodPrivate = 93,
kDeleted_InterceptAllKeys = 94, kDeleted_InterceptAllKeys = 94,
......
...@@ -16688,7 +16688,7 @@ Called by update_net_error_codes.py.--> ...@@ -16688,7 +16688,7 @@ Called by update_net_error_codes.py.-->
<int value="937" label="DELETED_COPRESENCEENDPOINTS_CREATELOCALENDPOINT"/> <int value="937" label="DELETED_COPRESENCEENDPOINTS_CREATELOCALENDPOINT"/>
<int value="938" label="DELETED_COPRESENCEENDPOINTS_DESTROYLOCALENDPOINT"/> <int value="938" label="DELETED_COPRESENCEENDPOINTS_DESTROYLOCALENDPOINT"/>
<int value="939" label="DELETED_COPRESENCEENDPOINTS_SEND"/> <int value="939" label="DELETED_COPRESENCEENDPOINTS_SEND"/>
<int value="940" label="INLINE_INSTALL_PRIVATE_INSTALL"/> <int value="940" label="DELETED_INLINE_INSTALL_PRIVATE_INSTALL"/>
<int value="941" label="LAUNCHERPAGE_SETENABLED"/> <int value="941" label="LAUNCHERPAGE_SETENABLED"/>
<int value="942" label="DELETED_CRYPTOTOKENPRIVATE_REQUESTPERMISSION"/> <int value="942" label="DELETED_CRYPTOTOKENPRIVATE_REQUESTPERMISSION"/>
<int value="943" label="BLUETOOTHPRIVATE_DISCONNECTALL"/> <int value="943" label="BLUETOOTHPRIVATE_DISCONNECTALL"/>
...@@ -17392,7 +17392,7 @@ Called by update_net_error_codes.py.--> ...@@ -17392,7 +17392,7 @@ Called by update_net_error_codes.py.-->
<int value="88" label="kIdltest"/> <int value="88" label="kIdltest"/>
<int value="89" label="kIdle"/> <int value="89" label="kIdle"/>
<int value="90" label="kImeWindowEnabled"/> <int value="90" label="kImeWindowEnabled"/>
<int value="91" label="kInlineInstallPrivate"/> <int value="91" label="kDeleted_InlineInstallPrivate"/>
<int value="92" label="kInput"/> <int value="92" label="kInput"/>
<int value="93" label="kInputMethodPrivate"/> <int value="93" label="kInputMethodPrivate"/>
<int value="94" label="kDeleted_InterceptAllKeys"/> <int value="94" label="kDeleted_InterceptAllKeys"/>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment