| Index: third_party/WebKit/Source/devtools/front_end/ui/ContextMenu.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/ui/ContextMenu.js b/third_party/WebKit/Source/devtools/front_end/ui/ContextMenu.js
|
| index 16f51444c17c05de24247a83761837575339a2d0..b46e31b1d92bb7b024be40c34cad56ee1f7b6c04 100644
|
| --- a/third_party/WebKit/Source/devtools/front_end/ui/ContextMenu.js
|
| +++ b/third_party/WebKit/Source/devtools/front_end/ui/ContextMenu.js
|
| @@ -350,16 +350,24 @@ WebInspector.ContextMenu.prototype = {
|
| return this._id++;
|
| },
|
|
|
| + /**
|
| + * @param {function()} callback
|
| + */
|
| + beforeShow: function(callback)
|
| + {
|
| + this._beforeShow = callback;
|
| + },
|
| +
|
| show: function()
|
| {
|
| - Promise.all(this._pendingPromises).then(populateAndShow.bind(this));
|
| + Promise.all(this._pendingPromises).then(populate.bind(this)).then(this._innerShow.bind(this));
|
| WebInspector.ContextMenu._pendingMenu = this;
|
|
|
| /**
|
| * @param {!Array.<!Array.<!WebInspector.ContextMenu.Provider>>} appendCallResults
|
| * @this {WebInspector.ContextMenu}
|
| */
|
| - function populateAndShow(appendCallResults)
|
| + function populate(appendCallResults)
|
| {
|
| if (WebInspector.ContextMenu._pendingMenu !== this)
|
| return;
|
| @@ -379,7 +387,6 @@ WebInspector.ContextMenu.prototype = {
|
|
|
| this._pendingPromises = [];
|
| this._pendingTargets = [];
|
| - this._innerShow();
|
| }
|
|
|
| this._event.consume(true);
|
| @@ -393,6 +400,11 @@ WebInspector.ContextMenu.prototype = {
|
|
|
| _innerShow: function()
|
| {
|
| + if (typeof this._beforeShow === "function") {
|
| + this._beforeShow();
|
| + delete this._beforeShow;
|
| + }
|
| +
|
| var menuObject = this._buildDescriptors();
|
|
|
| WebInspector._contextMenu = this;
|
|
|