# Frontend Runtime Extension Contract (V1)
This document defines the stable frontend runtime integration surface for plugins that extend FrontEdit in the browser.
## Purpose
This contract answers four questions for external integrations:
1. How another plugin may open and control FrontEdit editing.
2. What schema-resolved runtime data FrontEdit guarantees to expose.
3. Which lifecycle hooks and events are stable for observing editing and the standard FrontEdit save flow.
4. Which globals and implementation details are explicitly private.
## Scope
This contract covers the browser runtime only.
It does not define:
1. PHP handler registration.
2. Schema authoring rules.
3. Internal editor-state layout.
4. REST endpoint internals or private save helpers.
5. Internal DOM classes or data attributes unless explicitly documented here.
## Stability Model
FrontEdit exposes one stable base namespace for browser integrations:
```js
window.MWP.SFE.PublicApi
```
When FrontEdit Pro is active, FrontEdit also exposes one optional pro-only namespace:
```js
window.MWP.SFE.ProApi
```
Everything else on `window.MWP.SFE` is private unless this document explicitly says otherwise.
### Two-tier contract
This document uses two stability tiers:
1. `V1 committed surface`
External plugins may rely on these methods, events, and return shapes.
2. `Candidate APIs under evaluation`
These are roadmap items only. They are not part of the stable contract and may change or never ship.
### Versioning
The runtime extension contract is versioned independently from the schema contract.
`window.MWP.SFE.PublicApi` must expose:
```js
SFE.PublicApi.getApiInfo();
```
Expected shape:
```js
{
apiVersion: 1,
namespace: 'window.MWP.SFE.PublicApi',
features: {
editorControl: true,
runtimeInspection: true,
editableBlockDiscovery: true,
editingRuntimeResolution: true,
textComponentOperations: true,
mediaComponentOperations: true,
mediaInspection: true,
mediaSessionControl: true,
explicitStaging: true,
events: true,
blockRefresh: true
}
}
```
Version rules:
1. Additive methods, additive event payload fields, and additive snapshot fields are minor-safe.
2. Removing or renaming methods, changing event semantics, or changing documented return-shape meaning requires an `apiVersion` bump.
3. Private internals may change at any time without notice.
## Public Namespace Rules
External plugins may:
1. Call documented `SFE.PublicApi.*` methods.
2. Call documented `SFE.ProApi.*` methods only when the pro plugin is active and the method is documented here as pro-only.
3. Subscribe only to documented `SFE.PublicApi` events.
4. Store and compare documented snapshot data returned by the API.
External plugins must not:
1. Monkey-patch FrontEdit methods.
2. Directly mutate `window.MWP.SFE` objects unless a documented API explicitly allows it.
3. Depend on underscore-prefixed properties.
4. Rebuild schema runtime resolution, media descriptor resolution, or block-state hydration from private internals when a public API exists.
## V1 Committed Surface
### Discovery
#### Server-side AI discovery
When the WordPress Abilities API is available, an authorized FrontEdit editor
may call the following post-scoped, read-only abilities:
1. `mwpsfe/list-editable-blocks` with `post_id` to retrieve selectable block
UUIDs, block types, edit handler IDs, and source-text summaries.
2. `mwpsfe/get-editable-block` with `post_id` and `uuid` to retrieve focused
content for one already-authorized editable block.
3. `mwpsfe/get-frontend-runtime-contract` with `post_id` to retrieve this
canonical browser contract.
These abilities authorize the current user against the exact requested post;
they do not discover WordPress posts/pages, execute browser methods, or create
an external save path. WordPress core remains responsible for page discovery.
Once the browser runtime is present, integrations must still verify
availability through `SFE.PublicApi.getApiInfo()` and use
`SFE.PublicApi.getEditableBlocks()` to enumerate the live page.
#### `getEditableBlocks() -> EditableBlock[]`
Return the FrontEdit-editable blocks currently known to the live page runtime.
```js
const blocks = SFE.PublicApi.getEditableBlocks();
const match = blocks.find(block => block.contentText.includes('Pricing'));
```
Each entry is a `BlockSnapshot` plus `contentText`, which is normalized text
from the current rendered block element. Use its `uuid` with
`resolveEditingRuntime(...)` before choosing a documented edit operation. This
method is the supported browser discovery path; integrations must not scrape
private FrontEdit DOM attributes to enumerate UUIDs.
#### Human save handoff
An integration may inspect a block, open FrontEdit, and apply documented
runtime operations or staging. It must then hand control to the authorized
human to review and complete FrontEdit's standard save UI. V1 has no external
direct-save API.
#### `getApiInfo()`
```js
const info = SFE.PublicApi.getApiInfo();
```
Returns the contract version and feature flags for this runtime.
### Editor Control
#### `openEditor(options) -> Promise Old New`, or `
` elements.
#### Public target-token rules
Public list operations must use only the documented runtime UUID token family
for their kind. FrontEdit rejects public operations that omit the required token.
1. `update_list_item_text`, `remove_list_item`, `indent_list_item`, and `outdent_list_item` target one existing list item and must provide `itemUuid`.
2. `insert_before` and `insert_after` must provide `newItemUuid` plus `targetItemUuid`.
3. `insert_child` must provide `newItemUuid` plus `targetItemUuid`. If the target item does not already own a child list, FrontEdit creates the
required nested list automatically.
4. `move_before` and `move_after` must provide `itemUuid` plus `targetItemUuid`.
5. `toggle_list_type` must provide `itemUuid`. FrontEdit resolves that item to its current containing list immediately before the toggle runs.
6. Public callers must use only the documented camelCase keys above. Any other keys are outside the API contract.
7. Public callers must not rely on cursor or selection state. Cursor-based inference is reserved for internal editor-originated calls only.
#### Runtime UUID ownership
List-item UUIDs and list-node UUIDs have different ownership rules.
1. Public callers are responsible for generating UUIDs for newly created list items.
2. FrontEdit is responsible for generating and managing UUIDs for list nodes.
3. Public callers must not create, assign, or mutate list-node UUIDs directly.
4. When a structural operation creates a new nested list, FrontEdit assigns the resulting `listUuid`.
5. Public list operations target items, not list nodes, even though returned structure snapshots still expose `listUuid` values.
#### Recommended UUID convention
FrontEdit does not enforce a specific caller UUID format for public list operations.
Recommended convention:
1. Use RFC 4122 version 4 UUID strings for `itemUuid`, `targetItemUuid`, and `newItemUuid`.
2. Generate one fresh UUID for every new list item the caller intends to create.
3. Treat runtime UUIDs as session-scoped cursor tokens only. Do not persist or reuse them after the list editor closes or the page reloads.
#### `ListNode`
`getListStructure()` and successful list-operation results return recursive list
nodes plus item nodes so child lists remain distinct from the list items that
own them.
A list node contains:
1. `listUuid` (string): session-scoped runtime UUID for this list node
2. `listPath` (string): empty string for the root list, or the parent item path that owns this nested child list
3. `ordered` (boolean): whether this specific list node is `OL`
4. `items` (array): direct child list items for this list node
Each item contains:
1. `itemUuid` (string): session-scoped runtime UUID for this item
2. `path` (string): item tree path
3. `pathLabel` (string): human-readable 1-based path label
4. `depth` (number): zero-based nesting depth
5. `contentHtml` (string): direct item text HTML only
6. `childList` (`ListNode|null`): nested list node owned by this item, or `null`
Example:
```json
{
"listUuid": "e183f2b5-2f90-4ca2-8ea8-c3d8c72ab2c1",
"listPath": "",
"ordered": false,
"items": [
{
"itemUuid": "7db1a4ff-8e25-4f7d-a806-9328d473bb96",
"path": "0",
"pathLabel": "1",
"depth": 0,
"contentHtml": "a",
"childList": {
"listUuid": "fd818143-75d8-4ae9-8f3f-798d54150472",
"listPath": "0",
"ordered": false,
"items": [
{
"itemUuid": "c71fad00-2d1f-4f70-b0fc-84681f5ef8a0",
"path": "0_0",
"pathLabel": "1.1",
"depth": 1,
"contentHtml": "b",
"childList": {
"listUuid": "2cd9f476-1d91-45e5-bd0b-ae981b78a111",
"listPath": "0_0",
"ordered": false,
"items": [
{
"itemUuid": "b2f4ffad-edbc-48e9-950d-2716b5bf6942",
"path": "0_0_0",
"pathLabel": "1.1.1",
"depth": 2,
"contentHtml": "c",
"childList": null
}
]
}
}
]
}
}
]
}
```
#### `ListOperationResult`
Successful list runtime mutations return:
1. `uuid` (string): target block UUID
2. `operationsApplied` (array of strings): normalized operation kinds applied in order
3. `structure` (`ListNode`): updated live list structure snapshot
### Media Inspection And Session Control
#### `getMediaContext(options) -> MediaContext|null`
Resolve the media-editable context for a block or specific component.
```js
const mediaContext = SFE.PublicApi.getMediaContext({
uuid,
element,
handlerId,
componentId
});
```
Returns `null` when the target block is not media-editable through the documented runtime surface.
#### `getMediaDescriptor(options) -> MediaDescriptor|null`
Returns the stable media descriptor for the selected file component, if one exists.
#### `isMediaEditable(options) -> boolean`
Returns whether the resolved block exposes a file-editable component through the public runtime contract.
#### `applyActiveMediaSelection(options) -> EditorSnapshot|null`
Apply one selected media item to the current active schema-media editor session through FrontEdit's supported runtime path.
```js
const editor = SFE.PublicApi.applyActiveMediaSelection({
uuid,
url,
attachmentId,
source: 'library'
});
```
Rules:
1. `uuid` is required and must match the current active editor session.
2. `url` is required.
3. `attachmentId` is optional.
4. `source` may be `'library'` or `'input'` and defaults to the input-style save transition when omitted.
5. Returns an updated `EditorSnapshot` when the active media session accepted the selection, otherwise `null`.
### Explicit Staging
`V1` supports explicit block-state staging only.
Staging is editor preparation, not external save execution. External plugins may stage block state and open or guide the FrontEdit editor, but the user must complete saving through FrontEdit's standard save UI and normal FrontEdit save workflow.
#### `stageBlockState(stage) -> void`
Stage a temporary block-state payload for one block so that subsequent editor open and hydration flows may consume it through FrontEdit's supported staging path.
```js
SFE.PublicApi.stageBlockState({
uuid,
handlerId,
blockState,
source: 'external'
});
```
Rules:
1. `uuid` is required.
2. `handlerId` is optional metadata for the caller and diagnostics.
3. `blockState` must match the shape FrontEdit's canonical block hydration path expects.
4. Staged block state is temporary and applies only through the documented FrontEdit runtime path.
5. Staged changes do not create a supported external save path in `V1`.
#### `clearStagedBlockState(uuid) -> void`
Clear any currently staged block state for the given block UUID.
### Session Utilities
#### `on(eventName, handler) -> unsubscribeFn`
Subscribe to one documented runtime event.
```js
const unsubscribe = SFE.PublicApi.on('save:after', payload => {
// observe successful save completion
});
```
Returns an unsubscribe function equivalent to calling `off(eventName, handler)`.
#### `off(eventName, handler) -> void`
Remove a previously registered event handler.
#### `refreshBlock(uuid, options?) -> Promise
Whatever your sitch is, you came to the right spot. I purpose to help y’all save time while looking for the best free porn sites on the net.It took lots of blood , sweat and viruses to construct up this list of websites. On the bright facet my laptop hasn’t blown up but, So issues are looking good … On the real these are the most popular sites in the world with the best amount of traffic. Your homie The Porn Guy has your again on this one and will get the soiled work accomplished.
That duty drives every rating we publish and every site we reject. If an inventory would not earn its spot, it loses it — easy as that. Our testing team re-checks old listings each week, evaluates new platforms as they launch, and expands into classes that did not exist 5 years ago. Of course, passing our review once does not imply a site is set for all times — and that’s where things get fascinating.
It should warn about aggressive advertisements on free tubes. It should treat each niche seriously, whether it’s mainstream studio content material, fetish platforms, cam sites, VR, or something more underground. The difference is whether you act like you’re. Links may lead to exterior websites that include sexually express material and should require age verification based mostly in your location. In addition to porn sites, our adult directory contains live cam platforms, grownup relationship websites, and hookup services.
The Porn Dude is amongst the most popular lists of adult reviews on the net, and it’s big too. The rough estimation is around 13K reviews, however I would say it’s way more than that. It raking over 70 million month-to-month views, and things like that don’t simply occur. Yes, theporndude.com appears like just a list of review, and there’s nothing videos-wise to maintain people entertained, however still, The Porn Dude continues to thrive. It has a significant function in the xxx world, and I’m gonna let you know all about it. He’s not serving porn – he’s serving directions. Here’s why ThePornDude.com is the cheeky, trusted information to the internet’s top porn sites (and the cartoon you by no means skip).
Now we measure how badly ads get in the way in which. But if tapping anywhere spawns new tabs and pretend close buttons, the complete thing unravels fast. Even Mike loses his cool at this stage — and he’s a banana. We pull out telephones, tablets, laptops and use the site the best way you’d. If the participant buffers endlessly, the search returns nonsense, or the format falls apart on a smaller display — good content alone won’t reserve it. Roughly half of everything we find doesn’t make it previous this level. We re-check, rescore, and reshuffle continually.
Websites might not have traffic data if they’re new or get too few visits to supply reliable estimates. Our reviews are based mostly on aggregated browsing and search exercise from hundreds of thousands of users, and smaller sites sometimes do not appear typically sufficient to research precisely. If you personal Porndude.tv and want to challenge the trust rating, please submit a review request via portal.gridinsoft.com. There you can claim your profile and add verified company/contact details. If you can not access the portal, email legal(at)gridinsoft.com with proof of legitimacy and get in touch with details. We never cost website owners for reviews or reconsideration requests. For more information, please review our Disclaimer.
The Porn Dude is THE man you want on your facet if you’re running a porn site. A review from him is like getting a seal of approval from the adult industry’s heavyweight champ. As I truly have already observe, The Porn Dude gets hundreds of thousands of hits every month. I’m speaking about 70 million or one thing like that. When he reviews your site, you’re tapping into that massive viewers. Instead of counting on social media and natural search, you possibly can let this guy ship people your way. A glowing review can ship a spike of tourists keen to check out what you’re providing.
Still look forward to precise consumer reviews for explicit products/services from Theporndude.com. Analysis reveals that this site displays social media icons or hyperlinks that don’t connect to legitimate social media profiles. This deceptive follow is commonly employed to create false legitimacy and represents a big indicator of fraudulent intent requiring immediate caution. The website supplies multi-language support, demonstrating international accessibility and commitment to numerous user populations.
Yes, there are tons of European porn sites and Asian porn sites exploring the bodies of these populations, along with their specific fetishes and sexual desires. Looking for a porn site with dorm porn and school girls going wild? Pairings that don’t match can lead to some fantastic, top tier porn. Naturally, we’ve provided Check this website the best quality sites in our list. Are you interested by having a enjoyable chat or sex chat with strangers? These are all chat web sites, that provide you with grownup chat rooms the place you’ll find a way to chat with all kinds of random girls.
This site has maintained lively domain presence over time, indicating operational continuity. A structured view of the site’s detected themes, page signals, and associated online footprint elements. Porndude.com is rated as a low-trust on line casino. This usually indicates limited working history, weak popularity proof, or licensing claims that can’t be independently confirmed. Our Analysts will manually review the web site and modify the results. Focus time and finances on areas where opponents are seeing results.
Straight sex, kink, threesomes, groups and more all fall in our hardcore collection. You’ll find the most effective of this area of interest, with the sexiest women, in our porn list of the most effective hardcore. We understand that generally you want one thing so actual it can’t even be recorded – high quality live sex cam sites like these under will ship. The porn sites we’ve linked here showcase masterfully written grownup fiction that will deliver you to another, sexier world the place fantasies come true. Many sexy babes love stroking cocks till their tiny arms are full of milky juices.
Here are the top grownup dating sex sites that can assist you find your match. Here’s the list for every little thing uncommon – if you won’t find it underneath its own niche, it belongs here. Affiliate partnerships fund our operations, however our rankings are primarily based on high quality metrics. Sites don’t pay us for specific rankings or placement.
All for free, with no sign-up and no registration. Free porn tubes provide limitless access, but with ads, decrease video high quality, and higher safety risks. Premium porn sites cost money, but provide HD/4K high quality, unique content, bonus movies, and more. Where other directories depart you in the dark, we provide certainty. Where they supply outdated information, we deliver suggestions for the hottest MILF pornstars and one of the best newbie porn videos. When you’re able to stop gambling with random free nudes from tube sites or sketchy selfmade movies, it’s straightforward to see the value provided by ThePornMap.
Our rankings replicate current quality, not a snapshot from the past. When a pussy is so good, sometimes you are simply unable to tug it out in time! These are the most well liked porn websites where slutty women get their cunts and ass holes crammed with hot cum. We have gotten you lined even if it’s easy softcore content material that you’re after. The softcore porn sites listed under are good for true admirers of the best erotic art. Would you want to observe many individuals having slutty fun all collectively at the similar time? Well, orgies are all about fucking in massive groups, and here is our porn list of the hottest orgy websites.
If you wish to watch slutty girls from the 70s, 80s, 90s, and so forth, you possibly can explore all the classic porn sites on this list. Hot Asian girls from the Orient fill out the model roles within the completely excellent sites we’ve listed, so these with a style for them shouldn’t miss out. Sex videos can usually turn out to be boring and typically the simplest way to spice issues up is to add individuals to them! These are the best websites crammed with hardcore gangbang content material.
]]>Whatever your sitch is, you came to the right spot. I purpose to help y’all save time while looking for the best free porn sites on the net.It took lots of blood , sweat and viruses to construct up this list of websites. On the bright facet my laptop hasn’t blown up but, So issues are looking good … On the real these are the most popular sites in the world with the best amount of traffic. Your homie The Porn Guy has your again on this one and will get the soiled work accomplished.
That duty drives every rating we publish and every site we reject. If an inventory would not earn its spot, it loses it — easy as that. Our testing team re-checks old listings each week, evaluates new platforms as they launch, and expands into classes that did not exist 5 years ago. Of course, passing our review once does not imply a site is set for all times — and that’s where things get fascinating.
It should warn about aggressive advertisements on free tubes. It should treat each niche seriously, whether it’s mainstream studio content material, fetish platforms, cam sites, VR, or something more underground. The difference is whether you act like you’re. Links may lead to exterior websites that include sexually express material and should require age verification based mostly in your location. In addition to porn sites, our adult directory contains live cam platforms, grownup relationship websites, and hookup services.
The Porn Dude is amongst the most popular lists of adult reviews on the net, and it’s big too. The rough estimation is around 13K reviews, however I would say it’s way more than that. It raking over 70 million month-to-month views, and things like that don’t simply occur. Yes, theporndude.com appears like just a list of review, and there’s nothing videos-wise to maintain people entertained, however still, The Porn Dude continues to thrive. It has a significant function in the xxx world, and I’m gonna let you know all about it. He’s not serving porn – he’s serving directions. Here’s why ThePornDude.com is the cheeky, trusted information to the internet’s top porn sites (and the cartoon you by no means skip).
Now we measure how badly ads get in the way in which. But if tapping anywhere spawns new tabs and pretend close buttons, the complete thing unravels fast. Even Mike loses his cool at this stage — and he’s a banana. We pull out telephones, tablets, laptops and use the site the best way you’d. If the participant buffers endlessly, the search returns nonsense, or the format falls apart on a smaller display — good content alone won’t reserve it. Roughly half of everything we find doesn’t make it previous this level. We re-check, rescore, and reshuffle continually.
Websites might not have traffic data if they’re new or get too few visits to supply reliable estimates. Our reviews are based mostly on aggregated browsing and search exercise from hundreds of thousands of users, and smaller sites sometimes do not appear typically sufficient to research precisely. If you personal Porndude.tv and want to challenge the trust rating, please submit a review request via portal.gridinsoft.com. There you can claim your profile and add verified company/contact details. If you can not access the portal, email legal(at)gridinsoft.com with proof of legitimacy and get in touch with details. We never cost website owners for reviews or reconsideration requests. For more information, please review our Disclaimer.
The Porn Dude is THE man you want on your facet if you’re running a porn site. A review from him is like getting a seal of approval from the adult industry’s heavyweight champ. As I truly have already observe, The Porn Dude gets hundreds of thousands of hits every month. I’m speaking about 70 million or one thing like that. When he reviews your site, you’re tapping into that massive viewers. Instead of counting on social media and natural search, you possibly can let this guy ship people your way. A glowing review can ship a spike of tourists keen to check out what you’re providing.
Still look forward to precise consumer reviews for explicit products/services from Theporndude.com. Analysis reveals that this site displays social media icons or hyperlinks that don’t connect to legitimate social media profiles. This deceptive follow is commonly employed to create false legitimacy and represents a big indicator of fraudulent intent requiring immediate caution. The website supplies multi-language support, demonstrating international accessibility and commitment to numerous user populations.
Yes, there are tons of European porn sites and Asian porn sites exploring the bodies of these populations, along with their specific fetishes and sexual desires. Looking for a porn site with dorm porn and school girls going wild? Pairings that don’t match can lead to some fantastic, top tier porn. Naturally, we’ve provided Check this website the best quality sites in our list. Are you interested by having a enjoyable chat or sex chat with strangers? These are all chat web sites, that provide you with grownup chat rooms the place you’ll find a way to chat with all kinds of random girls.
This site has maintained lively domain presence over time, indicating operational continuity. A structured view of the site’s detected themes, page signals, and associated online footprint elements. Porndude.com is rated as a low-trust on line casino. This usually indicates limited working history, weak popularity proof, or licensing claims that can’t be independently confirmed. Our Analysts will manually review the web site and modify the results. Focus time and finances on areas where opponents are seeing results.
Straight sex, kink, threesomes, groups and more all fall in our hardcore collection. You’ll find the most effective of this area of interest, with the sexiest women, in our porn list of the most effective hardcore. We understand that generally you want one thing so actual it can’t even be recorded – high quality live sex cam sites like these under will ship. The porn sites we’ve linked here showcase masterfully written grownup fiction that will deliver you to another, sexier world the place fantasies come true. Many sexy babes love stroking cocks till their tiny arms are full of milky juices.
Here are the top grownup dating sex sites that can assist you find your match. Here’s the list for every little thing uncommon – if you won’t find it underneath its own niche, it belongs here. Affiliate partnerships fund our operations, however our rankings are primarily based on high quality metrics. Sites don’t pay us for specific rankings or placement.
All for free, with no sign-up and no registration. Free porn tubes provide limitless access, but with ads, decrease video high quality, and higher safety risks. Premium porn sites cost money, but provide HD/4K high quality, unique content, bonus movies, and more. Where other directories depart you in the dark, we provide certainty. Where they supply outdated information, we deliver suggestions for the hottest MILF pornstars and one of the best newbie porn videos. When you’re able to stop gambling with random free nudes from tube sites or sketchy selfmade movies, it’s straightforward to see the value provided by ThePornMap.
Our rankings replicate current quality, not a snapshot from the past. When a pussy is so good, sometimes you are simply unable to tug it out in time! These are the most well liked porn websites where slutty women get their cunts and ass holes crammed with hot cum. We have gotten you lined even if it’s easy softcore content material that you’re after. The softcore porn sites listed under are good for true admirers of the best erotic art. Would you want to observe many individuals having slutty fun all collectively at the similar time? Well, orgies are all about fucking in massive groups, and here is our porn list of the hottest orgy websites.
If you wish to watch slutty girls from the 70s, 80s, 90s, and so forth, you possibly can explore all the classic porn sites on this list. Hot Asian girls from the Orient fill out the model roles within the completely excellent sites we’ve listed, so these with a style for them shouldn’t miss out. Sex videos can usually turn out to be boring and typically the simplest way to spice issues up is to add individuals to them! These are the best websites crammed with hardcore gangbang content material.
]]>