Commit 6ead1b93 authored by erg@chromium.org's avatar erg@chromium.org

GTK: Add TRACE_EVENTs around gtk ui events so select tasks related to the GTK...

GTK: Add TRACE_EVENTs around gtk ui events so select tasks related to the GTK user interface show up on the chrome://tracing hierarchical profiler.

These were useful for tracking down tab changing speed problems.

BUG=none
TEST=none


Review URL: http://codereview.chromium.org/8800029

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113939 0039d316-1c4b-4281-b951-d872f2087c98
parent 3d863f90
......@@ -7,6 +7,58 @@
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include "base/profiler/scoped_profile.h"
#include "base/debug/trace_event.h"
namespace {
const char* EventToTypeString(const GdkEvent* event) {
switch (event->type) {
case GDK_NOTHING: return "GDK_NOTHING";
case GDK_DELETE: return "GDK_DELETE";
case GDK_DESTROY: return "GDK_DESTROY";
case GDK_EXPOSE: return "GDK_EXPOSE";
case GDK_MOTION_NOTIFY: return "GDK_MOTION_NOTIFY";
case GDK_BUTTON_PRESS: return "GDK_BUTTON_PRESS";
case GDK_2BUTTON_PRESS: return "GDK_2BUTTON_PRESS";
case GDK_3BUTTON_PRESS: return "GDK_3BUTTON_PRESS";
case GDK_BUTTON_RELEASE: return "GDK_BUTTON_RELEASE";
case GDK_KEY_PRESS: return "GDK_KEY_PRESS";
case GDK_KEY_RELEASE: return "GDK_KEY_RELEASE";
case GDK_ENTER_NOTIFY: return "GDK_ENTER_NOTIFY";
case GDK_LEAVE_NOTIFY: return "GDK_LEAVE_NOTIFY";
case GDK_FOCUS_CHANGE: return "GDK_FOCUS_CHANGE";
case GDK_CONFIGURE: return "GDK_CONFIGURE";
case GDK_MAP: return "GDK_MAP";
case GDK_UNMAP: return "GDK_UNMAP";
case GDK_PROPERTY_NOTIFY: return "GDK_PROPERTY_NOTIFY";
case GDK_SELECTION_CLEAR: return "GDK_SELECTION_CLEAR";
case GDK_SELECTION_REQUEST: return "GDK_SELECTION_REQUEST";
case GDK_SELECTION_NOTIFY: return "GDK_SELECTION_NOTIFY";
case GDK_PROXIMITY_IN: return "GDK_PROXIMITY_IN";
case GDK_PROXIMITY_OUT: return "GDK_PROXIMITY_OUT";
case GDK_DRAG_ENTER: return "GDK_DRAG_ENTER";
case GDK_DRAG_LEAVE: return "GDK_DRAG_LEAVE";
case GDK_DRAG_MOTION: return "GDK_DRAG_MOTION";
case GDK_DRAG_STATUS: return "GDK_DRAG_STATUS";
case GDK_DROP_START: return "GDK_DROP_START";
case GDK_DROP_FINISHED: return "GDK_DROP_FINISHED";
case GDK_CLIENT_EVENT: return "GDK_CLIENT_EVENT";
case GDK_VISIBILITY_NOTIFY: return "GDK_VISIBILITY_NOTIFY";
case GDK_NO_EXPOSE: return "GDK_NO_EXPOSE";
case GDK_SCROLL: return "GDK_SCROLL";
case GDK_WINDOW_STATE: return "GDK_WINDOW_STATE";
case GDK_SETTING: return "GDK_SETTING";
case GDK_OWNER_CHANGE: return "GDK_OWNER_CHANGE";
case GDK_GRAB_BROKEN: return "GDK_GRAB_BROKEN";
case GDK_DAMAGE: return "GDK_DAMAGE";
default:
return "Unknown Gdk Event";
}
}
}
namespace base {
MessagePumpGtk::MessagePumpGtk() : MessagePumpGlib() {
......@@ -19,6 +71,9 @@ MessagePumpGtk::~MessagePumpGtk() {
}
void MessagePumpGtk::DispatchEvents(GdkEvent* event) {
UNSHIPPED_TRACE_EVENT1("task", "MessagePumpGtk::DispatchEvents",
"type", EventToTypeString(event));
WillProcessEvent(event);
MessagePumpDispatcher* dispatcher = GetDispatcher();
......
......@@ -7,6 +7,7 @@
#include <vector>
#include "base/bind.h"
#include "base/debug/trace_event.h"
#include "base/metrics/histogram.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/bookmarks/bookmark_model.h"
......@@ -280,6 +281,7 @@ void BookmarkBarGtk::Init() {
void BookmarkBarGtk::SetBookmarkBarState(
BookmarkBar::State state,
BookmarkBar::AnimateChangeType animate_type) {
TRACE_EVENT0("ui::gtk", "BookmarkBarGtk::SetBookmarkBarState");
if (animate_type == BookmarkBar::ANIMATE_STATE_CHANGE &&
(state == BookmarkBar::DETACHED ||
bookmark_bar_state_ == BookmarkBar::DETACHED)) {
......@@ -1366,6 +1368,7 @@ gboolean BookmarkBarGtk::OnFolderDragMotion(GtkWidget* button,
gboolean BookmarkBarGtk::OnEventBoxExpose(GtkWidget* widget,
GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "BookmarkBarGtk::OnEventBoxExpose");
GtkThemeService* theme_provider = theme_service_;
// We don't need to render the toolbar image in GTK mode, except when
......
......@@ -10,6 +10,7 @@
#include "base/base_paths.h"
#include "base/command_line.h"
#include "base/debug/trace_event.h"
#include "base/i18n/rtl.h"
#include "base/logging.h"
#include "base/memory/singleton.h"
......@@ -461,6 +462,8 @@ bool BrowserToolbarGtk::UpdateRoundedness() {
gboolean BrowserToolbarGtk::OnAlignmentExpose(GtkWidget* widget,
GdkEventExpose* e) {
TRACE_EVENT0("ui::gtk", "BrowserToolbarGtk::OnAlignmentExpose");
// We may need to update the roundedness of the toolbar's top corners. In
// this case, don't draw; we'll be called again soon enough.
if (UpdateRoundedness())
......@@ -571,6 +574,7 @@ gboolean BrowserToolbarGtk::OnAlignmentExpose(GtkWidget* widget,
gboolean BrowserToolbarGtk::OnLocationHboxExpose(GtkWidget* location_hbox,
GdkEventExpose* e) {
TRACE_EVENT0("ui::gtk", "BrowserToolbarGtk::OnLocationHboxExpose");
if (theme_service_->UsingNativeTheme()) {
GtkAllocation allocation;
gtk_widget_get_allocation(location_hbox, &allocation);
......@@ -653,6 +657,7 @@ void BrowserToolbarGtk::RebuildWrenchMenu() {
gboolean BrowserToolbarGtk::OnWrenchMenuButtonExpose(GtkWidget* sender,
GdkEventExpose* expose) {
TRACE_EVENT0("ui::gtk", "BrowserToolbarGtk::OnWrenchMenuButtonExpose");
int resource_id = 0;
if (UpgradeDetector::GetInstance()->notify_upgrade()) {
resource_id = UpgradeDetector::GetInstance()->GetIconResourceID(
......
......@@ -11,6 +11,7 @@
#include "base/base_paths.h"
#include "base/command_line.h"
#include "base/debug/trace_event.h"
#include "base/environment.h"
#include "base/i18n/file_util_icu.h"
#include "base/logging.h"
......@@ -410,6 +411,8 @@ void BrowserWindowGtk::Init() {
gboolean BrowserWindowGtk::OnCustomFrameExpose(GtkWidget* widget,
GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::OnCustomFrameExpose");
// Draw the default background.
cairo_t* cr = gdk_cairo_create(GDK_DRAWABLE(widget->window));
gdk_cairo_rectangle(cr, &event->area);
......@@ -779,6 +782,7 @@ void BrowserWindowGtk::ToolbarSizeChanged(bool is_animating) {
}
void BrowserWindowGtk::UpdateTitleBar() {
TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::UpdateTitleBar");
string16 title = browser_->GetWindowTitleForCurrentTab();
gtk_window_set_title(window_, UTF16ToUTF8(title).c_str());
if (ShouldShowWindowIcon())
......@@ -933,6 +937,7 @@ void BrowserWindowGtk::UpdateReloadStopState(bool is_loading, bool force) {
void BrowserWindowGtk::UpdateToolbar(TabContentsWrapper* contents,
bool should_restore_state) {
TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::UpdateToolbar");
toolbar_->UpdateTabContents(contents->tab_contents(), should_restore_state);
}
......@@ -1253,6 +1258,7 @@ void BrowserWindowGtk::ActiveTabChanged(TabContentsWrapper* old_contents,
TabContentsWrapper* new_contents,
int index,
bool user_gesture) {
TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::ActiveTabChanged");
if (old_contents && !old_contents->tab_contents()->is_being_destroyed())
old_contents->view()->StoreFocus();
......@@ -1324,6 +1330,7 @@ bool BrowserWindowGtk::DrawInfoBarArrows(int* x) const {
}
void BrowserWindowGtk::MaybeShowBookmarkBar(bool animate) {
TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::MaybeShowBookmarkBar");
if (!IsBookmarkBarSupported())
return;
......@@ -1345,6 +1352,7 @@ void BrowserWindowGtk::MaybeShowBookmarkBar(bool animate) {
}
void BrowserWindowGtk::UpdateDevToolsForContents(TabContents* contents) {
TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::UpdateDevToolsForContents");
TabContentsWrapper* old_devtools = devtools_container_->tab();
TabContentsWrapper* devtools_contents = contents ?
DevToolsWindow::GetDevToolsContents(contents) : NULL;
......@@ -2003,6 +2011,7 @@ void BrowserWindowGtk::OnLocationIconSizeAllocate(GtkWidget* sender,
gboolean BrowserWindowGtk::OnExposeDrawInfobarBits(GtkWidget* sender,
GdkEventExpose* expose) {
TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::OnExposeDrawInfobarBits");
// Maybe draw infobars
infobar_container_->PaintInfobarBitsOn(sender, expose, NULL);
......@@ -2019,6 +2028,7 @@ gboolean BrowserWindowGtk::OnBookmarkBarExpose(GtkWidget* sender,
void BrowserWindowGtk::OnBookmarkBarSizeAllocate(GtkWidget* sender,
GtkAllocation* allocation) {
TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::OnBookmarkBarSizeAllocate");
// The size of the bookmark bar affects how the infobar arrow is drawn on
// the toolbar.
if (infobar_container_->ContainsInfobars())
......@@ -2378,6 +2388,8 @@ bool BrowserWindowGtk::BoundsMatchMonitorSize() {
}
void BrowserWindowGtk::PlaceBookmarkBar(bool is_floating) {
TRACE_EVENT0("ui::gtk", "BrowserWindowGtk::PlaceBookmarkBar");
GtkWidget* target_parent = NULL;
if (!is_floating) {
// Place the bookmark bar at the end of |window_vbox_|; this happens after
......
......@@ -6,6 +6,7 @@
#include "base/basictypes.h"
#include "base/logging.h"
#include "base/debug/trace_event.h"
#include "chrome/browser/ui/gtk/gtk_chrome_button.h"
#include "chrome/browser/ui/gtk/gtk_theme_service.h"
#include "chrome/browser/ui/gtk/gtk_util.h"
......@@ -72,6 +73,7 @@ int CustomDrawButtonBase::Height() const {
gboolean CustomDrawButtonBase::OnExpose(GtkWidget* widget,
GdkEventExpose* e,
gdouble hover_state) {
TRACE_EVENT0("ui::gtk", "CustomDrawButtonBase::OnExpose");
int paint_state = paint_override_ >= 0 ?
paint_override_ : gtk_widget_get_state(widget);
......@@ -332,6 +334,7 @@ void CustomDrawButton::SetBackground(SkColor color,
gboolean CustomDrawButton::OnCustomExpose(GtkWidget* sender,
GdkEventExpose* e) {
UNSHIPPED_TRACE_EVENT0("ui::gtk", "CustomDrawButtonBase::OnCustomExpose");
if (UseGtkTheme()) {
// Continue processing this expose event.
return FALSE;
......
......@@ -6,6 +6,7 @@
#include "base/basictypes.h"
#include "base/callback.h"
#include "base/debug/trace_event.h"
#include "base/metrics/histogram.h"
#include "base/string_util.h"
#include "base/time.h"
......@@ -699,6 +700,7 @@ void DownloadItemGtk::InitNineBoxes() {
}
gboolean DownloadItemGtk::OnHboxExpose(GtkWidget* widget, GdkEventExpose* e) {
TRACE_EVENT0("ui::gtk", "DownloadItemGtk::OnHboxExpose");
if (theme_service_->UsingNativeTheme()) {
GtkAllocation allocation;
gtk_widget_get_allocation(widget, &allocation);
......@@ -765,6 +767,7 @@ gboolean DownloadItemGtk::OnHboxExpose(GtkWidget* widget, GdkEventExpose* e) {
}
gboolean DownloadItemGtk::OnExpose(GtkWidget* widget, GdkEventExpose* e) {
TRACE_EVENT0("ui::gtk", "DownloadItemGtk::OnExpose");
if (!theme_service_->UsingNativeTheme()) {
bool is_body = widget == body_.get();
......@@ -811,6 +814,8 @@ gboolean DownloadItemGtk::OnButtonPress(GtkWidget* button,
gboolean DownloadItemGtk::OnProgressAreaExpose(GtkWidget* widget,
GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "DownloadItemGtk::OnProgressAreaExpose");
GtkAllocation allocation;
gtk_widget_get_allocation(widget, &allocation);
......@@ -872,6 +877,7 @@ void DownloadItemGtk::ShowPopupMenu(GtkWidget* button,
gboolean DownloadItemGtk::OnDangerousPromptExpose(GtkWidget* widget,
GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "DownloadItemGtk::OnDangerousPromptExpose");
if (!theme_service_->UsingNativeTheme()) {
// The hbox renderer will take care of the border when in GTK mode.
dangerous_nine_box_->RenderToWidget(widget);
......
......@@ -10,6 +10,7 @@
#include <string>
#include <vector>
#include "base/debug/trace_event.h"
#include "base/i18n/rtl.h"
#include "base/string_number_conversions.h"
#include "base/string_util.h"
......@@ -816,6 +817,7 @@ void FindBarGtk::OnClicked(GtkWidget* button) {
gboolean FindBarGtk::OnContentEventBoxExpose(GtkWidget* widget,
GdkEventExpose* event,
FindBarGtk* bar) {
TRACE_EVENT0("ui::gtk", "FindBarGtk::OnContentEventBoxExpose");
if (bar->theme_service_->UsingNativeTheme()) {
// Draw the text entry background around where we input stuff. Note the
// decrement to |width|. We do this because some theme engines
......@@ -836,6 +838,8 @@ gboolean FindBarGtk::OnContentEventBoxExpose(GtkWidget* widget,
// Used to handle custom painting of |container_|.
gboolean FindBarGtk::OnExpose(GtkWidget* widget, GdkEventExpose* e,
FindBarGtk* bar) {
TRACE_EVENT0("ui::gtk", "FindBarGtk::OnExpose");
GtkAllocation allocation;
gtk_widget_get_allocation(widget, &allocation);
......
......@@ -10,6 +10,7 @@
#include <set>
#include <string>
#include "base/debug/trace_event.h"
#include "base/environment.h"
#include "base/nix/xdg_util.h"
#include "base/stl_util.h"
......@@ -1191,6 +1192,7 @@ void GtkThemeService::OnDestroyLabel(GtkWidget* button) {
gboolean GtkThemeService::OnSeparatorExpose(GtkWidget* widget,
GdkEventExpose* event) {
UNSHIPPED_TRACE_EVENT0("ui::gtk", "GtkThemeService::OnSeparatorExpose");
if (UsingNativeTheme())
return FALSE;
......
......@@ -4,6 +4,7 @@
#include "chrome/browser/ui/gtk/infobars/extension_infobar_gtk.h"
#include "base/debug/trace_event.h"
#include "chrome/browser/extensions/extension_context_menu_model.h"
#include "chrome/browser/extensions/extension_host.h"
#include "chrome/browser/platform_util.h"
......@@ -192,6 +193,8 @@ gboolean ExtensionInfoBarGtk::OnButtonPress(GtkWidget* widget,
gboolean ExtensionInfoBarGtk::OnExpose(GtkWidget* sender,
GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "ExtensionInfoBarGtk::OnExpose");
// We also need to draw our infobar arrows over the renderer.
static_cast<InfoBarContainerGtk*>(container())->
PaintInfobarBitsOn(sender, event, this);
......
......@@ -4,6 +4,7 @@
#include "chrome/browser/ui/gtk/infobars/infobar_gtk.h"
#include "base/debug/trace_event.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/infobars/infobar_tab_helper.h"
#include "chrome/browser/profiles/profile.h"
......@@ -212,6 +213,8 @@ void InfoBarGtk::OnCloseButton(GtkWidget* button) {
gboolean InfoBarGtk::OnBackgroundExpose(GtkWidget* sender,
GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "InfoBarGtk::OnBackgroundExpose");
GtkAllocation allocation;
gtk_widget_get_allocation(sender, &allocation);
const int height = allocation.height;
......
......@@ -10,6 +10,7 @@
#include "base/basictypes.h"
#include "base/bind.h"
#include "base/debug/trace_event.h"
#include "base/i18n/rtl.h"
#include "base/logging.h"
#include "base/string_util.h"
......@@ -1382,6 +1383,9 @@ gboolean LocationBarViewGtk::ContentSettingImageViewGtk::OnButtonPressed(
gboolean LocationBarViewGtk::ContentSettingImageViewGtk::OnExpose(
GtkWidget* sender, GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk",
"LocationBarViewGtk::ContentSettingImageViewGtk::OnExpose");
if (!(animation_.IsShowing() || animation_.IsClosing()))
return FALSE;
......@@ -1626,6 +1630,7 @@ gboolean LocationBarViewGtk::PageActionViewGtk::OnButtonPressed(
gboolean LocationBarViewGtk::PageActionViewGtk::OnExposeEvent(
GtkWidget* widget,
GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "LocationBarViewGtk::PageActionViewGtk::OnExpose");
TabContents* contents = owner_->GetTabContents();
if (!contents)
return FALSE;
......
......@@ -10,6 +10,7 @@
#include <vector>
#include "base/bind.h"
#include "base/debug/trace_event.h"
#include "base/message_loop.h"
#include "base/string_util.h"
#include "chrome/browser/extensions/extension_host.h"
......@@ -413,6 +414,7 @@ void BalloonViewImpl::OnCloseButton(GtkWidget* widget) {
// HTML view cut off the roundedness of the notification window.
gboolean BalloonViewImpl::OnContentsExpose(GtkWidget* sender,
GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "BalloonViewImpl::OnContentsExpose");
cairo_t* cr = gdk_cairo_create(GDK_DRAWABLE(sender->window));
gdk_cairo_rectangle(cr, &event->area);
cairo_clip(cr);
......@@ -436,6 +438,7 @@ gboolean BalloonViewImpl::OnContentsExpose(GtkWidget* sender,
}
gboolean BalloonViewImpl::OnExpose(GtkWidget* sender, GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "BalloonViewImpl::OnExpose");
cairo_t* cr = gdk_cairo_create(GDK_DRAWABLE(sender->window));
gdk_cairo_rectangle(cr, &event->area);
cairo_clip(cr);
......
......@@ -6,6 +6,7 @@
#include <algorithm>
#include "base/debug/trace_event.h"
#include "base/logging.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/ui/browser.h"
......@@ -196,6 +197,7 @@ void ReloadButtonGtk::OnClicked(GtkWidget* /* sender */) {
gboolean ReloadButtonGtk::OnExpose(GtkWidget* widget,
GdkEventExpose* e) {
TRACE_EVENT0("ui::gtk", "ReloadButtonGtk::OnExpose");
if (theme_service_ && theme_service_->UsingNativeTheme())
return FALSE;
return ((visible_mode_ == MODE_RELOAD) ? reload_ : stop_).OnExpose(
......
......@@ -8,6 +8,7 @@
#include <algorithm>
#include "base/debug/trace_event.h"
#include "base/i18n/rtl.h"
#include "base/stl_util.h"
#include "chrome/browser/extensions/extension_tab_helper.h"
......@@ -371,6 +372,8 @@ void DraggedViewGtk::SetContainerShapeMask() {
}
gboolean DraggedViewGtk::OnExpose(GtkWidget* widget, GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "DraggedViewGtk::OnExpose");
if (ui::IsScreenComposited())
SetContainerTransparency();
else
......
......@@ -7,6 +7,7 @@
#include <gdk/gdkkeysyms.h>
#include "base/bind.h"
#include "base/debug/trace_event.h"
#include "base/memory/singleton.h"
#include "base/utf_string_conversions.h"
#include "chrome/app/chrome_command_ids.h"
......@@ -101,6 +102,8 @@ TabGtk::~TabGtk() {
}
void TabGtk::Raise() const {
UNSHIPPED_TRACE_EVENT0("ui::gtk", "TabGtk::Raise");
GdkWindow* window = gtk_input_event_box_get_window(
GTK_INPUT_EVENT_BOX(event_box_));
gdk_window_raise(window);
......
......@@ -7,6 +7,7 @@
#include <algorithm>
#include <utility>
#include "base/debug/trace_event.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/defaults.h"
#include "chrome/browser/extensions/extension_tab_helper.h"
......@@ -1068,6 +1069,8 @@ gboolean TabRendererGtk::OnCloseButtonMouseRelease(GtkWidget* widget,
gboolean TabRendererGtk::OnExposeEvent(GtkWidget* widget,
GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "TabRendererGtk::OnExposeEvent");
PaintTab(widget, event);
gtk_container_propagate_expose(GTK_CONTAINER(tab_.get()),
close_button_->widget(), event);
......
......@@ -8,6 +8,7 @@
#include <algorithm>
#include "base/bind.h"
#include "base/debug/trace_event.h"
#include "base/i18n/rtl.h"
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
......@@ -964,6 +965,8 @@ GtkWidget* TabStripGtk::GetWidgetForViewID(ViewID view_id) {
void TabStripGtk::TabInsertedAt(TabContentsWrapper* contents,
int index,
bool foreground) {
TRACE_EVENT0("ui::gtk", "TabStripGtk::TabInsertedAt");
DCHECK(contents);
DCHECK(index == TabStripModel::kNoTab || model_->ContainsIndex(index));
......@@ -1037,6 +1040,7 @@ void TabStripGtk::ActiveTabChanged(TabContentsWrapper* old_contents,
TabContentsWrapper* new_contents,
int index,
bool user_gesture) {
TRACE_EVENT0("ui::gtk", "TabStripGtk::ActiveTabChanged");
ReStack();
}
......@@ -1607,6 +1611,8 @@ bool TabStripGtk::IsCursorInTabStripZone() const {
}
void TabStripGtk::ReStack() {
TRACE_EVENT0("ui::gtk", "TabStripGtk::ReStack");
if (!gtk_widget_get_realized(tabstrip_.get())) {
// If the window isn't realized yet, we can't stack them yet. It will be
// done by the OnMap signal handler.
......@@ -1803,6 +1809,8 @@ TabStripGtk::DropInfo::~DropInfo() {
gboolean TabStripGtk::DropInfo::OnExposeEvent(GtkWidget* widget,
GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "TabStripGtk::DropInfo::OnExposeEvent");
if (ui::IsScreenComposited()) {
SetContainerTransparency();
} else {
......@@ -1990,6 +1998,8 @@ void TabStripGtk::OnMap(GtkWidget* widget) {
}
gboolean TabStripGtk::OnExpose(GtkWidget* widget, GdkEventExpose* event) {
TRACE_EVENT0("ui::gtk", "TabStripGtk::OnExpose");
if (gdk_region_empty(event->region))
return TRUE;
......@@ -2069,6 +2079,8 @@ gboolean TabStripGtk::OnExpose(GtkWidget* widget, GdkEventExpose* event) {
}
void TabStripGtk::OnSizeAllocate(GtkWidget* widget, GtkAllocation* allocation) {
TRACE_EVENT0("ui::gtk", "TabStripGtk::OnSizeAllocate");
gfx::Rect bounds = gfx::Rect(allocation->x, allocation->y,
allocation->width, allocation->height);
......
......@@ -11,6 +11,7 @@
#include "base/i18n/rtl.h"
#include "base/message_loop.h"
#include "base/metrics/histogram.h"
#include "base/string_number_conversions.h"
#include "base/utf_string_conversions.h"
#include "content/browser/accessibility/browser_accessibility_state.h"
#include "content/browser/gpu/gpu_process_host.h"
......@@ -438,6 +439,10 @@ void RenderWidgetHost::PaintAtSize(TransportDIB::Handle dib_handle,
}
BackingStore* RenderWidgetHost::GetBackingStore(bool force_create) {
TRACE_EVENT2("renderer_host", "RenderWidgetHost::GetBackingStore",
"width", base::IntToString(current_size_.width()),
"height", base::IntToString(current_size_.height()));
// We should not be asked to paint while we are hidden. If we are hidden,
// then it means that our consumer failed to call WasRestored. If we're not
// force creating the backing store, it's OK since we can feel free to give
......
......@@ -19,6 +19,7 @@
#include <string>
#include "base/command_line.h"
#include "base/debug/trace_event.h"
#include "base/logging.h"
#include "base/message_loop.h"
#include "base/metrics/histogram.h"
......@@ -804,6 +805,8 @@ void RenderWidgetHostViewGtk::ImeCancelComposition() {
void RenderWidgetHostViewGtk::DidUpdateBackingStore(
const gfx::Rect& scroll_rect, int scroll_dx, int scroll_dy,
const std::vector<gfx::Rect>& copy_rects) {
TRACE_EVENT0("ui::gtk", "RenderWidgetHostViewGtk::DidUpdateBackingStore");
if (is_hidden_)
return;
......@@ -1074,6 +1077,8 @@ void RenderWidgetHostViewGtk::ModifyEventForEdgeDragging(
}
void RenderWidgetHostViewGtk::Paint(const gfx::Rect& damage_rect) {
TRACE_EVENT0("ui::gtk", "RenderWidgetHostViewGtk::Paint");
// If the GPU process is rendering directly into the View,
// call the compositor directly.
RenderWidgetHost* render_widget_host = GetRenderWidgetHost();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment