[meego-commits] 24425: Changes to MeeGo:1.2:oss/meego-tv-browser
jieyang
no_reply at build.meego.com
Fri Oct 28 06:54:14 UTC 2011
Hi,
I have made the following changes to meego-tv-browser in project MeeGo:1.2:oss. Please review and accept ASAP.
Thank You,
jieyang
[This message was auto-generated]
---
Request #24425:
submit: MeeGo:1.2:oss:Testing/meego-tv-browser(r8) -> MeeGo:1.2:oss/meego-tv-browser
Message:
(forwarded request 24422 from liushouqun) (forwarded request 24423 from rui_long)
State: new 2011-10-27T23:40:40 jieyang
Comment: None
changes files:
--------------
--- meego-tv-browser.changes
+++ meego-tv-browser.changes
@@ -0,0 +1,7 @@
+* Fri Oct 28 2011 Shouqun Liu <shouqun.liu at intel.com> - 12.0.712.0
+- Update TV browser with bugfixs and feature updates, including:
+ 1, enable transparency support for hardware-acclerated flash plugin, enable this
+ by setting env variable "MULTI_PLANE_VIDEO_IN_PLUGIN=true"
+ 2, fix the cutout area is not sync with scroll position in HTML5
+ 3, workaround to fix the ContentSize not updated in render when render process changed
+
spec files:
-----------
--- meego-tv-browser.spec
+++ meego-tv-browser.spec
@@ -190,12 +190,19 @@
# ln -s -f /usr/bin/meego-tv-browser /usr/bin/chromium-browser
# ;
#fi
+if [ -f /usr/lib/flash-plugin/libnpOipfPlugin.so ]; then
+ ln -s -f /usr/lib/flash-plugin/libnpOipfPlugin.so /usr/lib/meego-tv-browser/plugins/libnpOipfPlugin.so
+fi
%posttrans
#if [ -x /usr/bin/meego-tv-browser ]; then
# ln -s -f /usr/bin/meego-tv-browser /usr/bin/chromium-browser
# ;
#fi
+if [ -f /usr/lib/flash-plugin/libnpOipfPlugin.so ]; then
+ ln -s -f /usr/lib/flash-plugin/libnpOipfPlugin.so /usr/lib/meego-tv-browser/plugins/libnpOipfPlugin.so
+fi
+
%postun
#rm -f /usr/bin/chromium-browser
other changes:
--------------
++++++ chromium-qt.patch
--- chromium-qt.patch
+++ chromium-qt.patch
@@ -2370,7 +2370,7 @@
+#endif
diff --git a/chrome/app/launcher/launcherwindow.cpp b/chrome/app/launcher/launcherwindow.cpp
new file mode 100644
-index 0000000..ea3e0c8
+index 0000000..43ae509
--- /dev/null
+++ b/chrome/app/launcher/launcherwindow.cpp
@@ -0,0 +1,329 @@
@@ -2454,14 +2454,14 @@
+ Display *dpy = QX11Info::display ();
+ Atom property = XInternAtom(dpy,"_MUTTER_HINTS",0);
+ XID video_win_id = winId();
-+ sprintf(data,"meego-tv-cutout-x=0:meego-tv-cutout-y=0:"
-+ "meego-tv-cutout-width=1:meego-tv-cutout-height=1:"
-+ "meego-tv-half-trans=0:meego-tv-full-window=0");
-+ XChangeProperty(dpy,video_win_id,property,XA_STRING,8,PropModeReplace,(unsigned char *) data, strlen(data));
-+ XFlush(dpy);
++ //sprintf(data,"meego-tv-cutout-x=0:meego-tv-cutout-y=0:"
++ // "meego-tv-cutout-width=1:meego-tv-cutout-height=1:"
++ // "meego-tv-half-trans=0:meego-tv-full-window=0");
++ //XChangeProperty(dpy,video_win_id,property,XA_STRING,8,PropModeReplace,(unsigned char *) data, strlen(data));
++ //XFlush(dpy);
+ sprintf(data,"meego-tv-cutout-x=0:meego-tv-cutout-y=0:"
+ "meego-tv-cutout-width=0:meego-tv-cutout-height=0:"
-+ "meego-tv-half-trans=0:meego-tv-full-window=0");
++ "meego-tv-half-trans=1:meego-tv-full-window=1");
+ XChangeProperty(dpy,video_win_id,property,XA_STRING,8,PropModeReplace,(unsigned char *) data, strlen(data));
+ XFlush(dpy);
+ }
@@ -33527,12 +33527,29 @@
+
+
+}
+diff --git a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc
+index 1ec08bd..64fb3a0 100644
+--- a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc
++++ b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc
+@@ -97,6 +97,12 @@ class RenderWidgetHostViewGtkWidget {
+ public:
+ static GtkWidget* CreateNewWidget(RenderWidgetHostViewGtk* host_view) {
+ GtkWidget* widget = gtk_preserve_window_new();
++ GdkScreen* screen = gtk_widget_get_screen(widget);
++ GdkColormap* colormap = gdk_screen_get_rgba_colormap(screen);
++ if (colormap){
++ gtk_widget_set_colormap(widget, colormap);
++ }
++
+ gtk_widget_set_name(widget, "chrome-render-widget-host-view");
+ // We manually double-buffer in Paint() because Paint() may or may not be
+ // called in repsonse to an "expose-event" signal.
diff --git a/chrome/browser/renderer_host/render_widget_host_view_qt.cc b/chrome/browser/renderer_host/render_widget_host_view_qt.cc
new file mode 100644
-index 0000000..b50fe94
+index 0000000..d74f2e7
--- /dev/null
+++ b/chrome/browser/renderer_host/render_widget_host_view_qt.cc
-@@ -0,0 +1,908 @@
+@@ -0,0 +1,926 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
@@ -33554,7 +33571,6 @@
+#include <QScrollBar>
+#include <QtCore/QEvent>
+#include <QtCore/QVariant>
-+
+#include <algorithm>
+#include <string>
+
@@ -33581,6 +33597,8 @@
+#include "chrome/browser/ui/browser.h"
+#include "chrome/browser/ui/meegotouch/browser_window_qt.h"
+#include "webkit/plugins/npapi/qt_plugin_container_manager.h"
++#include <X11/Xutil.h>
++#include <X11/Xlib.h>
+
+// static
+RenderWidgetHostView* RenderWidgetHostView::CreateViewForWidget(
@@ -33932,6 +33950,8 @@
+ }
+}
+
++//undefine this to fix the conflicts on Xlib
++#undef CursorShape
+void RenderWidgetHostViewQt::UpdateCursor(const WebCursor& cursor) {
+ ///\todo Fixme
+ //set the cursors
@@ -34069,10 +34089,25 @@
+BackingStore* RenderWidgetHostViewQt::AllocBackingStore(
+ const gfx::Size& size) {
+ DLOG(INFO) << "AllocBackingStore size " << size.width() << " " << size.height();
++ XVisualInfo *vinf, tmp;
++ Visual *visual;
++ Display *dpy = QX11Info::display();
++ long mask; int n;
++
++ mask = VisualDepthMask | VisualClassMask;
++ tmp.depth = 32;
++ tmp.c_class = TrueColor;
++ vinf = XGetVisualInfo(dpy,mask,&tmp,&n);
++ if (vinf && n > 0){
++ visual = vinf[0].visual;
++ } else {
++ DLOG(FATAL)<<"Can't get 32 bit visual";
++ }
+
++
+ BackingStoreX* backing_store = new BackingStoreX(host_, size,
-+ QApplication::desktop()->x11Info().visual(),
-+ QApplication::desktop()->x11Info().depth());
++ visual, 32);
++// QApplication::desktop()->x11Info().depth());
+#if defined(TILED_BACKING_STORE)
+ if(backing_store && IsPopup()) {
+ backing_store->SetContentsScale(host_->GetScaleFactor());
@@ -38877,6 +38912,37 @@
// Allows the BrowserWindow object to handle the specified keyboard event
// before sending it to the renderer.
// Returns true if the |event| was handled. Otherwise, if the |event| would
+diff --git a/chrome/browser/ui/gtk/browser_window_gtk.cc b/chrome/browser/ui/gtk/browser_window_gtk.cc
+index e04a5ea..2b62806 100644
+--- a/chrome/browser/ui/gtk/browser_window_gtk.cc
++++ b/chrome/browser/ui/gtk/browser_window_gtk.cc
+@@ -266,6 +266,9 @@ BrowserWindowGtk::~BrowserWindowGtk() {
+ }
+
+ void BrowserWindowGtk::Init() {
++ GdkScreen *screen;
++ GdkColormap *colormap;
++ GtkWidget * widget;
+ // We register first so that other views like the toolbar can use the
+ // is_active() function in their ActiveWindowChanged() handlers.
+ ui::ActiveWindowWatcherX::AddObserver(this);
+@@ -281,7 +284,15 @@ void BrowserWindowGtk::Init() {
+ if (ui::GetWindowManagerName(&wm_name) && wm_name == "compiz")
+ suppress_window_raise_ = true;
+
+- window_ = GTK_WINDOW(gtk_window_new(GTK_WINDOW_TOPLEVEL));
++ widget = gtk_window_new(GTK_WINDOW_TOPLEVEL);
++
++ window_ = GTK_WINDOW(widget);
++ screen = gtk_widget_get_screen(widget);
++ colormap = gdk_screen_get_rgba_colormap(screen);
++ if (colormap) {
++ gtk_widget_set_colormap(widget, colormap);
++ }
++
+ g_object_set_qdata(G_OBJECT(window_), GetBrowserWindowQuarkKey(), this);
+ gtk_widget_add_events(GTK_WIDGET(window_), GDK_BUTTON_PRESS_MASK |
+ GDK_POINTER_MOTION_MASK);
diff --git a/chrome/browser/ui/input_window_dialog_qt.cc b/chrome/browser/ui/input_window_dialog_qt.cc
new file mode 100644
index 0000000..4e4e3f8
@@ -42514,10 +42580,10 @@
+}
diff --git a/chrome/browser/ui/meegotouch/browser_window_qt.cc b/chrome/browser/ui/meegotouch/browser_window_qt.cc
new file mode 100644
-index 0000000..c0c3149
+index 0000000..59fd397
--- /dev/null
+++ b/chrome/browser/ui/meegotouch/browser_window_qt.cc
-@@ -0,0 +1,1017 @@
+@@ -0,0 +1,1030 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
@@ -42960,8 +43026,21 @@
+ }
+
+ void updateAddressBar() {
-+ window_->SetFullscreenModeWithState(true); //toggle fullscreen
++ //window_->SetFullscreenModeWithState(true); //toggle fullscreen
++ QPoint curPosGlobal = QCursor::pos();
++ QPoint curPosWidget = window_->window()->mapFromGlobal(curPosGlobal);
++ QWidget *dest = QApplication::widgetAt(curPosGlobal);
++ qDebug()<<"############################updateAddressBar###########";
++ if (dest) {
++ qDebug()<<"#####################To send event########";
+
++ QKeyEvent *keyEvent = new QKeyEvent(QEvent::KeyPress, Qt::Key_F11, Qt::NoModifier );
++ QApplication::sendEvent(dest, keyEvent);
++
++ keyEvent = new QKeyEvent(QEvent::KeyRelease, Qt::Key_F11, Qt::NoModifier );
++ QApplication::sendEvent(dest, keyEvent);
++ }
++
+ mouseTimer.stop();
+ }
+
@@ -51264,10 +51343,10 @@
+}
diff --git a/chrome/browser/ui/meegotouch/tab_contents_container_qt.cc b/chrome/browser/ui/meegotouch/tab_contents_container_qt.cc
new file mode 100644
-index 0000000..14e3fde
+index 0000000..6108179
--- /dev/null
+++ b/chrome/browser/ui/meegotouch/tab_contents_container_qt.cc
(623 more lines skipped)
++++++ webkit.patch
--- webkit.patch
+++ webkit.patch
@@ -1891,7 +1891,7 @@
RenderBox* innerBlockRenderer = m_innerBlock ? m_innerBlock->renderBox() : 0;
diff --git a/Source/WebCore/rendering/RenderVideo.cpp b/Source/WebCore/rendering/RenderVideo.cpp
-index 1ae736b..61286e8 100644
+index 1ae736b..4e808f6 100644
--- a/Source/WebCore/rendering/RenderVideo.cpp
+++ b/Source/WebCore/rendering/RenderVideo.cpp
@@ -42,6 +42,19 @@
@@ -1914,7 +1914,31 @@
using namespace std;
namespace WebCore {
-@@ -240,10 +253,50 @@ void RenderVideo::updatePlayer()
+@@ -157,11 +170,13 @@ IntRect RenderVideo::videoBox() const
+ else
+ elementSize = intrinsicSize();
+
+- IntRect contentRect = contentBoxRect();
++ IntRect contentRect = contentBoxRect();
++
+ if (elementSize.isEmpty() || contentRect.isEmpty())
+ return IntRect();
+
+ IntRect renderBox = contentRect;
++/*
+ int ratio = renderBox.width() * elementSize.height() - renderBox.height() * elementSize.width();
+ if (ratio > 0) {
+ int newWidth = renderBox.height() * elementSize.width() / elementSize.height();
+@@ -175,7 +190,7 @@ IntRect RenderVideo::videoBox() const
+ renderBox.setHeight(newHeight);
+ renderBox.move(0, (contentRect.height() - renderBox.height()) / 2);
+ }
+-
++*/
+ return renderBox;
+ }
+
+@@ -240,10 +255,50 @@ void RenderVideo::updatePlayer()
#if USE(ACCELERATED_COMPOSITING)
layer()->contentChanged(RenderLayer::VideoChanged);
#endif
More information about the MeeGo-commits
mailing list