#include "chrome/browser/ui/views/frame/toolbar_button_provider.h"
#include "chrome/browser/ui/views/profiles/avatar_toolbar_button.h"
#include "chrome/browser/ui/views/profiles/avatar_toolbar_button_delegate.h"
+#include "chrome/common/chrome_switches.h"
#include <sys/stat.h>
#include <fstream>
+#include "base/command_line.h"
#include "base/logging.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/ui/browser_window.h"
samsung_browser_controller::SamsungWebContentsController>();
m_web_contents_controller->Init();
+ const base::CommandLine* command_line =
+ base::CommandLine::ForCurrentProcess();
bool handoffEnabled = g_browser_process->local_state()->GetBoolean(
browser_config::prefs::kMcfEnabled);
m_mcf_manager_ = std::make_unique<samsung_browser_fw_core::MCFManager>();
m_mcf_controller_ =
std::make_unique<samsung_browser_controller::MCFController>(browser_);
- if (handoffEnabled) {
+ if (handoffEnabled && !command_line->HasSwitch(switches::kBrowserLite)) {
m_mcf_controller_->Init();
m_mcf_manager_->Init();
}
const char kUserDataMigrated[] = "user-data-migrated";
#endif
+#if defined(SAMSUNG_NEXT_BROWSER)
+const char kBrowserLite[] = "browser-lite";
+#endif
+
// -----------------------------------------------------------------------------
// DO NOT ADD YOUR VERY NICE FLAGS TO THE BOTTOM OF THIS FILE.
//
extern const char kUserDataMigrated[];
#endif
+#if defined(SAMSUNG_NEXT_BROWSER)
+extern const char kBrowserLite[];
+#endif
+
// DON'T ADD RANDOM STUFF HERE. Put it in the main section above in
// alphabetical order, or in one of the ifdefs (also in order in each section).
# found in the LICENSE file.
import("//build/config/features.gni")
+import("//tizen_src/build/config/tizen_features.gni")
assert(use_blink, "Desktop zoom is not used on non blink platforms.")
"zoom_observer.h",
]
+ if(is_samsung_next_browser) {
+ sources += [
+ "zoom_switches.h",
+ "zoom_switches.cc",
+ ]
+ }
+
deps = [
"//base",
"//components/prefs",
#include "net/base/url_util.h"
#include "third_party/blink/public/common/page/page_zoom.h"
+#if defined(SAMSUNG_NEXT_BROWSER)
+#include "base/command_line.h"
+#include "components/zoom/zoom_switches.h"
+#endif // SAMSUNG_NEXT_BROWSER
+
using content::BrowserThread;
namespace zoom {
browser_context_(web_contents->GetBrowserContext()) {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
host_zoom_map_ = content::HostZoomMap::GetForWebContents(web_contents);
+
+#if defined(SAMSUNG_NEXT_BROWSER)
+ bool is_browser_lite =
+ base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kBrowserLite);
+
+ if (is_browser_lite)
+ host_zoom_map_->SetDefaultZoomLevel(
+ blink::PageZoomFactorToZoomLevel(2 / 3.0));
+#endif // SAMSUNG_NEXT_BROWSER
+
zoom_level_ = host_zoom_map_->GetDefaultZoomLevel();
zoom_subscription_ =
int ZoomController::GetZoomPercent() const {
DCHECK_CURRENTLY_ON(BrowserThread::UI);
double zoom_factor = blink::PageZoomLevelToZoomFactor(GetZoomLevel());
+#if defined(SAMSUNG_NEXT_BROWSER)
+ bool is_browser_lite =
+ base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kBrowserLite);
+ if (is_browser_lite) {
+ return static_cast<int>(zoom_factor * 150 + 0.5);
+ }
+#endif // SAMSUNG_NEXT_BROWSER
// Round double for return.
return static_cast<int>(zoom_factor * 100 + 0.5);
}
--- /dev/null
+// Copyright 2013 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/zoom/zoom_switches.h"
+
+#include "build/build_config.h"
+
+namespace zoom {
+namespace switches {
+
+// Switch used for enabling browserlite features
+const char kBrowserLite[] = "browser-lite";
+
+} // namespace switches
+} // namespace zoom
--- /dev/null
+// Copyright 2013 The Chromium Authors
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_ZOOM_ZOOM_SWITCHES_H_
+#define COMPONENTS_ZOOM_ZOOM_SWITCHES_H_
+
+#include "build/build_config.h"
+
+namespace zoom {
+namespace switches {
+
+// All switches in alphabetical order. The switches should be documented
+// alongside the definition of their values in the .cc file.
+
+extern const char kBrowserLite[];
+
+} // namespace switches
+} // namespace zoom
+
+#endif // COMPONENTS_ZOOM_ZOOM_SWITCHES_H_
<ui-application appid="@PACKAGE_ID@" exec="next_browser" nodisplay="false" process-pool="true" multiple="false" type="capp" taskmanage="true">
<label>NextBrowser</label>
<description>WebBrowser for Samsung Smart TV</description>
+ <metadata key="http://tizen.org/metadata/app_ui_type/base_screen_resolution" value="max,hd"/>
</ui-application>
<privileges>
<privilege>http://tizen.org/privilege/filesystem.read</privilege>
#include "browser_app_interface.h"
#include <appfw/app.h>
+#include <capi-system-info/system_info.h>
#include <cstring>
#include <map>
#include <string>
}
};
-void getDefaultArguments(std::vector<std::string>& defaultArgumentsList) {
+enum class DDR_MEMORY_SIZE {
+ DDR_1_25G,
+ DDR_1_5G,
+ DDR_2G,
+ DDR_2_5G,
+ DDR_3G,
+ DDR_1G,
+ DDR_5G,
+ DDR_4_5G,
+ DDR_3_5G,
+ DDR_4G,
+ DDR_6G
+};
+
+int GetDDRInfo(bool* returnCode) {
+ int value = 0;
+ if (system_info_get_custom_int("com.samsung/featureconf/ddr_memory_size",
+ &value) != SYSTEM_INFO_ERROR_NONE) {
+ LOG(INFO) << ("Failed to get ddr value");
+ if (returnCode) {
+ (*returnCode) = false;
+ }
+ return -1;
+ }
+ LOG(INFO) << "DDR value = " << value;
+ if (returnCode) {
+ (*returnCode) = true;
+ }
+ return value;
+}
+
+void passDefaultArguments(std::vector<std::string>& defaultArgumentsList) {
defaultArgumentsList.push_back(
"/opt/usr/apps/org.tizen.next-browser/bin/next_browser");
defaultArgumentsList.push_back("--ignore-gpu-blocklist");
defaultArgumentsList.push_back("--ozone-platform=efl");
defaultArgumentsList.push_back("--in-process-gpu");
- defaultArgumentsList.push_back("--window-size=1920,1080");
defaultArgumentsList.push_back("--enable-logging=stderr");
defaultArgumentsList.push_back("--no-sandbox");
defaultArgumentsList.push_back("--use-internal-popup-menu=true");
defaultArgumentsList.push_back("--disable-site-isolation-trials");
defaultArgumentsList.push_back("--single-renderer-process");
defaultArgumentsList.push_back("--widget-id=org.tizen.next-browser");
+}
+
+void passBrowserLiteArguments(std::vector<std::string>& defaultArgumentsList) {
+ defaultArgumentsList.push_back("--window-size=1280,720");
+ defaultArgumentsList.push_back(
+ "--user-agent=Mozilla/5.0 (SMART-TV; Linux; Tizen 8.0) "
+ "AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/7.0 "
+ "Chrome/120.0.0.0 Mobile Safari/537.36");
+ defaultArgumentsList.push_back("--browser-lite");
+}
+
+void passNextBrowserArguments(std::vector<std::string>& defaultArgumentsList) {
+ defaultArgumentsList.push_back("--window-size=1920,1080");
defaultArgumentsList.push_back(
"--user-agent=Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, "
"like Gecko) SamsungBrowser/1.0 Chrome/120.0.0.0 Safari/537.36");
} else
browser_window_shown = true;
std::vector<std::string> argumentsList;
- getDefaultArguments(argumentsList);
+ passDefaultArguments(argumentsList);
+
+ bool is_browser_lite = false;
+ bool error = false;
+ DDR_MEMORY_SIZE DDRMemory = static_cast<DDR_MEMORY_SIZE>(GetDDRInfo(&error));
+
+ if (DDRMemory == DDR_MEMORY_SIZE::DDR_1G)
+ is_browser_lite = true;
+
+ if (is_browser_lite) {
+ passBrowserLiteArguments(argumentsList);
+ } else {
+ passNextBrowserArguments(argumentsList);
+ }
if (!checker.chromiumArguments.empty()) {
parseChromiumArguments(checker.chromiumArguments, argumentsList);