* Update the internal ready state. * * @param {!ReadyState_Enum} state * @param {*=} opt_failure * @protected * @final
(state, opt_failure)
| 856 | * @final |
| 857 | */ |
| 858 | setReadyStateInternal(state, opt_failure) { |
| 859 | if (state === this.readyState_) { |
| 860 | return; |
| 861 | } |
| 862 | |
| 863 | this.readyState_ = state; |
| 864 | |
| 865 | if (!this.R1()) { |
| 866 | return; |
| 867 | } |
| 868 | |
| 869 | switch (state) { |
| 870 | case ReadyState_Enum.LOADING: |
| 871 | this.signals_.signal(CommonSignals_Enum.LOAD_START); |
| 872 | this.signals_.reset(CommonSignals_Enum.UNLOAD); |
| 873 | this.signals_.reset(CommonSignals_Enum.LOAD_END); |
| 874 | this.classList.add('i-amphtml-layout'); |
| 875 | // Potentially start the loading indicator. |
| 876 | this.toggleLoading(true); |
| 877 | this.dispatchCustomEventForTesting(AmpEvents_Enum.LOAD_START); |
| 878 | return; |
| 879 | case ReadyState_Enum.COMPLETE: |
| 880 | // LOAD_START is set just in case. It won't be overwritten if |
| 881 | // it had been set before. |
| 882 | this.signals_.signal(CommonSignals_Enum.LOAD_START); |
| 883 | this.signals_.signal(CommonSignals_Enum.LOAD_END); |
| 884 | this.signals_.reset(CommonSignals_Enum.UNLOAD); |
| 885 | this.classList.add('i-amphtml-layout'); |
| 886 | this.toggleLoading(false); |
| 887 | dom.dispatchCustomEvent(this, 'load', null, NO_BUBBLES); |
| 888 | this.dispatchCustomEventForTesting(AmpEvents_Enum.LOAD_END); |
| 889 | return; |
| 890 | case ReadyState_Enum.ERROR: |
| 891 | this.signals_.rejectSignal( |
| 892 | CommonSignals_Enum.LOAD_END, |
| 893 | /** @type {!Error} */ (opt_failure) |
| 894 | ); |
| 895 | this.toggleLoading(false); |
| 896 | dom.dispatchCustomEvent(this, 'error', opt_failure, NO_BUBBLES); |
| 897 | return; |
| 898 | } |
| 899 | } |
| 900 | |
| 901 | /** |
| 902 | * Called to instruct the element to preconnect to hosts it uses during |
no test coverage detected