OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "extensions/browser/guest_view/web_view/web_view_guest.h" | 5 #include "extensions/browser/guest_view/web_view/web_view_guest.h" |
6 | 6 |
| 7 #include <stddef.h> |
| 8 |
7 #include <utility> | 9 #include <utility> |
8 | 10 |
9 #include "base/message_loop/message_loop.h" | 11 #include "base/message_loop/message_loop.h" |
10 #include "base/strings/stringprintf.h" | 12 #include "base/strings/stringprintf.h" |
11 #include "base/strings/utf_string_conversions.h" | 13 #include "base/strings/utf_string_conversions.h" |
| 14 #include "build/build_config.h" |
12 #include "components/browsing_data/storage_partition_http_cache_data_remover.h" | 15 #include "components/browsing_data/storage_partition_http_cache_data_remover.h" |
13 #include "components/guest_view/browser/guest_view_event.h" | 16 #include "components/guest_view/browser/guest_view_event.h" |
14 #include "components/guest_view/browser/guest_view_manager.h" | 17 #include "components/guest_view/browser/guest_view_manager.h" |
15 #include "components/guest_view/common/guest_view_constants.h" | 18 #include "components/guest_view/common/guest_view_constants.h" |
16 #include "components/web_cache/browser/web_cache_manager.h" | 19 #include "components/web_cache/browser/web_cache_manager.h" |
17 #include "content/public/browser/browser_context.h" | 20 #include "content/public/browser/browser_context.h" |
18 #include "content/public/browser/browser_thread.h" | 21 #include "content/public/browser/browser_thread.h" |
19 #include "content/public/browser/child_process_security_policy.h" | 22 #include "content/public/browser/child_process_security_policy.h" |
20 #include "content/public/browser/native_web_keyboard_event.h" | 23 #include "content/public/browser/native_web_keyboard_event.h" |
21 #include "content/public/browser/navigation_entry.h" | 24 #include "content/public/browser/navigation_entry.h" |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 using guest_view::GuestViewEvent; | 73 using guest_view::GuestViewEvent; |
71 using guest_view::GuestViewManager; | 74 using guest_view::GuestViewManager; |
72 using ui_zoom::ZoomController; | 75 using ui_zoom::ZoomController; |
73 | 76 |
74 namespace extensions { | 77 namespace extensions { |
75 | 78 |
76 namespace { | 79 namespace { |
77 | 80 |
78 // Returns storage partition removal mask from web_view clearData mask. Note | 81 // Returns storage partition removal mask from web_view clearData mask. Note |
79 // that storage partition mask is a subset of webview's data removal mask. | 82 // that storage partition mask is a subset of webview's data removal mask. |
80 uint32 GetStoragePartitionRemovalMask(uint32 web_view_removal_mask) { | 83 uint32_t GetStoragePartitionRemovalMask(uint32_t web_view_removal_mask) { |
81 uint32 mask = 0; | 84 uint32_t mask = 0; |
82 if (web_view_removal_mask & webview::WEB_VIEW_REMOVE_DATA_MASK_APPCACHE) | 85 if (web_view_removal_mask & webview::WEB_VIEW_REMOVE_DATA_MASK_APPCACHE) |
83 mask |= StoragePartition::REMOVE_DATA_MASK_APPCACHE; | 86 mask |= StoragePartition::REMOVE_DATA_MASK_APPCACHE; |
84 if (web_view_removal_mask & webview::WEB_VIEW_REMOVE_DATA_MASK_COOKIES) | 87 if (web_view_removal_mask & webview::WEB_VIEW_REMOVE_DATA_MASK_COOKIES) |
85 mask |= StoragePartition::REMOVE_DATA_MASK_COOKIES; | 88 mask |= StoragePartition::REMOVE_DATA_MASK_COOKIES; |
86 if (web_view_removal_mask & webview::WEB_VIEW_REMOVE_DATA_MASK_FILE_SYSTEMS) | 89 if (web_view_removal_mask & webview::WEB_VIEW_REMOVE_DATA_MASK_FILE_SYSTEMS) |
87 mask |= StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS; | 90 mask |= StoragePartition::REMOVE_DATA_MASK_FILE_SYSTEMS; |
88 if (web_view_removal_mask & webview::WEB_VIEW_REMOVE_DATA_MASK_INDEXEDDB) | 91 if (web_view_removal_mask & webview::WEB_VIEW_REMOVE_DATA_MASK_INDEXEDDB) |
89 mask |= StoragePartition::REMOVE_DATA_MASK_INDEXEDDB; | 92 mask |= StoragePartition::REMOVE_DATA_MASK_INDEXEDDB; |
90 if (web_view_removal_mask & webview::WEB_VIEW_REMOVE_DATA_MASK_LOCAL_STORAGE) | 93 if (web_view_removal_mask & webview::WEB_VIEW_REMOVE_DATA_MASK_LOCAL_STORAGE) |
91 mask |= StoragePartition::REMOVE_DATA_MASK_LOCAL_STORAGE; | 94 mask |= StoragePartition::REMOVE_DATA_MASK_LOCAL_STORAGE; |
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 | 400 |
398 // We must install the mapping from guests to WebViews prior to resuming | 401 // We must install the mapping from guests to WebViews prior to resuming |
399 // suspended resource loads so that the WebRequest API will catch resource | 402 // suspended resource loads so that the WebRequest API will catch resource |
400 // requests. | 403 // requests. |
401 PushWebViewStateToIOThread(); | 404 PushWebViewStateToIOThread(); |
402 | 405 |
403 ApplyAttributes(create_params); | 406 ApplyAttributes(create_params); |
404 } | 407 } |
405 | 408 |
406 void WebViewGuest::ClearDataInternal(base::Time remove_since, | 409 void WebViewGuest::ClearDataInternal(base::Time remove_since, |
407 uint32 removal_mask, | 410 uint32_t removal_mask, |
408 const base::Closure& callback) { | 411 const base::Closure& callback) { |
409 uint32 storage_partition_removal_mask = | 412 uint32_t storage_partition_removal_mask = |
410 GetStoragePartitionRemovalMask(removal_mask); | 413 GetStoragePartitionRemovalMask(removal_mask); |
411 if (!storage_partition_removal_mask) { | 414 if (!storage_partition_removal_mask) { |
412 callback.Run(); | 415 callback.Run(); |
413 return; | 416 return; |
414 } | 417 } |
415 content::StoragePartition* partition = | 418 content::StoragePartition* partition = |
416 content::BrowserContext::GetStoragePartition( | 419 content::BrowserContext::GetStoragePartition( |
417 web_contents()->GetBrowserContext(), | 420 web_contents()->GetBrowserContext(), |
418 web_contents()->GetSiteInstance()); | 421 web_contents()->GetSiteInstance()); |
419 partition->ClearData( | 422 partition->ClearData( |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 DispatchEventToView( | 502 DispatchEventToView( |
500 new GuestViewEvent(webview::kEventZoomChange, std::move(args))); | 503 new GuestViewEvent(webview::kEventZoomChange, std::move(args))); |
501 } | 504 } |
502 | 505 |
503 void WebViewGuest::WillDestroy() { | 506 void WebViewGuest::WillDestroy() { |
504 if (!attached() && GetOpener()) | 507 if (!attached() && GetOpener()) |
505 GetOpener()->pending_new_windows_.erase(this); | 508 GetOpener()->pending_new_windows_.erase(this); |
506 } | 509 } |
507 | 510 |
508 bool WebViewGuest::AddMessageToConsole(WebContents* source, | 511 bool WebViewGuest::AddMessageToConsole(WebContents* source, |
509 int32 level, | 512 int32_t level, |
510 const base::string16& message, | 513 const base::string16& message, |
511 int32 line_no, | 514 int32_t line_no, |
512 const base::string16& source_id) { | 515 const base::string16& source_id) { |
513 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); | 516 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); |
514 // Log levels are from base/logging.h: LogSeverity. | 517 // Log levels are from base/logging.h: LogSeverity. |
515 args->SetInteger(webview::kLevel, level); | 518 args->SetInteger(webview::kLevel, level); |
516 args->SetString(webview::kMessage, message); | 519 args->SetString(webview::kMessage, message); |
517 args->SetInteger(webview::kLine, line_no); | 520 args->SetInteger(webview::kLine, line_no); |
518 args->SetString(webview::kSourceId, source_id); | 521 args->SetString(webview::kSourceId, source_id); |
519 DispatchEventToView( | 522 DispatchEventToView( |
520 new GuestViewEvent(webview::kEventConsoleMessage, std::move(args))); | 523 new GuestViewEvent(webview::kEventConsoleMessage, std::move(args))); |
521 return true; | 524 return true; |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
722 void WebViewGuest::Terminate() { | 725 void WebViewGuest::Terminate() { |
723 content::RecordAction(UserMetricsAction("WebView.Guest.Terminate")); | 726 content::RecordAction(UserMetricsAction("WebView.Guest.Terminate")); |
724 base::ProcessHandle process_handle = | 727 base::ProcessHandle process_handle = |
725 web_contents()->GetRenderProcessHost()->GetHandle(); | 728 web_contents()->GetRenderProcessHost()->GetHandle(); |
726 if (process_handle) | 729 if (process_handle) |
727 web_contents()->GetRenderProcessHost()->Shutdown( | 730 web_contents()->GetRenderProcessHost()->Shutdown( |
728 content::RESULT_CODE_KILLED, false); | 731 content::RESULT_CODE_KILLED, false); |
729 } | 732 } |
730 | 733 |
731 bool WebViewGuest::ClearData(base::Time remove_since, | 734 bool WebViewGuest::ClearData(base::Time remove_since, |
732 uint32 removal_mask, | 735 uint32_t removal_mask, |
733 const base::Closure& callback) { | 736 const base::Closure& callback) { |
734 content::RecordAction(UserMetricsAction("WebView.Guest.ClearData")); | 737 content::RecordAction(UserMetricsAction("WebView.Guest.ClearData")); |
735 content::StoragePartition* partition = | 738 content::StoragePartition* partition = |
736 content::BrowserContext::GetStoragePartition( | 739 content::BrowserContext::GetStoragePartition( |
737 web_contents()->GetBrowserContext(), | 740 web_contents()->GetBrowserContext(), |
738 web_contents()->GetSiteInstance()); | 741 web_contents()->GetSiteInstance()); |
739 | 742 |
740 if (!partition) | 743 if (!partition) |
741 return false; | 744 return false; |
742 | 745 |
(...skipping 756 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1499 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); | 1502 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); |
1500 DispatchEventToView( | 1503 DispatchEventToView( |
1501 new GuestViewEvent(webview::kEventExitFullscreen, std::move(args))); | 1504 new GuestViewEvent(webview::kEventExitFullscreen, std::move(args))); |
1502 } | 1505 } |
1503 // Since we changed fullscreen state, sending a Resize message ensures that | 1506 // Since we changed fullscreen state, sending a Resize message ensures that |
1504 // renderer/ sees the change. | 1507 // renderer/ sees the change. |
1505 web_contents()->GetRenderViewHost()->GetWidget()->WasResized(); | 1508 web_contents()->GetRenderViewHost()->GetWidget()->WasResized(); |
1506 } | 1509 } |
1507 | 1510 |
1508 } // namespace extensions | 1511 } // namespace extensions |
OLD | NEW |