Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 343 | 343 |
| 344 WebInspector.ContextMenu.prototype = { | 344 WebInspector.ContextMenu.prototype = { |
| 345 /** | 345 /** |
| 346 * @return {number} | 346 * @return {number} |
| 347 */ | 347 */ |
| 348 _nextId: function() | 348 _nextId: function() |
| 349 { | 349 { |
| 350 return this._id++; | 350 return this._id++; |
| 351 }, | 351 }, |
| 352 | 352 |
| 353 show: function() | 353 /** |
| 354 * @param {function()=} populatedCallback | |
| 355 */ | |
| 356 show: function(populatedCallback) | |
|
dgozman
2016/05/18 23:05:31
Let's instead have ContextMenu.beforeShow(callback
| |
| 354 { | 357 { |
| 355 Promise.all(this._pendingPromises).then(populateAndShow.bind(this)); | 358 Promise.all(this._pendingPromises) |
| 359 .then(populateAndShow.bind(this)) | |
| 360 .then(populatedCallback) | |
| 361 .then(this._innerShow.bind(this)); | |
| 356 WebInspector.ContextMenu._pendingMenu = this; | 362 WebInspector.ContextMenu._pendingMenu = this; |
| 357 | 363 |
| 358 /** | 364 /** |
| 359 * @param {!Array.<!Array.<!WebInspector.ContextMenu.Provider>>} appendC allResults | 365 * @param {!Array.<!Array.<!WebInspector.ContextMenu.Provider>>} appendC allResults |
| 360 * @this {WebInspector.ContextMenu} | 366 * @this {WebInspector.ContextMenu} |
| 361 */ | 367 */ |
| 362 function populateAndShow(appendCallResults) | 368 function populateAndShow(appendCallResults) |
| 363 { | 369 { |
| 364 if (WebInspector.ContextMenu._pendingMenu !== this) | 370 if (WebInspector.ContextMenu._pendingMenu !== this) |
| 365 return; | 371 return; |
| 366 delete WebInspector.ContextMenu._pendingMenu; | 372 delete WebInspector.ContextMenu._pendingMenu; |
| 367 | 373 |
| 368 for (var i = 0; i < appendCallResults.length; ++i) { | 374 for (var i = 0; i < appendCallResults.length; ++i) { |
| 369 var providers = appendCallResults[i]; | 375 var providers = appendCallResults[i]; |
| 370 var target = this._pendingTargets[i]; | 376 var target = this._pendingTargets[i]; |
| 371 | 377 |
| 372 for (var j = 0; j < providers.length; ++j) { | 378 for (var j = 0; j < providers.length; ++j) { |
| 373 var provider = /** @type {!WebInspector.ContextMenu.Provider } */ (providers[j]); | 379 var provider = /** @type {!WebInspector.ContextMenu.Provider } */ (providers[j]); |
| 374 this.appendSeparator(); | 380 this.appendSeparator(); |
| 375 provider.appendApplicableItems(this._event, this, target); | 381 provider.appendApplicableItems(this._event, this, target); |
| 376 this.appendSeparator(); | 382 this.appendSeparator(); |
| 377 } | 383 } |
| 378 } | 384 } |
| 379 | 385 |
| 380 this._pendingPromises = []; | 386 this._pendingPromises = []; |
| 381 this._pendingTargets = []; | 387 this._pendingTargets = []; |
| 382 this._innerShow(); | |
| 383 } | 388 } |
| 384 | 389 |
| 385 this._event.consume(true); | 390 this._event.consume(true); |
| 386 }, | 391 }, |
| 387 | 392 |
| 388 discard: function() | 393 discard: function() |
| 389 { | 394 { |
| 390 if (this._softMenu) | 395 if (this._softMenu) |
| 391 this._softMenu.discard(); | 396 this._softMenu.discard(); |
| 392 }, | 397 }, |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 481 } | 486 } |
| 482 | 487 |
| 483 WebInspector.ContextMenu.Provider.prototype = { | 488 WebInspector.ContextMenu.Provider.prototype = { |
| 484 /** | 489 /** |
| 485 * @param {!Event} event | 490 * @param {!Event} event |
| 486 * @param {!WebInspector.ContextMenu} contextMenu | 491 * @param {!WebInspector.ContextMenu} contextMenu |
| 487 * @param {!Object} target | 492 * @param {!Object} target |
| 488 */ | 493 */ |
| 489 appendApplicableItems: function(event, contextMenu, target) { } | 494 appendApplicableItems: function(event, contextMenu, target) { } |
| 490 } | 495 } |
| OLD | NEW |