From 4a81236652c536eedc4f7377d95bb3afd49fb03f Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Fri, 25 Aug 2017 02:35:09 -0700 Subject: [PATCH] Use JSON.parse instead of deprecated goog.json.parse. Thanks to [] shared libraries at Google now produce valid JSON which allows using JSON.parse. It is safer and faster than goog.json.parse which uses eval by default. NOTE: All shared libraries producing JSON at Google were changed to produce valid JSON. However, if your code uses a custom way of producing JSON (not using the shared libraries) or if your code parses JSON generated a long time ago and stored, this CL might break you so please review with care. Design doc: [] Tested: TAP --sample for global presubmit queue [] ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=166454709 --- java/google/registry/ui/js/registrar/brainframe.js | 2 +- java/google/registry/ui/js/registrar/contact_settings.js | 2 +- java/google/registry/ui/js/registrar/payment.js | 2 +- java/google/registry/ui/js/resource_component.js | 2 +- javatests/google/registry/ui/js/testing.js | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/java/google/registry/ui/js/registrar/brainframe.js b/java/google/registry/ui/js/registrar/brainframe.js index 81cd2e109..1018cbc2c 100644 --- a/java/google/registry/ui/js/registrar/brainframe.js +++ b/java/google/registry/ui/js/registrar/brainframe.js @@ -123,7 +123,7 @@ registry.registrar.BrainFrame.prototype.onMessage_ = function(e) { throw new Error( 'Message origin is "' + msg.origin + '" but wanted: ' + this.origin_); } - var data = goog.json.parse(msg.data); + var data = /** @type {!Object} */ (JSON.parse(msg.data)); switch (goog.object.get(data, 'type')) { case registry.registrar.BrainFrame.MessageType.TOKEN_RESPONSE: goog.global.braintree.setup(goog.object.get(data, 'token'), 'dropin', { diff --git a/java/google/registry/ui/js/registrar/contact_settings.js b/java/google/registry/ui/js/registrar/contact_settings.js index ae3591fab..480155558 100644 --- a/java/google/registry/ui/js/registrar/contact_settings.js +++ b/java/google/registry/ui/js/registrar/contact_settings.js @@ -165,7 +165,7 @@ registry.registrar.ContactSettings.prototype.sendDelete = function() { throw new Error('Email to delete does not match model.'); } var modelCopy = /** @type {!Object} - */ (goog.json.parse(goog.json.serialize(this.model))); + */ (JSON.parse(goog.json.serialize(this.model))); goog.array.removeAt(modelCopy.contacts, ndxToDel); this.resource.update(modelCopy, goog.bind(this.handleDeleteResponse, this)); }; diff --git a/java/google/registry/ui/js/registrar/payment.js b/java/google/registry/ui/js/registrar/payment.js index f46345d47..09bc71df7 100644 --- a/java/google/registry/ui/js/registrar/payment.js +++ b/java/google/registry/ui/js/registrar/payment.js @@ -285,7 +285,7 @@ registry.registrar.Payment.prototype.onMessage_ = function(e) { } var data; try { - data = goog.json.parse(msg.data); + data = /** @type {!Object} */ (JSON.parse(msg.data)); } catch (ex) { // TODO(b/26876003): Figure out why it's possible that the Braintree iframe // is able to propagate messages up to our level. diff --git a/java/google/registry/ui/js/resource_component.js b/java/google/registry/ui/js/resource_component.js index e2adb5c7f..5f1084b56 100644 --- a/java/google/registry/ui/js/resource_component.js +++ b/java/google/registry/ui/js/resource_component.js @@ -119,7 +119,7 @@ registry.ResourceComponent.prototype.handleFetchItem = function(id, rsp) { /** @override */ registry.ResourceComponent.prototype.sendUpdate = function() { var modelCopy = /** @type {!Object} - */ (goog.json.parse(goog.json.serialize(this.model))); + */ (JSON.parse(goog.json.serialize(this.model))); this.prepareUpdate(modelCopy); if (this.id) { this.resource.update(modelCopy, goog.bind(this.handleUpdateResponse, this)); diff --git a/javatests/google/registry/ui/js/testing.js b/javatests/google/registry/ui/js/testing.js index c772a33ef..f9d344f15 100644 --- a/javatests/google/registry/ui/js/testing.js +++ b/javatests/google/registry/ui/js/testing.js @@ -131,7 +131,7 @@ registry.testing.assertReqMockRsp = // XXX: XHR header checking should probably be added. Was inconsistent // between admin and registrar consoles. registry.testing.assertObjectEqualsPretty( - expectReqJson, goog.json.parse(xhr.getLastContent())); + expectReqJson, JSON.parse(xhr.getLastContent())); xhr.simulateResponse(200, goog.json.serialize(mockRspJson)); };