Merge m-c to inbound on a CLOSED TREE

This commit is contained in:
Wes Kocher 2014-02-26 18:31:11 -08:00
commit cc152eb194
16 changed files with 72 additions and 29 deletions

View File

@ -723,3 +723,7 @@ SettingsListener.observe('layers.draw-tile-borders', false, function(value) {
Services.prefs.setBoolPref('layers.draw-tile-borders', value); Services.prefs.setBoolPref('layers.draw-tile-borders', value);
}); });
SettingsListener.observe('layers.dump', false, function(value) {
Services.prefs.setBoolPref('layers.dump', value);
});

View File

@ -14,4 +14,5 @@ body {
margin: 0; margin: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
overflow: hidden;
} }

View File

@ -19,7 +19,7 @@
<copyfile dest="Makefile" src="core/root.mk"/> <copyfile dest="Makefile" src="core/root.mk"/>
</project> </project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/> <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c8d34e6e98d4b99921fda59ddd89f2dcdce201fc"/> <project name="gaia.git" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d11f524d00cacf5ba0dfbf25e4aa2158b1c3a036"/> <project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d11f524d00cacf5ba0dfbf25e4aa2158b1c3a036"/>

View File

@ -17,7 +17,7 @@
</project> </project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/> <project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="c8d34e6e98d4b99921fda59ddd89f2dcdce201fc"/> <project name="gaia" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="3d5c964015967ca8c86abe6dbbebee3cb82b1609"/> <project name="moztt" path="external/moztt" remote="b2g" revision="3d5c964015967ca8c86abe6dbbebee3cb82b1609"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="52ca41d9fa6ef88e65d9da52e375716c68d48646"/> <project name="apitrace" path="external/apitrace" remote="apitrace" revision="52ca41d9fa6ef88e65d9da52e375716c68d48646"/>

View File

@ -19,7 +19,7 @@
<copyfile dest="Makefile" src="core/root.mk"/> <copyfile dest="Makefile" src="core/root.mk"/>
</project> </project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/> <project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="c8d34e6e98d4b99921fda59ddd89f2dcdce201fc"/> <project name="gaia.git" path="gaia" remote="mozillaorg" revision="ec159aac19ff25912f1d68ffb44b29f797583ef5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/> <project name="gonk-misc" path="gonk-misc" remote="b2g" revision="15e8982284c4560f9c74c2b9fe8bb361ebfe0cb6"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/> <project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d11f524d00cacf5ba0dfbf25e4aa2158b1c3a036"/> <project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="d11f524d00cacf5ba0dfbf25e4aa2158b1c3a036"/>

View File

@ -4801,9 +4801,8 @@ const nodeToShortcutMap = {
"tabview-button": "key_tabview", "tabview-button": "key_tabview",
}; };
const gDynamicTooltipCache = new Map(); const gDynamicTooltipCache = new Map();
function UpdateDynamicShortcutTooltipText(popupTriggerNode) { function UpdateDynamicShortcutTooltipText(aTooltip) {
let label = document.getElementById("dynamic-shortcut-tooltip-label"); let nodeId = aTooltip.triggerNode.id;
let nodeId = popupTriggerNode.id;
if (!gDynamicTooltipCache.has(nodeId) && nodeId in nodeToTooltipMap) { if (!gDynamicTooltipCache.has(nodeId) && nodeId in nodeToTooltipMap) {
let strId = nodeToTooltipMap[nodeId]; let strId = nodeToTooltipMap[nodeId];
let args = []; let args = [];
@ -4816,8 +4815,7 @@ function UpdateDynamicShortcutTooltipText(popupTriggerNode) {
} }
gDynamicTooltipCache.set(nodeId, gNavigatorBundle.getFormattedString(strId, args)); gDynamicTooltipCache.set(nodeId, gNavigatorBundle.getFormattedString(strId, args));
} }
let desiredLabel = gDynamicTooltipCache.get(nodeId); aTooltip.setAttribute("label", gDynamicTooltipCache.get(nodeId));
label.setAttribute("value", desiredLabel);
} }
/** /**

View File

@ -476,9 +476,7 @@
</hbox> </hbox>
<tooltip id="dynamic-shortcut-tooltip" <tooltip id="dynamic-shortcut-tooltip"
onpopupshowing="UpdateDynamicShortcutTooltipText(this.triggerNode)"> onpopupshowing="UpdateDynamicShortcutTooltipText(this);"/>
<label id="dynamic-shortcut-tooltip-label"/>
</tooltip>
</popupset> </popupset>
#ifdef CAN_DRAW_IN_TITLEBAR #ifdef CAN_DRAW_IN_TITLEBAR

View File

@ -1058,11 +1058,13 @@ nsDOMCameraControl::OnRecorderStateChange(CameraControlListener::RecorderState a
mStartRecordingOnErrorCb = nullptr; mStartRecordingOnErrorCb = nullptr;
cb->Call(ignored); cb->Call(ignored);
} }
return; state = NS_LITERAL_STRING("Started");
break;
case CameraControlListener::kRecorderStopped: case CameraControlListener::kRecorderStopped:
NotifyRecordingStatusChange(NS_LITERAL_STRING("shutdown")); NotifyRecordingStatusChange(NS_LITERAL_STRING("shutdown"));
return; state = NS_LITERAL_STRING("Stopped");
break;
#ifdef MOZ_B2G_CAMERA #ifdef MOZ_B2G_CAMERA
case CameraControlListener::kFileSizeLimitReached: case CameraControlListener::kFileSizeLimitReached:

View File

@ -57,6 +57,8 @@ public:
virtual ~CanvasClient() {} virtual ~CanvasClient() {}
virtual void Clear() {};
virtual void Update(gfx::IntSize aSize, ClientCanvasLayer* aLayer) = 0; virtual void Update(gfx::IntSize aSize, ClientCanvasLayer* aLayer) = 0;
virtual void Updated() { } virtual void Updated() { }
@ -80,6 +82,11 @@ public:
return TextureInfo(COMPOSITABLE_IMAGE); return TextureInfo(COMPOSITABLE_IMAGE);
} }
virtual void Clear() MOZ_OVERRIDE
{
mBuffer = nullptr;
}
virtual void Update(gfx::IntSize aSize, ClientCanvasLayer* aLayer) MOZ_OVERRIDE; virtual void Update(gfx::IntSize aSize, ClientCanvasLayer* aLayer) MOZ_OVERRIDE;
virtual bool AddTextureClient(TextureClient* aTexture) MOZ_OVERRIDE virtual bool AddTextureClient(TextureClient* aTexture) MOZ_OVERRIDE
@ -113,6 +120,11 @@ public:
return TextureInfo(COMPOSITABLE_IMAGE); return TextureInfo(COMPOSITABLE_IMAGE);
} }
virtual void Clear() MOZ_OVERRIDE
{
mBuffer = nullptr;
}
virtual void Update(gfx::IntSize aSize, ClientCanvasLayer* aLayer) MOZ_OVERRIDE; virtual void Update(gfx::IntSize aSize, ClientCanvasLayer* aLayer) MOZ_OVERRIDE;
virtual void OnDetach() MOZ_OVERRIDE virtual void OnDetach() MOZ_OVERRIDE

View File

@ -56,6 +56,13 @@ public:
virtual void RenderLayer(); virtual void RenderLayer();
virtual void ClearCachedResources()
{
if (mCanvasClient) {
mCanvasClient->Clear();
}
}
virtual void FillSpecificAttributes(SpecificLayerAttributes& aAttrs) virtual void FillSpecificAttributes(SpecificLayerAttributes& aAttrs)
{ {
aAttrs = CanvasLayerAttributes(mFilter, mBounds); aAttrs = CanvasLayerAttributes(mFilter, mBounds);

View File

@ -206,7 +206,12 @@ public:
typedef RotatedContentBuffer::PaintState PaintState; typedef RotatedContentBuffer::PaintState PaintState;
typedef RotatedContentBuffer::ContentType ContentType; typedef RotatedContentBuffer::ContentType ContentType;
virtual void Clear() { RotatedContentBuffer::Clear(); } virtual void Clear()
{
RotatedContentBuffer::Clear();
mTextureClient = nullptr;
mTextureClientOnWhite = nullptr;
}
virtual PaintState BeginPaintBuffer(ThebesLayer* aLayer, virtual PaintState BeginPaintBuffer(ThebesLayer* aLayer,
uint32_t aFlags) MOZ_OVERRIDE uint32_t aFlags) MOZ_OVERRIDE
@ -424,6 +429,13 @@ public:
} }
virtual ~ContentClientDoubleBuffered() {} virtual ~ContentClientDoubleBuffered() {}
virtual void Clear() MOZ_OVERRIDE
{
ContentClientRemoteBuffer::Clear();
mFrontClient = nullptr;
mFrontClientOnWhite = nullptr;
}
virtual void SwapBuffers(const nsIntRegion& aFrontUpdatedRegion) MOZ_OVERRIDE; virtual void SwapBuffers(const nsIntRegion& aFrontUpdatedRegion) MOZ_OVERRIDE;
virtual void PrepareFrame() MOZ_OVERRIDE; virtual void PrepareFrame() MOZ_OVERRIDE;

View File

@ -305,8 +305,9 @@ TextureClient::Finalize()
if (actor) { if (actor) {
// this will call ForceRemove in the right thread, using a sync proxy if needed // this will call ForceRemove in the right thread, using a sync proxy if needed
actor->GetForwarder()->RemoveTexture(this); if (actor->GetForwarder()) {
actor->GetForwarder()->RemoveTexture(this);
}
// The actor has a raw pointer to us, actor->mTextureClient. Null it before we die. // The actor has a raw pointer to us, actor->mTextureClient. Null it before we die.
actor->mTextureClient = nullptr; actor->mTextureClient = nullptr;
} }

View File

@ -2101,7 +2101,6 @@ InitLayersAccelerationPrefs()
sPrefLayersAccelerationDisabled = Preferences::GetBool("layers.acceleration.disabled", false); sPrefLayersAccelerationDisabled = Preferences::GetBool("layers.acceleration.disabled", false);
sPrefLayersPreferOpenGL = Preferences::GetBool("layers.prefer-opengl", false); sPrefLayersPreferOpenGL = Preferences::GetBool("layers.prefer-opengl", false);
sPrefLayersPreferD3D9 = Preferences::GetBool("layers.prefer-d3d9", false); sPrefLayersPreferD3D9 = Preferences::GetBool("layers.prefer-d3d9", false);
sPrefLayersDrawFPS = Preferences::GetBool("layers.acceleration.draw-fps", false);
sPrefLayersDump = Preferences::GetBool("layers.dump", false); sPrefLayersDump = Preferences::GetBool("layers.dump", false);
sPrefLayersScrollGraph = Preferences::GetBool("layers.scroll-graph", false); sPrefLayersScrollGraph = Preferences::GetBool("layers.scroll-graph", false);
sPrefLayersEnableTiles = Preferences::GetBool("layers.enable-tiles", false); sPrefLayersEnableTiles = Preferences::GetBool("layers.enable-tiles", false);
@ -2111,6 +2110,8 @@ InitLayersAccelerationPrefs()
sComponentAlphaEnabled = Preferences::GetBool("layers.componentalpha.enabled", true); sComponentAlphaEnabled = Preferences::GetBool("layers.componentalpha.enabled", true);
sPrefBrowserTabsRemoteAutostart = Preferences::GetBool("browser.tabs.remote.autostart", false); sPrefBrowserTabsRemoteAutostart = Preferences::GetBool("browser.tabs.remote.autostart", false);
Preferences::AddBoolVarCache(&sPrefLayersDrawFPS, "layers.acceleration.draw-fps", false);
#ifdef XP_WIN #ifdef XP_WIN
if (sPrefLayersAccelerationForceEnabled) { if (sPrefLayersAccelerationForceEnabled) {
sLayersSupportsD3D9 = true; sLayersSupportsD3D9 = true;

View File

@ -74,6 +74,12 @@ public class Tab {
public static final int STATE_SUCCESS = 2; public static final int STATE_SUCCESS = 2;
public static final int STATE_ERROR = 3; public static final int STATE_ERROR = 3;
public static final int LOAD_PROGRESS_INIT = 10;
public static final int LOAD_PROGRESS_START = 20;
public static final int LOAD_PROGRESS_LOCATION_CHANGE = 60;
public static final int LOAD_PROGRESS_LOADED = 80;
public static final int LOAD_PROGRESS_STOP = 100;
private static final int DEFAULT_BACKGROUND_COLOR = Color.WHITE; private static final int DEFAULT_BACKGROUND_COLOR = Color.WHITE;
public enum ErrorType { public enum ErrorType {
@ -112,6 +118,7 @@ public class Tab {
mPluginViews = new ArrayList<View>(); mPluginViews = new ArrayList<View>();
mPluginLayers = new HashMap<Object, Layer>(); mPluginLayers = new HashMap<Object, Layer>();
mState = shouldShowProgress(url) ? STATE_SUCCESS : STATE_LOADING; mState = shouldShowProgress(url) ? STATE_SUCCESS : STATE_LOADING;
mLoadProgress = LOAD_PROGRESS_INIT;
// At startup, the background is set to a color specified by LayerView // At startup, the background is set to a color specified by LayerView
// when the LayerView is created. Shortly after, this background color // when the LayerView is created. Shortly after, this background color
@ -628,6 +635,7 @@ public class Tab {
setHasTouchListeners(false); setHasTouchListeners(false);
setBackgroundColor(DEFAULT_BACKGROUND_COLOR); setBackgroundColor(DEFAULT_BACKGROUND_COLOR);
setErrorType(ErrorType.NONE); setErrorType(ErrorType.NONE);
setLoadProgress(LOAD_PROGRESS_LOCATION_CHANGE);
Tabs.getInstance().notifyListeners(this, Tabs.TabEvents.LOCATION_CHANGE, oldUrl); Tabs.getInstance().notifyListeners(this, Tabs.TabEvents.LOCATION_CHANGE, oldUrl);
} }
@ -639,6 +647,7 @@ public class Tab {
} }
void handleDocumentStart(boolean showProgress, String url) { void handleDocumentStart(boolean showProgress, String url) {
setLoadProgress(LOAD_PROGRESS_START);
setState(showProgress ? STATE_LOADING : STATE_SUCCESS); setState(showProgress ? STATE_LOADING : STATE_SUCCESS);
updateIdentityData(null); updateIdentityData(null);
setReaderEnabled(false); setReaderEnabled(false);
@ -649,6 +658,7 @@ public class Tab {
final String oldURL = getURL(); final String oldURL = getURL();
final Tab tab = this; final Tab tab = this;
tab.setLoadProgress(LOAD_PROGRESS_STOP);
ThreadUtils.getBackgroundHandler().postDelayed(new Runnable() { ThreadUtils.getBackgroundHandler().postDelayed(new Runnable() {
@Override @Override
public void run() { public void run() {
@ -659,7 +669,11 @@ public class Tab {
ThumbnailHelper.getInstance().getAndProcessThumbnailFor(tab); ThumbnailHelper.getInstance().getAndProcessThumbnailFor(tab);
} }
}, 500); }, 500);
} }
void handleContentLoaded() {
setLoadProgress(LOAD_PROGRESS_LOADED);
}
protected void saveThumbnailToDB() { protected void saveThumbnailToDB() {
try { try {

View File

@ -51,11 +51,6 @@ public class Tabs implements GeckoEventListener {
private AccountManager mAccountManager; private AccountManager mAccountManager;
private OnAccountsUpdateListener mAccountListener = null; private OnAccountsUpdateListener mAccountListener = null;
private static final int LOAD_PROGRESS_START = 20;
private static final int LOAD_PROGRESS_LOCATION_CHANGE = 60;
private static final int LOAD_PROGRESS_LOADED = 80;
private static final int LOAD_PROGRESS_STOP = 100;
public static final int LOADURL_NONE = 0; public static final int LOADURL_NONE = 0;
public static final int LOADURL_NEW_TAB = 1 << 0; public static final int LOADURL_NEW_TAB = 1 << 0;
public static final int LOADURL_USER_ENTERED = 1 << 1; public static final int LOADURL_USER_ENTERED = 1 << 1;
@ -440,7 +435,6 @@ public class Tabs implements GeckoEventListener {
} else if (event.equals("Tab:Select")) { } else if (event.equals("Tab:Select")) {
selectTab(tab.getId()); selectTab(tab.getId());
} else if (event.equals("Content:LocationChange")) { } else if (event.equals("Content:LocationChange")) {
tab.setLoadProgress(LOAD_PROGRESS_LOCATION_CHANGE);
tab.handleLocationChange(message); tab.handleLocationChange(message);
} else if (event.equals("Content:SecurityChange")) { } else if (event.equals("Content:SecurityChange")) {
tab.updateIdentityData(message.getJSONObject("identity")); tab.updateIdentityData(message.getJSONObject("identity"));
@ -454,20 +448,19 @@ public class Tabs implements GeckoEventListener {
if ((state & GeckoAppShell.WPL_STATE_START) != 0) { if ((state & GeckoAppShell.WPL_STATE_START) != 0) {
boolean showProgress = message.getBoolean("showProgress"); boolean showProgress = message.getBoolean("showProgress");
tab.handleDocumentStart(showProgress, message.getString("uri")); tab.handleDocumentStart(showProgress, message.getString("uri"));
tab.setLoadProgress(LOAD_PROGRESS_START);
notifyListeners(tab, Tabs.TabEvents.START); notifyListeners(tab, Tabs.TabEvents.START);
} else if ((state & GeckoAppShell.WPL_STATE_STOP) != 0) { } else if ((state & GeckoAppShell.WPL_STATE_STOP) != 0) {
tab.handleDocumentStop(message.getBoolean("success")); tab.handleDocumentStop(message.getBoolean("success"));
tab.setLoadProgress(LOAD_PROGRESS_STOP);
notifyListeners(tab, Tabs.TabEvents.STOP); notifyListeners(tab, Tabs.TabEvents.STOP);
} }
} }
} else if (event.equals("Content:LoadError")) { } else if (event.equals("Content:LoadError")) {
tab.setLoadProgress(LOAD_PROGRESS_LOADED); tab.handleContentLoaded();
notifyListeners(tab, Tabs.TabEvents.LOAD_ERROR); notifyListeners(tab, Tabs.TabEvents.LOAD_ERROR);
} else if (event.equals("Content:PageShow")) { } else if (event.equals("Content:PageShow")) {
notifyListeners(tab, TabEvents.PAGE_SHOW); notifyListeners(tab, TabEvents.PAGE_SHOW);
} else if (event.equals("DOMContentLoaded")) { } else if (event.equals("DOMContentLoaded")) {
tab.handleContentLoaded();
String backgroundColor = message.getString("bgColor"); String backgroundColor = message.getString("bgColor");
if (backgroundColor != null) { if (backgroundColor != null) {
tab.setBackgroundColor(backgroundColor); tab.setBackgroundColor(backgroundColor);
@ -476,7 +469,6 @@ public class Tabs implements GeckoEventListener {
tab.setBackgroundColor(Color.WHITE); tab.setBackgroundColor(Color.WHITE);
} }
tab.setErrorType(message.optString("errorType")); tab.setErrorType(message.optString("errorType"));
tab.setLoadProgress(LOAD_PROGRESS_LOADED);
notifyListeners(tab, Tabs.TabEvents.LOADED); notifyListeners(tab, Tabs.TabEvents.LOADED);
} else if (event.equals("DOMTitleChanged")) { } else if (event.equals("DOMTitleChanged")) {
tab.updateTitle(message.getString("title")); tab.updateTitle(message.getString("title"));

View File

@ -470,8 +470,9 @@ public class BrowserToolbar extends GeckoRelativeLayout
// Progress-related handling // Progress-related handling
switch (msg) { switch (msg) {
case START: case START:
updateProgressVisibility(tab, 0); updateProgressVisibility(tab, Tab.LOAD_PROGRESS_INIT);
// Fall through. // Fall through.
case ADDED:
case LOCATION_CHANGE: case LOCATION_CHANGE:
case LOAD_ERROR: case LOAD_ERROR:
case LOADED: case LOADED: