| OLD | NEW | 
|     1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |     1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 #include "content/browser/web_contents/web_contents_impl.h" |     5 #include "content/browser/web_contents/web_contents_impl.h" | 
|     6  |     6  | 
|     7 #include <stddef.h> |     7 #include <stddef.h> | 
|     8  |     8  | 
|     9 #include <cmath> |     9 #include <cmath> | 
|    10 #include <utility> |    10 #include <utility> | 
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   409       is_subframe_(false), |   409       is_subframe_(false), | 
|   410       force_disable_overscroll_content_(false), |   410       force_disable_overscroll_content_(false), | 
|   411       last_dialog_suppressed_(false), |   411       last_dialog_suppressed_(false), | 
|   412       geolocation_service_context_(new GeolocationServiceContext()), |   412       geolocation_service_context_(new GeolocationServiceContext()), | 
|   413       accessibility_mode_( |   413       accessibility_mode_( | 
|   414           BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode()), |   414           BrowserAccessibilityStateImpl::GetInstance()->accessibility_mode()), | 
|   415       audio_stream_monitor_(this), |   415       audio_stream_monitor_(this), | 
|   416       bluetooth_connected_device_count_(0), |   416       bluetooth_connected_device_count_(0), | 
|   417       virtual_keyboard_requested_(false), |   417       virtual_keyboard_requested_(false), | 
|   418       page_scale_factor_is_one_(true), |   418       page_scale_factor_is_one_(true), | 
 |   419       mouse_lock_widget_(nullptr), | 
|   419       loading_weak_factory_(this), |   420       loading_weak_factory_(this), | 
|   420       weak_factory_(this) { |   421       weak_factory_(this) { | 
|   421   frame_tree_.SetFrameRemoveListener( |   422   frame_tree_.SetFrameRemoveListener( | 
|   422       base::Bind(&WebContentsImpl::OnFrameRemoved, |   423       base::Bind(&WebContentsImpl::OnFrameRemoved, | 
|   423                  base::Unretained(this))); |   424                  base::Unretained(this))); | 
|   424 #if defined(OS_ANDROID) |   425 #if defined(OS_ANDROID) | 
|   425   media_web_contents_observer_.reset(new MediaWebContentsObserverAndroid(this)); |   426   media_web_contents_observer_.reset(new MediaWebContentsObserverAndroid(this)); | 
|   426 #else |   427 #else | 
|   427   media_web_contents_observer_.reset(new MediaWebContentsObserver(this)); |   428   media_web_contents_observer_.reset(new MediaWebContentsObserver(this)); | 
|   428 #endif |   429 #endif | 
| (...skipping 1258 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1687     if (delegate_ && delegate_->EmbedsFullscreenWidget()) |  1688     if (delegate_ && delegate_->EmbedsFullscreenWidget()) | 
|  1688       delegate_->ExitFullscreenModeForTab(this); |  1689       delegate_->ExitFullscreenModeForTab(this); | 
|  1689     FOR_EACH_OBSERVER(WebContentsObserver, |  1690     FOR_EACH_OBSERVER(WebContentsObserver, | 
|  1690                       observers_, |  1691                       observers_, | 
|  1691                       DidDestroyFullscreenWidget()); |  1692                       DidDestroyFullscreenWidget()); | 
|  1692     fullscreen_widget_process_id_ = ChildProcessHost::kInvalidUniqueID; |  1693     fullscreen_widget_process_id_ = ChildProcessHost::kInvalidUniqueID; | 
|  1693     fullscreen_widget_routing_id_ = MSG_ROUTING_NONE; |  1694     fullscreen_widget_routing_id_ = MSG_ROUTING_NONE; | 
|  1694     if (fullscreen_widget_had_focus_at_shutdown_) |  1695     if (fullscreen_widget_had_focus_at_shutdown_) | 
|  1695       view_->RestoreFocus(); |  1696       view_->RestoreFocus(); | 
|  1696   } |  1697   } | 
 |  1698  | 
 |  1699   if (mouse_lock_widget_ == render_widget_host) | 
 |  1700     mouse_lock_widget_ = nullptr; | 
|  1697 } |  1701 } | 
|  1698  |  1702  | 
|  1699 void WebContentsImpl::RenderWidgetGotFocus( |  1703 void WebContentsImpl::RenderWidgetGotFocus( | 
|  1700     RenderWidgetHostImpl* render_widget_host) { |  1704     RenderWidgetHostImpl* render_widget_host) { | 
|  1701   // Notify the observers if an embedded fullscreen widget was focused. |  1705   // Notify the observers if an embedded fullscreen widget was focused. | 
|  1702   if (delegate_ && render_widget_host && delegate_->EmbedsFullscreenWidget() && |  1706   if (delegate_ && render_widget_host && delegate_->EmbedsFullscreenWidget() && | 
|  1703       render_widget_host->GetView() == GetFullscreenRenderWidgetHostView()) { |  1707       render_widget_host->GetView() == GetFullscreenRenderWidgetHostView()) { | 
|  1704     NotifyWebContentsFocused(); |  1708     NotifyWebContentsFocused(); | 
|  1705   } |  1709   } | 
|  1706 } |  1710 } | 
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1883     return blink::WebDisplayModeBrowser; |  1887     return blink::WebDisplayModeBrowser; | 
|  1884  |  1888  | 
|  1885   return delegate_ ? delegate_->GetDisplayMode(this) |  1889   return delegate_ ? delegate_->GetDisplayMode(this) | 
|  1886                    : blink::WebDisplayModeBrowser; |  1890                    : blink::WebDisplayModeBrowser; | 
|  1887 } |  1891 } | 
|  1888  |  1892  | 
|  1889 void WebContentsImpl::RequestToLockMouse( |  1893 void WebContentsImpl::RequestToLockMouse( | 
|  1890     RenderWidgetHostImpl* render_widget_host, |  1894     RenderWidgetHostImpl* render_widget_host, | 
|  1891     bool user_gesture, |  1895     bool user_gesture, | 
|  1892     bool last_unlocked_by_target) { |  1896     bool last_unlocked_by_target) { | 
|  1893   if (render_widget_host != GetRenderViewHost()->GetWidget()) { |  1897   if (mouse_lock_widget_) { | 
|  1894     render_widget_host->GotResponseToLockMouseRequest(false); |  1898     render_widget_host->GotResponseToLockMouseRequest(false); | 
|  1895     return; |  1899     return; | 
|  1896   } |  1900   } | 
|  1897  |  1901  | 
|  1898   if (delegate_) |  1902   bool widget_in_frame_tree = false; | 
 |  1903   for (FrameTreeNode* node : frame_tree_.Nodes()) { | 
 |  1904     if (node->current_frame_host()->GetRenderWidgetHost() == | 
 |  1905         render_widget_host) { | 
 |  1906       widget_in_frame_tree = true; | 
 |  1907       break; | 
 |  1908     } | 
 |  1909   } | 
 |  1910  | 
 |  1911   if (widget_in_frame_tree && delegate_) { | 
 |  1912     mouse_lock_widget_ = render_widget_host; | 
|  1899     delegate_->RequestToLockMouse(this, user_gesture, last_unlocked_by_target); |  1913     delegate_->RequestToLockMouse(this, user_gesture, last_unlocked_by_target); | 
|  1900   else |  1914   } else { | 
|  1901     GotResponseToLockMouseRequest(false); |  1915     render_widget_host->GotResponseToLockMouseRequest(false); | 
 |  1916   } | 
|  1902 } |  1917 } | 
|  1903  |  1918  | 
|  1904 void WebContentsImpl::LostMouseLock(RenderWidgetHostImpl* render_widget_host) { |  1919 void WebContentsImpl::LostMouseLock(RenderWidgetHostImpl* render_widget_host) { | 
|  1905   if (!RenderViewHostImpl::From(render_widget_host)) |  1920   CHECK(mouse_lock_widget_); | 
|  1906     return; |  1921   mouse_lock_widget_->SendMouseLockLost(); | 
 |  1922   mouse_lock_widget_ = nullptr; | 
|  1907  |  1923  | 
|  1908   if (delegate_) |  1924   if (delegate_) | 
|  1909     delegate_->LostMouseLock(); |  1925     delegate_->LostMouseLock(); | 
|  1910 } |  1926 } | 
|  1911  |  1927  | 
|  1912 void WebContentsImpl::ForwardCompositorProto( |  1928 void WebContentsImpl::ForwardCompositorProto( | 
|  1913     RenderWidgetHostImpl* render_widget_host, |  1929     RenderWidgetHostImpl* render_widget_host, | 
|  1914     const std::vector<uint8_t>& proto) { |  1930     const std::vector<uint8_t>& proto) { | 
|  1915   if (delegate_) |  1931   if (delegate_) | 
|  1916     delegate_->ForwardCompositorProto(render_widget_host, proto); |  1932     delegate_->ForwardCompositorProto(render_widget_host, proto); | 
| (...skipping 1034 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2951 } |  2967 } | 
|  2952  |  2968  | 
|  2953 gfx::Size WebContentsImpl::GetPreferredSize() const { |  2969 gfx::Size WebContentsImpl::GetPreferredSize() const { | 
|  2954   return capturer_count_ == 0 ? preferred_size_ : preferred_size_for_capture_; |  2970   return capturer_count_ == 0 ? preferred_size_ : preferred_size_for_capture_; | 
|  2955 } |  2971 } | 
|  2956  |  2972  | 
|  2957 bool WebContentsImpl::GotResponseToLockMouseRequest(bool allowed) { |  2973 bool WebContentsImpl::GotResponseToLockMouseRequest(bool allowed) { | 
|  2958   if (GetBrowserPluginGuest()) |  2974   if (GetBrowserPluginGuest()) | 
|  2959     return GetBrowserPluginGuest()->LockMouse(allowed); |  2975     return GetBrowserPluginGuest()->LockMouse(allowed); | 
|  2960  |  2976  | 
|  2961   return GetRenderViewHost() |  2977   if (mouse_lock_widget_) | 
|  2962              ? GetRenderViewHost()->GetWidget()->GotResponseToLockMouseRequest( |  2978     return mouse_lock_widget_->GotResponseToLockMouseRequest(allowed); | 
|  2963                    allowed) |  2979   return false; | 
|  2964              : false; |  | 
|  2965 } |  2980 } | 
|  2966  |  2981  | 
|  2967 bool WebContentsImpl::HasOpener() const { |  2982 bool WebContentsImpl::HasOpener() const { | 
|  2968   return GetOpener() != NULL; |  2983   return GetOpener() != NULL; | 
|  2969 } |  2984 } | 
|  2970  |  2985  | 
|  2971 WebContentsImpl* WebContentsImpl::GetOpener() const { |  2986 WebContentsImpl* WebContentsImpl::GetOpener() const { | 
|  2972   FrameTreeNode* opener_ftn = frame_tree_.root()->opener(); |  2987   FrameTreeNode* opener_ftn = frame_tree_.root()->opener(); | 
|  2973   return opener_ftn ? FromFrameTreeNode(opener_ftn) : nullptr; |  2988   return opener_ftn ? FromFrameTreeNode(opener_ftn) : nullptr; | 
|  2974 } |  2989 } | 
| (...skipping 2095 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5070   for (RenderViewHost* render_view_host : render_view_host_set) |  5085   for (RenderViewHost* render_view_host : render_view_host_set) | 
|  5071     render_view_host->OnWebkitPreferencesChanged(); |  5086     render_view_host->OnWebkitPreferencesChanged(); | 
|  5072 } |  5087 } | 
|  5073  |  5088  | 
|  5074 void WebContentsImpl::SetJavaScriptDialogManagerForTesting( |  5089 void WebContentsImpl::SetJavaScriptDialogManagerForTesting( | 
|  5075     JavaScriptDialogManager* dialog_manager) { |  5090     JavaScriptDialogManager* dialog_manager) { | 
|  5076   dialog_manager_ = dialog_manager; |  5091   dialog_manager_ = dialog_manager; | 
|  5077 } |  5092 } | 
|  5078  |  5093  | 
|  5079 }  // namespace content |  5094 }  // namespace content | 
| OLD | NEW |