Brion VIBBER has submitted this change and it was merged. Change subject: Move handleMessage out of bridge into global namespace ......................................................................
Move handleMessage out of bridge into global namespace Since handleMessage shouldn't be called from JS, having it be part of the bridge interface in JS is confusing Change-Id: I560957d89c1927320c6ad57639cc0dbcdc90531f --- M wikipedia/assets/bridge.js M wikipedia/assets/bundle-test.js M wikipedia/assets/bundle.js M wikipedia/assets/main.js M wikipedia/src/main/java/org/wikipedia/CommunicationBridge.java 5 files changed, 28 insertions(+), 31 deletions(-) Approvals: Brion VIBBER: Verified; Looks good to me, approved diff --git a/wikipedia/assets/bridge.js b/wikipedia/assets/bridge.js index 6fb2e1d..4e9f520 100644 --- a/wikipedia/assets/bridge.js +++ b/wikipedia/assets/bridge.js @@ -1,23 +1,24 @@ function Bridge() { - this.eventHandlers = {}; } -// This is called directly from Java, and hence needs to be available -Bridge.prototype.handleMessage = function( type, msgPointer ) { +var eventHandlers = {}; + +// This is called directly from Java +window.handleMessage = function( type, msgPointer ) { var that = this; var payload = JSON.parse( marshaller.getPayload( msgPointer ) ); - if ( this.eventHandlers.hasOwnProperty( type ) ) { - this.eventHandlers[type].forEach( function( callback ) { + if ( eventHandlers.hasOwnProperty( type ) ) { + eventHandlers[type].forEach( function( callback ) { callback.call( that, payload ); } ); } }; Bridge.prototype.registerListener = function( messageType, callback ) { - if ( this.eventHandlers.hasOwnProperty( messageType ) ) { - this.eventHandlers[messageType].push( callback ); + if ( eventHandlers.hasOwnProperty( messageType ) ) { + eventHandlers[messageType].push( callback ); } else { - this.eventHandlers[messageType] = [ callback ]; + eventHandlers[messageType] = [ callback ]; } }; diff --git a/wikipedia/assets/bundle-test.js b/wikipedia/assets/bundle-test.js index e4f9db8..03d6c37 100644 --- a/wikipedia/assets/bundle-test.js +++ b/wikipedia/assets/bundle-test.js @@ -1,24 +1,25 @@ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ function Bridge() { - this.eventHandlers = {}; } -// This is called directly from Java, and hence needs to be available -Bridge.prototype.handleMessage = function( type, msgPointer ) { +var eventHandlers = {}; + +// This is called directly from Java +window.handleMessage = function( type, msgPointer ) { var that = this; var payload = JSON.parse( marshaller.getPayload( msgPointer ) ); - if ( this.eventHandlers.hasOwnProperty( type ) ) { - this.eventHandlers[type].forEach( function( callback ) { + if ( eventHandlers.hasOwnProperty( type ) ) { + eventHandlers[type].forEach( function( callback ) { callback.call( that, payload ); } ); } }; Bridge.prototype.registerListener = function( messageType, callback ) { - if ( this.eventHandlers.hasOwnProperty( messageType ) ) { - this.eventHandlers[messageType].push( callback ); + if ( eventHandlers.hasOwnProperty( messageType ) ) { + eventHandlers[messageType].push( callback ); } else { - this.eventHandlers[messageType] = [ callback ]; + eventHandlers[messageType] = [ callback ]; } }; @@ -38,8 +39,6 @@ },{}],2:[function(require,module,exports){ var bridge = require("./bridge"); var transforms = require("./transforms"); - -window.bridge = bridge; bridge.registerListener( "displayLeadSection", function( payload ) { // This might be a refresh! Clear out all contents! diff --git a/wikipedia/assets/bundle.js b/wikipedia/assets/bundle.js index 12763be..f584039 100644 --- a/wikipedia/assets/bundle.js +++ b/wikipedia/assets/bundle.js @@ -1,24 +1,25 @@ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ function Bridge() { - this.eventHandlers = {}; } -// This is called directly from Java, and hence needs to be available -Bridge.prototype.handleMessage = function( type, msgPointer ) { +var eventHandlers = {}; + +// This is called directly from Java +window.handleMessage = function( type, msgPointer ) { var that = this; var payload = JSON.parse( marshaller.getPayload( msgPointer ) ); - if ( this.eventHandlers.hasOwnProperty( type ) ) { - this.eventHandlers[type].forEach( function( callback ) { + if ( eventHandlers.hasOwnProperty( type ) ) { + eventHandlers[type].forEach( function( callback ) { callback.call( that, payload ); } ); } }; Bridge.prototype.registerListener = function( messageType, callback ) { - if ( this.eventHandlers.hasOwnProperty( messageType ) ) { - this.eventHandlers[messageType].push( callback ); + if ( eventHandlers.hasOwnProperty( messageType ) ) { + eventHandlers[messageType].push( callback ); } else { - this.eventHandlers[messageType] = [ callback ]; + eventHandlers[messageType] = [ callback ]; } }; @@ -38,8 +39,6 @@ },{}],2:[function(require,module,exports){ var bridge = require("./bridge"); var transforms = require("./transforms"); - -window.bridge = bridge; bridge.registerListener( "displayLeadSection", function( payload ) { // This might be a refresh! Clear out all contents! diff --git a/wikipedia/assets/main.js b/wikipedia/assets/main.js index 7f25190..ce53f4b 100644 --- a/wikipedia/assets/main.js +++ b/wikipedia/assets/main.js @@ -1,8 +1,6 @@ var bridge = require("./bridge"); var transforms = require("./transforms"); -window.bridge = bridge; - bridge.registerListener( "displayLeadSection", function( payload ) { // This might be a refresh! Clear out all contents! document.getElementById( "content" ).innerHTML = ""; diff --git a/wikipedia/src/main/java/org/wikipedia/CommunicationBridge.java b/wikipedia/src/main/java/org/wikipedia/CommunicationBridge.java index 4c1ddf5..84e0581 100644 --- a/wikipedia/src/main/java/org/wikipedia/CommunicationBridge.java +++ b/wikipedia/src/main/java/org/wikipedia/CommunicationBridge.java @@ -68,7 +68,7 @@ String messagePointer = marshaller.putPayload(messageData.toString()); StringBuilder jsString = new StringBuilder(); - jsString.append("javascript:bridge.handleMessage( ") + jsString.append("javascript:handleMessage( ") .append("\"").append(messageName).append("\", \"") .append(messagePointer) .append("\" );"); -- To view, visit https://gerrit.wikimedia.org/r/108501 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I560957d89c1927320c6ad57639cc0dbcdc90531f Gerrit-PatchSet: 3 Gerrit-Project: apps/android/wikipedia Gerrit-Branch: master Gerrit-Owner: Yuvipanda <yuvipa...@gmail.com> Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits