Skip to content

Commit

Permalink
Move PermissionState definition into core
Browse files Browse the repository at this point in the history
PermissioState is used in core (and should be used in the C++ code)
so it should be declared there.

Bug: 342330507
Change-Id: If06567dd7587e5bbb8a9b3d4ef2e9c9a49ce449c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5934734
Reviewed-by: Nate Chapin <[email protected]>
Commit-Queue: Dave Tapuska <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1368994}
  • Loading branch information
dtapuska authored and Chromium LUCI CQ committed Oct 15, 2024
1 parent f404200 commit 794759e
Show file tree
Hide file tree
Showing 14 changed files with 53 additions and 46 deletions.
2 changes: 2 additions & 0 deletions third_party/blink/renderer/bindings/generated_in_core.gni
Original file line number Diff line number Diff line change
Expand Up @@ -561,6 +561,8 @@ generated_enumeration_sources_in_core = [
"$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_opaque_property.h",
"$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_operation_type.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_operation_type.h",
"$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_permission_state.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_permission_state.h",
"$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_playback_direction.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_playback_direction.h",
"$root_gen_dir/third_party/blink/renderer/bindings/core/v8/v8_popin_context_type.cc",
Expand Down
2 changes: 0 additions & 2 deletions third_party/blink/renderer/bindings/generated_in_modules.gni
Original file line number Diff line number Diff line change
Expand Up @@ -1696,8 +1696,6 @@ generated_enumeration_sources_in_modules = [
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_payment_shipping_type.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_permission_name.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_permission_name.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_permission_state.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_permission_state.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_presentation_connection_close_reason.cc",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_presentation_connection_close_reason.h",
"$root_gen_dir/third_party/blink/renderer/bindings/modules/v8/v8_presentation_connection_state.cc",
Expand Down
24 changes: 13 additions & 11 deletions third_party/blink/renderer/core/html/html_permission_element.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "third_party/blink/public/mojom/permissions/permission.mojom-blink.h"
#include "third_party/blink/public/strings/grit/blink_strings.h"
#include "third_party/blink/public/strings/grit/permission_element_strings.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_permission_state.h"
#include "third_party/blink/renderer/core/css/css_selector.h"
#include "third_party/blink/renderer/core/css/font_size_functions.h"
#include "third_party/blink/renderer/core/css/properties/css_property_instances.h"
Expand Down Expand Up @@ -204,15 +205,16 @@ String PermissionNameToString(PermissionName permission_name) {
}

// Helper to translated permission statuses to strings.
String PermissionStatusToString(MojoPermissionStatus status) {
V8PermissionState::Enum PermissionStatusToV8Enum(MojoPermissionStatus status) {
switch (status) {
case MojoPermissionStatus::GRANTED:
return "granted";
return V8PermissionState::Enum::kGranted;
case MojoPermissionStatus::ASK:
return "prompt";
return V8PermissionState::Enum::kPrompt;
case MojoPermissionStatus::DENIED:
return "denied";
return V8PermissionState::Enum::kDenied;
}
NOTREACHED();
}

float ContrastBetweenColorAndBackgroundColor(const ComputedStyle* style) {
Expand Down Expand Up @@ -388,15 +390,15 @@ bool HTMLPermissionElement::isValid() const {
return clicking_enabled_state_.is_valid;
}

String HTMLPermissionElement::initialPermissionStatus() const {
return PermissionStatusToString(
initial_aggregated_permission_status_.value_or(
MojoPermissionStatus::ASK));
V8PermissionState HTMLPermissionElement::initialPermissionStatus() const {
return V8PermissionState(
PermissionStatusToV8Enum(initial_aggregated_permission_status_.value_or(
MojoPermissionStatus::ASK)));
}

String HTMLPermissionElement::permissionStatus() const {
return PermissionStatusToString(
aggregated_permission_status_.value_or(MojoPermissionStatus::ASK));
V8PermissionState HTMLPermissionElement::permissionStatus() const {
return V8PermissionState(PermissionStatusToV8Enum(
aggregated_permission_status_.value_or(MojoPermissionStatus::ASK)));
}

void HTMLPermissionElement::Trace(Visitor* visitor) const {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
namespace blink {

class Page;
class V8PermissionState;

class CORE_EXPORT HTMLPermissionElement final
: public HTMLElement,
Expand All @@ -47,8 +48,8 @@ class CORE_EXPORT HTMLPermissionElement final
const AtomicString& GetType() const;
String invalidReason() const;
bool isValid() const;
String initialPermissionStatus() const;
String permissionStatus() const;
V8PermissionState initialPermissionStatus() const;
V8PermissionState permissionStatus() const;

DEFINE_ATTRIBUTE_EVENT_LISTENER(resolve, kResolve)
DEFINE_ATTRIBUTE_EVENT_LISTENER(dismiss, kDismiss)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// TODO(crbug.com/373648906): Figure out where this definition should be.
enum PermissionState {
"granted",
"denied",
"prompt"
};

[RuntimeEnabled=PermissionElement, Exposed=Window]
interface HTMLPermissionElement : HTMLElement {
[HTMLConstructor] constructor();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/blink/public/strings/grit/blink_strings.h"
#include "third_party/blink/public/strings/grit/permission_element_strings.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_permission_state.h"
#include "third_party/blink/renderer/core/css/css_property_names.h"
#include "third_party/blink/renderer/core/css/properties/css_property.h"
#include "third_party/blink/renderer/core/dom/document.h"
Expand Down Expand Up @@ -99,14 +100,14 @@ void NotReachedForPEPCRegistered() {
"test expecting it not to.";
}

String PermissionStatusString(MojoPermissionStatus status) {
V8PermissionState::Enum PermissionStatusV8Enum(MojoPermissionStatus status) {
switch (status) {
case MojoPermissionStatus::GRANTED:
return "granted";
return V8PermissionState::Enum::kGranted;
case MojoPermissionStatus::ASK:
return "prompt";
return V8PermissionState::Enum::kPrompt;
case MojoPermissionStatus::DENIED:
return "denied";
return V8PermissionState::Enum::kDenied;
}
}

Expand Down Expand Up @@ -702,7 +703,8 @@ TEST_F(HTMLPemissionElementTest, InitialAndUpdatedPermissionStatusMicCamera) {
for (const auto initial_status :
{MojoPermissionStatus::ASK, MojoPermissionStatus::DENIED,
MojoPermissionStatus::GRANTED}) {
String expected_initial_status = PermissionStatusString(initial_status);
V8PermissionState::Enum expected_initial_status =
PermissionStatusV8Enum(initial_status);
auto* permission_element = CreatePermissionElement("geolocation");
permission_service()->set_initial_statuses({initial_status});
permission_service()->WaitForPermissionObserverAdded();
Expand All @@ -713,7 +715,8 @@ TEST_F(HTMLPemissionElementTest, InitialAndUpdatedPermissionStatusMicCamera) {
for (const auto updated_status :
{MojoPermissionStatus::ASK, MojoPermissionStatus::DENIED,
MojoPermissionStatus::GRANTED}) {
String expected_updated_status = PermissionStatusString(updated_status);
V8PermissionState::Enum expected_updated_status =
PermissionStatusV8Enum(updated_status);
permission_service()->NotifyPermissionStatusChange(
PermissionName::GEOLOCATION, updated_status);
// After an updated, the initial permission status remains the same and
Expand All @@ -733,9 +736,9 @@ TEST_F(HTMLPemissionElementTest, InitialAndUpdatedPermissionStatusCameraMic) {

// Before receiving any status, it's assumed it is "prompt" since we don't
// have a better idea.
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::ASK),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::ASK),
permission_element->initialPermissionStatus());
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::ASK),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::ASK),
permission_element->permissionStatus());

// Two permissoin observers should be added since it's a grouped permission
Expand All @@ -745,41 +748,41 @@ TEST_F(HTMLPemissionElementTest, InitialAndUpdatedPermissionStatusCameraMic) {

// The status is the most restrictive of the two permissions. The initial
// status never changes. camera: ASK, mic: DENIED
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::DENIED),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::DENIED),
permission_element->initialPermissionStatus());
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::DENIED),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::DENIED),
permission_element->permissionStatus());

// camera:ASK, mic: ASK
permission_service()->NotifyPermissionStatusChange(
PermissionName::AUDIO_CAPTURE, MojoPermissionStatus::ASK);
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::DENIED),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::DENIED),
permission_element->initialPermissionStatus());
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::ASK),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::ASK),
permission_element->permissionStatus());

// camera:DENIED, mic: ASK
permission_service()->NotifyPermissionStatusChange(
PermissionName::VIDEO_CAPTURE, MojoPermissionStatus::DENIED);
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::DENIED),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::DENIED),
permission_element->initialPermissionStatus());
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::DENIED),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::DENIED),
permission_element->permissionStatus());

// camera:DENIED, mic: GRANTED
permission_service()->NotifyPermissionStatusChange(
PermissionName::AUDIO_CAPTURE, MojoPermissionStatus::GRANTED);
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::DENIED),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::DENIED),
permission_element->initialPermissionStatus());
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::DENIED),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::DENIED),
permission_element->permissionStatus());

// camera:GRANTED, mic: GRANTED
permission_service()->NotifyPermissionStatusChange(
PermissionName::VIDEO_CAPTURE, MojoPermissionStatus::GRANTED);
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::DENIED),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::DENIED),
permission_element->initialPermissionStatus());
EXPECT_EQ(PermissionStatusString(MojoPermissionStatus::GRANTED),
EXPECT_EQ(PermissionStatusV8Enum(MojoPermissionStatus::GRANTED),
permission_element->permissionStatus());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
#include "third_party/blink/public/mojom/file_system_access/file_system_access_cloud_identifier.mojom-blink.h"
#include "third_party/blink/public/mojom/file_system_access/file_system_access_error.mojom-blink.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_permission_state.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_cloud_identifier.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_handle_permission_descriptor.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_file_system_permission_mode.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_permission_state.h"
#include "third_party/blink/renderer/modules/file_system_access/file_system_access_error.h"
#include "third_party/blink/renderer/modules/file_system_access/file_system_directory_handle.h"
#include "third_party/blink/renderer/modules/file_system_access/file_system_file_handle.h"
Expand Down
2 changes: 1 addition & 1 deletion third_party/blink/renderer/modules/idle/idle_manager.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

#include "base/task/single_thread_task_runner.h"
#include "third_party/blink/public/platform/browser_interface_broker_proxy.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_permission_state.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_permission_state.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/modules/permissions/permission_utils.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-shared.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_permission_state.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_permission_state.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/modules/event_target_modules_names.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,6 @@
// Specification at:
// https://w3c.github.io/permissions/

enum PermissionState {
"granted",
"denied",
"prompt"
};

[
ActiveScriptWrappable,
Exposed=(Window,Worker),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

#include "base/task/single_thread_task_runner.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_permission_state.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_permission_state.h"
#include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
#include "third_party/blink/renderer/modules/permissions/permission_utils.h"
#include "third_party/blink/renderer/modules/permissions/permissions.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@
#include "third_party/blink/public/platform/browser_interface_broker_proxy.h"
#include "third_party/blink/renderer/bindings/core/v8/native_value_traits_impl.h"
#include "third_party/blink/renderer/bindings/core/v8/script_value.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_permission_state.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_camera_device_permission_descriptor.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_clipboard_permission_descriptor.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_fullscreen_permission_descriptor.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_midi_permission_descriptor.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_permission_descriptor.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_permission_name.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_permission_state.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_push_permission_descriptor.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_top_level_storage_access_permission_descriptor.h"
#include "third_party/blink/renderer/core/dom/document.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
#include "third_party/blink/renderer/bindings/core/v8/script_value.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_permission_state.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_permission_state.h"
#include "third_party/blink/renderer/core/dom/dom_exception.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

#include "third_party/blink/renderer/modules/push_messaging/push_messaging_bridge.h"

#include "third_party/blink/renderer/bindings/modules/v8/v8_permission_state.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_permission_state.h"
#include "third_party/blink/renderer/bindings/modules/v8/v8_push_subscription_options_init.h"
#include "third_party/blink/renderer/core/dom/dom_exception.h"
#include "third_party/blink/renderer/modules/permissions/permission_utils.h"
Expand Down

0 comments on commit 794759e

Please sign in to comment.