Bug 1056018 - Mark the a few IPC calls as urgent priority to deal with edge cases involving CPOWs. r=billm (with one bugfix written by him and r=me)

This commit is contained in:
Blake Kaplan 2014-10-30 15:51:39 -07:00
parent 7a096b919c
commit cf259d89d5
7 changed files with 46 additions and 36 deletions

View File

@ -58,9 +58,14 @@
ok(data.s === "hello", "string property");
ok(data.x.i === 10, "nested property");
ok(data.f() === 99, "function call");
is(Object.getOwnPropertyDescriptor(data, "doesn't exist"), undefined,
"getOwnPropertyDescriptor returns undefined for non-existant properties");
ok(Object.getOwnPropertyDescriptor(data, "i").value, 5,
"getOwnPropertyDescriptor.value works");
let obj = new data.ctor();
ok(obj.a === 3, "constructor call");
ok(document.title === "Hello, Kitty", "document node");
is(typeof document.cookie, "string", "can get document.cookie");
data.i = 6;
data.b = false;

View File

@ -69,7 +69,7 @@ union MaybeNativeKeyBinding
void_t;
};
prio(normal upto high) intr protocol PBrowser
prio(normal upto urgent) intr protocol PBrowser
{
manager PContent or PContentBridge;
@ -141,7 +141,7 @@ parent:
* preference Native widget preference for IME updates
* seqno Current seqno value on the chrome side
*/
sync NotifyIMEFocus(bool focus)
prio(urgent) sync NotifyIMEFocus(bool focus)
returns (nsIMEUpdatePreference preference, uint32_t seqno);
/**
@ -157,8 +157,9 @@ parent:
* for insertion, offset == end
* for deletion, offset == newEnd
*/
NotifyIMETextChange(uint32_t offset, uint32_t end, uint32_t newEnd,
bool causedByComposition);
prio(urgent) async NotifyIMETextChange(uint32_t offset, uint32_t end,
uint32_t newEnd,
bool causedByComposition);
/**
* Notifies chrome that there is a IME compostion rect updated
@ -168,8 +169,10 @@ parent:
* caretOffset The offset of caret position
* caretRect The rect of IME caret
*/
NotifyIMESelectedCompositionRect(uint32_t offset, nsIntRect[] rect,
uint32_t caretOffset, nsIntRect caretRect);
prio(urgent) async NotifyIMESelectedCompositionRect(uint32_t offset,
nsIntRect[] rect,
uint32_t caretOffset,
nsIntRect caretRect);
/**
* Notifies chrome that there has been a change in selection
@ -180,22 +183,22 @@ parent:
* focus Offset where the caret is
* causedByComposition true if the change is caused by composition
*/
NotifyIMESelection(uint32_t seqno, uint32_t anchor, uint32_t focus,
bool causedByComposition);
prio(urgent) async NotifyIMESelection(uint32_t seqno, uint32_t anchor,
uint32_t focus, bool causedByComposition);
/**
* Notifies chrome to refresh its text cache
*
* text The entire content of the text field
*/
NotifyIMETextHint(nsString text);
prio(urgent) async NotifyIMETextHint(nsString text);
/**
* Notifies IME of mouse button event on a character in focused editor.
*
* Returns true if the mouse button event is consumd by IME.
*/
sync NotifyIMEMouseButtonEvent(IMENotification notification)
prio(urgent) sync NotifyIMEMouseButtonEvent(IMENotification notification)
returns (bool consumedByIME);
/**
@ -209,7 +212,7 @@ parent:
* if cancel is PR_FALSE,
* widget should return the current composition text
*/
sync EndIMEComposition(bool cancel) returns (nsString composition);
prio(urgent) sync EndIMEComposition(bool cancel) returns (nsString composition);
/**
* Request that the parent process move focus to the browser's frame. If
@ -217,16 +220,17 @@ parent:
*/
RequestFocus(bool canRaise);
sync GetInputContext() returns (int32_t IMEEnabled, int32_t IMEOpen,
intptr_t NativeIMEContext);
prio(urgent) sync GetInputContext() returns (int32_t IMEEnabled,
int32_t IMEOpen,
intptr_t NativeIMEContext);
SetInputContext(int32_t IMEEnabled,
int32_t IMEOpen,
nsString type,
nsString inputmode,
nsString actionHint,
int32_t cause,
int32_t focusChange);
prio(urgent) async SetInputContext(int32_t IMEEnabled,
int32_t IMEOpen,
nsString type,
nsString inputmode,
nsString actionHint,
int32_t cause,
int32_t focusChange);
sync IsParentWindowMainWidgetVisible() returns (bool visible);

View File

@ -330,7 +330,7 @@ union MaybeFileDesc {
void_t;
};
prio(normal upto high) intr protocol PContent
prio(normal upto urgent) intr protocol PContent
{
parent spawns PPluginModule;

View File

@ -28,7 +28,7 @@ namespace dom {
* allocate the PContentBridgeChild. This protocol allows these processes to
* share PBrowsers and send messages to each other.
*/
prio(normal upto high) intr protocol PContentBridge
prio(normal upto urgent) intr protocol PContentBridge
{
bridges PContent, PContent;

View File

@ -27,7 +27,7 @@ namespace net {
* @see nsICookiePermission
*/
sync protocol PCookieService
prio(normal upto urgent) sync protocol PCookieService
{
manager PNecko;
@ -60,10 +60,10 @@ parent:
*
* @return the resulting cookie string.
*/
sync GetCookieString(URIParams host,
bool isForeign,
bool fromHttp,
SerializedLoadContext loadContext)
prio(urgent) sync GetCookieString(URIParams host,
bool isForeign,
bool fromHttp,
SerializedLoadContext loadContext)
returns (nsCString result);
/*
@ -95,12 +95,12 @@ parent:
* @see nsICookieService.setCookieStringFromHttp
* @see mozIThirdPartyUtil.isThirdPartyChannel
*/
SetCookieString(URIParams host,
bool isForeign,
nsCString cookieString,
nsCString serverTime,
bool fromHttp,
SerializedLoadContext loadContext);
prio(urgent) async SetCookieString(URIParams host,
bool isForeign,
nsCString cookieString,
nsCString serverTime,
bool fromHttp,
SerializedLoadContext loadContext);
__delete__();
};

View File

@ -35,7 +35,7 @@ namespace mozilla {
namespace net {
//-------------------------------------------------------------------
sync protocol PNecko
prio(normal upto urgent) sync protocol PNecko
{
manager PContent;
manages PHttpChannel;
@ -55,7 +55,7 @@ sync protocol PNecko
parent:
__delete__();
PCookieService();
prio(urgent) async PCookieService();
PHttpChannel(PBrowserOrId browser,
SerializedLoadContext loadContext,
HttpChannelCreationArgs args);

View File

@ -709,7 +709,8 @@ RemoteBrowserElementInterposition.getters.contentWindow = function(addon, target
};
let DummyContentDocument = {
readyState: "loading"
readyState: "loading",
location: { href: "about:blank" }
};
RemoteBrowserElementInterposition.getters.contentDocument = function(addon, target) {