mirror of
				https://bitbucket.org/chromiumembedded/cef
				synced 2025-06-05 21:39:12 +02:00 
			
		
		
		
	Update to Chromium revision fea84635 (#321386)
- Use a separate utility process for V8 proxy resolution (see http://crbug.com/11746).
This commit is contained in:
		| @@ -7,5 +7,5 @@ | ||||
| # https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding | ||||
|  | ||||
| { | ||||
|   'chromium_checkout': '47fb4821713cf85fce53c5bae575343e97041681', | ||||
|   'chromium_checkout': 'fea846358e7c2efe04bdeb4b01ecccee6efe7759', | ||||
| } | ||||
|   | ||||
							
								
								
									
										5
									
								
								cef.gyp
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								cef.gyp
									
									
									
									
									
								
							| @@ -860,7 +860,7 @@ | ||||
|         '<(DEPTH)/base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', | ||||
|         '<(DEPTH)/cc/blink/cc_blink.gyp:cc_blink', | ||||
|         '<(DEPTH)/cc/cc.gyp:cc', | ||||
|         '<(DEPTH)/components/components.gyp:crash_component', | ||||
|         '<(DEPTH)/components/components.gyp:crash_component_breakpad_mac_to_be_deleted', | ||||
|         '<(DEPTH)/components/components.gyp:keyed_service_content', | ||||
|         '<(DEPTH)/components/components.gyp:keyed_service_core', | ||||
|         '<(DEPTH)/components/components.gyp:navigation_interception', | ||||
| @@ -883,6 +883,7 @@ | ||||
|         '<(DEPTH)/media/blink/media_blink.gyp:media_blink', | ||||
|         '<(DEPTH)/media/media.gyp:media', | ||||
|         '<(DEPTH)/net/net.gyp:net', | ||||
|         '<(DEPTH)/net/net.gyp:net_browser_services', | ||||
|         '<(DEPTH)/net/net.gyp:net_with_v8', | ||||
|         '<(DEPTH)/skia/skia.gyp:skia', | ||||
|         '<(DEPTH)/storage/storage_browser.gyp:storage', | ||||
| @@ -1121,6 +1122,8 @@ | ||||
|         '<(DEPTH)/chrome/browser/net/pref_proxy_config_tracker_impl.h', | ||||
|         '<(DEPTH)/chrome/browser/net/proxy_service_factory.cc', | ||||
|         '<(DEPTH)/chrome/browser/net/proxy_service_factory.h', | ||||
|         '<(DEPTH)/chrome/browser/net/utility_process_mojo_proxy_resolver_factory.cc', | ||||
|         '<(DEPTH)/chrome/browser/net/utility_process_mojo_proxy_resolver_factory.h', | ||||
|         '<(DEPTH)/chrome/browser/prefs/command_line_pref_store.cc', | ||||
|         '<(DEPTH)/chrome/browser/prefs/command_line_pref_store.h', | ||||
|         '<(DEPTH)/chrome/browser/prefs/proxy_config_dictionary.cc', | ||||
|   | ||||
| @@ -62,7 +62,7 @@ void WriteTempFileAndView(scoped_refptr<base::RefCountedString> str) { | ||||
|   int write_ct = base::WriteFile(tmp_file, data.c_str(), data.size()); | ||||
|   DCHECK_EQ(static_cast<int>(data.size()), write_ct); | ||||
|  | ||||
|   ui::win::OpenItemViaShell(tmp_file); | ||||
|   ui::win::OpenFileViaShell(tmp_file); | ||||
| } | ||||
|  | ||||
| // From ui/base/dialogs/select_file_dialog_win.cc. | ||||
|   | ||||
| @@ -72,6 +72,11 @@ chrome_variations::VariationsService* | ||||
|   return NULL; | ||||
| } | ||||
|  | ||||
| PromoResourceService* ChromeBrowserProcessStub::promo_resource_service() { | ||||
|   NOTIMPLEMENTED(); | ||||
|   return NULL; | ||||
| } | ||||
|  | ||||
| BrowserProcessPlatformPart* ChromeBrowserProcessStub::platform_part() { | ||||
|   NOTIMPLEMENTED(); | ||||
|   return NULL; | ||||
| @@ -217,11 +222,6 @@ ChromeNetLog* ChromeBrowserProcessStub::net_log() { | ||||
|   return NULL; | ||||
| } | ||||
|  | ||||
| prerender::PrerenderTracker* ChromeBrowserProcessStub::prerender_tracker() { | ||||
|   NOTIMPLEMENTED(); | ||||
|   return NULL; | ||||
| } | ||||
|  | ||||
| component_updater::ComponentUpdateService* | ||||
|     ChromeBrowserProcessStub::component_updater() { | ||||
|   NOTIMPLEMENTED(); | ||||
|   | ||||
| @@ -40,6 +40,7 @@ class ChromeBrowserProcessStub : public BrowserProcess { | ||||
|   PrefService* local_state() override; | ||||
|   net::URLRequestContextGetter* system_request_context() override; | ||||
|   chrome_variations::VariationsService* variations_service() override; | ||||
|   PromoResourceService* promo_resource_service() override; | ||||
|   BrowserProcessPlatformPart* platform_part() override; | ||||
|   extensions::EventRouterForwarder* | ||||
|       extension_event_router_forwarder() override; | ||||
| @@ -80,7 +81,6 @@ class ChromeBrowserProcessStub : public BrowserProcess { | ||||
| #endif | ||||
|  | ||||
|   ChromeNetLog* net_log() override; | ||||
|   prerender::PrerenderTracker* prerender_tracker() override; | ||||
|   component_updater::ComponentUpdateService* | ||||
|       component_updater() override; | ||||
|   CRLSetFetcher* crl_set_fetcher() override; | ||||
|   | ||||
| @@ -184,8 +184,7 @@ class CefAllowCertificateErrorCallbackImpl | ||||
|  | ||||
| class CefGeolocationCallbackImpl : public CefGeolocationCallback { | ||||
|  public: | ||||
|   typedef base::Callback<void(bool)>  // NOLINT(readability/function) | ||||
|       CallbackType; | ||||
|   typedef base::Callback<void(content::PermissionStatus)> CallbackType; | ||||
|  | ||||
|   explicit CefGeolocationCallbackImpl(const CallbackType& callback) | ||||
|       : callback_(callback) {} | ||||
| @@ -198,7 +197,8 @@ class CefGeolocationCallbackImpl : public CefGeolocationCallback { | ||||
|               UserDidOptIntoLocationServices(); | ||||
|         } | ||||
|  | ||||
|         callback_.Run(allow); | ||||
|         callback_.Run(allow ? content::PERMISSION_STATUS_GRANTED : | ||||
|                               content::PERMISSION_STATUS_DENIED); | ||||
|         callback_.Reset(); | ||||
|       } | ||||
|     } else { | ||||
| @@ -212,9 +212,10 @@ class CefGeolocationCallbackImpl : public CefGeolocationCallback { | ||||
|   } | ||||
|  | ||||
|  private: | ||||
|   static void Run(const CallbackType& callback, bool allow) { | ||||
|   static void Run(const CallbackType& callback, | ||||
|                   content::PermissionStatus status) { | ||||
|     CEF_REQUIRE_UIT(); | ||||
|     callback.Run(allow); | ||||
|     callback.Run(status); | ||||
|   } | ||||
|  | ||||
|   CallbackType callback_; | ||||
| @@ -767,11 +768,11 @@ void CefContentBrowserClient::RequestPermission( | ||||
|     int bridge_id, | ||||
|     const GURL& requesting_frame, | ||||
|     bool user_gesture, | ||||
|     const base::Callback<void(bool)>& result_callback) { | ||||
|     const base::Callback<void(content::PermissionStatus)>& result_callback) { | ||||
|   CEF_REQUIRE_UIT(); | ||||
|  | ||||
|   if (permission != content::PermissionType::PERMISSION_GEOLOCATION) { | ||||
|     result_callback.Run(false); | ||||
|     result_callback.Run(content::PERMISSION_STATUS_DENIED); | ||||
|     return; | ||||
|   } | ||||
|  | ||||
| @@ -800,7 +801,7 @@ void CefContentBrowserClient::RequestPermission( | ||||
|  | ||||
|   if (!proceed) { | ||||
|     // Disallow geolocation access by default. | ||||
|     result_callback.Run(false); | ||||
|     result_callback.Run(content::PERMISSION_STATUS_DENIED); | ||||
|   } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -112,11 +112,12 @@ class CefContentBrowserClient : public content::ContentBrowserClient { | ||||
|       int bridge_id, | ||||
|       const GURL& requesting_frame, | ||||
|       bool user_gesture, | ||||
|       const base::Callback<void(bool)>& result_callback) override; | ||||
|       const base::Callback<void(content::PermissionStatus)>& result_callback) | ||||
|       override; | ||||
|   void CancelPermissionRequest(content::PermissionType permission, | ||||
|                                        content::WebContents* web_contents, | ||||
|                                        int bridge_id, | ||||
|                                        const GURL& requesting_frame) override; | ||||
|                                content::WebContents* web_contents, | ||||
|                                int bridge_id, | ||||
|                                const GURL& requesting_frame) override; | ||||
|   bool CanCreateWindow(const GURL& opener_url, | ||||
|                        const GURL& opener_top_level_frame_url, | ||||
|                        const GURL& source_origin, | ||||
|   | ||||
| @@ -19,7 +19,6 @@ | ||||
| #include "base/logging.h" | ||||
| #include "base/threading/thread_restrictions.h" | ||||
| #include "content/browser/net/sqlite_persistent_cookie_store.h" | ||||
| #include "content/public/browser/cookie_crypto_delegate.h" | ||||
| #include "net/cookies/cookie_util.h" | ||||
| #include "net/cookies/parsed_cookie.h" | ||||
| #include "net/url_request/url_request_context.h" | ||||
|   | ||||
| @@ -112,17 +112,19 @@ CefDevToolsFrontend* CefDevToolsFrontend::Show( | ||||
|                                  inspected_browser->GetWindowHandle(), true, | ||||
|                                  inspected_browser->GetRequestContext()); | ||||
|  | ||||
|   scoped_refptr<content::DevToolsAgentHost> agent_host = | ||||
|       content::DevToolsAgentHost::GetOrCreateFor( | ||||
|           inspected_browser->GetWebContents()); | ||||
|   if (!inspect_element_at.IsEmpty()) | ||||
|   content::WebContents* inspected_contents = | ||||
|       inspected_browser->GetWebContents(); | ||||
|   if (!inspect_element_at.IsEmpty()) { | ||||
|     scoped_refptr<content::DevToolsAgentHost> agent_host = | ||||
|         content::DevToolsAgentHost::GetOrCreateFor(inspected_contents); | ||||
|     agent_host->InspectElement(inspect_element_at.x, inspect_element_at.y); | ||||
|   } | ||||
|  | ||||
|   // CefDevToolsFrontend will delete itself when the frontend WebContents is | ||||
|   // destroyed. | ||||
|   CefDevToolsFrontend* devtools_frontend = new CefDevToolsFrontend( | ||||
|       static_cast<CefBrowserHostImpl*>(frontend_browser.get()), | ||||
|       agent_host.get()); | ||||
|       inspected_contents); | ||||
|  | ||||
|   // Need to load the URL after creating the DevTools objects. | ||||
|   CefDevToolsDelegate* delegate = | ||||
| @@ -163,10 +165,10 @@ void CefDevToolsFrontend::DisconnectFromTarget() { | ||||
|  | ||||
| CefDevToolsFrontend::CefDevToolsFrontend( | ||||
|     CefRefPtr<CefBrowserHostImpl> frontend_browser, | ||||
|     content::DevToolsAgentHost* agent_host) | ||||
|     content::WebContents* inspected_contents) | ||||
|     : WebContentsObserver(frontend_browser->GetWebContents()), | ||||
|       frontend_browser_(frontend_browser), | ||||
|       agent_host_(agent_host), | ||||
|       inspected_contents_(inspected_contents), | ||||
|       weak_factory_(this) { | ||||
| } | ||||
|  | ||||
| @@ -184,11 +186,10 @@ void CefDevToolsFrontend::RenderViewCreated( | ||||
|   } | ||||
| } | ||||
|  | ||||
| void CefDevToolsFrontend::DidNavigateMainFrame( | ||||
|     const content::LoadCommittedDetails& details, | ||||
|     const content::FrameNavigateParams& params) { | ||||
|   if (agent_host_) | ||||
|     agent_host_->AttachClient(this); | ||||
| void CefDevToolsFrontend::DocumentAvailableInMainFrame() { | ||||
|   agent_host_ = | ||||
|       content::DevToolsAgentHost::GetOrCreateFor(inspected_contents_); | ||||
|   agent_host_->AttachClient(this); | ||||
| } | ||||
|  | ||||
| void CefDevToolsFrontend::WebContentsDestroyed() { | ||||
| @@ -340,11 +341,6 @@ void CefDevToolsFrontend::SendMessageAck(int request_id, | ||||
|                      &id_value, arg, nullptr); | ||||
| } | ||||
|  | ||||
| void CefDevToolsFrontend::AttachTo(content::WebContents* inspected_contents) { | ||||
|   DisconnectFromTarget(); | ||||
|   agent_host_ = content::DevToolsAgentHost::GetOrCreateFor(inspected_contents); | ||||
| } | ||||
|  | ||||
| void CefDevToolsFrontend::AgentHostClosed( | ||||
|     content::DevToolsAgentHost* agent_host, | ||||
|     bool replaced) { | ||||
|   | ||||
| @@ -56,7 +56,7 @@ class CefDevToolsFrontend : public content::WebContentsObserver, | ||||
|  | ||||
|  private: | ||||
|   CefDevToolsFrontend(CefRefPtr<CefBrowserHostImpl> frontend_browser, | ||||
|                       content::DevToolsAgentHost* agent_host); | ||||
|                       content::WebContents* inspected_contents); | ||||
|   ~CefDevToolsFrontend() override; | ||||
|  | ||||
|   // content::DevToolsAgentHostClient implementation. | ||||
| @@ -64,13 +64,10 @@ class CefDevToolsFrontend : public content::WebContentsObserver, | ||||
|                        bool replaced) override; | ||||
|   void DispatchProtocolMessage(content::DevToolsAgentHost* agent_host, | ||||
|                                const std::string& message) override; | ||||
|   void AttachTo(content::WebContents* inspected_contents); | ||||
|  | ||||
|   // WebContentsObserver overrides | ||||
|   void RenderViewCreated(content::RenderViewHost* render_view_host) override; | ||||
|   void DidNavigateMainFrame( | ||||
|       const content::LoadCommittedDetails& details, | ||||
|       const content::FrameNavigateParams& params) override; | ||||
|   void DocumentAvailableInMainFrame() override; | ||||
|   void WebContentsDestroyed() override; | ||||
|  | ||||
|   // content::DevToolsFrontendHost::Delegate implementation. | ||||
| @@ -85,6 +82,7 @@ class CefDevToolsFrontend : public content::WebContentsObserver, | ||||
|                       const base::Value* arg1); | ||||
|  | ||||
|   CefRefPtr<CefBrowserHostImpl> frontend_browser_; | ||||
|   content::WebContents* inspected_contents_; | ||||
|   scoped_refptr<content::DevToolsAgentHost> agent_host_; | ||||
|   scoped_ptr<content::DevToolsFrontendHost> frontend_host_; | ||||
|   using PendingRequestsMap = std::map<const net::URLFetcher*, int>; | ||||
|   | ||||
| @@ -187,8 +187,7 @@ void PrintViewManagerBase::OnPrintingFailed(int cookie) { | ||||
| void PrintViewManagerBase::OnShowInvalidPrinterSettingsError() { | ||||
| } | ||||
|  | ||||
| void PrintViewManagerBase::DidStartLoading( | ||||
|     content::RenderViewHost* render_view_host) { | ||||
| void PrintViewManagerBase::DidStartLoading() { | ||||
|   UpdateScriptedPrintingBlocked(); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -70,8 +70,7 @@ class PrintViewManagerBase : public content::NotificationObserver, | ||||
|                const content::NotificationDetails& details) override; | ||||
|  | ||||
|   // content::WebContentsObserver implementation. | ||||
|   void DidStartLoading( | ||||
|       content::RenderViewHost* render_view_host) override; | ||||
|   void DidStartLoading() override; | ||||
|  | ||||
|   // Cancels the print job. | ||||
|   void NavigationStopped() override; | ||||
|   | ||||
| @@ -294,12 +294,17 @@ void CefRenderWidgetHostViewOSR::PlatformCreateCompositorWidget() { | ||||
|   [content_view setWantsLayer:YES]; | ||||
|  | ||||
|   browser_compositor_ = content::BrowserCompositorMac::Create(); | ||||
|  | ||||
|   compositor_.reset(browser_compositor_->compositor()); | ||||
|   compositor_->SetRootLayer(root_layer_.get()); | ||||
|   browser_compositor_->accelerated_widget_mac()->SetNSView(this); | ||||
|   browser_compositor_->compositor()->SetVisible(true); | ||||
|  | ||||
|   DCHECK(compositor_); | ||||
|   // CEF needs the browser compositor to remain responsive whereas normal | ||||
|   // rendering on OS X does not. This effectively reverts the changes from | ||||
|   // https://crbug.com/463988#c6 | ||||
|   compositor_->SetLocksWillTimeOut(true); | ||||
|   browser_compositor_->Unsuspend(); | ||||
| } | ||||
|  | ||||
| void CefRenderWidgetHostViewOSR::PlatformDestroyCompositorWidget() { | ||||
|   | ||||
| @@ -27,7 +27,6 @@ | ||||
| #include "chrome/browser/net/proxy_service_factory.h" | ||||
| #include "content/browser/net/sqlite_persistent_cookie_store.h" | ||||
| #include "content/public/browser/browser_thread.h" | ||||
| #include "content/public/browser/cookie_crypto_delegate.h" | ||||
| #include "content/public/common/content_client.h" | ||||
| #include "content/public/common/content_switches.h" | ||||
| #include "content/public/common/url_constants.h" | ||||
|   | ||||
| @@ -24,6 +24,7 @@ | ||||
| #include "content/public/renderer/document_state.h" | ||||
| #include "content/public/renderer/navigation_state.h" | ||||
| #include "content/public/renderer/render_view.h" | ||||
| #include "content/renderer/navigation_state_impl.h" | ||||
| #include "content/renderer/render_view_impl.h" | ||||
| #include "net/http/http_util.h" | ||||
| #include "third_party/WebKit/public/platform/WebString.h" | ||||
| @@ -582,8 +583,10 @@ void CefBrowserImpl::DidCreateDataSource(blink::WebLocalFrame* frame, | ||||
|     content::DocumentState* document_state = | ||||
|         content::DocumentState::FromDataSource(ds); | ||||
|     document_state->set_navigation_state( | ||||
|         content::NavigationState::CreateBrowserInitiated(-1, -1, false, | ||||
|             ui::PAGE_TRANSITION_LINK)); | ||||
|         content::NavigationStateImpl::CreateBrowserInitiated( | ||||
|             content::CommonNavigationParams(), | ||||
|             content::StartNavigationParams(), | ||||
|             content::HistoryNavigationParams())); | ||||
|   } | ||||
|  | ||||
|   if (frame->parent() == 0) { | ||||
|   | ||||
| @@ -624,8 +624,10 @@ bool CefContentRendererClient::HandleNavigation( | ||||
| } | ||||
|  | ||||
| void CefContentRendererClient::DidCreateScriptContext( | ||||
|     blink::WebFrame* frame, v8::Handle<v8::Context> context, | ||||
|     int extension_group, int world_id) { | ||||
|     blink::WebLocalFrame* frame, | ||||
|     v8::Handle<v8::Context> context, | ||||
|     int extension_group, | ||||
|     int world_id) { | ||||
|   CefRefPtr<CefBrowserImpl> browserPtr = | ||||
|       CefBrowserImpl::GetBrowserForMainFrame(frame->top()); | ||||
|   DCHECK(browserPtr.get()); | ||||
|   | ||||
| @@ -94,7 +94,7 @@ class CefContentRendererClient : public content::ContentRendererClient, | ||||
|                         blink::WebNavigationType type, | ||||
|                         blink::WebNavigationPolicy default_policy, | ||||
|                         bool is_redirect) override; | ||||
|  void DidCreateScriptContext(blink::WebFrame* frame, | ||||
|  void DidCreateScriptContext(blink::WebLocalFrame* frame, | ||||
|                              v8::Handle<v8::Context> context, | ||||
|                              int extension_group, | ||||
|                              int world_id) override; | ||||
|   | ||||
| @@ -7,7 +7,9 @@ | ||||
|  | ||||
| #include "chrome/common/chrome_utility_messages.h" | ||||
| #include "chrome/utility/utility_message_handler.h" | ||||
| #include "content/public/common/service_registry.h" | ||||
| #include "content/public/utility/utility_thread.h" | ||||
| #include "net/proxy/mojo_proxy_resolver_factory_impl.h" | ||||
|  | ||||
| #if defined(OS_WIN) | ||||
| #include "libcef/utility/printing_handler.h" | ||||
| @@ -19,6 +21,15 @@ bool Send(IPC::Message* message) { | ||||
|   return content::UtilityThread::Get()->Send(message); | ||||
| } | ||||
|  | ||||
| void CreateProxyResolverFactory( | ||||
|     mojo::InterfaceRequest<net::interfaces::ProxyResolverFactory> request) { | ||||
|   // MojoProxyResolverFactoryImpl is strongly bound to the Mojo message pipe it | ||||
|   // is connected to. When that message pipe is closed, either explicitly on the | ||||
|   // other end (in the browser process), or by a connection error, this object | ||||
|   // will be destroyed. | ||||
|   new net::MojoProxyResolverFactoryImpl(request.Pass()); | ||||
| } | ||||
|  | ||||
| }  // namespace | ||||
|  | ||||
| CefContentUtilityClient::CefContentUtilityClient() { | ||||
| @@ -47,6 +58,12 @@ bool CefContentUtilityClient::OnMessageReceived( | ||||
|   return handled; | ||||
| } | ||||
|  | ||||
| void CefContentUtilityClient::RegisterMojoServices( | ||||
|     content::ServiceRegistry* registry) { | ||||
|   registry->AddService<net::interfaces::ProxyResolverFactory>( | ||||
|       base::Bind(CreateProxyResolverFactory)); | ||||
| } | ||||
|  | ||||
| void CefContentUtilityClient::OnStartupPing() { | ||||
|   Send(new ChromeUtilityHostMsg_ProcessStarted); | ||||
|   // Don't release the process, we assume further messages are on the way. | ||||
|   | ||||
| @@ -17,6 +17,7 @@ class CefContentUtilityClient : public content::ContentUtilityClient { | ||||
|   ~CefContentUtilityClient() override; | ||||
|  | ||||
|   bool OnMessageReceived(const IPC::Message& message) override; | ||||
|   void RegisterMojoServices(content::ServiceRegistry* registry) override; | ||||
|  | ||||
|  private: | ||||
|   // IPC message handlers. | ||||
|   | ||||
| @@ -129,13 +129,6 @@ patches = [ | ||||
|     'name': 'base_atomicops_455263', | ||||
|     'path': '../base/allocator/', | ||||
|   }, | ||||
|   { | ||||
|     # Fix assertion on Linux when ProxyConfigServiceLinux is deleted on the IO | ||||
|     # thread. | ||||
|     # https://code.google.com/p/chromium/issues/detail?id=462624 | ||||
|     'name': 'net_proxy_462624', | ||||
|     'path': '../net/proxy/', | ||||
|   }, | ||||
|   { | ||||
|     # Make URLRequest::set_is_pending() public so that it can be called from | ||||
|     # CefRequestInterceptor::MaybeInterceptResponse(). | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git web_contents_impl.cc web_contents_impl.cc | ||||
| index ede1642..9a7d93b 100644 | ||||
| index 8dd4307..e3a6baa 100644 | ||||
| --- web_contents_impl.cc | ||||
| +++ web_contents_impl.cc | ||||
| @@ -1212,22 +1212,29 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { | ||||
| @@ -1269,22 +1269,29 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params) { | ||||
|        params.browser_context, params.site_instance, params.routing_id, | ||||
|        params.main_frame_routing_id); | ||||
|   | ||||
| @@ -48,7 +48,7 @@ index ede1642..9a7d93b 100644 | ||||
|    } | ||||
|    CHECK(render_view_host_delegate_view_); | ||||
|    CHECK(view_.get()); | ||||
| @@ -1576,6 +1583,9 @@ void WebContentsImpl::CreateNewWindow( | ||||
| @@ -1640,6 +1647,9 @@ void WebContentsImpl::CreateNewWindow( | ||||
|        static_cast<SessionStorageNamespaceImpl*>(session_storage_namespace); | ||||
|    CHECK(session_storage_namespace_impl->IsFromContext(dom_storage_context)); | ||||
|   | ||||
| @@ -58,7 +58,7 @@ index ede1642..9a7d93b 100644 | ||||
|    if (delegate_ && | ||||
|        !delegate_->ShouldCreateWebContents(this, | ||||
|                                            route_id, | ||||
| @@ -1584,7 +1594,9 @@ void WebContentsImpl::CreateNewWindow( | ||||
| @@ -1648,7 +1658,9 @@ void WebContentsImpl::CreateNewWindow( | ||||
|                                            params.frame_name, | ||||
|                                            params.target_url, | ||||
|                                            partition_id, | ||||
| @@ -69,7 +69,7 @@ index ede1642..9a7d93b 100644 | ||||
|      if (route_id != MSG_ROUTING_NONE && | ||||
|          !RenderViewHost::FromID(render_process_id, route_id)) { | ||||
|        // If the embedder didn't create a WebContents for this route, we need to | ||||
| @@ -1604,6 +1616,8 @@ void WebContentsImpl::CreateNewWindow( | ||||
| @@ -1668,6 +1680,8 @@ void WebContentsImpl::CreateNewWindow( | ||||
|    create_params.main_frame_routing_id = main_frame_route_id; | ||||
|    create_params.opener = this; | ||||
|    create_params.opener_suppressed = params.opener_suppressed; | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git common.gypi common.gypi | ||||
| index 4fcd211..9bfa165 100644 | ||||
| index e32eae2..46c355a 100644 | ||||
| --- common.gypi | ||||
| +++ common.gypi | ||||
| @@ -9,6 +9,9 @@ | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git ui/browser.cc ui/browser.cc | ||||
| index 53dfccd..771bd25 100644 | ||||
| index 21e292e..074b41e 100644 | ||||
| --- ui/browser.cc | ||||
| +++ ui/browser.cc | ||||
| @@ -1578,7 +1578,9 @@ bool Browser::ShouldCreateWebContents( | ||||
| @@ -1596,7 +1596,9 @@ bool Browser::ShouldCreateWebContents( | ||||
|      const base::string16& frame_name, | ||||
|      const GURL& target_url, | ||||
|      const std::string& partition_id, | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git content/browser/compositor/gpu_process_transport_factory.cc content/browser/compositor/gpu_process_transport_factory.cc | ||||
| index 3658c25..74acc61 100644 | ||||
| index dfb1041..4a4b14d 100644 | ||||
| --- content/browser/compositor/gpu_process_transport_factory.cc | ||||
| +++ content/browser/compositor/gpu_process_transport_factory.cc | ||||
| @@ -98,6 +98,13 @@ GpuProcessTransportFactory::CreateOffscreenCommandBufferContext() { | ||||
| @@ -100,6 +100,13 @@ GpuProcessTransportFactory::CreateOffscreenCommandBufferContext() { | ||||
|   | ||||
|  scoped_ptr<cc::SoftwareOutputDevice> CreateSoftwareOutputDevice( | ||||
|      ui::Compositor* compositor) { | ||||
| @@ -17,7 +17,7 @@ index 3658c25..74acc61 100644 | ||||
|    return scoped_ptr<cc::SoftwareOutputDevice>(new SoftwareOutputDeviceWin( | ||||
|        compositor)); | ||||
| diff --git ui/compositor/compositor.h ui/compositor/compositor.h | ||||
| index 47d4cd0..793bbe3 100644 | ||||
| index 3a3e4cc..9fed916 100644 | ||||
| --- ui/compositor/compositor.h | ||||
| +++ ui/compositor/compositor.h | ||||
| @@ -13,6 +13,7 @@ | ||||
| @@ -28,7 +28,7 @@ index 47d4cd0..793bbe3 100644 | ||||
|  #include "cc/surfaces/surface_sequence.h" | ||||
|  #include "cc/trees/layer_tree_host_client.h" | ||||
|  #include "cc/trees/layer_tree_host_single_thread_client.h" | ||||
| @@ -131,6 +132,17 @@ class COMPOSITOR_EXPORT CompositorLock | ||||
| @@ -132,6 +133,17 @@ class COMPOSITOR_EXPORT CompositorLock | ||||
|    DISALLOW_COPY_AND_ASSIGN(CompositorLock); | ||||
|  }; | ||||
|   | ||||
| @@ -46,7 +46,7 @@ index 47d4cd0..793bbe3 100644 | ||||
|  // Compositor object to take care of GPU painting. | ||||
|  // A Browser compositor object is responsible for generating the final | ||||
|  // displayable form of pixels comprising a single widget's contents. It draws an | ||||
| @@ -152,6 +164,9 @@ class COMPOSITOR_EXPORT Compositor | ||||
| @@ -153,6 +165,9 @@ class COMPOSITOR_EXPORT Compositor | ||||
|    // Schedules a redraw of the layer tree associated with this compositor. | ||||
|    void ScheduleDraw(); | ||||
|   | ||||
| @@ -56,7 +56,7 @@ index 47d4cd0..793bbe3 100644 | ||||
|    // Sets the root of the layer tree drawn by this Compositor. The root layer | ||||
|    // must have no parent. The compositor's root layer is reset if the root layer | ||||
|    // is destroyed. NULL can be passed to reset the root layer, in which case the | ||||
| @@ -297,6 +312,8 @@ class COMPOSITOR_EXPORT Compositor | ||||
| @@ -305,6 +320,8 @@ class COMPOSITOR_EXPORT Compositor | ||||
|   | ||||
|    ui::ContextFactory* context_factory_; | ||||
|   | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git public/renderer/content_renderer_client.cc public/renderer/content_renderer_client.cc | ||||
| index b56613e..b384eac 100644 | ||||
| index 6e66fe3..32957fc 100644 | ||||
| --- public/renderer/content_renderer_client.cc | ||||
| +++ public/renderer/content_renderer_client.cc | ||||
| @@ -99,7 +99,6 @@ bool ContentRendererClient::AllowPopup() { | ||||
| @@ -19,7 +19,7 @@ index b56613e..b384eac 100644 | ||||
|  bool ContentRendererClient::ShouldFork(blink::WebFrame* frame, | ||||
|                                         const GURL& url, | ||||
| diff --git public/renderer/content_renderer_client.h public/renderer/content_renderer_client.h | ||||
| index 7889016..21307b6 100644 | ||||
| index 45176ab..07de846 100644 | ||||
| --- public/renderer/content_renderer_client.h | ||||
| +++ public/renderer/content_renderer_client.h | ||||
| @@ -193,7 +193,6 @@ class CONTENT_EXPORT ContentRendererClient { | ||||
| @@ -39,10 +39,10 @@ index 7889016..21307b6 100644 | ||||
|    // Returns true if we should fork a new process for the given navigation. | ||||
|    // If |send_referrer| is set to false (which is the default), no referrer | ||||
| diff --git renderer/render_frame_impl.cc renderer/render_frame_impl.cc | ||||
| index 1e3667f..87b2ec4 100644 | ||||
| index 88c7bd4..70122f8 100644 | ||||
| --- renderer/render_frame_impl.cc | ||||
| +++ renderer/render_frame_impl.cc | ||||
| @@ -3906,7 +3906,6 @@ void RenderFrameImpl::OnCommitNavigation( | ||||
| @@ -4006,7 +4006,6 @@ void RenderFrameImpl::OnCommitNavigation( | ||||
|  WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation( | ||||
|      RenderFrame* render_frame, | ||||
|      const NavigationPolicyInfo& info) { | ||||
| @@ -50,7 +50,7 @@ index 1e3667f..87b2ec4 100644 | ||||
|    // The handlenavigation API is deprecated and will be removed once | ||||
|    // crbug.com/325351 is resolved. | ||||
|    if (info.urlRequest.url() != GURL(kSwappedOutURL) && | ||||
| @@ -3921,7 +3920,6 @@ WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation( | ||||
| @@ -4021,7 +4020,6 @@ WebNavigationPolicy RenderFrameImpl::DecidePolicyForNavigation( | ||||
|            info.isRedirect)) { | ||||
|      return blink::WebNavigationPolicyIgnore; | ||||
|    } | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git resource_ids resource_ids | ||||
| index efd5760..62dd7b0 100644 | ||||
| index a64ae83..b32c534 100644 | ||||
| --- resource_ids | ||||
| +++ resource_ids | ||||
| @@ -14,6 +14,12 @@ | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git gyp/generator/ninja.py gyp/generator/ninja.py | ||||
| index 587bf32..c9868db 100644 | ||||
| index 09df83f..f2f7cd1 100644 | ||||
| --- gyp/generator/ninja.py | ||||
| +++ gyp/generator/ninja.py | ||||
| @@ -748,7 +748,16 @@ class NinjaWriter(object): | ||||
| @@ -738,7 +738,16 @@ class NinjaWriter(object): | ||||
|        for path in copy['files']: | ||||
|          # Normalize the path so trailing slashes don't confuse us. | ||||
|          path = os.path.normpath(path) | ||||
|   | ||||
| @@ -1,130 +0,0 @@ | ||||
| diff --git proxy_config_service_linux.cc proxy_config_service_linux.cc | ||||
| index e0a9372..be8068d 100644 | ||||
| --- proxy_config_service_linux.cc | ||||
| +++ proxy_config_service_linux.cc | ||||
| @@ -202,8 +202,11 @@ const int kDebounceTimeoutMilliseconds = 250; | ||||
|  class SettingGetterImplGConf : public ProxyConfigServiceLinux::SettingGetter { | ||||
|   public: | ||||
|    SettingGetterImplGConf() | ||||
| -      : client_(NULL), system_proxy_id_(0), system_http_proxy_id_(0), | ||||
| -        notify_delegate_(NULL) { | ||||
| +      : client_(NULL), | ||||
| +        system_proxy_id_(0), | ||||
| +        system_http_proxy_id_(0), | ||||
| +        notify_delegate_(NULL), | ||||
| +        debounce_timer_(new base::OneShotTimer<SettingGetterImplGConf>()) { | ||||
|    } | ||||
|   | ||||
|    ~SettingGetterImplGConf() override { | ||||
| @@ -287,6 +290,7 @@ class SettingGetterImplGConf : public ProxyConfigServiceLinux::SettingGetter { | ||||
|        client_ = NULL; | ||||
|        task_runner_ = NULL; | ||||
|      } | ||||
| +    debounce_timer_.reset(); | ||||
|    } | ||||
|   | ||||
|    bool SetUpNotifications( | ||||
| @@ -475,8 +479,8 @@ class SettingGetterImplGConf : public ProxyConfigServiceLinux::SettingGetter { | ||||
|    void OnChangeNotification() { | ||||
|      // We don't use Reset() because the timer may not yet be running. | ||||
|      // (In that case Stop() is a no-op.) | ||||
| -    debounce_timer_.Stop(); | ||||
| -    debounce_timer_.Start(FROM_HERE, | ||||
| +    debounce_timer_->Stop(); | ||||
| +    debounce_timer_->Start(FROM_HERE, | ||||
|          base::TimeDelta::FromMilliseconds(kDebounceTimeoutMilliseconds), | ||||
|          this, &SettingGetterImplGConf::OnDebouncedNotification); | ||||
|    } | ||||
| @@ -499,7 +503,7 @@ class SettingGetterImplGConf : public ProxyConfigServiceLinux::SettingGetter { | ||||
|    guint system_http_proxy_id_; | ||||
|   | ||||
|    ProxyConfigServiceLinux::Delegate* notify_delegate_; | ||||
| -  base::OneShotTimer<SettingGetterImplGConf> debounce_timer_; | ||||
| +  scoped_ptr<base::OneShotTimer<SettingGetterImplGConf> > debounce_timer_; | ||||
|   | ||||
|    // Task runner for the thread that we make gconf calls on. It should | ||||
|    // be the UI thread and all our methods should be called on this | ||||
| @@ -523,7 +527,8 @@ class SettingGetterImplGSettings | ||||
|      https_client_(NULL), | ||||
|      ftp_client_(NULL), | ||||
|      socks_client_(NULL), | ||||
| -    notify_delegate_(NULL) { | ||||
| +    notify_delegate_(NULL), | ||||
| +    debounce_timer_(new base::OneShotTimer<SettingGetterImplGSettings>()) { | ||||
|    } | ||||
|   | ||||
|    ~SettingGetterImplGSettings() override { | ||||
| @@ -598,6 +603,7 @@ class SettingGetterImplGSettings | ||||
|        client_ = NULL; | ||||
|        task_runner_ = NULL; | ||||
|      } | ||||
| +    debounce_timer_.reset(); | ||||
|    } | ||||
|   | ||||
|    bool SetUpNotifications( | ||||
| @@ -746,8 +752,8 @@ class SettingGetterImplGSettings | ||||
|    void OnChangeNotification() { | ||||
|      // We don't use Reset() because the timer may not yet be running. | ||||
|      // (In that case Stop() is a no-op.) | ||||
| -    debounce_timer_.Stop(); | ||||
| -    debounce_timer_.Start(FROM_HERE, | ||||
| +    debounce_timer_->Stop(); | ||||
| +    debounce_timer_->Start(FROM_HERE, | ||||
|          base::TimeDelta::FromMilliseconds(kDebounceTimeoutMilliseconds), | ||||
|          this, &SettingGetterImplGSettings::OnDebouncedNotification); | ||||
|    } | ||||
| @@ -768,7 +774,7 @@ class SettingGetterImplGSettings | ||||
|    GSettings* ftp_client_; | ||||
|    GSettings* socks_client_; | ||||
|    ProxyConfigServiceLinux::Delegate* notify_delegate_; | ||||
| -  base::OneShotTimer<SettingGetterImplGSettings> debounce_timer_; | ||||
| +  scoped_ptr<base::OneShotTimer<SettingGetterImplGSettings> > debounce_timer_; | ||||
|   | ||||
|    // Task runner for the thread that we make gsettings calls on. It should | ||||
|    // be the UI thread and all our methods should be called on this | ||||
| @@ -852,9 +858,14 @@ class SettingGetterImplKDE : public ProxyConfigServiceLinux::SettingGetter, | ||||
|                               public base::MessagePumpLibevent::Watcher { | ||||
|   public: | ||||
|    explicit SettingGetterImplKDE(base::Environment* env_var_getter) | ||||
| -      : inotify_fd_(-1), notify_delegate_(NULL), indirect_manual_(false), | ||||
| -        auto_no_pac_(false), reversed_bypass_list_(false), | ||||
| -        env_var_getter_(env_var_getter), file_task_runner_(NULL) { | ||||
| +      : inotify_fd_(-1), | ||||
| +        notify_delegate_(NULL), | ||||
| +        debounce_timer_(new base::OneShotTimer<SettingGetterImplKDE>()), | ||||
| +        indirect_manual_(false), | ||||
| +        auto_no_pac_(false), | ||||
| +        reversed_bypass_list_(false), | ||||
| +        env_var_getter_(env_var_getter), | ||||
| +        file_task_runner_(NULL) { | ||||
|      // This has to be called on the UI thread (http://crbug.com/69057). | ||||
|      base::ThreadRestrictions::ScopedAllowIO allow_io; | ||||
|   | ||||
| @@ -956,6 +967,7 @@ class SettingGetterImplKDE : public ProxyConfigServiceLinux::SettingGetter, | ||||
|        close(inotify_fd_); | ||||
|        inotify_fd_ = -1; | ||||
|      } | ||||
| +    debounce_timer_.reset(); | ||||
|    } | ||||
|   | ||||
|    bool SetUpNotifications( | ||||
| @@ -1305,8 +1317,8 @@ class SettingGetterImplKDE : public ProxyConfigServiceLinux::SettingGetter, | ||||
|      if (kioslaverc_touched) { | ||||
|        // We don't use Reset() because the timer may not yet be running. | ||||
|        // (In that case Stop() is a no-op.) | ||||
| -      debounce_timer_.Stop(); | ||||
| -      debounce_timer_.Start(FROM_HERE, base::TimeDelta::FromMilliseconds( | ||||
| +      debounce_timer_->Stop(); | ||||
| +      debounce_timer_->Start(FROM_HERE, base::TimeDelta::FromMilliseconds( | ||||
|            kDebounceTimeoutMilliseconds), this, | ||||
|            &SettingGetterImplKDE::OnDebouncedNotification); | ||||
|      } | ||||
| @@ -1319,7 +1331,7 @@ class SettingGetterImplKDE : public ProxyConfigServiceLinux::SettingGetter, | ||||
|    int inotify_fd_; | ||||
|    base::MessagePumpLibevent::FileDescriptorWatcher inotify_watcher_; | ||||
|    ProxyConfigServiceLinux::Delegate* notify_delegate_; | ||||
| -  base::OneShotTimer<SettingGetterImplKDE> debounce_timer_; | ||||
| +  scoped_ptr<base::OneShotTimer<SettingGetterImplKDE> > debounce_timer_; | ||||
|    base::FilePath kde_config_dir_; | ||||
|    bool indirect_manual_; | ||||
|    bool auto_no_pac_; | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git public/common/common_param_traits_macros.h public/common/common_param_traits_macros.h | ||||
| index df89031..82d9293 100644 | ||||
| index 53f1128..46bbcf8 100644 | ||||
| --- public/common/common_param_traits_macros.h | ||||
| +++ public/common/common_param_traits_macros.h | ||||
| @@ -194,6 +194,7 @@ IPC_STRUCT_TRAITS_BEGIN(content::WebPreferences) | ||||
| @@ -11,11 +11,11 @@ index df89031..82d9293 100644 | ||||
|    IPC_STRUCT_TRAITS_MEMBER(navigate_on_drag_drop) | ||||
|    IPC_STRUCT_TRAITS_MEMBER(spatial_navigation_enabled) | ||||
| diff --git public/common/web_preferences.cc public/common/web_preferences.cc | ||||
| index 97b464e..98e7b4e 100644 | ||||
| index b61e1dc..5b55207 100644 | ||||
| --- public/common/web_preferences.cc | ||||
| +++ public/common/web_preferences.cc | ||||
| @@ -185,6 +185,7 @@ WebPreferences::WebPreferences() | ||||
|        rubber_banding_on_compositor_thread(false), | ||||
| @@ -189,6 +189,7 @@ WebPreferences::WebPreferences() | ||||
|        pinch_overlay_scrollbar_thickness(0), | ||||
|        use_solid_color_scrollbars(false), | ||||
|        navigate_on_drag_drop(true), | ||||
| +      base_background_color(0xFFFFFFFF),  // Color::white | ||||
| @@ -23,11 +23,11 @@ index 97b464e..98e7b4e 100644 | ||||
|        slimming_paint_enabled(false), | ||||
|        cookie_enabled(true), | ||||
| diff --git public/common/web_preferences.h public/common/web_preferences.h | ||||
| index 250b546..b679e26 100644 | ||||
| index 8d25487..23b25ae 100644 | ||||
| --- public/common/web_preferences.h | ||||
| +++ public/common/web_preferences.h | ||||
| @@ -181,6 +181,7 @@ struct CONTENT_EXPORT WebPreferences { | ||||
|    bool rubber_banding_on_compositor_thread; | ||||
|    int pinch_overlay_scrollbar_thickness; | ||||
|    bool use_solid_color_scrollbars; | ||||
|    bool navigate_on_drag_drop; | ||||
| +  uint32_t base_background_color; | ||||
| @@ -35,10 +35,10 @@ index 250b546..b679e26 100644 | ||||
|    bool slimming_paint_enabled; | ||||
|   | ||||
| diff --git renderer/render_view_impl.cc renderer/render_view_impl.cc | ||||
| index 6519f37..27b6699 100644 | ||||
| index 3f0f76f..bf84bdb 100644 | ||||
| --- renderer/render_view_impl.cc | ||||
| +++ renderer/render_view_impl.cc | ||||
| @@ -954,6 +954,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, | ||||
| @@ -940,6 +940,8 @@ void RenderView::ApplyWebPreferences(const WebPreferences& prefs, | ||||
|   | ||||
|    settings->setJavaEnabled(prefs.java_enabled); | ||||
|   | ||||
|   | ||||
| @@ -25,7 +25,7 @@ index aece7c6..63da2c9 100644 | ||||
|  WebContents::CreateParams::~CreateParams() { | ||||
|  } | ||||
| diff --git web_contents.h web_contents.h | ||||
| index 493abd8..eface7b 100644 | ||||
| index 4380412..a67739d 100644 | ||||
| --- web_contents.h | ||||
| +++ web_contents.h | ||||
| @@ -52,9 +52,11 @@ class PageState; | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| diff --git render_process_host_impl.cc render_process_host_impl.cc | ||||
| index 6564c438..7d58b7e 100644 | ||||
| index 4152ce2..9e235d3 100644 | ||||
| --- render_process_host_impl.cc | ||||
| +++ render_process_host_impl.cc | ||||
| @@ -2057,6 +2057,8 @@ void RenderProcessHostImpl::ProcessDied(bool already_dead, | ||||
| @@ -2084,6 +2084,8 @@ void RenderProcessHostImpl::ProcessDied(bool already_dead, | ||||
|  #endif | ||||
|    RemoveUserData(kSessionStorageHolderKey); | ||||
|   | ||||
| @@ -11,7 +11,7 @@ index 6564c438..7d58b7e 100644 | ||||
|    IDMap<IPC::Listener>::iterator iter(&listeners_); | ||||
|    while (!iter.IsAtEnd()) { | ||||
|      iter.GetCurrentValue()->OnMessageReceived( | ||||
| @@ -2066,8 +2068,6 @@ void RenderProcessHostImpl::ProcessDied(bool already_dead, | ||||
| @@ -2093,8 +2095,6 @@ void RenderProcessHostImpl::ProcessDied(bool already_dead, | ||||
|      iter.Advance(); | ||||
|    } | ||||
|   | ||||
|   | ||||
| @@ -1,18 +1,3 @@ | ||||
| diff --git core/frame/FrameView.cpp core/frame/FrameView.cpp | ||||
| index 06ced1c..a638814 100644 | ||||
| --- core/frame/FrameView.cpp | ||||
| +++ core/frame/FrameView.cpp | ||||
| @@ -146,8 +146,10 @@ FrameView::FrameView(LocalFrame* frame) | ||||
|      if (!m_frame->isMainFrame()) | ||||
|          return; | ||||
|   | ||||
| +#if 0 | ||||
|      ScrollableArea::setVerticalScrollElasticity(ScrollElasticityAllowed); | ||||
|      ScrollableArea::setHorizontalScrollElasticity(ScrollElasticityAllowed); | ||||
| +#endif | ||||
|  } | ||||
|   | ||||
|  PassRefPtrWillBeRawPtr<FrameView> FrameView::create(LocalFrame* frame) | ||||
| diff --git platform/scroll/ScrollbarThemeMacCommon.mm platform/scroll/ScrollbarThemeMacCommon.mm | ||||
| index 90abb7c..6bb16c6 100644 | ||||
| --- platform/scroll/ScrollbarThemeMacCommon.mm | ||||
|   | ||||
| @@ -43,11 +43,11 @@ index b54a643..5a589e5 100644 | ||||
|    if (input_method) | ||||
|      input_method->OnBlur(); | ||||
| diff --git desktop_aura/desktop_window_tree_host_x11.cc desktop_aura/desktop_window_tree_host_x11.cc | ||||
| index c6fc3d7..40b9b10 100644 | ||||
| index 1316b8b..588e591 100644 | ||||
| --- desktop_aura/desktop_window_tree_host_x11.cc | ||||
| +++ desktop_aura/desktop_window_tree_host_x11.cc | ||||
| @@ -154,7 +154,8 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11( | ||||
|        window_shape_(NULL), | ||||
| @@ -153,7 +153,8 @@ DesktopWindowTreeHostX11::DesktopWindowTreeHostX11( | ||||
|        window_parent_(NULL), | ||||
|        custom_window_shape_(false), | ||||
|        urgency_hint_set_(false), | ||||
| -      close_widget_factory_(this) { | ||||
| @@ -56,7 +56,7 @@ index c6fc3d7..40b9b10 100644 | ||||
|  } | ||||
|   | ||||
|  DesktopWindowTreeHostX11::~DesktopWindowTreeHostX11() { | ||||
| @@ -356,7 +357,8 @@ void DesktopWindowTreeHostX11::CloseNow() { | ||||
| @@ -353,7 +354,8 @@ void DesktopWindowTreeHostX11::CloseNow() { | ||||
|    // Actually free our native resources. | ||||
|    if (ui::PlatformEventSource::GetInstance()) | ||||
|      ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this); | ||||
| @@ -66,7 +66,7 @@ index c6fc3d7..40b9b10 100644 | ||||
|    xwindow_ = None; | ||||
|   | ||||
|    desktop_native_widget_aura_->OnHostClosed(); | ||||
| @@ -455,6 +457,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement( | ||||
| @@ -452,6 +454,8 @@ void DesktopWindowTreeHostX11::GetWindowPlacement( | ||||
|  } | ||||
|   | ||||
|  gfx::Rect DesktopWindowTreeHostX11::GetWindowBoundsInScreen() const { | ||||
| @@ -75,7 +75,7 @@ index c6fc3d7..40b9b10 100644 | ||||
|    return ToDIPRect(bounds_in_pixels_); | ||||
|  } | ||||
|   | ||||
| @@ -887,6 +891,8 @@ void DesktopWindowTreeHostX11::Hide() { | ||||
| @@ -894,6 +898,8 @@ void DesktopWindowTreeHostX11::Hide() { | ||||
|  } | ||||
|   | ||||
|  gfx::Rect DesktopWindowTreeHostX11::GetBounds() const { | ||||
| @@ -84,7 +84,7 @@ index c6fc3d7..40b9b10 100644 | ||||
|    return bounds_in_pixels_; | ||||
|  } | ||||
|   | ||||
| @@ -943,6 +949,8 @@ void DesktopWindowTreeHostX11::SetBounds( | ||||
| @@ -950,6 +956,8 @@ void DesktopWindowTreeHostX11::SetBounds( | ||||
|  } | ||||
|   | ||||
|  gfx::Point DesktopWindowTreeHostX11::GetLocationOnNativeScreen() const { | ||||
| @@ -93,7 +93,7 @@ index c6fc3d7..40b9b10 100644 | ||||
|    return bounds_in_pixels_.origin(); | ||||
|  } | ||||
|   | ||||
| @@ -1063,9 +1071,13 @@ void DesktopWindowTreeHostX11::InitX11Window( | ||||
| @@ -1070,9 +1078,13 @@ void DesktopWindowTreeHostX11::InitX11Window( | ||||
|      } | ||||
|    } | ||||
|   | ||||
| @@ -108,7 +108,7 @@ index c6fc3d7..40b9b10 100644 | ||||
|                             bounds_in_pixels_.y(), bounds_in_pixels_.width(), | ||||
|                             bounds_in_pixels_.height(), | ||||
|                             0,  // border width | ||||
| @@ -1718,6 +1730,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent( | ||||
| @@ -1717,6 +1729,10 @@ uint32_t DesktopWindowTreeHostX11::DispatchEvent( | ||||
|        } | ||||
|        break; | ||||
|      } | ||||
| @@ -120,10 +120,10 @@ index c6fc3d7..40b9b10 100644 | ||||
|        if (xev->xfocus.mode != NotifyGrab) { | ||||
|          ReleaseCapture(); | ||||
| diff --git desktop_aura/desktop_window_tree_host_x11.h desktop_aura/desktop_window_tree_host_x11.h | ||||
| index 8f00d3c..a465bed 100644 | ||||
| index 94d4b1b..2609f46 100644 | ||||
| --- desktop_aura/desktop_window_tree_host_x11.h | ||||
| +++ desktop_aura/desktop_window_tree_host_x11.h | ||||
| @@ -85,6 +85,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 | ||||
| @@ -86,6 +86,8 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 | ||||
|    // Deallocates the internal list of open windows. | ||||
|    static void CleanUpWindowList(); | ||||
|   | ||||
| @@ -132,7 +132,7 @@ index 8f00d3c..a465bed 100644 | ||||
|   protected: | ||||
|    // Overridden from DesktopWindowTreeHost: | ||||
|    void Init(aura::Window* content_window, | ||||
| @@ -264,6 +266,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 | ||||
| @@ -265,6 +267,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 | ||||
|    // The bounds of |xwindow_|. | ||||
|    gfx::Rect bounds_in_pixels_; | ||||
|   | ||||
| @@ -142,7 +142,7 @@ index 8f00d3c..a465bed 100644 | ||||
|    // Whenever the bounds are set, we keep the previous set of bounds around so | ||||
|    // we can have a better chance of getting the real | ||||
|    // |restored_bounds_in_pixels_|. Window managers tend to send a Configure | ||||
| @@ -349,6 +354,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 | ||||
| @@ -351,6 +356,9 @@ class VIEWS_EXPORT DesktopWindowTreeHostX11 | ||||
|   | ||||
|    base::WeakPtrFactory<DesktopWindowTreeHostX11> close_widget_factory_; | ||||
|   | ||||
| @@ -153,7 +153,7 @@ index 8f00d3c..a465bed 100644 | ||||
|  }; | ||||
|   | ||||
| diff --git widget.cc widget.cc | ||||
| index 7d237c8..8778686 100644 | ||||
| index 15b810a..2f01d9e 100644 | ||||
| --- widget.cc | ||||
| +++ widget.cc | ||||
| @@ -110,6 +110,7 @@ Widget::InitParams::InitParams() | ||||
| @@ -196,7 +196,7 @@ index 7d237c8..8778686 100644 | ||||
|    // This must come after SetContentsView() or it might not be able to find | ||||
|    // the correct NativeTheme (on Linux). See http://crbug.com/384492 | ||||
| diff --git widget.h widget.h | ||||
| index 06bd491..ed3893e 100644 | ||||
| index 2f6030b..fdf4172 100644 | ||||
| --- widget.h | ||||
| +++ widget.h | ||||
| @@ -235,6 +235,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| diff --git Source/web/ChromeClientImpl.cpp Source/web/ChromeClientImpl.cpp | ||||
| index 16f5b8f..6d457f1 100644 | ||||
| index 2565230..31a838f 100644 | ||||
| --- Source/web/ChromeClientImpl.cpp | ||||
| +++ Source/web/ChromeClientImpl.cpp | ||||
| @@ -735,7 +735,7 @@ bool ChromeClientImpl::hasOpenedPopup() const | ||||
| @@ -12,10 +12,10 @@ index 16f5b8f..6d457f1 100644 | ||||
|   | ||||
|      if (RuntimeEnabledFeatures::htmlPopupMenuEnabled() && RuntimeEnabledFeatures::pagePopupEnabled()) | ||||
| diff --git Source/web/WebViewImpl.cpp Source/web/WebViewImpl.cpp | ||||
| index 5312dcd..87b87fd 100644 | ||||
| index 14c0dbf..0943bf2 100644 | ||||
| --- Source/web/WebViewImpl.cpp | ||||
| +++ Source/web/WebViewImpl.cpp | ||||
| @@ -408,6 +408,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client) | ||||
| @@ -395,6 +395,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client) | ||||
|      , m_fakePageScaleAnimationPageScaleFactor(0) | ||||
|      , m_fakePageScaleAnimationUseAnchor(false) | ||||
|      , m_contextMenuAllowed(false) | ||||
| @@ -23,8 +23,8 @@ index 5312dcd..87b87fd 100644 | ||||
|      , m_doingDragAndDrop(false) | ||||
|      , m_ignoreInputEvents(false) | ||||
|      , m_compositorDeviceScaleFactorOverride(0) | ||||
| @@ -4127,9 +4128,14 @@ void WebViewImpl::pageScaleFactorChanged() | ||||
|      m_page->inspectorController().pageScaleFactorChanged(); | ||||
| @@ -4140,9 +4141,14 @@ void WebViewImpl::pageScaleFactorChanged() | ||||
|      m_client->pageScaleFactorChanged(); | ||||
|  } | ||||
|   | ||||
| +void WebViewImpl::setUseExternalPopupMenusThisInstance(bool useExternalPopupMenus) | ||||
| @@ -40,10 +40,10 @@ index 5312dcd..87b87fd 100644 | ||||
|   | ||||
|  void WebViewImpl::startDragging(LocalFrame* frame, | ||||
| diff --git Source/web/WebViewImpl.h Source/web/WebViewImpl.h | ||||
| index 6048f2b..3cbdefd 100644 | ||||
| index 4c6e0a3..47b934b 100644 | ||||
| --- Source/web/WebViewImpl.h | ||||
| +++ Source/web/WebViewImpl.h | ||||
| @@ -389,7 +389,8 @@ public: | ||||
| @@ -401,7 +401,8 @@ public: | ||||
|   | ||||
|      // Returns true if popup menus should be rendered by the browser, false if | ||||
|      // they should be rendered by WebKit (which is the default). | ||||
| @@ -53,7 +53,7 @@ index 6048f2b..3cbdefd 100644 | ||||
|   | ||||
|      bool contextMenuAllowed() const | ||||
|      { | ||||
| @@ -690,6 +691,8 @@ private: | ||||
| @@ -704,6 +705,8 @@ private: | ||||
|   | ||||
|      bool m_contextMenuAllowed; | ||||
|   | ||||
| @@ -63,10 +63,10 @@ index 6048f2b..3cbdefd 100644 | ||||
|   | ||||
|      bool m_ignoreInputEvents; | ||||
| diff --git public/web/WebView.h public/web/WebView.h | ||||
| index 774d117..9cd6546 100644 | ||||
| index 20aeff9..0eeda6e 100644 | ||||
| --- public/web/WebView.h | ||||
| +++ public/web/WebView.h | ||||
| @@ -409,6 +409,7 @@ public: | ||||
| @@ -402,6 +402,7 @@ public: | ||||
|   | ||||
|      // Sets whether select popup menus should be rendered by the browser. | ||||
|      BLINK_EXPORT static void setUseExternalPopupMenus(bool); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user