[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