Merge mozilla-central to mozilla-inbound

This commit is contained in:
Ed Morley 2012-06-21 21:08:12 +01:00
commit 96e35995d3
4 changed files with 91 additions and 25 deletions

View File

@ -0,0 +1,18 @@
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-b2g
mk_add_options MOZ_MAKE_FLAGS="-j8"
ac_add_options --enable-application=b2g
ac_add_options --target=arm-android-eabi
ac_add_options --with-gonk="$topsrcdir/gonk-toolchain"
ac_add_options --with-gonk-toolchain-prefix="$topsrcdir/gonk-toolchain/prebuilt/$TOOLCHAIN_HOST/toolchain/arm-eabi-4.4.3/bin/arm-eabi-"
ac_add_options --with-endian=little
ac_add_options --disable-elf-hack
ac_add_options --enable-debug-symbols
ac_add_options --enable-debug
ac_add_options --with-ccache
ac_add_options --enable-marionette
# Enable dump() from JS.
export CXXFLAGS=-DMOZ_ENABLE_JS_DUMP

View File

@ -0,0 +1,18 @@
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-b2g
mk_add_options MOZ_MAKE_FLAGS="-j8"
ac_add_options --enable-application=b2g
ac_add_options --target=arm-android-eabi
ac_add_options --with-gonk="$topsrcdir/gonk-toolchain"
ac_add_options --with-gonk-toolchain-prefix="$topsrcdir/gonk-toolchain/prebuilt/$TOOLCHAIN_HOST/toolchain/arm-eabi-4.4.3/bin/arm-eabi-"
ac_add_options --with-endian=little
ac_add_options --disable-elf-hack
ac_add_options --enable-debug-symbols
ac_add_options --enable-profiling
ac_add_options --with-ccache
ac_add_options --enable-marionette
# Enable dump() from JS.
export CXXFLAGS=-DMOZ_ENABLE_JS_DUMP

View File

@ -208,6 +208,7 @@ var BrowserApp = {
WebappsUI.init();
RemoteDebugger.init();
Reader.init();
UserAgent.init();
#ifdef MOZ_TELEMETRY_REPORTING
Telemetry.init();
#endif
@ -359,6 +360,7 @@ var BrowserApp = {
WebappsUI.uninit();
RemoteDebugger.uninit();
Reader.uninit();
UserAgent.uninit();
#ifdef MOZ_TELEMETRY_REPORTING
Telemetry.uninit();
#endif
@ -1725,6 +1727,57 @@ var SelectionHandler = {
}
};
var UserAgent = {
init: function ua_init() {
Services.obs.addObserver(this, "http-on-modify-request", false);
},
uninit: function ua_uninit() {
Services.obs.removeObserver(this, "http-on-modify-request");
},
getRequestLoadContext: function ua_getRequestLoadContext(aRequest) {
if (aRequest && aRequest.notificationCallbacks) {
try {
return aRequest.notificationCallbacks.getInterface(Ci.nsILoadContext);
} catch (ex) { }
}
if (aRequest && aRequest.loadGroup && aRequest.loadGroup.notificationCallbacks) {
try {
return aRequest.loadGroup.notificationCallbacks.getInterface(Ci.nsILoadContext);
} catch (ex) { }
}
return null;
},
getWindowForRequest: function ua_getWindowForRequest(aRequest) {
let loadContext = this.getRequestLoadContext(aRequest);
if (loadContext)
return loadContext.associatedWindow;
return null;
},
observe: function ua_observe(aSubject, aTopic, aData) {
if (!(aSubject instanceof Ci.nsIHttpChannel))
return;
let channel = aSubject.QueryInterface(Ci.nsIHttpChannel);
let channelWindow = this.getWindowForRequest(channel);
if (BrowserApp.getBrowserForWindow(channelWindow)) {
if (channel.URI.host.indexOf("youtube") != -1) {
let ua = Cc["@mozilla.org/network/protocol;1?name=http"].getService(Ci.nsIHttpProtocolHandler).userAgent;
#expand let version = "__MOZ_APP_VERSION__";
ua += " Fennec/" + version;
channel.setRequestHeader("User-Agent", ua, false);
}
}
}
};
function nsBrowserAccess() {
}
@ -2833,29 +2886,6 @@ Tab.prototype = {
return zoom;
},
getRequestLoadContext: function(aRequest) {
if (aRequest && aRequest.notificationCallbacks) {
try {
return aRequest.notificationCallbacks.getInterface(Ci.nsILoadContext);
} catch (ex) { }
}
if (aRequest && aRequest.loadGroup && aRequest.loadGroup.notificationCallbacks) {
try {
return aRequest.loadGroup.notificationCallbacks.getInterface(Ci.nsILoadContext);
} catch (ex) { }
}
return null;
},
getWindowForRequest: function(aRequest) {
let loadContext = this.getRequestLoadContext(aRequest);
if (loadContext)
return loadContext.associatedWindow;
return null;
},
observe: function(aSubject, aTopic, aData) {
switch (aTopic) {
case "before-first-paint":

View File

@ -77,9 +77,8 @@ nsHtml5TreeOpExecutor::nsHtml5TreeOpExecutor(bool aRunsToCompletion)
nsHtml5TreeOpExecutor::~nsHtml5TreeOpExecutor()
{
NS_ASSERTION(mOpQueue.IsEmpty(), "Somehow there's stuff in the op queue.");
if (gBackgroundFlushList && isInList()) {
mOpQueue.Clear();
remove();
if (gBackgroundFlushList->isEmpty()) {
delete gBackgroundFlushList;
@ -90,6 +89,7 @@ nsHtml5TreeOpExecutor::~nsHtml5TreeOpExecutor()
}
}
}
NS_ASSERTION(mOpQueue.IsEmpty(), "Somehow there's stuff in the op queue.");
}
// nsIContentSink