🌌 SpectraShell

🌌 SpectraShell

Current path: home/a1642gum/public_html/wp-includes/



⬆️ Go up: public_html

📄 Viewing: speculative-loading.php

<?php
/**
 * Speculative loading functions.
 *
 * @package WordPress
 * @subpackage Speculative Loading
 * @since 6.8.0
 */

/**
 * Returns the speculation rules configuration.
 *
 * @since 6.8.0
 *
 * @return array<string, string>|null Associative array with 'mode' and 'eagerness' keys, or null if speculative
 *                                    loading is disabled.
 */
function wp_get_speculation_rules_configuration(): ?array {
	// By default, speculative loading is only enabled for sites with pretty permalinks when no user is logged in.
	if ( ! is_user_logged_in() && get_option( 'permalink_structure' ) ) {
		$config = array(
			'mode'      => 'auto',
			'eagerness' => 'auto',
		);
	} else {
		$config = null;
	}

	/**
	 * Filters the way that speculation rules are configured.
	 *
	 * The Speculation Rules API is a web API that allows to automatically prefetch or prerender certain URLs on the
	 * page, which can lead to near-instant page load times. This is also referred to as speculative loading.
	 *
	 * There are two aspects to the configuration:
	 * * The "mode" (whether to "prefetch" or "prerender" URLs).
	 * * The "eagerness" (whether to speculatively load URLs in an "eager", "moderate", or "conservative" way).
	 *
	 * By default, the speculation rules configuration is decided by WordPress Core ("auto"). This filter can be used
	 * to force a certain configuration, which could for instance load URLs more or less eagerly.
	 *
	 * For logged-in users or for sites that are not configured to use pretty permalinks, the default value is `null`,
	 * indicating that speculative loading is entirely disabled.
	 *
	 * @since 6.8.0
	 * @see https://developer.chrome.com/docs/web-platform/prerender-pages
	 *
	 * @param array<string, string>|null $config Associative array with 'mode' and 'eagerness' keys, or `null`. The
	 *                                           default value for both of the keys is 'auto'. Other possible values
	 *                                           for 'mode' are 'prefetch' and 'prerender'. Other possible values for
	 *                                           'eagerness' are 'eager', 'moderate', and 'conservative'. The value
	 *                                           `null` is used to disable speculative loading entirely.
	 */
	$config = apply_filters( 'wp_speculation_rules_configuration', $config );

	// Allow the value `null` to indicate that speculative loading is disabled.
	if ( null === $config ) {
		return null;
	}

	// Sanitize the configuration and replace 'auto' with current defaults.
	$default_mode      = 'prefetch';
	$default_eagerness = 'conservative';
	if ( ! is_array( $config ) ) {
		return array(
			'mode'      => $default_mode,
			'eagerness' => $default_eagerness,
		);
	}
	if (
		! isset( $config['mode'] ) ||
		'auto' === $config['mode'] ||
		! WP_Speculation_Rules::is_valid_mode( $config['mode'] )
	) {
		$config['mode'] = $default_mode;
	}
	if (
		! isset( $config['eagerness'] ) ||
		'auto' === $config['eagerness'] ||
		! WP_Speculation_Rules::is_valid_eagerness( $config['eagerness'] ) ||
		// 'immediate' is a valid eagerness, but for safety WordPress does not allow it for document-level rules.
		'immediate' === $config['eagerness']
	) {
		$config['eagerness'] = $default_eagerness;
	}

	return array(
		'mode'      => $config['mode'],
		'eagerness' => $config['eagerness'],
	);
}

/**
 * Returns the full speculation rules data based on the configuration.
 *
 * Plugins with features that rely on frontend URLs to exclude from prefetching or prerendering should use the
 * {@see 'wp_speculation_rules_href_exclude_paths'} filter to ensure those URL patterns are excluded.
 *
 * Additional speculation rules other than the default rule from WordPress Core can be provided by using the
 * {@see 'wp_load_speculation_rules'} action and amending the passed WP_Speculation_Rules object.
 *
 * @since 6.8.0
 * @access private
 *
 * @return WP_Speculation_Rules|null Object representing the speculation rules to use, or null if speculative loading
 *                                   is disabled in the current context.
 */
function wp_get_speculation_rules(): ?WP_Speculation_Rules {
	$configuration = wp_get_speculation_rules_configuration();
	if ( null === $configuration ) {
		return null;
	}

	$mode      = $configuration['mode'];
	$eagerness = $configuration['eagerness'];

	$prefixer = new WP_URL_Pattern_Prefixer();

	$base_href_exclude_paths = array(
		$prefixer->prefix_path_pattern( '/wp-*.php', 'site' ),
		$prefixer->prefix_path_pattern( '/wp-admin/*', 'site' ),
		$prefixer->prefix_path_pattern( '/*', 'uploads' ),
		$prefixer->prefix_path_pattern( '/*', 'content' ),
		$prefixer->prefix_path_pattern( '/*', 'plugins' ),
		$prefixer->prefix_path_pattern( '/*', 'template' ),
		$prefixer->prefix_path_pattern( '/*', 'stylesheet' ),
	);

	/*
	 * If pretty permalinks are enabled, exclude any URLs with query parameters.
	 * Otherwise, exclude specifically the URLs with a `_wpnonce` query parameter or any other query parameter
	 * containing the word `nonce`.
	 */
	if ( get_option( 'permalink_structure' ) ) {
		$base_href_exclude_paths[] = $prefixer->prefix_path_pattern( '/*\\?(.+)', 'home' );
	} else {
		$base_href_exclude_paths[] = $prefixer->prefix_path_pattern( '/*\\?*(^|&)*nonce*=*', 'home' );
	}

	/**
	 * Filters the paths for which speculative loading should be disabled.
	 *
	 * All paths should start in a forward slash, relative to the root document. The `*` can be used as a wildcard.
	 * If the WordPress site is in a subdirectory, the exclude paths will automatically be prefixed as necessary.
	 *
	 * Note that WordPress always excludes certain path patterns such as `/wp-login.php` and `/wp-admin/*`, and those
	 * cannot be modified using the filter.
	 *
	 * @since 6.8.0
	 *
	 * @param string[] $href_exclude_paths Additional path patterns to disable speculative loading for.
	 * @param string   $mode               Mode used to apply speculative loading. Either 'prefetch' or 'prerender'.
	 */
	$href_exclude_paths = (array) apply_filters( 'wp_speculation_rules_href_exclude_paths', array(), $mode );

	// Ensure that:
	// 1. There are no duplicates.
	// 2. The base paths cannot be removed.
	// 3. The array has sequential keys (i.e. array_is_list()).
	$href_exclude_paths = array_values(
		array_unique(
			array_merge(
				$base_href_exclude_paths,
				array_map(
					static function ( string $href_exclude_path ) use ( $prefixer ): string {
						return $prefixer->prefix_path_pattern( $href_exclude_path );
					},
					$href_exclude_paths
				)
			)
		)
	);

	$speculation_rules = new WP_Speculation_Rules();

	$main_rule_conditions = array(
		// Include any URLs within the same site.
		array(
			'href_matches' => $prefixer->prefix_path_pattern( '/*' ),
		),
		// Except for excluded paths.
		array(
			'not' => array(
				'href_matches' => $href_exclude_paths,
			),
		),
		// Also exclude rel=nofollow links, as certain plugins use that on their links that perform an action.
		array(
			'not' => array(
				'selector_matches' => 'a[rel~="nofollow"]',
			),
		),
		// Also exclude links that are explicitly marked to opt out, either directly or via a parent element.
		array(
			'not' => array(
				'selector_matches' => ".no-{$mode}, .no-{$mode} a",
			),
		),
	);

	// If using 'prerender', also exclude links that opt out of 'prefetch' because it's part of 'prerender'.
	if ( 'prerender' === $mode ) {
		$main_rule_conditions[] = array(
			'not' => array(
				'selector_matches' => '.no-prefetch, .no-prefetch a',
			),
		);
	}

	$speculation_rules->add_rule(
		$mode,
		'main',
		array(
			'source'    => 'document',
			'where'     => array(
				'and' => $main_rule_conditions,
			),
			'eagerness' => $eagerness,
		)
	);

	/**
	 * Fires when speculation rules data is loaded, allowing to amend the rules.
	 *
	 * @since 6.8.0
	 *
	 * @param WP_Speculation_Rules $speculation_rules Object representing the speculation rules to use.
	 */
	do_action( 'wp_load_speculation_rules', $speculation_rules );

	return $speculation_rules;
}

/**
 * Prints the speculation rules.
 *
 * For browsers that do not support speculation rules yet, the `script[type="speculationrules"]` tag will be ignored.
 *
 * @since 6.8.0
 * @access private
 */
function wp_print_speculation_rules(): void {
	$speculation_rules = wp_get_speculation_rules();
	if ( null === $speculation_rules ) {
		return;
	}

	wp_print_inline_script_tag(
		(string) wp_json_encode(
			$speculation_rules,
			JSON_HEX_TAG | JSON_UNESCAPED_SLASHES
		),
		array( 'type' => 'speculationrules' )
	);
}



📁

Why Autism Will Never Interfere with Our Happiness

Here we are with another inspiring story about how a family beat the odds (and stereotype) of autism and emerged victorious. Through this series of Autism Success Stories, we want to celebrate the developments and achievements of our young stars and their families, and through them, want to let you know that there is always hope and support for you (as a parent and a professional).

 

This month, we feature 20-year-old Vishal Srinivas, and his parents – Viji and Srinivas. Srinivas works for a multinational corporation and Viji has been a teacher at SAI for 7 years. Vishal was a student at SAI for the duration too. Here is Viji sharing her’s and Vishal’s remarkable story of improvement and happiness.

 

On September 5th, 2000, I took Vishal for his first session with a Speech Language Pathologist (SLP) at Anushakti Nagar, Chembur. As soon as we stepped out of the building after the session, Vishal freed himself from my hold and took off like a bullet. He kept running (on the footpath, thankfully) and didn’t turn back even once. It was a new place and I was terrified. While chasing him, I kept thinking, “God, where am I? What is happening? How will I get through this?”

 

Fast forward to September 5th, 2015, and Vishal stepped out of home with his father to go to the bank. We have a ritual: whenever a person leaves from home, someone from the family stands in the balcony and waves. If I leave, my mother-in-law stands in the balcony. That day, Vishal took his long, self-assured strides (he’s 6’ 2”), stopped, turned around to look at the balcony and waved “Bye ma! Bye patima (grandma)!” It’s a norm for him to wave out to us in the balcony now. Then he takes his long strides, reaches the end of the road and waits for the person accompanying him to catch up – whether his dad or me. My son has come such a long way.

 

Vishal was initially admitted to Sevadaan Special School in Chembur. He was placed in the group of most heavily affected children (probably because the staff found it hard to handle children with autism). I was in awe of children there who were adept at cooking and were paid for it. Today, my son, the masterchef, strides into our kitchen like a lion strides into his territory and takes charge. He inspects what is being cooked, stirs simmering dishes and is keen on helping. It’s like he’s the supervisor and I’m the assistant. Not without good reason. He is immensely fond of cooking – in fact, it’s his passion. The other day, he was preparing his favorite potato sabzi and it turned out spicy. I told him so. Rather than getting anxious, he calmly added more tomatoes to reduce the spiciness. He has remarkable acumen when it comes to altering the taste of dishes, whether they have to be sweetened or spiced up. And when I tell him to turn off the gas or add salt to a dish, I am confident that he will do it. No need for me to double check. All this from a boy who could not sit in one place due to hyperactivity.

How my son conquered autism

Vishal is sensitive to sound. When he was about 8 years old, he would bang his head hard against my arm whenever he heard a loud honk. It would hurt. But with time, he has learned to put his long fingers into his ears and partly insulate himself against loud noises. I laugh to myself when teenagers passing by wonder aloud which device to talk to someone or listen to music is so small that it is not visible… During the initial years, I simply took him along (more out of compulsion) and hoped that he would take care of himself in public. But after I joined the family consultation program, I started giving him responsibilities during our monthly provision shopping. And he loved it. Now I tell him what he has to buy orally (he’s an auditory learner) and simply have to linger around. He thinks and buys what he has been entrusted with. And once we check out, bags containing the items he has bought are his responsibility.

 

It’s age appropriate too. How many neuro-typical 20-year-olds help their parents? In fact, parents have to be more careful with 20-year-olds today. Who are they hanging out with? Are they doing something wrong? Are they lying? Not with Vishal, or any other child with autism, I believe. Living with someone with autism is a totally different experience. Our kids are loving, helpful and honest. If Vishal opens the fridge and eats a chocolate (which he rarely does, because he knows he has to follow a strict diet), he promptly walks up to me and says “I ate a chocolate.” My son’s honesty and love are reassuring.

 

Living with someone with autism can be both frustrating and gratifying. Vishal’s OCD can cause both these emotions in me. Frustration, well, if you know someone with OCD, you know what I mean. Gratifying, because once he returns home from somewhere, he puts his footwear in place, changes his clothes, washes his hands and feet and only then gets on the bed. His and my awareness and understanding have increased each day after I joined the family consultation program. I have stopped giving instructions to Vishal – it has been two years now – and the relation between him and me has blossomed. I have gained immense confidence in understanding my child, and this has helped me address and reduce one of his biggest challenges – his anxiety.

 

I want to share an incident with you. Vishal’s anxiety had reached disturbing levels in 2010. He would indulge in self-injurious behavior often. Years of purely following instructions can do that to you. He would use self-injurious behavior as a means of communication whenever he was anxious, not just on himself, but on others too. He would pull or push anyone close by, and this was impeding all his progress. It made many people around him anxious too (including yours truly). But a few weeks ago, something different occurred. We have a yoga instructor who comes home and helps Vishal do yoga for an hour (Vishal suffers from asthma. So though he loves the outdoors, he can’t spend much time there). During yoga, Vishal sweats profusely, like the cricketers we see on TV. During one session, he was tired and said something to the instructor. The instructor assumed that he had spoken in Tamil and said “Say it in English.” That was where Vishal had a bout of anxiety. Two years ago, at such times, he would have started hitting himself after saying “Adchiko” – a warning that he was about to cause harm. But today, he sat on the sofa and within a few seconds I was there. “What happened Vishal?”, I asked. The look on his face gave me the feeling that every parent yearns for. He looked at me through eyes with tears almost ready to roll out of them, as if saying “Thank God you are here! I am in so much trouble!” He told me what was troubling him and himself said “No adchiko.” Vishal feels reassured in my presence now. He knows that I am there for him and looks up to me. We share many beautiful moments together. These wonderful improvements in his life are not only because of his effort – they have come because I have worked hard on myself too. The family consultation program has taught me to stay calm when Vishal feels anxious. That gave me the confidence to take care of him which, in turn, gave him the reassurance that he could rely on me for anything. He and I trust each other implicitly now.

my son has conquered autism and does not let it come in his way of enjoying life

I could go on and on… about his love for music from Jagjit Singh to Honey Singh, about how he interacts with my relatives like a mature individual, how he likes to join conversations, how responsibly he conducted himself during the last rites of my grandmother, how he smiled when my relative’s 5-year-old daughter kept harrowing him to speak to her… and on and on… about how impressed people who interact with him are, how he thoroughly enjoyed himself sitting with folded legs on the floor and eating from a banana leaf during a family function. It’s wonderful to see the once hyperactive boy riddled with anxiety now conduct himself with such dignity in public, and become the master chef of my kitchen, and our lives.

 

I believe that we cannot expect professionals ‘cure our children’ magically. Whether a child with autism, or a neuro-typical one, we parents have to spend time with them and help them develop. Not just spend time, we have to encourage them to think for themselves, and treat them with dignity and respect – like grown-ups. This is the biggest lesson that I have learned from Mrs. Kamini Lakhani and my son. I have met many professionals who are also parents of children on the spectrum. But I have never seen anyone give as much respect and build a bond with the children like Mrs. Lakhani. Through our interactions which have spanned more than 7 years, I have learned to respect my son and treat him with dignity, and to expect others to do the same for Vishal and all other children on the autism spectrum.

 

Kamini Lakhani’s thoughts:

 

It is truly heartening to read this wonderful account about Vishal’s emergence. I am privileged to witness this emergence from close quarters.

 

In the past, I have watched the agonizing effects of his anxiety, on himself and others around him. Today, this self assured, competent young man, brings joy to my heart, as he strides through life. What I see today is a beautiful, meaningful relationship between mother and son. A relationship that is based on trust. Hats off to Viji’s hard work and diligence.

 

I look forward with hope, for Vishal to find his place in the sun.

 

If you are the parent or guardian of someone with autism or a learning disability, your family can achieve these remarkable results too. Our parent training program will offer you all the support and guidance that you need for these landmark improvements.

  •  
    1
    Share
  •  
  •  
  •  
  •  
  • 1
  •  

Kamini Lakhani

Kamini Lakhani is the founder and director of SAI Connections. She has been providing services in the field of autism for more than 25 years and is the authorized director of Professional Training for RDI in India and the Middle East. She is also the mother of a young adult with autism.

25 COMMENTS

Leave a Reply

Your email address will not be published. Required fields are marked *