Revert this CLOSED TREE to changeset 4d3e221584a0.

This commit is contained in:
Ms2ger 2013-08-24 13:31:48 +02:00
parent 6f8e4fc6e1
commit 944d17423c
29 changed files with 133 additions and 93 deletions

View File

@ -190,7 +190,6 @@ destroying the MediaDecoder object.
#include "gfxRect.h"
#include "MediaResource.h"
#include "mozilla/ReentrantMonitor.h"
#include "mozilla/TimeStamp.h"
#include "MediaStreamGraph.h"
#include "MediaDecoderOwner.h"
#include "AudioChannelCommon.h"

View File

@ -18,7 +18,6 @@
#include "nsIInterfaceRequestor.h"
#include "MediaCache.h"
#include "mozilla/Attributes.h"
#include "mozilla/TimeStamp.h"
// For HTTP seeking, if number of bytes needing to be
// seeked forward is less than this value then a read is

View File

@ -4,6 +4,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "mozilla/Preferences.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/dom/TimeRanges.h"
#include "MediaResource.h"
#include "mozilla/dom/HTMLMediaElement.h"

View File

@ -8,8 +8,8 @@
#include "nsContentUtils.h"
#include "nsIScriptSecurityManager.h"
#include "prtime.h"
#include "TimeStamp.h"
#include "nsIURI.h"
#include "mozilla/TimeStamp.h"
nsDOMNavigationTiming::nsDOMNavigationTiming()
{

View File

@ -4,6 +4,7 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "nsPerformance.h"
#include "TimeStamp.h"
#include "nsCOMPtr.h"
#include "nsITimedChannel.h"
#include "nsDOMNavigationTiming.h"
@ -12,7 +13,6 @@
#include "mozilla/dom/PerformanceBinding.h"
#include "mozilla/dom/PerformanceTimingBinding.h"
#include "mozilla/dom/PerformanceNavigationBinding.h"
#include "mozilla/TimeStamp.h"
using namespace mozilla;

View File

@ -17,10 +17,12 @@
#include "nsICharsetConverterManager.h"
#include "nsPluginLogging.h"
#include "nsNPAPIPlugin.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/Preferences.h"
#include <cctype>
using namespace mozilla;
using mozilla::TimeStamp;
// These legacy flags are used in the plugin registry. The states are now
// stored in prefs, but we still need to be able to import them.

View File

@ -14,6 +14,7 @@ include protocol PLayer;
include protocol PRenderFrame;
include "mozilla/WidgetUtils.h";
include "mozilla/TimeStamp.h";
include "mozilla/dom/ScreenOrientation.h";
include "nsCSSProperty.h";
include "gfxipc/ShadowLayerUtils.h";

View File

@ -17,6 +17,7 @@
#include "mozilla/Assertions.h" // for MOZ_ASSERT, etc
#include "mozilla/Attributes.h" // for MOZ_OVERRIDE, MOZ_FINAL
#include "mozilla/RefPtr.h" // for TemporaryRef, RefPtr
#include "mozilla/TimeStamp.h" // for TimeStamp
#include "mozilla/gfx/BaseSize.h" // for BaseSize
#include "mozilla/gfx/Point.h" // for IntSize, Point
#include "mozilla/gfx/Rect.h" // for Rect, IntRect
@ -41,8 +42,6 @@ class nsIWidget;
struct gfxMatrix;
namespace mozilla {
class TimeStamp;
namespace gfx {
class Matrix4x4;
}

View File

@ -8,6 +8,7 @@
#define mozilla_imagelib_FrameBlender_h_
#include "mozilla/MemoryReporting.h"
#include "mozilla/TimeStamp.h"
#include "gfxASurface.h"
#include "imgFrame.h"
#include "FrameSequence.h"

View File

@ -10,6 +10,7 @@
#include "nsIStreamListener.h"
#include "nsIRequest.h"
#include "mozilla/MemoryReporting.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/WeakPtr.h"
class imgDecoderObserver;

View File

@ -0,0 +1,36 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<svg xmlns="http://www.w3.org/2000/svg" class="reftest-wait">
<!-- From https://bugzilla.mozilla.org/show_bug.cgi?id=879682 -->
<script>
var NS_SVG = 'http://www.w3.org/2000/svg';
function run_test() {
var gNode = document.createElementNS(NS_SVG, "g");
gNode.setAttribute('filter', 'url(#filter)');
var rect = document.createElementNS(NS_SVG, 'rect');
rect.setAttribute('width', '100');
rect.setAttribute('height', '100');
rect.setAttribute('fill', 'white');
gNode.appendChild(rect);
document.documentElement.appendChild(gNode);
document.documentElement.removeAttribute("class");
}
document.addEventListener("MozReftestInvalidate", run_test);
setTimeout(run_test, 4000); // fallback for running outside reftest
</script>
<filter id="filter" x="20" y="20" width="100" height="100"
filterUnits="userSpaceOnUse"
primitiveUnits="userSpaceOnUse">
<feFlood flood-color="lime"/>
</filter>
<rect width="100%" height="100%" fill="lime"/>
<rect x="20" y="20" width="100" height="100" fill="red"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,22 @@
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<svg xmlns="http://www.w3.org/2000/svg" class="reftest-wait" onload="run_test();">
<!-- From https://bugzilla.mozilla.org/show_bug.cgi?id=769942 -->
<script>
function run_test() {
document.documentElement.getBoundingClientRect();
document.getElementById("setFilterOnThis").setAttribute('filter', 'url(#filter)');
document.documentElement.removeAttribute("class");
}
</script>
<filter id="filter" x="20%" y="20%" width="100%" height="100%">
<feFlood flood-color="lime"/>
</filter>
<rect width="100%" height="100%" fill="lime"/>
<rect x="20" y="20" width="100" height="100" fill="red"/>
<rect width="100" height="100" fill="white" id="setFilterOnThis"/>
</svg>

After

Width:  |  Height:  |  Size: 805 B

View File

@ -3,6 +3,8 @@
# the automatic optimal surface-size computation a bit more).
skip-if(B2G) == dynamic-filtered-foreignObject-01.svg pass.svg # bug 773482
== dynamic-filter-invalidation-01.svg pass.svg
== dynamic-filter-invalidation-02.svg pass.svg
== feBlend-1.svg feBlend-1-ref.svg
== feBlend-2.svg feBlend-2-ref.svg

View File

@ -1154,6 +1154,7 @@ nsChangeHint nsStyleSVGReset::CalcDifference(const nsStyleSVGReset& aOther) cons
!EqualURIs(mMask, aOther.mMask) ||
mFilters != aOther.mFilters) {
NS_UpdateHint(hint, nsChangeHint_UpdateEffects);
NS_UpdateHint(hint, nsChangeHint_UpdateOverflow); // for filters only
NS_UpdateHint(hint, nsChangeHint_RepaintFrame);
}

View File

@ -2346,7 +2346,8 @@ struct nsStyleSVGReset {
nsChangeHint CalcDifference(const nsStyleSVGReset& aOther) const;
static nsChangeHint MaxDifference() {
return NS_CombineHint(nsChangeHint_UpdateEffects, NS_STYLE_HINT_REFLOW);
return NS_CombineHint(nsChangeHint_UpdateEffects,
NS_CombineHint(nsChangeHint_UpdateOverflow, NS_STYLE_HINT_REFLOW));
}
// The backend only supports one SVG reference right now.

View File

@ -313,6 +313,8 @@ nsSVGDisplayContainerFrame::ReflowSVG()
// need to remove it _after_ recursing over our children so that they know
// the initial reflow is currently underway.
bool isFirstReflow = (mState & NS_FRAME_FIRST_REFLOW);
bool outerSVGHasHadFirstReflow =
(GetParent()->GetStateBits() & NS_FRAME_FIRST_REFLOW) == 0;
@ -363,7 +365,7 @@ nsSVGDisplayContainerFrame::ReflowSVG()
mRect.IsEqualEdges(nsRect()),
"Only inner-<svg>/<use> is expected to have mRect set");
if (mState & NS_FRAME_FIRST_REFLOW) {
if (isFirstReflow) {
// Make sure we have our filter property (if any) before calling
// FinishAndStoreOverflow (subsequent filter changes are handled off
// nsChangeHint_UpdateEffects):

View File

@ -177,6 +177,8 @@ nsSVGSwitchFrame::ReflowSVG()
// need to remove it _after_ recursing over our children so that they know
// the initial reflow is currently underway.
bool isFirstReflow = (mState & NS_FRAME_FIRST_REFLOW);
bool outerSVGHasHadFirstReflow =
(GetParent()->GetStateBits() & NS_FRAME_FIRST_REFLOW) == 0;
@ -201,7 +203,7 @@ nsSVGSwitchFrame::ReflowSVG()
}
}
if (mState & NS_FRAME_FIRST_REFLOW) {
if (isFirstReflow) {
// Make sure we have our filter property (if any) before calling
// FinishAndStoreOverflow (subsequent filter changes are handled off
// nsChangeHint_UpdateEffects):

View File

@ -15,6 +15,7 @@
#include "nsProxyRelease.h"
#include "prinrval.h"
#include "ASpdySession.h"
#include "mozilla/TimeStamp.h"
#include "nsIStreamListener.h"
#include "nsISocketTransport.h"

View File

@ -37,8 +37,8 @@
#include "nsNetUtil.h"
#include "mozilla/Atomics.h"
#include "mozilla/Attributes.h"
#include "TimeStamp.h"
#include "mozilla/Telemetry.h"
#include "mozilla/TimeStamp.h"
#include "plbase64.h"
#include "prmem.h"

View File

@ -7,8 +7,6 @@
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
Cu.import("resource://gre/modules/PageThumbs.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
Cu.import("resource://gre/modules/Services.jsm");
const backgroundPageThumbsContent = {
@ -28,14 +26,9 @@ const backgroundPageThumbsContent = {
docShell.allowMedia = false;
docShell.allowPlugins = false;
docShell.allowContentRetargeting = false;
addMessageListener("BackgroundPageThumbs:capture",
this._onCapture.bind(this));
docShell.
QueryInterface(Ci.nsIInterfaceRequestor).
getInterface(Ci.nsIWebProgress).
addProgressListener(this, Ci.nsIWebProgress.NOTIFY_STATE_DOCUMENT);
},
get _webNav() {
@ -43,64 +36,52 @@ const backgroundPageThumbsContent = {
},
_onCapture: function (msg) {
this._webNav.loadURI(msg.json.url,
Ci.nsIWebNavigation.LOAD_FLAGS_STOP_CONTENT,
this._webNav.stop(Ci.nsIWebNavigation.STOP_NETWORK);
if (this._onLoad)
removeEventListener("load", this._onLoad, true);
this._onLoad = function onLoad(event) {
if (event.target != content.document)
return;
let pageLoadTime = new Date() - loadDate;
removeEventListener("load", this._onLoad, true);
delete this._onLoad;
let canvas = PageThumbs._createCanvas(content);
let captureDate = new Date();
PageThumbs._captureToCanvas(content, canvas);
let captureTime = new Date() - captureDate;
let channel = docShell.currentDocumentChannel;
let isErrorResponse = PageThumbs._isChannelErrorResponse(channel);
let finalURL = this._webNav.currentURI.spec;
let fileReader = Cc["@mozilla.org/files/filereader;1"].
createInstance(Ci.nsIDOMFileReader);
fileReader.onloadend = function onArrayBufferLoad() {
sendAsyncMessage("BackgroundPageThumbs:didCapture", {
id: msg.json.id,
imageData: fileReader.result,
finalURL: finalURL,
telemetry: {
CAPTURE_PAGE_LOAD_TIME_MS: pageLoadTime,
CAPTURE_CANVAS_DRAW_TIME_MS: captureTime,
},
wasErrorResponse: isErrorResponse,
});
};
canvas.toBlob(blob => fileReader.readAsArrayBuffer(blob));
// Load about:blank to cause the captured window to be collected...
// eventually.
this._webNav.loadURI("about:blank", Ci.nsIWebNavigation.LOAD_FLAGS_NONE,
null, null, null);
}.bind(this);
addEventListener("load", this._onLoad, true);
this._webNav.loadURI(msg.json.url, Ci.nsIWebNavigation.LOAD_FLAGS_NONE,
null, null, null);
// If a page was already loading, onStateChange is synchronously called at
// this point by loadURI.
this._requestID = msg.json.id;
this._requestDate = new Date();
let loadDate = new Date();
},
onStateChange: function (webProgress, req, flags, status) {
if (!webProgress.isTopLevel ||
!(flags & Ci.nsIWebProgressListener.STATE_STOP) ||
req.name == "about:blank")
return;
let requestID = this._requestID;
let pageLoadTime = new Date() - this._requestDate;
delete this._requestID;
let canvas = PageThumbs._createCanvas(content);
let captureDate = new Date();
PageThumbs._captureToCanvas(content, canvas);
let captureTime = new Date() - captureDate;
let channel = docShell.currentDocumentChannel;
let isErrorResponse = PageThumbs._isChannelErrorResponse(channel);
let finalURL = this._webNav.currentURI.spec;
let fileReader = Cc["@mozilla.org/files/filereader;1"].
createInstance(Ci.nsIDOMFileReader);
fileReader.onloadend = () => {
sendAsyncMessage("BackgroundPageThumbs:didCapture", {
id: requestID,
imageData: fileReader.result,
finalURL: finalURL,
wasErrorResponse: isErrorResponse,
telemetry: {
CAPTURE_PAGE_LOAD_TIME_MS: pageLoadTime,
CAPTURE_CANVAS_DRAW_TIME_MS: captureTime,
},
});
};
canvas.toBlob(blob => fileReader.readAsArrayBuffer(blob));
// If no other pages are loading, load about:blank to cause the captured
// window to be collected... eventually. Calling loadURI at this point
// trips an assertion in nsLoadGroup::Cancel, so do it on another stack.
Services.tm.mainThread.dispatch(() => {
if (!("_requestID" in this))
this._webNav.loadURI("about:blank",
Ci.nsIWebNavigation.LOAD_FLAGS_STOP_CONTENT,
null, null, null);
}, Ci.nsIEventTarget.DISPATCH_NORMAL);
},
QueryInterface: XPCOMUtils.generateQI([
Ci.nsIWebProgressListener,
Ci.nsISupportsWeakReference,
]),
};
backgroundPageThumbsContent.init();

View File

@ -54,7 +54,7 @@ let tests = [
let files = urls.map(fileForURL);
files.forEach(f => ok(!f.exists(), "Thumbnail should not be cached yet."));
urls.forEach(function (url) {
let isTimeoutTest = url.indexOf("wait") >= 0;
let isTimeoutTest = url.indexOf("?wait") >= 0;
imports.BackgroundPageThumbs.capture(url, {
timeout: isTimeoutTest ? 100 : 30000,
onDone: function onDone(capturedURL) {

View File

@ -50,10 +50,7 @@
#define SAMPLER_H
#include "mozilla/NullPtr.h"
namespace mozilla {
class TimeStamp;
}
#include "mozilla/TimeStamp.h"
#ifndef MOZ_ENABLE_PROFILER_SPS

View File

@ -8,11 +8,7 @@
#include "mozilla/NullPtr.h"
#include <stdint.h>
namespace mozilla {
class TimeDuration;
class TimeStamp;
}
#include "mozilla/TimeStamp.h"
using mozilla::TimeStamp;
using mozilla::TimeDuration;

View File

@ -13,6 +13,7 @@
#include <algorithm>
#include "mozilla/ThreadLocal.h"
#include "mozilla/Assertions.h"
#include "mozilla/TimeStamp.h"
#include "mozilla/Util.h"
#include "nsAlgorithm.h"
#include "nscore.h"
@ -36,10 +37,6 @@ struct PseudoStack;
class TableTicker;
class JSCustomObject;
namespace mozilla {
class TimeStamp;
}
extern mozilla::ThreadLocal<PseudoStack *> tlsPseudoStack;
extern mozilla::ThreadLocal<TableTicker *> tlsTicker;
extern bool stack_key_initialized;

View File

@ -397,7 +397,6 @@ static nsDefaultMimeTypeEntry defaultMimeEntries [] =
{ TEXT_CSS, "css" },
{ IMAGE_JPEG, "jpeg" },
{ IMAGE_JPEG, "jpg" },
{ IMAGE_SVG_XML, "svg" },
{ TEXT_HTML, "html" },
{ TEXT_HTML, "htm" },
{ APPLICATION_XPINSTALL, "xpi" },
@ -481,7 +480,7 @@ static nsExtraMimeTypeEntry extraMimeEntries [] =
{ IMAGE_PNG, "png", "PNG Image" },
{ IMAGE_TIFF, "tiff,tif", "TIFF Image" },
{ IMAGE_XBM, "xbm", "XBM Image" },
{ IMAGE_SVG_XML, "svg", "Scalable Vector Graphics" },
{ "image/svg+xml", "svg", "Scalable Vector Graphics" },
{ MESSAGE_RFC822, "eml", "RFC-822 data" },
{ TEXT_PLAIN, "txt,text", "Text File" },
{ TEXT_HTML, "html,htm,shtml,ehtml", "HyperText Markup Language" },

View File

@ -6,6 +6,7 @@
#pragma once
#include "nsGUIEvent.h"
#include "mozilla/TimeStamp.h"
#include "MetroWidget.h"
#include "gfxWindowsPlatform.h"
#include "gfxD2DSurface.h"

View File

@ -7,6 +7,7 @@
#include "nsBaseAppShell.h"
#include <windows.h>
#include "mozilla/TimeStamp.h"
#include "nsWindowsHelpers.h"
#include "nsIObserver.h"

View File

@ -54,6 +54,7 @@
#include "nsInterfaceHashtable.h"
#include "nsClassHashtable.h"
#include "nsRefPtrHashtable.h"
#include "mozilla/TimeStamp.h"
// interfaces that inherit directly from nsISupports

View File

@ -18,10 +18,7 @@
#include "mozilla/Atomics.h"
#include "mozilla/Attributes.h"
#include "mozilla/Monitor.h"
namespace mozilla {
class TimeStamp;
}
#include "mozilla/TimeStamp.h"
class TimerThread MOZ_FINAL : public nsIRunnable,
public nsIObserver