Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Starred by 1 user
Status: Fixed
Owner:
Closed: May 29
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug



Sign in to add a comment
Create a unified UIElement interface for Widget, View and Window
Project Member Reported by thanhph@chromium.org, Mar 9 Back to list
To make ash_dev_tools_css_agent.cc cleaner, CSS agent shouldn't have to worry about which specific object (Widget, View or Window) it's referring to. 

Since Widget, View and Window have different method names which behave same way, i.e, window->IsVisible() vs view->Visibile(), a unified interface UIElement will have unified method names which then appropriately direct calls to actual Widget, View or Window methods.
 
Cc: thanhph@chromium.org
 Issue 711339  has been merged into this issue.
Project Member Comment 3 by bugdroid1@chromium.org, May 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6ca68936d643cf5636b9d5af16ed798a57b5c43b

commit 6ca68936d643cf5636b9d5af16ed798a57b5c43b
Author: afakhry <afakhry@chromium.org>
Date: Fri May 19 21:36:13 2017

Revert of Create a unified UIElement interface for Widget, View and Window. (patchset #21 id:1020001 of https://codereview.chromium.org/2776543002/ )

Reason for revert:
Fails to compile on ChromiumOS x86-generic Compile
with error:

[903/7505] CXX obj/ash/ash/ui_element.o
FAILED: obj/ash/ash/ui_element.o
/b/c/goma_client/gomacc i686-pc-linux-gnu-g++ -B/b/c/b/ChromiumOS_x86_generic_Compile/.cros_cache/chrome-sdk/tarballs/x86-generic+9536.0.0+target_toolchain/usr/x86_64-pc-linux-gnu/i686-pc-linux-gnu/binutils-bin/2.25.51-gold -MMD -MF obj/ash/ash/ui_element.o.d -DASH_IMPLEMENTATION -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_ASH=1 -DUSE_AURA=1 -DUSE_NSS_CERTS=1 -DUSE_OZONE=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DOS_CHROMEOS -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -DUSE_EGL -DTOOLKIT_VIEWS=1 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE -DUCHAR_TYPE=uint16_t -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_HAS_PNG_LIBRARY -DSK_HAS_WEBP_LIBRARY -DSK_HAS_JPEG_LIBRARY -DSK_SUPPORT_GPU=1 -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -DMESA_EGL_NO_X11_HEADERS -I../.. -Igen -I../../third_party/libwebp -I../../third_party/khronos -I../../gpu -I../../third_party/ced/src -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/encode -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/third_party/vulkan -I../../third_party/skia/include/gpu -I../../third_party/skia/src/gpu -I../../third_party/skia/src/sksl -I/b/c/b/ChromiumOS_x86_generic_Compile/.cros_cache/chrome-sdk/tarballs/x86-generic+9536.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/include/dbus-1.0 -I/b/c/b/ChromiumOS_x86_generic_Compile/.cros_cache/chrome-sdk/tarballs/x86-generic+9536.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/lib/dbus-1.0/include -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/libwebm/source -I../../third_party/boringssl/src/include -I/b/c/b/ChromiumOS_x86_generic_Compile/.cros_cache/chrome-sdk/tarballs/x86-generic+9536.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/include/nss -I/b/c/b/ChromiumOS_x86_generic_Compile/.cros_cache/chrome-sdk/tarballs/x86-generic+9536.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/include/nspr -I../../third_party/WebKit -Igen/third_party/WebKit -I../../v8/include -Igen/v8/include -I../../third_party/qcms/src -Igen -I../../third_party/mesa/src/include -fno-strict-aliasing -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -B../../third_party/binutils/Linux_x64/Release/bin -m32 -msse2 -mfpmath=sse -mmmx -pthread -Wall -Werror -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wno-missing-field-initializers -Wno-unused-parameter -O2 -fno-ident -fdata-sections -ffunction-sections -fno-omit-frame-pointer -g2 -gsplit-dwarf --sysroot=../../../.cros_cache/chrome-sdk/tarballs/x86-generic+9536.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz -fvisibility=hidden -std=gnu++11 -Wno-narrowing -fno-rtti -fno-exceptions -fvisibility-inlines-hidden -march=i686 -pipe -march=i686 -pipe -pipe -march=i686 -mfpmath=sse -mmmx -msse -msse2 -msse3 -D__google_stl_debug_vector=1 -c ../../ash/devtools/ui_element.cc -o obj/ash/ash/ui_element.o
../../ash/devtools/ui_element.cc: In member function 'std::string ash::devtools::UIElement::GetTypeName() const':
../../ash/devtools/ui_element.cc:37:1: error: control reaches end of non-void function [-Werror=return-type]
 }
 ^
cc1plus.elf: all warnings being treated as errors

Original issue's description:
> Create a unified UIElement interface for Widget, View and Window.
>
> The unified interface will enable css_agent to set/access many
> properties of widget, view and window without the need of knowing the
> actual object type. A UIElement tree where each node can be either
> view, widget and window will be kept in sync with tree structures of
> window, widget and view objects.
>
> BUG= 700024 
>
> Review-Url: https://codereview.chromium.org/2776543002
> Cr-Commit-Position: refs/heads/master@{#473315}
> Committed: https://chromium.googlesource.com/chromium/src/+/bdcdb17a4fa7ffea34afed460b776cc2e5032855

TBR=sadrul@chromium.org,thanhph@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 700024 

Review-Url: https://codereview.chromium.org/2899503002
Cr-Commit-Position: refs/heads/master@{#473331}

[modify] https://crrev.com/6ca68936d643cf5636b9d5af16ed798a57b5c43b/ash/BUILD.gn
[modify] https://crrev.com/6ca68936d643cf5636b9d5af16ed798a57b5c43b/ash/devtools/ash_devtools_css_agent.cc
[modify] https://crrev.com/6ca68936d643cf5636b9d5af16ed798a57b5c43b/ash/devtools/ash_devtools_css_agent.h
[modify] https://crrev.com/6ca68936d643cf5636b9d5af16ed798a57b5c43b/ash/devtools/ash_devtools_dom_agent.cc
[modify] https://crrev.com/6ca68936d643cf5636b9d5af16ed798a57b5c43b/ash/devtools/ash_devtools_dom_agent.h
[modify] https://crrev.com/6ca68936d643cf5636b9d5af16ed798a57b5c43b/ash/devtools/ash_devtools_unittest.cc
[delete] https://crrev.com/eeb1406b336d5834d9362fad5e16af8ca45e6f0e/ash/devtools/ui_element.cc
[delete] https://crrev.com/eeb1406b336d5834d9362fad5e16af8ca45e6f0e/ash/devtools/ui_element.h
[delete] https://crrev.com/eeb1406b336d5834d9362fad5e16af8ca45e6f0e/ash/devtools/ui_element_delegate.h
[delete] https://crrev.com/eeb1406b336d5834d9362fad5e16af8ca45e6f0e/ash/devtools/view_element.cc
[delete] https://crrev.com/eeb1406b336d5834d9362fad5e16af8ca45e6f0e/ash/devtools/view_element.h
[delete] https://crrev.com/eeb1406b336d5834d9362fad5e16af8ca45e6f0e/ash/devtools/widget_element.cc
[delete] https://crrev.com/eeb1406b336d5834d9362fad5e16af8ca45e6f0e/ash/devtools/widget_element.h
[delete] https://crrev.com/eeb1406b336d5834d9362fad5e16af8ca45e6f0e/ash/devtools/window_element.cc
[delete] https://crrev.com/eeb1406b336d5834d9362fad5e16af8ca45e6f0e/ash/devtools/window_element.h

Project Member Comment 4 by bugdroid1@chromium.org, May 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/27d1ff58a6ae0788d6f9d776d3c593d853e919aa

commit 27d1ff58a6ae0788d6f9d776d3c593d853e919aa
Author: thanhph <thanhph@chromium.org>
Date: Sat May 20 04:09:13 2017

Create a unified UIElement interface for Widget, View and Window.

The unified interface will enable css_agent to set/access many
properties of widget, view and window without the need of knowing the
actual object type. A UIElement tree where each node can be either
view, widget and window will be kept in sync with tree structures of
window, widget and view objects.

BUG= 700024 

Review-Url: https://codereview.chromium.org/2776543002
Cr-Original-Commit-Position: refs/heads/master@{#473315}
Committed: https://chromium.googlesource.com/chromium/src/+/bdcdb17a4fa7ffea34afed460b776cc2e5032855
Review-Url: https://codereview.chromium.org/2776543002
Cr-Commit-Position: refs/heads/master@{#473407}

[modify] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/BUILD.gn
[modify] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/ash_devtools_css_agent.cc
[modify] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/ash_devtools_css_agent.h
[modify] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/ash_devtools_dom_agent.cc
[modify] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/ash_devtools_dom_agent.h
[modify] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/ash_devtools_unittest.cc
[add] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/ui_element.cc
[add] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/ui_element.h
[add] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/ui_element_delegate.h
[add] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/view_element.cc
[add] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/view_element.h
[add] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/widget_element.cc
[add] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/widget_element.h
[add] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/window_element.cc
[add] https://crrev.com/27d1ff58a6ae0788d6f9d776d3c593d853e919aa/ash/devtools/window_element.h

Status: Fixed
Labels: Hotlist-UI-DevTools
Labels: VerifyIn-61
Sign in to add a comment