From 5e004b4c24f080e2b65f2192980b22452c10068e Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 2 Sep 2015 14:22:50 +0800 Subject: [PATCH 1/5] Upgrade to Chrome 45 --- brightray/vendor/libchromiumcontent | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/brightray/vendor/libchromiumcontent b/brightray/vendor/libchromiumcontent index cf133b8ebf..10d2bfe683 160000 --- a/brightray/vendor/libchromiumcontent +++ b/brightray/vendor/libchromiumcontent @@ -1 +1 @@ -Subproject commit cf133b8ebfeb3579032d3092351c801a3112aa7c +Subproject commit 10d2bfe683038c79d76d5facd3771da535c9329b From 38a211db2eadbd79e3c831742d7b76afa4831d79 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 2 Sep 2015 15:16:34 +0800 Subject: [PATCH 2/5] Fix API changes --- brightray/browser/devtools_ui.cc | 14 +++++++------- brightray/browser/inspectable_web_contents_impl.cc | 8 ++++---- brightray/browser/inspectable_web_contents_impl.h | 2 +- brightray/browser/network_delegate.cc | 5 ----- brightray/browser/network_delegate.h | 1 - brightray/browser/permission_manager.cc | 4 ++-- brightray/browser/permission_manager.h | 4 ++-- brightray/browser/url_request_context_getter.cc | 5 +++-- 8 files changed, 19 insertions(+), 24 deletions(-) diff --git a/brightray/browser/devtools_ui.cc b/brightray/browser/devtools_ui.cc index 8f8ded3b76..2e08a32d8f 100644 --- a/brightray/browser/devtools_ui.cc +++ b/brightray/browser/devtools_ui.cc @@ -29,19 +29,19 @@ std::string PathWithoutParams(const std::string& path) { std::string GetMimeTypeForPath(const std::string& path) { std::string filename = PathWithoutParams(path); - if (EndsWith(filename, ".html", false)) { + if (base::EndsWith(filename, ".html", false)) { return "text/html"; - } else if (EndsWith(filename, ".css", false)) { + } else if (base::EndsWith(filename, ".css", false)) { return "text/css"; - } else if (EndsWith(filename, ".js", false)) { + } else if (base::EndsWith(filename, ".js", false)) { return "application/javascript"; - } else if (EndsWith(filename, ".png", false)) { + } else if (base::EndsWith(filename, ".png", false)) { return "image/png"; - } else if (EndsWith(filename, ".gif", false)) { + } else if (base::EndsWith(filename, ".gif", false)) { return "image/gif"; - } else if (EndsWith(filename, ".svg", false)) { + } else if (base::EndsWith(filename, ".svg", false)) { return "image/svg+xml"; - } else if (EndsWith(filename, ".manifest", false)) { + } else if (base::EndsWith(filename, ".manifest", false)) { return "text/cache-manifest"; } return "text/html"; diff --git a/brightray/browser/inspectable_web_contents_impl.cc b/brightray/browser/inspectable_web_contents_impl.cc index 1aa442f09d..59647b9a7f 100644 --- a/brightray/browser/inspectable_web_contents_impl.cc +++ b/brightray/browser/inspectable_web_contents_impl.cc @@ -282,13 +282,13 @@ void InspectableWebContentsImpl::CallClientFunction(const std::string& function_ std::string javascript = function_name + "("; if (arg1) { std::string json; - base::JSONWriter::Write(arg1, &json); + base::JSONWriter::Write(*arg1, &json); javascript.append(json); if (arg2) { - base::JSONWriter::Write(arg2, &json); + base::JSONWriter::Write(*arg2, &json); javascript.append(", ").append(json); if (arg3) { - base::JSONWriter::Write(arg3, &json); + base::JSONWriter::Write(*arg3, &json); javascript.append(", ").append(json); } } @@ -586,7 +586,7 @@ bool InspectableWebContentsImpl::ShouldCreateWebContents( int route_id, int main_frame_route_id, WindowContainerType window_container_type, - const base::string16& frame_name, + const std::string& frame_name, const GURL& target_url, const std::string& partition_id, content::SessionStorageNamespace* session_storage_namespace) { diff --git a/brightray/browser/inspectable_web_contents_impl.h b/brightray/browser/inspectable_web_contents_impl.h index 62cfffec4f..9b985bbc6c 100644 --- a/brightray/browser/inspectable_web_contents_impl.h +++ b/brightray/browser/inspectable_web_contents_impl.h @@ -143,7 +143,7 @@ class InspectableWebContentsImpl : int route_id, int main_frame_route_id, WindowContainerType window_container_type, - const base::string16& frame_name, + const std::string& frame_name, const GURL& target_url, const std::string& partition_id, content::SessionStorageNamespace* session_storage_namespace) override; diff --git a/brightray/browser/network_delegate.cc b/brightray/browser/network_delegate.cc index 373b5819a7..dbaeeeed3e 100644 --- a/brightray/browser/network_delegate.cc +++ b/brightray/browser/network_delegate.cc @@ -129,11 +129,6 @@ bool NetworkDelegate::OnCanAccessFile(const net::URLRequest& request, return true; } -bool NetworkDelegate::OnCanThrottleRequest( - const net::URLRequest& request) const { - return false; -} - bool NetworkDelegate::OnCanEnablePrivacyMode( const GURL& url, const GURL& first_party_for_cookies) const { diff --git a/brightray/browser/network_delegate.h b/brightray/browser/network_delegate.h index 642b0b4cac..f281f663ff 100644 --- a/brightray/browser/network_delegate.h +++ b/brightray/browser/network_delegate.h @@ -61,7 +61,6 @@ class NetworkDelegate : public net::NetworkDelegate { net::CookieOptions* options) override; bool OnCanAccessFile(const net::URLRequest& request, const base::FilePath& path) const override; - bool OnCanThrottleRequest(const net::URLRequest& request) const override; bool OnCanEnablePrivacyMode( const GURL& url, const GURL& first_party_for_cookies) const override; diff --git a/brightray/browser/permission_manager.cc b/brightray/browser/permission_manager.cc index 5a2d4ee54c..1290739c36 100644 --- a/brightray/browser/permission_manager.cc +++ b/brightray/browser/permission_manager.cc @@ -17,7 +17,7 @@ PermissionManager::~PermissionManager() { void PermissionManager::RequestPermission( content::PermissionType permission, - content::WebContents* web_contents, + content::RenderFrameHost* render_frame_host, int request_id, const GURL& requesting_origin, bool user_gesture, @@ -27,7 +27,7 @@ void PermissionManager::RequestPermission( void PermissionManager::CancelPermissionRequest( content::PermissionType permission, - content::WebContents* web_contents, + content::RenderFrameHost* render_frame_host, int request_id, const GURL& requesting_origin) { } diff --git a/brightray/browser/permission_manager.h b/brightray/browser/permission_manager.h index d40bcd95e1..a0860dd39b 100644 --- a/brightray/browser/permission_manager.h +++ b/brightray/browser/permission_manager.h @@ -19,13 +19,13 @@ class PermissionManager : public content::PermissionManager { // content::PermissionManager: void RequestPermission( content::PermissionType permission, - content::WebContents* web_contents, + content::RenderFrameHost* render_frame_host, int request_id, const GURL& requesting_origin, bool user_gesture, const base::Callback& callback) override; void CancelPermissionRequest(content::PermissionType permission, - content::WebContents* web_contents, + content::RenderFrameHost* render_frame_host, int request_id, const GURL& requesting_origin) override; void ResetPermission(content::PermissionType permission, diff --git a/brightray/browser/url_request_context_getter.cc b/brightray/browser/url_request_context_getter.cc index e390f1c2af..b27a94cb3a 100644 --- a/brightray/browser/url_request_context_getter.cc +++ b/brightray/browser/url_request_context_getter.cc @@ -143,7 +143,7 @@ URLRequestContextGetter::URLRequestContextGetter( // must synchronously run on the glib message loop. This will be passed to // the URLRequestContextStorage on the IO thread in GetURLRequestContext(). proxy_config_service_.reset(net::ProxyService::CreateSystemProxyConfigService( - io_loop_->message_loop_proxy(), file_loop_->message_loop_proxy())); + io_loop_->task_runner(), file_loop_->task_runner())); } URLRequestContextGetter::~URLRequestContextGetter() { @@ -233,7 +233,8 @@ net::URLRequestContext* URLRequestContextGetter::GetURLRequestContext() { url_sec_mgr_.get(), host_resolver.get(), std::string(), // gssapi_library_name - false, // negotiate_disable_cname_lookup + std::string(), // gssapi_library_nam + false, // auth_android_negotiate_account_type true); // negotiate_enable_port storage_->set_cert_verifier(net::CertVerifier::CreateDefault()); From 90125c44e39b561a26f87a57f7a7a1e5a966e599 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 2 Sep 2015 17:29:30 +0800 Subject: [PATCH 3/5] Fix API changes on Linux --- brightray/browser/views/views_delegate.cc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/brightray/browser/views/views_delegate.cc b/brightray/browser/views/views_delegate.cc index 0d28ddcc32..0dbdf37dc6 100644 --- a/brightray/browser/views/views_delegate.cc +++ b/brightray/browser/views/views_delegate.cc @@ -13,13 +13,9 @@ namespace brightray { ViewsDelegate::ViewsDelegate() { - DCHECK(!views::ViewsDelegate::views_delegate); - views::ViewsDelegate::views_delegate = this; } ViewsDelegate::~ViewsDelegate() { - DCHECK_EQ(views::ViewsDelegate::views_delegate, this); - views::ViewsDelegate::views_delegate = NULL; } void ViewsDelegate::SaveWindowPlacement(const views::Widget* window, From f077a514596fb2fe39dd0cb2f2ae5784603857a9 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 2 Sep 2015 17:49:51 +0800 Subject: [PATCH 4/5] Define ENABLE_WEBRTC --- brightray/brightray.gypi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/brightray/brightray.gypi b/brightray/brightray.gypi index 82f4cdf55a..12c5049e89 100644 --- a/brightray/brightray.gypi +++ b/brightray/brightray.gypi @@ -118,6 +118,8 @@ 'Common_Base': { 'abstract': 1, 'defines': [ + # Used by content_browser_client.h: + 'ENABLE_WEBRTC', # We are using Release version libchromiumcontent: 'NDEBUG', # Needed by gin: From dca5c763e9b99c4eab374bf5628f380decb916f6 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Wed, 2 Sep 2015 18:25:59 +0800 Subject: [PATCH 5/5] Use the new devtools URL --- brightray/browser/devtools_ui.cc | 41 +++++++++++++++---- .../browser/inspectable_web_contents_impl.cc | 12 +++--- 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/brightray/browser/devtools_ui.cc b/brightray/browser/devtools_ui.cc index 2e08a32d8f..390a2dbf21 100644 --- a/brightray/browser/devtools_ui.cc +++ b/brightray/browser/devtools_ui.cc @@ -20,7 +20,8 @@ namespace brightray { namespace { -const char kChromeUIDevToolsBundledHost[] = "devtools"; +const char kChromeUIDevToolsHost[] = "devtools"; +const char kChromeUIDevToolsBundledPath[] = "bundled"; std::string PathWithoutParams(const std::string& path) { return GURL(std::string("chrome-devtools://devtools/") + path) @@ -53,19 +54,23 @@ class BundledDataSource : public content::URLDataSource { // content::URLDataSource implementation. std::string GetSource() const override { - return kChromeUIDevToolsBundledHost; + return kChromeUIDevToolsHost; } void StartDataRequest(const std::string& path, int render_process_id, - int render_view_id, + int render_frame_id, const GotDataCallback& callback) override { - std::string filename = PathWithoutParams(path); - base::StringPiece resource = - content::DevToolsFrontendHost::GetFrontendResource(filename); - scoped_refptr bytes( - new base::RefCountedStaticMemory(resource.data(), resource.length())); - callback.Run(bytes.get()); + // Serve request from local bundle. + std::string bundled_path_prefix(kChromeUIDevToolsBundledPath); + bundled_path_prefix += "/"; + if (base::StartsWith(path, bundled_path_prefix, + base::CompareCase::INSENSITIVE_ASCII)) { + StartBundledDataRequest(path.substr(bundled_path_prefix.length()), + render_process_id, render_frame_id, callback); + return; + } + callback.Run(nullptr); } std::string GetMimeType(const std::string& path) const override { @@ -84,6 +89,24 @@ class BundledDataSource : public content::URLDataSource { return true; } + void StartBundledDataRequest( + const std::string& path, + int render_process_id, + int render_frame_id, + const content::URLDataSource::GotDataCallback& callback) { + std::string filename = PathWithoutParams(path); + base::StringPiece resource = + content::DevToolsFrontendHost::GetFrontendResource(filename); + + DLOG_IF(WARNING, resource.empty()) + << "Unable to find dev tool resource: " << filename + << ". If you compiled with debug_devtools=1, try running with " + "--debug-devtools."; + scoped_refptr bytes( + new base::RefCountedStaticMemory(resource.data(), resource.length())); + callback.Run(bytes.get()); + } + private: virtual ~BundledDataSource() {} DISALLOW_COPY_AND_ASSIGN(BundledDataSource); diff --git a/brightray/browser/inspectable_web_contents_impl.cc b/brightray/browser/inspectable_web_contents_impl.cc index 59647b9a7f..c7d93a7aca 100644 --- a/brightray/browser/inspectable_web_contents_impl.cc +++ b/brightray/browser/inspectable_web_contents_impl.cc @@ -38,11 +38,13 @@ const double kPresetZoomFactors[] = { 0.25, 0.333, 0.5, 0.666, 0.75, 0.9, 1.0, 1.1, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 4.0, 5.0 }; -const char kChromeUIDevToolsURL[] = "chrome-devtools://devtools/devtools.html?" - "can_dock=%s&" - "toolbarColor=rgba(223,223,223,1)&" - "textColor=rgba(0,0,0,1)&" - "experiments=true"; +const char kChromeUIDevToolsURL[] = + "chrome-devtools://devtools/bundled/inspector.html?" + "can_dock=%s&" + "toolbarColor=rgba(223,223,223,1)&" + "textColor=rgba(0,0,0,1)&" + "experiments=true"; + const char kDevToolsBoundsPref[] = "brightray.devtools.bounds"; const char kDevToolsZoomPref[] = "brightray.devtools.zoom"; const char kDevToolsPreferences[] = "brightray.devtools.preferences";