зеркало из 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);
|
||||
TabStateCache.onBrowserContentsSwapped(browser, otherBrowser);
|
||||
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":
|
||||
this.onTabAdd(win, aEvent.originalTarget);
|
||||
break;
|
||||
|
@ -1235,6 +1245,7 @@ let SessionStoreInternal = {
|
|||
let browser = aTab.linkedBrowser;
|
||||
browser.addEventListener("load", this, true);
|
||||
browser.addEventListener("SwapDocShells", this, true);
|
||||
browser.addEventListener("UserTypedValueChanged", this, true);
|
||||
|
||||
let mm = browser.messageManager;
|
||||
MESSAGES.forEach(msg => mm.addMessageListener(msg, this));
|
||||
|
@ -1262,6 +1273,7 @@ let SessionStoreInternal = {
|
|||
let browser = aTab.linkedBrowser;
|
||||
browser.removeEventListener("load", this, true);
|
||||
browser.removeEventListener("SwapDocShells", this, true);
|
||||
browser.removeEventListener("UserTypedValueChanged", this, true);
|
||||
|
||||
let mm = browser.messageManager;
|
||||
MESSAGES.forEach(msg => mm.removeMessageListener(msg, this));
|
||||
|
|
|
@ -236,7 +236,6 @@ let TabStateCacheInternal = {
|
|||
if (data) {
|
||||
data[aField] = aValue;
|
||||
}
|
||||
TabStateCacheTelemetry.recordAccess(!!data);
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -252,7 +251,6 @@ let TabStateCacheInternal = {
|
|||
if (data && aField in data) {
|
||||
delete data[aField];
|
||||
}
|
||||
TabStateCacheTelemetry.recordAccess(!!data);
|
||||
},
|
||||
|
||||
/**
|
||||
|
|
|
@ -673,8 +673,17 @@
|
|||
</field>
|
||||
|
||||
<property name="userTypedValue"
|
||||
onget="return this._userTypedValue;"
|
||||
onset="this.userTypedClear = 0; return this._userTypedValue = val;"/>
|
||||
onget="return this._userTypedValue;">
|
||||
<setter><![CDATA[
|
||||
this.userTypedClear = 0;
|
||||
this._userTypedValue = val;
|
||||
|
||||
let event = new CustomEvent("UserTypedValueChanged");
|
||||
this.dispatchEvent(event);
|
||||
|
||||
return val;
|
||||
]]></setter>
|
||||
</property>
|
||||
|
||||
<field name="mFormFillAttached">
|
||||
false
|
||||
|
|
Загрузка…
Ссылка в новой задаче