mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	Add component build support (issue #1617)
This commit is contained in:
		
							
								
								
									
										106
									
								
								BUILD.gn
									
									
									
									
									
								
							
							
						
						
									
										106
									
								
								BUILD.gn
									
									
									
									
									
								
							| @@ -145,10 +145,6 @@ if (is_clang) { | |||||||
|   assert(!clang_use_chrome_plugins) |   assert(!clang_use_chrome_plugins) | ||||||
| } | } | ||||||
|  |  | ||||||
| # CEF does not currently support component builds. See |  | ||||||
| # https://bitbucket.org/chromiumembedded/cef/issues/1617 |  | ||||||
| assert(!is_component_build) |  | ||||||
|  |  | ||||||
| if (is_mac) { | if (is_mac) { | ||||||
|   # Always generate dSYM files. The make_distrib script will fail if |   # Always generate dSYM files. The make_distrib script will fail if | ||||||
|   # enable_dsyms=true is not explicitly set when is_official_build=false. |   # enable_dsyms=true is not explicitly set when is_official_build=false. | ||||||
| @@ -244,6 +240,84 @@ config("libcef_static_config") { | |||||||
|   ] |   ] | ||||||
| } | } | ||||||
|  |  | ||||||
|  | # Target for building code that accesses Blink internals. Included from the | ||||||
|  | # //third_party/WebKit/Source/web target. | ||||||
|  | source_set("webkit_set") { | ||||||
|  |   sources = [ | ||||||
|  |     "libcef/renderer/webkit_glue.cc", | ||||||
|  |     "libcef/renderer/webkit_glue.h", | ||||||
|  |   ] | ||||||
|  |  | ||||||
|  |   configs += [ | ||||||
|  |     ":libcef_static_config", | ||||||
|  |     "//build/config:precompiled_headers", | ||||||
|  |  | ||||||
|  |     # Blink-internal include paths. | ||||||
|  |     "//third_party/WebKit/Source/core:core_include_dirs", | ||||||
|  |   ] | ||||||
|  |  | ||||||
|  |   include_dirs = [ | ||||||
|  |     # Blink code uses paths relative to these directories. We need them because | ||||||
|  |     # we include Blink headers. | ||||||
|  |     "//third_party/WebKit", | ||||||
|  |     "//third_party/WebKit/public/platform", | ||||||
|  |     "//third_party/WebKit/public/web", | ||||||
|  |     "//third_party/WebKit/Source", | ||||||
|  |     "$root_gen_dir/blink", | ||||||
|  |     "$root_gen_dir/third_party/WebKit", | ||||||
|  |   ] | ||||||
|  |  | ||||||
|  |   defines = [ | ||||||
|  |     # Blink-internal defines. | ||||||
|  |     "BLINK_IMPLEMENTATION=1", | ||||||
|  |     "BLINK_WEB_IMPLEMENTATION=1", | ||||||
|  |     "INSIDE_BLINK", | ||||||
|  |   ] | ||||||
|  |  | ||||||
|  |   deps = [ | ||||||
|  |     "//skia", | ||||||
|  |     "//third_party/icu", | ||||||
|  |     "//v8", | ||||||
|  |   ] | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if (is_win) { | ||||||
|  |   # Target for building code that accesses chrome_elf internals. Included from | ||||||
|  |   # the //chrome_elf:crash target. Defined as a static_library instead of a | ||||||
|  |   # source_set because (a) the source files don't export any symbols and (b) | ||||||
|  |   # *_switches.cc duplication otherwise causes linker errors. | ||||||
|  |   static_library("chrome_elf_set") { | ||||||
|  |     sources = [ | ||||||
|  |       "libcef/common/crash_reporter_client.cc", | ||||||
|  |       "libcef/common/crash_reporter_client.h", | ||||||
|  |  | ||||||
|  |       # Required for crash_keys::GetChromeCrashKeys. | ||||||
|  |       # Otherwise we need to copy this array into CEF, which would be difficult | ||||||
|  |       # to maintain. | ||||||
|  |       "//chrome/common/crash_keys.cc", | ||||||
|  |       "//chrome/common/chrome_switches.cc", | ||||||
|  |       "//components/flags_ui/flags_ui_switches.cc", | ||||||
|  |       "//content/public/common/content_switches.cc", | ||||||
|  |     ] | ||||||
|  |  | ||||||
|  |     configs += [ | ||||||
|  |       ":libcef_static_config", | ||||||
|  |       "//build/config:precompiled_headers", | ||||||
|  |     ] | ||||||
|  |  | ||||||
|  |     if (is_component_build) { | ||||||
|  |       # Avoid linker errors with content_switches.cc in component build by not | ||||||
|  |       # defining CONTENT_EXPORT. | ||||||
|  |       defines = ["COMPILE_CONTENT_STATICALLY"] | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     deps = [ | ||||||
|  |       "//components/crash/core/common",  # crash_keys | ||||||
|  |       "//gpu/config:crash_keys", | ||||||
|  |     ] | ||||||
|  |   } | ||||||
|  | } | ||||||
|  |  | ||||||
| static_library("libcef_static") { | static_library("libcef_static") { | ||||||
|   sources = gypi_paths2.includes_common + |   sources = gypi_paths2.includes_common + | ||||||
|             gypi_paths.autogen_cpp_includes + [ |             gypi_paths.autogen_cpp_includes + [ | ||||||
| @@ -552,6 +626,8 @@ static_library("libcef_static") { | |||||||
|     "libcef/renderer/plugins/plugin_preroller.h", |     "libcef/renderer/plugins/plugin_preroller.h", | ||||||
|     "libcef/renderer/render_frame_observer.cc", |     "libcef/renderer/render_frame_observer.cc", | ||||||
|     "libcef/renderer/render_frame_observer.h", |     "libcef/renderer/render_frame_observer.h", | ||||||
|  |     "libcef/renderer/render_frame_util.cc", | ||||||
|  |     "libcef/renderer/render_frame_util.h", | ||||||
|     "libcef/renderer/render_message_filter.cc", |     "libcef/renderer/render_message_filter.cc", | ||||||
|     "libcef/renderer/render_message_filter.h", |     "libcef/renderer/render_message_filter.h", | ||||||
|     "libcef/renderer/render_thread_observer.cc", |     "libcef/renderer/render_thread_observer.cc", | ||||||
| @@ -561,8 +637,6 @@ static_library("libcef_static") { | |||||||
|     "libcef/renderer/thread_util.h", |     "libcef/renderer/thread_util.h", | ||||||
|     "libcef/renderer/v8_impl.cc", |     "libcef/renderer/v8_impl.cc", | ||||||
|     "libcef/renderer/v8_impl.h", |     "libcef/renderer/v8_impl.h", | ||||||
|     "libcef/renderer/webkit_glue.cc", |  | ||||||
|     "libcef/renderer/webkit_glue.h", |  | ||||||
|     "libcef/utility/content_utility_client.cc", |     "libcef/utility/content_utility_client.cc", | ||||||
|     "libcef/utility/content_utility_client.h", |     "libcef/utility/content_utility_client.h", | ||||||
|  |  | ||||||
| @@ -578,9 +652,6 @@ static_library("libcef_static") { | |||||||
|  |  | ||||||
|     # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. |     # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. | ||||||
|     "//build/config/compiler:no_size_t_to_int_warning", |     "//build/config/compiler:no_size_t_to_int_warning", | ||||||
|  |  | ||||||
|     # Blink-internal include paths. |  | ||||||
|     "//third_party/WebKit/Source/core:core_include_dirs", |  | ||||||
|   ] |   ] | ||||||
|  |  | ||||||
|   public_configs = [ |   public_configs = [ | ||||||
| @@ -588,11 +659,6 @@ static_library("libcef_static") { | |||||||
|   ] |   ] | ||||||
|  |  | ||||||
|   include_dirs = [ |   include_dirs = [ | ||||||
|     # Blink code uses paths relative to these directories. We need them because |  | ||||||
|     # we include Blink headers. |  | ||||||
|     "//third_party/WebKit/public/platform", |  | ||||||
|     "//third_party/WebKit/public/web", |  | ||||||
|  |  | ||||||
|     # Crashpad code uses paths relative to this directory. |     # Crashpad code uses paths relative to this directory. | ||||||
|     "//third_party/crashpad/crashpad", |     "//third_party/crashpad/crashpad", | ||||||
|   ] |   ] | ||||||
| @@ -651,6 +717,7 @@ static_library("libcef_static") { | |||||||
|     "//components/visitedlink/browser", |     "//components/visitedlink/browser", | ||||||
|     "//components/visitedlink/common", |     "//components/visitedlink/common", | ||||||
|     "//components/visitedlink/renderer", |     "//components/visitedlink/renderer", | ||||||
|  |     "//components/viz/display_compositor", | ||||||
|     "//components/web_cache/renderer", |     "//components/web_cache/renderer", | ||||||
|     "//content/public/app:both", |     "//content/public/app:both", | ||||||
|     "//content/public/browser", |     "//content/public/browser", | ||||||
| @@ -680,6 +747,9 @@ static_library("libcef_static") { | |||||||
|     "//pdf", |     "//pdf", | ||||||
|     "//ppapi/features", |     "//ppapi/features", | ||||||
|     "//printing/features", |     "//printing/features", | ||||||
|  |     "//services/service_manager/embedder", | ||||||
|  |     "//services/service_manager/public/interfaces", | ||||||
|  |     "//services/service_manager/runner/common", | ||||||
|     "//skia", |     "//skia", | ||||||
|     "//storage/browser", |     "//storage/browser", | ||||||
|     "//third_party/brotli:dec", |     "//third_party/brotli:dec", | ||||||
| @@ -739,6 +809,14 @@ static_library("libcef_static") { | |||||||
|     deps += [ |     deps += [ | ||||||
|       "//chrome_elf", |       "//chrome_elf", | ||||||
|     ] |     ] | ||||||
|  |  | ||||||
|  |     if (is_component_build) { | ||||||
|  |       deps += [ "//content:sandbox_helper_win" ] | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     libs = [ | ||||||
|  |       "comctl32.lib", | ||||||
|  |     ] | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   if (is_linux) { |   if (is_linux) { | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ | |||||||
|  |  | ||||||
| #include "base/memory/ptr_util.h" | #include "base/memory/ptr_util.h" | ||||||
| #include "base/strings/string_util.h" | #include "base/strings/string_util.h" | ||||||
| #include "content/browser/devtools/grit/devtools_resources_map.h" | #include "content/public/browser/devtools_frontend_host.h" | ||||||
| #include "content/public/common/url_constants.h" | #include "content/public/common/url_constants.h" | ||||||
|  |  | ||||||
| namespace scheme { | namespace scheme { | ||||||
| @@ -32,15 +32,9 @@ class Delegate : public InternalHandlerDelegate { | |||||||
|     if (path.length() > 0) |     if (path.length() > 0) | ||||||
|       path = path.substr(1); |       path = path.substr(1); | ||||||
|  |  | ||||||
|     for (size_t i = 0; i < kDevtoolsResourcesSize; ++i) { |     action->string_piece = | ||||||
|       if (base::EqualsCaseInsensitiveASCII(kDevtoolsResources[i].name, |         content::DevToolsFrontendHost::GetFrontendResource(path); | ||||||
|                                            path.c_str())) { |     return !action->string_piece.empty(); | ||||||
|         action->resource_id = kDevtoolsResources[i].value; |  | ||||||
|         return true; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     return false; |  | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -140,20 +140,23 @@ class InternalHandlerFactory : public CefSchemeHandlerFactory { | |||||||
|       if (action.mime_type.empty()) |       if (action.mime_type.empty()) | ||||||
|         action.mime_type = GetMimeType(url.path()); |         action.mime_type = GetMimeType(url.path()); | ||||||
|  |  | ||||||
|       if (action.resource_id >= 0) { |       if (action.string_piece.empty() && action.resource_id >= 0) { | ||||||
|         base::StringPiece piece = CefContentClient::Get()->GetDataResource( |         action.string_piece = CefContentClient::Get()->GetDataResource( | ||||||
|             action.resource_id, ui::SCALE_FACTOR_NONE); |             action.resource_id, ui::SCALE_FACTOR_NONE); | ||||||
|         if (!piece.empty()) { |         if (action.string_piece.empty()) { | ||||||
|           action.stream = CefStreamReader::CreateForData( |  | ||||||
|               const_cast<char*>(piece.data()), piece.size()); |  | ||||||
|           action.stream_size = piece.size(); |  | ||||||
|         } else { |  | ||||||
|           NOTREACHED() << "Failed to load internal resource for id: " |           NOTREACHED() << "Failed to load internal resource for id: " | ||||||
|                        << action.resource_id << " URL: " << url.spec().c_str(); |                        << action.resource_id << " URL: " << url.spec().c_str(); | ||||||
|           return NULL; |           return NULL; | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|  |  | ||||||
|  |       if (!action.string_piece.empty()) { | ||||||
|  |         action.stream = CefStreamReader::CreateForData( | ||||||
|  |             const_cast<char*>(action.string_piece.data()), | ||||||
|  |             action.string_piece.size()); | ||||||
|  |         action.stream_size = action.string_piece.size(); | ||||||
|  |       } | ||||||
|  |  | ||||||
|       if (action.stream.get()) { |       if (action.stream.get()) { | ||||||
|         return new InternalHandler(action.mime_type, action.stream, |         return new InternalHandler(action.mime_type, action.stream, | ||||||
|                                    action.stream_size); |                                    action.stream_size); | ||||||
|   | |||||||
| @@ -7,7 +7,10 @@ | |||||||
| #pragma once | #pragma once | ||||||
|  |  | ||||||
| #include <string> | #include <string> | ||||||
|  |  | ||||||
| #include "include/cef_scheme.h" | #include "include/cef_scheme.h" | ||||||
|  |  | ||||||
|  | #include "base/strings/string_piece.h" | ||||||
| #include "url/gurl.h" | #include "url/gurl.h" | ||||||
|  |  | ||||||
| namespace scheme { | namespace scheme { | ||||||
| @@ -28,11 +31,13 @@ class InternalHandlerDelegate { | |||||||
|     CefRefPtr<CefStreamReader> stream; |     CefRefPtr<CefStreamReader> stream; | ||||||
|     int stream_size; |     int stream_size; | ||||||
|  |  | ||||||
|     // Option 2: Specify a resource id to load static content. May include an |     // Option 2: Provide a base::StringPiece for the resource contents. | ||||||
|     // optional encoding type. |     base::StringPiece string_piece; | ||||||
|  |  | ||||||
|  |     // Option 3: Specify a resource id to load static content. | ||||||
|     int resource_id; |     int resource_id; | ||||||
|  |  | ||||||
|     // Option 3: Redirect to the specified URL. |     // Option 4: Redirect to the specified URL. | ||||||
|     GURL redirect_url; |     GURL redirect_url; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -15,6 +15,7 @@ | |||||||
| #include "libcef/common/response_manager.h" | #include "libcef/common/response_manager.h" | ||||||
| #include "libcef/renderer/content_renderer_client.h" | #include "libcef/renderer/content_renderer_client.h" | ||||||
| #include "libcef/renderer/dom_document_impl.h" | #include "libcef/renderer/dom_document_impl.h" | ||||||
|  | #include "libcef/renderer/render_frame_util.h" | ||||||
| #include "libcef/renderer/thread_util.h" | #include "libcef/renderer/thread_util.h" | ||||||
| #include "libcef/renderer/webkit_glue.h" | #include "libcef/renderer/webkit_glue.h" | ||||||
|  |  | ||||||
| @@ -194,7 +195,7 @@ CefRefPtr<CefFrame> CefBrowserImpl::GetFrame(const CefString& name) { | |||||||
|       const std::string& searchname = name; |       const std::string& searchname = name; | ||||||
|       for (WebFrame* cur_frame = web_view->MainFrame(); cur_frame; |       for (WebFrame* cur_frame = web_view->MainFrame(); cur_frame; | ||||||
|            cur_frame = cur_frame->TraverseNext()) { |            cur_frame = cur_frame->TraverseNext()) { | ||||||
|         if (webkit_glue::GetUniqueName(cur_frame) == searchname) { |         if (render_frame_util::GetUniqueName(cur_frame) == searchname) { | ||||||
|           frame = cur_frame; |           frame = cur_frame; | ||||||
|           break; |           break; | ||||||
|         } |         } | ||||||
| @@ -231,7 +232,7 @@ void CefBrowserImpl::GetFrameIdentifiers(std::vector<int64>& identifiers) { | |||||||
|   if (render_view()->GetWebView()) { |   if (render_view()->GetWebView()) { | ||||||
|     for (WebFrame* frame = render_view()->GetWebView()->MainFrame(); frame; |     for (WebFrame* frame = render_view()->GetWebView()->MainFrame(); frame; | ||||||
|          frame = frame->TraverseNext()) { |          frame = frame->TraverseNext()) { | ||||||
|       identifiers.push_back(webkit_glue::GetIdentifier(frame)); |       identifiers.push_back(render_frame_util::GetIdentifier(frame)); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @@ -245,7 +246,7 @@ void CefBrowserImpl::GetFrameNames(std::vector<CefString>& names) { | |||||||
|   if (render_view()->GetWebView()) { |   if (render_view()->GetWebView()) { | ||||||
|     for (WebFrame* frame = render_view()->GetWebView()->MainFrame(); frame; |     for (WebFrame* frame = render_view()->GetWebView()->MainFrame(); frame; | ||||||
|          frame = frame->TraverseNext()) { |          frame = frame->TraverseNext()) { | ||||||
|       names.push_back(webkit_glue::GetUniqueName(frame)); |       names.push_back(render_frame_util::GetUniqueName(frame)); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @@ -314,7 +315,7 @@ bool CefBrowserImpl::SendProcessMessage(CefProcessId target_process, | |||||||
| CefRefPtr<CefFrameImpl> CefBrowserImpl::GetWebFrameImpl( | CefRefPtr<CefFrameImpl> CefBrowserImpl::GetWebFrameImpl( | ||||||
|     blink::WebFrame* frame) { |     blink::WebFrame* frame) { | ||||||
|   DCHECK(frame); |   DCHECK(frame); | ||||||
|   int64_t frame_id = webkit_glue::GetIdentifier(frame); |   int64_t frame_id = render_frame_util::GetIdentifier(frame); | ||||||
|  |  | ||||||
|   // Frames are re-used between page loads. Only add the frame to the map once. |   // Frames are re-used between page loads. Only add the frame to the map once. | ||||||
|   FrameMap::const_iterator it = frames_.find(frame_id); |   FrameMap::const_iterator it = frames_.find(frame_id); | ||||||
| @@ -324,11 +325,12 @@ CefRefPtr<CefFrameImpl> CefBrowserImpl::GetWebFrameImpl( | |||||||
|   CefRefPtr<CefFrameImpl> framePtr(new CefFrameImpl(this, frame)); |   CefRefPtr<CefFrameImpl> framePtr(new CefFrameImpl(this, frame)); | ||||||
|   frames_.insert(std::make_pair(frame_id, framePtr)); |   frames_.insert(std::make_pair(frame_id, framePtr)); | ||||||
|  |  | ||||||
|   const int64_t parent_id = frame->Parent() == NULL |   const int64_t parent_id = | ||||||
|  |       frame->Parent() == NULL | ||||||
|           ? webkit_glue::kInvalidFrameId |           ? webkit_glue::kInvalidFrameId | ||||||
|                                 : webkit_glue::GetIdentifier(frame->Parent()); |           : render_frame_util::GetIdentifier(frame->Parent()); | ||||||
|   const base::string16& name = |   const base::string16& name = | ||||||
|       base::UTF8ToUTF16(webkit_glue::GetUniqueName(frame)); |       base::UTF8ToUTF16(render_frame_util::GetUniqueName(frame)); | ||||||
|  |  | ||||||
|   // Notify the browser that the frame has been identified. |   // Notify the browser that the frame has been identified. | ||||||
|   Send(new CefHostMsg_FrameIdentified(routing_id(), frame_id, parent_id, name)); |   Send(new CefHostMsg_FrameIdentified(routing_id(), frame_id, parent_id, name)); | ||||||
| @@ -352,7 +354,7 @@ CefRefPtr<CefFrameImpl> CefBrowserImpl::GetWebFrameImpl(int64_t frame_id) { | |||||||
|     // Check if the frame exists but we don't know about it yet. |     // Check if the frame exists but we don't know about it yet. | ||||||
|     for (WebFrame* frame = render_view()->GetWebView()->MainFrame(); frame; |     for (WebFrame* frame = render_view()->GetWebView()->MainFrame(); frame; | ||||||
|          frame = frame->TraverseNext()) { |          frame = frame->TraverseNext()) { | ||||||
|       if (webkit_glue::GetIdentifier(frame) == frame_id) |       if (render_frame_util::GetIdentifier(frame) == frame_id) | ||||||
|         return GetWebFrameImpl(frame); |         return GetWebFrameImpl(frame); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| @@ -411,9 +413,10 @@ void CefBrowserImpl::DidStopLoading() { | |||||||
|  |  | ||||||
| void CefBrowserImpl::DidFinishLoad(blink::WebLocalFrame* frame) { | void CefBrowserImpl::DidFinishLoad(blink::WebLocalFrame* frame) { | ||||||
|   blink::WebDataSource* ds = frame->DataSource(); |   blink::WebDataSource* ds = frame->DataSource(); | ||||||
|   Send(new CefHostMsg_DidFinishLoad( |   Send(new CefHostMsg_DidFinishLoad(routing_id(), | ||||||
|       routing_id(), webkit_glue::GetIdentifier(frame), ds->GetRequest().Url(), |                                     render_frame_util::GetIdentifier(frame), | ||||||
|       !frame->Parent(), ds->GetResponse().HttpStatusCode())); |                                     ds->GetRequest().Url(), !frame->Parent(), | ||||||
|  |                                     ds->GetResponse().HttpStatusCode())); | ||||||
|   OnLoadEnd(frame); |   OnLoadEnd(frame); | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -433,7 +436,7 @@ void CefBrowserImpl::DidCommitProvisionalLoad(blink::WebLocalFrame* frame, | |||||||
| } | } | ||||||
|  |  | ||||||
| void CefBrowserImpl::FrameDetached(WebFrame* frame) { | void CefBrowserImpl::FrameDetached(WebFrame* frame) { | ||||||
|   int64_t frame_id = webkit_glue::GetIdentifier(frame); |   int64_t frame_id = render_frame_util::GetIdentifier(frame); | ||||||
|  |  | ||||||
|   if (!frames_.empty()) { |   if (!frames_.empty()) { | ||||||
|     // Remove the frame from the map. |     // Remove the frame from the map. | ||||||
|   | |||||||
| @@ -17,6 +17,7 @@ | |||||||
| #include "libcef/common/request_impl.h" | #include "libcef/common/request_impl.h" | ||||||
| #include "libcef/renderer/browser_impl.h" | #include "libcef/renderer/browser_impl.h" | ||||||
| #include "libcef/renderer/dom_document_impl.h" | #include "libcef/renderer/dom_document_impl.h" | ||||||
|  | #include "libcef/renderer/render_frame_util.h" | ||||||
| #include "libcef/renderer/thread_util.h" | #include "libcef/renderer/thread_util.h" | ||||||
| #include "libcef/renderer/v8_impl.h" | #include "libcef/renderer/v8_impl.h" | ||||||
| #include "libcef/renderer/webkit_glue.h" | #include "libcef/renderer/webkit_glue.h" | ||||||
| @@ -37,7 +38,7 @@ using blink::WebString; | |||||||
| CefFrameImpl::CefFrameImpl(CefBrowserImpl* browser, blink::WebFrame* frame) | CefFrameImpl::CefFrameImpl(CefBrowserImpl* browser, blink::WebFrame* frame) | ||||||
|     : browser_(browser), |     : browser_(browser), | ||||||
|       frame_(frame), |       frame_(frame), | ||||||
|       frame_id_(webkit_glue::GetIdentifier(frame)) {} |       frame_id_(render_frame_util::GetIdentifier(frame)) {} | ||||||
|  |  | ||||||
| CefFrameImpl::~CefFrameImpl() {} | CefFrameImpl::~CefFrameImpl() {} | ||||||
|  |  | ||||||
| @@ -189,7 +190,7 @@ CefString CefFrameImpl::GetName() { | |||||||
|   CEF_REQUIRE_RT_RETURN(name); |   CEF_REQUIRE_RT_RETURN(name); | ||||||
|  |  | ||||||
|   if (frame_) |   if (frame_) | ||||||
|     name = webkit_glue::GetUniqueName(frame_); |     name = render_frame_util::GetUniqueName(frame_); | ||||||
|   return name; |   return name; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -4,10 +4,6 @@ | |||||||
|  |  | ||||||
| #include "base/compiler_specific.h" | #include "base/compiler_specific.h" | ||||||
|  |  | ||||||
| MSVC_PUSH_WARNING_LEVEL(0); |  | ||||||
| #include "platform/ScriptForbiddenScope.h" |  | ||||||
| MSVC_POP_WARNING(); |  | ||||||
|  |  | ||||||
| // Enable deprecation warnings for MSVC. See http://crbug.com/585142. | // Enable deprecation warnings for MSVC. See http://crbug.com/585142. | ||||||
| #if defined(OS_WIN) | #if defined(OS_WIN) | ||||||
| #pragma warning(push) | #pragma warning(push) | ||||||
| @@ -20,6 +16,7 @@ MSVC_POP_WARNING(); | |||||||
| #include "libcef/common/content_client.h" | #include "libcef/common/content_client.h" | ||||||
| #include "libcef/renderer/content_renderer_client.h" | #include "libcef/renderer/content_renderer_client.h" | ||||||
| #include "libcef/renderer/v8_impl.h" | #include "libcef/renderer/v8_impl.h" | ||||||
|  | #include "libcef/renderer/webkit_glue.h" | ||||||
|  |  | ||||||
| #include "content/public/renderer/render_frame.h" | #include "content/public/renderer/render_frame.h" | ||||||
| #include "third_party/WebKit/public/web/WebKit.h" | #include "third_party/WebKit/public/web/WebKit.h" | ||||||
| @@ -125,7 +122,7 @@ void CefRenderFrameObserver::WillReleaseScriptContext( | |||||||
|         // The released context should not be used for script execution. |         // The released context should not be used for script execution. | ||||||
|         // Depending on how the context is released this may or may not already |         // Depending on how the context is released this may or may not already | ||||||
|         // be set. |         // be set. | ||||||
|         blink::ScriptForbiddenScope forbidScript; |         webkit_glue::CefScriptForbiddenScope forbidScript; | ||||||
|  |  | ||||||
|         CefRefPtr<CefV8Context> contextPtr( |         CefRefPtr<CefV8Context> contextPtr( | ||||||
|             new CefV8ContextImpl(isolate, context)); |             new CefV8ContextImpl(isolate, context)); | ||||||
|   | |||||||
							
								
								
									
										35
									
								
								libcef/renderer/render_frame_util.cc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								libcef/renderer/render_frame_util.cc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | |||||||
|  | // Copyright (c) 2012 The Chromium Embedded Framework Authors. | ||||||
|  | // Portions copyright (c) 2011 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. | ||||||
|  |  | ||||||
|  | #include "libcef/renderer/render_frame_util.h" | ||||||
|  |  | ||||||
|  | #include "libcef/renderer/webkit_glue.h" | ||||||
|  |  | ||||||
|  | #include "base/logging.h" | ||||||
|  | #include "content/renderer/render_frame_impl.h" | ||||||
|  |  | ||||||
|  | namespace render_frame_util { | ||||||
|  |  | ||||||
|  | int64_t GetIdentifier(blink::WebFrame* frame) { | ||||||
|  |   // Each WebFrame will have an associated RenderFrame. The RenderFrame | ||||||
|  |   // routing IDs are unique within a given renderer process. | ||||||
|  |   content::RenderFrame* render_frame = | ||||||
|  |       content::RenderFrame::FromWebFrame(frame); | ||||||
|  |   DCHECK(render_frame); | ||||||
|  |   if (render_frame) | ||||||
|  |     return render_frame->GetRoutingID(); | ||||||
|  |   return webkit_glue::kInvalidFrameId; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | std::string GetUniqueName(blink::WebFrame* frame) { | ||||||
|  |   content::RenderFrameImpl* render_frame = | ||||||
|  |       content::RenderFrameImpl::FromWebFrame(frame); | ||||||
|  |   DCHECK(render_frame); | ||||||
|  |   if (render_frame) | ||||||
|  |     return render_frame->unique_name(); | ||||||
|  |   return std::string(); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | }  // render_frame_util | ||||||
							
								
								
									
										24
									
								
								libcef/renderer/render_frame_util.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								libcef/renderer/render_frame_util.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | // Copyright (c) 2012 The Chromium Embedded Framework Authors. | ||||||
|  | // Portions copyright (c) 2011 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. | ||||||
|  |  | ||||||
|  | #ifndef CEF_LIBCEF_RENDERER_RENDER_FRAME_UTIL_H_ | ||||||
|  | #define CEF_LIBCEF_RENDERER_RENDER_FRAME_UTIL_H_ | ||||||
|  |  | ||||||
|  | #include <stdint.h> | ||||||
|  |  | ||||||
|  | #include <string> | ||||||
|  |  | ||||||
|  | namespace blink { | ||||||
|  | class WebFrame; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | namespace render_frame_util { | ||||||
|  |  | ||||||
|  | int64_t GetIdentifier(blink::WebFrame* frame); | ||||||
|  | std::string GetUniqueName(blink::WebFrame* frame); | ||||||
|  |  | ||||||
|  | }  // render_frame_util | ||||||
|  |  | ||||||
|  | #endif  // CEF_LIBCEF_RENDERER_RENDER_FRAME_UTIL_H_ | ||||||
| @@ -25,6 +25,7 @@ | |||||||
| #include "libcef/common/task_runner_impl.h" | #include "libcef/common/task_runner_impl.h" | ||||||
| #include "libcef/common/tracker.h" | #include "libcef/common/tracker.h" | ||||||
| #include "libcef/renderer/browser_impl.h" | #include "libcef/renderer/browser_impl.h" | ||||||
|  | #include "libcef/renderer/render_frame_util.h" | ||||||
| #include "libcef/renderer/thread_util.h" | #include "libcef/renderer/thread_util.h" | ||||||
| #include "libcef/renderer/webkit_glue.h" | #include "libcef/renderer/webkit_glue.h" | ||||||
|  |  | ||||||
| @@ -897,7 +898,7 @@ CefRefPtr<CefFrame> CefV8ContextImpl::GetFrame() { | |||||||
|   if (webframe) { |   if (webframe) { | ||||||
|     CefRefPtr<CefBrowserImpl> browser = |     CefRefPtr<CefBrowserImpl> browser = | ||||||
|         CefBrowserImpl::GetBrowserForMainFrame(webframe->Top()); |         CefBrowserImpl::GetBrowserForMainFrame(webframe->Top()); | ||||||
|     frame = browser->GetFrame(webkit_glue::GetIdentifier(webframe)); |     frame = browser->GetFrame(render_frame_util::GetIdentifier(webframe)); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   return frame; |   return frame; | ||||||
|   | |||||||
| @@ -3,16 +3,6 @@ | |||||||
| // Use of this source code is governed by a BSD-style license that can be | // Use of this source code is governed by a BSD-style license that can be | ||||||
| // found in the LICENSE file. | // found in the LICENSE file. | ||||||
|  |  | ||||||
| // MSVC++ requires this to be set before any other includes to get M_PI. |  | ||||||
| // Otherwise there will be compile errors in wtf/MathExtras.h. |  | ||||||
| #define _USE_MATH_DEFINES |  | ||||||
|  |  | ||||||
| // Defines required to access Blink internals (unwrap WebNode). |  | ||||||
| #undef BLINK_IMPLEMENTATION |  | ||||||
| #define BLINK_IMPLEMENTATION 1 |  | ||||||
| #undef INSIDE_BLINK |  | ||||||
| #define INSIDE_BLINK 1 |  | ||||||
|  |  | ||||||
| #include "libcef/renderer/webkit_glue.h" | #include "libcef/renderer/webkit_glue.h" | ||||||
|  |  | ||||||
| #include "base/compiler_specific.h" | #include "base/compiler_specific.h" | ||||||
| @@ -32,6 +22,7 @@ MSVC_PUSH_WARNING_LEVEL(0); | |||||||
| #include "third_party/WebKit/Source/core/editing/serializers/Serialization.h" | #include "third_party/WebKit/Source/core/editing/serializers/Serialization.h" | ||||||
| #include "third_party/WebKit/Source/core/frame/LocalFrame.h" | #include "third_party/WebKit/Source/core/frame/LocalFrame.h" | ||||||
| #include "third_party/WebKit/Source/core/frame/Settings.h" | #include "third_party/WebKit/Source/core/frame/Settings.h" | ||||||
|  | #include "third_party/WebKit/Source/platform/ScriptForbiddenScope.h" | ||||||
| #include "third_party/WebKit/Source/platform/bindings/V8Binding.h" | #include "third_party/WebKit/Source/platform/bindings/V8Binding.h" | ||||||
| #include "third_party/WebKit/Source/platform/weborigin/SchemeRegistry.h" | #include "third_party/WebKit/Source/platform/weborigin/SchemeRegistry.h" | ||||||
| #include "third_party/WebKit/Source/web/WebLocalFrameImpl.h" | #include "third_party/WebKit/Source/web/WebLocalFrameImpl.h" | ||||||
| @@ -40,7 +31,6 @@ MSVC_POP_WARNING(); | |||||||
| #undef LOG | #undef LOG | ||||||
|  |  | ||||||
| #include "base/logging.h" | #include "base/logging.h" | ||||||
| #include "content/renderer/render_frame_impl.h" |  | ||||||
|  |  | ||||||
| namespace webkit_glue { | namespace webkit_glue { | ||||||
|  |  | ||||||
| @@ -128,26 +118,6 @@ bool SetNodeValue(blink::WebNode& node, const blink::WebString& value) { | |||||||
|   return true; |   return true; | ||||||
| } | } | ||||||
|  |  | ||||||
| int64_t GetIdentifier(blink::WebFrame* frame) { |  | ||||||
|   // Each WebFrame will have an associated RenderFrame. The RenderFrame |  | ||||||
|   // routing IDs are unique within a given renderer process. |  | ||||||
|   content::RenderFrame* render_frame = |  | ||||||
|       content::RenderFrame::FromWebFrame(frame); |  | ||||||
|   DCHECK(render_frame); |  | ||||||
|   if (render_frame) |  | ||||||
|     return render_frame->GetRoutingID(); |  | ||||||
|   return kInvalidFrameId; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| std::string GetUniqueName(blink::WebFrame* frame) { |  | ||||||
|   content::RenderFrameImpl* render_frame = |  | ||||||
|       content::RenderFrameImpl::FromWebFrame(frame); |  | ||||||
|   DCHECK(render_frame); |  | ||||||
|   if (render_frame) |  | ||||||
|     return render_frame->unique_name(); |  | ||||||
|   return std::string(); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| v8::MaybeLocal<v8::Value> CallV8Function(v8::Local<v8::Context> context, | v8::MaybeLocal<v8::Value> CallV8Function(v8::Local<v8::Context> context, | ||||||
|                                          v8::Local<v8::Function> function, |                                          v8::Local<v8::Function> function, | ||||||
|                                          v8::Local<v8::Object> receiver, |                                          v8::Local<v8::Object> receiver, | ||||||
| @@ -235,4 +205,12 @@ void RegisterURLSchemeAsCORSEnabled(const blink::WebString& scheme) { | |||||||
|   blink::SchemeRegistry::RegisterURLSchemeAsCORSEnabled(scheme); |   blink::SchemeRegistry::RegisterURLSchemeAsCORSEnabled(scheme); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | struct CefScriptForbiddenScope::Impl { | ||||||
|  |   blink::ScriptForbiddenScope scope_; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | CefScriptForbiddenScope::CefScriptForbiddenScope() : impl_(new Impl()) {} | ||||||
|  |  | ||||||
|  | CefScriptForbiddenScope::~CefScriptForbiddenScope() {} | ||||||
|  |  | ||||||
| }  // webkit_glue | }  // webkit_glue | ||||||
|   | |||||||
| @@ -8,10 +8,13 @@ | |||||||
|  |  | ||||||
| #include <stdint.h> | #include <stdint.h> | ||||||
|  |  | ||||||
|  | #include <memory> | ||||||
| #include <string> | #include <string> | ||||||
|  |  | ||||||
| #include "include/internal/cef_types.h" | #include "include/internal/cef_types.h" | ||||||
|  |  | ||||||
| #include "third_party/WebKit/Source/platform/loader/fetch/AccessControlStatus.h" | #include "third_party/WebKit/Source/platform/loader/fetch/AccessControlStatus.h" | ||||||
|  | #include "third_party/WebKit/public/platform/WebCommon.h" | ||||||
| #include "v8/include/v8.h" | #include "v8/include/v8.h" | ||||||
|  |  | ||||||
| namespace blink { | namespace blink { | ||||||
| @@ -24,35 +27,34 @@ class WebView; | |||||||
|  |  | ||||||
| namespace webkit_glue { | namespace webkit_glue { | ||||||
|  |  | ||||||
| extern const int64_t kInvalidFrameId; | BLINK_EXPORT extern const int64_t kInvalidFrameId; | ||||||
|  |  | ||||||
| bool CanGoBack(blink::WebView* view); | BLINK_EXPORT bool CanGoBack(blink::WebView* view); | ||||||
| bool CanGoForward(blink::WebView* view); | BLINK_EXPORT bool CanGoForward(blink::WebView* view); | ||||||
| void GoBack(blink::WebView* view); | BLINK_EXPORT void GoBack(blink::WebView* view); | ||||||
| void GoForward(blink::WebView* view); | BLINK_EXPORT void GoForward(blink::WebView* view); | ||||||
|  |  | ||||||
| // Returns the text of the document element. | // Returns the text of the document element. | ||||||
| std::string DumpDocumentText(blink::WebFrame* frame); | BLINK_EXPORT std::string DumpDocumentText(blink::WebFrame* frame); | ||||||
|  |  | ||||||
| // Expose additional actions on WebNode. | // Expose additional actions on WebNode. | ||||||
| cef_dom_node_type_t GetNodeType(const blink::WebNode& node); | BLINK_EXPORT cef_dom_node_type_t GetNodeType(const blink::WebNode& node); | ||||||
| blink::WebString GetNodeName(const blink::WebNode& node); | BLINK_EXPORT blink::WebString GetNodeName(const blink::WebNode& node); | ||||||
| blink::WebString CreateNodeMarkup(const blink::WebNode& node); | BLINK_EXPORT blink::WebString CreateNodeMarkup(const blink::WebNode& node); | ||||||
| bool SetNodeValue(blink::WebNode& node, const blink::WebString& value); | BLINK_EXPORT bool SetNodeValue(blink::WebNode& node, | ||||||
|  |                                const blink::WebString& value); | ||||||
|  |  | ||||||
| int64_t GetIdentifier(blink::WebFrame* frame); | BLINK_EXPORT bool IsTextControlElement(const blink::WebElement& element); | ||||||
| std::string GetUniqueName(blink::WebFrame* frame); |  | ||||||
|  |  | ||||||
| bool IsTextControlElement(const blink::WebElement& element); | BLINK_EXPORT v8::MaybeLocal<v8::Value> CallV8Function( | ||||||
|  |     v8::Local<v8::Context> context, | ||||||
| v8::MaybeLocal<v8::Value> CallV8Function(v8::Local<v8::Context> context, |  | ||||||
|     v8::Local<v8::Function> function, |     v8::Local<v8::Function> function, | ||||||
|     v8::Local<v8::Object> receiver, |     v8::Local<v8::Object> receiver, | ||||||
|     int argc, |     int argc, | ||||||
|     v8::Local<v8::Value> args[], |     v8::Local<v8::Value> args[], | ||||||
|     v8::Isolate* isolate); |     v8::Isolate* isolate); | ||||||
|  |  | ||||||
| v8::MaybeLocal<v8::Value> ExecuteV8ScriptAndReturnValue( | BLINK_EXPORT v8::MaybeLocal<v8::Value> ExecuteV8ScriptAndReturnValue( | ||||||
|     const blink::WebString& source, |     const blink::WebString& source, | ||||||
|     const blink::WebString& source_url, |     const blink::WebString& source_url, | ||||||
|     int start_line, |     int start_line, | ||||||
| @@ -61,11 +63,25 @@ v8::MaybeLocal<v8::Value> ExecuteV8ScriptAndReturnValue( | |||||||
|     v8::TryCatch& tryCatch, |     v8::TryCatch& tryCatch, | ||||||
|     blink::AccessControlStatus accessControlStatus); |     blink::AccessControlStatus accessControlStatus); | ||||||
|  |  | ||||||
| bool IsScriptForbidden(); | BLINK_EXPORT bool IsScriptForbidden(); | ||||||
|  |  | ||||||
| void RegisterURLSchemeAsLocal(const blink::WebString& scheme); | BLINK_EXPORT void RegisterURLSchemeAsLocal(const blink::WebString& scheme); | ||||||
| void RegisterURLSchemeAsSecure(const blink::WebString& scheme); | BLINK_EXPORT void RegisterURLSchemeAsSecure(const blink::WebString& scheme); | ||||||
| void RegisterURLSchemeAsCORSEnabled(const blink::WebString& scheme); | BLINK_EXPORT void RegisterURLSchemeAsCORSEnabled( | ||||||
|  |     const blink::WebString& scheme); | ||||||
|  |  | ||||||
|  | // Wrapper for blink::ScriptForbiddenScope. | ||||||
|  | class BLINK_EXPORT CefScriptForbiddenScope final { | ||||||
|  |  public: | ||||||
|  |   CefScriptForbiddenScope(); | ||||||
|  |   ~CefScriptForbiddenScope(); | ||||||
|  |  | ||||||
|  |  private: | ||||||
|  |   struct Impl; | ||||||
|  |   std::unique_ptr<Impl> impl_; | ||||||
|  |  | ||||||
|  |   DISALLOW_COPY_AND_ASSIGN(CefScriptForbiddenScope); | ||||||
|  | }; | ||||||
|  |  | ||||||
| }  // webkit_glue | }  // webkit_glue | ||||||
|  |  | ||||||
|   | |||||||
| @@ -33,6 +33,11 @@ patches = [ | |||||||
|     # https://bugs.chromium.org/p/chromium/issues/detail?id=634788 |     # https://bugs.chromium.org/p/chromium/issues/detail?id=634788 | ||||||
|     'name': 'gn_config', |     'name': 'gn_config', | ||||||
|   }, |   }, | ||||||
|  |   { | ||||||
|  |     # Support component builds (GN is_component_build=true). | ||||||
|  |     # https://bitbucket.org/chromiumembedded/cef/issues/1617 | ||||||
|  |     'name': 'component_build_1617', | ||||||
|  |   }, | ||||||
|   { |   { | ||||||
|     # Support loading of password protected zip archives. |     # Support loading of password protected zip archives. | ||||||
|     # https://bitbucket.org/chromiumembedded/cef/issues/496 |     # https://bitbucket.org/chromiumembedded/cef/issues/496 | ||||||
|   | |||||||
							
								
								
									
										47
									
								
								patch/patches/component_build_1617.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								patch/patches/component_build_1617.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | |||||||
|  | diff --git content/app/content_service_manager_main_delegate.h content/app/content_service_manager_main_delegate.h | ||||||
|  | index c0fd31d..9e95dbb 100644 | ||||||
|  | --- content/app/content_service_manager_main_delegate.h | ||||||
|  | +++ content/app/content_service_manager_main_delegate.h | ||||||
|  | @@ -16,7 +16,8 @@ namespace content { | ||||||
|  |   | ||||||
|  |  class ContentMainRunner; | ||||||
|  |   | ||||||
|  | -class ContentServiceManagerMainDelegate : public service_manager::MainDelegate { | ||||||
|  | +class CONTENT_EXPORT ContentServiceManagerMainDelegate : | ||||||
|  | +    public service_manager::MainDelegate { | ||||||
|  |   public: | ||||||
|  |    explicit ContentServiceManagerMainDelegate(const ContentMainParams& params); | ||||||
|  |    ~ContentServiceManagerMainDelegate() override; | ||||||
|  | diff --git content/browser/frame_host/debug_urls.h content/browser/frame_host/debug_urls.h | ||||||
|  | index 413cd0f..bab8a6d 100644 | ||||||
|  | --- content/browser/frame_host/debug_urls.h | ||||||
|  | +++ content/browser/frame_host/debug_urls.h | ||||||
|  | @@ -5,6 +5,7 @@ | ||||||
|  |  #ifndef CONTENT_BROWSER_FRAME_HOST_DEBUG_URLS_H_ | ||||||
|  |  #define CONTENT_BROWSER_FRAME_HOST_DEBUG_URLS_H_ | ||||||
|  |   | ||||||
|  | +#include "content/common/content_export.h" | ||||||
|  |  #include "ui/base/page_transition_types.h" | ||||||
|  |   | ||||||
|  |  class GURL; | ||||||
|  | @@ -19,7 +20,7 @@ bool HandleDebugURL(const GURL& url, ui::PageTransition transition); | ||||||
|  |  // renderer process, such as one that crashes or hangs the renderer, or a | ||||||
|  |  // javascript: URL that operates on the current page in the renderer.  Such URLs | ||||||
|  |  // do not represent actual navigations and can be loaded in any SiteInstance. | ||||||
|  | -bool IsRendererDebugURL(const GURL& url); | ||||||
|  | +CONTENT_EXPORT bool IsRendererDebugURL(const GURL& url); | ||||||
|  |   | ||||||
|  |  }  // namespace content | ||||||
|  |   | ||||||
|  | diff --git third_party/WebKit/Source/web/BUILD.gn third_party/WebKit/Source/web/BUILD.gn | ||||||
|  | index 4424844..f72486f 100644 | ||||||
|  | --- third_party/WebKit/Source/web/BUILD.gn | ||||||
|  | +++ third_party/WebKit/Source/web/BUILD.gn | ||||||
|  | @@ -15,6 +15,7 @@ component("web") { | ||||||
|  |    output_name = "blink_web" | ||||||
|  |   | ||||||
|  |    deps = [ | ||||||
|  | +    "//cef:webkit_set", | ||||||
|  |      "//skia", | ||||||
|  |      "//third_party/WebKit/Source/core", | ||||||
|  |      "//third_party/WebKit/Source/modules", | ||||||
| @@ -113,7 +113,7 @@ index 93fb0b0..3e543d2 100644 | |||||||
|  // on the given |command_line|. |  // on the given |command_line|. | ||||||
|  void SetCrashKeysFromCommandLine(const base::CommandLine& command_line); |  void SetCrashKeysFromCommandLine(const base::CommandLine& command_line); | ||||||
| diff --git chrome_elf/BUILD.gn chrome_elf/BUILD.gn | diff --git chrome_elf/BUILD.gn chrome_elf/BUILD.gn | ||||||
| index c8197e9..21ad726 100644 | index c8197e9..06adc24 100644 | ||||||
| --- chrome_elf/BUILD.gn | --- chrome_elf/BUILD.gn | ||||||
| +++ chrome_elf/BUILD.gn | +++ chrome_elf/BUILD.gn | ||||||
| @@ -7,6 +7,7 @@ | @@ -7,6 +7,7 @@ | ||||||
| @@ -124,7 +124,7 @@ index c8197e9..21ad726 100644 | |||||||
|  import("//chrome/process_version_rc_template.gni") |  import("//chrome/process_version_rc_template.gni") | ||||||
|  import("//testing/test.gni") |  import("//testing/test.gni") | ||||||
|   |   | ||||||
| @@ -137,16 +138,40 @@ static_library("blacklist") { | @@ -137,16 +138,15 @@ static_library("blacklist") { | ||||||
|   |   | ||||||
|  static_library("crash") { |  static_library("crash") { | ||||||
|    sources = [ |    sources = [ | ||||||
| @@ -134,31 +134,6 @@ index c8197e9..21ad726 100644 | |||||||
|      "crash/crash_helper.cc", |      "crash/crash_helper.cc", | ||||||
|      "crash/crash_helper.h", |      "crash/crash_helper.h", | ||||||
|    ] |    ] | ||||||
| + |  | ||||||
| +  if (enable_cef) { |  | ||||||
| +    sources += [ |  | ||||||
| +      "//cef/libcef/common/crash_reporter_client.cc", |  | ||||||
| +      "//cef/libcef/common/crash_reporter_client.h", |  | ||||||
| + |  | ||||||
| +      # Required for crash_keys::GetChromeCrashKeys. |  | ||||||
| +      # Otherwise we need to copy this array into CEF, which would be difficult |  | ||||||
| +      # to maintain. |  | ||||||
| +      "//chrome/common/crash_keys.cc", |  | ||||||
| +      "//chrome/common/chrome_switches.cc", |  | ||||||
| +      "//components/flags_ui/flags_ui_switches.cc", |  | ||||||
| +      "//content/public/common/content_switches.cc", |  | ||||||
| +      "//gpu/config/gpu_crash_keys.cc", |  | ||||||
| +    ] |  | ||||||
| +    include_dirs = [ |  | ||||||
| +      "//cef", |  | ||||||
| +    ] |  | ||||||
| +  } else { |  | ||||||
| +    sources += [ |  | ||||||
| +      "//chrome/app/chrome_crash_reporter_client_win.cc", |  | ||||||
| +      "//chrome/app/chrome_crash_reporter_client_win.h", |  | ||||||
| +      "//chrome/common/chrome_result_codes.h", |  | ||||||
| +    ] |  | ||||||
| +  } |  | ||||||
| + | + | ||||||
|    deps = [ |    deps = [ | ||||||
|      ":hook_util", |      ":hook_util", | ||||||
| @@ -168,6 +143,24 @@ index c8197e9..21ad726 100644 | |||||||
|      "//chrome/install_static:install_static_util", |      "//chrome/install_static:install_static_util", | ||||||
|      "//components/crash/content/app:app", |      "//components/crash/content/app:app", | ||||||
|      "//components/crash/core/common",  # crash_keys |      "//components/crash/core/common",  # crash_keys | ||||||
|  | @@ -154,6 +154,17 @@ static_library("crash") { | ||||||
|  |      "//content/public/common:result_codes", | ||||||
|  |      "//third_party/crashpad/crashpad/client:client",  # DumpWithoutCrash | ||||||
|  |    ] | ||||||
|  | + | ||||||
|  | +  if (enable_cef) { | ||||||
|  | +    deps += [ "//cef:chrome_elf_set" ] | ||||||
|  | +    include_dirs = [ "//cef" ] | ||||||
|  | +  } else { | ||||||
|  | +    sources += [ | ||||||
|  | +      "//chrome/app/chrome_crash_reporter_client_win.cc", | ||||||
|  | +      "//chrome/app/chrome_crash_reporter_client_win.h", | ||||||
|  | +      "//chrome/common/chrome_result_codes.h", | ||||||
|  | +    ] | ||||||
|  | +  } | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  static_library("hook_util") { | ||||||
| diff --git chrome_elf/crash/crash_helper.cc chrome_elf/crash/crash_helper.cc | diff --git chrome_elf/crash/crash_helper.cc chrome_elf/crash/crash_helper.cc | ||||||
| index c658fa9..8c4a145 100644 | index c658fa9..8c4a145 100644 | ||||||
| --- chrome_elf/crash/crash_helper.cc | --- chrome_elf/crash/crash_helper.cc | ||||||
|   | |||||||
| @@ -62,14 +62,14 @@ index 141a083..b16b4d6 100644 | |||||||
|    ResourceContext* resource_context = browser_context->GetResourceContext(); |    ResourceContext* resource_context = browser_context->GetResourceContext(); | ||||||
|   |   | ||||||
| diff --git content/browser/resource_context_impl.h content/browser/resource_context_impl.h | diff --git content/browser/resource_context_impl.h content/browser/resource_context_impl.h | ||||||
| index 903cc54..56ee4ea 100644 | index 903cc54..5bd30ae 100644 | ||||||
| --- content/browser/resource_context_impl.h | --- content/browser/resource_context_impl.h | ||||||
| +++ content/browser/resource_context_impl.h | +++ content/browser/resource_context_impl.h | ||||||
| @@ -28,6 +28,8 @@ CONTENT_EXPORT StreamContext* GetStreamContextForResourceContext( | @@ -28,6 +28,8 @@ CONTENT_EXPORT StreamContext* GetStreamContextForResourceContext( | ||||||
|  URLDataManagerBackend* GetURLDataManagerForResourceContext( |  URLDataManagerBackend* GetURLDataManagerForResourceContext( | ||||||
|      ResourceContext* context); |      ResourceContext* context); | ||||||
|   |   | ||||||
| +const void* GetURLDataManagerBackendUserDataKey(); | +CONTENT_EXPORT const void* GetURLDataManagerBackendUserDataKey(); | ||||||
| + | + | ||||||
|  // Initialize the above data on the ResourceContext from a given BrowserContext. |  // Initialize the above data on the ResourceContext from a given BrowserContext. | ||||||
|  CONTENT_EXPORT void InitializeResourceContext(BrowserContext* browser_context); |  CONTENT_EXPORT void InitializeResourceContext(BrowserContext* browser_context); | ||||||
|   | |||||||
| @@ -197,6 +197,11 @@ def GetRecommendedDefaultArgs(): | |||||||
|   result = { |   result = { | ||||||
|       # Enable NaCL. Default is true. False is recommended for faster builds. |       # Enable NaCL. Default is true. False is recommended for faster builds. | ||||||
|       'enable_nacl': False, |       'enable_nacl': False, | ||||||
|  |  | ||||||
|  |       # Disable component builds. Default depends on the platform. True results | ||||||
|  |       # in faster local builds but False is required to create a CEF binary | ||||||
|  |       # distribution. | ||||||
|  |       'is_component_build': False, | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   if platform == 'linux': |   if platform == 'linux': | ||||||
| @@ -236,10 +241,6 @@ def GetRequiredArgs(): | |||||||
|  |  | ||||||
|       # Enable support for Widevine CDM. |       # Enable support for Widevine CDM. | ||||||
|       'enable_widevine': True, |       'enable_widevine': True, | ||||||
|  |  | ||||||
|       # CEF does not currently support component builds. See |  | ||||||
|       # https://bitbucket.org/chromiumembedded/cef/issues/1617 |  | ||||||
|       'is_component_build': False, |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   if platform == 'linux' or platform == 'macosx': |   if platform == 'linux' or platform == 'macosx': | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user