servo: Merge #15679 - Implement cross-thread postMessage (from asajeffrey:script-postMessage-xorigin); r=emilio
<!-- Please describe your changes on the following line: --> This PR implements cross-thread postMessage, It builds on #15438 and #15478, only the last commit is part of this PR. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] There are tests for these changes <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> Source-Repo: https://github.com/servo/servo Source-Revision: 1caf8a71dcdb9d749ad2d2c9d82fe0d913d7e17c
This commit is contained in:
@@ -63,6 +63,7 @@ use net_traits::storage_thread::StorageType;
|
||||
use profile_traits::mem;
|
||||
use profile_traits::time as profile_time;
|
||||
use serde::{Deserialize, Deserializer, Serialize, Serializer};
|
||||
use servo_url::ImmutableOrigin;
|
||||
use servo_url::ServoUrl;
|
||||
use std::collections::HashMap;
|
||||
use std::fmt;
|
||||
@@ -239,6 +240,8 @@ pub enum ConstellationControlMsg {
|
||||
/// Notifies script thread that a url should be loaded in this iframe.
|
||||
/// PipelineId is for the parent, FrameId is for the actual frame.
|
||||
Navigate(PipelineId, FrameId, LoadData, bool),
|
||||
/// Post a message to a given window.
|
||||
PostMessage(PipelineId, Option<ImmutableOrigin>, Vec<u8>),
|
||||
/// Requests the script thread forward a mozbrowser event to an iframe it owns,
|
||||
/// or to the window if no child frame id is provided.
|
||||
MozBrowserEvent(PipelineId, Option<FrameId>, MozBrowserEvent),
|
||||
@@ -297,6 +300,7 @@ impl fmt::Debug for ConstellationControlMsg {
|
||||
ChangeFrameVisibilityStatus(..) => "ChangeFrameVisibilityStatus",
|
||||
NotifyVisibilityChange(..) => "NotifyVisibilityChange",
|
||||
Navigate(..) => "Navigate",
|
||||
PostMessage(..) => "PostMessage",
|
||||
MozBrowserEvent(..) => "MozBrowserEvent",
|
||||
UpdatePipelineId(..) => "UpdatePipelineId",
|
||||
FocusIFrame(..) => "FocusIFrame",
|
||||
|
||||
@@ -23,6 +23,7 @@ use msg::constellation_msg::{Key, KeyModifiers, KeyState};
|
||||
use net_traits::CoreResourceMsg;
|
||||
use net_traits::storage_thread::StorageType;
|
||||
use offscreen_gl_context::{GLContextAttributes, GLLimits};
|
||||
use servo_url::ImmutableOrigin;
|
||||
use servo_url::ServoUrl;
|
||||
use style_traits::CSSPixel;
|
||||
use style_traits::cursor::Cursor;
|
||||
@@ -93,6 +94,8 @@ pub enum ScriptMsg {
|
||||
/// A new load has been requested, with an option to replace the current entry once loaded
|
||||
/// instead of adding a new entry.
|
||||
LoadUrl(PipelineId, LoadData, bool),
|
||||
/// Post a message to the currently active window of a given browsing context.
|
||||
PostMessage(FrameId, Option<ImmutableOrigin>, Vec<u8>),
|
||||
/// Dispatch a mozbrowser event to the parent of this pipeline.
|
||||
/// The first PipelineId is for the parent, the second is for the originating pipeline.
|
||||
MozBrowserEvent(PipelineId, PipelineId, MozBrowserEvent),
|
||||
|
||||
Reference in New Issue
Block a user