зеркало из https://github.com/mozilla/gecko-dev.git
Bug 942622 - Invalidate TabStateCache when .userTypedValue changes r=yoric,dao
From 087412c836ecf1412325942e20c1fd9559d8f20a Mon Sep 17 00:00:00 2001
This commit is contained in:
Родитель
2b1042fd24
Коммит
db00b3e4b6
|
@ -650,6 +650,16 @@ let SessionStoreInternal = {
|
||||||
TabState.onBrowserContentsSwapped(browser, otherBrowser);
|
TabState.onBrowserContentsSwapped(browser, otherBrowser);
|
||||||
TabStateCache.onBrowserContentsSwapped(browser, otherBrowser);
|
TabStateCache.onBrowserContentsSwapped(browser, otherBrowser);
|
||||||
break;
|
break;
|
||||||
|
case "UserTypedValueChanged":
|
||||||
|
browser = aEvent.currentTarget;
|
||||||
|
if (browser.userTypedValue) {
|
||||||
|
TabStateCache.updateField(browser, "userTypedValue", browser.userTypedValue);
|
||||||
|
TabStateCache.updateField(browser, "userTypedClear", browser.userTypedClear);
|
||||||
|
} else {
|
||||||
|
TabStateCache.removeField(browser, "userTypedValue");
|
||||||
|
TabStateCache.removeField(browser, "userTypedClear");
|
||||||
|
}
|
||||||
|
break;
|
||||||
case "TabOpen":
|
case "TabOpen":
|
||||||
this.onTabAdd(win, aEvent.originalTarget);
|
this.onTabAdd(win, aEvent.originalTarget);
|
||||||
break;
|
break;
|
||||||
|
@ -1235,6 +1245,7 @@ let SessionStoreInternal = {
|
||||||
let browser = aTab.linkedBrowser;
|
let browser = aTab.linkedBrowser;
|
||||||
browser.addEventListener("load", this, true);
|
browser.addEventListener("load", this, true);
|
||||||
browser.addEventListener("SwapDocShells", this, true);
|
browser.addEventListener("SwapDocShells", this, true);
|
||||||
|
browser.addEventListener("UserTypedValueChanged", this, true);
|
||||||
|
|
||||||
let mm = browser.messageManager;
|
let mm = browser.messageManager;
|
||||||
MESSAGES.forEach(msg => mm.addMessageListener(msg, this));
|
MESSAGES.forEach(msg => mm.addMessageListener(msg, this));
|
||||||
|
@ -1262,6 +1273,7 @@ let SessionStoreInternal = {
|
||||||
let browser = aTab.linkedBrowser;
|
let browser = aTab.linkedBrowser;
|
||||||
browser.removeEventListener("load", this, true);
|
browser.removeEventListener("load", this, true);
|
||||||
browser.removeEventListener("SwapDocShells", this, true);
|
browser.removeEventListener("SwapDocShells", this, true);
|
||||||
|
browser.removeEventListener("UserTypedValueChanged", this, true);
|
||||||
|
|
||||||
let mm = browser.messageManager;
|
let mm = browser.messageManager;
|
||||||
MESSAGES.forEach(msg => mm.removeMessageListener(msg, this));
|
MESSAGES.forEach(msg => mm.removeMessageListener(msg, this));
|
||||||
|
|
|
@ -236,7 +236,6 @@ let TabStateCacheInternal = {
|
||||||
if (data) {
|
if (data) {
|
||||||
data[aField] = aValue;
|
data[aField] = aValue;
|
||||||
}
|
}
|
||||||
TabStateCacheTelemetry.recordAccess(!!data);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -252,7 +251,6 @@ let TabStateCacheInternal = {
|
||||||
if (data && aField in data) {
|
if (data && aField in data) {
|
||||||
delete data[aField];
|
delete data[aField];
|
||||||
}
|
}
|
||||||
TabStateCacheTelemetry.recordAccess(!!data);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -673,8 +673,17 @@
|
||||||
</field>
|
</field>
|
||||||
|
|
||||||
<property name="userTypedValue"
|
<property name="userTypedValue"
|
||||||
onget="return this._userTypedValue;"
|
onget="return this._userTypedValue;">
|
||||||
onset="this.userTypedClear = 0; return this._userTypedValue = val;"/>
|
<setter><![CDATA[
|
||||||
|
this.userTypedClear = 0;
|
||||||
|
this._userTypedValue = val;
|
||||||
|
|
||||||
|
let event = new CustomEvent("UserTypedValueChanged");
|
||||||
|
this.dispatchEvent(event);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
]]></setter>
|
||||||
|
</property>
|
||||||
|
|
||||||
<field name="mFormFillAttached">
|
<field name="mFormFillAttached">
|
||||||
false
|
false
|
||||||
|
|
Загрузка…
Ссылка в новой задаче