MCPcopy
hub / github.com/ampproject/amphtml / add

Method add

src/service/resources-impl.js:295–319  ·  view source on GitHub ↗

@override

(element)

Source from the content-addressed store, hash-verified

293
294 /** @override */
295 add(element) {
296 // Ensure the viewport is ready to accept the first element.
297 this.addCount_++;
298 if (this.addCount_ == 1) {
299 this.viewport_.ensureReadyForElements();
300 }
301
302 // First check if the resource is being reparented and if it requires
303 // reconstruction. Only already built elements are eligible.
304 let resource = Resource.forElementOptional(element);
305 if (
306 resource &&
307 resource.getState() != ResourceState_Enum.NOT_BUILT &&
308 !element.reconstructWhenReparented()
309 ) {
310 resource.requestMeasure();
311 dev().fine(TAG_, 'resource reused:', resource.debugid);
312 } else {
313 // Create and add a new resource.
314 resource = new Resource(++this.resourceIdCounter_, element, this);
315 dev().fine(TAG_, 'resource added:', resource.debugid);
316 }
317 this.resources_.push(resource);
318 this.remeasurePass_.schedule(1000);
319 }
320
321 /**
322 * Limits the number of elements being build in pre-render phase to

Callers 15

onRuntimeStateMethod · 0.45
onMessageMethod · 0.45
onBroadcastMethod · 0.45
initThemeMode_Method · 0.45
handleToggleTheme_Method · 0.45
registerMethod · 0.45
onSessionEndMethod · 0.45
initHiddenObserver_Method · 0.45
transferToMethod · 0.45
onVisibilityChangedMethod · 0.45
renderIconFunction · 0.45

Calls 9

devFunction · 0.90
forElementOptionalMethod · 0.80
requestMeasureMethod · 0.80
fineMethod · 0.80
getStateMethod · 0.45
pushMethod · 0.45
scheduleMethod · 0.45

Tested by

no test coverage detected