OtterBrowser / otter-browser

Otter Browser aims to recreate the best aspects of the classic Opera (12.x) UI using Qt5
https://otter-browser.org
GNU General Public License v3.0
1.8k stars 277 forks source link

Some Otter issues (Latest commit 2020-04-02 745b1da) #1639

Open domr2695 opened 4 years ago

domr2695 commented 4 years ago

Debian Linux 10.3-64 Some Otter issues (Latest commit 2020-04-02 745b1da)

Batch build

You need to install packages for the build:

cmake qtbase5-dev - Qt 5 base development files qtdeclarative5-dev - Qt 5 declarative development files qtmultimedia5-dev - APIs for multimedia functionality - development files qtwebengine5-dev - Web content engine library for Qt - development files qt5-default - Qt 5 development defaults package libqt5core5a - Qt 5 core module libqt5dbus5 - Qt 5 D-Bus module libqt5gui5 - Qt 5 GUI module libqt5network5 - Qt 5 network module libqt5positioning5 - Qt Positioning module libqt5printsupport5 - Qt 5 print support module libqt5qml5 - Qt 5 QML module libqt5quick5 - Qt 5 Quick library libqt5svg5-dev - Qt 5 SVG module development files libqt5webchannel5-dev - Web communication library for Qt - development files libqt5webenginecore5 - Web content engine library for Qt — Core libqt5webenginewidgets5 - Web content engine library for Qt — Widget libqt5webkit5-dev - Web content engine library for Qt - development files libqt5widgets5 - Qt 5 widgets module libhunspell-dev - spell checker and morphological analysis (the header files)

Install:

Enter in to the folder where all files downloaded from git are installed. mkdir build cd build If you need to re-build, just clear the "build" folder. cmake ../ You need to carefully look at the cmake messages to see if everything is installed for the build. make -j$(nproc) — the build speeds up several times compared to just "make" (I have 5 times) sudo make install

Installation via "make-j$(nprocs)" takes me 1:16 min.

Build in Qt Creator

The "Welcome" button should be active in the left column of the Qt Creator window, the "Project" button should be active in the middle column, and the "Open"button should be pressed in the right part of the Session window. Go to the Otter-Browser source code folder and select the file "CmakeLists.txt».

Qt Creator creates a project from " CmakeLists.txt" and checks it every time the project is opened. When the project is opened, cmake messages are displayed in the "6 General Messages" window. They indicate that there are no problems or yes before the build and that all the necessary packages are available or not.

The build using "Qt Creator" takes me 7:10 min on one processor.

To use the maximum number of processors on your computer, in the left frame of Qt Creator Window press "Projects" button. In the right frame of Window - "Build Setting" click "Details" button of "Build Steps" plate to open the "Tool Aruments" line, in which to specify "-j$(nproc)". However, you can select any fewer processors by specifying, for example, 2 processors: -j2. And in the "Targets" plate below, select the desired target, if necessary. In this case, it is formed in the line above (if target=all is selected):

  cmake --build . --target=all -- -j$(nproc)

Then the build takes place in 1:59 min. Apparently the Gui takes its toll. -- after --target=all means the end of the extended parameters (those that start with -- ) and then the old format parameters starting with a single -, type-j$(nproc), which are passed to the selected program of the "make" type (this is clear from https://habr.com/en/post/330902/ in Russian. Those who wish can find something similar in another language).

You can view the order of parameters in Linux in the terminal window by typing:

      man 1 getopt
      man getopt_long 1
      man getopts 1posix

Solve problems

In «/src/modules/backends/web/qtwebkit/» in «QtWebEngineWebBackend.cpp»:

• In"QtWebKitBookmarksImportJob::start ()" in the line: page.mainFrame()->setHtml(QString:: fromLatin1(file.readAll())); replaced "fromLatin1" with "fromUtf8". Bookmarks were immediately imported correctly in local encoding.

• In the "/cmake" folder in the file "FindHunspell.cmake" "HUNSPELL" replaced with "Hunspell", otherwise a warning is issued:

CMake Warning (dev) at /usr/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:272 (message): The package name passed to find_package_handle_standard_args (HUNSPELL) does not match the name of the calling package (Hunspell). This can lead to problems in calling code that expects find_package result variables (e.g., _FOUND) to follow a certain pattern. Call Stack (most recent call first): cmake/FindHunspell.cmake:20 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:78 (find_package) This warning is for project developers. Use -Wno-dev to suppress it. -- Found HUNSPELL: /usr/lib/x86_64-linux-gnu/libhunspell-1.7.so

• In «./otter-browser/CmakeLists.txt" you can add any text to the browser version so that it appears in the "Help→About Otter" window after "Otter 1.0.81 weekly", replacing set(WEEKLY_VERSION "" CACHE STRING "") for example on set(WEEKLY_VERSION "- 2020-03-28 00:41 c3b1912")

• You can build a program using the C++ 17 standard by replacing set(CMAKE_CXX_STANDARD 11) to set(CMAKE_CXX_STANDARD 17) Using set(CMAKE_CXX_STANDARD 20) produces a lot of warnings.

Problems

  1. A file from 58,000 rows of HTML bookmarks is imported from Firefox. But after 19660, a lines in the input bookmark file are not imported and nothing is reported. You need to split it into 3 files of no more than 56 KB each and import each file separately. Then move the tab folders to the desired locations.
  2. It's probably time to make a full transition from "WebKit"to "WebEngine", because "WebKit" has already been declared obsolete by" The Qt Company Ltd " and since version Qt 4.8, there is no description of WebKit classes in the Qt documentation. Although there are libraries:
       libqt5webkit5 - Web content engine library for Qt
       libqt5webkit5-dev - Web content engine library for Qt - development files
       And there is the source text:
       qtwebkit-opensource-src_5.212.0~alpha4.orig.tar.xz
       qtwebkit-opensource-src_5.212.0~alpha4-1.debian.tar.xz
       At least in Debian.
  3. When viewing the site "https://zen.yandex.ru/" Otter then hangs when closing bookmarks of this site, then not-every other time (and it is from a group of sites "https://www.yandex.ru"). Otter hangs and if it is on any page of this site for 30 seconds. Otter hangs if a stack of video files appears and a black bar appears on top of the stack with a frozen open ring. Firefox works fine with this site.

What I would like in the first place:

  1. To remember the path of the previous import and the next import it started with this path.

  2. To make the "Shift to previous bookmark" and "Shift to next bookmark" buttons appear in the bookmark bar to the right and left of it (as in Firefox) if the number of bookmarks exceeds the screen width. This is necessary if there are many bookmarks. And now in Otter, they just shrink in width, which is inconvenient.

  3. When you click on the menu, a strange bar opens with a list of bookmarks. But with a large number of bookmarks, it is inconvenient to work with it. It is better not to issue it, but to process it like the other menu buttons.

  4. File→ " Import and Export "should be divided into two separate menu items:" Import "and"Export". Functionally, these are different groups of actions.