[meego-commits] 7112: Changes to devel:browser/fennec-qt
hhuo
halton.huo at intel.com
Fri Aug 27 03:47:24 UTC 2010
Hi,
I have made the following changes to fennec-qt in project devel:browser. Please review and accept ASAP.
Thank You,
hhuo
[This message was auto-generated]
---
Request #7112:
submit: home:hhuo:branches:devel:browser/fennec-qt(r7)(cleanup) -> devel:browser/fennec-qt
Message:
None
State: new 2010-08-26T15:36:57 hhuo
Comment: None
changes files:
--------------
--- fennec-qt.changes
+++ fennec-qt.changes
@@ -0,0 +1,21 @@
+* Fri Aug 27 02:49:26 UTC 2010 Halton Huo <halton.huo at intel.com> - 2.0a1pre0824.1
+- Add missing patch use_fennec_promptservice.diff and home_btn_once_hack.diff
+ to platform-patches.tar.gz
+- Add missing patch add_VKB_support.diff to mobile-patches.tar.gz
+
+* Thu Aug 26 07:30:48 UTC 2010 Halton Huo <halton.huo at intel.com> - 2.0a1pre0824.1
+- Revert last time commit, rework the mobile patches to avoid the git apply issue.
+
+* Thu Aug 26 06:33:36 UTC 2010 Halton Huo <halton.huo at intel.com> - 2.0a1pre0824.1
+- Use "patch -p1" instead of "git apply" to fix losting files after patched
+
+* Thu Aug 26 03:13:28 UTC 2010 Halton Huo <halton.huo at intel.com> - 2.0a1pre0824.1
+- Add yasm as BuildRequires
+
+* Thu Aug 26 02:14:54 UTC 2010 Halton Huo <halton.huo at intel.com> - 2.0a1pre0824.1
+- Rebase to upstream trunk at changeset 51353:9a623cc1c5e7 20100824
+- BMC#5638, Fix issue that edit bookmarks function does not work
+- BMC#5707, Fix issue that elements are invisible on drop-down list
+- BMC#5431, Fix issue that two message dialogs popup before download
+- Fix bug that green background is shown when accessing https://addons.mozilla.org/en-US/firefox/?browse=featured
+
old:
----
fennec-tip-91da083f3478-af67cbcea09d.tar.bz2
new:
----
fennec-tip-9a623cc1c5e7-0e849c208873.tar.bz2
spec files:
-----------
--- fennec-qt.spec
+++ fennec-qt.spec
@@ -8,12 +8,12 @@
Name: fennec-qt
Summary: Fennec Mobile Web Browser with Qt/MeeGo Touch
-Version: 2.0a1pre0721.6
+Version: 2.0a1pre0824.1
Release: 1
Group: Applications/Internet
License: MPLv1.1 or GPLv2+ or LGPLv2+
URL: http://www.mozilla.org/projects/fennec/
-Source0: fennec-tip-91da083f3478-af67cbcea09d.tar.bz2
+Source0: fennec-tip-9a623cc1c5e7-0e849c208873.tar.bz2
Source1: platform-patches.tar.gz
Source2: mobile-patches.tar.gz
Source3: mozconfig
@@ -55,6 +55,7 @@
BuildRequires: wireless-tools-devel
BuildRequires: git
BuildRequires: desktop-file-utils
+BuildRequires: yasm
Conflicts: fennec
other changes:
--------------
++++++ fennec-qt.yaml
--- fennec-qt.yaml
+++ fennec-qt.yaml
@@ -1,12 +1,12 @@
Name: fennec-qt
Summary: Fennec Mobile Web Browser with Qt/MeeGo Touch
-Version: 2.0a1pre0721.6
+Version: 2.0a1pre0824.1
Release: 1
Group: Applications/Internet
License: MPLv1.1 or GPLv2+ or LGPLv2+
URL: http://www.mozilla.org/projects/fennec/
Sources:
- - fennec-tip-91da083f3478-af67cbcea09d.tar.bz2
+ - fennec-tip-9a623cc1c5e7-0e849c208873.tar.bz2
- platform-patches.tar.gz
- mobile-patches.tar.gz
- mozconfig
++++++ fennec-tip-9a623cc1c5e7-0e849c208873.tar.bz2 (new)
++++++ meego-theme.tar.gz
--- skin/browser.css
+++ skin/browser.css
@@ -40,6 +40,25 @@
background: #fff;
}
+/* add special color */
+#identity-box[mode="verifiedIdentity"] {
+ background: #fff;
+}
+
+#identity-box[mode="verifiedIdentity"]:-moz-locale-dir(rtl) {
+ background: #fff;
+}
+
+#identity-box[mode="verifiedIdentity"]:hover:active,
+#identity-box[mode="verifiedIdentity"][open] {
+ background: #fff;
+}
+
+#identity-box[mode="verifiedIdentity"]:hover:active:-moz-locale-dir(rtl),
+#identity-box[mode="verifiedIdentity"][open]:-moz-locale-dir(rtl) {
+ background: #fff;
+}
+
#urlbar-favicon {
width: 24px;
height: 24px;
++++++ mobile-patches.tar.gz
--- add_VKB_support.diff
+++ add_VKB_support.diff
-diff --git a/chrome/content/browser-ui.js b/chrome/content/browser-ui.js
---- a/chrome/content/browser-ui.js
-+++ b/chrome/content/browser-ui.js
-@@ -1540,6 +1540,10 @@
- this._autofillContainer = document.getElementById("form-helper-autofill");
- this._cmdPrevious = document.getElementById(this.commands.previous);
- this._cmdNext = document.getElementById(this.commands.next);
-+
-+ //hack mathod, hard code of virtual keyboard height
-+ this._vkbHeight = 280;
-+ this._containerHeight = this._container.getBoundingClientRect().height;
-
- // Listen for form assistant messages from content
- messageManager.addMessageListener("FormAssist:Show", this);
-@@ -1565,8 +1569,16 @@
- value: aElement.value,
- maxLength: aElement.maxLength,
- isAutocomplete: aElement.isAutocomplete,
-- list: aElement.choices
-+ list: aElement.choices,
-+ isValidText: aElement.isValidText
- }
-+ //resize the height of container according to vitual keyboard's close and open
-+ if (this._currentElement.isValidText) {
-+ this._container.setAttribute("height", this._vkbHeight);
-+ } else {
-+ this._container.setAttribute("height", this._containerHeight);
-+ }
-+
- this._updateContainer(lastElement, this._currentElement);
-
- this._zoom(Rect.fromRect(aElement.rect), Rect.fromRect(aElement.caretRect));
-diff --git a/chrome/content/forms.js b/chrome/content/forms.js
---- a/chrome/content/forms.js
-+++ b/chrome/content/forms.js
-@@ -254,6 +254,12 @@
- return this._isNavigableElement(aElement) && this._isVisibleElement(aElement);
- },
-
-+ _isValidTextElement: function formHelperIsValidTextElement(aElement) {
-+ if (aElement instanceof HTMLTextAreaElement || (aElement instanceof HTMLInputElement && aElement.type == "text"))
-+ return this._isValidElement(aElement);
-+ return false;
-+ },
-+
- _isNavigableElement: function formHelperIsNavigableElement(aElement) {
- if (aElement.disabled)
- return false;
-@@ -389,7 +395,8 @@
- choices: list,
- isAutocomplete: this._isAutocomplete(this.currentElement),
- rect: this._getRect(),
-- caretRect: this._getCaretRect()
-+ caretRect: this._getCaretRect(),
-+ isValidText: this._isValidTextElement(this.currentElement)
- },
- hasPrevious: !!this._elements[this._currentIndex - 1],
- hasNext: !!this._elements[this._currentIndex + 1]
--- autoconnect.patch
+++ autoconnect.patch
-# HG changeset patch
-# User roger.wang at intel.com
-# Date 1274951240 -28800
-# Branch meego
-# Node ID 29ce758e627349c5d291cc5ce17706135ba6d44a
-# Parent b3959e8a47999b3e16265e0f31f9234cecec2ef4
-autoconnect on MeeGo
-
-diff --git a/chrome/content/Util.js b/chrome/content/Util.js
---- a/chrome/content/Util.js
-+++ b/chrome/content/Util.js
-@@ -203,6 +203,8 @@
- forceOnline: function forceOnline() {
- #ifdef MOZ_ENABLE_LIBCONIC
- Services.io.offline = false;
-+#elifdef MOZ_PLATFORM_MEEGO
-+ Services.io.offline = false;
- #endif
- },
-
--- copy_NSDISTMODE.patch
+++ copy_NSDISTMODE.patch
-# HG changeset patch
-# User roger.wang at intel.com
-# Date 1274951303 -28800
-# Branch meego
-# Node ID 3e3ddc7400c122d42401d299c500566b91bb0a24
-# Parent c892fc6bf24f0e48ff77e9b745d3b3179f0c6213
-use copy NSDISTMODE
-
-diff --git a/components/Makefile.in b/components/Makefile.in
---- a/components/Makefile.in
-+++ b/components/Makefile.in
-@@ -43,6 +43,8 @@
-
- include $(DEPTH)/config/autoconf.mk
-
-+NSDISTMODE = copy
-+
- MODULE = MobileComponents
- XPIDL_MODULE = MobileComponents
-
-diff --git a/components/phone/Makefile.in b/components/phone/Makefile.in
---- a/components/phone/Makefile.in
-+++ b/components/phone/Makefile.in
-@@ -43,6 +43,8 @@
-
- include $(DEPTH)/config/autoconf.mk
-
-+NSDISTMODE = copy
-+
- MODULE_NAME = mozphone
- MODULE = mozphone
- LIBRARY_NAME = mozphone
--- correct_plugin_options_ipc.patch
+++ correct_plugin_options_ipc.patch
-# HG changeset patch
-# User roger.wang at intel.com
-# Date 1275362358 -28800
-# Branch meego
-# Node ID 8a629b4eb58772ebd9c22795b08b56e66c4c1697
-# Parent 58a4226965aefb850910b01a4da0d7e26ed6154f
-correct plugin options for IPC
-
-diff --git a/app/mobile.js b/app/mobile.js
---- a/app/mobile.js
-+++ b/app/mobile.js
-@@ -373,8 +373,8 @@
-
- // plugins
- pref("plugin.disable", false);
--pref("plugin.default_plugin_disabled", true);
--pref("dom.ipc.plugins.enabled", false);
-+pref("plugin.default_plugin_disabled", false);
-+pref("dom.ipc.plugins.enabled", true);
-
- // product URLs
- // The breakpad report server to link to in about:crashes
--- download_dlg_open.patch
+++ download_dlg_open.patch
-diff --git a/chrome/content/downloads.js b/chrome/content/downloads.js
---- a/chrome/content/downloads.js
-+++ b/chrome/content/downloads.js
-@@ -361,12 +361,25 @@
- },
-
- openDownload: function dv_openDownload(aItem) {
-- let f = this._getLocalFile(aItem.getAttribute("file"));
-- try {
-- f.launch();
-- } catch (ex) { }
-
-- // TODO: add back the code for "dontAsk"?
-+ let f = aItem.getAttribute("file");
-+
-+ var exe = Components.classes["@mozilla.org/file/local;1"]
-+ .createInstance(Components.interfaces.nsILocalFile);
-+ exe.initWithPath("/usr/bin/xdg-open");
-+
-+ // create an nsIProcess
-+ var process = Components.classes["@mozilla.org/process/util;1"]
-+ .createInstance(Components.interfaces.nsIProcess);
-+ process.init(exe);
-+
-+ // Run the process.
-+ // If first param is true, calling thread will be blocked until
-+ // called process terminates.
-+
-+ var args = [f];
-+ process.run(false, args, args.length);
-+
- },
-
- removeDownload: function dv_removeDownload(aItem) {
--- enable_plugin_force_windowless_flash.patch
+++ enable_plugin_force_windowless_flash.patch
-diff --git a/app/mobile.js b/app/mobile.js
---- a/app/mobile.js
-+++ b/app/mobile.js
-@@ -319,6 +319,10 @@
- pref("plugins.force.wmode", "opaque");
- #endif
-
-+#ifdef MOZ_PLATFORM_MEEGO
-+pref("plugins.force.wmode", "opaque");
-+#endif
-+
- // URL to the Learn More link XXX this is the firefox one. Bug 495578 fixes this.
- pref("browser.geolocation.warning.infoURL", "http://www.mozilla.com/%LOCALE%/firefox/geolocation/");
-
-@@ -368,7 +372,7 @@
- pref("browser.ui.touch.weight.visited", 120); // percentage
-
- // plugins
--pref("plugin.disable", true);
-+pref("plugin.disable", false);
- pref("plugin.default_plugin_disabled", true);
- pref("dom.ipc.plugins.enabled", false);
-
--- eng_home_screen_button.patch
+++ eng_home_screen_button.patch
-# HG changeset patch
-# User roger.wang at intel.com
-# Date 1276409659 -28800
-# Branch meego
-# Node ID 4d9b87caf0c4bbc4f2ad6c9ab5a19e65dcd5c7de
-# Parent 03c227c7dc53beba7785feded3eee9c37f0444e4
-add engineering home screen button
-
-diff --git a/chrome/content/browser.xul b/chrome/content/browser.xul
---- a/chrome/content/browser.xul
-+++ b/chrome/content/browser.xul
-@@ -154,6 +154,8 @@
- <command id="cmd_formNext" oncommand="FormHelperUI.goToNext();"/>
- <command id="cmd_formClose" oncommand="FormHelperUI.hide();"/>
-
-+ <command id="cmd_homescreen" oncommand="window.minimize();"/>
-+
- <!-- find navigation -->
- <command id="cmd_findPrevious" oncommand="FindHelperUI.goToPrevious();"/>
- <command id="cmd_findNext" oncommand="FindHelperUI.goToNext();"/>
-@@ -295,6 +297,7 @@
- <toolbarbutton id="tool-star" class="browser-control-button button-image" command="cmd_star"/>
- <toolbarbutton id="tool-back" class="browser-control-button button-image" command="cmd_back"/>
- <toolbarbutton id="tool-forward" class="browser-control-button button-image" command="cmd_forward"/>
-+ <toolbarbutton id="tool-homescreen" class="browser-control-button button-image" command="cmd_homescreen"/>
- <toolbarspring/>
- <toolbarbutton id="tool-panel-open" class="page-button button-image" command="cmd_panel"/>
- </vbox>
-diff --git a/themes/core/browser.css b/themes/core/browser.css
---- a/themes/core/browser.css
-+++ b/themes/core/browser.css
-@@ -254,6 +254,14 @@
- list-style-image: url("chrome://browser/skin/images/bookmark-active-64.png");
- }
-
-+#tool-homescreen {
-+ list-style-image: url("chrome://browser/skin/images/home-64.png");
-+}
-+
-+#tool-homescreen:hover:active {
-+ list-style-image: url("chrome://browser/skin/images/home-64.png");
-+}
-+
- #tool-star[starred="true"] {
- list-style-image: url("chrome://browser/skin/images/bookmarked-default-64.png");
- }
-diff --git a/themes/core/images/home-64.png b/themes/core/images/home-64.png
-new file mode 100644
-index 0000000000000000000000000000000000000000..ff2fff0e4e14adb0ff9e2c8621d515e51bd80485
-GIT binary patch
-literal 2033
-zc$@+82M+j&P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00001b5ch_0Itp)
-z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igV=
-z1`9d5Cza&@00(hNL_t(|+U=WfXdCAp$3Kr`on_%ju at fgtZFi~>&SE>H%ff=}_0PJ6
-z(iU%HfzW{|8H^df*{c!C0yTS)6~Z8|)@)<2u)G;FDPv~sOgF41Z8FCtBRE!Slh#pF
-zJ9Xk(KG}7ZlTW|B at X1_cN%bGev6TGa0n2x%dp_U${d-P#itMHVdjUVN4X6g(6o<uu
-zY2b6<CNKmTnRZlJzTg>6)1E$f at Ze{`U@*FG- at f_Q*4BBy- at i}{^fzzbEW3E|qUY+>
-ztDZ}jE>#T-41CQnjPt;|D-qzO#>U34pEz;i!^Xx&gA%aO(NXRA@#EhZ9UYAT|I8)8
-zi_Oi=wI@%W3{!%3?AWoU;o;$N;H^vo?60Y*dHVF}(;sM>CIEADb4D~8y{GGXA|8(?
-z<MDX17(m at _x5MprJA6K$tE#H1yt1-V127Cjb#-+exO?~RdEg2_neDg(9UUDbPN!2$
-z(`0;neD21L8}r3 at r47SK#$vJLojZ3HfG-1qfTy;$w$kZzN=HY>$f;AO4x|fEzkU05
-zPg`4?Zki_3)6?;AIQ&JaxPCYs{zB6<XLWV8yREHFKYRA<?y0G%df-+{fW0j(Ew at e6
-zWPW}=F*rCFE4BC^92|_bwzfJw9*?V~rR8=g6xwSSpsuN@=@Zj5B^r$yhG9r4Cc$Vl
-zYLu6kmo+st>7h{QaeD|<2Lgc)P19s-Y%FdVMk(?$HZ~Tosj2Y<0)cs}v0D<rT~kw&
-z0GOGXF|&EVxpU_}E;i`HhYvTT{+^kcF##-A_kC3$nM?|RuIpx at CnX}~Kqv4DkecAf
-zz+ZqrD5dV@>s*OMV(DV)x^AX8Q)U++RYD34|CrT{J(;%YTh{ogh`gkfn#fa0yzg_0
-zGm`+4u2=!!_gY<8U5?$J1O`OpMWxhGK0UzBnbiXliA15`zYm-Pyertf4tP&Q4lAYp
-zy-opE=K+N%fg*Ag_#@z2#bI9HEfM*-QtHe)LSSVcAR+|`0TKB%@Y)&=cL9GEktdW=
-z-T4TC6z4JlOw-J32#AOa_>-0C*K4ndh#&ZwQYx{Y5J+(@695o^g at pyl1H2D-6L>C<
-z&h!dUCn7&qO6e;-C<Biav<isG<5s3`E<i4Q4tU?H5TE3=3Z#@-j{qX_O{>Q5Dqt(o
-z4E)#X75=wc0djdj%4OCH{{rwgpmGB`++DzV5jmoidiyIvAZHnLq$wi{3kz9C4){)>
-zcZ1+lRtfZ4=gye}(ip_<1?x(JBBFrb0IxovwT=_`y;UK8rIeC2Cqbvv$!Y|!7Bpvo
-zmp8$p?^VDrB1h8~Qt3P?&P<I^#yXh=z8d&D at YE(+`MwO)ipY<YQq$S$ep(;2`VbJ2
-zCxEws-J5Xv{}gahL|#xzjjbvKQt at M&X0BxSZ7bRB*u?ihc3Wk#T`6 at rohLm{EL8!A
-z!yyibLz2m4#xXQB^gPhN$>CGB1Lzl#AEtApIF|_^B8Uj4X)YV#aJap(vGEMxDWbb!
-z9^lPzINWY$NpWWNfK1lV(C~U%&rmGpXlQ77-OiHk0roN|nUVy+$jHbq>gwvg=k<EE
-z3 at 14RJobP=CxCY{{697_GV;Ei$;P>I0h*he-?2_Gogp#)YZC}Cq?9_EWm|PxAFz4>
-zirgfZ01h5<d+0r2Nr1AlvWG$d8|VE3xLhtC1_5lG%hm!LW%q#J0wG{3ZQC~ByTC7j
-z@(s-aE|+T~LLdP=qm&xRvCn@*q!+lr>V8L9sRv}P0#2t>tOSv3tk>T73i#B5WdL|1
-zk0G!$Y at GKC;BvXdQm2ptTqw}KD;B`U`9S)B&kMBg`g6cTUj|dp29~-2HqJ*L at MtaY
-zC<O8&z}zN)oLj2^`3QjzHh}<Zo`b`#jHS+M8=>E^_*TY)vYXZ%R at 4aDIP>EHN~u{O
-z2>cbevw`4utaApfIjk!Q#)pT8wf+0|8*52|N~zC)pX8HHDHS67D?MvYg5~AqT)A>Z
-zWAVMBB at dYH@9*E at cDtpsvs2{=0cR18rTKSub}F~qE&cudTd;2MrUdx(^5x4r09spH
-zouyjyQ*0LNr}l02Uaz++8jaRPB9X0 at FeNu4k;v9)G+O8Ndb at yny9eBg#bR5!ySukn
-zR8(lC>H!rM6<T+9_x4yUwgtGAzWs>L=j)o7n5frvy~;{JB{OtgubP;csQ3ANUBHn{
-zW$;~H*DHg;V4J3Co~fy+%2K)VQ&Urwnx=Vz!C;%N>y_AEptK7x349cZMC$#1|DnFV
-zzMZqPv)d*oCq3bC*wxe1Q#1>wo}L~@I2?9OPELAeXJ at zd_4V!a`~8O^kw`u8k;S at L
-zZqtt43H$)?IvfsnZEfw1J$v at tZfR-J+uPgqXP<qxDBh(Bg+f|yZ?Es#wQIiX*RSsy
-zA0H1SlgT&`1OAaq0DwI#K5C+X3KnlqJFTXvSiB$!EC42px8c9EdVveT_4^vGEMMRU
-zzC&?65RuE~f%h`4S#q_SE+D|-Q<+;?e15-JN~B at A`wVa!xWVFY63guWs39UNbI3X~
-P00000NkvXXu0mjfw|UFH
-
-diff --git a/themes/core/jar.mn b/themes/core/jar.mn
---- a/themes/core/jar.mn
-+++ b/themes/core/jar.mn
-@@ -124,3 +124,4 @@
- skin/images/task-close-40.png (images/task-close-40.png)
- skin/images/task-back-40.png (images/task-back-40.png)
- skin/images/geo-16.png (images/geo-16.png)
-+ skin/images/home-64.png (images/home-64.png)
--- fullscreen_default.patch
+++ fullscreen_default.patch
-# HG changeset patch
-# User roger.wang at intel.com
-# Date 1274952340 -28800
-# Branch meego
-# Node ID 58a4226965aefb850910b01a4da0d7e26ed6154f
-# Parent 3e3ddc7400c122d42401d299c500566b91bb0a24
-Full scrren mode by default
-
-diff --git a/chrome/content/browser.xul b/chrome/content/browser.xul
---- a/chrome/content/browser.xul
-+++ b/chrome/content/browser.xul
-@@ -59,6 +59,8 @@
- title="&brandShortName;"
- #ifdef MOZ_PLATFORM_MAEMO
- sizemode="fullscreen"
-+#elifdef MOZ_PLATFORM_MEEGO
-+ sizemode="fullscreen"
- #else
- width="800"
- height="500"
--- mailto_tel_proto.patch
+++ mailto_tel_proto.patch
-# HG changeset patch
-# User roger.wang at intel.com
-# Date 1274951042 -28800
-# Branch meego
-# Node ID 7da974f3f519cdb56f00b8f170ecd03f79d50f0f
-# Parent 15b98be453bcc63dc72eb8516563969a877177b7
-enable mailto and tel protocol
-
-diff --git a/app/mobile.js b/app/mobile.js
---- a/app/mobile.js
-+++ b/app/mobile.js
-@@ -463,6 +463,13 @@
- pref("font.default.x-western", "SwissA");
- #endif
-
-+pref("network.protocol-handler.expose.mailto", false);
-+pref("network.protocol-handler.external.mailto", true);
-+
-+pref("network.protocol-handler.expose.tel", false);
-+pref("network.protocol-handler.external.tel", true);
-+
-+
- // See bug 545869 for details on why these are set the way they are
- pref("network.buffer.cache.count", 24);
- pref("network.buffer.cache.size", 16384);
--- meego
+++ meego
+(directory)
--- meego/add_VKB_support.diff
+++ meego/add_VKB_support.diff
+diff --git a/chrome/content/browser-ui.js b/chrome/content/browser-ui.js
+--- a/chrome/content/browser-ui.js
++++ b/chrome/content/browser-ui.js
+@@ -1567,6 +1567,10 @@
+ this._autofillContainer = document.getElementById("form-helper-autofill");
+ this._cmdPrevious = document.getElementById(this.commands.previous);
+ this._cmdNext = document.getElementById(this.commands.next);
++
++ //hack mathod, hard code of virtual keyboard height
++ this._vkbHeight = 280;
++ this._containerHeight = this._container.getBoundingClientRect().height;
+
+ // Listen for form assistant messages from content
+ messageManager.addMessageListener("FormAssist:Show", this);
+@@ -1598,8 +1602,16 @@
+ maxLength: aElement.maxLength,
+ type: aElement.type,
+ isAutocomplete: aElement.isAutocomplete,
+- list: aElement.choices
++ list: aElement.choices,
++ isValidText: aElement.isValidText
+ }
++ //resize the height of container according to vitual keyboard's close and open
++ if (this._currentElement.isValidText) {
++ this._container.setAttribute("height", this._vkbHeight);
++ } else {
++ this._container.setAttribute("height", this._containerHeight);
++ }
++
+ this._updateContainer(lastElement, this._currentElement);
+
+ this._zoom(Rect.fromRect(aElement.rect), Rect.fromRect(aElement.caretRect));
+diff --git a/chrome/content/forms.js b/chrome/content/forms.js
+--- a/chrome/content/forms.js
++++ b/chrome/content/forms.js
+@@ -257,6 +257,12 @@
+ return this._isNavigableElement(aElement) && this._isVisibleElement(aElement);
+ },
+
++ _isValidTextElement: function formHelperIsValidTextElement(aElement) {
++ if (aElement instanceof HTMLTextAreaElement || (aElement instanceof HTMLInputElement && aElement.type == "text"))
++ return this._isValidElement(aElement);
++ return false;
++ },
++
+ _isNavigableElement: function formHelperIsNavigableElement(aElement) {
+ if (aElement.disabled)
+ return false;
+@@ -398,7 +404,8 @@
+ choices: list,
+ isAutocomplete: this._isAutocomplete(this.currentElement),
+ rect: this._getRect(),
+- caretRect: this._getCaretRect()
++ caretRect: this._getCaretRect(),
++ isValidText: this._isValidTextElement(this.currentElement)
+ },
+ hasPrevious: !!this._elements[this._currentIndex - 1],
+ hasNext: !!this._elements[this._currentIndex + 1]
--- meego/autoconnect.diff
+++ meego/autoconnect.diff
+diff --git a/chrome/content/Util.js b/chrome/content/Util.js
+--- a/chrome/content/Util.js
++++ b/chrome/content/Util.js
+@@ -210,6 +210,8 @@
+ forceOnline: function forceOnline() {
+ #ifdef MOZ_ENABLE_LIBCONIC
+ Services.io.offline = false;
++#elifdef MOZ_PLATFORM_MEEGO
++ Services.io.offline = false;
+ #endif
+ },
+
--- meego/copy_NSDISTMODE.diff
+++ meego/copy_NSDISTMODE.diff
+diff --git a/components/Makefile.in b/components/Makefile.in
+--- a/components/Makefile.in
++++ b/components/Makefile.in
+@@ -43,6 +43,8 @@
+
+ include $(DEPTH)/config/autoconf.mk
+
++NSDISTMODE = copy
++
+ MODULE = MobileComponents
+ XPIDL_MODULE = MobileComponents
+
+diff --git a/components/phone/Makefile.in b/components/phone/Makefile.in
+--- a/components/phone/Makefile.in
++++ b/components/phone/Makefile.in
+@@ -43,6 +43,8 @@
+
+ include $(DEPTH)/config/autoconf.mk
+
++NSDISTMODE = copy
++
+ MODULE_NAME = mozphone
+ MODULE = mozphone
+ LIBRARY_NAME = mozphone
--- meego/download_dlg_open.diff
+++ meego/download_dlg_open.diff
+diff --git a/chrome/content/downloads.js b/chrome/content/downloads.js
+--- a/chrome/content/downloads.js
++++ b/chrome/content/downloads.js
+@@ -356,12 +356,25 @@
+ },
+
+ openDownload: function dv_openDownload(aItem) {
+- let f = this._getLocalFile(aItem.getAttribute("file"));
+- try {
+- f.launch();
+- } catch (ex) { }
+
+- // TODO: add back the code for "dontAsk"?
++ let f = aItem.getAttribute("file");
++
++ var exe = Components.classes["@mozilla.org/file/local;1"]
++ .createInstance(Components.interfaces.nsILocalFile);
++ exe.initWithPath("/usr/bin/xdg-open");
++
++ // create an nsIProcess
++ var process = Components.classes["@mozilla.org/process/util;1"]
++ .createInstance(Components.interfaces.nsIProcess);
++ process.init(exe);
++
++ // Run the process.
++ // If first param is true, calling thread will be blocked until
++ // called process terminates.
++
++ var args = [f];
++ process.run(false, args, args.length);
++
+ },
+
+ removeDownload: function dv_removeDownload(aItem) {
--- meego/eng_home_screen_button.diff
+++ meego/eng_home_screen_button.diff
+changeset: 1852:89a1cd5ebea1
+tag: meego/eng_home_screen_button.diff
+user: roger.wang at intel.com
+date: Sun Jun 13 14:14:19 2010 +0800
+summary: add engineering home screen button
+
+diff --git a/chrome/content/browser.xul b/chrome/content/browser.xul
+--- a/chrome/content/browser.xul
++++ b/chrome/content/browser.xul
+@@ -163,6 +163,8 @@
+ <command id="cmd_formNext" oncommand="FormHelperUI.goToNext();"/>
+ <command id="cmd_formClose" oncommand="FormHelperUI.hide();"/>
+
++ <command id="cmd_homescreen" oncommand="window.minimize();"/>
++
+ <!-- find navigation -->
+ <command id="cmd_findPrevious" oncommand="FindHelperUI.goToPrevious();"/>
+ <command id="cmd_findNext" oncommand="FindHelperUI.goToNext();"/>
+@@ -307,6 +309,7 @@
+ <toolbarbutton id="tool-star" class="browser-control-button button-image" command="cmd_star"/>
+ <toolbarbutton id="tool-back" class="browser-control-button button-image" command="cmd_back"/>
+ <toolbarbutton id="tool-forward" class="browser-control-button button-image" command="cmd_forward"/>
++ <toolbarbutton id="tool-homescreen" class="browser-control-button button-image" command="cmd_homescreen"/>
+ <toolbarspring/>
+ <toolbarbutton id="tool-panel-open" class="page-button button-image" command="cmd_panel"/>
+ </vbox>
+diff --git a/themes/core/browser.css b/themes/core/browser.css
+--- a/themes/core/browser.css
++++ b/themes/core/browser.css
+@@ -304,6 +304,14 @@
+ list-style-image: url("chrome://browser/skin/images/bookmark-active-64.png");
+ }
+
++#tool-homescreen {
++ list-style-image: url("chrome://browser/skin/images/home-64.png");
++}
++
++#tool-homescreen:hover:active {
++ list-style-image: url("chrome://browser/skin/images/home-64.png");
++}
++
+ #tool-star[starred="true"] {
+ list-style-image: url("chrome://browser/skin/images/bookmarked-default-64.png");
+ }
+diff --git a/themes/core/jar.mn b/themes/core/jar.mn
+--- a/themes/core/jar.mn
++++ b/themes/core/jar.mn
+@@ -143,3 +143,4 @@
+ skin/images/task-back-40.png (images/task-back-40.png)
+ skin/images/task-back-rtl-40.png (images/task-back-rtl-40.png)
+ skin/images/geo-16.png (images/geo-16.png)
++ skin/images/home-64.png (images/home-64.png)
+diff --git a/themes/core/images/home-64.png b/themes/core/images/home-64.png
+new file mode 100644
+index 0000000000000000000000000000000000000000..ff2fff0e4e14adb0ff9e2c8621d515e51bd80485
+GIT binary patch
+literal 2033
+zc$@+82M+j&P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00001b5ch_0Itp)
+z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igV=
+z1`9d5Cza&@00(hNL_t(|+U=WfXdCAp$3Kr`on_%ju at fgtZFi~>&SE>H%ff=}_0PJ6
+z(iU%HfzW{|8H^df*{c!C0yTS)6~Z8|)@)<2u)G;FDPv~sOgF41Z8FCtBRE!Slh#pF
+zJ9Xk(KG}7ZlTW|B at X1_cN%bGev6TGa0n2x%dp_U${d-P#itMHVdjUVN4X6g(6o<uu
+zY2b6<CNKmTnRZlJzTg>6)1E$f at Ze{`U@*FG- at f_Q*4BBy- at i}{^fzzbEW3E|qUY+>
+ztDZ}jE>#T-41CQnjPt;|D-qzO#>U34pEz;i!^Xx&gA%aO(NXRA@#EhZ9UYAT|I8)8
+zi_Oi=wI@%W3{!%3?AWoU;o;$N;H^vo?60Y*dHVF}(;sM>CIEADb4D~8y{GGXA|8(?
+z<MDX17(m at _x5MprJA6K$tE#H1yt1-V127Cjb#-+exO?~RdEg2_neDg(9UUDbPN!2$
+z(`0;neD21L8}r3 at r47SK#$vJLojZ3HfG-1qfTy;$w$kZzN=HY>$f;AO4x|fEzkU05
+zPg`4?Zki_3)6?;AIQ&JaxPCYs{zB6<XLWV8yREHFKYRA<?y0G%df-+{fW0j(Ew at e6
+zWPW}=F*rCFE4BC^92|_bwzfJw9*?V~rR8=g6xwSSpsuN@=@Zj5B^r$yhG9r4Cc$Vl
+zYLu6kmo+st>7h{QaeD|<2Lgc)P19s-Y%FdVMk(?$HZ~Tosj2Y<0)cs}v0D<rT~kw&
+z0GOGXF|&EVxpU_}E;i`HhYvTT{+^kcF##-A_kC3$nM?|RuIpx at CnX}~Kqv4DkecAf
+zz+ZqrD5dV@>s*OMV(DV)x^AX8Q)U++RYD34|CrT{J(;%YTh{ogh`gkfn#fa0yzg_0
+zGm`+4u2=!!_gY<8U5?$J1O`OpMWxhGK0UzBnbiXliA15`zYm-Pyertf4tP&Q4lAYp
+zy-opE=K+N%fg*Ag_#@z2#bI9HEfM*-QtHe)LSSVcAR+|`0TKB%@Y)&=cL9GEktdW=
+z-T4TC6z4JlOw-J32#AOa_>-0C*K4ndh#&ZwQYx{Y5J+(@695o^g at pyl1H2D-6L>C<
+z&h!dUCn7&qO6e;-C<Biav<isG<5s3`E<i4Q4tU?H5TE3=3Z#@-j{qX_O{>Q5Dqt(o
+z4E)#X75=wc0djdj%4OCH{{rwgpmGB`++DzV5jmoidiyIvAZHnLq$wi{3kz9C4){)>
+zcZ1+lRtfZ4=gye}(ip_<1?x(JBBFrb0IxovwT=_`y;UK8rIeC2Cqbvv$!Y|!7Bpvo
+zmp8$p?^VDrB1h8~Qt3P?&P<I^#yXh=z8d&D at YE(+`MwO)ipY<YQq$S$ep(;2`VbJ2
+zCxEws-J5Xv{}gahL|#xzjjbvKQt at M&X0BxSZ7bRB*u?ihc3Wk#T`6 at rohLm{EL8!A
+z!yyibLz2m4#xXQB^gPhN$>CGB1Lzl#AEtApIF|_^B8Uj4X)YV#aJap(vGEMxDWbb!
+z9^lPzINWY$NpWWNfK1lV(C~U%&rmGpXlQ77-OiHk0roN|nUVy+$jHbq>gwvg=k<EE
+z3 at 14RJobP=CxCY{{697_GV;Ei$;P>I0h*he-?2_Gogp#)YZC}Cq?9_EWm|PxAFz4>
+zirgfZ01h5<d+0r2Nr1AlvWG$d8|VE3xLhtC1_5lG%hm!LW%q#J0wG{3ZQC~ByTC7j
+z@(s-aE|+T~LLdP=qm&xRvCn@*q!+lr>V8L9sRv}P0#2t>tOSv3tk>T73i#B5WdL|1
+zk0G!$Y at GKC;BvXdQm2ptTqw}KD;B`U`9S)B&kMBg`g6cTUj|dp29~-2HqJ*L at MtaY
+zC<O8&z}zN)oLj2^`3QjzHh}<Zo`b`#jHS+M8=>E^_*TY)vYXZ%R at 4aDIP>EHN~u{O
+z2>cbevw`4utaApfIjk!Q#)pT8wf+0|8*52|N~zC)pX8HHDHS67D?MvYg5~AqT)A>Z
+zWAVMBB at dYH@9*E at cDtpsvs2{=0cR18rTKSub}F~qE&cudTd;2MrUdx(^5x4r09spH
+zouyjyQ*0LNr}l02Uaz++8jaRPB9X0 at FeNu4k;v9)G+O8Ndb at yny9eBg#bR5!ySukn
+zR8(lC>H!rM6<T+9_x4yUwgtGAzWs>L=j)o7n5frvy~;{JB{OtgubP;csQ3ANUBHn{
+zW$;~H*DHg;V4J3Co~fy+%2K)VQ&Urwnx=Vz!C;%N>y_AEptK7x349cZMC$#1|DnFV
+zzMZqPv)d*oCq3bC*wxe1Q#1>wo}L~@I2?9OPELAeXJ at zd_4V!a`~8O^kw`u8k;S at L
+zZqtt43H$)?IvfsnZEfw1J$v at tZfR-J+uPgqXP<qxDBh(Bg+f|yZ?Es#wQIiX*RSsy
+zA0H1SlgT&`1OAaq0DwI#K5C+X3KnlqJFTXvSiB$!EC42px8c9EdVveT_4^vGEMMRU
+zzC&?65RuE~f%h`4S#q_SE+D|-Q<+;?e15-JN~B at A`wVa!xWVFY63guWs39UNbI3X~
+P00000NkvXXu0mjfw|UFH
+
--- meego/force_flash_opaque.diff
+++ meego/force_flash_opaque.diff
+diff --git a/app/mobile.js b/app/mobile.js
+--- a/app/mobile.js
++++ b/app/mobile.js
+@@ -318,6 +318,8 @@
+
+ #ifdef MOZ_PLATFORM_MAEMO
+ pref("plugins.force.wmode", "opaque");
++#elifdef MOZ_PLATFORM_MEEGO
++pref("plugins.force.wmode", "opaque");
+ #endif
+
+ // URL to the Learn More link XXX this is the firefox one. Bug 495578 fixes this.
--- meego/fullscreen_default.diff
+++ meego/fullscreen_default.diff
+diff --git a/chrome/content/browser.xul b/chrome/content/browser.xul
+--- a/chrome/content/browser.xul
++++ b/chrome/content/browser.xul
+@@ -62,6 +62,8 @@
+ title="&brandShortName;"
+ #ifdef MOZ_PLATFORM_MAEMO
+ sizemode="fullscreen"
++#elifdef MOZ_PLATFORM_MEEGO
++ sizemode="fullscreen"
+ #else
+ width="800"
+ height="500"
--- meego/mailto_tel_proto.diff
+++ meego/mailto_tel_proto.diff
+diff --git a/app/mobile.js b/app/mobile.js
+--- a/app/mobile.js
++++ b/app/mobile.js
+@@ -474,6 +474,13 @@
+ pref("font.default.x-western", "SwissA");
+ #endif
+
++pref("network.protocol-handler.expose.mailto", false);
++pref("network.protocol-handler.external.mailto", true);
++
++pref("network.protocol-handler.expose.tel", false);
++pref("network.protocol-handler.external.tel", true);
++
++
+ // See bug 545869 for details on why these are set the way they are
+ pref("network.buffer.cache.count", 24);
+ pref("network.buffer.cache.size", 16384);
--- meego/popup_position_meego_theme.diff
+++ meego/popup_position_meego_theme.diff
+diff --git a/chrome/content/browser-ui.js b/chrome/content/browser-ui.js
+--- a/chrome/content/browser-ui.js
++++ b/chrome/content/browser-ui.js
+@@ -336,7 +336,7 @@
+ get toolbarH() {
+ if (!this._toolbarH) {
+ let toolbar = document.getElementById("toolbar-main");
+- this._toolbarH = toolbar.boxObject.height;
++ this._toolbarH = Math.round(toolbar.getBoundingClientRect().height);
+ }
+ return this._toolbarH;
+ },
+@@ -355,6 +355,7 @@
+ },
+
+ sizeControls: function(windowW, windowH) {
++ this._toolbarH = null;
+ // tabs
+ document.getElementById("tabs").resize();
+
--- meego/turnoff_e10s_sync.diff
+++ meego/turnoff_e10s_sync.diff
+diff --git a/app/mobile.js b/app/mobile.js
+--- a/app/mobile.js
++++ b/app/mobile.js
+@@ -42,7 +42,7 @@
+
+ pref("browser.tabs.warnOnClose", true);
+ #ifdef MOZ_IPC
+-pref("browser.tabs.remote", true);
++pref("browser.tabs.remote", false);
+ #else
+ pref("browser.tabs.remote", false);
+ #endif
+diff --git a/chrome/content/browser-ui.js b/chrome/content/browser-ui.js
+--- a/chrome/content/browser-ui.js
++++ b/chrome/content/browser-ui.js
+@@ -428,7 +428,7 @@
+
+ #ifdef MOZ_SERVICES_SYNC
+ // Init the sync system
+- WeaveGlue.init();
++ //WeaveGlue.init();
+ #endif
+ });
+
+diff --git a/confvars.sh b/confvars.sh
+--- a/confvars.sh
++++ b/confvars.sh
+@@ -52,7 +52,7 @@
+
+ MOZ_XUL_APP=1
+ MOZ_ENABLE_LIBXUL=1
+-MOZ_SERVICES_SYNC=1
++MOZ_SERVICES_SYNC=
+ MOZ_NO_XPCOM_OBSOLETE=1
+ if test "$LIBXUL_SDK"; then
+ MOZ_XULRUNNER=1
--- pmo158715_enable-plugins.diff
+++ pmo158715_enable-plugins.diff
+diff --git a/app/mobile.js b/app/mobile.js
+--- a/app/mobile.js
++++ b/app/mobile.js
+@@ -376,9 +376,9 @@
+ pref("browser.ui.touch.weight.visited", 120); // percentage
+
+ // plugins
+-pref("plugin.disable", true);
+-pref("plugin.default_plugin_disabled", true);
+-pref("dom.ipc.plugins.enabled", false);
++pref("plugin.disable", false);
++pref("plugin.default_plugin_disabled", false);
++pref("dom.ipc.plugins.enabled", true);
+
+ // product URLs
+ // The breakpad report server to link to in about:crashes
--- pmo161147_tapandhold_to_flash.diff
+++ pmo161147_tapandhold_to_flash.diff
+diff --git a/chrome/content/content.js b/chrome/content/content.js
+--- a/chrome/content/content.js
++++ b/chrome/content/content.js
+@@ -781,6 +781,20 @@
+
+ let popupNode = aEvent.originalTarget;
+
++ // Check if the element is an embed element (e.g. flash):
++ if (popupNode.tagName == "EMBED") {
++ // Generate a right click mouse event to make possible to show
++ // context menu for plugins:
++ var event = document.createEvent("MouseEvents");
++ event.initMouseEvent("mousedown", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 2, null);
++ popupNode.dispatchEvent(event);
++ event = document.createEvent("MouseEvents");
++ event.initMouseEvent("mouseup", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 2, null);
++ popupNode.dispatchEvent(event);
++ // Let the plugin handle the context menu:
++ return;
++ }
++
+ // Do checks for nodes that never have children.
+ if (popupNode.nodeType == Ci.nsIDOMNode.ELEMENT_NODE) {
+ // See if the user clicked on an image.
--- pmo169118_disable_warn_mailto.diff
+++ pmo169118_disable_warn_mailto.diff
+diff --git a/app/mobile.js b/app/mobile.js
+--- a/app/mobile.js
++++ b/app/mobile.js
+@@ -475,3 +475,7 @@
+ pref("services.sync.client.type", "mobile");
+ pref("services.sync.registerEngines", "Tab,Bookmarks,Form,History,Password");
+ pref("services.sync.autoconnectDelay", 5);
++#ifdef MOZ_PLATFORM_MAEMO
++pref("network.protocol-handler.warn-external.mailto", false);
++#endif
++
--- pmo170282_dynamic_smart_tap_region.diff
+++ pmo170282_dynamic_smart_tap_region.diff
+diff --git a/app/mobile.js b/app/mobile.js
+--- a/app/mobile.js
++++ b/app/mobile.js
+@@ -375,6 +375,13 @@
+ pref("browser.ui.touch.bottom", 4);
+ pref("browser.ui.touch.weight.visited", 120); // percentage
+
++// Touch radius for dynamic smart tap rectangle:
++pref("browser.ui.touch.dyn.left", 8);
++pref("browser.ui.touch.dyn.right", 8);
++pref("browser.ui.touch.dyn.top", 12);
++pref("browser.ui.touch.dyn.bottom", 4);
++pref("browser.ui.touch.dyn.size", 400); //percentage
++
+ // plugins
+ pref("plugin.disable", false);
+ pref("plugin.default_plugin_disabled", false);
--- pmo170528_tab_moving_rtl_V2.diff
+++ pmo170528_tab_moving_rtl_V2.diff
+diff --git a/themes/core/browser.css b/themes/core/browser.css
+--- a/themes/core/browser.css
++++ b/themes/core/browser.css
+@@ -953,14 +953,23 @@
+ }
+
+ /* Left sidebar (tabs) ---------------------------------------------------- */
+-#tabs-container {
++#tabs-container:-moz-locale-dir(ltr) {
+ -moz-padding-start: 4px; /* allow the thumbnails to get close to the edge */
+ -moz-padding-end: 8px; /* core spacing */
+ padding-bottom: 8px; /* core spacing */
+ -moz-border-end: 3px solid #262629;
+ }
+
+-#tabs {
++#tabs-container:-moz-locale-dir(rtl) {
++ -moz-padding-start: 4px; /* allow the thumbnails to get close to the edge */
++ -moz-padding-end: 8px; /* core spacing */
++ -moz-box-align: end;
++ padding-bottom: 8px; /* core spacing */
++ border-right: 3px solid #36373b;
++ max-width: -moz-max-content;
++}
++
++#tabs:-moz-locale-dir(ltr) {
+ display: block;
+ -moz-column-width: 128px;
+ -moz-column-gap: 0;
+@@ -970,9 +979,28 @@
+ background-color: transparent;
+ }
+
+-#tabs-controls {
++#tabs:-moz-locale-dir(rtl) {
++ display: block;
++ max-width: 128px;
++ -moz-column-width: 128px;
++ -moz-column-gap: 0;
++ -moz-user-focus: ignore;
++ margin: 0;
++ padding: 0;
++ background-color: transparent;
++}
++
++#tabs-controls:-moz-locale-dir(ltr) {
+ margin-top: 8px; /* core spacing */
++ -moz-box-pack: end;
++}
++
++#tabs-controls:-moz-locale-dir(rtl) {
++ display: block;
++ max-width: 128px;
++ -moz-column-width: 128px;
+ -moz-box-pack: start;
++ margin-top: 8px; /* core spacing */
+ }
+
+ box[type="documenttab"] {
--- pmo170814_pageFitGranularity.diff
+++ pmo170814_pageFitGranularity.diff
+diff --git a/app/mobile.js b/app/mobile.js
+--- a/app/mobile.js
++++ b/app/mobile.js
+@@ -359,7 +359,7 @@
+ pref("browser.ui.kinetic.swipeLength", 160);
+
+ // zooming
+-pref("browser.ui.zoom.pageFitGranularity", 10); // don't zoom to fit by less than 1/10.
++pref("browser.ui.zoom.pageFitGranularity", 9); // don't zoom to fit by less than 1/10.
+ pref("browser.ui.zoom.animationFps", 60);
+ pref("browser.ui.zoom.animationDuration", 350); // ms duration of double-tap zoom animation
+
--- pmo170950-set_default_action.diff
+++ pmo170950-set_default_action.diff
+diff --git a/components/HelperAppDialog.js b/components/HelperAppDialog.js
+--- a/components/HelperAppDialog.js
++++ b/components/HelperAppDialog.js
+@@ -95,6 +95,8 @@
+ aLauncher.saveToDisk(null, false);
+ }
+ else if (choice == 1) {
++ aLauncher.MIMEInfo.preferredAction =
++ Components.interfaces.nsIMIMEInfo.useSystemDefault;
+ aLauncher.launchWithApplication(null, false);
+ }
+ else {
--- pmo172885_web_page_panning_under_opened_CSM.diff
+++ pmo172885_web_page_panning_under_opened_CSM.diff
+diff --git a/chrome/content/InputHandler.js b/chrome/content/InputHandler.js
+--- a/chrome/content/InputHandler.js
++++ b/chrome/content/InputHandler.js
+@@ -350,6 +350,14 @@
+ if (aEvent.button !== 0 && aEvent.type != "contextmenu")
+ return;
+
++ if (ContextHelper.popupNode) {
++ if (this._clicker)
++ this._clicker.panBegin();
++ if (this._dragger)
++ this._dragger.dragStop(0, 0, this._targetScrollInterface);
++ this.cancelPending();
++ }
++
+ switch (aEvent.type) {
+ case "mousedown":
+ this._onMouseDown(aEvent);
--- pmo173372_snapping_rtl.diff
+++ pmo173372_snapping_rtl.diff
+diff --git a/chrome/content/browser.js b/chrome/content/browser.js
+--- a/chrome/content/browser.js
++++ b/chrome/content/browser.js
+@@ -1008,8 +1008,20 @@
+ if (!dx) dx = 0;
+ if (!dy) dy = 0;
+
+- let leftbarCBR = document.getElementById('tabs-container').getBoundingClientRect();
+- let ritebarCBR = document.getElementById('browser-controls').getBoundingClientRect();
++ let leftbarCBR;
++ let ritebarCBR;
++
++ // Workaround...
++ // in case of rtl the containers are swapped...so we swap them here, too!
++ if( (document.getElementById('tabs-container').getBoundingClientRect().left) > (document.getElementById('browser-controls').getBoundingClientRect().left) ) {
++ // RTL
++ ritebarCBR = document.getElementById('tabs-container').getBoundingClientRect();
++ leftbarCBR = document.getElementById('browser-controls').getBoundingClientRect();
++ } else {
++ // LTR
++ leftbarCBR = document.getElementById('tabs-container').getBoundingClientRect();
++ ritebarCBR = document.getElementById('browser-controls').getBoundingClientRect();
++ }
+
+ if (leftbarCBR.left > ritebarCBR.left)
+ [ritebarCBR, leftbarCBR] = [leftbarCBR, ritebarCBR]; // switch in RTL case
--- pmo174480_consistent_focus_behaviour.diff
+++ pmo174480_consistent_focus_behaviour.diff
+diff --git a/chrome/content/bindings.xml b/chrome/content/bindings.xml
+--- a/chrome/content/bindings.xml
++++ b/chrome/content/bindings.xml
+@@ -37,6 +37,12 @@
+ setTimeout(function() { BrowserUI.activePanel = null }, 0);
+ ]]>
+ </handler>
++ <handler event="blur" phase="capturing">
++ <![CDATA[
++ // suppress disconnect of autocomplete controller
++ this._dontBlur = true;
++ ]]>
++ </handler>
+ <handler event="text" phase="bubbling"
+ action="if (this.mController.input == this) this.mController.handleText();"/>
+ </handlers>
--- pmo174512_rtl_tabs_style.diff
+++ pmo174512_rtl_tabs_style.diff
+diff --git a/chrome/content/tabs.xml b/chrome/content/tabs.xml
+--- a/chrome/content/tabs.xml
++++ b/chrome/content/tabs.xml
+@@ -126,13 +126,23 @@
+ <method name="_updateWidth">
+ <body>
+ <![CDATA[
+- let firstBox = this.firstChild.getBoundingClientRect();
+- let lastBox = this.lastChild.getBoundingClientRect();
+- let columnsCount = Math.ceil(this.childNodes.length / Math.floor(this.style.height / firstBox.height));
+- if (this._columnsCount != columnsCount) {
+- let width = Math.max(lastBox.right - firstBox.left, firstBox.right - lastBox.left);
+- this.style.width = width + "px";
+- this._columnsCount = columnsCount;
++ if ((document.getElementById('tabs-container').getBoundingClientRect().left) > (document.getElementById('browser-controls').getBoundingClientRect().left)) {
++ let controlsWidth = document.getElementById('browser-controls').getBoundingClientRect().width;
++ let completeWidth = controlsWidth + this.lastChild.boxObject.x + 8;
++
++ let boundingBox = this.firstChild.getBoundingClientRect();
++ let columnsCount = Math.ceil(this.childNodes.length / Math.floor(this.style.height / boundingBox.height));
++ if (this._columnsCount != columnsCount) {
++ this.style.width = ( (this.firstChild.boxObject.x - completeWidth) + (2 * boundingBox.width) ) + "px";
++ this._columnsCount = columnsCount;
++ }
++ } else {
++ let boundingBox = this.firstChild.getBoundingClientRect();
++ let columnsCount = Math.ceil(this.childNodes.length / Math.floor(this.style.height / boundingBox.height));
++ if (this._columnsCount != columnsCount) {
++ this.style.width = (this.lastChild.boxObject.x + boundingBox.width) + "px";
++ this._columnsCount = columnsCount;
++ }
+ }
+ ]]>
+ </body>
+diff --git a/themes/core/browser.css b/themes/core/browser.css
+--- a/themes/core/browser.css
++++ b/themes/core/browser.css
+@@ -961,12 +961,15 @@
+ }
+
+ #tabs-container:-moz-locale-dir(rtl) {
++ display: moz-box;
++ -moz-column-width: 128px;
++ -moz-box-align: end;
++ -moz-box-pack: end;
+ -moz-padding-start: 4px; /* allow the thumbnails to get close to the edge */
+ -moz-padding-end: 8px; /* core spacing */
+- -moz-box-align: end;
++ max-width: -moz-max-content;
+ padding-bottom: 8px; /* core spacing */
+- border-right: 3px solid #36373b;
+- max-width: -moz-max-content;
++ border-right: 3px solid #262629;
+ }
+
+ #tabs:-moz-locale-dir(ltr) {
+@@ -981,28 +984,20 @@
+
+ #tabs:-moz-locale-dir(rtl) {
+ display: block;
+- max-width: 128px;
+ -moz-column-width: 128px;
+ -moz-column-gap: 0;
+ -moz-user-focus: ignore;
++ max-width: -moz-max-content;
+ margin: 0;
+ padding: 0;
+ background-color: transparent;
+ }
+
+-#tabs-controls:-moz-locale-dir(ltr) {
++#tabs-controls:{
+ margin-top: 8px; /* core spacing */
+ -moz-box-pack: end;
+ }
+
+-#tabs-controls:-moz-locale-dir(rtl) {
+- display: block;
+- max-width: 128px;
+- -moz-column-width: 128px;
+- -moz-box-pack: start;
+- margin-top: 8px; /* core spacing */
+-}
+-
+ box[type="documenttab"] {
+ /* display:block allow us to change the line-height, it won't work otherwise */
+ display: block;
--- pmo177889_copy_paste_fennec.diff
+++ pmo177889_copy_paste_fennec.diff
+diff --git a/chrome/content/browser-ui.js b/chrome/content/browser-ui.js
+--- a/chrome/content/browser-ui.js
++++ b/chrome/content/browser-ui.js
+@@ -2224,11 +2224,35 @@
+ Browser.addTab(ContextHelper.popupState.linkURL, false, Browser.selectedTab);
+ },
+
++ copyLinkLocation: function cc_copyLinkLocation(aEvent) {
++ messageManager.sendAsyncMessage("Browser:ContextMenuCommandTriggered", {command: "cmd_copyLink", cmd_argument: ContextHelper.popupState.linkURL});
++ },
++
+ saveImage: function cc_saveImage() {
+ let browser = ContextHelper.popupState.target;
+ saveImageURL(ContextHelper.popupState.mediaURL, null, "SaveImageTitle", false, false, browser.documentURI);
+ },
+
++ copyImageLocation: function cc_copyImageLocation() {
++ messageManager.sendAsyncMessage("Browser:ContextMenuCommandTriggered", {command: "cmd_copyImageLocation", cmd_argument: ContextHelper.popupState.mediaURL});
++ },
++
++ copyImageContents: function cc_copyImageContents() {
++ messageManager.sendAsyncMessage("Browser:ContextMenuCommandTriggered", {command: "cmd_copyImageContents"});
++ },
++
++ copy: function cc_copy() {
++ messageManager.sendAsyncMessage("Browser:ContextMenuCommandTriggered", {command: "cmd_copy"});
++ },
++
++ cut: function cc_cut() {
++ messageManager.sendAsyncMessage("Browser:ContextMenuCommandTriggered", {command: "cmd_cut"});
++ },
++
++ paste: function cc_paste() {
++ messageManager.sendAsyncMessage("Browser:ContextMenuCommandTriggered", {command: "cmd_paste"});
++ },
++
+ shareLink: function cc_shareLink() {
+ let state = ContextHelper.popupState;
+ SharingUI.show(state.linkURL, state.linkTitle);
+diff --git a/chrome/content/browser.xul b/chrome/content/browser.xul
+--- a/chrome/content/browser.xul
++++ b/chrome/content/browser.xul
+@@ -554,9 +554,27 @@
+ <richlistitem class="context-command" id="context-openinnewtab" type="link-saveable" onclick="ContextCommands.openInNewTab();">
+ <label value="&contextOpenInNewTab.label;"/>
+ </richlistitem>
++ <richlistitem class="context-command" id="context-copylinklocation" type="link-saveable" onclick="ContextCommands.copyLinkLocation();">
++ <label value="©link.label;"/>
++ </richlistitem>
+ <richlistitem class="context-command" id="context-saveimage" type="image-loaded" onclick="ContextCommands.saveImage();">
+ <label value="&contextSaveImage.label;"/>
+ </richlistitem>
++ <richlistitem class="context-command" id="context-copyimagelocation" type="image-loaded" onclick="ContextCommands.copyImageLocation();">
++ <label value="&contextCopyImageLocation.label;"/>
++ </richlistitem>
++ <richlistitem class="context-command" id="context-copyimagecontents" type="image-loaded" onclick="ContextCommands.copyImageContents();">
++ <label value="&contextCopyImage.label;"/>
++ </richlistitem>
++ <richlistitem class="context-command" id="context-copy" type="content-copyable" onclick="ContextCommands.copy();">
++ <label value="©.label;"/>
++ </richlistitem>
++ <richlistitem class="context-command" id="context-cut" type="content-cuttable" onclick="ContextCommands.cut();">
++ <label value="&cut.label;"/>
++ </richlistitem>
++ <richlistitem class="context-command" id="context-paste" type="content-pasteable" onclick="ContextCommands.paste();">
++ <label value="&paste.label;"/>
++ </richlistitem>
+ <richlistitem class="context-command" id="context-share-link" type="link-shareable" onclick="ContextCommands.shareLink();">
+ <label value="&contextShareLink.label;"/>
+ </richlistitem>
+diff --git a/chrome/content/content.js b/chrome/content/content.js
+--- a/chrome/content/content.js
++++ b/chrome/content/content.js
+@@ -805,6 +805,14 @@
+ }
+ }
+
++ let clipboardCommands = docShell.getInterface(Ci.nsIClipboardCommands);
++ if(clipboardCommands.canCopySelection())
++ state.types.push("content-copyable");
++ if(clipboardCommands.canCutSelection() && popupNode.isContentEditable)
++ state.types.push("content-cuttable");
++ if(clipboardCommands.canPaste() && popupNode.isContentEditable)
++ state.types.push("content-pasteable");
++
+ let elem = popupNode;
+ while (elem) {
+ if (elem.nodeType == Ci.nsIDOMNode.ELEMENT_NODE) {
+@@ -830,6 +838,7 @@
+ if (this._types[i].handler(state, popupNode))
+ state.types.push(this._types[i].name);
+
++ addMessageListener("Browser:ContextMenuCommandTriggered", this);
+ sendAsyncMessage("Browser:ContextMenu", state);
+ },
+
+@@ -843,6 +852,39 @@
+ */
+ registerType: function registerType(aName, aHandler) {
+ this._types.push({name: aName, handler: aHandler});
++ },
++
++ receiveMessage: function ch_receiveMessage(aMessage) {
++ if(aMessage.name == "Browser:ContextMenuCommandTriggered") {
++ removeMessageListener("Browser:ContextMenuCommandTriggered", this);
++ var json = aMessage.json;
++
++ let clipboardCommands = docShell.getInterface(Ci.nsIClipboardCommands);
++ switch(json.command) {
++ case "cmd_copy":
++ clipboardCommands.copySelection();
++ break;
++ case "cmd_cut":
++ clipboardCommands.cutSelection();
++ break;
++ case "cmd_paste":
++ clipboardCommands.paste();
++ break;
++ case "cmd_copyLink":
++ case "cmd_copyImageLocation":
++ // Work around, as clipboardCommands.copyLinkLocation() & clipboardCommands.copyImageLocation() fail with debug messages:
++ // WARNING: NS_ENSURE_TRUE(node) failed: file build-tree/mozilla/layout/base/nsDocumentViewer.cpp, line 2552
++ // WARNING: NS_ENSURE_TRUE(node) failed: file build-tree/mozilla/layout/base/nsDocumentViewer.cpp, line 2571
++ const gClipboardHelper = Cc["@mozilla.org/widget/clipboardhelper;1"].getService(Ci.nsIClipboardHelper);
++ gClipboardHelper.copyString(json.cmd_argument);
++ break;
++ case "cmd_copyImageContents":
++ clipboardCommands.copyImageContents();
++ break;
++ default:
++ break;
++ }
++ }
+ }
+ };
+
+diff --git a/locales/en-US/chrome/browser.dtd b/locales/en-US/chrome/browser.dtd
+--- a/locales/en-US/chrome/browser.dtd
++++ b/locales/en-US/chrome/browser.dtd
+@@ -88,6 +88,8 @@
+
+ <!ENTITY contextOpenInNewTab.label "Open Link in New Tab">
+ <!ENTITY contextSaveImage.label "Save Image">
++<!ENTITY contextCopyImageLocation.label "Copy Image Location">
++<!ENTITY contextCopyImage.label "Copy Image">
+ <!ENTITY contextShareLink.label "Share Link">
+ <!ENTITY contextShareImage.label "Share Image">
+ <!ENTITY contextEditBookmark.label "Edit">
--- pmo179255_panning.diff
+++ pmo179255_panning.diff
+diff --git a/chrome/content/InputHandler.js b/chrome/content/InputHandler.js
+--- a/chrome/content/InputHandler.js
++++ b/chrome/content/InputHandler.js
+@@ -120,6 +120,9 @@
+
+ /* when set to true, next click won't be dispatched */
+ this._suppressNextClick = false;
++
++ /* content kinetic scrolling state */
++ this._kineticRunning = false;
+
+ /* these handle dragging of both chrome elements and content */
+ window.addEventListener("mousedown", this, true);
+@@ -422,6 +425,13 @@
+ * We grab() in here.
+ */
+ _onMouseDown: function _onMouseDown(aEvent) {
++ // stop kinetic panning if screen is tapped
++ if (this._kinetic.isActive()) {
++ this._kinetic.end();
++ this._owner._kineticRunning = true;
++ }
++ else this._owner._kineticRunning = false;
++
+ this._owner.allowClicks();
+
+ let dragData = this._dragData;
+@@ -449,7 +459,7 @@
+ : null;
+ this._clicker = (targetClicker) ? targetClicker.customClicker : null;
+
+- if (this._clicker)
++ if (this._clicker && !this._owner._kineticRunning)
+ this._clicker.mouseDown(aEvent.clientX, aEvent.clientY);
+
+ if (targetScrollInterface && this._dragger.isDraggable(targetScrollbox, targetScrollInterface))
+@@ -516,7 +526,7 @@
+ }
+
+ let clicker = this._clicker;
+- if (clicker) {
++ if (clicker && !this._owner._kineticRunning) {
+ // Let clicker know when mousemove begins a pan
+ if (!oldIsPan && dragData.isPan())
+ clicker.panBegin();
+diff --git a/chrome/content/browser.js b/chrome/content/browser.js
+--- a/chrome/content/browser.js
++++ b/chrome/content/browser.js
+@@ -1632,7 +1632,7 @@
+ TapHighlightHelper.hide();
+
+ // Cancel the mouse click if we are showing a context menu
+- if (!ContextHelper.popupState)
++ if (!ContextHelper.popupState && !ih._kineticRunning)
+ this._dispatchMouseEvent("Browser:MouseUp", aX, aY, aModifiers);
+ this._dispatchMouseEvent("Browser:MouseCancel");
+ },
--- popup_position_meego_theme.patch
+++ popup_position_meego_theme.patch
-# HG changeset patch
-# User roger.wang at intel.com
-# Date 1277824800 -28800
-# Branch meego
-# Node ID 510033d11a19100c2542adbf1d9c674d794ec709
-# Parent 70123ef8defa452561fe956fa838e6391f9904b3
-fix popup top position for meego theme
-
-diff --git a/chrome/content/browser-ui.js b/chrome/content/browser-ui.js
---- a/chrome/content/browser-ui.js
-+++ b/chrome/content/browser-ui.js
-@@ -311,7 +311,7 @@
- get toolbarH() {
- if (!this._toolbarH) {
- let toolbar = document.getElementById("toolbar-main");
-- this._toolbarH = toolbar.boxObject.height;
-+ this._toolbarH = Math.round(toolbar.getBoundingClientRect().height);
- }
- return this._toolbarH;
- },
-@@ -330,6 +330,7 @@
- },
-
- sizeControls: function(windowW, windowH) {
-+ this._toolbarH = null;
- // tabs
- document.getElementById("tabs").resize();
-
--- series
+++ series
@@ -1,11 +1,23 @@
-enable_plugin_force_windowless_flash.patch
-mailto_tel_proto.patch
-autoconnect.patch
-copy_NSDISTMODE.patch
-fullscreen_default.patch
-correct_plugin_options_ipc.patch
-eng_home_screen_button.patch
-popup_position_meego_theme.patch
-download_dlg_open.patch
-turnoff_e10s_sync.diff
-add_VKB_support.diff
+pmo158715_enable-plugins.diff
+pmo161147_tapandhold_to_flash.diff
+pmo169118_disable_warn_mailto.diff
+pmo170282_dynamic_smart_tap_region.diff
+pmo170814_pageFitGranularity.diff
+pmo173372_snapping_rtl.diff
+pmo172885_web_page_panning_under_opened_CSM.diff
+pmo170528_tab_moving_rtl_V2.diff
+pmo170950-set_default_action.diff
+pmo174480_consistent_focus_behaviour.diff
+pmo174512_rtl_tabs_style.diff
+pmo177889_copy_paste_fennec.diff
+pmo179255_panning.diff
+meego/mailto_tel_proto.diff
+meego/autoconnect.diff
+meego/copy_NSDISTMODE.diff
+meego/fullscreen_default.diff
+meego/eng_home_screen_button.diff
+meego/popup_position_meego_theme.diff
+meego/download_dlg_open.diff
+meego/turnoff_e10s_sync.diff
+meego/force_flash_opaque.diff
+meego/add_VKB_support.diff
--- turnoff_e10s_sync.diff
+++ turnoff_e10s_sync.diff
-# HG changeset patch
-# Parent c8b6ebbb7f4b42498f1c18312f8f799b1dcc7b7e
-
-diff --git a/app/mobile.js b/app/mobile.js
---- a/app/mobile.js
-+++ b/app/mobile.js
-@@ -42,7 +42,7 @@
-
- pref("browser.tabs.warnOnClose", true);
- #ifdef MOZ_IPC
--pref("browser.tabs.remote", true);
-+pref("browser.tabs.remote", false);
- #else
- pref("browser.tabs.remote", false);
- #endif
-diff --git a/chrome/content/browser-ui.js b/chrome/content/browser-ui.js
---- a/chrome/content/browser-ui.js
-+++ b/chrome/content/browser-ui.js
-@@ -396,7 +396,7 @@
- ConsoleView.init();
-
- // Init the sync system
-- WeaveGlue.init();
-+ //WeaveGlue.init();
- });
-
- FormHelperUI.init();
-diff --git a/confvars.sh b/confvars.sh
---- a/confvars.sh
-+++ b/confvars.sh
-@@ -52,7 +52,7 @@
-
- MOZ_XUL_APP=1
- MOZ_ENABLE_LIBXUL=1
--MOZ_SERVICES_SYNC=1
-+MOZ_SERVICES_SYNC=
- MOZ_NO_XPCOM_OBSOLETE=1
- if test "$LIBXUL_SDK"; then
- MOZ_XULRUNNER=1
++++++ platform-patches.tar.gz
26101 lines of diff (skipped)
++++++ deleted files:
--- fennec-tip-91da083f3478-af67cbcea09d.tar.bz2
More information about the MeeGo-commits
mailing list