Update to Chromium revision 173683.

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@981 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt 2013-01-14 19:21:17 +00:00
parent 60319f0cea
commit 2acdc55727
16 changed files with 109 additions and 102 deletions

View File

@ -17,5 +17,5 @@
{ {
'chromium_url': 'http://src.chromium.org/svn/trunk/src', 'chromium_url': 'http://src.chromium.org/svn/trunk/src',
'chromium_revision': '170167', 'chromium_revision': '173683',
} }

View File

@ -1,4 +1,4 @@
// Copyright (c) 2008-2012 Marshall A. Greenblatt. Portions Copyright (c) // Copyright (c) 2008-2013 Marshall A. Greenblatt. Portions Copyright (c)
// 2006-2009 Google Inc. All rights reserved. // 2006-2009 Google Inc. All rights reserved.
// //
// Redistribution and use in source and binary forms, with or without // Redistribution and use in source and binary forms, with or without

View File

@ -428,6 +428,7 @@
'<(DEPTH)/third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp:webcore', '<(DEPTH)/third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp:webcore',
'<(DEPTH)/third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:webkit', '<(DEPTH)/third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:webkit',
'<(DEPTH)/third_party/zlib/zlib.gyp:minizip', '<(DEPTH)/third_party/zlib/zlib.gyp:minizip',
'<(DEPTH)/ui/gl/gl.gyp:gl',
'<(DEPTH)/ui/ui.gyp:ui', '<(DEPTH)/ui/ui.gyp:ui',
'<(DEPTH)/v8/tools/gyp/v8.gyp:v8', '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
'<(DEPTH)/webkit/support/webkit_support.gyp:glue', '<(DEPTH)/webkit/support/webkit_support.gyp:glue',
@ -779,6 +780,7 @@
'<(DEPTH)/third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp:webcore', '<(DEPTH)/third_party/WebKit/Source/WebCore/WebCore.gyp/WebCore.gyp:webcore',
'<(DEPTH)/third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:webkit', '<(DEPTH)/third_party/WebKit/Source/WebKit/chromium/WebKit.gyp:webkit',
'<(DEPTH)/third_party/zlib/zlib.gyp:minizip', '<(DEPTH)/third_party/zlib/zlib.gyp:minizip',
'<(DEPTH)/ui/gl/gl.gyp:gl',
'<(DEPTH)/ui/ui.gyp:ui', '<(DEPTH)/ui/ui.gyp:ui',
'<(DEPTH)/v8/tools/gyp/v8.gyp:v8', '<(DEPTH)/v8/tools/gyp/v8.gyp:v8',
'<(DEPTH)/webkit/support/webkit_support.gyp:glue', '<(DEPTH)/webkit/support/webkit_support.gyp:glue',

View File

@ -184,13 +184,6 @@ CEF_EXPORT void cef_trace_event_end(const char* category,
const char* arg2_name, const char* arg2_name,
uint64 arg2_val, uint64 arg2_val,
int copy); int copy);
CEF_EXPORT void cef_trace_event_if_longer_than(int64 threshold_us,
const char* category,
const char* name,
const char* arg1_name,
uint64 arg1_val,
const char* arg2_name,
uint64 arg2_val);
CEF_EXPORT void cef_trace_counter(const char* category, CEF_EXPORT void cef_trace_counter(const char* category,
const char* name, const char* name,
const char* value1_name, const char* value1_name,
@ -312,25 +305,6 @@ CEF_EXPORT void cef_trace_event_async_end(const char* category,
cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, \ cef_trace_event_end(category, name, arg1_name, arg1_val, arg2_name, \
arg2_val, true) arg2_val, true)
// Time threshold event:
// Only record the event if the duration is greater than the specified
// threshold_us (time in microseconds).
// Records a pair of begin and end events called "name" for the current
// scope, with 0, 1 or 2 associated arguments. If the category is not
// enabled, then this does nothing.
// - category and name strings must have application lifetime (statics or
// literals). They may not include " chars.
#define CEF_TRACE_EVENT_IF_LONGER_THAN0(threshold_us, category, name) \
cef_trace_event_if_longer_than(threshold_us, category, name, NULL, 0, NULL, 0)
#define CEF_TRACE_EVENT_IF_LONGER_THAN1(threshold_us, category, name, \
arg1_name, arg1_val) \
cef_trace_event_if_longer_than(threshold_us, category, name, arg1_name, \
arg1_val, NULL, 0)
#define CEF_TRACE_EVENT_IF_LONGER_THAN2(threshold_us, category, name, \
arg1_name, arg1_val, arg2_name, arg2_val) \
cef_trace_event_if_longer_than(threshold_us, category, name, arg1_name, \
arg1_val, arg2_name, arg2_val)
// Records the value of a counter called "name" immediately. Value // Records the value of a counter called "name" immediately. Value
// must be representable as a 32 bit integer. // must be representable as a 32 bit integer.
// - category and name strings must have application lifetime (statics or // - category and name strings must have application lifetime (statics or

View File

@ -323,11 +323,9 @@ CefRefPtr<CefBrowserHostImpl> CefBrowserHostImpl::Create(
DCHECK(opener == NULL || browser_info->is_popup()); DCHECK(opener == NULL || browser_info->is_popup());
if (web_contents == NULL) { if (web_contents == NULL) {
web_contents = content::WebContents::Create( content::WebContents::CreateParams create_params(
_Context->browser_context(), _Context->browser_context());
NULL, web_contents = content::WebContents::Create(create_params);
MSG_ROUTING_NONE,
NULL);
} }
CefRefPtr<CefBrowserHostImpl> browser = CefRefPtr<CefBrowserHostImpl> browser =
@ -1614,11 +1612,9 @@ void CefBrowserHostImpl::RequestMediaAccessPermission(
const content::MediaResponseCallback& callback) { const content::MediaResponseCallback& callback) {
CEF_CURRENTLY_ON_UIT(); CEF_CURRENTLY_ON_UIT();
// TODO(cef): Get the default devices for the request. See for example
// chrome/browser/media/media_stream_devices_controller.cc.
content::MediaStreamDevices devices; content::MediaStreamDevices devices;
for (content::MediaStreamDeviceMap::const_iterator it =
request->devices.begin(); it != request->devices.end(); ++it) {
devices.push_back(*it->second.begin());
}
// TODO(cef): Give the user an opportunity to approve the device list or run // TODO(cef): Give the user an opportunity to approve the device list or run
// the callback with an empty device list to cancel the request. // the callback with an empty device list to cancel the request.

View File

@ -15,8 +15,9 @@ CefResourceContext::~CefResourceContext() {
// Destroy the getter after content::ResourceContext has finished destructing. // Destroy the getter after content::ResourceContext has finished destructing.
// Otherwise, the URLRequestContext objects will be deleted before // Otherwise, the URLRequestContext objects will be deleted before
// ResourceDispatcherHost has canceled any pending URLRequests. // ResourceDispatcherHost has canceled any pending URLRequests.
getter_->AddRef();
content::BrowserThread::ReleaseSoon( content::BrowserThread::ReleaseSoon(
content::BrowserThread::IO, FROM_HERE, getter_.release()); content::BrowserThread::IO, FROM_HERE, getter_.get());
} }
net::HostResolver* CefResourceContext::GetHostResolver() { net::HostResolver* CefResourceContext::GetHostResolver() {

View File

@ -6,6 +6,7 @@
#define CEF_LIBCEF_BROWSER_RESOURCE_DISPATCHER_HOST_DELEGATE_H_ #define CEF_LIBCEF_BROWSER_RESOURCE_DISPATCHER_HOST_DELEGATE_H_
#pragma once #pragma once
#include "base/compiler_specific.h"
#include "content/public/browser/resource_dispatcher_host_delegate.h" #include "content/public/browser/resource_dispatcher_host_delegate.h"
// Implements ResourceDispatcherHostDelegate. // Implements ResourceDispatcherHostDelegate.

View File

@ -188,29 +188,6 @@ CEF_EXPORT void cef_trace_event_end(const char* category,
} }
} }
CEF_EXPORT void cef_trace_event_if_longer_than(int64 threshold_us,
const char* category,
const char* name,
const char* arg1_name,
uint64 arg1_val,
const char* arg2_name,
uint64 arg2_val) {
DCHECK(category);
DCHECK(name);
if (!category || !name)
return;
if (arg1_name == NULL && arg2_name == NULL) {
TRACE_EVENT_IF_LONGER_THAN0(threshold_us, category, name);
} else if (arg2_name == NULL) {
TRACE_EVENT_IF_LONGER_THAN1(threshold_us, category, name,
arg1_name, arg1_val);
} else {
TRACE_EVENT_IF_LONGER_THAN2(threshold_us, category, name, arg1_name,
arg1_val, arg2_name, arg2_val);
}
}
CEF_EXPORT void cef_trace_counter(const char* category, CEF_EXPORT void cef_trace_counter(const char* category,
const char* name, const char* name,
const char* value1_name, const char* value1_name,

View File

@ -21,7 +21,8 @@ CefWebContentsViewOSR::~CefWebContentsViewOSR() {
// Overridden from WebContentsView: // Overridden from WebContentsView:
void CefWebContentsViewOSR::CreateView(const gfx::Size& initial_size) { void CefWebContentsViewOSR::CreateView(const gfx::Size& initial_size,
gfx::NativeView context) {
} }
content::RenderWidgetHostView* CefWebContentsViewOSR::CreateViewForWidget( content::RenderWidgetHostView* CefWebContentsViewOSR::CreateViewForWidget(
@ -40,10 +41,6 @@ content::RenderWidgetHostView* CefWebContentsViewOSR::CreateViewForPopupWidget(
return popup_widget; return popup_widget;
} }
void CefWebContentsViewOSR::SetView(content::RenderWidgetHostView* view) {
view_ = view;
}
gfx::NativeView CefWebContentsViewOSR::GetNativeView() const { gfx::NativeView CefWebContentsViewOSR::GetNativeView() const {
return gfx::NativeView(); return gfx::NativeView();
} }

View File

@ -27,12 +27,12 @@ class CefWebContentsViewOSR : public content::WebContentsView,
virtual ~CefWebContentsViewOSR(); virtual ~CefWebContentsViewOSR();
// WebContentsView methods. // WebContentsView methods.
virtual void CreateView(const gfx::Size& initial_size) OVERRIDE; virtual void CreateView(const gfx::Size& initial_size,
gfx::NativeView context) OVERRIDE;
virtual content::RenderWidgetHostView* CreateViewForWidget( virtual content::RenderWidgetHostView* CreateViewForWidget(
content::RenderWidgetHost* render_widget_host) OVERRIDE; content::RenderWidgetHost* render_widget_host) OVERRIDE;
virtual content::RenderWidgetHostView* CreateViewForPopupWidget( virtual content::RenderWidgetHostView* CreateViewForPopupWidget(
content::RenderWidgetHost* render_widget_host); content::RenderWidgetHost* render_widget_host);
virtual void SetView(content::RenderWidgetHostView* view) OVERRIDE;
virtual gfx::NativeView GetNativeView() const OVERRIDE; virtual gfx::NativeView GetNativeView() const OVERRIDE;
virtual gfx::NativeView GetContentNativeView() const OVERRIDE; virtual gfx::NativeView GetContentNativeView() const OVERRIDE;
virtual gfx::NativeWindow GetTopLevelNativeWindow() const OVERRIDE; virtual gfx::NativeWindow GetTopLevelNativeWindow() const OVERRIDE;

View File

@ -22,6 +22,51 @@
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLRequest.h" #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLRequest.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLError.h" #include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLError.h"
namespace {
// A subclass of net::UploadBytesElementReader that keeps the associated
// UploadElement alive until the request completes.
class BytesElementReader : public net::UploadBytesElementReader {
public:
explicit BytesElementReader(scoped_ptr<net::UploadElement> element)
: net::UploadBytesElementReader(element->bytes(),
element->bytes_length()),
element_(element.Pass()) {
DCHECK_EQ(net::UploadElement::TYPE_BYTES, element_->type());
}
virtual ~BytesElementReader() {}
private:
scoped_ptr<net::UploadElement> element_;
DISALLOW_COPY_AND_ASSIGN(BytesElementReader);
};
// A subclass of net::UploadFileElementReader that keeps the associated
// UploadElement alive until the request completes.
class FileElementReader : public net::UploadFileElementReader {
public:
explicit FileElementReader(scoped_ptr<net::UploadElement> element)
: net::UploadFileElementReader(
element->file_path(),
element->file_range_offset(),
element->file_range_length(),
element->expected_file_modification_time()),
element_(element.Pass()) {
DCHECK_EQ(net::UploadElement::TYPE_FILE, element_->type());
}
virtual ~FileElementReader() {}
private:
scoped_ptr<net::UploadElement> element_;
DISALLOW_COPY_AND_ASSIGN(FileElementReader);
};
} // namespace
#define CHECK_READONLY_RETURN(val) \ #define CHECK_READONLY_RETURN(val) \
if (read_only_) { \ if (read_only_) { \
@ -194,11 +239,10 @@ void CefRequestImpl::Get(net::URLRequest* request) {
request->SetExtraRequestHeaders(headers); request->SetExtraRequestHeaders(headers);
if (postdata_.get()) { if (postdata_.get()) {
net::UploadData* upload = new net::UploadData(); request->set_upload(
static_cast<CefPostDataImpl*>(postdata_.get())->Get(*upload); make_scoped_ptr(static_cast<CefPostDataImpl*>(postdata_.get())->Get()));
request->set_upload(upload);
} else if (request->get_upload()) { } else if (request->get_upload()) {
request->set_upload(NULL); request->set_upload(scoped_ptr<net::UploadDataStream>());
} }
} }
@ -451,6 +495,19 @@ void CefPostDataImpl::Get(net::UploadData& data) {
data.swap_elements(&data_elements); data.swap_elements(&data_elements);
} }
net::UploadDataStream* CefPostDataImpl::Get() {
AutoLock lock_scope(this);
ScopedVector<net::UploadElementReader> element_readers;
ElementVector::const_iterator it = elements_.begin();
for (; it != elements_.end(); ++it) {
element_readers.push_back(
static_cast<CefPostDataElementImpl*>(it->get())->Get());
}
return new net::UploadDataStream(&element_readers, 0);
}
void CefPostDataImpl::Set(const WebKit::WebHTTPBody& data) { void CefPostDataImpl::Set(const WebKit::WebHTTPBody& data) {
AutoLock lock_scope(this); AutoLock lock_scope(this);
CHECK_READONLY_RETURN_VOID(); CHECK_READONLY_RETURN_VOID();
@ -644,6 +701,25 @@ void CefPostDataElementImpl::Get(net::UploadElement& element) {
} }
} }
net::UploadElementReader* CefPostDataElementImpl::Get() {
AutoLock lock_scope(this);
if (type_ == PDE_TYPE_BYTES) {
net::UploadElement* element = new net::UploadElement();
element->SetToBytes(static_cast<char*>(data_.bytes.bytes),
data_.bytes.size);
return new BytesElementReader(make_scoped_ptr(element));
} else if (type_ == PDE_TYPE_FILE) {
net::UploadElement* element = new net::UploadElement();
FilePath path = FilePath(CefString(&data_.filename));
element->SetToFilePath(path);
return new FileElementReader(make_scoped_ptr(element));
} else {
NOTREACHED();
return NULL;
}
}
void CefPostDataElementImpl::Set(const WebKit::WebHTTPBody::Element& element) { void CefPostDataElementImpl::Set(const WebKit::WebHTTPBody::Element& element) {
AutoLock lock_scope(this); AutoLock lock_scope(this);
CHECK_READONLY_RETURN_VOID(); CHECK_READONLY_RETURN_VOID();

View File

@ -100,6 +100,7 @@ class CefPostDataImpl : public CefPostData {
void Set(const net::UploadData& data); void Set(const net::UploadData& data);
void Set(const net::UploadDataStream& data_stream); void Set(const net::UploadDataStream& data_stream);
void Get(net::UploadData& data); void Get(net::UploadData& data);
net::UploadDataStream* Get();
void Set(const WebKit::WebHTTPBody& data); void Set(const WebKit::WebHTTPBody& data);
void Get(WebKit::WebHTTPBody& data); void Get(WebKit::WebHTTPBody& data);
@ -135,6 +136,7 @@ class CefPostDataElementImpl : public CefPostDataElement {
void Set(const net::UploadElement& element); void Set(const net::UploadElement& element);
void Set(const net::UploadElementReader& element_reader); void Set(const net::UploadElementReader& element_reader);
void Get(net::UploadElement& element); void Get(net::UploadElement& element);
net::UploadElementReader* Get();
void Set(const WebKit::WebHTTPBody::Element& element); void Set(const WebKit::WebHTTPBody::Element& element);
void Get(WebKit::WebHTTPBody::Element& element); void Get(WebKit::WebHTTPBody::Element& element);

View File

@ -7,7 +7,7 @@
<script> <script>
function onLoad() { function onLoad() {
var tabs_list_request = new XMLHttpRequest(); var tabs_list_request = new XMLHttpRequest();
tabs_list_request.open("GET", "/json" + new Date().getTime(), true); tabs_list_request.open("GET", "/json/list?t=" + new Date().getTime(), true);
tabs_list_request.onreadystatechange = onReady; tabs_list_request.onreadystatechange = onReady;
tabs_list_request.send(); tabs_list_request.send();
} }

View File

@ -1,8 +1,8 @@
Index: browser/web_contents/web_contents_impl.cc Index: browser/web_contents/web_contents_impl.cc
=================================================================== ===================================================================
--- browser/web_contents/web_contents_impl.cc (revision 170167) --- browser/web_contents/web_contents_impl.cc (revision 173683)
+++ browser/web_contents/web_contents_impl.cc (working copy) +++ browser/web_contents/web_contents_impl.cc (working copy)
@@ -1402,8 +1402,10 @@ @@ -1397,8 +1397,10 @@
new RenderWidgetHostImpl(this, process, route_id); new RenderWidgetHostImpl(this, process, route_id);
created_widgets_.insert(widget_host); created_widgets_.insert(widget_host);
@ -17,15 +17,15 @@ Index: browser/web_contents/web_contents_impl.cc
widget_view->SetPopupType(popup_type); widget_view->SetPopupType(popup_type);
Index: public/browser/web_contents_view.h Index: public/browser/web_contents_view.h
=================================================================== ===================================================================
--- public/browser/web_contents_view.h (revision 170167) --- public/browser/web_contents_view.h (revision 173683)
+++ public/browser/web_contents_view.h (working copy) +++ public/browser/web_contents_view.h (working copy)
@@ -37,6 +37,9 @@ @@ -38,6 +38,9 @@
virtual RenderWidgetHostView* CreateViewForWidget( virtual RenderWidgetHostView* CreateViewForWidget(
RenderWidgetHost* render_widget_host) = 0; RenderWidgetHost* render_widget_host) = 0;
+ virtual RenderWidgetHostView* CreateViewForPopupWidget( + virtual RenderWidgetHostView* CreateViewForPopupWidget(
+ RenderWidgetHost* render_widget_host) { return NULL; } + RenderWidgetHost* render_widget_host) { return NULL; }
+ +
// This is required because some WebContentsView cache the // Returns the native widget that contains the contents of the tab.
// RenderWidgetHostView created by the above method. In that case, when the virtual gfx::NativeView GetNativeView() const = 0;
// view created by the above method is destroyed, the old one needs to be set

View File

@ -1,8 +1,8 @@
Index: page/FrameView.cpp Index: page/FrameView.cpp
=================================================================== ===================================================================
--- page/FrameView.cpp (revision 134630) --- page/FrameView.cpp (revision 137939)
+++ page/FrameView.cpp (working copy) +++ page/FrameView.cpp (working copy)
@@ -206,10 +206,12 @@ @@ -209,10 +209,12 @@
if (!page) if (!page)
return; return;
@ -17,7 +17,7 @@ Index: page/FrameView.cpp
PassRefPtr<FrameView> FrameView::create(Frame* frame) PassRefPtr<FrameView> FrameView::create(Frame* frame)
Index: platform/mac/NSScrollerImpDetails.mm Index: platform/mac/NSScrollerImpDetails.mm
=================================================================== ===================================================================
--- platform/mac/NSScrollerImpDetails.mm (revision 134630) --- platform/mac/NSScrollerImpDetails.mm (revision 137939)
+++ platform/mac/NSScrollerImpDetails.mm (working copy) +++ platform/mac/NSScrollerImpDetails.mm (working copy)
@@ -34,6 +34,7 @@ @@ -34,6 +34,7 @@
#if PLATFORM(CHROMIUM) #if PLATFORM(CHROMIUM)

View File

@ -31,9 +31,6 @@ enum TracingTestType {
CEF_TRACE_EVENT_COPY_END0, CEF_TRACE_EVENT_COPY_END0,
CEF_TRACE_EVENT_COPY_END1, CEF_TRACE_EVENT_COPY_END1,
CEF_TRACE_EVENT_COPY_END2, CEF_TRACE_EVENT_COPY_END2,
CEF_TRACE_EVENT_IF_LONGER_THAN0,
CEF_TRACE_EVENT_IF_LONGER_THAN1,
CEF_TRACE_EVENT_IF_LONGER_THAN2,
CEF_TRACE_COUNTER1, CEF_TRACE_COUNTER1,
CEF_TRACE_COPY_COUNTER1, CEF_TRACE_COPY_COUNTER1,
CEF_TRACE_COUNTER2, CEF_TRACE_COUNTER2,
@ -209,19 +206,6 @@ class TracingTestHandler : public CefTraceClient {
"CEF_TRACE_EVENT_COPY_END2", "arg1", 1, "CEF_TRACE_EVENT_COPY_END2", "arg1", 1,
"arg2", 2); "arg2", 2);
break; break;
case CEF_TRACE_EVENT_IF_LONGER_THAN0:
CEF_TRACE_EVENT_IF_LONGER_THAN0(0, kTraceTestCategory,
"CEF_TRACE_EVENT_IF_LONGER_THAN0");
break;
case CEF_TRACE_EVENT_IF_LONGER_THAN1:
CEF_TRACE_EVENT_IF_LONGER_THAN1(0, kTraceTestCategory,
"CEF_TRACE_EVENT_IF_LONGER_THAN1",
"arg1", 1);
case CEF_TRACE_EVENT_IF_LONGER_THAN2:
CEF_TRACE_EVENT_IF_LONGER_THAN2(0, kTraceTestCategory,
"CEF_TRACE_EVENT_IF_LONGER_THAN2",
"arg1", 1, "arg2", 2);
break;
case CEF_TRACE_COUNTER1: case CEF_TRACE_COUNTER1:
CEF_TRACE_COUNTER1(kTraceTestCategory, "CEF_TRACE_COUNTER1", 5); CEF_TRACE_COUNTER1(kTraceTestCategory, "CEF_TRACE_COUNTER1", 5);
break; break;
@ -389,9 +373,6 @@ TRACING_TEST(TraceEventEnd2, CEF_TRACE_EVENT_END2);
TRACING_TEST(TraceEventCopyEnd0, CEF_TRACE_EVENT_COPY_END0); TRACING_TEST(TraceEventCopyEnd0, CEF_TRACE_EVENT_COPY_END0);
TRACING_TEST(TraceEventCopyEnd1, CEF_TRACE_EVENT_COPY_END1); TRACING_TEST(TraceEventCopyEnd1, CEF_TRACE_EVENT_COPY_END1);
TRACING_TEST(TraceEventCopyEnd2, CEF_TRACE_EVENT_COPY_END1); TRACING_TEST(TraceEventCopyEnd2, CEF_TRACE_EVENT_COPY_END1);
TRACING_TEST(TraceEventIfLongerThan0, CEF_TRACE_EVENT_IF_LONGER_THAN0);
TRACING_TEST(TraceEventIfLongerThan1, CEF_TRACE_EVENT_IF_LONGER_THAN1);
TRACING_TEST(TraceEventIfLongerThan2, CEF_TRACE_EVENT_IF_LONGER_THAN2);
TRACING_TEST(TraceCounter1, CEF_TRACE_COUNTER1); TRACING_TEST(TraceCounter1, CEF_TRACE_COUNTER1);
TRACING_TEST(TraceCopyCounter1, CEF_TRACE_COPY_COUNTER1); TRACING_TEST(TraceCopyCounter1, CEF_TRACE_COPY_COUNTER1);
TRACING_TEST(TraceCounter2, CEF_TRACE_COUNTER2); TRACING_TEST(TraceCounter2, CEF_TRACE_COUNTER2);